diff --git a/.prettierignore b/.prettierignore index b019d04718f9..d3e3b9ed8c79 100644 --- a/.prettierignore +++ b/.prettierignore @@ -8,4 +8,5 @@ !*/ # Ignore translated docs (not currently maintained) -/polkadot-wiki/translated_docs/ \ No newline at end of file +/polkadot-wiki/translated_docs/ +/docs/build/build-open-source.md \ No newline at end of file diff --git a/components/RPC-Connection.jsx b/components/RPC-Connection.jsx index 6976883c1c8e..96954c9fbfcf 100644 --- a/components/RPC-Connection.jsx +++ b/components/RPC-Connection.jsx @@ -1,6 +1,6 @@ import { useState, useEffect } from "react"; import { ApiPromise, WsProvider } from "@polkadot/api"; -import { HumanReadable, BlocksToDays} from "./utilities/filters"; +import { HumanReadable, BlocksToDays } from "./utilities/filters"; /* This component connects to the Polkadot/Kusama APIs and renders the response data. @@ -139,7 +139,7 @@ function applyFilter(value, filter, network, setReturnValue) { break; case "blocksToDays": BlocksToDays(value, setReturnValue); - break; + break; default: console.log("Ignoring unknown filter type"); return; diff --git a/components/utilities/data/KusamaAuctions.json b/components/utilities/data/KusamaAuctions.json index 127e101c1310..35a00827a5fd 100644 --- a/components/utilities/data/KusamaAuctions.json +++ b/components/utilities/data/KusamaAuctions.json @@ -1012,33 +1012,33 @@ "startBlock": 14918400, "startHash": "0x3fe099e3d81fb7d4aecf2f11ed5cb3d243ba6d03bf6cfe76d84807f6160ed9cc", "endPeriodBlock": 14945400, - "endPeriodHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "endPeriodHash": "0xa8b88a99f1c0c18812db8c94d90fc967b5146e18b8ecd23c64cf31086ce97dea", "biddingEndsBlock": 15017400, - "biddingEndsHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "biddingEndsHash": "0xbc86c1c5b6f8671cc53afd1133e0e9adba22ef60281650fd6fab9bad939bd151", "onboardStartBlock": 15120000, "onboardStartHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "onboardEndBlock": 19958400, "onboardEndHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "startDate": 1665991038012, - "endPeriodDate": null, - "biddingEndsDate": null, + "endPeriodDate": 1666153308043, + "biddingEndsDate": 1666585824017, "onboardStartDate": null, "onboardEndDate": null }, { "index": 57, "startBlock": 15019200, - "startHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "startHash": "0xba5ba301bf32f43e342e7b5b7ad8b9b6d081d2dc0c718aa24b1dc8a154fb0dcc", "endPeriodBlock": 15046200, - "endPeriodHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "endPeriodHash": "0x0393bddf8e55f5d0c404b86eaaa996a8830774ebbdaae81fdb1b36287ce05e5c", "biddingEndsBlock": 15118200, "biddingEndsHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "onboardStartBlock": null, + "onboardStartBlock": 15120000, "onboardStartHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "onboardEndBlock": null, + "onboardEndBlock": 19958400, "onboardEndHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "startDate": null, - "endPeriodDate": null, + "startDate": 1666596642018, + "endPeriodDate": 1666758792052, "biddingEndsDate": null, "onboardStartDate": null, "onboardEndDate": null diff --git a/components/utilities/data/PolkadotAuctions.json b/components/utilities/data/PolkadotAuctions.json index 960365cef7cf..d10e0e669bb3 100644 --- a/components/utilities/data/PolkadotAuctions.json +++ b/components/utilities/data/PolkadotAuctions.json @@ -528,31 +528,31 @@ "endPeriodBlock": 12537400, "endPeriodHash": "0xa34451450bca3bc96c2eac5f7df667a364a8988c21a32081918e4c45b1c8bf1a", "biddingEndsBlock": 12609400, - "biddingEndsHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "biddingEndsHash": "0xb5fe1b9290e60ae022eb8b724f11f3d9c7ad1a90f5f58c30edec6ff264dbe3eb", "onboardStartBlock": 13017600, "onboardStartHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "onboardEndBlock": 22694400, "onboardEndHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "startDate": 1665953556009, "endPeriodDate": 1666115604006, - "biddingEndsDate": null, + "biddingEndsDate": 1666552620009, "onboardStartDate": null, "onboardEndDate": null }, { "index": 30, "startBlock": 12683200, - "startHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "startHash": "0x42244e186f70465e5df8cfbbf0042eebc6e6590c192fb7498443293ade62ba58", "endPeriodBlock": 12710200, - "endPeriodHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "endPeriodHash": "0xed552b506ca77ecdf8e2e5a3e3d72ada0c437440f40a7295bb542cfe986134ad", "biddingEndsBlock": 12782200, "biddingEndsHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "onboardStartBlock": null, + "onboardStartBlock": 13017600, "onboardStartHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "onboardEndBlock": null, + "onboardEndBlock": 22694400, "onboardEndHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "startDate": null, - "endPeriodDate": null, + "startDate": 1666998144009, + "endPeriodDate": 1667160300008, "biddingEndsDate": null, "onboardStartDate": null, "onboardEndDate": null diff --git a/components/utilities/filters.js b/components/utilities/filters.js index ccea86780706..4586ba228c4a 100644 --- a/components/utilities/filters.js +++ b/components/utilities/filters.js @@ -5,12 +5,12 @@ const Statemint = "statemint"; const values = { polkadot: { - precision: 1e10, - symbol: "DOT", + precision: 1e10, + symbol: "DOT", }, - kusama: { - precision: 1e12, - symbol: "KSM", + kusama: { + precision: 1e12, + symbol: "KSM", }, statemint: { precision: 1e10, diff --git a/docs/assets/comparisons/avalanche/avalanche-consensus-protocols.png b/docs/assets/comparisons/avalanche/avalanche-consensus-protocols.png new file mode 100644 index 000000000000..dd6312124fc1 Binary files /dev/null and b/docs/assets/comparisons/avalanche/avalanche-consensus-protocols.png differ diff --git a/docs/assets/comparisons/avalanche/avalanche-network.png b/docs/assets/comparisons/avalanche/avalanche-network.png new file mode 100644 index 000000000000..35b63b0a0083 Binary files /dev/null and b/docs/assets/comparisons/avalanche/avalanche-network.png differ diff --git a/docs/build/build-node-management.md b/docs/build/build-node-management.md index 31d6443503a2..95980aa99031 100644 --- a/docs/build/build-node-management.md +++ b/docs/build/build-node-management.md @@ -173,5 +173,6 @@ puts your node at higher risk of attack. You can run your own, private [this Helm chart](https://github.com/w3f/substrate-telemetry-chart). The node also exposes a Prometheus endpoint by default (disable with `--no-prometheus`). Substrate -has a [monitor node metrics tutorial](https://docs.substrate.io/tutorials/get-started/node-metrics/) +has a +[monitor node metrics tutorial](https://docs.substrate.io/tutorials/get-started/monitor-node-metrics/) which uses this endpoint. diff --git a/docs/build/build-open-source.md b/docs/build/build-open-source.md index 57ed9e8d4bde..8cc198e5336b 100644 --- a/docs/build/build-open-source.md +++ b/docs/build/build-open-source.md @@ -74,15 +74,15 @@ In the below sections you can find a list of different layers of the Polkadot St | Components | Existing projects | Potentially interesting projects | | ---------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| Desktop/Web Wallets | [Talisman Web Application](https://github.com/TalismanSociety/talisman-web) 🟢, [AirGap](https://github.com/airgap-it/airgap-wallet) 🟢, [Sakura](https://github.com/w3finance/sakura) 🔴, [Omni desktop](https://github.com/w3f-grants-archive/omni-desktop-prototype) 🔴| User-friendly Wallet based on the [Recovery Pallet](https://github.com/paritytech/substrate/tree/master/frame/recovery), Web wallets focused on user-onboarding (e.g. using [localStorage](https://github.com/near/near-wallet) ), Enterprise Wallets | +| Desktop/Web Wallets | [Talisman Web Application](https://github.com/TalismanSociety/talisman-web) 🟢, [AirGap](https://github.com/airgap-it/airgap-wallet) 🟢, [Primis](https://github.com/Primis-Labs/client) 🟢, [Sakura](https://github.com/w3finance/sakura) 🔴, [Omni desktop](https://github.com/w3f-grants-archive/omni-desktop-prototype) 🔴| User-friendly Wallet based on the [Recovery Pallet](https://github.com/paritytech/substrate/tree/master/frame/recovery), Web wallets focused on user-onboarding (e.g. using [localStorage](https://github.com/near/near-wallet) ), Enterprise Wallets | | Browser Extensions | [Enkrypt](https://github.com/enkryptcom/enKrypt) 🟢, [Polkadot{.js}](https://github.com/polkadot-js/extension) 🟢, [Polkadot-Js-Plus-Extension](https://github.com/Nick-1979/polkadot-Js-Plus-extension) 🟢, [SubWallet-Extension](https://github.com/Koniverse/SubWallet-Extension) 🟢, [Doter](https://github.com/ChainBridgeNetworkTeam/Doter) 🔴, [Enzyme](https://github.com/blockxlabs/enzyme/) 🔴, [Speckle OS](https://github.com/GetSpeckle/speckle-browser-extension) 🔴| Sign-in with your polkadot, kusama, etc. account. | -| Mobile Wallets | [Lunie](https://github.com/luniehq/lunie) 🔴, [Polkawallet](https://github.com/polkawallet-io/polkawallet-flutter) 🔴, [Parity Signer](https://github.com/paritytech/parity-signer) 🟢, [imToken](https://github.com/consenlabs/token-core) 🟢, [Fearless Wallet Android](https://github.com/soramitsu/fearless-Android) 🟢, [Fearless Wallet iOS](https://github.com/soramitsu/fearless-iOS) 🟢, [Stylo](https://github.com/stylo-app/stylo) 🟡, [Nova Wallet](https://github.com/nova-wallet/nova-utils) 🟢, [Fractapp](https://github.com/fractapp/fractapp/) 🔴, [Interstellar Network](https://github.com/Interstellar-Network/wallet-app) 🟡, [Hashed Wallet](https://github.com/hypha-dao/hashed-wallet) 🟢| +| Mobile Wallets | [Lunie](https://github.com/luniehq/lunie) 🔴, [Polkawallet](https://github.com/polkawallet-io/polkawallet-flutter) 🔴, [Parity Signer](https://github.com/paritytech/parity-signer) 🟢, [imToken](https://github.com/consenlabs/token-core) 🟡, [Fearless Wallet Android](https://github.com/soramitsu/fearless-Android) 🟢, [Fearless Wallet iOS](https://github.com/soramitsu/fearless-iOS) 🟢, [Stylo](https://github.com/stylo-app/stylo) 🟡, [Nova Wallet](https://github.com/nova-wallet/nova-utils) 🟢, [Fractapp](https://github.com/fractapp/fractapp/) 🔴, [Interstellar Network](https://github.com/Interstellar-Network/wallet-app) 🔴, [Hashed Wallet](https://github.com/hypha-dao/hashed-wallet) 🟢| | Burner Wallets/Faucet | [KodaDot](https://github.com/vue-polkadot/apps) 🟢, [Astar Faucet Bot](https://github.com/AstarNetwork/astar-faucet-bot) 🟡, [Generic sybil-resistant faucet](https://github.com/karooolis/sybil-resistant-substrate-faucet) 🟢| Faucet (a sybil-resistant way to receive free tokens) | | Wallet Plugins | [Metamask-Snap by Chainsafe](https://github.com/ChainSafe/metamask-snap-polkadot) 🟢| | CLI Wallet | [Subwallet](https://github.com/yxf/subwallet) 🔴, [Proxy-hot-wallet](https://github.com/canontech/proxy-hot-wallet) 🔴| -| Multisignature Wallets | [Subscan Multisig UI - React](https://github.com/itering/subscan-multisig-react) 🟡, [Subscan Multisig UI](https://github.com/itering/subscan-multisig-ui) 🔴, [Dorafactory-Multisig](https://github.com/DoraFactory/dorafactory-multisig) 🔴| -| Hardware Wallets | [Ledger Polkadot](https://github.com/ZondaX/ledger-polkadot) 🟡, [Ledger Kusama](https://github.com/Zondax/ledger-kusama) 🟡, [Ledger Statemint](https://github.com/Zondax/ledger-statemint) 🟢, [Ledger Statemine](https://github.com/Zondax/ledger-statemine) 🟢| Trezor | -| Block Explorers | [Calamar](https://github.com/topmonks/calamar) 🟢, [Polkaholic](https://github.com/colorfulnotion/polkaholic) 🟢, [Polkascan](https://github.com/polkascan/explorer-api) 🟢, [Polkastats](https://github.com/Colm3na/polkastats-backend) 🔴, [Subscan](https://github.com/itering/subscan) 🟡, [Statescan](https://github.com/opensquare-network/statescan) 🟢, [Edgscan](https://github.com/edgeware-builders/edgscan) 🔴, [Epirus](https://github.com/web3labs/epirus-substrate) 🟡, [Ink! Explorer API](https://github.com/blockcoders/ink-substrate-explorer-api) 🟢| Mempool focused explorer (including parachain transaction) | +| Multisignature Wallets | [Subscan Multisig UI - React](https://github.com/itering/subscan-multisig-react) 🟢, [Subscan Multisig UI](https://github.com/itering/subscan-multisig-ui) 🔴, [Dorafactory-Multisig](https://github.com/DoraFactory/dorafactory-multisig) 🔴| +| Hardware Wallets | [Ledger Polkadot](https://github.com/ZondaX/ledger-polkadot) 🟢, [Ledger Kusama](https://github.com/Zondax/ledger-kusama) 🟢, [Ledger Statemint](https://github.com/Zondax/ledger-statemint) 🟡, [Ledger Statemine](https://github.com/Zondax/ledger-statemine) 🟡| Trezor | +| Block Explorers | [Calamar](https://github.com/topmonks/calamar) 🟢, [Polkaholic](https://github.com/colorfulnotion/polkaholic) 🟢, [Polkascan](https://github.com/polkascan/explorer-api) 🟡, [Polkastats](https://github.com/Colm3na/polkastats-backend) 🔴, [Subscan](https://github.com/itering/subscan) 🟡, [Statescan](https://github.com/opensquare-network/statescan) 🟡, [Edgscan](https://github.com/edgeware-builders/edgscan) 🔴, [Epirus](https://github.com/web3labs/epirus-substrate) 🟢, [Ink! Explorer API](https://github.com/blockcoders/ink-substrate-explorer-api) 🟢| Mempool focused explorer (including parachain transaction) | | Validator Dashboards | [Polkacube](https://github.com/hashquark-io/polkacube-frontend) 🔴, [YieldScan](https://github.com/buidl-labs/YieldScan) 🔴, [Hubble](https://github.com/w3f-community/hubble/tree/master/app/controllers/polkadot) 🔴| | Node Explorers | [Polkadot Node Explorer](https://github.com/protos-research/polkadot-node-explorer) 🔴| | NFT Explorer | [NFT Explorer for Kusama & Polkadot](https://github.com/kodadot/nft-gallery) 🟢| @@ -98,24 +98,24 @@ In the below sections you can find a list of different layers of the Polkadot St | Components | Existing projects | Potentially interesting projects | | ------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------- | | Parachain | [Parachain utilities](https://github.com/AcalaNetwork/parachain-utilities) 🔴, [Gantree](https://github.com/gantree-io/gantree-core) 🔴| Tools to create parachains from frameworks used in other ecosystems | -| Client Libraries | [Go](https://github.com/centrifuge/go-substrate-rpc-client) 🟢, [.Net](https://github.com/usetech-llc/polkadot_api_dotnet) 🔴, [.NET Standard 2.0](https://github.com/ajuna-network/Ajuna.NetApi) 🟢, [C++](https://github.com/usetech-llc/polkadot_api_cpp) 🔴, [C](https://github.com/finoabanking/substrate-c-tool) 🔴, [Haskell](https://github.com/airalab/hs-web3) 🟢, [Javascript](https://github.com/polkadot-js/api) 🟢, [Substrate API Sidecar - TypeScript](https://github.com/paritytech/substrate-api-sidecar) 🟢, [Ruby](https://github.com/itering/scale.rb) 🟢, [Python](https://github.com/polkascan/py-substrate-interface) 🟢, [Java (+ Android)](https://github.com/emeraldpay/polkaj) 🔴, [Substrate Client Java](https://github.com/strategyobject/substrate-client-java) 🟡, [Rust SCS](https://github.com/scs/substrate-api-client) 🟢, [Rust Parity](https://github.com/paritytech/substrate-subxt) 🟢, [PHP (gmajor-encrypt)](https://github.com/gmajor-encrypt/php-substrate-api) 🔴, [PHP (neha0921)](https://github.com/neha0921/substrate-interface-package) 🔴, [RPC-Ethereum](https://github.com/paritytech/frontier) 🟢, [Swift](https://github.com/tesseract-one/Substrate.swift) 🔴, [Kotlin](https://github.com/NodleCode/substrate-client-kotlin) 🔴| | +| Client Libraries | [Go](https://github.com/centrifuge/go-substrate-rpc-client) 🟢, [.Net](https://github.com/usetech-llc/polkadot_api_dotnet) 🔴, [.NET Standard 2.0](https://github.com/ajuna-network/Ajuna.NetApi) 🟢, [C++](https://github.com/usetech-llc/polkadot_api_cpp) 🔴, [C](https://github.com/finoabanking/substrate-c-tool) 🔴, [Haskell](https://github.com/airalab/hs-web3) 🟡, [Javascript](https://github.com/polkadot-js/api) 🟢, [Substrate API Sidecar - TypeScript](https://github.com/paritytech/substrate-api-sidecar) 🟢, [Ruby](https://github.com/itering/scale.rb) 🟢, [Python](https://github.com/polkascan/py-substrate-interface) 🟢, [Java (+ Android)](https://github.com/emeraldpay/polkaj) 🔴, [Substrate Client Java](https://github.com/strategyobject/substrate-client-java) 🟡, [Rust SCS](https://github.com/scs/substrate-api-client) 🟢, [Rust Parity](https://github.com/paritytech/substrate-subxt) 🟢, [Rust pdotc](https://github.com/trevor-crypto) [PHP (gmajor-encrypt)](https://github.com/gmajor-encrypt/php-substrate-api) 🔴, [PHP (neha0921)](https://github.com/neha0921/substrate-interface-package) 🔴, [RPC-Ethereum](https://github.com/paritytech/frontier) 🟢, [Swift](https://github.com/tesseract-one/Substrate.swift) 🔴, [Kotlin](https://github.com/NodleCode/substrate-client-kotlin) 🔴| | | Substrate Contract clients | [PatractGo](https://github.com/patractlabs/go-patract) 🔴| | -| SCALE Codec | [Rust](https://github.com/paritytech/parity-scale-codec) 🟡, [TypeScript](https://github.com/paritytech/parity-scale-codec-ts) 🟢, [Python](https://github.com/polkascan/py-scale-codec) 🟢, [Golang Chainsafe](https://github.com/ChainSafe/gossamer/tree/development/lib/scale) 🟢, [Golang Itering](https://github.com/itering/scale.go) 🟢, [C](https://github.com/MatthewDarnell/cScale) 🔴, [C++](https://github.com/soramitsu/scale-codec-cpp) 🟡, [JavaScript](https://github.com/polkadot-js/api) 🟢, [AssemblyScript](https://github.com/LimeChain/as-scale-codec) 🔴, [Haskell](https://github.com/airalab/hs-web3/tree/master/src/Codec) 🟢, [Java](https://github.com/emeraldpay/polkaj) 🔴, [Ruby](https://github.com/itering/scale.rb) 🟢, [Dart](https://github.com/nbltrust/dart-scale-codec) 🔴, [Swift](https://github.com/tesseract-one/swift-scale-codec) 🔴, [PHP](https://github.com/gmajor-encrypt/php-scale-codec) 🟢, [JavaScript by Soramitsu](https://github.com/soramitsu/scale-codec-js-library) 🟡, [Scale Codec Comparator](https://github.com/gmajor-encrypt/scale-codec-comparator) 🟢| -| Easy Runtime Development | [Subalfred](https://github.com/hack-ink/subalfred) 🟢, [VS Code Plugin](https://github.com/everstake/vscode-plugin-substrate) 🔴, [Atom Code Plugin](https://github.com/everstake/atom-plugin-substrate) 🔴, [Substrate Playground](https://github.com/paritytech/substrate-playground) 🟢, [Substrate Marketplace VS Code Plugin](https://github.com/paritytech/vscode-substrate) 🔴, [AssemblyScript Runtime Generation](https://github.com/LimeChain/as-substrate-runtime) 🔴, [Substrate Package Manager](https://github.com/clearloop/sup) 🔴, [Subsembly: Framework for developing AssemblyScript Substrate Runtimes](https://github.com/LimeChain/subsembly) 🔴, [dependency diener](https://github.com/bkchr/diener) 🟢| | -| Easy Smart Contract Development | [Typechain Polkadot](https://github.com/Supercolony-net/typechain-polkadot) 🟡, [ink-playground](https://github.com/staketechnologies/ink-playground/tree/master) 🔴, [Ink! Remix Plugin](https://github.com/blockchain-it-hr/ink-remix-plugin) 🔴| -| Runtime Security | [Substrate Toml Lint](https://github.com/shawntabrizi/substrate-toml-lint) 🟡, [K specifications](https://github.com/kframework/wasm-semantics) 🔴, [PolPatrol - Polkadot Runtime Checker](https://github.com/ChainSecurity/polpatrol) 🔴| Automated Runtime checking tools, economic audit simulator such as [gauntlet.network](https://gauntlet.network/) | +| SCALE Codec | [Rust](https://github.com/paritytech/parity-scale-codec) 🟢, [TypeScript](https://github.com/paritytech/parity-scale-codec-ts) 🟢, [Python](https://github.com/polkascan/py-scale-codec) 🟢, [Golang Chainsafe](https://github.com/ChainSafe/gossamer/tree/development/pkg/scale/) 🟢, [Golang Itering](https://github.com/itering/scale.go) 🟢, [C](https://github.com/MatthewDarnell/cScale) 🔴, [C++](https://github.com/soramitsu/scale-codec-cpp) 🟢, [JavaScript](https://github.com/polkadot-js/api) 🟢, [AssemblyScript](https://github.com/LimeChain/as-scale-codec) 🔴, [Haskell](https://github.com/airalab/hs-web3/tree/master/packages/scale/src/Codec) 🟡, [Java](https://github.com/emeraldpay/polkaj) 🔴, [Ruby](https://github.com/itering/scale.rb) 🟢, [Dart](https://github.com/nbltrust/dart-scale-codec) 🔴, [Swift](https://github.com/tesseract-one/swift-scale-codec) 🔴, [PHP](https://github.com/gmajor-encrypt/php-scale-codec) 🟡, [JavaScript by Soramitsu](https://github.com/soramitsu/scale-codec-js-library) 🟡, [Scale Codec Comparator](https://github.com/gmajor-encrypt/scale-codec-comparator) 🟡| +| Easy Runtime Development | [Subalfred](https://github.com/hack-ink/subalfred) 🟢, [substrate-stencil](https://github.com/kaichaosun/substrate-stencil) 🟡, [Play Substrate](https://github.com/kaichaosun/play-substrate), [substrate-node-template](https://github.com/substrate-developer-hub/substrate-node-template), [VS Code Plugin](https://github.com/everstake/vscode-plugin-substrate) 🔴, [Atom Code Plugin](https://github.com/everstake/atom-plugin-substrate) 🔴, [Substrate Playground](https://github.com/paritytech/substrate-playground) 🟢, [Substrate Marketplace VS Code Plugin](https://github.com/paritytech/vscode-substrate) 🔴, [AssemblyScript Runtime Generation](https://github.com/LimeChain/as-substrate-runtime) 🔴, [Substrate Package Manager](https://github.com/clearloop/sup) 🔴, [Subsembly: Framework for developing AssemblyScript Substrate Runtimes](https://github.com/LimeChain/subsembly) 🔴, [dependency diener](https://github.com/bkchr/diener) 🟢| | +| Easy Smart Contract Development | [Typechain Polkadot](https://github.com/Supercolony-net/typechain-polkadot) 🟡, [ink-playground](https://github.com/staketechnologies/ink-playground/tree/master) 🔴, [Ink! Remix Plugin](https://github.com/blockchain-it-hr/ink-remix-plugin) 🔴, [Signac](https://github.com/standardweb3/signac/) 🟢| +| Runtime/Pallet Security | [Substrate Toml Lint](https://github.com/shawntabrizi/substrate-toml-lint) 🟡, [K specifications](https://github.com/kframework/wasm-semantics) 🔴,[Static analyzer for Substrate FRAME's pallets](https://github.com/simon-perriard/saft) 🟡, [PolPatrol - Polkadot Runtime Checker](https://github.com/ChainSecurity/polpatrol) 🔴| Automated Runtime checking tools, economic audit simulator such as [gauntlet.network](https://gauntlet.network/) | | Smart Contract Languages | [Ask!](https://github.com/ask-lang/ask) 🟢, [Subscript](https://github.com/slickup/subscript) 🔴, [Solang](https://github.com/hyperledger-labs/solang) 🟢, [Ink!](https://github.com/paritytech/ink) 🟢, [Move VM Substrate](https://github.com/pontem-network/sp-move) 🔴, [Move smart contract by Neatcoin](https://github.com/neatcoin/neatcoin) 🟢, [Sol2Ink](https://github.com/Supercolony-net/sol2ink) 🟡| Functional Programming Languages, other languages with developed toolchains | -| Smart Contract Security | [Vanguard](https://github.com/Veridise/Vanguard) 🟢| +| Smart Contract Security | [Vanguard](https://github.com/Veridise/Vanguard) 🟡| | Testing | [Halva](https://github.com/halva-suite/halva) 🔴, [Ink Waterfall](https://github.com/paritytech/ink-waterfall) 🟡, [Redspot](https://github.com/patractlabs/redspot) 🔴, [MixBytes Tank](https://github.com/mixbytes/tank) 🔴, [sub-flood](https://github.com/NikVolf/sub-flood) 🔴, [Substrate debug-kit](https://github.com/paritytech/substrate-debug-kit) 🔴, [Dotscale - SCALE Codec Comparator](https://github.com/arijitAD/dotscale) 🔴, [Asset CLI tool](https://github.com/JesseAbram/asset_cli_tool) 🔴, [sub_crash](https://github.com/JesseAbram/unfinished_testing_tool) 🔴, [subwasm](https://github.com/chevdor/subwasm) 🟢, [subsee](https://github.com/ascjones/subsee) 🔴, [polkadot-lab](https://github.com/w3f/polkadot-lab) 🔴, [Zombienet](https://github.com/paritytech/zombienet) 🟢, [RPC-perf](https://github.com/dwellir-public/rpc-perf/) 🔴| -| Testnet | [Polkadot Launch](https://github.com/paritytech/polkadot-launch) 🟡, [polkadot-starship](https://github.com/koute/polkadot-starship) 🔴, [Fork off Substrate](https://github.com/maxsam4/fork-off-substrate) 🔴, [Parachain Launch](https://github.com/open-web3-stack/parachain-launch) 🟢| -| Benchmarking | [Substrate Graph Benchmarks](https://github.com/shawntabrizi/substrate-graph-benchmarks) 🔴| -| Blockchain Indexing Engine | [Substrate Archive](https://github.com/paritytech/substrate-archive) 🟡, [PSQL Indexer](https://github.com/usetech-llc/polkadot_psql_indexer) 🔴, [Polkadothub Indexer](https://github.com/figment-networks/polkadothub-indexer) :grey_question:, [Substrate Graph](https://github.com/playzero/substrate-graph) 🔴, [Hydra](https://github.com/subsquid/hydra) 🔴, [Subquery](https://github.com/OnFinality-io/subql) 🟢, [Polkadot Profit Transformer](https://github.com/p2p-org/polkadot-profit-transformer) 🟡| -| Blockchain/Event Monitoring | [Web3 Guardian](https://github.com/open-web3-stack/guardian) 🟡, [Aurras Event Manager](https://github.com/HugoByte/aurras-event-manager) 🟡, [@commonwealth/chain-events](https://github.com/hicommonwealth/chain-events) 🟡, [Massbit](https://github.com/massbitprotocol/massbitchain) 🟡| +| Testnet | [Polkadot Launch](https://github.com/paritytech/polkadot-launch) 🔴, [polkadot-starship](https://github.com/koute/polkadot-starship) 🔴, [Fork off Substrate](https://github.com/maxsam4/fork-off-substrate) 🔴, [Parachain Launch](https://github.com/open-web3-stack/parachain-launch) 🟢| +| Benchmarking | [Clockchain](https://github.com/0xekez/clockchain) 🔴, [Substrate Graph Benchmarks](https://github.com/shawntabrizi/substrate-graph-benchmarks) 🔴| +| Blockchain Indexing Engine | [Substrate Archive](https://github.com/paritytech/substrate-archive) 🟡, [PSQL Indexer](https://github.com/usetech-llc/polkadot_psql_indexer) 🔴, [Substrate Graph](https://github.com/playzero/substrate-graph) 🔴, [Hydra](https://github.com/subsquid/hydra) 🔴, [Subquery](https://github.com/OnFinality-io/subql) 🟢, [Polkadot Profit Transformer](https://github.com/p2p-org/polkadot-profit-transformer) 🟡| +| Blockchain/Event Monitoring | [Web3 Guardian](https://github.com/open-web3-stack/guardian) 🔴, [Aurras Event Manager](https://github.com/HugoByte/aurras-event-manager) 🟡, [@commonwealth/chain-events](https://github.com/hicommonwealth/chain-events) 🔴, [Massbit](https://github.com/massbitprotocol/massbitchain) 🟡, [Polkadot Basic Notifications](https://github.com/kianenigma/polkadot-basic-notification) 🟢| | Gaming | [Crossbow](https://github.com/dodorare/crossbow) 🟢| [Amethyst](https://amethyst.rs/) + [Substrate](https://substrate.dev/) | | No-code Platforms | [EzCode's Polkadot.js plugin on Bubble.io](https://github.com/NovaBloq/Bubble-Plugin-Polkadot.js) 🔴, [Blackprint Visual Programming Polkadot.js module](https://github.com/Blackprint/nodes-polkadot.js) 🟢| | -| XCM | [XCM-tools](https://github.com/PureStake/xcm-tools) 🟢, [ParaSpell](https://github.com/dudo50/ParaSpell) 🟢| | +| XCM | [XCM-tools](https://github.com/PureStake/xcm-tools) 🟢, [ParaSpell](https://github.com/dudo50/ParaSpell) 🟢, [XBI](https://github.com/t3rn/xbi) 🟢| | | Wallets | [Metadata Portal](https://github.com/nova-wallet/metadata-portal) 🟢, [Tesseract](https://github.com/tesseract-one/Tesseract.rs) 🟢, [WalletConnect](https://github.com/w3f-grants-archive/walletconnect-v2-monorepo) 🔴, [BitGoJS](https://github.com/BitGo/BitGoJS/tree/master) 🟢| | -| Other | [open-web3 JS library](https://github.com/open-web3-stack/open-web3.js) 🔴, [VM-Bridge](https://github.com/CycanTech/GVM-Bridge) 🔴, [srtool](https://github.com/paritytech/srtool) 🟢, [srtool-cli](https://github.com/chevdor/srtool-cli) 🟢, [Substrate Tip Bot](https://github.com/paritytech/substrate-tip-bot) 🟢, [ORI (Onchain Risk Intelligence)](https://github.com/syntifi/ori) 🔴, [PolkaTools](https://github.com/albertov19/PolkaTools) 🟢, [polkadot-scripts](https://github.com/paritytech/polkadot-scripts) 🟢, [Static analyzer for Substrate FRAME's pallets](https://github.com/simon-perriard/saft) 🟡, [Sube](https://github.com/virto-network/sube) 🔴, [data-store-sidecar](https://github.com/CESSProject/data-store-sidecar) 🔴, [SugarFunge](https://github.com/SugarFunge/sugarfunge-node) 🟢, [substrate-wasmedge](https://github.com/second-state/substrate-wasmedge) 🟢| +| Other | [open-web3 JS library](https://github.com/open-web3-stack/open-web3.js) 🔴, [VM-Bridge](https://github.com/CycanTech/GVM-Bridge) 🔴, [srtool](https://github.com/paritytech/srtool) 🟢, [srtool-cli](https://github.com/chevdor/srtool-cli) 🟢, [Substrate Tip Bot](https://github.com/paritytech/substrate-tip-bot) 🟡, [ORI (Onchain Risk Intelligence)](https://github.com/syntifi/ori) 🔴, [PolkaTools](https://github.com/albertov19/PolkaTools) 🟡, [polkadot-scripts](https://github.com/paritytech/polkadot-scripts) 🟢, [Sube](https://github.com/virto-network/sube) 🔴, [data-store-sidecar](https://github.com/CESSProject/data-store-sidecar) 🔴, [SugarFunge](https://github.com/SugarFunge/sugarfunge-node) 🟢, [substrate-wasmedge](https://github.com/second-state/substrate-wasmedge) 🟢| ### ink Smart Contracts @@ -123,38 +123,38 @@ In the below sections you can find a list of different layers of the Polkadot St | --------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ---------------------------------- | | Bridges | [Dante Protocol](https://github.com/dantenetwork/protocol-stack-for-ink) 🟢| | | DeFi | [Polkadot AMM](https://github.com/realnimish/polkadot-amm) 🔴, [Vera](https://github.com/veradefi/defi) 🟡, [Nsure Insurance](https://github.com/nsure-tech/dot-contract) 🔴, [Everlasting Cash](https://github.com/CycanTech/ELC) 🔴, [Coinversation](https://github.com/Coinversation/coinpro) 🔴, [zenlink-dex-contract](https://github.com/zenlinkpro/zenlink-dex-contract) 🔴, [AlgoCash](https://github.com/ReserveLabs/AlgoCash) 🔴| New seigniorage-style stable coins | -| Gaming | [Open Emoji Battler](https://github.com/OpenEmojiBattler/open-emoji-battler) 🟢, [NewOmega](https://github.com/WiktorStarczewski/newomega.polkadot/blob/master/newomega_delegator/newomega/newomega.rs) 🔴| | +| Gaming | [Open Emoji Battler](https://github.com/OpenEmojiBattler/open-emoji-battler) 🟡, [NewOmega](https://github.com/WiktorStarczewski/newomega.polkadot/blob/master/newomega_delegator/newomega/newomega.rs) 🔴| | | DAO | [subDAO](https://github.com/SubDAO-Network/subDAO-contracts) 🔴, [RainbowDAO](https://github.com/RainbowcityFoundation/RainbowDAO-Protocol-Ink-milestone_1) 🔴| | -| Spam Protection | [Prosopo](https://github.com/prosopo-io/integration) 🟡| | -| Other | [Candle Auctions](https://github.com/agryaznov/candle-auction-ink) 🔴, [polkasign-contract](https://github.com/SubDAO-Network/polkasign-contract) 🔴, [OCEX](https://github.com/bsn-si/ocex-cli) 🔴, [Roloi](https://github.com/RoloiMoney/roloi-polkadot-w3f-grant) 🟡| | +| Spam Protection | [Prosopo](https://github.com/prosopo-io/integration) 🔴| | +| Other | [Candle Auctions](https://github.com/agryaznov/candle-auction-ink) 🔴, [polkasign-contract](https://github.com/SubDAO-Network/polkasign-contract) 🔴, [OCEX](https://github.com/bsn-si/ocex-cli) 🔴, [Roloi](https://github.com/RoloiMoney/roloi-polkadot-w3f-grant) 🔴| | ### Chains and Pallets | Components | Existing projects | Potentially interesting projects | | ------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | Scalable Transactions | [Perun channels](https://github.com/perun-network/perun-polkadot-pallet) 🟡, [CLI demo of Perun](https://github.com/perun-network/perun-polkadot-demo) 🔴, [Astar](https://github.com/AstarNetwork/Astar) 🟢, [Celer](https://github.com/celer-network/cChannel-substrate) 🔴, [Gunclear](https://github.com/GunClear/Gunero) 🔴| roll-ups, DAG-based consensus mechanisms, side chains | -| Bridges | [interBTC](https://github.com/interlay/interbtc) 🟢, [ChainBridge](https://github.com/centrifuge/ChainBridge/) 🟢, [EOS by Bifrost](https://github.com/bifrost-finance/bifrost-eos-relay) 🔴, [POA - Substrate](https://github.com/paritytech/parity-bridge) 🔴, [Substrate - Ethereum DAI Bridge](https://github.com/akropolisio/POC-polkadai-bridge) 🔴, [Substrate - Substrate Bridge](https://github.com/paritytech/substrate-bridge-relay) 🔴, [BTC by ChainX](https://github.com/chainx-org/ChainX) 🟡, [Cosmos-Substrate bridge](https://github.com/ChorusOne/wormhole-bridge) 🔴, [Substrate IBC Pallet](https://github.com/octopus-network/substrate-ibc) 🟢, [Polkadot Ethereum Bridge](https://github.com/Snowfork/polkadot-ethereum) 🟢, [Darwinia](https://github.com/darwinia-network/darwinia) 🟢, [Stellar/DeFi Bridge by Pendulum](https://github.com/pendulum-chain/pendulum-prototype) 🔴, [Filecoindot](https://github.com/ChainSafe/filecoindot) 🟢| ZCash | +| Bridges | [interBTC](https://github.com/interlay/interbtc) 🟢, [ChainBridge](https://github.com/centrifuge/ChainBridge/) 🟢, [EOS by Bifrost](https://github.com/bifrost-finance/bifrost-eos-relay) 🔴, [POA - Substrate](https://github.com/paritytech/parity-bridge) 🔴, [Substrate - Ethereum DAI Bridge](https://github.com/akropolisio/POC-polkadai-bridge) 🔴, [Substrate - Substrate Bridge](https://github.com/paritytech/substrate-bridge-relay) 🔴, [BTC by ChainX](https://github.com/chainx-org/ChainX) 🟢, [Cosmos-Substrate bridge](https://github.com/ChorusOne/wormhole-bridge) 🔴, [Substrate IBC Pallet](https://github.com/octopus-network/substrate-ibc) 🟢, [Polkadot Ethereum Bridge](https://github.com/Snowfork/polkadot-ethereum) 🟢, [Darwinia](https://github.com/darwinia-network/darwinia) 🟢, [Stellar/DeFi Bridge by Pendulum](https://github.com/pendulum-chain/pendulum-prototype) 🔴, [Filecoindot](https://github.com/ChainSafe/filecoindot) 🟡| ZCash | | Privacy | [Webb Anon](https://github.com/webb-tools/anon) 🔴, [ZeroChain](https://github.com/LayerXcom/zero-chain) 🔴, [pLibra (Phala Network)](https://github.com/Phala-Network/phala-blockchain) 🟢, [Automata Network](https://github.com/automata-network/automata) 🔴, [zCloak Network](https://github.com/zCloak-Network/zcloak-node) 🔴, [Zero Network](https://github.com/zero-network/zero) 🟢| [Multi-Asset Shielded Pool (MASP)](https://github.com/anoma/masp) , [Zkay](https://arxiv.org/pdf/2009.01020.pdf), [Zexe](https://eprint.iacr.org/2018/962.pdf) | | ZKP | [ZeroPool](https://github.com/zeropoolnetwork/zeropool-substrate-groth16-example) 🔴, [Megaclite](https://github.com/patractlabs/megaclite) 🔴, [zkMega](https://github.com/patractlabs/zkmega) 🔴, [PLONK for Substrate](https://github.com/AstarNetwork/plonk) 🔴, [Webb Anchor Protocol](https://github.com/webb-tools/protocol-substrate) 🟢| | TEE | [Acurast](https://github.com/Acurast/acurast-core) 🟢, [Integritee](https://github.com/integritee-network/worker) 🟢, [substraTEE](https://github.com/scs/substraTEE) 🔴| -| DeFi | [Reef](https://github.com/reef-defi/reef-chain) 🟡, [Diora](https://github.com/Diora-Network/Diora) 🟡, [Pendulum Chain](https://github.com/pendulum-chain/pendulum) 🟢, [Compound Gateway](https://github.com/compound-finance/gateway) 🔴, [Parallel Finance](https://github.com/parallel-finance/parallel) 🟢, [PINT](https://github.com/ChainSafe/PINT) 🔴, [Laminar Chain](https://github.com/laminar-protocol/laminar-chain) 🔴, [Acala](https://github.com/AcalaNetwork/Acala) 🟢, [Centrifuge](https://github.com/centrifuge/centrifuge-chain) 🟢, [Stafi](https://github.com/stafiprotocol/stafi-node) 🟡, [Definex](https://github.com/y2labs-0sh/definex) 🔴, [OAX Foundation](https://github.com/OAXFoundation/parrot) 🔴, [Cybex](https://github.com/alexxuyang/substrate-dex) 🔴, [Zenlink](https://github.com/zenlinkpro/pallet-zenlink) 🔴, [Swaps Pallet](https://github.com/lsaether/pallet-swaps) 🔴, [Polkadex](https://github.com/Polkadex-Substrate/Polkadex/tree/master) 🟢, [SubDEX](https://github.com/subdarkdex/subdex-parachain) 🔴, [HydraDX](https://github.com/galacticcouncil/hack.HydraDX-node) 🟢, [Substrate Stablecoin](https://github.com/apopiak/stablecoin) 🔴, [Standard protocol](https://github.com/digitalnativeinc/standard-substrate) 🔴, [Polkaswap](https://github.com/sora-xor/sora2-network) 🟢, [Curve AMM](https://github.com/equilibrium-eosdt/equilibrium-curve-amm) 🔴, [Konomi Network](https://github.com/konomi-network/cumulus/) 🔴, [Composable Finance](https://github.com/ComposableFi/composable) 🟢, [Stable Asset](https://github.com/nutsfinance/stable-asset) 🟢, [Libra Payment](https://github.com/atscaletech/libra) 🟡, [Mangata](https://github.com/mangata-finance/mangata-node) 🟢, [Tidechain](https://github.com/tidelabs/tidechain) 🟢, [Basilisk](https://github.com/galacticcouncil/Basilisk-node) 🟢, [Polymesh](https://github.com/PolymeshAssociation/Polymesh) 🟢| DEX with privacy and confidentiality features such as those found in a [dark pool](https://en.wikipedia.org/wiki/Dark_pool) | -| Smart contract chains | [moonbeam](https://github.com/PureStake/moonbeam) 🟢, [Edgeware](https://github.com/hicommonwealth/edgeware-node) 🔴, [ParaState](https://github.com/ParaState/substrate-ssvm-node) 🔴, [gear](https://github.com/gear-tech/gear) 🟢, [CENNZnet](https://github.com/cennznet/cennznet) 🟡, [SkyeKiwi](https://github.com/skyekiwi/skyekiwi-network) 🔴, [OAK-blockchain](https://github.com/OAK-Foundation/OAK-blockchain) 🟢, [ICE Blockchain](https://github.com/web3labs/ice-substrate) 🟢| smart contract chains with novel security approaches, smart contract chains based on existing toolchains | -| Oracle | [Laminar](https://github.com/laminar-protocol/open-runtime-module-library/tree/master/oracle) 🟢, [Parallel Finance](https://github.com/parallel-finance/parallel/blob/feature-oracle/pallets/ocw-oracle/src/lib.rs) 🟢, [Chainlink-polkadot](https://github.com/smartcontractkit/chainlink-polkadot) 🔴, [Ares Protocol](https://github.com/aresprotocols/ares) 🟢, [Kylin Network](https://github.com/Kylin-Network/kylin-node) 🟢, [interbtc-clients oracle](https://github.com/interlay/interbtc-clients/tree/master/oracle) 🟢, [Anonima](https://github.com/webb-tools/anonima) 🔴, [Apollo](https://github.com/ComposableFi/composable/tree/main/frame/oracle) 🟢| -| Identity/DID | [Litentry](https://github.com/litentry/litentry-runtime) 🔴, [pallet-did](https://github.com/substrate-developer-hub/pallet-did) 🔴, [dot-id](https://github.com/prasad-kumkar/dot-id) 🔴| +| DeFi | [Reef](https://github.com/reef-defi/reef-chain) 🟡, [Diora](https://github.com/Diora-Network/Diora) 🔴, [Pendulum Chain](https://github.com/pendulum-chain/pendulum) 🟢, [Compound Gateway](https://github.com/compound-finance/gateway) 🔴, [Parallel Finance](https://github.com/parallel-finance/parallel) 🟢, [PINT](https://github.com/ChainSafe/PINT) 🔴, [Laminar Chain](https://github.com/laminar-protocol/laminar-chain) 🔴, [Acala](https://github.com/AcalaNetwork/Acala) 🟢, [Centrifuge](https://github.com/centrifuge/centrifuge-chain) 🟢, [Stafi](https://github.com/stafiprotocol/stafi-node) 🟡, [Definex](https://github.com/y2labs-0sh/definex) 🔴, [OAX Foundation](https://github.com/OAXFoundation/parrot) 🔴, [Cybex](https://github.com/alexxuyang/substrate-dex) 🔴, [Zenlink](https://github.com/zenlinkpro/pallet-zenlink) 🔴, [Swaps Pallet](https://github.com/lsaether/pallet-swaps) 🔴, [Polkadex](https://github.com/Polkadex-Substrate/Polkadex/tree/master) 🟢, [SubDEX](https://github.com/subdarkdex/subdex-parachain) 🔴, [HydraDX](https://github.com/galacticcouncil/hack.HydraDX-node) 🟢, [Substrate Stablecoin](https://github.com/apopiak/stablecoin) 🔴, [Standard protocol](https://github.com/digitalnativeinc/standard-substrate) 🔴, [Polkaswap](https://github.com/sora-xor/sora2-network) 🟢, [Curve AMM](https://github.com/equilibrium-eosdt/equilibrium-curve-amm) 🔴, [Konomi Network](https://github.com/konomi-network/cumulus/) 🔴, [Composable Finance](https://github.com/ComposableFi/composable) 🟢, [Stable Asset](https://github.com/nutsfinance/stable-asset) 🟢, [Libra Payment](https://github.com/atscaletech/libra) 🟡, [Mangata](https://github.com/mangata-finance/mangata-node) 🟢, [Tidechain](https://github.com/tidelabs/tidechain) 🟢, [Basilisk](https://github.com/galacticcouncil/Basilisk-node) 🟢, [Polymesh](https://github.com/PolymeshAssociation/Polymesh) 🟢, [Supersig](https://github.com/kabocha-network/pallet_supersig) 🟡| DEX with privacy and confidentiality features such as those found in a [dark pool](https://en.wikipedia.org/wiki/Dark_pool) | +| Smart contract chains | [moonbeam](https://github.com/PureStake/moonbeam) 🟢, [Edgeware](https://github.com/hicommonwealth/edgeware-node) 🔴, [ParaState](https://github.com/ParaState/substrate-ssvm-node) 🔴, [gear](https://github.com/gear-tech/gear) 🟢, [CENNZnet](https://github.com/cennznet/cennznet) 🟡, [SkyeKiwi](https://github.com/skyekiwi/skyekiwi-network) 🟢, [OAK-blockchain](https://github.com/OAK-Foundation/OAK-blockchain) 🟢, [ICE Blockchain](https://github.com/web3labs/ice-substrate) 🟢| smart contract chains with novel security approaches, smart contract chains based on existing toolchains | +| Oracle | [Laminar](https://github.com/laminar-protocol/open-runtime-module-library/tree/master/oracle) 🟢, [Chainlink-polkadot](https://github.com/smartcontractkit/chainlink-polkadot) 🔴, [Ares Protocol](https://github.com/aresprotocols/ares) 🟢, [Kylin Network](https://github.com/Kylin-Network/kylin-node) 🟢, [interbtc-clients oracle](https://github.com/interlay/interbtc-clients/tree/master/oracle) 🟢, [Anonima](https://github.com/webb-tools/anonima) 🔴, [Apollo](https://github.com/ComposableFi/composable/tree/main/code/parachain/frame/oracle) 🟢| +| Identity/DID | [Parami](https://github.com/parami-foundation/parami-blockchain) 🟢, [Litentry](https://github.com/litentry/litentry-parachain) 🔴, [pallet-did](https://github.com/substrate-developer-hub/pallet-did) 🔴, [dot-id](https://github.com/prasad-kumkar/dot-id) 🔴| | IoT | [Nodle](https://github.com/NodleCode/chain) 🟢, [MXC/DataHighway](https://github.com/DataHighway-DHX/node) 🔴, [peaq-network-node](https://github.com/peaqnetwork/peaq-network-node) 🟢| -| Verifiable Claims | [KILT](https://github.com/KILTprotocol/kilt-node) 🟢, [Dock](https://github.com/docknetwork/dock-substrate) 🟢, [Fennel Protocol](https://github.com/fennelLabs/Fennel-Protocol) 🟢| +| Verifiable Claims | [KILT](https://github.com/KILTprotocol/kilt-node) 🟢, [Dock](https://github.com/docknetwork/dock-substrate) 🟡, [Fennel Protocol](https://github.com/fennelLabs/Fennel-Protocol) 🟢| | Supply chain | [DSCP Node](https://github.com/digicatapult/dscp-node) 🟢| | | Health care | [AriaHealth](https://github.com/AriaHealth/MetaNetwork) 🔴| | -| Social Networking | [Social Network](https://github.com/social-network/blockchain) 🔴, [SubSocial](https://github.com/dappforce/subsocial-parachain) 🟢, [ZeroDAO](https://github.com/ZeroDAO/ZeroDAO-node) 🔴, [Myriad Node](https://github.com/myriadsocial/myriad-node) 🟡, [Wika Network](https://github.com/randombishop/wika_etl) 🔴, [Project Liberty](https://github.com/LibertyDSNP/mrc) 🟢, [Listen](https://github.com/listenofficial/listen-parachain) 🟡, [Tribal Protocol](https://github.com/tribal-protocol/tribal_contract) 🟡, [Five Degrees on Substrate](https://github.com/rust-0x0/hex-space-protocol-substrate) 🟡, [Acuity Social](https://github.com/acuity-social/acuity-substrate) 🟢| Private instant messenger that uses on-chain identity | -| Governance/DAO | [Hashed Network](https://github.com/hashed-io/hashed-substrate) 🟢, [Sunshine DAO](https://github.com/sunshine-protocol/sunshine-bounty) 🔴, [Governance OS](https://github.com/NucleiStudio/governance-os) 🔴, [Idavoll Network](https://github.com/idavollnetwork/idavoll) 🔴, [Substrate Moloch](https://github.com/DoraFactory/Substrate-Moloch-V2) 🔴, [QRUCIAL-DAO](https://github.com/Qrucial/QRUCIAL-DAO) 🟢, [Societal](https://github.com/sctllabs/societal_node) :grey_question:, [DAOs](https://github.com/daos-org/daos) 🟢| [Consul](https://github.com/consul/consul) - Open Government and E-Participation Web Software | +| Social Networking | [Social Network](https://github.com/social-network/blockchain) 🔴, [SubSocial](https://github.com/dappforce/subsocial-parachain) 🟢, [ZeroDAO](https://github.com/ZeroDAO/ZeroDAO-node) 🔴, [Myriad Node](https://github.com/myriadsocial/myriad-node) 🟡, [Wika Network](https://github.com/randombishop/wika_etl) 🔴, [Project Liberty](https://github.com/LibertyDSNP/mrc) 🟢, [Listen](https://github.com/listenofficial/listen-parachain) 🟢, [Tribal Protocol](https://github.com/tribal-protocol/tribal_contract) 🟡, [Five Degrees on Substrate](https://github.com/rust-0x0/hex-space-protocol-substrate) 🟡, [Acuity Social](https://github.com/acuity-social/acuity-substrate) 🟢| Private instant messenger that uses on-chain identity | +| Governance/DAO | [Hashed Network](https://github.com/hashed-io/hashed-substrate) 🟢, [Sunshine DAO](https://github.com/sunshine-protocol/sunshine-bounty) 🔴, [Governance OS](https://github.com/NucleiStudio/governance-os) 🔴, [Idavoll Network](https://github.com/idavollnetwork/idavoll) 🔴, [Substrate Moloch](https://github.com/DoraFactory/Substrate-Moloch-V2) 🔴, [QRUCIAL-DAO](https://github.com/Qrucial/QRUCIAL-DAO) 🟡, [Societal](https://github.com/sctllabs/societal-node) 🟡, [DAOs](https://github.com/daos-org/daos) 🟢, [Shivarthu](https://github.com/amiyatulu/shivarthu/) 🟢| [Consul](https://github.com/consul/consul) - Open Government and E-Participation Web Software | | Prediction Markets and Futarchy | [Zeitgeist](https://github.com/zeitgeistpm/zeitgeist) 🟢, [X Predict Market](https://github.com/XPredictMarket/NodePredict) 🔴| | Messaging | [HOPR](https://github.com/validitylabs/HOPR-PL-Substrate) 🔴, [Nolik](https://github.com/chainify/pallet-nolik/) 🟡| -| File Storage, Cloud | [Subsocial-Offchain](https://github.com/dappforce/subsocial-offchain) 🔴, [DatDot](https://github.com/playproject-io/datdot) 🔴, [Crust Network](https://github.com/crustio/crust) 🟢, [offchain::ipfs](https://github.com/rs-ipfs/offchain-ipfs-manual) 🔴, [Canyon Network](https://github.com/canyon-network/canyon) 🔴, [CESS](https://github.com/Cumulus2021/cess) 🟢, [CESS Proving Subsystem](https://github.com/CESSProject/cess-proving-system) 🔴, [Iris](https://github.com/ideal-lab5/iris) 🔴, [fmd-cess](https://github.com/CESSProject/fmd-cess) 🔴, [IPFS Frame V3](https://github.com/DanHenton/pocket-substrate/tree/ipfs-ocw) 🟢, [Threefold Chain](https://github.com/threefoldtech/tfchain) 🟢, [Apron](https://github.com/Apron-Network/apron-node) 🔴| +| File Storage, Cloud | [Subsocial-Offchain](https://github.com/dappforce/subsocial-offchain) 🔴, [DatDot](https://github.com/playproject-io/datdot) 🔴, [Crust Network](https://github.com/crustio/crust) 🟢, [offchain::ipfs](https://github.com/rs-ipfs/offchain-ipfs-manual) 🔴, [Canyon Network](https://github.com/canyon-network/canyon) 🔴, [CESS](https://github.com/Cumulus2021/cess) 🟢, [CESS Proving Subsystem](https://github.com/CESSProject/cess-proving-system) 🔴, [Iris](https://github.com/ideal-lab5/iris) 🔴, [fmd-cess](https://github.com/CESSProject/fmd-cess) 🔴, [IPFS Frame V3](https://github.com/DanHenton/pocket-substrate/tree/ipfs-ocw) 🟡, [Threefold Chain](https://github.com/threefoldtech/tfchain) 🟢, [Apron](https://github.com/Apron-Network/apron-node) 🔴| | Name Service | [Substrate Names](https://github.com/xaya/substrate-names) 🔴, [ENS on Substrate](https://github.com/hskang9/substrate-name-service) 🔴, [PNS-Pallets](https://github.com/pnsproject/pns-pallets) 🔴, [Faceless](https://github.com/HeisenbergLin22/Faceless_milestone1) 🟡| -| Gaming | [Bit.country](https://github.com/bit-country/Bit-Country-Blockchain) 🟢, [SubGame](https://github.com/SubGame-Network/subgame-network) 🔴, [subzero](https://github.com/playzero/subzero) 🔴, [Web3Games](https://github.com/web3gamesofficial/web3games-blockchain) 🔴, [Ajuna Network](https://github.com/ajuna-network/Ajuna) 🟢, [Gafi Network](https://github.com/cryptoviet/gafi) 🟡, [Asylum](https://gitlab.com/asylum-space/asylum-item-nft) 🟢 | +| Gaming | [Bit.country](https://github.com/bit-country/Bit-Country-Blockchain) 🟢, [SubGame](https://github.com/SubGame-Network/subgame-network) 🔴, [subzero](https://github.com/playzero/subzero) 🔴, [Web3Games](https://github.com/web3gamesofficial/web3games-blockchain) 🔴, [Ajuna Network](https://github.com/ajuna-network/Ajuna) 🟢, [Gafi Network](https://github.com/cryptoviet/gafi) 🔴, [Asylum](https://gitlab.com/asylum-space/asylum-item-nft) 🟢 | | Computation/AI | [DeepBrain Chain](https://github.com/DeepBrainChain/DeepBrainChain-MainChain) 🟢, [AI Infrastructure on Blockchain](https://github.com/anudit/cerebrum) 🔴| -| Enable specific use-cases | [Robonomics](https://github.com/airalab/substrate-node-robonomics) 🟢, [UniversalDOT](https://github.com/UniversalDot/pallets) 🟡, [Evercity Sustainable Finance Protocol](https://github.com/EvercityEcosystem/evercity-chain) 🟡, [Fennel Protocol](https://github.com/fennelLabs/Fennel-Protocol) 🟢, [logion](https://github.com/logion-network/logion-node) 🟢| -| NFT | [ternoa](https://github.com/capsule-corp-ternoa/chain) 🟢, [FRAME Pallet: NFTs for Substrate](https://github.com/danforbes/pallet-nft) 🔴, [Unique NFT Parachain](https://github.com/UniqueNetwork/unique-chain) 🟡, [DNFT](https://github.com/DNFT-Team/dnft-substrate-node/tree/master/pallets) 🔴, [RMRK-Substrate](https://github.com/rmrk-team/rmrk-substrate) 🟢, [NT-NFTs](https://github.com/Popular-Coding/nt-nft) 🟡, [Green Lemon](https://github.com/GreenLemonProtocol/dksap-polkadot) 🟡, [Basilisk](https://github.com/galacticcouncil/Basilisk-node) 🟢| +| Enable specific use-cases | [Robonomics](https://github.com/airalab/substrate-node-robonomics) 🟢, [UniversalDOT](https://github.com/UniversalDot/pallets) 🟡, [Evercity Sustainable Finance Protocol](https://github.com/EvercityEcosystem/evercity-chain) 🔴, [Fennel Protocol](https://github.com/fennelLabs/Fennel-Protocol) 🟢, [logion](https://github.com/logion-network/logion-node) 🟢| +| NFT | [ternoa](https://github.com/capsule-corp-ternoa/chain) 🟡, [FRAME Pallet: NFTs for Substrate](https://github.com/danforbes/pallet-nft) 🔴, [Unique NFT Parachain](https://github.com/UniqueNetwork/unique-chain) 🔴, [DNFT](https://github.com/DNFT-Team/dnft-substrate-node/tree/master/pallets) 🔴, [RMRK-Substrate](https://github.com/rmrk-team/rmrk-substrate) 🟢, [NT-NFTs](https://github.com/Popular-Coding/nt-nft) 🟢, [Green Lemon](https://github.com/GreenLemonProtocol/dksap-polkadot) 🟡, [Basilisk](https://github.com/galacticcouncil/Basilisk-node) 🟢| | Randomness | [DKG and Randomness Beacon](https://github.com/Cardinal-Cryptography/substrate/tree/randomness-beacon) 🟡| | Licensing | [Anagolay Network](https://github.com/anagolay/anagolay-chain) 🟢| | Banking Integration | [FIAT on-off-ramp](https://github.com/element36-io/ebics-java-service) 🔴| @@ -162,7 +162,7 @@ In the below sections you can find a list of different layers of the Polkadot St | Collection of Pallets | [Substrate Open Runtime Module Library](https://github.com/open-web3-stack/open-runtime-module-library) 🟢, [warehouse](https://github.com/galacticcouncil/warehouse) 🟢, [InvArch FRAME Pallet Library](https://github.com/InvArch/InvArch-Frames) 🟢| | Marketplaces | [Dot Marketplace](https://github.com/WowLabz/dot-marketplace-v2/tree/Phase2_Milestone2) 🟡, [Gated Marketplace](https://github.com/hashed-io/hashed-substrate/tree/main/pallets/gated-marketplace) 🟢| | Carbon Credits | [BitGreen](https://github.com/bitgreen/bitg-node) 🟢, [Carbon Assets Pallet](https://github.com/EvercityEcosystem/carbon-assets) 🟡, [Sequester Pallets](https://github.com/SequesterChain/pallets) 🔴| -| Other | [Substrate Account Filter](https://github.com/gautamdhameja/substrate-account-filter) 🔴, [Subtensor](https://github.com/opentensor/subtensor) 🟢, [AdMeta](https://github.com/AdMetaNetwork/admeta) 🟡, [Chocolate Node](https://github.com/chocolatenetwork/chocolate-node) 🟢, [Virto Network](https://github.com/virto-network/virto-node) 🟡, [Substrate Validator Set](https://github.com/gautamdhameja/substrate-validator-set) 🟢, [DEIP](https://github.com/DEIPworld/deip-node) 🟡, [DeBio](https://github.com/debionetwork/debio-node) 🟢, [MathChain](https://github.com/mathwallet/MathChain) 🔴, [encointer](https://github.com/encointer/encointer-node) 🟢, [Grassland](https://github.com/grasslandnetwork/substrate_node) 🔴, [Substrate-Tutorials](https://github.com/rusty-crewmates/substrate-tutorials) 🟢, [Fair Squares](https://github.com/Fair-Squares/fair-squares) 🟢, [Totem Live Accounting](https://github.com/totem-tech/totem) 🔴, [Escrow Pallet](https://github.com/herou/EscrowPallet) 🟡, [TREX](https://github.com/NexTokenTech/TREX) 🟡, [Relation Graph](https://github.com/relationlabs/Relation-Graph) 🟢| Decentralized review/reputation system | +| Other | [Substrate Account Filter](https://github.com/gautamdhameja/substrate-account-filter) 🔴, [Subtensor](https://github.com/opentensor/subtensor) 🟢, [AdMeta](https://github.com/AdMetaNetwork/admeta) 🟡, [Chocolate Node](https://github.com/chocolatenetwork/chocolate-node) 🟢, [Virto Network](https://github.com/virto-network/virto-node) 🟡, [Substrate Validator Set](https://github.com/gautamdhameja/substrate-validator-set) 🟢, [DEIP](https://github.com/DEIPworld/deip-node) 🔴, [DeBio](https://github.com/debionetwork/debio-node) 🟢, [MathChain](https://github.com/mathwallet/MathChain) 🔴, [encointer](https://github.com/encointer/encointer-node) 🟢, [Grassland](https://github.com/grasslandnetwork/substrate_node) 🔴, [Substrate-Tutorials](https://github.com/rusty-crewmates/substrate-tutorials) 🟡, [Fair Squares](https://github.com/Fair-Squares/fair-squares) 🟢, [Totem Live Accounting](https://github.com/totem-tech/totem) 🔴, [Escrow Pallet](https://github.com/herou/EscrowPallet) 🟡, [TREX](https://github.com/NexTokenTech/TREX) 🟡, [Relation Graph](https://github.com/relationlabs/Relation-Graph) 🟢| Decentralized review/reputation system | ### Host @@ -178,19 +178,19 @@ In the below sections you can find a list of different layers of the Polkadot St | Components | Existing projects | Potentially interesting projects | | --------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------- | -| Secure validator setup | [Polkadot Validation Node Ansible Setup](https://github.com/polkachu/polkadot-validator) 🟡, [W3F Polkadot Validator Setup](https://github.com/w3f/polkadot-validator-setup) 🔴| +| Secure validator setup | [Polkadot Validation Node Ansible Setup](https://github.com/polkachu/polkadot-validator) 🟢, [W3F Polkadot Validator Setup](https://github.com/w3f/polkadot-validator-setup) 🔴| | High availability setup | [Archipel](https://github.com/luguslabs/archipel) 🔴, [Polkadot Failover Mechanism](https://github.com/protofire/polkadot-failover-mechanism) 🔴| | Load Balanced Endpoints | [terragrunt-polkadot](https://github.com/insight-w3f/terragrunt-polkadot) 🔴, [Geometry Labs' Substrate Meta repo](https://github.com/sudoblockio/substrate-meta) 🔴| | Deployment Tools | [Polkadot Package Manager](https://github.com/Blockdaemon/bpm-sdk) 🔴, [PolkaHub](https://github.com/akropolisio/polkahub-monorepo) 🔴, [Avado](https://github.com/AvadoDServer/AVADO-DNP-Polkadot-custom) 🔴, [Polkadot Deployer](https://github.com/w3f/polkadot-deployer) 🔴| -| Validator monitoring | [ONE-T](https://github.com/turboflakes/one-t) 🟢, [SubVT](https://github.com/helikon-labs/subvt) 🔴, [P.A.N.I.C.](https://github.com/SimplyVC/panic) 🔴, [Polkalert](https://github.com/galacticcouncil/polkalert) 🔴, [B-Harvest](https://github.com/nodebreaker0-0/substrate/tree/prometheus_v0.3) 🔴, [nmonpolkadot](https://github.com/stakezone/nmonpolkadot) 🔴, [Polkadot-K8s-Monitor](https://github.com/ironoa/polkadot-k8s-monitor) 🟡, [Polkadot-Watcher](https://github.com/w3f/polkadot-watcher) 🟢, [1KV Telegram Bot](https://github.com/helikon-labs/polkadot-kusama-1kv-telegram-bot) 🔴| -| Validator payout management | [Substrate validator auto payout](https://github.com/Colm3na/substrate-auto-payout) 🔴, [Polkadot Payouts](https://github.com/w3f/polkadot-payouts) 🟡, [staking-payouts CLI](https://github.com/emostov/staking-payouts) 🟡, [Payctl](https://github.com/stakelink/substrate-payctl) 🟡, [crunch](https://github.com/turboflakes/crunch) 🟢| +| Validator monitoring | [ONE-T](https://github.com/turboflakes/one-t) 🟢, [SubVT](https://github.com/helikon-labs/subvt) 🔴, [P.A.N.I.C.](https://github.com/SimplyVC/panic) 🟢, [Polkalert](https://github.com/galacticcouncil/polkalert) 🔴, [B-Harvest](https://github.com/nodebreaker0-0/substrate/tree/prometheus_v0.3) 🔴, [nmonpolkadot](https://github.com/stakezone/nmonpolkadot) 🔴, [Polkadot-K8s-Monitor](https://github.com/ironoa/polkadot-k8s-monitor) 🟡, [Polkadot-Watcher](https://github.com/w3f/polkadot-watcher) 🟢, [1KV Telegram Bot](https://github.com/helikon-labs/polkadot-kusama-1kv-telegram-bot) 🟢| +| Validator payout management | [Substrate validator auto payout](https://github.com/Colm3na/substrate-auto-payout) 🔴, [Polkadot Payouts](https://github.com/w3f/polkadot-payouts) 🟢, [staking-payouts CLI](https://github.com/emostov/staking-payouts) 🟡, [Payctl](https://github.com/stakelink/substrate-payctl) 🟡, [crunch](https://github.com/turboflakes/crunch) 🟢| | Staking Miner | [Staking Miner v2](https://github.com/paritytech/staking-miner-v2) 🟢| ### Signatures | Components | Existing projects | Potentially interesting projects | | -------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------- | -| SR25519 | [rust](https://github.com/w3f/schnorrkel) 🔴(contains partial bindings for C, JavaScript, and Python), [.Net bindings](https://github.com/gautamdhameja/sr25519-dotnet) 🔴, [C](https://github.com/usetech-llc/sr25519) 🔴*(old)*, [C](https://github.com/TerenceGe/sr25519-donna) 🔴*(new)*, [C/C++](https://github.com/soramitsu/soramitsu-sr25519-crust) 🔴, [C#](https://github.com/usetech-llc/sr25519_dotnet) 🔴, [Go](https://github.com/ChainSafe/go-schnorrkel) 🔴, [java](https://github.com/debuggor/schnorrkel-java) 🔴, [PHP](https://github.com/gmajor-encrypt/sr25519-bindings) 🟢| +| SR25519 | [rust](https://github.com/w3f/schnorrkel) 🟢(contains partial bindings for C, JavaScript, and Python), [.Net bindings](https://github.com/gautamdhameja/sr25519-dotnet) 🔴, [C](https://github.com/usetech-llc/sr25519) 🔴*(old)*, [C](https://github.com/TerenceGe/sr25519-donna) 🔴*(new)*, [C/C++](https://github.com/soramitsu/soramitsu-sr25519-crust) 🟢, [C#](https://github.com/usetech-llc/sr25519_dotnet) 🔴, [Go](https://github.com/ChainSafe/go-schnorrkel) 🔴, [java](https://github.com/debuggor/schnorrkel-java) 🔴, [PHP](https://github.com/gmajor-encrypt/sr25519-bindings) 🟡| | Signature Aggregation | [apk-proofs](https://github.com/w3f/apk-proofs) 🟢| | Distributed key generation (DKG) | [keygen.rs](https://github.com/isislovecruft/frost-dalek) 🔴| | Validator HSMs | [Zondax Remote Signer](https://github.com/Zondax/buildroot-zondax) 🟡| @@ -200,7 +200,7 @@ In the below sections you can find a list of different layers of the Polkadot St | Components | Existing projects | Potentially interesting projects | | ---------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------- | | PoC | [Spartan](https://github.com/subspace/substrate) 🔴| -| PoW | [PoW consensus for Substrate](https://github.com/paritytech/substrate/tree/master/client/consensus/pow) 🟢, [RandomX](https://github.com/kulupu/kulupu/tree/master/pow) 🟢, [Sha3 PoW](https://github.com/substrate-developer-hub/recipes/tree/master/consensus/sha3pow) 🔴| +| PoW | [PoW consensus for Substrate](https://github.com/paritytech/substrate/tree/master/client/consensus/pow) 🟢, [RandomX](https://github.com/kulupu/kulupu/tree/master/pow) 🟡, [Sha3 PoW](https://github.com/substrate-developer-hub/recipes/tree/master/consensus/sha3pow) 🔴| | Block production | [BABE](https://github.com/paritytech/substrate/tree/master/client/consensus/babe) 🟢, [Aura](https://github.com/paritytech/substrate/tree/master/client/consensus/aura) 🟢| | Finality | [GRANDPA](https://github.com/paritytech/substrate/tree/master/frame/grandpa) 🟢, [AlephBFT](https://github.com/Cardinal-Cryptography/aleph-node/tree/main/finality-aleph) 🟢| | Other | [Nimbus: Upgradeable consensus framework](https://github.com/PureStake/nimbus) 🟡| diff --git a/docs/build/build-parachains.md b/docs/build/build-parachains.md index 853a73561a3d..7a4a3d1cdd8a 100644 --- a/docs/build/build-parachains.md +++ b/docs/build/build-parachains.md @@ -22,7 +22,7 @@ own logic and runs in parallel within the {{ polkadot: Polkadot :polkadot }}{{ kusama: Kusama :kusama }} ecosystem. Developers can focus on creating state-of-the-art chains that take advantage of -{{ polkadot: Polkadot's :polkadot }}{{ kusama: Kusama's :kusama }} next-generation approach. Some +{{ polkadot: Polkadot :polkadot }}{{ kusama: Kusama :kusama }}'s next-generation approach. Some examples of what a parachain could be are: - DeFi (Decentralized Finance) Applications @@ -87,7 +87,7 @@ With {{ polkadot: Polkadot :polkadot }}{{ kusama: Kusama :kusama }}, you will ge of the box if you build your application as a parachain. The [XCM format](../learn/learn-xcm.md) allows any parachains to communicate by passing messages between them. Furthermore, as bridges to other chains are connected (such as those to Bitcoin or Ethereum) -{{ polkadot: Polkadot's :polkadot }}{{ kusama: Kusama's :kusama }} parachains will be able to +{{ polkadot: Polkadot :polkadot }}{{ kusama: Kusama :kusama }}'s parachains will be able to communicate with these as well. :::note @@ -429,8 +429,7 @@ For more information on how parathread per-block auctions work, see the more det ## Resources - - +- [Parachain tutorials](https://docs.substrate.io/reference/how-to-guides/parachains/) - [Common Good Parachains](https://polkadot.network/blog/common-good-parachains-an-introduction-to-governance-allocated-parachain-slots/) - [The Launch of Parachains](https://polkadot.network/blog/the-launch-of-parachains/) - [Parathreads: Pay-as-you-go Parachains](https://medium.com/polkadot-network/parathreads-pay-as-you-go-parachains-7440d23dde06) diff --git a/docs/build/build-smart-contracts.md b/docs/build/build-smart-contracts.md index ea972660f26d..14bb451912cc 100644 --- a/docs/build/build-smart-contracts.md +++ b/docs/build/build-smart-contracts.md @@ -22,7 +22,7 @@ a specific chain address. In comparison, a runtime module is the entire logic of a chain's state transitions (what's called a state transition function). -Smart contracts must consciously implement upgradability while parachains will have the ability to +Smart contracts must consciously implement upgradeability while parachains will have the ability to swap out their code entirely through a root command or via the governance pallet. When you build a smart contract, it will eventually be deployed to a target chain with its own @@ -89,8 +89,8 @@ Here is the list of current resources available to developers who want to get st contracts to deploy on parachains based on Substrate. - [ink!](https://github.com/paritytech/ink) - Parity's ink to write smart contracts. -- [Substrate ink! Workshop](https://docs.substrate.io/tutorials/smart-contracts/develop-contract/) - - Walks you through the basics of writing and deploying an ERC-20 token using `ink!`. +- [Substrate ink! Workshop](https://docs.substrate.io/tutorials/smart-contracts/) - Walks you + through the basics of writing and deploying an ERC-20 token using `ink!`. ### Contracts Pallet @@ -184,10 +184,11 @@ at [PolkaProjects](https://www.polkaproject.com/#/projects?cateID=1&tagID=6). #### Moonbeam -[Moonbeam](https://moonbeam.network/) is another project that is planning to deploy to Polkadot as a parachain and will -support Ethereum compatible smart contracts. Since Moonbeam uses [Frontier](https://github.com/paritytech/frontier), an interoperability -layer with existing Ethereum tooling, it will support all applications that are written to target -the EVM environment with little friction. +[Moonbeam](https://moonbeam.network/) is another project that is planning to deploy to Polkadot as a +parachain and will support Ethereum compatible smart contracts. Since Moonbeam uses +[Frontier](https://github.com/paritytech/frontier), an interoperability layer with existing Ethereum +tooling, it will support all applications that are written to target the EVM environment with little +friction. [Moonriver](https://docs.moonbeam.network/networks/moonriver/), a companion network to Moonbeam, launched as a parachain on Kusama. Parachain functionality is live, and features are being @@ -198,11 +199,19 @@ Try deploying a smart contract to Moonbeam by following their [documentation][mo #### Astar -[Astar Network](https://astar.network/) supports the building of dApps with EVM and WASM smart contracts and offers developers true interoperability. True interoperability with cross-consensus messaging [XCM](https://wiki.polkadot.network/docs/learn-xcm) and cross-virtual machine [XVM](https://github.com/AstarNetwork/). We are made by developers and for developers. Astar’s unique Build2Earn model empowers developers to get paid through a dApp staking mechanism for the code they write and dApps they build. +[Astar Network](https://astar.network/) supports the building of dApps with EVM and WASM smart +contracts and offers developers true interoperability. True interoperability with cross-consensus +messaging [XCM](https://wiki.polkadot.network/docs/learn-xcm) and cross-virtual machine +[XVM](https://github.com/AstarNetwork/). We are made by developers and for developers. Astar’s +unique Build2Earn model empowers developers to get paid through a dApp staking mechanism for the +code they write and dApps they build. -[Shiden Network](https://shiden.astar.network/) is the canary network of Astar Network, live as a parachain on Kusama, and supports the EVM and WASM environment for all developers who want to build out use-cases in a canary network with economic value. Shiden acts as a playground for developers. +[Shiden Network](https://shiden.astar.network/) is the canary network of Astar Network, live as a +parachain on Kusama, and supports the EVM and WASM environment for all developers who want to build +out use-cases in a canary network with economic value. Shiden acts as a playground for developers. -Try deploying an Ethereum or ink! smart contract by following their [documentation](https://docs.astar.network/). +Try deploying an Ethereum or ink! smart contract by following their +[documentation](https://docs.astar.network/). #### Acala diff --git a/docs/build/build-tools-index.md b/docs/build/build-tools-index.md index 733510eda890..b14006c97447 100644 --- a/docs/build/build-tools-index.md +++ b/docs/build/build-tools-index.md @@ -48,8 +48,7 @@ Please see the [Wallets](build-wallets.md) page. - [PolkaStats](https://polkastats.io/) - Polkadot network statistics (includes Kusama). Shows network information and staking details from validators and intentions. [GitHub Repository](https://github.com/Colm3na/polkastats-v2/). -- [Panic](https://github.com/SimplyVC/panic) - A node monitoring and alert server for - validators. +- [Panic](https://github.com/SimplyVC/panic) - A node monitoring and alert server for validators. - [OpenWeb3/Guardian](https://github.com/open-web3-stack/guardian) - A CLI tool and JS library to monitor on chain states and events. @@ -94,7 +93,7 @@ Please see the [Wallets](build-wallets.md) page. ## UI - [Polkadash](https://github.com/Swader/polkadash) - VueJS-based starter kit for custom user - interfaces for Substrate chains. [Tutorials](https://dotleap.com/tag/tutorial/). + interfaces for Substrate chains. - [Polkadot JS Apps UI](https://github.com/polkadot-js/apps) - Repository of the [polkadot.js.org/apps](https://polkadot.js.org/apps) UI. - [Substrate Front-end Template](https://github.com/substrate-developer-hub/substrate-front-end-template) - diff --git a/docs/general/claims.md b/docs/general/claims.md index 0c9ee178c615..1cc85c6b1f55 100644 --- a/docs/general/claims.md +++ b/docs/general/claims.md @@ -13,5 +13,4 @@ tutorials: - [Why do I need to claim my DOT tokens and is there a deadline?](https://support.polkadot.network/support/solutions/articles/65000063553-why-do-i-need-to-claim-my-dot-tokens-and-is-there-a-deadline-) - [I claimed my DOT before Polkadot went live, but still see zero balance!](https://support.polkadot.network/support/solutions/articles/65000063667-i-claimed-my-dot-before-polkadot-went-live-but-still-see-zero-balance-) - [How to claim your DOT - Tutorial](https://support.polkadot.network/support/solutions/articles/65000138217-how-to-claim-your-dot-tutorial) -- [Can I claim multiple Ethereum addresses to one single Polkadot account?](https://support.polkadot.network/support/solutions/articles/65000068824-can-i-claim-multiple-ethereum-addresses-to-one-single-polkadot-account-) - [How do I know my claim worked?](https://support.polkadot.network/support/solutions/articles/65000103605-how-do-i-know-my-claim-worked-) diff --git a/docs/general/kusama/kusama-community.md b/docs/general/kusama/kusama-community.md index f707da727eb3..5eda22309719 100644 --- a/docs/general/kusama/kusama-community.md +++ b/docs/general/kusama/kusama-community.md @@ -21,8 +21,7 @@ anyone doing so is likely trying to scam you.** Information on hosting meetups, applying for funding, and materials for running it. - [Support Knowledgebase](https://support.polkadot.network/support/home) and [Polkadot Support Contact](https://support.polkadot.network). -- [Polkadot's Latest Research](https://research.web3.foundation/en/latest/polkadot/) - also applies - to Kusama. +- [Polkadot's Latest Research](https://research.web3.foundation/en/latest/polkadot/overview.html) - also applies to Kusama. ### Events @@ -66,7 +65,6 @@ application we use most often to interact with the Matrix protocol is the - [Web3 Medium Blog](https://medium.com/@web3) - [Polkadot Blog](https://polkadot.network/blog/) - [Gavin Wood's Medium Blog](https://medium.com/@gavofyork) -- [Dotleap.com Tutorials](https://dotleap.com) ## Newsletters diff --git a/docs/learn/learn-comparisons-avalanche.md b/docs/learn/learn-comparisons-avalanche.md new file mode 100644 index 000000000000..54c466013279 --- /dev/null +++ b/docs/learn/learn-comparisons-avalanche.md @@ -0,0 +1,119 @@ +--- +id: learn-comparisons-avalanche +title: Polkadot and Avalanche +sidebar_label: Avalanche +description: A high-level comparison between Polkadot and Avalanche. +keywords: [avalance, proof of stake, comparison] +slug: ../learn-comparisons-avalanche +--- + + + +:::info + +To keep the content on this page factually correct and up-to-date, [contributions](https://github.com/w3f/polkadot-wiki#contributing-to-documentation) are welcome. + +::: + +Polkadot and Avalanche both have an architecture that allows for application-specific blockchains to be designed and connected to a primary network. In Polkadot, the primary network is the Relay-chain and Avalanche does this with 3 main chains - the P-chain, X-chain, and C-chain. Similar to how Polkadot has its Parachains that connect to the Relay-chain, Avalanche has what’s called [subnets](https://docs.avax.network/subnets). Similar to Polkadot, Avalanche also uses a PoS mechanism for achieving consensus. The validators stake their AVAX tokens in order to participate in the PoS system and secure the network. + +## Architecture + +Avalanche's architecture separates the responsibility of a layer-1 smart contract platform into three chains. This allows for a separation of concern over validators and consensus, transactions, and smart contract execution. Avalanche uses a DAG (Directed Acyclic Graph) structure for one of its chains which is non-linear. Polkadot uses the linear chain structure similar to Bitcoin and Ethereum. Smart contracts in Polkadot are implemented on [parachains](build-smart-contracts#parachains). Polkadot being a layer-0 blockchain, is not a smart contract platform and does not have plans to support them natively. + +![Avalanche Network](../assets/comparisons/avalanche/avalanche-network.png "Image from https://docs.avax.network/") + +Image source: [Avalanche docs](https://docs.avax.network/). + +#### P-chain (Platform) + +The P-chain is responsible for maintaining the validator set and securing the network. AVAX token holders can spin up their own nodes and become validators by staking their tokens. Similar to the NPoS system that Polkadot uses, Avalanche uses a Delegated PoS which allows token holders to also delegate their token stake to existing validators instead of running their own nodes. + +#### X-chain (Exchange) + +The X-chain is responsible for the transaction layer of the Avalanche blockchain. It uses a UTXO model like Bitcoin whereas Polkadot uses an account model like Ethereum. This is the only chain that implements the DAG (Directed Acyclic Graph) model for its blockchain, making this the fastest chain on the Avalanche network. This chain does not support smart contract execution. + +#### C-chain (Contracts) + +The C-chain is where the most activity will happen on the Avalanche network. It allows for different virtual machines to execute smart contract code. Out of the box, it has support for EVM and AVM (Avalanche VM). C-Chain runs a fork of go-ethereum called coreth that has the networking and consensus portions replaced with Avalanche equivalents. + +As Polkadot does not have a smart contract layer out of the box, the EVM and WASM smart contract abilities lie in the Parachain layers. This is a major difference between Polkadot and Avalanche. The smart-contract abilities of Avalanche are baked into its three-chain model. + +#### Subnets or sub-networks + +Avalanche defines a subnet as a dynamic set of validators that achieve consensus on a set of blockchains. +In Polkadot's terminology, Subnets can be viewed as public or private blockchain runtimes that can be built on top of the primary network and allow a subset of the validators to validate these runtimes. Similar to the Parachains on Polkadot, Subnets provide the freedom to choose the transaction fee model, tokenomics, and custom compile rules. One or many validators can start validating a subnet runtime, effectively becoming a subset of the overall validator set of the Primary Network. + +## Consensus + +![Avalanche Network](../assets/comparisons/avalanche/avalanche-consensus-protocols.png "Image from https://gyuho.dev/nakamoto-bitcoin-vs-snow-avalanche-consensus.html#snow-family-protocols") + +Image source: [gyuho.dev](https://gyuho.dev/nakamoto-bitcoin-vs-snow-avalanche-consensus.html#snow-family-protocols). + +Avalanche consensus uses a family of protocols to achieve security, liveness, and finality. These are known as the Snow* protocols. This group of protocols composed together uses both classical and Nakamoto consensus as well as a Delegated Proof-of-Stake system for its block creators. + +The [Snow family](https://docs.avax.network/overview/getting-started/avalanche-consensus) is a hierarchical collection of systems used to reach finality on Avalanche: + +- Slush +- Snowflake +- Snowball +- Avalanche +- Snowman +- Slushie + + +Compared to Polkadot, Avalanche uses an asynchronous hybrid system that is based on a classical and Nakomoto approach. Polkadot uses a synchronous hybrid model that combines [BABE](learn-consensus#block-production-babe) and [GRADNPA](learn-consensus#finality-gadget-grandpa), where BABE is the algorithm used to build blocks in a probabilistic way, and GRANDPA is a finality mechanism that uses a deterministic approach to adding blocks to the longest chain. In the end, validators agree to whole chains, rather than single new blocks. + +### Snowball + +The snowball protocol is an algorithm that nodes use to come to a consensus. Each node continuously queries x number of validators and takes the majority consensus and adopts it as its own. This method, in normal circumstances, will lead to the network reaching a consensus. The scalability of Snowball is promising, as the number of participants in the network grows, the number of consensus messages being passed around remains the same. Nodes will query no more than 20 nodes at a given time. + +### DAG(Directed Acyclic Graph) + +[DAGs](https://en.wikipedia.org/wiki/Directed_acyclic_graph) are graphs consisting of vertices and edges. In Avalanche they are used for **partial ordering** of decisions, such as transactions. Vertices point to each other using edges, and when ordered topologically vertices and edges create a sequence. Edges in the case of Avalanche can be conflicting, and nodes will use the snowball algorithm to make decisions about which edges to keep and which to not. + +## Staking Mechanics + +Avalanche uses a Delegated Proof-of-Stake mechanism without any slashing. The barrier to entry for staking as a full node validator is 2500 AVAX, and 25 AVAX to become a delegator. With a minimum stake period being two weeks and a maximum period being a year, for both validators and delegators. It is not clear from the Avalanche documentation what happens after a year, it is likely that validators will have to re-stake and start a new period. Validators acquire points for uptime and correctness of their work, and the remuneration of rewards depends on that. + +In Polkadot the minimum stake for needed to be a validator is variable, same for being a nominator even though it takes 10 DOT to setup a stash and controller account to start nominating. The true minimum need to be competitive enough to be included in the active set for validators, or successfully being chosen as a nominator depends on the minimum staked amounts on the network at a given time. Read more about this in the [staking page](learn-staking). + + + +## Message Passing + +Avalanche does not have a native trustless message-passing mechanism. Instead, it relies on bridges. Though, because it is an EVM-compatible protocol, it's able to interoperate at a token level. However, subnets do not have a messaging layer out of the box. Polkadot, with its [XCM](learn-xcm) and [XCMP](learn-xcm#xcmp-cross-chain-message-passing) messaging protocols, allows for a native and trustless messaging scheme, thus supporting the composability of chains and enabling the development of powerful cross-chain applications. + +## Governance + +According to its whitepaper, Avalanche plans to have an on-chain governance mechanism. It currently does not have an on-chain or off-chain system in production. Its governance system will limited to updating only a few key protocol parameters which include: + +- **Staking amount:** This value defines the minimal stake required to be placed as +bond before participating in the system. +- **Minimum staking time for a node:** The minimal amount of time required for a node to stake into the system. +- **Maximum staking time for a node:** The maximal amount of time a node can stake. +- **Minting rate:** Reward rate function, also referred to as minting rate, determines the reward a +participant can claim as a function of their staking amount given some number of x publicly disclosed nodes +under its ownership, over a period of t consecutive *minimal staking time* timeframes, such that t*minimal staking time* ≤ *maximum staking time*. +- **Transaction fee amount:** The fee structure, which is a set of governable fees parameters that specify costs to various transactions. + +Limiting the governance functionality is a design choice to increase predictability and safety. + +Polkadot's governance mechanism has been in production from the very beginning and was used to slowly release functionality and decentralize the initial network. It is also not limited to a few parameters and in fact, the whole runtime is subject to change via protocol making Polkadot a meta-protocol. + +## Upgrades + +The upgrades to Avalanche are administered by the protocol developers at [Ava Labs](https://www.avalabs.org/). On Polkadot, the forkless upgrades are administered and deployed through the on-chain governance. +When performing upgrades, every single validator on the Subnet will need to perform the identical upgrade. +This requires a co-ordination effort among the Validators of the Subnet. On Polkadot, upgrades to Parachains can be deployed automatically without any coordination with the Validators on the relaychain. + +## Conclusion + +Avalanche has made some design decisions that allow for an improved smart-contract development environment in which protocol engineers can have the freedom to create their own blockchains and include them in the Avalanche ecosystem via subnets. The trade-offs are that the autonomy of design is limited and blockchains have to buy into the design decisions of Avalanche's main chains. Unlike parachains on Polkadot, Subnets are not able to share the security of the main chains. In addition to utilizing block finality and security of the Relay-chain, parachains on Polkadot use [XCM](learn-xcm) to pass native trustless messages, instead of having to rely on multiple bridging solutions. However, Subnets are easy to launch when compared to parachains, given that they only need a recommended minimum of 5 validators, which make the costs of launch predictable. Avalanche has plans to implement shared security, interoperability, composability and on-chain governance features which are already offered by Polkadot. + +## References + +1. [The Avalanche Platform Whitepaper](https://assets.website-files.com/5d80307810123f5ffbb34d6e/6008d7bbf8b10d1eb01e7e16_Avalanche%20Platform%20Whitepaper.pdf) +2. [The Avalanche Consensus Whitepaper](https://assets.website-files.com/5d80307810123f5ffbb34d6e/6009805681b416f34dcae012_Avalanche%20Consensus%20Whitepaper.pdf) +1. [The AVAX Token Dynamics Paper](https://assets.website-files.com/5d80307810123f5ffbb34d6e/6008d7bc56430d6b8792b8d1_Avalanche%20Native%20Token%20Dynamics.pdf) +1. [Nakomoto vs Snow consensus](https://gyuho.dev/nakamoto-bitcoin-vs-snow-avalanche-consensus.html#what-is-snow-consensus) diff --git a/docs/learn/learn-comparisons.md b/docs/learn/learn-comparisons.md index 49ec84093a8d..480af6028a5c 100644 --- a/docs/learn/learn-comparisons.md +++ b/docs/learn/learn-comparisons.md @@ -16,6 +16,8 @@ chains. - [vs Cosmos](learn-comparisons-cosmos.md) +- [vs Avalanche](learn-comparisons-avalanche.md) + ## Other Comparisons ### Ethereum 1.x diff --git a/docs/learn/learn-phragmen.md b/docs/learn/learn-phragmen.md index d3392cd80464..614dc8078bee 100644 --- a/docs/learn/learn-phragmen.md +++ b/docs/learn/learn-phragmen.md @@ -56,20 +56,14 @@ Given the large set of nominators and validators, Phragmén's method is a diffic problem. Polkadot uses off-chain workers to compute the result off-chain and submit a transaction to propose the set of winners. The reason for performing this computation off-chain is to keep a constant block time of six seconds and prevent long block times at the end of each era, when the -validator election takes place. +validator election takes place. -Because certain user actions, like changing nominations, can change the outcome of the Phragmén -election, the system forbids calls to these functions for the last quarter of the session before an -era change. These functions are not permitted: +:::info Staking Miners -- `bondExtra` -- `unbond` -- `withdrawUnbonded` -- `validate` -- `nominate` -- `chill` -- `payoutStakers` -- `rebond` +The process of computing the optimal solution for NPoS election can be delegated to +[Staking Miners](learn-staking-miner). + +::: ### Council Elections @@ -115,13 +109,13 @@ person with weight `5` voting for that candidate. The particular algorithm we call here the "Basic Phragmén" was first described by Brill _et al._ in their paper -["Phragmén’s Voting Methods and Justified Representation"](https://aaai.org/ocs/index.php/AAAI/AAAI17/paper/download/14757/13791). +["Phragmén’s Voting Methods and Justified Representation"](https://ojs.aaai.org/index.php/AAAI/article/view/10598). ### Algorithm The Phragmén method will iterate, selecting one seat at a time, according to the following rules: -1. Candidates submit their ballots, marking which candidates they approve. Ballots will not be +1. Voters submit their ballots, marking which candidates they approve. Ballots will not be modified after submission. 2. An initial load of 0 is set for each ballot. 3. The candidate who wins the next available seat is the one where the ballots of their supporters @@ -765,7 +759,7 @@ size _k_: Rust implementation used in Substrate. - [Phragmén's and Thiele's Election Methods](https://arxiv.org/pdf/1611.08826.pdf) - 95-page paper explaining Phragmén's election methods in detail. -- [Phragmén’s Voting Methods and Justified Representation](https://aaai.org/ocs/index.php/AAAI/AAAI17/paper/download/14757/13791) - +- [Phragmén’s Voting Methods and Justified Representation](https://ojs.aaai.org/index.php/AAAI/article/view/10598) - This paper by Brill _et al._ is the source for the simple Phragmén method, along with proofs about its properties. - [Offline Phragmén](https://github.com/kianenigma/offline-phragmen) - Script to generate the diff --git a/docs/learn/learn-polkadotjs.md b/docs/learn/learn-polkadotjs.md index d2a41ad597cf..3fd443cc21c6 100644 --- a/docs/learn/learn-polkadotjs.md +++ b/docs/learn/learn-polkadotjs.md @@ -113,7 +113,7 @@ For more user-friendly wallets, check out the supported and treasury-funded wall - [Introduction to Polkadot-JS](https://www.youtube.com/watch?v=4EQqwGFV1D8) - [Create an account using Polkadot-JS](https://www.youtube.com/watch?v=sy7lvAqyzkY) - [Network Explorer on Polkadot-JS UI](https://www.youtube.com/watch?v=g4b4IWR6OrE) +- [Network Explorer on Polkadot-JS UI](https://www.youtube.com/watch?v=g4b4IWR6OrE) ### Documentation diff --git a/docs/learn/learn-staking-miner.md b/docs/learn/learn-staking-miner.md index 087bf39232e9..a4f9b59a5b9c 100644 --- a/docs/learn/learn-staking-miner.md +++ b/docs/learn/learn-staking-miner.md @@ -11,20 +11,25 @@ import RPC from "./../../components/RPC-Connection"; :::caution -The staking-miner code is experimental and it is still in development phase. Use is at your own +The staking-miner code is experimental and it is still in the development phase. Use is at your own discretion, as there is a risk of losing some funds. ::: -The staking miner is a passive validator functionality which runs when a new set of validators need -to be elected for NPoS. This is a computationally intense process, hence the mining. Staking miners -compete with each other to produce election solutions which consist of a validator set, stake -distribution across that set, and a score indicating how optimal the solution is. Staking miners run -the any given staking algortihms(as of now, sequential Phragmén or PhragMMS, this is subject to -change if improved algorithms are introduced) to produce results, and the result is then sent as a -transaction to the relay chain via a normal signed extrinsic. The transaction requires a bond, and a -transaction fee. The best solution is rewarded which in the least covers the transaction fee, and -the bond is returned to the account. If the solution is not valid, the bond and the fee are lost. +At the end of each era on Polkadot and Kusama, using [NPoS](learn-phragmen), a new set of validators +must be elected based on the nominator preferences. This is a computationally intensive process, hence +the usage of the term "mining" for computing the solution. The validators use +[off-chain workers](https://docs.substrate.io/reference/how-to-guides/offchain-workers/) to +compute the result and submit a transaction to propose the set of winners. This can also be delegated +to stand-alone programs, whose task is to mine the optimal solution. Staking miners compete with each other +to produce election solutions which consist of a validator set, stake distribution across that set, and a score +indicating how optimal the solution is. Staking miners run any given staking algorithms (as of now, +sequential Phragmén or PhragMMS, subject to change if improved algorithms are introduced) to produce results, +which are then sent as a transaction to the relay chain via a normal signed extrinsic. The transaction +requires a bond and a transaction fee. The best solution is rewarded, which the least covers the +transaction fee, and the bond is returned to the account. [The bond and the fee](learn-staking-miner#deposit-and-reward-mechanics) are lost if the solution +is invalid. + Staking miner uses a pallet called `pallet_election_provider_multi_phase` and can only produce solutions during the @@ -35,11 +40,13 @@ starts, only the off-chain workers can provide election results. Running the staking miner requires passing the seed of a funded account in order to pay the fees for the transactions that will be sent. The same account's balance is used to reserve deposits as well. -The best solution in each round is rewarded. All correct solutions will get their bond back and the -ones that submit invalid solutions will lose their bond. +The best solution in each round is rewarded. All correct solutions will get their deposit back and +the ones that submit invalid solutions will lose their deposit. ## NPoS election optimization +![NPoS election optimization](../assets/staking-miner/NPoS-election-optimization.png) + A basic election solution is a simple distribution of stake across validators, but this can be optimized for better distribution equaling a higher security score. The staking miner does not act as a validator and focuses solely on the election result and optimization of the solution. It @@ -48,8 +55,6 @@ order to submit solutions to the NPoS election. When the correct time comes, it solution and submits it to the chain. The default miner algorithm is sequential Phragmén with a configurable number of balancing iterations that improve the score. -![NPoS election optimization](../assets/staking-miner/NPoS-election-optimization.png) - ## Signed Phase of the election pallet The election provider pallet `pallet_election_provider_multi_phase` is divided into two phases, @@ -89,18 +94,21 @@ Upon arrival of a new solution: 1. If the queue is not full, it is stored in the appropriate sorted index. 2. If the queue is full but the submitted solution is better than one of the queued ones, the worse - solution is discarded, the bond of the outgoing solution is returned, and the new solution is + solution is discarded, the deposit of the outgoing solution is returned, and the new solution is stored in the correct index. 3. If the queue is full and the solution is not an improvement compared to any of the queued ones, - it is instantly rejected and no bond is reserved. + it is instantly rejected and no deposit is reserved. -Upon the end of the signed phase, no more solutions can be submitted and the solutions in the queue +Upon the end of the `SignedPhase`, no more solutions can be submitted and the solutions in the queue will be checked using [`Pallet::feasibility_check`](https://paritytech.github.io/substrate/master/pallet_election_provider_multi_phase/pallet/struct.Pallet.html#method.feasibility_check) which ensures the score is indeed correct, and marks them as valid or invalid. By checking each solution in the queue, the queue will be reorganized by score. The highest valid score will be rewarded. Invalid solutions with higher score than the winning solution will be slashed. The rest of -the solutions will be discarded and their deposit will be returned. +the solutions will be discarded and their deposit will be returned. Once the staking miner with a +winning solution is ready to be rewarded the runtime will automatically execute +[`finalize_signed_phase_accept_solution`](https://github.com/paritytech/substrate/blob/f2bc08a3071a91b71fec63cf2b22c707411cec0e/frame/election-provider-multi-phase/src/signed.rs#L453-L474) +which reward account associated with the winning solution. ``` Queue @@ -117,10 +125,39 @@ Queue +-------------------------------+ ``` -If you want to run a staking miner on your validator, refer to the repository provided in the -resources section below. +## Deposit and reward mechanics + +The staking miners are required to pay a deposit to post their solutions. Deposit amount is the sum +of `SignedDepositBase` +`SignedDepositByte` + `SignedDepositWeight`. All good solutions are subject +to receiving a `SignedRewardBase`. + +### Deposit + +Current deposit(`SignedDepositBase`) is +{{ polkadot: :polkadot }} +{{ kusama: :kusama }} +which is a fixed amount. + +Current deposit per byte(`SignedDepositByte`) is +{{ polkadot: 0.0000097656 DOT :polkadot }}{{ kusama: 0.00000032551 KSM :kusama }} and the total is +variable depending on the size of the solution data. For example a solution weighing 200KB would +yield {{ polkadot: 200 x 0.0000097656 = **0.00195312 DOT**. :polkadot }} +{{ kusama: 200 x 0.00000032551 = **0.000065102 KSM**. :kusama }} + +And the weight deposit(`SignedDepositWeight`) is currently set to `0` and has no effect. + +### Reward + +Current reward(`SignedRewardBase`) is +{{ polkadot: :polkadot }} +{{ kusama: :kusama }} +which is a fixed amount. ## Further Resources -- [Election Pallet definition](https://crates.parity.io/pallet_election_provider_multi_phase/index.html) +If you want to run a staking miner on your validator, refer to the repository provided in the +resources section below. + - [Staking Miner repository](https://github.com/paritytech/staking-miner-v2) +- [Election Pallet definition](https://crates.parity.io/pallet_election_provider_multi_phase/index.html) +- [Signed phase parameter configuration on Polkadot](https://github.com/paritytech/polkadot/blob/f610ffc05876d4b98a14cee245b4cc27bd3c0c15/runtime/polkadot/src/lib.rs#L389:L397) diff --git a/docs/learn/learn-staking.md b/docs/learn/learn-staking.md index bff689178f52..c833ab854545 100644 --- a/docs/learn/learn-staking.md +++ b/docs/learn/learn-staking.md @@ -70,8 +70,7 @@ PoS network rewards good behavior and punishes bad behavior. {{ polkadot: Polkadot :polkadot }}{{ kusama: Kusama :kusama }} implements [Nominated Proof-of-Stake (NPoS)](learn-consensus.md/#nominated-proof-of-stake), a relatively novel and sophisticated mechanism to select the validators who are allowed to participate in its -[consensus](learn-consensus.md) protocol. The NPoS encourages -{{ polkadot: DOT :polkadot }}{{ kusama: KSM :kusama }} holders to participate as nominators. NPoS +[consensus](learn-consensus.md) protocol. NPoS encourages {{ polkadot: DOT :polkadot }}{{ kusama: KSM :kusama }} holders to participate as **nominators**. diff --git a/docs/learn/learn-treasury.md b/docs/learn/learn-treasury.md index af2ac87255d7..226b23c56dca 100644 --- a/docs/learn/learn-treasury.md +++ b/docs/learn/learn-treasury.md @@ -175,8 +175,12 @@ There are two types of tips: which is paid out from the total amount. - tipper-initiated: Tips that a Council member published, do not have a finder's fee or a bond. -:::info For information about how to submit a tip from the Treasury you can read -[this support article](https://support.polkadot.network/support/solutions/articles/65000181971). ::: +:::info + +For information about how to submit a tip from the Treasury you can read +[this support article](https://support.polkadot.network/support/solutions/articles/65000181971). + +::: To better understand the process a tip goes through until it is paid out, let's consider the example below. diff --git a/docs/maintain/maintain-endpoints.md b/docs/maintain/maintain-endpoints.md index 75671e255920..e14de3ef516a 100644 --- a/docs/maintain/maintain-endpoints.md +++ b/docs/maintain/maintain-endpoints.md @@ -71,7 +71,7 @@ service, and additional metrics. - [OnFinality](https://onfinality.io) - [Dwellir](https://dwellir.com) - [Pinknode](https://pinknode.io) -- [Radium Block](https://radiumblock.io) +- [Radium Block](https://radiumblock.com/) :::note diff --git a/docs/maintain/maintain-guides-how-to-nominate-polkadot.md b/docs/maintain/maintain-guides-how-to-nominate-polkadot.md index e64a43e841f3..28d48bb3f838 100644 --- a/docs/maintain/maintain-guides-how-to-nominate-polkadot.md +++ b/docs/maintain/maintain-guides-how-to-nominate-polkadot.md @@ -9,10 +9,22 @@ slug: ../maintain-guides-how-to-nominate-polkadot import RPC from "./../../components/RPC-Connection"; +:::tip New to Staking? + +Start your staking journey or explore more information about staking on +[Polkadot's Home Page](https://polkadot.network/staking/). Discover the new +[Staking Dashboard](https://staking.polkadot.network/#/overview) that makes staking much easier and +check this +[extensive article list](https://support.polkadot.network/support/solutions/articles/65000182104) to +help you get started. +{{ kusama: All the examples presented on Polkadot apply to Kusama as well. :kusama }} + +::: + :::info The following information applies to the Polkadot network. If you want to nominate on Kusama, check -out the [Kusama guide](./kusama/maintain-guides-how-to-nominate-kusama.md) instead. +out the [Kusama guide](https://guide.kusama.network/docs/maintain-guides-how-to-nominate-kusama/) instead. ::: diff --git a/docs/maintain/maintain-guides-how-to-validate-polkadot.md b/docs/maintain/maintain-guides-how-to-validate-polkadot.md index daae15921f7b..f56e77c33eec 100644 --- a/docs/maintain/maintain-guides-how-to-validate-polkadot.md +++ b/docs/maintain/maintain-guides-how-to-validate-polkadot.md @@ -370,7 +370,7 @@ You can begin syncing your node by running the following command if you do not w validator mode right away: ```sh -./target/release/polkadot +./target/production/polkadot ``` ``` @@ -401,6 +401,22 @@ validator mode right away: ::: +:::tip Use Warp sync for faster syncing + +By default, the node performs `full` sync, which downloads and validates the full blockchain +history. `warp` sync can be used as a faster way to sync the validator node. + +`./target/production/polkadot --sync warp` + +Warp sync initially downloads and validates the finality proofs from [GRANDPA](../learn/learn-consensus.md#finality-gadget-grandpa) +and then downloads the state of the latest finalized block. After the warp sync, the node is ready to +import the latest blocks from the network and can be used as a Validator. The blocks from genesis +will be downloaded in the background. Check +[this discussion](https://substrate.stackexchange.com/questions/334/what-kinds-of-sync-mechanisms-does-substrate-implement/) +for more information about the different sync options available. + +::: + :::note Validators should sync using the RocksDb backend This is implicit by default, but can be explicit by passing the `--database RocksDb` flag. diff --git a/package.json b/package.json index 959a59ae03c6..8fac32495e5b 100644 --- a/package.json +++ b/package.json @@ -38,11 +38,11 @@ "@actions/github": "^5.1.1", "@crowdin/cli": "^3.9.0", "@docusaurus/core": "^2.1.0", - "@docusaurus/module-type-aliases": "^2.1.0", - "@docusaurus/plugin-client-redirects": "^2.1.0", - "@docusaurus/preset-classic": "^2.1.0", + "@docusaurus/module-type-aliases": "^2.2.0", + "@docusaurus/plugin-client-redirects": "^2.2.0", + "@docusaurus/preset-classic": "^2.2.0", "@octokit/rest": "^19.0.5", - "@polkadot/api": "^9.5.2", + "@polkadot/api": "^9.6.2", "@polkadot/keyring": "10.1.1", "@testing-library/jest-dom": "^5.16.5", @@ -54,9 +54,9 @@ "fs-extra": "^10.1.0", "husky": "^8.0.1", "ipfs-http-client": "^57.0.3", - "jest": "^29.2.1", - "jest-environment-jsdom": "^29.2.1", - "katex": "^0.16.2", + "jest": "^29.2.2", + "jest-environment-jsdom": "^29.2.2", + "katex": "^0.16.3", "loud-rejection": "^2.2.0", "mr-pdf": "^1.1.0", "npm-run-all": "^4.1.5", @@ -85,7 +85,7 @@ "crowdin-cli": "^0.3.0", "css-what": "^6.1.0", "glob-parent": "^6.0.2", - "immer": "^9.0.15", + "immer": "^9.0.16", "node-fetch": "^3.2.10", "node-forge": "^1.3.1", "nth-check": "^2.1.1", diff --git a/polkadot-wiki/sidebars.js b/polkadot-wiki/sidebars.js index 3c1948ecb99f..a850490c414a 100644 --- a/polkadot-wiki/sidebars.js +++ b/polkadot-wiki/sidebars.js @@ -139,10 +139,11 @@ module.exports = { type: "category", label: "Polkadot Comparisons", items: [ - "learn/learn-kusama-vs-polkadot", - "learn/learn-comparisons", - "learn/learn-comparisons-ethereum-2", - "learn/learn-comparisons-cosmos", + 'learn/learn-kusama-vs-polkadot', + 'learn/learn-comparisons', + 'learn/learn-comparisons-ethereum-2', + 'learn/learn-comparisons-cosmos', + 'learn/learn-comparisons-avalanche' ], }, "learn/learn-launch", diff --git a/yarn.lock b/yarn.lock index 8fe17c4a7c5e..cb199bd41756 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1216,12 +1216,12 @@ core-js-pure "^3.20.2" regenerator-runtime "^0.13.4" -"@babel/runtime@^7.1.2", "@babel/runtime@^7.10.2", "@babel/runtime@^7.10.3", "@babel/runtime@^7.12.1", "@babel/runtime@^7.12.13", "@babel/runtime@^7.12.5", "@babel/runtime@^7.17.2", "@babel/runtime@^7.18.3", "@babel/runtime@^7.18.6", "@babel/runtime@^7.18.9", "@babel/runtime@^7.19.4", "@babel/runtime@^7.5.5", "@babel/runtime@^7.6.2", "@babel/runtime@^7.6.3", "@babel/runtime@^7.7.2", "@babel/runtime@^7.8.4", "@babel/runtime@^7.8.7", "@babel/runtime@^7.9.2": - version "7.19.4" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.19.4.tgz#a42f814502ee467d55b38dd1c256f53a7b885c78" - integrity sha512-EXpLCrk55f+cYqmHsSR+yD/0gAIMxxA9QK9lnQWzhMCvt+YmoBN7Zx94s++Kv0+unHk39vxNO8t+CMA2WSS3wA== +"@babel/runtime@^7.1.2", "@babel/runtime@^7.10.2", "@babel/runtime@^7.10.3", "@babel/runtime@^7.12.1", "@babel/runtime@^7.12.13", "@babel/runtime@^7.12.5", "@babel/runtime@^7.17.2", "@babel/runtime@^7.18.3", "@babel/runtime@^7.18.6", "@babel/runtime@^7.18.9", "@babel/runtime@^7.19.4", "@babel/runtime@^7.20.0", "@babel/runtime@^7.5.5", "@babel/runtime@^7.6.2", "@babel/runtime@^7.6.3", "@babel/runtime@^7.7.2", "@babel/runtime@^7.8.4", "@babel/runtime@^7.8.7", "@babel/runtime@^7.9.2": + version "7.20.1" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.20.1.tgz#1148bb33ab252b165a06698fde7576092a78b4a9" + integrity sha512-mrzLkl6U9YLF8qpqI7TB82PESyEGjm/0Ly91jG575eVxMMlb8fYfOXFZIJ8XfLrJZQbm7dlKry2bJmXBUEkdFg== dependencies: - regenerator-runtime "^0.13.4" + regenerator-runtime "^0.13.10" "@babel/template@^7.12.7", "@babel/template@^7.18.6", "@babel/template@^7.3.3": version "7.18.6" @@ -1289,10 +1289,10 @@ "@docsearch/css" "3.1.1" algoliasearch "^4.0.0" -"@docusaurus/core@2.1.0", "@docusaurus/core@^2.1.0": - version "2.1.0" - resolved "https://registry.yarnpkg.com/@docusaurus/core/-/core-2.1.0.tgz#4aedc306f4c4cd2e0491b641bf78941d4b480ab6" - integrity sha512-/ZJ6xmm+VB9Izbn0/s6h6289cbPy2k4iYFwWDhjiLsVqwa/Y0YBBcXvStfaHccudUC3OfP+26hMk7UCjc50J6Q== +"@docusaurus/core@2.2.0", "@docusaurus/core@^2.1.0": + version "2.2.0" + resolved "https://registry.yarnpkg.com/@docusaurus/core/-/core-2.2.0.tgz#64c9ee31502c23b93c869f8188f73afaf5fd4867" + integrity sha512-Vd6XOluKQqzG12fEs9prJgDtyn6DPok9vmUWDR2E6/nV5Fl9SVkhEQOBxwObjk3kQh7OY7vguFaLh0jqdApWsA== dependencies: "@babel/core" "^7.18.6" "@babel/generator" "^7.18.7" @@ -1304,13 +1304,13 @@ "@babel/runtime" "^7.18.6" "@babel/runtime-corejs3" "^7.18.6" "@babel/traverse" "^7.18.8" - "@docusaurus/cssnano-preset" "2.1.0" - "@docusaurus/logger" "2.1.0" - "@docusaurus/mdx-loader" "2.1.0" + "@docusaurus/cssnano-preset" "2.2.0" + "@docusaurus/logger" "2.2.0" + "@docusaurus/mdx-loader" "2.2.0" "@docusaurus/react-loadable" "5.5.2" - "@docusaurus/utils" "2.1.0" - "@docusaurus/utils-common" "2.1.0" - "@docusaurus/utils-validation" "2.1.0" + "@docusaurus/utils" "2.2.0" + "@docusaurus/utils-common" "2.2.0" + "@docusaurus/utils-validation" "2.2.0" "@slorber/static-site-generator-webpack-plugin" "^4.0.7" "@svgr/webpack" "^6.2.1" autoprefixer "^10.4.7" @@ -1366,33 +1366,33 @@ webpack-merge "^5.8.0" webpackbar "^5.0.2" -"@docusaurus/cssnano-preset@2.1.0": - version "2.1.0" - resolved "https://registry.yarnpkg.com/@docusaurus/cssnano-preset/-/cssnano-preset-2.1.0.tgz#5b42107769b7cbc61655496090bc262d7788d6ab" - integrity sha512-pRLewcgGhOies6pzsUROfmPStDRdFw+FgV5sMtLr5+4Luv2rty5+b/eSIMMetqUsmg3A9r9bcxHk9bKAKvx3zQ== +"@docusaurus/cssnano-preset@2.2.0": + version "2.2.0" + resolved "https://registry.yarnpkg.com/@docusaurus/cssnano-preset/-/cssnano-preset-2.2.0.tgz#fc05044659051ae74ab4482afcf4a9936e81d523" + integrity sha512-mAAwCo4n66TMWBH1kXnHVZsakW9VAXJzTO4yZukuL3ro4F+JtkMwKfh42EG75K/J/YIFQG5I/Bzy0UH/hFxaTg== dependencies: cssnano-preset-advanced "^5.3.8" postcss "^8.4.14" postcss-sort-media-queries "^4.2.1" tslib "^2.4.0" -"@docusaurus/logger@2.1.0": - version "2.1.0" - resolved "https://registry.yarnpkg.com/@docusaurus/logger/-/logger-2.1.0.tgz#86c97e948f578814d3e61fc2b2ad283043cbe87a" - integrity sha512-uuJx2T6hDBg82joFeyobywPjSOIfeq05GfyKGHThVoXuXsu1KAzMDYcjoDxarb9CoHCI/Dor8R2MoL6zII8x1Q== +"@docusaurus/logger@2.2.0": + version "2.2.0" + resolved "https://registry.yarnpkg.com/@docusaurus/logger/-/logger-2.2.0.tgz#ea2f7feda7b8675485933b87f06d9c976d17423f" + integrity sha512-DF3j1cA5y2nNsu/vk8AG7xwpZu6f5MKkPPMaaIbgXLnWGfm6+wkOeW7kNrxnM95YOhKUkJUophX69nGUnLsm0A== dependencies: chalk "^4.1.2" tslib "^2.4.0" -"@docusaurus/mdx-loader@2.1.0": - version "2.1.0" - resolved "https://registry.yarnpkg.com/@docusaurus/mdx-loader/-/mdx-loader-2.1.0.tgz#3fca9576cc73a22f8e7d9941985590b9e47a8526" - integrity sha512-i97hi7hbQjsD3/8OSFhLy7dbKGH8ryjEzOfyhQIn2CFBYOY3ko0vMVEf3IY9nD3Ld7amYzsZ8153RPkcnXA+Lg== +"@docusaurus/mdx-loader@2.2.0": + version "2.2.0" + resolved "https://registry.yarnpkg.com/@docusaurus/mdx-loader/-/mdx-loader-2.2.0.tgz#fd558f429e5d9403d284bd4214e54d9768b041a0" + integrity sha512-X2bzo3T0jW0VhUU+XdQofcEeozXOTmKQMvc8tUnWRdTnCvj4XEcBVdC3g+/jftceluiwSTNRAX4VBOJdNt18jA== dependencies: "@babel/parser" "^7.18.8" "@babel/traverse" "^7.18.8" - "@docusaurus/logger" "2.1.0" - "@docusaurus/utils" "2.1.0" + "@docusaurus/logger" "2.2.0" + "@docusaurus/utils" "2.2.0" "@mdx-js/mdx" "^1.6.22" escape-html "^1.0.3" file-loader "^6.2.0" @@ -1407,13 +1407,13 @@ url-loader "^4.1.1" webpack "^5.73.0" -"@docusaurus/module-type-aliases@2.1.0", "@docusaurus/module-type-aliases@^2.1.0": - version "2.1.0" - resolved "https://registry.yarnpkg.com/@docusaurus/module-type-aliases/-/module-type-aliases-2.1.0.tgz#322f8fd5b436af2154c0dddfa173435730e66261" - integrity sha512-Z8WZaK5cis3xEtyfOT817u9xgGUauT0PuuVo85ysnFRX8n7qLN1lTPCkC+aCmFm/UcV8h/W5T4NtIsst94UntQ== +"@docusaurus/module-type-aliases@2.2.0", "@docusaurus/module-type-aliases@^2.2.0": + version "2.2.0" + resolved "https://registry.yarnpkg.com/@docusaurus/module-type-aliases/-/module-type-aliases-2.2.0.tgz#1e23e54a1bbb6fde1961e4fa395b1b69f4803ba5" + integrity sha512-wDGW4IHKoOr9YuJgy7uYuKWrDrSpsUSDHLZnWQYM9fN7D5EpSmYHjFruUpKWVyxLpD/Wh0rW8hYZwdjJIQUQCQ== dependencies: "@docusaurus/react-loadable" "5.5.2" - "@docusaurus/types" "2.1.0" + "@docusaurus/types" "2.2.0" "@types/history" "^4.7.11" "@types/react" "*" "@types/react-router-config" "*" @@ -1421,33 +1421,33 @@ react-helmet-async "*" react-loadable "npm:@docusaurus/react-loadable@5.5.2" -"@docusaurus/plugin-client-redirects@^2.1.0": - version "2.1.0" - resolved "https://registry.yarnpkg.com/@docusaurus/plugin-client-redirects/-/plugin-client-redirects-2.1.0.tgz#4141040552faad48aefc5bc8f3827c3c4eba1ab8" - integrity sha512-3PhzwHSyZWqBAFPJuLJE3dZVuKWQEj9ReQP85Z3/2hpnQoVNBgAqc+64FIko0FvvK1iluLeasO7NWGyuATngvw== - dependencies: - "@docusaurus/core" "2.1.0" - "@docusaurus/logger" "2.1.0" - "@docusaurus/utils" "2.1.0" - "@docusaurus/utils-common" "2.1.0" - "@docusaurus/utils-validation" "2.1.0" +"@docusaurus/plugin-client-redirects@^2.2.0": + version "2.2.0" + resolved "https://registry.yarnpkg.com/@docusaurus/plugin-client-redirects/-/plugin-client-redirects-2.2.0.tgz#f6228e5b2852520e22e0f4b89f870431aa975a90" + integrity sha512-psBoWi+cbc2I+VPkKJlcZ12tRN3xiv22tnZfNKyMo18iSY8gr4B6Q0G2KZXGPgNGJ/6gq7ATfgDK6p9h9XRxMQ== + dependencies: + "@docusaurus/core" "2.2.0" + "@docusaurus/logger" "2.2.0" + "@docusaurus/utils" "2.2.0" + "@docusaurus/utils-common" "2.2.0" + "@docusaurus/utils-validation" "2.2.0" eta "^1.12.3" fs-extra "^10.1.0" lodash "^4.17.21" tslib "^2.4.0" -"@docusaurus/plugin-content-blog@2.1.0": - version "2.1.0" - resolved "https://registry.yarnpkg.com/@docusaurus/plugin-content-blog/-/plugin-content-blog-2.1.0.tgz#32b1a7cd4b0026f4a76fce4edc5cfdd0edb1ec42" - integrity sha512-xEp6jlu92HMNUmyRBEeJ4mCW1s77aAEQO4Keez94cUY/Ap7G/r0Awa6xSLff7HL0Fjg8KK1bEbDy7q9voIavdg== - dependencies: - "@docusaurus/core" "2.1.0" - "@docusaurus/logger" "2.1.0" - "@docusaurus/mdx-loader" "2.1.0" - "@docusaurus/types" "2.1.0" - "@docusaurus/utils" "2.1.0" - "@docusaurus/utils-common" "2.1.0" - "@docusaurus/utils-validation" "2.1.0" +"@docusaurus/plugin-content-blog@2.2.0": + version "2.2.0" + resolved "https://registry.yarnpkg.com/@docusaurus/plugin-content-blog/-/plugin-content-blog-2.2.0.tgz#dc55982e76771f4e678ac10e26d10e1da2011dc1" + integrity sha512-0mWBinEh0a5J2+8ZJXJXbrCk1tSTNf7Nm4tYAl5h2/xx+PvH/Bnu0V+7mMljYm/1QlDYALNIIaT/JcoZQFUN3w== + dependencies: + "@docusaurus/core" "2.2.0" + "@docusaurus/logger" "2.2.0" + "@docusaurus/mdx-loader" "2.2.0" + "@docusaurus/types" "2.2.0" + "@docusaurus/utils" "2.2.0" + "@docusaurus/utils-common" "2.2.0" + "@docusaurus/utils-validation" "2.2.0" cheerio "^1.0.0-rc.12" feed "^4.2.2" fs-extra "^10.1.0" @@ -1458,18 +1458,18 @@ utility-types "^3.10.0" webpack "^5.73.0" -"@docusaurus/plugin-content-docs@2.1.0": - version "2.1.0" - resolved "https://registry.yarnpkg.com/@docusaurus/plugin-content-docs/-/plugin-content-docs-2.1.0.tgz#3fcdf258c13dde27268ce7108a102b74ca4c279b" - integrity sha512-Rup5pqXrXlKGIC4VgwvioIhGWF7E/NNSlxv+JAxRYpik8VKlWsk9ysrdHIlpX+KJUCO9irnY21kQh2814mlp/Q== - dependencies: - "@docusaurus/core" "2.1.0" - "@docusaurus/logger" "2.1.0" - "@docusaurus/mdx-loader" "2.1.0" - "@docusaurus/module-type-aliases" "2.1.0" - "@docusaurus/types" "2.1.0" - "@docusaurus/utils" "2.1.0" - "@docusaurus/utils-validation" "2.1.0" +"@docusaurus/plugin-content-docs@2.2.0": + version "2.2.0" + resolved "https://registry.yarnpkg.com/@docusaurus/plugin-content-docs/-/plugin-content-docs-2.2.0.tgz#0fcb85226fcdb80dc1e2d4a36ef442a650dcc84d" + integrity sha512-BOazBR0XjzsHE+2K1wpNxz5QZmrJgmm3+0Re0EVPYFGW8qndCWGNtXW/0lGKhecVPML8yyFeAmnUCIs7xM2wPw== + dependencies: + "@docusaurus/core" "2.2.0" + "@docusaurus/logger" "2.2.0" + "@docusaurus/mdx-loader" "2.2.0" + "@docusaurus/module-type-aliases" "2.2.0" + "@docusaurus/types" "2.2.0" + "@docusaurus/utils" "2.2.0" + "@docusaurus/utils-validation" "2.2.0" "@types/react-router-config" "^5.0.6" combine-promises "^1.1.0" fs-extra "^10.1.0" @@ -1480,84 +1480,84 @@ utility-types "^3.10.0" webpack "^5.73.0" -"@docusaurus/plugin-content-pages@2.1.0": - version "2.1.0" - resolved "https://registry.yarnpkg.com/@docusaurus/plugin-content-pages/-/plugin-content-pages-2.1.0.tgz#714d24f71d49dbfed888f50c15e975c2154c3ce8" - integrity sha512-SwZdDZRlObHNKXTnFo7W2aF6U5ZqNVI55Nw2GCBryL7oKQSLeI0lsrMlMXdzn+fS7OuBTd3MJBO1T4Zpz0i/+g== - dependencies: - "@docusaurus/core" "2.1.0" - "@docusaurus/mdx-loader" "2.1.0" - "@docusaurus/types" "2.1.0" - "@docusaurus/utils" "2.1.0" - "@docusaurus/utils-validation" "2.1.0" +"@docusaurus/plugin-content-pages@2.2.0": + version "2.2.0" + resolved "https://registry.yarnpkg.com/@docusaurus/plugin-content-pages/-/plugin-content-pages-2.2.0.tgz#e3f40408787bbe229545dd50595f87e1393bc3ae" + integrity sha512-+OTK3FQHk5WMvdelz8v19PbEbx+CNT6VSpx7nVOvMNs5yJCKvmqBJBQ2ZSxROxhVDYn+CZOlmyrC56NSXzHf6g== + dependencies: + "@docusaurus/core" "2.2.0" + "@docusaurus/mdx-loader" "2.2.0" + "@docusaurus/types" "2.2.0" + "@docusaurus/utils" "2.2.0" + "@docusaurus/utils-validation" "2.2.0" fs-extra "^10.1.0" tslib "^2.4.0" webpack "^5.73.0" -"@docusaurus/plugin-debug@2.1.0": - version "2.1.0" - resolved "https://registry.yarnpkg.com/@docusaurus/plugin-debug/-/plugin-debug-2.1.0.tgz#b3145affb40e25cf342174638952a5928ddaf7dc" - integrity sha512-8wsDq3OIfiy6440KLlp/qT5uk+WRHQXIXklNHEeZcar+Of0TZxCNe2FBpv+bzb/0qcdP45ia5i5WmR5OjN6DPw== +"@docusaurus/plugin-debug@2.2.0": + version "2.2.0" + resolved "https://registry.yarnpkg.com/@docusaurus/plugin-debug/-/plugin-debug-2.2.0.tgz#b38741d2c492f405fee01ee0ef2e0029cedb689a" + integrity sha512-p9vOep8+7OVl6r/NREEYxf4HMAjV8JMYJ7Bos5fCFO0Wyi9AZEo0sCTliRd7R8+dlJXZEgcngSdxAUo/Q+CJow== dependencies: - "@docusaurus/core" "2.1.0" - "@docusaurus/types" "2.1.0" - "@docusaurus/utils" "2.1.0" + "@docusaurus/core" "2.2.0" + "@docusaurus/types" "2.2.0" + "@docusaurus/utils" "2.2.0" fs-extra "^10.1.0" react-json-view "^1.21.3" tslib "^2.4.0" -"@docusaurus/plugin-google-analytics@2.1.0": - version "2.1.0" - resolved "https://registry.yarnpkg.com/@docusaurus/plugin-google-analytics/-/plugin-google-analytics-2.1.0.tgz#c9a7269817b38e43484d38fad9996e39aac4196c" - integrity sha512-4cgeqIly/wcFVbbWP03y1QJJBgH8W+Bv6AVbWnsXNOZa1yB3AO6hf3ZdeQH9x20v9T2pREogVgAH0rSoVnNsgg== +"@docusaurus/plugin-google-analytics@2.2.0": + version "2.2.0" + resolved "https://registry.yarnpkg.com/@docusaurus/plugin-google-analytics/-/plugin-google-analytics-2.2.0.tgz#63c7137eff5a1208d2059fea04b5207c037d7954" + integrity sha512-+eZVVxVeEnV5nVQJdey9ZsfyEVMls6VyWTIj8SmX0k5EbqGvnIfET+J2pYEuKQnDIHxy+syRMoRM6AHXdHYGIg== dependencies: - "@docusaurus/core" "2.1.0" - "@docusaurus/types" "2.1.0" - "@docusaurus/utils-validation" "2.1.0" + "@docusaurus/core" "2.2.0" + "@docusaurus/types" "2.2.0" + "@docusaurus/utils-validation" "2.2.0" tslib "^2.4.0" -"@docusaurus/plugin-google-gtag@2.1.0": - version "2.1.0" - resolved "https://registry.yarnpkg.com/@docusaurus/plugin-google-gtag/-/plugin-google-gtag-2.1.0.tgz#e4f351dcd98b933538d55bb742650a2a36ca9a32" - integrity sha512-/3aDlv2dMoCeiX2e+DTGvvrdTA+v3cKQV3DbmfsF4ENhvc5nKV23nth04Z3Vq0Ci1ui6Sn80TkhGk/tiCMW2AA== +"@docusaurus/plugin-google-gtag@2.2.0": + version "2.2.0" + resolved "https://registry.yarnpkg.com/@docusaurus/plugin-google-gtag/-/plugin-google-gtag-2.2.0.tgz#7b086d169ac5fe9a88aca10ab0fd2bf00c6c6b12" + integrity sha512-6SOgczP/dYdkqUMGTRqgxAS1eTp6MnJDAQMy8VCF1QKbWZmlkx4agHDexihqmYyCujTYHqDAhm1hV26EET54NQ== dependencies: - "@docusaurus/core" "2.1.0" - "@docusaurus/types" "2.1.0" - "@docusaurus/utils-validation" "2.1.0" + "@docusaurus/core" "2.2.0" + "@docusaurus/types" "2.2.0" + "@docusaurus/utils-validation" "2.2.0" tslib "^2.4.0" -"@docusaurus/plugin-sitemap@2.1.0": - version "2.1.0" - resolved "https://registry.yarnpkg.com/@docusaurus/plugin-sitemap/-/plugin-sitemap-2.1.0.tgz#b316bb9a42a1717845e26bd4e2d3071748a54b47" - integrity sha512-2Y6Br8drlrZ/jN9MwMBl0aoi9GAjpfyfMBYpaQZXimbK+e9VjYnujXlvQ4SxtM60ASDgtHIAzfVFBkSR/MwRUw== - dependencies: - "@docusaurus/core" "2.1.0" - "@docusaurus/logger" "2.1.0" - "@docusaurus/types" "2.1.0" - "@docusaurus/utils" "2.1.0" - "@docusaurus/utils-common" "2.1.0" - "@docusaurus/utils-validation" "2.1.0" +"@docusaurus/plugin-sitemap@2.2.0": + version "2.2.0" + resolved "https://registry.yarnpkg.com/@docusaurus/plugin-sitemap/-/plugin-sitemap-2.2.0.tgz#876da60937886032d63143253d420db6a4b34773" + integrity sha512-0jAmyRDN/aI265CbWZNZuQpFqiZuo+5otk2MylU9iVrz/4J7gSc+ZJ9cy4EHrEsW7PV8s1w18hIEsmcA1YgkKg== + dependencies: + "@docusaurus/core" "2.2.0" + "@docusaurus/logger" "2.2.0" + "@docusaurus/types" "2.2.0" + "@docusaurus/utils" "2.2.0" + "@docusaurus/utils-common" "2.2.0" + "@docusaurus/utils-validation" "2.2.0" fs-extra "^10.1.0" sitemap "^7.1.1" tslib "^2.4.0" -"@docusaurus/preset-classic@^2.1.0": - version "2.1.0" - resolved "https://registry.yarnpkg.com/@docusaurus/preset-classic/-/preset-classic-2.1.0.tgz#45b23c8ec10c96ded9ece128fac3a39b10bcbc56" - integrity sha512-NQMnaq974K4BcSMXFSJBQ5itniw6RSyW+VT+6i90kGZzTwiuKZmsp0r9lC6BYAvvVMQUNJQwrETmlu7y2XKW7w== - dependencies: - "@docusaurus/core" "2.1.0" - "@docusaurus/plugin-content-blog" "2.1.0" - "@docusaurus/plugin-content-docs" "2.1.0" - "@docusaurus/plugin-content-pages" "2.1.0" - "@docusaurus/plugin-debug" "2.1.0" - "@docusaurus/plugin-google-analytics" "2.1.0" - "@docusaurus/plugin-google-gtag" "2.1.0" - "@docusaurus/plugin-sitemap" "2.1.0" - "@docusaurus/theme-classic" "2.1.0" - "@docusaurus/theme-common" "2.1.0" - "@docusaurus/theme-search-algolia" "2.1.0" - "@docusaurus/types" "2.1.0" +"@docusaurus/preset-classic@^2.2.0": + version "2.2.0" + resolved "https://registry.yarnpkg.com/@docusaurus/preset-classic/-/preset-classic-2.2.0.tgz#bece5a043eeb74430f7c6c7510000b9c43669eb7" + integrity sha512-yKIWPGNx7BT8v2wjFIWvYrS+nvN04W+UameSFf8lEiJk6pss0kL6SG2MRvyULiI3BDxH+tj6qe02ncpSPGwumg== + dependencies: + "@docusaurus/core" "2.2.0" + "@docusaurus/plugin-content-blog" "2.2.0" + "@docusaurus/plugin-content-docs" "2.2.0" + "@docusaurus/plugin-content-pages" "2.2.0" + "@docusaurus/plugin-debug" "2.2.0" + "@docusaurus/plugin-google-analytics" "2.2.0" + "@docusaurus/plugin-google-gtag" "2.2.0" + "@docusaurus/plugin-sitemap" "2.2.0" + "@docusaurus/theme-classic" "2.2.0" + "@docusaurus/theme-common" "2.2.0" + "@docusaurus/theme-search-algolia" "2.2.0" + "@docusaurus/types" "2.2.0" "@docusaurus/react-loadable@5.5.2", "react-loadable@npm:@docusaurus/react-loadable@5.5.2": version "5.5.2" @@ -1567,23 +1567,23 @@ "@types/react" "*" prop-types "^15.6.2" -"@docusaurus/theme-classic@2.1.0": - version "2.1.0" - resolved "https://registry.yarnpkg.com/@docusaurus/theme-classic/-/theme-classic-2.1.0.tgz#d957a907ea8dd035c1cf911d0fbe91d8f24aef3f" - integrity sha512-xn8ZfNMsf7gaSy9+ClFnUu71o7oKgMo5noYSS1hy3svNifRTkrBp6+MReLDsmIaj3mLf2e7+JCBYKBFbaGzQng== - dependencies: - "@docusaurus/core" "2.1.0" - "@docusaurus/mdx-loader" "2.1.0" - "@docusaurus/module-type-aliases" "2.1.0" - "@docusaurus/plugin-content-blog" "2.1.0" - "@docusaurus/plugin-content-docs" "2.1.0" - "@docusaurus/plugin-content-pages" "2.1.0" - "@docusaurus/theme-common" "2.1.0" - "@docusaurus/theme-translations" "2.1.0" - "@docusaurus/types" "2.1.0" - "@docusaurus/utils" "2.1.0" - "@docusaurus/utils-common" "2.1.0" - "@docusaurus/utils-validation" "2.1.0" +"@docusaurus/theme-classic@2.2.0": + version "2.2.0" + resolved "https://registry.yarnpkg.com/@docusaurus/theme-classic/-/theme-classic-2.2.0.tgz#a048bb1bc077dee74b28bec25f4b84b481863742" + integrity sha512-kjbg/qJPwZ6H1CU/i9d4l/LcFgnuzeiGgMQlt6yPqKo0SOJIBMPuz7Rnu3r/WWbZFPi//o8acclacOzmXdUUEg== + dependencies: + "@docusaurus/core" "2.2.0" + "@docusaurus/mdx-loader" "2.2.0" + "@docusaurus/module-type-aliases" "2.2.0" + "@docusaurus/plugin-content-blog" "2.2.0" + "@docusaurus/plugin-content-docs" "2.2.0" + "@docusaurus/plugin-content-pages" "2.2.0" + "@docusaurus/theme-common" "2.2.0" + "@docusaurus/theme-translations" "2.2.0" + "@docusaurus/types" "2.2.0" + "@docusaurus/utils" "2.2.0" + "@docusaurus/utils-common" "2.2.0" + "@docusaurus/utils-validation" "2.2.0" "@mdx-js/react" "^1.6.22" clsx "^1.2.1" copy-text-to-clipboard "^3.0.1" @@ -1598,17 +1598,17 @@ tslib "^2.4.0" utility-types "^3.10.0" -"@docusaurus/theme-common@2.1.0": - version "2.1.0" - resolved "https://registry.yarnpkg.com/@docusaurus/theme-common/-/theme-common-2.1.0.tgz#dff4d5d1e29efc06125dc06f7b259f689bb3f24d" - integrity sha512-vT1otpVPbKux90YpZUnvknsn5zvpLf+AW1W0EDcpE9up4cDrPqfsh0QoxGHFJnobE2/qftsBFC19BneN4BH8Ag== - dependencies: - "@docusaurus/mdx-loader" "2.1.0" - "@docusaurus/module-type-aliases" "2.1.0" - "@docusaurus/plugin-content-blog" "2.1.0" - "@docusaurus/plugin-content-docs" "2.1.0" - "@docusaurus/plugin-content-pages" "2.1.0" - "@docusaurus/utils" "2.1.0" +"@docusaurus/theme-common@2.2.0": + version "2.2.0" + resolved "https://registry.yarnpkg.com/@docusaurus/theme-common/-/theme-common-2.2.0.tgz#2303498d80448aafdd588b597ce9d6f4cfa930e4" + integrity sha512-R8BnDjYoN90DCL75gP7qYQfSjyitXuP9TdzgsKDmSFPNyrdE3twtPNa2dIN+h+p/pr+PagfxwWbd6dn722A1Dw== + dependencies: + "@docusaurus/mdx-loader" "2.2.0" + "@docusaurus/module-type-aliases" "2.2.0" + "@docusaurus/plugin-content-blog" "2.2.0" + "@docusaurus/plugin-content-docs" "2.2.0" + "@docusaurus/plugin-content-pages" "2.2.0" + "@docusaurus/utils" "2.2.0" "@types/history" "^4.7.11" "@types/react" "*" "@types/react-router-config" "*" @@ -1618,19 +1618,19 @@ tslib "^2.4.0" utility-types "^3.10.0" -"@docusaurus/theme-search-algolia@2.1.0": - version "2.1.0" - resolved "https://registry.yarnpkg.com/@docusaurus/theme-search-algolia/-/theme-search-algolia-2.1.0.tgz#e7cdf64b6f7a15b07c6dcf652fd308cfdaabb0ee" - integrity sha512-rNBvi35VvENhucslEeVPOtbAzBdZY/9j55gdsweGV5bYoAXy4mHB6zTGjealcB4pJ6lJY4a5g75fXXMOlUqPfg== +"@docusaurus/theme-search-algolia@2.2.0": + version "2.2.0" + resolved "https://registry.yarnpkg.com/@docusaurus/theme-search-algolia/-/theme-search-algolia-2.2.0.tgz#77fd9f7a600917e6024fe3ac7fb6cfdf2ce84737" + integrity sha512-2h38B0tqlxgR2FZ9LpAkGrpDWVdXZ7vltfmTdX+4RsDs3A7khiNsmZB+x/x6sA4+G2V2CvrsPMlsYBy5X+cY1w== dependencies: "@docsearch/react" "^3.1.1" - "@docusaurus/core" "2.1.0" - "@docusaurus/logger" "2.1.0" - "@docusaurus/plugin-content-docs" "2.1.0" - "@docusaurus/theme-common" "2.1.0" - "@docusaurus/theme-translations" "2.1.0" - "@docusaurus/utils" "2.1.0" - "@docusaurus/utils-validation" "2.1.0" + "@docusaurus/core" "2.2.0" + "@docusaurus/logger" "2.2.0" + "@docusaurus/plugin-content-docs" "2.2.0" + "@docusaurus/theme-common" "2.2.0" + "@docusaurus/theme-translations" "2.2.0" + "@docusaurus/utils" "2.2.0" + "@docusaurus/utils-validation" "2.2.0" algoliasearch "^4.13.1" algoliasearch-helper "^3.10.0" clsx "^1.2.1" @@ -1640,18 +1640,18 @@ tslib "^2.4.0" utility-types "^3.10.0" -"@docusaurus/theme-translations@2.1.0": - version "2.1.0" - resolved "https://registry.yarnpkg.com/@docusaurus/theme-translations/-/theme-translations-2.1.0.tgz#ce9a2955afd49bff364cfdfd4492b226f6dd3b6e" - integrity sha512-07n2akf2nqWvtJeMy3A+7oSGMuu5F673AovXVwY0aGAux1afzGCiqIFlYW3EP0CujvDJAEFSQi/Tetfh+95JNg== +"@docusaurus/theme-translations@2.2.0": + version "2.2.0" + resolved "https://registry.yarnpkg.com/@docusaurus/theme-translations/-/theme-translations-2.2.0.tgz#5fbd4693679806f80c26eeae1381e1f2c23d83e7" + integrity sha512-3T140AG11OjJrtKlY4pMZ5BzbGRDjNs2co5hJ6uYJG1bVWlhcaFGqkaZ5lCgKflaNHD7UHBHU9Ec5f69jTdd6w== dependencies: fs-extra "^10.1.0" tslib "^2.4.0" -"@docusaurus/types@2.1.0": - version "2.1.0" - resolved "https://registry.yarnpkg.com/@docusaurus/types/-/types-2.1.0.tgz#01e13cd9adb268fffe87b49eb90302d5dc3edd6b" - integrity sha512-BS1ebpJZnGG6esKqsjtEC9U9qSaPylPwlO7cQ1GaIE7J/kMZI3FITnNn0otXXu7c7ZTqhb6+8dOrG6fZn6fqzQ== +"@docusaurus/types@2.2.0": + version "2.2.0" + resolved "https://registry.yarnpkg.com/@docusaurus/types/-/types-2.2.0.tgz#02c577a4041ab7d058a3c214ccb13647e21a9857" + integrity sha512-b6xxyoexfbRNRI8gjblzVOnLr4peCJhGbYGPpJ3LFqpi5nsFfoK4mmDLvWdeah0B7gmJeXabN7nQkFoqeSdmOw== dependencies: "@types/history" "^4.7.11" "@types/react" "*" @@ -1662,30 +1662,30 @@ webpack "^5.73.0" webpack-merge "^5.8.0" -"@docusaurus/utils-common@2.1.0": - version "2.1.0" - resolved "https://registry.yarnpkg.com/@docusaurus/utils-common/-/utils-common-2.1.0.tgz#248434751096f8c6c644ed65eed2a5a070a227f8" - integrity sha512-F2vgmt4yRFgRQR2vyEFGTWeyAdmgKbtmu3sjHObF0tjjx/pN0Iw/c6eCopaH34E6tc9nO0nvp01pwW+/86d1fg== +"@docusaurus/utils-common@2.2.0": + version "2.2.0" + resolved "https://registry.yarnpkg.com/@docusaurus/utils-common/-/utils-common-2.2.0.tgz#a401c1b93a8697dd566baf6ac64f0fdff1641a78" + integrity sha512-qebnerHp+cyovdUseDQyYFvMW1n1nv61zGe5JJfoNQUnjKuApch3IVsz+/lZ9a38pId8kqehC1Ao2bW/s0ntDA== dependencies: tslib "^2.4.0" -"@docusaurus/utils-validation@2.1.0": - version "2.1.0" - resolved "https://registry.yarnpkg.com/@docusaurus/utils-validation/-/utils-validation-2.1.0.tgz#c8cf1d8454d924d9a564fefa86436268f43308e3" - integrity sha512-AMJzWYKL3b7FLltKtDXNLO9Y649V2BXvrnRdnW2AA+PpBnYV78zKLSCz135cuWwRj1ajNtP4onbXdlnyvCijGQ== +"@docusaurus/utils-validation@2.2.0": + version "2.2.0" + resolved "https://registry.yarnpkg.com/@docusaurus/utils-validation/-/utils-validation-2.2.0.tgz#04d4d103137ad0145883971d3aa497f4a1315f25" + integrity sha512-I1hcsG3yoCkasOL5qQAYAfnmVoLei7apugT6m4crQjmDGxq+UkiRrq55UqmDDyZlac/6ax/JC0p+usZ6W4nVyg== dependencies: - "@docusaurus/logger" "2.1.0" - "@docusaurus/utils" "2.1.0" + "@docusaurus/logger" "2.2.0" + "@docusaurus/utils" "2.2.0" joi "^17.6.0" js-yaml "^4.1.0" tslib "^2.4.0" -"@docusaurus/utils@2.1.0": - version "2.1.0" - resolved "https://registry.yarnpkg.com/@docusaurus/utils/-/utils-2.1.0.tgz#b77b45b22e61eb6c2dcad8a7e96f6db0409b655f" - integrity sha512-fPvrfmAuC54n8MjZuG4IysaMdmvN5A/qr7iFLbSGSyDrsbP4fnui6KdZZIa/YOLIPLec8vjZ8RIITJqF18mx4A== +"@docusaurus/utils@2.2.0": + version "2.2.0" + resolved "https://registry.yarnpkg.com/@docusaurus/utils/-/utils-2.2.0.tgz#3d6f9b7a69168d5c92d371bf21c556a4f50d1da6" + integrity sha512-oNk3cjvx7Tt1Lgh/aeZAmFpGV2pDr5nHKrBVx6hTkzGhrnMuQqLt6UPlQjdYQ3QHXwyF/ZtZMO1D5Pfi0lu7SA== dependencies: - "@docusaurus/logger" "2.1.0" + "@docusaurus/logger" "2.2.0" "@svgr/webpack" "^6.2.1" file-loader "^6.2.0" fs-extra "^10.1.0" @@ -1874,15 +1874,15 @@ jest-util "^29.2.1" slash "^3.0.0" -"@jest/core@^29.2.1": - version "29.2.1" - resolved "https://registry.yarnpkg.com/@jest/core/-/core-29.2.1.tgz#30af794ebd73bfb87cd8ba36718738dfe38b772e" - integrity sha512-kuLKYqnqgerXkBUwlHVxeSuhSnd+JMnMCLfU98bpacBSfWEJPegytDh3P2m15/JHzet32hGGld4KR4OzMb6/Tg== +"@jest/core@^29.2.2": + version "29.2.2" + resolved "https://registry.yarnpkg.com/@jest/core/-/core-29.2.2.tgz#207aa8973d9de8769f9518732bc5f781efc3ffa7" + integrity sha512-susVl8o2KYLcZhhkvSB+b7xX575CX3TmSvxfeDjpRko7KmT89rHkXj6XkDkNpSeFMBzIENw5qIchO9HC9Sem+A== dependencies: "@jest/console" "^29.2.1" - "@jest/reporters" "^29.2.1" + "@jest/reporters" "^29.2.2" "@jest/test-result" "^29.2.1" - "@jest/transform" "^29.2.1" + "@jest/transform" "^29.2.2" "@jest/types" "^29.2.1" "@types/node" "*" ansi-escapes "^4.2.1" @@ -1891,79 +1891,79 @@ exit "^0.1.2" graceful-fs "^4.2.9" jest-changed-files "^29.2.0" - jest-config "^29.2.1" + jest-config "^29.2.2" jest-haste-map "^29.2.1" jest-message-util "^29.2.1" jest-regex-util "^29.2.0" - jest-resolve "^29.2.1" - jest-resolve-dependencies "^29.2.1" - jest-runner "^29.2.1" - jest-runtime "^29.2.1" - jest-snapshot "^29.2.1" + jest-resolve "^29.2.2" + jest-resolve-dependencies "^29.2.2" + jest-runner "^29.2.2" + jest-runtime "^29.2.2" + jest-snapshot "^29.2.2" jest-util "^29.2.1" - jest-validate "^29.2.1" - jest-watcher "^29.2.1" + jest-validate "^29.2.2" + jest-watcher "^29.2.2" micromatch "^4.0.4" pretty-format "^29.2.1" slash "^3.0.0" strip-ansi "^6.0.0" -"@jest/environment@^29.2.1": - version "29.2.1" - resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-29.2.1.tgz#acb1994fbd5ad02819a1a34a923c531e6923b665" - integrity sha512-EutqA7T/X6zFjw6mAWRHND+ZkTPklmIEWCNbmwX6uCmOrFrWaLbDZjA+gePHJx6fFMMRvNfjXcvzXEtz54KPlg== +"@jest/environment@^29.2.2": + version "29.2.2" + resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-29.2.2.tgz#481e729048d42e87d04842c38aa4d09c507f53b0" + integrity sha512-OWn+Vhu0I1yxuGBJEFFekMYc8aGBGrY4rt47SOh/IFaI+D7ZHCk7pKRiSoZ2/Ml7b0Ony3ydmEHRx/tEOC7H1A== dependencies: - "@jest/fake-timers" "^29.2.1" + "@jest/fake-timers" "^29.2.2" "@jest/types" "^29.2.1" "@types/node" "*" - jest-mock "^29.2.1" + jest-mock "^29.2.2" -"@jest/expect-utils@^29.2.1": - version "29.2.1" - resolved "https://registry.yarnpkg.com/@jest/expect-utils/-/expect-utils-29.2.1.tgz#eae61c90f2066540f60d23b8f254f03b7869b22f" - integrity sha512-yr4aHNg5Z1CjKby5ozm7sKjgBlCOorlAoFcvrOQ/4rbZRfgZQdnmh7cth192PYIgiPZo2bBXvqdOApnAMWFJZg== +"@jest/expect-utils@^29.2.2": + version "29.2.2" + resolved "https://registry.yarnpkg.com/@jest/expect-utils/-/expect-utils-29.2.2.tgz#460a5b5a3caf84d4feb2668677393dd66ff98665" + integrity sha512-vwnVmrVhTmGgQzyvcpze08br91OL61t9O0lJMDyb6Y/D8EKQ9V7rGUb/p7PDt0GPzK0zFYqXWFo4EO2legXmkg== dependencies: jest-get-type "^29.2.0" -"@jest/expect@^29.2.1": - version "29.2.1" - resolved "https://registry.yarnpkg.com/@jest/expect/-/expect-29.2.1.tgz#8d99be3886ebfcffd6cabb2b46602a301b976ffe" - integrity sha512-o14R2t2tHHHudwji43UKkzmmH49xfF5T++FQBK2tl88qwuBWQOcx7fNUYl+mA/9TPNAN0FkQ3usnpyS8FUwsvQ== +"@jest/expect@^29.2.2": + version "29.2.2" + resolved "https://registry.yarnpkg.com/@jest/expect/-/expect-29.2.2.tgz#81edbd33afbde7795ca07ff6b4753d15205032e4" + integrity sha512-zwblIZnrIVt8z/SiEeJ7Q9wKKuB+/GS4yZe9zw7gMqfGf4C5hBLGrVyxu1SzDbVSqyMSlprKl3WL1r80cBNkgg== dependencies: - expect "^29.2.1" - jest-snapshot "^29.2.1" + expect "^29.2.2" + jest-snapshot "^29.2.2" -"@jest/fake-timers@^29.2.1": - version "29.2.1" - resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-29.2.1.tgz#786d60e8cb60ca70c9f913cb49fcc77610c072bb" - integrity sha512-KWil+8fef7Uj/P/PTZlPKk1Pw117wAmr71VWFV8ZDtRtkwmTG8oY4IRf0Ss44J2y5CYRy8d/zLOhxyoGRENjvA== +"@jest/fake-timers@^29.2.2": + version "29.2.2" + resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-29.2.2.tgz#d8332e6e3cfa99cde4bc87d04a17d6b699deb340" + integrity sha512-nqaW3y2aSyZDl7zQ7t1XogsxeavNpH6kkdq+EpXncIDvAkjvFD7hmhcIs1nWloengEWUoWqkqSA6MSbf9w6DgA== dependencies: "@jest/types" "^29.2.1" "@sinonjs/fake-timers" "^9.1.2" "@types/node" "*" jest-message-util "^29.2.1" - jest-mock "^29.2.1" + jest-mock "^29.2.2" jest-util "^29.2.1" -"@jest/globals@^29.2.1": - version "29.2.1" - resolved "https://registry.yarnpkg.com/@jest/globals/-/globals-29.2.1.tgz#6933beb8b4e43b990409a19c462fde7b71210e63" - integrity sha512-Z4EejYPP1OPVq2abk1+9urAwJqkgw5jB2UJGlPjb5ZwzPQF8WLMcigKEfFzZb2OHhEVPP0RZD0/DbVTY1R6iQA== +"@jest/globals@^29.2.2": + version "29.2.2" + resolved "https://registry.yarnpkg.com/@jest/globals/-/globals-29.2.2.tgz#205ff1e795aa774301c2c0ba0be182558471b845" + integrity sha512-/nt+5YMh65kYcfBhj38B3Hm0Trk4IsuMXNDGKE/swp36yydBWfz3OXkLqkSvoAtPW8IJMSJDFCbTM2oj5SNprw== dependencies: - "@jest/environment" "^29.2.1" - "@jest/expect" "^29.2.1" + "@jest/environment" "^29.2.2" + "@jest/expect" "^29.2.2" "@jest/types" "^29.2.1" - jest-mock "^29.2.1" + jest-mock "^29.2.2" -"@jest/reporters@^29.2.1": - version "29.2.1" - resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-29.2.1.tgz#599e4376823751fdda50f2ca97243e013da10c4d" - integrity sha512-sCsfUKM/yIF4nNed3e/rIgVIS58EiASGMDEPWqItfLZ9UO1ALW2ASDNJzdWkxEt0T8o2Ztj619G0KKrvK+McAw== +"@jest/reporters@^29.2.2": + version "29.2.2" + resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-29.2.2.tgz#69b395f79c3a97ce969ce05ccf1a482e5d6de290" + integrity sha512-AzjL2rl2zJC0njIzcooBvjA4sJjvdoq98sDuuNs4aNugtLPSQ+91nysGKRF0uY1to5k0MdGMdOBggUsPqvBcpA== dependencies: "@bcoe/v8-coverage" "^0.2.3" "@jest/console" "^29.2.1" "@jest/test-result" "^29.2.1" - "@jest/transform" "^29.2.1" + "@jest/transform" "^29.2.2" "@jest/types" "^29.2.1" "@jridgewell/trace-mapping" "^0.3.15" "@types/node" "*" @@ -2018,20 +2018,20 @@ "@types/istanbul-lib-coverage" "^2.0.0" collect-v8-coverage "^1.0.0" -"@jest/test-sequencer@^29.2.1": - version "29.2.1" - resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-29.2.1.tgz#cafd2c5f3528c70bd4cc243800459ac366e480cc" - integrity sha512-O/pnk0/xGj3lxPVNwB6HREJ7AYvUdyP2xo/s14/9Dtf091HoOeyIhWLKQE/4HzB8lNQBMo6J5mg0bHz/uCWK7w== +"@jest/test-sequencer@^29.2.2": + version "29.2.2" + resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-29.2.2.tgz#4ac7487b237e517a1f55e7866fb5553f6e0168b9" + integrity sha512-Cuc1znc1pl4v9REgmmLf0jBd3Y65UXJpioGYtMr/JNpQEIGEzkmHhy6W6DLbSsXeUA13TDzymPv0ZGZ9jH3eIw== dependencies: "@jest/test-result" "^29.2.1" graceful-fs "^4.2.9" jest-haste-map "^29.2.1" slash "^3.0.0" -"@jest/transform@^29.2.1": - version "29.2.1" - resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-29.2.1.tgz#f3d8154edd19cdbcaf1d6646bd8f4ff7812318a2" - integrity sha512-xup+iEuaIRSQabQaeqxaQyN0vg1Dctrp9oTObQsNf3sZEowTIa5cANYuoyi8Tqhg4GCqEVLTf18KW7ii0UeFVA== +"@jest/transform@^29.2.2": + version "29.2.2" + resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-29.2.2.tgz#dfc03fc092b31ffea0c55917728e75bfcf8b5de6" + integrity sha512-aPe6rrletyuEIt2axxgdtxljmzH8O/nrov4byy6pDw9S8inIrTV+2PnjyP/oFHMSynzGxJ2s6OHowBNMXp/Jzg== dependencies: "@babel/core" "^7.11.6" "@jest/types" "^29.2.1" @@ -2457,64 +2457,64 @@ resolved "https://registry.yarnpkg.com/@polka/url/-/url-1.0.0-next.21.tgz#5de5a2385a35309427f6011992b544514d559aa1" integrity sha512-a5Sab1C4/icpTZVzZc5Ghpz88yQtGOyNqYXcZgOssB2uuAr+wF/MvN6bgtW32q7HHrvBki+BsZ0OuNv6EV3K9g== -"@polkadot/api-augment@9.5.2": - version "9.5.2" - resolved "https://registry.yarnpkg.com/@polkadot/api-augment/-/api-augment-9.5.2.tgz#55168dd112517028fea5f2ab9c54ea627e43ac3a" - integrity sha512-dH6QMY8Z3zI6CrgSU3eSe6f0KWDb5PYGztg/FXGPrjh7Vjic7syWZ1LD6zaHJAFWDp80BEdEXfqr4lConrCKGg== - dependencies: - "@babel/runtime" "^7.19.4" - "@polkadot/api-base" "9.5.2" - "@polkadot/rpc-augment" "9.5.2" - "@polkadot/types" "9.5.2" - "@polkadot/types-augment" "9.5.2" - "@polkadot/types-codec" "9.5.2" +"@polkadot/api-augment@9.6.2": + version "9.6.2" + resolved "https://registry.yarnpkg.com/@polkadot/api-augment/-/api-augment-9.6.2.tgz#a6e7c29d8a06c0951d37796f56bf54530bbc04f0" + integrity sha512-XsRSXCeZV+pdoY35fhoiHO/sVCmTdfb1lhnpkqEDmucOvP4lBRdg/y2l+50jmftJxnvYD5p/ddVc6ezOJVmL0w== + dependencies: + "@babel/runtime" "^7.20.0" + "@polkadot/api-base" "9.6.2" + "@polkadot/rpc-augment" "9.6.2" + "@polkadot/types" "9.6.2" + "@polkadot/types-augment" "9.6.2" + "@polkadot/types-codec" "9.6.2" "@polkadot/util" "^10.1.11" -"@polkadot/api-base@9.5.2": - version "9.5.2" - resolved "https://registry.yarnpkg.com/@polkadot/api-base/-/api-base-9.5.2.tgz#ac0a6b5546a54bcc753ac55c9f033caa9f8b4e5c" - integrity sha512-BBsH9SLB1FHgjdiU32cZX1puL3Eh8IjOJHjRsO/5SdttciQhF5g/u/m/mM/55qnlXmffI9s2Jre18G0XtVU9Aw== +"@polkadot/api-base@9.6.2": + version "9.6.2" + resolved "https://registry.yarnpkg.com/@polkadot/api-base/-/api-base-9.6.2.tgz#4790cccb46a06a98ddaf42891a88969fa35f8a0c" + integrity sha512-07WUlTW2qxcXeD/nIw5db2Oz7zsU6doyGb+AC6m33NFVivyzOXtqGTqttRSxzdAblqsSPPFfzkiUDZ1g0BrSCA== dependencies: - "@babel/runtime" "^7.19.4" - "@polkadot/rpc-core" "9.5.2" - "@polkadot/types" "9.5.2" + "@babel/runtime" "^7.20.0" + "@polkadot/rpc-core" "9.6.2" + "@polkadot/types" "9.6.2" "@polkadot/util" "^10.1.11" rxjs "^7.5.7" -"@polkadot/api-derive@9.5.2": - version "9.5.2" - resolved "https://registry.yarnpkg.com/@polkadot/api-derive/-/api-derive-9.5.2.tgz#c0412cfc13fa71f93b315d126b12b5ab38e6438c" - integrity sha512-kWn12dlqfIES1trNLd3O1i2qa4T97v/co1VMCgVstICwCt3+mGZgpxkMqQqPiWHagKEVeBNoAn+h8eOiQlbujA== - dependencies: - "@babel/runtime" "^7.19.4" - "@polkadot/api" "9.5.2" - "@polkadot/api-augment" "9.5.2" - "@polkadot/api-base" "9.5.2" - "@polkadot/rpc-core" "9.5.2" - "@polkadot/types" "9.5.2" - "@polkadot/types-codec" "9.5.2" +"@polkadot/api-derive@9.6.2": + version "9.6.2" + resolved "https://registry.yarnpkg.com/@polkadot/api-derive/-/api-derive-9.6.2.tgz#772730756dc82ac67af7d069307f880957b4ab62" + integrity sha512-ajqNUen4JZOkbsOCt2cm+1tIFNQtRqE2xreRcpFx6YpQUxWpXXMU3ZTWc7JxxQFmMv0AVRtcynNCh/DC2TrLBA== + dependencies: + "@babel/runtime" "^7.20.0" + "@polkadot/api" "9.6.2" + "@polkadot/api-augment" "9.6.2" + "@polkadot/api-base" "9.6.2" + "@polkadot/rpc-core" "9.6.2" + "@polkadot/types" "9.6.2" + "@polkadot/types-codec" "9.6.2" "@polkadot/util" "^10.1.11" "@polkadot/util-crypto" "^10.1.11" rxjs "^7.5.7" -"@polkadot/api@9.5.2", "@polkadot/api@^9.5.2": - version "9.5.2" - resolved "https://registry.yarnpkg.com/@polkadot/api/-/api-9.5.2.tgz#cef83928e47c393fbebf2788bc86841b6ab37a41" - integrity sha512-iEF/E8vQan3fHmIEl3bX7Yn/1jQLlvSDwPOxiQdj4tIcF36HX6vCbkdhQKRif0CNYES58TA9EKFiCNg81k+kXw== +"@polkadot/api@9.6.2", "@polkadot/api@^9.6.2": + version "9.6.2" + resolved "https://registry.yarnpkg.com/@polkadot/api/-/api-9.6.2.tgz#42050aed59489a0a484bc50e9186bd58b18d9835" + integrity sha512-Cz/E4ZBDIxeOIyWKt9fnwW12ts5SopF2t03t4jnzM1beTUkGIZ6mQjho6JoXVIJEcAa8r1PsVpdyuSQhzeoXwQ== dependencies: - "@babel/runtime" "^7.19.4" - "@polkadot/api-augment" "9.5.2" - "@polkadot/api-base" "9.5.2" - "@polkadot/api-derive" "9.5.2" + "@babel/runtime" "^7.20.0" + "@polkadot/api-augment" "9.6.2" + "@polkadot/api-base" "9.6.2" + "@polkadot/api-derive" "9.6.2" "@polkadot/keyring" "^10.1.11" - "@polkadot/rpc-augment" "9.5.2" - "@polkadot/rpc-core" "9.5.2" - "@polkadot/rpc-provider" "9.5.2" - "@polkadot/types" "9.5.2" - "@polkadot/types-augment" "9.5.2" - "@polkadot/types-codec" "9.5.2" - "@polkadot/types-create" "9.5.2" - "@polkadot/types-known" "9.5.2" + "@polkadot/rpc-augment" "9.6.2" + "@polkadot/rpc-core" "9.6.2" + "@polkadot/rpc-provider" "9.6.2" + "@polkadot/types" "9.6.2" + "@polkadot/types-augment" "9.6.2" + "@polkadot/types-codec" "9.6.2" + "@polkadot/types-create" "9.6.2" + "@polkadot/types-known" "9.6.2" "@polkadot/util" "^10.1.11" "@polkadot/util-crypto" "^10.1.11" eventemitter3 "^4.0.7" @@ -2556,106 +2556,106 @@ "@polkadot/util" "10.1.11" "@substrate/ss58-registry" "^1.33.0" -"@polkadot/rpc-augment@9.5.2": - version "9.5.2" - resolved "https://registry.yarnpkg.com/@polkadot/rpc-augment/-/rpc-augment-9.5.2.tgz#739cc3ed2f86f4318432e38381a2cc780dc64f1e" - integrity sha512-QAcunC7p/T4xy6e4m0Q1c9tiVYxnm+S9o10tmtx0K4qXzrc/4I2/tsw3nEGi3BzJhvMpFondSQGcJ3gyLwpmVA== +"@polkadot/rpc-augment@9.6.2": + version "9.6.2" + resolved "https://registry.yarnpkg.com/@polkadot/rpc-augment/-/rpc-augment-9.6.2.tgz#1b87084602c294d871d29b6c27880c568fdfb191" + integrity sha512-bOzL99Kx2SipaaanxelDzdvLuf4ViW62627G9gjre/WRnnjpfWrBUX7K8YuzrEIAUf+gbfXs99zqKTBXiJl8wg== dependencies: - "@babel/runtime" "^7.19.4" - "@polkadot/rpc-core" "9.5.2" - "@polkadot/types" "9.5.2" - "@polkadot/types-codec" "9.5.2" + "@babel/runtime" "^7.20.0" + "@polkadot/rpc-core" "9.6.2" + "@polkadot/types" "9.6.2" + "@polkadot/types-codec" "9.6.2" "@polkadot/util" "^10.1.11" -"@polkadot/rpc-core@9.5.2": - version "9.5.2" - resolved "https://registry.yarnpkg.com/@polkadot/rpc-core/-/rpc-core-9.5.2.tgz#1a00868038b6c07fe8f58bd0a6cc9519d14001cc" - integrity sha512-4PbNz0GEp3FXYOnsS7mDHZy9DNVBOl56fq8vs09rLkEkrrvGkHmCvabEEWL7OPbwBzwzsCxdgI+IdkVTUKXPkQ== +"@polkadot/rpc-core@9.6.2": + version "9.6.2" + resolved "https://registry.yarnpkg.com/@polkadot/rpc-core/-/rpc-core-9.6.2.tgz#82e9fc3a979493a69023e6803c05d034112571e3" + integrity sha512-hPDo/Zyu+j+XcPkjV0WVd7KzCmW14m50ZQQfLg9H4/R/tIiuPIML9g+tyoHKg4+H9OxLTmaP0RKFm0d2L2Od0g== dependencies: - "@babel/runtime" "^7.19.4" - "@polkadot/rpc-augment" "9.5.2" - "@polkadot/rpc-provider" "9.5.2" - "@polkadot/types" "9.5.2" + "@babel/runtime" "^7.20.0" + "@polkadot/rpc-augment" "9.6.2" + "@polkadot/rpc-provider" "9.6.2" + "@polkadot/types" "9.6.2" "@polkadot/util" "^10.1.11" rxjs "^7.5.7" -"@polkadot/rpc-provider@9.5.2": - version "9.5.2" - resolved "https://registry.yarnpkg.com/@polkadot/rpc-provider/-/rpc-provider-9.5.2.tgz#3e38ea4c3639180f12270b6fe8cbcabf728aaf1d" - integrity sha512-Sn2jfvAsvQcl35o0up8JR/XbDMS/3YVDEN2sFuzXtiD77W2njukItbZT+BolfAW+biAUs3bNomump5k/YLiLKg== +"@polkadot/rpc-provider@9.6.2": + version "9.6.2" + resolved "https://registry.yarnpkg.com/@polkadot/rpc-provider/-/rpc-provider-9.6.2.tgz#f0d9dc8f3cdab970ad293869e216ef9c1aff0e5c" + integrity sha512-JKrfAdHDhGARy3zQ5ASQfPD32ZdkSsH6IGwfO79vxtelN1ItR9VszoELppX/amlc++Vf8d6MOAjiil7IGGRTIQ== dependencies: - "@babel/runtime" "^7.19.4" + "@babel/runtime" "^7.20.0" "@polkadot/keyring" "^10.1.11" - "@polkadot/types" "9.5.2" - "@polkadot/types-support" "9.5.2" + "@polkadot/types" "9.6.2" + "@polkadot/types-support" "9.6.2" "@polkadot/util" "^10.1.11" "@polkadot/util-crypto" "^10.1.11" "@polkadot/x-fetch" "^10.1.11" "@polkadot/x-global" "^10.1.11" "@polkadot/x-ws" "^10.1.11" - "@substrate/connect" "0.7.14" + "@substrate/connect" "0.7.15" eventemitter3 "^4.0.7" mock-socket "^9.1.5" nock "^13.2.9" -"@polkadot/types-augment@9.5.2": - version "9.5.2" - resolved "https://registry.yarnpkg.com/@polkadot/types-augment/-/types-augment-9.5.2.tgz#d9e77756b0e36455d708f5af8265ef011ddf8d91" - integrity sha512-LDJdv/84sECwA0R5lK85/orxjoozJe3+2jeLjRiKr8S6qm9XRfz0wLCSF866kpSGBZ4B1dYBUhzjoSu95y2Jug== +"@polkadot/types-augment@9.6.2": + version "9.6.2" + resolved "https://registry.yarnpkg.com/@polkadot/types-augment/-/types-augment-9.6.2.tgz#46608167e953cd8e912055628e74b9f22d305d2a" + integrity sha512-iHQJ2RajV0LNfkSSfjlkTqexmv8ZadDJZNzrHyLbW01Wx9kSM7IH0I0eN1b532HX0/E07lnR/TQ0/EUZnDuqnw== dependencies: - "@babel/runtime" "^7.19.4" - "@polkadot/types" "9.5.2" - "@polkadot/types-codec" "9.5.2" + "@babel/runtime" "^7.20.0" + "@polkadot/types" "9.6.2" + "@polkadot/types-codec" "9.6.2" "@polkadot/util" "^10.1.11" -"@polkadot/types-codec@9.5.2": - version "9.5.2" - resolved "https://registry.yarnpkg.com/@polkadot/types-codec/-/types-codec-9.5.2.tgz#345c38ccef17651b8cabd159a42810893b5e7e44" - integrity sha512-FJPjE3ceTGTcadeC8d5C+aSR8SLKuQrXKIBmMNBky+WwzEo0vufRqxFWcPLxAOEeeUPgBXS967tP15+UU4psGA== +"@polkadot/types-codec@9.6.2": + version "9.6.2" + resolved "https://registry.yarnpkg.com/@polkadot/types-codec/-/types-codec-9.6.2.tgz#0c3ab8d8db8199aed4bedf9008d70093fca85f0a" + integrity sha512-XXpJv+ydQDmno2dHm2dHCxAYrCLncCqsF/xUQAlQS2qbViQOoEUoP5wOhcKrsvITNekh0YLfdhyzaSId2ST2xQ== dependencies: - "@babel/runtime" "^7.19.4" + "@babel/runtime" "^7.20.0" "@polkadot/util" "^10.1.11" "@polkadot/x-bigint" "^10.1.11" -"@polkadot/types-create@9.5.2": - version "9.5.2" - resolved "https://registry.yarnpkg.com/@polkadot/types-create/-/types-create-9.5.2.tgz#a85dcb794ea11e5d528baa34b65e57cfafc905cf" - integrity sha512-YbplL8K0LqUEHoV3FgZ5B83oVV67KGbLXsWHVVaUZBPsmtXJXrbBfSyJgl/80I2n4lXEBmg3sFAYMbaSTvL05A== +"@polkadot/types-create@9.6.2": + version "9.6.2" + resolved "https://registry.yarnpkg.com/@polkadot/types-create/-/types-create-9.6.2.tgz#50954bad8fff0f96029a401d6388d2c7571628df" + integrity sha512-7s2Z2ir/l7RwxuG1aj3vIBnDT8hspMP/q20NR27ekY/8V+zEDjHWqofgETNRcG2MeHxQqzFEqUKjCOCy8BXiuw== dependencies: - "@babel/runtime" "^7.19.4" - "@polkadot/types-codec" "9.5.2" + "@babel/runtime" "^7.20.0" + "@polkadot/types-codec" "9.6.2" "@polkadot/util" "^10.1.11" -"@polkadot/types-known@9.5.2": - version "9.5.2" - resolved "https://registry.yarnpkg.com/@polkadot/types-known/-/types-known-9.5.2.tgz#a71fd08932b1643bbf346321472ed48ab1ade215" - integrity sha512-iNaGOF6dGiTvy3Ns8Z7WNjYD1SGnZiapDAKPH4brPuJqMpN6/FxYpfPSSOKx+IJEamsdINcaggb87eWyPxH8CA== +"@polkadot/types-known@9.6.2": + version "9.6.2" + resolved "https://registry.yarnpkg.com/@polkadot/types-known/-/types-known-9.6.2.tgz#b109763dea97cadde453d38dde1cdd4586f9ae11" + integrity sha512-dekLSTr6CoukKAJezQ83Dn9ggOTRrRSMZr19Wi8NLJCTkbTzNCyFSMmQuwG1XxYWwTgjfqMLUVmInkLSxzDNSA== dependencies: - "@babel/runtime" "^7.19.4" + "@babel/runtime" "^7.20.0" "@polkadot/networks" "^10.1.11" - "@polkadot/types" "9.5.2" - "@polkadot/types-codec" "9.5.2" - "@polkadot/types-create" "9.5.2" + "@polkadot/types" "9.6.2" + "@polkadot/types-codec" "9.6.2" + "@polkadot/types-create" "9.6.2" "@polkadot/util" "^10.1.11" -"@polkadot/types-support@9.5.2": - version "9.5.2" - resolved "https://registry.yarnpkg.com/@polkadot/types-support/-/types-support-9.5.2.tgz#f2990d19cbd78c24e5b7116466fb1d89f93a8ca7" - integrity sha512-Zdbl5fvGQjUkyE1r67vhyPEqLUwlZ35GCnkoobY9MgN6gylhSjNue/shpG4uGsEjWVQL7GkFkrPiwtzDArVilg== +"@polkadot/types-support@9.6.2": + version "9.6.2" + resolved "https://registry.yarnpkg.com/@polkadot/types-support/-/types-support-9.6.2.tgz#a33ae056a2092455777d377a4d4c948779d5e98e" + integrity sha512-rAVjf1lbknZRgNTRtfdXM9Zl7sMhF6kXP8qXF/7la43hGbolDnGskMRfzKvUhA4HRrjhT0w0bUXfEE+Snk1Q9w== dependencies: - "@babel/runtime" "^7.19.4" + "@babel/runtime" "^7.20.0" "@polkadot/util" "^10.1.11" -"@polkadot/types@9.5.2": - version "9.5.2" - resolved "https://registry.yarnpkg.com/@polkadot/types/-/types-9.5.2.tgz#33ab2caea08f084141a01038adbe53ed69ab7d9c" - integrity sha512-6C5xzOrMK+fu0JMOlSO+8dPDhpwKPOaKMv3v5BMvBEWtDNKM81/QQoAoYT7DSVXq/V16icSFxPs9IWC+6Qq5ag== +"@polkadot/types@9.6.2": + version "9.6.2" + resolved "https://registry.yarnpkg.com/@polkadot/types/-/types-9.6.2.tgz#1be65ed096cdfd16f2acce79e77383a37b1e06d6" + integrity sha512-pP38vk+JfcQwgLwHsKttuj0yaM7uPQnst3Cd7u7ZX4qf5PmICtZ2Baz11NW0aF8mqhqgkNNF+a8PSUqJQd21Xg== dependencies: - "@babel/runtime" "^7.19.4" + "@babel/runtime" "^7.20.0" "@polkadot/keyring" "^10.1.11" - "@polkadot/types-augment" "9.5.2" - "@polkadot/types-codec" "9.5.2" - "@polkadot/types-create" "9.5.2" + "@polkadot/types-augment" "9.6.2" + "@polkadot/types-codec" "9.6.2" + "@polkadot/types-create" "9.6.2" "@polkadot/util" "^10.1.11" "@polkadot/util-crypto" "^10.1.11" rxjs "^7.5.7" @@ -3016,19 +3016,19 @@ resolved "https://registry.yarnpkg.com/@substrate/connect-extension-protocol/-/connect-extension-protocol-1.0.1.tgz#fa5738039586c648013caa6a0c95c43265dbe77d" integrity sha512-161JhCC1csjH3GE5mPLEd7HbWtwNSPJBg3p1Ksz9SFlTzj/bgEwudiRN2y5i0MoLGCIJRYKyKGMxVnd29PzNjg== -"@substrate/connect@0.7.14": - version "0.7.14" - resolved "https://registry.yarnpkg.com/@substrate/connect/-/connect-0.7.14.tgz#c090e952e9cdd93185a94d24fbc424ea20fe7bbe" - integrity sha512-uW5uBmihpivshmmmw+rsg7qOV0KqVSep4rWOXFMP8aFQinvmqw4JqxP21og4H/7JZxttYUBFQVsdtXHGKJ0aVQ== +"@substrate/connect@0.7.15": + version "0.7.15" + resolved "https://registry.yarnpkg.com/@substrate/connect/-/connect-0.7.15.tgz#64b52bb1035a4ee24a521441f44cf46d92216540" + integrity sha512-dGE7oCXn+3LDlSKJ29ae1SmnpkMBakaYrN8muAB+w9Gx11dNM1mHssuEwsgudLA1S6Dt4NIu7d6qlZ+OjHGlYA== dependencies: "@substrate/connect-extension-protocol" "^1.0.1" - "@substrate/smoldot-light" "0.6.34" + "@substrate/smoldot-light" "0.7.2" eventemitter3 "^4.0.7" -"@substrate/smoldot-light@0.6.34": - version "0.6.34" - resolved "https://registry.yarnpkg.com/@substrate/smoldot-light/-/smoldot-light-0.6.34.tgz#273dba622102281fd0fdb0e375198bff2ec584c3" - integrity sha512-+HK9MaJ0HelJmpf4YYR+salJ7dhVBltmhGlyz5l8OXS9DW18fe0Z2wxEo8P5kX9CUxlCXEb8J9JBRQAYBPHbwQ== +"@substrate/smoldot-light@0.7.2": + version "0.7.2" + resolved "https://registry.yarnpkg.com/@substrate/smoldot-light/-/smoldot-light-0.7.2.tgz#5723f9b8c95b4a5c1b555462452d07f7f1523e71" + integrity sha512-AweZghbBOUiEf/dlNCVLDcDUy3qkjWuSmKfFZYBeV/CbkN73tJAJSBzOy4MVl3WM8cLDUOxDmc6uy8+5/IhmDA== dependencies: pako "^2.0.4" ws "^8.8.1" @@ -4107,12 +4107,12 @@ axios@^1.1.3: form-data "^4.0.0" proxy-from-env "^1.1.0" -babel-jest@^29.2.1: - version "29.2.1" - resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-29.2.1.tgz#213c47e28072de11bdb98c9d29b89f2ab99664f1" - integrity sha512-gQJwArok0mqoREiCYhXKWOgUhElJj9DpnssW6GL8dG7ARYqHEhrM9fmPHTjdqEGRVXZAd6+imo3/Vwa8TjLcsw== +babel-jest@^29.2.2: + version "29.2.2" + resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-29.2.2.tgz#2c15abd8c2081293c9c3f4f80a4ed1d51542fee5" + integrity sha512-kkq2QSDIuvpgfoac3WZ1OOcHsQQDU5xYk2Ql7tLdJ8BVAYbefEXal+NfS45Y5LVZA7cxC8KYcQMObpCt1J025w== dependencies: - "@jest/transform" "^29.2.1" + "@jest/transform" "^29.2.2" "@types/babel__core" "^7.1.14" babel-plugin-istanbul "^6.1.1" babel-preset-jest "^29.2.0" @@ -5638,10 +5638,10 @@ electron-to-chromium@^1.4.251: resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.251.tgz#8b62448f3c591f0d32488df09454dda72dec96d5" integrity sha512-k4o4cFrWPv4SoJGGAydd07GmlRVzmeDIJ6MaEChTUjk4Dmomn189tCicSzil2oyvbPoGgg2suwPDNWq4gWRhoQ== -emittery@^0.10.2: - version "0.10.2" - resolved "https://registry.yarnpkg.com/emittery/-/emittery-0.10.2.tgz#902eec8aedb8c41938c46e9385e9db7e03182933" - integrity sha512-aITqOwnLanpHLNXZJENbOgjUBeHocD+xsSJmNrjovKBW5HbSpW3d1pEls7GFQPUWXiwG9+0P4GtHfEqC/4M0Iw== +emittery@^0.13.1: + version "0.13.1" + resolved "https://registry.yarnpkg.com/emittery/-/emittery-0.13.1.tgz#c04b8c3457490e0847ae51fced3af52d338e3dad" + integrity sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ== emoji-regex@^8.0.0: version "8.0.0" @@ -5926,14 +5926,14 @@ exit@^0.1.2: resolved "https://registry.yarnpkg.com/exit/-/exit-0.1.2.tgz#0632638f8d877cc82107d30a0fff1a17cba1cd0c" integrity sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ== -expect@^29.2.1: - version "29.2.1" - resolved "https://registry.yarnpkg.com/expect/-/expect-29.2.1.tgz#25752d0df92d3daa5188dc8804de1f30759658cf" - integrity sha512-BJtA754Fba0YWRWHgjKUMTA3ltWarKgITXHQnbZ2mTxTXC4yMQlR0FI7HkB3fJYkhWBf4qjNiqvg3LDtXCcVRQ== +expect@^29.2.2: + version "29.2.2" + resolved "https://registry.yarnpkg.com/expect/-/expect-29.2.2.tgz#ba2dd0d7e818727710324a6e7f13dd0e6d086106" + integrity sha512-hE09QerxZ5wXiOhqkXy5d2G9ar+EqOyifnCXCpMNu+vZ6DG9TJ6CO2c2kPDSLqERTTWrO7OZj8EkYHQqSd78Yw== dependencies: - "@jest/expect-utils" "^29.2.1" + "@jest/expect-utils" "^29.2.2" jest-get-type "^29.2.0" - jest-matcher-utils "^29.2.1" + jest-matcher-utils "^29.2.2" jest-message-util "^29.2.1" jest-util "^29.2.1" @@ -6935,10 +6935,10 @@ image-size@^1.0.1: dependencies: queue "6.0.2" -immer@^9.0.15, immer@^9.0.7: - version "9.0.15" - resolved "https://registry.yarnpkg.com/immer/-/immer-9.0.15.tgz#0b9169e5b1d22137aba7d43f8a81a495dd1b62dc" - integrity sha512-2eB/sswms9AEUSkOm4SbV5Y7Vmt/bKRwByd52jfLkW4OLYeaTP3EEiJ9agqU0O/tq6Dk62Zfj+TJSqfm1rLVGQ== +immer@^9.0.16, immer@^9.0.7: + version "9.0.16" + resolved "https://registry.yarnpkg.com/immer/-/immer-9.0.16.tgz#8e7caab80118c2b54b37ad43e05758cdefad0198" + integrity sha512-qenGE7CstVm1NrHQbMh8YaSzTZTFNP3zPqr3YU0S0UY441j4bJTg4A2Hh5KAhwgaiU6ZZ1Ar6y/2f4TblnMReQ== import-fresh@^3.1.0, import-fresh@^3.2.1, import-fresh@^3.3.0: version "3.3.0" @@ -7592,13 +7592,13 @@ jest-changed-files@^29.2.0: execa "^5.0.0" p-limit "^3.1.0" -jest-circus@^29.2.1: - version "29.2.1" - resolved "https://registry.yarnpkg.com/jest-circus/-/jest-circus-29.2.1.tgz#1385353d9bca6acf58f916068bbeffcfc95bef02" - integrity sha512-W+ZQQ5ln4Db2UZNM4NJIeasnhCdDhSuYW4eLgNAUi0XiSSpF634Kc5wiPvGiHvTgXMFVn1ZgWIijqhi9+kLNLg== +jest-circus@^29.2.2: + version "29.2.2" + resolved "https://registry.yarnpkg.com/jest-circus/-/jest-circus-29.2.2.tgz#1dc4d35fd49bf5e64d3cc505fb2db396237a6dfa" + integrity sha512-upSdWxx+Mh4DV7oueuZndJ1NVdgtTsqM4YgywHEx05UMH5nxxA2Qu9T9T9XVuR021XxqSoaKvSmmpAbjwwwxMw== dependencies: - "@jest/environment" "^29.2.1" - "@jest/expect" "^29.2.1" + "@jest/environment" "^29.2.2" + "@jest/expect" "^29.2.2" "@jest/test-result" "^29.2.1" "@jest/types" "^29.2.1" "@types/node" "*" @@ -7607,56 +7607,56 @@ jest-circus@^29.2.1: dedent "^0.7.0" is-generator-fn "^2.0.0" jest-each "^29.2.1" - jest-matcher-utils "^29.2.1" + jest-matcher-utils "^29.2.2" jest-message-util "^29.2.1" - jest-runtime "^29.2.1" - jest-snapshot "^29.2.1" + jest-runtime "^29.2.2" + jest-snapshot "^29.2.2" jest-util "^29.2.1" p-limit "^3.1.0" pretty-format "^29.2.1" slash "^3.0.0" stack-utils "^2.0.3" -jest-cli@^29.2.1: - version "29.2.1" - resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-29.2.1.tgz#fbfa90b87b27a04e1041cc9d33ee80f32e2f2528" - integrity sha512-UIMD5aNqvPKpdlJSaeUAoLfxsh9TZvOkaMETx5qXnkboc317bcbb0eLHbIj8sFBHdcJAIAM+IRKnIU7Wi61MBw== +jest-cli@^29.2.2: + version "29.2.2" + resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-29.2.2.tgz#feaf0aa57d327e80d4f2f18d5f8cd2e77cac5371" + integrity sha512-R45ygnnb2CQOfd8rTPFR+/fls0d+1zXS6JPYTBBrnLPrhr58SSuPTiA5Tplv8/PXpz4zXR/AYNxmwIj6J6nrvg== dependencies: - "@jest/core" "^29.2.1" + "@jest/core" "^29.2.2" "@jest/test-result" "^29.2.1" "@jest/types" "^29.2.1" chalk "^4.0.0" exit "^0.1.2" graceful-fs "^4.2.9" import-local "^3.0.2" - jest-config "^29.2.1" + jest-config "^29.2.2" jest-util "^29.2.1" - jest-validate "^29.2.1" + jest-validate "^29.2.2" prompts "^2.0.1" yargs "^17.3.1" -jest-config@^29.2.1: - version "29.2.1" - resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-29.2.1.tgz#2182af014d6c73978208626335db5134803dd183" - integrity sha512-EV5F1tQYW/quZV2br2o88hnYEeRzG53Dfi6rSG3TZBuzGQ6luhQBux/RLlU5QrJjCdq3LXxRRM8F1LP6DN1ycA== +jest-config@^29.2.2: + version "29.2.2" + resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-29.2.2.tgz#bf98623a46454d644630c1f0de8bba3f495c2d59" + integrity sha512-Q0JX54a5g1lP63keRfKR8EuC7n7wwny2HoTRDb8cx78IwQOiaYUVZAdjViY3WcTxpR02rPUpvNVmZ1fkIlZPcw== dependencies: "@babel/core" "^7.11.6" - "@jest/test-sequencer" "^29.2.1" + "@jest/test-sequencer" "^29.2.2" "@jest/types" "^29.2.1" - babel-jest "^29.2.1" + babel-jest "^29.2.2" chalk "^4.0.0" ci-info "^3.2.0" deepmerge "^4.2.2" glob "^7.1.3" graceful-fs "^4.2.9" - jest-circus "^29.2.1" - jest-environment-node "^29.2.1" + jest-circus "^29.2.2" + jest-environment-node "^29.2.2" jest-get-type "^29.2.0" jest-regex-util "^29.2.0" - jest-resolve "^29.2.1" - jest-runner "^29.2.1" + jest-resolve "^29.2.2" + jest-runner "^29.2.2" jest-util "^29.2.1" - jest-validate "^29.2.1" + jest-validate "^29.2.2" micromatch "^4.0.4" parse-json "^5.2.0" pretty-format "^29.2.1" @@ -7701,30 +7701,30 @@ jest-each@^29.2.1: jest-util "^29.2.1" pretty-format "^29.2.1" -jest-environment-jsdom@^29.2.1: - version "29.2.1" - resolved "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-29.2.1.tgz#5bfbbc52a74b333c7e69ff3a4f540af850a7a718" - integrity sha512-MipBdmrjgzEdQMkK7b7wBShOfv1VqO6FVwa9S43bZwKYLC4dlWnPiCgNpZX3ypNEpJO8EMpMhg4HrUkWUZXGiw== +jest-environment-jsdom@^29.2.2: + version "29.2.2" + resolved "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-29.2.2.tgz#1e2d9f1f017fbaa7362a83e670b569158b4b8527" + integrity sha512-5mNtTcky1+RYv9kxkwMwt7fkzyX4EJUarV7iI+NQLigpV4Hz4sgfOdP4kOpCHXbkRWErV7tgXoXLm2CKtucr+A== dependencies: - "@jest/environment" "^29.2.1" - "@jest/fake-timers" "^29.2.1" + "@jest/environment" "^29.2.2" + "@jest/fake-timers" "^29.2.2" "@jest/types" "^29.2.1" "@types/jsdom" "^20.0.0" "@types/node" "*" - jest-mock "^29.2.1" + jest-mock "^29.2.2" jest-util "^29.2.1" jsdom "^20.0.0" -jest-environment-node@^29.2.1: - version "29.2.1" - resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-29.2.1.tgz#f90311d0f0e8ef720349f83c97a076e403f90665" - integrity sha512-PulFKwEMz6nTAdLUwglFKei3b/LixwlRiqTN6nvPE1JtrLtlnpd6LXnFI1NFHYJGlTmIWilMP2n9jEtPPKX50g== +jest-environment-node@^29.2.2: + version "29.2.2" + resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-29.2.2.tgz#a64b272773870c3a947cd338c25fd34938390bc2" + integrity sha512-B7qDxQjkIakQf+YyrqV5dICNs7tlCO55WJ4OMSXsqz1lpI/0PmeuXdx2F7eU8rnPbRkUR/fItSSUh0jvE2y/tw== dependencies: - "@jest/environment" "^29.2.1" - "@jest/fake-timers" "^29.2.1" + "@jest/environment" "^29.2.2" + "@jest/fake-timers" "^29.2.2" "@jest/types" "^29.2.1" "@types/node" "*" - jest-mock "^29.2.1" + jest-mock "^29.2.2" jest-util "^29.2.1" jest-get-type@^28.0.2: @@ -7774,10 +7774,10 @@ jest-matcher-utils@^28.0.0: jest-get-type "^28.0.2" pretty-format "^28.1.3" -jest-matcher-utils@^29.2.1: - version "29.2.1" - resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-29.2.1.tgz#2bf876c5f891b33786aadf5d65d5da5970744122" - integrity sha512-hUTBh7H/Mnb6GTpihbLh8uF5rjAMdekfW/oZNXUMAXi7bbmym2HiRpzgqf/zzkjgejMrVAkPdVSQj+32enlUww== +jest-matcher-utils@^29.2.2: + version "29.2.2" + resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-29.2.2.tgz#9202f8e8d3a54733266784ce7763e9a08688269c" + integrity sha512-4DkJ1sDPT+UX2MR7Y3od6KtvRi9Im1ZGLGgdLFLm4lPexbTaCgJW5NN3IOXlQHF7NSHY/VHhflQ+WoKtD/vyCw== dependencies: chalk "^4.0.0" jest-diff "^29.2.1" @@ -7799,10 +7799,10 @@ jest-message-util@^29.2.1: slash "^3.0.0" stack-utils "^2.0.3" -jest-mock@^29.2.1: - version "29.2.1" - resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-29.2.1.tgz#a0d361cffcb28184fa9c5443adbf591fa5759775" - integrity sha512-NDphaY/GqyQpTfnTZiTqqpMaw4Z0I7XnB7yBgrT6IwYrLGxpOhrejYr4ANY4YvO2sEGdd8Tx/6D0+WLQy7/qDA== +jest-mock@^29.2.2: + version "29.2.2" + resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-29.2.2.tgz#9045618b3f9d27074bbcf2d55bdca6a5e2e8bca7" + integrity sha512-1leySQxNAnivvbcx0sCB37itu8f4OX2S/+gxLAV4Z62shT4r4dTG9tACDywUAEZoLSr36aYUTsVp3WKwWt4PMQ== dependencies: "@jest/types" "^29.2.1" "@types/node" "*" @@ -7818,67 +7818,67 @@ jest-regex-util@^29.2.0: resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-29.2.0.tgz#82ef3b587e8c303357728d0322d48bbfd2971f7b" integrity sha512-6yXn0kg2JXzH30cr2NlThF+70iuO/3irbaB4mh5WyqNIvLLP+B6sFdluO1/1RJmslyh/f9osnefECflHvTbwVA== -jest-resolve-dependencies@^29.2.1: - version "29.2.1" - resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-29.2.1.tgz#8d717dd41dc615fef1d412d395ea3deccfb1b9fa" - integrity sha512-o3mUGX2j08usj1jIAIE8KmUVpqVAn54k80kI27ldbZf2oJn6eghhB6DvJxjrcH40va9CQgWTfU5f2Ag/MoUqgQ== +jest-resolve-dependencies@^29.2.2: + version "29.2.2" + resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-29.2.2.tgz#1f444766f37a25f1490b5137408b6ff746a05d64" + integrity sha512-wWOmgbkbIC2NmFsq8Lb+3EkHuW5oZfctffTGvwsA4JcJ1IRk8b2tg+hz44f0lngvRTeHvp3Kyix9ACgudHH9aQ== dependencies: jest-regex-util "^29.2.0" - jest-snapshot "^29.2.1" + jest-snapshot "^29.2.2" -jest-resolve@^29.2.1: - version "29.2.1" - resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-29.2.1.tgz#a4d2f76db88aeb6ec5f5453c9a40b52483d17799" - integrity sha512-1dJTW76Z9622Viq4yRcwBuEXuzGtE9B2kdl05RC8Om/lAzac9uEgC+M8Q5osVidbuBPmxm8wSrcItYhca2ZAtQ== +jest-resolve@^29.2.2: + version "29.2.2" + resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-29.2.2.tgz#ad6436053b0638b41e12bbddde2b66e1397b35b5" + integrity sha512-3gaLpiC3kr14rJR3w7vWh0CBX2QAhfpfiQTwrFPvVrcHe5VUBtIXaR004aWE/X9B2CFrITOQAp5gxLONGrk6GA== dependencies: chalk "^4.0.0" graceful-fs "^4.2.9" jest-haste-map "^29.2.1" jest-pnp-resolver "^1.2.2" jest-util "^29.2.1" - jest-validate "^29.2.1" + jest-validate "^29.2.2" resolve "^1.20.0" resolve.exports "^1.1.0" slash "^3.0.0" -jest-runner@^29.2.1: - version "29.2.1" - resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-29.2.1.tgz#885afe64661cb2f51f84c1b97afb713d1093c124" - integrity sha512-PojFI+uVhQ4u4YZKCN/a3yU0/l/pJJXhq1sW3JpCp8CyvGBYGddRFPKZ1WihApusxqWRTHjBJmGyPWv6Av2lWA== +jest-runner@^29.2.2: + version "29.2.2" + resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-29.2.2.tgz#6b5302ed15eba8bf05e6b14d40f1e8d469564da3" + integrity sha512-1CpUxXDrbsfy9Hr9/1zCUUhT813kGGK//58HeIw/t8fa/DmkecEwZSWlb1N/xDKXg3uCFHQp1GCvlSClfImMxg== dependencies: "@jest/console" "^29.2.1" - "@jest/environment" "^29.2.1" + "@jest/environment" "^29.2.2" "@jest/test-result" "^29.2.1" - "@jest/transform" "^29.2.1" + "@jest/transform" "^29.2.2" "@jest/types" "^29.2.1" "@types/node" "*" chalk "^4.0.0" - emittery "^0.10.2" + emittery "^0.13.1" graceful-fs "^4.2.9" jest-docblock "^29.2.0" - jest-environment-node "^29.2.1" + jest-environment-node "^29.2.2" jest-haste-map "^29.2.1" jest-leak-detector "^29.2.1" jest-message-util "^29.2.1" - jest-resolve "^29.2.1" - jest-runtime "^29.2.1" + jest-resolve "^29.2.2" + jest-runtime "^29.2.2" jest-util "^29.2.1" - jest-watcher "^29.2.1" + jest-watcher "^29.2.2" jest-worker "^29.2.1" p-limit "^3.1.0" source-map-support "0.5.13" -jest-runtime@^29.2.1: - version "29.2.1" - resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-29.2.1.tgz#62e3a23c33710ae4d9c3304dda851a5fb225b574" - integrity sha512-PSQ880OoIW9y8E6/jjhGn3eQNgNc6ndMzCZaKqy357bv7FqCfSyYepu3yDC6Sp1Vkt+GhP2M/PVgldS2uZSFZg== +jest-runtime@^29.2.2: + version "29.2.2" + resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-29.2.2.tgz#4068ee82423769a481460efd21d45a8efaa5c179" + integrity sha512-TpR1V6zRdLynckKDIQaY41od4o0xWL+KOPUCZvJK2bu5P1UXhjobt5nJ2ICNeIxgyj9NGkO0aWgDqYPVhDNKjA== dependencies: - "@jest/environment" "^29.2.1" - "@jest/fake-timers" "^29.2.1" - "@jest/globals" "^29.2.1" + "@jest/environment" "^29.2.2" + "@jest/fake-timers" "^29.2.2" + "@jest/globals" "^29.2.2" "@jest/source-map" "^29.2.0" "@jest/test-result" "^29.2.1" - "@jest/transform" "^29.2.1" + "@jest/transform" "^29.2.2" "@jest/types" "^29.2.1" "@types/node" "*" chalk "^4.0.0" @@ -7888,18 +7888,18 @@ jest-runtime@^29.2.1: graceful-fs "^4.2.9" jest-haste-map "^29.2.1" jest-message-util "^29.2.1" - jest-mock "^29.2.1" + jest-mock "^29.2.2" jest-regex-util "^29.2.0" - jest-resolve "^29.2.1" - jest-snapshot "^29.2.1" + jest-resolve "^29.2.2" + jest-snapshot "^29.2.2" jest-util "^29.2.1" slash "^3.0.0" strip-bom "^4.0.0" -jest-snapshot@^29.2.1: - version "29.2.1" - resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-29.2.1.tgz#f3843b3099c8fec7e6218dea18cc506f10ea5d30" - integrity sha512-KZdLD7iEz5M4ZYd+ezZ/kk73z+DtNbk/yJ4Qx7408Vb0CCuclJIZPa/HmIwSsCfIlOBNcYTKufr7x/Yv47oYlg== +jest-snapshot@^29.2.2: + version "29.2.2" + resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-29.2.2.tgz#1016ce60297b77382386bad561107174604690c2" + integrity sha512-GfKJrpZ5SMqhli3NJ+mOspDqtZfJBryGA8RIBxF+G+WbDoC7HCqKaeAss4Z/Sab6bAW11ffasx8/vGsj83jyjA== dependencies: "@babel/core" "^7.11.6" "@babel/generator" "^7.7.2" @@ -7907,19 +7907,19 @@ jest-snapshot@^29.2.1: "@babel/plugin-syntax-typescript" "^7.7.2" "@babel/traverse" "^7.7.2" "@babel/types" "^7.3.3" - "@jest/expect-utils" "^29.2.1" - "@jest/transform" "^29.2.1" + "@jest/expect-utils" "^29.2.2" + "@jest/transform" "^29.2.2" "@jest/types" "^29.2.1" "@types/babel__traverse" "^7.0.6" "@types/prettier" "^2.1.5" babel-preset-current-node-syntax "^1.0.0" chalk "^4.0.0" - expect "^29.2.1" + expect "^29.2.2" graceful-fs "^4.2.9" jest-diff "^29.2.1" jest-get-type "^29.2.0" jest-haste-map "^29.2.1" - jest-matcher-utils "^29.2.1" + jest-matcher-utils "^29.2.2" jest-message-util "^29.2.1" jest-util "^29.2.1" natural-compare "^1.4.0" @@ -7938,10 +7938,10 @@ jest-util@^29.2.1: graceful-fs "^4.2.9" picomatch "^2.2.3" -jest-validate@^29.2.1: - version "29.2.1" - resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-29.2.1.tgz#db814ce12c4c7e4746044922762e56eb177d066c" - integrity sha512-DZVX5msG6J6DL5vUUw+++6LEkXUsPwB5R7fsfM7BXdz2Ipr0Ib046ak+8egrwAR++pvSM/5laxLK977ieIGxkQ== +jest-validate@^29.2.2: + version "29.2.2" + resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-29.2.2.tgz#e43ce1931292dfc052562a11bc681af3805eadce" + integrity sha512-eJXATaKaSnOuxNfs8CLHgdABFgUrd0TtWS8QckiJ4L/QVDF4KVbZFBBOwCBZHOS0Rc5fOxqngXeGXE3nGQkpQA== dependencies: "@jest/types" "^29.2.1" camelcase "^6.2.0" @@ -7950,17 +7950,17 @@ jest-validate@^29.2.1: leven "^3.1.0" pretty-format "^29.2.1" -jest-watcher@^29.2.1: - version "29.2.1" - resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-29.2.1.tgz#1cb91f8aa9e77b1332af139944ad65e51430d7c3" - integrity sha512-7jFaHUaRq50l4w/f6RuY713bvI5XskMmjWCE54NGYcY74fLkShS8LucXJke1QfGnwDSCoIqGnGGGKPwdaBYz2Q== +jest-watcher@^29.2.2: + version "29.2.2" + resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-29.2.2.tgz#7093d4ea8177e0a0da87681a9e7b09a258b9daf7" + integrity sha512-j2otfqh7mOvMgN2WlJ0n7gIx9XCMWntheYGlBK7+5g3b1Su13/UAK7pdKGyd4kDlrLwtH2QPvRv5oNIxWvsJ1w== dependencies: "@jest/test-result" "^29.2.1" "@jest/types" "^29.2.1" "@types/node" "*" ansi-escapes "^4.2.1" chalk "^4.0.0" - emittery "^0.10.2" + emittery "^0.13.1" jest-util "^29.2.1" string-length "^4.0.1" @@ -7983,15 +7983,15 @@ jest-worker@^29.2.1: merge-stream "^2.0.0" supports-color "^8.0.0" -jest@^29.2.1: - version "29.2.1" - resolved "https://registry.yarnpkg.com/jest/-/jest-29.2.1.tgz#352ec0b81a0e436691d546d984cd7d8f72ffd26a" - integrity sha512-K0N+7rx+fv3Us3KhuwRSJt55MMpZPs9Q3WSO/spRZSnsalX8yEYOTQ1PiSN7OvqzoRX4JEUXCbOJRlP4n8m5LA== +jest@^29.2.2: + version "29.2.2" + resolved "https://registry.yarnpkg.com/jest/-/jest-29.2.2.tgz#24da83cbbce514718acd698926b7679109630476" + integrity sha512-r+0zCN9kUqoON6IjDdjbrsWobXM/09Nd45kIPRD8kloaRh1z5ZCMdVsgLXGxmlL7UpAJsvCYOQNO+NjvG/gqiQ== dependencies: - "@jest/core" "^29.2.1" + "@jest/core" "^29.2.2" "@jest/types" "^29.2.1" import-local "^3.0.2" - jest-cli "^29.2.1" + jest-cli "^29.2.2" joi@^17.6.0: version "17.6.0" @@ -8131,10 +8131,10 @@ jsprim@^1.2.2: json-schema "0.4.0" verror "1.10.0" -katex@^0.16.2: - version "0.16.2" - resolved "https://registry.yarnpkg.com/katex/-/katex-0.16.2.tgz#9d3dc2a7e65fb8aa31101b1f86888ec40eed7b24" - integrity sha512-70DJdQAyh9EMsthw3AaQlDyFf54X7nWEUIa5W+rq8XOpEk//w5Th7/8SqFqpvi/KZ2t6MHUj4f9wLmztBmAYQA== +katex@^0.16.3: + version "0.16.3" + resolved "https://registry.yarnpkg.com/katex/-/katex-0.16.3.tgz#29640560b8fa0403e45f3aa20da5fdbb6d2b83a8" + integrity sha512-3EykQddareoRmbtNiNEDgl3IGjryyrp2eg/25fHDEnlHymIDi33bptkMv6K4EOC2LZCybLW/ZkEo6Le+EM9pmA== dependencies: commander "^8.0.0" @@ -10071,6 +10071,11 @@ regenerate@^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.13.10: + version "0.13.10" + resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.10.tgz#ed07b19616bcbec5da6274ebc75ae95634bfc2ee" + integrity sha512-KepLsg4dU12hryUO7bp/axHAKvwGOCV0sGloQtpagJ12ai+ojVDqkeGSiRX1zlq+kjIMZ1t7gpze+26QqtdGqw== + regenerator-runtime@^0.13.4: version "0.13.9" resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz#8925742a98ffd90814988d7566ad30ca3b263b52"