From ca18d16b559469fae5bc8e74cd15ce19f6305027 Mon Sep 17 00:00:00 2001 From: Polkadot Wiki CI Date: Thu, 23 May 2024 09:17:31 +0000 Subject: [PATCH] Deploy website - based on f201d348a11b5de5f9d08ac64a56bc2478030d08 --- 404.html | 4 ++-- assets/js/5424.57902f93.js | 2 ++ ...b21dd1.js.LICENSE.txt => 5424.57902f93.js.LICENSE.txt} | 0 assets/js/5424.e7b21dd1.js | 2 -- assets/js/{60738e36.4ee51de4.js => 60738e36.d8a4cbd8.js} | 2 +- assets/js/a74a59a0.02bd5f36.js | 1 + assets/js/a74a59a0.7deb8cbb.js | 1 - assets/js/c91a9c06.68bbd3df.js | 1 + assets/js/c91a9c06.e06e91b1.js | 1 - assets/js/ccc1222e.7635c335.js | 1 - assets/js/ccc1222e.84d45f59.js | 1 + ...{runtime~main.f9f90dc8.js => runtime~main.0ba3a3bf.js} | 2 +- docs/alpha-program/index.html | 4 ++-- docs/ambassadors/index.html | 4 ++-- docs/apps-index/index.html | 4 ++-- docs/bug-bounty/index.html | 4 ++-- docs/build-client-index/index.html | 4 ++-- docs/build-client-side/index.html | 4 ++-- docs/build-dapp/index.html | 4 ++-- docs/build-data/index.html | 4 ++-- docs/build-guide/index.html | 4 ++-- docs/build-guides-coretime-start/index.html | 4 ++-- docs/build-guides-coretime-troubleshoot/index.html | 4 ++-- docs/build-guides-install-deps/index.html | 4 ++-- docs/build-guides-template-basic/index.html | 4 ++-- docs/build-hackathon/index.html | 4 ++-- docs/build-hrmp-channels/index.html | 4 ++-- docs/build-index/index.html | 4 ++-- docs/build-integrate-assets/index.html | 4 ++-- docs/build-integration/index.html | 4 ++-- docs/build-light-clients/index.html | 4 ++-- docs/build-network-overview/index.html | 4 ++-- docs/build-node-interaction/index.html | 4 ++-- docs/build-node-management/index.html | 4 ++-- docs/build-open-source/index.html | 8 ++++---- docs/build-oracle/index.html | 4 ++-- docs/build-pdk/index.html | 4 ++-- docs/build-protocol-index/index.html | 4 ++-- docs/build-protocol-info/index.html | 4 ++-- docs/build-smart-contracts/index.html | 4 ++-- docs/build-storage/index.html | 4 ++-- docs/build-tools-index/index.html | 4 ++-- docs/build-transaction-construction/index.html | 4 ++-- docs/community-index/index.html | 4 ++-- docs/community/index.html | 4 ++-- docs/contributing/index.html | 4 ++-- docs/contributors/index.html | 4 ++-- docs/dashboards-index/index.html | 4 ++-- docs/decentralized-futures/index.html | 4 ++-- docs/decentralized-voices/index.html | 4 ++-- docs/dev-heroes/index.html | 4 ++-- docs/explore-index/index.html | 4 ++-- docs/faq/index.html | 4 ++-- docs/general-index/index.html | 4 ++-- docs/getting-started/index.html | 4 ++-- docs/glossary/index.html | 4 ++-- docs/governance-apps/index.html | 4 ++-- docs/grants/index.html | 4 ++-- docs/how-to-dyor/index.html | 4 ++-- docs/kusama-adversarial-cheatsheet/index.html | 4 ++-- docs/kusama-bug-bounty/index.html | 4 ++-- docs/kusama-claims/index.html | 4 ++-- docs/kusama-coc/index.html | 4 ++-- docs/kusama-community/index.html | 4 ++-- docs/kusama-getting-started/index.html | 4 ++-- docs/kusama-index/index.html | 4 ++-- docs/kusama-parameters/index.html | 4 ++-- docs/kusama-social-recovery/index.html | 4 ++-- docs/kusama-timeline/index.html | 4 ++-- docs/learn-DOT/index.html | 4 ++-- docs/learn-account-abstraction/index.html | 4 ++-- docs/learn-account-advanced/index.html | 4 ++-- docs/learn-account-balances/index.html | 4 ++-- docs/learn-account-multisig/index.html | 4 ++-- docs/learn-accounts/index.html | 4 ++-- docs/learn-advanced-index/index.html | 4 ++-- docs/learn-agile-coretime-getting-started/index.html | 4 ++-- docs/learn-agile-coretime-index/index.html | 4 ++-- docs/learn-agile-coretime/index.html | 4 ++-- docs/learn-architecture/index.html | 4 ++-- docs/learn-archive/index.html | 4 ++-- docs/learn-asset-conversion-assethub/index.html | 4 ++-- docs/learn-assets-index/index.html | 4 ++-- docs/learn-assets/index.html | 4 ++-- docs/learn-async-backing/index.html | 4 ++-- docs/learn-auction/index.html | 4 ++-- docs/learn-basics-index/index.html | 4 ++-- docs/learn-bridge-hub/index.html | 4 ++-- docs/learn-bridges/index.html | 4 ++-- docs/learn-collator/index.html | 4 ++-- docs/learn-comparisons-avalanche/index.html | 4 ++-- docs/learn-comparisons-cosmos/index.html | 4 ++-- docs/learn-comparisons-ethereum-2/index.html | 4 ++-- docs/learn-comparisons-kusama/index.html | 4 ++-- docs/learn-comparisons-rollups/index.html | 4 ++-- docs/learn-comparisons/index.html | 4 ++-- docs/learn-components-index/index.html | 4 ++-- docs/learn-consensus/index.html | 4 ++-- docs/learn-crowdloans/index.html | 4 ++-- docs/learn-cryptography/index.html | 4 ++-- docs/learn-dot-ksm-bridge/index.html | 4 ++-- docs/learn-elastic-scaling/index.html | 4 ++-- docs/learn-future-implementations-index/index.html | 4 ++-- docs/learn-guides-accounts-multisig/index.html | 4 ++-- docs/learn-guides-accounts-proxy-pure/index.html | 4 ++-- docs/learn-guides-accounts-proxy/index.html | 4 ++-- docs/learn-guides-accounts/index.html | 4 ++-- docs/learn-guides-asset-conversion/index.html | 4 ++-- docs/learn-guides-assets-create/index.html | 4 ++-- docs/learn-guides-assets-ledger/index.html | 4 ++-- docs/learn-guides-assets/index.html | 4 ++-- docs/learn-guides-bounties/index.html | 4 ++-- docs/learn-guides-bridges/index.html | 4 ++-- docs/learn-guides-coretime-marketplaces/index.html | 4 ++-- docs/learn-guides-coretime-parachains/index.html | 4 ++-- docs/learn-guides-dot-ksm-bridge/index.html | 4 ++-- docs/learn-guides-identity/index.html | 4 ++-- docs/learn-guides-ledger/index.html | 4 ++-- docs/learn-guides-nominator/index.html | 4 ++-- docs/learn-guides-polkadot-opengov/index.html | 4 ++-- docs/learn-guides-staking-pools/index.html | 4 ++-- docs/learn-guides-staking/index.html | 4 ++-- docs/learn-guides-transfers/index.html | 4 ++-- docs/learn-guides-treasury/index.html | 4 ++-- docs/learn-guides-vault/index.html | 4 ++-- docs/learn-hyperbridge/index.html | 4 ++-- docs/learn-identity/index.html | 8 ++++---- docs/learn-implementations/index.html | 4 ++-- docs/learn-index/index.html | 4 ++-- docs/learn-inflation/index.html | 4 ++-- docs/learn-jam-chain/index.html | 4 ++-- docs/learn-jam-faq/index.html | 4 ++-- docs/learn-nft-pallets/index.html | 4 ++-- docs/learn-nft-projects/index.html | 4 ++-- docs/learn-nft/index.html | 4 ++-- docs/learn-nomination-pools/index.html | 4 ++-- docs/learn-nominator/index.html | 4 ++-- docs/learn-parachains-faq/index.html | 4 ++-- docs/learn-parachains-index/index.html | 4 ++-- docs/learn-parachains-protocol/index.html | 4 ++-- docs/learn-parachains/index.html | 4 ++-- docs/learn-participants-index/index.html | 4 ++-- docs/learn-phragmen/index.html | 4 ++-- docs/learn-polkadot-host/index.html | 4 ++-- docs/learn-polkadot-js-guides/index.html | 4 ++-- docs/learn-polkadot-opengov-index/index.html | 4 ++-- docs/learn-polkadot-opengov-origins/index.html | 4 ++-- docs/learn-polkadot-opengov-treasury/index.html | 4 ++-- docs/learn-polkadot-opengov/index.html | 4 ++-- docs/learn-polkadot-technical-fellowship/index.html | 4 ++-- docs/learn-polkadotjs/index.html | 4 ++-- docs/learn-proxies-pure/index.html | 4 ++-- docs/learn-proxies/index.html | 4 ++-- docs/learn-runtime-upgrades/index.html | 4 ++-- docs/learn-sassafras/index.html | 4 ++-- docs/learn-scams/index.html | 4 ++-- docs/learn-spree/index.html | 4 ++-- docs/learn-staking-advanced/index.html | 4 ++-- docs/learn-staking-index/index.html | 4 ++-- docs/learn-staking/index.html | 4 ++-- docs/learn-system-chains/index.html | 4 ++-- docs/learn-teleport/index.html | 4 ++-- docs/learn-transaction-fees/index.html | 4 ++-- docs/learn-transactions/index.html | 4 ++-- docs/learn-validator/index.html | 4 ++-- docs/learn-video-tutorials/index.html | 4 ++-- docs/learn-wasm/index.html | 4 ++-- docs/learn-xcm-index/index.html | 4 ++-- docs/learn-xcm-instructions/index.html | 4 ++-- docs/learn-xcm-pallet/index.html | 4 ++-- docs/learn-xcm-transport/index.html | 4 ++-- docs/learn-xcm-usecases/index.html | 4 ++-- docs/learn-xcm/index.html | 4 ++-- docs/learn-xcvm/index.html | 4 ++-- docs/learn/learn-controller/index.html | 4 ++-- docs/learn/learn-governance/index.html | 4 ++-- docs/learn/learn-launch/index.html | 4 ++-- docs/learn/learn-redenomination/index.html | 4 ++-- docs/learn/learn-treasury/index.html | 4 ++-- docs/learn/xcm/config-deep-dive/index.html | 4 ++-- docs/learn/xcm/fundamentals-fees/index.html | 4 ++-- docs/learn/xcm/fundamentals-multiasset/index.html | 4 ++-- docs/learn/xcm/fundamentals-summary/index.html | 4 ++-- docs/learn/xcm/fundamentals-xcvm/index.html | 4 ++-- docs/learn/xcm/fundamentals/index.html | 4 ++-- .../xcm/fundamentals/multilocation-example/index.html | 4 ++-- .../xcm/fundamentals/multilocation-junctions/index.html | 4 ++-- .../xcm/fundamentals/multilocation-summary/index.html | 4 ++-- docs/learn/xcm/fundamentals/multilocation/index.html | 4 ++-- docs/learn/xcm/index.html | 4 ++-- docs/learn/xcm/introduction/index.html | 4 ++-- docs/learn/xcm/journey-assets/index.html | 4 ++-- docs/learn/xcm/journey-channels/index.html | 4 ++-- docs/learn/xcm/journey-expectations/index.html | 4 ++-- docs/learn/xcm/journey-fees/index.html | 4 ++-- docs/learn/xcm/journey-holding/index.html | 4 ++-- docs/learn/xcm/journey-locks/index.html | 4 ++-- docs/learn/xcm/journey-origin/index.html | 4 ++-- docs/learn/xcm/journey-queries/index.html | 4 ++-- docs/learn/xcm/journey-register/index.html | 4 ++-- docs/learn/xcm/journey-summary/index.html | 4 ++-- docs/learn/xcm/journey-transact/index.html | 4 ++-- docs/learn/xcm/journey-version/index.html | 4 ++-- docs/learn/xcm/journey/index.html | 4 ++-- docs/learn/xcm/journey/transfers-reserve/index.html | 4 ++-- docs/learn/xcm/journey/transfers-summary/index.html | 4 ++-- docs/learn/xcm/journey/transfers-teleport/index.html | 4 ++-- docs/learn/xcm/journey/transfers/index.html | 4 ++-- docs/learn/xcm/overview-architecture/index.html | 4 ++-- docs/learn/xcm/overview-format/index.html | 4 ++-- docs/learn/xcm/overview-intro/index.html | 4 ++-- docs/learn/xcm/overview-summary/index.html | 4 ++-- docs/learn/xcm/overview-xcvm/index.html | 4 ++-- docs/learn/xcm/overview/index.html | 4 ++-- docs/learn/xcm/quickstart-first-look/index.html | 4 ++-- docs/learn/xcm/quickstart-simulator/index.html | 4 ++-- docs/learn/xcm/quickstart-summary/index.html | 4 ++-- docs/learn/xcm/quickstart/index.html | 4 ++-- docs/learn/xcm/reference-glossary/index.html | 4 ++-- docs/learn/xcm/reference-xcvm-registers/index.html | 4 ++-- docs/learn/xcm/references/index.html | 4 ++-- docs/learn/xcm/testing/index.html | 4 ++-- docs/ledger/index.html | 4 ++-- docs/maintain-archive/index.html | 4 ++-- docs/maintain-bootnode/index.html | 4 ++-- docs/maintain-endpoints/index.html | 4 ++-- docs/maintain-errors/index.html | 4 ++-- docs/maintain-guides-async-backing/index.html | 4 ++-- docs/maintain-guides-avoid-slashing/index.html | 4 ++-- docs/maintain-guides-how-to-chill/index.html | 4 ++-- docs/maintain-guides-how-to-monitor-your-node/index.html | 4 ++-- docs/maintain-guides-how-to-stop-validating/index.html | 4 ++-- docs/maintain-guides-how-to-systemd/index.html | 4 ++-- docs/maintain-guides-how-to-upgrade/index.html | 4 ++-- docs/maintain-guides-how-to-validate-kusama/index.html | 4 ++-- docs/maintain-guides-how-to-validate-polkadot/index.html | 8 ++++---- docs/maintain-guides-secure-validator/index.html | 4 ++-- docs/maintain-guides-society-kusama/index.html | 4 ++-- docs/maintain-guides-validator-community/index.html | 4 ++-- docs/maintain-guides-validator-payout/index.html | 4 ++-- docs/maintain-index/index.html | 4 ++-- docs/maintain-networks/index.html | 4 ++-- docs/maintain-polkadot-parameters/index.html | 4 ++-- docs/maintain-rpc/index.html | 4 ++-- docs/maintain-sync/index.html | 4 ++-- docs/maintain-wss/index.html | 4 ++-- docs/maintain/maintain-guides-democracy/index.html | 4 ++-- .../maintain-guides-how-to-join-council/index.html | 4 ++-- .../maintain-guides-how-to-vote-councillor/index.html | 4 ++-- docs/metadata/index.html | 4 ++-- docs/multisig-apps/index.html | 4 ++-- docs/parachains-apps/index.html | 4 ++-- docs/polkadot-direction/index.html | 4 ++-- docs/polkadot-v1/index.html | 4 ++-- docs/polkadot-vault/index.html | 4 ++-- docs/polkadot-vision-index/index.html | 4 ++-- docs/polkadotjs-ui/index.html | 4 ++-- docs/polkadotjs/index.html | 4 ++-- docs/programs-index/index.html | 4 ++-- docs/research/index.html | 4 ++-- docs/staking-apps/index.html | 4 ++-- docs/staking-dashboard/index.html | 4 ++-- docs/start-building/index.html | 4 ++-- docs/stay-safe-index/index.html | 4 ++-- docs/thousand-contributors/index.html | 4 ++-- docs/thousand-validators/index.html | 4 ++-- docs/transaction-attacks/index.html | 4 ++-- docs/wallets-and-extensions/index.html | 4 ++-- docs/wallets-index/index.html | 4 ++-- docs/web3-and-polkadot/index.html | 4 ++-- index.html | 4 ++-- search/index.html | 4 ++-- 272 files changed, 535 insertions(+), 535 deletions(-) create mode 100644 assets/js/5424.57902f93.js rename assets/js/{5424.e7b21dd1.js.LICENSE.txt => 5424.57902f93.js.LICENSE.txt} (100%) delete mode 100644 assets/js/5424.e7b21dd1.js rename assets/js/{60738e36.4ee51de4.js => 60738e36.d8a4cbd8.js} (99%) create mode 100644 assets/js/a74a59a0.02bd5f36.js delete mode 100644 assets/js/a74a59a0.7deb8cbb.js create mode 100644 assets/js/c91a9c06.68bbd3df.js delete mode 100644 assets/js/c91a9c06.e06e91b1.js delete mode 100644 assets/js/ccc1222e.7635c335.js create mode 100644 assets/js/ccc1222e.84d45f59.js rename assets/js/{runtime~main.f9f90dc8.js => runtime~main.0ba3a3bf.js} (85%) diff --git a/404.html b/404.html index dc8fa69f66..a05f4c233a 100644 --- a/404.html +++ b/404.html @@ -16,13 +16,13 @@ - +
Skip to main content

Page Not Found

We could not find what you were looking for.

Please contact the owner of the site that linked you to the original URL and let them know their link is broken.

- + \ No newline at end of file diff --git a/assets/js/5424.57902f93.js b/assets/js/5424.57902f93.js new file mode 100644 index 0000000000..aa92ff4a2a --- /dev/null +++ b/assets/js/5424.57902f93.js @@ -0,0 +1,2 @@ +/*! For license information please see 5424.57902f93.js.LICENSE.txt */ +(self.webpackChunk=self.webpackChunk||[]).push([[5424],{3905:(e,t,n)=>{"use strict";n.d(t,{Zo:()=>u,kt:()=>h});var r=n(67294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function s(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var c=r.createContext({}),d=function(e){var t=r.useContext(c),n=t;return e&&(n="function"==typeof e?e(t):s(s({},t),e)),n},u=function(e){var t=d(e.components);return r.createElement(c.Provider,{value:t},e.children)},l="mdxType",f={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},p=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,i=e.originalType,c=e.parentName,u=o(e,["components","mdxType","originalType","parentName"]),l=d(n),p=a,h=l["".concat(c,".").concat(p)]||l[p]||f[p]||i;return n?r.createElement(h,s(s({ref:t},u),{},{components:n})):r.createElement(h,s({ref:t},u))}));function h(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var i=n.length,s=new Array(i);s[0]=p;var o={};for(var c in t)hasOwnProperty.call(t,c)&&(o[c]=t[c]);o.originalType=e,o[l]="string"==typeof e?e:a,s[1]=o;for(var d=2;d=48&&n<=57?n-48:n>=65&&n<=70?n-55:n>=97&&n<=102?n-87:void r(!1,"Invalid character in "+e)}function c(e,t,n){var r=o(e,n);return n-1>=t&&(r|=o(e,n-1)<<4),r}function d(e,t,n,a){for(var i=0,s=0,o=Math.min(e.length,n),c=t;c=49?d-49+10:d>=17?d-17+10:d,r(d>=0&&s0?e:t},i.min=function(e,t){return e.cmp(t)<0?e:t},i.prototype._init=function(e,t,n){if("number"==typeof e)return this._initNumber(e,t,n);if("object"==typeof e)return this._initArray(e,t,n);"hex"===t&&(t=16),r(t===(0|t)&&t>=2&&t<=36);var a=0;"-"===(e=e.toString().replace(/\s+/g,""))[0]&&(a++,this.negative=1),a=0;a-=3)s=e[a]|e[a-1]<<8|e[a-2]<<16,this.words[i]|=s<>>26-o&67108863,(o+=24)>=26&&(o-=26,i++);else if("le"===n)for(a=0,i=0;a>>26-o&67108863,(o+=24)>=26&&(o-=26,i++);return this._strip()},i.prototype._parseHex=function(e,t,n){this.length=Math.ceil((e.length-t)/6),this.words=new Array(this.length);for(var r=0;r=t;r-=2)a=c(e,t,r)<=18?(i-=18,s+=1,this.words[s]|=a>>>26):i+=8;else for(r=(e.length-t)%2==0?t+1:t;r=18?(i-=18,s+=1,this.words[s]|=a>>>26):i+=8;this._strip()},i.prototype._parseBase=function(e,t,n){this.words=[0],this.length=1;for(var r=0,a=1;a<=67108863;a*=t)r++;r--,a=a/t|0;for(var i=e.length-n,s=i%r,o=Math.min(i,i-s)+n,c=0,u=n;u1&&0===this.words[this.length-1];)this.length--;return this._normSign()},i.prototype._normSign=function(){return 1===this.length&&0===this.words[0]&&(this.negative=0),this},"undefined"!=typeof Symbol&&"function"==typeof Symbol.for)try{i.prototype[Symbol.for("nodejs.util.inspect.custom")]=l}catch(_){i.prototype.inspect=l}else i.prototype.inspect=l;function l(){return(this.red?""}var f=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],p=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],h=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64e6,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,243e5,28629151,33554432,39135393,45435424,52521875,60466176];i.prototype.toString=function(e,t){var n;if(t=0|t||1,16===(e=e||10)||"hex"===e){n="";for(var a=0,i=0,s=0;s>>24-a&16777215,(a+=2)>=26&&(a-=26,s--),n=0!==i||s!==this.length-1?f[6-c.length]+c+n:c+n}for(0!==i&&(n=i.toString(16)+n);n.length%t!=0;)n="0"+n;return 0!==this.negative&&(n="-"+n),n}if(e===(0|e)&&e>=2&&e<=36){var d=p[e],u=h[e];n="";var l=this.clone();for(l.negative=0;!l.isZero();){var b=l.modrn(u).toString(e);n=(l=l.idivn(u)).isZero()?b+n:f[d-b.length]+b+n}for(this.isZero()&&(n="0"+n);n.length%t!=0;)n="0"+n;return 0!==this.negative&&(n="-"+n),n}r(!1,"Base should be between 2 and 36")},i.prototype.toNumber=function(){var e=this.words[0];return 2===this.length?e+=67108864*this.words[1]:3===this.length&&1===this.words[2]?e+=4503599627370496+67108864*this.words[1]:this.length>2&&r(!1,"Number can only safely store up to 53 bits"),0!==this.negative?-e:e},i.prototype.toJSON=function(){return this.toString(16,2)},s&&(i.prototype.toBuffer=function(e,t){return this.toArrayLike(s,e,t)}),i.prototype.toArray=function(e,t){return this.toArrayLike(Array,e,t)};function b(e,t,n){n.negative=t.negative^e.negative;var r=e.length+t.length|0;n.length=r,r=r-1|0;var a=0|e.words[0],i=0|t.words[0],s=a*i,o=67108863&s,c=s/67108864|0;n.words[0]=o;for(var d=1;d>>26,l=67108863&c,f=Math.min(d,t.length-1),p=Math.max(0,d-e.length+1);p<=f;p++){var h=d-p|0;u+=(s=(a=0|e.words[h])*(i=0|t.words[p])+l)/67108864|0,l=67108863&s}n.words[d]=0|l,c=0|u}return 0!==c?n.words[d]=0|c:n.length--,n._strip()}i.prototype.toArrayLike=function(e,t,n){this._strip();var a=this.byteLength(),i=n||Math.max(1,a);r(a<=i,"byte array longer than desired length"),r(i>0,"Requested array length <= 0");var s=function(e,t){return e.allocUnsafe?e.allocUnsafe(t):new e(t)}(e,i);return this["_toArrayLike"+("le"===t?"LE":"BE")](s,a),s},i.prototype._toArrayLikeLE=function(e,t){for(var n=0,r=0,a=0,i=0;a>8&255),n>16&255),6===i?(n>24&255),r=0,i=0):(r=s>>>24,i+=2)}if(n=0&&(e[n--]=s>>8&255),n>=0&&(e[n--]=s>>16&255),6===i?(n>=0&&(e[n--]=s>>24&255),r=0,i=0):(r=s>>>24,i+=2)}if(n>=0)for(e[n--]=r;n>=0;)e[n--]=0},Math.clz32?i.prototype._countBits=function(e){return 32-Math.clz32(e)}:i.prototype._countBits=function(e){var t=e,n=0;return t>=4096&&(n+=13,t>>>=13),t>=64&&(n+=7,t>>>=7),t>=8&&(n+=4,t>>>=4),t>=2&&(n+=2,t>>>=2),n+t},i.prototype._zeroBits=function(e){if(0===e)return 26;var t=e,n=0;return 0==(8191&t)&&(n+=13,t>>>=13),0==(127&t)&&(n+=7,t>>>=7),0==(15&t)&&(n+=4,t>>>=4),0==(3&t)&&(n+=2,t>>>=2),0==(1&t)&&n++,n},i.prototype.bitLength=function(){var e=this.words[this.length-1],t=this._countBits(e);return 26*(this.length-1)+t},i.prototype.zeroBits=function(){if(this.isZero())return 0;for(var e=0,t=0;te.length?this.clone().ior(e):e.clone().ior(this)},i.prototype.uor=function(e){return this.length>e.length?this.clone().iuor(e):e.clone().iuor(this)},i.prototype.iuand=function(e){var t;t=this.length>e.length?e:this;for(var n=0;ne.length?this.clone().iand(e):e.clone().iand(this)},i.prototype.uand=function(e){return this.length>e.length?this.clone().iuand(e):e.clone().iuand(this)},i.prototype.iuxor=function(e){var t,n;this.length>e.length?(t=this,n=e):(t=e,n=this);for(var r=0;re.length?this.clone().ixor(e):e.clone().ixor(this)},i.prototype.uxor=function(e){return this.length>e.length?this.clone().iuxor(e):e.clone().iuxor(this)},i.prototype.inotn=function(e){r("number"==typeof e&&e>=0);var t=0|Math.ceil(e/26),n=e%26;this._expand(t),n>0&&t--;for(var a=0;a0&&(this.words[a]=~this.words[a]&67108863>>26-n),this._strip()},i.prototype.notn=function(e){return this.clone().inotn(e)},i.prototype.setn=function(e,t){r("number"==typeof e&&e>=0);var n=e/26|0,a=e%26;return this._expand(n+1),this.words[n]=t?this.words[n]|1<e.length?(n=this,r=e):(n=e,r=this);for(var a=0,i=0;i>>26;for(;0!==a&&i>>26;if(this.length=n.length,0!==a)this.words[this.length]=a,this.length++;else if(n!==this)for(;ie.length?this.clone().iadd(e):e.clone().iadd(this)},i.prototype.isub=function(e){if(0!==e.negative){e.negative=0;var t=this.iadd(e);return e.negative=1,t._normSign()}if(0!==this.negative)return this.negative=0,this.iadd(e),this.negative=1,this._normSign();var n,r,a=this.cmp(e);if(0===a)return this.negative=0,this.length=1,this.words[0]=0,this;a>0?(n=this,r=e):(n=e,r=this);for(var i=0,s=0;s>26,this.words[s]=67108863&t;for(;0!==i&&s>26,this.words[s]=67108863&t;if(0===i&&s>>13,p=0|s[1],h=8191&p,b=p>>>13,m=0|s[2],y=8191&m,x=m>>>13,g=0|s[3],v=8191&g,w=g>>>13,S=0|s[4],k=8191&S,T=S>>>13,P=0|s[5],V=8191&P,M=P>>>13,_=0|s[6],I=8191&_,O=_>>>13,N=0|s[7],E=8191&N,C=N>>>13,A=0|s[8],H=8191&A,R=A>>>13,B=0|s[9],L=8191&B,U=B>>>13,z=0|o[0],D=8191&z,q=z>>>13,j=0|o[1],F=8191&j,X=j>>>13,W=0|o[2],Z=8191&W,G=W>>>13,K=0|o[3],Y=8191&K,J=K>>>13,Q=0|o[4],$=8191&Q,ee=Q>>>13,te=0|o[5],ne=8191&te,re=te>>>13,ae=0|o[6],ie=8191&ae,se=ae>>>13,oe=0|o[7],ce=8191&oe,de=oe>>>13,ue=0|o[8],le=8191&ue,fe=ue>>>13,pe=0|o[9],he=8191&pe,be=pe>>>13;n.negative=e.negative^t.negative,n.length=19;var me=(d+(r=Math.imul(l,D))|0)+((8191&(a=(a=Math.imul(l,q))+Math.imul(f,D)|0))<<13)|0;d=((i=Math.imul(f,q))+(a>>>13)|0)+(me>>>26)|0,me&=67108863,r=Math.imul(h,D),a=(a=Math.imul(h,q))+Math.imul(b,D)|0,i=Math.imul(b,q);var ye=(d+(r=r+Math.imul(l,F)|0)|0)+((8191&(a=(a=a+Math.imul(l,X)|0)+Math.imul(f,F)|0))<<13)|0;d=((i=i+Math.imul(f,X)|0)+(a>>>13)|0)+(ye>>>26)|0,ye&=67108863,r=Math.imul(y,D),a=(a=Math.imul(y,q))+Math.imul(x,D)|0,i=Math.imul(x,q),r=r+Math.imul(h,F)|0,a=(a=a+Math.imul(h,X)|0)+Math.imul(b,F)|0,i=i+Math.imul(b,X)|0;var xe=(d+(r=r+Math.imul(l,Z)|0)|0)+((8191&(a=(a=a+Math.imul(l,G)|0)+Math.imul(f,Z)|0))<<13)|0;d=((i=i+Math.imul(f,G)|0)+(a>>>13)|0)+(xe>>>26)|0,xe&=67108863,r=Math.imul(v,D),a=(a=Math.imul(v,q))+Math.imul(w,D)|0,i=Math.imul(w,q),r=r+Math.imul(y,F)|0,a=(a=a+Math.imul(y,X)|0)+Math.imul(x,F)|0,i=i+Math.imul(x,X)|0,r=r+Math.imul(h,Z)|0,a=(a=a+Math.imul(h,G)|0)+Math.imul(b,Z)|0,i=i+Math.imul(b,G)|0;var ge=(d+(r=r+Math.imul(l,Y)|0)|0)+((8191&(a=(a=a+Math.imul(l,J)|0)+Math.imul(f,Y)|0))<<13)|0;d=((i=i+Math.imul(f,J)|0)+(a>>>13)|0)+(ge>>>26)|0,ge&=67108863,r=Math.imul(k,D),a=(a=Math.imul(k,q))+Math.imul(T,D)|0,i=Math.imul(T,q),r=r+Math.imul(v,F)|0,a=(a=a+Math.imul(v,X)|0)+Math.imul(w,F)|0,i=i+Math.imul(w,X)|0,r=r+Math.imul(y,Z)|0,a=(a=a+Math.imul(y,G)|0)+Math.imul(x,Z)|0,i=i+Math.imul(x,G)|0,r=r+Math.imul(h,Y)|0,a=(a=a+Math.imul(h,J)|0)+Math.imul(b,Y)|0,i=i+Math.imul(b,J)|0;var ve=(d+(r=r+Math.imul(l,$)|0)|0)+((8191&(a=(a=a+Math.imul(l,ee)|0)+Math.imul(f,$)|0))<<13)|0;d=((i=i+Math.imul(f,ee)|0)+(a>>>13)|0)+(ve>>>26)|0,ve&=67108863,r=Math.imul(V,D),a=(a=Math.imul(V,q))+Math.imul(M,D)|0,i=Math.imul(M,q),r=r+Math.imul(k,F)|0,a=(a=a+Math.imul(k,X)|0)+Math.imul(T,F)|0,i=i+Math.imul(T,X)|0,r=r+Math.imul(v,Z)|0,a=(a=a+Math.imul(v,G)|0)+Math.imul(w,Z)|0,i=i+Math.imul(w,G)|0,r=r+Math.imul(y,Y)|0,a=(a=a+Math.imul(y,J)|0)+Math.imul(x,Y)|0,i=i+Math.imul(x,J)|0,r=r+Math.imul(h,$)|0,a=(a=a+Math.imul(h,ee)|0)+Math.imul(b,$)|0,i=i+Math.imul(b,ee)|0;var we=(d+(r=r+Math.imul(l,ne)|0)|0)+((8191&(a=(a=a+Math.imul(l,re)|0)+Math.imul(f,ne)|0))<<13)|0;d=((i=i+Math.imul(f,re)|0)+(a>>>13)|0)+(we>>>26)|0,we&=67108863,r=Math.imul(I,D),a=(a=Math.imul(I,q))+Math.imul(O,D)|0,i=Math.imul(O,q),r=r+Math.imul(V,F)|0,a=(a=a+Math.imul(V,X)|0)+Math.imul(M,F)|0,i=i+Math.imul(M,X)|0,r=r+Math.imul(k,Z)|0,a=(a=a+Math.imul(k,G)|0)+Math.imul(T,Z)|0,i=i+Math.imul(T,G)|0,r=r+Math.imul(v,Y)|0,a=(a=a+Math.imul(v,J)|0)+Math.imul(w,Y)|0,i=i+Math.imul(w,J)|0,r=r+Math.imul(y,$)|0,a=(a=a+Math.imul(y,ee)|0)+Math.imul(x,$)|0,i=i+Math.imul(x,ee)|0,r=r+Math.imul(h,ne)|0,a=(a=a+Math.imul(h,re)|0)+Math.imul(b,ne)|0,i=i+Math.imul(b,re)|0;var Se=(d+(r=r+Math.imul(l,ie)|0)|0)+((8191&(a=(a=a+Math.imul(l,se)|0)+Math.imul(f,ie)|0))<<13)|0;d=((i=i+Math.imul(f,se)|0)+(a>>>13)|0)+(Se>>>26)|0,Se&=67108863,r=Math.imul(E,D),a=(a=Math.imul(E,q))+Math.imul(C,D)|0,i=Math.imul(C,q),r=r+Math.imul(I,F)|0,a=(a=a+Math.imul(I,X)|0)+Math.imul(O,F)|0,i=i+Math.imul(O,X)|0,r=r+Math.imul(V,Z)|0,a=(a=a+Math.imul(V,G)|0)+Math.imul(M,Z)|0,i=i+Math.imul(M,G)|0,r=r+Math.imul(k,Y)|0,a=(a=a+Math.imul(k,J)|0)+Math.imul(T,Y)|0,i=i+Math.imul(T,J)|0,r=r+Math.imul(v,$)|0,a=(a=a+Math.imul(v,ee)|0)+Math.imul(w,$)|0,i=i+Math.imul(w,ee)|0,r=r+Math.imul(y,ne)|0,a=(a=a+Math.imul(y,re)|0)+Math.imul(x,ne)|0,i=i+Math.imul(x,re)|0,r=r+Math.imul(h,ie)|0,a=(a=a+Math.imul(h,se)|0)+Math.imul(b,ie)|0,i=i+Math.imul(b,se)|0;var ke=(d+(r=r+Math.imul(l,ce)|0)|0)+((8191&(a=(a=a+Math.imul(l,de)|0)+Math.imul(f,ce)|0))<<13)|0;d=((i=i+Math.imul(f,de)|0)+(a>>>13)|0)+(ke>>>26)|0,ke&=67108863,r=Math.imul(H,D),a=(a=Math.imul(H,q))+Math.imul(R,D)|0,i=Math.imul(R,q),r=r+Math.imul(E,F)|0,a=(a=a+Math.imul(E,X)|0)+Math.imul(C,F)|0,i=i+Math.imul(C,X)|0,r=r+Math.imul(I,Z)|0,a=(a=a+Math.imul(I,G)|0)+Math.imul(O,Z)|0,i=i+Math.imul(O,G)|0,r=r+Math.imul(V,Y)|0,a=(a=a+Math.imul(V,J)|0)+Math.imul(M,Y)|0,i=i+Math.imul(M,J)|0,r=r+Math.imul(k,$)|0,a=(a=a+Math.imul(k,ee)|0)+Math.imul(T,$)|0,i=i+Math.imul(T,ee)|0,r=r+Math.imul(v,ne)|0,a=(a=a+Math.imul(v,re)|0)+Math.imul(w,ne)|0,i=i+Math.imul(w,re)|0,r=r+Math.imul(y,ie)|0,a=(a=a+Math.imul(y,se)|0)+Math.imul(x,ie)|0,i=i+Math.imul(x,se)|0,r=r+Math.imul(h,ce)|0,a=(a=a+Math.imul(h,de)|0)+Math.imul(b,ce)|0,i=i+Math.imul(b,de)|0;var Te=(d+(r=r+Math.imul(l,le)|0)|0)+((8191&(a=(a=a+Math.imul(l,fe)|0)+Math.imul(f,le)|0))<<13)|0;d=((i=i+Math.imul(f,fe)|0)+(a>>>13)|0)+(Te>>>26)|0,Te&=67108863,r=Math.imul(L,D),a=(a=Math.imul(L,q))+Math.imul(U,D)|0,i=Math.imul(U,q),r=r+Math.imul(H,F)|0,a=(a=a+Math.imul(H,X)|0)+Math.imul(R,F)|0,i=i+Math.imul(R,X)|0,r=r+Math.imul(E,Z)|0,a=(a=a+Math.imul(E,G)|0)+Math.imul(C,Z)|0,i=i+Math.imul(C,G)|0,r=r+Math.imul(I,Y)|0,a=(a=a+Math.imul(I,J)|0)+Math.imul(O,Y)|0,i=i+Math.imul(O,J)|0,r=r+Math.imul(V,$)|0,a=(a=a+Math.imul(V,ee)|0)+Math.imul(M,$)|0,i=i+Math.imul(M,ee)|0,r=r+Math.imul(k,ne)|0,a=(a=a+Math.imul(k,re)|0)+Math.imul(T,ne)|0,i=i+Math.imul(T,re)|0,r=r+Math.imul(v,ie)|0,a=(a=a+Math.imul(v,se)|0)+Math.imul(w,ie)|0,i=i+Math.imul(w,se)|0,r=r+Math.imul(y,ce)|0,a=(a=a+Math.imul(y,de)|0)+Math.imul(x,ce)|0,i=i+Math.imul(x,de)|0,r=r+Math.imul(h,le)|0,a=(a=a+Math.imul(h,fe)|0)+Math.imul(b,le)|0,i=i+Math.imul(b,fe)|0;var Pe=(d+(r=r+Math.imul(l,he)|0)|0)+((8191&(a=(a=a+Math.imul(l,be)|0)+Math.imul(f,he)|0))<<13)|0;d=((i=i+Math.imul(f,be)|0)+(a>>>13)|0)+(Pe>>>26)|0,Pe&=67108863,r=Math.imul(L,F),a=(a=Math.imul(L,X))+Math.imul(U,F)|0,i=Math.imul(U,X),r=r+Math.imul(H,Z)|0,a=(a=a+Math.imul(H,G)|0)+Math.imul(R,Z)|0,i=i+Math.imul(R,G)|0,r=r+Math.imul(E,Y)|0,a=(a=a+Math.imul(E,J)|0)+Math.imul(C,Y)|0,i=i+Math.imul(C,J)|0,r=r+Math.imul(I,$)|0,a=(a=a+Math.imul(I,ee)|0)+Math.imul(O,$)|0,i=i+Math.imul(O,ee)|0,r=r+Math.imul(V,ne)|0,a=(a=a+Math.imul(V,re)|0)+Math.imul(M,ne)|0,i=i+Math.imul(M,re)|0,r=r+Math.imul(k,ie)|0,a=(a=a+Math.imul(k,se)|0)+Math.imul(T,ie)|0,i=i+Math.imul(T,se)|0,r=r+Math.imul(v,ce)|0,a=(a=a+Math.imul(v,de)|0)+Math.imul(w,ce)|0,i=i+Math.imul(w,de)|0,r=r+Math.imul(y,le)|0,a=(a=a+Math.imul(y,fe)|0)+Math.imul(x,le)|0,i=i+Math.imul(x,fe)|0;var Ve=(d+(r=r+Math.imul(h,he)|0)|0)+((8191&(a=(a=a+Math.imul(h,be)|0)+Math.imul(b,he)|0))<<13)|0;d=((i=i+Math.imul(b,be)|0)+(a>>>13)|0)+(Ve>>>26)|0,Ve&=67108863,r=Math.imul(L,Z),a=(a=Math.imul(L,G))+Math.imul(U,Z)|0,i=Math.imul(U,G),r=r+Math.imul(H,Y)|0,a=(a=a+Math.imul(H,J)|0)+Math.imul(R,Y)|0,i=i+Math.imul(R,J)|0,r=r+Math.imul(E,$)|0,a=(a=a+Math.imul(E,ee)|0)+Math.imul(C,$)|0,i=i+Math.imul(C,ee)|0,r=r+Math.imul(I,ne)|0,a=(a=a+Math.imul(I,re)|0)+Math.imul(O,ne)|0,i=i+Math.imul(O,re)|0,r=r+Math.imul(V,ie)|0,a=(a=a+Math.imul(V,se)|0)+Math.imul(M,ie)|0,i=i+Math.imul(M,se)|0,r=r+Math.imul(k,ce)|0,a=(a=a+Math.imul(k,de)|0)+Math.imul(T,ce)|0,i=i+Math.imul(T,de)|0,r=r+Math.imul(v,le)|0,a=(a=a+Math.imul(v,fe)|0)+Math.imul(w,le)|0,i=i+Math.imul(w,fe)|0;var Me=(d+(r=r+Math.imul(y,he)|0)|0)+((8191&(a=(a=a+Math.imul(y,be)|0)+Math.imul(x,he)|0))<<13)|0;d=((i=i+Math.imul(x,be)|0)+(a>>>13)|0)+(Me>>>26)|0,Me&=67108863,r=Math.imul(L,Y),a=(a=Math.imul(L,J))+Math.imul(U,Y)|0,i=Math.imul(U,J),r=r+Math.imul(H,$)|0,a=(a=a+Math.imul(H,ee)|0)+Math.imul(R,$)|0,i=i+Math.imul(R,ee)|0,r=r+Math.imul(E,ne)|0,a=(a=a+Math.imul(E,re)|0)+Math.imul(C,ne)|0,i=i+Math.imul(C,re)|0,r=r+Math.imul(I,ie)|0,a=(a=a+Math.imul(I,se)|0)+Math.imul(O,ie)|0,i=i+Math.imul(O,se)|0,r=r+Math.imul(V,ce)|0,a=(a=a+Math.imul(V,de)|0)+Math.imul(M,ce)|0,i=i+Math.imul(M,de)|0,r=r+Math.imul(k,le)|0,a=(a=a+Math.imul(k,fe)|0)+Math.imul(T,le)|0,i=i+Math.imul(T,fe)|0;var _e=(d+(r=r+Math.imul(v,he)|0)|0)+((8191&(a=(a=a+Math.imul(v,be)|0)+Math.imul(w,he)|0))<<13)|0;d=((i=i+Math.imul(w,be)|0)+(a>>>13)|0)+(_e>>>26)|0,_e&=67108863,r=Math.imul(L,$),a=(a=Math.imul(L,ee))+Math.imul(U,$)|0,i=Math.imul(U,ee),r=r+Math.imul(H,ne)|0,a=(a=a+Math.imul(H,re)|0)+Math.imul(R,ne)|0,i=i+Math.imul(R,re)|0,r=r+Math.imul(E,ie)|0,a=(a=a+Math.imul(E,se)|0)+Math.imul(C,ie)|0,i=i+Math.imul(C,se)|0,r=r+Math.imul(I,ce)|0,a=(a=a+Math.imul(I,de)|0)+Math.imul(O,ce)|0,i=i+Math.imul(O,de)|0,r=r+Math.imul(V,le)|0,a=(a=a+Math.imul(V,fe)|0)+Math.imul(M,le)|0,i=i+Math.imul(M,fe)|0;var Ie=(d+(r=r+Math.imul(k,he)|0)|0)+((8191&(a=(a=a+Math.imul(k,be)|0)+Math.imul(T,he)|0))<<13)|0;d=((i=i+Math.imul(T,be)|0)+(a>>>13)|0)+(Ie>>>26)|0,Ie&=67108863,r=Math.imul(L,ne),a=(a=Math.imul(L,re))+Math.imul(U,ne)|0,i=Math.imul(U,re),r=r+Math.imul(H,ie)|0,a=(a=a+Math.imul(H,se)|0)+Math.imul(R,ie)|0,i=i+Math.imul(R,se)|0,r=r+Math.imul(E,ce)|0,a=(a=a+Math.imul(E,de)|0)+Math.imul(C,ce)|0,i=i+Math.imul(C,de)|0,r=r+Math.imul(I,le)|0,a=(a=a+Math.imul(I,fe)|0)+Math.imul(O,le)|0,i=i+Math.imul(O,fe)|0;var Oe=(d+(r=r+Math.imul(V,he)|0)|0)+((8191&(a=(a=a+Math.imul(V,be)|0)+Math.imul(M,he)|0))<<13)|0;d=((i=i+Math.imul(M,be)|0)+(a>>>13)|0)+(Oe>>>26)|0,Oe&=67108863,r=Math.imul(L,ie),a=(a=Math.imul(L,se))+Math.imul(U,ie)|0,i=Math.imul(U,se),r=r+Math.imul(H,ce)|0,a=(a=a+Math.imul(H,de)|0)+Math.imul(R,ce)|0,i=i+Math.imul(R,de)|0,r=r+Math.imul(E,le)|0,a=(a=a+Math.imul(E,fe)|0)+Math.imul(C,le)|0,i=i+Math.imul(C,fe)|0;var Ne=(d+(r=r+Math.imul(I,he)|0)|0)+((8191&(a=(a=a+Math.imul(I,be)|0)+Math.imul(O,he)|0))<<13)|0;d=((i=i+Math.imul(O,be)|0)+(a>>>13)|0)+(Ne>>>26)|0,Ne&=67108863,r=Math.imul(L,ce),a=(a=Math.imul(L,de))+Math.imul(U,ce)|0,i=Math.imul(U,de),r=r+Math.imul(H,le)|0,a=(a=a+Math.imul(H,fe)|0)+Math.imul(R,le)|0,i=i+Math.imul(R,fe)|0;var Ee=(d+(r=r+Math.imul(E,he)|0)|0)+((8191&(a=(a=a+Math.imul(E,be)|0)+Math.imul(C,he)|0))<<13)|0;d=((i=i+Math.imul(C,be)|0)+(a>>>13)|0)+(Ee>>>26)|0,Ee&=67108863,r=Math.imul(L,le),a=(a=Math.imul(L,fe))+Math.imul(U,le)|0,i=Math.imul(U,fe);var Ce=(d+(r=r+Math.imul(H,he)|0)|0)+((8191&(a=(a=a+Math.imul(H,be)|0)+Math.imul(R,he)|0))<<13)|0;d=((i=i+Math.imul(R,be)|0)+(a>>>13)|0)+(Ce>>>26)|0,Ce&=67108863;var Ae=(d+(r=Math.imul(L,he))|0)+((8191&(a=(a=Math.imul(L,be))+Math.imul(U,he)|0))<<13)|0;return d=((i=Math.imul(U,be))+(a>>>13)|0)+(Ae>>>26)|0,Ae&=67108863,c[0]=me,c[1]=ye,c[2]=xe,c[3]=ge,c[4]=ve,c[5]=we,c[6]=Se,c[7]=ke,c[8]=Te,c[9]=Pe,c[10]=Ve,c[11]=Me,c[12]=_e,c[13]=Ie,c[14]=Oe,c[15]=Ne,c[16]=Ee,c[17]=Ce,c[18]=Ae,0!==d&&(c[19]=d,n.length++),n};function y(e,t,n){n.negative=t.negative^e.negative,n.length=e.length+t.length;for(var r=0,a=0,i=0;i>>26)|0)>>>26,s&=67108863}n.words[i]=o,r=s,s=a}return 0!==r?n.words[i]=r:n.length--,n._strip()}function x(e,t,n){return y(e,t,n)}function g(e,t){this.x=e,this.y=t}Math.imul||(m=b),i.prototype.mulTo=function(e,t){var n=this.length+e.length;return 10===this.length&&10===e.length?m(this,e,t):n<63?b(this,e,t):n<1024?y(this,e,t):x(this,e,t)},g.prototype.makeRBT=function(e){for(var t=new Array(e),n=i.prototype._countBits(e)-1,r=0;r>=1;return r},g.prototype.permute=function(e,t,n,r,a,i){for(var s=0;s>>=1)a++;return 1<>>=13,n[2*s+1]=8191&i,i>>>=13;for(s=2*t;s>=26,n+=i/67108864|0,n+=s>>>26,this.words[a]=67108863&s}return 0!==n&&(this.words[a]=n,this.length++),t?this.ineg():this},i.prototype.muln=function(e){return this.clone().imuln(e)},i.prototype.sqr=function(){return this.mul(this)},i.prototype.isqr=function(){return this.imul(this.clone())},i.prototype.pow=function(e){var t=function(e){for(var t=new Array(e.bitLength()),n=0;n>>a&1}return t}(e);if(0===t.length)return new i(1);for(var n=this,r=0;r=0);var t,n=e%26,a=(e-n)/26,i=67108863>>>26-n<<26-n;if(0!==n){var s=0;for(t=0;t>>26-n}s&&(this.words[t]=s,this.length++)}if(0!==a){for(t=this.length-1;t>=0;t--)this.words[t+a]=this.words[t];for(t=0;t=0),a=t?(t-t%26)/26:0;var i=e%26,s=Math.min((e-i)/26,this.length),o=67108863^67108863>>>i<s)for(this.length-=s,d=0;d=0&&(0!==u||d>=a);d--){var l=0|this.words[d];this.words[d]=u<<26-i|l>>>i,u=l&o}return c&&0!==u&&(c.words[c.length++]=u),0===this.length&&(this.words[0]=0,this.length=1),this._strip()},i.prototype.ishrn=function(e,t,n){return r(0===this.negative),this.iushrn(e,t,n)},i.prototype.shln=function(e){return this.clone().ishln(e)},i.prototype.ushln=function(e){return this.clone().iushln(e)},i.prototype.shrn=function(e){return this.clone().ishrn(e)},i.prototype.ushrn=function(e){return this.clone().iushrn(e)},i.prototype.testn=function(e){r("number"==typeof e&&e>=0);var t=e%26,n=(e-t)/26,a=1<=0);var t=e%26,n=(e-t)/26;if(r(0===this.negative,"imaskn works only with positive numbers"),this.length<=n)return this;if(0!==t&&n++,this.length=Math.min(n,this.length),0!==t){var a=67108863^67108863>>>t<=67108864;t++)this.words[t]-=67108864,t===this.length-1?this.words[t+1]=1:this.words[t+1]++;return this.length=Math.max(this.length,t+1),this},i.prototype.isubn=function(e){if(r("number"==typeof e),r(e<67108864),e<0)return this.iaddn(-e);if(0!==this.negative)return this.negative=0,this.iaddn(e),this.negative=1,this;if(this.words[0]-=e,1===this.length&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var t=0;t>26)-(c/67108864|0),this.words[a+n]=67108863&i}for(;a>26,this.words[a+n]=67108863&i;if(0===o)return this._strip();for(r(-1===o),o=0,a=0;a>26,this.words[a]=67108863&i;return this.negative=1,this._strip()},i.prototype._wordDiv=function(e,t){var n=(this.length,e.length),r=this.clone(),a=e,s=0|a.words[a.length-1];0!==(n=26-this._countBits(s))&&(a=a.ushln(n),r.iushln(n),s=0|a.words[a.length-1]);var o,c=r.length-a.length;if("mod"!==t){(o=new i(null)).length=c+1,o.words=new Array(o.length);for(var d=0;d=0;l--){var f=67108864*(0|r.words[a.length+l])+(0|r.words[a.length+l-1]);for(f=Math.min(f/s|0,67108863),r._ishlnsubmul(a,f,l);0!==r.negative;)f--,r.negative=0,r._ishlnsubmul(a,1,l),r.isZero()||(r.negative^=1);o&&(o.words[l]=f)}return o&&o._strip(),r._strip(),"div"!==t&&0!==n&&r.iushrn(n),{div:o||null,mod:r}},i.prototype.divmod=function(e,t,n){return r(!e.isZero()),this.isZero()?{div:new i(0),mod:new i(0)}:0!==this.negative&&0===e.negative?(o=this.neg().divmod(e,t),"mod"!==t&&(a=o.div.neg()),"div"!==t&&(s=o.mod.neg(),n&&0!==s.negative&&s.iadd(e)),{div:a,mod:s}):0===this.negative&&0!==e.negative?(o=this.divmod(e.neg(),t),"mod"!==t&&(a=o.div.neg()),{div:a,mod:o.mod}):0!=(this.negative&e.negative)?(o=this.neg().divmod(e.neg(),t),"div"!==t&&(s=o.mod.neg(),n&&0!==s.negative&&s.isub(e)),{div:o.div,mod:s}):e.length>this.length||this.cmp(e)<0?{div:new i(0),mod:this}:1===e.length?"div"===t?{div:this.divn(e.words[0]),mod:null}:"mod"===t?{div:null,mod:new i(this.modrn(e.words[0]))}:{div:this.divn(e.words[0]),mod:new i(this.modrn(e.words[0]))}:this._wordDiv(e,t);var a,s,o},i.prototype.div=function(e){return this.divmod(e,"div",!1).div},i.prototype.mod=function(e){return this.divmod(e,"mod",!1).mod},i.prototype.umod=function(e){return this.divmod(e,"mod",!0).mod},i.prototype.divRound=function(e){var t=this.divmod(e);if(t.mod.isZero())return t.div;var n=0!==t.div.negative?t.mod.isub(e):t.mod,r=e.ushrn(1),a=e.andln(1),i=n.cmp(r);return i<0||1===a&&0===i?t.div:0!==t.div.negative?t.div.isubn(1):t.div.iaddn(1)},i.prototype.modrn=function(e){var t=e<0;t&&(e=-e),r(e<=67108863);for(var n=(1<<26)%e,a=0,i=this.length-1;i>=0;i--)a=(n*a+(0|this.words[i]))%e;return t?-a:a},i.prototype.modn=function(e){return this.modrn(e)},i.prototype.idivn=function(e){var t=e<0;t&&(e=-e),r(e<=67108863);for(var n=0,a=this.length-1;a>=0;a--){var i=(0|this.words[a])+67108864*n;this.words[a]=i/e|0,n=i%e}return this._strip(),t?this.ineg():this},i.prototype.divn=function(e){return this.clone().idivn(e)},i.prototype.egcd=function(e){r(0===e.negative),r(!e.isZero());var t=this,n=e.clone();t=0!==t.negative?t.umod(e):t.clone();for(var a=new i(1),s=new i(0),o=new i(0),c=new i(1),d=0;t.isEven()&&n.isEven();)t.iushrn(1),n.iushrn(1),++d;for(var u=n.clone(),l=t.clone();!t.isZero();){for(var f=0,p=1;0==(t.words[0]&p)&&f<26;++f,p<<=1);if(f>0)for(t.iushrn(f);f-- >0;)(a.isOdd()||s.isOdd())&&(a.iadd(u),s.isub(l)),a.iushrn(1),s.iushrn(1);for(var h=0,b=1;0==(n.words[0]&b)&&h<26;++h,b<<=1);if(h>0)for(n.iushrn(h);h-- >0;)(o.isOdd()||c.isOdd())&&(o.iadd(u),c.isub(l)),o.iushrn(1),c.iushrn(1);t.cmp(n)>=0?(t.isub(n),a.isub(o),s.isub(c)):(n.isub(t),o.isub(a),c.isub(s))}return{a:o,b:c,gcd:n.iushln(d)}},i.prototype._invmp=function(e){r(0===e.negative),r(!e.isZero());var t=this,n=e.clone();t=0!==t.negative?t.umod(e):t.clone();for(var a,s=new i(1),o=new i(0),c=n.clone();t.cmpn(1)>0&&n.cmpn(1)>0;){for(var d=0,u=1;0==(t.words[0]&u)&&d<26;++d,u<<=1);if(d>0)for(t.iushrn(d);d-- >0;)s.isOdd()&&s.iadd(c),s.iushrn(1);for(var l=0,f=1;0==(n.words[0]&f)&&l<26;++l,f<<=1);if(l>0)for(n.iushrn(l);l-- >0;)o.isOdd()&&o.iadd(c),o.iushrn(1);t.cmp(n)>=0?(t.isub(n),s.isub(o)):(n.isub(t),o.isub(s))}return(a=0===t.cmpn(1)?s:o).cmpn(0)<0&&a.iadd(e),a},i.prototype.gcd=function(e){if(this.isZero())return e.abs();if(e.isZero())return this.abs();var t=this.clone(),n=e.clone();t.negative=0,n.negative=0;for(var r=0;t.isEven()&&n.isEven();r++)t.iushrn(1),n.iushrn(1);for(;;){for(;t.isEven();)t.iushrn(1);for(;n.isEven();)n.iushrn(1);var a=t.cmp(n);if(a<0){var i=t;t=n,n=i}else if(0===a||0===n.cmpn(1))break;t.isub(n)}return n.iushln(r)},i.prototype.invm=function(e){return this.egcd(e).a.umod(e)},i.prototype.isEven=function(){return 0==(1&this.words[0])},i.prototype.isOdd=function(){return 1==(1&this.words[0])},i.prototype.andln=function(e){return this.words[0]&e},i.prototype.bincn=function(e){r("number"==typeof e);var t=e%26,n=(e-t)/26,a=1<>>26,o&=67108863,this.words[s]=o}return 0!==i&&(this.words[s]=i,this.length++),this},i.prototype.isZero=function(){return 1===this.length&&0===this.words[0]},i.prototype.cmpn=function(e){var t,n=e<0;if(0!==this.negative&&!n)return-1;if(0===this.negative&&n)return 1;if(this._strip(),this.length>1)t=1;else{n&&(e=-e),r(e<=67108863,"Number is too big");var a=0|this.words[0];t=a===e?0:ae.length)return 1;if(this.length=0;n--){var r=0|this.words[n],a=0|e.words[n];if(r!==a){ra&&(t=1);break}}return t},i.prototype.gtn=function(e){return 1===this.cmpn(e)},i.prototype.gt=function(e){return 1===this.cmp(e)},i.prototype.gten=function(e){return this.cmpn(e)>=0},i.prototype.gte=function(e){return this.cmp(e)>=0},i.prototype.ltn=function(e){return-1===this.cmpn(e)},i.prototype.lt=function(e){return-1===this.cmp(e)},i.prototype.lten=function(e){return this.cmpn(e)<=0},i.prototype.lte=function(e){return this.cmp(e)<=0},i.prototype.eqn=function(e){return 0===this.cmpn(e)},i.prototype.eq=function(e){return 0===this.cmp(e)},i.red=function(e){return new V(e)},i.prototype.toRed=function(e){return r(!this.red,"Already a number in reduction context"),r(0===this.negative,"red works only with positives"),e.convertTo(this)._forceRed(e)},i.prototype.fromRed=function(){return r(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},i.prototype._forceRed=function(e){return this.red=e,this},i.prototype.forceRed=function(e){return r(!this.red,"Already a number in reduction context"),this._forceRed(e)},i.prototype.redAdd=function(e){return r(this.red,"redAdd works only with red numbers"),this.red.add(this,e)},i.prototype.redIAdd=function(e){return r(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,e)},i.prototype.redSub=function(e){return r(this.red,"redSub works only with red numbers"),this.red.sub(this,e)},i.prototype.redISub=function(e){return r(this.red,"redISub works only with red numbers"),this.red.isub(this,e)},i.prototype.redShl=function(e){return r(this.red,"redShl works only with red numbers"),this.red.shl(this,e)},i.prototype.redMul=function(e){return r(this.red,"redMul works only with red numbers"),this.red._verify2(this,e),this.red.mul(this,e)},i.prototype.redIMul=function(e){return r(this.red,"redMul works only with red numbers"),this.red._verify2(this,e),this.red.imul(this,e)},i.prototype.redSqr=function(){return r(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},i.prototype.redISqr=function(){return r(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},i.prototype.redSqrt=function(){return r(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},i.prototype.redInvm=function(){return r(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},i.prototype.redNeg=function(){return r(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},i.prototype.redPow=function(e){return r(this.red&&!e.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,e)};var v={k256:null,p224:null,p192:null,p25519:null};function w(e,t){this.name=e,this.p=new i(t,16),this.n=this.p.bitLength(),this.k=new i(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}function S(){w.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}function k(){w.call(this,"p224","ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001")}function T(){w.call(this,"p192","ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff")}function P(){w.call(this,"25519","7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed")}function V(e){if("string"==typeof e){var t=i._prime(e);this.m=t.p,this.prime=t}else r(e.gtn(1),"modulus must be greater than 1"),this.m=e,this.prime=null}function M(e){V.call(this,e),this.shift=this.m.bitLength(),this.shift%26!=0&&(this.shift+=26-this.shift%26),this.r=new i(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}w.prototype._tmp=function(){var e=new i(null);return e.words=new Array(Math.ceil(this.n/13)),e},w.prototype.ireduce=function(e){var t,n=e;do{this.split(n,this.tmp),t=(n=(n=this.imulK(n)).iadd(this.tmp)).bitLength()}while(t>this.n);var r=t0?n.isub(this.p):void 0!==n.strip?n.strip():n._strip(),n},w.prototype.split=function(e,t){e.iushrn(this.n,0,t)},w.prototype.imulK=function(e){return e.imul(this.k)},a(S,w),S.prototype.split=function(e,t){for(var n=4194303,r=Math.min(e.length,9),a=0;a>>22,i=s}i>>>=22,e.words[a-10]=i,0===i&&e.length>10?e.length-=10:e.length-=9},S.prototype.imulK=function(e){e.words[e.length]=0,e.words[e.length+1]=0,e.length+=2;for(var t=0,n=0;n>>=26,e.words[n]=a,t=r}return 0!==t&&(e.words[e.length++]=t),e},i._prime=function(e){if(v[e])return v[e];var t;if("k256"===e)t=new S;else if("p224"===e)t=new k;else if("p192"===e)t=new T;else{if("p25519"!==e)throw new Error("Unknown prime "+e);t=new P}return v[e]=t,t},V.prototype._verify1=function(e){r(0===e.negative,"red works only with positives"),r(e.red,"red works only with red numbers")},V.prototype._verify2=function(e,t){r(0==(e.negative|t.negative),"red works only with positives"),r(e.red&&e.red===t.red,"red works only with red numbers")},V.prototype.imod=function(e){return this.prime?this.prime.ireduce(e)._forceRed(this):(u(e,e.umod(this.m)._forceRed(this)),e)},V.prototype.neg=function(e){return e.isZero()?e.clone():this.m.sub(e)._forceRed(this)},V.prototype.add=function(e,t){this._verify2(e,t);var n=e.add(t);return n.cmp(this.m)>=0&&n.isub(this.m),n._forceRed(this)},V.prototype.iadd=function(e,t){this._verify2(e,t);var n=e.iadd(t);return n.cmp(this.m)>=0&&n.isub(this.m),n},V.prototype.sub=function(e,t){this._verify2(e,t);var n=e.sub(t);return n.cmpn(0)<0&&n.iadd(this.m),n._forceRed(this)},V.prototype.isub=function(e,t){this._verify2(e,t);var n=e.isub(t);return n.cmpn(0)<0&&n.iadd(this.m),n},V.prototype.shl=function(e,t){return this._verify1(e),this.imod(e.ushln(t))},V.prototype.imul=function(e,t){return this._verify2(e,t),this.imod(e.imul(t))},V.prototype.mul=function(e,t){return this._verify2(e,t),this.imod(e.mul(t))},V.prototype.isqr=function(e){return this.imul(e,e.clone())},V.prototype.sqr=function(e){return this.mul(e,e)},V.prototype.sqrt=function(e){if(e.isZero())return e.clone();var t=this.m.andln(3);if(r(t%2==1),3===t){var n=this.m.add(new i(1)).iushrn(2);return this.pow(e,n)}for(var a=this.m.subn(1),s=0;!a.isZero()&&0===a.andln(1);)s++,a.iushrn(1);r(!a.isZero());var o=new i(1).toRed(this),c=o.redNeg(),d=this.m.subn(1).iushrn(1),u=this.m.bitLength();for(u=new i(2*u*u).toRed(this);0!==this.pow(u,d).cmp(c);)u.redIAdd(c);for(var l=this.pow(u,a),f=this.pow(e,a.addn(1).iushrn(1)),p=this.pow(e,a),h=s;0!==p.cmp(o);){for(var b=p,m=0;0!==b.cmp(o);m++)b=b.redSqr();r(m=0;r--){for(var d=t.words[r],u=c-1;u>=0;u--){var l=d>>u&1;a!==n[0]&&(a=this.sqr(a)),0!==l||0!==s?(s<<=1,s|=l,(4===++o||0===r&&0===u)&&(a=this.mul(a,n[s]),o=0,s=0)):o=0}c=26}return a},V.prototype.convertTo=function(e){var t=e.umod(this.m);return t===e?t.clone():t},V.prototype.convertFrom=function(e){var t=e.clone();return t.red=null,t},i.mont=function(e){return new M(e)},a(M,V),M.prototype.convertTo=function(e){return this.imod(e.ushln(this.shift))},M.prototype.convertFrom=function(e){var t=this.imod(e.mul(this.rinv));return t.red=null,t},M.prototype.imul=function(e,t){if(e.isZero()||t.isZero())return e.words[0]=0,e.length=1,e;var n=e.imul(t),r=n.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),a=n.isub(r).iushrn(this.shift),i=a;return a.cmp(this.m)>=0?i=a.isub(this.m):a.cmpn(0)<0&&(i=a.iadd(this.m)),i._forceRed(this)},M.prototype.mul=function(e,t){if(e.isZero()||t.isZero())return new i(0)._forceRed(this);var n=e.mul(t),r=n.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),a=n.isub(r).iushrn(this.shift),s=a;return a.cmp(this.m)>=0?s=a.isub(this.m):a.cmpn(0)<0&&(s=a.iadd(this.m)),s._forceRed(this)},M.prototype.invm=function(e){return this.imod(e._invmp(this.m).mul(this.r2))._forceRed(this)}}(e=n.nmd(e),this)},26729:e=>{"use strict";var t=Object.prototype.hasOwnProperty,n="~";function r(){}function a(e,t,n){this.fn=e,this.context=t,this.once=n||!1}function i(e,t,r,i,s){if("function"!=typeof r)throw new TypeError("The listener must be a function");var o=new a(r,i||e,s),c=n?n+t:t;return e._events[c]?e._events[c].fn?e._events[c]=[e._events[c],o]:e._events[c].push(o):(e._events[c]=o,e._eventsCount++),e}function s(e,t){0==--e._eventsCount?e._events=new r:delete e._events[t]}function o(){this._events=new r,this._eventsCount=0}Object.create&&(r.prototype=Object.create(null),(new r).__proto__||(n=!1)),o.prototype.eventNames=function(){var e,r,a=[];if(0===this._eventsCount)return a;for(r in e=this._events)t.call(e,r)&&a.push(n?r.slice(1):r);return Object.getOwnPropertySymbols?a.concat(Object.getOwnPropertySymbols(e)):a},o.prototype.listeners=function(e){var t=n?n+e:e,r=this._events[t];if(!r)return[];if(r.fn)return[r.fn];for(var a=0,i=r.length,s=new Array(i);a{t.lY=171008,t.JH=339468,t.aI="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"},15861:(e,t,n)=>{"use strict";function r(e,t,n,r,a,i,s){try{var o=e[i](s),c=o.value}catch(d){return void n(d)}o.done?t(c):Promise.resolve(c).then(r,a)}function a(e){return function(){var t=this,n=arguments;return new Promise((function(a,i){var s=e.apply(t,n);function o(e){r(s,a,i,o,c,"next",e)}function c(e){r(s,a,i,o,c,"throw",e)}o(void 0)}))}}n.d(t,{Z:()=>a})},74165:(e,t,n)=>{"use strict";n.d(t,{Z:()=>a});var r=n(71002);function a(){a=function(){return t};var e,t={},n=Object.prototype,i=n.hasOwnProperty,s=Object.defineProperty||function(e,t,n){e[t]=n.value},o="function"==typeof Symbol?Symbol:{},c=o.iterator||"@@iterator",d=o.asyncIterator||"@@asyncIterator",u=o.toStringTag||"@@toStringTag";function l(e,t,n){return Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{l({},"")}catch(e){l=function(e,t,n){return e[t]=n}}function f(e,t,n,r){var a=t&&t.prototype instanceof g?t:g,i=Object.create(a.prototype),o=new E(r||[]);return s(i,"_invoke",{value:_(e,n,o)}),i}function p(e,t,n){try{return{type:"normal",arg:e.call(t,n)}}catch(e){return{type:"throw",arg:e}}}t.wrap=f;var h="suspendedStart",b="suspendedYield",m="executing",y="completed",x={};function g(){}function v(){}function w(){}var S={};l(S,c,(function(){return this}));var k=Object.getPrototypeOf,T=k&&k(k(C([])));T&&T!==n&&i.call(T,c)&&(S=T);var P=w.prototype=g.prototype=Object.create(S);function V(e){["next","throw","return"].forEach((function(t){l(e,t,(function(e){return this._invoke(t,e)}))}))}function M(e,t){function n(a,s,o,c){var d=p(e[a],e,s);if("throw"!==d.type){var u=d.arg,l=u.value;return l&&"object"==(0,r.Z)(l)&&i.call(l,"__await")?t.resolve(l.__await).then((function(e){n("next",e,o,c)}),(function(e){n("throw",e,o,c)})):t.resolve(l).then((function(e){u.value=e,o(u)}),(function(e){return n("throw",e,o,c)}))}c(d.arg)}var a;s(this,"_invoke",{value:function(e,r){function i(){return new t((function(t,a){n(e,r,t,a)}))}return a=a?a.then(i,i):i()}})}function _(t,n,r){var a=h;return function(i,s){if(a===m)throw new Error("Generator is already running");if(a===y){if("throw"===i)throw s;return{value:e,done:!0}}for(r.method=i,r.arg=s;;){var o=r.delegate;if(o){var c=I(o,r);if(c){if(c===x)continue;return c}}if("next"===r.method)r.sent=r._sent=r.arg;else if("throw"===r.method){if(a===h)throw a=y,r.arg;r.dispatchException(r.arg)}else"return"===r.method&&r.abrupt("return",r.arg);a=m;var d=p(t,n,r);if("normal"===d.type){if(a=r.done?y:b,d.arg===x)continue;return{value:d.arg,done:r.done}}"throw"===d.type&&(a=y,r.method="throw",r.arg=d.arg)}}}function I(t,n){var r=n.method,a=t.iterator[r];if(a===e)return n.delegate=null,"throw"===r&&t.iterator.return&&(n.method="return",n.arg=e,I(t,n),"throw"===n.method)||"return"!==r&&(n.method="throw",n.arg=new TypeError("The iterator does not provide a '"+r+"' method")),x;var i=p(a,t.iterator,n.arg);if("throw"===i.type)return n.method="throw",n.arg=i.arg,n.delegate=null,x;var s=i.arg;return s?s.done?(n[t.resultName]=s.value,n.next=t.nextLoc,"return"!==n.method&&(n.method="next",n.arg=e),n.delegate=null,x):s:(n.method="throw",n.arg=new TypeError("iterator result is not an object"),n.delegate=null,x)}function O(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function N(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function E(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(O,this),this.reset(!0)}function C(t){if(t||""===t){var n=t[c];if(n)return n.call(t);if("function"==typeof t.next)return t;if(!isNaN(t.length)){var a=-1,s=function n(){for(;++a=0;--a){var s=this.tryEntries[a],o=s.completion;if("root"===s.tryLoc)return r("end");if(s.tryLoc<=this.prev){var c=i.call(s,"catchLoc"),d=i.call(s,"finallyLoc");if(c&&d){if(this.prev=0;--n){var r=this.tryEntries[n];if(r.tryLoc<=this.prev&&i.call(r,"finallyLoc")&&this.prev=0;--t){var n=this.tryEntries[t];if(n.finallyLoc===e)return this.complete(n.completion,n.afterLoc),N(n),x}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.tryLoc===e){var r=n.completion;if("throw"===r.type){var a=r.arg;N(n)}return a}}throw new Error("illegal catch attempt")},delegateYield:function(t,n,r){return this.delegate={iterator:C(t),resultName:n,nextLoc:r},"next"===this.method&&(this.arg=e),x}},t}},9712:(e,t,n)=>{"use strict";n.d(t,{G:()=>Qw});var r={};n.r(r),n.d(r,{dQ:()=>Oc,ci:()=>gc,bytesToNumberBE:()=>Tc,ty:()=>Pc,eV:()=>Ic,n$:()=>Cc,ql:()=>_c,hexToBytes:()=>kc,_t:()=>yc,tL:()=>Vc,S5:()=>Mc,FF:()=>Hc});var a={};n.r(a),n.d(a,{BitVec:()=>_d,Bool:()=>Lo,Bytes:()=>mr,Data:()=>Kd,F32:()=>Od,F64:()=>Nd,GenericAccountId:()=>lo,GenericAccountId32:()=>lo,GenericAccountId33:()=>fo,GenericAccountIndex:()=>xo,GenericAddress:()=>Bo,GenericBlock:()=>go,GenericCall:()=>ko,GenericChainProperties:()=>Vo,GenericConsensusEngineId:()=>Eo,GenericEthereumAccountId:()=>kd,GenericEthereumLookupSource:()=>Vd,GenericEvent:()=>Xi,GenericEventData:()=>Fi,GenericExtrinsic:()=>ns,GenericExtrinsicEra:()=>ds,GenericExtrinsicPayload:()=>ls,GenericExtrinsicPayloadUnknown:()=>fs,GenericExtrinsicPayloadV4:()=>ms,GenericExtrinsicSignatureV4:()=>gs,GenericExtrinsicUnknown:()=>ps,GenericExtrinsicV4:()=>Zi,GenericImmortalEra:()=>os,GenericLookupSource:()=>Ho,GenericMortalEra:()=>cs,GenericMultiAddress:()=>Bo,GenericSignerPayload:()=>bs,GenericVote:()=>Fo,I128:()=>Rd,I16:()=>Cd,I256:()=>Bd,I32:()=>Ad,I64:()=>Hd,I8:()=>Ed,ISize:()=>Ld,Null:()=>sn,OptionBool:()=>Ud,StorageKey:()=>eu,Text:()=>Dd,Type:()=>qd,U128:()=>Xd,U16:()=>Fd,U256:()=>Wd,U32:()=>po,U64:()=>rs,U8:()=>jd,USize:()=>Zd,bool:()=>Lo,f32:()=>Od,f64:()=>Nd,i128:()=>Rd,i16:()=>Cd,i256:()=>Bd,i32:()=>Ad,i64:()=>Hd,i8:()=>Ed,isize:()=>Ld,u128:()=>Xd,u16:()=>Fd,u256:()=>Wd,u32:()=>po,u64:()=>rs,u8:()=>jd,usize:()=>Zd});var i={};n.r(i),n.d(i,{assetConversion:()=>hu,assets:()=>bu,attestations:()=>yl,aura:()=>mu,author:()=>Gl,authorship:()=>yu,babe:()=>gu,balances:()=>vu,beefy:()=>Su,benchmark:()=>ku,blockbuilder:()=>_u,bridges:()=>xl,chain:()=>Kl,childstate:()=>Yl,claims:()=>gl,collective:()=>Iu,consensus:()=>Ou,contracts:()=>Eu,contractsAbi:()=>Dl,crowdloan:()=>vl,cumulus:()=>wl,democracy:()=>Cu,dev:()=>Au,discovery:()=>Hu,elections:()=>Ru,engine:()=>Bu,eth:()=>jl,evm:()=>Lu,extrinsics:()=>Uu,finality:()=>kl,fungibles:()=>zu,genericAsset:()=>Du,genesisBuilder:()=>qu,gilt:()=>ju,grandpa:()=>Xu,identity:()=>Wu,imOnline:()=>Zu,lottery:()=>Gu,metadata:()=>au,mixnet:()=>Ku,mmr:()=>Yu,nfts:()=>Ju,nimbus:()=>Fl,nompools:()=>Qu,offchain:()=>Jl,offences:()=>$u,ormlOracle:()=>Xl,ormlTokens:()=>Wl,parachains:()=>Hl,payment:()=>rf,poll:()=>Rl,pow:()=>el,proxy:()=>tl,purchase:()=>Bl,recovery:()=>nl,rpc:()=>Zl,runtime:()=>fu,scaleInfo:()=>pu,scheduler:()=>rl,session:()=>al,society:()=>il,staking:()=>sl,state:()=>af,statement:()=>ol,support:()=>cl,syncstate:()=>dl,system:()=>ul,treasury:()=>ll,txpayment:()=>fl,txqueue:()=>pl,uniques:()=>hl,utility:()=>bl,vesting:()=>ml,xcm:()=>zl});var s={};n.r(s),n.d(s,{kusama:()=>$p,polkadot:()=>eh,westend:()=>th});var o={};n.r(o),n.d(o,{_flags:()=>nb,_identity:()=>ub,accountId:()=>tb,flags:()=>rb,hasIdentity:()=>fb,hasIdentityMulti:()=>pb,idAndIndex:()=>ab,idToIndex:()=>hb,identity:()=>lb,indexToId:()=>wb,indexes:()=>vb,info:()=>kb});var c={};n.r(c),n.d(c,{hasProposals:()=>Hb,members:()=>Ab,prime:()=>zb,proposal:()=>Rb,proposalCount:()=>Bb,proposalHashes:()=>Lb,proposals:()=>Ub});var d={};n.r(d),n.d(d,{_getIds:()=>qb,all:()=>jb,expand:()=>Xb,get:()=>Fb,getExpanded:()=>Wb,listNodes:()=>Gb});var u={};n.r(u),n.d(u,{account:()=>fm,all:()=>im,votingBalance:()=>hm,votingBalances:()=>pm});var l={};n.r(l),n.d(l,{bounties:()=>ym});var f={};n.r(f),n.d(f,{_getHeaderRange:()=>Nm,bestNumber:()=>Sm,bestNumberFinalized:()=>km,bestNumberLag:()=>Tm,getBlock:()=>Vm,getBlockByNumber:()=>Mm,getHeader:()=>Im,subscribeFinalizedBlocks:()=>Om,subscribeFinalizedHeads:()=>Em,subscribeNewBlocks:()=>Cm,subscribeNewHeads:()=>Am});var p={};n.r(p),n.d(p,{fees:()=>Hm});var h={};n.r(h),n.d(h,{hasProposals:()=>qm,members:()=>Dm,prime:()=>Zm,proposal:()=>jm,proposalCount:()=>Fm,proposalHashes:()=>Xm,proposals:()=>Wm,votes:()=>Um,votesOf:()=>zm});var b={};n.r(b),n.d(b,{childKey:()=>Gm,contributions:()=>ty,ownContributions:()=>ay});var m={};n.r(m),n.d(m,{_referendumInfo:()=>Ay,_referendumVotes:()=>Ey,_referendumsVotes:()=>Cy,dispatchQueue:()=>hy,locks:()=>yy,nextExternal:()=>xy,preimage:()=>ky,preimages:()=>Sy,proposals:()=>Py,referendumIds:()=>Vy,referendums:()=>My,referendumsActive:()=>_y,referendumsFinished:()=>Iy,referendumsInfo:()=>Hy,sqrtElectorate:()=>Ry});var y={};n.r(y),n.d(y,{info:()=>zy});var x={};n.r(x),n.d(x,{receivedHeartbeats:()=>qy});var g={};n.r(g),n.d(g,{hasProposals:()=>Fy,members:()=>jy,prime:()=>Ky,proposal:()=>Xy,proposalCount:()=>Wy,proposalHashes:()=>Zy,proposals:()=>Gy});var v={};n.r(v),n.d(v,{info:()=>$y,overview:()=>tx});var w={};n.r(w),n.d(w,{eraLength:()=>ox,eraProgress:()=>cx,indexes:()=>rx,info:()=>ax,progress:()=>sx,sessionProgress:()=>dx});var S={};n.r(S),n.d(S,{_members:()=>px,candidates:()=>ux,info:()=>lx,member:()=>fx,members:()=>hx});var k={};n.r(k),n.d(k,{_eraExposure:()=>Ux,_eraPrefs:()=>Kx,_eraSlashes:()=>rg,_erasExposure:()=>Dx,_erasPoints:()=>Wx,_erasPrefs:()=>Jx,_erasRewards:()=>eg,_erasSlashes:()=>ig,_ownExposures:()=>ug,_ownSlashes:()=>pg,_stakerExposures:()=>wg,_stakerPoints:()=>Tg,_stakerPrefs:()=>Vg,_stakerRewards:()=>Ng,_stakerRewardsEras:()=>Og,_stakerSlashes:()=>Hg,account:()=>gx,accounts:()=>xx,currentPoints:()=>vx,electedInfo:()=>Sx,eraExposure:()=>zx,eraPrefs:()=>Yx,eraSlashes:()=>ag,erasExposure:()=>qx,erasHistoric:()=>jx,erasPoints:()=>Zx,erasPrefs:()=>Qx,erasRewards:()=>tg,erasSlashes:()=>sg,keys:()=>og,keysMulti:()=>cg,nextElected:()=>Lg,overview:()=>dg,ownExposure:()=>lg,ownExposures:()=>fg,ownSlash:()=>hg,ownSlashes:()=>bg,query:()=>gg,queryMulti:()=>vg,stakerExposure:()=>kg,stakerExposures:()=>Sg,stakerPoints:()=>Pg,stakerPrefs:()=>Mg,stakerRewards:()=>Eg,stakerRewardsMulti:()=>Ag,stakerRewardsMultiEras:()=>Cg,stakerSlashes:()=>Rg,stashes:()=>Bg,validators:()=>Ug,waitingInfo:()=>Dg});var T={};n.r(T),n.d(T,{hasProposals:()=>jg,members:()=>qg,prime:()=>Gg,proposal:()=>Fg,proposalCount:()=>Xg,proposalHashes:()=>Wg,proposals:()=>Zg});var P={};n.r(P),n.d(P,{proposals:()=>Kg});var V={};n.r(V),n.d(V,{events:()=>Yg,signingInfo:()=>iv});var M=n(33667),_=n(50273),I=n(48907),O=n(249),N=n(65716);const E="@polkadot/api",C=(new URL("file:///home/runner/work/polkadot-wiki/polkadot-wiki/node_modules/@polkadot/api/packageInfo.js").pathname.substring(0,new URL("file:///home/runner/work/polkadot-wiki/polkadot-wiki/node_modules/@polkadot/api/packageInfo.js").pathname.lastIndexOf("/")+1),"11.1.1");function A(e,t){return e.findMetaCall((0,N.Y)(t))}function H(e,t){return e.findMetaError((0,N.Y)(t))}function R(e){var t=e((function(e){Error.call(e),e.stack=(new Error).stack}));return t.prototype=Object.create(Error.prototype),t.prototype.constructor=t,t}var B=R((function(e){return function(){e(this),this.name="EmptyError",this.message="no elements in sequence"}})),L=function(e,t){return L=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])},L(e,t)};function U(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function n(){this.constructor=e}L(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}function z(e,t,n,r){return new(n||(n=Promise))((function(a,i){function s(e){try{c(r.next(e))}catch(t){i(t)}}function o(e){try{c(r.throw(e))}catch(t){i(t)}}function c(e){var t;e.done?a(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(s,o)}c((r=r.apply(e,t||[])).next())}))}function D(e,t){var n,r,a,i,s={label:0,sent:function(){if(1&a[0])throw a[1];return a[1]},trys:[],ops:[]};return i={next:o(0),throw:o(1),return:o(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function o(o){return function(c){return function(o){if(n)throw new TypeError("Generator is already executing.");for(;i&&(i=0,o[0]&&(s=0)),s;)try{if(n=1,r&&(a=2&o[0]?r.return:o[0]?r.throw||((a=r.return)&&a.call(r),0):r.next)&&!(a=a.call(r,o[1])).done)return a;switch(r=0,a&&(o=[2&o[0],a.value]),o[0]){case 0:case 1:a=o;break;case 4:return s.label++,{value:o[1],done:!1};case 5:s.label++,r=o[1],o=[0];continue;case 7:o=s.ops.pop(),s.trys.pop();continue;default:if(!(a=s.trys,(a=a.length>0&&a[a.length-1])||6!==o[0]&&2!==o[0])){s=0;continue}if(3===o[0]&&(!a||o[1]>a[0]&&o[1]=e.length&&(e=void 0),{value:e&&e[r++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")}function j(e,t){var n="function"==typeof Symbol&&e[Symbol.iterator];if(!n)return e;var r,a,i=n.call(e),s=[];try{for(;(void 0===t||t-- >0)&&!(r=i.next()).done;)s.push(r.value)}catch(o){a={error:o}}finally{try{r&&!r.done&&(n=i.return)&&n.call(i)}finally{if(a)throw a.error}}return s}function F(e,t,n){if(n||2===arguments.length)for(var r,a=0,i=t.length;a1||o(e,t)}))})}function o(e,t){try{(n=a[e](t)).value instanceof X?Promise.resolve(n.value.v).then(c,d):u(i[0][2],n)}catch(r){u(i[0][3],r)}var n}function c(e){o("next",e)}function d(e){o("throw",e)}function u(e,t){e(t),i.shift(),i.length&&o(i[0][0],i[0][1])}}function Z(e){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var t,n=e[Symbol.asyncIterator];return n?n.call(e):(e=q(e),t={},r("next"),r("throw"),r("return"),t[Symbol.asyncIterator]=function(){return this},t);function r(n){t[n]=e[n]&&function(t){return new Promise((function(r,a){(function(e,t,n,r){Promise.resolve(r).then((function(t){e({value:t,done:n})}),t)})(r,a,(t=e[n](t)).done,t.value)}))}}}Object.create;"function"==typeof SuppressedError&&SuppressedError;function G(e){return"function"==typeof e}var K=R((function(e){return function(t){e(this),this.message=t?t.length+" errors occurred during unsubscription:\n"+t.map((function(e,t){return t+1+") "+e.toString()})).join("\n "):"",this.name="UnsubscriptionError",this.errors=t}}));function Y(e,t){if(e){var n=e.indexOf(t);0<=n&&e.splice(n,1)}}var J=function(){function e(e){this.initialTeardown=e,this.closed=!1,this._parentage=null,this._finalizers=null}return e.prototype.unsubscribe=function(){var e,t,n,r,a;if(!this.closed){this.closed=!0;var i=this._parentage;if(i)if(this._parentage=null,Array.isArray(i))try{for(var s=q(i),o=s.next();!o.done;o=s.next()){o.value.remove(this)}}catch(p){e={error:p}}finally{try{o&&!o.done&&(t=s.return)&&t.call(s)}finally{if(e)throw e.error}}else i.remove(this);var c=this.initialTeardown;if(G(c))try{c()}catch(h){a=h instanceof K?h.errors:[h]}var d=this._finalizers;if(d){this._finalizers=null;try{for(var u=q(d),l=u.next();!l.done;l=u.next()){var f=l.value;try{ee(f)}catch(b){a=null!=a?a:[],b instanceof K?a=F(F([],j(a)),j(b.errors)):a.push(b)}}}catch(m){n={error:m}}finally{try{l&&!l.done&&(r=u.return)&&r.call(u)}finally{if(n)throw n.error}}}if(a)throw new K(a)}},e.prototype.add=function(t){var n;if(t&&t!==this)if(this.closed)ee(t);else{if(t instanceof e){if(t.closed||t._hasParent(this))return;t._addParent(this)}(this._finalizers=null!==(n=this._finalizers)&&void 0!==n?n:[]).push(t)}},e.prototype._hasParent=function(e){var t=this._parentage;return t===e||Array.isArray(t)&&t.includes(e)},e.prototype._addParent=function(e){var t=this._parentage;this._parentage=Array.isArray(t)?(t.push(e),t):t?[t,e]:e},e.prototype._removeParent=function(e){var t=this._parentage;t===e?this._parentage=null:Array.isArray(t)&&Y(t,e)},e.prototype.remove=function(t){var n=this._finalizers;n&&Y(n,t),t instanceof e&&t._removeParent(this)},e.EMPTY=function(){var t=new e;return t.closed=!0,t}(),e}(),Q=J.EMPTY;function $(e){return e instanceof J||e&&"closed"in e&&G(e.remove)&&G(e.add)&&G(e.unsubscribe)}function ee(e){G(e)?e():e.unsubscribe()}var te={onUnhandledError:null,onStoppedNotification:null,Promise:void 0,useDeprecatedSynchronousErrorHandling:!1,useDeprecatedNextContext:!1},ne={setTimeout:function(e,t){for(var n=[],r=2;r{return n=t,!Array.isArray(n)||2!==n.length||function(e,t){return(0,$e.o)(e)||(tt(e)?!e.eq(t):e!==t)}(e.get(t[0]),t[1]);var n}))}function rt(e,t){return Array.isArray(t)?nt(e,t):t instanceof Map?nt(e,[...t.entries()]):!!(0,et.K)(t)&&nt(e,Object.entries(t))}class at extends Map{registry;createdAtHash;initialU8aLength;isStorageFallback;constructor(e,t){const n=function(e){return Object.entries(e||{})}(t);super(n),this.registry=e,Ye(this,n.map((([e])=>e)),(e=>this.get(e)))}get encodedLength(){return 0}get hash(){return this.registry.hash(this.toU8a())}get isEmpty(){return 0===[...this.keys()].length}eq(e){return rt(this,e)}getT(e){return this.get(e)}inspect(){throw new Error("Unimplemented")}toHex(){throw new Error("Unimplemented")}toHuman(){return[...this.entries()].reduce(((e,[t,n])=>(e[t]=(0,Je.m)(n?.toHuman)?n.toHuman():n,e)),{})}toJSON(){return[...this.entries()].reduce(((e,[t,n])=>(e[t]=n,e)),{})}toPrimitive(e){return[...this.entries()].reduce(((t,[n,r])=>(t[n]=(0,Je.m)(r.toPrimitive)?r.toPrimitive(e):r,t)),{})}toRawType(){return"Json"}toString(){return(0,Qe.P)(this.toJSON())}toU8a(e){throw new Error("Unimplemented")}}var it=n(51787);function st(e){for(let t=0,n=e.length;t126)return!1}return!0}function ot(e){return(0,I.H)(e)?(0,it.vq)(e)?st((0,N.Y)(e)):function(e){for(let t=0,n=e.length;t126)return!1}return!0}(e):!!e&&st(e)}var ct=n(58758);class dt{__encoding;constructor(e){this.__encoding=e}decode(e){let t="";for(let n=0,r=e.length;n!!e)))}get isUtf8(){return function(e){if(!e)return(0,I.H)(e);const t=(0,N.Y)(e),n=t.length;let r=0;for(;r=194&&t[r]<=223){if(!(r+1191)return!1;r+=2}else if(224===t[r]){if(!(r+2191)return!1;if(t[r+2]<128||t[r+2]>191)return!1;r+=3}else if(t[r]>=225&&t[r]<=236){if(!(r+2191)return!1;if(t[r+2]<128||t[r+2]>191)return!1;r+=3}else if(237===t[r]){if(!(r+2159)return!1;if(t[r+2]<128||t[r+2]>191)return!1;r+=3}else if(t[r]>=238&&t[r]<=239){if(!(r+2191)return!1;if(t[r+2]<128||t[r+2]>191)return!1;r+=3}else if(240===t[r]){if(!(r+3191)return!1;if(t[r+2]<128||t[r+2]>191)return!1;if(t[r+3]<128||t[r+3]>191)return!1;r+=4}else if(t[r]>=241&&t[r]<=243){if(!(r+3191)return!1;if(t[r+2]<128||t[r+2]>191)return!1;if(t[r+3]<128||t[r+3]>191)return!1;r+=4}else{if(244!==t[r])return!1;if(!(r+3143)return!1;if(t[r+2]<128||t[r+2]>191)return!1;if(t[r+3]<128||t[r+3]>191)return!1;r+=4}return!0}(this)}bitLength(){return 8*this.length}eq(e){return e instanceof Uint8Array?this.length===e.length&&!this.some(((t,n)=>t!==e[n])):this.eq((0,N.Y)(e))}inspect(){return{outer:[this.toU8a()]}}toHex(){return(0,O.c)(this)}toHuman(e,t){return this.toPrimitive(t)}toJSON(){return this.toHex()}toPrimitive(e){if(!e&&this.isAscii){const e=this.toUtf8();if(ot(e))return e}return this.toJSON()}toRawType(){return"Raw"}toString(){return this.toHex()}toU8a(e){return Uint8Array.from(this)}toUtf8(){if(!this.isUtf8)throw new Error("The character sequence is not a valid Utf8 string");return lt(this)}}class pt{registry;createdAtHash;isStorageFallback;__internal__neverError;constructor(e,t="DoNotConstruct"){throw this.registry=e,this.__internal__neverError=new Error(`DoNotConstruct: Cannot construct unknown type ${t}`),this.__internal__neverError}static with(e){return class extends pt{constructor(t){super(t,e)}}}get encodedLength(){throw this.__internal__neverError}get hash(){throw this.__internal__neverError}get isEmpty(){throw this.__internal__neverError}eq(){throw this.__internal__neverError}inspect(){throw this.__internal__neverError}toHex(){throw this.__internal__neverError}toHuman(){throw this.__internal__neverError}toJSON(){throw this.__internal__neverError}toPrimitive(){throw this.__internal__neverError}toRawType(){throw this.__internal__neverError}toString(){throw this.__internal__neverError}toU8a(){throw this.__internal__neverError}}var ht=n(64992),bt=n(13550);function mt(e,{isLe:t=!0,isNegative:n=!1}={}){t||(e=e.slice().reverse());const r=e.length;if(n&&r&&128&e[r-1])switch(r){case 0:return new bt(0);case 1:return new bt(-1*(255^e[0])-1);case 2:return new bt(-1*(e[0]+(e[1]<<8)^65535)-1);case 3:return new bt(-1*(e[0]+(e[1]<<8)+(e[2]<<16)^16777215)-1);case 4:return new bt(-1*(e[0]+(e[1]<<8)+(e[2]<<16)+16777216*e[3]^4294967295)-1);case 5:return new bt(-1*((e[0]+(e[1]<<8)+(e[2]<<16)+16777216*e[3]^4294967295)+4294967296*(255^e[4]))-1);case 6:return new bt(-1*((e[0]+(e[1]<<8)+(e[2]<<16)+16777216*e[3]^4294967295)+4294967296*(e[4]+(e[5]<<8)^65535))-1);default:return new bt(e,"le").fromTwos(8*r)}switch(r){case 0:return new bt(0);case 1:return new bt(e[0]);case 2:return new bt(e[0]+(e[1]<<8));case 3:return new bt(e[0]+(e[1]<<8)+(e[2]<<16));case 4:return new bt(e[0]+(e[1]<<8)+(e[2]<<16)+16777216*e[3]);case 5:return new bt(e[0]+(e[1]<<8)+(e[2]<<16)+16777216*(e[3]+(e[4]<<8)));case 6:return new bt(e[0]+(e[1]<<8)+(e[2]<<16)+16777216*(e[3]+(e[4]<<8)+(e[5]<<16)));default:return new bt(e,"le")}}function yt(e){const t=(0,N.Y)(e);switch(3&t[0]){case 0:return[1,new bt(t[0]>>>2)];case 1:return[2,new bt(t[0]+(t[1]<<8)>>>2)];case 2:return[4,new bt(t[0]+(t[1]<<8)+(t[2]<<16)+16777216*t[3]>>>2)];default:{const e=5+(t[0]>>>2);switch(e){case 5:return[5,new bt(t[1]+(t[2]<<8)+(t[3]<<16)+16777216*t[4])];case 6:return[6,new bt(t[1]+(t[2]<<8)+(t[3]<<16)+16777216*(t[4]+(t[5]<<8)))];case 7:return[7,new bt(t[1]+(t[2]<<8)+(t[3]<<16)+16777216*(t[4]+(t[5]<<8)+(t[6]<<16)))];default:return[e,mt(t.subarray(1,e))]}}}}function xt(e){switch(3&e[0]){case 0:return[1,e[0]>>>2];case 1:return[2,e[0]+(e[1]<<8)>>>2];case 2:return[4,e[0]+(e[1]<<8)+(e[2]<<16)+16777216*e[3]>>>2];default:switch(5+(e[0]>>>2)){case 5:return[5,e[1]+(e[2]<<8)+(e[3]<<16)+16777216*e[4]];case 6:return[6,e[1]+(e[2]<<8)+(e[3]<<16)+16777216*(e[4]+(e[5]<<8))];case 7:return[7,e[1]+(e[2]<<8)+(e[3]<<16)+16777216*(e[4]+(e[5]<<8)+(e[6]<<16))];default:throw new Error("Compact input is > Number.MAX_SAFE_INTEGER")}}}var gt=n(53554);const vt=new bt(0),wt=new bt(1),St=new bt(2),kt=new bt(100),Tt=new bt(1e6),Pt=new bt(1e9),Vt=Pt.mul(Pt),Mt=new bt(Number.MAX_SAFE_INTEGER),_t=new bt(94906265);function It(e,{isLe:t=!1,isNegative:n=!1}={}){if(!e||"0x"===e)return new bt(0);const r=function(e){if(!e||"0x"===e)return"";if(it.Dh.test(e))return e.substring(2);if(it.y$.test(e))return e;throw new Error(`Expected hex value to convert, found '${e}'`)}(e),a=new bt(r,16,t?"le":"be");return n?a.fromTwos(4*r.length):a}var Ot=n(36032),Nt=n(50075);const Et=(0,Nt.F7)("toBigInt"),Ct=(0,Nt.F7)("toBn");function At(e){return e?bt.isBN(e)?e:(0,it.vq)(e)?It(e.toString()):(0,Ot.C)(e)?new bt(e.toString()):Ct(e)?e.toBn():Et(e)?new bt(e.toBigInt().toString()):new bt(e):new bt(0)}const Ht={bitLength:-1,isLe:!0,isNegative:!1};function Rt(e,{bitLength:t=-1,isLe:n=!0,isNegative:r=!1}=Ht){const a=At(e),i=-1===t?Math.ceil(a.bitLength()/8):Math.ceil((t||0)/8);if(!e)return-1===t?new Uint8Array(1):new Uint8Array(i);const s=new Uint8Array(i),o=r?a.toTwos(8*i):a;return s.set(o.toArray(n?"le":"be",i),0),s}function Bt(...e){const t=e.length,n=new Array(t);let r=0;for(let a=0;att(e)?!e.eq(t[n]):e!==t[n]))))}class Wt extends Array{registry;createdAtHash;initialU8aLength;isStorageFallback;static get[Symbol.species](){return Array}constructor(e,t){super(t),this.registry=e}get encodedLength(){const e=this.length;let t=Ft(e).length;for(let n=0;n{const n=t.replace(/[-_., ]+/g," ").trim().split(" ");let r="";for(let a=0,i=n.length;a(t?Gt[e.charCodeAt(0)]:Kt[e.charCodeAt(0)])+e.slice(1))),$t=Jt((e=>Gt[e.charCodeAt(0)]+e.slice(1)));function en(e,t){return"function"==typeof t?t:e.createClassUnsafe(t)}function tn(e,t){const n=t.length,r=new Array(n);for(let a=0;a(0,Zt.h)(e)))){if(!t.every((e=>(0,Zt.h)(e)&&e>=0&&e<=255)))throw new Error("Invalid number-indexed enum definition");return!1}return!0}(t)){const[i,s]=nn(e,t);for(let e=0,t=s.length;ee!==sn)),a=!1}else{const e=Object.entries(t);for(let t=0,r=e.length;te.toLowerCase())),i=n.toLowerCase(),s=a.indexOf(i);if(-1===s)throw new Error(`Cannot map Enum JSON, unable to find '${n}' in ${a.join(", ")}`);try{return un(e,t,Object.values(t)[s].index,r)}catch(o){throw new Error(`Enum(${n}):: ${o.message}`)}}class fn{registry;createdAtHash;initialU8aLength;isStorageFallback;__internal__def;__internal__entryIndex;__internal__indexes;__internal__isBasic;__internal__isIndexed;__internal__raw;constructor(e,t,n,r,{definition:a,setDefinition:i=M.y}={}){const{def:s,isBasic:o,isIndexed:c}=a||i(on(e,t)),d=(0,gt.U)(n)&&n.length&&!(0,Zt.h)(r)?dn(e,s,n[0],n.subarray(1)):function(e,t,n,r){if((0,Zt.h)(r))return un(e,t,r,n);if((0,gt.U)(n)||(0,it.vq)(n)){const r=(0,N.Y)(n);if(r.length)return dn(e,t,r[0],r.subarray(1))}else{if(n instanceof fn)return un(e,t,n.index,n.value);if((0,Zt.h)(n))return un(e,t,n);if((0,I.H)(n))return ln(e,t,n.toString());if((0,et.K)(n)){const r=Object.keys(n)[0];return ln(e,t,r,n[r])}}return un(e,t,Object.values(t)[0].index)}(e,s,n,r);this.registry=e,this.__internal__def=s,this.__internal__isBasic=o,this.__internal__isIndexed=c,this.__internal__indexes=Object.values(s).map((({index:e})=>e)),this.__internal__entryIndex=this.__internal__indexes.indexOf(d.index),this.__internal__raw=d.value,this.__internal__raw.initialU8aLength&&(this.initialU8aLength=1+this.__internal__raw.initialU8aLength)}static with(e){let t;const n=e=>t=e;return class extends fn{static{const t=Array.isArray(e)?e:Object.keys(e),n=t.length,r=new Array(n),a=new Array(n);for(let e=0;er.type===t[n])),Ye(this.prototype,r,((e,n,r)=>{if(r.type!==t[n])throw new Error(`Cannot convert '${r.type}' via ${e}`);return r.value}))}constructor(r,a,i){super(r,e,a,i,{definition:t,setDefinition:n})}}}get encodedLength(){return 1+this.__internal__raw.encodedLength}get hash(){return this.registry.hash(this.toU8a())}get index(){return this.__internal__indexes[this.__internal__entryIndex]}get inner(){return this.__internal__raw}get isBasic(){return this.__internal__isBasic}get isEmpty(){return this.__internal__raw.isEmpty}get isNone(){return this.__internal__raw instanceof sn}get defIndexes(){return this.__internal__indexes}get defKeys(){return Object.keys(this.__internal__def)}get type(){return this.defKeys[this.__internal__entryIndex]}get value(){return this.__internal__raw}eq(e){return(0,gt.U)(e)?!this.toU8a().some(((t,n)=>t!==e[n])):(0,Zt.h)(e)?this.toNumber()===e:this.__internal__isBasic&&(0,I.H)(e)?this.type===e:(0,it.vq)(e)?this.toHex()===e:e instanceof fn?this.index===e.index&&this.value.eq(e.value):(0,et.K)(e)?this.value.eq(e[this.type]):this.value.eq(e)}inspect(){if(this.__internal__isBasic)return{outer:[new Uint8Array([this.index])]};const{inner:e,outer:t=[]}=this.__internal__raw.inspect();return{inner:e,outer:[new Uint8Array([this.index]),...t]}}toHex(){return(0,O.c)(this.toU8a())}toHuman(e,t){return this.__internal__isBasic||this.isNone?this.type:{[this.type]:this.__internal__raw.toHuman(e,t)}}toJSON(){return this.__internal__isBasic?this.type:{[Qt(this.type)]:this.__internal__raw.toJSON()}}toNumber(){return this.index}toPrimitive(e){return this.__internal__isBasic?this.type:{[Qt(this.type)]:this.__internal__raw.toPrimitive(e)}}_toRawStruct(){if(this.__internal__isBasic)return this.__internal__isIndexed?this.defKeys.reduce(((e,t,n)=>(e[t]=this.__internal__indexes[n],e)),{}):this.defKeys;const e=Object.entries(this.__internal__def);return rn(this.registry,e.reduce(((e,[t,{Type:n}],r)=>(e[0][r]=n,e[1][r]=t,e)),[new Array(e.length),new Array(e.length)]))}toRawType(){return(0,Qe.P)({_enum:this._toRawStruct()})}toString(){return this.isNone?this.type:(0,Qe.P)(this.toJSON())}toU8a(e){return e?this.__internal__raw.toU8a(e):Lt([new Uint8Array([this.index]),this.__internal__raw.toU8a(e)])}}function pn(e){return"boolean"==typeof e}function hn(e,t,n,{message:r},a,i,s,o,c){let d="";try{d=`: ${new o(e).toRawType()}`}catch{}return`${t}: failed at ${(0,O.c)(a.subarray(0,16))}\u2026${c?` on ${c}`:""} (index ${i+1}/${s})${d}:: ${r}`}function bn(e,t,n,[r,a]){const i=t.length;let s=0,o=0;try{for(;on=e;return class extends xn{static{const t=Object.keys(e);Ye(this.prototype,t,((e,t,n)=>n.get(e)))}constructor(a,i){super(a,e,i,t,{definition:n,setDefinition:r})}}}get defKeys(){return this.__internal__Types[1]}get isEmpty(){for(const e of this.values())if(!e.isEmpty)return!1;return!0}get encodedLength(){let e=0;for(const t of this.values())e+=t.encodedLength;return e}get hash(){return this.registry.hash(this.toU8a())}get Type(){const e={},[t,n]=this.__internal__Types;for(let r=0,a=n.length;r ${(0,Qe.P)(t)} (typeof ${typeof t})`)}const In=(0,ht.k)("Map");function On(e,t,n,r){const a=new Map;for(const[s,o]of r.entries()){const r=t.prototype instanceof Wt||t.prototype instanceof xn||t.prototype instanceof fn;try{a.set(s instanceof t?s:new t(e,r&&"string"==typeof s?JSON.parse(s):s),o instanceof n?o:new n(e,o))}catch(i){throw In.error("Failed to decode key or value:",i.message),i}}return[t,n,a,0]}function Nn(e,t,n,r){const a=en(e,t),i=en(e,n);if(!r)return[a,i,new Map,0];if((0,gt.U)(r)||(0,it.vq)(r))return function(e,t,n,r){const a=new Map,[i,s]=xt(r),o=[];for(let u=0;uMn("BTreeMap",t,e))).sort((([e],[t])=>_n(e,t))))}(o):o),this.registry=e,this.initialU8aLength=c,this.__internal__KeyClass=i,this.__internal__ValClass=s,this.__internal__type=a}get encodedLength(){let e=Ft(this.size).length;for(const[t,n]of this.entries())e+=t.encodedLength+n.encodedLength;return e}get hash(){return this.registry.hash(this.toU8a())}get isEmpty(){return 0===this.size}eq(e){return rt(this,e)}inspect(){const e=[];for(const[t,n]of this.entries())e.push(t.inspect()),e.push(n.inspect());return{inner:e,outer:[Ft(this.size)]}}toHex(){return(0,O.c)(this.toU8a())}toHuman(e,t){const n={};for(const[r,a]of this.entries())n[r instanceof ft&&!t&&r.isAscii?r.toUtf8():r.toString()]=a.toHuman(e,t);return n}toJSON(){const e={};for(const[t,n]of this.entries())e[t.toString()]=n.toJSON();return e}toPrimitive(e){const t={};for(const[n,r]of this.entries())t[n instanceof ft&&!e&&n.isAscii?n.toUtf8():n.toString()]=r.toPrimitive(e);return t}toRawType(){return`${this.__internal__type}<${this.registry.getClassName(this.__internal__KeyClass)||new this.__internal__KeyClass(this.registry).toRawType()},${this.registry.getClassName(this.__internal__ValClass)||new this.__internal__ValClass(this.registry).toRawType()}>`}toString(){return(0,Qe.P)(this.toJSON())}toU8a(e){const t=[];e||t.push(Ft(this.size));for(const[n,r]of this.entries())t.push(n.toU8a(e),r.toU8a(e));return Lt(t)}}class Cn extends En{static with(e,t){return class extends Cn{constructor(n,r){super(n,e,t,r,"BTreeMap")}}}}function An(e,t){return e.size===t.length&&!t.some((t=>!e.has(t)))}const Hn=(0,ht.k)("BTreeSet");function Rn(e,t,n){const r=en(e,t);if(!n)return[r,new Set,0];if((0,gt.U)(n)||(0,it.vq)(n))return function(e,t,n){const r=new Set,[a,i]=xt(n),s=new Array(i),[o]=mn(e,s,n,a,t);for(let c=0;c{try{r.add(n instanceof t?n:new t(e,n))}catch(a){throw Hn.error("Failed to decode key or value:",a.message),a}})),[t,r,0]}(e,r,n);throw new Error("BTreeSet: cannot decode type")}class Bn extends Set{registry;createdAtHash;initialU8aLength;isStorageFallback;__internal__ValClass;constructor(e,t,n){const[r,a,i]=Rn(e,t,n);super(function(e){const t=new Set;return new Set(Array.from(e).filter((e=>Mn("BTreeSet",t,e))).sort(_n))}(a)),this.registry=e,this.initialU8aLength=i,this.__internal__ValClass=r}static with(e){return class extends Bn{constructor(t,n){super(t,e,n)}}}get encodedLength(){let e=Ft(this.size).length;for(const t of this.values())e+=t.encodedLength;return e}get hash(){return this.registry.hash(this.toU8a())}get isEmpty(){return 0===this.size}get strings(){return[...super.values()].map((e=>e.toString()))}eq(e){return t=this,n=e,Array.isArray(n)?An(t,n):n instanceof Set?An(t,[...n.values()]):!!(0,et.K)(n)&&An(t,Object.values(n));var t,n}inspect(){const e=[];for(const t of this.values())e.push(t.inspect());return{inner:e,outer:[Ft(this.size)]}}toHex(){return(0,O.c)(this.toU8a())}toHuman(e,t){const n=[];for(const r of this.values())n.push(r.toHuman(e,t));return n}toJSON(){const e=[];for(const t of this.values())e.push(t.toJSON());return e}toRawType(){return`BTreeSet<${this.registry.getClassName(this.__internal__ValClass)||new this.__internal__ValClass(this.registry).toRawType()}>`}toPrimitive(e){const t=[];for(const n of this.values())t.push(n.toPrimitive(e));return t}toString(){return(0,Qe.P)(this.toJSON())}toU8a(e){const t=[];e||t.push(Ft(this.size));for(const n of this.values())t.push(n.toU8a(e));return Lt(t)}}class Ln{registry;createdAtHash;initialU8aLength;isStorageFallback;__internal__Type;__internal__raw;constructor(e,t,n=0,{definition:r,setDefinition:a=M.y}={}){this.registry=e,this.__internal__Type=r||a(en(e,t));const[i,s]=function(e,t,n){if((0,gt.U)(n)){const[r,a]=(3&n[0])<3?xt(n):yt(n);return[new t(e,a),r]}if(n instanceof Ln){const r=n.unwrap();return r instanceof t?[r,0]:[new t(e,r),0]}return n instanceof t?[n,0]:[new t(e,n),0]}(e,this.__internal__Type,n);this.initialU8aLength=s,this.__internal__raw=i}static with(e){let t;const n=e=>t=e;return class extends Ln{constructor(r,a){super(r,e,a,{definition:t,setDefinition:n})}}}get encodedLength(){return this.toU8a().length}get hash(){return this.registry.hash(this.toU8a())}get isEmpty(){return this.__internal__raw.isEmpty}bitLength(){return this.__internal__raw.bitLength()}eq(e){return this.__internal__raw.eq(e instanceof Ln?e.__internal__raw:e)}inspect(){return{outer:[this.toU8a()]}}toBigInt(){return this.__internal__raw.toBigInt()}toBn(){return this.__internal__raw.toBn()}toHex(e){return this.__internal__raw.toHex(e)}toHuman(e,t){return this.__internal__raw.toHuman(e,t)}toJSON(){return this.__internal__raw.toJSON()}toNumber(){return this.__internal__raw.toNumber()}toPrimitive(e){return this.__internal__raw.toPrimitive(e)}toRawType(){return`Compact<${this.registry.getClassName(this.__internal__Type)||this.__internal__raw.toRawType()}>`}toString(){return this.__internal__raw.toString()}toU8a(e){return Ft(this.__internal__raw.toBn())}unwrap(){return this.__internal__raw}}class Un extends En{static with(e,t){return class extends Un{constructor(n,r){super(n,e,t,r)}}}}const zn=new RegExp("(\\d+?)(?=(\\d{3})+(?!\\d)|$)","g");function Dn(e,t=","){const n=e[0].startsWith("-"),r=n?e.substring(1).match(zn):e.match(zn);return r?`${n?"-":""}${r.join(t)}`:e}function qn(e){return{decimal:.1.toLocaleString(e).substring(1,2),thousand:1e3.toLocaleString(e).substring(1,2)}}const jn=8,Fn=[{power:-24,text:"yocto",value:"y"},{power:-21,text:"zepto",value:"z"},{power:-18,text:"atto",value:"a"},{power:-15,text:"femto",value:"f"},{power:-12,text:"pico",value:"p"},{power:-9,text:"nano",value:"n"},{power:-6,text:"micro",value:"\xb5"},{power:-3,text:"milli",value:"m"},{power:0,text:"Unit",value:"-"},{power:3,text:"Kilo",value:"k"},{power:6,text:"Mill",value:"M"},{power:9,text:"Bill",value:"B"},{power:12,text:"Tril",value:"T"},{power:15,text:"Peta",value:"P"},{power:18,text:"Exa",value:"E"},{power:21,text:"Zeta",value:"Z"},{power:24,text:"Yotta",value:"Y"}];function Xn(e){for(let t=0,n=Fn.length;tWn(e,t),Yn.findSi=Xn,Yn.getDefaults=()=>({decimals:Gn,unit:Kn}),Yn.getOptions=(e=Gn)=>Fn.filter((({power:t})=>!(t<0)||e+t>=0)),Yn.setDefaults=({decimals:e,unit:t})=>{Gn=(Array.isArray(e)?e[0]:e)??Gn,Kn=(Array.isArray(t)?t[0]:t)??Kn,Fn[jn].text=Kn};const Qn=new bt(1e4),$n=[["Perquintill",Vt],["Perbill",Pt],["Permill",Tt],["Percent",kt]];function er(e,t){if((0,Zt.h)(e)){if(!Number.isInteger(e)||e>Number.MAX_SAFE_INTEGER||ei)throw new Error(`${this.toRawType()}: Input too large. Found input with ${super.bitLength()} bits, expected ${i}`)}get hash(){return this.registry.hash(this.toU8a())}get isEmpty(){return this.isZero()}bitLength(){return this.__internal__bitLength}eq(e){return super.eq((0,it.vq)(e)?It(e.toString(),{isLe:!1,isNegative:!this.isUnsigned}):At(e))}inspect(){return{outer:[this.toU8a()]}}isMax(){return this.toU8a().filter((e=>255===e)).length===this.__internal__bitLength/8}toBigInt(){return BigInt(this.toString())}toBn(){return this}toHex(e=!1){return function(e,{bitLength:t=-1,isLe:n=!1,isNegative:r=!1}={}){return(0,O.c)(Rt(e,{bitLength:t,isLe:n,isNegative:r}))}(this,{bitLength:this.bitLength(),isLe:e,isNegative:!this.isUnsigned})}toHuman(e){const t=this.toRawType();if("Balance"===t)return this.isMax()?"everything":Yn(this,{decimals:this.registry.chainDecimals[0],withSi:!0,withUnit:this.registry.chainTokens[0]});const[,n]=$n.find((([e])=>e===t))||[];return n?function(e,t){return`${(e.mul(Qn).div(t).toNumber()/100).toFixed(2)}%`}(this,n):Jn(this)}toJSON(e=!1){return e||this.__internal__bitLength>128||super.bitLength()>52?this.toHex():this.toNumber()}toPrimitive(){return super.bitLength()>52?this.toString():this.toNumber()}toRawType(){return this instanceof this.registry.createClassUnsafe("Balance")?"Balance":`${this.isUnsigned?"u":"i"}${this.bitLength()}`}toString(e){return super.toString(e)}toU8a(e){return Rt(this,{bitLength:this.bitLength(),isLe:!0,isNegative:!this.isUnsigned})}}class nr extends tr{constructor(e,t=0,n){super(e,t,n,!0)}static with(e,t){return class extends nr{constructor(t,n){super(t,n,e)}toRawType(){return t||super.toRawType()}}}}class rr extends sn{toRawType(){return"None"}}class ar{registry;createdAtHash;initialU8aLength;isStorageFallback;__internal__Type;__internal__raw;constructor(e,t,n,{definition:r,setDefinition:a=M.y}={}){const i=r||a(en(e,t)),s=(0,gt.U)(n)&&n.length&&!wn(n)?0===n[0]?new rr(e):new i(e,n.subarray(1)):function(e,t,n){return n instanceof t?n:n instanceof ar?n.value instanceof t?n.value:n.isNone?new rr(e):new t(e,n.value):(0,an.F)(n)||(0,$e.o)(n)||"0x"===n||n instanceof rr?new rr(e):(0,gt.U)(n)?n.length&&0!==n[0]?new t(e,n.subarray(1)):new rr(e):new t(e,n)}(e,i,n);this.registry=e,this.__internal__Type=i,this.__internal__raw=s,s?.initialU8aLength&&(this.initialU8aLength=1+s.initialU8aLength)}static with(e){let t;const n=e=>(t=e,e);return class extends ar{constructor(r,a){super(r,e,a,{definition:t,setDefinition:n})}}}get encodedLength(){return 1+this.__internal__raw.encodedLength}get hash(){return this.registry.hash(this.toU8a())}get isEmpty(){return this.isNone}get isNone(){return this.__internal__raw instanceof rr}get isSome(){return!this.isNone}get value(){return this.__internal__raw}eq(e){return e instanceof ar?this.isSome===e.isSome&&this.value.eq(e.value):this.value.eq(e)}inspect(){if(this.isNone)return{outer:[new Uint8Array([0])]};const{inner:e,outer:t=[]}=this.__internal__raw.inspect();return{inner:e,outer:[new Uint8Array([1]),...t]}}toHex(){return this.isNone?"0x":(0,O.c)(this.toU8a().subarray(1))}toHuman(e,t){return this.__internal__raw.toHuman(e,t)}toJSON(){return this.isNone?null:this.__internal__raw.toJSON()}toPrimitive(e){return this.isNone?null:this.__internal__raw.toPrimitive(e)}toRawType(e){const t=this.registry.getClassName(this.__internal__Type)||new this.__internal__Type(this.registry).toRawType();return e?t:`Option<${t}>`}toString(){return this.__internal__raw.toString()}toU8a(e){if(e)return this.__internal__raw.toU8a(!0);const t=new Uint8Array(this.encodedLength);return this.isSome&&(t.set([1]),t.set(this.__internal__raw.toU8a(),1)),t}unwrap(){if(this.isNone)throw new Error("Option: unwrapping a None value");return this.__internal__raw}unwrapOr(e){return this.isSome?this.unwrap():e}unwrapOrDefault(){return this.isSome?this.unwrap():new this.__internal__Type(this.registry)}}class ir extends Wt{__internal__Types;constructor(e,t,n,{definition:r,setDefinition:a=M.y}={}){const i=r||a(Array.isArray(t)?[tn(e,t),[]]:(0,Je.m)(t)||(0,I.H)(t)?[[en(e,t)],[]]:nn(e,t));super(e,i[0].length),this.initialU8aLength=((0,gt.U)(n)?bn(e,this,n,i):function(e,t,n,r){if(Array.isArray(n)){const i=r[0];for(let r=0,s=i.length;rt=e;return class extends ir{constructor(r,a){super(r,e,a,{definition:t,setDefinition:n})}}}get encodedLength(){let e=0;for(let t=0,n=this.length;tnew e(this.registry).toRawType()))}inspect(){return{inner:this.inspectInner()}}toRawType(){return`(${this.__internal__Types[0].map((e=>this.registry.getClassName(e)||new e(this.registry).toRawType())).join(",")})`}toString(){return(0,Qe.P)(this.toJSON())}toU8a(e){return Lt(this.toU8aInner(e))}}class sr extends ir{__internal__rangeName;constructor(e,t,n,{rangeName:r="Range"}={}){super(e,[t,t],n),this.__internal__rangeName=r}static with(e){return class extends sr{constructor(t,n){super(t,e,n)}}}get start(){return this[0]}get end(){return this[1]}toRawType(){return`${this.__internal__rangeName}<${this.start.toRawType()}>`}}class or extends sr{constructor(e,t,n){super(e,t,n,{rangeName:"RangeInclusive"})}static with(e){return class extends or{constructor(t,n){super(t,e,n)}}}}class cr extends fn{constructor(e,t,n,r){super(e,{Ok:t,Err:n},r)}static with(e){return class extends cr{constructor(t,n){super(t,e.Ok,e.Err,n)}}}get asErr(){if(!this.isErr)throw new Error("Cannot extract Err value from Ok result, check isErr first");return this.value}get asOk(){if(!this.isOk)throw new Error("Cannot extract Ok value from Err result, check isOk first");return this.value}get isEmpty(){return this.isOk&&this.value.isEmpty}get isErr(){return!this.isOk}get isOk(){return 0===this.index}toRawType(){const e=this._toRawStruct();return`Result<${e.Ok},${e.Err}>`}}function dr(e,t){const n=new bt(0);for(let r=0,a=t.length;rr.strings.includes(t[n])))}constructor(n,r){super(n,e,r,t)}}}get encodedLength(){return this.__internal__byteLength}get hash(){return this.registry.hash(this.toU8a())}get isEmpty(){return 0===this.size}get strings(){return[...super.values()]}get valueEncoded(){return dr(this.__internal__allowed,this.strings)}add=e=>{if(this.__internal__allowed&&(0,$e.o)(this.__internal__allowed[e]))throw new Error(`Set: Invalid key '${e}' on add`);return super.add(e),this};eq(e){return Array.isArray(e)?Xt(this.strings.sort(),e.sort()):e instanceof Set?this.eq([...e.values()]):!(!(0,Zt.h)(e)&&!(0,Sn.H)(e))&&this.valueEncoded.eq(At(e))}inspect(){return{outer:[this.toU8a()]}}toHex(){return(0,O.c)(this.toU8a())}toHuman(){return this.toJSON()}toJSON(){return this.strings}toNumber(){return this.valueEncoded.toNumber()}toPrimitive(){return this.toJSON()}toRawType(){return(0,Qe.P)({_set:this.__internal__allowed})}toString(){return`[${this.strings.join(", ")}]`}toU8a(e){return Rt(this.valueEncoded,{bitLength:8*this.__internal__byteLength,isLe:!0})}}class pr extends tr{static with(e,t){return class extends pr{constructor(t,n){super(t,n,e)}toRawType(){return t||super.toRawType()}}}}function hr(e){return Lt([Ft(e.length),e])}const br=10485760;class mr extends ft{constructor(e,t){const[n,r]=!(0,gt.U)(t)||t instanceof ft?Array.isArray(t)||(0,I.H)(t)?[(0,N.Y)(t),0]:[t,0]:function(e){if(!e.length)return[new Uint8Array,0];const[t,n]=xt(e),r=t+n;if(n>br)throw new Error(`Bytes length ${n.toString()} exceeds 10485760`);if(r>e.length)throw new Error(`Bytes: required length less than remainder, expected at least ${r}, found ${e.length}`);return[e.subarray(t,r),r]}(t);super(e,n,r)}get encodedLength(){return this.length+Ft(this.length).length}inspect(e){const t=Ft(this.length);return{outer:e?[super.toU8a()]:this.length?[t,super.toU8a()]:[t]}}toRawType(){return"Bytes"}toU8a(e){return e?super.toU8a(e):hr(this)}}const yr=(0,ht.k)("Vec");function xr(e,t,n,r,a){if(Array.isArray(n)){const r=t.length;for(let s=0;s65536)throw new Error(`Vec length ${r.toString()} exceeds 65536`);return[t,r,n]}if(!e)return[null,0,0];throw new Error(`Expected array/hex input to Vec<*> decoding, found ${typeof e}: ${(0,Qe.P)(e)}`)}(n);super(e,s),this.__internal__Type=r||a(en(e,t)),this.initialU8aLength=((0,gt.U)(i)?mn(e,this,i,o,this.__internal__Type):xr(e,this,i,o,this.__internal__Type))[0]}static with(e){let t;const n=e=>t=e;return class extends gr{constructor(r,a){super(r,e,a,{definition:t,setDefinition:n})}}}get Type(){return this.__internal__Type.name}indexOf(e){const t=e instanceof this.__internal__Type?e:new this.__internal__Type(this.registry,e);for(let n=0,r=this.length;n`}}class vr extends ft{constructor(e,t=new Uint8Array,n=256){const[r,a]=function(e,t){const n=(0,N.Y)(e),r=t/8;if(!n.length)return[new Uint8Array(r),0];if((0,gt.U)(e)?n.lengthn=e;return class extends wr{constructor(a,i){super(a,e,t,i,{definition:n,setDefinition:r})}}}get Type(){return new this.__internal__Type(this.registry).toRawType()}get encodedLength(){let e=0;for(let t=0,n=this.length;t`}toString(){return this.__internal__decoded?this.__internal__decoded.toString():super.toString()}unwrap(){if(!this.__internal__decoded)throw new Error(`${this.__internal__opaqueName}: unwrapping an undecodable value`);return this.__internal__decoded}}class Tr extends kr{constructor(e,t,n){super(e,t,n,{opaqueName:"WrapperOpaque"})}static with(e){return class extends Tr{constructor(t,n){super(t,e,n)}}}get inner(){return this.unwrap()}}var Pr;!function(e){e[e.BTreeMap=0]="BTreeMap",e[e.BTreeSet=1]="BTreeSet",e[e.Compact=2]="Compact",e[e.DoNotConstruct=3]="DoNotConstruct",e[e.Enum=4]="Enum",e[e.HashMap=5]="HashMap",e[e.Int=6]="Int",e[e.Linkage=7]="Linkage",e[e.Null=8]="Null",e[e.Option=9]="Option",e[e.Plain=10]="Plain",e[e.Range=11]="Range",e[e.RangeInclusive=12]="RangeInclusive",e[e.Result=13]="Result",e[e.Set=14]="Set",e[e.Si=15]="Si",e[e.Struct=16]="Struct",e[e.Tuple=17]="Tuple",e[e.UInt=18]="UInt",e[e.Vec=19]="Vec",e[e.VecFixed=20]="VecFixed",e[e.WrapperKeepOpaque=21]="WrapperKeepOpaque",e[e.WrapperOpaque=22]="WrapperOpaque"}(Pr||(Pr={}));const Vr=["BTreeMap","BTreeSet","HashMap","Vec"],Mr=Vr.concat(["Compact","DoNotConstruct","Int","Linkage","Range","RangeInclusive","Result","Opaque","Option","UInt","WrapperKeepOpaque","WrapperOpaque"]),_r=["<","(","[",'"',","," "],Ir=[Nr("::Inherent","InherentOfflineReport",!1),Nr("VecDeque<","Vec<",!1),e=>{if(e.includes(" as HasCompact"))for(let t=0,n=e.length;t`)}return e},Cr("Bounded",!0),Cr("Weak",!1),function(){const e=/\s/g,t=/(T|Self)::/g,n=/<(T|Self)asTrait>::/g,r=/::/g,a=//g,i=/::Type/g;return s=>(e.lastIndex=0,t.lastIndex=0,n.lastIndex=0,r.lastIndex=0,a.lastIndex=0,i.lastIndex=0,s.replace(e,"").replace(t,"").replace(n,"").replace(r,"").replace(a,"Lookup").replace(i,""))}(),function(){const e=e=>`(${e},${e})`;return t=>Er(t,"PairOf<",e)}(),function(e){const t=e=>e;return n=>Er(n,e,t)}("Box<"),e=>{for(let t=0,n=e.length;t{const r=t-n.length;return r>=0&&e.substring(r,t)===n&&(0===r||_r.includes(e[r-1]))}))){const n=Or(e,t+1);e=`${e.substring(0,t)}${e.substring(n+1)}`}return e},Nr("String","Text"),Nr("Vec","Bytes"),Nr("&\\[u8\\]","Bytes"),Nr("&'static\\[u8\\]","Bytes"),Nr("RawAddress","Address"),Nr("Lookup::Source","LookupSource"),Nr("Lookup::Target","LookupTarget"),Nr("exec::StorageKey","ContractStorageKey"),function(){const e=/,\)/g,t=/\(([^,]+)\)/;return n=>(e.lastIndex=0,n.replace(e,")").replace(t,"$1"))}(),e=>{let t=0;for(;-1!==t;)if(t=e.indexOf("::"),0===t)e=e.substring(2);else if(-1!==t){let n=t;for(;-1!==n&&!_r.includes(e[n]);)n--;e=`${e.substring(0,n+1)}${e.substring(t+2)}`}return e},e=>e.trim()];function Or(e,t){let n=0;for(let r=t,a=e.length;r"===e[r]){if(!n)return r;n--}else"<"===e[r]&&n++;throw new Error(`Unable to find closing matching <> on '${e}' (start ${t})`)}function Nr(e,t,n=!0){const r=new RegExp(`(^${e}|${_r.map((t=>`\\${t}${e}`)).join("|")})`,"g"),a=e=>(r.lastIndex=0,n&&_r.includes(e[0])?`${e[0]}${t}`:t);return e=>e.replace(r,a)}function Er(e,t,n){let r=-1;for(;;){if(r=e.indexOf(t,r+1),-1===r)return e;const a=r+t.length,i=Or(e,a);e=`${e.substring(0,r)}${n(e.substring(a,i))}${e.substring(i+1)}`}}function Cr(e,t){return n=>{for(let r=0,a=Vr.length;r{const n=e.split(",").map((e=>e.trim())).filter((e=>e));return t&&n.pop(),`${a}<${n.join(",")}>`}))}return n}}const Ar=new Map;function Hr(e){const t=e.toString(),n=Ar.get(t);if(n)return n;let r=t;for(let a=0,i=Ir.length;a({index:t,info:Pr.Plain,name:e,type:"Null"}))):!function(e){const t=Object.values(e);if(t.some((e=>(0,Zt.h)(e)))){if(!t.every((e=>(0,Zt.h)(e)&&e>=0&&e<=255)))throw new Error("Invalid number-indexed enum definition");return!1}return!0}(t)?e.sub=Object.entries(t).map((([e,t])=>({index:t,info:Pr.Plain,name:e,type:"Null"}))):e.sub=Object.entries(t).map((([e,t],r)=>(0,_.Z)({},Xr(Br(t||"Null"),{name:e},n),{index:r}))),e}function Ur(e,t,n,r){return e.sub=0===n.length?[]:function(e){const t=[];let n=0,r=0,a=0,i=0,s=0;for(let o=0,c=e.length;o":n--;break;case"[":r++;break;case"]":r--;break;case"{":a++;break;case"}":a--;break;case"(":i++;break;case")":i--}if(n||r||a||i)throw new Error(`Invalid definition (missing terminators) found in ${e}`);return t.push(e.substring(s,e.length).trim()),t}(n).map((e=>Xr(e,{},r))),e}function zr(e,t,n,r){const[a,i]=t.substring(r.length+1,t.length-1).split(","),s=parseInt(a.trim(),10);if(s>8192||s%8)throw new Error(`${t}: Only support for ${r}, where length <= 8192 and a power of 8, found ${s}`);return e.displayName=i,e.length=s,e}function Dr(e,[t,n]){return e.startsWith(t)&&e.slice(-1*n.length)===n}const qr=[["[","]",Pr.VecFixed,function(e,t,n,r){const a=t.length-1;let i=-1,s=0;for(let l=1;l":s--}if(-1===i)throw new Error(`${t}: Unable to extract location of ';'`);const o=t.substring(1,i),[c,d]=t.substring(i+1,a).split(";"),u=parseInt(c.trim(),10);if(u>2048)throw new Error(`${t}: Only support for [Type; ], where length <= 2048`);return e.displayName=d,e.length=u,e.sub=Xr(o,{},r),e}],["{","}",Pr.Struct,function(e,t,n,r){const a=JSON.parse(t),i=Object.keys(a);return a._enum?Lr(e,a._enum,r,a._fallback):a._set?function(e,t,n){return e.info=Pr.Set,e.fallbackType=n,e.length=t._bitLength,e.sub=Object.entries(t).filter((([e])=>!e.startsWith("_"))).map((([e,t])=>({index:t,info:Pr.Plain,name:e,type:"Null"}))),e}(e,a._set,a._fallback):(e.alias=a._alias?new Map(Object.entries(a._alias)):void 0,e.fallbackType=a._fallback,e.sub=i.filter((e=>!Rr.includes(e))).map((e=>Xr(Br(a[e]),{name:e},r))),e)}],["(",")",Pr.Tuple,Ur],["BTreeMap<",">",Pr.BTreeMap,Ur],["HashMap<",">",Pr.HashMap,Ur],["Int<",">",Pr.Int,function(e,t,n){return zr(e,t,0,"Int")}],["Result<",">",Pr.Result,Ur],["UInt<",">",Pr.UInt,function(e,t,n){return zr(e,t,0,"UInt")}],["DoNotConstruct<",">",Pr.DoNotConstruct,function(e,t,n){return e.displayName=t.substring(15,t.length-1),e}]],jr=[["BTreeSet<",">",Pr.BTreeSet],["Compact<",">",Pr.Compact],["Linkage<",">",Pr.Linkage],["Opaque<",">",Pr.WrapperOpaque],["Option<",">",Pr.Option],["Range<",">",Pr.Range],["RangeInclusive<",">",Pr.RangeInclusive],["Vec<",">",Pr.Vec],["WrapperKeepOpaque<",">",Pr.WrapperKeepOpaque],["WrapperOpaque<",">",Pr.WrapperOpaque]];function Fr(e,[t,n]){return e.substring(t.length,e.length-n.length)}function Xr(e,{displayName:t,name:n}={},r=0){const a=Hr(e),i={displayName:t,info:Pr.Plain,name:n,type:a};if(++r>64)throw new Error("getTypeDef: Maximum nested limit reached");const s=qr.find((e=>Dr(a,e)));if(s)return i.info=s[2],s[3](i,a,Fr(a,s),r);const o=jr.find((e=>Dr(a,e)));return o&&(i.info=o[2],i.sub=Xr(Fr(a,o),{},r)),i}function Wr({lookupName:e,type:t}){return e||t}function Zr(e){if(!Array.isArray(e.sub))throw new Error(`Expected subtype as TypeDef[] in ${(0,Qe.P)(e)}`);return e.sub}function Gr(e){return Wr(function(e){if(!e.sub||Array.isArray(e.sub))throw new Error(`Expected subtype as TypeDef in ${(0,Qe.P)(e)}`);return e.sub}(e))}function Kr(e){const t=Zr(e),n={};for(let r=0,a=t.length;r`);return e.with(n,t)}function Qr(e,t){const[n,r]=Yr(t);return e.with(n,r)}function $r(e,t){return e.with(Gr(t))}const ea={[Pr.BTreeMap]:(e,t)=>Qr(Cn,t),[Pr.BTreeSet]:(e,t)=>$r(Bn,t),[Pr.Compact]:(e,t)=>$r(Ln,t),[Pr.DoNotConstruct]:(e,t)=>pt.with(t.displayName||t.type),[Pr.Enum]:(e,t)=>{const n=Zr(t);return fn.with(n.every((({type:e})=>"Null"===e))?n.reduce(((e,{index:t,name:n},r)=>{if(!n)throw new Error("No name found in sub definition");return e[n]=t||r,e}),{}):Kr(t))},[Pr.HashMap]:(e,t)=>Qr(Un,t),[Pr.Int]:(e,t)=>Jr(nr,t),[Pr.Linkage]:(e,t)=>{const n=`Option<${Gr(t)}>`,r=xn.with({previous:n,next:n});return r.prototype.toRawType=function(){return`Linkage<${this.next.toRawType(!0)}>`},r},[Pr.Null]:(e,t)=>sn,[Pr.Option]:(e,t)=>{if(!t.sub||Array.isArray(t.sub))throw new Error("Expected type information for Option");return $r(ar,t)},[Pr.Plain]:(e,t)=>e.getOrUnknown(t.type),[Pr.Range]:(e,t)=>$r(sr,t),[Pr.RangeInclusive]:(e,t)=>$r(or,t),[Pr.Result]:(e,t)=>{const[n,r]=Yr(t);return cr.with({Err:r,Ok:n})},[Pr.Set]:(e,t)=>fr.with(Zr(t).reduce(((e,{index:t,name:n})=>{if(!n||!(0,Zt.h)(t))throw new Error("No name found in sub definition");return e[n]=t,e}),{}),t.length),[Pr.Si]:(e,t)=>ta(e,e.lookup.getTypeDef(t.type)),[Pr.Struct]:(e,t)=>xn.with(Kr(t),t.alias),[Pr.Tuple]:(e,t)=>ir.with(Yr(t)),[Pr.UInt]:(e,t)=>Jr(pr,t),[Pr.Vec]:(e,{sub:t})=>{if(!t||Array.isArray(t))throw new Error("Expected type information for vector");return"u8"===t.type?mr:gr.with(Wr(t))},[Pr.VecFixed]:(e,{displayName:t,length:n,sub:r})=>{if(!(0,Zt.h)(n)||!r||Array.isArray(r))throw new Error("Expected length & type information for fixed vector");return"u8"===r.type?vr.with(8*n,t):wr.with(Wr(r),n)},[Pr.WrapperKeepOpaque]:(e,t)=>$r(kr,t),[Pr.WrapperOpaque]:(e,t)=>$r(Tr,t)};function ta(e,t){return e.getUnsafe(t.type,!1,t)}function na(e,t){return e.getUnsafe(t)||ta(e,e.isLookupType(t)?e.lookup.getTypeDef(t):Xr(t))}function ra(e,t){const n=(0,N.Y)(e),r=(0,N.Y)(t);if(n.length===r.length){const e=new DataView(n.buffer,n.byteOffset),t=new DataView(r.buffer,r.byteOffset),a=n.length%4|0,i=n.length-a|0;for(let n=0;n!e))))throw new Error(`${r}:: Decoded input doesn't match input, received ${(0,O.c)(t,512)} (${t.length} bytes), created ${(0,O.c)(n,512)} (${n.length} bytes)`)}function ia(e,t,n=[],{blockHash:r,isFallback:a,isOptional:i,isPedantic:s}={}){const o=new(i?ar.with(t):t)(e,...n);return s&&function(e,[t]){(0,gt.U)(t)?aa(e,t):(0,it.vq)(t)&&aa(e,(0,N.Y)(t))}(o,n),r&&(o.createdAtHash=sa(e,"BlockHash",[r])),a&&(o.isStorageFallback=!0),o}function sa(e,t,n=[],r={}){let a=null,i=null;try{return a=na(e,t),ia(e,a,n,r)}catch(s){i=new Error(`createType(${t}):: ${s.message}`)}if(a?.__fallbackType)try{return a=na(e,a.__fallbackType),ia(e,a,n,r)}catch{}throw i}function oa(e,t,n,r,a=0){const i=r?r(t,a):t.toString();let s;Object.defineProperty(e,i,{configurable:!0,enumerable:!0,get:function(){if(void 0===s){s=n(t,a,this);try{Object.defineProperty(this,i,{value:s})}catch{}}return s}})}function ca(e,t,n,r){for(let a=0,i=t.length;a0&&!t.includes(e.length))throw new Error(`Expected Uint8Array of length ${t}, not of length=${e.length}`)}function fa(e){if("function"!=typeof e||"function"!=typeof e.create)throw new Error("Hash should be wrapped by utils.wrapConstructor");ua(e.outputLen),ua(e.blockLen)}function pa(e,t=!0){if(e.destroyed)throw new Error("Hash instance has been destroyed");if(t&&e.finished)throw new Error("Hash#digest() has already been called")}function ha(e,t){la(e);const n=t.outputLen;if(e.lengthnew Uint32Array(e.buffer,e.byteOffset,Math.floor(e.byteLength/4));function ya(e){return e instanceof Uint8Array||null!=e&&"object"==typeof e&&"Uint8Array"===e.constructor.name}const xa=e=>new DataView(e.buffer,e.byteOffset,e.byteLength),ga=(e,t)=>e<<32-t|e>>>t;if(!(68===new Uint8Array(new Uint32Array([287454020]).buffer)[0]))throw new Error("Non little-endian hardware is not supported");function va(e){if("string"==typeof e&&(e=function(e){if("string"!=typeof e)throw new Error("utf8ToBytes expected string, got "+typeof e);return new Uint8Array((new TextEncoder).encode(e))}(e)),!ya(e))throw new Error("expected Uint8Array, got "+typeof e);return e}class wa{clone(){return this._cloneInto()}}function Sa(e){const t=t=>e().update(va(t)).digest(),n=e();return t.outputLen=n.outputLen,t.blockLen=n.blockLen,t.create=()=>e(),t}function ka(e){const t=(t,n)=>e(n).update(va(t)).digest(),n=e({});return t.outputLen=n.outputLen,t.blockLen=n.blockLen,t.create=t=>e(t),t}function Ta(e=32){if(ba&&"function"==typeof ba.getRandomValues)return ba.getRandomValues(new Uint8Array(e));throw new Error("crypto.getRandomValues must be defined")}const Pa=new Uint8Array([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,14,10,4,8,9,15,13,6,1,12,0,2,11,7,5,3,11,8,12,0,5,2,15,13,10,14,3,6,7,1,9,4,7,9,3,1,13,12,11,14,2,6,5,10,4,0,15,8,9,0,5,7,2,4,10,15,14,1,11,12,6,8,3,13,2,12,6,10,0,11,8,3,4,13,7,5,15,14,1,9,12,5,1,15,14,13,4,10,0,7,6,3,9,2,8,11,13,11,7,14,12,1,3,9,5,0,15,4,8,6,2,10,6,15,14,9,11,3,0,8,12,2,13,7,1,4,10,5,10,2,8,4,7,6,1,5,15,11,9,14,3,12,13,0,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,14,10,4,8,9,15,13,6,1,12,0,2,11,7,5,3]);class Va extends wa{constructor(e,t,n={},r,a,i){if(super(),this.blockLen=e,this.outputLen=t,this.length=0,this.pos=0,this.finished=!1,this.destroyed=!1,ua(e),ua(t),ua(r),t<0||t>r)throw new Error("outputLen bigger than keyLen");if(void 0!==n.key&&(n.key.length<1||n.key.length>r))throw new Error(`key must be up 1..${r} byte long or undefined`);if(void 0!==n.salt&&n.salt.length!==a)throw new Error(`salt must be ${a} byte long or undefined`);if(void 0!==n.personalization&&n.personalization.length!==i)throw new Error(`personalization must be ${i} byte long or undefined`);this.buffer32=ma(this.buffer=new Uint8Array(e))}update(e){pa(this);const{blockLen:t,buffer:n,buffer32:r}=this,a=(e=va(e)).length,i=e.byteOffset,s=e.buffer;for(let o=0;or[t]=e))}digest(){const{buffer:e,outputLen:t}=this;this.digestInto(e);const n=e.slice(0,t);return this.destroy(),n}_cloneInto(e){const{buffer:t,length:n,finished:r,destroyed:a,outputLen:i,pos:s}=this;return e||(e=new this.constructor({dkLen:i})),e.set(...this.get()),e.length=n,e.finished=r,e.destroyed=a,e.outputLen=i,e.buffer.set(t),e.pos=s,e}}const Ma=BigInt(2**32-1),_a=BigInt(32);function Ia(e,t=!1){return t?{h:Number(e&Ma),l:Number(e>>_a&Ma)}:{h:0|Number(e>>_a&Ma),l:0|Number(e&Ma)}}function Oa(e,t=!1){let n=new Uint32Array(e.length),r=new Uint32Array(e.length);for(let a=0;ae<>>32-n,Ea=(e,t,n)=>t<>>32-n,Ca=(e,t,n)=>t<>>64-n,Aa=(e,t,n)=>e<>>64-n;const Ha={fromBig:Ia,split:Oa,toBig:(e,t)=>BigInt(e>>>0)<<_a|BigInt(t>>>0),shrSH:(e,t,n)=>e>>>n,shrSL:(e,t,n)=>e<<32-n|t>>>n,rotrSH:(e,t,n)=>e>>>n|t<<32-n,rotrSL:(e,t,n)=>e<<32-n|t>>>n,rotrBH:(e,t,n)=>e<<64-n|t>>>n-32,rotrBL:(e,t,n)=>e>>>n-32|t<<64-n,rotr32H:(e,t)=>t,rotr32L:(e,t)=>e,rotlSH:Na,rotlSL:Ea,rotlBH:Ca,rotlBL:Aa,add:function(e,t,n,r){const a=(t>>>0)+(r>>>0);return{h:e+n+(a/2**32|0)|0,l:0|a}},add3L:(e,t,n)=>(e>>>0)+(t>>>0)+(n>>>0),add3H:(e,t,n,r)=>t+n+r+(e/2**32|0)|0,add4L:(e,t,n,r)=>(e>>>0)+(t>>>0)+(n>>>0)+(r>>>0),add4H:(e,t,n,r,a)=>t+n+r+a+(e/2**32|0)|0,add5H:(e,t,n,r,a,i)=>t+n+r+a+i+(e/2**32|0)|0,add5L:(e,t,n,r,a)=>(e>>>0)+(t>>>0)+(n>>>0)+(r>>>0)+(a>>>0)},Ra=Ha,Ba=new Uint32Array([4089235720,1779033703,2227873595,3144134277,4271175723,1013904242,1595750129,2773480762,2917565137,1359893119,725511199,2600822924,4215389547,528734635,327033209,1541459225]),La=new Uint32Array(32);function Ua(e,t,n,r,a,i){const s=a[i],o=a[i+1];let c=La[2*e],d=La[2*e+1],u=La[2*t],l=La[2*t+1],f=La[2*n],p=La[2*n+1],h=La[2*r],b=La[2*r+1],m=Ra.add3L(c,u,s);d=Ra.add3H(m,d,l,o),c=0|m,({Dh:b,Dl:h}={Dh:b^d,Dl:h^c}),({Dh:b,Dl:h}={Dh:Ra.rotr32H(b,h),Dl:Ra.rotr32L(b,h)}),({h:p,l:f}=Ra.add(p,f,b,h)),({Bh:l,Bl:u}={Bh:l^p,Bl:u^f}),({Bh:l,Bl:u}={Bh:Ra.rotrSH(l,u,24),Bl:Ra.rotrSL(l,u,24)}),La[2*e]=c,La[2*e+1]=d,La[2*t]=u,La[2*t+1]=l,La[2*n]=f,La[2*n+1]=p,La[2*r]=h,La[2*r+1]=b}function za(e,t,n,r,a,i){const s=a[i],o=a[i+1];let c=La[2*e],d=La[2*e+1],u=La[2*t],l=La[2*t+1],f=La[2*n],p=La[2*n+1],h=La[2*r],b=La[2*r+1],m=Ra.add3L(c,u,s);d=Ra.add3H(m,d,l,o),c=0|m,({Dh:b,Dl:h}={Dh:b^d,Dl:h^c}),({Dh:b,Dl:h}={Dh:Ra.rotrSH(b,h,16),Dl:Ra.rotrSL(b,h,16)}),({h:p,l:f}=Ra.add(p,f,b,h)),({Bh:l,Bl:u}={Bh:l^p,Bl:u^f}),({Bh:l,Bl:u}={Bh:Ra.rotrBH(l,u,63),Bl:Ra.rotrBL(l,u,63)}),La[2*e]=c,La[2*e+1]=d,La[2*t]=u,La[2*t+1]=l,La[2*n]=f,La[2*n+1]=p,La[2*r]=h,La[2*r+1]=b}class Da extends Va{constructor(e={}){super(128,void 0===e.dkLen?64:e.dkLen,e,64,16,16),this.v0l=0|Ba[0],this.v0h=0|Ba[1],this.v1l=0|Ba[2],this.v1h=0|Ba[3],this.v2l=0|Ba[4],this.v2h=0|Ba[5],this.v3l=0|Ba[6],this.v3h=0|Ba[7],this.v4l=0|Ba[8],this.v4h=0|Ba[9],this.v5l=0|Ba[10],this.v5h=0|Ba[11],this.v6l=0|Ba[12],this.v6h=0|Ba[13],this.v7l=0|Ba[14],this.v7h=0|Ba[15];const t=e.key?e.key.length:0;if(this.v0l^=this.outputLen|t<<8|65536|1<<24,e.salt){const t=ma(va(e.salt));this.v4l^=t[0],this.v4h^=t[1],this.v5l^=t[2],this.v5h^=t[3]}if(e.personalization){const t=ma(va(e.personalization));this.v6l^=t[0],this.v6h^=t[1],this.v7l^=t[2],this.v7h^=t[3]}if(e.key){const t=new Uint8Array(this.blockLen);t.set(va(e.key)),this.update(t)}}get(){let{v0l:e,v0h:t,v1l:n,v1h:r,v2l:a,v2h:i,v3l:s,v3h:o,v4l:c,v4h:d,v5l:u,v5h:l,v6l:f,v6h:p,v7l:h,v7h:b}=this;return[e,t,n,r,a,i,s,o,c,d,u,l,f,p,h,b]}set(e,t,n,r,a,i,s,o,c,d,u,l,f,p,h,b){this.v0l=0|e,this.v0h=0|t,this.v1l=0|n,this.v1h=0|r,this.v2l=0|a,this.v2h=0|i,this.v3l=0|s,this.v3h=0|o,this.v4l=0|c,this.v4h=0|d,this.v5l=0|u,this.v5h=0|l,this.v6l=0|f,this.v6h=0|p,this.v7l=0|h,this.v7h=0|b}compress(e,t,n){this.get().forEach(((e,t)=>La[t]=e)),La.set(Ba,16);let{h:r,l:a}=Ra.fromBig(BigInt(this.length));La[24]=Ba[8]^a,La[25]=Ba[9]^r,n&&(La[28]=~La[28],La[29]=~La[29]);let i=0;const s=Pa;for(let o=0;o<12;o++)Ua(0,4,8,12,e,t+2*s[i++]),za(0,4,8,12,e,t+2*s[i++]),Ua(1,5,9,13,e,t+2*s[i++]),za(1,5,9,13,e,t+2*s[i++]),Ua(2,6,10,14,e,t+2*s[i++]),za(2,6,10,14,e,t+2*s[i++]),Ua(3,7,11,15,e,t+2*s[i++]),za(3,7,11,15,e,t+2*s[i++]),Ua(0,5,10,15,e,t+2*s[i++]),za(0,5,10,15,e,t+2*s[i++]),Ua(1,6,11,12,e,t+2*s[i++]),za(1,6,11,12,e,t+2*s[i++]),Ua(2,7,8,13,e,t+2*s[i++]),za(2,7,8,13,e,t+2*s[i++]),Ua(3,4,9,14,e,t+2*s[i++]),za(3,4,9,14,e,t+2*s[i++]);this.v0l^=La[0]^La[16],this.v0h^=La[1]^La[17],this.v1l^=La[2]^La[18],this.v1h^=La[3]^La[19],this.v2l^=La[4]^La[20],this.v2h^=La[5]^La[21],this.v3l^=La[6]^La[22],this.v3h^=La[7]^La[23],this.v4l^=La[8]^La[24],this.v4h^=La[9]^La[25],this.v5l^=La[10]^La[26],this.v5h^=La[11]^La[27],this.v6l^=La[12]^La[28],this.v6h^=La[13]^La[29],this.v7l^=La[14]^La[30],this.v7h^=La[15]^La[31],La.fill(0)}destroy(){this.destroyed=!0,this.buffer32.fill(0),this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)}}const qa=ka((e=>new Da(e)));var ja=n(98657),Fa=n(56398);const Xa=ct.Ur.crypto;const Wa={getRandomValues:function(e){return Xa.getRandomValues(e)}},Za={crypto:Wa};class Ga{__internal__bridge;constructor(e){this.__internal__bridge=e}abort=()=>{throw new Error("abort")};__wbindgen_is_undefined=e=>void 0===this.__internal__bridge.getObject(e);__wbindgen_throw=(e,t)=>{throw new Error(this.__internal__bridge.getString(e,t))};__wbg_self_1b7a39e3a92c949c=()=>this.__internal__bridge.addObject(Za);__wbg_require_604837428532a733=(e,t)=>{throw new Error(`Unable to require ${this.__internal__bridge.getString(e,t)}`)};__wbg_crypto_968f1772287e2df0=e=>this.__internal__bridge.addObject(Wa);__wbg_getRandomValues_a3d34b4fee3c2869=e=>this.__internal__bridge.addObject(Wa.getRandomValues);__wbg_getRandomValues_f5e14ab7ac8e995d=(e,t,n)=>{Wa.getRandomValues(this.__internal__bridge.getU8a(t,n))};__wbg_randomFillSync_d5bd2d655fdf256a=(e,t,n)=>{throw new Error("randomFillsync is not available")};__wbindgen_object_drop_ref=e=>{this.__internal__bridge.takeObject(e)}}function Ka(e,t,n){return async r=>{const a={error:null,type:"none",wasm:null};try{if(!t?.length)throw new Error("No WebAssembly provided for initialization");if("object"!=typeof WebAssembly||"function"!=typeof WebAssembly.instantiate)throw new Error("WebAssembly is not available in your environment");const e=await WebAssembly.instantiate(t,{wbg:r});a.wasm=e.instance.exports,a.type="wasm"}catch(i){"function"==typeof n?(a.wasm=n(r),a.type="asm"):(a.error=`FATAL: Unable to initialize @polkadot/wasm-${e}:: ${i.message}`,console.error(a.error))}return a}}const Ya=Uint8Array,Ja=Uint16Array,Qa=Uint32Array,$a=new Ya([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),ei=new Ya([0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0,0,0,0]),ti=new Ya([0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,0,0]),ni=(e,t)=>{const n=new Ja(31);for(let a=0;a<31;++a)n[a]=t+=1<>>1|(21845&$w)<<1;e=(52428&e)>>>2|(13107&e)<<2,e=(61680&e)>>>4|(3855&e)<<4,si[$w]=((65280&e)>>>8|(255&e)<<8)>>>1}const oi=(e,t,n)=>{const r=e.length;let a=0;const i=new Ja(t);for(;a>n]=r}}else for(o=new Ja(r),a=0;a>15-e[a]);return o},ci=new Ya(288);for(let $w=0;$w<144;++$w)ci[$w]=8;for(let $w=144;$w<256;++$w)ci[$w]=9;for(let $w=256;$w<280;++$w)ci[$w]=7;for(let $w=280;$w<288;++$w)ci[$w]=8;const di=new Ya(32);for(let $w=0;$w<32;++$w)di[$w]=5;const ui=oi(ci,9,1),li=oi(di,5,1),fi=(e,t,n)=>{const r=t>>>3;return(e[r]|e[r+1]<<8)>>>(7&t)&n},pi=(e,t)=>{const n=t>>>3;return(e[n]|e[n+1]<<8|e[n+2]<<16)>>>(7&t)},hi=e=>{let t=e[0];for(let n=1,r=e.length;nt&&(t=e[n]);return t},bi=(e,t,n)=>{const r=!n||n.i;n||(n={});const a=e.length,i=!t||!r;t||(t=new Ya(3*a));const s=e=>{let n=t.length;if(e>n){const r=new Ya(Math.max(n<<1,e));r.set(t),t=r}};let o=n.f||0,c=n.p||0,d=n.b||0,u=n.l,l=n.d,f=n.m,p=n.n;if(o&&!u)return t;const h=a<<3;do{if(!u){n.f=o=fi(e,c,1);const m=fi(e,c+1,3);if(c+=3,!m){const o=((b=c)>>>3)+(7&b&&1)+4,u=e[o-4]|e[o-3]<<8,l=o+u;if(l>a){if(r)throw"unexpected EOF";break}i&&s(d+u),t.set(e.subarray(o,l),d),n.b=d+=u,n.p=c=l<<3;continue}if(1==m)u=ui,l=li,f=9,p=5;else{if(2!=m)throw"invalid block type";{const t=fi(e,c,31)+257,n=fi(e,c+10,15)+4,a=t+fi(e,c+5,31)+1;c+=14;const i=new Ya(a),s=new Ya(19);for(let r=0;rh)break;const b=oi(s,o,1);for(let r=0;r>>4;if(n<16)i[r++]=n;else{let t=0,a=0;for(16==n?(a=3+fi(e,c,3),c+=2,t=i[r-1]):17==n?(a=3+fi(e,c,7),c+=3):18==n&&(a=11+fi(e,c,127),c+=7);a--;)i[r++]=t}}const m=i.subarray(0,t),y=i.subarray(t);f=hi(m),p=hi(y),u=oi(m,f,1),l=oi(y,p,1)}}if(c>h)throw"unexpected EOF"}i&&s(d+131072);const m=(1<>>4;if(c+=15&n,c>h)throw"unexpected EOF";if(!n)throw"invalid length/literal";if(r<256)t[d++]=r;else{if(256==r){u=void 0;break}{let n=r-254;if(r>264){const t=r-257,a=ei[t];n=fi(e,c,(1<>>4;if(!a)throw"invalid distance";c+=15&a;let u=ii[o];if(o>3){const t=ti[o];u+=pi(e,c)&(1<h)throw"unexpected EOF";i&&s(d+131072);const f=d+n;for(;d{(null==t||t<0)&&(t=0),(null==n||n>e.length)&&(n=e.length);const r=new(e instanceof Ja?Ja:e instanceof Qa?Qa:Ya)(n-t);return r.set(e.subarray(t,n)),r})(t,0,d)};function mi(e,t){return bi(((e=>{if(8!=(15&e[0])||e[0]>>>4>7||(e[0]<<8|e[1])%31)throw"invalid zlib data";if(32&e[1])throw"invalid zlib data: preset dictionaries not supported"})(e),e.subarray(2,-4)),t)}const yi="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",xi=new Array(256);for(let $w=0,eS=64;$w=8&&(t[++a]=n>>>(r-=8)&255);return t}(gi.aI,new Uint8Array(gi.lY)),new Uint8Array(gi.JH)),wi=Ka("crypto",vi,null),Si=new class{__internal__createWasm;__internal__heap;__internal__wbg;__internal__cachegetInt32;__internal__cachegetUint8;__internal__heapNext;__internal__wasm;__internal__wasmError;__internal__wasmPromise;__internal__type;constructor(e){this.__internal__createWasm=e,this.__internal__cachegetInt32=null,this.__internal__cachegetUint8=null,this.__internal__heap=new Array(32).fill(void 0).concat(void 0,null,!0,!1),this.__internal__heapNext=this.__internal__heap.length,this.__internal__type="none",this.__internal__wasm=null,this.__internal__wasmError=null,this.__internal__wasmPromise=null,this.__internal__wbg={...new Ga(this)}}get error(){return this.__internal__wasmError}get type(){return this.__internal__type}get wasm(){return this.__internal__wasm}async init(e){this.__internal__wasmPromise&&!e||(this.__internal__wasmPromise=(e||this.__internal__createWasm)(this.__internal__wbg));const{error:t,type:n,wasm:r}=await this.__internal__wasmPromise;return this.__internal__type=n,this.__internal__wasm=r,this.__internal__wasmError=t,this.__internal__wasm}getObject(e){return this.__internal__heap[e]}dropObject(e){e<36||(this.__internal__heap[e]=this.__internal__heapNext,this.__internal__heapNext=e)}takeObject(e){const t=this.getObject(e);return this.dropObject(e),t}addObject(e){this.__internal__heapNext===this.__internal__heap.length&&this.__internal__heap.push(this.__internal__heap.length+1);const t=this.__internal__heapNext;return this.__internal__heapNext=this.__internal__heap[t],this.__internal__heap[t]=e,t}getInt32(){return null!==this.__internal__cachegetInt32&&this.__internal__cachegetInt32.buffer===this.__internal__wasm.memory.buffer||(this.__internal__cachegetInt32=new Int32Array(this.__internal__wasm.memory.buffer)),this.__internal__cachegetInt32}getUint8(){return null!==this.__internal__cachegetUint8&&this.__internal__cachegetUint8.buffer===this.__internal__wasm.memory.buffer||(this.__internal__cachegetUint8=new Uint8Array(this.__internal__wasm.memory.buffer)),this.__internal__cachegetUint8}getU8a(e,t){return this.getUint8().subarray(e/1,e/1+t)}getString(e,t){return lt(this.getU8a(e,t))}allocU8a(e){const t=this.__internal__wasm.__wbindgen_malloc(1*e.length);return this.getUint8().set(e,t/1),[t,e.length]}allocString(e){return this.allocU8a((0,Fa.d)(e))}resultU8a(){const e=this.getInt32()[2],t=this.getInt32()[3],n=this.getU8a(e,t).slice();return this.__internal__wasm.__wbindgen_free(e,1*t),n}resultString(){return lt(this.resultU8a())}}(wi);function ki(e){return(...t)=>{if(!Si.wasm)throw new Error("The WASM interface has not been initialized. Ensure that you wait for the initialization Promise with waitReady() from @polkadot/wasm-crypto (or cryptoWaitReady() from @polkadot/util-crypto) before attempting to use WASM-only interfaces.");return e(Si.wasm,...t)}}const Ti=ki(((e,t)=>(e.ext_secp_pub_expand(8,...Si.allocU8a(t)),Si.resultU8a()))),Pi=ki(((e,t,n,r)=>(e.ext_blake2b(8,...Si.allocU8a(t),...Si.allocU8a(n),r),Si.resultU8a()))),Vi=ki(((e,t)=>(e.ext_keccak256(8,...Si.allocU8a(t)),Si.resultU8a()))),Mi=ki(((e,t)=>(e.ext_keccak512(8,...Si.allocU8a(t)),Si.resultU8a()))),_i=ki(((e,t,n)=>(e.ext_twox(8,...Si.allocU8a(t),n),Si.resultU8a())));function Ii(){return!!Si.wasm}async function Oi(){try{const e=await async function(e){return Si.init(e)}();return!!e}catch{return!1}}function Ni(e){return(...t)=>(0,O.c)(e(...t))}function Ei(e,t){return(n,r=256,a)=>{const i=(0,N.Y)(n);return!ja.vc||!a&&Ii()?e[r](i):t[r](i)}}function Ci(e,t=256,n,r){const a=Math.ceil(t/8),i=(0,N.Y)(e);return!ja.vc||!r&&Ii()?Pi(i,(0,N.Y)(n),a):qa(i,n?{dkLen:a,key:n}:{dkLen:a})}const Ai=Ni(Ci),Hi={extrinsic:{},payload:{}},Ri={LimitParathreadCommits:Hi,OnlyStakingAndClaims:Hi,PrevalidateAttests:Hi,RestrictFunctionality:Hi,TransactionCallFilter:Hi,ValidateDoubleVoteReports:Hi},Bi={DisallowSigned:Hi},Li={extrinsic:{era:"ExtrinsicEra"},payload:{blockHash:"Hash"}},Ui={extrinsic:{tip:"Compact"},payload:{}},zi={ChargeTransactionPayment:Ui,CheckBlockGasLimit:Hi,CheckEra:Li,CheckGenesis:{extrinsic:{},payload:{genesisHash:"Hash"}},CheckMetadataHash:{extrinsic:{mode:"u8"},payload:{metadataHash:"Option<[u8;32]>"}},CheckMortality:Li,CheckNonZeroSender:Hi,CheckNonce:{extrinsic:{nonce:"Compact"},payload:{}},CheckSpecVersion:{extrinsic:{},payload:{specVersion:"u32"}},CheckTxVersion:{extrinsic:{},payload:{transactionVersion:"u32"}},CheckVersion:{extrinsic:{},payload:{specVersion:"u32"}},CheckWeight:Hi,LockStakingStatus:Hi,SkipCheckIfFeeless:Ui,ValidateEquivocationReport:Hi},Di=(0,_.Z)({},zi,Ri,Bi,{ChargeAssetTxPayment:{extrinsic:{tip:"Compact",assetId:"TAssetConversion"},payload:{}}}),qi=["CheckVersion","CheckGenesis","CheckEra","CheckNonce","CheckWeight","ChargeTransactionPayment","CheckBlockGasLimit"];function ji(e,t,n={}){return e.map((e=>n[e]||Di[e])).filter((e=>!!e)).reduce(((e,n)=>(0,_.Z)(e,n[t])),{})}class Fi extends ir{__internal__meta;__internal__method;__internal__names=null;__internal__section;__internal__typeDef;constructor(e,t,n,r="",a=""){const i=n?.fields||[];super(e,i.map((({type:t})=>e.createLookupType(t))),t),this.__internal__meta=n,this.__internal__method=a,this.__internal__section=r,this.__internal__typeDef=i.map((({type:t})=>e.lookup.getTypeDef(t)));const s=i.map((({name:t})=>e.lookup.sanitizeField(t)[0])).filter((e=>!!e));s.length===i.length&&(this.__internal__names=s,Ye(this,s,((e,t)=>this[t])))}get meta(){return this.__internal__meta}get method(){return this.__internal__method}get names(){return this.__internal__names}get section(){return this.__internal__section}get typeDef(){return this.__internal__typeDef}toHuman(e,t){if(null!==this.__internal__names){const n={};for(let r=0,a=this.__internal__names.length;re.toString()))}:null,super.toHuman(e,t))}}class Wi{registry;createdAtHash;initialU8aLength;isStorageFallback;__internal__raw;constructor(e,t,n){this.initialU8aLength=n,this.__internal__raw=t,this.registry=e}get encodedLength(){return this.toU8a().length}get hash(){return this.registry.hash(this.toU8a())}get inner(){return this.__internal__raw}get isEmpty(){return this.__internal__raw.isEmpty}eq(e){return this.__internal__raw.eq(e)}inspect(){return this.__internal__raw.inspect()}toHex(e){return this.__internal__raw.toHex(e)}toHuman(e,t){return this.__internal__raw.toHuman(e,t)}toJSON(){return this.__internal__raw.toJSON()}toPrimitive(e){return this.__internal__raw.toPrimitive(e)}toString(){return this.__internal__raw.toString()}toU8a(e){return this.__internal__raw.toU8a(e)}unwrap(){return this.__internal__raw}valueOf(){return this.__internal__raw}}class Zi extends xn{constructor(e,t,{isSigned:n}={}){super(e,{signature:"ExtrinsicSignatureV4",method:"Call"},Zi.decodeExtrinsic(e,t,n))}static decodeExtrinsic(e,t,n=!1){if(t instanceof Zi)return t;if(t instanceof e.createClassUnsafe("Call"))return{method:t};if((0,gt.U)(t)){const r=e.createTypeUnsafe("ExtrinsicSignatureV4",[t,{isSigned:n}]);return{method:e.createTypeUnsafe("Call",[t.subarray(r.encodedLength)]),signature:r}}return t||{}}get encodedLength(){return this.toU8a().length}get method(){return this.getT("method")}get signature(){return this.getT("signature")}get version(){return 4}addSignature(e,t,n){return this.signature.addSignature(e,t,n),this}sign(e,t){return this.signature.sign(this.method,e,t),this}signFake(e,t){return this.signature.signFake(this.method,e,t),this}}const Gi=128,Ki=new Uint8Array,Yi=new Uint8Array([0]),Ji=127,Qi=["ExtrinsicUnknown","ExtrinsicUnknown","ExtrinsicUnknown","ExtrinsicUnknown","ExtrinsicV4"];function $i(e,t,n){if(t instanceof ns)return t.unwrap();const r=(n&Gi)===Gi,a=Qi[n&Ji]||Qi[0];return e.createTypeUnsafe(a,[t,{isSigned:r,version:n}])}function es(e,t,n=4){return(0,gt.U)(t)||Array.isArray(t)||(0,it.vq)(t)?function(e,t,n){if(!t.length)return $i(e,new Uint8Array,n);const[r,a]=yt(t),i=r+a.toNumber();if(i>t.length)throw new Error(`Extrinsic: length less than remainder, expected at least ${i}, found ${t.length}`);const s=t.subarray(r,i);return $i(e,s.subarray(1),s[0])}(e,(0,N.Y)(t),n):t instanceof e.createClassUnsafe("Call")?$i(e,{method:t},n):$i(e,t,n)}class ts extends Wi{constructor(e,t,n){super(e,t,n);const r=Object.keys(e.getSignedExtensionTypes()),a=e=>this.inner.signature[e];for(let i=0,s=r.length;i>12,1),o=(a>>4)*s;if(i<4||o>=i)throw new Error("Invalid data passed to Mortal era");return[new rs(e,i),new rs(e,o)]}(e,(0,N.Y)(t));if(!t)return[new rs(e),new rs(e)];if((0,et.K)(t))return function(e,t){const{current:n,period:r}=t;let a=Math.pow(2,Math.ceil(Math.log2(r)));a=Math.min(Math.max(a,4),65536);const i=n%a,s=Math.max(a>>12,1),o=i/s*s;return[new rs(e,a),new rs(e,o)]}(e,t);throw new Error("Invalid data passed to Mortal era")}function ss(e=new Uint8Array){if((0,gt.U)(e))return e.length&&0!==e[0]?new Uint8Array([1,e[0],e[1]]):new Uint8Array([0]);if(!e)return new Uint8Array([0]);if(e instanceof ds)return ss(e.toU8a());if((0,it.vq)(e))return ss((0,as.G)(e));if((0,et.K)(e)){const t=Object.entries(e).map((([e,t])=>[e.toLowerCase(),t])),n=t.find((([e])=>"mortalera"===e.toLowerCase())),r=t.find((([e])=>"immortalera"===e.toLowerCase()));return n?{MortalEra:n[1]}:r?{ImmortalEra:r[1]}:{MortalEra:e}}throw new Error("Invalid data passed to Era")}class os extends ft{constructor(e,t){super(e,Yi)}}class cs extends ir{constructor(e,t){super(e,{period:rs,phase:rs},is(e,t))}get encodedLength(){return 2}get period(){return this[0]}get phase(){return this[1]}toHuman(){return{period:Jn(this.period),phase:Jn(this.phase)}}toJSON(){return this.toHex()}toU8a(e){const t=this.period.toNumber(),n=Math.min(15,Math.max(1,function(e){const t=e.toString(2);let n=0;for(;"0"===t[t.length-1-n];)n++;return n}(t)-1))+(this.phase.toNumber()/Math.max(t>>12,1)<<4);return new Uint8Array([255&n,n>>8])}birth(e){const t=this.phase.toNumber(),n=this.period.toNumber();return~~((Math.max(At(e).toNumber(),t)-t)/n)*n+t}death(e){return this.birth(e)+this.period.toNumber()}}class ds extends fn{constructor(e,t){super(e,{ImmortalEra:os,MortalEra:cs},ss(t))}get encodedLength(){return this.isImmortalEra?this.asImmortalEra.encodedLength:this.asMortalEra.encodedLength}get asImmortalEra(){if(!this.isImmortalEra)throw new Error(`Cannot convert '${this.type}' via asImmortalEra`);return this.inner}get asMortalEra(){if(!this.isMortalEra)throw new Error(`Cannot convert '${this.type}' via asMortalEra`);return this.inner}get isImmortalEra(){return 0===this.index}get isMortalEra(){return this.index>0}toU8a(e){return this.isMortalEra?this.asMortalEra.toU8a(e):this.asImmortalEra.toU8a(e)}}const us=["ExtrinsicPayloadUnknown","ExtrinsicPayloadUnknown","ExtrinsicPayloadUnknown","ExtrinsicPayloadUnknown","ExtrinsicPayloadV4"];class ls extends Wi{constructor(e,t,{version:n}={}){super(e,function(e,t,n=4){return t instanceof ls?t.unwrap():e.createTypeUnsafe(us[n]||us[0],[t,{version:n}])}(e,t,n))}get blockHash(){return this.inner.blockHash}get era(){return this.inner.era}get genesisHash(){return this.inner.genesisHash||this.registry.createTypeUnsafe("Hash",[])}get method(){return this.inner.method}get nonce(){return this.inner.nonce}get specVersion(){return this.inner.specVersion||this.registry.createTypeUnsafe("u32",[])}get tip(){return this.inner.tip||this.registry.createTypeUnsafe("Compact",[])}get transactionVersion(){return this.inner.transactionVersion||this.registry.createTypeUnsafe("u32",[])}get assetId(){return this.inner.assetId}get metadataHash(){return this.inner.metadataHash}eq(e){return this.inner.eq(e)}sign(e){const t=this.inner.sign(e);return{signature:(0,O.c)(t)}}toHuman(e,t){return this.inner.toHuman(e,t)}toJSON(){return this.toHex()}toRawType(){return"ExtrinsicPayload"}toString(){return this.toHex()}toU8a(e){return super.toU8a(!!e&&{method:!0})}}class fs extends xn{constructor(e,t,{version:n=0}={}){throw super(e,{}),new Error(`Unsupported extrinsic payload version ${n}`)}}class ps extends xn{constructor(e,t,{isSigned:n=!1,version:r=0}={}){throw super(e,{}),new Error(`Unsupported ${n?"":"un"}signed extrinsic version ${r&Ji}`)}}const hs={address:"Address",assetId:"Option",blockHash:"Hash",blockNumber:"BlockNumber",era:"ExtrinsicEra",genesisHash:"Hash",metadataHash:"Option<[u8;32]>",method:"Call",mode:"u8",nonce:"Compact",runtimeVersion:"RuntimeVersion",signedExtensions:"Vec",tip:"Compact",version:"u8"};class bs extends xn{__internal__extraTypes;constructor(e,t){const n=(0,_.Z)({},e.getSignedExtensionTypes(),e.getSignedExtensionExtra());super(e,(0,_.Z)({},n,hs),t),this.__internal__extraTypes={};const r=e=>this.get(e);for(const[a,i]of Object.entries(n))hs[a]||(this.__internal__extraTypes[a]=i),Ke(this,a,r)}get address(){return this.getT("address")}get blockHash(){return this.getT("blockHash")}get blockNumber(){return this.getT("blockNumber")}get era(){return this.getT("era")}get genesisHash(){return this.getT("genesisHash")}get method(){return this.getT("method")}get nonce(){return this.getT("nonce")}get runtimeVersion(){return this.getT("runtimeVersion")}get signedExtensions(){return this.getT("signedExtensions")}get tip(){return this.getT("tip")}get assetId(){return this.getT("assetId")}get version(){return this.getT("version")}get mode(){return this.getT("mode")}get metadataHash(){return this.getT("metadataHash")}toPayload(){const e={},t=Object.keys(this.__internal__extraTypes);for(let n=0,r=t.length;ne.toString())),specVersion:this.runtimeVersion.specVersion.toHex(),tip:this.tip.toHex(),transactionVersion:this.runtimeVersion.transactionVersion.toHex(),version:this.version.toNumber()})}toRaw(){const e=this.toPayload(),t=(0,O.c)(this.registry.createTypeUnsafe("ExtrinsicPayload",[e,{version:e.version}]).toU8a({method:!0}));return{address:e.address,data:t,type:"payload"}}}class ms extends xn{__internal__signOptions;constructor(e,t){super(e,(0,_.Z)({method:"Bytes"},e.getSignedExtensionTypes(),e.getSignedExtensionExtra()),t),this.__internal__signOptions={withType:e.createTypeUnsafe("ExtrinsicSignature",[])instanceof fn}}inspect(){return super.inspect({method:!0})}get blockHash(){return this.getT("blockHash")}get era(){return this.getT("era")}get genesisHash(){return this.getT("genesisHash")}get method(){return this.getT("method")}get nonce(){return this.getT("nonce")}get specVersion(){return this.getT("specVersion")}get tip(){return this.getT("tip")}get transactionVersion(){return this.getT("transactionVersion")}get assetId(){return this.getT("assetId")}get metadataHash(){return this.getT("metadataHash")}sign(e){return function(e,t,n,r){const a=n.length>256?e.hash(n):n;return t.sign(a,r)}(this.registry,e,this.toU8a({method:!0}),this.__internal__signOptions)}}const ys=new Uint8Array(256).fill(1);function xs(e,t){return e.createTypeUnsafe("Address",[(0,gt.U)(t)?(0,O.c)(t):t])}class gs extends xn{__internal__signKeys;constructor(e,t,{isSigned:n}={}){const r=e.getSignedExtensionTypes();super(e,(0,_.Z)({signer:"Address",signature:"ExtrinsicSignature"},r),gs.decodeExtrinsicSignature(t,n)),this.__internal__signKeys=Object.keys(r),Ye(this,this.__internal__signKeys,(e=>this.get(e)))}static decodeExtrinsicSignature(e,t=!1){return e&&(e instanceof gs||t)?e:Ki}get encodedLength(){return this.isSigned?super.encodedLength:0}get isSigned(){return!this.signature.isEmpty}get era(){return this.getT("era")}get nonce(){return this.getT("nonce")}get signature(){return this.multiSignature.value||this.multiSignature}get multiSignature(){return this.getT("signature")}get signer(){return this.getT("signer")}get tip(){return this.getT("tip")}get assetId(){return this.getT("assetId")}get metadataHash(){return this.getT("metadataHash")}_injectSignature(e,t,n){for(let r=0,a=this.__internal__signKeys.length;re,n=(e,t)=>n=>e(t(n));return{encode:e.map((e=>e.encode)).reduceRight(n,t),decode:e.map((e=>e.decode)).reduce(n,t)}}function ks(e){return{encode:t=>{if(!Array.isArray(t)||t.length&&"number"!=typeof t[0])throw new Error("alphabet.encode input should be an array of numbers");return t.map((t=>{if(vs(t),t<0||t>=e.length)throw new Error(`Digit index outside alphabet: ${t} (alphabet: ${e.length})`);return e[t]}))},decode:t=>{if(!Array.isArray(t)||t.length&&"string"!=typeof t[0])throw new Error("alphabet.decode input should be array of strings");return t.map((t=>{if("string"!=typeof t)throw new Error(`alphabet.decode: not string element=${t}`);const n=e.indexOf(t);if(-1===n)throw new Error(`Unknown letter: "${t}". Allowed: ${e}`);return n}))}}}function Ts(e=""){if("string"!=typeof e)throw new Error("join separator should be string");return{encode:t=>{if(!Array.isArray(t)||t.length&&"string"!=typeof t[0])throw new Error("join.encode input should be array of strings");for(let e of t)if("string"!=typeof e)throw new Error(`join.encode: non-string input=${e}`);return t.join(e)},decode:t=>{if("string"!=typeof t)throw new Error("join.decode input should be string");return t.split(e)}}}function Ps(e,t="="){if(vs(e),"string"!=typeof t)throw new Error("padding chr should be string");return{encode(n){if(!Array.isArray(n)||n.length&&"string"!=typeof n[0])throw new Error("padding.encode input should be array of strings");for(let e of n)if("string"!=typeof e)throw new Error(`padding.encode: non-string input=${e}`);for(;n.length*e%8;)n.push(t);return n},decode(n){if(!Array.isArray(n)||n.length&&"string"!=typeof n[0])throw new Error("padding.encode input should be array of strings");for(let e of n)if("string"!=typeof e)throw new Error(`padding.decode: non-string input=${e}`);let r=n.length;if(r*e%8)throw new Error("Invalid padding: string should have whole number of bytes");for(;r>0&&n[r-1]===t;r--)if(!((r-1)*e%8))throw new Error("Invalid padding: string has too much padding");return n.slice(0,r)}}}function Vs(e){if("function"!=typeof e)throw new Error("normalize fn should be function");return{encode:e=>e,decode:t=>e(t)}}function Ms(e,t,n){if(t<2)throw new Error(`convertRadix: wrong from=${t}, base cannot be less than 2`);if(n<2)throw new Error(`convertRadix: wrong to=${n}, base cannot be less than 2`);if(!Array.isArray(e))throw new Error("convertRadix: data should be array");if(!e.length)return[];let r=0;const a=[],i=Array.from(e);for(i.forEach((e=>{if(vs(e),e<0||e>=t)throw new Error(`Wrong integer: ${e}`)}));;){let e=0,s=!0;for(let a=r;at?_s(t,e%t):e,Is=(e,t)=>e+(t-_s(e,t));function Os(e,t,n,r){if(!Array.isArray(e))throw new Error("convertRadix2: data should be array");if(t<=0||t>32)throw new Error(`convertRadix2: wrong from=${t}`);if(n<=0||n>32)throw new Error(`convertRadix2: wrong to=${n}`);if(Is(t,n)>32)throw new Error(`convertRadix2: carry overflow from=${t} to=${n} carryBits=${Is(t,n)}`);let a=0,i=0;const s=2**n-1,o=[];for(const c of e){if(vs(c),c>=2**t)throw new Error(`convertRadix2: invalid data word=${c} from=${t}`);if(a=a<32)throw new Error(`convertRadix2: carry overflow pos=${i} from=${t}`);for(i+=t;i>=n;i-=n)o.push((a>>i-n&s)>>>0);a&=2**i-1}if(a=a<=t)throw new Error("Excess padding");if(!r&&a)throw new Error(`Non-zero padding: ${a}`);return r&&i>0&&o.push(a>>>0),o}function Ns(e){return vs(e),{encode:t=>{if(!ws(t))throw new Error("radix.encode input should be Uint8Array");return Ms(Array.from(t),256,e)},decode:t=>{if(!Array.isArray(t)||t.length&&"number"!=typeof t[0])throw new Error("radix.decode input should be array of numbers");return Uint8Array.from(Ms(t,e,256))}}}function Es(e,t=!1){if(vs(e),e<=0||e>32)throw new Error("radix2: bits should be in (0..32]");if(Is(8,e)>32||Is(e,8)>32)throw new Error("radix2: carry overflow");return{encode:n=>{if(!ws(n))throw new Error("radix2.encode input should be Uint8Array");return Os(Array.from(n),8,e,!t)},decode:n=>{if(!Array.isArray(n)||n.length&&"number"!=typeof n[0])throw new Error("radix2.decode input should be array of numbers");return Uint8Array.from(Os(n,e,8,t))}}}const Cs=Ss(Es(4),ks("0123456789ABCDEF"),Ts("")),As=Ss(Es(5),ks("ABCDEFGHIJKLMNOPQRSTUVWXYZ234567"),Ps(5),Ts("")),Hs=(Es(5),ks("0123456789ABCDEFGHIJKLMNOPQRSTUV"),Ps(5),Ts(""),Es(5),ks("0123456789ABCDEFGHJKMNPQRSTVWXYZ"),Ts(""),Vs((e=>e.toUpperCase().replace(/O/g,"0").replace(/[IL]/g,"1"))),Ss(Es(6),ks("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"),Ps(6),Ts(""))),Rs=Ss(Es(6),ks("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_"),Ps(6),Ts("")),Bs=(Es(6),ks("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_"),Ts(""),e=>Ss(Ns(58),ks(e),Ts(""))),Ls=Bs("123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"),Us=[0,2,3,5,6,7,9,10,11],zs={encode(e){let t="";for(let n=0;n(new TextDecoder).decode(e),decode:e=>(new TextEncoder).encode(e)};Es(4),ks("0123456789abcdef"),Ts(""),Vs((e=>{if("string"!=typeof e||e.length%2)throw new TypeError(`hex.decode: expected string, got ${typeof e} with length ${e.length}`);return e.toLowerCase()}));function qs({coder:e,ipfs:t},n){return(r,a)=>(n(r,a),e.decode(t&&a?r.substring(1):r))}function js({coder:e,ipfs:t}){return(n,r)=>{const a=e.encode((0,N.Y)(n));return t&&r?`${t}${a}`:a}}function Fs({chars:e,ipfs:t,type:n,withPadding:r}){return(a,i)=>{if("string"!=typeof a)throw new Error(`Expected ${n} string input`);if(t&&i&&!a.startsWith(t))throw new Error(`Expected ipfs-compatible ${n} to start with '${t}'`);for(let t=i?1:0,s=a.length;te)),prefix:42};function so(e,t,n=-1){if(!e)throw new Error("Invalid empty address passed");if((0,gt.U)(e)||(0,it.vq)(e))return(0,N.Y)(e);try{const r=Zs(e);if(!io.allowedEncodedLengths.includes(r.length))throw new Error("Invalid decoded address length");const[a,i,s,o]=function(e){const t=64&e[0]?2:1,n=1===t?e[0]:(63&e[0])<<2|e[1]>>6|(63&e[1])<<8,r=[34+t,35+t].includes(e.length),a=e.length-(r?2:1),i=Ys(e.subarray(0,a));return[0==(128&e[0])&&![46,47].includes(e[0])&&(r?e[e.length-2]===i[0]&&e[e.length-1]===i[1]:e[e.length-1]===i[0]),a,t,n]}(r);if(!a&&!t)throw new Error("Invalid decoded address checksum");if(-1!==n&&n!==o)throw new Error(`Expected ss58Format ${n}, received ${o}`);return r.slice(s,i)}catch(r){throw new Error(`Decoding ${e}: ${r.message}`)}}function oo(e,t=io.prefix){const n=so(e);if(t<0||t>16383||[46,47].includes(t))throw new Error("Out of range ss58Format specified");if(!io.allowedDecodedLengths.includes(n.length))throw new Error(`Expected a valid key to convert, with length ${io.allowedDecodedLengths.join(", ")}`);const r=Bt(t<64?[t]:[(252&t)>>2|64,t>>8|(3&t)<<6],n);return Gs(Bt(r,Ys(r).subarray(0,[32,33].includes(n.length)?2:1)))}function co(e){if((0,gt.U)(e)||Array.isArray(e))return(0,N.Y)(e);if(!e)return new Uint8Array;if((0,it.vq)(e))return(0,as.G)(e);if((0,I.H)(e))return so(e.toString());throw new Error("Unknown type passed to AccountId constructor, found typeof "+typeof e)}class uo extends vr{constructor(e,t=264,n){const r=co(n);if(8*r.lengthe)))throw new Error(`Invalid AccountId provided, expected ${t>>3} bytes, found ${r.length}`);super(e,r,t)}eq(e){return super.eq(co(e))}toHuman(){return this.toJSON()}toJSON(){return this.toString()}toPrimitive(){return this.toJSON()}toString(){return oo(this,this.registry.chainSS58)}toRawType(){return"AccountId"}}class lo extends uo{constructor(e,t){super(e,256,t)}}class fo extends uo{constructor(e,t){super(e,264,t)}}class po extends(pr.with(32)){__UIntType="u32"}const ho=new bt(239),bo=new bt(1).shln(16),mo=new bt(1).shln(32);function yo(e){return e instanceof xo?e.toBn():(0,Sn.H)(e)||(0,Zt.h)(e)||(0,it.vq)(e)||(0,gt.U)(e)||(0,Ot.C)(e)?e:yo(so(e))}class xo extends po{constructor(e,t=new bt(0)){super(e,yo(t))}static calcLength(e){const t=At(e);return t.lte(ho)?1:t.lt(bo)?2:t.lt(mo)?4:8}static readLength(e){const t=e[0];return 252===t?[1,2]:253===t?[1,4]:254===t?[1,8]:[0,1]}static writeLength(e){switch(e.length){case 2:return new Uint8Array([252]);case 4:return new Uint8Array([253]);case 8:return new Uint8Array([254]);default:return new Uint8Array([])}}eq(e){return(0,Sn.H)(e)||(0,Zt.h)(e)?super.eq(e):super.eq(this.registry.createTypeUnsafe("AccountIndex",[e]))}toHuman(){return this.toJSON()}toJSON(){return this.toString()}toPrimitive(){return this.toJSON()}toString(){const e=xo.calcLength(this);return oo(this.toU8a().subarray(0,e),this.registry.chainSS58)}toRawType(){return"AccountIndex"}}class go extends xn{constructor(e,t){super(e,{header:"Header",extrinsics:"Vec"},t)}get contentHash(){return this.registry.hash(this.toU8a())}get extrinsics(){return this.getT("extrinsics")}get hash(){return this.header.hash}get header(){return this.getT("header")}}function vo(e,t){return t.fields.reduce(((t,{name:n,type:r},a)=>(t[n.unwrapOr(`param${a}`).toString()]=e.createLookupType(r),t)),{})}function wo(e,t=new Uint8Array,n){if((0,gt.U)(t)||(0,it.vq)(t))return function(e,t,n){const r=e.firstCallIndex.slice();r.set(t.subarray(0,2),0);const a=n||e.findMetaCall(r).meta;return{args:t.subarray(2),argsDef:vo(e,a),callIndex:r,meta:a}}(e,(0,N.Y)(t),n);if((0,et.K)(t)&&t.callIndex&&t.args)return function(e,t,n){const{args:r,callIndex:a}=t,i=a instanceof So?a.toU8a():a,s=n||e.findMetaCall(i).meta;return{args:r,argsDef:vo(e,s),callIndex:a,meta:s}}(e,t,n);throw new Error(`Call: Cannot decode value '${t}' of type ${typeof t}`)}class So extends vr{constructor(e,t){super(e,t,16)}toPrimitive(){return this.toHex()}}class ko extends xn{_meta;constructor(e,t,n){const r=wo(e,t,n);try{super(e,{callIndex:So,args:xn.with(r.argsDef)},r)}catch(a){let t="unknown.unknown";try{const n=e.findMetaCall(r.callIndex);t=`${n.section}.${n.method}`}catch{}throw new Error(`Call: failed decoding ${t}:: ${a.message}`)}this._meta=r.meta}get args(){return[...this.getT("args").values()]}get argsDef(){return vo(this.registry,this.meta)}get argsEntries(){return[...this.getT("args").entries()]}get callIndex(){return this.getT("callIndex").toU8a()}get data(){return this.getT("args").toU8a()}get meta(){return this._meta}get method(){return this.registry.findMetaCall(this.callIndex).method}get section(){return this.registry.findMetaCall(this.callIndex).section}is(e){return e.callIndex[0]===this.callIndex[0]&&e.callIndex[1]===this.callIndex[1]}toHuman(e,t){let n;try{n=this.registry.findMetaCall(this.callIndex)}catch{}return(0,_.Z)({args:this.argsEntries.reduce(((n,[r,a])=>(0,_.Z)(n,{[r]:a.toHuman(e,t)})),{}),method:n?.method,section:n?.section},e&&n?{docs:n.meta.docs.map((e=>e.toString()))}:null)}toRawType(){return"Call"}}function To(e,t,n,r=!0){return n&&(0,Je.m)(n.unwrapOrDefault)?n:e.createTypeUnsafe(t,[r?(0,an.F)(n)||(0,$e.o)(n)?null:Array.isArray(n)?n:[n]:n])}function Po(e,t){return(t&&(0,Je.m)(t.entries)?[...t.entries()]:Object.entries(t||{})).reduce(((t,[n,r])=>(t[n]=function(e,t,n){return"ss58Format"===t?To(e,"Option",n,!1):"tokenDecimals"===t?To(e,"Option>",n):"tokenSymbol"===t?To(e,"Option>",n):"isEthereum"===t?To(e,"Bool",n,!1):n}(e,n,r),t)),{isEthereum:e.createTypeUnsafe("Bool",[]),ss58Format:e.createTypeUnsafe("Option",[]),tokenDecimals:e.createTypeUnsafe("Option>",[]),tokenSymbol:e.createTypeUnsafe("Option>",[])})}class Vo extends at{constructor(e,t){super(e,Po(e,t))}get isEthereum(){return this.getT("isEthereum")}get ss58Format(){return this.getT("ss58Format")}get tokenDecimals(){return this.getT("tokenDecimals")}get tokenSymbol(){return this.getT("tokenSymbol")}}const Mo=(0,Fa.d)("aura"),_o=(0,Fa.d)("BABE"),Io=(0,Fa.d)("FRNK"),Oo=(0,Fa.d)("pow_"),No=(0,Fa.d)("nmbs");class Eo extends vr{constructor(e,t){super(e,(0,Zt.h)(t)?Rt(t,{isLe:!1}):t,32)}get isAura(){return this.eq(Mo)}get isBabe(){return this.eq(_o)}get isGrandpa(){return this.eq(Io)}get isPow(){return this.eq(Oo)}get isNimbus(){return this.eq(No)}extractAuthor(e,t){if(t?.length){if(this.isAura)return function(e,t,n){return n[e.createTypeUnsafe("RawAuraPreDigest",[t.toU8a(!0)]).slotNumber.mod(new bt(n.length)).toNumber()]}(this.registry,e,t);if(this.isBabe)return function(e,t,n){return n[e.createTypeUnsafe("RawBabePreDigestCompat",[t.toU8a(!0)]).value.toNumber()]}(this.registry,e,t)}if(this.isPow||this.isNimbus)return function(e,t){return e.createTypeUnsafe("AccountId",[t])}(this.registry,e)}toHuman(){return this.toString()}toRawType(){return"ConsensusEngineId"}toString(){return this.isAscii?lt(this):(0,O.c)(this)}}const Co=new Uint8Array([255]);function Ao(e,t){return t instanceof Ho?t.inner:t instanceof lo||t instanceof xo?t:(0,Sn.H)(t)||(0,Zt.h)(t)||(0,Ot.C)(t)?e.createTypeUnsafe("AccountIndex",[t]):Array.isArray(t)||(0,it.vq)(t)||(0,gt.U)(t)?function(e,t){if(32===t.length)return e.createTypeUnsafe("AccountId",[t]);if(255===t[0])return e.createTypeUnsafe("AccountId",[t.subarray(1)]);const[n,r]=xo.readLength(t);return e.createTypeUnsafe("AccountIndex",[mt(t.subarray(n,n+r))])}(e,(0,N.Y)(t)):function(e,t){const n=so(t);return 32===n.length?e.createTypeUnsafe("AccountId",[n]):e.createTypeUnsafe("AccountIndex",[mt(n)])}(e,t)}class Ho extends Wi{constructor(e,t=new Uint8Array){super(e,Ao(e,t))}get encodedLength(){const e=this._rawLength;return e+(e>1?1:0)}get _rawLength(){return this.inner instanceof xo?xo.calcLength(this.inner):this.inner.encodedLength}inspect(){const e=this.inner.toU8a().subarray(0,this._rawLength);return{outer:[new Uint8Array(this.inner instanceof xo?xo.writeLength(e):Co),e]}}toHex(){return(0,O.c)(this.toU8a())}toRawType(){return"Address"}toU8a(e){const t=this.inner.toU8a().subarray(0,this._rawLength);return e?t:Bt(this.inner instanceof xo?xo.writeLength(t):Co,t)}}function Ro(e,t){return[0,32].includes(t.length)?{Id:t}:20===t.length?{Address20:t}:t.length<=8?{Index:e.createTypeUnsafe("AccountIndex",[t]).toNumber()}:t}class Bo extends fn{constructor(e,t){super(e,{Id:"AccountId",Index:"Compact",Raw:"Bytes",Address32:"H256",Address20:"H160"},function(e,t){return t instanceof lo?{Id:t}:(0,gt.U)(t)?Ro(e,t):t instanceof Bo?t:t instanceof xo||(0,Sn.H)(t)||(0,Zt.h)(t)?{Index:(0,Zt.h)(t)?t:t.toNumber()}:(0,I.H)(t)?Ro(e,so(t.toString())):t}(e,t))}inspect(){const{inner:e,outer:t=[]}=this.inner.inspect();return{inner:e,outer:[new Uint8Array([this.index]),...t]}}toString(){return this.value.toString()}}class Lo extends Boolean{registry;createdAtHash;initialU8aLength=1;isStorageFallback;constructor(e,t=!1){super((0,gt.U)(t)?1===t[0]:t instanceof Boolean?t.valueOf():!!t),this.registry=e}get encodedLength(){return 1}get hash(){return this.registry.hash(this.toU8a())}get isEmpty(){return this.isFalse}get isFalse(){return!this.isTrue}get isTrue(){return this.valueOf()}eq(e){return this.valueOf()===(e instanceof Boolean?e.valueOf():e)}inspect(){return{outer:[this.toU8a()]}}toHex(){return(0,O.c)(this.toU8a())}toHuman(){return this.toJSON()}toJSON(){return this.valueOf()}toPrimitive(){return this.toJSON()}toRawType(){return"bool"}toString(){return this.toJSON().toString()}toU8a(e){return new Uint8Array([this.valueOf()?1:0])}}const Uo=128,zo=0,Do=0;function qo(e){return e?new Uint8Array([Uo|Do]):new Uint8Array([zo])}function jo(e,t){return(0,gt.U)(t)?function(e){return e.length?e.subarray(0,1):new Uint8Array([zo])}(t):(0,$e.o)(t)||t instanceof Boolean||pn(t)?qo(new Lo(e,t).isTrue):(0,Zt.h)(t)?qo(t<0):function(e,t){return new Uint8Array([(new Lo(e,t.aye).isTrue?Uo:zo)|e.createTypeUnsafe("Conviction",[t.conviction||Do]).index])}(e,t)}class Fo extends vr{__internal__aye;__internal__conviction;constructor(e,t){const n=jo(e,t);super(e,n,8),this.__internal__aye=(n[0]&Uo)===Uo,this.__internal__conviction=this.registry.createTypeUnsafe("Conviction",[127&n[0]])}get conviction(){return this.__internal__conviction}get isAye(){return this.__internal__aye}get isNay(){return!this.isAye}toHuman(e){return{conviction:this.conviction.toHuman(e),vote:this.isAye?"Aye":"Nay"}}toPrimitive(){return{aye:this.isAye,conviction:this.conviction.toPrimitive()}}toRawType(){return"Vote"}}const[Xo,Wo,Zo]=[[],[],[]],Go=BigInt(0),Ko=BigInt(1),Yo=BigInt(2),Jo=BigInt(7),Qo=BigInt(256),$o=BigInt(113);for(let $w=0,eS=Ko,tS=1,nS=0;$w<24;$w++){[tS,nS]=[nS,(2*tS+3*nS)%5],Xo.push(2*(5*nS+tS)),Wo.push(($w+1)*($w+2)/2%64);let e=Go;for(let t=0;t<7;t++)eS=(eS<>Jo)*$o)%Qo,eS&Yo&&(e^=Ko<<(Ko<n>32?Ca(e,t,n):Na(e,t,n),rc=(e,t,n)=>n>32?Aa(e,t,n):Ea(e,t,n);class ac extends wa{constructor(e,t,n,r=!1,a=24){if(super(),this.blockLen=e,this.suffix=t,this.outputLen=n,this.enableXOF=r,this.rounds=a,this.pos=0,this.posOut=0,this.finished=!1,this.destroyed=!1,ua(n),0>=this.blockLen||this.blockLen>=200)throw new Error("Sha3 supports only keccak-f1600 function");this.state=new Uint8Array(200),this.state32=ma(this.state)}keccak(){!function(e,t=24){const n=new Uint32Array(10);for(let r=24-t;r<24;r++){for(let r=0;r<10;r++)n[r]=e[r]^e[r+10]^e[r+20]^e[r+30]^e[r+40];for(let r=0;r<10;r+=2){const t=(r+8)%10,a=(r+2)%10,i=n[a],s=n[a+1],o=nc(i,s,1)^n[t],c=rc(i,s,1)^n[t+1];for(let n=0;n<50;n+=10)e[r+n]^=o,e[r+n+1]^=c}let t=e[2],a=e[3];for(let n=0;n<24;n++){const r=Wo[n],i=nc(t,a,r),s=rc(t,a,r),o=Xo[n];t=e[o],a=e[o+1],e[o]=i,e[o+1]=s}for(let r=0;r<50;r+=10){for(let t=0;t<10;t++)n[t]=e[r+t];for(let t=0;t<10;t++)e[r+t]^=~n[(t+2)%10]&n[(t+4)%10]}e[0]^=ec[r],e[1]^=tc[r]}n.fill(0)}(this.state32,this.rounds),this.posOut=0,this.pos=0}update(e){pa(this);const{blockLen:t,state:n}=this,r=(e=va(e)).length;for(let a=0;a=n&&this.keccak();const i=Math.min(n-this.posOut,a-r);e.set(t.subarray(this.posOut,this.posOut+i),r),this.posOut+=i,r+=i}return e}xofInto(e){if(!this.enableXOF)throw new Error("XOF is not possible for this instance");return this.writeInto(e)}xof(e){return ua(e),this.xofInto(new Uint8Array(e))}digestInto(e){if(ha(e,this),this.finished)throw new Error("digest() was already called");return this.writeInto(e),this.destroy(),e}digest(){return this.digestInto(new Uint8Array(this.outputLen))}destroy(){this.destroyed=!0,this.state.fill(0)}_cloneInto(e){const{blockLen:t,suffix:n,outputLen:r,rounds:a,enableXOF:i}=this;return e||(e=new ac(t,n,r,i,a)),e.state32.set(this.state32),e.pos=this.pos,e.posOut=this.posOut,e.finished=this.finished,e.rounds=a,e.suffix=n,e.outputLen=r,e.enableXOF=i,e.destroyed=this.destroyed,e}}const ic=(e,t,n)=>Sa((()=>new ac(t,e,n))),sc=Ei({256:Vi,512:Mi},{256:ic(1,136,32),512:ic(1,72,64)});function oc(e){return!(!e||42!==e.length||!(0,it.vq)(e))&&(!(!/^(0x)?[0-9a-f]{40}$/.test(e)&&!/^(0x)?[0-9A-F]{40}$/.test(e))||function(e){const t=e.replace("0x",""),n=(0,O.c)(sc(t.toLowerCase()),-1,!1);for(let i=0;i<40;i++)if(r=t[i],a=parseInt(n[i],16),r!==(a>7?r.toUpperCase():r.toLowerCase()))return!1;var r,a;return!0}(e))}class cc extends wa{constructor(e,t,n,r){super(),this.blockLen=e,this.outputLen=t,this.padOffset=n,this.isLE=r,this.finished=!1,this.length=0,this.pos=0,this.destroyed=!1,this.buffer=new Uint8Array(e),this.view=xa(this.buffer)}update(e){pa(this);const{view:t,buffer:n,blockLen:r}=this,a=(e=va(e)).length;for(let i=0;ir-i&&(this.process(n,0),i=0);for(let u=i;u>a&i),o=Number(n&i),c=r?4:0,d=r?0:4;e.setUint32(t+c,s,r),e.setUint32(t+d,o,r)}(n,r-8,BigInt(8*this.length),a),this.process(n,0);const s=xa(e),o=this.outputLen;if(o%4)throw new Error("_sha2: outputLen should be aligned to 32bit");const c=o/4,d=this.get();if(c>d.length)throw new Error("_sha2: outputLen bigger than state");for(let u=0;ue&t^e&n^t&n,uc=new Uint32Array([1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298]),lc=new Uint32Array([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]),fc=new Uint32Array(64);class pc extends cc{constructor(){super(64,32,8,!1),this.A=0|lc[0],this.B=0|lc[1],this.C=0|lc[2],this.D=0|lc[3],this.E=0|lc[4],this.F=0|lc[5],this.G=0|lc[6],this.H=0|lc[7]}get(){const{A:e,B:t,C:n,D:r,E:a,F:i,G:s,H:o}=this;return[e,t,n,r,a,i,s,o]}set(e,t,n,r,a,i,s,o){this.A=0|e,this.B=0|t,this.C=0|n,this.D=0|r,this.E=0|a,this.F=0|i,this.G=0|s,this.H=0|o}process(e,t){for(let l=0;l<16;l++,t+=4)fc[l]=e.getUint32(t,!1);for(let l=16;l<64;l++){const e=fc[l-15],t=fc[l-2],n=ga(e,7)^ga(e,18)^e>>>3,r=ga(t,17)^ga(t,19)^t>>>10;fc[l]=r+fc[l-7]+n+fc[l-16]|0}let{A:n,B:r,C:a,D:i,E:s,F:o,G:c,H:d}=this;for(let l=0;l<64;l++){const e=d+(ga(s,6)^ga(s,11)^ga(s,25))+((u=s)&o^~u&c)+uc[l]+fc[l]|0,t=(ga(n,2)^ga(n,13)^ga(n,22))+dc(n,r,a)|0;d=c,c=o,o=s,s=i+e|0,i=a,a=r,r=n,n=e+t|0}var u;n=n+this.A|0,r=r+this.B|0,a=a+this.C|0,i=i+this.D|0,s=s+this.E|0,o=o+this.F|0,c=c+this.G|0,d=d+this.H|0,this.set(n,r,a,i,s,o,c,d)}roundClean(){fc.fill(0)}destroy(){this.set(0,0,0,0,0,0,0,0),this.buffer.fill(0)}}const hc=Sa((()=>new pc)),bc=(BigInt(0),BigInt(1)),mc=BigInt(2);function yc(e){return e instanceof Uint8Array||null!=e&&"object"==typeof e&&"Uint8Array"===e.constructor.name}const xc=Array.from({length:256},((e,t)=>t.toString(16).padStart(2,"0")));function gc(e){if(!yc(e))throw new Error("Uint8Array expected");let t="";for(let n=0;n=wc._0&&e<=wc._9?e-wc._0:e>=wc._A&&e<=wc._F?e-(wc._A-10):e>=wc._a&&e<=wc._f?e-(wc._a-10):void 0}function kc(e){if("string"!=typeof e)throw new Error("hex string expected, got "+typeof e);const t=e.length,n=t/2;if(t%2)throw new Error("padded hex string expected, got unpadded hex of length "+t);const r=new Uint8Array(n);for(let a=0,i=0;a(mc<new Uint8Array(e),Ec=e=>Uint8Array.from(e);function Cc(e,t,n){if("number"!=typeof e||e<2)throw new Error("hashLen must be a number");if("number"!=typeof t||t<2)throw new Error("qByteLen must be a number");if("function"!=typeof n)throw new Error("hmacFn must be a function");let r=Nc(e),a=Nc(e),i=0;const s=()=>{r.fill(1),a.fill(0),i=0},o=(...e)=>n(a,r,...e),c=(e=Nc())=>{a=o(Ec([0]),e),r=o(),0!==e.length&&(a=o(Ec([1]),e),r=o())},d=()=>{if(i++>=1e3)throw new Error("drbg: tried 1000 values");let e=0;const n=[];for(;e{let n;for(s(),c(e);!(n=t(d()));)c();return s(),n}}const Ac={bigint:e=>"bigint"==typeof e,function:e=>"function"==typeof e,boolean:e=>"boolean"==typeof e,string:e=>"string"==typeof e,stringOrUint8Array:e=>"string"==typeof e||yc(e),isSafeInteger:e=>Number.isSafeInteger(e),array:e=>Array.isArray(e),field:(e,t)=>t.Fp.isValid(e),hash:e=>"function"==typeof e&&Number.isSafeInteger(e.outputLen)};function Hc(e,t,n={}){const r=(t,n,r)=>{const a=Ac[n];if("function"!=typeof a)throw new Error(`Invalid validator "${n}", expected function`);const i=e[t];if(!(r&&void 0===i||a(i,e)))throw new Error(`Invalid param ${String(t)}=${i} (${typeof i}), expected ${n}`)};for(const[a,i]of Object.entries(t))r(a,i,!1);for(const[a,i]of Object.entries(n))r(a,i,!0);return e}const Rc=BigInt(0),Bc=BigInt(1),Lc=BigInt(2),Uc=BigInt(3),zc=BigInt(4),Dc=BigInt(5),qc=BigInt(8);BigInt(9),BigInt(16);function jc(e,t){const n=e%t;return n>=Rc?n:t+n}function Fc(e,t,n){if(n<=Rc||t 0");if(n===Bc)return Rc;let r=Bc;for(;t>Rc;)t&Bc&&(r=r*e%n),e=e*e%n,t>>=Bc;return r}function Xc(e,t,n){let r=e;for(;t-- >Rc;)r*=r,r%=n;return r}function Wc(e,t){if(e===Rc||t<=Rc)throw new Error(`invert: expected positive integers, got n=${e} mod=${t}`);let n=jc(e,t),r=t,a=Rc,i=Bc,s=Bc,o=Rc;for(;n!==Rc;){const e=r/n,t=r%n,c=a-s*e,d=i-o*e;r=n,n=t,a=s,i=o,s=c,o=d}if(r!==Bc)throw new Error("invert: does not exist");return jc(a,t)}function Zc(e){if(e%zc===Uc){const t=(e+Bc)/zc;return function(e,n){const r=e.pow(n,t);if(!e.eql(e.sqr(r),n))throw new Error("Cannot find square root");return r}}if(e%qc===Dc){const t=(e-Dc)/qc;return function(e,n){const r=e.mul(n,Lc),a=e.pow(r,t),i=e.mul(n,a),s=e.mul(e.mul(i,Lc),a),o=e.mul(i,e.sub(s,e.ONE));if(!e.eql(e.sqr(o),n))throw new Error("Cannot find square root");return o}}return function(e){const t=(e-Bc)/Lc;let n,r,a;for(n=e-Bc,r=0;n%Lc===Rc;n/=Lc,r++);for(a=Lc;ar?e.create().update(n).digest():n);for(let i=0;inew Qc(e,t).update(n).digest();$c.create=(e,t)=>new Qc(e,t);const ed=BigInt(0),td=BigInt(1);function nd(e){return function(e){const t=Gc.reduce(((e,t)=>(e[t]="function",e)),{ORDER:"bigint",MASK:"bigint",BYTES:"isSafeInteger",BITS:"isSafeInteger"});Hc(e,t)}(e.Fp),Hc(e,{n:"bigint",h:"bigint",Gx:"field",Gy:"field"},{nBitLength:"isSafeInteger",nByteLength:"isSafeInteger"}),Object.freeze({...Kc(e.n,e.nBitLength),...e,p:e.Fp.ORDER})}const{bytesToNumberBE:rd,hexToBytes:ad}=r,id={Err:class extends Error{constructor(e=""){super(e)}},_parseInt(e){const{Err:t}=id;if(e.length<2||2!==e[0])throw new t("Invalid signature integer tag");const n=e[1],r=e.subarray(2,n+2);if(!n||r.length!==n)throw new t("Invalid signature integer: wrong length");if(128&r[0])throw new t("Invalid signature integer: negative");if(0===r[0]&&!(128&r[1]))throw new t("Invalid signature integer: unnecessary leading zero");return{d:rd(r),l:e.subarray(n+2)}},toSig(e){const{Err:t}=id,n="string"==typeof e?ad(e):e;if(!yc(n))throw new Error("ui8a expected");let r=n.length;if(r<2||48!=n[0])throw new t("Invalid signature tag");if(n[1]!==r-2)throw new t("Invalid signature: incorrect length");const{d:a,l:i}=id._parseInt(n.subarray(2)),{d:s,l:o}=id._parseInt(i);if(o.length)throw new t("Invalid signature: left bytes after parsing");return{r:a,s:s}},hexFromSig(e){const t=e=>8&Number.parseInt(e[0],16)?"00"+e:e,n=e=>{const t=e.toString(16);return 1&t.length?`0${t}`:t},r=t(n(e.s)),a=t(n(e.r)),i=r.length/2,s=a.length/2,o=n(i),c=n(s);return`30${n(s+i+4)}02${c}${a}02${o}${r}`}},sd=BigInt(0),od=BigInt(1),cd=(BigInt(2),BigInt(3));BigInt(4);function dd(e){const t=function(e){const t=nd(e);Hc(t,{a:"field",b:"field"},{allowedPrivateKeyLengths:"array",wrapPrivateKey:"boolean",isTorsionFree:"function",clearCofactor:"function",allowInfinityPoint:"boolean",fromBytes:"function",toBytes:"function"});const{endo:n,Fp:r,a:a}=t;if(n){if(!r.eql(a,r.ZERO))throw new Error("Endomorphism can only be defined for Koblitz curves that have a=0");if("object"!=typeof n||"bigint"!=typeof n.beta||"function"!=typeof n.splitScalar)throw new Error("Expected endomorphism with beta: bigint and splitScalar: function")}return Object.freeze({...t})}(e),{Fp:n}=t,r=t.toBytes||((e,t,r)=>{const a=t.toAffine();return Ic(Uint8Array.from([4]),n.toBytes(a.x),n.toBytes(a.y))}),a=t.fromBytes||(e=>{const t=e.subarray(1);return{x:n.fromBytes(t.subarray(0,n.BYTES)),y:n.fromBytes(t.subarray(n.BYTES,2*n.BYTES))}});function i(e){const{a:r,b:a}=t,i=n.sqr(e),s=n.mul(i,e);return n.add(n.add(s,n.mul(e,r)),a)}if(!n.eql(n.sqr(t.Gy),i(t.Gx)))throw new Error("bad generator point: equation left != right");function s(e){return"bigint"==typeof e&&sdn.eql(e,n.ZERO);return a(t)&&a(r)?l.ZERO:new l(t,r,n.ONE)}get x(){return this.toAffine().x}get y(){return this.toAffine().y}static normalizeZ(e){const t=n.invertBatch(e.map((e=>e.pz)));return e.map(((e,n)=>e.toAffine(t[n]))).map(l.fromAffine)}static fromHex(e){const t=l.fromAffine(a(_c("pointHex",e)));return t.assertValidity(),t}static fromPrivateKey(e){return l.BASE.multiply(c(e))}_setWindowSize(e){this._WINDOW_SIZE=e,d.delete(this)}assertValidity(){if(this.is0()){if(t.allowInfinityPoint&&!n.is0(this.py))return;throw new Error("bad point: ZERO")}const{x:e,y:r}=this.toAffine();if(!n.isValid(e)||!n.isValid(r))throw new Error("bad point: x or y not FE");const a=n.sqr(r),s=i(e);if(!n.eql(a,s))throw new Error("bad point: equation left != right");if(!this.isTorsionFree())throw new Error("bad point: not in prime-order subgroup")}hasEvenY(){const{y:e}=this.toAffine();if(n.isOdd)return!n.isOdd(e);throw new Error("Field doesn't support isOdd")}equals(e){u(e);const{px:t,py:r,pz:a}=this,{px:i,py:s,pz:o}=e,c=n.eql(n.mul(t,o),n.mul(i,a)),d=n.eql(n.mul(r,o),n.mul(s,a));return c&&d}negate(){return new l(this.px,n.neg(this.py),this.pz)}double(){const{a:e,b:r}=t,a=n.mul(r,cd),{px:i,py:s,pz:o}=this;let c=n.ZERO,d=n.ZERO,u=n.ZERO,f=n.mul(i,i),p=n.mul(s,s),h=n.mul(o,o),b=n.mul(i,s);return b=n.add(b,b),u=n.mul(i,o),u=n.add(u,u),c=n.mul(e,u),d=n.mul(a,h),d=n.add(c,d),c=n.sub(p,d),d=n.add(p,d),d=n.mul(c,d),c=n.mul(b,c),u=n.mul(a,u),h=n.mul(e,h),b=n.sub(f,h),b=n.mul(e,b),b=n.add(b,u),u=n.add(f,f),f=n.add(u,f),f=n.add(f,h),f=n.mul(f,b),d=n.add(d,f),h=n.mul(s,o),h=n.add(h,h),f=n.mul(h,b),c=n.sub(c,f),u=n.mul(h,p),u=n.add(u,u),u=n.add(u,u),new l(c,d,u)}add(e){u(e);const{px:r,py:a,pz:i}=this,{px:s,py:o,pz:c}=e;let d=n.ZERO,f=n.ZERO,p=n.ZERO;const h=t.a,b=n.mul(t.b,cd);let m=n.mul(r,s),y=n.mul(a,o),x=n.mul(i,c),g=n.add(r,a),v=n.add(s,o);g=n.mul(g,v),v=n.add(m,y),g=n.sub(g,v),v=n.add(r,i);let w=n.add(s,c);return v=n.mul(v,w),w=n.add(m,x),v=n.sub(v,w),w=n.add(a,i),d=n.add(o,c),w=n.mul(w,d),d=n.add(y,x),w=n.sub(w,d),p=n.mul(h,v),d=n.mul(b,x),p=n.add(d,p),d=n.sub(y,p),p=n.add(y,p),f=n.mul(d,p),y=n.add(m,m),y=n.add(y,m),x=n.mul(h,x),v=n.mul(b,v),y=n.add(y,x),x=n.sub(m,x),x=n.mul(h,x),v=n.add(v,x),m=n.mul(y,v),f=n.add(f,m),m=n.mul(w,v),d=n.mul(g,d),d=n.sub(d,m),m=n.mul(g,y),p=n.mul(w,p),p=n.add(p,m),new l(d,f,p)}subtract(e){return this.add(e.negate())}is0(){return this.equals(l.ZERO)}wNAF(e){return p.wNAFCached(this,d,e,(e=>{const t=n.invertBatch(e.map((e=>e.pz)));return e.map(((e,n)=>e.toAffine(t[n]))).map(l.fromAffine)}))}multiplyUnsafe(e){const r=l.ZERO;if(e===sd)return r;if(o(e),e===od)return this;const{endo:a}=t;if(!a)return p.unsafeLadder(this,e);let{k1neg:i,k1:s,k2neg:c,k2:d}=a.splitScalar(e),u=r,f=r,h=this;for(;s>sd||d>sd;)s&od&&(u=u.add(h)),d&od&&(f=f.add(h)),h=h.double(),s>>=od,d>>=od;return i&&(u=u.negate()),c&&(f=f.negate()),f=new l(n.mul(f.px,a.beta),f.py,f.pz),u.add(f)}multiply(e){o(e);let r,a,i=e;const{endo:s}=t;if(s){const{k1neg:e,k1:t,k2neg:o,k2:c}=s.splitScalar(i);let{p:d,f:u}=this.wNAF(t),{p:f,f:h}=this.wNAF(c);d=p.constTimeNegate(e,d),f=p.constTimeNegate(o,f),f=new l(n.mul(f.px,s.beta),f.py,f.pz),r=d.add(f),a=u.add(h)}else{const{p:e,f:t}=this.wNAF(i);r=e,a=t}return l.normalizeZ([r,a])[0]}multiplyAndAddUnsafe(e,t,n){const r=l.BASE,a=(e,t)=>t!==sd&&t!==od&&e.equals(r)?e.multiply(t):e.multiplyUnsafe(t),i=a(this,t).add(a(e,n));return i.is0()?void 0:i}toAffine(e){const{px:t,py:r,pz:a}=this,i=this.is0();null==e&&(e=i?n.ONE:n.inv(a));const s=n.mul(t,e),o=n.mul(r,e),c=n.mul(a,e);if(i)return{x:n.ZERO,y:n.ZERO};if(!n.eql(c,n.ONE))throw new Error("invZ was invalid");return{x:s,y:o}}isTorsionFree(){const{h:e,isTorsionFree:n}=t;if(e===od)return!0;if(n)return n(l,this);throw new Error("isTorsionFree() has not been declared for the elliptic curve")}clearCofactor(){const{h:e,clearCofactor:n}=t;return e===od?this:n?n(l,this):this.multiplyUnsafe(t.h)}toRawBytes(e=!0){return this.assertValidity(),r(l,this,e)}toHex(e=!0){return gc(this.toRawBytes(e))}}l.BASE=new l(t.Gx,t.Gy,n.ONE),l.ZERO=new l(n.ZERO,n.ONE,n.ZERO);const f=t.nBitLength,p=function(e,t){const n=(e,t)=>{const n=t.negate();return e?n:t},r=e=>({windows:Math.ceil(t/e)+1,windowSize:2**(e-1)});return{constTimeNegate:n,unsafeLadder(t,n){let r=e.ZERO,a=t;for(;n>ed;)n&td&&(r=r.add(a)),a=a.double(),n>>=td;return r},precomputeWindow(e,t){const{windows:n,windowSize:a}=r(t),i=[];let s=e,o=s;for(let r=0;r>=f,r>o&&(r-=l,i+=td);const s=t,p=t+Math.abs(r)-1,h=e%2!=0,b=r<0;0===r?d=d.add(n(h,a[s])):c=c.add(n(b,a[p]))}return{p:c,f:d}},wNAFCached(e,t,n,r){const a=e._WINDOW_SIZE||1;let i=t.get(e);return i||(i=this.precomputeWindow(e,a),1!==a&&t.set(e,r(i))),this.wNAF(a,i,n)}}}(l,t.endo?Math.ceil(f/2):f);return{CURVE:t,ProjectivePoint:l,normPrivateKeyToScalar:c,weierstrassEquation:i,isWithinCurveOrder:s}}function ud(e){const t=function(e){const t=nd(e);return Hc(t,{hash:"hash",hmac:"function",randomBytes:"function"},{bits2int:"function",bits2int_modN:"function",lowS:"boolean"}),Object.freeze({lowS:!0,...t})}(e),{Fp:n,n:r}=t,a=n.BYTES+1,i=2*n.BYTES+1;function s(e){return jc(e,r)}function o(e){return Wc(e,r)}const{ProjectivePoint:c,normPrivateKeyToScalar:d,weierstrassEquation:u,isWithinCurveOrder:l}=dd({...t,toBytes(e,t,r){const a=t.toAffine(),i=n.toBytes(a.x),s=Ic;return r?s(Uint8Array.from([t.hasEvenY()?2:3]),i):s(Uint8Array.from([4]),i,n.toBytes(a.y))},fromBytes(e){const t=e.length,r=e[0],s=e.subarray(1);if(t!==a||2!==r&&3!==r){if(t===i&&4===r){return{x:n.fromBytes(s.subarray(0,n.BYTES)),y:n.fromBytes(s.subarray(n.BYTES,2*n.BYTES))}}throw new Error(`Point of length ${t} was invalid. Expected ${a} compressed bytes or ${i} uncompressed bytes`)}{const e=Tc(s);if(!(sd<(o=e)&&ogc(Vc(e,t.nByteLength));function p(e){return e>r>>od}const h=(e,t,n)=>Tc(e.slice(t,n));class b{constructor(e,t,n){this.r=e,this.s=t,this.recovery=n,this.assertValidity()}static fromCompact(e){const n=t.nByteLength;return e=_c("compactSignature",e,2*n),new b(h(e,0,n),h(e,n,2*n))}static fromDER(e){const{r:t,s:n}=id.toSig(_c("DER",e));return new b(t,n)}assertValidity(){if(!l(this.r))throw new Error("r must be 0 < r < CURVE.n");if(!l(this.s))throw new Error("s must be 0 < s < CURVE.n")}addRecoveryBit(e){return new b(this.r,this.s,e)}recoverPublicKey(e){const{r:r,s:a,recovery:i}=this,d=g(_c("msgHash",e));if(null==i||![0,1,2,3].includes(i))throw new Error("recovery id invalid");const u=2===i||3===i?r+t.n:r;if(u>=n.ORDER)throw new Error("recovery id 2 or 3 invalid");const l=0==(1&i)?"02":"03",p=c.fromHex(l+f(u)),h=o(u),b=s(-d*h),m=s(a*h),y=c.BASE.multiplyAndAddUnsafe(p,b,m);if(!y)throw new Error("point at infinify");return y.assertValidity(),y}hasHighS(){return p(this.s)}normalizeS(){return this.hasHighS()?new b(this.r,s(-this.s),this.recovery):this}toDERRawBytes(){return kc(this.toDERHex())}toDERHex(){return id.hexFromSig({r:this.r,s:this.s})}toCompactRawBytes(){return kc(this.toCompactHex())}toCompactHex(){return f(this.r)+f(this.s)}}const m={isValidPrivateKey(e){try{return d(e),!0}catch(t){return!1}},normPrivateKeyToScalar:d,randomPrivateKey:()=>{const e=Jc(t.n);return function(e,t,n=!1){const r=e.length,a=Yc(t),i=Jc(t);if(r<16||r1024)throw new Error(`expected ${i}-1024 bytes of input, got ${r}`);const s=jc(n?Tc(e):Pc(e),t-Bc)+Bc;return n?Mc(s,a):Vc(s,a)}(t.randomBytes(e),t.n)},precompute:(e=8,t=c.BASE)=>(t._setWindowSize(e),t.multiply(BigInt(3)),t)};function y(e){const t=yc(e),n="string"==typeof e,r=(t||n)&&e.length;return t?r===a||r===i:n?r===2*a||r===2*i:e instanceof c}const x=t.bits2int||function(e){const n=Tc(e),r=8*e.length-t.nBitLength;return r>0?n>>BigInt(r):n},g=t.bits2int_modN||function(e){return s(x(e))},v=Oc(t.nBitLength);function w(e){if("bigint"!=typeof e)throw new Error("bigint expected");if(!(sd<=e&&ee in a)))throw new Error("sign() legacy options not supported");const{hash:i,randomBytes:u}=t;let{lowS:f,prehash:h,extraEntropy:m}=a;null==f&&(f=!0),e=_c("msgHash",e),h&&(e=_c("prehashed msgHash",i(e)));const y=g(e),v=d(r),S=[w(v),w(y)];if(null!=m){const e=!0===m?u(n.BYTES):m;S.push(_c("extraEntropy",e))}const T=Ic(...S),P=y;return{seed:T,k2sig:function(e){const t=x(e);if(!l(t))return;const n=o(t),r=c.BASE.multiply(t).toAffine(),a=s(r.x);if(a===sd)return;const i=s(n*s(P+a*v));if(i===sd)return;let d=(r.x===a?0:2)|Number(r.y&od),u=i;return f&&p(i)&&(u=function(e){return p(e)?s(-e):e}(i),d^=1),new b(a,u,d)}}}const k={lowS:t.lowS,prehash:!1},T={lowS:t.lowS,prehash:!1};return c.BASE._setWindowSize(8),{CURVE:t,getPublicKey:function(e,t=!0){return c.fromPrivateKey(e).toRawBytes(t)},getSharedSecret:function(e,t,n=!0){if(y(e))throw new Error("first arg must be private key");if(!y(t))throw new Error("second arg must be public key");return c.fromHex(t).multiply(d(e)).toRawBytes(n)},sign:function(e,n,r=k){const{seed:a,k2sig:i}=S(e,n,r),s=t;return Cc(s.hash.outputLen,s.nByteLength,s.hmac)(a,i)},verify:function(e,n,r,a=T){const i=e;if(n=_c("msgHash",n),r=_c("publicKey",r),"strict"in a)throw new Error("options.strict was renamed to lowS");const{lowS:d,prehash:u}=a;let l,f;try{if("string"==typeof i||yc(i))try{l=b.fromDER(i)}catch(S){if(!(S instanceof id.Err))throw S;l=b.fromCompact(i)}else{if("object"!=typeof i||"bigint"!=typeof i.r||"bigint"!=typeof i.s)throw new Error("PARSE");{const{r:e,s:t}=i;l=new b(e,t)}}f=c.fromHex(r)}catch(k){if("PARSE"===k.message)throw new Error("signature must be Signature instance, Uint8Array or hex string");return!1}if(d&&l.hasHighS())return!1;u&&(n=t.hash(n));const{r:p,s:h}=l,m=g(n),y=o(h),x=s(m*y),v=s(p*y),w=c.BASE.multiplyAndAddUnsafe(f,x,v)?.toAffine();return!!w&&s(w.x)===p},ProjectivePoint:c,Signature:b,utils:m}}function ld(e){return{hash:e,hmac:(t,...n)=>$c(e,t,function(...e){let t=0;for(let r=0;r(e+t/bd)/t;function yd(e){const t=fd,n=BigInt(3),r=BigInt(6),a=BigInt(11),i=BigInt(22),s=BigInt(23),o=BigInt(44),c=BigInt(88),d=e*e*e%t,u=d*d*e%t,l=Xc(u,n,t)*u%t,f=Xc(l,n,t)*u%t,p=Xc(f,bd,t)*d%t,h=Xc(p,a,t)*p%t,b=Xc(h,i,t)*h%t,m=Xc(b,o,t)*b%t,y=Xc(m,c,t)*m%t,x=Xc(y,o,t)*b%t,g=Xc(x,n,t)*u%t,v=Xc(g,s,t)*h%t,w=Xc(v,r,t)*d%t,S=Xc(w,bd,t);if(!xd.eql(xd.sqr(S),e))throw new Error("Cannot find square root");return S}const xd=function(e,t,n=!1,r={}){if(e<=Rc)throw new Error(`Expected Field ORDER > 0, got ${e}`);const{nBitLength:a,nByteLength:i}=Kc(e,t);if(i>2048)throw new Error("Field lengths over 2048 bytes are not supported");const s=Zc(e),o=Object.freeze({ORDER:e,BITS:a,BYTES:i,MASK:Oc(a),ZERO:Rc,ONE:Bc,create:t=>jc(t,e),isValid:t=>{if("bigint"!=typeof t)throw new Error("Invalid field element: expected bigint, got "+typeof t);return Rc<=t&&te===Rc,isOdd:e=>(e&Bc)===Bc,neg:t=>jc(-t,e),eql:(e,t)=>e===t,sqr:t=>jc(t*t,e),add:(t,n)=>jc(t+n,e),sub:(t,n)=>jc(t-n,e),mul:(t,n)=>jc(t*n,e),pow:(e,t)=>function(e,t,n){if(n 0");if(n===Rc)return e.ONE;if(n===Bc)return t;let r=e.ONE,a=t;for(;n>Rc;)n&Bc&&(r=e.mul(r,a)),a=e.sqr(a),n>>=Bc;return r}(o,e,t),div:(t,n)=>jc(t*Wc(n,e),e),sqrN:e=>e*e,addN:(e,t)=>e+t,subN:(e,t)=>e-t,mulN:(e,t)=>e*t,inv:t=>Wc(t,e),sqrt:r.sqrt||(e=>s(o,e)),invertBatch:e=>function(e,t){const n=new Array(t.length),r=t.reduce(((t,r,a)=>e.is0(r)?t:(n[a]=t,e.mul(t,r))),e.ONE),a=e.inv(r);return t.reduceRight(((t,r,a)=>e.is0(r)?t:(n[a]=e.mul(t,n[a]),e.mul(t,r))),a),n}(o,e),cmov:(e,t,n)=>n?t:e,toBytes:e=>n?Mc(e,i):Vc(e,i),fromBytes:e=>{if(e.length!==i)throw new Error(`Fp.fromBytes: expected ${i}, got ${e.length}`);return n?Pc(e):Tc(e)}});return Object.freeze(o)}(fd,void 0,void 0,{sqrt:yd}),gd=function(e,t){const n=t=>ud({...e,...ld(t)});return Object.freeze({...n(t),create:n})}({a:BigInt(0),b:BigInt(7),Fp:xd,n:pd,Gx:BigInt("55066263022277343669578718895168534326250603453777594175500187360389116729240"),Gy:BigInt("32670510020758816978083085130507043184471273380659243275938904335757337482424"),h:BigInt(1),lowS:!0,endo:{beta:BigInt("0x7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee"),splitScalar:e=>{const t=pd,n=BigInt("0x3086d221a7d46bcde86c90e49284eb15"),r=-hd*BigInt("0xe4437ed6010e88286f547fa90abfe4c3"),a=BigInt("0x114ca50f7a8e2f3f657c1108d9d44cfd8"),i=n,s=BigInt("0x100000000000000000000000000000000"),o=md(i*e,t),c=md(-r*e,t);let d=jc(e-o*n-c*a,t),u=jc(-o*r-c*i,t);const l=d>s,f=u>s;if(l&&(d=t-d),f&&(u=t-u),d>s||u>s)throw new Error("splitScalar: Endomorphism failed, k="+e);return{k1neg:l,k1:d,k2neg:f,k2:u}}}},hc);BigInt(0);gd.ProjectivePoint;const vd={bitLength:256,isLe:!1};function wd(e){return[33,65].includes(e.length)&&(e=sc(function(e,t){if(![33,65].includes(e.length))throw new Error(`Invalid publicKey provided, received ${e.length} bytes input`);if(65===e.length)return e.subarray(1);if(!ja.vc||!t&&Ii())return Ti(e).subarray(1);const{px:n,py:r}=gd.ProjectivePoint.fromHex(e);return Bt(Rt(n,vd),Rt(r,vd))}(e))),e.slice(-20)}function Sd(e){return(0,gt.U)(e)||Array.isArray(e)?(0,N.Y)(e):(0,it.vq)(e)||oc(e.toString())?(0,as.G)(e.toString()):(0,I.H)(e)?(0,N.Y)(e):e}class kd extends vr{constructor(e,t=new Uint8Array){super(e,Sd(t),160)}eq(e){return!!e&&super.eq(Sd(e))}toHuman(){return this.toJSON()}toJSON(){return this.toString()}toPrimitive(){return this.toJSON()}toString(){return function(e){if(!e)return"0x";const t=(0,N.Y)(e);if(![20,32,33,65].includes(t.length))throw new Error(`Invalid address or publicKey provided, received ${t.length} bytes input`);const n=(0,O.c)(wd(t),-1,!1),r=(0,O.c)(sc(n),-1,!1);let a="";for(let i=0;i<40;i++)a=`${a}${parseInt(r[i],16)>7?n[i].toUpperCase():n[i]}`;return`0x${a}`}(this)}toRawType(){return"AccountId"}}const Td=new Uint8Array([255]);function Pd(e,t){return t instanceof Vd?t.inner:t instanceof kd||t instanceof xo?t:(0,gt.U)(t)||Array.isArray(t)||(0,it.vq)(t)?function(e,t){if(20===t.length)return e.createTypeUnsafe("EthereumAccountId",[t]);if(255===t[0])return e.createTypeUnsafe("EthereumAccountId",[t.subarray(1)]);const[n,r]=xo.readLength(t);return e.createTypeUnsafe("AccountIndex",[mt(t.subarray(n,n+r))])}(e,(0,N.Y)(t)):(0,Sn.H)(t)||(0,Zt.h)(t)||(0,Ot.C)(t)?e.createTypeUnsafe("AccountIndex",[t]):function(e,t){const n=so(t);return 20===n.length?e.createTypeUnsafe("EthereumAccountId",[n]):e.createTypeUnsafe("AccountIndex",[mt(n)])}(e,t)}class Vd extends Wi{constructor(e,t=new Uint8Array){super(e,Pd(e,t))}get encodedLength(){const e=this._rawLength;return e+(e>1?1:0)}get _rawLength(){return this.inner instanceof xo?xo.calcLength(this.inner):this.inner.encodedLength}toHex(){return(0,O.c)(this.toU8a())}toRawType(){return"Address"}toU8a(e){const t=this.inner.toU8a().subarray(0,this._rawLength);return e?t:Bt(this.inner instanceof xo?xo.writeLength(t):Td,t)}}function Md(e){if(Array.isArray(e)||(0,I.H)(e)){const t=(0,N.Y)(e);return[t.length/8,t]}return function(e){if(!e?.length)return[0,new Uint8Array];const[t,n]=xt(e),r=t+Math.ceil(n/8);if(r>e.length)throw new Error(`BitVec: required length less than remainder, expected at least ${r}, found ${e.length}`);return[n,e.subarray(t,r)]}(e)}class _d extends ft{__internal__decodedLength;__internal__isMsb;constructor(e,t,n=!1){const[r,a]=Md(t);super(e,a),this.__internal__decodedLength=r,this.__internal__isMsb=n}get encodedLength(){return this.length+Ft(this.__internal__decodedLength).length}inspect(){return{outer:[Ft(this.__internal__decodedLength),super.toU8a()]}}toBoolArray(){const e=[...this.toU8a(!0)].map((e=>[!!(128&e),!!(64&e),!!(32&e),!!(16&e),!!(8&e),!!(4&e),!!(2&e),!!(1&e)])),t=e.length,n=new Array(8*t);for(let r=0;r`00000000${e.toString(2)}`.slice(-8))).map((e=>this.__internal__isMsb?e:e.split("").reverse().join(""))).join("_")}`}toRawType(){return"BitVec"}toU8a(e){const t=super.toU8a(e);return e?t:Lt([Ft(this.__internal__decodedLength),t])}}class Id extends Number{encodedLength;registry;createdAtHash;initialU8aLength;isStorageFallback;__internal__bitLength;constructor(e,t,{bitLength:n=32}={}){super((0,gt.U)(t)||(0,it.vq)(t)?0===t.length?0:function(e,{bitLength:t=32,isLe:n=!0}={}){if(32!==t&&64!==t)throw new Error("Invalid bitLength provided, expected 32 or 64");if(e.length"}toU8a(e){return e?super.toU8a(!0):this.isSome?new Uint8Array([this.isTrue?1:2]):new Uint8Array([0])}}const zd=131072;class Dd extends String{registry;createdAtHash;initialU8aLength;isStorageFallback;__internal__override=null;constructor(e,t){const[n,r]=function(e){if((0,gt.U)(e)){if(!e.length)return["",0];if(e instanceof ft)return[lt(e),0];const[t,n]=xt(e),r=t+n;if(n>zd)throw new Error(`Text: length ${n.toString()} exceeds 131072`);if(r>e.length)throw new Error(`Text: required length less than remainder, expected at least ${r}, found ${e.length}`);return[lt(e.subarray(t,r)),r]}return(0,it.vq)(e)?[lt((0,as.G)(e)),0]:[e?e.toString():"",0]}(t);super(n),this.registry=e,this.initialU8aLength=r}get encodedLength(){return this.toU8a().length}get hash(){return this.registry.hash(this.toU8a())}get isEmpty(){return 0===this.length}get length(){return super.length}eq(e){return!!(0,I.H)(e)&&this.toString()===e.toString()}inspect(){const e=(0,Fa.d)(super.toString());return{outer:e.length?[Ft(e.length),e]:[Ft(e.length)]}}setOverride(e){this.__internal__override=e}toHex(){return(0,O.c)(this.toU8a(!0))}toHuman(){return this.toJSON()}toJSON(){return this.toString()}toPrimitive(){return this.toJSON()}toRawType(){return"Text"}toString(){return this.__internal__override||super.toString()}toU8a(e){const t=(0,Fa.d)(super.toString());return e?t:hr(t)}}class qd extends Dd{constructor(e,t=""){super(e,t),this.setOverride(Hr(this.toString()))}toRawType(){return"Type"}}class jd extends(pr.with(8)){__UIntType="u8"}class Fd extends(pr.with(16)){__UIntType="u16"}class Xd extends(pr.with(128)){__UIntType="u128"}class Wd extends(pr.with(256)){__UIntType="u256"}class Zd extends po{constructor(e,t){throw super(e,t),new Error("The `usize` type should not be used. Since it is platform-specific, it creates incompatibilities between native (generally u64) and WASM (always u32) code. Use one of the `u32` or `u64` types explicitly.")}}function Gd(e,t){return(0,gt.U)(t)||(0,I.H)(t)?function(e,t){const n=t[0];if(!n)return[void 0,void 0];if(n>=1&&n<=33){const r=n-1,a=t.subarray(1,r+1);return[e.createTypeUnsafe("Raw",[a]),1]}if(n>=34&&n<=37)return[t.subarray(1,33),n-32];throw new Error(`Unable to decode Data, invalid indicator byte ${n}`)}(e,(0,N.Y)(t)):t?[t,void 0]:[void 0,void 0]}class Kd extends fn{constructor(e,t){if(super(e,{None:"Null",Raw:"Bytes",BlakeTwo256:"H256",Sha256:"H256",Keccak256:"H256",ShaThree256:"H256"},...Gd(e,t)),this.isRaw&&this.asRaw.length>32)throw new Error("Data.Raw values are limited to a maximum length of 32 bytes")}get asBlakeTwo256(){return this.value}get asKeccak256(){return this.value}get asRaw(){return this.value}get asSha256(){return this.value}get asShaThree256(){return this.value}get isBlakeTwo256(){return 2===this.index}get isKeccak256(){return 4===this.index}get isNone(){return 0===this.index}get isRaw(){return 1===this.index}get isSha256(){return 3===this.index}get isShaThree256(){return 5===this.index}get encodedLength(){return this.toU8a().length}toU8a(){if(0===this.index)return new Uint8Array(1);if(1===this.index){const e=this.value.toU8a(!0),t=Math.min(e.length,32),n=new Uint8Array(t+1);return n.set([t+1],0),n.set(e.subarray(0,t),1),n}const e=new Uint8Array(33);return e.set([this.index+32],0),e.set(this.value.toU8a(),1),e}}function Yd(e,t){const n=e.getTypeDef(t);return n.lookupName||n.type}function Jd(e,t,n){const r=Yd(e.lookup,function(e){return e.isPlain?e.asPlain:e.asMap.value}(t));return n?`Option<${r}>`:r}const Qd={Blake2_128:[16,!1],Blake2_128Concat:[16,!0],Blake2_256:[32,!1],Identity:[0,!0],Twox128:[16,!1],Twox256:[32,!1],Twox64Concat:[8,!0]};function $d(e,t,n){if(!n||!n.type.isMap)return[];const{hashers:r,key:a}=n.type.asMap,i=1===r.length?[a]:e.lookup.getSiType(a).def.asTuple;return function(e,t,n){let r=32;const a=n.length,i=new Array(a);for(let s=0;s[e,i[t]])))}class eu extends mr{__internal__args;__internal__meta;__internal__outputType;__internal__method;__internal__section;constructor(e,t,n={}){const{key:r,method:a,section:i}=function(e){if((0,gt.U)(e)||!e||(0,I.H)(e))return{key:e};if(e instanceof eu)return{key:e,method:e.method,section:e.section};if((0,Je.m)(e))return{key:e(),method:e.method,section:e.section};if(Array.isArray(e)){const[t,n=[]]=e;if(!(0,Je.m)(t))throw new Error("Expected function input for key construction");if(t.meta&&t.meta.type.isMap){const e=t.meta.type.asMap;if(!Array.isArray(n)||n.length!==e.hashers.length)throw new Error(`Expected an array of ${e.hashers.length} values as params to a Map query`)}return{key:t(...n),method:t.method,section:t.section}}throw new Error(`Unable to convert input ${e} to StorageKey`)}(t);super(e,r),this.__internal__outputType=function(e,t){if(t instanceof eu)return t.outputType;if((0,Je.m)(t))return Jd(e,t.meta.type);if(Array.isArray(t)){const[n]=t;if(n.meta)return Jd(e,n.meta.type)}return"Raw"}(e,t),this.setMeta(function(e){if(e instanceof eu)return e.meta;if((0,Je.m)(e))return e.meta;if(Array.isArray(e)){const[t]=e;return t.meta}}(t),n.section||i,n.method||a)}get args(){return this.__internal__args}get meta(){return this.__internal__meta}get method(){return this.__internal__method}get outputType(){return this.__internal__outputType}get section(){return this.__internal__section}is(e){return e.section===this.section&&e.method===this.method}setMeta(e,t,n){this.__internal__meta=e,this.__internal__method=n||this.__internal__method,this.__internal__section=t||this.__internal__section,e&&(this.__internal__outputType=Jd(this.registry,e.type));try{this.__internal__args=$d(this.registry,this.toU8a(!0),e)}catch{}return this}toHuman(e,t){return this.__internal__args.length?this.__internal__args.map((e=>e.toHuman(void 0,t))):super.toHuman(void 0,t)}toRawType(){return"StorageKey"}}const tu={metadata:{description:"Returns the metadata of a runtime",params:[],type:"OpaqueMetadata"}},nu={name:"Text",fields:"Vec",index:"u8",docs:"Vec"},ru={Si1Field:{name:"Option",type:"Si1LookupTypeId",typeName:"Option",docs:"Vec"},Si1LookupTypeId:"Compact",Si1Path:"Si0Path",Si1Type:{path:"Si1Path",params:"Vec",def:"Si1TypeDef",docs:"Vec"},Si1TypeDef:{_enum:{Composite:"Si1TypeDefComposite",Variant:"Si1TypeDefVariant",Sequence:"Si1TypeDefSequence",Array:"Si1TypeDefArray",Tuple:"Si1TypeDefTuple",Primitive:"Si1TypeDefPrimitive",Compact:"Si1TypeDefCompact",BitSequence:"Si1TypeDefBitSequence",HistoricMetaCompat:"Type"}},Si1TypeDefArray:{len:"u32",type:"Si1LookupTypeId"},Si1TypeDefBitSequence:{bitStoreType:"Si1LookupTypeId",bitOrderType:"Si1LookupTypeId"},Si1TypeDefCompact:{type:"Si1LookupTypeId"},Si1TypeDefComposite:{fields:"Vec"},Si1TypeDefPrimitive:"Si0TypeDefPrimitive",Si1TypeDefSequence:{type:"Si1LookupTypeId"},Si1TypeDefTuple:"Vec",Si1TypeParameter:{name:"Text",type:"Option"},Si1TypeDefVariant:{variants:"Vec"},Si1Variant:nu},au={rpc:{},runtime:{Metadata:[{methods:{metadata_at_version:{description:"Returns the metadata at a given version.",params:[{name:"version",type:"u32"}],type:"Option"},metadata_versions:{description:"Returns the supported metadata versions.",params:[],type:"Vec"},...tu},version:2},{methods:{...tu},version:1}]},types:{ErrorMetadataV9:{name:"Text",docs:"Vec"},EventMetadataV9:{name:"Text",args:"Vec",docs:"Vec"},FunctionArgumentMetadataV9:{name:"Text",type:"Type"},FunctionMetadataV9:{name:"Text",args:"Vec",docs:"Vec"},MetadataV9:{modules:"Vec"},ModuleConstantMetadataV9:{name:"Text",type:"Type",value:"Bytes",docs:"Vec"},ModuleMetadataV9:{name:"Text",storage:"Option",calls:"Option>",events:"Option>",constants:"Vec",errors:"Vec"},StorageEntryMetadataV9:{name:"Text",modifier:"StorageEntryModifierV9",type:"StorageEntryTypeV9",fallback:"Bytes",docs:"Vec"},StorageEntryModifierV9:{_enum:["Optional","Default","Required"]},StorageEntryTypeV9:{_enum:{Plain:"Type",Map:{hasher:"StorageHasherV9",key:"Type",value:"Type",linked:"bool"},DoubleMap:{hasher:"StorageHasherV9",key1:"Type",key2:"Type",value:"Type",key2Hasher:"StorageHasherV9"}}},StorageHasherV9:{_enum:{Blake2_128:null,Blake2_256:null,Twox128:null,Twox256:null,Twox64Concat:null}},StorageMetadataV9:{prefix:"Text",items:"Vec"},ErrorMetadataV10:"ErrorMetadataV9",EventMetadataV10:"EventMetadataV9",FunctionArgumentMetadataV10:"FunctionArgumentMetadataV9",FunctionMetadataV10:"FunctionMetadataV9",MetadataV10:{modules:"Vec"},ModuleConstantMetadataV10:"ModuleConstantMetadataV9",ModuleMetadataV10:{name:"Text",storage:"Option",calls:"Option>",events:"Option>",constants:"Vec",errors:"Vec"},StorageEntryModifierV10:"StorageEntryModifierV9",StorageEntryMetadataV10:{name:"Text",modifier:"StorageEntryModifierV10",type:"StorageEntryTypeV10",fallback:"Bytes",docs:"Vec"},StorageEntryTypeV10:{_enum:{Plain:"Type",Map:{hasher:"StorageHasherV10",key:"Type",value:"Type",linked:"bool"},DoubleMap:{hasher:"StorageHasherV10",key1:"Type",key2:"Type",value:"Type",key2Hasher:"StorageHasherV10"}}},StorageMetadataV10:{prefix:"Text",items:"Vec"},StorageHasherV10:{_enum:{Blake2_128:null,Blake2_256:null,Blake2_128Concat:null,Twox128:null,Twox256:null,Twox64Concat:null}},...{ErrorMetadataV11:"ErrorMetadataV10",EventMetadataV11:"EventMetadataV10",ExtrinsicMetadataV11:{version:"u8",signedExtensions:"Vec"},FunctionArgumentMetadataV11:"FunctionArgumentMetadataV10",FunctionMetadataV11:"FunctionMetadataV10",MetadataV11:{modules:"Vec",extrinsic:"ExtrinsicMetadataV11"},ModuleConstantMetadataV11:"ModuleConstantMetadataV10",ModuleMetadataV11:{name:"Text",storage:"Option",calls:"Option>",events:"Option>",constants:"Vec",errors:"Vec"},StorageEntryModifierV11:"StorageEntryModifierV10",StorageEntryMetadataV11:{name:"Text",modifier:"StorageEntryModifierV11",type:"StorageEntryTypeV11",fallback:"Bytes",docs:"Vec"},StorageEntryTypeV11:{_enum:{Plain:"Type",Map:{hasher:"StorageHasherV11",key:"Type",value:"Type",linked:"bool"},DoubleMap:{hasher:"StorageHasherV11",key1:"Type",key2:"Type",value:"Type",key2Hasher:"StorageHasherV11"}}},StorageMetadataV11:{prefix:"Text",items:"Vec"},StorageHasherV11:{_enum:{Blake2_128:null,Blake2_256:null,Blake2_128Concat:null,Twox128:null,Twox256:null,Twox64Concat:null,Identity:null}}},ErrorMetadataV12:"ErrorMetadataV11",EventMetadataV12:"EventMetadataV11",ExtrinsicMetadataV12:"ExtrinsicMetadataV11",FunctionArgumentMetadataV12:"FunctionArgumentMetadataV11",FunctionMetadataV12:"FunctionMetadataV11",MetadataV12:{modules:"Vec",extrinsic:"ExtrinsicMetadataV12"},ModuleConstantMetadataV12:"ModuleConstantMetadataV11",ModuleMetadataV12:{name:"Text",storage:"Option",calls:"Option>",events:"Option>",constants:"Vec",errors:"Vec",index:"u8"},StorageEntryModifierV12:"StorageEntryModifierV11",StorageEntryMetadataV12:"StorageEntryMetadataV11",StorageEntryTypeV12:"StorageEntryTypeV11",StorageMetadataV12:"StorageMetadataV11",StorageHasherV12:"StorageHasherV11",ErrorMetadataV13:"ErrorMetadataV12",EventMetadataV13:"EventMetadataV12",ExtrinsicMetadataV13:"ExtrinsicMetadataV12",FunctionArgumentMetadataV13:"FunctionArgumentMetadataV12",FunctionMetadataV13:"FunctionMetadataV12",MetadataV13:{modules:"Vec",extrinsic:"ExtrinsicMetadataV13"},ModuleConstantMetadataV13:"ModuleConstantMetadataV12",ModuleMetadataV13:{name:"Text",storage:"Option",calls:"Option>",events:"Option>",constants:"Vec",errors:"Vec",index:"u8"},StorageEntryModifierV13:"StorageEntryModifierV12",StorageEntryMetadataV13:{name:"Text",modifier:"StorageEntryModifierV13",type:"StorageEntryTypeV13",fallback:"Bytes",docs:"Vec"},StorageEntryTypeV13:{_enum:{Plain:"Type",Map:{hasher:"StorageHasherV13",key:"Type",value:"Type",linked:"bool"},DoubleMap:{hasher:"StorageHasherV13",key1:"Type",key2:"Type",value:"Type",key2Hasher:"StorageHasherV13"},NMap:{keyVec:"Vec",hashers:"Vec",value:"Type"}}},StorageMetadataV13:{prefix:"Text",items:"Vec"},StorageHasherV13:"StorageHasherV12",...{PortableTypeV14:{id:"Si1LookupTypeId",type:"Si1Type"},ErrorMetadataV14:{...nu,args:"Vec"},EventMetadataV14:{...nu,args:"Vec"},FunctionArgumentMetadataV14:{name:"Text",type:"Type",typeName:"Option"},FunctionMetadataV14:{...nu,args:"Vec"},ExtrinsicMetadataV14:{type:"SiLookupTypeId",version:"u8",signedExtensions:"Vec"},MetadataV14:{lookup:"PortableRegistry",pallets:"Vec",extrinsic:"ExtrinsicMetadataV14",type:"SiLookupTypeId"},PalletCallMetadataV14:{type:"SiLookupTypeId"},PalletConstantMetadataV14:{name:"Text",type:"SiLookupTypeId",value:"Bytes",docs:"Vec"},PalletErrorMetadataV14:{type:"SiLookupTypeId"},PalletEventMetadataV14:{type:"SiLookupTypeId"},PalletMetadataV14:{name:"Text",storage:"Option",calls:"Option",events:"Option",constants:"Vec",errors:"Option",index:"u8"},PalletStorageMetadataV14:{prefix:"Text",items:"Vec"},SignedExtensionMetadataV14:{identifier:"Text",type:"SiLookupTypeId",additionalSigned:"SiLookupTypeId"},StorageEntryMetadataV14:{name:"Text",modifier:"StorageEntryModifierV14",type:"StorageEntryTypeV14",fallback:"Bytes",docs:"Vec"},StorageEntryModifierV14:"StorageEntryModifierV13",StorageEntryTypeV14:{_enum:{Plain:"SiLookupTypeId",Map:{hashers:"Vec",key:"SiLookupTypeId",value:"SiLookupTypeId"}}},StorageHasherV14:"StorageHasherV13"},CustomMetadata15:{map:"BTreeMap"},CustomValueMetadata15:{type:"SiLookupTypeId",value:"Bytes"},ExtrinsicMetadataV15:{version:"u8",addressType:"SiLookupTypeId",callType:"SiLookupTypeId",signatureType:"SiLookupTypeId",extraType:"SiLookupTypeId",signedExtensions:"Vec"},OuterEnums15:{callType:"SiLookupTypeId",eventType:"SiLookupTypeId",errorType:"SiLookupTypeId"},PalletMetadataV15:{name:"Text",storage:"Option",calls:"Option",events:"Option",constants:"Vec",errors:"Option",index:"u8",docs:"Vec"},RuntimeApiMetadataV15:{name:"Text",methods:"Vec",docs:"Vec"},RuntimeApiMethodMetadataV15:{name:"Text",inputs:"Vec",output:"SiLookupTypeId",docs:"Vec"},RuntimeApiMethodParamMetadataV15:{name:"Text",type:"SiLookupTypeId"},MetadataV15:{lookup:"PortableRegistry",pallets:"Vec",extrinsic:"ExtrinsicMetadataV15",type:"SiLookupTypeId",apis:"Vec",outerEnums:"OuterEnums15",custom:"CustomMetadata15"},ErrorMetadataLatest:"ErrorMetadataV14",EventMetadataLatest:"EventMetadataV14",ExtrinsicMetadataLatest:"ExtrinsicMetadataV15",FunctionArgumentMetadataLatest:"FunctionArgumentMetadataV14",FunctionMetadataLatest:"FunctionMetadataV14",MetadataLatest:"MetadataV15",PalletCallMetadataLatest:"PalletCallMetadataV14",PalletConstantMetadataLatest:"PalletConstantMetadataV14",PalletErrorMetadataLatest:"PalletErrorMetadataV14",PalletEventMetadataLatest:"PalletEventMetadataV14",PalletMetadataLatest:"PalletMetadataV15",PalletStorageMetadataLatest:"PalletStorageMetadataV14",PortableType:"PortableTypeV14",RuntimeApiMetadataLatest:"RuntimeApiMetadataV15",SignedExtensionMetadataLatest:"SignedExtensionMetadataV14",StorageEntryMetadataLatest:"StorageEntryMetadataV14",StorageEntryModifierLatest:"StorageEntryModifierV14",StorageEntryTypeLatest:"StorageEntryTypeV14",StorageHasher:"StorageHasherV14",OpaqueMetadata:"Opaque",MetadataAll:{_enum:{V0:"DoNotConstruct",V1:"DoNotConstruct",V2:"DoNotConstruct",V3:"DoNotConstruct",V4:"DoNotConstruct",V5:"DoNotConstruct",V6:"DoNotConstruct",V7:"DoNotConstruct",V8:"DoNotConstruct",V9:"MetadataV9",V10:"MetadataV10",V11:"MetadataV11",V12:"MetadataV12",V13:"MetadataV13",V14:"MetadataV14",V15:"MetadataV15"}}}},iu={execute_block:{description:"Execute the given block.",params:[{name:"block",type:"Block"}],type:"Null"}},su={version:{description:"Returns the version of the runtime.",params:[],type:"RuntimeVersionPre3"}},ou={initialize_block:{description:"Initialize a block with the given header.",params:[{name:"header",type:"Header"}],type:"Null"}},cu={version:{description:"Returns the version of the runtime.",params:[],type:"RuntimeVersion"}},du={...iu,initialize_block:{description:"Initialize a block with the given header.",params:[{name:"header",type:"Header"}],type:"ExtrinsicInclusionMode"}},uu={Core:[{methods:{...cu,...du},version:5},{methods:{...cu,...iu,...ou},version:4},{methods:{version:{description:"Returns the version of the runtime.",params:[],type:"RuntimeVersionPre4"},...iu,...ou},version:3},{methods:{...su,...iu,...ou},version:2},{methods:{initialise_block:{description:"Initialize a block with the given header.",params:[{name:"header",type:"Header"}],type:"Null"},...su,...iu},version:1}]},lu={Council:"CollectiveOrigin",System:"SystemOrigin",TechnicalCommittee:"CollectiveOrigin",Xcm:"XcmOrigin",XcmPallet:"XcmOrigin",Authority:"AuthorityOrigin",GeneralCouncil:"CollectiveOrigin"},fu={rpc:{},runtime:uu,types:{Fixed64:"Int<64, Fixed64>",FixedI64:"Int<64, FixedI64>",FixedU64:"UInt<64, FixedU64>",Fixed128:"Int<128, Fixed128>",FixedI128:"Int<128, FixedI128>",FixedU128:"UInt<128, FixedU128>",I32F32:"Int<64, I32F32>",U32F32:"UInt<64, U32F32>",PerU16:"UInt<16, PerU16>",Perbill:"UInt<32, Perbill>",Percent:"UInt<8, Percent>",Permill:"UInt<32, Permill>",Perquintill:"UInt<64, Perquintill>",AccountId:"AccountId32",AccountId20:"GenericEthereumAccountId",AccountId32:"GenericAccountId32",AccountId33:"GenericAccountId33",AccountIdOf:"AccountId",AccountIndex:"GenericAccountIndex",Address:"MultiAddress",AssetId:"u32",Balance:"UInt<128, Balance>",BalanceOf:"Balance",Block:"GenericBlock",BlockNumber:"u32",BlockNumberFor:"BlockNumber",BlockNumberOf:"BlockNumber",Call:"GenericCall",CallHash:"Hash",CallHashOf:"CallHash",ChangesTrieConfiguration:{digestInterval:"u32",digestLevels:"u32"},ChangesTrieSignal:{_enum:{NewConfiguration:"Option"}},ConsensusEngineId:"GenericConsensusEngineId",CodecHash:"Hash",CrateVersion:{major:"u16",minor:"u8",patch:"u8"},Digest:{logs:"Vec"},DigestItem:{_enum:{Other:"Bytes",AuthoritiesChange:"Vec",ChangesTrieRoot:"Hash",SealV0:"SealV0",Consensus:"Consensus",Seal:"Seal",PreRuntime:"PreRuntime",ChangesTrieSignal:"ChangesTrieSignal",RuntimeEnvironmentUpdated:"Null"}},ExtrinsicsWeight:{normal:"Weight",operational:"Weight"},H32:"[u8; 4; H32]",H64:"[u8; 8; H64]",H128:"[u8; 16; H128]",H160:"[u8; 20; H160]",H256:"[u8; 32; H256]",H512:"[u8; 64; H512]",H1024:"[u8; 128; H1024]",H2048:"[u8; 256; H2048]",Hash:"H256",Header:{parentHash:"Hash",number:"Compact",stateRoot:"Hash",extrinsicsRoot:"Hash",digest:"Digest"},HeaderPartial:{parentHash:"Hash",number:"BlockNumber"},IndicesLookupSource:"GenericLookupSource",Index:"u32",Justification:"(ConsensusEngineId, EncodedJustification)",EncodedJustification:"Bytes",Justifications:"Vec",KeyValue:"(StorageKey, StorageData)",KeyTypeId:"u32",LockIdentifier:"[u8; 8]",LookupSource:"MultiAddress",LookupTarget:"AccountId",ModuleId:"LockIdentifier",MultiAddress:"GenericMultiAddress",MultiSigner:{_enum:{Ed25519:"[u8; 32]",Sr25519:"[u8; 32]",Ecdsa:"[u8; 33]"}},Moment:"UInt<64, Moment>",OpaqueCall:"Bytes",Origin:"DoNotConstruct",OriginCaller:{_enum:{System:"SystemOrigin"}},PalletId:"LockIdentifier",PalletsOrigin:"OriginCaller",PalletVersion:{major:"u16",minor:"u8",patch:"u8"},Pays:{_enum:["Yes","No"]},Phantom:"Null",PhantomData:"Null",Releases:{_enum:["V1","V2","V3","V4","V5","V6","V7","V8","V9","V10"]},RuntimeCall:"Call",RuntimeEvent:"Event",RuntimeDbWeight:{read:"Weight",write:"Weight"},SignedBlock:"SignedBlockWithJustifications",SignedBlockWithJustification:{block:"Block",justification:"Option"},SignedBlockWithJustifications:{block:"Block",justifications:"Option"},Slot:"u64",SlotDuration:"u64",StorageData:"Bytes",StorageInfo:{palletName:"Bytes",storage_name:"Bytes",prefix:"Bytes",maxValues:"Option",maxSize:"Option"},StorageProof:{trieNodes:"Vec"},TransactionPriority:"u64",TransactionLongevity:"u64",TransactionTag:"Bytes",TransactionInfo:{_alias:{dataSize:"size"},chunkRoot:"H256",contentHash:"H256",dataSize:"u32",blockChunks:"u32"},TransactionStorageProof:{chunk:"Vec",proof:"Vec>"},ValidatorId:"AccountId",ValidatorIdOf:"ValidatorId",WeightV0:"u32",WeightV1:"u64",WeightV2:{refTime:"Compact",proofSize:"Compact"},Weight:"WeightV2",WeightMultiplier:"Fixed64",PreRuntime:"(ConsensusEngineId, Bytes)",SealV0:"(u64, Signature)",Seal:"(ConsensusEngineId, Bytes)",Consensus:"(ConsensusEngineId, Bytes)",ExtrinsicInclusionMode:{_enum:["AllExtrinsics","OnlyInherents"]}}},pu={rpc:{},types:{Si0Field:{name:"Option",type:"Si0LookupTypeId",typeName:"Option",docs:"Vec"},Si0LookupTypeId:"u32",Si0Path:"Vec",Si0Type:{path:"Si0Path",params:"Vec",def:"Si0TypeDef"},Si0TypeDef:{_enum:{Composite:"Si0TypeDefComposite",Variant:"Si0TypeDefVariant",Sequence:"Si0TypeDefSequence",Array:"Si0TypeDefArray",Tuple:"Si0TypeDefTuple",Primitive:"Si0TypeDefPrimitive",Compact:"Si0TypeDefCompact",Phantom:"Si0TypeDefPhantom",BitSequence:"Si0TypeDefBitSequence"}},Si0TypeDefArray:{len:"u32",type:"Si0LookupTypeId"},Si0TypeDefBitSequence:{bitStoreType:"Si0LookupTypeId",bitOrderType:"Si0LookupTypeId"},Si0TypeDefCompact:{type:"Si0LookupTypeId"},Si0TypeDefComposite:{fields:"Vec"},Si0TypeDefPhantom:"Null",Si0TypeDefVariant:{variants:"Vec"},Si0TypeDefPrimitive:{_enum:["Bool","Char","Str","U8","U16","U32","U64","U128","U256","I8","I16","I32","I64","I128","I256"]},Si0TypeDefSequence:{type:"Si0LookupTypeId"},Si0TypeDefTuple:"Vec",Si0TypeParameter:{name:"Text",type:"Option"},Si0Variant:{name:"Text",fields:"Vec",index:"Option",discriminant:"Option",docs:"Vec"},...ru,SiField:"Si1Field",SiLookupTypeId:"Si1LookupTypeId",SiPath:"Si1Path",SiType:"Si1Type",SiTypeDef:"Si1TypeDef",SiTypeDefArray:"Si1TypeDefArray",SiTypeDefBitSequence:"Si1TypeDefBitSequence",SiTypeDefCompact:"Si1TypeDefCompact",SiTypeDefComposite:"Si1TypeDefComposite",SiTypeDefPrimitive:"Si1TypeDefPrimitive",SiTypeDefSequence:"Si1TypeDefSequence",SiTypeDefTuple:"Si1TypeDefTuple",SiTypeParameter:"Si1TypeParameter",SiTypeDefVariant:"Si1TypeDefVariant",SiVariant:"Si1Variant"}},hu={rpc:{},runtime:{AssetConversionApi:[{methods:{get_reserves:{description:"Get pool reserves",params:[{name:"asset1",type:"StagingXcmV3MultiLocation"},{name:"asset2",type:"StagingXcmV3MultiLocation"}],type:"Option<(Balance,Balance)>"},quote_price_exact_tokens_for_tokens:{description:"Quote price: exact tokens for tokens",params:[{name:"asset1",type:"StagingXcmV3MultiLocation"},{name:"asset2",type:"StagingXcmV3MultiLocation"},{name:"amount",type:"u128"},{name:"include_fee",type:"bool"}],type:"Option<(Balance)>"},quote_price_tokens_for_exact_tokens:{description:"Quote price: tokens for exact tokens",params:[{name:"asset1",type:"StagingXcmV3MultiLocation"},{name:"asset2",type:"StagingXcmV3MultiLocation"},{name:"amount",type:"u128"},{name:"include_fee",type:"bool"}],type:"Option<(Balance)>"}},version:1}]},types:{TAssetConversion:"Option"}},bu={rpc:{},runtime:{AssetsApi:[{methods:{account_balances:{description:"Return the current set of authorities.",params:[{name:"account",type:"AccountId"}],type:"Vec<(u32, TAssetBalance)>"}},version:1}]},types:{AssetApprovalKey:{owner:"AccountId",delegate:"AccountId"},AssetApproval:{amount:"TAssetBalance",deposit:"TAssetDepositBalance"},AssetBalance:{balance:"TAssetBalance",isFrozen:"bool",isSufficient:"bool"},AssetDestroyWitness:{accounts:"Compact",sufficients:"Compact",approvals:"Compact"},AssetDetails:{owner:"AccountId",issuer:"AccountId",admin:"AccountId",freezer:"AccountId",supply:"TAssetBalance",deposit:"TAssetDepositBalance",minBalance:"TAssetBalance",isSufficient:"bool",accounts:"u32",sufficients:"u32",approvals:"u32",isFrozen:"bool"},AssetMetadata:{deposit:"TAssetDepositBalance",name:"Vec",symbol:"Vec",decimals:"u8",isFrozen:"bool"},TAssetBalance:"u64",TAssetDepositBalance:"BalanceOf"}},mu={rpc:{},runtime:{AuraApi:[{methods:{authorities:{description:"Return the current set of authorities.",params:[],type:"Vec"},slot_duration:{description:"Returns the slot duration for Aura.",params:[],type:"SlotDuration"}},version:1}]},types:{RawAuraPreDigest:{slotNumber:"u64"}}},yu={rpc:{},types:{UncleEntryItem:{_enum:{InclusionHeight:"BlockNumber",Uncle:"(Hash, Option)"}}}},xu={current_epoch:{description:"Returns information regarding the current epoch.",params:[],type:"Epoch"},current_epoch_start:{description:"Returns the slot that started the current epoch.",params:[],type:"Slot"},generate_key_ownership_proof:{description:"Generates a proof of key ownership for the given authority in the current epoch.",params:[{name:"slot",type:"Slot"},{name:"authorityId",type:"AuthorityId"}],type:"Option"},next_epoch:{description:"Returns information regarding the next epoch (which was already previously announced).",params:[],type:"Epoch"},submit_report_equivocation_unsigned_extrinsic:{description:"Submits an unsigned extrinsic to report an equivocation.",params:[{name:"equivocationProof",type:"BabeEquivocationProof"},{name:"keyOwnerProof",type:"OpaqueKeyOwnershipProof"}],type:"Option"}},gu={rpc:{epochAuthorship:{description:"Returns data about which slots (primary or secondary) can be claimed in the current epoch with the keys in the keystore",isUnsafe:!0,params:[],type:"HashMap"}},runtime:{BabeApi:[{methods:{configuration:{description:"Return the genesis configuration for BABE. The configuration is only read on genesis.",params:[],type:"BabeGenesisConfiguration"},...xu},version:2},{methods:{configuration:{description:"Return the configuration for BABE. Version 1.",params:[],type:"BabeGenesisConfigurationV1"},...xu},version:1}]},types:{AllowedSlots:{_enum:["PrimarySlots","PrimaryAndSecondaryPlainSlots","PrimaryAndSecondaryVRFSlots"]},BabeAuthorityWeight:"u64",BabeEpochConfiguration:{c:"(u64, u64)",allowedSlots:"AllowedSlots"},BabeBlockWeight:"u32",BabeEquivocationProof:{offender:"AuthorityId",slotNumber:"SlotNumber",firstHeader:"Header",secondHeader:"Header"},BabeGenesisConfiguration:{slotDuration:"u64",epochLength:"u64",c:"(u64, u64)",genesisAuthorities:"Vec<(AuthorityId, BabeAuthorityWeight)>",randomness:"Randomness",allowedSlots:"AllowedSlots"},BabeGenesisConfigurationV1:{slotDuration:"u64",epochLength:"u64",c:"(u64, u64)",genesisAuthorities:"Vec<(AuthorityId, BabeAuthorityWeight)>",randomness:"Randomness",secondarySlots:"bool"},BabeWeight:"u64",MaybeRandomness:"Option",MaybeVrf:"Option",Epoch:{epochIndex:"u64",startSlot:"Slot",duration:"u64",authorities:"Vec<(AuthorityId, BabeAuthorityWeight)>",randomness:"Hash",config:"BabeEpochConfiguration"},EpochAuthorship:{primary:"Vec",secondary:"Vec",secondary_vrf:"Vec"},NextConfigDescriptor:{_enum:{V0:"Null",V1:"NextConfigDescriptorV1"}},NextConfigDescriptorV1:{c:"(u64, u64)",allowedSlots:"AllowedSlots"},OpaqueKeyOwnershipProof:"Bytes",Randomness:"Hash",RawBabePreDigest:{_enum:{Phantom:"Null",Primary:"RawBabePreDigestPrimary",SecondaryPlain:"RawBabePreDigestSecondaryPlain",SecondaryVRF:"RawBabePreDigestSecondaryVRF"}},RawBabePreDigestPrimary:{authorityIndex:"u32",slotNumber:"SlotNumber",vrfOutput:"VrfOutput",vrfProof:"VrfProof"},RawBabePreDigestSecondaryPlain:{authorityIndex:"u32",slotNumber:"SlotNumber"},RawBabePreDigestSecondaryVRF:{authorityIndex:"u32",slotNumber:"SlotNumber",vrfOutput:"VrfOutput",vrfProof:"VrfProof"},RawBabePreDigestTo159:{_enum:{Primary:"RawBabePreDigestPrimaryTo159",Secondary:"RawBabePreDigestSecondaryTo159"}},RawBabePreDigestPrimaryTo159:{authorityIndex:"u32",slotNumber:"SlotNumber",weight:"BabeBlockWeight",vrfOutput:"VrfOutput",vrfProof:"VrfProof"},RawBabePreDigestSecondaryTo159:{authorityIndex:"u32",slotNumber:"SlotNumber",weight:"BabeBlockWeight"},RawBabePreDigestCompat:{_enum:{Zero:"u32",One:"u32",Two:"u32",Three:"u32"}},SlotNumber:"u64",VrfData:"[u8; 32]",VrfOutput:"[u8; 32]",VrfProof:"[u8; 64]"}},vu={rpc:{},types:{AccountData:{free:"Balance",reserved:"Balance",miscFrozen:"Balance",feeFrozen:"Balance"},BalanceLockTo212:{id:"LockIdentifier",amount:"Balance",until:"BlockNumber",reasons:"WithdrawReasons"},BalanceLock:{id:"LockIdentifier",amount:"Balance",reasons:"Reasons"},BalanceStatus:{_enum:["Free","Reserved"]},Reasons:{_enum:["Fee","Misc","All"]},ReserveData:{id:"ReserveIdentifier",amount:"Balance"},ReserveIdentifier:"[u8; 8]",VestingSchedule:{offset:"Balance",perBlock:"Balance",startingBlock:"BlockNumber"},WithdrawReasons:{_set:{TransactionPayment:1,Transfer:2,Reserve:4,Fee:8,Tip:16}}}},wu={beefy_genesis:{description:"Return the block number where BEEFY consensus is enabled/started",params:[],type:"Option"},generate_key_ownership_proof:{description:"Generates a proof of key ownership for the given authority in the given set.",params:[{name:"setId",type:"ValidatorSetId"},{name:"authorityId",type:"AuthorityId"}],type:"Option"},submit_report_equivocation_unsigned_extrinsic:{description:"Submits an unsigned extrinsic to report an equivocation.",params:[{name:"equivocationProof",type:"BeefyEquivocationProof"},{name:"keyOwnerProof",type:"OpaqueKeyOwnershipProof"}],type:"Option"},validator_set:{description:"Return the current active BEEFY validator set",params:[],type:"Option"}},Su={rpc:{getFinalizedHead:{description:"Returns hash of the latest BEEFY finalized block as seen by this client.",params:[],type:"H256"},subscribeJustifications:{description:"Returns the block most recently finalized by BEEFY, alongside its justification.",params:[],pubsub:["justifications","subscribeJustifications","unsubscribeJustifications"],type:"BeefyVersionedFinalityProof"}},runtime:{BeefyApi:[{methods:wu,version:3},{methods:wu,version:2},{methods:wu,version:1}],BeefyMmrApi:[{methods:{authority_set_proof:{description:"Return the currently active BEEFY authority set proof.",params:[],type:"BeefyAuthoritySet"},next_authority_set_proof:{description:"Return the next/queued BEEFY authority set proof.",params:[],type:"BeefyNextAuthoritySet"}},version:1}]},types:{BeefyAuthoritySet:{id:"u64",len:"u32",root:"H256"},BeefyCommitment:{payload:"BeefyPayload",blockNumber:"BlockNumber",validatorSetId:"ValidatorSetId"},BeefyId:"[u8; 33]",BeefyEquivocationProof:{first:"BeefyVoteMessage",second:"BeefyVoteMessage"},BeefyCompactSignedCommitment:{commitment:"BeefyCommitment",signaturesFrom:"Vec",validatorSetLen:"u32",signaturesCompact:"Vec"},BeefySignedCommitment:{commitment:"BeefyCommitment",signatures:"Vec>"},BeefyVersionedFinalityProof:{_enum:{V0:"Null",V1:"BeefyCompactSignedCommitment"}},BeefyNextAuthoritySet:{id:"u64",len:"u32",root:"H256"},BeefyPayload:"Vec<(BeefyPayloadId, Bytes)>",BeefyPayloadId:"[u8;2]",BeefyVoteMessage:{commitment:"BeefyCommitment",id:"AuthorityId",signature:"Signature"},MmrRootHash:"H256",ValidatorSetId:"u64",ValidatorSet:{validators:"Vec",id:"ValidatorSetId"}}},ku={rpc:{},runtime:{Benchmark:[{methods:{benchmark_metadata:{description:"Get the benchmark metadata available for this runtime.",params:[{name:"extra",type:"bool"}],type:"(Vec, Vec)"},dispatch_benchmark:{description:"Dispatch the given benchmark.",params:[{name:"config",type:"BenchmarkConfig"}],type:"Result, Text>"}},version:1}]},types:{BenchmarkBatch:{pallet:"Text",instance:"Text",benchmark:"Text",results:"Vec"},BenchmarkConfig:{pallet:"Bytes",benchmark:"Bytes",selectedComponents:"Vec<(BenchmarkParameter, u32)>",verify:"bool",internalRepeats:"u32"},BenchmarkList:{pallet:"Bytes",instance:"Bytes",benchmarks:"Vec"},BenchmarkMetadata:{name:"Bytes",components:"Vec<(BenchmarkParameter, u32, u32)>"},BenchmarkParameter:{_enum:["a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z"]},BenchmarkResult:{components:"Vec<(BenchmarkParameter, u32)>",extrinsicTime:"u128",storageRootTime:"u128",reads:"u32",repeatReads:"u32",writes:"u32",repeatWrites:"u32",proofSize:"u32",benchKeys:"Vec<(Vec, u32, u32, bool)>"}}},Tu={random_seed:{description:"Generate a random seed.",params:[],type:"Hash"}},Pu={apply_extrinsic:{description:"Apply the given extrinsic.",params:[{name:"extrinsic",type:"Extrinsic"}],type:"ApplyExtrinsicResultPre6"}},Vu={check_inherents:{description:"Check that the inherents are valid.",params:[{name:"block",type:"Block"},{name:"data",type:"InherentData"}],type:"CheckInherentsResult"},inherent_extrinsics:{description:"Generate inherent extrinsics.",params:[{name:"inherent",type:"InherentData"}],type:"Vec"}},Mu={finalize_block:{description:"Finish the current block.",params:[],type:"Header"}},_u={rpc:{},runtime:{BlockBuilder:[{methods:{apply_extrinsic:{description:"Apply the given extrinsic.",params:[{name:"extrinsic",type:"Extrinsic"}],type:"ApplyExtrinsicResult"},...Vu,...Mu},version:6},{methods:{...Pu,...Vu,...Mu},version:5},{methods:{...Tu,...Pu,...Vu,...Mu},version:4},{methods:{...Tu,...Vu,...Mu},version:3},{methods:{finalise_block:{description:"Finish the current block.",params:[],type:"Header"},...Tu,...Vu},version:2}]},types:{CheckInherentsResult:{okay:"bool",fatalError:"bool",errors:"InherentData"},InherentData:{data:"BTreeMap"},InherentIdentifier:"[u8; 8]"}},Iu={rpc:{},types:{CollectiveOrigin:{_enum:{Members:"(MemberCount, MemberCount)",Member:"AccountId"}},MemberCount:"u32",ProposalIndex:"u32",VotesTo230:{index:"ProposalIndex",threshold:"MemberCount",ayes:"Vec",nays:"Vec"},Votes:{index:"ProposalIndex",threshold:"MemberCount",ayes:"Vec",nays:"Vec",end:"BlockNumber"}}},Ou={rpc:{},types:{AuthorityId:"AccountId",RawVRFOutput:"[u8; 32]"}},Nu={get_storage:{description:"Query a given storage key in a given contract.",params:[{name:"address",type:"AccountId"},{name:"key",type:"Bytes"}],type:"Option"},upload_code:{description:"Upload new code without instantiating a contract from it.",params:[{name:"origin",type:"AccountId"},{name:"code",type:"Bytes"},{name:"storageDepositLimit",type:"Option"}],type:"CodeUploadResult"}},Eu={rpc:{call:{deprecated:"Use the runtime interface `api.call.contractsApi.call` instead",description:"Executes a call to a contract",params:[{name:"callRequest",type:"ContractCallRequest"},{isHistoric:!0,isOptional:!0,name:"at",type:"BlockHash"}],type:"ContractExecResult"},getStorage:{deprecated:"Use the runtime interface `api.call.contractsApi.getStorage` instead",description:"Returns the value under a specified storage key in a contract",params:[{name:"address",type:"AccountId"},{name:"key",type:"H256"},{isHistoric:!0,isOptional:!0,name:"at",type:"BlockHash"}],type:"Option"},instantiate:{deprecated:"Use the runtime interface `api.call.contractsApi.instantiate` instead",description:"Instantiate a new contract",params:[{name:"request",type:"InstantiateRequestV1"},{isHistoric:!0,isOptional:!0,name:"at",type:"BlockHash"}],type:"ContractInstantiateResult"},rentProjection:{deprecated:"Not available in newer versions of the contracts interfaces",description:"Returns the projected time a given contract will be able to sustain paying its rent",params:[{name:"address",type:"AccountId"},{isHistoric:!0,isOptional:!0,name:"at",type:"BlockHash"}],type:"Option"},uploadCode:{deprecated:"Use the runtime interface `api.call.contractsApi.uploadCode` instead",description:"Upload new code without instantiating a contract from it",endpoint:"contracts_upload_code",params:[{name:"uploadRequest",type:"CodeUploadRequest"},{isHistoric:!0,isOptional:!0,name:"at",type:"BlockHash"}],type:"CodeUploadResult"}},runtime:{ContractsApi:[{methods:{call:{description:"Perform a call from a specified account to a given contract.",params:[{name:"origin",type:"AccountId"},{name:"dest",type:"AccountId"},{name:"value",type:"Balance"},{name:"gasLimit",type:"Option"},{name:"storageDepositLimit",type:"Option"},{name:"inputData",type:"Vec"}],type:"ContractExecResult"},instantiate:{description:"Instantiate a new contract.",params:[{name:"origin",type:"AccountId"},{name:"value",type:"Balance"},{name:"gasLimit",type:"Option"},{name:"storageDepositLimit",type:"Option"},{name:"code",type:"CodeSource"},{name:"data",type:"Bytes"},{name:"salt",type:"Bytes"}],type:"ContractInstantiateResult"},...Nu},version:2},{methods:{call:{description:"Perform a call from a specified account to a given contract.",params:[{name:"origin",type:"AccountId"},{name:"dest",type:"AccountId"},{name:"value",type:"Balance"},{name:"gasLimit",type:"u64"},{name:"storageDepositLimit",type:"Option"},{name:"inputData",type:"Vec"}],type:"ContractExecResultU64"},instantiate:{description:"Instantiate a new contract.",params:[{name:"origin",type:"AccountId"},{name:"value",type:"Balance"},{name:"gasLimit",type:"u64"},{name:"storageDepositLimit",type:"Option"},{name:"code",type:"CodeSource"},{name:"data",type:"Bytes"},{name:"salt",type:"Bytes"}],type:"ContractInstantiateResultU64"},...Nu},version:1}]},types:{AliveContractInfo:{trieId:"TrieId",storageSize:"u32",pairCount:"u32",codeHash:"CodeHash",rentAllowance:"Balance",rentPaid:"Balance",deductBlock:"BlockNumber",lastWrite:"Option",_reserved:"Option"},CodeHash:"Hash",CodeSource:{_enum:{Upload:"Bytes",Existing:"Hash"}},CodeUploadRequest:{origin:"AccountId",code:"Bytes",storageDepositLimit:"Option"},CodeUploadResult:"Result",CodeUploadResultValue:{codeHash:"CodeHash",deposit:"Balance"},ContractCallRequest:{origin:"AccountId",dest:"AccountId",value:"Balance",gasLimit:"u64",storageDepositLimit:"Option",inputData:"Bytes"},ContractExecResultSuccessTo255:{status:"u8",data:"Raw"},ContractExecResultTo255:{_enum:{Success:"ContractExecResultSuccessTo255",Error:"Null"}},ContractExecResultSuccessTo260:{flags:"ContractReturnFlags",data:"Bytes",gasConsumed:"u64"},ContractExecResultTo260:{_enum:{Success:"ContractExecResultSuccessTo260",Error:"Null"}},ContractExecResultOk:{flags:"ContractReturnFlags",data:"Bytes"},ContractExecResultResult:"Result",ContractExecResultTo267:{gasConsumed:"u64",debugMessage:"Text",result:"ContractExecResultResult"},ContractExecResult:{gasConsumed:"Weight",gasRequired:"Weight",storageDeposit:"StorageDeposit",debugMessage:"Text",result:"ContractExecResultResult"},ContractExecResultU64:{gasConsumed:"u64",gasRequired:"u64",storageDeposit:"StorageDeposit",debugMessage:"Text",result:"ContractExecResultResult"},ContractInfo:{_enum:{Alive:"AliveContractInfo",Tombstone:"TombstoneContractInfo"}},ContractCallFlags:{_set:{_bitLength:32,ForwardInput:1,CloneInput:2,TailCall:4,AllowReentry:8}},ContractReturnFlags:{_set:{_bitLength:32,Revert:1}},ContractStorageKey:"[u8; 32]",DeletedContract:{pairCount:"u32",trieId:"TrieId"},ExecReturnValue:{flags:"ContractReturnFlags",data:"Bytes"},Gas:"u64",HostFnWeightsTo264:{caller:"Weight",address:"Weight",gasLeft:"Weight",balance:"Weight",valueTransferred:"Weight",minimumBalance:"Weight",tombstoneDeposit:"Weight",rentAllowance:"Weight",blockNumber:"Weight",now:"Weight",weightToFee:"Weight",gas:"Weight",input:"Weight",inputPerByte:"Weight",return:"Weight",returnPerByte:"Weight",terminate:"Weight",restoreTo:"Weight",restoreToPerDelta:"Weight",random:"Weight",depositEvent:"Weight",depositEventPerTopic:"Weight",depositEventPerByte:"Weight",setRentAllowance:"Weight",setStorage:"Weight",setStoragePerByte:"Weight",clearStorage:"Weight",getStorage:"Weight",getStoragePerByte:"Weight",transfer:"Weight",call:"Weight",callTransferSurcharge:"Weight",callPerInputByte:"Weight",callPerOutputByte:"Weight",instantiate:"Weight",instantiatePerInputByte:"Weight",instantiatePerOutputByte:"Weight",hashSha2256:"Weight",hashSha2256PerByte:"Weight",hashKeccak256:"Weight",hashKeccak256PerByte:"Weight",hashBlake2256:"Weight",hashBlake2256PerByte:"Weight",hashBlake2128:"Weight",hashBlake2128PerByte:"Weight"},HostFnWeights:{caller:"Weight",address:"Weight",gasLeft:"Weight",balance:"Weight",valueTransferred:"Weight",minimumBalance:"Weight",tombstoneDeposit:"Weight",rentAllowance:"Weight",blockNumber:"Weight",now:"Weight",weightToFee:"Weight",gas:"Weight",input:"Weight",inputPerByte:"Weight",return:"Weight",returnPerByte:"Weight",terminate:"Weight",terminatePerCodeByte:"Weight",restoreTo:"Weight",restoreToPerCallerCodeByte:"Weight",restoreToPerTombstoneCodeByte:"Weight",restoreToPerDelta:"Weight",random:"Weight",depositEvent:"Weight",depositEventPerTopic:"Weight",depositEventPerByte:"Weight",setRentAllowance:"Weight",setStorage:"Weight",setStoragePerByte:"Weight",clearStorage:"Weight",getStorage:"Weight",getStoragePerByte:"Weight",transfer:"Weight",call:"Weight",callPerCodeByte:"Weight",callTransferSurcharge:"Weight",callPerInputByte:"Weight",callPerOutputByte:"Weight",instantiate:"Weight",instantiatePerCodeByte:"Weight",instantiatePerInputByte:"Weight",instantiatePerOutputByte:"Weight",instantiatePerSaltByte:"Weight",hashSha2256:"Weight",hashSha2256PerByte:"Weight",hashKeccak256:"Weight",hashKeccak256PerByte:"Weight",hashBlake2256:"Weight",hashBlake2256PerByte:"Weight",hashBlake2128:"Weight",hashBlake2128PerByte:"Weight",rentParams:"Weight"},InstantiateRequestV1:{origin:"AccountId",value:"Balance",gasLimit:"Gas",code:"Bytes",data:"Bytes",salt:"Bytes"},InstantiateRequestV2:{_fallback:"InstantiateRequestV1",origin:"AccountId",value:"Balance",gasLimit:"Gas",storageDepositLimit:"Option",code:"Bytes",data:"Bytes",salt:"Bytes"},InstantiateRequest:{_fallback:"InstantiateRequestV2",origin:"AccountId",value:"Balance",gasLimit:"Gas",storageDepositLimit:"Option",code:"CodeSource",data:"Bytes",salt:"Bytes"},ContractInstantiateResultTo267:"Result",ContractInstantiateResultTo299:"Result",ContractInstantiateResult:{gasConsumed:"WeightV2",gasRequired:"WeightV2",storageDeposit:"StorageDeposit",debugMessage:"Text",result:"InstantiateReturnValue"},ContractInstantiateResultU64:{_fallback:"ContractInstantiateResultTo299",gasConsumed:"u64",gasRequired:"u64",storageDeposit:"StorageDeposit",debugMessage:"Text",result:"InstantiateReturnValue"},InstantiateReturnValueTo267:{result:"ExecReturnValue",accountId:"AccountId",rentProjection:"Option"},InstantiateReturnValueOk:{result:"ExecReturnValue",accountId:"AccountId"},InstantiateReturnValue:"Result",InstructionWeights:{i64const:"u32",i64load:"u32",i64store:"u32",select:"u32",rIf:"u32",br:"u32",brIf:"u32",brIable:"u32",brIablePerEntry:"u32",call:"u32",callIndirect:"u32",callIndirectPerParam:"u32",localGet:"u32",localSet:"u32",local_tee:"u32",globalGet:"u32",globalSet:"u32",memoryCurrent:"u32",memoryGrow:"u32",i64clz:"u32",i64ctz:"u32",i64popcnt:"u32",i64eqz:"u32",i64extendsi32:"u32",i64extendui32:"u32",i32wrapi64:"u32",i64eq:"u32",i64ne:"u32",i64lts:"u32",i64ltu:"u32",i64gts:"u32",i64gtu:"u32",i64les:"u32",i64leu:"u32",i64ges:"u32",i64geu:"u32",i64add:"u32",i64sub:"u32",i64mul:"u32",i64divs:"u32",i64divu:"u32",i64rems:"u32",i64remu:"u32",i64and:"u32",i64or:"u32",i64xor:"u32",i64shl:"u32",i64shrs:"u32",i64shru:"u32",i64rotl:"u32",i64rotr:"u32"},LimitsTo264:{eventTopics:"u32",stackHeight:"u32",globals:"u32",parameters:"u32",memoryPages:"u32",tableSize:"u32",brTableSize:"u32",subjectLen:"u32",codeSize:"u32"},Limits:{eventTopics:"u32",stackHeight:"u32",globals:"u32",parameters:"u32",memoryPages:"u32",tableSize:"u32",brTableSize:"u32",subjectLen:"u32"},PrefabWasmModule:{scheduleVersion:"Compact",initial:"Compact",maximum:"Compact",refcount:"Compact",_reserved:"Option",code:"Bytes",originalCodeLen:"u32"},RentProjection:{_enum:{EvictionAt:"BlockNumber",NoEviction:"Null"}},ScheduleTo212:{version:"u32",putCodePerByteCost:"Gas",growMemCost:"Gas",regularOpCost:"Gas",returnDataPerByteCost:"Gas",eventDataPerByteCost:"Gas",eventPerTopicCost:"Gas",eventBaseCost:"Gas",sandboxDataReadCost:"Gas",sandboxDataWriteCost:"Gas",maxEventTopics:"u32",maxStackHeight:"u32",maxMemoryPages:"u32",enablePrintln:"bool",maxSubjectLen:"u32"},ScheduleTo258:{version:"u32",putCodePerByteCost:"Gas",growMemCost:"Gas",regularOpCost:"Gas",returnDataPerByteCost:"Gas",eventDataPerByteCost:"Gas",eventPerTopicCost:"Gas",eventBaseCost:"Gas",sandboxDataReadCost:"Gas",sandboxDataWriteCost:"Gas",transferCost:"Gas",maxEventTopics:"u32",maxStackHeight:"u32",maxMemoryPages:"u32",enablePrintln:"bool",maxSubjectLen:"u32"},ScheduleTo264:{version:"u32",enablePrintln:"bool",limits:"LimitsTo264",instructionWeights:"InstructionWeights",hostFnWeights:"HostFnWeightsTo264"},Schedule:{version:"u32",enablePrintln:"bool",limits:"Limits",instructionWeights:"InstructionWeights",hostFnWeights:"HostFnWeights"},SeedOf:"Hash",StorageDeposit:{_enum:{Refund:"Balance",Charge:"Balance"}},TombstoneContractInfo:"Hash",TrieId:"Bytes"}},Cu={rpc:{},types:{AccountVote:{_enum:{Standard:"AccountVoteStandard",Split:"AccountVoteSplit"}},AccountVoteSplit:{aye:"Balance",nay:"Balance"},AccountVoteStandard:{vote:"Vote",balance:"Balance"},Conviction:{_enum:["None","Locked1x","Locked2x","Locked3x","Locked4x","Locked5x","Locked6x"]},Delegations:{votes:"Balance",capital:"Balance"},PreimageStatus:{_enum:{Missing:"BlockNumber",Available:"PreimageStatusAvailable"}},PreimageStatusAvailable:{data:"Bytes",provider:"AccountId",deposit:"Balance",since:"BlockNumber",expiry:"Option"},PriorLock:"(BlockNumber, Balance)",PropIndex:"u32",Proposal:"Call",ProxyState:{_enum:{Open:"AccountId",Active:"AccountId"}},ReferendumIndex:"u32",ReferendumInfoTo239:{end:"BlockNumber",proposalHash:"Hash",threshold:"VoteThreshold",delay:"BlockNumber"},ReferendumInfo:{_enum:{Ongoing:"ReferendumStatus",Finished:"ReferendumInfoFinished"}},ReferendumInfoFinished:{approved:"bool",end:"BlockNumber"},ReferendumStatus:{end:"BlockNumber",proposalHash:"Hash",threshold:"VoteThreshold",delay:"BlockNumber",tally:"Tally"},Tally:{ayes:"Balance",nays:"Balance",turnout:"Balance"},Voting:{_enum:{Direct:"VotingDirect",Delegating:"VotingDelegating"}},VotingDirect:{votes:"Vec",delegations:"Delegations",prior:"PriorLock"},VotingDirectVote:"(ReferendumIndex, AccountVote)",VotingDelegating:{balance:"Balance",target:"AccountId",conviction:"Conviction",delegations:"Delegations",prior:"PriorLock"}}},Au={rpc:{getBlockStats:{description:"Reexecute the specified `block_hash` and gather statistics while doing so",isUnsafe:!0,params:[{isHistoric:!0,name:"at",type:"Hash"}],type:"Option"}},types:{BlockStats:{witnessLen:"u64",witnessCompactLen:"u64",blockLen:"u64",blockNumExtrinsics:"u64"}}},Hu={rpc:{},runtime:{AuthorityDiscoveryApi:[{methods:{authorities:{description:"Retrieve authority identifiers of the current and next authority set.",params:[],type:"Vec"}},version:1}]},types:{}},Ru={rpc:{},types:{ApprovalFlag:"u32",DefunctVoter:{who:"AccountId",voteCount:"Compact",candidateCount:"Compact"},Renouncing:{_enum:{Member:"Null",RunnerUp:"Null",Candidate:"Compact"}},SetIndex:"u32",Vote:"GenericVote",VoteIndex:"u32",VoterInfo:{lastActive:"VoteIndex",lastWin:"VoteIndex",pot:"Balance",stake:"Balance"},VoteThreshold:{_enum:["Super Majority Approve","Super Majority Against","Simple Majority"]}}},Bu={rpc:{createBlock:{description:"Instructs the manual-seal authorship task to create a new block",params:[{name:"createEmpty",type:"bool"},{name:"finalize",type:"bool"},{isOptional:!0,name:"parentHash",type:"BlockHash"}],type:"CreatedBlock"},finalizeBlock:{description:"Instructs the manual-seal authorship task to finalize a block",params:[{name:"hash",type:"BlockHash"},{isOptional:!0,name:"justification",type:"Justification"}],type:"bool"}},types:{CreatedBlock:{_alias:{blockHash:"hash"},blockHash:"BlockHash",aux:"ImportedAux"},ImportedAux:{headerOnly:"bool",clearJustificationRequests:"bool",needsJustification:"bool",badJustification:"bool",needsFinalityProof:"bool",isNewBest:"bool"}}},Lu={rpc:{},types:{EvmAccount:{nonce:"u256",balance:"u256"},EvmCallInfo:{exitReason:"ExitReason",value:"Bytes",usedGas:"U256",logs:"Vec"},EvmCreateInfo:{exitReason:"ExitReason",value:"H160",usedGas:"U256",logs:"Vec"},EvmCallInfoV2:{exitReason:"ExitReason",value:"Bytes",usedGas:"U256",weightInfo:"Option",logs:"Vec"},EvmCreateInfoV2:{exitReason:"ExitReason",value:"H160",usedGas:"U256",weightInfo:"Option",logs:"Vec"},EvmLog:{address:"H160",topics:"Vec",data:"Bytes"},EvmVicinity:{gasPrice:"u256",origin:"H160"},EvmWeightInfo:{refTimeLimit:"Option",proofSizeLimit:"Option",refTimeUsage:"Option",proofSizeUsage:"Option"},ExitError:{_enum:{StackUnderflow:"Null",StackOverflow:"Null",InvalidJump:"Null",InvalidRange:"Null",DesignatedInvalid:"Null",CallTooDeep:"Null",CreateCollision:"Null",CreateContractLimit:"Null",OutOfOffset:"Null",OutOfGas:"Null",OutOfFund:"Null",PCUnderflow:"Null",CreateEmpty:"Null",Other:"Text"}},ExitFatal:{_enum:{NotSupported:"Null",UnhandledInterrupt:"Null",CallErrorAsFatal:"ExitError",Other:"Text"}},ExitReason:{_enum:{Succeed:"ExitSucceed",Error:"ExitError",Revert:"ExitRevert",Fatal:"ExitFatal"}},ExitRevert:{_enum:["Reverted"]},ExitSucceed:{_enum:["Stopped","Returned","Suicided"]}}},Uu={rpc:{},types:{Extrinsic:"GenericExtrinsic",ExtrinsicEra:"GenericExtrinsicEra",ExtrinsicPayload:"GenericExtrinsicPayload",ExtrinsicSignature:"MultiSignature",ExtrinsicV4:"GenericExtrinsicV4",ExtrinsicPayloadV4:"GenericExtrinsicPayloadV4",ExtrinsicSignatureV4:"GenericExtrinsicSignatureV4",ExtrinsicUnknown:"GenericExtrinsicUnknown",ExtrinsicPayloadUnknown:"GenericExtrinsicPayloadUnknown",Era:"ExtrinsicEra",ImmortalEra:"GenericImmortalEra",MortalEra:"GenericMortalEra",AnySignature:"H512",MultiSignature:{_enum:{Ed25519:"Ed25519Signature",Sr25519:"Sr25519Signature",Ecdsa:"EcdsaSignature"}},Signature:"H512",SignerPayload:"GenericSignerPayload",EcdsaSignature:"[u8; 65]",Ed25519Signature:"H512",Sr25519Signature:"H512"}},zu={rpc:{},runtime:{FungiblesApi:[{methods:{query_account_balances:{description:"Returns the list of all `MultiAsset` that an `AccountId` has",params:[{name:"account",type:"AccountId"}],type:"Result, FungiblesAccessError>"}},version:1},{methods:{query_account_balances:{description:"Returns the list of all `MultiAsset` that an `AccountId` has",params:[{name:"account",type:"AccountId"}],type:"Result"}},version:2}]},types:{FungiblesAccessError:{_enum:["AssetIdConversionFailed","AmountToBalanceConversionFailed"]}}},Du={rpc:{},types:{AssetOptions:{initalIssuance:"Compact",permissions:"PermissionLatest"},Owner:{_enum:{None:"Null",Address:"AccountId"}},PermissionsV1:{update:"Owner",mint:"Owner",burn:"Owner"},PermissionVersions:{_enum:{V1:"PermissionsV1"}},PermissionLatest:"PermissionsV1"}},qu={rpc:{},runtime:{GenesisBuilder:[{methods:{build_config:{description:"Build `RuntimeGenesisConfig` from a JSON blob not using any defaults and store it in the storage.",params:[{name:"json",type:"Vec"}],type:"Result<(), GenesisBuildErr>"},create_default_config:{description:"Creates the default `RuntimeGenesisConfig` and returns it as a JSON blob.",params:[],type:"Vec"}},version:1}]},types:{GenesisBuildErr:"Text"}},ju={rpc:{},types:{ActiveGilt:{proportion:"Perquintill",amount:"Balance",who:"AccountId",expiry:"BlockNumber"},ActiveGiltsTotal:{frozen:"Balance",proportion:"Perquintill",index:"ActiveIndex",target:"Perquintill"},ActiveIndex:"u32",GiltBid:{amount:"Balance",who:"AccountId"}}},Fu={generate_key_ownership_proof:{description:"Generates a proof of key ownership for the given authority in the given set.",params:[{name:"setId",type:"SetId"},{name:"authorityId",type:"AuthorityId"}],type:"Option"},grandpa_authorities:{description:"Get the current GRANDPA authorities and weights. This should not change except for when changes are scheduled and the corresponding delay has passed.",params:[],type:"AuthorityList"},submit_report_equivocation_unsigned_extrinsic:{description:"Submits an unsigned extrinsic to report an equivocation.",params:[{name:"equivocationProof",type:"GrandpaEquivocationProof"},{name:"keyOwnerProof",type:"OpaqueKeyOwnershipProof"}],type:"Option"}},Xu={rpc:{proveFinality:{description:"Prove finality for the given block number, returning the Justification for the last block in the set.",params:[{name:"blockNumber",type:"BlockNumber"}],type:"Option"},roundState:{description:"Returns the state of the current best round state as well as the ongoing background rounds",params:[],type:"ReportedRoundStates"},subscribeJustifications:{description:"Subscribes to grandpa justifications",params:[],pubsub:["justifications","subscribeJustifications","unsubscribeJustifications"],type:"JustificationNotification"}},runtime:{GrandpaApi:[{methods:{current_set_id:{description:"Get current GRANDPA authority set id.",params:[],type:"SetId"},...Fu},version:3},{methods:Fu,version:2}]},types:{AuthorityIndex:"u64",AuthorityList:"Vec",AuthoritySet:{currentAuthorities:"AuthorityList",setId:"u64",pendingStandardChanges:"ForkTreePendingChange",pendingForcedChanges:"Vec",authoritySetChanges:"AuthoritySetChanges"},ForkTreePendingChange:{roots:"Vec",bestFinalizedNumber:"Option"},ForkTreePendingChangeNode:{hash:"BlockHash",number:"BlockNumber",data:"PendingChange",children:"Vec"},AuthoritySetChange:"(U64, BlockNumber)",AuthoritySetChanges:"Vec",AuthorityWeight:"u64",DelayKind:{_enum:{Finalized:"Null",Best:"DelayKindBest"}},DelayKindBest:{medianLastFinalized:"BlockNumber"},EncodedFinalityProofs:"Bytes",GrandpaEquivocation:{_enum:{Prevote:"GrandpaEquivocationValue",Precommit:"GrandpaEquivocationValue"}},GrandpaEquivocationProof:{setId:"SetId",equivocation:"GrandpaEquivocation"},GrandpaEquivocationValue:{roundNumber:"u64",identity:"AuthorityId",first:"(GrandpaPrevote, AuthoritySignature)",second:"(GrandpaPrevote, AuthoritySignature)"},GrandpaPrevote:{targetHash:"Hash",targetNumber:"BlockNumber"},GrandpaCommit:{targetHash:"BlockHash",targetNumber:"BlockNumber",precommits:"Vec"},GrandpaPrecommit:{targetHash:"BlockHash",targetNumber:"BlockNumber"},GrandpaSignedPrecommit:{precommit:"GrandpaPrecommit",signature:"AuthoritySignature",id:"AuthorityId"},GrandpaJustification:{round:"u64",commit:"GrandpaCommit",votesAncestries:"Vec
"},JustificationNotification:"Bytes",KeyOwnerProof:"MembershipProof",NextAuthority:"(AuthorityId, AuthorityWeight)",PendingChange:{nextAuthorities:"AuthorityList",delay:"BlockNumber",canonHeight:"BlockNumber",canonHash:"BlockHash",delayKind:"DelayKind"},PendingPause:{scheduledAt:"BlockNumber",delay:"BlockNumber"},PendingResume:{scheduledAt:"BlockNumber",delay:"BlockNumber"},Precommits:{currentWeight:"u32",missing:"BTreeSet"},Prevotes:{currentWeight:"u32",missing:"BTreeSet"},ReportedRoundStates:{setId:"u32",best:"RoundState",background:"Vec"},RoundState:{round:"u32",totalWeight:"u32",thresholdWeight:"u32",prevotes:"Prevotes",precommits:"Precommits"},SetId:"u64",StoredPendingChange:{scheduledAt:"BlockNumber",delay:"BlockNumber",nextAuthorities:"AuthorityList"},StoredState:{_enum:{Live:"Null",PendingPause:"PendingPause",Paused:"Null",PendingResume:"PendingResume"}}}},Wu={rpc:{},types:{IdentityFields:{_set:{_bitLength:64,Display:1,Legal:2,Web:4,Riot:8,Email:16,PgpFingerprint:32,Image:64,Twitter:128}},IdentityInfoAdditional:"(Data, Data)",IdentityInfoTo198:{additional:"Vec",display:"Data",legal:"Data",web:"Data",riot:"Data",email:"Data",pgpFingerprint:"Option",image:"Data"},IdentityInfo:{_fallback:"IdentityInfoTo198",additional:"Vec",display:"Data",legal:"Data",web:"Data",riot:"Data",email:"Data",pgpFingerprint:"Option",image:"Data",twitter:"Data"},IdentityJudgement:{_enum:{Unknown:"Null",FeePaid:"Balance",Reasonable:"Null",KnownGood:"Null",OutOfDate:"Null",LowQuality:"Null",Erroneous:"Null"}},RegistrationJudgement:"(RegistrarIndex, IdentityJudgement)",RegistrationTo198:{judgements:"Vec",deposit:"Balance",info:"IdentityInfoTo198"},Registration:{_fallback:"RegistrationTo198",judgements:"Vec",deposit:"Balance",info:"IdentityInfo"},RegistrarIndex:"u32",RegistrarInfo:{account:"AccountId",fee:"Balance",fields:"IdentityFields"}}},Zu={rpc:{},types:{AuthIndex:"u32",AuthoritySignature:"Signature",Heartbeat:{blockNumber:"BlockNumber",networkState:"OpaqueNetworkState",sessionIndex:"SessionIndex",authorityIndex:"AuthIndex",validatorsLen:"u32"},HeartbeatTo244:{blockNumber:"BlockNumber",networkState:"OpaqueNetworkState",sessionIndex:"SessionIndex",authorityIndex:"AuthIndex"},OpaqueMultiaddr:"Opaque",OpaquePeerId:"Opaque",OpaqueNetworkState:{peerId:"OpaquePeerId",externalAddresses:"Vec"}}},Gu={rpc:{},types:{CallIndex:"(u8, u8)",LotteryConfig:{price:"Balance",start:"BlockNumber",length:"BlockNumber",delay:"BlockNumber",repeat:"bool"}}},Ku={rpc:{},runtime:{MixnetApi:[{methods:{current_mixnodes:{description:"Get the index and phase of the current session.",params:[],type:"Result"},maybe_register:{description:"Try to register a mixnode for the next session.",params:[{name:"session_index",type:"u32"},{name:"mixnode",type:"Mixnode"}],type:"bool"},prev_mixnodes:{description:"Get the index and phase of the current session.",params:[],type:"Result"},session_status:{description:"Get the index and phase of the current session.",params:[],type:"SessionStatus"}},version:1}]},types:{Mixnode:{externalAddresses:"Vec",kxPublic:"[u8; 32]",peerId:"[u8; 32]"},MixnodesErr:{_enum:{InsufficientRegistrations:{min:"u32",num:"u32"}}},SessionPhase:{_enum:["CoverToCurrent","RequestsToCurrent","CoverToPrev","DisconnectFromPrev"]},SessionStatus:{currentIndex:"u32",phase:"SessionPhase"}}},Yu={rpc:{generateProof:{description:"Generate MMR proof for the given block numbers.",params:[{name:"blockNumbers",type:"Vec"},{isOptional:!0,name:"bestKnownBlockNumber",type:"u64"},{isHistoric:!0,isOptional:!0,name:"at",type:"BlockHash"}],type:"MmrLeafBatchProof"},root:{description:"Get the MMR root hash for the current best block.",params:[{isHistoric:!0,isOptional:!0,name:"at",type:"BlockHash"}],type:"MmrHash"},verifyProof:{description:"Verify an MMR proof",params:[{name:"proof",type:"MmrLeafBatchProof"}],type:"bool"},verifyProofStateless:{description:"Verify an MMR proof statelessly given an mmr_root",params:[{name:"root",type:"MmrHash"},{name:"proof",type:"MmrLeafBatchProof"}],type:"bool"}},runtime:{MmrApi:[{methods:{generate_proof:{description:"Generate MMR proof for the given block numbers.",params:[{name:"blockNumbers",type:"Vec"},{name:"bestKnownBlockNumber",type:"Option"}],type:"Result<(Vec, MmrBatchProof), MmrError>"},mmr_leaf_count:{description:"Return the number of MMR blocks in the chain.",params:[],type:"Result"},mmr_root:{description:"Return the on-chain MMR root hash.",params:[],type:"Result"},verify_proof:{description:"Verify MMR proof against on-chain MMR.",params:[{name:"leaves",type:"Vec"},{name:"proof",type:"MmrBatchProof"}],type:"Result<(), MmrError>"},verify_proof_stateless:{description:"Verify MMR proof against given root hash.",params:[{name:"root",type:"Hash"},{name:"leaves",type:"Vec"},{name:"proof",type:"MmrBatchProof"}],type:"Result<(), MmrError>"}},version:2},{methods:{generate_batch_proof:{description:"Generate MMR proof for a series of leaves under given indices.",params:[{name:"leafIndices",type:"Vec"}],type:"Result<(Vec, MmrBatchProof), MmrError>"},generate_proof:{description:"Generate MMR proof for a leaf under given index.",params:[{name:"leafIndex",type:"MmrLeafIndex"}],type:"Result<(MmrEncodableOpaqueLeaf, MmrProof), MmrError>"},mmr_root:{description:"Return the on-chain MMR root hash.",params:[],type:"Result"},verify_batch_proof:{description:"Verify MMR proof against on-chain MMR for a batch of leaves.",params:[{name:"leaves",type:"Vec"},{name:"proof",type:"MmrBatchProof"}],type:"Result<(), MmrError>"},verify_batch_proof_stateless:{description:"Verify MMR proof against given root hash or a batch of leaves.",params:[{name:"root",type:"Hash"},{name:"leaves",type:"Vec"},{name:"proof",type:"MmrBatchProof"}],type:"Result<(), MmrError>"},verify_proof:{description:"Verify MMR proof against on-chain MMR.",params:[{name:"leaf",type:"MmrEncodableOpaqueLeaf"},{name:"proof",type:"MmrProof"}],type:"Result<(), MmrError>"},verify_proof_stateless:{description:"Verify MMR proof against given root hash.",params:[{name:"root",type:"Hash"},{name:"leaf",type:"MmrEncodableOpaqueLeaf"},{name:"proof",type:"MmrProof"}],type:"Result<(), MmrError>"}},version:1}]},types:{MmrBatchProof:{leafIndices:"Vec",leafCount:"MmrNodeIndex",items:"Vec"},MmrEncodableOpaqueLeaf:"Bytes",MmrError:{_enum:["InvalidNumericOp","Push","GetRoot","Commit","GenerateProof","Verify","LeafNotFound"," PalletNotIncluded","InvalidLeafIndex","InvalidBestKnownBlock"]},MmrHash:"Hash",MmrLeafBatchProof:{blockHash:"BlockHash",leaves:"Bytes",proof:"Bytes"},MmrLeafIndex:"u64",MmrLeafProof:{blockHash:"BlockHash",leaf:"Bytes",proof:"Bytes"},MmrNodeIndex:"u64",MmrProof:{leafIndex:"MmrLeafIndex",leafCount:"MmrNodeIndex",items:"Vec"}}},Ju={rpc:{},runtime:{NftsApi:[{methods:{attribute:{description:"An attribute",params:[{name:"collection",type:"NftCollectionId"},{name:"item",type:"NftItemId"},{name:"key",type:"Bytes"}],type:"Option"},collection_attribute:{description:"A collection attribute",params:[{name:"collection",type:"NftCollectionId"},{name:"key",type:"Bytes"}],type:"Option"},collection_owner:{description:"A collection owner",params:[{name:"collection",type:"NftCollectionId"}],type:"Option"},custom_attribute:{description:"A custom attribute",params:[{name:"account",type:"AccountId"},{name:"collection",type:"NftCollectionId"},{name:"item",type:"NftItemId"},{name:"key",type:"Bytes"}],type:"Option"},owner:{description:"Collection owner",params:[{name:"collection",type:"NftCollectionId"},{name:"item",type:"NftItemId"}],type:"Option"},system_attribute:{description:"System attribute",params:[{name:"collection",type:"NftCollectionId"},{name:"item",type:"NftItemId"},{name:"key",type:"Bytes"}],type:"Option"}},version:1}]},types:{NftCollectionId:"u32",NftItemId:"u32"}},Qu={rpc:{},runtime:{NominationPoolsApi:[{methods:{balance_to_points:{description:"Returns the equivalent points of `new_funds` for a given pool.",params:[{name:"poolId",type:"NpPoolId"},{name:"newFunds",type:"Balance"}],type:"Balance"},pending_rewards:{description:"Returns the pending rewards for the given member.",params:[{name:"member",type:"AccountId"}],type:"Balance"},points_to_balance:{description:"Returns the equivalent balance of `points` for a given pool.",params:[{name:"poolId",type:"NpPoolId"},{name:"points",type:"Balance"}],type:"Balance"}},version:1}]},types:{NpApiError:{_enum:["MemberNotFound","OverflowInPendingRewards"]},NpPoolId:"u32"}},$u={rpc:{},types:{DeferredOffenceOf:"(Vec, Vec, SessionIndex)",Kind:"[u8; 16]",OffenceDetails:{offender:"Offender",reporters:"Vec"},Offender:"IdentificationTuple",OpaqueTimeSlot:"Bytes",ReportIdOf:"Hash",Reporter:"AccountId"}},el={rpc:{},runtime:{DifficultyApi:[{methods:{difficulty:{description:"Return the target difficulty of the next block.",params:[],type:"Raw"}},version:1}],TimestampApi:[{methods:{timestamp:{description:"API necessary for timestamp-based difficulty adjustment algorithms.",params:[],type:"Moment"}},version:1}]},types:{}},tl={rpc:{},types:{ProxyDefinition:{delegate:"AccountId",proxyType:"ProxyType",delay:"BlockNumber"},ProxyType:{_enum:["Any","NonTransfer","Governance","Staking"]},ProxyAnnouncement:{real:"AccountId",callHash:"Hash",height:"BlockNumber"}}},nl={rpc:{},types:{ActiveRecovery:{created:"BlockNumber",deposit:"Balance",friends:"Vec"},RecoveryConfig:{delayPeriod:"BlockNumber",deposit:"Balance",friends:"Vec",threshold:"u16"}}},rl={rpc:{},types:{Period:"(BlockNumber, u32)",Priority:"u8",SchedulePeriod:"Period",SchedulePriority:"Priority",Scheduled:{maybeId:"Option",priority:"SchedulePriority",call:"Call",maybePeriodic:"Option",origin:"PalletsOrigin"},ScheduledTo254:{maybeId:"Option",priority:"SchedulePriority",call:"Call",maybePeriodic:"Option"},TaskAddress:"(BlockNumber, u32)"}},al={rpc:{},runtime:{SessionKeys:[{methods:{decode_session_keys:{description:"Decode the given public session keys.",params:[{name:"encoded",type:"Bytes"}],type:"Option>"},generate_session_keys:{description:"Generate a set of session keys with optionally using the given seed.",params:[{name:"seed",type:"Option"}],type:"Bytes"}},version:1}]},types:{BeefyKey:"[u8; 33]",Keys:"SessionKeys4",SessionKeys1:"(AccountId)",SessionKeys2:"(AccountId, AccountId)",SessionKeys3:"(AccountId, AccountId, AccountId)",SessionKeys4:"(AccountId, AccountId, AccountId, AccountId)",SessionKeys5:"(AccountId, AccountId, AccountId, AccountId, AccountId)",SessionKeys6:"(AccountId, AccountId, AccountId, AccountId, AccountId, AccountId)",SessionKeys6B:"(AccountId, AccountId, AccountId, AccountId, AccountId, BeefyKey)",SessionKeys7:"(AccountId, AccountId, AccountId, AccountId, AccountId, AccountId, AccountId)",SessionKeys7B:"(AccountId, AccountId, AccountId, AccountId, AccountId, AccountId, BeefyKey)",SessionKeys8:"(AccountId, AccountId, AccountId, AccountId, AccountId, AccountId, AccountId, AccountId)",SessionKeys8B:"(AccountId, AccountId, AccountId, AccountId, AccountId, AccountId, AccountId, BeefyKey)",SessionKeys9:"(AccountId, AccountId, AccountId, AccountId, AccountId, AccountId, AccountId, AccountId, AccountId)",SessionKeys9B:"(AccountId, AccountId, AccountId, AccountId, AccountId, AccountId, AccountId, AccountId, BeefyKey)",SessionKeys10:"(AccountId, AccountId, AccountId, AccountId, AccountId, AccountId, AccountId, AccountId, AccountId, AccountId)",SessionKeys10B:"(AccountId, AccountId, AccountId, AccountId, AccountId, AccountId, AccountId, AccountId, AccountId, BeefyKey)",FullIdentification:"Exposure",IdentificationTuple:"(ValidatorId, FullIdentification)",MembershipProof:{session:"SessionIndex",trieNodes:"Vec",validatorCount:"ValidatorCount"},SessionIndex:"u32",ValidatorCount:"u32"}},il={rpc:{},types:{Bid:{who:"AccountId",kind:"BidKind",value:"Balance"},BidKind:{_enum:{Deposit:"Balance",Vouch:"(AccountId, Balance)"}},SocietyJudgement:{_enum:["Rebid","Reject","Approve"]},SocietyVote:{_enum:["Skeptic","Reject","Approve"]},StrikeCount:"u32",VouchingStatus:{_enum:["Vouching","Banned"]}}},sl={rpc:{},runtime:{StakingApi:[{methods:{nominations_quota:{description:"Returns the nominations quota for a nominator with a given balance.",params:[{name:"balance",type:"Balance"}],type:"u32"}},version:1}]},types:{Points:"u32",EraPoints:{total:"Points",individual:"Vec"},CompactAssignments:"CompactAssignmentsWith16",CompactAssignmentsWith16:{votes1:"Vec<(NominatorIndexCompact, ValidatorIndexCompact)>",votes2:"Vec<(NominatorIndexCompact, CompactScoreCompact, ValidatorIndexCompact)>",votes3:"Vec<(NominatorIndexCompact, [CompactScoreCompact; 2], ValidatorIndexCompact)>",votes4:"Vec<(NominatorIndexCompact, [CompactScoreCompact; 3], ValidatorIndexCompact)>",votes5:"Vec<(NominatorIndexCompact, [CompactScoreCompact; 4], ValidatorIndexCompact)>",votes6:"Vec<(NominatorIndexCompact, [CompactScoreCompact; 5], ValidatorIndexCompact)>",votes7:"Vec<(NominatorIndexCompact, [CompactScoreCompact; 6], ValidatorIndexCompact)>",votes8:"Vec<(NominatorIndexCompact, [CompactScoreCompact; 7], ValidatorIndexCompact)>",votes9:"Vec<(NominatorIndexCompact, [CompactScoreCompact; 8], ValidatorIndexCompact)>",votes10:"Vec<(NominatorIndexCompact, [CompactScoreCompact; 9], ValidatorIndexCompact)>",votes11:"Vec<(NominatorIndexCompact, [CompactScoreCompact; 10], ValidatorIndexCompact)>",votes12:"Vec<(NominatorIndexCompact, [CompactScoreCompact; 11], ValidatorIndexCompact)>",votes13:"Vec<(NominatorIndexCompact, [CompactScoreCompact; 12], ValidatorIndexCompact)>",votes14:"Vec<(NominatorIndexCompact, [CompactScoreCompact; 13], ValidatorIndexCompact)>",votes15:"Vec<(NominatorIndexCompact, [CompactScoreCompact; 14], ValidatorIndexCompact)>",votes16:"Vec<(NominatorIndexCompact, [CompactScoreCompact; 15], ValidatorIndexCompact)>"},CompactAssignmentsWith24:{votes1:"Vec<(NominatorIndexCompact, ValidatorIndexCompact)>",votes2:"Vec<(NominatorIndexCompact, CompactScoreCompact, ValidatorIndexCompact)>",votes3:"Vec<(NominatorIndexCompact, [CompactScoreCompact; 2], ValidatorIndexCompact)>",votes4:"Vec<(NominatorIndexCompact, [CompactScoreCompact; 3], ValidatorIndexCompact)>",votes5:"Vec<(NominatorIndexCompact, [CompactScoreCompact; 4], ValidatorIndexCompact)>",votes6:"Vec<(NominatorIndexCompact, [CompactScoreCompact; 5], ValidatorIndexCompact)>",votes7:"Vec<(NominatorIndexCompact, [CompactScoreCompact; 6], ValidatorIndexCompact)>",votes8:"Vec<(NominatorIndexCompact, [CompactScoreCompact; 7], ValidatorIndexCompact)>",votes9:"Vec<(NominatorIndexCompact, [CompactScoreCompact; 8], ValidatorIndexCompact)>",votes10:"Vec<(NominatorIndexCompact, [CompactScoreCompact; 9], ValidatorIndexCompact)>",votes11:"Vec<(NominatorIndexCompact, [CompactScoreCompact; 10], ValidatorIndexCompact)>",votes12:"Vec<(NominatorIndexCompact, [CompactScoreCompact; 11], ValidatorIndexCompact)>",votes13:"Vec<(NominatorIndexCompact, [CompactScoreCompact; 12], ValidatorIndexCompact)>",votes14:"Vec<(NominatorIndexCompact, [CompactScoreCompact; 13], ValidatorIndexCompact)>",votes15:"Vec<(NominatorIndexCompact, [CompactScoreCompact; 14], ValidatorIndexCompact)>",votes16:"Vec<(NominatorIndexCompact, [CompactScoreCompact; 15], ValidatorIndexCompact)>",votes17:"Vec<(NominatorIndexCompact, [CompactScoreCompact; 16], ValidatorIndexCompact)>",votes18:"Vec<(NominatorIndexCompact, [CompactScoreCompact; 17], ValidatorIndexCompact)>",votes19:"Vec<(NominatorIndexCompact, [CompactScoreCompact; 18], ValidatorIndexCompact)>",votes20:"Vec<(NominatorIndexCompact, [CompactScoreCompact; 19], ValidatorIndexCompact)>",votes21:"Vec<(NominatorIndexCompact, [CompactScoreCompact; 20], ValidatorIndexCompact)>",votes22:"Vec<(NominatorIndexCompact, [CompactScoreCompact; 21], ValidatorIndexCompact)>",votes23:"Vec<(NominatorIndexCompact, [CompactScoreCompact; 22], ValidatorIndexCompact)>",votes24:"Vec<(NominatorIndexCompact, [CompactScoreCompact; 23], ValidatorIndexCompact)>"},CompactAssignmentsTo265:"CompactAssignmentsWith16",CompactAssignmentsTo257:{votes1:"Vec<(NominatorIndex, [CompactScore; 0], ValidatorIndex)>",votes2:"Vec<(NominatorIndex, [CompactScore; 1], ValidatorIndex)>",votes3:"Vec<(NominatorIndex, [CompactScore; 2], ValidatorIndex)>",votes4:"Vec<(NominatorIndex, [CompactScore; 3], ValidatorIndex)>",votes5:"Vec<(NominatorIndex, [CompactScore; 4], ValidatorIndex)>",votes6:"Vec<(NominatorIndex, [CompactScore; 5], ValidatorIndex)>",votes7:"Vec<(NominatorIndex, [CompactScore; 6], ValidatorIndex)>",votes8:"Vec<(NominatorIndex, [CompactScore; 7], ValidatorIndex)>",votes9:"Vec<(NominatorIndex, [CompactScore; 8], ValidatorIndex)>",votes10:"Vec<(NominatorIndex, [CompactScore; 9], ValidatorIndex)>",votes11:"Vec<(NominatorIndex, [CompactScore; 10], ValidatorIndex)>",votes12:"Vec<(NominatorIndex, [CompactScore; 11], ValidatorIndex)>",votes13:"Vec<(NominatorIndex, [CompactScore; 12], ValidatorIndex)>",votes14:"Vec<(NominatorIndex, [CompactScore; 13], ValidatorIndex)>",votes15:"Vec<(NominatorIndex, [CompactScore; 14], ValidatorIndex)>",votes16:"Vec<(NominatorIndex, [CompactScore; 15], ValidatorIndex)>"},CompactScore:"(ValidatorIndex, OffchainAccuracy)",CompactScoreCompact:"(ValidatorIndexCompact, OffchainAccuracyCompact)",ElectionCompute:{_enum:["OnChain","Signed","Unsigned"]},ElectionPhase:{_enum:{Off:null,Signed:null,Unsigned:"(bool, BlockNumber)",Emergency:null}},ElectionResult:{compute:"ElectionCompute",slotStake:"Balance",electedStashes:"Vec",exposures:"Vec<(AccountId, Exposure)>"},ElectionScore:"[u128; 3]",ElectionSize:{validators:"Compact",nominators:"Compact"},ElectionStatus:{_enum:{Close:"Null",Open:"BlockNumber"}},ExtendedBalance:"u128",RawSolution:"RawSolutionWith16",RawSolutionWith16:{compact:"CompactAssignmentsWith16",score:"ElectionScore",round:"u32"},RawSolutionWith24:{compact:"CompactAssignmentsWith24",score:"ElectionScore",round:"u32"},RawSolutionTo265:"RawSolutionWith16",ReadySolution:{supports:"SolutionSupports",score:"ElectionScore",compute:"ElectionCompute"},RoundSnapshot:{voters:"Vec<(AccountId, VoteWeight, Vec)>",targets:"Vec"},SeatHolder:{who:"AccountId",stake:"Balance",deposit:"Balance"},SignedSubmission:{_fallback:"SignedSubmissionTo276",who:"AccountId",deposit:"Balance",solution:"RawSolution",reward:"Balance"},SignedSubmissionTo276:{who:"AccountId",deposit:"Balance",solution:"RawSolution"},SignedSubmissionOf:"SignedSubmission",SolutionOrSnapshotSize:{voters:"Compact",targets:"Compact"},SolutionSupport:{total:"ExtendedBalance",voters:"Vec<(AccountId, ExtendedBalance)>"},SolutionSupports:"Vec<(AccountId, SolutionSupport)>",Supports:"SolutionSupports",SubmissionIndicesOf:"BTreeMap",Voter:{votes:"Vec",stake:"Balance",deposit:"Balance"},VoteWeight:"u64",ActiveEraInfo:{index:"EraIndex",start:"Option"},EraIndex:"u32",EraRewardPoints:{total:"RewardPoint",individual:"BTreeMap"},EraRewards:{total:"u32",rewards:"Vec"},Exposure:{total:"Compact",own:"Compact",others:"Vec"},Forcing:{_enum:["NotForcing","ForceNew","ForceNone","ForceAlways"]},IndividualExposure:{who:"AccountId",value:"Compact"},KeyType:"AccountId",MomentOf:"Moment",Nominations:{targets:"Vec",submittedIn:"EraIndex",suppressed:"bool"},NominatorIndex:"u32",NominatorIndexCompact:"Compact",OffchainAccuracy:"PerU16",OffchainAccuracyCompact:"Compact",PhragmenScore:"[u128; 3]",Points:"u32",RewardDestination:{_enum:{Staked:"Null",Stash:"Null",Controller:"Null",Account:"AccountId",None:"Null"}},RewardPoint:"u32",SlashJournalEntry:{who:"AccountId",amount:"Balance",ownSlash:"Balance"},SlashingSpansTo204:{spanIndex:"SpanIndex",lastStart:"EraIndex",prior:"Vec"},SlashingSpans:{spanIndex:"SpanIndex",lastStart:"EraIndex",lastNonzeroSlash:"EraIndex",prior:"Vec"},SpanIndex:"u32",SpanRecord:{slashed:"Balance",paidOut:"Balance"},StakingLedgerTo223:{stash:"AccountId",total:"Compact",active:"Compact",unlocking:"Vec"},StakingLedgerTo240:{_fallback:"StakingLedgerTo223",stash:"AccountId",total:"Compact",active:"Compact",unlocking:"Vec",lastReward:"Option"},StakingLedger:{stash:"AccountId",total:"Compact",active:"Compact",unlocking:"Vec",claimedRewards:"Vec"},UnappliedSlashOther:"(AccountId, Balance)",UnappliedSlash:{validator:"AccountId",own:"Balance",others:"Vec",reporters:"Vec",payout:"Balance"},UnlockChunk:{value:"Compact",era:"Compact"},ValidatorIndex:"u16",ValidatorIndexCompact:"Compact",ValidatorPrefs:"ValidatorPrefsWithBlocked",ValidatorPrefsWithCommission:{commission:"Compact"},ValidatorPrefsWithBlocked:{commission:"Compact",blocked:"bool"},ValidatorPrefsTo196:{validatorPayment:"Compact"},ValidatorPrefsTo145:{unstakeThreshold:"Compact",validatorPayment:"Compact"}}},ol={rpc:{},runtime:{ValidateStatement:[{methods:{valdate_statement:{description:"Validate the statement.",params:[{name:"source",type:"StatementStoreStatementSource"},{name:"statement",type:"SpStatementStoreStatement"}],type:"Result"}},version:1}]},types:{StatementStoreStatementSource:{_enum:["Chain","Network","Local"]},StatementStoreValidStatement:{maxCount:"u32",maxSize:"u32"},StatementStoreInvalidStatement:{_enum:["BadProof","NoProof","InternalError"]}}},cl={rpc:{},types:{WeightToFeeCoefficient:{coeffInteger:"Balance",coeffFrac:"Perbill",negative:"bool",degree:"u8"}}},dl={rpc:{genSyncSpec:{description:"Returns the json-serialized chainspec running the node, with a sync state.",endpoint:"sync_state_genSyncSpec",params:[{name:"raw",type:"bool"}],type:"Json"}},types:{}},ul={rpc:{accountNextIndex:{alias:["account_nextIndex"],description:"Retrieves the next accountIndex as available on the node",params:[{name:"accountId",type:"AccountId"}],type:"Index"},addLogFilter:{description:"Adds the supplied directives to the current log filter",isUnsafe:!0,params:[{name:"directives",type:"Text"}],type:"Null"},addReservedPeer:{description:"Adds a reserved peer",isUnsafe:!0,params:[{name:"peer",type:"Text"}],type:"Text"},chain:{description:"Retrieves the chain",params:[],type:"Text"},chainType:{description:"Retrieves the chain type",params:[],type:"ChainType"},dryRun:{alias:["system_dryRunAt"],description:"Dry run an extrinsic at a given block",isUnsafe:!0,params:[{name:"extrinsic",type:"Bytes"},{isHistoric:!0,isOptional:!0,name:"at",type:"BlockHash"}],type:"ApplyExtrinsicResult"},health:{description:"Return health status of the node",noErrorLog:!0,params:[],type:"Health"},localListenAddresses:{description:"The addresses include a trailing /p2p/ with the local PeerId, and are thus suitable to be passed to addReservedPeer or as a bootnode address for example",params:[],type:"Vec"},localPeerId:{description:"Returns the base58-encoded PeerId of the node",params:[],type:"Text"},name:{description:"Retrieves the node name",params:[],type:"Text"},networkState:{alias:["system_unstable_networkState"],description:"Returns current state of the network",isUnsafe:!0,params:[],type:"NetworkState"},nodeRoles:{description:"Returns the roles the node is running as",params:[],type:"Vec"},peers:{description:"Returns the currently connected peers",isUnsafe:!0,params:[],type:"Vec"},properties:{description:"Get a custom set of properties as a JSON object, defined in the chain spec",params:[],type:"ChainProperties"},removeReservedPeer:{description:"Remove a reserved peer",isUnsafe:!0,params:[{name:"peerId",type:"Text"}],type:"Text"},reservedPeers:{description:"Returns the list of reserved peers",params:[],type:"Vec"},resetLogFilter:{description:"Resets the log filter to Substrate defaults",isUnsafe:!0,params:[],type:"Null"},syncState:{description:"Returns the state of the syncing of the node",params:[],type:"SyncState"},version:{description:"Retrieves the version of the node",params:[],type:"Text"}},runtime:{AccountNonceApi:[{methods:{account_nonce:{description:"The API to query account nonce (aka transaction index)",params:[{name:"accountId",type:"AccountId"}],type:"Index"}},version:1}]},types:{AccountInfo:"AccountInfoWithTripleRefCount",AccountInfoWithRefCountU8:{nonce:"Index",refcount:"u8",data:"AccountData"},AccountInfoWithRefCount:{_fallback:"AccountInfoWithRefCountU8",nonce:"Index",refcount:"RefCount",data:"AccountData"},AccountInfoWithDualRefCount:{_fallback:"AccountInfoWithRefCount",nonce:"Index",consumers:"RefCount",providers:"RefCount",data:"AccountData"},AccountInfoWithProviders:"AccountInfoWithDualRefCount",AccountInfoWithTripleRefCount:{_fallback:"AccountInfoWithDualRefCount",nonce:"Index",consumers:"RefCount",providers:"RefCount",sufficients:"RefCount",data:"AccountData"},ApplyExtrinsicResult:"Result",ApplyExtrinsicResultPre6:"Result",ArithmeticError:{_enum:["Underflow","Overflow","DivisionByZero"]},BlockLength:{max:"PerDispatchClassU32"},BlockWeights:{baseBlock:"Weight",maxBlock:"Weight",perClass:"PerDispatchClassWeightsPerClass"},ChainProperties:"GenericChainProperties",ChainType:{_enum:{Development:"Null",Local:"Null",Live:"Null",Custom:"Text"}},ConsumedWeight:"PerDispatchClassWeight",DigestOf:"Digest",DispatchClass:{_enum:["Normal","Operational","Mandatory"]},DispatchError:{_enum:{Other:"Null",CannotLookup:"Null",BadOrigin:"Null",Module:"DispatchErrorModule",ConsumerRemaining:"Null",NoProviders:"Null",TooManyConsumers:"Null",Token:"TokenError",Arithmetic:"ArithmeticError",Transactional:"TransactionalError",Exhausted:"Null",Corruption:"Null",Unavailable:"Null"}},DispatchErrorPre6:{_enum:{Other:"Null",CannotLookup:"Null",BadOrigin:"Null",Module:"DispatchErrorModulePre6",ConsumerRemaining:"Null",NoProviders:"Null",TooManyConsumers:"Null",Token:"TokenError",Arithmetic:"ArithmeticError",Transactional:"TransactionalError"}},DispatchErrorPre6First:{_enum:{Other:"Null",CannotLookup:"Null",BadOrigin:"Null",Module:"DispatchErrorModulePre6",ConsumerRemaining:"Null",NoProviders:"Null",Token:"TokenError",Arithmetic:"ArithmeticError",Transactional:"TransactionalError"}},DispatchErrorModuleU8:{index:"u8",error:"u8"},DispatchErrorModuleU8a:{index:"u8",error:"[u8; 4]"},DispatchErrorModule:"DispatchErrorModuleU8a",DispatchErrorModulePre6:"DispatchErrorModuleU8",DispatchErrorTo198:{module:"Option",error:"u8"},DispatchInfo:{weight:"Weight",class:"DispatchClass",paysFee:"Pays"},DispatchInfoTo190:{weight:"Weight",class:"DispatchClass"},DispatchInfoTo244:{weight:"Weight",class:"DispatchClass",paysFee:"bool"},DispatchOutcome:"Result<(), DispatchError>",DispatchOutcomePre6:"Result<(), DispatchErrorPre6>",DispatchResult:"Result<(), DispatchError>",DispatchResultOf:"DispatchResult",DispatchResultTo198:"Result<(), Text>",Event:"GenericEvent",EventId:"[u8; 2]",EventIndex:"u32",EventRecord:{phase:"Phase",event:"Event",topics:"Vec"},Health:{peers:"u64",isSyncing:"bool",shouldHavePeers:"bool"},InvalidTransaction:{_enum:{Call:"Null",Payment:"Null",Future:"Null",Stale:"Null",BadProof:"Null",AncientBirthBlock:"Null",ExhaustsResources:"Null",Custom:"u8",BadMandatory:"Null",MandatoryDispatch:"Null",BadSigner:"Null"}},Key:"Bytes",LastRuntimeUpgradeInfo:{specVersion:"Compact",specName:"Text"},NetworkState:{peerId:"Text",listenedAddresses:"Vec",externalAddresses:"Vec",connectedPeers:"HashMap",notConnectedPeers:"HashMap",averageDownloadPerSec:"u64",averageUploadPerSec:"u64",peerset:"NetworkStatePeerset"},NetworkStatePeerset:{messageQueue:"u64",nodes:"HashMap"},NetworkStatePeersetInfo:{connected:"bool",reputation:"i32"},NodeRole:{_enum:{Full:"Null",LightClient:"Null",Authority:"Null",UnknownRole:"u8"}},NotConnectedPeer:{knownAddresses:"Vec",latestPingTime:"Option",versionString:"Option"},Peer:{enabled:"bool",endpoint:"PeerEndpoint",knownAddresses:"Vec",latestPingTime:"PeerPing",open:"bool",versionString:"Text"},PeerEndpoint:{listening:"PeerEndpointAddr"},PeerEndpointAddr:{_alias:{localAddr:"local_addr",sendBackAddr:"send_back_addr"},localAddr:"Text",sendBackAddr:"Text"},PeerPing:{nanos:"u64",secs:"u64"},PeerInfo:{peerId:"Text",roles:"Text",protocolVersion:"u32",bestHash:"Hash",bestNumber:"BlockNumber"},PerDispatchClassU32:{normal:"u32",operational:"u32",mandatory:"u32"},PerDispatchClassWeight:{normal:"Weight",operational:"Weight",mandatory:"Weight"},PerDispatchClassWeightsPerClass:{normal:"WeightPerClass",operational:"WeightPerClass",mandatory:"WeightPerClass"},Phase:{_enum:{ApplyExtrinsic:"u32",Finalization:"Null",Initialization:"Null"}},RawOrigin:{_enum:{Root:"Null",Signed:"AccountId",None:"Null"}},RefCount:"u32",RefCountTo259:"u8",SyncState:{startingBlock:"BlockNumber",currentBlock:"BlockNumber",highestBlock:"Option"},SystemOrigin:"RawOrigin",TokenError:{_enum:["NoFunds","WouldDie","BelowMinimum","CannotCreate","UnknownAsset","Frozen","Unsupported","Underflow","Overflow"]},TransactionValidityError:{_enum:{Invalid:"InvalidTransaction",Unknown:"UnknownTransaction"}},TransactionalError:{_enum:["LimitReached","NoLayer"]},UnknownTransaction:{_enum:{CannotLookup:"Null",NoUnsignedValidator:"Null",Custom:"u8"}},WeightPerClass:{baseExtrinsic:"Weight",maxExtrinsic:"Option",maxTotal:"Option",reserved:"Option"}}},ll={rpc:{},types:{Bounty:{proposer:"AccountId",value:"Balance",fee:"Balance",curatorDeposit:"Balance",bond:"Balance",status:"BountyStatus"},BountyIndex:"u32",BountyStatus:{_enum:{Proposed:"Null",Approved:"Null",Funded:"Null",CuratorProposed:"BountyStatusCuratorProposed",Active:"BountyStatusActive",PendingPayout:"BountyStatusPendingPayout"}},BountyStatusActive:{curator:"AccountId",updateDue:"BlockNumber"},BountyStatusCuratorProposed:{curator:"AccountId"},BountyStatusPendingPayout:{curator:"AccountId",beneficiary:"AccountId",unlockAt:"BlockNumber"},OpenTip:{reason:"Hash",who:"AccountId",finder:"AccountId",deposit:"Balance",closes:"Option",tips:"Vec",findersFee:"bool"},OpenTipTo225:{reason:"Hash",who:"AccountId",finder:"Option",closes:"Option",tips:"Vec"},OpenTipFinderTo225:"(AccountId, Balance)",OpenTipTip:"(AccountId, Balance)",TreasuryProposal:{proposer:"AccountId",value:"Balance",beneficiary:"AccountId",bond:"Balance"}}},fl={rpc:{},types:{Multiplier:"Fixed128"}},pl={rpc:{},runtime:{TaggedTransactionQueue:[{methods:{validate_transaction:{description:"Validate the transaction.",params:[{name:"source",type:"TransactionSource"},{name:"tx",type:"Extrinsic"},{name:"blockHash",type:"BlockHash"}],type:"TransactionValidity"}},version:3},{methods:{validate_transaction:{description:"Validate the transaction.",params:[{name:"source",type:"TransactionSource"},{name:"tx",type:"Extrinsic"}],type:"TransactionValidity"}},version:2},{methods:{validate_transaction:{description:"Validate the transaction.",params:[{name:"tx",type:"Extrinsic"}],type:"TransactionValidity"}},version:1}]},types:{TransactionSource:{_enum:["InBlock","Local","External"]},TransactionValidity:"Result",ValidTransaction:{priority:"TransactionPriority",requires:"Vec",provides:"Vec",longevity:"TransactionLongevity",propagate:"bool"}}},hl={rpc:{},types:{ClassId:"u32",InstanceId:"u32",DepositBalance:"Balance",DepositBalanceOf:"Balance",ClassDetails:{owner:"AccountId",issuer:"AccountId",admin:"AccountId",freezer:"AccountId",totalDeposit:"DepositBalance",freeHolding:"bool",instances:"u32",instanceMetadatas:"u32",attributes:"u32",isFrozen:"bool"},DestroyWitness:{instances:"Compact",instanceMetadatas:"Compact",attributes:"Compact"},InstanceDetails:{owner:"AccountId",approved:"Option",isFrozen:"bool",deposit:"DepositBalance"},ClassMetadata:{deposit:"DepositBalance",data:"Vec",isFrozen:"bool"},InstanceMetadata:{deposit:"DepositBalance",data:"Vec",isFrozen:"bool"}}},bl={rpc:{},types:{Multisig:{when:"Timepoint",deposit:"Balance",depositor:"AccountId",approvals:"Vec"},Timepoint:{height:"BlockNumber",index:"u32"}}},ml={rpc:{},types:{VestingInfo:{locked:"Balance",perBlock:"Balance",startingBlock:"BlockNumber"}}},yl={rpc:{},types:{BlockAttestations:{receipt:"CandidateReceipt",valid:"Vec",invalid:"Vec"},IncludedBlocks:{actualNumber:"BlockNumber",session:"SessionIndex",randomSeed:"H256",activeParachains:"Vec",paraBlocks:"Vec"},MoreAttestations:{}}},xl={rpc:{},types:{BridgedBlockHash:"H256",BridgedBlockNumber:"BlockNumber",BridgedHeader:"Header",BridgeMessageId:"(LaneId, MessageNonce)",CallOrigin:{_enum:{SourceRoot:"Null",TargetAccount:"(AccountId, MultiSigner, MultiSignature)",SourceAccount:"AccountId"}},ChainId:"[u8; 4]",DeliveredMessages:{begin:"MessageNonce",end:"MessageNonce",dispatchResults:"BitVec"},DispatchFeePayment:{_enum:["AtSourceChain","AtTargetChain"]},InboundLaneData:{relayers:"Vec",lastConfirmedNonce:"MessageNonce"},InboundRelayer:"AccountId",InitializationData:{header:"Header",authorityList:"AuthorityList",setId:"SetId",isHalted:"bool"},LaneId:"[u8; 4]",MessageData:{payload:"Bytes",fee:"Balance"},MessagesDeliveryProofOf:{bridgedHeaderHash:"BlockHash",storageProof:"Vec",lane:"LaneId"},MessageKey:{laneId:"LaneId",nonce:"MessageNonce"},MessageNonce:"u64",MessagesProofOf:{bridgedHeaderHash:"BridgedBlockHash",storageProof:"Vec",lane:"LaneId",noncesStart:"MessageNonce",noncesEnd:"MessageNonce"},OperatingMode:{_enum:["Normal","RejectingOutboundMessages","Halted"]},OutboundLaneData:{oldestUnprunedNonce:"MessageNonce",latestReceivedNonce:"MessageNonce",latestGeneratedNonce:"MessageNonce"},OutboundMessageFee:"Balance",OutboundPayload:{specVersion:"u32",weight:"Weight",origin:"CallOrigin",dispatchFeePayment:"DispatchFeePayment",call:"Bytes"},Parameter:"Null",RelayerId:"AccountId",UnrewardedRelayer:{relayer:"RelayerId",messages:"DeliveredMessages"},UnrewardedRelayersState:{unrewardedRelayer_Entries:"MessageNonce",messagesInOldestEntry:"MessageNonce",totalMessages:"MessageNonce"}}},gl={rpc:{},types:{StatementKind:{_enum:["Regular","Saft"]}}},vl={rpc:{},types:{FundIndex:"u32",LastContribution:{_enum:{Never:"Null",PreEnding:"u32",Ending:"BlockNumber"}},FundInfo:{depositor:"AccountId",verifier:"Option",deposit:"Balance",raised:"Balance",end:"BlockNumber",cap:"Balance",lastContribution:"LastContribution",firstPeriod:"LeasePeriod",lastPeriod:"LeasePeriod",trieIndex:"TrieIndex"},TrieIndex:"u32"}},wl={rpc:{},runtime:{CollectCollationInfo:[{methods:{collect_collation_info:{description:"Collect information about a collation.",params:[{name:"header",type:"Header"}],type:"CollationInfo"}},version:2},{methods:{collect_collation_info:{description:"Collect information about a collation.",params:[],type:"CollationInfoV1"}},version:1}]},types:{CollationInfo:{upwardMessages:"Vec",horizontalMessages:"Vec",newValidationCode:"Option",processedDownwardMessages:"u32",hrmpWatermark:"RelayBlockNumber",headData:"HeadData"},CollationInfoV1:{upwardMessages:"Vec",horizontalMessages:"Vec",newValidationCode:"Option",processedDownwardMessages:"u32",hrmpWatermark:"RelayBlockNumber"},ConfigData:{maxIndividual:"Weight"},MessageId:"[u8; 32]",OverweightIndex:"u64",PageCounter:"u32",PageIndexData:{beginUsed:"PageCounter",endUsed:"PageCounter",overweightCount:"OverweightIndex"}}},Sl={methods:{best_finalized:{description:"Returns number and hash of the best finalized header known to the bridge module.",params:[],type:"(BlockNumber, Hash)"}},version:1},kl={rpc:{},runtime:{KusamaFinalityApi:[Sl],PolkadotFinalityApi:[Sl],RococoFinalityApi:[Sl],WestendFinalityApi:[Sl]},types:{}},Tl={assumed_validation_data:{description:"Returns the persisted validation data for the given `ParaId` along with the corresponding validation code hash.",params:[{name:"paraId",type:"ParaId"},{name:"hash",type:"Hash"}],type:"Option<(PersistedValidationData, ValidationCodeHash)>"},availability_cores:{description:"Yields information on all availability cores as relevant to the child block.",params:[],type:"Vec"},candidate_events:{description:"Get a vector of events concerning candidates that occurred within a block.",params:[],type:"Vec"},candidate_pending_availability:{description:"Get the receipt of a candidate pending availability.",params:[{name:"paraId",type:"ParaId"}],type:"Option"},check_validation_outputs:{description:"Checks if the given validation outputs pass the acceptance criteria.",params:[{name:"paraId",type:"ParaId"},{name:"outputs",type:"CandidateCommitments"}],type:"bool"},dmq_contents:{description:"Get all the pending inbound messages in the downward message queue for a para.",params:[{name:"paraId",type:"ParaId"}],type:"Vec"},inbound_hrmp_channels_contents:{description:"Get the contents of all channels addressed to the given recipient.",params:[{name:"paraId",type:"ParaId"}],type:"Vec"},on_chain_votes:{description:"Scrape dispute relevant from on-chain, backing votes and resolved disputes.",params:[],type:"Option"},persisted_validation_data:{description:"Yields the persisted validation data for the given `ParaId` along with an assumption that should be used if the para currently occupies a core.",params:[{name:"paraId",type:"ParaId"},{name:"assumption",type:"OccupiedCoreAssumption"}],type:"Option"},session_index_for_child:{description:"Returns the session index expected at a child of the block.",params:[],type:"SessionIndex"},validation_code:{description:"Fetch the validation code used by a para, making the given `OccupiedCoreAssumption`.",params:[{name:"paraId",type:"ParaId"},{name:"assumption",type:"OccupiedCoreAssumption"}],type:"Option"},validation_code_by_hash:{description:"Get the validation code from its hash.",params:[{name:"hash",type:"ValidationCodeHash"}],type:"Option"},validator_groups:{description:"Returns the validator groups and rotation info localized based on the hypothetical child of a block whose state this is invoked on",params:[],type:"(Vec>, GroupRotationInfo)"},validators:{description:"Get the current validators.",params:[],type:"Vec"}},Pl={pvfs_require_precheck:{description:"Returns code hashes of PVFs that require pre-checking by validators in the active set.",params:[],type:"Vec"},session_info:{description:"Get the session info for the given session, if stored.",params:[{name:"index",type:"SessionIndex"}],type:"Option"},submit_pvf_check_statement:{description:"Submits a PVF pre-checking statement into the transaction pool.",params:[{name:"stmt",type:"PvfCheckStatement"},{name:"signature",type:"ValidatorSignature"}],type:"Null"},validation_code_hash:{description:"Fetch the hash of the validation code used by a para, making the given `OccupiedCoreAssumption`.",params:[{name:"paraId",type:"ParaId"},{name:"assumption",type:"OccupiedCoreAssumption"}],type:"Option"}},Vl={disputes:{description:"Returns all onchain disputes.",params:[],type:"Vec<(SessionIndex, CandidateHash, DisputeState)>"}},Ml={session_executor_params:{description:"Returns execution parameters for the session.",params:[{name:"sessionIndex",type:"SessionIndex"}],type:"Option"}},_l={key_ownership_proof:{description:"Returns a merkle proof of a validator session key",params:[{name:"validatorId",type:"ValidatorId"}],type:"Option"},submit_report_dispute_lost:{description:"Submit an unsigned extrinsic to slash validators who lost a dispute about a candidate of a past session",params:[{name:"disputeProof",type:"DisputeProof"},{name:"keyOwnershipProof",type:"OpaqueKeyOwnershipProof"}],type:"Option"},unapplied_slashes:{description:"Returns a list of validators that lost a past session dispute and need to be slashed",params:[],type:"Vec<(SessionIndex, CandidateHash, PendingSlashes)>"}},Il={minimum_backing_votes:{description:"Get the minimum number of backing votes for a parachain candidate. This is a staging method! Do not use on production runtimes!",params:[],type:"u32"}},Ol={async_backing_params:{description:"Returns candidate's acceptance limitations for asynchronous backing for a relay parent",params:[],type:"AsyncBackingParams"},para_backing_state:{description:"Returns the state of parachain backing for a given para",params:[{name:"paraId",type:"ParaId"}],type:"Option"}},Nl={disabled_validators:{description:"Returns a list of all disabled validators at the given block",params:[],type:"ValidatorIndex"}},El={node_features:{description:"Get node features. This is a staging method! Do not use on production runtimes!",params:[],type:"NodeFeatures"}},Cl={_enum:["ZeroZero","ZeroOne","ZeroTwo","ZeroThree","OneOne","OneTwo","OneThree","TwoTwo","TwoThree","ThreeThree"]},Al={_enum:["ZeroZero","ZeroOne","ZeroTwo","ZeroThree","ZeroFour","ZeroFive","ZeroSix","ZeroSeven","OneOne","OneTwo","OneThree","OneFour","OneFive","OneSix","OneSeven","TwoTwo","TwoThree","TwoFour","TwoFive","TwoSix","TwoSeven","ThreeThree","ThreeFour","ThreeFive","ThreeSix","ThreeSeven","FourFour","FourFive","FourSix","FourSeven","FiveFive","FiveSix","FiveSeven","SixSix","SixSeven","SevenSeven"]},Hl={rpc:{},runtime:{ParachainHost:[{methods:{...Tl,...Pl,...Vl,...Ml,..._l,...Il,...Ol,...Nl,...El,approval_voting_params:{description:"Approval voting configuration parameters",params:[],type:"ApprovalVotingParams"}},version:10},{methods:{...Tl,...Pl,...Vl,...Ml,..._l,...Il,...Ol,...Nl,...El},version:9},{methods:{...Tl,...Pl,...Vl,...Ml,..._l,...Il,...Ol,...Nl},version:8},{methods:{...Tl,...Pl,...Vl,...Ml,..._l,...Il,...Ol},version:7},{methods:{...Tl,...Pl,...Vl,...Ml,..._l,...Il},version:6},{methods:{...Tl,...Pl,...Vl,...Ml,..._l},version:5},{methods:{...Tl,...Pl,...Vl,...Ml},version:4},{methods:{...Tl,...Pl,...Vl},version:3},{methods:{...Tl,...Pl},version:2},{methods:{session_info:{description:"Get the session info for the given session, if stored.",params:[{name:"index",type:"SessionIndex"}],type:"Option"},...Tl},version:1}]},types:{ServiceQuality:{_enum:["Ordered","Fast"]},DisputeLocation:{_enum:["Local","Remote"]},DisputeResult:{_enum:["Valid","Invalid"]},DisputeState:{validatorsFor:"BitVec",validatorsAgainst:"BitVec",start:"BlockNumber",concludedAt:"Option"},DisputeStatement:{_enum:{Valid:"ValidDisputeStatementKind",Invalid:"InvalidDisputeStatementKind"}},DisputeStatementSet:{candidateHash:"CandidateHash",session:"SessionIndex",statements:"Vec<(DisputeStatement, ParaValidatorIndex, ValidatorSignature)>"},ExecutorParam:{_enum:{Phantom:"Null",MaxMemoryPages:"u32",StackLogicalMax:"u32",StackNativeMax:"u32",PrecheckingMaxMemory:"u64",PvfPrepTimeout:"(PvfPrepTimeoutKind, u64)",PvfExecTimeout:"(PvfExecTimeoutKind, u64)"}},ExecutorParamsHash:"Hash",ExecutorParams:"Vec",ExplicitDisputeStatement:{valid:"bool",candidateHash:"CandidateHash",session:"SessionIndex"},InvalidDisputeStatementKind:{_enum:["Explicit"]},MultiDisputeStatementSet:"Vec",PvfExecTimeoutKind:{_enum:["Backing","Approval"]},PvfPrepTimeoutKind:{_enum:["Precheck","Lenient"]},ValidDisputeStatementKind:{_enum:{Explicit:"Null",BackingSeconded:"Hash",BackingValid:"Hash",ApprovalChecking:"Null"}},HrmpChannel:{maxCapacity:"u32",maxTotalSize:"u32",maxMessageSize:"u32",msgCount:"u32",totalSize:"u32",mqcHead:"Option",senderDeposit:"Balance",recipientDeposit:"Balance"},HrmpChannelId:{sender:"u32",receiver:"u32"},HrmpOpenChannelRequest:{confirmed:"bool",age:"SessionIndex",senderDeposit:"Balance",maxMessageSize:"u32",maxCapacity:"u32",maxTotalSize:"u32"},ParachainProposal:{proposer:"AccountId",genesisHead:"HeadData",validators:"Vec",name:"Bytes",balance:"Balance"},RegisteredParachainInfo:{validators:"Vec",proposer:"AccountId"},...{Bidder:{_enum:{New:"NewBidder",Existing:"ParaId"}},IncomingParachain:{_enum:{Unset:"NewBidder",Fixed:"IncomingParachainFixed",Deploy:"IncomingParachainDeploy"}},IncomingParachainDeploy:{code:"ValidationCode",initialHeadData:"HeadData"},IncomingParachainFixed:{codeHash:"Hash",codeSize:"u32",initialHeadData:"HeadData"},NewBidder:{who:"AccountId",sub:"SubId"},SubId:"u32",AuctionIndex:"u32",LeasePeriod:"BlockNumber",LeasePeriodOf:"BlockNumber",SlotRange10:Cl,SlotRange:Al,WinningData10:`[WinningDataEntry; ${Cl._enum.length}]`,WinningData:`[WinningDataEntry; ${Al._enum.length}]`,WinningDataEntry:"Option<(AccountId, ParaId, BalanceOf)>",WinnersData10:"Vec",WinnersData:"Vec",WinnersDataTuple10:"(AccountId, ParaId, BalanceOf, SlotRange10)",WinnersDataTuple:"(AccountId, ParaId, BalanceOf, SlotRange)"},AbridgedCandidateReceipt:{parachainIndex:"ParaId",relayParent:"Hash",headData:"HeadData",collator:"CollatorId",signature:"CollatorSignature",povBlockHash:"Hash",commitments:"CandidateCommitments"},AbridgedHostConfiguration:{maxCodeSize:"u32",maxHeadDataSize:"u32",maxUpwardQueueCount:"u32",maxUpwardQueueSize:"u32",maxUpwardMessageSize:"u32",maxUpwardMessageNumPerCandidate:"u32",hrmpMaxMessageNumPerCandidate:"u32",validationUpgradeFrequency:"BlockNumber",validationUpgradeDelay:"BlockNumber"},AbridgedHrmpChannel:{maxCapacity:"u32",maxTotalSize:"u32",maxMessageSize:"u32",msgCount:"u32",totalSize:"u32",mqcHead:"Option"},ApprovalVotingParams:{maxApprovalCoalesceCount:"u32"},AssignmentId:"AccountId",AssignmentKind:{_enum:{Parachain:"Null",Parathread:"(CollatorId, u32)"}},AsyncBackingParams:{maxCandidateDepth:"u32",allowedAncestryLen:"u32"},AttestedCandidate:{candidate:"AbridgedCandidateReceipt",validityVotes:"Vec",validatorIndices:"BitVec"},AuthorityDiscoveryId:"AccountId",AvailabilityBitfield:"BitVec",AvailabilityBitfieldRecord:{bitfield:"AvailabilityBitfield",submittedTt:"BlockNumber"},BackedCandidate:{candidate:"CommittedCandidateReceipt",validityVotes:"Vec",validatorIndices:"BitVec"},BackingState:{constraints:"Constraints",pendingAvailability:"Vec"},BufferedSessionChange:{applyAt:"BlockNumber",validators:"Vec",queued:"Vec",sessionIndex:"SessionIndex"},CandidateCommitments:{upwardMessages:"Vec",horizontalMessages:"Vec",newValidationCode:"Option",headData:"HeadData",processedDownwardMessages:"u32",hrmpWatermark:"BlockNumber"},CandidateDescriptor:{paraId:"ParaId",relayParent:"RelayChainHash",collatorId:"CollatorId",persistedValidationDataHash:"Hash",povHash:"Hash",erasureRoot:"Hash",signature:"CollatorSignature",paraHead:"Hash",validationCodeHash:"ValidationCodeHash"},CandidateEvent:{_enum:{CandidateBacked:"(CandidateReceipt, HeadData, CoreIndex, GroupIndex)",CandidateIncluded:"(CandidateReceipt, HeadData, CoreIndex, GroupIndex)",CandidateTimedOut:"(CandidateReceipt, HeadData, CoreIndex)"}},CandidateHash:"Hash",CandidateInfo:{who:"AccountId",deposit:"Balance"},CandidatePendingAvailability:{core:"CoreIndex",hash:"CandidateHash",descriptor:"CandidateDescriptor",availabilityVotes:"BitVec",backers:"BitVec",relayParentNumber:"BlockNumber",backedInNumber:"BlockNumber",backingGroup:"GroupIndex"},CandidateReceipt:{descriptor:"CandidateDescriptor",commitmentsHash:"Hash"},GlobalValidationData:{maxCodeSize:"u32",maxHeadDataSize:"u32",blockNumber:"BlockNumber"},CollatorId:"H256",CollatorSignature:"Signature",CommittedCandidateReceipt:{descriptor:"CandidateDescriptor",commitments:"CandidateCommitments"},Constraints:{minRelayParentNumber:"BlockNumber",maxPovSize:"u32",maxCodeSize:"u32",umpRemaining:"u32",umpRemainingBytes:"u32",maxUmpNumPerCandidate:"u32",dmpRemainingMessages:"Vec",hrmpInbound:"InboundHrmpLimitations",hrmpChannelsOut:"HashMap",maxHrmpNumPerCandidate:"u32",requiredParent:"HeadData",validationCodeHash:"ValidationCodeHash",upgradeRestriction:"Option",futureValidationCode:"Option<(BlockNumber, ValidationCodeHash)>"},CoreAssignment:{core:"CoreIndex",paraId:"ParaId",kind:"AssignmentKind",groupIdx:"GroupIndex"},CoreIndex:"u32",CoreOccupied:{_enum:{Parathread:"ParathreadEntry",Parachain:"Null"}},CoreState:{_enum:{Occupied:"OccupiedCore",Scheduled:"ScheduledCore",Free:"Null"}},DisputeProof:{timeSlot:"DisputesTimeSlot",kind:"SlashingOffenceKind",validatorIndex:"ValidatorIndex",validatorId:"ValidatorId"},DisputesTimeSlot:{sessionIndex:"SessionIndex",candidateHash:"CandidateHash"},DoubleVoteReport:{identity:"ValidatorId",first:"(Statement, ValidatorSignature)",second:"(Statement, ValidatorSignature)",proof:"MembershipProof",signingContext:"SigningContext"},DownwardMessage:"Bytes",GroupIndex:"u32",GroupRotationInfo:{sessionStartBlock:"BlockNumber",groupRotationFrequency:"BlockNumber",now:"BlockNumber"},GlobalValidationSchedule:{maxCodeSize:"u32",maxHeadDataSize:"u32",blockNumber:"BlockNumber"},HeadData:"Bytes",HostConfiguration:{maxCodeSize:"u32",maxHeadDataSize:"u32",maxUpwardQueueCount:"u32",maxUpwardQueueSize:"u32",maxUpwardMessageSize:"u32",maxUpwardMessageNumPerCandidate:"u32",hrmpMaxMessageNumPerCandidate:"u32",validationUpgradeFrequency:"BlockNumber",validationUpgradeDelay:"BlockNumber",maxPovSize:"u32",maxDownwardMessageSize:"u32",preferredDispatchableUpwardMessagesStepWeight:"Weight",hrmpMaxParachainOutboundChannels:"u32",hrmpMaxParathreadOutboundChannels:"u32",hrmpOpenRequestTtl:"u32",hrmpSenderDeposit:"Balance",hrmpRecipientDeposit:"Balance",hrmpChannelMaxCapacity:"u32",hrmpChannelMaxTotalSize:"u32",hrmpMaxParachainInboundChannels:"u32",hrmpMaxParathreadInboundChannels:"u32",hrmpChannelMaxMessageSize:"u32",codeRetentionPeriod:"BlockNumber",parathreadCores:"u32",parathreadRetries:"u32",groupRotationFrequency:"BlockNumber",chainAvailabilityPeriod:"BlockNumber",threadAvailabilityPeriod:"BlockNumber",schedulingLookahead:"u32",maxValidatorsPerCore:"Option",maxValidators:"Option",disputePeriod:"SessionIndex",disputePostConclusionAcceptancePeriod:"BlockNumber",disputeMaxSpamSlots:"u32",disputeConclusionByTimeOutPeriod:"BlockNumber",noShowSlots:"u32",nDelayTranches:"u32",zerothDelayTrancheWidth:"u32",neededApprovals:"u32",relayVrfModuloSamples:"u32"},InboundDownwardMessage:{pubSentAt:"BlockNumber",pubMsg:"DownwardMessage"},InboundHrmpMessage:{sentAt:"BlockNumber",data:"Bytes"},InboundHrmpLimitations:{validWatermarks:"Vec"},InboundHrmpMessages:"Vec",LocalValidationData:{parentHead:"HeadData",balance:"Balance",codeUpgradeAllowed:"Option"},MessageIngestionType:{downwardMessages:"Vec",horizontalMessages:"BTreeMap"},MessageQueueChain:"RelayChainHash",NodeFeatures:"BitVec",OccupiedCore:{nextUpOnAvailable:"Option",occupiedSince:"BlockNumber",timeOutAt:"BlockNumber",nextUpOnTimeOut:"Option",availability:"BitVec",groupResponsible:"GroupIndex",candidateHash:"CandidateHash",candidateDescriptor:"CandidateDescriptor"},OccupiedCoreAssumption:{_enum:["Included,","TimedOut","Free"]},OutboundHrmpChannelLimitations:{bytesRemaining:"u32",messagesRemaining:"u32"},OutboundHrmpMessage:{recipient:"u32",data:"Bytes"},PendingSlashes:{_alias:{slashKeys:"keys"},slashKeys:"BTreeMap",kind:"SlashingOffenceKind"},ParachainDispatchOrigin:{_enum:["Signed","Parachain","Root"]},ParachainInherentData:{validationData:"PersistedValidationData",relayChainState:"StorageProof",downwardMessages:"Vec",horizontalMessages:"BTreeMap"},ParachainsInherentData:{bitfields:"SignedAvailabilityBitfields",backedCandidates:"Vec",disputes:"MultiDisputeStatementSet",parentHeader:"Header"},ParaGenesisArgs:{genesisHead:"Bytes",validationCode:"Bytes",parachain:"bool"},ParaId:"u32",ParaInfo:{manager:"AccountId",deposit:"Balance",locked:"bool"},ParaLifecycle:{_enum:["Onboarding","Parathread","Parachain","UpgradingToParachain","DowngradingToParathread","OutgoingParathread","OutgoingParachain"]},ParaPastCodeMeta:{upgradeTimes:"Vec",lastPruned:"Option"},ParaScheduling:{_enum:["Always","Dynamic"]},ParathreadClaim:"(ParaId, CollatorId)",ParathreadClaimQueue:{queue:"Vec",nextCoreOffset:"u32"},ParathreadEntry:{claim:"ParathreadClaim",retries:"u32"},ParaValidatorIndex:"u32",PersistedValidationData:{parentHead:"HeadData",relayParentNumber:"RelayChainBlockNumber",relayParentStorageRoot:"Hash",maxPovSize:"u32"},PvfCheckStatement:{accept:"bool",subject:"ValidationCodeHash",sessionIndex:"SessionIndex",validatorIndex:"ParaValidatorIndex"},QueuedParathread:{claim:"ParathreadEntry",coreOffset:"u32"},RelayBlockNumber:"u32",RelayChainBlockNumber:"RelayBlockNumber",RelayHash:"Hash",RelayChainHash:"RelayHash",Remark:"[u8; 32]",ReplacementTimes:{expectedAt:"BlockNumber",activatedAt:"BlockNumber"},Retriable:{_enum:{Never:"Null",WithRetries:"u32"}},ScheduledCore:{paraId:"ParaId",collator:"Option"},Scheduling:{_enum:["Always","Dynamic"]},ScrapedOnChainVotes:{session:"SessionIndex",backingValidatorsPerCandidate:"Vec<(CandidateReceipt, Vec<(ParaValidatorIndex, ValidityAttestation)>)>",disputes:"MultiDisputeStatementSet"},SessionInfo:{activeValidatorIndices:"Vec",randomSeed:"[u8; 32]",disputePeriod:"SessionIndex",validators:"Vec",discoveryKeys:"Vec",assignmentKeys:"Vec",validatorGroups:"Vec>",nCores:"u32",zerothDelayTrancheWidth:"u32",relayVrfModuloSamples:"u32",nDelayTranches:"u32",noShowSlots:"u32",neededApprovals:"u32"},OldV1SessionInfo:{validators:"Vec",discoveryKeys:"Vec",assignmentKeys:"Vec",validatorGroups:"Vec>",nCores:"u32",zerothDelayTrancheWidth:"u32",relayVrfModuloSamples:"u32",nDelayTranches:"u32",noShowSlots:"u32",neededApprovals:"u32"},SessionInfoValidatorGroup:"Vec",SignedAvailabilityBitfield:{payload:"BitVec",validatorIndex:"ParaValidatorIndex",signature:"ValidatorSignature"},SignedAvailabilityBitfields:"Vec",SigningContext:{sessionIndex:"SessionIndex",parentHash:"Hash"},SlashingOffenceKind:{_enum:["ForInvalid","AgainstValid"]},Statement:{_enum:{Never:"Null",Candidate:"Hash",Valid:"Hash",Invalid:"Hash"}},TransientValidationData:{maxCodeSize:"u32",maxHeadDataSize:"u32",balance:"Balance",codeUpgradeAllowed:"Option",dmqLength:"u32"},UpgradeGoAhead:{_enum:["Abort","GoAhead"]},UpgradeRestriction:{_enum:["Present"]},UpwardMessage:"Bytes",ValidationFunctionParams:{maxCodeSize:"u32",relayChainHeight:"RelayChainBlockNumber",codeUpgradeAllowed:"Option"},ValidationCode:"Bytes",ValidationCodeHash:"Hash",ValidationData:{persisted:"PersistedValidationData",transient:"TransientValidationData"},ValidationDataType:{validationData:"ValidationData",relayChainState:"Vec"},ValidatorSignature:"Signature",ValidityAttestation:{_enum:{Never:"Null",Implicit:"ValidatorSignature",Explicit:"ValidatorSignature"}},MessagingStateSnapshot:{relayDispatchQueueSize:"(u32, u32)",egressChannels:"Vec"},MessagingStateSnapshotEgressEntry:"(ParaId, AbridgedHrmpChannel)",SystemInherentData:"ParachainInherentData",VecInboundHrmpMessage:"Vec"}},Rl={rpc:{},types:{Approvals:"[bool; 4]"}},Bl={rpc:{},types:{AccountStatus:{validity:"AccountValidity",freeBalance:"Balance",lockedBalance:"Balance",signature:"Vec",vat:"Permill"},AccountValidity:{_enum:["Invalid","Initiated","Pending","ValidLow","ValidHigh","Completed"]}}},Ll=["AssetInstance","Fungibility","Junction","Junctions","MultiAsset","MultiAssetFilter","MultiLocation","Response","WildFungibility","WildMultiAsset","Xcm","XcmError","XcmOrder"];function Ul(e){return Ll.reduce(((t,n)=>(0,_.Z)(t,{[n]:`${n}${e}`})),{})}const zl={rpc:{},types:{BodyId:{_enum:{Unit:"Null",Named:"Vec",Index:"Compact",Executive:"Null",Technical:"Null",Legislative:"Null",Judicial:"Null"}},BodyPart:{_enum:{Voice:"Null",Members:"Compact",Fraction:{nom:"Compact",denom:"Compact"},AtLeastProportion:{nom:"Compact",denom:"Compact"},MoreThanProportion:{nom:"Compact",denom:"Compact"}}},InteriorMultiLocation:"Junctions",NetworkId:{_enum:{Any:"Null",Named:"Vec",Polkadot:"Null",Kusama:"Null"}},XcmOrigin:{_enum:{Xcm:"MultiLocation"}},XcmpMessageFormat:{_enum:["ConcatenatedVersionedXcm","ConcatenatedEncodedBlob","Signals"]},XcmAssetId:{_enum:{Concrete:"MultiLocation",Abstract:"Bytes"}},InboundStatus:{_enum:["Ok","Suspended"]},OutboundStatus:{_enum:["Ok","Suspended"]},MultiAssets:"Vec",FungibilityV0:"FungibilityV1",WildFungibilityV0:"WildFungibilityV1",AssetInstanceV0:{_enum:{Undefined:"Null",Index8:"u8",Index16:"Compact",Index32:"Compact",Index64:"Compact",Index128:"Compact",Array4:"[u8; 4]",Array8:"[u8; 8]",Array16:"[u8; 16]",Array32:"[u8; 32]",Blob:"Vec"}},JunctionV0:{_enum:{Parent:"Null",Parachain:"Compact",AccountId32:{network:"NetworkId",id:"AccountId"},AccountIndex64:{network:"NetworkId",index:"Compact"},AccountKey20:{network:"NetworkId",key:"[u8; 20]"},PalletInstance:"u8",GeneralIndex:"Compact",GeneralKey:"Vec",OnlyChild:"Null",Plurality:{id:"BodyId",part:"BodyPart"}}},MultiAssetV0:{_enum:{None:"Null",All:"Null",AllFungible:"Null",AllNonFungible:"Null",AllAbstractFungible:"Vec",AllAbstractNonFungible:"Vec",AllConcreteFungible:"MultiLocationV0",AllConcreteNonFungible:"MultiLocationV0",AbstractFungible:{id:"Vec",instance:"Compact"},AbstractNonFungible:{class:"Vec",instance:"AssetInstanceV0"},ConcreteFungible:{id:"MultiLocationV0",amount:"Compact"},ConcreteNonFungible:{class:"MultiLocationV0",instance:"AssetInstanceV0"}}},MultiLocationV0:{_enum:{Here:"Null",X1:"JunctionV0",X2:"(JunctionV0, JunctionV0)",X3:"(JunctionV0, JunctionV0, JunctionV0)",X4:"(JunctionV0, JunctionV0, JunctionV0, JunctionV0)",X5:"(JunctionV0, JunctionV0, JunctionV0, JunctionV0, JunctionV0)",X6:"(JunctionV0, JunctionV0, JunctionV0, JunctionV0, JunctionV0, JunctionV0)",X7:"(JunctionV0, JunctionV0, JunctionV0, JunctionV0, JunctionV0, JunctionV0, JunctionV0)",X8:"(JunctionV0, JunctionV0, JunctionV0, JunctionV0, JunctionV0, JunctionV0, JunctionV0, JunctionV0)"}},OriginKindV0:{_enum:["Native","SovereignAccount","Superuser","Xcm"]},ResponseV0:{_enum:{Assets:"Vec"}},XcmV0:{_enum:{WithdrawAsset:{assets:"Vec",effects:"Vec"},ReserveAssetDeposit:{assets:"Vec",effects:"Vec"},ReceiveTeleportedAsset:{assets:"Vec",effects:"Vec"},QueryResponse:{queryId:"Compact",response:"ResponseV0"},TransferAsset:{assets:"Vec",dest:"MultiLocationV0"},TransferReserveAsset:{assets:"Vec",dest:"MultiLocationV0",effects:"Vec"},Transact:{originType:"XcmOriginKind",requireWeightAtMost:"u64",call:"DoubleEncodedCall"},HrmpNewChannelOpenRequest:{sender:"Compact",maxMessageSize:"Compact",maxCapacity:"Compact"},HrmpChannelAccepted:{recipient:"Compact"},HrmpChannelClosing:{initiator:"Compact",sender:"Compact",recipient:"Compact"},RelayedFrom:{who:"MultiLocationV0",message:"XcmV0"}}},XcmErrorV0:{_enum:{Undefined:"Null",Overflow:"Null",Unimplemented:"Null",UnhandledXcmVersion:"Null",UnhandledXcmMessage:"Null",UnhandledEffect:"Null",EscalationOfPrivilege:"Null",UntrustedReserveLocation:"Null",UntrustedTeleportLocation:"Null",DestinationBufferOverflow:"Null",SendFailed:"Null",CannotReachDestination:"(MultiLocation, Xcm)",MultiLocationFull:"Null",FailedToDecode:"Null",BadOrigin:"Null",ExceedsMaxMessageSize:"Null",FailedToTransactAsset:"Null",WeightLimitReached:"Weight",Wildcard:"Null",TooMuchWeightRequired:"Null",NotHoldingFees:"Null",WeightNotComputable:"Null",Barrier:"Null",NotWithdrawable:"Null",LocationCannotHold:"Null",TooExpensive:"Null",AssetNotFound:"Null",RecursionLimitReached:"Null"}},XcmOrderV0:{_enum:{Null:"Null",DepositAsset:{assets:"Vec",dest:"MultiLocationV0"},DepositReserveAsset:{assets:"Vec",dest:"MultiLocationV0",effects:"Vec"},ExchangeAsset:{give:"Vec",receive:"Vec"},InitiateReserveWithdraw:{assets:"Vec",reserve:"MultiLocationV0",effects:"Vec"},InitiateTeleport:{assets:"Vec",dest:"MultiLocationV0",effects:"Vec"},QueryHolding:{queryId:"Compact",dest:"MultiLocationV0",assets:"Vec"},BuyExecution:{fees:"MultiAssetV0",weight:"u64",debt:"u64",haltOnError:"bool",xcm:"Vec"}}},AssetInstanceV1:{_enum:{Undefined:"Null",Index:"Compact",Array4:"[u8; 4]",Array8:"[u8; 8]",Array16:"[u8; 16]",Array32:"[u8; 32]",Blob:"Bytes"}},FungibilityV1:{_enum:{Fungible:"Compact",NonFungible:"AssetInstanceV1"}},JunctionV1:{_enum:{Parachain:"Compact",AccountId32:{network:"NetworkId",id:"AccountId"},AccountIndex64:{network:"NetworkId",index:"Compact"},AccountKey20:{network:"NetworkId",key:"[u8; 20]"},PalletInstance:"u8",GeneralIndex:"Compact",GeneralKey:"Vec",OnlyChild:"Null",Plurality:{id:"BodyId",part:"BodyPart"}}},JunctionsV1:{_enum:{Here:"Null",X1:"JunctionV1",X2:"(JunctionV1, JunctionV1)",X3:"(JunctionV1, JunctionV1, JunctionV1)",X4:"(JunctionV1, JunctionV1, JunctionV1, JunctionV1)",X5:"(JunctionV1, JunctionV1, JunctionV1, JunctionV1, JunctionV1)",X6:"(JunctionV1, JunctionV1, JunctionV1, JunctionV1, JunctionV1, JunctionV1)",X7:"(JunctionV1, JunctionV1, JunctionV1, JunctionV1, JunctionV1, JunctionV1, JunctionV1)",X8:"(JunctionV1, JunctionV1, JunctionV1, JunctionV1, JunctionV1, JunctionV1, JunctionV1, JunctionV1)"}},MultiAssetsV1:"Vec",MultiAssetV1:{id:"XcmAssetId",fungibility:"FungibilityV1"},MultiAssetFilterV1:{_enum:{Definite:"MultiAssetsV1",Wild:"WildMultiAssetV1"}},MultiLocationV1:{parents:"u8",interior:"JunctionsV1"},OriginKindV1:"OriginKindV0",ResponseV1:{_enum:{Assets:"MultiAssetsV1"}},WildFungibilityV1:{_enum:["Fungible","NonFungible"]},WildMultiAssetV1:{_enum:{All:"Null",AllOf:{id:"XcmAssetId",fungibility:"WildFungibilityV1"}}},XcmV1:{_enum:{WithdrawAsset:{assets:"MultiAssetsV1",effects:"Vec"},ReserveAssetDeposit:{assets:"MultiAssetsV1",effects:"Vec"},ReceiveTeleportedAsset:{assets:"MultiAssetsV1",effects:"Vec"},QueryResponse:{queryId:"Compact",response:"ResponseV1"},TransferAsset:{assets:"MultiAssetsV1",dest:"MultiLocationV1"},TransferReserveAsset:{assets:"MultiAssetsV1",dest:"MultiLocationV1",effects:"Vec"},Transact:{originType:"XcmOriginKind",requireWeightAtMost:"u64",call:"DoubleEncodedCall"},HrmpNewChannelOpenRequest:{sender:"Compact",maxMessageSize:"Compact",maxCapacity:"Compact"},HrmpChannelAccepted:{recipient:"Compact"},HrmpChannelClosing:{initiator:"Compact",sender:"Compact",recipient:"Compact"},RelayedFrom:{who:"MultiLocationV1",message:"XcmV1"}}},XcmErrorV1:{_enum:{Undefined:"Null",Overflow:"Null",Unimplemented:"Null",UnhandledXcmVersion:"Null",UnhandledXcmMessage:"Null",UnhandledEffect:"Null",EscalationOfPrivilege:"Null",UntrustedReserveLocation:"Null",UntrustedTeleportLocation:"Null",DestinationBufferOverflow:"Null",SendFailed:"Null",CannotReachDestination:"(MultiLocationV1, XcmV1)",MultiLocationFull:"Null",FailedToDecode:"Null",BadOrigin:"Null",ExceedsMaxMessageSize:"Null",FailedToTransactAsset:"Null",WeightLimitReached:"Weight",Wildcard:"Null",TooMuchWeightRequired:"Null",NotHoldingFees:"Null",WeightNotComputable:"Null",Barrier:"Null",NotWithdrawable:"Null",LocationCannotHold:"Null",TooExpensive:"Null",AssetNotFound:"Null",DestinationUnsupported:"Null",RecursionLimitReached:"Null"}},XcmOrderV1:{_enum:{Noop:"Null",DepositAsset:{assets:"MultiAssetFilterV1",maxAssets:"u32",beneficiary:"MultiLocationV1"},DepositReserveAsset:{assets:"MultiAssetFilterV1",maxAssets:"u32",dest:"MultiLocationV1",effects:"Vec"},ExchangeAsset:{give:"MultiAssetFilterV1",receive:"MultiAssetsV1"},InitiateReserveWithdraw:{assets:"MultiAssetFilterV1",reserve:"MultiLocationV1",effects:"Vec"},InitiateTeleport:{assets:"MultiAssetFilterV1",dest:"MultiLocationV1",effects:"Vec"},QueryHolding:{queryId:"Compact",dest:"MultiLocationV1",assets:"MultiAssetFilterV1"},BuyExecution:{fees:"MultiAssetV1",weight:"u64",debt:"u64",haltOnError:"bool",instructions:"Vec"}}},AssetInstanceV2:"AssetInstanceV1",FungibilityV2:"FungibilityV1",JunctionV2:"JunctionV1",JunctionsV2:"JunctionsV1",MultiAssetsV2:"MultiAssetsV1",MultiAssetV2:"MultiAssetV1",MultiAssetFilterV2:"MultiAssetFilterV1",MultiLocationV2:"MultiLocationV1",OriginKindV2:"OriginKindV1",WildFungibilityV2:"WildFungibilityV1",ResponseV2:{_enum:{Null:"Null",Assets:"MultiAssetsV2",ExecutionResult:"ResponseV2Result"}},ResponseV2Error:"(u32, XcmErrorV2)",ResponseV2Result:"Result",WeightLimitV2:{_enum:{Unlimited:"Null",Limited:"Compact"}},InstructionV2:{_enum:{WithdrawAsset:"MultiAssetsV2",ReserveAssetDeposited:"MultiAssetsV2",ReceiveTeleportedAsset:"MultiAssetsV2",QueryResponse:{queryId:"Compact",response:"ResponseV2",maxWeight:"Compact"},TransferAsset:{assets:"MultiAssetsV2",beneficiary:"MultiLocationV2"},TransferReserveAsset:{assets:"MultiAssetsV2",dest:"MultiLocationV2",xcm:"XcmV2"},Transact:{originType:"OriginKindV2",requireWeightAtMost:"u64",call:"DoubleEncodedCall"},HrmpNewChannelOpenRequest:{sender:"Compact",maxMessageSize:"Compact",maxCapacity:"Compact"},HrmpChannelAccepted:{recipient:"Compact"},HrmpChannelClosing:{initiator:"Compact",sender:"Compact",recipient:"Compact"},ClearOrigin:"Null",DescendOrigin:"InteriorMultiLocation",ReportError:{queryId:"Compact",dest:"MultiLocationV2",maxResponseWeight:"Compact"},DepositAsset:{assets:"MultiAssetFilterV2",maxAssets:"u32",beneficiary:"MultiLocationV2"},DepositReserveAsset:{assets:"MultiAssetFilterV2",maxAssets:"u32",dest:"MultiLocationV2",xcm:"XcmV2"},ExchangeAsset:{give:"MultiAssetFilterV2",receive:"MultiAssetsV2"},InitiateReserveWithdraw:{assets:"MultiAssetFilterV2",reserve:"MultiLocationV2",xcm:"XcmV2"},InitiateTeleport:{assets:"MultiAssetFilterV2",dest:"MultiLocationV2",xcm:"XcmV2"},QueryHolding:{query_id:"Compact",dest:"MultiLocationV2",assets:"MultiAssetFilterV2",maxResponse_Weight:"Compact"},BuyExecution:{fees:"MultiAssetV2",weightLimit:"WeightLimitV2"},RefundSurplus:"Null",SetErrorHandler:"XcmV2",SetAppendix:"XcmV2",ClearError:"Null",ClaimAsset:{assets:"MultiAssetsV2",ticket:"MultiLocationV2"},Trap:"u64"}},WildMultiAssetV2:"WildMultiAssetV1",XcmV2:"Vec",XcmErrorV2:{_enum:{Undefined:"Null",Overflow:"Null",Unimplemented:"Null",UnhandledXcmVersion:"Null",UnhandledXcmMessage:"Null",UnhandledEffect:"Null",EscalationOfPrivilege:"Null",UntrustedReserveLocation:"Null",UntrustedTeleportLocation:"Null",DestinationBufferOverflow:"Null",MultiLocationFull:"Null",MultiLocationNotInvertible:"Null",FailedToDecode:"Null",BadOrigin:"Null",ExceedsMaxMessageSize:"Null",FailedToTransactAsset:"Null",WeightLimitReached:"Weight",Wildcard:"Null",TooMuchWeightRequired:"Null",NotHoldingFees:"Null",WeightNotComputable:"Null",Barrier:"Null",NotWithdrawable:"Null",LocationCannotHold:"Null",TooExpensive:"Null",AssetNotFound:"Null",DestinationUnsupported:"Null",RecursionLimitReached:"Null",Transport:"Null",Unroutable:"Null",UnknownWeightRequired:"Null",Trap:"u64",UnknownClaim:"Null",InvalidLocation:"Null"}},XcmOrderV2:"XcmOrderV1",...Ul("V2"),DoubleEncodedCall:{encoded:"Vec"},XcmOriginKind:{_enum:["Native","SovereignAccount","Superuser","Xcm"]},Outcome:{_enum:{Complete:"Weight",Incomplete:"(Weight, XcmErrorV0)",Error:"XcmErrorV0"}},QueryId:"u64",QueryStatus:{_enum:{Pending:{responder:"VersionedMultiLocation",maybeNotify:"Option<(u8, u8)>",timeout:"BlockNumber"},Ready:{response:"VersionedResponse",at:"BlockNumber"}}},QueueConfigData:{suspendThreshold:"u32",dropThreshold:"u32",resumeThreshold:"u32",thresholdWeight:"Weight",weightRestrictDecay:"Weight"},VersionMigrationStage:{_enum:{MigrateSupportedVersion:"Null",MigrateVersionNotifiers:"Null",NotifyCurrentTargets:"Option",MigrateAndNotifyOldTargets:"Null"}},VersionedMultiAsset:{_enum:{V0:"MultiAssetV0",V1:"MultiAssetV1",V2:"MultiAssetV2"}},VersionedMultiAssets:{_enum:{V0:"Vec",V1:"MultiAssetsV1",V2:"MultiAssetsV2"}},VersionedMultiLocation:{_enum:{V0:"MultiLocationV0",V1:"MultiLocationV1",V2:"MultiLocationV2"}},VersionedResponse:{V0:"ResponseV0",V1:"ResponseV1",V2:"ResponseV2"},VersionedXcm:{_enum:{V0:"XcmV0",V1:"XcmV1",V2:"XcmV2"}},XcmVersion:"u32"}},Dl={rpc:{},types:{ContractCryptoHasher:{_enum:["Blake2x256","Sha2x256","Keccak256"]},ContractDiscriminant:"u32",ContractLayoutArray:{offset:"ContractLayoutKey",len:"u32",cellsPerElem:"u64",layout:"ContractStorageLayout"},ContractLayoutCell:{key:"ContractLayoutKey",ty:"SiLookupTypeId"},ContractLayoutEnum:{dispatchKey:"ContractLayoutKey",variants:"BTreeMap"},ContractLayoutHash:{offset:"ContractLayoutKey",strategy:"ContractLayoutHashingStrategy",layout:"ContractStorageLayout"},ContractLayoutHashingStrategy:{hasher:"ContractCryptoHasher",postfix:"Vec",prefix:"Vec"},ContractLayoutKey:"[u8; 32]",ContractLayoutStruct:{fields:"Vec"},ContractLayoutStructField:{layout:"ContractStorageLayout",name:"Text"},ContractStorageLayout:{_enum:{Cell:"ContractLayoutCell",Hash:"ContractLayoutHash",Array:"ContractLayoutArray",Struct:"ContractLayoutStruct",Enum:"ContractLayoutEnum"}},ContractConstructorSpecV0:{name:"Text",selector:"ContractSelector",args:"Vec",docs:"Vec"},ContractConstructorSpecV1:{name:"Vec",selector:"ContractSelector",args:"Vec",docs:"Vec"},ContractConstructorSpecV2:{label:"Text",selector:"ContractSelector",args:"Vec",docs:"Vec"},ContractConstructorSpecV3:{label:"Text",selector:"ContractSelector",payable:"bool",args:"Vec",docs:"Vec"},ContractConstructorSpecV4:{label:"Text",selector:"ContractSelector",payable:"bool",args:"Vec",docs:"Vec",default:"bool",returnType:"Option"},ContractContractSpecV0:{constructors:"Vec",messages:"Vec",events:"Vec",docs:"Vec"},ContractContractSpecV1:{constructors:"Vec",messages:"Vec",events:"Vec",docs:"Vec"},ContractContractSpecV2:{constructors:"Vec",messages:"Vec",events:"Vec",docs:"Vec"},ContractContractSpecV3:{constructors:"Vec",messages:"Vec",events:"Vec",docs:"Vec"},ContractContractSpecV4:{constructors:"Vec",messages:"Vec",events:"Vec",docs:"Vec",environment:"ContractEnvironmentV4"},ContractContractSpecV5:{constructors:"Vec",messages:"Vec",events:"Vec",docs:"Vec",environment:"ContractEnvironmentV4"},ContractDisplayName:"SiPath",ContractEventParamSpecV0:{name:"Text",indexed:"bool",type:"ContractTypeSpec",docs:"Vec"},ContractEventParamSpecV2:{label:"Text",indexed:"bool",type:"ContractTypeSpec",docs:"Vec"},ContractEventSpecV0:{name:"Text",args:"Vec",docs:"Vec"},ContractEventSpecV1:{name:"Text",args:"Vec",docs:"Vec"},ContractEventSpecV2:{label:"Text",args:"Vec",docs:"Vec"},ContractEventSpecV3:{label:"Text",args:"Vec",docs:"Vec",module_path:"Text",signature_topic:"Option<[u8; 32]>"},ContractMessageParamSpecV0:{name:"Text",type:"ContractTypeSpec"},ContractMessageParamSpecV2:{label:"Text",type:"ContractTypeSpec"},ContractMessageSpecV0:{name:"Text",selector:"ContractSelector",mutates:"bool",payable:"bool",args:"Vec",returnType:"Option",docs:"Vec"},ContractMessageSpecV1:{name:"Vec",selector:"ContractSelector",mutates:"bool",payable:"bool",args:"Vec",returnType:"Option",docs:"Vec"},ContractMessageSpecV2:{label:"Text",selector:"ContractSelector",mutates:"bool",payable:"bool",args:"Vec",returnType:"Option",docs:"Vec"},ContractMessageSpecV3:{label:"Text",selector:"ContractSelector",mutates:"bool",payable:"bool",args:"Vec",returnType:"Option",docs:"Vec",default:"bool"},ContractSelector:"[u8; 4]",ContractTypeSpec:{type:"SiLookupTypeId",displayName:"ContractDisplayName"},ContractConstructorSpecLatest:"ContractConstructorSpecV4",ContractEventSpecLatest:"ContractEventSpecV3",ContractEventParamSpecLatest:"ContractEventParamSpecV2",ContractMessageParamSpecLatest:"ContractMessageParamSpecV2",ContractMessageSpecLatest:"ContractMessageSpecV3",ContractMetadataLatest:"ContractMetadataV5",ContractProjectInfo:{source:"ContractProjectSource",contract:"ContractProjectContract"},ContractMetadataV0:{metadataVersion:"Text",types:"Vec",spec:"ContractContractSpecV0"},ContractMetadataV1:{types:"Vec",spec:"ContractContractSpecV1"},ContractMetadataV2:{types:"Vec",spec:"ContractContractSpecV2"},ContractMetadataV3:{types:"Vec",spec:"ContractContractSpecV3"},ContractMetadataV4:{types:"Vec",spec:"ContractContractSpecV4",version:"Text"},ContractMetadataV5:{types:"Vec",spec:"ContractContractSpecV5",version:"u64"},ContractMetadata:{_enum:{V0:"ContractMetadataV0",V1:"ContractMetadataV1",V2:"ContractMetadataV2",V3:"ContractMetadataV3",V4:"ContractMetadataV4",V5:"ContractMetadataV5"}},ContractProjectV0:{metadataVersion:"Text",source:"ContractProjectSource",contract:"ContractProjectContract",types:"Vec",spec:"ContractContractSpecV0"},ContractProject:"(ContractProjectInfo, ContractMetadata)",ContractProjectContract:{_alias:{docs:"documentation"},name:"Text",version:"Text",authors:"Vec",description:"Option",docs:"Option",repository:"Option",homepage:"Option",license:"Option"},ContractProjectSource:{_alias:{wasmHash:"hash"},wasmHash:"[u8; 32]",language:"Text",compiler:"Text",wasm:"Raw"},ContractEnvironmentV4:{_alias:{hashType:"hash"},accountId:"Option",balance:"Option",blockNumber:"Option",hashType:"Option",timestamp:"Option",maxEventTopics:"Option"}}},ql={account_basic:{description:"Returns pallet_evm::Accounts by address.",params:[{name:"address",type:"H160"}],type:"EvmAccount"},account_code_at:{description:"For a given account address, returns pallet_evm::AccountCodes.",params:[{name:"address",type:"H160"}],type:"Bytes"},author:{description:"Returns the converted FindAuthor::find_author authority id.",params:[],type:"H160"},call:{description:"Returns a frame_ethereum::call response. If `estimate` is true,",params:[{name:"from",type:"H160"},{name:"to",type:"H160"},{name:"data",type:"Vec"},{name:"value",type:"U256"},{name:"gasLimit",type:"U256"},{name:"maxFeePerGas",type:"Option"},{name:"maxPriorityFeePerGas",type:"Option"},{name:"nonce",type:"Option"},{name:"estimate",type:"bool"},{name:"accessList",type:"Option)>>"}],type:"Result"},chain_id:{description:"Returns runtime defined pallet_evm::ChainId.",params:[],type:"u64"},create:{description:"Returns a frame_ethereum::call response. If `estimate` is true,",params:[{name:"from",type:"H160"},{name:"data",type:"Vec"},{name:"value",type:"U256"},{name:"gasLimit",type:"U256"},{name:"maxFeePerGas",type:"Option"},{name:"maxPriorityFeePerGas",type:"Option"},{name:"nonce",type:"Option"},{name:"estimate",type:"bool"},{name:"accessList",type:"Option)>>"}],type:"Result"},current_all:{description:"Return all the current data for a block in a single runtime call.",params:[],type:"(Option, Option>, Option>)"},current_block:{description:"Return the current block.",params:[],type:"BlockV2"},current_receipts:{description:"Return the current receipt.",params:[],type:"Option>"},current_transaction_statuses:{description:"Return the current transaction status.",params:[],type:"Option>"},elasticity:{description:"Return the elasticity multiplier.",params:[],type:"Option"},extrinsic_filter:{description:"Receives a `Vec` and filters all the ethereum transactions.",params:[{name:"xts",type:"Vec"}],type:"Vec"},gas_price:{description:"Returns FixedGasPrice::min_gas_price",params:[],type:"u256"},storage_at:{description:"For a given account address and index, returns pallet_evm::AccountStorages.",params:[{name:"address",type:"H160"},{name:"index",type:"u256"}],type:"H256"}},jl={rpc:{listening:{aliasSection:"net",description:"Returns true if client is actively listening for network connections. Otherwise false.",params:[],type:"bool"},peerCount:{aliasSection:"net",description:"Returns number of peers connected to node.",params:[],type:"Text"},version:{aliasSection:"net",description:"Returns protocol version.",params:[],type:"Text"},clientVersion:{aliasSection:"web3",description:"Returns current client version.",params:[],type:"Text"},sha3:{aliasSection:"web3",description:"Returns sha3 of the given data",params:[{name:"data",type:"Bytes"}],type:"H256"},accounts:{description:"Returns accounts list.",params:[],type:"Vec"},blockNumber:{description:"Returns the blockNumber",params:[],type:"U256"},call:{description:"Call contract, returning the output data.",params:[{name:"request",type:"EthCallRequest"},{isHistoric:!0,isOptional:!0,name:"number",type:"BlockNumber"}],type:"Bytes"},chainId:{description:"Returns the chain ID used for transaction signing at the current best block. None is returned if not available.",params:[],type:"U64"},coinbase:{description:"Returns block author.",params:[],type:"H160"},estimateGas:{description:"Estimate gas needed for execution of given contract.",params:[{name:"request",type:"EthCallRequest"},{isHistoric:!0,isOptional:!0,name:"number",type:"BlockNumber"}],type:"U256"},feeHistory:{description:"Returns fee history for given block count & reward percentiles",params:[{name:"blockCount",type:"U256"},{name:"newestBlock",type:"BlockNumber"},{name:"rewardPercentiles",type:"Option>"}],type:"EthFeeHistory"},gasPrice:{description:"Returns current gas price.",params:[],type:"U256"},getBalance:{description:"Returns balance of the given account.",params:[{name:"address",type:"H160"},{isHistoric:!0,isOptional:!0,name:"number",type:"BlockNumber"}],type:"U256"},getBlockByHash:{description:"Returns block with given hash.",params:[{name:"hash",type:"H256"},{name:"full",type:"bool"}],type:"Option"},getBlockByNumber:{description:"Returns block with given number.",params:[{name:"block",type:"BlockNumber"},{name:"full",type:"bool"}],type:"Option"},getBlockTransactionCountByHash:{description:"Returns the number of transactions in a block with given hash.",params:[{name:"hash",type:"H256"}],type:"U256"},getBlockTransactionCountByNumber:{description:"Returns the number of transactions in a block with given block number.",params:[{name:"block",type:"BlockNumber"}],type:"U256"},getCode:{description:"Returns the code at given address at given time (block number).",params:[{name:"address",type:"H160"},{isHistoric:!0,isOptional:!0,name:"number",type:"BlockNumber"}],type:"Bytes"},getFilterChanges:{description:"Returns filter changes since last poll.",params:[{name:"index",type:"U256"}],type:"EthFilterChanges"},getFilterLogs:{description:"Returns all logs matching given filter (in a range 'from' - 'to').",params:[{name:"index",type:"U256"}],type:"Vec"},getLogs:{description:"Returns logs matching given filter object.",params:[{name:"filter",type:"EthFilter"}],type:"Vec"},getProof:{description:"Returns proof for account and storage.",params:[{name:"address",type:"H160"},{name:"storageKeys",type:"Vec"},{name:"number",type:"BlockNumber"}],type:"EthAccount"},getStorageAt:{description:"Returns content of the storage at given address.",params:[{name:"address",type:"H160"},{name:"index",type:"U256"},{isHistoric:!0,isOptional:!0,name:"number",type:"BlockNumber"}],type:"H256"},getTransactionByBlockHashAndIndex:{description:"Returns transaction at given block hash and index.",params:[{name:"hash",type:"H256"},{name:"index",type:"U256"}],type:"EthTransaction"},getTransactionByBlockNumberAndIndex:{description:"Returns transaction by given block number and index.",params:[{name:"number",type:"BlockNumber"},{name:"index",type:"U256"}],type:"EthTransaction"},getTransactionByHash:{description:"Get transaction by its hash.",params:[{name:"hash",type:"H256"}],type:"EthTransaction"},getTransactionCount:{description:"Returns the number of transactions sent from given address at given time (block number).",params:[{name:"address",type:"H160"},{isHistoric:!0,isOptional:!0,name:"number",type:"BlockNumber"}],type:"U256"},getTransactionReceipt:{description:"Returns transaction receipt by transaction hash.",params:[{name:"hash",type:"H256"}],type:"EthReceipt"},getUncleByBlockHashAndIndex:{description:"Returns an uncles at given block and index.",params:[{name:"hash",type:"H256"},{name:"index",type:"U256"}],type:"EthRichBlock"},getUncleByBlockNumberAndIndex:{description:"Returns an uncles at given block and index.",params:[{name:"number",type:"BlockNumber"},{name:"index",type:"U256"}],type:"EthRichBlock"},getUncleCountByBlockHash:{description:"Returns the number of uncles in a block with given hash.",params:[{name:"hash",type:"H256"}],type:"U256"},getUncleCountByBlockNumber:{description:"Returns the number of uncles in a block with given block number.",params:[{name:"number",type:"BlockNumber"}],type:"U256"},getWork:{description:"Returns the hash of the current block, the seedHash, and the boundary condition to be met.",params:[],type:"EthWork"},hashrate:{description:"Returns the number of hashes per second that the node is mining with.",params:[],type:"U256"},maxPriorityFeePerGas:{description:"Returns max priority fee per gas",params:[],type:"U256"},mining:{description:"Returns true if client is actively mining new blocks.",params:[],type:"bool"},newBlockFilter:{description:"Returns id of new block filter.",params:[],type:"U256"},newFilter:{description:"Returns id of new filter.",params:[{name:"filter",type:"EthFilter"}],type:"U256"},newPendingTransactionFilter:{description:"Returns id of new block filter.",params:[],type:"U256"},protocolVersion:{description:"Returns protocol version encoded as a string (quotes are necessary).",params:[],type:"u64"},sendRawTransaction:{description:"Sends signed transaction, returning its hash.",params:[{name:"bytes",type:"Bytes"}],type:"H256"},sendTransaction:{description:"Sends transaction; will block waiting for signer to return the transaction hash",params:[{name:"tx",type:"EthTransactionRequest"}],type:"H256"},submitHashrate:{description:"Used for submitting mining hashrate.",params:[{name:"index",type:"U256"},{name:"hash",type:"H256"}],type:"bool"},submitWork:{description:"Used for submitting a proof-of-work solution.",params:[{name:"nonce",type:"H64"},{name:"headerHash",type:"H256"},{name:"mixDigest",type:"H256"}],type:"bool"},subscribe:{description:"Subscribe to Eth subscription.",params:[{name:"kind",type:"EthSubKind"},{isOptional:!0,name:"params",type:"EthSubParams"}],pubsub:["subscription","subscribe","unsubscribe"],type:"Null"},syncing:{description:"Returns an object with data about the sync status or false.",params:[],type:"EthSyncStatus"},uninstallFilter:{description:"Uninstalls filter.",params:[{name:"index",type:"U256"}],type:"bool"}},runtime:{ConvertTransactionRuntimeApi:[{methods:{convert_transaction:{description:"Converts an Ethereum-style transaction to Extrinsic",params:[{name:"transaction",type:"TransactionV2"}],type:"Extrinsic"}},version:2}],DebugRuntimeApi:[{methods:{trace_block:{description:"Trace all block extrinsics",params:[{name:"extrinsics",type:"Vec"},{name:"knownTransactions",type:"Vec"}],type:"Result<(), DispatchError>"},trace_transaction:{description:"Trace transaction extrinsics",params:[{name:"extrinsics",type:"Vec"},{name:"transaction",type:"EthTransaction"}],type:"Result<(), DispatchError>"}},version:4}],EthereumRuntimeRPCApi:[{methods:{...ql},version:4},{methods:{...ql,call:{description:"Returns a frame_ethereum::call response. If `estimate` is true,",params:[{name:"from",type:"H160"},{name:"to",type:"H160"},{name:"data",type:"Vec"},{name:"value",type:"U256"},{name:"gasLimit",type:"U256"},{name:"maxFeePerGas",type:"Option"},{name:"maxPriorityFeePerGas",type:"Option"},{name:"nonce",type:"Option"},{name:"estimate",type:"bool"},{name:"accessList",type:"Option)>>"}],type:"Result"},create:{description:"Returns a frame_ethereum::call response. If `estimate` is true,",params:[{name:"from",type:"H160"},{name:"data",type:"Vec"},{name:"value",type:"U256"},{name:"gasLimit",type:"U256"},{name:"maxFeePerGas",type:"Option"},{name:"maxPriorityFeePerGas",type:"Option"},{name:"nonce",type:"Option"},{name:"estimate",type:"bool"},{name:"accessList",type:"Option)>>"}],type:"Result"}},version:5}]},types:{BlockV0:{header:"EthHeader",transactions:"Vec",ommers:"Vec"},LegacyTransaction:{nonce:"U256",gasPrice:"U256",gasLimit:"U256",action:"EthTransactionAction",value:"U256",input:"Bytes",signature:"EthTransactionSignature"},TransactionV0:"LegacyTransaction",BlockV1:{header:"EthHeader",transactions:"Vec",ommers:"Vec"},EIP2930Transaction:{chainId:"u64",nonce:"U256",gasPrice:"U256",gasLimit:"U256",action:"EthTransactionAction",value:"U256",input:"Bytes",accessList:"EthAccessList",oddYParity:"bool",r:"H256",s:"H256"},TransactionV1:{_enum:{Legacy:"LegacyTransaction",EIP2930:"EIP2930Transaction"}},BlockV2:{header:"EthHeader",transactions:"Vec",ommers:"Vec"},EIP1559Transaction:{chainId:"u64",nonce:"U256",maxPriorityFeePerGas:"U256",maxFeePerGas:"U256",gasLimit:"U256",action:"EthTransactionAction",value:"U256",input:"Bytes",accessList:"EthAccessList",oddYParity:"bool",r:"H256",s:"H256"},TransactionV2:{_enum:{Legacy:"LegacyTransaction",EIP2930:"EIP2930Transaction",EIP1559:"EIP1559Transaction"}},EthereumAccountId:"GenericEthereumAccountId",EthereumAddress:"GenericEthereumAccountId",EthereumLookupSource:"GenericEthereumLookupSource",EthereumSignature:"[u8; 65]",EthAccessListItem:{address:"EthAddress",slots:"Vec"},EthAccessList:"Vec",EthAccount:{address:"EthAddress",balance:"U256",nonce:"U256",codeHash:"H256",storageHash:"H256",accountProof:"Vec",storageProof:"Vec"},EthAddress:"H160",EthBlock:{header:"EthHeader",transactions:"Vec",ommers:"Vec"},EthHeader:{parentHash:"H256",ommersHash:"H256",beneficiary:"EthAddress",stateRoot:"H256",transactionsRoot:"H256",receiptsRoot:"H256",logsBloom:"EthBloom",difficulty:"U256",number:"U256",gasLimit:"U256",gasUsed:"U256",timestamp:"u64",extraData:"Bytes",mixMash:"H256",nonce:"H64"},EthRichBlock:{_alias:{blockHash:"hash",blockSize:"size"},blockHash:"Option",parentHash:"H256",sha3Uncles:"H256",author:"EthAddress",miner:"EthAddress",stateRoot:"H256",transactionsRoot:"H256",receiptsRoot:"H256",number:"Option",gasUsed:"U256",gasLimit:"U256",extraData:"Bytes",logsBloom:"EthBloom",timestamp:"U256",difficulty:"U256",totalDifficulty:"Option",sealFields:"Vec",uncles:"Vec",transactions:"Vec",blockSize:"Option"},EthBloom:"H2048",EthCallRequest:{from:"Option",to:"Option",gasPrice:"Option",gas:"Option",value:"Option",data:"Option",nonce:"Option"},EthFeeHistory:{oldestBlock:"U256",baseFeePerGas:"Vec",gasUsedRatio:"Vec",reward:"Option>>"},EthFilter:{fromBlock:"Option",toBlock:"Option",blockHash:"Option",address:"Option",topics:"Option"},EthFilterAddress:{_enum:{Single:"EthAddress",Multiple:"Vec",Null:"Null"}},EthFilterChanges:{_enum:{Logs:"Vec",Hashes:"Vec",Empty:"Null"}},EthFilterTopic:{_enum:{Single:"EthFilterTopicInner",Multiple:"Vec",Null:"Null"}},EthFilterTopicEntry:"Option",EthFilterTopicInner:{_enum:{Single:"EthFilterTopicEntry",Multiple:"Vec",Null:"Null"}},EthRichHeader:{_alias:{blockHash:"hash",blockSize:"size"},blockHash:"Option",parentHash:"H256",sha3Uncles:"H256",author:"EthAddress",miner:"EthAddress",stateRoot:"H256",transactionsRoot:"H256",receiptsRoot:"H256",number:"Option",gasUsed:"U256",gasLimit:"U256",extraData:"Bytes",logsBloom:"EthBloom",timestamp:"U256",difficulty:"U256",sealFields:"Vec",blockSize:"Option"},EthLog:{address:"EthAddress",topics:"Vec",data:"Bytes",blockHash:"Option",blockNumber:"Option",transactionHash:"Option",transactionIndex:"Option",logIndex:"Option",transactionLogIndex:"Option",removed:"bool"},EthReceipt:{transactionHash:"Option",transactionIndex:"Option",blockHash:"Option",from:"Option",to:"Option",blockNumber:"Option",cumulativeGasUsed:"U256",gasUsed:"Option",contractAddress:"Option",logs:"Vec",root:"Option",logsBloom:"EthBloom",statusCode:"Option"},EthReceiptV0:"EthReceipt",EthReceiptV3:"EthReceipt",EthStorageProof:{key:"U256",value:"U256",proof:"Vec"},EthSubKind:{_enum:["newHeads","logs","newPendingTransactions","syncing"]},EthSubParams:{_enum:{None:"Null",Logs:"EthFilter"}},EthSubResult:{_enum:{Header:"EthRichHeader",Log:"EthLog",TransactionHash:"H256",SyncState:"EthSyncStatus"}},EthSyncInfo:{startingBlock:"U256",currentBlock:"U256",highestBlock:"U256",warpChunksAmount:"Option",warpChunksProcessed:"Option"},EthSyncStatus:{_enum:{Info:"EthSyncInfo",None:"Null"}},EthTransaction:{hash:"H256",nonce:"U256",blockHash:"Option",blockNumber:"Option",transactionIndex:"Option",from:"H160",to:"Option",value:"U256",gasPrice:"Option",maxFeePerGas:"Option",maxPriorityFeePerGas:"Option",gas:"U256",input:"Bytes",creates:"Option",raw:"Bytes",publicKey:"Option",chainId:"Option",standardV:"U256",v:"U256",r:"U256",s:"U256",accessList:"Option>",transactionType:"Option"},EthTransactionSignature:{v:"u64",r:"H256",s:"H256"},EthTransactionAction:{_enum:{Call:"H160",Create:"Null"}},EthTransactionCondition:{_enum:{block:"u64",time:"u64"}},EthTransactionRequest:{from:"Option",to:"Option",gasPrice:"Option",gas:"Option",value:"Option",data:"Option",nonce:"Option"},EthTransactionStatus:{transactionHash:"H256",transactionIndex:"u32",from:"EthAddress",to:"Option",contractAddress:"Option",logs:"Vec",logsBloom:"EthBloom"},EthWork:{powHash:"H256",seedHash:"H256",target:"H256",number:"Option"}}},Fl={rpc:{},runtime:{AuthorFilterAPI:[{methods:{can_author:{description:"The runtime api used to predict whether an author will be eligible in the given slot",params:[{name:"author",type:"AccountId"},{name:"relayParent",type:"u32"},{name:"parentHeader",type:"Header"}],type:"bool"}},version:2},{methods:{can_author:{description:"The runtime api used to predict whether an author will be eligible in the given slot",params:[{name:"author",type:"AccountId"},{name:"relayParent",type:"u32"}],type:"bool"}},version:1}],NimbusApi:[{methods:{can_author:{description:"The runtime api used to predict whether a Nimbus author will be eligible in the given slot",params:[{name:"author",type:"AccountId"},{name:"relayParent",type:"u32"},{name:"parentHeader",type:"Header"}],type:"bool"}},version:1}]},types:{}},Xl={rpc:{},runtime:{OracleApi:[{methods:{get_all_values:{description:"Retrieves all values",params:[{name:"providerId",type:"Raw"}],type:"Raw"},get_value:{description:"Retrieves a single value",params:[{name:"providerId",type:"Raw"},{name:"key",type:"Raw"}],type:"Option"}},version:1}]},types:{}},Wl={rpc:{},runtime:{TokensApi:[{methods:{query_existential_deposit:{description:"Query the existential amount for a specific currency",params:[{name:"currencyId",type:"Raw"}],type:"u128"}},version:1}]},types:{}},Zl={rpc:{methods:{description:"Retrieves the list of RPC methods that are exposed by the node",params:[],type:"RpcMethods"}},types:{RpcMethods:{version:"u32",methods:"Vec"}}},Gl={rpc:{hasKey:{description:"Returns true if the keystore has private keys for the given public key and key type.",isUnsafe:!0,params:[{name:"publicKey",type:"Bytes"},{name:"keyType",type:"Text"}],type:"bool"},hasSessionKeys:{description:"Returns true if the keystore has private keys for the given session public keys.",isUnsafe:!0,params:[{name:"sessionKeys",type:"Bytes"}],type:"bool"},insertKey:{description:"Insert a key into the keystore.",isUnsafe:!0,params:[{name:"keyType",type:"Text"},{name:"suri",type:"Text"},{name:"publicKey",type:"Bytes"}],type:"Bytes"},pendingExtrinsics:{description:"Returns all pending extrinsics, potentially grouped by sender",params:[],type:"Vec"},removeExtrinsic:{description:"Remove given extrinsic from the pool and temporarily ban it to prevent reimporting",isUnsafe:!0,params:[{name:"bytesOrHash",type:"Vec"}],type:"Vec"},rotateKeys:{description:"Generate new session keys and returns the corresponding public keys",isUnsafe:!0,params:[],type:"Bytes"},submitAndWatchExtrinsic:{description:"Submit and subscribe to watch an extrinsic until unsubscribed",isSigned:!0,params:[{name:"extrinsic",type:"Extrinsic"}],pubsub:["extrinsicUpdate","submitAndWatchExtrinsic","unwatchExtrinsic"],type:"ExtrinsicStatus"},submitExtrinsic:{description:"Submit a fully formatted extrinsic for block inclusion",isSigned:!0,params:[{name:"extrinsic",type:"Extrinsic"}],type:"Hash"}},types:{ExtrinsicOrHash:{_enum:{Hash:"Hash",Extrinsic:"Bytes"}},ExtrinsicStatus:{_enum:{Future:"Null",Ready:"Null",Broadcast:"Vec",InBlock:"Hash",Retracted:"Hash",FinalityTimeout:"Hash",Finalized:"Hash",Usurped:"Hash",Dropped:"Null",Invalid:"Null"}}}},Kl={rpc:{getBlock:{description:"Get header and body of a relay chain block",params:[{isHistoric:!0,isOptional:!0,name:"hash",type:"BlockHash"}],type:"SignedBlock"},getBlockHash:{description:"Get the block hash for a specific block",params:[{isOptional:!0,name:"blockNumber",type:"BlockNumber"}],type:"BlockHash"},getFinalizedHead:{alias:["chain_getFinalisedHead"],description:"Get hash of the last finalized block in the canon chain",params:[],type:"BlockHash"},getHeader:{alias:["chain_getHead"],description:"Retrieves the header for a specific block",params:[{isHistoric:!0,isOptional:!0,name:"hash",type:"BlockHash"}],type:"Header"},subscribeAllHeads:{description:"Retrieves the newest header via subscription",params:[],pubsub:["allHead","subscribeAllHeads","unsubscribeAllHeads"],type:"Header"},subscribeFinalizedHeads:{alias:["chain_subscribeFinalisedHeads","chain_unsubscribeFinalisedHeads"],description:"Retrieves the best finalized header via subscription",params:[],pubsub:["finalizedHead","subscribeFinalizedHeads","unsubscribeFinalizedHeads"],type:"Header"},subscribeNewHeads:{alias:["chain_unsubscribeNewHeads","subscribe_newHead","unsubscribe_newHead"],description:"Retrieves the best header via subscription",params:[],pubsub:["newHead","subscribeNewHead","unsubscribeNewHead"],type:"Header"}},types:{BlockHash:"Hash"}},Yl={rpc:{getKeys:{description:"Returns the keys with prefix from a child storage, leave empty to get all the keys",params:[{name:"childKey",type:"PrefixedStorageKey"},{name:"prefix",type:"StorageKey"},{isHistoric:!0,isOptional:!0,name:"at",type:"Hash"}],type:"Vec"},getKeysPaged:{alias:["childstate_getKeysPagedAt"],description:"Returns the keys with prefix from a child storage with pagination support",params:[{name:"childKey",type:"PrefixedStorageKey"},{name:"prefix",type:"StorageKey"},{name:"count",type:"u32"},{isOptional:!0,name:"startKey",type:"StorageKey"},{isHistoric:!0,isOptional:!0,name:"at",type:"Hash"}],type:"Vec"},getStorage:{description:"Returns a child storage entry at a specific block state",params:[{name:"childKey",type:"PrefixedStorageKey"},{name:"key",type:"StorageKey"},{isHistoric:!0,isOptional:!0,name:"at",type:"Hash"}],type:"Option"},getStorageEntries:{description:"Returns child storage entries for multiple keys at a specific block state",params:[{name:"childKey",type:"PrefixedStorageKey"},{name:"keys",type:"Vec"},{isHistoric:!0,isOptional:!0,name:"at",type:"Hash"}],type:"Vec>"},getStorageHash:{description:"Returns the hash of a child storage entry at a block state",params:[{name:"childKey",type:"PrefixedStorageKey"},{name:"key",type:"StorageKey"},{isHistoric:!0,isOptional:!0,name:"at",type:"Hash"}],type:"Option"},getStorageSize:{description:"Returns the size of a child storage entry at a block state",params:[{name:"childKey",type:"PrefixedStorageKey"},{name:"key",type:"StorageKey"},{isHistoric:!0,isOptional:!0,name:"at",type:"Hash"}],type:"Option"}},types:{PrefixedStorageKey:"StorageKey"}},Jl={rpc:{localStorageGet:{description:"Get offchain local storage under given key and prefix",isUnsafe:!0,params:[{name:"kind",type:"StorageKind"},{name:"key",type:"Bytes"}],type:"Option"},localStorageSet:{description:"Set offchain local storage under given key and prefix",isUnsafe:!0,params:[{name:"kind",type:"StorageKind"},{name:"key",type:"Bytes"},{name:"value",type:"Bytes"}],type:"Null"}},runtime:{OffchainWorkerApi:[{methods:{offchain_worker:{description:"Starts the off-chain task for given block header.",params:[{name:"header",type:"Header"}],type:"Null"}},version:2},{methods:{offchain_worker:{description:"Starts the off-chain task for given block header.",params:[{name:"number",type:"BlockNumber"}],type:"Null"}},version:1}]},types:{StorageKind:{_enum:{PERSISTENT:1,LOCAL:2}}}},Ql={query_fee_details:{description:"The transaction fee details",params:[{name:"uxt",type:"Extrinsic"},{name:"len",type:"u32"}],type:"FeeDetails"}},$l={query_call_fee_details:{description:"The call fee details",params:[{name:"call",type:"Call"},{name:"len",type:"u32"}],type:"FeeDetails"}},ef={query_info:{description:"The transaction info",params:[{name:"uxt",type:"Extrinsic"},{name:"len",type:"u32"}],type:"RuntimeDispatchInfo"}},tf={query_call_info:{description:"The call info",params:[{name:"call",type:"Call"},{name:"len",type:"u32"}],type:"RuntimeDispatchInfo"}},nf={query_length_to_fee:{description:"Query the output of the current LengthToFee given some input",params:[{name:"length",type:"u32"}],type:"Balance"},query_weight_to_fee:{description:"Query the output of the current WeightToFee given some input",params:[{name:"weight",type:"Weight"}],type:"Balance"}},rf={rpc:{queryFeeDetails:{deprecated:"Use `api.call.transactionPaymentApi.queryFeeDetails` instead",description:"Query the detailed fee of a given encoded extrinsic",params:[{name:"extrinsic",type:"Bytes"},{isHistoric:!0,isOptional:!0,name:"at",type:"BlockHash"}],type:"FeeDetails"},queryInfo:{deprecated:"Use `api.call.transactionPaymentApi.queryInfo` instead",description:"Retrieves the fee information for an encoded extrinsic",params:[{name:"extrinsic",type:"Bytes"},{isHistoric:!0,isOptional:!0,name:"at",type:"BlockHash"}],type:"RuntimeDispatchInfoV1"}},runtime:{TransactionPaymentApi:[{methods:{...nf,...ef,...Ql},version:4},{methods:{...nf,...ef,...Ql},version:3},{methods:{...ef,...Ql},version:2},{methods:{query_info:{description:"The transaction info",params:[{name:"uxt",type:"Extrinsic"},{name:"len",type:"u32"}],type:"RuntimeDispatchInfo"},...Ql},version:1}],TransactionPaymentCallApi:[{methods:{...nf,...tf,...$l},version:3},{methods:{...tf,...$l},version:2},{methods:{CALL:{description:"The call info",params:[{name:"call",type:"Call"},{name:"len",type:"u32"}],type:"RuntimeDispatchInfo"},...$l},version:1}]},types:{FeeDetails:{inclusionFee:"Option"},InclusionFee:{baseFee:"Balance",lenFee:"Balance",adjustedWeightFee:"Balance"},RuntimeDispatchInfo:{weight:"Weight",class:"DispatchClass",partialFee:"Balance"},RuntimeDispatchInfoV1:{weight:"WeightV1",class:"DispatchClass",partialFee:"Balance"},RuntimeDispatchInfoV2:{weight:"WeightV2",class:"DispatchClass",partialFee:"Balance"}}},af={rpc:{call:{alias:["state_callAt"],description:"Perform a call to a builtin on the chain",params:[{name:"method",type:"Text"},{name:"data",type:"Bytes"},{isHistoric:!0,isOptional:!0,name:"at",type:"BlockHash"}],type:"Bytes"},getChildKeys:{description:"Retrieves the keys with prefix of a specific child storage",params:[{name:"childStorageKey",type:"StorageKey"},{name:"childDefinition",type:"StorageKey"},{name:"childType",type:"u32"},{name:"key",type:"StorageKey"},{isHistoric:!0,isOptional:!0,name:"at",type:"BlockHash"}],type:"Vec"},getChildReadProof:{description:"Returns proof of storage for child key entries at a specific block state.",params:[{name:"childStorageKey",type:"PrefixedStorageKey"},{name:"keys",type:"Vec"},{isHistoric:!0,isOptional:!0,name:"at",type:"BlockHash"}],type:"ReadProof"},getChildStorage:{description:"Retrieves the child storage for a key",params:[{name:"childStorageKey",type:"StorageKey"},{name:"childDefinition",type:"StorageKey"},{name:"childType",type:"u32"},{name:"key",type:"StorageKey"},{isHistoric:!0,isOptional:!0,name:"at",type:"BlockHash"}],type:"StorageData"},getChildStorageHash:{description:"Retrieves the child storage hash",params:[{name:"childStorageKey",type:"StorageKey"},{name:"childDefinition",type:"StorageKey"},{name:"childType",type:"u32"},{name:"key",type:"StorageKey"},{isHistoric:!0,isOptional:!0,name:"at",type:"BlockHash"}],type:"Hash"},getChildStorageSize:{description:"Retrieves the child storage size",params:[{name:"childStorageKey",type:"StorageKey"},{name:"childDefinition",type:"StorageKey"},{name:"childType",type:"u32"},{name:"key",type:"StorageKey"},{isHistoric:!0,isOptional:!0,name:"at",type:"BlockHash"}],type:"u64"},getKeys:{deprecated:"Use `api.rpc.state.getKeysPaged` to retrieve keys",description:"Retrieves the keys with a certain prefix",params:[{name:"key",type:"StorageKey"},{isHistoric:!0,isOptional:!0,name:"at",type:"BlockHash"}],type:"Vec"},getKeysPaged:{alias:["state_getKeysPagedAt"],description:"Returns the keys with prefix with pagination support.",params:[{name:"key",type:"StorageKey"},{name:"count",type:"u32"},{isOptional:!0,name:"startKey",type:"StorageKey"},{isHistoric:!0,isOptional:!0,name:"at",type:"BlockHash"}],type:"Vec"},getMetadata:{description:"Returns the runtime metadata",params:[{isHistoric:!0,isOptional:!0,name:"at",type:"BlockHash"}],type:"Metadata"},getPairs:{deprecated:"Use `api.rpc.state.getKeysPaged` to retrieve keys",description:"Returns the keys with prefix, leave empty to get all the keys (deprecated: Use getKeysPaged)",isUnsafe:!0,params:[{name:"prefix",type:"StorageKey"},{isHistoric:!0,isOptional:!0,name:"at",type:"BlockHash"}],type:"Vec"},getReadProof:{description:"Returns proof of storage entries at a specific block state",params:[{name:"keys",type:"Vec"},{isHistoric:!0,isOptional:!0,name:"at",type:"BlockHash"}],type:"ReadProof"},getRuntimeVersion:{alias:["chain_getRuntimeVersion"],description:"Get the runtime version",params:[{isHistoric:!0,isOptional:!0,name:"at",type:"BlockHash"}],type:"RuntimeVersion"},getStorage:{alias:["state_getStorageAt"],description:"Retrieves the storage for a key",params:[{name:"key",type:"StorageKey"},{isHistoric:!0,isOptional:!0,name:"at",type:"BlockHash"}],type:"StorageData"},getStorageHash:{alias:["state_getStorageHashAt"],description:"Retrieves the storage hash",params:[{name:"key",type:"StorageKey"},{isHistoric:!0,isOptional:!0,name:"at",type:"BlockHash"}],type:"Hash"},getStorageSize:{alias:["state_getStorageSizeAt"],description:"Retrieves the storage size",params:[{name:"key",type:"StorageKey"},{isHistoric:!0,isOptional:!0,name:"at",type:"BlockHash"}],type:"u64"},queryStorage:{description:"Query historical storage entries (by key) starting from a start block",isUnsafe:!0,params:[{name:"keys",type:"Vec"},{name:"fromBlock",type:"Hash"},{isOptional:!0,name:"toBlock",type:"BlockHash"}],type:"Vec"},queryStorageAt:{description:"Query storage entries (by key) starting at block hash given as the second parameter",params:[{name:"keys",type:"Vec"},{isHistoric:!0,isOptional:!0,name:"at",type:"BlockHash"}],type:"Vec"},subscribeRuntimeVersion:{alias:["chain_subscribeRuntimeVersion","chain_unsubscribeRuntimeVersion"],description:"Retrieves the runtime version via subscription",params:[],pubsub:["runtimeVersion","subscribeRuntimeVersion","unsubscribeRuntimeVersion"],type:"RuntimeVersion"},subscribeStorage:{description:"Subscribes to storage changes for the provided keys",params:[{isOptional:!0,name:"keys",type:"Vec"}],pubsub:["storage","subscribeStorage","unsubscribeStorage"],type:"StorageChangeSet"},traceBlock:{description:"Provides a way to trace the re-execution of a single block",isUnsafe:!0,params:[{name:"block",type:"Hash"},{name:"targets",type:"Option"},{name:"storageKeys",type:"Option"},{name:"methods",type:"Option"}],type:"TraceBlockResponse"},trieMigrationStatus:{description:"Check current migration state",isUnsafe:!0,params:[{isHistoric:!0,isOptional:!0,name:"at",type:"BlockHash"}],type:"MigrationStatusResult"}},types:{ApiId:"[u8; 8]",BlockTrace:{blockHash:"Text",parentHash:"Text",tracingTargets:"Text",storageKeys:"Text",spans:"Vec",events:"Vec"},BlockTraceEvent:{target:"Text",data:"BlockTraceEventData",parentId:"Option"},BlockTraceEventData:{stringValues:"HashMap"},BlockTraceSpan:{id:"u64",parentId:"Option",name:"Text",target:"Text",wasm:"bool"},KeyValueOption:"(StorageKey, Option)",MigrationStatusResult:{topRemainingToMigrate:"u64",childRemainingToMigrate:"u64"},ReadProof:{at:"Hash",proof:"Vec"},RuntimeVersionApi:"(ApiId, u32)",RuntimeVersion:{specName:"Text",implName:"Text",authoringVersion:"u32",specVersion:"u32",implVersion:"u32",apis:"Vec",transactionVersion:"u32",stateVersion:"u8"},RuntimeVersionPre4:{specName:"Text",implName:"Text",authoringVersion:"u32",specVersion:"u32",implVersion:"u32",apis:"Vec",transactionVersion:"u32"},RuntimeVersionPre3:{specName:"Text",implName:"Text",authoringVersion:"u32",specVersion:"u32",implVersion:"u32",apis:"Vec"},RuntimeVersionPartial:{specName:"Text",specVersion:"u32",apis:"Vec"},SpecVersion:"u32",StorageChangeSet:{block:"Hash",changes:"Vec"},TraceBlockResponse:{_enum:{TraceError:"TraceError",BlockTrace:"BlockTrace"}},TraceError:{error:"Text"}}};function sf(e,{type:t},n,r){const a={},i=e.getSiType(t).def.asVariant.variants;for(let s=0,o=i.length;se(t)}const cf=of(Qt),df=of((e=>e.toString()));function uf({calls:e}){return e.isSome}function lf(e,t,n,r,a){const{fields:i,index:s}=n,o=i.length,c=new Array(o);for(let d=0;d{if(a.length!==s.length)throw new Error(`Extrinsic ${t}.${i} expects ${a.length} arguments, got ${s.length}.`);return e.createTypeUnsafe("Call",[{args:s,callIndex:n},r])};return s.is=e=>function(e,t){return e.callIndex[0]===t[0]&&e.callIndex[1]===t[1]}(e,n),s.callIndex=n,s.meta=r,s.method=i,s.section=t,s.toJSON=()=>r.toJSON(),s}(e,r,new Uint8Array([a,s.toNumber()]),e.createTypeUnsafe("FunctionMetadataLatest",[(0,_.Z)({args:c},n)]))}function ff(e,{lookup:t,pallets:n},r){const a={},i=n.filter(uf);for(let s=0,o=i.length;s=12?o.toNumber():s;oa(a,d,(()=>sf(t,n.unwrap(),cf,(n=>lf(e,t,n,d,u)))))}return a}function pf(e,t){return(0,_.Z)({args:t.fields.map((({type:t})=>e.getTypeDef(t).type))},t)}function hf(e,{lookup:t,pallets:n},r){const a={};for(let i=0,s=n.length;i=12?o.toNumber():i;oa(a,Qt(c),(()=>sf(t,s.unwrap(),df,(r=>({is:e=>wn(e)&&wn(e.index)&&e.index.eq(n)&&((0,gt.U)(e.error)?e.error[0]===r.index.toNumber():wn(e.error)&&e.error.eq(r.index)),meta:e.createTypeUnsafe("ErrorMetadataLatest",[pf(t,r)])})))))}}return a}function bf({events:e}){return e.isSome}function mf(e,{lookup:t,pallets:n},r){const a={},i=n.filter(bf);for(let s=0,o=i.length;s=12?o.toNumber():s;oa(a,Qt(c),(()=>sf(t,n.unwrap(),df,(n=>({is:e=>wn(e)&&(0,gt.U)(e.index)&&d===e.index[0]&&n.index.eq(e.index[1]),meta:e.createTypeUnsafe("EventMetadataLatest",[pf(t,n)])})))))}return a}function yf(e,{pallets:t},n){const r={};for(let a=0,i=t.length;aca({},n,(t=>{const n=e.createTypeUnsafe(e.createLookupType(t.type),[(0,as.G)(t.value.toHex())]);return n.meta=t,n}),cf)))}return r}function xf(e){const t=e.map((e=>e.toString().trim())),n=t.findIndex((e=>!e.length));return-1===n?t:t.slice(0,n)}function gf(e,{extrinsic:t,lookup:n,pallets:r}){return e.createTypeUnsafe("MetadataLatest",[{extrinsic:t,lookup:{types:n.types.map((({id:t,type:n})=>e.createTypeUnsafe("PortableType",[{id:t,type:(0,_.Z)({},n,{docs:xf(n.docs)})}])))},pallets:r.map((({calls:t,index:n,name:r})=>({calls:e.createTypeUnsafe("Option",[t.unwrapOr(null)]),index:n,name:r})))}]).toJSON()}function vf(e,t=[]){for(let n=0,r=e.length;ne||t)))}function kf(e,{info:t}){throw new Error(`Unhandled: Unable to create and validate type from ${e} (info=${Pr[t]})`)}const Tf={[Pr.BTreeMap]:Sf,[Pr.BTreeSet]:wf,[Pr.Compact]:wf,[Pr.DoNotConstruct]:kf,[Pr.Enum]:Sf,[Pr.HashMap]:Sf,[Pr.Int]:kf,[Pr.Linkage]:wf,[Pr.Null]:kf,[Pr.Option]:wf,[Pr.Plain]:(e,t)=>t.lookupName||t.type,[Pr.Range]:wf,[Pr.RangeInclusive]:wf,[Pr.Result]:Sf,[Pr.Set]:Sf,[Pr.Si]:kf,[Pr.Struct]:Sf,[Pr.Tuple]:Sf,[Pr.UInt]:kf,[Pr.Vec]:wf,[Pr.VecFixed]:wf,[Pr.WrapperKeepOpaque]:wf,[Pr.WrapperOpaque]:wf};function Pf(e){const t=e.length,n=new Array(t);for(let r=0;re.getTypeDef(t).type))}function _f(e,t){return e.getSiType(t).def.asVariant.variants.map((({fields:t})=>Mf(e,t)))}function If(e,t,n){return function(e,t,n){const r=vf(Pf(n)).filter((t=>!e.hasType(t)&&!e.isLookupType(t))).sort();if(0!==r.length){const e=`Unknown types found, no types for ${r.join(", ")}`;if(t)throw new Error(e);Vf.warn(e)}return n}(e,n,vf(function({lookup:e,pallets:t}){return t.reduce(((t,{calls:n,constants:r,events:a,storage:i})=>(t.push([Mf(e,r)]),n.isSome&&t.push(_f(e,n.unwrap().type)),a.isSome&&t.push(_f(e,a.unwrap().type)),i.isSome&&t.push(i.unwrap().items.map((({type:t})=>{if(t.isPlain)return[e.getTypeDef(t.asPlain).type];const{hashers:n,key:r,value:a}=t.asMap;return 1===n.length?[e.getTypeDef(a).type,e.getTypeDef(r).type]:[e.getTypeDef(a).type,...e.getSiType(r).def.asTuple.map((t=>e.getTypeDef(t).type))]}))),t)),[])}(t)))}function Of(e,t){return t.toNumber()>=2?e.createTypeUnsafe("StorageHasherV10",[t.toNumber()+1]):e.createTypeUnsafe("StorageHasherV10",[t])}function Nf(e,t){return t.isMap?[(0,_.Z)({},t.asMap,{hasher:Of(e,t.asMap.hasher)}),1]:t.isDoubleMap?[(0,_.Z)({},t.asDoubleMap,{hasher:Of(e,t.asDoubleMap.hasher),key2Hasher:Of(e,t.asDoubleMap.key2Hasher)}),2]:[t.asPlain,0]}function Ef(e,{modules:t}){return e.createTypeUnsafe("MetadataV10",[{modules:t.map((t=>function(e,t){const n=t.storage.unwrapOr(null);return e.createTypeUnsafe("ModuleMetadataV10",[(0,_.Z)({},t,{storage:n?(0,_.Z)({},n,{items:n.items.map((t=>(0,_.Z)({},t,{type:e.createTypeUnsafe("StorageEntryTypeV10",Nf(e,t.type))})))}):null})])}(e,t)))}])}function Cf(e,{modules:t}){return e.createTypeUnsafe("MetadataV11",[{extrinsic:{signedExtensions:[],version:0},modules:t}])}function Af(e,{extrinsic:t,modules:n}){return e.createTypeUnsafe("MetadataV12",[{extrinsic:t,modules:n.map((t=>e.createTypeUnsafe("ModuleMetadataV12",[(0,_.Z)({},t,{index:255})])))}])}function Hf(e,t){return e.createTypeUnsafe("MetadataV13",[t])}const Rf={assets:{Approval:"AssetApproval",ApprovalKey:"AssetApprovalKey",Balance:"TAssetBalance",DestroyWitness:"AssetDestroyWitness"},babe:{EquivocationProof:"BabeEquivocationProof"},balances:{Status:"BalanceStatus"},beefy:{AuthorityId:"BeefyId"},contracts:{StorageKey:"ContractStorageKey"},electionProviderMultiPhase:{Phase:"ElectionPhase"},ethereum:{Block:"EthBlock",Header:"EthHeader",Receipt:"EthReceipt",Transaction:"EthTransaction",TransactionStatus:"EthTransactionStatus"},evm:{Account:"EvmAccount",Log:"EvmLog",Vicinity:"EvmVicinity"},grandpa:{Equivocation:"GrandpaEquivocation",EquivocationProof:"GrandpaEquivocationProof"},identity:{Judgement:"IdentityJudgement"},inclusion:{ValidatorIndex:"ParaValidatorIndex"},paraDisputes:{ValidatorIndex:"ParaValidatorIndex"},paraInclusion:{ValidatorIndex:"ParaValidatorIndex"},paraScheduler:{ValidatorIndex:"ParaValidatorIndex"},paraShared:{ValidatorIndex:"ParaValidatorIndex"},parachains:{Id:"ParaId"},parasDisputes:{ValidatorIndex:"ParaValidatorIndex"},parasInclusion:{ValidatorIndex:"ParaValidatorIndex"},parasScheduler:{ValidatorIndex:"ParaValidatorIndex"},parasShared:{ValidatorIndex:"ParaValidatorIndex"},proposeParachain:{Proposal:"ParachainProposal"},proxy:{Announcement:"ProxyAnnouncement"},scheduler:{ValidatorIndex:"ParaValidatorIndex"},shared:{ValidatorIndex:"ParaValidatorIndex"},society:{Judgement:"SocietyJudgement",Vote:"SocietyVote"},staking:{Compact:"CompactAssignments"},treasury:{Proposal:"TreasuryProposal"},xcm:{AssetId:"XcmAssetId"},xcmPallet:{AssetId:"XcmAssetId"}};const Bf=[["<",">"],["<",","],[",",">"],["(",")"],["(",","],[",",","],[",",")"]];function Lf(e,t){const n=t.toString(),r=e.findIndex((({def:e})=>e.HistoricMetaCompat===n));return-1!==r?r:e.push({def:{HistoricMetaCompat:n}})-1}function Uf(e,t){return e.push({def:{Tuple:t}})-1}function zf(e,t,n,r){return n.push({def:{Variant:{variants:r}},path:[`pallet_${e.toString()}`,"pallet",t]})-1}function Df(e,t){t.forEach((t=>{const n=Object.keys(e).find((e=>t.eq(e)));if(n)t.setOverride(e[n]);else{const n=t.toString(),r=Object.entries(e).reduce(((e,[t,n])=>Bf.reduce(((e,[r,a])=>e.replace(`${r}${t}${a}`,`${r}${n}${a}`)),e)),n);n!==r&&t.setOverride(r)}}))}function qf(e,t,n,r,a){const i=r.map((({args:n,docs:r,name:i},s)=>(Df(a,n.map((({type:e})=>e))),t.createTypeUnsafe("SiVariant",[{docs:r,fields:n.map((({name:n,type:r})=>t.createTypeUnsafe("SiField",[{name:n,type:Lf(e,r)}]))),index:s,name:i}]))));return t.createTypeUnsafe("PalletCallMetadataV14",[{type:zf(n,"Call",e,i)}])}function jf(e,t,n,r){return n.map((({docs:n,name:a,type:i,value:s})=>(Df(r,[i]),t.createTypeUnsafe("PalletConstantMetadataV14",[{docs:n,name:a,type:Lf(e,i),value:s}]))))}function Ff(e,t,n,r,a){const i=r.map((({docs:e,name:n},r)=>t.createTypeUnsafe("SiVariant",[{docs:e,fields:[],index:r,name:n}])));return t.createTypeUnsafe("PalletErrorMetadataV14",[{type:zf(n,"Error",e,i)}])}function Xf(e,t,n,r,a){const i=r.map((({args:n,docs:r,name:i},s)=>(Df(a,n),t.createTypeUnsafe("SiVariant",[{docs:r,fields:n.map((n=>t.createTypeUnsafe("SiField",[{type:Lf(e,n)}]))),index:s,name:i}]))));return t.createTypeUnsafe("PalletEventMetadataV14",[{type:zf(n,"Event",e,i)}])}function Wf(e,t,n,{hashers:r,isLinked:a,isOptional:i,keys:s,value:o}){return Df(n,[o,...Array.isArray(s)?s:[s]]),t.createTypeUnsafe("StorageEntryTypeV14",[{Map:{hashers:r,key:1===r.length?Lf(e,s[0]):Uf(e,s.map((t=>Lf(e,t)))),value:Lf(e,a?`(${i?`Option<${o.toString()}>`:o.toString()}, Linkage<${s[0].toString()}>)`:o)}}])}function Zf(e,t,{items:n,prefix:r},a){return t.createTypeUnsafe("PalletStorageMetadataV14",[{items:n.map((({docs:n,fallback:r,modifier:i,name:s,type:o})=>{let c;if(o.isPlain){const n=o.asPlain;Df(a,[n]),c=t.createTypeUnsafe("StorageEntryTypeV14",[{Plain:Lf(e,n)}])}else if(o.isMap){const n=o.asMap;c=Wf(e,t,a,{hashers:[n.hasher],isLinked:n.linked.isTrue,isOptional:i.isOptional,keys:[n.key],value:n.value})}else if(o.isDoubleMap){const n=o.asDoubleMap;c=Wf(e,t,a,{hashers:[n.hasher,n.key2Hasher],isLinked:!1,isOptional:i.isOptional,keys:[n.key1,n.key2],value:n.value})}else{const n=o.asNMap;c=Wf(e,t,a,{hashers:n.hashers,isLinked:!1,isOptional:i.isOptional,keys:n.keyVec,value:n.value})}return t.createTypeUnsafe("StorageEntryMetadataV14",[{docs:n,fallback:r,modifier:i,name:s,type:c}])})),prefix:r}])}function Gf(e,t,n,{calls:r,constants:a,errors:i,events:s,storage:o}){const c=function({knownTypes:e},t){return{...Rf[t]??{},...e.typesAlias?.[t]??{}}}(t,Qt(n.name));return t.createTypeUnsafe("PalletMetadataV14",[{calls:r&&qf(e,t,n.name,r,c),constants:jf(e,t,a,c),errors:i&&Ff(e,t,n.name,i),events:s&&Xf(e,t,n.name,s,c),index:n.index,name:n.name,storage:o&&Zf(e,t,o,c)}])}function Kf(e,t,n){const r=[];!function(e,...t){for(let n=0,r=t.length;n[e.name.toString(),n>=12?e.index.toNumber():t])).sort(((e,t)=>e[1]-t[1])).reduce(((e,[t,n])=>{for(let r=Object.keys(e).length;r({identifier:e,type:0}))),type:0,version:n}])}(e,t.extrinsic),i=t.modules.map((t=>Gf(r,e,t,{calls:t.calls.unwrapOr(null),constants:t.constants,errors:t.errors.length?t.errors:null,events:t.events.unwrapOr(null),storage:t.storage.unwrapOr(null)})));return e.createTypeUnsafe("MetadataV14",[{extrinsic:a,lookup:{types:r.map(((t,n)=>e.createTypeUnsafe("PortableType",[{id:n,type:t}])))},pallets:i}])}function Yf(e,t,n){const r=t.lookup.paramTypes.SpRuntimeUncheckedExtrinsic;return e.createTypeUnsafe("MetadataV15",[(0,_.Z)({},t,{extrinsic:e.createTypeUnsafe("ExtrinsicMetadataV15",[(0,_.Z)({},t.extrinsic,{addressType:r?.[0].type.unwrapOr(0),callType:r?.[1].type.unwrapOr(0),extraType:r?.[3].type.unwrapOr(0),signatureType:r?.[2].type.unwrapOr(0)})]),outerEnums:e.createTypeUnsafe("OuterEnums15",[{callType:r?.[1].type.unwrapOr(0),eventType:t.lookup.paramTypes.FrameSystemEventRecord?.[0].type.unwrapOr(0)}])})])}function Jf(e,t,n){return t}const Qf=1635018093;class $f extends po{constructor(e,t){if(super(e,t),!this.isEmpty&&!this.eq(Qf))throw new Error(`MagicNumber mismatch: expected ${e.createTypeUnsafe("u32",[Qf]).toHex()}, found ${this.toHex()}`)}}class ep extends xn{__internal__converted=new Map;constructor(e,t){super(e,{magicNumber:$f,metadata:"MetadataAll"},t)}__internal__assertVersion=e=>{if(this.version>e)throw new Error(`Cannot convert metadata from version ${this.version} to ${e}`);return this.version===e};__internal__getVersion=(e,t)=>{if("latest"!==e&&this.__internal__assertVersion(e)){const t=`asV${e}`;return this.__internal__metadata()[t]}if(!this.__internal__converted.has(e)){const n="latest"===e?"asV15":"asV"+(e-1);this.__internal__converted.set(e,t(this.registry,this[n],this.version))}return this.__internal__converted.get(e)};__internal__metadata=()=>this.getT("metadata");get asCallsOnly(){return new ep(this.registry,{magicNumber:this.magicNumber,metadata:this.registry.createTypeUnsafe("MetadataAll",[gf(this.registry,this.asLatest),14])})}get asV9(){return this.__internal__assertVersion(9),this.__internal__metadata().asV9}get asV10(){return this.__internal__getVersion(10,Ef)}get asV11(){return this.__internal__getVersion(11,Cf)}get asV12(){return this.__internal__getVersion(12,Af)}get asV13(){return this.__internal__getVersion(13,Hf)}get asV14(){return this.__internal__getVersion(14,Kf)}get asV15(){return this.__internal__getVersion(15,Yf)}get asLatest(){return this.__internal__getVersion("latest",Jf)}get magicNumber(){return this.getT("magicNumber")}get version(){return this.__internal__metadata().index}getUniqTypes(e){return If(this.registry,this.asLatest,e)}toJSON(){return this.asLatest,super.toJSON()}}const tp=new Uint8Array([109,101,116,97,9]),np=tp.length-1;class rp extends ep{constructor(e,t){super(e,(0,gt.U)(t)||(0,I.H)(t)?function(e,t){if(0===t.length)return tp;if(9===t[np])try{return new ep(e,t)}catch{t[np]=10}return t}(e,(0,N.Y)(t)):t)}}const ap=e=>e.toString(),ip=["BTreeMap","BTreeSet","Compact","HashMap","Option","Result","Vec"];function sp(e,t,n){const{info:r,sub:a}=t;switch(r){case Pr.BTreeMap:case Pr.BTreeSet:case Pr.Compact:case Pr.HashMap:case Pr.Linkage:case Pr.Option:case Pr.Range:case Pr.RangeInclusive:case Pr.Result:case Pr.Vec:case Pr.WrapperKeepOpaque:case Pr.WrapperOpaque:return function(e,t,n=ap){return`${e}${t?`<${(Array.isArray(t)?t:[t]).map(n).join(", ")}>`:""}`}(n,a,(t=>up(e,t)))}throw new Error(`Unable to encode ${(0,Qe.P)(t)} with params`)}function op(e,t,n,r){const a=t.map((({name:e})=>e));if(!a.every((e=>!!e)))throw new Error(`Subtypes does not have consistent names, ${a.join(", ")}`);const i=(0,_.Z)({},r);for(let s=0,o=t.length;ssp(e,t,"BTreeMap"),[Pr.BTreeSet]:(e,t)=>sp(e,t,"BTreeSet"),[Pr.Compact]:(e,t)=>sp(e,t,"Compact"),[Pr.DoNotConstruct]:(e,{displayName:t,lookupIndex:n,lookupName:r})=>`DoNotConstruct<${r||t||((0,$e.o)(n)?"Unknown":e.createLookupType(n))}>`,[Pr.Enum]:(e,{sub:t})=>{if(!Array.isArray(t))throw new Error("Unable to encode Enum type");return t.every((({type:e})=>"Null"===e))?(0,Qe.P)({_enum:t.map((({name:e},t)=>`${e||`Empty${t}`}`))}):op(e,t,!0)},[Pr.HashMap]:(e,t)=>sp(e,t,"HashMap"),[Pr.Int]:(e,{length:t=32})=>`Int<${t}>`,[Pr.Linkage]:(e,t)=>sp(e,t,"Linkage"),[Pr.Null]:(e,t)=>"Null",[Pr.Option]:(e,t)=>sp(e,t,"Option"),[Pr.Plain]:(e,{displayName:t,type:n})=>t||n,[Pr.Range]:(e,t)=>sp(e,t,"Range"),[Pr.RangeInclusive]:(e,t)=>sp(e,t,"RangeInclusive"),[Pr.Result]:(e,t)=>sp(e,t,"Result"),[Pr.Set]:(e,{length:t=8,sub:n})=>{if(!Array.isArray(n))throw new Error("Unable to encode Set type");return(0,Qe.P)({_set:n.reduce(((e,{index:t,name:n},r)=>(0,_.Z)(e,{[`${n||`Unknown${t||r}`}`]:t||r})),{_bitLength:t||8})})},[Pr.Si]:(e,{lookupName:t,type:n})=>t||n,[Pr.Struct]:(e,{alias:t,sub:n})=>{if(!Array.isArray(n))throw new Error("Unable to encode Struct type");return op(e,n,!1,t?{_alias:[...t.entries()].reduce(((e,[t,n])=>(0,_.Z)(e,{[t]:n})),{})}:{})},[Pr.Tuple]:(e,{sub:t})=>{if(!Array.isArray(t))throw new Error("Unable to encode Tuple type");return`(${t.map((t=>up(e,t))).join(",")})`},[Pr.UInt]:(e,{length:t=32})=>`UInt<${t}>`,[Pr.Vec]:(e,t)=>sp(e,t,"Vec"),[Pr.VecFixed]:(e,{length:t,sub:n})=>{if(!(0,Zt.h)(t)||!n||Array.isArray(n))throw new Error("Unable to encode VecFixed type");return`[${n.type};${t}]`},[Pr.WrapperKeepOpaque]:(e,t)=>sp(e,t,"WrapperKeepOpaque"),[Pr.WrapperOpaque]:(e,t)=>sp(e,t,"WrapperOpaque")};function dp(e,t,n=!0){return n&&t.lookupName?t.lookupName:cp[t.info](e,t)}function up(e,t){return t.displayName&&!ip.some((e=>t.displayName===e))?t.displayName:dp(e,t)}function lp(e,t){return(0,_.Z)({},t,{type:dp(e,t,!1)})}const fp=(0,ht.k)("PortableRegistry"),pp={toNumber:()=>-1},hp={Char:"u32",Str:"Text"},bp=kp(["sp_core::crypto::AccountId32","sp_runtime::generic::era::Era","sp_runtime::multiaddress::MultiAddress","fp_account::AccountId20","account::AccountId20","polkadot_runtime_common::claims::EthereumAddress","frame_support::weights::weight_v2::Weight","sp_weights::weight_v2::Weight","*_democracy::vote::Vote","*_conviction_voting::vote::Vote","*_identity::types::Data","sp_core::OpaqueMetadata","sp_core::OpaquePeerId","sp_core::offchain::OpaqueMultiaddr","primitive_types::*","sp_arithmetic::per_things::*","*_runtime::RuntimeCall","*_runtime::RuntimeEvent","ink::env::types::*","ink::primitives::types::*","ink_env::types::*","ink_primitives::types::*","np_runtime::accountname::AccountName","np_runtime::universaladdress::UniversalAddress"]),mp=kp(["pallet_identity::types::BitFlags"]),yp=["bitvec::order::Lsb0","BitOrderLsb0"],xp=[...yp,"bitvec::order::Msb0","BitOrderMsb0"],gp=["BoundedBTreeMap","BoundedBTreeSet","BoundedVec","Box","BTreeMap","BTreeSet","Cow","Option","Range","RangeInclusive","Result","WeakBoundedVec","WrapperKeepOpaque","WrapperOpaque"],vp=["entries","keys","new","size","hash","registry"],wp=["generic","misc","pallet","traits","types"];function Sp(e){const t=e.length,n=new Array(t);for(let r=0;r{const r=t[n].toString();if("*"===e||e===r)return!0;if(e.includes("*")&&e.includes("_")&&r.includes("_")){let t=e.split("_"),n=r.split("_");if("*"===t[0]){const e=n.indexOf(t[1]);-1!==e&&(t=t.slice(1),n=n.slice(e))}return 2===t.length&&"*"===t[1]&&t[0]===n[0]||Tp(t,n)}return!1}))}function Pp(e,t,n,r,a=!1){const i=r.length;if(0===i||gp.includes(r[i-1].toString()))return null;const s=new Array(i),o=new Array(i);for(let d=0;d{const{lookupIndex:s,name:o,params:c}=a;if(!o)return null;if(r[s])return a;const d=function(e,t,n){const r=[n[t]];for(let a=t+1,i=n.length;ac.length!==e.params.length||c.some(((t,n)=>!t.name.eq(e.params[n].name)||t.type.unwrapOr(pp).toNumber()!==e.params[n].type.unwrapOr(pp).toNumber())))))return a;const u=c.findIndex((({type:e},t)=>d.every((({params:n},r)=>n[t].type.isSome&&(0===r||!n[t].type.eq(e))))));if(-1===u)return a;const l=d.length,f=new Array(l);for(let t=0;t!!e)).map((({lookupIndex:e,name:t,params:n})=>({lookupIndex:e,name:r[e]||t,params:n})))}(e,t,n);for(let c=0,d=o.length;c"},t);const{lookups:r,names:a,params:i,types:s}=_p(this,this.types);this.__internal__alias=function(e,t){const n=Object.keys(e).some((e=>!e.startsWith("Pallet"))),r={};if(e.SpRuntimeUncheckedExtrinsic){const[,{type:t}]=e.SpRuntimeUncheckedExtrinsic;r[t.unwrap().toNumber()]="Call"}else n&&!t&&fp.warn("Unable to determine runtime Call type, cannot inspect sp_runtime::generic::unchecked_extrinsic::UncheckedExtrinsic");if(e.FrameSystemEventRecord){const[{type:t}]=e.FrameSystemEventRecord;r[t.unwrap().toNumber()]="Event"}else n&&!t&&fp.warn("Unable to determine runtime Event type, cannot inspect frame_system::EventRecord");return r}(i,n),this.__internal__lookups=r,this.__internal__names=a,this.__internal__params=i,this.__internal__types=s}get names(){return Object.values(this.__internal__names).sort()}get paramTypes(){return this.__internal__params}get types(){return this.getT("types")}register(){!function(e,t,n,r){if(e.registry.register(t),r.SpRuntimeUncheckedExtrinsic){const[t,,a]=r.SpRuntimeUncheckedExtrinsic,i=e.getSiType(t.type.unwrap()),s=e.getSiType(a.type.unwrap()).path.join("::");let o=i.path.join("::");const c="sp_runtime::multiaddress::MultiAddress"===o;if(c){const[t]=i.params;o=e.getSiType(t.type.unwrap()).path.join("::")}e.registry.register({AccountId:o.endsWith("::AccountId20")||o.endsWith("::H160")?"AccountId20":"AccountId32",Address:c?"MultiAddress":"AccountId",ExtrinsicSignature:["sp_runtime::MultiSignature"].includes(s)?"MultiSignature":n[a.type.unwrap().toNumber()]||"MultiSignature"})}}(this,this.__internal__lookups,this.__internal__names,this.__internal__params)}getName(e){return this.__internal__names[this.__internal__getLookupId(e)]}getSiType(e){const t=(this.__internal__types||this.types)[this.__internal__getLookupId(e)];if(!t)throw new Error(`PortableRegistry: Unable to find type with lookupId ${e.toString()}`);return t.type}getTypeDef(e){const t=this.__internal__getLookupId(e);if(!this.__internal__typeDefs[t]){const n=this.__internal__names[t],r={info:Pr.DoNotConstruct,lookupIndex:t,lookupName:n,type:this.registry.createLookupType(t)};n&&(this.__internal__typeDefs[t]=r);const a=this.__internal__extract(this.getSiType(e),t);n||(this.__internal__typeDefs[t]=r),Object.keys(a).forEach((e=>{("lookupName"!==e||a[e])&&(this.__internal__typeDefs[t][e]=a[e])})),a.info===Pr.Plain&&(this.__internal__typeDefs[t].lookupNameRoot=this.__internal__typeDefs[t].lookupName,delete this.__internal__typeDefs[t].lookupName)}return this.__internal__typeDefs[t]}sanitizeField(e){let t=null,n=null;return e.isSome&&(t=Qt(e.unwrap()),t.includes("#")?(n=t,t=n.replace(/#/g,"_")):vp.includes(t)&&(n=t,t=`${t}_`)),[t,n]}__internal__createSiDef(e){const t=this.getTypeDef(e),n=e.toNumber();return[Pr.DoNotConstruct,Pr.Enum,Pr.Struct].includes(t.info)&&t.lookupName?{docs:t.docs,info:Pr.Si,lookupIndex:n,lookupName:this.__internal__names[n],type:this.registry.createLookupType(e)}:t}__internal__getLookupId(e){if((0,I.H)(e)){if(!this.registry.isLookupType(e))throw new Error(`PortableRegistry: Expected a lookup string type, found ${e}`);return parseInt(e.replace("Lookup",""),10)}return(0,Zt.h)(e)?e:e.toNumber()}__internal__extract(e,t){const n=e.path.join("::");let r;const a=this.__internal__alias[t]||function({def:e,path:t}){return["frame_support::weights::weight_v2::Weight","sp_weights::weight_v2::Weight"].includes(t.join("::"))?e.isComposite&&1!==e.asComposite.fields.length?null:"WeightV1":t.length&&bp.some((e=>Tp(e,t)))?t[t.length-1].toString():null}(e);try{if(a)r=this.__internal__extractAliasPath(t,a);else switch(e.def.type){case"Array":r=this.__internal__extractArray(t,e.def.asArray);break;case"BitSequence":r=this.__internal__extractBitSequence(t,e.def.asBitSequence);break;case"Compact":r=this.__internal__extractCompact(t,e.def.asCompact);break;case"Composite":r=this.__internal__extractComposite(t,e,e.def.asComposite);break;case"HistoricMetaCompat":r=this.__internal__extractHistoric(t,e.def.asHistoricMetaCompat);break;case"Primitive":r=this.__internal__extractPrimitive(t,e);break;case"Sequence":r=this.__internal__extractSequence(t,e.def.asSequence);break;case"Tuple":r=this.__internal__extractTuple(t,e.def.asTuple);break;case"Variant":r=this.__internal__extractVariant(t,e,e.def.asVariant);break;default:!function(e){throw new Error(`This codepath should be unreachable. Unhandled input: ${e}`)}(e.def.type)}}catch(i){throw new Error(`PortableRegistry: ${t}${n?` (${n})`:""}: Error extracting ${(0,Qe.P)(e)}: ${i.message}`)}return(0,_.Z)({docs:Sp(e.docs),namespace:n},r)}__internal__extractArray(e,{len:t,type:n}){const r=t.toNumber();if(r>2048)throw new Error("Only support for [Type; ], where length <= 2048");return lp(this.registry,{info:Pr.VecFixed,length:r,sub:this.__internal__createSiDef(n)})}__internal__extractBitSequence(e,{bitOrderType:t,bitStoreType:n}){const r=this.__internal__createSiDef(t),a=this.__internal__createSiDef(n),[i,s]=xp.includes(r.namespace||"")?[r,a]:[a,r];if(!i.namespace||!xp.includes(i.namespace))throw new Error(`Unexpected bitOrder found as ${i.namespace||""}`);if(s.info!==Pr.Plain||"u8"!==s.type)throw new Error(`Only u8 bitStore is currently supported, found ${s.type}`);yp.includes(i.namespace);return{info:Pr.Plain,type:"BitVec"}}__internal__extractCompact(e,{type:t}){return lp(this.registry,{info:Pr.Compact,sub:this.__internal__createSiDef(t)})}__internal__extractComposite(e,{params:t,path:n},{fields:r}){if(n.length){const e=n[0].toString(),r=n[n.length-1].toString();if(1===n.length&&"BTreeMap"===e){if(2!==t.length)throw new Error(`BTreeMap requires 2 parameters, found ${t.length}`);return lp(this.registry,{info:Pr.BTreeMap,sub:t.map((({type:e})=>this.__internal__createSiDef(e.unwrap())))})}if(1===n.length&&"BTreeSet"===e){if(1!==t.length)throw new Error(`BTreeSet requires 1 parameter, found ${t.length}`);return lp(this.registry,{info:Pr.BTreeSet,sub:this.__internal__createSiDef(t[0].type.unwrap())})}if(["Range","RangeInclusive"].includes(e)){if(1!==t.length)throw new Error(`Range requires 1 parameter, found ${t.length}`);return lp(this.registry,{info:"Range"===e?Pr.Range:Pr.RangeInclusive,sub:this.__internal__createSiDef(t[0].type.unwrap()),type:e})}if(["WrapperKeepOpaque","WrapperOpaque"].includes(r)){if(1!==t.length)throw new Error(`WrapperOpaque requires 1 parameter, found ${t.length}`);return lp(this.registry,{info:"WrapperKeepOpaque"===r?Pr.WrapperKeepOpaque:Pr.WrapperOpaque,sub:this.__internal__createSiDef(t[0].type.unwrap()),type:r})}}return mp.some((e=>Tp(e,n)))?this.__internal__extractCompositeSet(e,t,r):this.__internal__extractFields(e,r)}__internal__extractCompositeSet(e,t,n){if(1!==t.length||1!==n.length)throw new Error("Set handling expects param/field as single entries");return lp(this.registry,{info:Pr.Set,length:this.registry.createTypeUnsafe(this.registry.createLookupType(n[0].type),[]).bitLength(),sub:this.getSiType(t[0].type.unwrap()).def.asVariant.variants.map((({index:e,name:t})=>({index:e.toNumber(),info:Pr.Plain,name:t.toString(),type:"Null"})))})}__internal__extractFields(e,t){let n=!0,r=!0;const a=t.length;for(let o=0;othis.__internal__createSiDef(e)));return lp(this.registry,{info:Pr.Tuple,lookupIndex:e,lookupName:this.__internal__names[e],sub:n})}__internal__extractVariant(e,{params:t,path:n},{variants:r}){if(n.length){const e=n[0].toString();if("Option"===e){if(1!==t.length)throw new Error(`Option requires 1 parameter, found ${t.length}`);return lp(this.registry,{info:Pr.Option,sub:this.__internal__createSiDef(t[0].type.unwrap())})}if("Result"===e){if(2!==t.length)throw new Error(`Result requires 2 parameters, found ${t.length}`);return lp(this.registry,{info:Pr.Result,sub:t.map((({type:e},t)=>(0,_.Z)({name:["Ok","Error"][t]},this.__internal__createSiDef(e.unwrap()))))})}}return 0===r.length?{info:Pr.Null,type:"Null"}:this.__internal__extractVariantEnum(e,r)}__internal__extractVariantEnum(e,t){const n=[];return t.slice().sort(((e,t)=>e.index.cmp(t.index))).forEach((({fields:e,index:t,name:r})=>{const a=t.toNumber();for(;n.length!==a;)n.push({index:n.length,info:Pr.Null,name:`__Unused${n.length}`,type:"Null"});n.push((0,_.Z)(this.__internal__extractFields(-1,e),{index:a,name:r.toString()}))})),lp(this.registry,{info:Pr.Enum,lookupIndex:e,lookupName:this.__internal__names[e],sub:n})}}const Op=new Uint8Array(2),Np=(0,ht.k)("registry");function Ep(e,t){return parseInt(e,10)-parseInt(t,10)}function Cp(e){return e.toString()}function Ap(e,t){const n=t.length,r=new Array(n);for(let a=0;ae.toNumber()))}return[12]}get chainIsEthereum(){return this.__internal__chainProperties?.isEthereum.isTrue||!1}get chainSS58(){return this.__internal__chainProperties?.ss58Format.isSome?this.__internal__chainProperties.ss58Format.unwrap().toNumber():void 0}get chainTokens(){if(this.__internal__chainProperties?.tokenSymbol.isSome){const e=this.__internal__chainProperties.tokenSymbol.unwrap();if(e.length)return e.map(Cp)}return[Yn.getDefaults().unit]}get firstCallIndex(){return this.__internal__firstCallIndex||Op}isLookupType(e){return/Lookup\d+$/.test(e)}createLookupType(e){return`Lookup${"number"==typeof e?e:e.toNumber()}`}get knownTypes(){return this.__internal__knownTypes}get lookup(){return da(this.__internal__lookup,"PortableRegistry has not been set on this registry")}get metadata(){return da(this.__internal__metadata,"Metadata has not been set on this registry")}get unknownTypes(){return[...this.__internal__unknownTypes.keys()]}get signedExtensions(){return this.__internal__signedExtensions}clearCache(){this.__internal__classes=new Map}createClass(e){return na(this,e)}createClassUnsafe(e){return na(this,e)}createType(e,...t){return sa(this,e,t)}createTypeUnsafe(e,t,n){return sa(this,e,t,n)}findMetaCall(e){const[t,n]=[e[0],e[1]];return da(this.__internal__metadataCalls[`${t}`]&&this.__internal__metadataCalls[`${t}`][`${n}`],(()=>`findMetaCall: Unable to find Call with index [${t}, ${n}]/[${e.toString()}]`))}findMetaError(e){const[t,n]=(0,gt.U)(e)?[e[0],e[1]]:[e.index.toNumber(),(0,gt.U)(e.error)?e.error[0]:e.error.toNumber()];return da(this.__internal__metadataErrors[`${t}`]&&this.__internal__metadataErrors[`${t}`][`${n}`],(()=>`findMetaError: Unable to find Error with index [${t}, ${n}]/[${e.toString()}]`))}findMetaEvent(e){const[t,n]=[e[0],e[1]];return da(this.__internal__metadataEvents[`${t}`]&&this.__internal__metadataEvents[`${t}`][`${n}`],(()=>`findMetaEvent: Unable to find Event with index [${t}, ${n}]/[${e.toString()}]`))}get(e,t,n){return this.getUnsafe(e,t,n)}getUnsafe(e,t,n){let r=this.__internal__classes.get(e)||this.__internal__knownDefaults[e];if(!r){const a=this.__internal__definitions.get(e);let i;a?i=na(this,a):n?i=function(e,t){try{const n=ea[t.info](e,t);if(!n)throw new Error("No class created");return!n.__fallbackType&&t.fallbackType&&(n.__fallbackType=t.fallbackType),n}catch(n){throw new Error(`Unable to construct class from ${(0,Qe.P)(t)}: ${n.message}`)}}(this,n):t&&(Np.warn(`Unable to resolve type ${e}, it will fail on construction`),this.__internal__unknownTypes.set(e,!0),i=pt.with(e)),i&&(r=class extends i{},this.__internal__classes.set(e,r),n&&(0,Zt.h)(n.lookupIndex)&&this.__internal__classes.set(this.createLookupType(n.lookupIndex),r))}return r}getChainProperties(){return this.__internal__chainProperties}getClassName(e){const t=[];for(const[n,r]of this.__internal__knownDefaultsEntries)e===r&&t.push(n);for(const[n,r]of this.__internal__classes.entries())e===r&&t.push(n);return t.length?t.sort().reverse()[0]:void 0}getDefinition(e){return this.__internal__definitions.get(e)}getModuleInstances(e,t){return this.__internal__knownTypes?.typesBundle?.spec?.[e.toString()]?.instances?.[t]||this.__internal__moduleMap[t]}getOrThrow(e){const t=this.get(e);if(!t)throw new Error(`type ${e} not found`);return t}getOrUnknown(e){return this.get(e,!0)}getSignedExtensionExtra(){return ji(this.__internal__signedExtensions,"payload",this.__internal__userExtensions)}getSignedExtensionTypes(){return ji(this.__internal__signedExtensions,"extrinsic",this.__internal__userExtensions)}hasClass(e){return this.__internal__classes.has(e)||!!this.__internal__knownDefaults[e]}hasDef(e){return this.__internal__definitions.has(e)}hasType(e){return!this.__internal__unknownTypes.get(e)&&(this.hasClass(e)||this.hasDef(e))}hash(e){return this.createType("CodecHash",this.__internal__hasher(e))}register(e,t){if((0,Je.m)(e))this.__internal__classes.set(e.name,e);else if((0,I.H)(e)){if(!(0,Je.m)(t))throw new Error(`Expected class definition passed to '${e}' registration`);if(e===t.toString())throw new Error(`Unable to register circular ${e} === ${e}`);this.__internal__classes.set(e,t)}else this.__internal__registerObject(e)}__internal__registerObject=e=>{const t=Object.entries(e);for(let n=0,r=t.length;n{this.setLookup(e);let t=null;if(this.hasType("SpWeightsWeightV2Weight")){const e=this.createType("SpWeightsWeightV2Weight");t=e.refTime&&e.proofSize?"SpWeightsWeightV2Weight":"WeightV1"}else(0,Sn.H)(this.createType("Weight"))||(t="WeightV1");t&&this.register({Weight:t})};setMetadata(e,t,n,r){this.__internal__metadata=e.asLatest,this.__internal__metadataVersion=e.version,this.__internal__firstCallIndex=null,this.__internal__registerLookup(this.__internal__metadata.lookup),function(e,{lookup:t,pallets:n},r,a,i){const s=n.filter(uf);Hp(a),Hp(i);for(let o=0,c=s.length;o=12?c.toNumber():o,l=Qt(d),f=n.unwrap();oa(a,u,(()=>sf(t,f,Rp,(n=>lf(e,t,n,l,u)))));const{path:p}=e.lookup.getSiType(f.type),h=p.findIndex((e=>e.eq("pallet")));if(-1!==h){const e=Qt(p.slice(0,h).map(((e,t)=>0===t?e.replace(/^(frame|pallet)_/,""):e)).join(" "));i[e]?i[e].push(l):i[e]=[l]}}}(this,this.__internal__metadata,this.__internal__metadataVersion,this.__internal__metadataCalls,this.__internal__moduleMap),function(e,{lookup:t,pallets:n},r,a){Hp(a);for(let i=0,s=n.length;i=12?s.toNumber():i,(()=>sf(t,e.unwrap(),Rp,(({docs:e,fields:r,index:a,name:i})=>({args:Ap(t,r),docs:e.map(Cp),fields:r,index:a.toNumber(),method:i.toString(),name:i.toString(),section:n})))))}}}(0,this.__internal__metadata,this.__internal__metadataVersion,this.__internal__metadataErrors),function(e,{lookup:t,pallets:n},r,a){const i=n.filter(bf);Hp(a);for(let s=0,o=i.length;s=12?o.toNumber():s,(()=>sf(t,n.unwrap(),Rp,(n=>{const r=e.createType("EventMetadataLatest",(0,_.Z)({},n,{args:Ap(t,n.fields)}));return class extends Fi{constructor(e,t){super(e,t,r,Qt(c),n.name.toString())}}}))))}}(this,this.__internal__metadata,this.__internal__metadataVersion,this.__internal__metadataEvents);const[a]=Object.keys(this.__internal__metadataCalls).sort(Ep);if(a){const[e]=Object.keys(this.__internal__metadataCalls[a]).sort(Ep);e&&(this.__internal__firstCallIndex=new Uint8Array([parseInt(a,10),parseInt(e,10)]))}this.setSignedExtensions(t||(this.__internal__metadata.extrinsic.version.gt(vt)?this.__internal__metadata.extrinsic.signedExtensions.map((({identifier:e})=>e.toString())):qi),n,r),this.setChainProperties(function(e,t){const n=e.getChainProperties(),r=yf(e,t.asLatest,t.version),a=r.system&&(r.system.sS58Prefix||r.system.ss58Prefix);if(!a)return n;const{isEthereum:i,tokenDecimals:s,tokenSymbol:o}=n||{};return e.createTypeUnsafe("ChainProperties",[{isEthereum:i,ss58Format:a,tokenDecimals:s,tokenSymbol:o}])}(this,e))}setSignedExtensions(e=qi,t,n){if(this.__internal__signedExtensions=e,this.__internal__userExtensions=t,!n){const e=function(e,t={}){const n=[...Object.keys(Di),...Object.keys(t)];return e.filter((e=>!n.includes(e)))}(this.__internal__signedExtensions,this.__internal__userExtensions);e.length&&Np.warn(`Unknown signed extensions ${e.join(", ")} found, treating them as no-effect`)}}}const Lp={},Up={AnchorData:{anchoredBlock:"u64",docRoot:"H256",id:"H256"},DispatchErrorModule:"DispatchErrorModuleU8",PreCommitData:{expirationBlock:"u64",identity:"H256",signingRoot:"H256"},Fee:{key:"Hash",price:"Balance"},MultiAccountData:{deposit:"Balance",depositor:"AccountId",signatories:"Vec",threshold:"u16"},ChainId:"u8",DepositNonce:"u64",ResourceId:"[u8; 32]","chainbridge::ChainId":"u8",RegistryId:"H160",TokenId:"U256",AssetId:{registryId:"RegistryId",tokenId:"TokenId"},AssetInfo:{metadata:"Bytes"},MintInfo:{anchorId:"Hash",proofs:"Vec",staticHashes:"[Hash; 3]"},Proof:{leafHash:"H256",sortedHashes:"H256"},ProofMint:{hashes:"Vec",property:"Bytes",salt:"[u8; 32]",value:"Bytes"},RegistryInfo:{fields:"Vec",ownerCanBurn:"bool"},ProxyType:{_enum:["Any","NonTransfer","Governance","Staking","NonProxy"]}},zp={...Up,AccountInfo:"AccountInfoWithRefCount",Address:"LookupSource",LookupSource:"IndicesLookupSource",Multiplier:"Fixed64",RefCount:"RefCountTo259"},Dp={CompactAssignments:"CompactAssignmentsWith24",DispatchErrorModule:"DispatchErrorModuleU8",RawSolution:"RawSolutionWith24",Keys:"SessionKeys6",ProxyType:{_enum:["Any","NonTransfer","Governance","Staking","IdentityJudgement","CancelProxy","Auction"]},Weight:"WeightV1"},qp={AccountInfo:"AccountInfoWithRefCount",Address:"LookupSource",CompactAssignments:"CompactAssignmentsWith16",DispatchErrorModule:"DispatchErrorModuleU8",RawSolution:"RawSolutionWith16",Keys:"SessionKeys5",LookupSource:"IndicesLookupSource",ValidatorPrefs:"ValidatorPrefsWithCommission"},jp={AccountInfo:"AccountInfoWithRefCount",Address:"AccountId",CompactAssignments:"CompactAssignmentsWith16",DispatchErrorModule:"DispatchErrorModuleU8",RawSolution:"RawSolutionWith16",Keys:"SessionKeys5",LookupSource:"AccountId",ValidatorPrefs:"ValidatorPrefsWithCommission"},Fp={CompactAssignments:"CompactAssignmentsWith16",DispatchErrorModule:"DispatchErrorModuleU8",RawSolution:"RawSolutionWith16",Keys:"SessionKeys6",ProxyType:{_enum:{Any:0,NonTransfer:1,Governance:2,Staking:3,UnusedSudoBalances:4,IdentityJudgement:5,CancelProxy:6,Auction:7}},Weight:"WeightV1"},Xp={AccountInfo:"AccountInfoWithRefCount",Address:"AccountId",DispatchErrorModule:"DispatchErrorModuleU8",Keys:"SessionKeys5",LookupSource:"AccountId",ValidatorPrefs:"ValidatorPrefsWithCommission"},Wp={DispatchErrorModule:"DispatchErrorModuleU8",FullIdentification:"()",Keys:"SessionKeys7B",Weight:"WeightV1"},Zp={DispatchErrorModule:"DispatchErrorModuleU8",TAssetBalance:"u128",ProxyType:{_enum:["Any","NonTransfer","CancelProxy","Assets","AssetOwner","AssetManager","Staking"]},Weight:"WeightV1"},Gp={DispatchErrorModule:"DispatchErrorModuleU8",TAssetBalance:"u128",ProxyType:{_enum:["Any","NonTransfer","CancelProxy","Assets","AssetOwner","AssetManager","Staking"]},Weight:"WeightV1"},Kp={CompactAssignments:"CompactAssignmentsWith16",DispatchErrorModule:"DispatchErrorModuleU8",RawSolution:"RawSolutionWith16",Keys:"SessionKeys6",ProxyType:{_enum:["Any","NonTransfer","Staking","SudoBalances","IdentityJudgement","CancelProxy"]},Weight:"WeightV1"},Yp={AccountInfo:"AccountInfoWithRefCount",Address:"AccountId",CompactAssignments:"CompactAssignmentsWith16",DispatchErrorModule:"DispatchErrorModuleU8",LookupSource:"AccountId",Keys:"SessionKeys5",RawSolution:"RawSolutionWith16",ValidatorPrefs:"ValidatorPrefsWithCommission"},Jp={DispatchErrorModule:"DispatchErrorModuleU8",TAssetBalance:"u128",ProxyType:{_enum:["Any","NonTransfer","CancelProxy","Assets","AssetOwner","AssetManager","Staking"]},Weight:"WeightV1"},Qp={"centrifuge-chain":[{minmax:[240,243],types:{...zp,ProxyType:{_enum:["Any","NonTransfer","Governance","Staking","Vesting"]}}},{minmax:[244,999],types:{...zp}},{minmax:[1e3,void 0],types:{...Up}}],kusama:[{minmax:[1019,1031],types:{...qp,BalanceLock:"BalanceLockTo212",CompactAssignments:"CompactAssignmentsTo257",DispatchError:"DispatchErrorTo198",DispatchInfo:"DispatchInfoTo244",Heartbeat:"HeartbeatTo244",IdentityInfo:"IdentityInfoTo198",Keys:"SessionKeys5",Multiplier:"Fixed64",OpenTip:"OpenTipTo225",RefCount:"RefCountTo259",ReferendumInfo:"ReferendumInfoTo239",Scheduled:"ScheduledTo254",SlashingSpans:"SlashingSpansTo204",StakingLedger:"StakingLedgerTo223",Votes:"VotesTo230",Weight:"u32"}},{minmax:[1032,1042],types:{...qp,BalanceLock:"BalanceLockTo212",CompactAssignments:"CompactAssignmentsTo257",DispatchInfo:"DispatchInfoTo244",Heartbeat:"HeartbeatTo244",Keys:"SessionKeys5",Multiplier:"Fixed64",OpenTip:"OpenTipTo225",RefCount:"RefCountTo259",ReferendumInfo:"ReferendumInfoTo239",Scheduled:"ScheduledTo254",SlashingSpans:"SlashingSpansTo204",StakingLedger:"StakingLedgerTo223",Votes:"VotesTo230",Weight:"u32"}},{minmax:[1043,1045],types:{...qp,BalanceLock:"BalanceLockTo212",CompactAssignments:"CompactAssignmentsTo257",DispatchInfo:"DispatchInfoTo244",Heartbeat:"HeartbeatTo244",Keys:"SessionKeys5",Multiplier:"Fixed64",OpenTip:"OpenTipTo225",RefCount:"RefCountTo259",ReferendumInfo:"ReferendumInfoTo239",Scheduled:"ScheduledTo254",StakingLedger:"StakingLedgerTo223",Votes:"VotesTo230",Weight:"u32"}},{minmax:[1046,1049],types:{...Dp,...jp,CompactAssignments:"CompactAssignmentsTo257",DispatchInfo:"DispatchInfoTo244",Heartbeat:"HeartbeatTo244",Multiplier:"Fixed64",OpenTip:"OpenTipTo225",RefCount:"RefCountTo259",ReferendumInfo:"ReferendumInfoTo239",Scheduled:"ScheduledTo254",StakingLedger:"StakingLedgerTo223",Weight:"u32"}},{minmax:[1050,1054],types:{...Dp,...jp,CompactAssignments:"CompactAssignmentsTo257",DispatchInfo:"DispatchInfoTo244",Heartbeat:"HeartbeatTo244",Multiplier:"Fixed64",OpenTip:"OpenTipTo225",RefCount:"RefCountTo259",ReferendumInfo:"ReferendumInfoTo239",Scheduled:"ScheduledTo254",StakingLedger:"StakingLedgerTo240",Weight:"u32"}},{minmax:[1055,1056],types:{...Dp,...jp,CompactAssignments:"CompactAssignmentsTo257",DispatchInfo:"DispatchInfoTo244",Heartbeat:"HeartbeatTo244",Multiplier:"Fixed64",OpenTip:"OpenTipTo225",RefCount:"RefCountTo259",Scheduled:"ScheduledTo254",StakingLedger:"StakingLedgerTo240",Weight:"u32"}},{minmax:[1057,1061],types:{...Dp,...jp,CompactAssignments:"CompactAssignmentsTo257",DispatchInfo:"DispatchInfoTo244",Heartbeat:"HeartbeatTo244",OpenTip:"OpenTipTo225",RefCount:"RefCountTo259",Scheduled:"ScheduledTo254"}},{minmax:[1062,2012],types:{...Dp,...jp,CompactAssignments:"CompactAssignmentsTo257",OpenTip:"OpenTipTo225",RefCount:"RefCountTo259"}},{minmax:[2013,2022],types:{...Dp,...jp,CompactAssignments:"CompactAssignmentsTo257",RefCount:"RefCountTo259"}},{minmax:[2023,2024],types:{...Dp,...jp,RefCount:"RefCountTo259"}},{minmax:[2025,2027],types:{...Dp,...jp}},{minmax:[2028,2029],types:{...Dp,AccountInfo:"AccountInfoWithDualRefCount",CompactAssignments:"CompactAssignmentsWith16",RawSolution:"RawSolutionWith16"}},{minmax:[2030,9e3],types:{...Dp,CompactAssignments:"CompactAssignmentsWith16",RawSolution:"RawSolutionWith16"}},{minmax:[9010,9099],types:{...Dp,...Ul("V0")}},{minmax:[9100,9105],types:{...Dp,...Ul("V1")}},{minmax:[9106,void 0],types:{Weight:"WeightV1"}}],node:[{minmax:[0,void 0],types:{Weight:"WeightV2"}}],"node-template":[{minmax:[0,void 0],types:{Weight:"WeightV2"}}],polkadot:[{minmax:[0,12],types:{...Fp,...Xp,CompactAssignments:"CompactAssignmentsTo257",OpenTip:"OpenTipTo225",RefCount:"RefCountTo259"}},{minmax:[13,22],types:{...Fp,...Xp,CompactAssignments:"CompactAssignmentsTo257",RefCount:"RefCountTo259"}},{minmax:[23,24],types:{...Fp,...Xp,RefCount:"RefCountTo259"}},{minmax:[25,27],types:{...Fp,...Xp}},{minmax:[28,29],types:{...Fp,AccountInfo:"AccountInfoWithDualRefCount"}},{minmax:[30,9109],types:{...Fp}},{minmax:[9110,void 0],types:{Weight:"WeightV1"}}],rococo:[{minmax:[0,200],types:{...Wp,AccountInfo:"AccountInfoWithDualRefCount",Address:"AccountId",LookupSource:"AccountId"}},{minmax:[201,214],types:{...Wp,AccountInfo:"AccountInfoWithDualRefCount"}},{minmax:[215,228],types:{...Wp,Keys:"SessionKeys6"}},{minmax:[229,9099],types:{...Wp,...Ul("V0")}},{minmax:[9100,9105],types:{...Wp,...Ul("V1")}},{minmax:[9106,void 0],types:{Weight:"WeightV1"}}],shell:[{minmax:[0,void 0],types:{}}],statemine:[{minmax:[0,3],types:{DispatchError:"DispatchErrorPre6First",...Zp,...Ul("V0")}},{minmax:[4,5],types:{DispatchError:"DispatchErrorPre6First",...Zp,...Ul("V1")}},{minmax:[500,9999],types:{Weight:"WeightV1",TAssetConversion:"Option"}},{minmax:[1e4,void 0],types:{Weight:"WeightV1"}}],statemint:[{minmax:[0,3],types:{DispatchError:"DispatchErrorPre6First",...Gp,...Ul("V0")}},{minmax:[4,5],types:{DispatchError:"DispatchErrorPre6First",...Gp,...Ul("V1")}},{minmax:[500,1001003],types:{Weight:"WeightV1",TAssetConversion:"Option"}},{minmax:[1002e3,void 0],types:{Weight:"WeightV1"}}],westend:[{minmax:[1,2],types:{...Kp,...Yp,CompactAssignments:"CompactAssignmentsTo257",DispatchInfo:"DispatchInfoTo244",Heartbeat:"HeartbeatTo244",Multiplier:"Fixed64",OpenTip:"OpenTipTo225",RefCount:"RefCountTo259",Weight:"u32"}},{minmax:[3,22],types:{...Kp,...Yp,CompactAssignments:"CompactAssignmentsTo257",DispatchInfo:"DispatchInfoTo244",Heartbeat:"HeartbeatTo244",OpenTip:"OpenTipTo225",RefCount:"RefCountTo259"}},{minmax:[23,42],types:{...Kp,...Yp,CompactAssignments:"CompactAssignmentsTo257",DispatchInfo:"DispatchInfoTo244",Heartbeat:"HeartbeatTo244",RefCount:"RefCountTo259"}},{minmax:[43,44],types:{...Kp,...Yp,DispatchInfo:"DispatchInfoTo244",Heartbeat:"HeartbeatTo244",RefCount:"RefCountTo259"}},{minmax:[45,47],types:{...Kp,...Yp}},{minmax:[48,49],types:{...Kp,AccountInfo:"AccountInfoWithDualRefCount"}},{minmax:[50,9099],types:{...Kp,...Ul("V0")}},{minmax:[9100,9105],types:{...Kp,...Ul("V1")}},{minmax:[9106,void 0],types:{Weight:"WeightV1"}}],westmint:[{minmax:[0,3],types:{DispatchError:"DispatchErrorPre6First",...Jp,...Ul("V0")}},{minmax:[4,5],types:{DispatchError:"DispatchErrorPre6First",...Jp,...Ul("V1")}},{minmax:[500,9434],types:{Weight:"WeightV1",TAssetConversion:"Option"}},{minmax:[9435,void 0],types:{Weight:"WeightV1"}}]},$p=[[0,1020,[["0xdf6acb689907609b",2],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",4],["0xd2bc9897eed08f15",1],["0xf78b278be53f454c",1],["0xaf2c0297a23e6d3d",1],["0xed99c5acb25eedf5",2],["0xcbca25e39f142387",1],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[26669,1021,[["0xdf6acb689907609b",2],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",4],["0xd2bc9897eed08f15",1],["0xf78b278be53f454c",1],["0xaf2c0297a23e6d3d",1],["0xed99c5acb25eedf5",2],["0xcbca25e39f142387",1],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[38245,1022,[["0xdf6acb689907609b",2],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",4],["0xd2bc9897eed08f15",1],["0xf78b278be53f454c",1],["0xaf2c0297a23e6d3d",1],["0xed99c5acb25eedf5",2],["0xcbca25e39f142387",1],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[54248,1023,[["0xdf6acb689907609b",2],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",4],["0xd2bc9897eed08f15",1],["0xf78b278be53f454c",1],["0xaf2c0297a23e6d3d",1],["0xed99c5acb25eedf5",2],["0xcbca25e39f142387",1],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[59659,1024,[["0xdf6acb689907609b",2],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",4],["0xd2bc9897eed08f15",1],["0xf78b278be53f454c",1],["0xaf2c0297a23e6d3d",1],["0xed99c5acb25eedf5",2],["0xcbca25e39f142387",1],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[67651,1025,[["0xdf6acb689907609b",2],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",4],["0xd2bc9897eed08f15",1],["0xf78b278be53f454c",1],["0xaf2c0297a23e6d3d",1],["0xed99c5acb25eedf5",2],["0xcbca25e39f142387",1],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[82191,1027,[["0xdf6acb689907609b",2],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",4],["0xd2bc9897eed08f15",1],["0xf78b278be53f454c",1],["0xaf2c0297a23e6d3d",2],["0xed99c5acb25eedf5",2],["0xcbca25e39f142387",1],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[83238,1028,[["0xdf6acb689907609b",2],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",4],["0xd2bc9897eed08f15",1],["0xf78b278be53f454c",1],["0xaf2c0297a23e6d3d",2],["0xed99c5acb25eedf5",2],["0xcbca25e39f142387",1],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[101503,1029,[["0xdf6acb689907609b",2],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",4],["0xd2bc9897eed08f15",1],["0xf78b278be53f454c",1],["0xaf2c0297a23e6d3d",2],["0xed99c5acb25eedf5",2],["0xcbca25e39f142387",1],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[203466,1030,[["0xdf6acb689907609b",2],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",4],["0xd2bc9897eed08f15",1],["0xf78b278be53f454c",1],["0xaf2c0297a23e6d3d",2],["0xed99c5acb25eedf5",2],["0xcbca25e39f142387",1],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[295787,1031,[["0xdf6acb689907609b",2],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",4],["0xd2bc9897eed08f15",1],["0xf78b278be53f454c",1],["0xaf2c0297a23e6d3d",2],["0xed99c5acb25eedf5",2],["0xcbca25e39f142387",1],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[461692,1032,[["0xdf6acb689907609b",2],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",4],["0xd2bc9897eed08f15",1],["0xf78b278be53f454c",1],["0xaf2c0297a23e6d3d",2],["0xed99c5acb25eedf5",2],["0xcbca25e39f142387",1],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[504329,1033,[["0xdf6acb689907609b",2],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",4],["0xd2bc9897eed08f15",1],["0xf78b278be53f454c",1],["0xaf2c0297a23e6d3d",2],["0xed99c5acb25eedf5",2],["0xcbca25e39f142387",1],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[569327,1038,[["0xdf6acb689907609b",2],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",4],["0xd2bc9897eed08f15",1],["0xf78b278be53f454c",1],["0xaf2c0297a23e6d3d",2],["0xed99c5acb25eedf5",2],["0xcbca25e39f142387",1],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[587687,1039,[["0xdf6acb689907609b",2],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",4],["0xd2bc9897eed08f15",1],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",2],["0xed99c5acb25eedf5",2],["0xcbca25e39f142387",1],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[653183,1040,[["0xdf6acb689907609b",2],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",4],["0xd2bc9897eed08f15",1],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",2],["0xed99c5acb25eedf5",2],["0xcbca25e39f142387",1],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[693488,1042,[["0xdf6acb689907609b",2],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",4],["0xd2bc9897eed08f15",1],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",2],["0xed99c5acb25eedf5",2],["0xcbca25e39f142387",1],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[901442,1045,[["0xdf6acb689907609b",2],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",4],["0xd2bc9897eed08f15",1],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",2],["0xed99c5acb25eedf5",2],["0xcbca25e39f142387",1],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[1375086,1050,[["0xdf6acb689907609b",2],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",4],["0xd2bc9897eed08f15",1],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",2],["0xed99c5acb25eedf5",2],["0xcbca25e39f142387",1],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[1445458,1051,[["0xdf6acb689907609b",2],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",4],["0xd2bc9897eed08f15",1],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",2],["0xed99c5acb25eedf5",2],["0xcbca25e39f142387",1],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[1472960,1052,[["0xdf6acb689907609b",2],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",4],["0xd2bc9897eed08f15",1],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",2],["0xed99c5acb25eedf5",2],["0xcbca25e39f142387",1],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[1475648,1053,[["0xdf6acb689907609b",2],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",4],["0xd2bc9897eed08f15",1],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",2],["0xed99c5acb25eedf5",2],["0xcbca25e39f142387",1],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[1491596,1054,[["0xdf6acb689907609b",2],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",4],["0xd2bc9897eed08f15",1],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",2],["0xed99c5acb25eedf5",2],["0xcbca25e39f142387",1],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[1574408,1055,[["0xdf6acb689907609b",2],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",4],["0xd2bc9897eed08f15",1],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",2],["0xed99c5acb25eedf5",2],["0xcbca25e39f142387",1],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[2064961,1058,[["0xdf6acb689907609b",3],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",4],["0xd2bc9897eed08f15",2],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",3],["0xed99c5acb25eedf5",2],["0xcbca25e39f142387",1],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[2201991,1062,[["0xdf6acb689907609b",3],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",4],["0xd2bc9897eed08f15",2],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",3],["0xed99c5acb25eedf5",2],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[2671528,2005,[["0xdf6acb689907609b",3],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",4],["0xd2bc9897eed08f15",2],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",3],["0xed99c5acb25eedf5",2],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[2704202,2007,[["0xdf6acb689907609b",3],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",4],["0xd2bc9897eed08f15",2],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",3],["0xed99c5acb25eedf5",2],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[2728002,2008,[["0xdf6acb689907609b",3],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",4],["0xd2bc9897eed08f15",2],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",3],["0xed99c5acb25eedf5",2],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[2832534,2011,[["0xdf6acb689907609b",3],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",4],["0xd2bc9897eed08f15",2],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",3],["0xed99c5acb25eedf5",2],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[2962294,2012,[["0xdf6acb689907609b",3],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",4],["0xd2bc9897eed08f15",2],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",3],["0xed99c5acb25eedf5",2],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[324e4,2013,[["0xdf6acb689907609b",3],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",4],["0xd2bc9897eed08f15",2],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",3],["0xed99c5acb25eedf5",2],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[3274408,2015,[["0xdf6acb689907609b",3],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",4],["0xd2bc9897eed08f15",2],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",3],["0xed99c5acb25eedf5",2],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[3323565,2019,[["0xdf6acb689907609b",3],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",4],["0xd2bc9897eed08f15",2],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",3],["0xed99c5acb25eedf5",2],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[3534175,2022,[["0xdf6acb689907609b",3],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",4],["0xd2bc9897eed08f15",2],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",3],["0xed99c5acb25eedf5",2],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[3860281,2023,[["0xdf6acb689907609b",3],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",4],["0xd2bc9897eed08f15",2],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",3],["0xed99c5acb25eedf5",2],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[4143129,2024,[["0xdf6acb689907609b",3],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",4],["0xd2bc9897eed08f15",2],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",3],["0xed99c5acb25eedf5",2],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[4401242,2025,[["0xdf6acb689907609b",3],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",4],["0xd2bc9897eed08f15",2],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",1],["0xed99c5acb25eedf5",2],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[4841367,2026,[["0xdf6acb689907609b",3],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",4],["0xd2bc9897eed08f15",2],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",1],["0xed99c5acb25eedf5",2],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[5961600,2027,[["0xdf6acb689907609b",3],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",4],["0xd2bc9897eed08f15",2],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",1],["0xed99c5acb25eedf5",2],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[6137912,2028,[["0xdf6acb689907609b",3],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",4],["0xd2bc9897eed08f15",2],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",1],["0xed99c5acb25eedf5",2],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[6561855,2029,[["0xdf6acb689907609b",3],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",4],["0xd2bc9897eed08f15",2],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",1],["0xed99c5acb25eedf5",2],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[7100891,2030,[["0xdf6acb689907609b",3],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",4],["0xd2bc9897eed08f15",2],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",1],["0xed99c5acb25eedf5",2],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[7468792,9010,[["0xdf6acb689907609b",3],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",5],["0xd2bc9897eed08f15",2],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",1],["0x49eaaf1b548a0cb0",1],["0x91d5df18b0d2cf58",1],["0xed99c5acb25eedf5",2],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[7668600,9030,[["0xdf6acb689907609b",3],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",5],["0xd2bc9897eed08f15",2],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",1],["0x49eaaf1b548a0cb0",1],["0x91d5df18b0d2cf58",1],["0xed99c5acb25eedf5",2],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[7812476,9040,[["0xdf6acb689907609b",3],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",5],["0xd2bc9897eed08f15",2],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",1],["0x49eaaf1b548a0cb0",1],["0x91d5df18b0d2cf58",1],["0xed99c5acb25eedf5",2],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[8010981,9050,[["0xdf6acb689907609b",3],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",5],["0xd2bc9897eed08f15",2],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",1],["0x49eaaf1b548a0cb0",1],["0x91d5df18b0d2cf58",1],["0xed99c5acb25eedf5",2],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[8073833,9070,[["0xdf6acb689907609b",3],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",5],["0xd2bc9897eed08f15",2],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",1],["0x49eaaf1b548a0cb0",1],["0x91d5df18b0d2cf58",1],["0xed99c5acb25eedf5",2],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[8555825,9080,[["0xdf6acb689907609b",3],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",5],["0xd2bc9897eed08f15",3],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",1],["0x49eaaf1b548a0cb0",1],["0x91d5df18b0d2cf58",1],["0xed99c5acb25eedf5",2],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[8945245,9090,[["0xdf6acb689907609b",3],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",5],["0xd2bc9897eed08f15",3],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",1],["0x49eaaf1b548a0cb0",1],["0x91d5df18b0d2cf58",1],["0xed99c5acb25eedf5",3],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[9611377,9100,[["0xdf6acb689907609b",3],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",5],["0xd2bc9897eed08f15",3],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",1],["0x49eaaf1b548a0cb0",1],["0x91d5df18b0d2cf58",1],["0xed99c5acb25eedf5",3],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[9625129,9111,[["0xdf6acb689907609b",3],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",5],["0xd2bc9897eed08f15",3],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",1],["0x49eaaf1b548a0cb0",1],["0x91d5df18b0d2cf58",1],["0xed99c5acb25eedf5",3],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[9866422,9122,[["0xdf6acb689907609b",3],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",5],["0xd2bc9897eed08f15",3],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",1],["0x49eaaf1b548a0cb0",1],["0x91d5df18b0d2cf58",1],["0xed99c5acb25eedf5",3],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[10403784,9130,[["0xdf6acb689907609b",3],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",5],["0xd2bc9897eed08f15",3],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",1],["0x49eaaf1b548a0cb0",1],["0x91d5df18b0d2cf58",1],["0xed99c5acb25eedf5",3],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[10960765,9150,[["0xdf6acb689907609b",3],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",5],["0xd2bc9897eed08f15",3],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",1],["0x49eaaf1b548a0cb0",1],["0x91d5df18b0d2cf58",1],["0xed99c5acb25eedf5",3],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[11006614,9151,[["0xdf6acb689907609b",3],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",5],["0xd2bc9897eed08f15",3],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",1],["0x49eaaf1b548a0cb0",1],["0x91d5df18b0d2cf58",1],["0xed99c5acb25eedf5",3],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[11404482,9160,[["0xdf6acb689907609b",4],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",5],["0xd2bc9897eed08f15",3],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",2],["0x49eaaf1b548a0cb0",1],["0x91d5df18b0d2cf58",1],["0xed99c5acb25eedf5",3],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[11601803,9170,[["0xdf6acb689907609b",4],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",5],["0xd2bc9897eed08f15",3],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",2],["0x49eaaf1b548a0cb0",1],["0x91d5df18b0d2cf58",1],["0xed99c5acb25eedf5",3],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[12008022,9180,[["0xdf6acb689907609b",4],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",5],["0xd2bc9897eed08f15",3],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",2],["0x49eaaf1b548a0cb0",1],["0x91d5df18b0d2cf58",1],["0xed99c5acb25eedf5",3],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[12405451,9190,[["0xdf6acb689907609b",4],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",6],["0xd2bc9897eed08f15",3],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",2],["0x49eaaf1b548a0cb0",1],["0x91d5df18b0d2cf58",1],["0xed99c5acb25eedf5",3],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[12665416,9200,[["0xdf6acb689907609b",4],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",6],["0xd2bc9897eed08f15",3],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",2],["0x49eaaf1b548a0cb0",1],["0x91d5df18b0d2cf58",1],["0xed99c5acb25eedf5",3],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[12909508,9220,[["0xdf6acb689907609b",4],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",6],["0xd2bc9897eed08f15",3],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",2],["0x49eaaf1b548a0cb0",1],["0x91d5df18b0d2cf58",1],["0xed99c5acb25eedf5",3],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[13109752,9230,[["0xdf6acb689907609b",4],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",6],["0xd2bc9897eed08f15",3],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",2],["0x49eaaf1b548a0cb0",1],["0x91d5df18b0d2cf58",1],["0xed99c5acb25eedf5",3],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[13555777,9250,[["0xdf6acb689907609b",4],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",6],["0xd2bc9897eed08f15",3],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",2],["0x49eaaf1b548a0cb0",1],["0x91d5df18b0d2cf58",1],["0xed99c5acb25eedf5",3],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[13727747,9260,[["0xdf6acb689907609b",4],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",6],["0xd2bc9897eed08f15",3],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",2],["0x49eaaf1b548a0cb0",1],["0x91d5df18b0d2cf58",1],["0xed99c5acb25eedf5",3],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[14248044,9271,[["0xdf6acb689907609b",4],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",6],["0xd2bc9897eed08f15",3],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",2],["0x49eaaf1b548a0cb0",1],["0x91d5df18b0d2cf58",1],["0xed99c5acb25eedf5",3],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1],["0x17a6bc0d0062aeb3",1]]],[14433840,9280,[["0xdf6acb689907609b",4],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",6],["0xd2bc9897eed08f15",3],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",2],["0x49eaaf1b548a0cb0",1],["0x91d5df18b0d2cf58",1],["0xed99c5acb25eedf5",3],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1],["0xf3ff14d5ab527059",1],["0x17a6bc0d0062aeb3",1]]],[14645900,9291,[["0xdf6acb689907609b",4],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",6],["0xd2bc9897eed08f15",3],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",2],["0x49eaaf1b548a0cb0",1],["0x91d5df18b0d2cf58",1],["0xed99c5acb25eedf5",3],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1],["0xf3ff14d5ab527059",1],["0x17a6bc0d0062aeb3",1]]],[15048375,9300,[["0xdf6acb689907609b",4],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",6],["0xd2bc9897eed08f15",3],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",2],["0x49eaaf1b548a0cb0",1],["0x91d5df18b0d2cf58",1],["0xed99c5acb25eedf5",3],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1],["0xf3ff14d5ab527059",1],["0x17a6bc0d0062aeb3",1]]],[15426015,9320,[["0xdf6acb689907609b",4],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",6],["0xd2bc9897eed08f15",3],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",2],["0x49eaaf1b548a0cb0",1],["0x91d5df18b0d2cf58",1],["0xed99c5acb25eedf5",3],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",2],["0xf3ff14d5ab527059",2],["0x17a6bc0d0062aeb3",1]]],[15680713,9340,[["0xdf6acb689907609b",4],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",6],["0xd2bc9897eed08f15",3],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",2],["0x49eaaf1b548a0cb0",1],["0x91d5df18b0d2cf58",1],["0xed99c5acb25eedf5",3],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",2],["0xf3ff14d5ab527059",2],["0x17a6bc0d0062aeb3",1]]],[15756296,9350,[["0xdf6acb689907609b",4],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",6],["0xd2bc9897eed08f15",3],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",2],["0x49eaaf1b548a0cb0",1],["0x91d5df18b0d2cf58",1],["0xed99c5acb25eedf5",3],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",2],["0xf3ff14d5ab527059",2],["0x17a6bc0d0062aeb3",1]]],[15912007,9360,[["0xdf6acb689907609b",4],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",6],["0xd2bc9897eed08f15",3],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",2],["0x49eaaf1b548a0cb0",1],["0x91d5df18b0d2cf58",1],["0xed99c5acb25eedf5",3],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",2],["0xf3ff14d5ab527059",2],["0x17a6bc0d0062aeb3",1]]],[16356547,9370,[["0xdf6acb689907609b",4],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",6],["0xd2bc9897eed08f15",3],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",2],["0x49eaaf1b548a0cb0",1],["0x91d5df18b0d2cf58",1],["0xed99c5acb25eedf5",3],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",2],["0xf3ff14d5ab527059",2],["0x17a6bc0d0062aeb3",1]]],[17335450,9381,[["0xdf6acb689907609b",4],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",6],["0xd2bc9897eed08f15",3],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",2],["0x49eaaf1b548a0cb0",1],["0x91d5df18b0d2cf58",1],["0xed99c5acb25eedf5",3],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",3],["0xf3ff14d5ab527059",3],["0x17a6bc0d0062aeb3",1]]],[18062739,9420,[["0xdf6acb689907609b",4],["0x37e397fc7c91f5e4",2],["0x40fe3ad401f8959a",6],["0xd2bc9897eed08f15",3],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",4],["0x49eaaf1b548a0cb0",2],["0x91d5df18b0d2cf58",2],["0xed99c5acb25eedf5",3],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",4],["0xf3ff14d5ab527059",3],["0x17a6bc0d0062aeb3",1],["0x18ef58a3b67ba770",1]]],[18625e3,9430,[["0xdf6acb689907609b",4],["0x37e397fc7c91f5e4",2],["0x40fe3ad401f8959a",6],["0xd2bc9897eed08f15",3],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",4],["0x49eaaf1b548a0cb0",2],["0x91d5df18b0d2cf58",2],["0xed99c5acb25eedf5",3],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",4],["0xf3ff14d5ab527059",3],["0x17a6bc0d0062aeb3",1],["0x18ef58a3b67ba770",1]]],[20465806,1e6,[["0xdf6acb689907609b",4],["0x37e397fc7c91f5e4",2],["0x40fe3ad401f8959a",6],["0xd2bc9897eed08f15",3],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",5],["0x49eaaf1b548a0cb0",3],["0x91d5df18b0d2cf58",2],["0x2a5e924655399e60",1],["0xed99c5acb25eedf5",3],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",4],["0xf3ff14d5ab527059",3],["0x17a6bc0d0062aeb3",1],["0x18ef58a3b67ba770",1]]],[2157e4,1001e3,[["0xdf6acb689907609b",4],["0x37e397fc7c91f5e4",2],["0x40fe3ad401f8959a",6],["0xd2bc9897eed08f15",3],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",7],["0x49eaaf1b548a0cb0",3],["0x91d5df18b0d2cf58",2],["0x2a5e924655399e60",1],["0xed99c5acb25eedf5",3],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",4],["0xf3ff14d5ab527059",3],["0x17a6bc0d0062aeb3",1],["0x18ef58a3b67ba770",1],["0xfbc577b9d747efd6",1]]],[21786291,1001002,[["0xdf6acb689907609b",4],["0x37e397fc7c91f5e4",2],["0x40fe3ad401f8959a",6],["0xd2bc9897eed08f15",3],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",7],["0x49eaaf1b548a0cb0",3],["0x91d5df18b0d2cf58",2],["0x2a5e924655399e60",1],["0xed99c5acb25eedf5",3],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",4],["0xf3ff14d5ab527059",3],["0x17a6bc0d0062aeb3",1],["0x18ef58a3b67ba770",1],["0xfbc577b9d747efd6",1]]],[22515962,1001003,[["0xdf6acb689907609b",4],["0x37e397fc7c91f5e4",2],["0x40fe3ad401f8959a",6],["0xd2bc9897eed08f15",3],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",7],["0x49eaaf1b548a0cb0",3],["0x91d5df18b0d2cf58",2],["0x2a5e924655399e60",1],["0xed99c5acb25eedf5",3],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",4],["0xf3ff14d5ab527059",3],["0x17a6bc0d0062aeb3",1],["0x18ef58a3b67ba770",1],["0xfbc577b9d747efd6",1]]]],eh=[[0,0,[["0xdf6acb689907609b",3],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",4],["0xd2bc9897eed08f15",2],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",3],["0xed99c5acb25eedf5",2],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[29231,1,[["0xdf6acb689907609b",3],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",4],["0xd2bc9897eed08f15",2],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",3],["0xed99c5acb25eedf5",2],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[188836,5,[["0xdf6acb689907609b",3],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",4],["0xd2bc9897eed08f15",2],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",3],["0xed99c5acb25eedf5",2],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[199405,6,[["0xdf6acb689907609b",3],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",4],["0xd2bc9897eed08f15",2],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",3],["0xed99c5acb25eedf5",2],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[214264,7,[["0xdf6acb689907609b",3],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",4],["0xd2bc9897eed08f15",2],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",3],["0xed99c5acb25eedf5",2],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[244358,8,[["0xdf6acb689907609b",3],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",4],["0xd2bc9897eed08f15",2],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",3],["0xed99c5acb25eedf5",2],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[303079,9,[["0xdf6acb689907609b",3],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",4],["0xd2bc9897eed08f15",2],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",3],["0xed99c5acb25eedf5",2],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[314201,10,[["0xdf6acb689907609b",3],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",4],["0xd2bc9897eed08f15",2],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",3],["0xed99c5acb25eedf5",2],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[342400,11,[["0xdf6acb689907609b",3],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",4],["0xd2bc9897eed08f15",2],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",3],["0xed99c5acb25eedf5",2],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[443963,12,[["0xdf6acb689907609b",3],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",4],["0xd2bc9897eed08f15",2],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",3],["0xed99c5acb25eedf5",2],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[528470,13,[["0xdf6acb689907609b",3],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",4],["0xd2bc9897eed08f15",2],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",3],["0xed99c5acb25eedf5",2],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[687751,14,[["0xdf6acb689907609b",3],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",4],["0xd2bc9897eed08f15",2],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",3],["0xed99c5acb25eedf5",2],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[746085,15,[["0xdf6acb689907609b",3],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",4],["0xd2bc9897eed08f15",2],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",3],["0xed99c5acb25eedf5",2],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[787923,16,[["0xdf6acb689907609b",3],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",4],["0xd2bc9897eed08f15",2],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",3],["0xed99c5acb25eedf5",2],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[799302,17,[["0xdf6acb689907609b",3],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",4],["0xd2bc9897eed08f15",2],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",3],["0xed99c5acb25eedf5",2],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[1205128,18,[["0xdf6acb689907609b",3],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",4],["0xd2bc9897eed08f15",2],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",3],["0xed99c5acb25eedf5",2],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[1603423,23,[["0xdf6acb689907609b",3],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",4],["0xd2bc9897eed08f15",2],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",3],["0xed99c5acb25eedf5",2],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[1733218,24,[["0xdf6acb689907609b",3],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",4],["0xd2bc9897eed08f15",2],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",3],["0xed99c5acb25eedf5",2],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[2005673,25,[["0xdf6acb689907609b",3],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",4],["0xd2bc9897eed08f15",2],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",1],["0xed99c5acb25eedf5",2],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[2436698,26,[["0xdf6acb689907609b",3],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",4],["0xd2bc9897eed08f15",2],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",1],["0xed99c5acb25eedf5",2],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[3613564,27,[["0xdf6acb689907609b",3],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",4],["0xd2bc9897eed08f15",2],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",1],["0xed99c5acb25eedf5",2],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[3899547,28,[["0xdf6acb689907609b",3],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",4],["0xd2bc9897eed08f15",2],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",1],["0xed99c5acb25eedf5",2],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[4345767,29,[["0xdf6acb689907609b",3],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",4],["0xd2bc9897eed08f15",2],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",1],["0xed99c5acb25eedf5",2],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[4876134,30,[["0xdf6acb689907609b",3],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",4],["0xd2bc9897eed08f15",2],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",1],["0xed99c5acb25eedf5",2],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[5661442,9050,[["0xdf6acb689907609b",3],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",5],["0xd2bc9897eed08f15",2],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",1],["0x49eaaf1b548a0cb0",1],["0x91d5df18b0d2cf58",1],["0xed99c5acb25eedf5",2],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[6321619,9080,[["0xdf6acb689907609b",3],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",5],["0xd2bc9897eed08f15",3],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",1],["0x49eaaf1b548a0cb0",1],["0x91d5df18b0d2cf58",1],["0xed99c5acb25eedf5",2],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[6713249,9090,[["0xdf6acb689907609b",3],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",5],["0xd2bc9897eed08f15",3],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",1],["0x49eaaf1b548a0cb0",1],["0x91d5df18b0d2cf58",1],["0xed99c5acb25eedf5",3],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[7217907,9100,[["0xdf6acb689907609b",3],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",5],["0xd2bc9897eed08f15",3],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",1],["0x49eaaf1b548a0cb0",1],["0x91d5df18b0d2cf58",1],["0xed99c5acb25eedf5",3],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[7229126,9110,[["0xdf6acb689907609b",3],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",5],["0xd2bc9897eed08f15",3],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",1],["0x49eaaf1b548a0cb0",1],["0x91d5df18b0d2cf58",1],["0xed99c5acb25eedf5",3],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[7560558,9122,[["0xdf6acb689907609b",3],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",5],["0xd2bc9897eed08f15",3],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",1],["0x49eaaf1b548a0cb0",1],["0x91d5df18b0d2cf58",1],["0xed99c5acb25eedf5",3],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[8115869,9140,[["0xdf6acb689907609b",3],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",5],["0xd2bc9897eed08f15",3],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",1],["0x49eaaf1b548a0cb0",1],["0x91d5df18b0d2cf58",1],["0xed99c5acb25eedf5",3],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[8638103,9151,[["0xdf6acb689907609b",3],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",5],["0xd2bc9897eed08f15",3],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",1],["0x49eaaf1b548a0cb0",1],["0x91d5df18b0d2cf58",1],["0xed99c5acb25eedf5",3],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[9280179,9170,[["0xdf6acb689907609b",4],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",5],["0xd2bc9897eed08f15",3],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",2],["0x49eaaf1b548a0cb0",1],["0x91d5df18b0d2cf58",1],["0xed99c5acb25eedf5",3],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[9738717,9180,[["0xdf6acb689907609b",4],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",5],["0xd2bc9897eed08f15",3],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",2],["0x49eaaf1b548a0cb0",1],["0x91d5df18b0d2cf58",1],["0xed99c5acb25eedf5",3],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[10156856,9190,[["0xdf6acb689907609b",4],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",6],["0xd2bc9897eed08f15",3],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",2],["0x49eaaf1b548a0cb0",1],["0x91d5df18b0d2cf58",1],["0xed99c5acb25eedf5",3],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[10458576,9200,[["0xdf6acb689907609b",4],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",6],["0xd2bc9897eed08f15",3],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",2],["0x49eaaf1b548a0cb0",1],["0x91d5df18b0d2cf58",1],["0xed99c5acb25eedf5",3],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[10655116,9220,[["0xdf6acb689907609b",4],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",6],["0xd2bc9897eed08f15",3],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",2],["0x49eaaf1b548a0cb0",1],["0x91d5df18b0d2cf58",1],["0xed99c5acb25eedf5",3],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[10879371,9230,[["0xdf6acb689907609b",4],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",6],["0xd2bc9897eed08f15",3],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",2],["0x49eaaf1b548a0cb0",1],["0x91d5df18b0d2cf58",1],["0xed99c5acb25eedf5",3],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[11328884,9250,[["0xdf6acb689907609b",4],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",6],["0xd2bc9897eed08f15",3],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",2],["0x49eaaf1b548a0cb0",1],["0x91d5df18b0d2cf58",1],["0xed99c5acb25eedf5",3],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[11532856,9260,[["0xdf6acb689907609b",4],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",6],["0xd2bc9897eed08f15",3],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",2],["0x49eaaf1b548a0cb0",1],["0x91d5df18b0d2cf58",1],["0xed99c5acb25eedf5",3],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[11933818,9270,[["0xdf6acb689907609b",4],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",6],["0xd2bc9897eed08f15",3],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",2],["0x49eaaf1b548a0cb0",1],["0x91d5df18b0d2cf58",1],["0xed99c5acb25eedf5",3],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[12217535,9280,[["0xdf6acb689907609b",4],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",6],["0xd2bc9897eed08f15",3],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",2],["0x49eaaf1b548a0cb0",1],["0x91d5df18b0d2cf58",1],["0xed99c5acb25eedf5",3],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1],["0xf3ff14d5ab527059",1]]],[12245277,9281,[["0xdf6acb689907609b",4],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",6],["0xd2bc9897eed08f15",3],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",2],["0x49eaaf1b548a0cb0",1],["0x91d5df18b0d2cf58",1],["0xed99c5acb25eedf5",3],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1],["0xf3ff14d5ab527059",1]]],[12532644,9291,[["0xdf6acb689907609b",4],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",6],["0x17a6bc0d0062aeb3",1],["0xd2bc9897eed08f15",3],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",2],["0x49eaaf1b548a0cb0",1],["0x91d5df18b0d2cf58",1],["0xed99c5acb25eedf5",3],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1],["0xf3ff14d5ab527059",1]]],[12876189,9300,[["0xdf6acb689907609b",4],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",6],["0x17a6bc0d0062aeb3",1],["0xd2bc9897eed08f15",3],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",2],["0x49eaaf1b548a0cb0",1],["0x91d5df18b0d2cf58",1],["0xed99c5acb25eedf5",3],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1],["0xf3ff14d5ab527059",1]]],[13800015,9340,[["0xdf6acb689907609b",4],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",6],["0x17a6bc0d0062aeb3",1],["0xd2bc9897eed08f15",3],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",2],["0x49eaaf1b548a0cb0",1],["0x91d5df18b0d2cf58",1],["0xed99c5acb25eedf5",3],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",2],["0xf3ff14d5ab527059",2]]],[14188833,9360,[["0xdf6acb689907609b",4],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",6],["0x17a6bc0d0062aeb3",1],["0xd2bc9897eed08f15",3],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",2],["0x49eaaf1b548a0cb0",1],["0x91d5df18b0d2cf58",1],["0xed99c5acb25eedf5",3],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",2],["0xf3ff14d5ab527059",2]]],[14543918,9370,[["0xdf6acb689907609b",4],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",6],["0x17a6bc0d0062aeb3",1],["0xd2bc9897eed08f15",3],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",2],["0x49eaaf1b548a0cb0",1],["0x91d5df18b0d2cf58",1],["0xed99c5acb25eedf5",3],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",2],["0xf3ff14d5ab527059",2]]],[15978362,9420,[["0xdf6acb689907609b",4],["0x37e397fc7c91f5e4",2],["0x40fe3ad401f8959a",6],["0x17a6bc0d0062aeb3",1],["0x18ef58a3b67ba770",1],["0xd2bc9897eed08f15",3],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",4],["0x49eaaf1b548a0cb0",2],["0x91d5df18b0d2cf58",2],["0xed99c5acb25eedf5",3],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",4],["0xf3ff14d5ab527059",3]]],[1645e4,9430,[["0xdf6acb689907609b",4],["0x37e397fc7c91f5e4",2],["0x40fe3ad401f8959a",6],["0x17a6bc0d0062aeb3",1],["0x18ef58a3b67ba770",1],["0xd2bc9897eed08f15",3],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",4],["0x49eaaf1b548a0cb0",2],["0x91d5df18b0d2cf58",2],["0xed99c5acb25eedf5",3],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",4],["0xf3ff14d5ab527059",3]]],[1784e4,9431,[["0xdf6acb689907609b",4],["0x37e397fc7c91f5e4",2],["0x40fe3ad401f8959a",6],["0x17a6bc0d0062aeb3",1],["0x18ef58a3b67ba770",1],["0xd2bc9897eed08f15",3],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",4],["0x49eaaf1b548a0cb0",2],["0x91d5df18b0d2cf58",2],["0xed99c5acb25eedf5",3],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",4],["0xf3ff14d5ab527059",3]]],[18407475,1000001,[["0xdf6acb689907609b",4],["0x37e397fc7c91f5e4",2],["0x40fe3ad401f8959a",6],["0x17a6bc0d0062aeb3",1],["0x18ef58a3b67ba770",1],["0xd2bc9897eed08f15",3],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",5],["0x49eaaf1b548a0cb0",3],["0x91d5df18b0d2cf58",2],["0xed99c5acb25eedf5",3],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",4],["0xf3ff14d5ab527059",3]]],[19551e3,1001002,[["0xdf6acb689907609b",4],["0x37e397fc7c91f5e4",2],["0x40fe3ad401f8959a",6],["0x17a6bc0d0062aeb3",1],["0x18ef58a3b67ba770",1],["0xd2bc9897eed08f15",3],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",5],["0x49eaaf1b548a0cb0",3],["0x91d5df18b0d2cf58",2],["0x2a5e924655399e60",1],["0xed99c5acb25eedf5",3],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",4],["0xf3ff14d5ab527059",3],["0xfbc577b9d747efd6",1]]],[20181758,1001003,[["0xdf6acb689907609b",4],["0x37e397fc7c91f5e4",2],["0x40fe3ad401f8959a",6],["0x17a6bc0d0062aeb3",1],["0x18ef58a3b67ba770",1],["0xd2bc9897eed08f15",3],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",5],["0x49eaaf1b548a0cb0",3],["0x91d5df18b0d2cf58",2],["0x2a5e924655399e60",1],["0xed99c5acb25eedf5",3],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",4],["0xf3ff14d5ab527059",3],["0xfbc577b9d747efd6",1]]],[20438530,1002e3,[["0xdf6acb689907609b",4],["0x37e397fc7c91f5e4",2],["0x40fe3ad401f8959a",6],["0x17a6bc0d0062aeb3",1],["0x18ef58a3b67ba770",1],["0xd2bc9897eed08f15",3],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",10],["0x49eaaf1b548a0cb0",3],["0x91d5df18b0d2cf58",2],["0x2a5e924655399e60",1],["0xed99c5acb25eedf5",3],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",4],["0xf3ff14d5ab527059",3],["0xfbc577b9d747efd6",1]]]],th=[[214356,4,[["0xdf6acb689907609b",3],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",4],["0xd2bc9897eed08f15",2],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",3],["0xed99c5acb25eedf5",2],["0xcbca25e39f142387",1],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[392764,7,[["0xdf6acb689907609b",3],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",4],["0xd2bc9897eed08f15",2],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",3],["0xed99c5acb25eedf5",2],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[409740,8,[["0xdf6acb689907609b",3],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",4],["0xd2bc9897eed08f15",2],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",3],["0xed99c5acb25eedf5",2],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[809976,20,[["0xdf6acb689907609b",3],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",4],["0xd2bc9897eed08f15",2],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",3],["0xed99c5acb25eedf5",2],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[877581,24,[["0xdf6acb689907609b",3],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",4],["0xd2bc9897eed08f15",2],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",3],["0xed99c5acb25eedf5",2],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[879238,25,[["0xdf6acb689907609b",3],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",4],["0xd2bc9897eed08f15",2],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",3],["0xed99c5acb25eedf5",2],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[889472,26,[["0xdf6acb689907609b",3],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",4],["0xd2bc9897eed08f15",2],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",3],["0xed99c5acb25eedf5",2],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[902937,27,[["0xdf6acb689907609b",3],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",4],["0xd2bc9897eed08f15",2],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",3],["0xed99c5acb25eedf5",2],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[932751,28,[["0xdf6acb689907609b",3],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",4],["0xd2bc9897eed08f15",2],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",3],["0xed99c5acb25eedf5",2],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[991142,29,[["0xdf6acb689907609b",3],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",4],["0xd2bc9897eed08f15",2],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",3],["0xed99c5acb25eedf5",2],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[1030162,31,[["0xdf6acb689907609b",3],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",4],["0xd2bc9897eed08f15",2],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",3],["0xed99c5acb25eedf5",2],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[1119657,32,[["0xdf6acb689907609b",3],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",4],["0xd2bc9897eed08f15",2],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",3],["0xed99c5acb25eedf5",2],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[1199282,33,[["0xdf6acb689907609b",3],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",4],["0xd2bc9897eed08f15",2],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",3],["0xed99c5acb25eedf5",2],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[1342534,34,[["0xdf6acb689907609b",3],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",4],["0xd2bc9897eed08f15",2],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",3],["0xed99c5acb25eedf5",2],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[1392263,35,[["0xdf6acb689907609b",3],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",4],["0xd2bc9897eed08f15",2],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",3],["0xed99c5acb25eedf5",2],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[1431703,36,[["0xdf6acb689907609b",3],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",4],["0xd2bc9897eed08f15",2],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",3],["0xed99c5acb25eedf5",2],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[1433369,37,[["0xdf6acb689907609b",3],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",4],["0xd2bc9897eed08f15",2],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",3],["0xed99c5acb25eedf5",2],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[1490972,41,[["0xdf6acb689907609b",3],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",4],["0xd2bc9897eed08f15",2],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",3],["0xed99c5acb25eedf5",2],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[2087397,43,[["0xdf6acb689907609b",3],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",4],["0xd2bc9897eed08f15",2],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",3],["0xed99c5acb25eedf5",2],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[2316688,44,[["0xdf6acb689907609b",3],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",4],["0xd2bc9897eed08f15",2],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",3],["0xed99c5acb25eedf5",2],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[2549864,45,[["0xdf6acb689907609b",3],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",4],["0xd2bc9897eed08f15",2],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",1],["0xed99c5acb25eedf5",2],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[3925782,46,[["0xdf6acb689907609b",3],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",4],["0xd2bc9897eed08f15",2],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",1],["0xed99c5acb25eedf5",2],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[3925843,47,[["0xdf6acb689907609b",3],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",4],["0xd2bc9897eed08f15",2],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",1],["0xed99c5acb25eedf5",2],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[4207800,48,[["0xdf6acb689907609b",3],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",4],["0xd2bc9897eed08f15",2],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",1],["0xed99c5acb25eedf5",2],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[4627944,49,[["0xdf6acb689907609b",3],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",4],["0xd2bc9897eed08f15",2],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",1],["0xed99c5acb25eedf5",2],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[5124076,50,[["0xdf6acb689907609b",3],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",4],["0xd2bc9897eed08f15",2],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",1],["0xed99c5acb25eedf5",2],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[5478664,900,[["0xdf6acb689907609b",3],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",4],["0xd2bc9897eed08f15",2],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",1],["0xed99c5acb25eedf5",2],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[5482450,9e3,[["0xdf6acb689907609b",3],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",4],["0xd2bc9897eed08f15",2],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",1],["0x49eaaf1b548a0cb0",1],["0x91d5df18b0d2cf58",1],["0xed99c5acb25eedf5",2],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[5584305,9010,[["0xdf6acb689907609b",3],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",5],["0xd2bc9897eed08f15",2],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",1],["0x49eaaf1b548a0cb0",1],["0x91d5df18b0d2cf58",1],["0xed99c5acb25eedf5",2],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[5784566,9030,[["0xdf6acb689907609b",3],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",5],["0xd2bc9897eed08f15",2],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",1],["0x49eaaf1b548a0cb0",1],["0x91d5df18b0d2cf58",1],["0xed99c5acb25eedf5",2],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[5879822,9031,[["0xdf6acb689907609b",3],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",5],["0xd2bc9897eed08f15",2],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",1],["0x49eaaf1b548a0cb0",1],["0x91d5df18b0d2cf58",1],["0xed99c5acb25eedf5",2],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[5896856,9032,[["0xdf6acb689907609b",3],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",5],["0xd2bc9897eed08f15",2],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",1],["0x49eaaf1b548a0cb0",1],["0x91d5df18b0d2cf58",1],["0xed99c5acb25eedf5",2],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[5897316,9033,[["0xdf6acb689907609b",3],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",5],["0xd2bc9897eed08f15",2],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",1],["0x49eaaf1b548a0cb0",1],["0x91d5df18b0d2cf58",1],["0xed99c5acb25eedf5",2],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[6117927,9050,[["0xdf6acb689907609b",3],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",5],["0xd2bc9897eed08f15",2],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",1],["0x49eaaf1b548a0cb0",1],["0x91d5df18b0d2cf58",1],["0xed99c5acb25eedf5",2],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[6210274,9070,[["0xdf6acb689907609b",3],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",5],["0xd2bc9897eed08f15",2],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",1],["0x49eaaf1b548a0cb0",1],["0x91d5df18b0d2cf58",1],["0xed99c5acb25eedf5",2],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[6379314,9080,[["0xdf6acb689907609b",3],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",5],["0xd2bc9897eed08f15",3],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",1],["0x49eaaf1b548a0cb0",1],["0x91d5df18b0d2cf58",1],["0xed99c5acb25eedf5",2],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[6979141,9090,[["0xdf6acb689907609b",3],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",5],["0xd2bc9897eed08f15",3],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",1],["0x49eaaf1b548a0cb0",1],["0x91d5df18b0d2cf58",1],["0xed99c5acb25eedf5",3],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[7568453,9100,[["0xdf6acb689907609b",3],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",5],["0xd2bc9897eed08f15",3],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",1],["0x49eaaf1b548a0cb0",1],["0x91d5df18b0d2cf58",1],["0xed99c5acb25eedf5",3],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[7766394,9111,[["0xdf6acb689907609b",3],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",5],["0xd2bc9897eed08f15",3],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",1],["0x49eaaf1b548a0cb0",1],["0x91d5df18b0d2cf58",1],["0xed99c5acb25eedf5",3],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[7911691,9120,[["0xdf6acb689907609b",3],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",5],["0xd2bc9897eed08f15",3],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",1],["0x49eaaf1b548a0cb0",1],["0x91d5df18b0d2cf58",1],["0xed99c5acb25eedf5",3],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[7968866,9121,[["0xdf6acb689907609b",3],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",5],["0xd2bc9897eed08f15",3],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",1],["0x49eaaf1b548a0cb0",1],["0x91d5df18b0d2cf58",1],["0xed99c5acb25eedf5",3],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[7982889,9122,[["0xdf6acb689907609b",3],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",5],["0xd2bc9897eed08f15",3],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",1],["0x49eaaf1b548a0cb0",1],["0x91d5df18b0d2cf58",1],["0xed99c5acb25eedf5",3],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[8514322,9130,[["0xdf6acb689907609b",3],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",5],["0xd2bc9897eed08f15",3],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",1],["0x49eaaf1b548a0cb0",1],["0x91d5df18b0d2cf58",1],["0xed99c5acb25eedf5",3],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[9091726,9140,[["0xdf6acb689907609b",3],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",5],["0xd2bc9897eed08f15",3],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",1],["0x49eaaf1b548a0cb0",1],["0x91d5df18b0d2cf58",1],["0xed99c5acb25eedf5",3],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[9091774,9150,[["0xdf6acb689907609b",3],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",5],["0xd2bc9897eed08f15",3],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",1],["0x49eaaf1b548a0cb0",1],["0x91d5df18b0d2cf58",1],["0xed99c5acb25eedf5",3],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[9406726,9160,[["0xdf6acb689907609b",4],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",5],["0xd2bc9897eed08f15",3],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",2],["0x49eaaf1b548a0cb0",1],["0x91d5df18b0d2cf58",1],["0xed99c5acb25eedf5",3],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[9921066,9170,[["0xdf6acb689907609b",4],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",5],["0xd2bc9897eed08f15",3],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",2],["0x49eaaf1b548a0cb0",1],["0x91d5df18b0d2cf58",1],["0xed99c5acb25eedf5",3],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[10007115,9180,[["0xdf6acb689907609b",4],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",5],["0xd2bc9897eed08f15",3],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",2],["0x49eaaf1b548a0cb0",1],["0x91d5df18b0d2cf58",1],["0xed99c5acb25eedf5",3],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[10480973,9190,[["0xdf6acb689907609b",4],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",6],["0xd2bc9897eed08f15",3],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",2],["0x49eaaf1b548a0cb0",1],["0x91d5df18b0d2cf58",1],["0xed99c5acb25eedf5",3],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[10578091,9200,[["0xdf6acb689907609b",4],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",6],["0xd2bc9897eed08f15",3],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",2],["0x49eaaf1b548a0cb0",1],["0x91d5df18b0d2cf58",1],["0xed99c5acb25eedf5",3],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[10678509,9210,[["0xdf6acb689907609b",4],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",6],["0xd2bc9897eed08f15",3],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",2],["0x49eaaf1b548a0cb0",1],["0x91d5df18b0d2cf58",1],["0xed99c5acb25eedf5",3],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[10811001,9220,[["0xdf6acb689907609b",4],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",6],["0xd2bc9897eed08f15",3],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",2],["0x49eaaf1b548a0cb0",1],["0x91d5df18b0d2cf58",1],["0xed99c5acb25eedf5",3],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[11096116,9230,[["0xdf6acb689907609b",4],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",6],["0xd2bc9897eed08f15",3],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",2],["0x49eaaf1b548a0cb0",1],["0x91d5df18b0d2cf58",1],["0xed99c5acb25eedf5",3],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[11409279,9250,[["0xdf6acb689907609b",4],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",6],["0xd2bc9897eed08f15",3],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",2],["0x49eaaf1b548a0cb0",1],["0x91d5df18b0d2cf58",1],["0xed99c5acb25eedf5",3],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[11584820,9251,[["0xdf6acb689907609b",4],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",6],["0xd2bc9897eed08f15",3],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",2],["0x49eaaf1b548a0cb0",1],["0x91d5df18b0d2cf58",1],["0xed99c5acb25eedf5",3],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[11716837,9260,[["0xdf6acb689907609b",4],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",6],["0xd2bc9897eed08f15",3],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",2],["0x49eaaf1b548a0cb0",1],["0x91d5df18b0d2cf58",1],["0xed99c5acb25eedf5",3],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[11876919,9261,[["0xdf6acb689907609b",4],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",6],["0xd2bc9897eed08f15",3],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",2],["0x49eaaf1b548a0cb0",1],["0x91d5df18b0d2cf58",1],["0xed99c5acb25eedf5",3],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[11987927,9270,[["0xdf6acb689907609b",4],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",6],["0xd2bc9897eed08f15",3],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",2],["0x49eaaf1b548a0cb0",1],["0x91d5df18b0d2cf58",1],["0xed99c5acb25eedf5",3],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1],["0x17a6bc0d0062aeb3",1]]],[12077324,9271,[["0xdf6acb689907609b",4],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",6],["0xd2bc9897eed08f15",3],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",2],["0x49eaaf1b548a0cb0",1],["0x91d5df18b0d2cf58",1],["0xed99c5acb25eedf5",3],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1],["0x17a6bc0d0062aeb3",1]]],[12301871,9280,[["0xdf6acb689907609b",4],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",6],["0xd2bc9897eed08f15",3],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",2],["0x49eaaf1b548a0cb0",1],["0x91d5df18b0d2cf58",1],["0xed99c5acb25eedf5",3],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1],["0xf3ff14d5ab527059",1],["0x17a6bc0d0062aeb3",1]]],[12604343,9290,[["0xdf6acb689907609b",4],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",6],["0xd2bc9897eed08f15",3],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",2],["0x49eaaf1b548a0cb0",1],["0x91d5df18b0d2cf58",1],["0xed99c5acb25eedf5",3],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1],["0xf3ff14d5ab527059",1],["0x17a6bc0d0062aeb3",1]]],[12841034,9300,[["0xdf6acb689907609b",4],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",6],["0xd2bc9897eed08f15",3],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",3],["0x49eaaf1b548a0cb0",1],["0x91d5df18b0d2cf58",1],["0xed99c5acb25eedf5",3],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1],["0xf3ff14d5ab527059",1],["0x17a6bc0d0062aeb3",1]]],[13128237,9310,[["0xdf6acb689907609b",4],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",6],["0xd2bc9897eed08f15",3],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",3],["0x49eaaf1b548a0cb0",1],["0x91d5df18b0d2cf58",1],["0xed99c5acb25eedf5",3],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1],["0xf3ff14d5ab527059",1],["0x17a6bc0d0062aeb3",1]]],[13272363,9320,[["0xdf6acb689907609b",4],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",6],["0xd2bc9897eed08f15",3],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",3],["0x49eaaf1b548a0cb0",1],["0x91d5df18b0d2cf58",1],["0xed99c5acb25eedf5",3],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",2],["0xf3ff14d5ab527059",2],["0x17a6bc0d0062aeb3",1]]],[13483497,9330,[["0xdf6acb689907609b",4],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",6],["0xd2bc9897eed08f15",3],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",3],["0x49eaaf1b548a0cb0",1],["0x91d5df18b0d2cf58",1],["0xed99c5acb25eedf5",3],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",2],["0xf3ff14d5ab527059",2],["0x17a6bc0d0062aeb3",1]]],[13649433,9340,[["0xdf6acb689907609b",4],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",6],["0xd2bc9897eed08f15",3],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",3],["0x49eaaf1b548a0cb0",1],["0x91d5df18b0d2cf58",1],["0xed99c5acb25eedf5",3],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",2],["0xf3ff14d5ab527059",2],["0x17a6bc0d0062aeb3",1]]],[13761100,9350,[["0xdf6acb689907609b",4],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",6],["0xd2bc9897eed08f15",3],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",3],["0x49eaaf1b548a0cb0",1],["0x91d5df18b0d2cf58",1],["0xed99c5acb25eedf5",3],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",2],["0xf3ff14d5ab527059",2],["0x17a6bc0d0062aeb3",1]]],[13847400,9360,[["0xdf6acb689907609b",4],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",6],["0xd2bc9897eed08f15",3],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",3],["0x49eaaf1b548a0cb0",1],["0x91d5df18b0d2cf58",1],["0xed99c5acb25eedf5",3],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",2],["0xf3ff14d5ab527059",2],["0x17a6bc0d0062aeb3",1]]],[14249200,9370,[["0xdf6acb689907609b",4],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",6],["0xd2bc9897eed08f15",3],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",3],["0x49eaaf1b548a0cb0",1],["0x91d5df18b0d2cf58",1],["0xed99c5acb25eedf5",3],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",2],["0xf3ff14d5ab527059",2],["0x17a6bc0d0062aeb3",1]]],[14576855,9380,[["0xdf6acb689907609b",4],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",6],["0xd2bc9897eed08f15",3],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",3],["0x49eaaf1b548a0cb0",1],["0x91d5df18b0d2cf58",1],["0xed99c5acb25eedf5",3],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",3],["0xf3ff14d5ab527059",3],["0x17a6bc0d0062aeb3",1]]],[14849830,9390,[["0xdf6acb689907609b",4],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",6],["0xd2bc9897eed08f15",3],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",4],["0x49eaaf1b548a0cb0",1],["0x91d5df18b0d2cf58",1],["0xed99c5acb25eedf5",3],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",3],["0xf3ff14d5ab527059",3],["0x17a6bc0d0062aeb3",1],["0x18ef58a3b67ba770",1]]],[15146832,9400,[["0xdf6acb689907609b",4],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",6],["0xd2bc9897eed08f15",3],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",4],["0x49eaaf1b548a0cb0",2],["0x91d5df18b0d2cf58",2],["0xed99c5acb25eedf5",3],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",3],["0xf3ff14d5ab527059",3],["0x17a6bc0d0062aeb3",1],["0x18ef58a3b67ba770",1]]],[15332317,9401,[["0xdf6acb689907609b",4],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",6],["0xd2bc9897eed08f15",3],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",4],["0x49eaaf1b548a0cb0",2],["0x91d5df18b0d2cf58",2],["0xed99c5acb25eedf5",3],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",3],["0xf3ff14d5ab527059",3],["0x17a6bc0d0062aeb3",1],["0x18ef58a3b67ba770",1]]],[15661793,9420,[["0xdf6acb689907609b",4],["0x37e397fc7c91f5e4",2],["0x40fe3ad401f8959a",6],["0xd2bc9897eed08f15",3],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",4],["0x49eaaf1b548a0cb0",2],["0x91d5df18b0d2cf58",2],["0xed99c5acb25eedf5",3],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",4],["0xf3ff14d5ab527059",3],["0x17a6bc0d0062aeb3",1],["0x18ef58a3b67ba770",1]]],[16165469,9430,[["0xdf6acb689907609b",4],["0x37e397fc7c91f5e4",2],["0x40fe3ad401f8959a",6],["0xd2bc9897eed08f15",3],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",4],["0x49eaaf1b548a0cb0",2],["0x91d5df18b0d2cf58",2],["0xed99c5acb25eedf5",3],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",4],["0xf3ff14d5ab527059",3],["0x17a6bc0d0062aeb3",1],["0x18ef58a3b67ba770",1]]],[18293984,102e3,[["0xdf6acb689907609b",4],["0x37e397fc7c91f5e4",2],["0x40fe3ad401f8959a",6],["0xd2bc9897eed08f15",3],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",7],["0x49eaaf1b548a0cb0",3],["0x91d5df18b0d2cf58",2],["0x2a5e924655399e60",1],["0xed99c5acb25eedf5",3],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",4],["0xf3ff14d5ab527059",3],["0x17a6bc0d0062aeb3",1],["0x18ef58a3b67ba770",1],["0xfbc577b9d747efd6",1]]],[18293991,103e3,[["0xdf6acb689907609b",4],["0x37e397fc7c91f5e4",2],["0x40fe3ad401f8959a",6],["0xd2bc9897eed08f15",3],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",8],["0x49eaaf1b548a0cb0",3],["0x91d5df18b0d2cf58",2],["0x2a5e924655399e60",1],["0xed99c5acb25eedf5",3],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",4],["0xf3ff14d5ab527059",3],["0x17a6bc0d0062aeb3",1],["0x18ef58a3b67ba770",1],["0xfbc577b9d747efd6",1]]],[18451783,104e3,[["0xdf6acb689907609b",4],["0x37e397fc7c91f5e4",2],["0x40fe3ad401f8959a",6],["0xd2bc9897eed08f15",3],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",9],["0x49eaaf1b548a0cb0",3],["0x91d5df18b0d2cf58",2],["0x2a5e924655399e60",1],["0xed99c5acb25eedf5",3],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",4],["0xf3ff14d5ab527059",3],["0x17a6bc0d0062aeb3",1],["0x18ef58a3b67ba770",1],["0xfbc577b9d747efd6",1]]],[18679741,1005e3,[["0xdf6acb689907609b",4],["0x37e397fc7c91f5e4",2],["0x40fe3ad401f8959a",6],["0xd2bc9897eed08f15",3],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",9],["0x49eaaf1b548a0cb0",3],["0x91d5df18b0d2cf58",2],["0x2a5e924655399e60",1],["0xed99c5acb25eedf5",3],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",4],["0xf3ff14d5ab527059",3],["0x17a6bc0d0062aeb3",1],["0x18ef58a3b67ba770",1],["0xfbc577b9d747efd6",1]]],[19166695,1006e3,[["0xdf6acb689907609b",4],["0x37e397fc7c91f5e4",2],["0x40fe3ad401f8959a",6],["0xd2bc9897eed08f15",3],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",10],["0x49eaaf1b548a0cb0",3],["0x91d5df18b0d2cf58",2],["0x2a5e924655399e60",1],["0xed99c5acb25eedf5",3],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",4],["0xf3ff14d5ab527059",3],["0x17a6bc0d0062aeb3",1],["0x18ef58a3b67ba770",1],["0xfbc577b9d747efd6",1]]],[19234157,1006001,[["0xdf6acb689907609b",4],["0x37e397fc7c91f5e4",2],["0x40fe3ad401f8959a",6],["0xd2bc9897eed08f15",3],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",10],["0x49eaaf1b548a0cb0",3],["0x91d5df18b0d2cf58",2],["0x2a5e924655399e60",1],["0xed99c5acb25eedf5",3],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",4],["0xf3ff14d5ab527059",3],["0x17a6bc0d0062aeb3",1],["0x18ef58a3b67ba770",1],["0xfbc577b9d747efd6",1]]],[19542944,1007e3,[["0xdf6acb689907609b",4],["0x37e397fc7c91f5e4",2],["0x40fe3ad401f8959a",6],["0xd2bc9897eed08f15",3],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",10],["0x49eaaf1b548a0cb0",3],["0x91d5df18b0d2cf58",2],["0x2a5e924655399e60",1],["0xed99c5acb25eedf5",3],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",4],["0xf3ff14d5ab527059",3],["0x17a6bc0d0062aeb3",1],["0x18ef58a3b67ba770",1],["0xfbc577b9d747efd6",1]]],[19621258,1007001,[["0xdf6acb689907609b",4],["0x37e397fc7c91f5e4",2],["0x40fe3ad401f8959a",6],["0xd2bc9897eed08f15",3],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",10],["0x49eaaf1b548a0cb0",3],["0x91d5df18b0d2cf58",2],["0x2a5e924655399e60",1],["0xed99c5acb25eedf5",3],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",4],["0xf3ff14d5ab527059",3],["0x17a6bc0d0062aeb3",1],["0x18ef58a3b67ba770",1],["0xfbc577b9d747efd6",1]]],[19761406,1008e3,[["0xdf6acb689907609b",4],["0x37e397fc7c91f5e4",2],["0x40fe3ad401f8959a",6],["0xd2bc9897eed08f15",3],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",10],["0x49eaaf1b548a0cb0",3],["0x91d5df18b0d2cf58",2],["0x2a5e924655399e60",1],["0xed99c5acb25eedf5",3],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",4],["0xf3ff14d5ab527059",3],["0x17a6bc0d0062aeb3",1],["0x18ef58a3b67ba770",1],["0xfbc577b9d747efd6",1]]],[20056997,1009e3,[["0xdf6acb689907609b",5],["0x37e397fc7c91f5e4",2],["0x40fe3ad401f8959a",6],["0xd2bc9897eed08f15",3],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",10],["0x49eaaf1b548a0cb0",3],["0x91d5df18b0d2cf58",2],["0x2a5e924655399e60",1],["0xed99c5acb25eedf5",3],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",4],["0xf3ff14d5ab527059",3],["0x17a6bc0d0062aeb3",1],["0x18ef58a3b67ba770",1],["0xfbc577b9d747efd6",1]]],[20368318,101e4,[["0xdf6acb689907609b",5],["0x37e397fc7c91f5e4",2],["0x40fe3ad401f8959a",6],["0xd2bc9897eed08f15",3],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",10],["0x49eaaf1b548a0cb0",3],["0x91d5df18b0d2cf58",2],["0x2a5e924655399e60",1],["0xed99c5acb25eedf5",3],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",4],["0xf3ff14d5ab527059",3],["0x6ff52ee858e6c5bd",1],["0x17a6bc0d0062aeb3",1],["0x18ef58a3b67ba770",1],["0xfbc577b9d747efd6",1]]]],nh={westend:{genesisHash:["0xe143f23803ac50e8f6f8e62695d1ce9e4e1d68aa36c1cd2cfd15340213f3423e"]}};const rh=Object.entries(s).map((function([e,t]){const n=ao.find((t=>t.network===e))||nh[e];if(!n)throw new Error(`Unable to find info for chain ${e}`);return{genesisHash:(0,as.G)(n.genesisHash[0]),network:e,versions:t.map((([e,t,n])=>({apis:n,blockNumber:new bt(e),specVersion:new bt(t)})))}}));function ah(e,t,n){return n(e.toString(),t.toString())}function ih(e=[],t){return e.filter((({minmax:[e,n]})=>(null==e||t>=e)&&(null==n||t<=n))).reduce(((e,{types:t})=>({...e,...t})),{})}function sh({knownTypes:e},t,n){return ah(t,n,((t,n)=>({...e.typesBundle?.spec?.[n]?.rpc??{},...e.typesBundle?.chain?.[t]?.rpc??{}})))}var oh=R((function(e){return function(){e(this),this.name="ObjectUnsubscribedError",this.message="object unsubscribed"}})),ch=function(e){function t(){var t=e.call(this)||this;return t.closed=!1,t.currentObservers=null,t.observers=[],t.isStopped=!1,t.hasError=!1,t.thrownError=null,t}return U(t,e),t.prototype.lift=function(e){var t=new dh(this,this);return t.operator=e,t},t.prototype._throwIfClosed=function(){if(this.closed)throw new oh},t.prototype.next=function(e){var t=this;ce((function(){var n,r;if(t._throwIfClosed(),!t.isStopped){t.currentObservers||(t.currentObservers=Array.from(t.observers));try{for(var a=q(t.currentObservers),i=a.next();!i.done;i=a.next()){i.value.next(e)}}catch(s){n={error:s}}finally{try{i&&!i.done&&(r=a.return)&&r.call(a)}finally{if(n)throw n.error}}}}))},t.prototype.error=function(e){var t=this;ce((function(){if(t._throwIfClosed(),!t.isStopped){t.hasError=t.isStopped=!0,t.thrownError=e;for(var n=t.observers;n.length;)n.shift().error(e)}}))},t.prototype.complete=function(){var e=this;ce((function(){if(e._throwIfClosed(),!e.isStopped){e.isStopped=!0;for(var t=e.observers;t.length;)t.shift().complete()}}))},t.prototype.unsubscribe=function(){this.isStopped=this.closed=!0,this.observers=this.currentObservers=null},Object.defineProperty(t.prototype,"observed",{get:function(){var e;return(null===(e=this.observers)||void 0===e?void 0:e.length)>0},enumerable:!1,configurable:!0}),t.prototype._trySubscribe=function(t){return this._throwIfClosed(),e.prototype._trySubscribe.call(this,t)},t.prototype._subscribe=function(e){return this._throwIfClosed(),this._checkFinalizedStatuses(e),this._innerSubscribe(e)},t.prototype._innerSubscribe=function(e){var t=this,n=this,r=n.hasError,a=n.isStopped,i=n.observers;return r||a?Q:(this.currentObservers=null,i.push(e),new J((function(){t.currentObservers=null,Y(i,e)})))},t.prototype._checkFinalizedStatuses=function(e){var t=this,n=t.hasError,r=t.thrownError,a=t.isStopped;n?e.error(r):a&&e.complete()},t.prototype.asObservable=function(){var e=new ke;return e.source=this,e},t.create=function(e,t){return new dh(e,t)},t}(ke),dh=function(e){function t(t,n){var r=e.call(this)||this;return r.destination=t,r.source=n,r}return U(t,e),t.prototype.next=function(e){var t,n;null===(n=null===(t=this.destination)||void 0===t?void 0:t.next)||void 0===n||n.call(t,e)},t.prototype.error=function(e){var t,n;null===(n=null===(t=this.destination)||void 0===t?void 0:t.error)||void 0===n||n.call(t,e)},t.prototype.complete=function(){var e,t;null===(t=null===(e=this.destination)||void 0===e?void 0:e.complete)||void 0===t||t.call(e)},t.prototype._subscribe=function(e){var t,n;return null!==(n=null===(t=this.source)||void 0===t?void 0:t.subscribe(e))&&void 0!==n?n:Q},t}(ch),uh=function(e){function t(t){var n=e.call(this)||this;return n._value=t,n}return U(t,e),Object.defineProperty(t.prototype,"value",{get:function(){return this.getValue()},enumerable:!1,configurable:!0}),t.prototype._subscribe=function(t){var n=e.prototype._subscribe.call(this,t);return!n.closed&&t.next(this._value),n},t.prototype.getValue=function(){var e=this,t=e.hasError,n=e.thrownError,r=e._value;if(t)throw n;return this._throwIfClosed(),r},t.prototype.next=function(t){e.prototype.next.call(this,this._value=t)},t}(ch),lh=Array.isArray,fh=Object.getPrototypeOf,ph=Object.prototype,hh=Object.keys;function bh(e){if(1===e.length){var t=e[0];if(lh(t))return{args:t,keys:null};if((r=t)&&"object"==typeof r&&fh(r)===ph){var n=hh(t);return{args:n.map((function(e){return t[e]})),keys:n}}}var r;return{args:e,keys:null}}var mh=Array.isArray;function yh(e){return Ge((function(t){return function(e,t){return mh(t)?e.apply(void 0,F([],j(t))):e(t)}(e,t)}))}function xh(){for(var e=[],t=0;t=2,!1,!0))}var Sh=function(e,t){return e.push(t),e};function kh(){return He((function(e,t){wh(Sh,[])(e).subscribe(t)}))}function Th(e,t,n,r){oa(e,t,(()=>ca({},n(t),(e=>r(t,e)))))}function Ph(){return"none"}function Vh(e,{getInstanceId:t=Ph}={}){const n={},r=(...r)=>{const a=(0,Qe.P)(r),i=t();return n[i]||(n[i]={}),void 0===n[i][a]&&(n[i][a]=e(...r)),n[i][a]};return r.unmemoize=(...e)=>{const r=(0,Qe.P)(e),a=t();void 0!==n[a]?.[r]&&delete n[a][r]},r}function Mh(e){return He((function(t,n){var r,a=null,i=!1;a=t.subscribe(Re(n,void 0,void 0,(function(s){r=Ee(e(s,Mh(e)(t))),a?(a.unsubscribe(),a=null,r.subscribe(n)):i=!0}))),i&&(a.unsubscribe(),a=null,r.subscribe(n))}))}function _h(e,t){return e===t}var Ih={now:function(){return(Ih.delegate||Date).now()},delegate:void 0},Oh=function(e){function t(t,n,r){void 0===t&&(t=1/0),void 0===n&&(n=1/0),void 0===r&&(r=Ih);var a=e.call(this)||this;return a._bufferSize=t,a._windowTime=n,a._timestampProvider=r,a._buffer=[],a._infiniteTimeWindow=!0,a._infiniteTimeWindow=n===1/0,a._bufferSize=Math.max(1,t),a._windowTime=Math.max(1,n),a}return U(t,e),t.prototype.next=function(t){var n=this,r=n.isStopped,a=n._buffer,i=n._infiniteTimeWindow,s=n._timestampProvider,o=n._windowTime;r||(a.push(t),!i&&a.push(s.now()+o)),this._trimBuffer(),e.prototype.next.call(this,t)},t.prototype._subscribe=function(e){this._throwIfClosed(),this._trimBuffer();for(var t=this._innerSubscribe(e),n=this._infiniteTimeWindow,r=this._buffer.slice(),a=0;a0?e.prototype.requestAsyncId.call(this,t,n,r):(t.actions.push(this),t._scheduled||(t._scheduled=Xh.setImmediate(t.flush.bind(t,void 0))))},t.prototype.recycleAsyncId=function(t,n,r){var a;if(void 0===r&&(r=0),null!=r?r>0:this.delay>0)return e.prototype.recycleAsyncId.call(this,t,n,r);var i=t.actions;null!=n&&(null===(a=i[i.length-1])||void 0===a?void 0:a.id)!==n&&(Xh.clearImmediate(n),t._scheduled===n&&(t._scheduled=void 0))},t}(Uh),Zh=function(){function e(t,n){void 0===n&&(n=e.now),this.schedulerActionCtor=t,this.now=n}return e.prototype.schedule=function(e,t,n){return void 0===t&&(t=0),new this.schedulerActionCtor(this,e).schedule(n,t)},e.now=Ih.now,e}(),Gh=new(function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return U(t,e),t.prototype.flush=function(e){this._active=!0;var t=this._scheduled;this._scheduled=void 0;var n,r=this.actions;e=e||r.shift();do{if(n=e.execute(e.state,e.delay))break}while((e=r[0])&&e.id===t&&r.shift());if(this._active=!1,n){for(;(e=r[0])&&e.id===t&&r.shift();)e.unsubscribe();throw n}},t}(function(e){function t(t,n){void 0===n&&(n=Zh.now);var r=e.call(this,t,n)||this;return r.actions=[],r._active=!1,r}return U(t,e),t.prototype.flush=function(e){var t=this.actions;if(this._active)t.push(e);else{var n;this._active=!0;do{if(n=e.execute(e.state,e.delay))break}while(e=t.shift());if(this._active=!1,n){for(;e=t.shift();)e.unsubscribe();throw n}}},t}(Zh)))(Wh);function Kh(e=1750){return t=>{let[n,r,a,i]=[0,0,J.EMPTY,J.EMPTY];return new ke((s=>(t.subscribe(s),0==r++&&(1===n?i.unsubscribe():a=t.connect(),n=3),()=>{0==--r&&(2===n?(n=0,i.unsubscribe()):(n=1,i=Gh.schedule((()=>{n=0,a.unsubscribe()}),e)))})))}}function Yh(e,t){return(0,Qe.P)({t:e})===(0,Qe.P)({t:t})}function Jh(e){throw e}function Qh(){}function $h({delay:e,skipChange:t=!1,skipTimeout:n=!1}={}){return r=>{return r.pipe(Mh(Jh),t?vh(Qh):(void 0===i&&(i=we),a=null!=(a=Yh)?a:_h,He((function(e,t){var n,r=!0;e.subscribe(Re(t,(function(e){var s=i(e);!r&&a(n,s)||(r=!1,n=s,t.next(e))})))}))),Hh(1),n?Nh():Kh(e));var a,i}}function eb(e,t){const n=Vh(((...e)=>new ke((r=>{const a=t(...e).subscribe(r);return()=>{n.unmemoize(...e),a.unsubscribe()}})).pipe($h())),{getInstanceId:()=>e});return n}function tb(e,t){return eb(e,(e=>{const n=(0,gt.U)(e)?e:so((e||"").toString());if(n.length>8)return Ze(t.registry.createType("AccountId",n));const r=t.registry.createType("AccountIndex",n);return t.derive.accounts.indexToId(r.toString()).pipe(Ge((e=>da(e,"Unable to retrieve accountId"))))}))}function nb(e,t){return eb(e,(()=>{const e=[void 0,[],[],[],void 0],n=[(t.query.elections||t.query.phragmenElection||t.query.electionsPhragmen)?.members,t.query.council?.members,t.query.technicalCommittee?.members,t.query.society?.members,t.query.sudo?.key],r=n.filter((e=>e));return r.length?t.queryMulti(r).pipe(Ge((t=>{let r=-1;for(let a=0,i=n.length;at.derive.accounts._flags().pipe(Ge((t=>function(e,[t,n,r,a,i]){const s=e?.toString(),o=e=>e.toString()===s;return{isCouncil:(t?.map((e=>Array.isArray(e)?e[0]:e.who))||n||[]).some(o),isSociety:(a||[]).some(o),isSudo:i?.toString()===s,isTechCommittee:(r||[]).some(o)}}(e,t))))))}function ab(e,t){return eb(e,(e=>{try{const n=(0,gt.U)(e)?e:so((e||"").toString());if(n.length>8){const e=t.registry.createType("AccountId",n);return t.derive.accounts.idToIndex(e).pipe(Ge((t=>[e,t])))}const r=t.registry.createType("AccountIndex",n);return t.derive.accounts.indexToId(r.toString()).pipe(Ge((e=>[e,r])))}catch{return Ze([void 0,void 0])}}))}function ib(e){return e.pipe(Ge((([e])=>e)))}function sb(e){return(t,n)=>eb(t,((...t)=>ib(e(n,...t))))}const ob={toHex:()=>{}};function cb(e){return e?e.isRaw?lt(e.asRaw.toU8a(!0)):e.isNone?void 0:e.toHex():e}function db(e){const t=e.unwrap();return Array.isArray(t)?t[0]:t}function ub(e,t){return eb(e,(e=>e&&t.query.identity?.identityOf?xh([t.query.identity.identityOf(e),t.query.identity.superOf(e)]):Ze([void 0,void 0])))}function lb(e,t){return eb(e,(e=>t.derive.accounts._identity(e).pipe(Le((([e,n])=>function(e,t,n){if(t?.isSome)return Ze([t,void 0]);if(n?.isSome){const t=n.unwrap();return xh([e.derive.accounts._identity(t[0]).pipe(Ge((([e])=>e))),Ze(t)])}return Ze([void 0,void 0])}(t,e,n))),Ge((([e,t])=>function(e,t){if(!e?.isSome)return{judgements:[]};const{info:n,judgements:r}=db(e),a=cb(n.display);return{discord:cb(n.discord),display:t&&cb(t[1])||a,displayParent:t&&a,email:cb(n.email),github:cb(n.github),image:cb(n.image),judgements:r,legal:cb(n.legal),matrix:cb(n.matrix),other:n.additional?(i=n.additional,i.reduce(((e,[t,n])=>{const r=cb(t),a=cb(n);return r&&a&&(e[r]=a),e}),{})):{},parent:t?.[0],pgp:n.pgpFingerprint.unwrapOr(ob).toHex(),riot:cb(n.riot),twitter:cb(n.twitter),web:cb(n.web)};var i}(e,t))))))}const fb=sb(((e,t)=>e.derive.accounts.hasIdentityMulti([t])));function pb(e,t){return eb(e,(e=>t.query.identity?.identityOf?xh([t.query.identity.identityOf.multi(e),t.query.identity.superOf.multi(e)]).pipe(Ge((([e,t])=>e.map(((e,n)=>{const r=t[n],a=r&&r.isSome?r.unwrap()[0].toString():void 0;let i;if(e&&e.isSome){const t=cb(db(e).info.display);t&&!(0,it.vq)(t)&&(i=t)}return{display:i,hasIdentity:!(!i&&!a),parentId:a}}))))):Ze(e.map((()=>({hasIdentity:!1}))))))}function hb(e,t){return eb(e,(e=>t.derive.accounts.indexes().pipe(Ge((t=>t[e.toString()])))))}function bb(e,t,n){return void 0===n&&(n=1/0),G(t)?bb((function(n,r){return Ge((function(e,a){return t(n,e,r,a)}))(Ee(e(n,r)))}),n):("number"==typeof t&&(n=t),He((function(t,r){return function(e,t,n,r,a,i,s,o){var c=[],d=0,u=0,l=!1,f=function(){!l||c.length||d||t.complete()},p=function(e){return dgb?Ze(gb):(t.query.indices?function(e){return e.query.indices.accounts.entries().pipe(Ge((t=>t.reduce(((t,[n,r])=>(r.isSome&&(t[r.unwrap()[0].toString()]=e.registry.createType("AccountIndex",n.args[0])),t)),{}))))}(t).pipe(xb({})):Ze({})).pipe(Ge((e=>(gb=e,e))))))}function wb(e,t){return eb(e,(e=>t.query.indices?t.query.indices.accounts(e).pipe(Ge((e=>e.unwrapOr([])[0]))):Ze(void 0)))}function Sb(e,t){return(t&&e.query.nicks?.nameOf?e.query.nicks.nameOf(t):Ze(void 0)).pipe(Ge((t=>t?.isSome?lt(t.unwrap()[0]).substring(0,e.consts.nicks.maxLength.toNumber()):void 0)))}function kb(e,t){return eb(e,(e=>t.derive.accounts.idAndIndex(e).pipe(Le((([e,n])=>xh([Ze({accountId:e,accountIndex:n}),t.derive.accounts.identity(e),Sb(t,e)]))),Ge((([{accountId:e,accountIndex:t},n,r])=>({accountId:e,accountIndex:t,identity:n,nickname:r}))))))}function Tb(e,t){return(n,r)=>eb(n,t(function(e,t){const n=e.registry.getModuleInstances(e.runtimeVersion.specName,t),r=n?.length?n[0]:t;return e.query[r]}(r,e),r,n))}function Pb(e,t){return n=>Tb(n,(n=>()=>(0,Je.m)(n?.[e])?n[e]():Ze(t)))}const Vb=Pb("members",[]);function Mb(e,t,n){return((0,Je.m)(t?.proposals)&&n.length?xh([Ze(n),t.proposalOf.multi(n).pipe(Mh((()=>Ze(n.map((()=>null)))))),t.voting.multi(n)]):Ze([[],[],[]])).pipe(Ge((t=>function(e,[t,n,r]){return n.map(((n,a)=>({hash:e.registry.createType("Hash",t[a]),proposal:n&&n.isSome?n.unwrap():null,votes:r[a].unwrapOr(null)})))}(e,t))))}function _b(e){return Tb(e,(e=>()=>Ze((0,Je.m)(e?.proposals))))}function Ib(e){return Tb(e,((t,n)=>()=>n.derive[e].proposalHashes().pipe(Le((e=>Mb(n,t,e))))))}function Ob(e){return Tb(e,((e,t)=>n=>(0,Je.m)(e?.proposals)?ib(Mb(t,e,[n])):Ze(null)))}const Nb=Pb("proposalCount",null),Eb=Pb("proposals",[]);function Cb(e){return Tb(e,(e=>()=>(0,Je.m)(e?.prime)?e.prime().pipe(Ge((e=>e.unwrapOr(null)))):Ze(null)))}const Ab=Vb("allianceMotion"),Hb=_b("allianceMotion"),Rb=Ob("allianceMotion"),Bb=Nb("allianceMotion"),Lb=Eb("allianceMotion"),Ub=Ib("allianceMotion"),zb=Cb("allianceMotion");function Db(e){return e.query.voterList||e.query.voterBagsList||e.query.bagsList}function qb(e,t){const n=Db(t);return eb(e,(e=>{const t=e.map((e=>At(e)));return t.length?n.listBags.multi(t).pipe(Ge((e=>function(e,t){const n=e.map(((e,n)=>({bag:t[n].unwrapOr(null),id:e,key:e.toString()}))).sort(((e,t)=>t.id.cmp(e.id))),r=n.length-1;return n.map(((e,t)=>(0,_.Z)(e,{bagLower:t===r?vt:n[t+1].id,bagUpper:e.id,index:t})))}(t,e)))):Ze([])}))}function jb(e,t){const n=Db(t);return eb(e,(()=>n.listBags.keys().pipe(Le((e=>t.derive.bagsList._getIds(e.map((({args:[e]})=>e))))),Ge((e=>e.filter((({bag:e})=>e)))))))}function Fb(e,t){return eb(e,(e=>t.derive.bagsList._getIds([At(e)]).pipe(Ge((e=>e[0])))))}function Xb(e,t){return eb(e,(e=>t.derive.bagsList.listNodes(e.bag).pipe(Ge((t=>(0,_.Z)({nodes:t},e))))))}function Wb(e,t){return eb(e,(e=>t.derive.bagsList.get(e).pipe(Le((e=>t.derive.bagsList.expand(e))))))}function Zb(e,t){setTimeout((()=>{Promise.resolve().then((()=>{e()})).catch((e=>{t?t(e):console.error(e)}))}),0)}function Gb(e,t){return eb(e,(e=>e&&e.head.isSome?function(e,t){const n=new uh(t),r=Db(e);return n.pipe(Le((e=>r.listNodes(e))),vh((e=>{Zb((()=>{e.isSome&&e.value.next.isSome?n.next(e.unwrap().next.unwrap()):n.complete()}))})),kh(),Ge((e=>e.map((e=>e.unwrap())))))}(t,e.head.unwrap()):Ze([])))}function Kb(e){return(...t)=>{const n=t.length;if(0===n)throw new Error("Must provide one or more arguments");let r=t[0];for(let a=1;ae.gt(t))),Jb=Kb(((e,t)=>e.lt(t))),Qb="0x76657374696e6720";function $b(e,t,n,r){const{allLocked:a,lockedBalance:i,lockedBreakdown:s,vestingLocked:o}=function(e,t,n){let r=e.registry.createType("Balance"),a=[],i=e.registry.createType("Balance"),s=!1;if(Array.isArray(n)){a=n.filter((({until:e})=>!e||t&&e.gt(t))),s=a.some((({amount:e})=>e&&e.isMax())),i=e.registry.createType("Balance",a.filter((({id:e})=>e.eq(Qb))).reduce(((e,{amount:t})=>e.iadd(t)),new bt(0)));const o=a.filter((({amount:e})=>e&&!e.isMax()));o.length&&(r=e.registry.createType("Balance",Yb(...o.map((({amount:e})=>e)))))}return{allLocked:s,lockedBalance:r,lockedBreakdown:a,vestingLocked:i}}(e,t,r);return(0,_.Z)({},n,{availableBalance:e.registry.createType("Balance",a?0:Yb(new bt(0),n?.freeBalance?n.freeBalance.sub(i):new bt(0))),lockedBalance:i,lockedBreakdown:s,vestingLocked:o})}function em(e,t){const[n,[r,a,i],s]=t,o=$b(e,s,n,a[0]);return(0,_.Z)(o,function(e,t,n){const r=n||[],a=!t.vestingLocked.isZero(),i=r.map((({locked:t,perBlock:n,startingBlock:r})=>e.gt(r)?Jb(t,n.mul(e.sub(r))):vt)),s=i.reduce(((e,t)=>e.iadd(t)),new bt(0)),o=r.reduce(((e,{locked:t})=>e.iadd(t)),new bt(0));return{isVesting:a,vestedBalance:s,vestedClaimable:a?t.vestingLocked.sub(o.sub(s)):vt,vesting:r.map((({locked:e,perBlock:t,startingBlock:n},r)=>({endBlock:e.div(t).iadd(n),locked:e,perBlock:t,startingBlock:n,vested:i[r]}))).filter((({locked:e})=>!e.isZero())),vestingTotal:o}}(s,o,r),{accountId:n.accountId,accountNonce:n.accountNonce,additional:a.slice(1).map(((t,r)=>$b(e,s,n.additional[r],t))),namedReserves:i})}function tm(e,t){return xh([e.query.balances.locks(t),e.query.balances.vesting(t)]).pipe(Ge((([t,n])=>{let r=null;if(n.isSome){const{offset:t,perBlock:a,startingBlock:i}=n.unwrap();r=e.registry.createType("VestingInfo",{locked:t,perBlock:a,startingBlock:i})}return[r?[r]:null,[t],[]]})))}const nm=e=>!!e;function rm(e){return[e.map((e=>!e)),e.filter(nm)]}function am(e,t,n=["balances"]){const[r,a]=rm(n.map((t=>e.derive[t]?.customLocks||e.query[t]?.locks))),[i,s]=rm(n.map((t=>e.query[t]?.reserves)));return xh([e.query.vesting?.vesting?e.query.vesting.vesting(t):Ze(e.registry.createType("Option")),a.length?xh(a.map((e=>e(t)))):Ze([]),s.length?xh(s.map((e=>e(t)))):Ze([])]).pipe(Ge((([t,n,a])=>{let s=-1,o=-1;const c=t.unwrapOr(null);return[c?Array.isArray(c)?c:[c]:null,r.map((t=>t?e.registry.createType("Vec"):n[++s])),i.map((t=>t?e.registry.createType("Vec"):a[++o]))]})))}function im(e,t){const n=t.registry.getModuleInstances(t.runtimeVersion.specName,"balances");return eb(e,(e=>xh([t.derive.balances.account(e),(0,Je.m)(t.query.system?.account)||(0,Je.m)(t.query.balances?.account)?am(t,e,n):tm(t,e)]).pipe(Le((([e,n])=>xh([Ze(e),Ze(n),t.derive.chain.bestNumber()]))),Ge((e=>em(t,e))))))}function sm(e){return e.registry.createType("Balance")}function om(e,[t,n,r,a]){const i=e.registry.createType("Balance",t.toBn());return{freeBalance:t,frozenFee:r,frozenMisc:a,reservedBalance:n,votingBalance:i}}function cm(e,t){return xh([e.query.balances.freeBalance(t),e.query.balances.reservedBalance(t),e.query.system.accountNonce(t)]).pipe(Ge((([t,n,r])=>[r,[[t,n,sm(e),sm(e)]]])))}function dm(e,t){const n=t=>[t,[[sm(e),sm(e),sm(e),sm(e)]]];return(0,Je.m)(e.query.system.account)?e.query.system.account(t).pipe(Ge((({nonce:e})=>n(e)))):(0,Je.m)(e.query.system.accountNonce)?e.query.system.accountNonce(t).pipe(Ge((e=>n(e)))):Ze(n(e.registry.createType("Index")))}function um(e,t,n=["balances"]){const r=n.map((t=>e.derive[t]?.customAccount||e.query[t]?.account)).filter((e=>(0,Je.m)(e))),a=(e,t)=>[e,t.map((({feeFrozen:e,free:t,miscFrozen:n,reserved:r})=>[t,r,e,n]))];return r.length?(0,Je.m)(e.query.system.account)?xh([e.query.system.account(t),...r.map((e=>e(t)))]).pipe(Ge((([{nonce:e},...t])=>a(e,t)))):xh([e.query.system.accountNonce(t),...r.map((e=>e(t)))]).pipe(Ge((([e,...t])=>a(e,t)))):dm(e,t)}function lm(e,t){return e.query.system.account(t).pipe(Ge((t=>{const n=t.nonce?t.data:t[1],r=t.nonce||t[0];if(!n||n.isEmpty)return[r,[[sm(e),sm(e),sm(e),sm(e)]]];const{feeFrozen:a,free:i,miscFrozen:s,reserved:o}=n;return[r,[[i,o,a,s]]]})))}function fm(e,t){const n=t.registry.getModuleInstances(t.runtimeVersion.specName,"balances"),r=n&&"balances"!==n[0];return eb(e,(e=>t.derive.accounts.accountId(e).pipe(Le((e=>e?xh([Ze(e),r?um(t,e,n):(0,Je.m)(t.query.system?.account)?lm(t,e):(0,Je.m)(t.query.balances?.account)?um(t,e):(0,Je.m)(t.query.balances?.freeBalance)?cm(t,e):dm(t,e)]):Ze([t.registry.createType("AccountId"),[t.registry.createType("Index"),[[sm(t),sm(t),sm(t),sm(t)]]]]))),Ge((e=>function(e,[t,[n,[r,...a]]]){return(0,_.Z)({accountId:t,accountNonce:n,additional:a.map((t=>om(e,t)))},om(e,r))}(t,e))))))}function pm(e,t){return eb(e,(e=>e?.length?xh(e.map((e=>t.derive.balances.account(e)))):Ze([])))}const hm=im;function bm(e,t){const n=e.tx.bounties?e.tx.bounties:e.tx.treasury,r=[n.approveBounty,n.closeBounty,n.proposeCurator,n.unassignCurator];return t.filter((e=>r.find((t=>e.proposal&&t.is(e.proposal)))))}function mm([e,t,n,r]){const a=[];return e.forEach(((e,i)=>{e.isSome&&a.push({bounty:e.unwrap(),description:t[i].unwrapOrDefault().toUtf8(),index:n[i],proposals:r.filter((e=>e.proposal&&n[i].eq(e.proposal.args[0])))})})),a}function ym(e,t){const n=t.query.bounties||t.query.treasury;return eb(e,(()=>n.bounties?xh([n.bountyCount(),t.query.council?t.query.council.proposalCount():Ze(0)]).pipe(Le((()=>xh([n.bounties.keys(),t.derive.council?t.derive.council.proposals():Ze([])]))),Le((([e,r])=>{const a=e.map((({args:[e]})=>e));return xh([n.bounties.multi(a),n.bountyDescriptions.multi(a),Ze(a),Ze(bm(t,r))])})),Ge(mm)):Ze(mm([[],[],[],[]]))))}const xm=(0,Nt.be)("toBigInt","toBn","toNumber","unwrap");function gm(e){return xm(e.number)?e.number.unwrap():e.number}function vm(e){return(t,n)=>eb(t,(()=>e(n).pipe(Ge(gm))))}function wm(e,t,n){return e.queryAt(t.parentHash.isEmpty?n||t.hash:t.parentHash).pipe(Le((e=>function(e,t){const n=t.session?.validators?t.session.validators():Ze(null),{logs:[r]}=e.digest,a=r&&(r.isConsensus&&r.asConsensus[0].isNimbus&&r.asConsensus[1]||r.isPreRuntime&&r.asPreRuntime[0].isNimbus&&r.asPreRuntime[1]);if(a){if(t.authorMapping?.mappingWithDeposit)return xh([Ze(e),n,t.authorMapping.mappingWithDeposit(a).pipe(Ge((e=>e.unwrapOr({account:null}).account)))]);if(t.parachainStaking?.selectedCandidates&&t.session?.nextKeys){const r=a.toHex();return xh([Ze(e),n,t.parachainStaking.selectedCandidates().pipe(bb((e=>xh([Ze(e),t.session.nextKeys.multi(e).pipe(Ge((e=>e.findIndex((e=>e.unwrapOrDefault().nimbus.toHex()===r)))))]))),Ge((([e,t])=>-1===t?null:e[t])))])}}return xh([Ze(e),n,Ze(null)])}(t,e))))}const Sm=vm((e=>e.rpc.chain.subscribeNewHeads())),km=vm((e=>e.rpc.chain.subscribeFinalizedHeads()));function Tm(e,t){return eb(e,(()=>xh([t.derive.chain.bestNumber(),t.derive.chain.bestNumberFinalized()]).pipe(Ge((([e,n])=>t.registry.createType("BlockNumber",e.sub(n)))))))}function Pm(e,t){const[n]=e.logs.filter((e=>e.isConsensus)),[r]=e.logs.filter((e=>e.isPreRuntime)),[a]=e.logs.filter((e=>e.isSeal));let i;try{if(r){const[e,n]=r.asPreRuntime;i=e.extractAuthor(n,t)}if(!i&&n){const[e,r]=n.asConsensus;i=e.extractAuthor(r,t)}if(!i&&a){const[e,n]=a.asSeal;i=e.extractAuthor(n,t)}}catch{}return i}function Vm(e,t){return eb(e,(e=>xh([t.rpc.chain.getBlock(e),t.queryAt(e)]).pipe(Le((([n,r])=>xh([Ze(n),r.system.events(),wm(t,n.block.header,e)]))),Ge((([e,t,[,n,r]])=>function(e,t,n,r,a){const i=e.createClass("SignedBlock");return new class extends i{__internal__author;__internal__events;__internal__extrinsics;constructor(e,t,n,r,a){var i,s;super(e,t),this.__internal__author=a||Pm(this.block.header.digest,r||[]),this.__internal__events=n||[],this.__internal__extrinsics=(i=this.block.extrinsics,s=this.__internal__events,i.map(((e,t)=>{let n,r;const a=s.filter((({phase:e})=>e.isApplyExtrinsic&&e.asApplyExtrinsic.eq(t))).map((({event:e})=>("system"===e.section&&("ExtrinsicSuccess"===e.method?r=e.data[0]:"ExtrinsicFailed"===e.method&&(n=e.data[0],r=e.data[1])),e)));return{dispatchError:n,dispatchInfo:r,events:a,extrinsic:e}}))),this.createdAtHash=t?.createdAtHash}get author(){return this.__internal__author}get events(){return this.__internal__events}get extrinsics(){return this.__internal__extrinsics}}(e,t,n,r,a)}(t.registry,e,t,n,r))))))}function Mm(e,t){return eb(e,(e=>t.rpc.chain.getBlockHash(e).pipe(Le((e=>t.derive.chain.getBlock(e))))))}function _m(e,t,n,r){const a=e.createClass("Header");return new class extends a{__internal__author;constructor(e,t,n,r){super(e,t),this.__internal__author=r||Pm(this.digest,n||[]),this.createdAtHash=t?.createdAtHash}get author(){return this.__internal__author}}(e,t,n,r)}function Im(e,t){return eb(e,(e=>t.rpc.chain.getHeader(e).pipe(Le((n=>wm(t,n,e))),Ge((([e,t,n])=>_m((t||e).registry,e,t,n))))))}function Om(e,t){return eb(e,(()=>t.derive.chain.subscribeFinalizedHeads().pipe(Le((e=>t.derive.chain.getBlock(e.createdAtHash||e.hash))))))}function Nm(e,t){return eb(e,((e,n,r=[])=>t.rpc.chain.getHeader(e).pipe(Le((e=>e.parentHash.eq(n)?Ze([e,...r]):t.derive.chain._getHeaderRange(e.parentHash,n,[e,...r]))))))}function Em(e,t){return eb(e,(()=>{let e=null;return t.rpc.chain.subscribeFinalizedHeads().pipe(Le((n=>{const r=e,a=n.parentHash;return e=n.createdAtHash=n.hash,null===r||a.eq(r)?Ze(n):t.derive.chain._getHeaderRange(a,r,[n]).pipe(Le((e=>We(e))))})))}))}function Cm(e,t){return eb(e,(()=>t.derive.chain.subscribeNewHeads().pipe(Le((e=>t.derive.chain.getBlock(e.createdAtHash||e.hash))))))}function Am(e,t){return eb(e,(()=>t.rpc.chain.subscribeNewHeads().pipe(Le((e=>wm(t,e))),Ge((([e,t,n])=>(e.createdAtHash=e.hash,_m(e.registry,e,t,n)))))))}function Hm(e,t){return eb(e,(()=>function(e){return Ze([e.consts.contracts.callBaseFee||e.registry.createType("Balance"),e.consts.contracts.contractFee||e.registry.createType("Balance"),e.consts.contracts.creationFee||e.registry.createType("Balance"),e.consts.contracts.transactionBaseFee||e.registry.createType("Balance"),e.consts.contracts.transactionByteFee||e.registry.createType("Balance"),e.consts.contracts.transferFee||e.registry.createType("Balance"),e.consts.contracts.rentByteFee||e.registry.createType("Balance"),e.consts.contracts.rentDepositOffset||e.registry.createType("Balance"),e.consts.contracts.surchargeReward||e.registry.createType("Balance"),e.consts.contracts.tombstoneDeposit||e.registry.createType("Balance")])}(t).pipe(Ge((([e,t,n,r,a,i,s,o,c,d])=>({callBaseFee:e,contractFee:t,creationFee:n,rentByteFee:s,rentDepositOffset:o,surchargeReward:c,tombstoneDeposit:d,transactionBaseFee:r,transactionByteFee:a,transferFee:i}))))))}function Rm(e){return!Array.isArray(e)}function Bm(e){return e.stakeOf.entries().pipe(Ge((e=>e.map((([{args:[e]},t])=>[e,t])))))}function Lm(e){return e.votesOf.entries().pipe(Ge((e=>e.map((([{args:[e]},t])=>[e,t])))))}function Um(e,t){const n=t.query.elections||t.query.phragmenElection||t.query.electionsPhragmen;return eb(e,(()=>n?n.stakeOf?function(e,t){return xh([Bm(t),Lm(t)]).pipe(Ge((([t,n])=>{const r=[];return n.forEach((([t,n])=>{r.push([t,{stake:e.registry.createType("Balance"),votes:n}])})),t.forEach((([e,t])=>{const n=r.find((([t])=>t.eq(e)));n?n[1].stake=t:r.push([e,{stake:t,votes:[]}])})),r})))}(t,n):function(e){return e.voting.entries().pipe(Ge((e=>e.map((([{args:[e]},t])=>[e,Rm(t)?{stake:t.stake,votes:t.votes}:{stake:t[0],votes:t[1]}])))))}(n):Ze([])))}function zm(e,t){return eb(e,(e=>t.derive.council.votes().pipe(Ge((n=>(n.find((([t])=>t.eq(e)))||[null,{stake:t.registry.createType("Balance"),votes:[]}])[1])))))}const Dm=Vb("council"),qm=_b("council"),jm=Ob("council"),Fm=Nb("council"),Xm=Eb("council"),Wm=Ib("council"),Zm=Cb("council");function Gm(e,t){return eb(e,(e=>t.query.crowdloan.funds(e).pipe(Ge((e=>e.isSome?function(e){return(0,O.c)(Bt(":child_storage:default:",Ci(Bt("crowdloan",(e.fundIndex||e.trieIndex).toU8a()))))}(e.unwrap()):null)))))}var Km=new ke((function(e){return e.complete()}));function Ym(e){const t=e.length;if(0===t)return[];if(1===t)return e[0];let n=0;for(let i=0;i"crowdloan"===r&&["Contributed","Withdrew"].includes(n)&&t.eq(e))).reduce(((e,{event:{data:[t],method:n}})=>("Contributed"===n?e.added.push(t.toHex()):e.removed.push(t.toHex()),e)),{added:[],blockHash:t.createdAtHash?.toHex()||"-",removed:[]})}const Qm=1e3;function $m(e,t){let n=[],r=[];return e.query.system.events().pipe(Le((e=>{const a=Jm(t,e);return a.added.length||a.removed.length?(n=n.concat(...a.added),r=r.concat(...a.removed),Ze({added:n,addedDelta:a.added,blockHash:e.createdAtHash?.toHex()||"-",removed:r,removedDelta:a.removed})):Km})),xb({added:n,addedDelta:[],blockHash:"-",removed:r,removedDelta:[]}))}function ey(e,t,n){return function(e,t){return e.query.system.events().pipe(Le((e=>{const n=e.filter((({event:{data:[e],method:n,section:r}})=>"crowdloan"===r&&["AllRefunded","Dissolved","PartiallyRefunded"].includes(n)&&e.eq(t)));return n.length?Ze(e.createdAtHash?.toHex()||"-"):Km})),xb("-"))}(e,t).pipe(Le((()=>(0,Je.m)(e.rpc.childstate.getKeysPaged)?function(e,t){const n=new uh(void 0);return n.pipe(Le((n=>e.rpc.childstate.getKeysPaged(t,"0x",Qm,n))),vh((e=>{Zb((()=>{e.length===Qm?n.next(e[Qm-1].toHex()):n.complete()}))})),kh(),Ge((e=>Ym(e))))}(e,n):e.rpc.childstate.getKeys(n,"0x"))),Ge((e=>e.map((e=>e.toHex())))))}function ty(e,t){return eb(e,(e=>t.derive.crowdloan.childKey(e).pipe(Le((n=>n?function(e,t,n){return xh([ey(e,t,n),$m(e,t)]).pipe(Ge((([e,{added:t,blockHash:n,removed:r}])=>{const a={};return e.forEach((e=>{a[e]=!0})),t.forEach((e=>{a[e]=!0})),r.forEach((e=>{delete a[e]})),{blockHash:n,contributorsHex:Object.keys(a)}})))}(t,e,n):Ze({blockHash:"-",contributorsHex:[]}))))))}function ny(e,t,n){return xh(n.map((n=>e.rpc.childstate.getStorage(t,n)))).pipe(Ge((t=>t.map((t=>e.registry.createType("Option",t))).map((t=>t.isSome?e.registry.createType("Balance",t.unwrap()):e.registry.createType("Balance"))).reduce(((e,t,r)=>(0,_.Z)(e,{[n[r]]:t})),{}))))}function ry(e,t,n,r){return e.query.system.events().pipe(Le((a=>{const i=Jm(t,a),s=r.filter((e=>i.added.includes(e)||i.removed.includes(e)));return s.length?ny(e,n,s):Km})),xb({}))}function ay(e,t){return eb(e,((e,n)=>t.derive.crowdloan.childKey(e).pipe(Le((r=>r&&n.length?function(e,t,n,r){return xh([ny(e,n,r),ry(e,t,n,r)]).pipe(Ge((([e,t])=>(0,_.Z)({},e,t))))}(t,e,r,n):Ze({}))))))}function iy(e){return(0,O.c)((0,Fa.d)(e))}function sy(e){const t=At(e);if(t.isNeg())throw new Error("square root of negative numbers is not supported");if(t.lte(Mt))return new bt(~~Math.sqrt(t.toNumber()));let n=_t.clone();for(;;){const e=t.div(n).iadd(n).ishrn(1);if(n.eq(e)||n.eq(e.sub(wt)))return n;n=e}}function oy(e,t,n,r){for(;;){const a=e.div(t),i=n.div(r);if(a.lt(i))return!0;if(i.lt(a))return!1;const s=e.mod(t),o=n.mod(r);if(o.isZero())return!1;if(s.isZero())return!0;e=r,n=t,t=o,r=s}}function cy(e,t,n){return e.isSimpleMajority?n.votedAye.gt(n.votedNay):function(e,t,{votedAye:n,votedNay:r,votedTotal:a}){const i=sy(a);return!i.isZero()&&(e.isSuperMajorityApprove?oy(r,i,n,t):oy(r,t,n,i))}(e,t,n)}function dy(e,t,n){const r=t.status.tally?function(e,t){const n=[],r=[];return t.forEach((e=>{e.vote.isAye?n.push(e):r.push(e)})),{allAye:n,allNay:r,voteCount:n.length+r.length,voteCountAye:n.length,voteCountNay:r.length,votedAye:e.ayes,votedNay:e.nays,votedTotal:e.turnout}}(t.status.tally,n):n.reduce(((e,t)=>{const{balance:n,vote:r}=t,a=0===r.conviction.index,i=n.muln(a?1:r.conviction.index).divn(a?10:1);return r.isAye?(e.allAye.push(t),e.voteCountAye++,e.votedAye.iadd(i)):(e.allNay.push(t),e.voteCountNay++,e.votedNay.iadd(i)),e.voteCount++,e.votedTotal.iadd(i),e}),{allAye:[],allNay:[],voteCount:0,voteCountAye:0,voteCountNay:0,votedAye:new bt(0),votedNay:new bt(0),votedTotal:new bt(0)});return(0,_.Z)({},r,{isPassing:cy(t.status.threshold,e,r),votes:n})}function uy(e){return e.isLegacy?e.asLegacy.hash_.toHex():e.isLookup?e.asLookup.hash_.toHex():e.isInline?e.asInline.hash.toHex():(0,I.H)(e)?(0,it.vq)(e)?e:iy(e):(0,gt.U)(e)?(0,O.c)(e):e.toHex()}function ly(e){return uy(e.proposal||e.proposalHash)}const fy=iy("democrac");function py(e){return function(e){return e.derive.democracy.referendumsFinished().pipe(Le((()=>e.query.scheduler.agenda.keys())),Le((t=>{const n=t.map((({args:[e]})=>e));return n.length?xh([Ze(n),e.query.scheduler.agenda.multi(n).pipe(Mh((()=>Ze(n.map((()=>[]))))))]):Ze([[],[]])})))}(e).pipe(Le((([t,n])=>{const r=[];return t.forEach(((t,a)=>{(n[a]||[]).filter((e=>e.isSome)).forEach((n=>{const a=n.unwrap();if(a.maybeId.isSome){const n=a.maybeId.unwrap().toHex();if(n.startsWith(fy)){const i=a.call instanceof fn?function(e){return e.isInline||e.isLegacy||e.isLookup}(a.call)?uy(a.call):a.call.isHash?a.call.asHash.toHex():a.call.asValue.args[0].toHex():a.call.args[0].toHex();r.push({at:t,imageHash:i,index:e.registry.createType("(u64, ReferendumIndex)",n)[1]})}}}))})),xh([Ze(r),r.length?e.derive.democracy.preimages(r.map((({imageHash:e})=>e))):Ze([])])})),Ge((([e,t])=>e.map(((e,n)=>(0,_.Z)({image:t[n]},e))))))}function hy(e,t){return eb(e,(()=>(0,Je.m)(t.query.scheduler?.agenda)?py(t):t.query.democracy.dispatchQueue?function(e){return e.query.democracy.dispatchQueue().pipe(Le((t=>xh([Ze(t),e.derive.democracy.preimages(t.map((([,e])=>e)))]))),Ge((([e,t])=>e.map((([e,n,r],a)=>({at:e,image:t[a],imageHash:uy(n),index:r}))))))}(t):Ze([])))}const by=[0,1,2,4,8,16,32];function my(e,[t,n],r){const{balance:a,vote:i}=n.asStandard,[s,o]=r.isFinished?function(e,t,{approved:n,end:r}){return[r,n.isTrue&&t.isAye||n.isFalse&&t.isNay?r.add((e.consts.democracy.voteLockingPeriod||e.consts.democracy.enactmentPeriod).muln(by[t.conviction.index])):vt]}(e,i,r.asFinished):[vt,vt];return{balance:a,isDelegated:!1,isFinished:r.isFinished,referendumEnd:s,referendumId:t,unlockAt:o,vote:i}}function yy(e,t){return eb(e,(e=>t.query.democracy.votingOf?t.query.democracy.votingOf(e).pipe(Le((e=>e.isDirect?function(e,{votes:t}){return t.length?e.query.democracy.referendumInfoOf.multi(t.map((([e])=>e))).pipe(Ge((n=>t.map(((e,t)=>[e,n[t].unwrapOr(null)])).filter((e=>!!e[1]&&(0,$e.o)(e[1].end)&&e[0][1].isStandard)).map((([t,n])=>my(e,t,n)))))):Ze([])}(t,e.asDirect):e.isDelegating?function(e,{balance:t,conviction:n,target:r}){return e.derive.democracy.locks(r).pipe(Ge((r=>r.map((({isFinished:r,referendumEnd:a,referendumId:i,unlockAt:s,vote:o})=>({balance:t,isDelegated:!0,isFinished:r,referendumEnd:a,referendumId:i,unlockAt:s.isZero()?s:a.add((e.consts.democracy.voteLockingPeriod||e.consts.democracy.enactmentPeriod).muln(by[n.index])),vote:e.registry.createType("Vote",{aye:o.isAye,conviction:n})}))))))}(t,e.asDelegating):Ze([])))):Ze([])))}function xy(e,t){return eb(e,(()=>t.query.democracy?.nextExternal?t.query.democracy.nextExternal().pipe(Le((e=>function(e,t){if(t.isNone)return Ze(null);const[n,r]=t.unwrap();return e.derive.democracy.preimage(n).pipe(Ge((e=>({image:e,imageHash:uy(n),threshold:r}))))}(t,e)))):Ze(null)))}function gy(e,[t,n,r,a]){let i;try{i=e.registry.createType("Call",t.toU8a(!0))}catch(s){console.error(s)}return{at:a,balance:r,proposal:i,proposer:n}}function vy(e,t){const n=t.map((e=>uy(e)));return e.query.democracy.preimages.multi(n).pipe(Ge((t=>t.map((t=>function(e,t){if(!t.isNone){if(function(e,t){return!!t&&!e.query.democracy.dispatchQueue}(e,t)){const n=t.unwrap();if(n.isMissing)return;const{data:r,deposit:a,provider:i,since:s}=n.asAvailable;return gy(e,[r,i,a,s])}return gy(e,t.unwrap())}}(e,t))))))}function wy(e,t){const n=t.map((e=>uy(e))),r=e.registry.lookup.getTypeDef(e.query.preimage.preimageFor.creator.meta.type.asMap.key).type;return e.query.preimage.statusFor.multi(n).pipe(Le((t=>{const a=t.map((e=>e.unwrapOr(null))),i=a.map(((e,t)=>e?"H256"===r?n[t]:e.isRequested?[n[t],e.asRequested.len.unwrapOr(0)]:[n[t],e.asUnrequested.len]:null)).filter((e=>!!e));return e.query.preimage.preimageFor.multi(i).pipe(Ge((t=>{let r=-1;return a.map(((e,a)=>e?[n[a],e,t[++r].unwrapOr(null)]:[n[a],null,null])).map((t=>function(e,[t,n,r]){if(!n)return;const[a,i]=n.isUnrequested?function(e){return e.ticket||e.deposit}(n.asUnrequested):function(e){return(e.maybeTicket||e.deposit).unwrapOrDefault()}(n.asRequested);let s;if(r)try{s=e.registry.createType("Call",r.toU8a(!0))}catch(o){console.error(o)}return{at:vt,balance:i,proposal:s,proposalHash:t,proposer:a}}(e,t)))})))})))}function Sy(e,t){return eb(e,(e=>e.length?(0,Je.m)(t.query.democracy.preimages)?vy(t,e):(0,Je.m)(t.query.preimage.preimageFor)?wy(t,e):Ze([]):Ze([])))}const ky=sb(((e,t)=>e.derive.democracy.preimages([t])));function Ty([e,t,n]){return e.filter((([,,e],t)=>!!n[t]?.isSome&&!e.isEmpty)).map((([e,r,a],i)=>{const s=n[i].unwrap();return(0,_.Z)({image:t[i],imageHash:uy(r),index:e,proposer:a},function(e){return(0,Je.m)(e[1].mul)}(s)?{balance:s[1],seconds:s[0]}:{balance:s[0],seconds:s[1]})}))}function Py(e,t){return eb(e,(()=>(0,Je.m)(t.query.democracy?.publicProps)?t.query.democracy.publicProps().pipe(Le((e=>e.length?xh([Ze(e),t.derive.democracy.preimages(e.map((([,e])=>e))),t.query.democracy.depositOf.multi(e.map((([e])=>e)))]):Ze([[],[],[]]))),Ge(Ty)):Ze([])))}function Vy(e,t){return eb(e,(()=>t.query.democracy?.lowestUnbaked?t.queryMulti([t.query.democracy.lowestUnbaked,t.query.democracy.referendumCount]).pipe(Ge((([e,t])=>t.gt(e)?[...Array(t.sub(e).toNumber())].map(((t,n)=>e.addn(n))):[]))):Ze([])))}function My(e,t){return eb(e,(()=>t.derive.democracy.referendumsActive().pipe(Le((e=>e.length?xh([Ze(e),t.derive.democracy._referendumsVotes(e)]):Ze([[],[]]))),Ge((([e,t])=>e.map(((e,n)=>(0,_.Z)({},e,t[n]))))))))}function _y(e,t){return eb(e,(()=>t.derive.democracy.referendumIds().pipe(Le((e=>e.length?t.derive.democracy.referendumsInfo(e):Ze([]))))))}function Iy(e,t){return eb(e,(()=>t.derive.democracy.referendumIds().pipe(Le((e=>t.query.democracy.referendumInfoOf.multi(e))),Ge((e=>e.map((e=>e.unwrapOr(null))).filter((e=>!!e&&e.isFinished)).map((e=>e.asFinished)))))))}function Oy(e,t){return e.query.democracy.votersFor(t).pipe(Le((n=>xh([Ze(n),n.length?e.query.democracy.voteOf.multi(n.map((e=>[t,e]))):Ze([]),e.derive.balances.votingBalances(n)]))),Ge((([t,n,r])=>t.map(((t,a)=>({accountId:t,balance:r[a].votingBalance||e.registry.createType("Balance"),isDelegating:!1,vote:n[a]||e.registry.createType("Vote")}))))))}function Ny(e,t){return e.query.democracy.votingOf.entries().pipe(Ge((n=>{const r=n.map((([{args:[e]},t])=>[e,t])),a=function(e,t){return e.filter((([,e])=>e.isDirect)).map((([e,n])=>[e,n.asDirect.votes.filter((([e])=>e.eq(t)))])).filter((([,e])=>!!e.length)).reduce(((e,[t,n])=>n.reduce(((e,[,n])=>(n.isStandard&&e.push((0,_.Z)({accountId:t,isDelegating:!1},n.asStandard)),e)),e)),[])}(r,t),i=r.filter((([,e])=>e.isDelegating)).map((([e,t])=>[e,t.asDelegating]));return i.forEach((([t,{balance:n,conviction:r,target:s}])=>{const o=i.find((([e])=>e.eq(s))),c=a.find((({accountId:e})=>e.eq(o?o[0]:s)));c&&a.push({accountId:t,balance:n,isDelegating:!0,vote:e.registry.createType("Vote",{aye:c.vote.isAye,conviction:r})})})),a})))}function Ey(e,t){return eb(e,(e=>xh([t.derive.democracy.sqrtElectorate(),(0,Je.m)(t.query.democracy.votingOf)?Ny(t,e.index):Oy(t,e.index)]).pipe(Ge((([t,n])=>dy(t,e,n))))))}function Cy(e,t){return eb(e,(e=>e.length?xh(e.map((e=>t.derive.democracy._referendumVotes(e)))):Ze([])))}function Ay(e,t){return eb(e,((e,n)=>{const r=function(e){if(e.isNone)return null;const t=e.unwrap();return function(e){return!!e.proposalHash}(t)?t:t.isOngoing?t.asOngoing:null}(n);return r?t.derive.democracy.preimage(r.proposal||r.proposalHash).pipe(Ge((n=>({image:n,imageHash:ly(r),index:t.registry.createType("ReferendumIndex",e),status:r})))):Ze(null)}))}function Hy(e,t){return eb(e,(e=>e.length?t.query.democracy.referendumInfoOf.multi(e).pipe(Le((n=>xh(e.map(((e,r)=>t.derive.democracy._referendumInfo(e,n[r])))))),Ge((e=>e.filter((e=>!!e))))):Ze([])))}function Ry(e,t){return eb(e,(()=>t.query.balances.totalIssuance().pipe(Ge(sy))))}function By(e){return function(e){return!Array.isArray(e)}(e)?[e.who,e.stake]:e}function Ly(e){return function(e){return Array.isArray(e)}(e)?e[0]:e}function Uy([,e],[,t]){return t.cmp(e)}function zy(e,t){return eb(e,(()=>{const[e,n]=function(e){const[t]=e.registry.getModuleInstances(e.runtimeVersion.specName,"council")||["council"],n=e.query.phragmenElection?"phragmenElection":e.query.electionsPhragmen?"electionsPhragmen":e.query.elections?"elections":null;return[e.query[t]?t:"council",n]}(t);return(n?function(e,t,n){return e.queryMulti([e.query[t].members,e.query[n].candidates,e.query[n].members,e.query[n].runnersUp])}(t,e,n):function(e,t){return xh([e.query[t].members(),Ze([]),Ze([]),Ze([])])}(t,e)).pipe(Ge((([e,r,a,i])=>(0,_.Z)({},function(e,t){return t?{candidacyBond:e.consts[t].candidacyBond,desiredRunnersUp:e.consts[t].desiredRunnersUp,desiredSeats:e.consts[t].desiredMembers,termDuration:e.consts[t].termDuration,votingBond:e.consts[t].votingBond,votingBondBase:e.consts[t].votingBondBase,votingBondFactor:e.consts[t].votingBondFactor}:{}}(t,n),{candidateCount:t.registry.createType("u32",r.length),candidates:r.map(Ly),members:a.length?a.map(By).sort(Uy):e.map((e=>[e,t.registry.createType("Balance")])),runnersUp:i.map(By).sort(Uy)}))))}))}function Dy([e,t,n,r]){return t.forEach(((t,a)=>{const i=t.toString(),s=r[a],o=!n[a].isEmpty,c=e[i];c&&c.hasMessage===o&&c.blockCount.eq(s)||(e[i]={blockCount:s,hasMessage:o,isOnline:o||s.gt(vt)})})),e}function qy(e,t){return eb(e,(()=>t.query.imOnline?.receivedHeartbeats?t.derive.staking.overview().pipe(Le((({currentIndex:e,validators:n})=>xh([Ze({}),Ze(n),t.query.imOnline.receivedHeartbeats.multi(n.map(((t,n)=>[e,n]))),t.query.imOnline.authoredBlocks.multi(n.map((t=>[e,t])))]))),Ge(Dy)):Ze({})))}const jy=Vb("membership"),Fy=_b("membership"),Xy=Ob("membership"),Wy=Nb("membership"),Zy=Eb("membership"),Gy=Ib("membership"),Ky=Cb("membership");function Yy(e,t){return!!e.isSome&&e.unwrap().some((e=>e.eq(t)))}function Jy(e,t){const n=t.find((([t])=>t===e));if(n&&n[1].isSome){const[e,t]=n[1].unwrap();return(0,_.Z)({collatorId:e},t.isWithRetries?{isRetriable:!0,retries:t.asWithRetries.toNumber()}:{isRetriable:!1,retries:0})}return null}function Qy(e,t){return t.map((t=>{const n=t.find((([t])=>t===e));return n?n[1]:null}))}function $y(e,t){return eb(e,(e=>t.query.registrar&&t.query.parachains?t.queryMulti([t.query.registrar.active,t.query.registrar.retryQueue,t.query.registrar.selectedThreads,t.query.parachains.didUpdate,[t.query.registrar.paras,e],[t.query.registrar.pendingSwap,e],[t.query.parachains.heads,e],[t.query.parachains.relayDispatchQueue,e]]).pipe(Ge((n=>function(e,[t,n,r,a,i,s,o,c]){return i.isNone?null:{active:Jy(e,t),didUpdate:Yy(a,e),heads:o,id:e,info:(0,_.Z)({id:e},i.unwrap()),pendingSwapId:s.unwrapOr(null),relayDispatchQueue:c,retryCollators:Qy(e,n),selectedCollators:Qy(e,r)}}(t.registry.createType("ParaId",e),n)))):Ze(null)))}function ex([e,t,n,r,a]){return e.map(((e,i)=>({didUpdate:Yy(t,e),id:e,info:(0,_.Z)({id:e},r[i].unwrapOr(null)),pendingSwapId:a[i].unwrapOr(null),relayDispatchQueueSize:n[i][0].toNumber()})))}function tx(e,t){return eb(e,(()=>t.query.registrar?.parachains&&t.query.parachains?t.query.registrar.parachains().pipe(Le((e=>xh([Ze(e),t.query.parachains.didUpdate(),t.query.parachains.relayDispatchQueueSize.multi(e),t.query.registrar.paras.multi(e),t.query.registrar.pendingSwap.multi(e)]))),Ge(ex)):Ze([])))}function nx([e,t,n,r,a]){return{activeEra:t,activeEraStart:n,currentEra:r,currentIndex:e,validatorCount:a}}function rx(e,t){return eb(e,(()=>t.query.session?t.query.staking?function(e){return e.queryMulti([e.query.session.currentIndex,e.query.staking.activeEra,e.query.staking.currentEra,e.query.staking.validatorCount]).pipe(Ge((([e,t,n,r])=>{const{index:a,start:i}=t.unwrapOrDefault();return nx([e,a,i,n.unwrapOrDefault(),r])})))}(t):function(e){return e.query.session.currentIndex().pipe(Ge((t=>nx([t,e.registry.createType("EraIndex"),e.registry.createType("Option"),e.registry.createType("EraIndex"),e.registry.createType("u32")]))))}(t):function(e){return Ze(nx([e.registry.createType("SessionIndex",1),e.registry.createType("EraIndex"),e.registry.createType("Option"),e.registry.createType("EraIndex"),e.registry.createType("u32")]))}(t)))}function ax(e,t){return eb(e,(()=>t.derive.session.indexes().pipe(Ge((e=>{const n=t.consts?.babe?.epochDuration||t.registry.createType("u64",1),r=t.consts?.staking?.sessionsPerEra||t.registry.createType("SessionIndex",1);return(0,_.Z)({eraLength:t.registry.createType("BlockNumber",r.mul(n)),isEpoch:!!t.query.babe,sessionLength:n,sessionsPerEra:r},e)})))))}function ix(e){return(t,n)=>eb(t,(()=>n.derive.session.progress().pipe(Ge((t=>t[e])))))}function sx(e,t){return eb(e,(()=>t.query.babe?function(e){return e.derive.session.info().pipe(Le((t=>xh([Ze(t),e.query.staking?.erasStartSessionIndex?e.queryMulti([e.query.babe.currentSlot,e.query.babe.epochIndex,e.query.babe.genesisSlot,[e.query.staking.erasStartSessionIndex,t.activeEra]]):e.queryMulti([e.query.babe.currentSlot,e.query.babe.epochIndex,e.query.babe.genesisSlot])]))),Ge((([t,[n,r,a,i]])=>[t,[n,r,a,i&&i.isSome?i.unwrap():e.registry.createType("SessionIndex",1)]])))}(t).pipe(Ge((([e,n])=>function(e,t,[n,r,a,i]){const s=r.mul(t.sessionLength).iadd(a),o=n.sub(s),c=t.currentIndex.sub(i).imul(t.sessionLength).iadd(o);return(0,_.Z)({eraProgress:e.registry.createType("BlockNumber",c),sessionProgress:e.registry.createType("BlockNumber",o)},t)}(t,e,n)))):function(e){return e.derive.session.info().pipe(Ge((t=>(0,_.Z)({eraProgress:e.registry.createType("BlockNumber"),sessionProgress:e.registry.createType("BlockNumber")},t))))}(t)))}const ox=ix("eraLength"),cx=ix("eraProgress"),dx=ix("sessionProgress");function ux(e,t){return eb(e,(()=>t.query.society.suspendedCandidates&&t.query.society.candidates.creator.meta.type.isPlain?function(e){return e.query.society.candidates().pipe(Le((t=>xh([Ze(t),e.query.society.suspendedCandidates.multi(t.map((({who:e})=>e)))]))),Ge((([e,t])=>e.map((({kind:e,value:n,who:r},a)=>({accountId:r,isSuspended:t[a].isSome,kind:e,value:n}))))))}(t):function(e){return e.query.society.candidates.entries().pipe(Ge((e=>e.filter((([,e])=>e.isSome)).map((([{args:[e]},t])=>[e,t.unwrap()])).map((([e,{bid:t,kind:n}])=>({accountId:e,isSuspended:!1,kind:n,value:t}))))))}(t)))}function lx(e,t){return eb(e,(()=>xh([t.query.society.bids(),t.query.society.defender?t.query.society.defender():Ze(void 0),t.query.society.founder(),t.query.society.head(),t.query.society.maxMembers?t.query.society.maxMembers():Ze(void 0),t.query.society.pot()]).pipe(Ge((([e,t,n,r,a,i])=>({bids:e,defender:t?.unwrapOr(void 0),founder:n.unwrapOr(void 0),hasDefender:t?.isSome&&r.isSome&&!r.eq(t)||!1,head:r.unwrapOr(void 0),maxMembers:a,pot:i}))))))}function fx(e,t){return eb(e,(e=>t.derive.society._members([e]).pipe(Ge((([e])=>e)))))}function px(e,t){return eb(e,(e=>t.query.society.members.creator.meta.type.isMap?function(e,t){return xh([Ze(t),e.query.society.members.multi(t),e.query.society.payouts.multi(t),e.query.society.challengeRoundCount().pipe(Le((n=>e.query.society.defenderVotes.multi(t.map((e=>[n,e])))))),e.query.society.suspendedMembers.multi(t)]).pipe(Ge((([e,t,n,r,a])=>e.map(((e,i)=>t[i].isSome?{accountId:e,isDefenderVoter:r[i].isSome,isSuspended:a[i].isSome,member:t[i].unwrap(),payouts:n[i].payouts}:null)).filter((e=>!!e)).map((({accountId:e,isDefenderVoter:t,isSuspended:n,member:r,payouts:a})=>({accountId:e,isDefenderVoter:t,isSuspended:n,payouts:a,strikes:r.strikes,vouching:r.vouching.unwrapOr(void 0)}))))))}(t,e):function(e,t){return xh([Ze(t),e.query.society.payouts.multi(t),e.query.society.strikes.multi(t),e.query.society.defenderVotes.multi(t),e.query.society.suspendedMembers.multi(t),e.query.society.vouching.multi(t)]).pipe(Ge((([e,t,n,r,a,i])=>e.map(((e,s)=>({accountId:e,isDefenderVoter:r[s].isSome,isSuspended:a[s].isTrue,payouts:t[s],strikes:n[s],vote:r[s].unwrapOr(void 0),vouching:i[s].unwrapOr(void 0)}))))))}(t,e)))}function hx(e,t){return eb(e,(()=>t.query.society.members.creator.meta.type.isMap?t.query.society.members.keys().pipe(Le((e=>t.derive.society._members(e.map((({args:[e]})=>e)))))):t.query.society.members().pipe(Le((e=>t.derive.society._members(e))))))}const bx={withDestination:!0,withLedger:!0,withNominations:!0,withPrefs:!0};function mx(e,t,n){const r=Object.entries((a=(t?.unlocking||[]).filter((({era:e})=>e.unwrap().gt(n.activeEra))),a.reduce(((e,{era:t,value:n})=>{const r=t.toString();return e[r]=(e[r]||vt).add(n.unwrap()),e}),{}))).map((([t,r])=>({remainingEras:new bt(t).isub(n.activeEra),value:e.registry.createType("Balance",r)})));var a;return r.length?r:void 0}function yx(e,t,n){return e.registry.createType("Balance",(t?.unlocking||[]).reduce(((e,{era:t,value:r})=>t.unwrap().gt(n.currentEra)?e:e.iadd(r.unwrap())),new bt(0)))}function xx(e,t){return eb(e,((e,n=bx)=>t.derive.session.info().pipe(Le((r=>xh([t.derive.staking.keysMulti(e),t.derive.staking.queryMulti(e,n)]).pipe(Ge((([e,n])=>n.map(((n,a)=>function(e,t,n,r){return(0,_.Z)({},n,r,{redeemable:yx(e,r.stakingLedger,t),unlocking:mx(e,r.stakingLedger,t)})}(t,r,e[a],n)))))))))))}const gx=sb(((e,t,n)=>e.derive.staking.accounts([t],n)));function vx(e,t){return eb(e,(()=>t.derive.session.indexes().pipe(Le((({activeEra:e})=>t.query.staking.erasRewardPoints(e))))))}const wx={withController:!0,withExposure:!0,withPrefs:!0};function Sx(e,t){return eb(e,((e=wx,n=0)=>t.derive.staking.validators().pipe(Le((({nextElected:r,validators:a})=>t.derive.staking.queryMulti(function(e,t){return Ym([e,t.filter((t=>!e.find((e=>e.eq(t)))))])}(r,a),e,n).pipe(Ge((e=>({info:e,nextElected:r,validators:a})))))))))}new Map;const kx={del:()=>{},forEach:()=>{},get:()=>{},set:(e,t)=>t},Tx=6048e5;let Px;function Vx(e,t,n){const r=`${e}-${t.toString()}`;return[r,n?void 0:Px.get(r)]}function Mx(e,t,n){return n?[]:t.map((t=>Px.get(`${e}-${t.toString()}`))).filter((e=>!!e))}function _x(e,t,n){return!t&&Px.set(e,n),n}function Ix(e,t,n){return!t&&n.forEach((t=>Px.set(`${e}-${t.era.toString()}`,t))),n}function Ox(e,t,n){return e.map((e=>t.find((({era:t})=>e.eq(t)))||n.find((({era:t})=>e.eq(t))))).filter((e=>!!e))}function Nx(e,t){const n=Math.ceil(e.length/t);if(1===n)return[e];const r=Array(n);for(let a=0;at.del(`${e}${n}`),forEach:t.forEach,get:n=>{const r=`${e}${n}`,a=t.get(r);if(a)return a.x=Date.now(),t.set(r,a),a.v},set:(n,r)=>{t.set(`${e}${n}`,{v:r,x:Date.now()})}}}(`derive:${e}:`,t):kx,t&&function(e){const t=Date.now(),n=[];e.forEach(((e,{x:r})=>{t-r>Tx&&n.push(e)})),n.forEach((t=>e.del(t)))}(t)}();const Ex=14;function Cx(e,t){return e.filter((e=>!t.some((({era:t})=>e.eq(t)))))}function Ax(e){return(t,n)=>eb(t,((t=!1)=>n.derive.staking.erasHistoric(t).pipe(Le((r=>n.derive.staking[e](r,t))))))}function Hx(e){return(t,n)=>eb(t,((t,r=!1,a)=>n.derive.staking.erasHistoric(r).pipe(Le((i=>n.derive.staking[e](t,i,r,a||0))))))}function Rx(e){return(t,n)=>eb(t,(t=>n.derive.staking[e](t,!0)))}function Bx(e){return(t,n)=>eb(t,((t,r)=>t.length?function(e,t){const n=Nx(e,Ex);let r=0;const a=new uh(n[r]);return a.pipe(Le(t),vh((()=>{Zb((()=>{r++,r===n.length?a.complete():a.next(n[r])}))})),kh(),Ge(Ym))}(t,(t=>xh(t.map((t=>n.derive.staking[e](t,r)))))):Ze([])))}const Lx="eraExposure";function Ux(e,t){return eb(e,((e,n=!1)=>{const[r,a]=Vx(Lx,e,n);return a?Ze(a):t.query.staking.erasStakersPaged?t.query.staking.erasStakersPaged.entries(e).pipe(Ge((t=>_x(r,n,function(e,t){const n={},r={};return t.forEach((([e,t])=>{if(t.isSome){const a=e.args[1].toString(),i=t.unwrap();r[a]=i,i.others.forEach((({who:e},t)=>{const r=e.toString();n[r]=n[r]||[],n[r].push({validatorId:a,validatorIndex:t})}))}})),{era:e,nominators:n,validators:r}}(e,t))))):t.query.staking.erasStakersClipped.entries(e).pipe(Ge((t=>_x(r,n,function(e,t){const n={},r={};return t.forEach((([e,t])=>{const a=e.args[1].toString();r[a]=t,t.others.forEach((({who:e},t)=>{const r=e.toString();n[r]=n[r]||[],n[r].push({validatorId:a,validatorIndex:t})}))})),{era:e,nominators:n,validators:r}}(e,t)))))}))}const zx=Rx("_eraExposure"),Dx=Bx("_eraExposure"),qx=Ax("_erasExposure");function jx(e,t){return eb(e,(e=>xh([t.query.staking.activeEra(),t.consts.staking.historyDepth?Ze(t.consts.staking.historyDepth):t.query.staking.historyDepth()]).pipe(Ge((([n,r])=>{const a=[],i=r.toNumber(),s=n.unwrapOrDefault().index;let o=s;for(;o.gte(vt)&&a.lengthe.gt(vt))).reduce(((e,[t,n])=>(e[t.toString()]=n,e)),{})}function Wx(e,t){return eb(e,((e,n)=>{if(!e.length)return Ze([]);const r=Mx(Fx,e,n),a=Cx(e,r);return a.length?t.query.staking.erasRewardPoints.multi(a).pipe(Ge((t=>Ox(e,r,Ix(Fx,n,function(e,t){return e.map(((e,n)=>({era:e,eraPoints:t[n].total,validators:Xx(t[n])})))}(a,t)))))):Ze(r)}))}const Zx=Ax("_erasPoints"),Gx="eraPrefs";function Kx(e,t){return eb(e,((e,n)=>{const[r,a]=Vx(Gx,e,n);return a?Ze(a):t.query.staking.erasValidatorPrefs.entries(e).pipe(Ge((t=>_x(r,n,function(e,t){const n={};return t.forEach((([e,t])=>{n[e.args[1].toString()]=t})),{era:e,validators:n}}(e,t)))))}))}const Yx=Rx("_eraPrefs"),Jx=Bx("_eraPrefs"),Qx=Ax("_erasPrefs"),$x="eraRewards";function eg(e,t){return eb(e,((e,n)=>{if(!e.length)return Ze([]);const r=Mx($x,e,n),a=Cx(e,r);return a.length?t.query.staking.erasValidatorReward.multi(a).pipe(Ge((t=>Ox(e,r,Ix($x,n,function(e,t){return e.map(((e,n)=>({era:e,eraReward:t[n].unwrapOrDefault()})))}(a,t)))))):Ze(r)}))}const tg=Ax("_erasRewards"),ng="eraSlashes";function rg(e,t){return eb(e,((e,n)=>{const[r,a]=Vx(ng,e,n);return a?Ze(a):xh([t.query.staking.nominatorSlashInEra.entries(e),t.query.staking.validatorSlashInEra.entries(e)]).pipe(Ge((([t,a])=>_x(r,n,function(e,t,n){const r={},a={};return t.forEach((([e,t])=>{r[e.args[1].toString()]=t.unwrap()})),n.forEach((([e,t])=>{a[e.args[1].toString()]=t.unwrapOrDefault()[1]})),{era:e,nominators:r,validators:a}}(e,t,a)))))}))}const ag=Rx("_eraSlashes"),ig=Bx("_eraSlashes"),sg=Ax("_erasSlashes");const og=sb(((e,t)=>e.derive.staking.keysMulti([t])));function cg(e,t){return eb(e,(e=>e.length?t.query.session.queuedKeys().pipe(Le((n=>xh([Ze(n),t.consts.session?.dedupKeyPrefix?t.query.session.nextKeys.multi(e.map((e=>[t.consts.session.dedupKeyPrefix,e]))):xh(e.map((e=>t.query.session.nextKeys(e))))]))),Ge((([t,n])=>e.map(((e,r)=>function(e,t,n){const r=(t.find((([t])=>t.eq(e)))||[void 0,[]])[1],a=n.unwrapOr([]);return{nextSessionIds:Array.isArray(a)?a:[...a.values()],sessionIds:Array.isArray(r)?r:[...r.values()]}}(e,t,n[r])))))):Ze([])))}function dg(e,t){return eb(e,(()=>xh([t.derive.session.indexes(),t.derive.staking.validators()]).pipe(Ge((([e,{nextElected:t,validators:n}])=>(0,_.Z)({},e,{nextElected:t,validators:n}))))))}function ug(e,t){return eb(e,((e,n,r,a)=>{const i=t.registry.createType("Exposure"),s=t.registry.createType("Option"),o=t.registry.createType("Option");return n.length?xh([t.query.staking.erasStakersClipped?xh(n.map((n=>t.query.staking.erasStakersClipped(n,e)))):Ze(n.map((e=>i))),t.query.staking.erasStakers?xh(n.map((n=>t.query.staking.erasStakers(n,e)))):Ze(n.map((e=>i))),t.query.staking.erasStakersPaged?xh(n.map((n=>t.query.staking.erasStakersPaged(n,e,a)))):Ze(n.map((e=>s))),t.query.staking.erasStakersOverview?xh(n.map((n=>t.query.staking.erasStakersOverview(n,e)))):Ze(n.map((e=>o)))]).pipe(Ge((([e,t,r,a])=>n.map(((n,i)=>({clipped:e[i],era:n,exposure:t[i],exposureMeta:a[i],exposurePaged:r[i]})))))):Ze([])}))}const lg=sb(((e,t,n,r)=>e.derive.staking._ownExposures(t,[n],!0,r||0))),fg=Hx("_ownExposures");function pg(e,t){return eb(e,((e,n,r)=>n.length?xh([xh(n.map((n=>t.query.staking.validatorSlashInEra(n,e)))),xh(n.map((n=>t.query.staking.nominatorSlashInEra(n,e))))]).pipe(Ge((([e,t])=>n.map(((n,r)=>({era:n,total:e[r].isSome?e[r].unwrap()[1]:t[r].unwrapOrDefault()})))))):Ze([])))}const hg=sb(((e,t,n)=>e.derive.staking._ownSlashes(t,[n],!0))),bg=Hx("_ownSlashes");function mg(e,t){return e.registry.createType("Vec",t.filter((e=>-1!==e)))}function yg(e,t,n,{withClaimedRewardsEras:r,withController:a,withDestination:i,withExposure:s,withExposureErasStakersLegacy:o,withExposureMeta:c,withLedger:d,withNominations:u,withPrefs:l},f){const p=e.registry.createType("Option"),h=e.registry.createType("RewardDestination"),b=e.registry.createType("Exposure"),m=e.registry.createType("ValidatorPrefs"),y=e.registry.createType("Option"),x=e.registry.createType("Option"),g=[-1],v=Number(e.consts.staking.historyDepth.toNumber()),w=new Array(v).fill(0).map(((e,t)=>0===t?n.toNumber()-1:n.toNumber()-t-1));return xh([a||d?xh(t.map((t=>e.query.staking.bonded(t)))):Ze(t.map((()=>null))),u?xh(t.map((t=>e.query.staking.nominators(t)))):Ze(t.map((()=>p))),i?xh(t.map((t=>e.query.staking.payee(t)))):Ze(t.map((()=>h))),l?xh(t.map((t=>e.query.staking.validators(t)))):Ze(t.map((()=>m))),s&&e.query.staking.erasStakersPaged?xh(t.map((t=>e.query.staking.erasStakersPaged(n,t,f)))):Ze(t.map((()=>y))),c&&e.query.staking.erasStakersOverview?xh(t.map((t=>e.query.staking.erasStakersOverview(n,t)))):Ze(t.map((()=>x))),r&&e.query.staking.claimedRewards?xh([e.query.staking.claimedRewards.entries(),e.query.staking.erasStakersOverview.entries()]).pipe(Ge((([e,n])=>function(e,t,n,r){const a={},i={},s=e.map((e=>e.toString()));return n.forEach((([e,t])=>{const n=e.args[1].toString(),r=e.args[0].toNumber();s.includes(n)&&(a[n]||(a[n]=new Map),a[n].set(r,t.toArray()))})),r.forEach((([e,t])=>{const n=e.args[1].toString(),r=e.args[0].toNumber();s.includes(n)&&t.isSome&&(i[n]||(i[n]=new Map),i[n].set(r,t.unwrap().pageCount))})),e.map((e=>{const n=a[e.toString()],r=i[e.toString()];return t.map((e=>{if(n&&n.has(e)&&r&&r.has(e)){const t=n.get(e),a=r.get(e);return t.length===a.toNumber()?e:-1}return-1}))}))}(t,w,e,n)))):Ze(t.map((()=>g))),o&&e.query.staking.erasStakers?xh(t.map((t=>e.query.staking.erasStakers(n,t)))):Ze(t.map((()=>b)))])}function xg(e,t,n,r,a){return yg(e,n,t,r,a).pipe(Le((([t,a,i,s,o,c,d,u])=>function(e,t,{withLedger:n=!1}){const r=t.filter((e=>n&&!!e&&e.isSome)).map((e=>e.unwrap())),a=e.registry.createType("Option");return(r.length?xh(r.map((t=>e.query.staking.ledger(t)))):Ze([])).pipe(Ge((e=>{let n=-1;return t.map((t=>t&&t.isSome&&e[++n]||a))})))}(e,t,r).pipe(Ge((r=>n.map(((n,l)=>function(e,t,n,r,a,i,s,o,c,d,u){return{accountId:t,claimedRewardsEras:mg(e,d),controllerId:n?.unwrapOr(null)||null,exposureEraStakers:u,exposureMeta:c,exposurePaged:s,nominators:r.isSome?r.unwrap().targets:[],rewardDestination:(l=a,"boolean"==typeof l.isSome?l.unwrapOr(null):l),stakingLedger:o.unwrapOrDefault(),stashId:t,validatorPrefs:i};var l}(e,n,t[l],a[l],i[l],s[l],o[l],r[l],c[l],d[l],u[l])))))))))}const gg=sb(((e,t,n,r)=>e.derive.staking.queryMulti([t],n,r)));function vg(e,t){return eb(e,((e,n,r)=>t.derive.session.indexes().pipe(Le((({activeEra:a})=>{const i=e.map((e=>t.registry.createType("AccountId",e))),s=r||0;return i.length?xg(t,a,i,n,s):Ze([])})))))}function wg(e,t){return eb(e,((e,n,r=!1)=>{const a=e.map((e=>t.registry.createType("AccountId",e).toString()));return t.derive.staking._erasExposure(n,r).pipe(Ge((e=>a.map((t=>e.map((({era:e,nominators:n,validators:r})=>{const a=!!r[t],i={},s=n[t]||[];return a?i[t]=r[t]:s&&s.forEach((({validatorId:e})=>{i[e]=r[e]})),{era:e,isEmpty:!Object.keys(i).length,isValidator:a,nominating:s,validators:i}})))))))}))}function Sg(e,t){return eb(e,((e,n=!1)=>t.derive.staking.erasHistoric(n).pipe(Le((r=>t.derive.staking._stakerExposures(e,r,n))))))}const kg=sb(((e,t,n)=>e.derive.staking.stakerExposures([t],n)));function Tg(e,t){return eb(e,((e,n,r)=>{const a=t.registry.createType("AccountId",e).toString();return t.derive.staking._erasPoints(n,r).pipe(Ge((e=>e.map((({era:e,eraPoints:n,validators:r})=>({era:e,eraPoints:n,points:r[a]||t.registry.createType("RewardPoint")}))))))}))}const Pg=Hx("_stakerPoints");function Vg(e,t){return eb(e,((e,n,r)=>t.query.staking.erasValidatorPrefs.multi(n.map((t=>[t,e]))).pipe(Ge((e=>e.map(((e,t)=>({era:n[t],validatorPrefs:e}))))))))}const Mg=Hx("_stakerPrefs");function _g(e,t){const n=t?(t.legacyClaimedRewards||t.claimedRewards).toArray():[];return e.toArray().concat(n)}function Ig(e,t,{claimedRewardsEras:n,rewards:r,stakingLedger:a}){const i=e.filter((e=>!_g(n,a).some((t=>t.eq(e))))),s=t.map((([e])=>e)),o=t.map((([,e])=>e));return r.filter((({isEmpty:e})=>!e)).filter((e=>!!i.some((t=>e.era.eq(t)))&&(function(e,t,n,r){const a=[];Object.keys(n.validators).forEach((i=>{const s=e.indexOf(i);if(-1!==s){const e=t[s].stakingLedger;_g(r,e).some((e=>n.era.eq(e)))&&a.push(i)}})),a.forEach((e=>{delete n.validators[e]}))}(s,o,e,n),!0))).filter((({validators:e})=>0!==Object.keys(e).length)).map((e=>(0,_.Z)({},e,{nominators:e.nominating.filter((t=>e.validators[t.validatorId]))})))}function Og(e,t){return eb(e,((e,n=!1)=>xh([t.derive.staking._erasPoints(e,n),t.derive.staking._erasPrefs(e,n),t.derive.staking._erasRewards(e,n)])))}function Ng(e,t){return eb(e,((e,n,r=!1)=>xh([t.derive.staking.queryMulti(e,{withClaimedRewardsEras:!0,withLedger:!0}),t.derive.staking._stakerExposures(e,n,r),t.derive.staking._stakerRewardsEras(n,r)]).pipe(Le((([e,a,i])=>{const s=e.map((({claimedRewardsEras:e,stakingLedger:n,stashId:r},s)=>r&&(n||e)?function(e,t,[n,r,a],i){return i.map((({era:i,isEmpty:s,isValidator:o,nominating:c,validators:d})=>{const{eraPoints:u,validators:l}=n.find((e=>e.era.eq(i)))||{eraPoints:vt,validators:{}},{eraReward:f}=a.find((e=>e.era.eq(i)))||{eraReward:e.registry.createType("Balance")},{validators:p}=r.find((e=>e.era.eq(i)))||{validators:{}},h={},b=t.toString();return Object.entries(d).forEach((([t,n])=>{const r=l[t]||vt,a=p[t]?.commission.unwrap()||vt,i=n.total?n.total?.unwrap():n.pageTotal?n.pageTotal?.unwrap():vt;let s,o=vt;if(!(i.isZero()||r.isZero()||u.isZero())){o=f.mul(r).div(u);const e=a.mul(o).div(Pt);let c;if(t===b)if(n.own)c=n.own.unwrap();else{const e=n.others.find((({who:e})=>e.eq(t)));c=e?e.value.unwrap():vt}else{const e=n.others.find((({who:e})=>e.eq(b)));c=e?e.value.unwrap():vt}s=o.sub(e).imul(c).div(i).iadd(t===b?e:vt)}h[t]={total:e.registry.createType("Balance",o),value:e.registry.createType("Balance",s)}})),{era:i,eraReward:f,isEmpty:s,isValidator:o,nominating:c,validators:h}}))}(t,r,i,a[s]):[]));if(r)return Ze(s);const[o,c]=s.reduce((([e,t],n)=>{const r=[];return t.push(r),n.forEach((({validators:t})=>Object.keys(t).forEach((t=>{r.includes(t)||(r.push(t),e.includes(t)||e.push(t))})))),[e,t]}),[[],[]]);return t.derive.staking.queryMulti(o,{withClaimedRewardsEras:!0,withLedger:!0}).pipe(Ge((t=>e.map((({claimedRewardsEras:e,stakingLedger:r},a)=>Ig(n,c[a].map((e=>[e,t.find((t=>t.accountId.eq(e)))])).filter((e=>!!e[1])),{claimedRewardsEras:e,rewards:s[a],stakingLedger:r}))))))})))))}const Eg=sb(((e,t,n)=>e.derive.staking.erasHistoric(n).pipe(Le((r=>e.derive.staking._stakerRewards([t],r,n))))));function Cg(e,t){return eb(e,((e,n)=>e.length&&n.length?t.derive.staking._stakerRewards(e,n,!1):Ze([])))}function Ag(e,t){return eb(e,((e,n=!1)=>t.derive.staking.erasHistoric(n).pipe(Le((n=>t.derive.staking.stakerRewardsMultiEras(e,n))))))}function Hg(e,t){return eb(e,((e,n,r)=>{const a=t.registry.createType("AccountId",e).toString();return t.derive.staking._erasSlashes(n,r).pipe(Ge((e=>e.map((({era:e,nominators:n,validators:r})=>({era:e,total:n[a]||r[a]||t.registry.createType("Balance")}))))))}))}const Rg=Hx("_stakerSlashes");function Bg(e,t){return eb(e,(()=>function(e){let t=Date.now();return e.query.system.events().pipe(Ge((e=>(t=e.filter((({event:e,phase:t})=>{try{return t.isApplyExtrinsic&&"staking"===e.section&&"Bonded"===e.method}catch{return!1}}))?Date.now():t,t))),xb(t),$h({skipTimeout:!0}))}(t).pipe(Le((()=>t.query.staking.validators.keys())),Ge((e=>e.map((({args:[e]})=>e)).filter((e=>e)))))))}function Lg(e,t){return eb(e,(()=>t.query.staking.erasStakersPaged?t.derive.session.indexes().pipe(Le((({currentEra:e})=>t.query.staking.erasStakersPaged.keys(e))),Ge((e=>[...new Set(e.map((({args:[,e]})=>e.toString())))].map((e=>t.registry.createType("AccountId",e)))))):t.query.staking.erasStakers?t.derive.session.indexes().pipe(Le((({currentEra:e})=>t.query.staking.erasStakers.keys(e))),Ge((e=>[...new Set(e.map((({args:[,e]})=>e.toString())))].map((e=>t.registry.createType("AccountId",e)))))):t.query.staking.currentElected()))}function Ug(e,t){return eb(e,(()=>xh([t.query.session?t.query.session.validators():Ze([]),t.query.staking?t.derive.staking.nextElected():Ze([])]).pipe(Ge((([e,t])=>({nextElected:t.length?t:e,validators:e}))))))}const zg={withController:!0,withPrefs:!0};function Dg(e,t){return eb(e,((e=zg)=>xh([t.derive.staking.validators(),t.derive.staking.stashes()]).pipe(Le((([{nextElected:n},r])=>{const a=n.map((e=>e.toString())),i=r.filter((e=>!a.includes(e.toString())));return t.derive.staking.queryMulti(i,e).pipe(Ge((e=>({info:e,waiting:i}))))})))))}const qg=Vb("technicalCommittee"),jg=_b("technicalCommittee"),Fg=Ob("technicalCommittee"),Xg=Nb("technicalCommittee"),Wg=Eb("technicalCommittee"),Zg=Ib("technicalCommittee"),Gg=Cb("technicalCommittee");function Kg(e,t){return eb(e,(()=>t.query.treasury?xh([t.query.treasury.proposalCount(),t.query.treasury.approvals()]).pipe(Le((([e,n])=>function(e,t,n){const r=[],a=t.toNumber();for(let s=0;se.eqn(s)))||r.push(e.registry.createType("ProposalIndex",s));const i=[...r,...n];return xh([e.query.treasury.proposals.multi(i),e.derive.council?e.derive.council.proposals():Ze([])]).pipe(Ge((([r,a])=>function(e,{allIds:t,allProposals:n,approvalIds:r,councilProposals:a,proposalCount:i}){const s=[],o=[],c=a.filter((({proposal:t})=>t&&(e.tx.treasury.approveProposal.is(t)||e.tx.treasury.rejectProposal.is(t))));return t.forEach(((e,t)=>{if(n[t].isSome){const a=c.filter((({proposal:t})=>t&&e.eq(t.args[0]))).sort(((e,t)=>e.proposal&&t.proposal?e.proposal.method.localeCompare(t.proposal.method):e.proposal?-1:1)),i=r.some((t=>t.eq(e))),d={council:a,id:e,proposal:n[t].unwrap()};i?s.push(d):o.push(d)}})),{approvals:s,proposalCount:i,proposals:o}}(e,{allIds:i,allProposals:r,approvalIds:n,councilProposals:a,proposalCount:t}))))}(t,e,n)))):Ze({approvals:[],proposalCount:t.registry.createType("ProposalIndex"),proposals:[]})))}function Yg(e,t){return eb(e,(e=>xh([t.rpc.chain.getBlock(e),t.queryAt(e).pipe(Le((e=>e.system.events())))]).pipe(Ge((([e,t])=>({block:e,events:t}))))))}const Jg=250,Qg=new bt(6e3),$g=new bt(5),ev=new bt(3e5);function tv(e,t){return e.derive.balances.account(t).pipe(Ge((({accountNonce:e})=>e)))}function nv(e,t){return e.rpc.system?.accountNextIndex?e.rpc.system.accountNextIndex(t):tv(e,t)}function rv(e){return xh([e.rpc.chain.getHeader().pipe(Le((t=>t.parentHash.isEmpty?Ze(t):e.rpc.chain.getHeader(t.parentHash).pipe(Mh((()=>Ze(t))))))),e.rpc.chain.getFinalizedHead().pipe(Le((t=>e.rpc.chain.getHeader(t).pipe(Mh((()=>Ze(null)))))))]).pipe(Ge((([e,t])=>!t||gm(e).sub(gm(t)).gt($g)?e:t)))}function av(e){const t=e.consts.babe?.expectedBlockTime||e.consts.aura?.slotDuration||e.consts.timestamp?.minimumPeriod.muln(2);return t.isZero()?void 0:t}function iv(e,t){return(e,n,r)=>xh([(0,$e.o)(n)?tv(t,e):-1===n?nv(t,e):Ze(t.registry.createType("Index",n)),(0,$e.o)(r)||(0,Zt.h)(r)&&r>0?rv(t):Ze(null)]).pipe(Ge((([e,n])=>({header:n,mortalLength:Math.min(t.consts.system?.blockHashCount?.toNumber()||Jg,ev.div(av(t)||Qg).iadd($g).toNumber()),nonce:e}))))}const sv={accounts:o,alliance:c,bagsList:d,balances:u,bounties:l,chain:f,contracts:p,council:h,crowdloan:b,democracy:m,elections:y,imOnline:x,membership:g,parachains:v,session:w,society:S,staking:k,technicalCommittee:T,treasury:P,tx:V},ov={allianceMotion:{instances:["allianceMotion"],methods:[]},bagsList:{instances:["voterBagsList","voterList","bagsList"],methods:[],withDetect:!0},contracts:{instances:["contracts"],methods:[]},council:{instances:["council"],methods:[],withDetect:!0},crowdloan:{instances:["crowdloan"],methods:[]},democracy:{instances:["democracy"],methods:[]},elections:{instances:["phragmenElection","electionsPhragmen","elections","council"],methods:[],withDetect:!0},imOnline:{instances:["imOnline"],methods:[]},membership:{instances:["membership"],methods:[]},parachains:{instances:["parachains","registrar"],methods:[]},session:{instances:["session"],methods:[]},society:{instances:["society"],methods:[]},staking:{instances:["staking"],methods:["erasRewardPoints"]},technicalCommittee:{instances:["technicalCommittee"],methods:[],withDetect:!0},treasury:{instances:["treasury"],methods:[]}};function cv(e,t,n){const r={},a=Object.keys(n),i=Object.keys(t.query),s=t.runtimeVersion.specName,o=e=>i.includes(e),c=e=>function(e,t,n){return e.registry.getModuleInstances(t,n)||[]}(t,s,e).some(o),d=e=>Object.keys(n[e]),u=(r,a)=>n[r][a](e,t),l=e=>{return!ov[e]||ov[e].instances.some(o)&&(!ov[e].methods.length||ov[e].methods.every((n=ov[e].instances,e=>n.some((n=>i.includes(n)&&t.query[n][e])))))||ov[e].withDetect&&ov[e].instances.some(c);var n};for(let f=0,p=a.length;fObject.entries(i[e].rpc||{}).forEach((([t,n])=>{const r=n.aliasSection||e;dv[r]||(dv[r]={}),dv[r][t]=(0,_.Z)({},n,{isSubscription:!!n.pubsub,jsonrpc:`${r}_${t}`,method:t,section:r})}))));const uv=dv,lv=(0,ht.k)("rpc-core"),fv={fallback:void 0,modifier:{isOptional:!0},type:{asMap:{linked:{isTrue:!1}},isMap:!1}};function pv(e,{noErrorLog:t,params:n,type:r},a){t||lv.error(`${e}(${n.map((({isOptional:e,name:t,type:n})=>`${t}${e?"?":""}: ${n}`)).join(", ")}): ${r}:: ${a.message}`)}function hv(e){return["0x3a636f6465"].includes(e.toHex())}class bv{__internal__instanceId;__internal__isPedantic;__internal__registryDefault;__internal__storageCache=new Map;__internal__storageCacheHits=0;__internal__storageCacheSize=0;__internal__getBlockRegistry;__internal__getBlockHash;mapping=new Map;provider;sections=[];constructor(e,t,{isPedantic:n=!0,provider:r,userRpc:a={}}){if(!r||!(0,Je.m)(r.send))throw new Error("Expected Provider to API create");this.__internal__instanceId=e,this.__internal__isPedantic=n,this.__internal__registryDefault=t,this.provider=r;const i=Object.keys(uv);this.sections.push(...i),this.addUserInterfaces(a)}get isConnected(){return this.provider.isConnected}connect(){return this.provider.connect()}disconnect(){return this.provider.disconnect()}get stats(){const e=this.provider.stats;return e?{...e,core:{cacheHits:this.__internal__storageCacheHits,cacheSize:this.__internal__storageCacheSize}}:void 0}setRegistrySwap(e){this.__internal__getBlockRegistry=Vh(e,{getInstanceId:()=>this.__internal__instanceId})}setResolveBlockHash(e){this.__internal__getBlockHash=Vh(e,{getInstanceId:()=>this.__internal__instanceId})}addUserInterfaces(e){this.sections.push(...Object.keys(e).filter((e=>!this.sections.includes(e))));for(let t=0,n=this.sections.length;te?this._createMethodSubscribe(n,t,i):this._createMethodSend(n,t,i)))}}}}_memomize(e,t){const n={getInstanceId:()=>this.__internal__instanceId},r=Vh(e(!0),n);return r.raw=Vh(e(!1),n),r.meta=t,r}_formatResult(e,t,n,r,a,i,s){return e?this._formatOutput(t,n,r,a,i,s):s}_createMethodSend(e,t,n){const r=n.endpoint||`${e}_${t}`,a=n.params.findIndex((({isHistoric:e})=>e));let i=null;const s=async(e,i)=>{const s=-1===a?null:i[a],o=s&&"BlockNumber"===n.params[a].type?await(this.__internal__getBlockHash?.(s)):s,{registry:c}=e&&o&&this.__internal__getBlockRegistry?await this.__internal__getBlockRegistry((0,N.Y)(o)):{registry:this.__internal__registryDefault},d=this._formatParams(c,null,n,i),u=await this.provider.send(r,d.map((e=>e.toJSON())),!!o);return this._formatResult(e,c,o,t,n,d,u)};return i=this._memomize((e=>(...r)=>{const o=e&&-1!==a&&!!r[a];return new ke((a=>(s(e,r).then((e=>{a.next(e),a.complete()})).catch((e=>{pv(t,n,e),a.error(e),a.complete()})),()=>{e?i?.unmemoize(...r):i?.raw.unmemoize(...r)}))).pipe(Hh(1),o?Kh():Nh())}),n),i}_createSubscriber({paramsJson:e,subName:t,subType:n,update:r},a){return new Promise(((i,s)=>{this.provider.subscribe(n,t,e,r).then(i).catch((e=>{a(e),s(e)}))}))}_createMethodSubscribe(e,t,n){const[r,a,i]=n.pubsub,s=`${e}_${a}`,o=`${e}_${i}`,c=`${e}_${r}`;let d=null;return d=this._memomize((e=>(...r)=>new ke((a=>{let i=Promise.resolve(null);const u=this.__internal__registryDefault,l=e=>{pv(t,n,e),a.error(e)};try{const o=this._formatParams(u,null,n,r),d=(r,i)=>{if(r)pv(t,n,r);else try{a.next(this._formatResult(e,u,null,t,n,o,i))}catch(r){a.error(r)}};i=this._createSubscriber({paramsJson:o.map((e=>e.toJSON())),subName:s,subType:c,update:d},l)}catch(f){l(f)}return()=>{e?d?.unmemoize(...r):d?.raw.unmemoize(...r),i.then((e=>(0,an.F)(e)?Promise.resolve(!1):this.provider.unsubscribe(c,o,e))).catch((e=>pv(t,n,e)))}})).pipe($h())),n),d}_formatParams(e,t,n,r){const a=r.length,i=n.params.filter((({isOptional:e})=>!e)).length;if(an.params.length)throw new Error(`Expected ${n.params.length} parameters${i===n.params.length?"":` (${n.params.length-i} optional)`}, ${a} found instead`);const s=new Array(a);for(let o=0;o"===r.type){const t=i,r=t.length,s=new Array(r);for(let n=0;ne===s)),c=(0,$e.o)(o);if(c&&a){const e=this.__internal__storageCache.get(s);if(e)return this.__internal__storageCacheHits++,e}const d=c?null:o[1],u=(0,an.F)(d),l=u||hv(n)?d:(0,N.Y)(d),f=this._newType(e,t,n,l,u,i);return this.__internal__storageCache.set(s,f),this.__internal__storageCacheSize++,f}_newType(e,t,n,r,a,i=-1){const s=n.outputType||"Raw",o=n.meta||fv,c=-1===i?"":` entry ${i}:`;try{return e.createTypeUnsafe(s,[a?o.fallback?s.includes("Linkage<")?Bt((0,as.G)(o.fallback.toHex()),new Uint8Array(2)):(0,as.G)(o.fallback.toHex()):void 0:o.modifier.isOptional?e.createTypeUnsafe(s,[r],{blockHash:t,isPedantic:this.__internal__isPedantic}):r],{blockHash:t,isFallback:a&&!!o.fallback,isOptional:o.modifier.isOptional,isPedantic:this.__internal__isPedantic&&!o.modifier.isOptional})}catch(d){throw new Error(`Unable to decode storage ${n.section||"unknown"}.${n.method||"unknown"}:${c}: ${d.message}`)}}}var mv=n(87152),yv=n(51216);const xv=(0,yv.t)(0),gv=(0,yv.t)(1),vv=(Number.MAX_SAFE_INTEGER,(0,yv.t)("11400714785074694791")),wv=(0,yv.t)("14029467366897019727"),Sv=(0,yv.t)("1609587929392839161"),kv=(0,yv.t)("9650029242287828579"),Tv=(0,yv.t)("2870177450012600261"),Pv=(0,yv.t)("0xffffffffffffffff"),Vv=(0,yv.t)(7),Mv=(0,yv.t)(11),_v=(0,yv.t)(12),Iv=(0,yv.t)(16),Ov=(0,yv.t)(18),Nv=(0,yv.t)(23),Ev=(0,yv.t)(27),Cv=(0,yv.t)(29),Av=(0,yv.t)(31),Hv=(0,yv.t)(32),Rv=(0,yv.t)(33),Bv=(0,yv.t)(64),Lv=(0,yv.t)(256);function Uv(e,t){const n=e&Pv;return(n<>Bv-t)&Pv}function zv(e,t,n){const r=new Array(n);let a=0;for(let s=0;s=0;s--)i=(i<=0){const e=e=>vv*Uv(e+wv*zv(t,a,4),Av);do{n.v1=e(n.v1),a+=8,n.v2=e(n.v2),a+=8,n.v3=e(n.v3),a+=8,n.v4=e(n.v4),a+=8}while(a<=r)}return a=32?((((Uv(i,gv)+Uv(s,Vv)+Uv(o,_v)+Uv(c,Ov)^vv*Uv(i*wv,Av))*vv+kv^vv*Uv(s*wv,Av))*vv+kv^vv*Uv(o*wv,Av))*vv+kv^vv*Uv(c*wv,Av))*vv+kv:n+Tv);for(;d<=a-8;)u=Pv&kv+vv*Uv(u^vv*Uv(wv*zv(r,d,4),Av),Ev),d+=8;for(d+4<=a&&(u=Pv&Sv+wv*Uv(u^vv*zv(r,d,2),Nv),d+=4);d>Rv),u=Pv&Sv*(u^u>>Cv),u=Pv&(u^u>>Hv);const l=new Uint8Array(8);for(let f=7;f>=0;f--)l[f]=Number(u%Lv),u/=Lv;return l}function qv(e,t=64,n){const r=Math.ceil(t/64),a=(0,N.Y)(e);if(!ja.vc||!n&&Ii())return _i(a,r);const i=new Uint8Array(8*r);for(let s=0;sqv(e,128),Fv={Blake2_128:e=>Ci(e,128),Blake2_128Concat:e=>Bt(Ci(e,128),(0,N.Y)(e)),Blake2_256:e=>Ci(e,256),Identity:e=>(0,N.Y)(e),Twox128:e=>qv(e,128),Twox256:e=>qv(e,256),Twox64Concat:e=>Bt(qv(e,64),(0,N.Y)(e))};const Xv={args:[],hashers:[],keys:[]};function Wv(e){return!(0,$e.o)(e)}function Zv({method:e,section:t},{args:n,keys:r}){if(!Array.isArray(n))throw new Error(`Call to ${Qt(t||"unknown")}.${Qt(e||"unknown")} needs ${r.length} arguments`);if(n.filter(Wv).length!==r.length)throw new Error(`Call to ${Qt(t||"unknown")}.${Qt(e||"unknown")} needs ${r.length} arguments, found [${n.join(", ")}]`)}function Gv(e,t,{args:n,hashers:r,keys:a}){const i=a.length,s=new Array(i);for(let c=0;c`${t[r].type}(${Yd(e.lookup,n)})`))}const o=["module","method"].concat(...n.args.map(((e,t)=>s[t])));return{inner:a.concat(...i).map(((e,t)=>({name:o[t],outer:[e]})))}}function Yv(e,t,n){const[r,a]=Gv(e,t,n);return Bt(...r,...a)}function Jv(e,t,n){return Zv(t,n),hr(Yv(e,t,n))}function Qv(e,t,n){const{meta:r,method:a,prefix:i,section:s}=t,o=function(e,t,n){const{meta:{type:r}}=t;let a=null;return(...i)=>{if(r.isPlain)return a||(a=n.skipHashing?hr((0,N.Y)(n.key)):Jv(e,t,Xv)),a;const{hashers:s,key:o}=r.asMap;return 1===s.length?Jv(e,t,{args:i,hashers:s,keys:[o]}):Jv(e,t,{args:i,hashers:s,keys:e.lookup.getSiType(o).def.asTuple})}}(e,t,n);return o.inspect=function(e,t,n){const{meta:{type:r}}=t;return(...a)=>{if(r.isPlain)return n.skipHashing?{inner:[],name:"wellKnown",outer:[(0,N.Y)(n.key)]}:Kv(e,t,Xv);const{hashers:i,key:s}=r.asMap;return 1===i.length?Kv(e,t,{args:a,hashers:i,keys:[s]}):Kv(e,t,{args:a,hashers:i,keys:e.lookup.getSiType(s).def.asTuple})}}(e,t,n),o.meta=r,o.method=Qt(a),o.prefix=i,o.section=s,o.toJSON=()=>(0,_.Z)({storage:{method:a,prefix:i,section:s}},r.toJSON()),o}function $v(e,t,n){const{meta:{type:r}}=t,a=Qv(e,t,n);return r.isMap&&function(e,t,n){const{meta:{type:r},method:a,section:i}=t;n.iterKey=function(e,{meta:{docs:t,name:n,type:r},section:a},{method:i},s){const o=e.createTypeUnsafe("StorageEntryMetadataLatest",[{docs:t,fallback:e.createTypeUnsafe("Bytes",[]),modifier:e.createTypeUnsafe("StorageEntryModifierLatest",[1]),name:n,type:e.createTypeUnsafe("StorageEntryTypeLatest",[r.asMap.key,0])}]);s.meta=o;const c=(...t)=>e.createTypeUnsafe("StorageKey",[s(...t),{method:i,section:a}]);return c.meta=o,c}(e,t,n,((...n)=>{if(n.length&&(r.isPlain||n.length>=r.asMap.hashers.length))throw new Error(`Iteration of ${Qt(i||"unknown")}.${Qt(a||"unknown")} needs arguments to be at least one less than the full arguments, found [${n.join(", ")}]`);if(n.length&&r.isMap){const{hashers:a,key:i}=r.asMap,s=1===a.length?[i]:e.lookup.getSiType(i).def.asTuple;return new ft(e,Yv(e,t,{args:n,hashers:a.slice(0,n.length),keys:s.slice(0,n.length)}))}return new ft(e,Yv(e,t,Xv))}))}(e,t,a),a.keyPrefix=(...e)=>a.iterKey&&a.iterKey(...e)||Sr(a())[1],a}function ew(e,t){const n=t.toLowerCase();return e.lookup.types.find((e=>e.type.def.isPrimitive&&e.type.def.asPrimitive.toString().toLowerCase()===n||e.type.def.isHistoricMetaCompat&&e.type.def.asHistoricMetaCompat.toString().toLowerCase()===n))}function tw(e,t){let n=ew(e,t);if(!n&&("Bytes"===t||t.startsWith("[u8;"))){const r=ew(e,"u8");if(r)if("Bytes"===t)n=e.lookup.types.find((e=>e.type.def.isSequence&&e.type.def.asSequence.type.eq(r.id)||e.type.def.isHistoricMetaCompat&&e.type.def.asHistoricMetaCompat.eq(t)));else{const a=Xr(t);n=e.lookup.types.find((e=>e.type.def.isArray&&e.type.def.asArray.eq({len:a.length,type:r.id})||e.type.def.isHistoricMetaCompat&&e.type.def.asHistoricMetaCompat.eq(t)))}}return n||console.warn(`Unable to map ${t} to a lookup index`),n}function nw({method:e,prefix:t,section:n},r,{docs:a,type:i}){return s=>$v(s,{meta:s.createTypeUnsafe("StorageEntryMetadataLatest",[{docs:s.createTypeUnsafe("Vec",[[a]]),modifier:s.createTypeUnsafe("StorageEntryModifierLatest",["Required"]),name:s.createTypeUnsafe("Text",[e]),toJSON:()=>r,type:s.createTypeUnsafe("StorageEntryTypeLatest",[{Plain:tw(s,i)?.id||0}])}]),method:e,prefix:t,section:n},{key:r,skipHashing:!0})}function rw(e,t,n){return nw({method:e,prefix:"Substrate",section:"substrate"},t,n)}const aw={changesTrieConfig:rw("changesTrieConfig",":changes_trie",{docs:"Changes trie configuration is stored under this key.",type:"u32"}),childStorageKeyPrefix:rw("childStorageKeyPrefix",":child_storage:",{docs:"Prefix of child storage keys.",type:"u32"}),code:rw("code",":code",{docs:"Wasm code of the runtime.",type:"Bytes"}),extrinsicIndex:rw("extrinsicIndex",":extrinsic_index",{docs:"Current extrinsic index (u32) is stored under this key.",type:"u32"}),heapPages:rw("heapPages",":heappages",{docs:"Number of wasm linear memory pages required for execution of the runtime.",type:"u64"}),intrablockEntropy:rw("intrablockEntropy",":intrablock_entropy",{docs:"Current intra-block entropy (a universally unique `[u8; 32]` value) is stored here.",type:"[u8; 32]"})};const iw="palletVersion",sw=":__STORAGE_VERSION__:",ow={docs:"Returns the current pallet version from storage",type:"u16"};function cw(e,{pallets:t},n){const r=function(e){const t={},n=Object.entries(aw);for(let r=0,a=n.length;rca({palletVersion:nw({method:iw,prefix:o,section:t},Yv(e,{method:sw,prefix:n.toString()},Xv),ow)(e)},a,(n=>$v(e,{meta:n,method:n.name.toString(),prefix:o,section:t},{})),cf)))}}return r}function dw(e){return t=>t?e[t.charCodeAt(0)]+t.slice(1):""}const uw=dw(Gt);function lw(){return new B}function fw(e,t){var n=arguments.length>=2;return function(r){return r.pipe(e?function(e,t){return He((function(n,r){var a=0;n.subscribe(Re(r,(function(n){return e.call(t,n,a++)&&r.next(n)})))}))}((function(t,n){return e(t,n,r)})):we,(i=1)<=0?function(){return Km}:He((function(e,t){var n=0;e.subscribe(Re(t,(function(e){++n<=i&&(t.next(e),i<=n&&t.complete())})))})),n?function(e){return He((function(t,n){var r=!1;t.subscribe(Re(n,(function(e){r=!0,n.next(e)}),(function(){r||n.next(e),n.complete()})))}))}(t):(void 0===(a=function(){return new B})&&(a=lw),He((function(e,t){var n=!1;e.subscribe(Re(t,(function(e){n=!0,t.next(e)}),(function(){return n?t.complete():t.error(a())})))}))));var a,i}}function pw(e){return(0,Je.m)(e.sign)}const hw=(0,ht.k)("api/util");function bw(e,{block:{extrinsics:t,header:n}},r,a){for(const[i,s]of t.entries())if(s.hash.eq(e))return{blockNumber:xm(n.number)?n.number.unwrap():n.number,events:r.filter((({phase:e})=>e.isApplyExtrinsic&&e.asApplyExtrinsic.eqn(i))),txIndex:i};if(a.isInBlock){const r=t.map((e=>e.hash.toHex()));hw.warn(`block ${n.hash.toHex()}: Unable to find extrinsic ${e.toHex()} inside ${r.join(", ")}`)}return{}}const mw=e=>e;function yw(e,t,n,r){return e.filter((({event:e})=>t===e.section&&n.includes(e.method))).map((e=>r(e)))}function xw({event:{data:[e]}}){return e}function gw({event:{data:e,method:t}}){return"ExtrinsicSuccess"===t?e[0]:e[1]}class vw{dispatchError;dispatchInfo;internalError;events;status;txHash;txIndex;blockNumber;constructor({blockNumber:e,dispatchError:t,dispatchInfo:n,events:r,internalError:a,status:i,txHash:s,txIndex:o}){this.dispatchError=t||function(e=[]){return yw(e,"system",["ExtrinsicFailed"],xw)[0]}(r),this.dispatchInfo=n||function(e=[]){return yw(e,"system",["ExtrinsicFailed","ExtrinsicSuccess"],gw)[0]}(r),this.events=r||[],this.internalError=a,this.status=i,this.txHash=s,this.txIndex=o,this.blockNumber=e}get isCompleted(){return this.isError||this.status.isInBlock||this.status.isFinalized}get isError(){return this.status.isDropped||this.status.isFinalityTimeout||this.status.isInvalid||this.status.isUsurped}get isFinalized(){return this.status.isFinalized}get isInBlock(){return this.status.isInBlock}get isWarning(){return this.status.isRetracted}filterRecords(e,t){return yw(this.events,e,Array.isArray(t)?t:[t],mw)}findRecord(e,t){return this.filterRecords(e,t)[0]}toHuman(e){return{dispatchError:this.dispatchError?.toHuman(),dispatchInfo:this.dispatchInfo?.toHuman(),events:this.events.map((t=>t.toHuman(e))),internalError:this.internalError?.message.toString(),status:this.status.toHuman(e)}}}function ww(e,t,n,{header:r,mortalLength:a,nonce:i}){if(!r){if(n.era&&!n.blockHash)throw new Error("Expected blockHash to be passed alongside non-immortal era options");return(0,Zt.h)(n.era)&&(delete n.era,delete n.blockHash),kw(e,n,{nonce:i})}return kw(e,n,{blockHash:r.hash,era:t.createTypeUnsafe("ExtrinsicEra",[{current:r.number,period:n.era||a}]),nonce:i})}function Sw(e,t){let n={};return(0,Je.m)(e)?t=e:n=(0,_.Z)({},e),[n,t]}function kw(e,t,n){return(0,_.Z)({blockHash:e.genesisHash,genesisHash:e.genesisHash},t,n,{runtimeVersion:e.runtimeVersion,signedExtensions:e.registry.signedExtensions,version:e.extrinsicType})}function Tw({api:e,apiType:t,blockHash:n,decorateMethod:r}){const a=e.registry.createClass("Extrinsic");return class extends a{__internal__ignoreStatusCb;__internal__transformResult=M.y;constructor(n,r){super(n,r,{version:e.extrinsicType}),this.__internal__ignoreStatusCb="rxjs"===t}get hasDryRun(){return(0,Je.m)(e.rpc.system?.dryRun)}get hasPaymentInfo(){return(0,Je.m)(e.call.transactionPaymentApi?.queryInfo)}dryRun(t,a){if(!this.hasDryRun)throw new Error("The system.dryRun RPC call is not available in your environment");return n||(0,I.H)(a)||(0,gt.U)(a)?r((()=>e.rpc.system.dryRun(this.toHex(),n||a))):r((()=>this.__internal__observeSign(t,a).pipe(Le((()=>e.rpc.system.dryRun(this.toHex()))))))()}paymentInfo(t,a){if(!this.hasPaymentInfo)throw new Error("The transactionPaymentApi.queryInfo runtime call is not available in your environment");if(n||(0,I.H)(a)||(0,gt.U)(a))return r((()=>e.callAt(n||a).pipe(Le((e=>{const t=this.toU8a();return e.transactionPaymentApi.queryInfo(t,t.length)})))));const[i]=Sw(a),s=pw(t)?t.address:t.toString();return r((()=>e.derive.tx.signingInfo(s,i.nonce,i.era).pipe(fw(),Le((t=>{const n=ww(e,this.registry,i,t),r=kw(e,n,{}),a=e.tx(this.toU8a()).signFake(s,r).toU8a();return e.call.transactionPaymentApi.queryInfo(a,a.length)})))))()}send(t){const n=e.hasSubscriptions&&(this.__internal__ignoreStatusCb||!!t);return r(n?this.__internal__observeSubscribe:this.__internal__observeSend)(t)}signAsync(e,t){return r((()=>this.__internal__observeSign(e,t).pipe(Ge((()=>this)))))()}signAndSend(t,n,a){const[i,s]=Sw(n,a),o=e.hasSubscriptions&&(this.__internal__ignoreStatusCb||!!s);return r((()=>this.__internal__observeSign(t,i).pipe(Le((e=>o?this.__internal__observeSubscribe(e):this.__internal__observeSend(e))))))(s)}withResultTransform(e){return this.__internal__transformResult=e,this}__internal__observeSign=(t,n)=>{const r=pw(t)?t.address:t.toString(),a=function(e={}){return(0,Sn.H)(e)||(0,Zt.h)(e)?{nonce:e}:e}(n);return e.derive.tx.signingInfo(r,a.nonce,a.era).pipe(fw(),bb((async n=>{const i=ww(e,this.registry,a,n);let s=-1;return pw(t)?this.sign(t,i):s=await this.__internal__signViaSigner(r,i,n.header),{options:i,updateId:s}})))};__internal__observeStatus=(t,n)=>{if(!n.isFinalized&&!n.isInBlock)return Ze(this.__internal__transformResult(new vw({status:n,txHash:t})));const r=n.isInBlock?n.asInBlock:n.asFinalized;return e.derive.tx.events(r).pipe(Ge((({block:e,events:r})=>this.__internal__transformResult(new vw({...bw(t,e,r,n),status:n,txHash:t})))),Mh((e=>Ze(this.__internal__transformResult(new vw({internalError:e,status:n,txHash:t}))))))};__internal__observeSend=t=>e.rpc.author.submitExtrinsic(this).pipe(vh((e=>{this.__internal__updateSigner(e,t)})));__internal__observeSubscribe=t=>{const n=this.hash;return e.rpc.author.submitAndWatchExtrinsic(this).pipe(Le((e=>this.__internal__observeStatus(n,e))),vh((e=>{this.__internal__updateSigner(e,t)})))};__internal__signViaSigner=async(t,n,r)=>{const a=n.signer||e.signer;if(!a)throw new Error("No signer specified, either via api.setSigner or via sign options. You possibly need to pass through an explicit keypair for the origin so it can be used for signing.");const i=this.registry.createTypeUnsafe("SignerPayload",[(0,_.Z)({},n,{address:t,blockNumber:r?r.number:0,method:this.method})]);let s;if((0,Je.m)(a.signPayload))s=await a.signPayload(i.toPayload());else{if(!(0,Je.m)(a.signRaw))throw new Error("Invalid signer interface, it should implement either signPayload or signRaw (or both)");s=await a.signRaw(i.toRaw())}return super.addSignature(t,s.signature,i.toPayload()),s.id};__internal__updateSigner=(t,n)=>{if(n&&-1!==n.updateId){const{options:r,updateId:a}=n,i=r.signer||e.signer;i&&(0,Je.m)(i.update)&&i.update(a,t)}}}}function Pw(e,t,n,r,a){const i=Tw({api:t,apiType:e,blockHash:a,decorateMethod:n});return e=>new i(r||t.registry,e)}const Vw=(0,ht.k)("api/augment");function Mw(e,t,n=[]){return t.length?` ${t.length} ${e}${n.length?" and":""}`:""}function _w(e,t){return t.length?`\n\t${e.padStart(7)}: ${t.sort().join(", ")}`:""}function Iw(e,t,[n,r]){(n.length||r.length)&&Vw.warn(`api.${e}: Found${Mw("added",n,r)}${Mw("removed",r)} ${t}:${_w("added",n)}${_w("removed",r)}`)}function Ow(e,t){return e.filter((e=>!t.includes(e)))}function Nw(e,t){const n=Object.keys(e),r=(a=Object.keys(t),i=n,a.filter((e=>i.includes(e))));var a,i;const s=[];for(let o=0,c=r.length;or[e]))}return n}function Cw(e,t){const n=e=>Object.keys(t[e]),r=(n,r)=>e(t[n][r]),a={},i=Object.keys(t);for(let s=0,o=i.length;se.getTypeDef(t).type)).join(", ")})`}function Hw(e,t,n){const r=n.filter((e=>!(0,$e.o)(e)));if(t.meta.type.isPlain){if(0!==r.length)throw new Error(`${Aw(e,t,[])} does not take any arguments, ${r.length} found`)}else{const{hashers:n,key:a}=t.meta.type.asMap,i=1===n.length?[a]:e.lookup.getSiType(a).def.asTuple.map((e=>e));if(r.length!==i.length)throw new Error(`${Aw(e,t,i)} is a map, requiring ${i.length} arguments, ${r.length} found`)}return[t,r]}var Rw=n(54146);class Bw{__internal__eventemitter=new Rw.v;emit(e,...t){return this.__internal__eventemitter.emit(e,...t)}on(e,t){return this.__internal__eventemitter.on(e,t),this}off(e,t){return this.__internal__eventemitter.removeListener(e,t),this}once(e,t){return this.__internal__eventemitter.once(e,t),this}}const Lw=1e3,Uw=(0,ht.k)("api/init");let zw=0;function Dw(e,{method:t,section:n}){return da(e.rx.query[n]&&e.rx.query[n][t],(()=>`query.${n}.${t} is not available in this version of the metadata`))}class qw extends Bw{__internal__instanceId;__internal__runtimeLog={};__internal__registry;__internal__storageGetQ=[];__internal__storageSubQ=[];__phantom=new bt(0);_type;_call={};_consts={};_derive;_errors={};_events={};_extrinsics;_extrinsicType=ns.LATEST_EXTRINSIC_VERSION;_genesisHash;_isConnected;_isReady=!1;_query={};_queryMulti;_rpc;_rpcCore;_runtimeMap={};_runtimeChain;_runtimeMetadata;_runtimeVersion;_rx={call:{},consts:{},query:{},tx:{}};_options;_decorateMethod;constructor(e,t,n){super(),this.__internal__instanceId=""+ ++zw,this.__internal__registry=e.source?.registry||e.registry||new Bp,this._rx.callAt=(e,t)=>We(this.at(e,t)).pipe(Ge((e=>e.rx.call))),this._rx.queryAt=(e,t)=>We(this.at(e,t)).pipe(Ge((e=>e.rx.query))),this._rx.registry=this.__internal__registry,this._decorateMethod=n,this._options=e,this._type=t;const r=e.source?e.source._rpcCore.provider.isClonable?e.source._rpcCore.provider.clone():e.source._rpcCore.provider:e.provider||new mv.U;this._rpcCore=new bv(this.__internal__instanceId,this.__internal__registry,{isPedantic:this._options.isPedantic,provider:r,userRpc:this._options.rpc}),this._isConnected=new uh(this._rpcCore.provider.isConnected),this._rx.hasSubscriptions=this._rpcCore.provider.hasSubscriptions}get registry(){return this.__internal__registry}createType(e,...t){return this.__internal__registry.createType(e,...t)}registerTypes(e){e&&this.__internal__registry.register(e)}get hasSubscriptions(){return this._rpcCore.provider.hasSubscriptions}get supportMulti(){return this._rpcCore.provider.hasSubscriptions||!!this._rpcCore.state.queryStorageAt}_emptyDecorated(e,t){return{call:{},consts:{},errors:{},events:{},query:{},registry:e,rx:{call:{},query:{}},tx:Pw(this._type,this._rx,this._decorateMethod,e,t)}}_createDecorated(e,t,n,r){n||(n=this._emptyDecorated(e.registry,r)),!t&&e.decoratedMeta||(e.decoratedMeta=function(e,t){if(!(t instanceof rp))throw new Error("You need to pass a valid Metadata instance to Decorated");const n=t.asLatest,r=t.version;return{consts:yf(e,n),errors:hf(e,n,r),events:mf(e,n,r),query:cw(e,n),registry:e,tx:ff(e,n,r)}}(e.registry,e.metadata));const a=this._decorateCalls(e,this._decorateMethod,r),i=this._decorateCalls(e,this._rxDecorateMethod,r),s=this._decorateStorage(e.decoratedMeta,this._decorateMethod,r),o=this._decorateStorage(e.decoratedMeta,this._rxDecorateMethod,r);return Ew("consts",e.decoratedMeta.consts,n.consts,t),Ew("errors",e.decoratedMeta.errors,n.errors,t),Ew("events",e.decoratedMeta.events,n.events,t),Ew("query",s,n.query,t),Ew("query",o,n.rx.query,t),Ew("call",a,n.call,t),Ew("call",i,n.rx.call,t),n.findCall=t=>A(e.registry,t),n.findError=t=>H(e.registry,t),n.queryMulti=r?this._decorateMultiAt(n,this._decorateMethod,r):this._decorateMulti(this._decorateMethod),n.runtimeVersion=e.runtimeVersion,{createdAt:r,decoratedApi:n,decoratedMeta:e.decoratedMeta}}_injectMetadata(e,t=!1){!t&&e.decoratedApi||(e.decoratedApi=this._emptyDecorated(e.registry));const{decoratedApi:n,decoratedMeta:r}=this._createDecorated(e,t,e.decoratedApi);this._call=n.call,this._consts=n.consts,this._errors=n.errors,this._events=n.events,this._query=n.query,this._rx.call=n.rx.call,this._rx.query=n.rx.query;const a=this._decorateExtrinsics(r,this._decorateMethod),i=this._decorateExtrinsics(r,this._rxDecorateMethod);t||!this._extrinsics?(this._extrinsics=a,this._rx.tx=i):(Ew("tx",a,this._extrinsics,!1),Ew(null,i,this._rx.tx,!1)),Ew(null,r.consts,this._rx.consts,t),this.emit("decorated")}injectMetadata(e,t,n){this._injectMetadata({counter:0,metadata:e,registry:n||this.__internal__registry,runtimeVersion:this.__internal__registry.createType("RuntimeVersionPartial")},t)}_decorateFunctionMeta(e,t){return t.meta=e.meta,t.method=e.method,t.section=e.section,t.toJSON=e.toJSON,e.callIndex&&(t.callIndex=e.callIndex),t}_filterRpc(e,t){0!==Object.keys(t).length&&(this._rpcCore.addUserInterfaces(t),this._decorateRpc(this._rpcCore,this._decorateMethod,this._rpc),this._decorateRpc(this._rpcCore,this._rxDecorateMethod,this._rx.rpc));const n={};for(let a=0,i=e.length;a!r.includes(e)&&!e.includes("_unstable_")));i.length&&!this._options.noInitWarn&&Uw.warn(`RPC methods not decorated: ${i.join(", ")}`);for(let s=0;sWe(this._rpcCore.provider.send(e,t))))}_decorateRpc(e,t,n=this._rpcSubmitter(t)){const r=n,a=(n,r)=>{const a=e[n][r],i=t(a,{methodName:r});return i.meta=a.meta,i.raw=t(a.raw,{methodName:r}),i};for(let i=0,s=e.sections.length;ia(t,e);for(let e=0,a=n.length;er.version===e));i?(0,_.Z)(i.methods,r.methods):e[t].push(r)}else e[t]=a}}_getRuntimeDefs(e,t,n=""){const r={},a=Object.values(i);for(let i=0,s=a.length;i({...e.typesBundle?.spec?.[n]?.runtime??{},...e.typesBundle?.chain?.[t]?.runtime??{}})))}(e,n,t)),this._addRuntimeDef(r,this._options.runtime),Object.entries(r)}_decorateCalls({registry:e,runtimeVersion:{apis:t,specName:n,specVersion:r}},a,i){const s={},o={},c={},d=this._getRuntimeDefs(e,n,this._runtimeChain),u=[],l=`${n.toString()}/${r.toString()}`,f=this.__internal__runtimeLog[l]||!1;this.__internal__runtimeLog[l]=!0;for(let y=0,x=d.length;ye.eq(r)));if(c[r]=!0,a){const t=n.map((({version:e})=>e)).sort(),i=n.find((({version:e})=>a[1].eq(e)));if(i){const t=Qt(e),n=Object.entries(i.methods);if(n.length){o[t]||(o[t]={});for(let a=0,i=n.length;a[e.toHex(),t.toString()])).filter((([e])=>!c[e])).map((([e,t])=>`${this._runtimeMap[e]||e}/${t}`));this._options.noInitWarn||f||(u.length&&Uw.warn(`${l}: Not decorating runtime apis without matching versions: ${u.join(", ")}`),p.length&&Uw.warn(`${l}: Not decorating unknown runtime apis: ${p.join(", ")}`));const h=i?(e,t)=>this._rpcCore.state.call(e,t,i):(e,t)=>this._rpcCore.state.call(e,t),b=t=>ca({},Object.keys(o[t]),(n=>this._decorateCall(e,o[t][n],h,a))),m=Object.keys(o);for(let y=0,x=m.length;y{if(r.length!==t.params.length)throw new Error(`${t.name}:: Expected ${t.params.length} arguments, found ${r.length}`);const a=e.createType("Raw",Lt(r.map(((n,r)=>e.createTypeUnsafe(t.params[r].type,[n]).toU8a()))));return n(t.name,a).pipe(Ge((n=>e.createTypeUnsafe(t.type,[n]))))}));return a.meta=t,a}_decorateMulti(e){return e((e=>e.length?(this.hasSubscriptions?this._rpcCore.state.subscribeStorage:this._rpcCore.state.queryStorageAt)(e.map((e=>Array.isArray(e)?e[0].creator.meta.type.isPlain?[e[0].creator]:1===e[0].creator.meta.type.asMap.hashers.length?[e[0].creator,e.slice(1)]:[e[0].creator,...e.slice(1)]:[e.creator]))):Ze([])))}_decorateMultiAt(e,t,n){return t((t=>t.length?this._rpcCore.state.queryStorageAt(t.map((t=>{if(Array.isArray(t)){const{creator:n}=Dw(e,t[0].creator);return n.meta.type.isPlain?[n]:1===n.meta.type.asMap.hashers.length?[n,t.slice(1)]:[n,...t.slice(1)]}return[Dw(e,t.creator).creator]})),n):Ze([])))}_decorateExtrinsics({tx:e},t){const n=Pw(this._type,this._rx,t),r=t=>ca({},Object.keys(e[t]),(r=>r.startsWith("$")?e[t][r]:this._decorateExtrinsicEntry(e[t][r],n))),a=Object.keys(e);for(let i=0,s=a.length;it(e(...n));return n.is=t=>e.is(t),this._decorateFunctionMeta(e,n)}_decorateStorage({query:e,registry:t},n,r){const a={},i=a=>ca({},Object.keys(e[a]),(i=>r?this._decorateStorageEntryAt(t,e[a][i],n,r):this._decorateStorageEntry(e[a][i],n))),s=Object.keys(e);for(let o=0,c=s.length;oHw(n||this.__internal__registry,e,t),r=t=>We(this.at(t)).pipe(Ge((t=>Dw(t,e)))),a=this._decorateStorageCall(e,t);return a.creator=e,a.at=t(((e,...t)=>r(e).pipe(Le((e=>e(...t)))))),a.hash=t(((...e)=>this._rpcCore.state.getStorageHash(n(e)))),a.is=t=>t.section===e.section&&t.method===e.method,a.key=(...t)=>(0,O.c)(Sr(e(...t))[1]),a.keyPrefix=(...t)=>(0,O.c)(e.keyPrefix(...t)),a.size=t(((...e)=>this._rpcCore.state.getStorageSize(n(e)))),a.sizeAt=t(((e,...t)=>r(e).pipe(Le((r=>this._rpcCore.state.getStorageSize(n(t,r.creator.meta.registry),e)))))),e.iterKey&&e.meta.type.isMap&&(a.entries=t(eb(this.__internal__instanceId,((...t)=>this._retrieveMapEntries(e,null,t)))),a.entriesAt=t(eb(this.__internal__instanceId,((e,...t)=>r(e).pipe(Le((n=>this._retrieveMapEntries(n.creator,e,t))))))),a.entriesPaged=t(eb(this.__internal__instanceId,(t=>this._retrieveMapEntriesPaged(e,void 0,t)))),a.keys=t(eb(this.__internal__instanceId,((...t)=>this._retrieveMapKeys(e,null,t)))),a.keysAt=t(eb(this.__internal__instanceId,((e,...t)=>r(e).pipe(Le((n=>this._retrieveMapKeys(n.creator,e,t))))))),a.keysPaged=t(eb(this.__internal__instanceId,(t=>this._retrieveMapKeysPaged(e,void 0,t))))),this.supportMulti&&e.meta.type.isMap&&(a.multi=t((t=>1===e.meta.type.asMap.hashers.length?this._retrieveMulti(t.map((t=>[e,[t]]))):this._retrieveMulti(t.map((t=>[e,t])))))),this._decorateFunctionMeta(e,a)}_decorateStorageEntryAt(e,t,n,r){const a=n=>Hw(e,t,n),i=n(((...e)=>this._rpcCore.state.getStorage(a(e),r)));return i.creator=t,i.hash=n(((...e)=>this._rpcCore.state.getStorageHash(a(e),r))),i.is=e=>e.section===t.section&&e.method===t.method,i.key=(...e)=>(0,O.c)(Sr(t(...e))[1]),i.keyPrefix=(...e)=>(0,O.c)(t.keyPrefix(...e)),i.size=n(((...e)=>this._rpcCore.state.getStorageSize(a(e),r))),t.iterKey&&t.meta.type.isMap&&(i.entries=n(eb(this.__internal__instanceId,((...e)=>this._retrieveMapEntries(t,r,e)))),i.entriesPaged=n(eb(this.__internal__instanceId,(e=>this._retrieveMapEntriesPaged(t,r,e)))),i.keys=n(eb(this.__internal__instanceId,((...e)=>this._retrieveMapKeys(t,r,e)))),i.keysPaged=n(eb(this.__internal__instanceId,(e=>this._retrieveMapKeysPaged(t,r,e))))),this.supportMulti&&t.meta.type.isMap&&(i.multi=n((e=>1===t.meta.type.asMap.hashers.length?this._retrieveMulti(e.map((e=>[t,[e]])),r):this._retrieveMulti(e.map((e=>[t,e])),r)))),this._decorateFunctionMeta(t,i)}_queueStorage(e,t){const n=t===this.__internal__storageSubQ?this._rpcCore.state.subscribeStorage:this._rpcCore.state.queryStorageAt;let r,a=t.length-1,i=0;return-1!==a&&t[a]&&50!==t[a][1].length?(r=t[a][0],i=t[a][1].length,t[a][1].push(e)):(a++,r=We(new Promise((e=>{Zb((()=>{const n=t[a][1];delete t[a],e(n)}))}))).pipe(Le((e=>n(e)))),t.push([r,[e]])),r.pipe(Ge((e=>e[i])))}_decorateStorageCall(e,t){return t(eb(this.__internal__instanceId,((...t)=>{const n=Hw(this.__internal__registry,e,t);return this.hasSubscriptions?this._queueStorage(n,this.__internal__storageSubQ):this._rpcCore.state.getStorage(n)})),{methodName:e.method,overrideNoSub:(...t)=>this._queueStorage(Hw(this.__internal__registry,e,t),this.__internal__storageGetQ)})}_retrieveMulti(e,t){if(!e.length)return Ze([]);const n=this.hasSubscriptions&&!t?this._rpcCore.state.subscribeStorage:this._rpcCore.state.queryStorageAt;return e.length<=250?t?n(e,t):n(e):xh(Nx(e,250).map((e=>t?n(e,t):n(e)))).pipe(Ge(Ym))}_retrieveMapKeys({iterKey:e,meta:t,method:n,section:r},a,i){if(!e||!t.type.isMap)throw new Error("keys can only be retrieved on maps");const s=e(...i).toHex(),o=new uh(s),c=a?e=>this._rpcCore.state.getKeysPaged(s,Lw,e,a):e=>this._rpcCore.state.getKeysPaged(s,Lw,e),d=e=>e.setMeta(t,r,n);return o.pipe(Le(c),Ge((e=>e.map(d))),vh((e=>Zb((()=>{e.length===Lw?o.next(e[999].toHex()):o.complete()})))),kh(),Ge(Ym))}_retrieveMapKeysPaged({iterKey:e,meta:t,method:n,section:r},a,i){if(!e||!t.type.isMap)throw new Error("keys can only be retrieved on maps");const s=e=>e.setMeta(t,r,n);return(a?e=>this._rpcCore.state.getKeysPaged(e,i.pageSize,i.startKey||e,a):e=>this._rpcCore.state.getKeysPaged(e,i.pageSize,i.startKey||e))(e(...i.args).toHex()).pipe(Ge((e=>e.map(s))))}_retrieveMapEntries(e,t,n){const r=t?e=>this._rpcCore.state.queryStorageAt(e,t):e=>this._rpcCore.state.queryStorageAt(e);return this._retrieveMapKeys(e,t,n).pipe(Le((e=>e.length?xh(Nx(e,250).map(r)).pipe(Ge((t=>Ym(t).map(((t,n)=>[e[n],t]))))):Ze([]))))}_retrieveMapEntriesPaged(e,t,n){const r=t?e=>this._rpcCore.state.queryStorageAt(e,t):e=>this._rpcCore.state.queryStorageAt(e);return this._retrieveMapKeysPaged(e,t,n).pipe(Le((e=>e.length?r(e).pipe(Ge((t=>t.map(((t,n)=>[e[n],t]))))):Ze([]))))}_decorateDeriveRx(e){const t=this._runtimeVersion?.specName.toString();return Cw(e,function(e,t,n={}){return{...cv(e,t,sv),...cv(e,t,n)}}(this.__internal__instanceId,this._rx,(0,_.Z)({},this._options.derives,this._options.typesBundle?.spec?.[t||""]?.derives)))}_decorateDerive(e){return Cw(e,this._rx.derive)}_rxDecorateMethod=e=>e}const jw=(0,ht.k)("api/init");function Fw(e){return e.toString()}class Xw extends qw{__internal__atLast=null;__internal__healthTimer=null;__internal__registries=[];__internal__updateSub=null;__internal__waitingRegistries={};constructor(e,t,n){super(e,t,n),this.registry.setKnownTypes(e),e.source?this.__internal__registries=e.source.__internal__registries:this.registerTypes(e.types),this._rpc=this._decorateRpc(this._rpcCore,this._decorateMethod),this._rx.rpc=this._decorateRpc(this._rpcCore,this._rxDecorateMethod),this.supportMulti&&(this._queryMulti=this._decorateMulti(this._decorateMethod),this._rx.queryMulti=this._decorateMulti(this._rxDecorateMethod)),this._rx.signer=e.signer,this._rpcCore.setRegistrySwap((e=>this.getBlockRegistry(e))),this._rpcCore.setResolveBlockHash((e=>ye(this._rpcCore.chain.getBlockHash(e)))),this.hasSubscriptions?(this._rpcCore.provider.on("disconnected",(()=>this.__internal__onProviderDisconnect())),this._rpcCore.provider.on("error",(e=>this.__internal__onProviderError(e))),this._rpcCore.provider.on("connected",(()=>this.__internal__onProviderConnect()))):this._options.noInitWarn||jw.warn("Api will be available in a limited mode since the provider does not support subscriptions"),this._rpcCore.provider.isConnected&&this.__internal__onProviderConnect().catch(M.Z)}_initRegistry(e,t,n,r,a){e.clearCache(),e.setChainProperties(a||this.registry.getChainProperties()),e.setKnownTypes(this._options),e.register(function({knownTypes:e},t,n,r){const a=At(r).toNumber();return ah(t,n,((t,n)=>({...ih(Qp[n],a),...ih(Lp[t],a),...ih(e.typesBundle?.spec?.[n]?.types,a),...ih(e.typesBundle?.chain?.[t]?.types,a),...e.typesSpec?.[n]??{},...e.typesChain?.[t]??{},...e.types??{}})))}(e,t,n.specName,n.specVersion)),e.setHasher(function({knownTypes:e},t,n){return ah(t,n,((t,n)=>e.hasher||e.typesBundle?.chain?.[t]?.hasher||e.typesBundle?.spec?.[n]?.hasher||null))}(e,t,n.specName)),e.knownTypes.typesBundle&&(e.knownTypes.typesAlias=function({knownTypes:e},t,n){return ah(t,n,((t,n)=>({...e.typesBundle?.spec?.[n]?.alias??{},...e.typesBundle?.chain?.[t]?.alias??{},...e.typesAlias??{}})))}(e,t,n.specName)),e.setMetadata(r,void 0,(0,_.Z)({},function({knownTypes:e},t,n){return ah(t,n,((t,n)=>({...e.typesBundle?.spec?.[n]?.signedExtensions??{},...e.typesBundle?.chain?.[t]?.signedExtensions??{}})))}(e,t,n.specName),this._options.signedExtensions),this._options.noInitWarn)}_getDefaultRegistry(){return da(this.__internal__registries.find((({isDefault:e})=>e)),"Initialization error, cannot find the default registry")}async at(e,t){const n=(0,N.Y)(e),r=(0,O.c)(n),a=await this.getBlockRegistry(n,t);return this.__internal__atLast&&this.__internal__atLast[0]===r||(this.__internal__atLast=[r,this._createDecorated(a,!0,null,n).decoratedApi]),this.__internal__atLast[1]}async _createBlockRegistry(e,t,n){const r=new Bp(e),a=new rp(r,await ye(this._rpcCore.state.getMetadata.raw(t.parentHash))),i=this._runtimeChain;if(!i)throw new Error("Invalid initializion order, runtimeChain is not available");this._initRegistry(r,i,n,a);const s={counter:0,lastBlockHash:e,metadata:a,registry:r,runtimeVersion:n};return this.__internal__registries.push(s),s}_cacheBlockRegistryProgress(e,t){let n=this.__internal__waitingRegistries[e];return(0,$e.o)(n)&&(n=this.__internal__waitingRegistries[e]=new Promise(((n,r)=>{t().then((t=>{delete this.__internal__waitingRegistries[e],n(t)})).catch((t=>{delete this.__internal__waitingRegistries[e],r(t)}))}))),n}_getBlockRegistryViaVersion(e,t){if(t){const n=this.__internal__registries.find((({runtimeVersion:{specName:e,specVersion:n}})=>e.eq(t.specName)&&n.eq(t.specVersion)));if(n)return n.counter++,n.lastBlockHash=e,n}return null}async _getBlockRegistryViaHash(e){if(!this._genesisHash||!this._runtimeVersion)throw new Error("Cannot retrieve data on an uninitialized chain");const t=this.registry.createType("HeaderPartial",this._genesisHash.eq(e)?{number:vt,parentHash:this._genesisHash}:await ye(this._rpcCore.chain.getHeader.raw(e)));if(t.parentHash.isEmpty)throw new Error("Unable to retrieve header and parent from supplied hash");const[n,r]=function(e,t){const n=rh.find((t=>e.eq(t.genesisHash)));return n?[n.versions.reduce(((e,n)=>t.gt(n.blockNumber)?n:e),void 0),n.versions.find((e=>t.lte(e.blockNumber)))]:[void 0,void 0]}(this._genesisHash,t.number),a=this.registry.createType("RuntimeVersionPartial",await ye(this._rpcCore.state.getRuntimeVersion.raw(t.parentHash)));return this._getBlockRegistryViaVersion(e,a)||await this._cacheBlockRegistryProgress(a.toHex(),(()=>this._createBlockRegistry(e,t,a)))}async getBlockRegistry(e,t){return this.__internal__registries.find((({lastBlockHash:t})=>t&&ra(t,e)))||this._getBlockRegistryViaVersion(e,t)||await this._cacheBlockRegistryProgress((0,O.c)(e),(()=>this._getBlockRegistryViaHash(e)))}async _loadMeta(){return!!this._isReady||(this._unsubscribeUpdates(),[this._genesisHash,this._runtimeMetadata]=this._options.source?._isReady?await this._metaFromSource(this._options.source):await this._metaFromChain(this._options.metadata),this._initFromMeta(this._runtimeMetadata))}async _metaFromSource(e){this._extrinsicType=e.extrinsicVersion,this._runtimeChain=e.runtimeChain,this._runtimeVersion=e.runtimeVersion;const t=Object.keys(e.rpc),n=[];for(let r=0,a=t.length;rthis._runtimeVersion?.specVersion.eq(e.specVersion)?Ze(!1):this._rpcCore.state.getMetadata().pipe(Ge((t=>{jw.log(`Runtime version updated to spec=${e.specVersion.toString()}, tx=${e.transactionVersion.toString()}`),this._runtimeMetadata=t,this._runtimeVersion=e,this._rx.runtimeVersion=e;const n=this._getDefaultRegistry(),r=this._runtimeChain;if(!r)throw new Error("Invalid initializion order, runtimeChain is not available");return n.metadata=t,n.runtimeVersion=e,this._initRegistry(this.registry,r,e,t),this._injectMetadata(n,!0),!0})))))).subscribe())}async _metaFromChain(e){const[t,n,r,a,i,s]=await Promise.all([ye(this._rpcCore.chain.getBlockHash(0)),ye(this._rpcCore.state.getRuntimeVersion()),ye(this._rpcCore.system.chain()),ye(this._rpcCore.system.properties()),ye(this._rpcCore.rpc.methods()),e?Promise.resolve(null):ye(this._rpcCore.state.getMetadata())]);this._runtimeChain=r,this._runtimeVersion=n,this._rx.runtimeVersion=n;const o=`${t.toHex()||"0x"}-${n.specVersion.toString()}`,c=s||(e?.[o]?new rp(this.registry,e[o]):await ye(this._rpcCore.state.getMetadata()));return this._initRegistry(this.registry,r,n,c,a),this._filterRpc(i.methods.map(Fw),sh(this.registry,r,n.specName)),this._subscribeUpdates(),this.__internal__registries.length||this.__internal__registries.push({counter:0,isDefault:!0,metadata:c,registry:this.registry,runtimeVersion:n}),c.getUniqTypes(this._options.throwOnUnknown||!1),[t,c]}_initFromMeta(e){const t=this._runtimeVersion;if(!t)throw new Error("Invalid initializion order, runtimeVersion is not available");return this._extrinsicType=e.asLatest.extrinsic.version.toNumber(),this._rx.extrinsicType=this._extrinsicType,this._rx.genesisHash=this._genesisHash,this._rx.runtimeVersion=t,this._injectMetadata(this._getDefaultRegistry(),!0),this._rx.derive=this._decorateDeriveRx(this._rxDecorateMethod),this._derive=this._decorateDerive(this._decorateMethod),!0}_subscribeHealth(){this._unsubscribeHealth(),this.__internal__healthTimer=this.hasSubscriptions?setInterval((()=>{ye(this._rpcCore.system.health.raw()).catch(M.Z)}),1e4):null}_unsubscribeHealth(){this.__internal__healthTimer&&(clearInterval(this.__internal__healthTimer),this.__internal__healthTimer=null)}_unsubscribeUpdates(){this.__internal__updateSub&&(this.__internal__updateSub.unsubscribe(),this.__internal__updateSub=null)}_unsubscribe(){this._unsubscribeHealth(),this._unsubscribeUpdates()}async __internal__onProviderConnect(){this._isConnected.next(!0),this.emit("connected");try{const e=!1===this._options.initWasm||await Oi().then((()=>{if(!Ii())throw new Error("Unable to initialize @polkadot/util-crypto");return!0})).catch((()=>!1)),t=await this._loadMeta();this._subscribeHealth(),t&&!this._isReady&&e&&(this._isReady=!0,this.emit("ready",this))}catch(e){const t=new Error(`FATAL: Unable to initialize the API: ${e.message}`);jw.error(t),this.emit("error",t)}}__internal__onProviderDisconnect(){this._isConnected.next(!1),this._unsubscribe(),this.emit("disconnected")}__internal__onProviderError(e){this.emit("error",e)}}function Ww(e){if(void 0===e)throw new Error("Api interfaces needs to be initialized before using, wait for 'isReady'");return e}class Zw extends Xw{get call(){return Ww(this._call)}get consts(){return Ww(this._consts)}get derive(){return Ww(this._derive)}get errors(){return Ww(this._errors)}get events(){return Ww(this._events)}get extrinsicVersion(){return this._extrinsicType}get genesisHash(){return Ww(this._genesisHash)}get isConnected(){return this._isConnected.getValue()}get libraryInfo(){return`${E} v${C}`}get query(){return Ww(this._query)}get queryMulti(){return Ww(this._queryMulti)}get rpc(){return Ww(this._rpc)}get runtimeChain(){return Ww(this._runtimeChain)}get runtimeMetadata(){return Ww(this._runtimeMetadata)}get runtimeVersion(){return Ww(this._runtimeVersion)}get rx(){return Ww(this._rx)}get stats(){return this._rpcCore.stats}get type(){return this._type}get tx(){return Ww(this._extrinsics)}findCall(e){return A(this.registry,e)}findError(e){return H(this.registry,e)}}class Gw extends Zw{constructor(e={},t,n){super(e,t,n)}connect(){return this._rpcCore.connect()}disconnect(){return this._unsubscribe(),this._rpcCore.disconnect()}setSigner(e){this._rx.signer=e}async sign(e,t,{signer:n}={}){if((0,I.H)(e)){const r=n||this._rx.signer;if(!r?.signRaw)throw new Error("No signer exists with a signRaw interface. You possibly need to pass through an explicit keypair for the origin so it can be used for signing.");return(await r.signRaw((0,_.Z)({type:"bytes"},t,{address:e}))).signature}return(0,O.c)(e.sign((0,N.Y)(t.data)))}}class Kw{__internal__allHasFired=!1;__internal__callback;__internal__fired=[];__internal__fns=[];__internal__isActive=!0;__internal__results=[];__internal__subscriptions=[];constructor(e,t){this.__internal__callback=t,this.__internal__subscriptions=e.map((async(e,t)=>{const[n,...r]=Array.isArray(e)?e:[e];return this.__internal__fired.push(!1),this.__internal__fns.push(n),n(...r,this._createCallback(t))}))}_allHasFired(){return this.__internal__allHasFired||=0===this.__internal__fired.filter((e=>!e)).length,this.__internal__allHasFired}_createCallback(e){return t=>{this.__internal__fired[e]=!0,this.__internal__results[e]=t,this._triggerUpdate()}}_triggerUpdate(){if(this.__internal__isActive&&(0,Je.m)(this.__internal__callback)&&this._allHasFired())try{Promise.resolve(this.__internal__callback(this.__internal__results)).catch(M.Z)}catch{}}unsubscribe(){this.__internal__isActive&&(this.__internal__isActive=!1,Promise.all(this.__internal__subscriptions.map((async e=>{try{const t=await e;(0,Je.m)(t)&&t()}catch{}}))).catch((()=>{})))}}function Yw(e,t){let n=!1;return{reject:e=>(n||(n=!0,t(e)),Km),resolve:t=>{n||(n=!0,e(t))}}}function Jw(e,t){const n=!(!t?.methodName||!t.methodName.includes("subscribe"));return function(...r){const[a,i]=function(e,t){const n=e.slice(),r=e.length&&(0,Je.m)(e[e.length-1])?n.pop():void 0;if(t&&!(0,Je.m)(r))throw new Error("Expected a callback to be passed with subscriptions");return[n,r]}(r,n);return i?function(e,t,n){return new Promise(((r,a)=>{const i=Yw(r,a),s=e(...t).pipe(Mh((e=>i.reject(e))),vh((()=>i.resolve((()=>s.unsubscribe()))))).subscribe((e=>{Zb((()=>n(e)))}))}))}(e,a,i):function(e,t){return new Promise(((n,r)=>{const a=Yw(n,r),i=e(...t).pipe(Mh((e=>a.reject(e)))).subscribe((e=>{a.resolve(e),Zb((()=>i.unsubscribe()))}))}))}(t?.overrideNoSub||e,a)}}class Qw extends Gw{__internal__isReadyPromise;__internal__isReadyOrErrorPromise;constructor(e){super(e,"promise",Jw),this.__internal__isReadyPromise=new Promise((e=>{super.once("ready",(()=>e(this)))})),this.__internal__isReadyOrErrorPromise=new Promise(((e,t)=>{const n=Yw(e,t);super.once("ready",(()=>n.resolve(this))),super.once("error",(e=>n.reject(e)))}))}static create(e){const t=new Qw(e);return e&&e.throwOnConnect?t.isReadyOrError:(t.isReadyOrError.catch(M.Z),t.isReady)}get isReady(){return this.__internal__isReadyPromise}get isReadyOrError(){return this.__internal__isReadyOrErrorPromise}clone(){return new Qw((0,_.Z)({},this._options,{source:this}))}async combineLatest(e,t){const n=new Kw(e,t);return()=>{n.unsubscribe()}}}},87152:(e,t,n)=>{"use strict";n.d(t,{U:()=>_});var r=n(54146),a=n(64992),i=n(33667);const s=(0,n(50075).Sn)("isPrototypeOf","hasOwnProperty");var o=n(94676),c=n(98278),d=n(66103),u=n(50273),l=n(58758);const f=l.Ur.WebSocket;var p=n(48907),h=n(51482),b=n(6169);const m=-99999;function y(e,t,n){Object.defineProperty(e,t,{configurable:!0,enumerable:!1,value:n})}class x extends Error{code;data;message;name;stack;constructor(e="",t=-99999,n){if(super(),y(this,"message",String(e)),y(this,"name",this.constructor.name),y(this,"data",n),y(this,"code",t),(0,b.m)(Error.captureStackTrace))Error.captureStackTrace(this,this.constructor);else{const{stack:t}=new Error(e);t&&y(this,"stack",t)}}static CODES={ASSERT:-90009,INVALID_JSONRPC:-99998,METHOD_NOT_FOUND:-32601,UNKNOWN:m}}function g(e){if(e){const{code:t,data:n,message:r}=e;throw new x(`${t}: ${r}${function(e){if((0,c.o)(e))return"";const t=`: ${(0,p.H)(e)?e.replace(/Error\("/g,"").replace(/\("/g,"(").replace(/"\)/g,")").replace(/\(/g,", ").replace(/\)/g,""):(0,o.P)(e)}`;return t.length<=256?t:`${t.substring(0,255)}\u2026`}(n)}`,t,n)}}class v{__internal__id=0;decodeResponse(e){if(!e||"2.0"!==e.jsonrpc)throw new Error("Invalid jsonrpc field in decoded object");const t=!(0,c.o)(e.params)&&!(0,c.o)(e.method);if(!((0,h.h)(e.id)||t&&((0,h.h)(e.params.subscription)||(0,p.H)(e.params.subscription))))throw new Error("Invalid id field in decoded object");if(g(e.error),void 0===e.result&&!t)throw new Error("No result found in jsonrpc response");return t?(g(e.params.error),e.params.result):e.result}encodeJson(e,t){const[n,r]=this.encodeObject(e,t);return[n,(0,o.P)(r)]}encodeObject(e,t){const n=++this.__internal__id;return[n,{id:n,jsonrpc:"2.0",method:e,params:t}]}}const w="ws://127.0.0.1:9944";class S{key;next;prev;constructor(e){this.key=e,this.next=this.prev=this}}class k{capacity;__internal__data=new Map;__internal__refs=new Map;__internal__length=0;__internal__head;__internal__tail;constructor(e=128){this.capacity=e,this.__internal__head=this.__internal__tail=new S("")}get length(){return this.__internal__length}get lengthData(){return this.__internal__data.size}get lengthRefs(){return this.__internal__refs.size}entries(){const e=this.keys(),t=e.length,n=new Array(t);for(let r=0;r{t&&t(e[n]),delete e[n]}))}class _{__internal__callCache;__internal__coder;__internal__endpoints;__internal__headers;__internal__eventemitter;__internal__handlers={};__internal__isReadyPromise;__internal__stats;__internal__waitingForId={};__internal__autoConnectMs;__internal__endpointIndex;__internal__endpointStats;__internal__isConnected=!1;__internal__subscriptions={};__internal__timeoutId=null;__internal__websocket;__internal__timeout;constructor(e=w,t=2500,n={},a,s){const o=Array.isArray(e)?e:[e];if(0===o.length)throw new Error("WsProvider requires at least one Endpoint");o.forEach((e=>{if(!/^(wss|ws):\/\//.test(e))throw new Error(`Endpoint should start with 'ws://', received '${e}'`)})),this.__internal__callCache=new k(s||128),this.__internal__eventemitter=new r.v,this.__internal__autoConnectMs=t||0,this.__internal__coder=new v,this.__internal__endpointIndex=-1,this.__internal__endpoints=o,this.__internal__headers=n,this.__internal__websocket=null,this.__internal__stats={active:{requests:0,subscriptions:0},total:{bytesRecv:0,bytesSent:0,cached:0,errors:0,requests:0,subscriptions:0,timeout:0}},this.__internal__endpointStats={bytesRecv:0,bytesSent:0,cached:0,errors:0,requests:0,subscriptions:0,timeout:0},this.__internal__timeout=a||6e4,t&&t>0&&this.connectWithRetry().catch(i.Z),this.__internal__isReadyPromise=new Promise((e=>{this.__internal__eventemitter.once("connected",(()=>{e(this)}))}))}get hasSubscriptions(){return!0}get isClonable(){return!0}get isConnected(){return this.__internal__isConnected}get isReady(){return this.__internal__isReadyPromise}get endpoint(){return this.__internal__endpoints[this.__internal__endpointIndex]}clone(){return new _(this.__internal__endpoints)}selectEndpointIndex(e){return(this.__internal__endpointIndex+1)%e.length}async connect(){if(this.__internal__websocket)throw new Error("WebSocket is already connected");try{this.__internal__endpointIndex=this.selectEndpointIndex(this.__internal__endpoints),this.__internal__websocket=void 0!==l.Ur.WebSocket&&(e=l.Ur.WebSocket,s(t=f)&&s(e)&&(e===t||e.isPrototypeOf(t)))?new f(this.endpoint):new f(this.endpoint,void 0,{headers:this.__internal__headers}),this.__internal__websocket&&(this.__internal__websocket.onclose=this.__internal__onSocketClose,this.__internal__websocket.onerror=this.__internal__onSocketError,this.__internal__websocket.onmessage=this.__internal__onSocketMessage,this.__internal__websocket.onopen=this.__internal__onSocketOpen),this.__internal__timeoutId=setInterval((()=>this.__internal__timeoutHandlers()),5e3)}catch(n){throw V.error(n),this.__internal__emit("error",n),n}var e,t}async connectWithRetry(){if(this.__internal__autoConnectMs>0)try{await this.connect()}catch{setTimeout((()=>{this.connectWithRetry().catch(i.Z)}),this.__internal__autoConnectMs)}}async disconnect(){this.__internal__autoConnectMs=0;try{this.__internal__websocket&&this.__internal__websocket.close(1e3)}catch(e){throw V.error(e),this.__internal__emit("error",e),e}}get stats(){return{active:{requests:Object.keys(this.__internal__handlers).length,subscriptions:Object.keys(this.__internal__subscriptions).length},total:this.__internal__stats.total}}get endpointStats(){return this.__internal__endpointStats}on(e,t){return this.__internal__eventemitter.on(e,t),()=>{this.__internal__eventemitter.removeListener(e,t)}}send(e,t,n,r){this.__internal__endpointStats.requests++,this.__internal__stats.total.requests++;const[a,i]=this.__internal__coder.encodeJson(e,t),s=n?`${e}::${(0,o.P)(t)}`:"";let c=n?this.__internal__callCache.get(s):null;return c?(this.__internal__endpointStats.cached++,this.__internal__stats.total.cached++):(c=this.__internal__send(a,i,e,t,r),n&&this.__internal__callCache.set(s,c)),c}async __internal__send(e,t,n,r,a){return new Promise(((i,s)=>{try{if(!this.isConnected||null===this.__internal__websocket)throw new Error("WebSocket is not connected");const o=(e,t)=>{e?s(e):i(t)};V.debug((()=>["calling",n,t])),this.__internal__handlers[e]={callback:o,method:n,params:r,start:Date.now(),subscription:a};const c=t.length;this.__internal__endpointStats.bytesSent+=c,this.__internal__stats.total.bytesSent+=c,this.__internal__websocket.send(t)}catch(o){this.__internal__endpointStats.errors++,this.__internal__stats.total.errors++,s(o)}}))}subscribe(e,t,n,r){return this.__internal__endpointStats.subscriptions++,this.__internal__stats.total.subscriptions++,this.send(t,n,!1,{callback:r,type:e})}async unsubscribe(e,t,n){const r=`${e}::${n}`;if((0,c.o)(this.__internal__subscriptions[r]))return V.debug((()=>`Unable to find active subscription=${r}`)),!1;delete this.__internal__subscriptions[r];try{return!(this.isConnected&&!(0,d.F)(this.__internal__websocket))||this.send(t,[n])}catch{return!1}}__internal__emit=(e,...t)=>{this.__internal__eventemitter.emit(e,...t)};__internal__onSocketClose=e=>{const t=new Error(`disconnected from ${this.endpoint}: ${e.code}:: ${e.reason||function(e){if(e>=0&&e<=999)return"(Unused)";if(e>=1016){if(e<=1999)return"(For WebSocket standard)";if(e<=2999)return"(For WebSocket extensions)";if(e<=3999)return"(For libraries and frameworks)";if(e<=4999)return"(For applications)"}return T[e]||"(Unknown)"}(e.code)}`);this.__internal__autoConnectMs>0&&V.error(t.message),this.__internal__isConnected=!1,this.__internal__websocket&&(this.__internal__websocket.onclose=null,this.__internal__websocket.onerror=null,this.__internal__websocket.onmessage=null,this.__internal__websocket.onopen=null,this.__internal__websocket=null),this.__internal__timeoutId&&(clearInterval(this.__internal__timeoutId),this.__internal__timeoutId=null),M(this.__internal__handlers,(e=>{try{e.callback(t,void 0)}catch(n){V.error(n)}})),M(this.__internal__waitingForId),this.__internal__endpointStats={bytesRecv:0,bytesSent:0,cached:0,errors:0,requests:0,subscriptions:0,timeout:0},this.__internal__emit("disconnected"),this.__internal__autoConnectMs>0&&setTimeout((()=>{this.connectWithRetry().catch(i.Z)}),this.__internal__autoConnectMs)};__internal__onSocketError=e=>{V.debug((()=>["socket error",e])),this.__internal__emit("error",e)};__internal__onSocketMessage=e=>{V.debug((()=>["received",e.data]));const t=e.data.length;this.__internal__endpointStats.bytesRecv+=t,this.__internal__stats.total.bytesRecv+=t;const n=JSON.parse(e.data);return(0,c.o)(n.method)?this.__internal__onSocketMessageResult(n):this.__internal__onSocketMessageSubscribe(n)};__internal__onSocketMessageResult=e=>{const t=this.__internal__handlers[e.id];if(t){try{const{method:n,params:r,subscription:a}=t,i=this.__internal__coder.decodeResponse(e);if(t.callback(null,i),a){const e=`${a.type}::${i}`;this.__internal__subscriptions[e]=(0,u.Z)({},a,{method:n,params:r}),this.__internal__waitingForId[e]&&this.__internal__onSocketMessageSubscribe(this.__internal__waitingForId[e])}}catch(n){this.__internal__endpointStats.errors++,this.__internal__stats.total.errors++,t.callback(n,void 0)}delete this.__internal__handlers[e.id]}else V.debug((()=>`Unable to find handler for id=${e.id}`))};__internal__onSocketMessageSubscribe=e=>{if(!e.method)throw new Error("No method found in JSONRPC response");const t=`${P[e.method]||e.method}::${e.params.subscription}`,n=this.__internal__subscriptions[t];if(!n)return this.__internal__waitingForId[t]=e,void V.debug((()=>`Unable to find handler for subscription=${t}`));delete this.__internal__waitingForId[t];try{const t=this.__internal__coder.decodeResponse(e);n.callback(null,t)}catch(r){this.__internal__endpointStats.errors++,this.__internal__stats.total.errors++,n.callback(r,void 0)}};__internal__onSocketOpen=()=>{if(null===this.__internal__websocket)throw new Error("WebSocket cannot be null in onOpen");return V.debug((()=>["connected to",this.endpoint])),this.__internal__isConnected=!0,this.__internal__resubscribe(),this.__internal__emit("connected"),!0};__internal__resubscribe=()=>{const e=this.__internal__subscriptions;this.__internal__subscriptions={},Promise.all(Object.keys(e).map((async t=>{const{callback:n,method:r,params:a,type:i}=e[t];if(!i.startsWith("author_"))try{await this.subscribe(i,r,a,n)}catch(s){V.error(s)}}))).catch(V.error)};__internal__timeoutHandlers=()=>{const e=Date.now(),t=Object.keys(this.__internal__handlers);for(let n=0,r=t.length;nthis.__internal__timeout){try{r.callback(new Error(`No response received from RPC endpoint in ${this.__internal__timeout/1e3}s`),void 0)}catch{}this.__internal__endpointStats.timeout++,this.__internal__stats.total.timeout++,delete this.__internal__handlers[t[n]]}}}}},98657:(e,t,n)=>{"use strict";n.d(t,{cR:()=>s,vc:()=>i});var r=n(51216),a=n(58758);const i="function"==typeof r.t&&"function"==typeof r.t.asIntN,s="function"==typeof a.Ur.Buffer&&"function"==typeof a.Ur.Buffer.isBuffer;a.Ur.process},63707:(e,t,n)=>{"use strict";n.d(t,{G:()=>s});const r="0123456789abcdef",a=new Uint8Array(256),i=new Uint8Array(65536);for(let o=0,c=16;o9&&(a[0|r[o].toUpperCase().charCodeAt(0)]=0|o);for(let o=0;o<256;o++){const e=o<<8;for(let t=0;t<256;t++)i[e|t]=a[o]<<4|a[t]}function s(e,t=-1){if(!e)return new Uint8Array;let n=e.startsWith("0x")?2:0;const r=Math.ceil((e.length-n)/2),a=Math.ceil(-1===t?r:t/8),s=new Uint8Array(a);for(let o=a>r?a-r:0;o{"use strict";function r(e){return"bigint"==typeof e}n.d(t,{C:()=>r})},17003:(e,t,n)=>{"use strict";n.d(t,{H:()=>a});var r=n(13550);function a(e){return r.isBN(e)}},56439:(e,t,n)=>{"use strict";n.d(t,{z:()=>s});var r=n(58758),a=n(98657),i=n(6169);function s(e){return a.cR&&!!e&&(0,i.m)(e.readDoubleLE)&&r.Ur.Buffer.isBuffer(e)}},6169:(e,t,n)=>{"use strict";function r(e){return"function"==typeof e}n.d(t,{m:()=>r})},50075:(e,t,n)=>{"use strict";n.d(t,{F7:()=>i,Sn:()=>s,be:()=>o});var r=n(6169),a=n(21652);function i(...e){return t=>((0,a.K)(t)||(0,r.m)(t))&&e.every((e=>(0,r.m)(t[e])))}function s(...e){return t=>(0,r.m)(t)&&e.every((e=>(0,r.m)(t[e])))}function o(...e){return t=>(0,a.K)(t)&&e.every((e=>(0,r.m)(t[e])))}},51787:(e,t,n)=>{"use strict";n.d(t,{Dh:()=>r,vq:()=>i,y$:()=>a});const r=/^0x[\da-fA-F]+$/,a=/^[\da-fA-F]+$/;function i(e,t=-1,n){return"string"==typeof e&&("0x"===e||r.test(e))&&(-1===t?n||e.length%2==0:e.length===2+Math.ceil(t/4))}},66103:(e,t,n)=>{"use strict";function r(e){return null===e}n.d(t,{F:()=>r})},51482:(e,t,n)=>{"use strict";function r(e){return"number"==typeof e}n.d(t,{h:()=>r})},21652:(e,t,n)=>{"use strict";function r(e){return!!e&&"object"==typeof e}n.d(t,{K:()=>r})},48907:(e,t,n)=>{"use strict";function r(e){return"string"==typeof e||e instanceof String}n.d(t,{H:()=>r})},53554:(e,t,n)=>{"use strict";function r(e){return(e&&e.constructor)===Uint8Array||e instanceof Uint8Array}n.d(t,{U:()=>r})},98278:(e,t,n)=>{"use strict";function r(e){return void 0===e}n.d(t,{o:()=>r})},64992:(e,t,n)=>{"use strict";n.d(t,{k:()=>g});var r=n(58758);function a(e){return e.toString().padStart(2,"0")}var i=n(17003),s=n(56439),o=n(6169),c=n(21652),d=n(53554),u=n(249),l=n(65716),f=n(33667);const p={debug:"log",error:"error",log:"log",warn:"warn"};function h(e){return Array.isArray(e)?e.map(h):(0,i.H)(e)?e.toString():(0,d.U)(e)||(0,s.z)(e)?(0,u.c)((0,l.Y)(e)):function(e){if(e&&(0,c.K)(e)&&e.constructor===Object){const t={};for(const[n,r]of Object.entries(e))t[n]=h(r);return t}return e}(e)}function b(e,t,n,r=-1){if(1===n.length&&(0,o.m)(n[0])){const a=n[0]();return b(e,t,Array.isArray(a)?a:[a],r)}var i,s;console[p[e]](`${(s=new Date).getFullYear().toString()}-${a(s.getMonth()+1)}-${a(s.getDate())} ${a(s.getHours())}:${a(s.getMinutes())}:${a(s.getSeconds())}`,t,...n.map(h).map((i=r,e=>{if(i<=0)return e;const t=`${e}`;return t.lengthb("debug",t,e,a):f.Z,error:(...e)=>b("error",t,e),log:(...e)=>b("log",t,e),noop:f.Z,warn:(...e)=>b("warn",t,e)}}},33667:(e,t,n)=>{"use strict";function r(e){return e}function a(){}n.d(t,{Z:()=>a,y:()=>r})},50273:(e,t,n)=>{"use strict";function r(e,...t){for(let n=0,r=t.length;nr})},56398:(e,t,n)=>{"use strict";n.d(t,{d:()=>s});var r=n(58758);class a{encode(e){const t=e.length,n=new Uint8Array(t);for(let r=0;r{"use strict";n.d(t,{P:()=>i});var r=n(36032);function a(e,t){return(0,r.C)(t)?t.toString():t}function i(e,t){return JSON.stringify(e,a,t)}},249:(e,t,n)=>{"use strict";n.d(t,{c:()=>s});const r=new Array(256),a=new Array(65536);for(let o=0;o<256;o++)r[o]=o.toString(16).padStart(2,"0");for(let o=0;o<256;o++){const e=o<<8;for(let t=0;t<256;t++)a[e|t]=r[o]+r[t]}function i(e,t){const n=e.length%2|0,i=e.length-n|0;for(let r=0;r0){const n=Math.ceil(t/8);if(e.length>n)return`${i(e.subarray(0,n/2),r)}\u2026${i(e.subarray(e.length-n/2),"")}`}return i(e,r)}},65716:(e,t,n)=>{"use strict";n.d(t,{Y:()=>c});var r=n(63707),a=n(56439),i=n(51787),s=n(53554),o=n(56398);function c(e){return(0,s.U)(e)?(0,a.z)(e)?new Uint8Array(e):e:(0,i.vq)(e)?(0,r.G)(e):Array.isArray(e)?new Uint8Array(e):(0,o.d)(e)}},51216:(e,t,n)=>{"use strict";function r(){return Number.NaN}n.d(t,{t:()=>a});const a=(0,n(58758).o)("BigInt",r)},58758:(e,t,n)=>{"use strict";n.d(t,{Ur:()=>r,o:()=>a});const r="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:Function("return this");function a(e,t){return void 0===r[e]?t:r[e]}},54146:(e,t,n)=>{"use strict";n.d(t,{v:()=>r});var r=n(26729)}}]); \ No newline at end of file diff --git a/assets/js/5424.e7b21dd1.js.LICENSE.txt b/assets/js/5424.57902f93.js.LICENSE.txt similarity index 100% rename from assets/js/5424.e7b21dd1.js.LICENSE.txt rename to assets/js/5424.57902f93.js.LICENSE.txt diff --git a/assets/js/5424.e7b21dd1.js b/assets/js/5424.e7b21dd1.js deleted file mode 100644 index 2d7ea12866..0000000000 --- a/assets/js/5424.e7b21dd1.js +++ /dev/null @@ -1,2 +0,0 @@ -/*! For license information please see 5424.e7b21dd1.js.LICENSE.txt */ -(self.webpackChunk=self.webpackChunk||[]).push([[5424],{3905:(e,t,n)=>{"use strict";n.d(t,{Zo:()=>u,kt:()=>h});var r=n(67294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function s(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var c=r.createContext({}),d=function(e){var t=r.useContext(c),n=t;return e&&(n="function"==typeof e?e(t):s(s({},t),e)),n},u=function(e){var t=d(e.components);return r.createElement(c.Provider,{value:t},e.children)},l="mdxType",f={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},p=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,i=e.originalType,c=e.parentName,u=o(e,["components","mdxType","originalType","parentName"]),l=d(n),p=a,h=l["".concat(c,".").concat(p)]||l[p]||f[p]||i;return n?r.createElement(h,s(s({ref:t},u),{},{components:n})):r.createElement(h,s({ref:t},u))}));function h(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var i=n.length,s=new Array(i);s[0]=p;var o={};for(var c in t)hasOwnProperty.call(t,c)&&(o[c]=t[c]);o.originalType=e,o[l]="string"==typeof e?e:a,s[1]=o;for(var d=2;d=48&&n<=57?n-48:n>=65&&n<=70?n-55:n>=97&&n<=102?n-87:void r(!1,"Invalid character in "+e)}function c(e,t,n){var r=o(e,n);return n-1>=t&&(r|=o(e,n-1)<<4),r}function d(e,t,n,a){for(var i=0,s=0,o=Math.min(e.length,n),c=t;c=49?d-49+10:d>=17?d-17+10:d,r(d>=0&&s0?e:t},i.min=function(e,t){return e.cmp(t)<0?e:t},i.prototype._init=function(e,t,n){if("number"==typeof e)return this._initNumber(e,t,n);if("object"==typeof e)return this._initArray(e,t,n);"hex"===t&&(t=16),r(t===(0|t)&&t>=2&&t<=36);var a=0;"-"===(e=e.toString().replace(/\s+/g,""))[0]&&(a++,this.negative=1),a=0;a-=3)s=e[a]|e[a-1]<<8|e[a-2]<<16,this.words[i]|=s<>>26-o&67108863,(o+=24)>=26&&(o-=26,i++);else if("le"===n)for(a=0,i=0;a>>26-o&67108863,(o+=24)>=26&&(o-=26,i++);return this._strip()},i.prototype._parseHex=function(e,t,n){this.length=Math.ceil((e.length-t)/6),this.words=new Array(this.length);for(var r=0;r=t;r-=2)a=c(e,t,r)<=18?(i-=18,s+=1,this.words[s]|=a>>>26):i+=8;else for(r=(e.length-t)%2==0?t+1:t;r=18?(i-=18,s+=1,this.words[s]|=a>>>26):i+=8;this._strip()},i.prototype._parseBase=function(e,t,n){this.words=[0],this.length=1;for(var r=0,a=1;a<=67108863;a*=t)r++;r--,a=a/t|0;for(var i=e.length-n,s=i%r,o=Math.min(i,i-s)+n,c=0,u=n;u1&&0===this.words[this.length-1];)this.length--;return this._normSign()},i.prototype._normSign=function(){return 1===this.length&&0===this.words[0]&&(this.negative=0),this},"undefined"!=typeof Symbol&&"function"==typeof Symbol.for)try{i.prototype[Symbol.for("nodejs.util.inspect.custom")]=l}catch(_){i.prototype.inspect=l}else i.prototype.inspect=l;function l(){return(this.red?""}var f=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],p=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],h=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64e6,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,243e5,28629151,33554432,39135393,45435424,52521875,60466176];i.prototype.toString=function(e,t){var n;if(t=0|t||1,16===(e=e||10)||"hex"===e){n="";for(var a=0,i=0,s=0;s>>24-a&16777215,(a+=2)>=26&&(a-=26,s--),n=0!==i||s!==this.length-1?f[6-c.length]+c+n:c+n}for(0!==i&&(n=i.toString(16)+n);n.length%t!=0;)n="0"+n;return 0!==this.negative&&(n="-"+n),n}if(e===(0|e)&&e>=2&&e<=36){var d=p[e],u=h[e];n="";var l=this.clone();for(l.negative=0;!l.isZero();){var b=l.modrn(u).toString(e);n=(l=l.idivn(u)).isZero()?b+n:f[d-b.length]+b+n}for(this.isZero()&&(n="0"+n);n.length%t!=0;)n="0"+n;return 0!==this.negative&&(n="-"+n),n}r(!1,"Base should be between 2 and 36")},i.prototype.toNumber=function(){var e=this.words[0];return 2===this.length?e+=67108864*this.words[1]:3===this.length&&1===this.words[2]?e+=4503599627370496+67108864*this.words[1]:this.length>2&&r(!1,"Number can only safely store up to 53 bits"),0!==this.negative?-e:e},i.prototype.toJSON=function(){return this.toString(16,2)},s&&(i.prototype.toBuffer=function(e,t){return this.toArrayLike(s,e,t)}),i.prototype.toArray=function(e,t){return this.toArrayLike(Array,e,t)};function b(e,t,n){n.negative=t.negative^e.negative;var r=e.length+t.length|0;n.length=r,r=r-1|0;var a=0|e.words[0],i=0|t.words[0],s=a*i,o=67108863&s,c=s/67108864|0;n.words[0]=o;for(var d=1;d>>26,l=67108863&c,f=Math.min(d,t.length-1),p=Math.max(0,d-e.length+1);p<=f;p++){var h=d-p|0;u+=(s=(a=0|e.words[h])*(i=0|t.words[p])+l)/67108864|0,l=67108863&s}n.words[d]=0|l,c=0|u}return 0!==c?n.words[d]=0|c:n.length--,n._strip()}i.prototype.toArrayLike=function(e,t,n){this._strip();var a=this.byteLength(),i=n||Math.max(1,a);r(a<=i,"byte array longer than desired length"),r(i>0,"Requested array length <= 0");var s=function(e,t){return e.allocUnsafe?e.allocUnsafe(t):new e(t)}(e,i);return this["_toArrayLike"+("le"===t?"LE":"BE")](s,a),s},i.prototype._toArrayLikeLE=function(e,t){for(var n=0,r=0,a=0,i=0;a>8&255),n>16&255),6===i?(n>24&255),r=0,i=0):(r=s>>>24,i+=2)}if(n=0&&(e[n--]=s>>8&255),n>=0&&(e[n--]=s>>16&255),6===i?(n>=0&&(e[n--]=s>>24&255),r=0,i=0):(r=s>>>24,i+=2)}if(n>=0)for(e[n--]=r;n>=0;)e[n--]=0},Math.clz32?i.prototype._countBits=function(e){return 32-Math.clz32(e)}:i.prototype._countBits=function(e){var t=e,n=0;return t>=4096&&(n+=13,t>>>=13),t>=64&&(n+=7,t>>>=7),t>=8&&(n+=4,t>>>=4),t>=2&&(n+=2,t>>>=2),n+t},i.prototype._zeroBits=function(e){if(0===e)return 26;var t=e,n=0;return 0==(8191&t)&&(n+=13,t>>>=13),0==(127&t)&&(n+=7,t>>>=7),0==(15&t)&&(n+=4,t>>>=4),0==(3&t)&&(n+=2,t>>>=2),0==(1&t)&&n++,n},i.prototype.bitLength=function(){var e=this.words[this.length-1],t=this._countBits(e);return 26*(this.length-1)+t},i.prototype.zeroBits=function(){if(this.isZero())return 0;for(var e=0,t=0;te.length?this.clone().ior(e):e.clone().ior(this)},i.prototype.uor=function(e){return this.length>e.length?this.clone().iuor(e):e.clone().iuor(this)},i.prototype.iuand=function(e){var t;t=this.length>e.length?e:this;for(var n=0;ne.length?this.clone().iand(e):e.clone().iand(this)},i.prototype.uand=function(e){return this.length>e.length?this.clone().iuand(e):e.clone().iuand(this)},i.prototype.iuxor=function(e){var t,n;this.length>e.length?(t=this,n=e):(t=e,n=this);for(var r=0;re.length?this.clone().ixor(e):e.clone().ixor(this)},i.prototype.uxor=function(e){return this.length>e.length?this.clone().iuxor(e):e.clone().iuxor(this)},i.prototype.inotn=function(e){r("number"==typeof e&&e>=0);var t=0|Math.ceil(e/26),n=e%26;this._expand(t),n>0&&t--;for(var a=0;a0&&(this.words[a]=~this.words[a]&67108863>>26-n),this._strip()},i.prototype.notn=function(e){return this.clone().inotn(e)},i.prototype.setn=function(e,t){r("number"==typeof e&&e>=0);var n=e/26|0,a=e%26;return this._expand(n+1),this.words[n]=t?this.words[n]|1<e.length?(n=this,r=e):(n=e,r=this);for(var a=0,i=0;i>>26;for(;0!==a&&i>>26;if(this.length=n.length,0!==a)this.words[this.length]=a,this.length++;else if(n!==this)for(;ie.length?this.clone().iadd(e):e.clone().iadd(this)},i.prototype.isub=function(e){if(0!==e.negative){e.negative=0;var t=this.iadd(e);return e.negative=1,t._normSign()}if(0!==this.negative)return this.negative=0,this.iadd(e),this.negative=1,this._normSign();var n,r,a=this.cmp(e);if(0===a)return this.negative=0,this.length=1,this.words[0]=0,this;a>0?(n=this,r=e):(n=e,r=this);for(var i=0,s=0;s>26,this.words[s]=67108863&t;for(;0!==i&&s>26,this.words[s]=67108863&t;if(0===i&&s>>13,p=0|s[1],h=8191&p,b=p>>>13,m=0|s[2],y=8191&m,x=m>>>13,g=0|s[3],v=8191&g,w=g>>>13,S=0|s[4],k=8191&S,T=S>>>13,P=0|s[5],V=8191&P,M=P>>>13,_=0|s[6],I=8191&_,O=_>>>13,N=0|s[7],E=8191&N,C=N>>>13,A=0|s[8],H=8191&A,R=A>>>13,B=0|s[9],L=8191&B,U=B>>>13,z=0|o[0],D=8191&z,q=z>>>13,j=0|o[1],F=8191&j,X=j>>>13,W=0|o[2],Z=8191&W,G=W>>>13,K=0|o[3],Y=8191&K,J=K>>>13,Q=0|o[4],$=8191&Q,ee=Q>>>13,te=0|o[5],ne=8191&te,re=te>>>13,ae=0|o[6],ie=8191&ae,se=ae>>>13,oe=0|o[7],ce=8191&oe,de=oe>>>13,ue=0|o[8],le=8191&ue,fe=ue>>>13,pe=0|o[9],he=8191&pe,be=pe>>>13;n.negative=e.negative^t.negative,n.length=19;var me=(d+(r=Math.imul(l,D))|0)+((8191&(a=(a=Math.imul(l,q))+Math.imul(f,D)|0))<<13)|0;d=((i=Math.imul(f,q))+(a>>>13)|0)+(me>>>26)|0,me&=67108863,r=Math.imul(h,D),a=(a=Math.imul(h,q))+Math.imul(b,D)|0,i=Math.imul(b,q);var ye=(d+(r=r+Math.imul(l,F)|0)|0)+((8191&(a=(a=a+Math.imul(l,X)|0)+Math.imul(f,F)|0))<<13)|0;d=((i=i+Math.imul(f,X)|0)+(a>>>13)|0)+(ye>>>26)|0,ye&=67108863,r=Math.imul(y,D),a=(a=Math.imul(y,q))+Math.imul(x,D)|0,i=Math.imul(x,q),r=r+Math.imul(h,F)|0,a=(a=a+Math.imul(h,X)|0)+Math.imul(b,F)|0,i=i+Math.imul(b,X)|0;var xe=(d+(r=r+Math.imul(l,Z)|0)|0)+((8191&(a=(a=a+Math.imul(l,G)|0)+Math.imul(f,Z)|0))<<13)|0;d=((i=i+Math.imul(f,G)|0)+(a>>>13)|0)+(xe>>>26)|0,xe&=67108863,r=Math.imul(v,D),a=(a=Math.imul(v,q))+Math.imul(w,D)|0,i=Math.imul(w,q),r=r+Math.imul(y,F)|0,a=(a=a+Math.imul(y,X)|0)+Math.imul(x,F)|0,i=i+Math.imul(x,X)|0,r=r+Math.imul(h,Z)|0,a=(a=a+Math.imul(h,G)|0)+Math.imul(b,Z)|0,i=i+Math.imul(b,G)|0;var ge=(d+(r=r+Math.imul(l,Y)|0)|0)+((8191&(a=(a=a+Math.imul(l,J)|0)+Math.imul(f,Y)|0))<<13)|0;d=((i=i+Math.imul(f,J)|0)+(a>>>13)|0)+(ge>>>26)|0,ge&=67108863,r=Math.imul(k,D),a=(a=Math.imul(k,q))+Math.imul(T,D)|0,i=Math.imul(T,q),r=r+Math.imul(v,F)|0,a=(a=a+Math.imul(v,X)|0)+Math.imul(w,F)|0,i=i+Math.imul(w,X)|0,r=r+Math.imul(y,Z)|0,a=(a=a+Math.imul(y,G)|0)+Math.imul(x,Z)|0,i=i+Math.imul(x,G)|0,r=r+Math.imul(h,Y)|0,a=(a=a+Math.imul(h,J)|0)+Math.imul(b,Y)|0,i=i+Math.imul(b,J)|0;var ve=(d+(r=r+Math.imul(l,$)|0)|0)+((8191&(a=(a=a+Math.imul(l,ee)|0)+Math.imul(f,$)|0))<<13)|0;d=((i=i+Math.imul(f,ee)|0)+(a>>>13)|0)+(ve>>>26)|0,ve&=67108863,r=Math.imul(V,D),a=(a=Math.imul(V,q))+Math.imul(M,D)|0,i=Math.imul(M,q),r=r+Math.imul(k,F)|0,a=(a=a+Math.imul(k,X)|0)+Math.imul(T,F)|0,i=i+Math.imul(T,X)|0,r=r+Math.imul(v,Z)|0,a=(a=a+Math.imul(v,G)|0)+Math.imul(w,Z)|0,i=i+Math.imul(w,G)|0,r=r+Math.imul(y,Y)|0,a=(a=a+Math.imul(y,J)|0)+Math.imul(x,Y)|0,i=i+Math.imul(x,J)|0,r=r+Math.imul(h,$)|0,a=(a=a+Math.imul(h,ee)|0)+Math.imul(b,$)|0,i=i+Math.imul(b,ee)|0;var we=(d+(r=r+Math.imul(l,ne)|0)|0)+((8191&(a=(a=a+Math.imul(l,re)|0)+Math.imul(f,ne)|0))<<13)|0;d=((i=i+Math.imul(f,re)|0)+(a>>>13)|0)+(we>>>26)|0,we&=67108863,r=Math.imul(I,D),a=(a=Math.imul(I,q))+Math.imul(O,D)|0,i=Math.imul(O,q),r=r+Math.imul(V,F)|0,a=(a=a+Math.imul(V,X)|0)+Math.imul(M,F)|0,i=i+Math.imul(M,X)|0,r=r+Math.imul(k,Z)|0,a=(a=a+Math.imul(k,G)|0)+Math.imul(T,Z)|0,i=i+Math.imul(T,G)|0,r=r+Math.imul(v,Y)|0,a=(a=a+Math.imul(v,J)|0)+Math.imul(w,Y)|0,i=i+Math.imul(w,J)|0,r=r+Math.imul(y,$)|0,a=(a=a+Math.imul(y,ee)|0)+Math.imul(x,$)|0,i=i+Math.imul(x,ee)|0,r=r+Math.imul(h,ne)|0,a=(a=a+Math.imul(h,re)|0)+Math.imul(b,ne)|0,i=i+Math.imul(b,re)|0;var Se=(d+(r=r+Math.imul(l,ie)|0)|0)+((8191&(a=(a=a+Math.imul(l,se)|0)+Math.imul(f,ie)|0))<<13)|0;d=((i=i+Math.imul(f,se)|0)+(a>>>13)|0)+(Se>>>26)|0,Se&=67108863,r=Math.imul(E,D),a=(a=Math.imul(E,q))+Math.imul(C,D)|0,i=Math.imul(C,q),r=r+Math.imul(I,F)|0,a=(a=a+Math.imul(I,X)|0)+Math.imul(O,F)|0,i=i+Math.imul(O,X)|0,r=r+Math.imul(V,Z)|0,a=(a=a+Math.imul(V,G)|0)+Math.imul(M,Z)|0,i=i+Math.imul(M,G)|0,r=r+Math.imul(k,Y)|0,a=(a=a+Math.imul(k,J)|0)+Math.imul(T,Y)|0,i=i+Math.imul(T,J)|0,r=r+Math.imul(v,$)|0,a=(a=a+Math.imul(v,ee)|0)+Math.imul(w,$)|0,i=i+Math.imul(w,ee)|0,r=r+Math.imul(y,ne)|0,a=(a=a+Math.imul(y,re)|0)+Math.imul(x,ne)|0,i=i+Math.imul(x,re)|0,r=r+Math.imul(h,ie)|0,a=(a=a+Math.imul(h,se)|0)+Math.imul(b,ie)|0,i=i+Math.imul(b,se)|0;var ke=(d+(r=r+Math.imul(l,ce)|0)|0)+((8191&(a=(a=a+Math.imul(l,de)|0)+Math.imul(f,ce)|0))<<13)|0;d=((i=i+Math.imul(f,de)|0)+(a>>>13)|0)+(ke>>>26)|0,ke&=67108863,r=Math.imul(H,D),a=(a=Math.imul(H,q))+Math.imul(R,D)|0,i=Math.imul(R,q),r=r+Math.imul(E,F)|0,a=(a=a+Math.imul(E,X)|0)+Math.imul(C,F)|0,i=i+Math.imul(C,X)|0,r=r+Math.imul(I,Z)|0,a=(a=a+Math.imul(I,G)|0)+Math.imul(O,Z)|0,i=i+Math.imul(O,G)|0,r=r+Math.imul(V,Y)|0,a=(a=a+Math.imul(V,J)|0)+Math.imul(M,Y)|0,i=i+Math.imul(M,J)|0,r=r+Math.imul(k,$)|0,a=(a=a+Math.imul(k,ee)|0)+Math.imul(T,$)|0,i=i+Math.imul(T,ee)|0,r=r+Math.imul(v,ne)|0,a=(a=a+Math.imul(v,re)|0)+Math.imul(w,ne)|0,i=i+Math.imul(w,re)|0,r=r+Math.imul(y,ie)|0,a=(a=a+Math.imul(y,se)|0)+Math.imul(x,ie)|0,i=i+Math.imul(x,se)|0,r=r+Math.imul(h,ce)|0,a=(a=a+Math.imul(h,de)|0)+Math.imul(b,ce)|0,i=i+Math.imul(b,de)|0;var Te=(d+(r=r+Math.imul(l,le)|0)|0)+((8191&(a=(a=a+Math.imul(l,fe)|0)+Math.imul(f,le)|0))<<13)|0;d=((i=i+Math.imul(f,fe)|0)+(a>>>13)|0)+(Te>>>26)|0,Te&=67108863,r=Math.imul(L,D),a=(a=Math.imul(L,q))+Math.imul(U,D)|0,i=Math.imul(U,q),r=r+Math.imul(H,F)|0,a=(a=a+Math.imul(H,X)|0)+Math.imul(R,F)|0,i=i+Math.imul(R,X)|0,r=r+Math.imul(E,Z)|0,a=(a=a+Math.imul(E,G)|0)+Math.imul(C,Z)|0,i=i+Math.imul(C,G)|0,r=r+Math.imul(I,Y)|0,a=(a=a+Math.imul(I,J)|0)+Math.imul(O,Y)|0,i=i+Math.imul(O,J)|0,r=r+Math.imul(V,$)|0,a=(a=a+Math.imul(V,ee)|0)+Math.imul(M,$)|0,i=i+Math.imul(M,ee)|0,r=r+Math.imul(k,ne)|0,a=(a=a+Math.imul(k,re)|0)+Math.imul(T,ne)|0,i=i+Math.imul(T,re)|0,r=r+Math.imul(v,ie)|0,a=(a=a+Math.imul(v,se)|0)+Math.imul(w,ie)|0,i=i+Math.imul(w,se)|0,r=r+Math.imul(y,ce)|0,a=(a=a+Math.imul(y,de)|0)+Math.imul(x,ce)|0,i=i+Math.imul(x,de)|0,r=r+Math.imul(h,le)|0,a=(a=a+Math.imul(h,fe)|0)+Math.imul(b,le)|0,i=i+Math.imul(b,fe)|0;var Pe=(d+(r=r+Math.imul(l,he)|0)|0)+((8191&(a=(a=a+Math.imul(l,be)|0)+Math.imul(f,he)|0))<<13)|0;d=((i=i+Math.imul(f,be)|0)+(a>>>13)|0)+(Pe>>>26)|0,Pe&=67108863,r=Math.imul(L,F),a=(a=Math.imul(L,X))+Math.imul(U,F)|0,i=Math.imul(U,X),r=r+Math.imul(H,Z)|0,a=(a=a+Math.imul(H,G)|0)+Math.imul(R,Z)|0,i=i+Math.imul(R,G)|0,r=r+Math.imul(E,Y)|0,a=(a=a+Math.imul(E,J)|0)+Math.imul(C,Y)|0,i=i+Math.imul(C,J)|0,r=r+Math.imul(I,$)|0,a=(a=a+Math.imul(I,ee)|0)+Math.imul(O,$)|0,i=i+Math.imul(O,ee)|0,r=r+Math.imul(V,ne)|0,a=(a=a+Math.imul(V,re)|0)+Math.imul(M,ne)|0,i=i+Math.imul(M,re)|0,r=r+Math.imul(k,ie)|0,a=(a=a+Math.imul(k,se)|0)+Math.imul(T,ie)|0,i=i+Math.imul(T,se)|0,r=r+Math.imul(v,ce)|0,a=(a=a+Math.imul(v,de)|0)+Math.imul(w,ce)|0,i=i+Math.imul(w,de)|0,r=r+Math.imul(y,le)|0,a=(a=a+Math.imul(y,fe)|0)+Math.imul(x,le)|0,i=i+Math.imul(x,fe)|0;var Ve=(d+(r=r+Math.imul(h,he)|0)|0)+((8191&(a=(a=a+Math.imul(h,be)|0)+Math.imul(b,he)|0))<<13)|0;d=((i=i+Math.imul(b,be)|0)+(a>>>13)|0)+(Ve>>>26)|0,Ve&=67108863,r=Math.imul(L,Z),a=(a=Math.imul(L,G))+Math.imul(U,Z)|0,i=Math.imul(U,G),r=r+Math.imul(H,Y)|0,a=(a=a+Math.imul(H,J)|0)+Math.imul(R,Y)|0,i=i+Math.imul(R,J)|0,r=r+Math.imul(E,$)|0,a=(a=a+Math.imul(E,ee)|0)+Math.imul(C,$)|0,i=i+Math.imul(C,ee)|0,r=r+Math.imul(I,ne)|0,a=(a=a+Math.imul(I,re)|0)+Math.imul(O,ne)|0,i=i+Math.imul(O,re)|0,r=r+Math.imul(V,ie)|0,a=(a=a+Math.imul(V,se)|0)+Math.imul(M,ie)|0,i=i+Math.imul(M,se)|0,r=r+Math.imul(k,ce)|0,a=(a=a+Math.imul(k,de)|0)+Math.imul(T,ce)|0,i=i+Math.imul(T,de)|0,r=r+Math.imul(v,le)|0,a=(a=a+Math.imul(v,fe)|0)+Math.imul(w,le)|0,i=i+Math.imul(w,fe)|0;var Me=(d+(r=r+Math.imul(y,he)|0)|0)+((8191&(a=(a=a+Math.imul(y,be)|0)+Math.imul(x,he)|0))<<13)|0;d=((i=i+Math.imul(x,be)|0)+(a>>>13)|0)+(Me>>>26)|0,Me&=67108863,r=Math.imul(L,Y),a=(a=Math.imul(L,J))+Math.imul(U,Y)|0,i=Math.imul(U,J),r=r+Math.imul(H,$)|0,a=(a=a+Math.imul(H,ee)|0)+Math.imul(R,$)|0,i=i+Math.imul(R,ee)|0,r=r+Math.imul(E,ne)|0,a=(a=a+Math.imul(E,re)|0)+Math.imul(C,ne)|0,i=i+Math.imul(C,re)|0,r=r+Math.imul(I,ie)|0,a=(a=a+Math.imul(I,se)|0)+Math.imul(O,ie)|0,i=i+Math.imul(O,se)|0,r=r+Math.imul(V,ce)|0,a=(a=a+Math.imul(V,de)|0)+Math.imul(M,ce)|0,i=i+Math.imul(M,de)|0,r=r+Math.imul(k,le)|0,a=(a=a+Math.imul(k,fe)|0)+Math.imul(T,le)|0,i=i+Math.imul(T,fe)|0;var _e=(d+(r=r+Math.imul(v,he)|0)|0)+((8191&(a=(a=a+Math.imul(v,be)|0)+Math.imul(w,he)|0))<<13)|0;d=((i=i+Math.imul(w,be)|0)+(a>>>13)|0)+(_e>>>26)|0,_e&=67108863,r=Math.imul(L,$),a=(a=Math.imul(L,ee))+Math.imul(U,$)|0,i=Math.imul(U,ee),r=r+Math.imul(H,ne)|0,a=(a=a+Math.imul(H,re)|0)+Math.imul(R,ne)|0,i=i+Math.imul(R,re)|0,r=r+Math.imul(E,ie)|0,a=(a=a+Math.imul(E,se)|0)+Math.imul(C,ie)|0,i=i+Math.imul(C,se)|0,r=r+Math.imul(I,ce)|0,a=(a=a+Math.imul(I,de)|0)+Math.imul(O,ce)|0,i=i+Math.imul(O,de)|0,r=r+Math.imul(V,le)|0,a=(a=a+Math.imul(V,fe)|0)+Math.imul(M,le)|0,i=i+Math.imul(M,fe)|0;var Ie=(d+(r=r+Math.imul(k,he)|0)|0)+((8191&(a=(a=a+Math.imul(k,be)|0)+Math.imul(T,he)|0))<<13)|0;d=((i=i+Math.imul(T,be)|0)+(a>>>13)|0)+(Ie>>>26)|0,Ie&=67108863,r=Math.imul(L,ne),a=(a=Math.imul(L,re))+Math.imul(U,ne)|0,i=Math.imul(U,re),r=r+Math.imul(H,ie)|0,a=(a=a+Math.imul(H,se)|0)+Math.imul(R,ie)|0,i=i+Math.imul(R,se)|0,r=r+Math.imul(E,ce)|0,a=(a=a+Math.imul(E,de)|0)+Math.imul(C,ce)|0,i=i+Math.imul(C,de)|0,r=r+Math.imul(I,le)|0,a=(a=a+Math.imul(I,fe)|0)+Math.imul(O,le)|0,i=i+Math.imul(O,fe)|0;var Oe=(d+(r=r+Math.imul(V,he)|0)|0)+((8191&(a=(a=a+Math.imul(V,be)|0)+Math.imul(M,he)|0))<<13)|0;d=((i=i+Math.imul(M,be)|0)+(a>>>13)|0)+(Oe>>>26)|0,Oe&=67108863,r=Math.imul(L,ie),a=(a=Math.imul(L,se))+Math.imul(U,ie)|0,i=Math.imul(U,se),r=r+Math.imul(H,ce)|0,a=(a=a+Math.imul(H,de)|0)+Math.imul(R,ce)|0,i=i+Math.imul(R,de)|0,r=r+Math.imul(E,le)|0,a=(a=a+Math.imul(E,fe)|0)+Math.imul(C,le)|0,i=i+Math.imul(C,fe)|0;var Ne=(d+(r=r+Math.imul(I,he)|0)|0)+((8191&(a=(a=a+Math.imul(I,be)|0)+Math.imul(O,he)|0))<<13)|0;d=((i=i+Math.imul(O,be)|0)+(a>>>13)|0)+(Ne>>>26)|0,Ne&=67108863,r=Math.imul(L,ce),a=(a=Math.imul(L,de))+Math.imul(U,ce)|0,i=Math.imul(U,de),r=r+Math.imul(H,le)|0,a=(a=a+Math.imul(H,fe)|0)+Math.imul(R,le)|0,i=i+Math.imul(R,fe)|0;var Ee=(d+(r=r+Math.imul(E,he)|0)|0)+((8191&(a=(a=a+Math.imul(E,be)|0)+Math.imul(C,he)|0))<<13)|0;d=((i=i+Math.imul(C,be)|0)+(a>>>13)|0)+(Ee>>>26)|0,Ee&=67108863,r=Math.imul(L,le),a=(a=Math.imul(L,fe))+Math.imul(U,le)|0,i=Math.imul(U,fe);var Ce=(d+(r=r+Math.imul(H,he)|0)|0)+((8191&(a=(a=a+Math.imul(H,be)|0)+Math.imul(R,he)|0))<<13)|0;d=((i=i+Math.imul(R,be)|0)+(a>>>13)|0)+(Ce>>>26)|0,Ce&=67108863;var Ae=(d+(r=Math.imul(L,he))|0)+((8191&(a=(a=Math.imul(L,be))+Math.imul(U,he)|0))<<13)|0;return d=((i=Math.imul(U,be))+(a>>>13)|0)+(Ae>>>26)|0,Ae&=67108863,c[0]=me,c[1]=ye,c[2]=xe,c[3]=ge,c[4]=ve,c[5]=we,c[6]=Se,c[7]=ke,c[8]=Te,c[9]=Pe,c[10]=Ve,c[11]=Me,c[12]=_e,c[13]=Ie,c[14]=Oe,c[15]=Ne,c[16]=Ee,c[17]=Ce,c[18]=Ae,0!==d&&(c[19]=d,n.length++),n};function y(e,t,n){n.negative=t.negative^e.negative,n.length=e.length+t.length;for(var r=0,a=0,i=0;i>>26)|0)>>>26,s&=67108863}n.words[i]=o,r=s,s=a}return 0!==r?n.words[i]=r:n.length--,n._strip()}function x(e,t,n){return y(e,t,n)}function g(e,t){this.x=e,this.y=t}Math.imul||(m=b),i.prototype.mulTo=function(e,t){var n=this.length+e.length;return 10===this.length&&10===e.length?m(this,e,t):n<63?b(this,e,t):n<1024?y(this,e,t):x(this,e,t)},g.prototype.makeRBT=function(e){for(var t=new Array(e),n=i.prototype._countBits(e)-1,r=0;r>=1;return r},g.prototype.permute=function(e,t,n,r,a,i){for(var s=0;s>>=1)a++;return 1<>>=13,n[2*s+1]=8191&i,i>>>=13;for(s=2*t;s>=26,n+=i/67108864|0,n+=s>>>26,this.words[a]=67108863&s}return 0!==n&&(this.words[a]=n,this.length++),t?this.ineg():this},i.prototype.muln=function(e){return this.clone().imuln(e)},i.prototype.sqr=function(){return this.mul(this)},i.prototype.isqr=function(){return this.imul(this.clone())},i.prototype.pow=function(e){var t=function(e){for(var t=new Array(e.bitLength()),n=0;n>>a&1}return t}(e);if(0===t.length)return new i(1);for(var n=this,r=0;r=0);var t,n=e%26,a=(e-n)/26,i=67108863>>>26-n<<26-n;if(0!==n){var s=0;for(t=0;t>>26-n}s&&(this.words[t]=s,this.length++)}if(0!==a){for(t=this.length-1;t>=0;t--)this.words[t+a]=this.words[t];for(t=0;t=0),a=t?(t-t%26)/26:0;var i=e%26,s=Math.min((e-i)/26,this.length),o=67108863^67108863>>>i<s)for(this.length-=s,d=0;d=0&&(0!==u||d>=a);d--){var l=0|this.words[d];this.words[d]=u<<26-i|l>>>i,u=l&o}return c&&0!==u&&(c.words[c.length++]=u),0===this.length&&(this.words[0]=0,this.length=1),this._strip()},i.prototype.ishrn=function(e,t,n){return r(0===this.negative),this.iushrn(e,t,n)},i.prototype.shln=function(e){return this.clone().ishln(e)},i.prototype.ushln=function(e){return this.clone().iushln(e)},i.prototype.shrn=function(e){return this.clone().ishrn(e)},i.prototype.ushrn=function(e){return this.clone().iushrn(e)},i.prototype.testn=function(e){r("number"==typeof e&&e>=0);var t=e%26,n=(e-t)/26,a=1<=0);var t=e%26,n=(e-t)/26;if(r(0===this.negative,"imaskn works only with positive numbers"),this.length<=n)return this;if(0!==t&&n++,this.length=Math.min(n,this.length),0!==t){var a=67108863^67108863>>>t<=67108864;t++)this.words[t]-=67108864,t===this.length-1?this.words[t+1]=1:this.words[t+1]++;return this.length=Math.max(this.length,t+1),this},i.prototype.isubn=function(e){if(r("number"==typeof e),r(e<67108864),e<0)return this.iaddn(-e);if(0!==this.negative)return this.negative=0,this.iaddn(e),this.negative=1,this;if(this.words[0]-=e,1===this.length&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var t=0;t>26)-(c/67108864|0),this.words[a+n]=67108863&i}for(;a>26,this.words[a+n]=67108863&i;if(0===o)return this._strip();for(r(-1===o),o=0,a=0;a>26,this.words[a]=67108863&i;return this.negative=1,this._strip()},i.prototype._wordDiv=function(e,t){var n=(this.length,e.length),r=this.clone(),a=e,s=0|a.words[a.length-1];0!==(n=26-this._countBits(s))&&(a=a.ushln(n),r.iushln(n),s=0|a.words[a.length-1]);var o,c=r.length-a.length;if("mod"!==t){(o=new i(null)).length=c+1,o.words=new Array(o.length);for(var d=0;d=0;l--){var f=67108864*(0|r.words[a.length+l])+(0|r.words[a.length+l-1]);for(f=Math.min(f/s|0,67108863),r._ishlnsubmul(a,f,l);0!==r.negative;)f--,r.negative=0,r._ishlnsubmul(a,1,l),r.isZero()||(r.negative^=1);o&&(o.words[l]=f)}return o&&o._strip(),r._strip(),"div"!==t&&0!==n&&r.iushrn(n),{div:o||null,mod:r}},i.prototype.divmod=function(e,t,n){return r(!e.isZero()),this.isZero()?{div:new i(0),mod:new i(0)}:0!==this.negative&&0===e.negative?(o=this.neg().divmod(e,t),"mod"!==t&&(a=o.div.neg()),"div"!==t&&(s=o.mod.neg(),n&&0!==s.negative&&s.iadd(e)),{div:a,mod:s}):0===this.negative&&0!==e.negative?(o=this.divmod(e.neg(),t),"mod"!==t&&(a=o.div.neg()),{div:a,mod:o.mod}):0!=(this.negative&e.negative)?(o=this.neg().divmod(e.neg(),t),"div"!==t&&(s=o.mod.neg(),n&&0!==s.negative&&s.isub(e)),{div:o.div,mod:s}):e.length>this.length||this.cmp(e)<0?{div:new i(0),mod:this}:1===e.length?"div"===t?{div:this.divn(e.words[0]),mod:null}:"mod"===t?{div:null,mod:new i(this.modrn(e.words[0]))}:{div:this.divn(e.words[0]),mod:new i(this.modrn(e.words[0]))}:this._wordDiv(e,t);var a,s,o},i.prototype.div=function(e){return this.divmod(e,"div",!1).div},i.prototype.mod=function(e){return this.divmod(e,"mod",!1).mod},i.prototype.umod=function(e){return this.divmod(e,"mod",!0).mod},i.prototype.divRound=function(e){var t=this.divmod(e);if(t.mod.isZero())return t.div;var n=0!==t.div.negative?t.mod.isub(e):t.mod,r=e.ushrn(1),a=e.andln(1),i=n.cmp(r);return i<0||1===a&&0===i?t.div:0!==t.div.negative?t.div.isubn(1):t.div.iaddn(1)},i.prototype.modrn=function(e){var t=e<0;t&&(e=-e),r(e<=67108863);for(var n=(1<<26)%e,a=0,i=this.length-1;i>=0;i--)a=(n*a+(0|this.words[i]))%e;return t?-a:a},i.prototype.modn=function(e){return this.modrn(e)},i.prototype.idivn=function(e){var t=e<0;t&&(e=-e),r(e<=67108863);for(var n=0,a=this.length-1;a>=0;a--){var i=(0|this.words[a])+67108864*n;this.words[a]=i/e|0,n=i%e}return this._strip(),t?this.ineg():this},i.prototype.divn=function(e){return this.clone().idivn(e)},i.prototype.egcd=function(e){r(0===e.negative),r(!e.isZero());var t=this,n=e.clone();t=0!==t.negative?t.umod(e):t.clone();for(var a=new i(1),s=new i(0),o=new i(0),c=new i(1),d=0;t.isEven()&&n.isEven();)t.iushrn(1),n.iushrn(1),++d;for(var u=n.clone(),l=t.clone();!t.isZero();){for(var f=0,p=1;0==(t.words[0]&p)&&f<26;++f,p<<=1);if(f>0)for(t.iushrn(f);f-- >0;)(a.isOdd()||s.isOdd())&&(a.iadd(u),s.isub(l)),a.iushrn(1),s.iushrn(1);for(var h=0,b=1;0==(n.words[0]&b)&&h<26;++h,b<<=1);if(h>0)for(n.iushrn(h);h-- >0;)(o.isOdd()||c.isOdd())&&(o.iadd(u),c.isub(l)),o.iushrn(1),c.iushrn(1);t.cmp(n)>=0?(t.isub(n),a.isub(o),s.isub(c)):(n.isub(t),o.isub(a),c.isub(s))}return{a:o,b:c,gcd:n.iushln(d)}},i.prototype._invmp=function(e){r(0===e.negative),r(!e.isZero());var t=this,n=e.clone();t=0!==t.negative?t.umod(e):t.clone();for(var a,s=new i(1),o=new i(0),c=n.clone();t.cmpn(1)>0&&n.cmpn(1)>0;){for(var d=0,u=1;0==(t.words[0]&u)&&d<26;++d,u<<=1);if(d>0)for(t.iushrn(d);d-- >0;)s.isOdd()&&s.iadd(c),s.iushrn(1);for(var l=0,f=1;0==(n.words[0]&f)&&l<26;++l,f<<=1);if(l>0)for(n.iushrn(l);l-- >0;)o.isOdd()&&o.iadd(c),o.iushrn(1);t.cmp(n)>=0?(t.isub(n),s.isub(o)):(n.isub(t),o.isub(s))}return(a=0===t.cmpn(1)?s:o).cmpn(0)<0&&a.iadd(e),a},i.prototype.gcd=function(e){if(this.isZero())return e.abs();if(e.isZero())return this.abs();var t=this.clone(),n=e.clone();t.negative=0,n.negative=0;for(var r=0;t.isEven()&&n.isEven();r++)t.iushrn(1),n.iushrn(1);for(;;){for(;t.isEven();)t.iushrn(1);for(;n.isEven();)n.iushrn(1);var a=t.cmp(n);if(a<0){var i=t;t=n,n=i}else if(0===a||0===n.cmpn(1))break;t.isub(n)}return n.iushln(r)},i.prototype.invm=function(e){return this.egcd(e).a.umod(e)},i.prototype.isEven=function(){return 0==(1&this.words[0])},i.prototype.isOdd=function(){return 1==(1&this.words[0])},i.prototype.andln=function(e){return this.words[0]&e},i.prototype.bincn=function(e){r("number"==typeof e);var t=e%26,n=(e-t)/26,a=1<>>26,o&=67108863,this.words[s]=o}return 0!==i&&(this.words[s]=i,this.length++),this},i.prototype.isZero=function(){return 1===this.length&&0===this.words[0]},i.prototype.cmpn=function(e){var t,n=e<0;if(0!==this.negative&&!n)return-1;if(0===this.negative&&n)return 1;if(this._strip(),this.length>1)t=1;else{n&&(e=-e),r(e<=67108863,"Number is too big");var a=0|this.words[0];t=a===e?0:ae.length)return 1;if(this.length=0;n--){var r=0|this.words[n],a=0|e.words[n];if(r!==a){ra&&(t=1);break}}return t},i.prototype.gtn=function(e){return 1===this.cmpn(e)},i.prototype.gt=function(e){return 1===this.cmp(e)},i.prototype.gten=function(e){return this.cmpn(e)>=0},i.prototype.gte=function(e){return this.cmp(e)>=0},i.prototype.ltn=function(e){return-1===this.cmpn(e)},i.prototype.lt=function(e){return-1===this.cmp(e)},i.prototype.lten=function(e){return this.cmpn(e)<=0},i.prototype.lte=function(e){return this.cmp(e)<=0},i.prototype.eqn=function(e){return 0===this.cmpn(e)},i.prototype.eq=function(e){return 0===this.cmp(e)},i.red=function(e){return new V(e)},i.prototype.toRed=function(e){return r(!this.red,"Already a number in reduction context"),r(0===this.negative,"red works only with positives"),e.convertTo(this)._forceRed(e)},i.prototype.fromRed=function(){return r(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},i.prototype._forceRed=function(e){return this.red=e,this},i.prototype.forceRed=function(e){return r(!this.red,"Already a number in reduction context"),this._forceRed(e)},i.prototype.redAdd=function(e){return r(this.red,"redAdd works only with red numbers"),this.red.add(this,e)},i.prototype.redIAdd=function(e){return r(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,e)},i.prototype.redSub=function(e){return r(this.red,"redSub works only with red numbers"),this.red.sub(this,e)},i.prototype.redISub=function(e){return r(this.red,"redISub works only with red numbers"),this.red.isub(this,e)},i.prototype.redShl=function(e){return r(this.red,"redShl works only with red numbers"),this.red.shl(this,e)},i.prototype.redMul=function(e){return r(this.red,"redMul works only with red numbers"),this.red._verify2(this,e),this.red.mul(this,e)},i.prototype.redIMul=function(e){return r(this.red,"redMul works only with red numbers"),this.red._verify2(this,e),this.red.imul(this,e)},i.prototype.redSqr=function(){return r(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},i.prototype.redISqr=function(){return r(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},i.prototype.redSqrt=function(){return r(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},i.prototype.redInvm=function(){return r(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},i.prototype.redNeg=function(){return r(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},i.prototype.redPow=function(e){return r(this.red&&!e.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,e)};var v={k256:null,p224:null,p192:null,p25519:null};function w(e,t){this.name=e,this.p=new i(t,16),this.n=this.p.bitLength(),this.k=new i(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}function S(){w.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}function k(){w.call(this,"p224","ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001")}function T(){w.call(this,"p192","ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff")}function P(){w.call(this,"25519","7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed")}function V(e){if("string"==typeof e){var t=i._prime(e);this.m=t.p,this.prime=t}else r(e.gtn(1),"modulus must be greater than 1"),this.m=e,this.prime=null}function M(e){V.call(this,e),this.shift=this.m.bitLength(),this.shift%26!=0&&(this.shift+=26-this.shift%26),this.r=new i(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}w.prototype._tmp=function(){var e=new i(null);return e.words=new Array(Math.ceil(this.n/13)),e},w.prototype.ireduce=function(e){var t,n=e;do{this.split(n,this.tmp),t=(n=(n=this.imulK(n)).iadd(this.tmp)).bitLength()}while(t>this.n);var r=t0?n.isub(this.p):void 0!==n.strip?n.strip():n._strip(),n},w.prototype.split=function(e,t){e.iushrn(this.n,0,t)},w.prototype.imulK=function(e){return e.imul(this.k)},a(S,w),S.prototype.split=function(e,t){for(var n=4194303,r=Math.min(e.length,9),a=0;a>>22,i=s}i>>>=22,e.words[a-10]=i,0===i&&e.length>10?e.length-=10:e.length-=9},S.prototype.imulK=function(e){e.words[e.length]=0,e.words[e.length+1]=0,e.length+=2;for(var t=0,n=0;n>>=26,e.words[n]=a,t=r}return 0!==t&&(e.words[e.length++]=t),e},i._prime=function(e){if(v[e])return v[e];var t;if("k256"===e)t=new S;else if("p224"===e)t=new k;else if("p192"===e)t=new T;else{if("p25519"!==e)throw new Error("Unknown prime "+e);t=new P}return v[e]=t,t},V.prototype._verify1=function(e){r(0===e.negative,"red works only with positives"),r(e.red,"red works only with red numbers")},V.prototype._verify2=function(e,t){r(0==(e.negative|t.negative),"red works only with positives"),r(e.red&&e.red===t.red,"red works only with red numbers")},V.prototype.imod=function(e){return this.prime?this.prime.ireduce(e)._forceRed(this):(u(e,e.umod(this.m)._forceRed(this)),e)},V.prototype.neg=function(e){return e.isZero()?e.clone():this.m.sub(e)._forceRed(this)},V.prototype.add=function(e,t){this._verify2(e,t);var n=e.add(t);return n.cmp(this.m)>=0&&n.isub(this.m),n._forceRed(this)},V.prototype.iadd=function(e,t){this._verify2(e,t);var n=e.iadd(t);return n.cmp(this.m)>=0&&n.isub(this.m),n},V.prototype.sub=function(e,t){this._verify2(e,t);var n=e.sub(t);return n.cmpn(0)<0&&n.iadd(this.m),n._forceRed(this)},V.prototype.isub=function(e,t){this._verify2(e,t);var n=e.isub(t);return n.cmpn(0)<0&&n.iadd(this.m),n},V.prototype.shl=function(e,t){return this._verify1(e),this.imod(e.ushln(t))},V.prototype.imul=function(e,t){return this._verify2(e,t),this.imod(e.imul(t))},V.prototype.mul=function(e,t){return this._verify2(e,t),this.imod(e.mul(t))},V.prototype.isqr=function(e){return this.imul(e,e.clone())},V.prototype.sqr=function(e){return this.mul(e,e)},V.prototype.sqrt=function(e){if(e.isZero())return e.clone();var t=this.m.andln(3);if(r(t%2==1),3===t){var n=this.m.add(new i(1)).iushrn(2);return this.pow(e,n)}for(var a=this.m.subn(1),s=0;!a.isZero()&&0===a.andln(1);)s++,a.iushrn(1);r(!a.isZero());var o=new i(1).toRed(this),c=o.redNeg(),d=this.m.subn(1).iushrn(1),u=this.m.bitLength();for(u=new i(2*u*u).toRed(this);0!==this.pow(u,d).cmp(c);)u.redIAdd(c);for(var l=this.pow(u,a),f=this.pow(e,a.addn(1).iushrn(1)),p=this.pow(e,a),h=s;0!==p.cmp(o);){for(var b=p,m=0;0!==b.cmp(o);m++)b=b.redSqr();r(m=0;r--){for(var d=t.words[r],u=c-1;u>=0;u--){var l=d>>u&1;a!==n[0]&&(a=this.sqr(a)),0!==l||0!==s?(s<<=1,s|=l,(4===++o||0===r&&0===u)&&(a=this.mul(a,n[s]),o=0,s=0)):o=0}c=26}return a},V.prototype.convertTo=function(e){var t=e.umod(this.m);return t===e?t.clone():t},V.prototype.convertFrom=function(e){var t=e.clone();return t.red=null,t},i.mont=function(e){return new M(e)},a(M,V),M.prototype.convertTo=function(e){return this.imod(e.ushln(this.shift))},M.prototype.convertFrom=function(e){var t=this.imod(e.mul(this.rinv));return t.red=null,t},M.prototype.imul=function(e,t){if(e.isZero()||t.isZero())return e.words[0]=0,e.length=1,e;var n=e.imul(t),r=n.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),a=n.isub(r).iushrn(this.shift),i=a;return a.cmp(this.m)>=0?i=a.isub(this.m):a.cmpn(0)<0&&(i=a.iadd(this.m)),i._forceRed(this)},M.prototype.mul=function(e,t){if(e.isZero()||t.isZero())return new i(0)._forceRed(this);var n=e.mul(t),r=n.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),a=n.isub(r).iushrn(this.shift),s=a;return a.cmp(this.m)>=0?s=a.isub(this.m):a.cmpn(0)<0&&(s=a.iadd(this.m)),s._forceRed(this)},M.prototype.invm=function(e){return this.imod(e._invmp(this.m).mul(this.r2))._forceRed(this)}}(e=n.nmd(e),this)},26729:e=>{"use strict";var t=Object.prototype.hasOwnProperty,n="~";function r(){}function a(e,t,n){this.fn=e,this.context=t,this.once=n||!1}function i(e,t,r,i,s){if("function"!=typeof r)throw new TypeError("The listener must be a function");var o=new a(r,i||e,s),c=n?n+t:t;return e._events[c]?e._events[c].fn?e._events[c]=[e._events[c],o]:e._events[c].push(o):(e._events[c]=o,e._eventsCount++),e}function s(e,t){0==--e._eventsCount?e._events=new r:delete e._events[t]}function o(){this._events=new r,this._eventsCount=0}Object.create&&(r.prototype=Object.create(null),(new r).__proto__||(n=!1)),o.prototype.eventNames=function(){var e,r,a=[];if(0===this._eventsCount)return a;for(r in e=this._events)t.call(e,r)&&a.push(n?r.slice(1):r);return Object.getOwnPropertySymbols?a.concat(Object.getOwnPropertySymbols(e)):a},o.prototype.listeners=function(e){var t=n?n+e:e,r=this._events[t];if(!r)return[];if(r.fn)return[r.fn];for(var a=0,i=r.length,s=new Array(i);a{t.lY=171008,t.JH=339468,t.aI="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"},15861:(e,t,n)=>{"use strict";function r(e,t,n,r,a,i,s){try{var o=e[i](s),c=o.value}catch(d){return void n(d)}o.done?t(c):Promise.resolve(c).then(r,a)}function a(e){return function(){var t=this,n=arguments;return new Promise((function(a,i){var s=e.apply(t,n);function o(e){r(s,a,i,o,c,"next",e)}function c(e){r(s,a,i,o,c,"throw",e)}o(void 0)}))}}n.d(t,{Z:()=>a})},74165:(e,t,n)=>{"use strict";n.d(t,{Z:()=>a});var r=n(71002);function a(){a=function(){return t};var e,t={},n=Object.prototype,i=n.hasOwnProperty,s=Object.defineProperty||function(e,t,n){e[t]=n.value},o="function"==typeof Symbol?Symbol:{},c=o.iterator||"@@iterator",d=o.asyncIterator||"@@asyncIterator",u=o.toStringTag||"@@toStringTag";function l(e,t,n){return Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{l({},"")}catch(e){l=function(e,t,n){return e[t]=n}}function f(e,t,n,r){var a=t&&t.prototype instanceof g?t:g,i=Object.create(a.prototype),o=new E(r||[]);return s(i,"_invoke",{value:_(e,n,o)}),i}function p(e,t,n){try{return{type:"normal",arg:e.call(t,n)}}catch(e){return{type:"throw",arg:e}}}t.wrap=f;var h="suspendedStart",b="suspendedYield",m="executing",y="completed",x={};function g(){}function v(){}function w(){}var S={};l(S,c,(function(){return this}));var k=Object.getPrototypeOf,T=k&&k(k(C([])));T&&T!==n&&i.call(T,c)&&(S=T);var P=w.prototype=g.prototype=Object.create(S);function V(e){["next","throw","return"].forEach((function(t){l(e,t,(function(e){return this._invoke(t,e)}))}))}function M(e,t){function n(a,s,o,c){var d=p(e[a],e,s);if("throw"!==d.type){var u=d.arg,l=u.value;return l&&"object"==(0,r.Z)(l)&&i.call(l,"__await")?t.resolve(l.__await).then((function(e){n("next",e,o,c)}),(function(e){n("throw",e,o,c)})):t.resolve(l).then((function(e){u.value=e,o(u)}),(function(e){return n("throw",e,o,c)}))}c(d.arg)}var a;s(this,"_invoke",{value:function(e,r){function i(){return new t((function(t,a){n(e,r,t,a)}))}return a=a?a.then(i,i):i()}})}function _(t,n,r){var a=h;return function(i,s){if(a===m)throw new Error("Generator is already running");if(a===y){if("throw"===i)throw s;return{value:e,done:!0}}for(r.method=i,r.arg=s;;){var o=r.delegate;if(o){var c=I(o,r);if(c){if(c===x)continue;return c}}if("next"===r.method)r.sent=r._sent=r.arg;else if("throw"===r.method){if(a===h)throw a=y,r.arg;r.dispatchException(r.arg)}else"return"===r.method&&r.abrupt("return",r.arg);a=m;var d=p(t,n,r);if("normal"===d.type){if(a=r.done?y:b,d.arg===x)continue;return{value:d.arg,done:r.done}}"throw"===d.type&&(a=y,r.method="throw",r.arg=d.arg)}}}function I(t,n){var r=n.method,a=t.iterator[r];if(a===e)return n.delegate=null,"throw"===r&&t.iterator.return&&(n.method="return",n.arg=e,I(t,n),"throw"===n.method)||"return"!==r&&(n.method="throw",n.arg=new TypeError("The iterator does not provide a '"+r+"' method")),x;var i=p(a,t.iterator,n.arg);if("throw"===i.type)return n.method="throw",n.arg=i.arg,n.delegate=null,x;var s=i.arg;return s?s.done?(n[t.resultName]=s.value,n.next=t.nextLoc,"return"!==n.method&&(n.method="next",n.arg=e),n.delegate=null,x):s:(n.method="throw",n.arg=new TypeError("iterator result is not an object"),n.delegate=null,x)}function O(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function N(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function E(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(O,this),this.reset(!0)}function C(t){if(t||""===t){var n=t[c];if(n)return n.call(t);if("function"==typeof t.next)return t;if(!isNaN(t.length)){var a=-1,s=function n(){for(;++a=0;--a){var s=this.tryEntries[a],o=s.completion;if("root"===s.tryLoc)return r("end");if(s.tryLoc<=this.prev){var c=i.call(s,"catchLoc"),d=i.call(s,"finallyLoc");if(c&&d){if(this.prev=0;--n){var r=this.tryEntries[n];if(r.tryLoc<=this.prev&&i.call(r,"finallyLoc")&&this.prev=0;--t){var n=this.tryEntries[t];if(n.finallyLoc===e)return this.complete(n.completion,n.afterLoc),N(n),x}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.tryLoc===e){var r=n.completion;if("throw"===r.type){var a=r.arg;N(n)}return a}}throw new Error("illegal catch attempt")},delegateYield:function(t,n,r){return this.delegate={iterator:C(t),resultName:n,nextLoc:r},"next"===this.method&&(this.arg=e),x}},t}},9712:(e,t,n)=>{"use strict";n.d(t,{G:()=>Qw});var r={};n.r(r),n.d(r,{dQ:()=>Oc,ci:()=>gc,bytesToNumberBE:()=>Tc,ty:()=>Pc,eV:()=>Ic,n$:()=>Cc,ql:()=>_c,hexToBytes:()=>kc,_t:()=>yc,tL:()=>Vc,S5:()=>Mc,FF:()=>Hc});var a={};n.r(a),n.d(a,{BitVec:()=>_d,Bool:()=>Lo,Bytes:()=>mr,Data:()=>Kd,F32:()=>Od,F64:()=>Nd,GenericAccountId:()=>lo,GenericAccountId32:()=>lo,GenericAccountId33:()=>fo,GenericAccountIndex:()=>xo,GenericAddress:()=>Bo,GenericBlock:()=>go,GenericCall:()=>ko,GenericChainProperties:()=>Vo,GenericConsensusEngineId:()=>Eo,GenericEthereumAccountId:()=>kd,GenericEthereumLookupSource:()=>Vd,GenericEvent:()=>Xi,GenericEventData:()=>Fi,GenericExtrinsic:()=>ns,GenericExtrinsicEra:()=>ds,GenericExtrinsicPayload:()=>ls,GenericExtrinsicPayloadUnknown:()=>fs,GenericExtrinsicPayloadV4:()=>ms,GenericExtrinsicSignatureV4:()=>gs,GenericExtrinsicUnknown:()=>ps,GenericExtrinsicV4:()=>Zi,GenericImmortalEra:()=>os,GenericLookupSource:()=>Ho,GenericMortalEra:()=>cs,GenericMultiAddress:()=>Bo,GenericSignerPayload:()=>bs,GenericVote:()=>Fo,I128:()=>Rd,I16:()=>Cd,I256:()=>Bd,I32:()=>Ad,I64:()=>Hd,I8:()=>Ed,ISize:()=>Ld,Null:()=>sn,OptionBool:()=>Ud,StorageKey:()=>eu,Text:()=>Dd,Type:()=>qd,U128:()=>Xd,U16:()=>Fd,U256:()=>Wd,U32:()=>po,U64:()=>rs,U8:()=>jd,USize:()=>Zd,bool:()=>Lo,f32:()=>Od,f64:()=>Nd,i128:()=>Rd,i16:()=>Cd,i256:()=>Bd,i32:()=>Ad,i64:()=>Hd,i8:()=>Ed,isize:()=>Ld,u128:()=>Xd,u16:()=>Fd,u256:()=>Wd,u32:()=>po,u64:()=>rs,u8:()=>jd,usize:()=>Zd});var i={};n.r(i),n.d(i,{assetConversion:()=>hu,assets:()=>bu,attestations:()=>yl,aura:()=>mu,author:()=>Gl,authorship:()=>yu,babe:()=>gu,balances:()=>vu,beefy:()=>Su,benchmark:()=>ku,blockbuilder:()=>_u,bridges:()=>xl,chain:()=>Kl,childstate:()=>Yl,claims:()=>gl,collective:()=>Iu,consensus:()=>Ou,contracts:()=>Eu,contractsAbi:()=>Dl,crowdloan:()=>vl,cumulus:()=>wl,democracy:()=>Cu,dev:()=>Au,discovery:()=>Hu,elections:()=>Ru,engine:()=>Bu,eth:()=>jl,evm:()=>Lu,extrinsics:()=>Uu,finality:()=>kl,fungibles:()=>zu,genericAsset:()=>Du,genesisBuilder:()=>qu,gilt:()=>ju,grandpa:()=>Xu,identity:()=>Wu,imOnline:()=>Zu,lottery:()=>Gu,metadata:()=>au,mixnet:()=>Ku,mmr:()=>Yu,nfts:()=>Ju,nimbus:()=>Fl,nompools:()=>Qu,offchain:()=>Jl,offences:()=>$u,ormlOracle:()=>Xl,ormlTokens:()=>Wl,parachains:()=>Hl,payment:()=>rf,poll:()=>Rl,pow:()=>el,proxy:()=>tl,purchase:()=>Bl,recovery:()=>nl,rpc:()=>Zl,runtime:()=>fu,scaleInfo:()=>pu,scheduler:()=>rl,session:()=>al,society:()=>il,staking:()=>sl,state:()=>af,statement:()=>ol,support:()=>cl,syncstate:()=>dl,system:()=>ul,treasury:()=>ll,txpayment:()=>fl,txqueue:()=>pl,uniques:()=>hl,utility:()=>bl,vesting:()=>ml,xcm:()=>zl});var s={};n.r(s),n.d(s,{kusama:()=>$p,polkadot:()=>eh,westend:()=>th});var o={};n.r(o),n.d(o,{_flags:()=>nb,_identity:()=>ub,accountId:()=>tb,flags:()=>rb,hasIdentity:()=>fb,hasIdentityMulti:()=>pb,idAndIndex:()=>ab,idToIndex:()=>hb,identity:()=>lb,indexToId:()=>wb,indexes:()=>vb,info:()=>kb});var c={};n.r(c),n.d(c,{hasProposals:()=>Hb,members:()=>Ab,prime:()=>zb,proposal:()=>Rb,proposalCount:()=>Bb,proposalHashes:()=>Lb,proposals:()=>Ub});var d={};n.r(d),n.d(d,{_getIds:()=>qb,all:()=>jb,expand:()=>Xb,get:()=>Fb,getExpanded:()=>Wb,listNodes:()=>Gb});var u={};n.r(u),n.d(u,{account:()=>fm,all:()=>im,votingBalance:()=>hm,votingBalances:()=>pm});var l={};n.r(l),n.d(l,{bounties:()=>ym});var f={};n.r(f),n.d(f,{_getHeaderRange:()=>Nm,bestNumber:()=>Sm,bestNumberFinalized:()=>km,bestNumberLag:()=>Tm,getBlock:()=>Vm,getBlockByNumber:()=>Mm,getHeader:()=>Im,subscribeFinalizedBlocks:()=>Om,subscribeFinalizedHeads:()=>Em,subscribeNewBlocks:()=>Cm,subscribeNewHeads:()=>Am});var p={};n.r(p),n.d(p,{fees:()=>Hm});var h={};n.r(h),n.d(h,{hasProposals:()=>qm,members:()=>Dm,prime:()=>Zm,proposal:()=>jm,proposalCount:()=>Fm,proposalHashes:()=>Xm,proposals:()=>Wm,votes:()=>Um,votesOf:()=>zm});var b={};n.r(b),n.d(b,{childKey:()=>Gm,contributions:()=>ty,ownContributions:()=>ay});var m={};n.r(m),n.d(m,{_referendumInfo:()=>Ay,_referendumVotes:()=>Ey,_referendumsVotes:()=>Cy,dispatchQueue:()=>hy,locks:()=>yy,nextExternal:()=>xy,preimage:()=>ky,preimages:()=>Sy,proposals:()=>Py,referendumIds:()=>Vy,referendums:()=>My,referendumsActive:()=>_y,referendumsFinished:()=>Iy,referendumsInfo:()=>Hy,sqrtElectorate:()=>Ry});var y={};n.r(y),n.d(y,{info:()=>zy});var x={};n.r(x),n.d(x,{receivedHeartbeats:()=>qy});var g={};n.r(g),n.d(g,{hasProposals:()=>Fy,members:()=>jy,prime:()=>Ky,proposal:()=>Xy,proposalCount:()=>Wy,proposalHashes:()=>Zy,proposals:()=>Gy});var v={};n.r(v),n.d(v,{info:()=>$y,overview:()=>tx});var w={};n.r(w),n.d(w,{eraLength:()=>ox,eraProgress:()=>cx,indexes:()=>rx,info:()=>ax,progress:()=>sx,sessionProgress:()=>dx});var S={};n.r(S),n.d(S,{_members:()=>px,candidates:()=>ux,info:()=>lx,member:()=>fx,members:()=>hx});var k={};n.r(k),n.d(k,{_eraExposure:()=>Ux,_eraPrefs:()=>Kx,_eraSlashes:()=>rg,_erasExposure:()=>Dx,_erasPoints:()=>Wx,_erasPrefs:()=>Jx,_erasRewards:()=>eg,_erasSlashes:()=>ig,_ownExposures:()=>ug,_ownSlashes:()=>pg,_stakerExposures:()=>wg,_stakerPoints:()=>Tg,_stakerPrefs:()=>Vg,_stakerRewards:()=>Ng,_stakerRewardsEras:()=>Og,_stakerSlashes:()=>Hg,account:()=>gx,accounts:()=>xx,currentPoints:()=>vx,electedInfo:()=>Sx,eraExposure:()=>zx,eraPrefs:()=>Yx,eraSlashes:()=>ag,erasExposure:()=>qx,erasHistoric:()=>jx,erasPoints:()=>Zx,erasPrefs:()=>Qx,erasRewards:()=>tg,erasSlashes:()=>sg,keys:()=>og,keysMulti:()=>cg,nextElected:()=>Lg,overview:()=>dg,ownExposure:()=>lg,ownExposures:()=>fg,ownSlash:()=>hg,ownSlashes:()=>bg,query:()=>gg,queryMulti:()=>vg,stakerExposure:()=>kg,stakerExposures:()=>Sg,stakerPoints:()=>Pg,stakerPrefs:()=>Mg,stakerRewards:()=>Eg,stakerRewardsMulti:()=>Ag,stakerRewardsMultiEras:()=>Cg,stakerSlashes:()=>Rg,stashes:()=>Bg,validators:()=>Ug,waitingInfo:()=>Dg});var T={};n.r(T),n.d(T,{hasProposals:()=>jg,members:()=>qg,prime:()=>Gg,proposal:()=>Fg,proposalCount:()=>Xg,proposalHashes:()=>Wg,proposals:()=>Zg});var P={};n.r(P),n.d(P,{proposals:()=>Kg});var V={};n.r(V),n.d(V,{events:()=>Yg,signingInfo:()=>iv});var M=n(33667),_=n(50273),I=n(48907),O=n(249),N=n(65716);const E="@polkadot/api",C=(new URL("file:///home/runner/work/polkadot-wiki/polkadot-wiki/node_modules/@polkadot/api/packageInfo.js").pathname.substring(0,new URL("file:///home/runner/work/polkadot-wiki/polkadot-wiki/node_modules/@polkadot/api/packageInfo.js").pathname.lastIndexOf("/")+1),"11.0.3");function A(e,t){return e.findMetaCall((0,N.Y)(t))}function H(e,t){return e.findMetaError((0,N.Y)(t))}function R(e){var t=e((function(e){Error.call(e),e.stack=(new Error).stack}));return t.prototype=Object.create(Error.prototype),t.prototype.constructor=t,t}var B=R((function(e){return function(){e(this),this.name="EmptyError",this.message="no elements in sequence"}})),L=function(e,t){return L=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])},L(e,t)};function U(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function n(){this.constructor=e}L(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}function z(e,t,n,r){return new(n||(n=Promise))((function(a,i){function s(e){try{c(r.next(e))}catch(t){i(t)}}function o(e){try{c(r.throw(e))}catch(t){i(t)}}function c(e){var t;e.done?a(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(s,o)}c((r=r.apply(e,t||[])).next())}))}function D(e,t){var n,r,a,i,s={label:0,sent:function(){if(1&a[0])throw a[1];return a[1]},trys:[],ops:[]};return i={next:o(0),throw:o(1),return:o(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function o(o){return function(c){return function(o){if(n)throw new TypeError("Generator is already executing.");for(;i&&(i=0,o[0]&&(s=0)),s;)try{if(n=1,r&&(a=2&o[0]?r.return:o[0]?r.throw||((a=r.return)&&a.call(r),0):r.next)&&!(a=a.call(r,o[1])).done)return a;switch(r=0,a&&(o=[2&o[0],a.value]),o[0]){case 0:case 1:a=o;break;case 4:return s.label++,{value:o[1],done:!1};case 5:s.label++,r=o[1],o=[0];continue;case 7:o=s.ops.pop(),s.trys.pop();continue;default:if(!(a=s.trys,(a=a.length>0&&a[a.length-1])||6!==o[0]&&2!==o[0])){s=0;continue}if(3===o[0]&&(!a||o[1]>a[0]&&o[1]=e.length&&(e=void 0),{value:e&&e[r++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")}function j(e,t){var n="function"==typeof Symbol&&e[Symbol.iterator];if(!n)return e;var r,a,i=n.call(e),s=[];try{for(;(void 0===t||t-- >0)&&!(r=i.next()).done;)s.push(r.value)}catch(o){a={error:o}}finally{try{r&&!r.done&&(n=i.return)&&n.call(i)}finally{if(a)throw a.error}}return s}function F(e,t,n){if(n||2===arguments.length)for(var r,a=0,i=t.length;a1||o(e,t)}))})}function o(e,t){try{(n=a[e](t)).value instanceof X?Promise.resolve(n.value.v).then(c,d):u(i[0][2],n)}catch(r){u(i[0][3],r)}var n}function c(e){o("next",e)}function d(e){o("throw",e)}function u(e,t){e(t),i.shift(),i.length&&o(i[0][0],i[0][1])}}function Z(e){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var t,n=e[Symbol.asyncIterator];return n?n.call(e):(e=q(e),t={},r("next"),r("throw"),r("return"),t[Symbol.asyncIterator]=function(){return this},t);function r(n){t[n]=e[n]&&function(t){return new Promise((function(r,a){(function(e,t,n,r){Promise.resolve(r).then((function(t){e({value:t,done:n})}),t)})(r,a,(t=e[n](t)).done,t.value)}))}}}Object.create;"function"==typeof SuppressedError&&SuppressedError;function G(e){return"function"==typeof e}var K=R((function(e){return function(t){e(this),this.message=t?t.length+" errors occurred during unsubscription:\n"+t.map((function(e,t){return t+1+") "+e.toString()})).join("\n "):"",this.name="UnsubscriptionError",this.errors=t}}));function Y(e,t){if(e){var n=e.indexOf(t);0<=n&&e.splice(n,1)}}var J=function(){function e(e){this.initialTeardown=e,this.closed=!1,this._parentage=null,this._finalizers=null}return e.prototype.unsubscribe=function(){var e,t,n,r,a;if(!this.closed){this.closed=!0;var i=this._parentage;if(i)if(this._parentage=null,Array.isArray(i))try{for(var s=q(i),o=s.next();!o.done;o=s.next()){o.value.remove(this)}}catch(p){e={error:p}}finally{try{o&&!o.done&&(t=s.return)&&t.call(s)}finally{if(e)throw e.error}}else i.remove(this);var c=this.initialTeardown;if(G(c))try{c()}catch(h){a=h instanceof K?h.errors:[h]}var d=this._finalizers;if(d){this._finalizers=null;try{for(var u=q(d),l=u.next();!l.done;l=u.next()){var f=l.value;try{ee(f)}catch(b){a=null!=a?a:[],b instanceof K?a=F(F([],j(a)),j(b.errors)):a.push(b)}}}catch(m){n={error:m}}finally{try{l&&!l.done&&(r=u.return)&&r.call(u)}finally{if(n)throw n.error}}}if(a)throw new K(a)}},e.prototype.add=function(t){var n;if(t&&t!==this)if(this.closed)ee(t);else{if(t instanceof e){if(t.closed||t._hasParent(this))return;t._addParent(this)}(this._finalizers=null!==(n=this._finalizers)&&void 0!==n?n:[]).push(t)}},e.prototype._hasParent=function(e){var t=this._parentage;return t===e||Array.isArray(t)&&t.includes(e)},e.prototype._addParent=function(e){var t=this._parentage;this._parentage=Array.isArray(t)?(t.push(e),t):t?[t,e]:e},e.prototype._removeParent=function(e){var t=this._parentage;t===e?this._parentage=null:Array.isArray(t)&&Y(t,e)},e.prototype.remove=function(t){var n=this._finalizers;n&&Y(n,t),t instanceof e&&t._removeParent(this)},e.EMPTY=function(){var t=new e;return t.closed=!0,t}(),e}(),Q=J.EMPTY;function $(e){return e instanceof J||e&&"closed"in e&&G(e.remove)&&G(e.add)&&G(e.unsubscribe)}function ee(e){G(e)?e():e.unsubscribe()}var te={onUnhandledError:null,onStoppedNotification:null,Promise:void 0,useDeprecatedSynchronousErrorHandling:!1,useDeprecatedNextContext:!1},ne={setTimeout:function(e,t){for(var n=[],r=2;r{return n=t,!Array.isArray(n)||2!==n.length||function(e,t){return(0,$e.o)(e)||(tt(e)?!e.eq(t):e!==t)}(e.get(t[0]),t[1]);var n}))}function rt(e,t){return Array.isArray(t)?nt(e,t):t instanceof Map?nt(e,[...t.entries()]):!!(0,et.K)(t)&&nt(e,Object.entries(t))}class at extends Map{registry;createdAtHash;initialU8aLength;isStorageFallback;constructor(e,t){const n=function(e){return Object.entries(e||{})}(t);super(n),this.registry=e,Ye(this,n.map((([e])=>e)),(e=>this.get(e)))}get encodedLength(){return 0}get hash(){return this.registry.hash(this.toU8a())}get isEmpty(){return 0===[...this.keys()].length}eq(e){return rt(this,e)}getT(e){return this.get(e)}inspect(){throw new Error("Unimplemented")}toHex(){throw new Error("Unimplemented")}toHuman(){return[...this.entries()].reduce(((e,[t,n])=>(e[t]=(0,Je.m)(n?.toHuman)?n.toHuman():n,e)),{})}toJSON(){return[...this.entries()].reduce(((e,[t,n])=>(e[t]=n,e)),{})}toPrimitive(e){return[...this.entries()].reduce(((t,[n,r])=>(t[n]=(0,Je.m)(r.toPrimitive)?r.toPrimitive(e):r,t)),{})}toRawType(){return"Json"}toString(){return(0,Qe.P)(this.toJSON())}toU8a(e){throw new Error("Unimplemented")}}var it=n(51787);function st(e){for(let t=0,n=e.length;t126)return!1}return!0}function ot(e){return(0,I.H)(e)?(0,it.vq)(e)?st((0,N.Y)(e)):function(e){for(let t=0,n=e.length;t126)return!1}return!0}(e):!!e&&st(e)}var ct=n(58758);class dt{__encoding;constructor(e){this.__encoding=e}decode(e){let t="";for(let n=0,r=e.length;n!!e)))}get isUtf8(){return function(e){if(!e)return(0,I.H)(e);const t=(0,N.Y)(e),n=t.length;let r=0;for(;r=194&&t[r]<=223){if(!(r+1191)return!1;r+=2}else if(224===t[r]){if(!(r+2191)return!1;if(t[r+2]<128||t[r+2]>191)return!1;r+=3}else if(t[r]>=225&&t[r]<=236){if(!(r+2191)return!1;if(t[r+2]<128||t[r+2]>191)return!1;r+=3}else if(237===t[r]){if(!(r+2159)return!1;if(t[r+2]<128||t[r+2]>191)return!1;r+=3}else if(t[r]>=238&&t[r]<=239){if(!(r+2191)return!1;if(t[r+2]<128||t[r+2]>191)return!1;r+=3}else if(240===t[r]){if(!(r+3191)return!1;if(t[r+2]<128||t[r+2]>191)return!1;if(t[r+3]<128||t[r+3]>191)return!1;r+=4}else if(t[r]>=241&&t[r]<=243){if(!(r+3191)return!1;if(t[r+2]<128||t[r+2]>191)return!1;if(t[r+3]<128||t[r+3]>191)return!1;r+=4}else{if(244!==t[r])return!1;if(!(r+3143)return!1;if(t[r+2]<128||t[r+2]>191)return!1;if(t[r+3]<128||t[r+3]>191)return!1;r+=4}return!0}(this)}bitLength(){return 8*this.length}eq(e){return e instanceof Uint8Array?this.length===e.length&&!this.some(((t,n)=>t!==e[n])):this.eq((0,N.Y)(e))}inspect(){return{outer:[this.toU8a()]}}toHex(){return(0,O.c)(this)}toHuman(e,t){return this.toPrimitive(t)}toJSON(){return this.toHex()}toPrimitive(e){if(!e&&this.isAscii){const e=this.toUtf8();if(ot(e))return e}return this.toJSON()}toRawType(){return"Raw"}toString(){return this.toHex()}toU8a(e){return Uint8Array.from(this)}toUtf8(){if(!this.isUtf8)throw new Error("The character sequence is not a valid Utf8 string");return lt(this)}}class pt{registry;createdAtHash;isStorageFallback;__internal__neverError;constructor(e,t="DoNotConstruct"){throw this.registry=e,this.__internal__neverError=new Error(`DoNotConstruct: Cannot construct unknown type ${t}`),this.__internal__neverError}static with(e){return class extends pt{constructor(t){super(t,e)}}}get encodedLength(){throw this.__internal__neverError}get hash(){throw this.__internal__neverError}get isEmpty(){throw this.__internal__neverError}eq(){throw this.__internal__neverError}inspect(){throw this.__internal__neverError}toHex(){throw this.__internal__neverError}toHuman(){throw this.__internal__neverError}toJSON(){throw this.__internal__neverError}toPrimitive(){throw this.__internal__neverError}toRawType(){throw this.__internal__neverError}toString(){throw this.__internal__neverError}toU8a(){throw this.__internal__neverError}}var ht=n(64992),bt=n(13550);function mt(e,{isLe:t=!0,isNegative:n=!1}={}){t||(e=e.slice().reverse());const r=e.length;if(n&&r&&128&e[r-1])switch(r){case 0:return new bt(0);case 1:return new bt(-1*(255^e[0])-1);case 2:return new bt(-1*(e[0]+(e[1]<<8)^65535)-1);case 3:return new bt(-1*(e[0]+(e[1]<<8)+(e[2]<<16)^16777215)-1);case 4:return new bt(-1*(e[0]+(e[1]<<8)+(e[2]<<16)+16777216*e[3]^4294967295)-1);case 5:return new bt(-1*((e[0]+(e[1]<<8)+(e[2]<<16)+16777216*e[3]^4294967295)+4294967296*(255^e[4]))-1);case 6:return new bt(-1*((e[0]+(e[1]<<8)+(e[2]<<16)+16777216*e[3]^4294967295)+4294967296*(e[4]+(e[5]<<8)^65535))-1);default:return new bt(e,"le").fromTwos(8*r)}switch(r){case 0:return new bt(0);case 1:return new bt(e[0]);case 2:return new bt(e[0]+(e[1]<<8));case 3:return new bt(e[0]+(e[1]<<8)+(e[2]<<16));case 4:return new bt(e[0]+(e[1]<<8)+(e[2]<<16)+16777216*e[3]);case 5:return new bt(e[0]+(e[1]<<8)+(e[2]<<16)+16777216*(e[3]+(e[4]<<8)));case 6:return new bt(e[0]+(e[1]<<8)+(e[2]<<16)+16777216*(e[3]+(e[4]<<8)+(e[5]<<16)));default:return new bt(e,"le")}}function yt(e){const t=(0,N.Y)(e);switch(3&t[0]){case 0:return[1,new bt(t[0]>>>2)];case 1:return[2,new bt(t[0]+(t[1]<<8)>>>2)];case 2:return[4,new bt(t[0]+(t[1]<<8)+(t[2]<<16)+16777216*t[3]>>>2)];default:{const e=5+(t[0]>>>2);switch(e){case 5:return[5,new bt(t[1]+(t[2]<<8)+(t[3]<<16)+16777216*t[4])];case 6:return[6,new bt(t[1]+(t[2]<<8)+(t[3]<<16)+16777216*(t[4]+(t[5]<<8)))];case 7:return[7,new bt(t[1]+(t[2]<<8)+(t[3]<<16)+16777216*(t[4]+(t[5]<<8)+(t[6]<<16)))];default:return[e,mt(t.subarray(1,e))]}}}}function xt(e){switch(3&e[0]){case 0:return[1,e[0]>>>2];case 1:return[2,e[0]+(e[1]<<8)>>>2];case 2:return[4,e[0]+(e[1]<<8)+(e[2]<<16)+16777216*e[3]>>>2];default:switch(5+(e[0]>>>2)){case 5:return[5,e[1]+(e[2]<<8)+(e[3]<<16)+16777216*e[4]];case 6:return[6,e[1]+(e[2]<<8)+(e[3]<<16)+16777216*(e[4]+(e[5]<<8))];case 7:return[7,e[1]+(e[2]<<8)+(e[3]<<16)+16777216*(e[4]+(e[5]<<8)+(e[6]<<16))];default:throw new Error("Compact input is > Number.MAX_SAFE_INTEGER")}}}var gt=n(53554);const vt=new bt(0),wt=new bt(1),St=new bt(2),kt=new bt(100),Tt=new bt(1e6),Pt=new bt(1e9),Vt=Pt.mul(Pt),Mt=new bt(Number.MAX_SAFE_INTEGER),_t=new bt(94906265);function It(e,{isLe:t=!1,isNegative:n=!1}={}){if(!e||"0x"===e)return new bt(0);const r=function(e){if(!e||"0x"===e)return"";if(it.Dh.test(e))return e.substring(2);if(it.y$.test(e))return e;throw new Error(`Expected hex value to convert, found '${e}'`)}(e),a=new bt(r,16,t?"le":"be");return n?a.fromTwos(4*r.length):a}var Ot=n(36032),Nt=n(50075);const Et=(0,Nt.F7)("toBigInt"),Ct=(0,Nt.F7)("toBn");function At(e){return e?bt.isBN(e)?e:(0,it.vq)(e)?It(e.toString()):(0,Ot.C)(e)?new bt(e.toString()):Ct(e)?e.toBn():Et(e)?new bt(e.toBigInt().toString()):new bt(e):new bt(0)}const Ht={bitLength:-1,isLe:!0,isNegative:!1};function Rt(e,{bitLength:t=-1,isLe:n=!0,isNegative:r=!1}=Ht){const a=At(e),i=-1===t?Math.ceil(a.bitLength()/8):Math.ceil((t||0)/8);if(!e)return-1===t?new Uint8Array(1):new Uint8Array(i);const s=new Uint8Array(i),o=r?a.toTwos(8*i):a;return s.set(o.toArray(n?"le":"be",i),0),s}function Bt(...e){const t=e.length,n=new Array(t);let r=0;for(let a=0;att(e)?!e.eq(t[n]):e!==t[n]))))}class Wt extends Array{registry;createdAtHash;initialU8aLength;isStorageFallback;static get[Symbol.species](){return Array}constructor(e,t){super(t),this.registry=e}get encodedLength(){const e=this.length;let t=Ft(e).length;for(let n=0;n{const n=t.replace(/[-_., ]+/g," ").trim().split(" ");let r="";for(let a=0,i=n.length;a(t?Gt[e.charCodeAt(0)]:Kt[e.charCodeAt(0)])+e.slice(1))),$t=Jt((e=>Gt[e.charCodeAt(0)]+e.slice(1)));function en(e,t){return"function"==typeof t?t:e.createClassUnsafe(t)}function tn(e,t){const n=t.length,r=new Array(n);for(let a=0;a(0,Zt.h)(e)))){if(!t.every((e=>(0,Zt.h)(e)&&e>=0&&e<=255)))throw new Error("Invalid number-indexed enum definition");return!1}return!0}(t)){const[i,s]=nn(e,t);for(let e=0,t=s.length;ee!==sn)),a=!1}else{const e=Object.entries(t);for(let t=0,r=e.length;te.toLowerCase())),i=n.toLowerCase(),s=a.indexOf(i);if(-1===s)throw new Error(`Cannot map Enum JSON, unable to find '${n}' in ${a.join(", ")}`);try{return un(e,t,Object.values(t)[s].index,r)}catch(o){throw new Error(`Enum(${n}):: ${o.message}`)}}class fn{registry;createdAtHash;initialU8aLength;isStorageFallback;__internal__def;__internal__entryIndex;__internal__indexes;__internal__isBasic;__internal__isIndexed;__internal__raw;constructor(e,t,n,r,{definition:a,setDefinition:i=M.y}={}){const{def:s,isBasic:o,isIndexed:c}=a||i(on(e,t)),d=(0,gt.U)(n)&&n.length&&!(0,Zt.h)(r)?dn(e,s,n[0],n.subarray(1)):function(e,t,n,r){if((0,Zt.h)(r))return un(e,t,r,n);if((0,gt.U)(n)||(0,it.vq)(n)){const r=(0,N.Y)(n);if(r.length)return dn(e,t,r[0],r.subarray(1))}else{if(n instanceof fn)return un(e,t,n.index,n.value);if((0,Zt.h)(n))return un(e,t,n);if((0,I.H)(n))return ln(e,t,n.toString());if((0,et.K)(n)){const r=Object.keys(n)[0];return ln(e,t,r,n[r])}}return un(e,t,Object.values(t)[0].index)}(e,s,n,r);this.registry=e,this.__internal__def=s,this.__internal__isBasic=o,this.__internal__isIndexed=c,this.__internal__indexes=Object.values(s).map((({index:e})=>e)),this.__internal__entryIndex=this.__internal__indexes.indexOf(d.index),this.__internal__raw=d.value,this.__internal__raw.initialU8aLength&&(this.initialU8aLength=1+this.__internal__raw.initialU8aLength)}static with(e){let t;const n=e=>t=e;return class extends fn{static{const t=Array.isArray(e)?e:Object.keys(e),n=t.length,r=new Array(n),a=new Array(n);for(let e=0;er.type===t[n])),Ye(this.prototype,r,((e,n,r)=>{if(r.type!==t[n])throw new Error(`Cannot convert '${r.type}' via ${e}`);return r.value}))}constructor(r,a,i){super(r,e,a,i,{definition:t,setDefinition:n})}}}get encodedLength(){return 1+this.__internal__raw.encodedLength}get hash(){return this.registry.hash(this.toU8a())}get index(){return this.__internal__indexes[this.__internal__entryIndex]}get inner(){return this.__internal__raw}get isBasic(){return this.__internal__isBasic}get isEmpty(){return this.__internal__raw.isEmpty}get isNone(){return this.__internal__raw instanceof sn}get defIndexes(){return this.__internal__indexes}get defKeys(){return Object.keys(this.__internal__def)}get type(){return this.defKeys[this.__internal__entryIndex]}get value(){return this.__internal__raw}eq(e){return(0,gt.U)(e)?!this.toU8a().some(((t,n)=>t!==e[n])):(0,Zt.h)(e)?this.toNumber()===e:this.__internal__isBasic&&(0,I.H)(e)?this.type===e:(0,it.vq)(e)?this.toHex()===e:e instanceof fn?this.index===e.index&&this.value.eq(e.value):(0,et.K)(e)?this.value.eq(e[this.type]):this.value.eq(e)}inspect(){if(this.__internal__isBasic)return{outer:[new Uint8Array([this.index])]};const{inner:e,outer:t=[]}=this.__internal__raw.inspect();return{inner:e,outer:[new Uint8Array([this.index]),...t]}}toHex(){return(0,O.c)(this.toU8a())}toHuman(e,t){return this.__internal__isBasic||this.isNone?this.type:{[this.type]:this.__internal__raw.toHuman(e,t)}}toJSON(){return this.__internal__isBasic?this.type:{[Qt(this.type)]:this.__internal__raw.toJSON()}}toNumber(){return this.index}toPrimitive(e){return this.__internal__isBasic?this.type:{[Qt(this.type)]:this.__internal__raw.toPrimitive(e)}}_toRawStruct(){if(this.__internal__isBasic)return this.__internal__isIndexed?this.defKeys.reduce(((e,t,n)=>(e[t]=this.__internal__indexes[n],e)),{}):this.defKeys;const e=Object.entries(this.__internal__def);return rn(this.registry,e.reduce(((e,[t,{Type:n}],r)=>(e[0][r]=n,e[1][r]=t,e)),[new Array(e.length),new Array(e.length)]))}toRawType(){return(0,Qe.P)({_enum:this._toRawStruct()})}toString(){return this.isNone?this.type:(0,Qe.P)(this.toJSON())}toU8a(e){return e?this.__internal__raw.toU8a(e):Lt([new Uint8Array([this.index]),this.__internal__raw.toU8a(e)])}}function pn(e){return"boolean"==typeof e}function hn(e,t,n,{message:r},a,i,s,o,c){let d="";try{d=`: ${new o(e).toRawType()}`}catch{}return`${t}: failed at ${(0,O.c)(a.subarray(0,16))}\u2026${c?` on ${c}`:""} (index ${i+1}/${s})${d}:: ${r}`}function bn(e,t,n,[r,a]){const i=t.length;let s=0,o=0;try{for(;on=e;return class extends xn{static{const t=Object.keys(e);Ye(this.prototype,t,((e,t,n)=>n.get(e)))}constructor(a,i){super(a,e,i,t,{definition:n,setDefinition:r})}}}get defKeys(){return this.__internal__Types[1]}get isEmpty(){for(const e of this.values())if(!e.isEmpty)return!1;return!0}get encodedLength(){let e=0;for(const t of this.values())e+=t.encodedLength;return e}get hash(){return this.registry.hash(this.toU8a())}get Type(){const e={},[t,n]=this.__internal__Types;for(let r=0,a=n.length;r ${(0,Qe.P)(t)} (typeof ${typeof t})`)}const In=(0,ht.k)("Map");function On(e,t,n,r){const a=new Map;for(const[s,o]of r.entries()){const r=t.prototype instanceof Wt||t.prototype instanceof xn||t.prototype instanceof fn;try{a.set(s instanceof t?s:new t(e,r&&"string"==typeof s?JSON.parse(s):s),o instanceof n?o:new n(e,o))}catch(i){throw In.error("Failed to decode key or value:",i.message),i}}return[t,n,a,0]}function Nn(e,t,n,r){const a=en(e,t),i=en(e,n);if(!r)return[a,i,new Map,0];if((0,gt.U)(r)||(0,it.vq)(r))return function(e,t,n,r){const a=new Map,[i,s]=xt(r),o=[];for(let u=0;uMn("BTreeMap",t,e))).sort((([e],[t])=>_n(e,t))))}(o):o),this.registry=e,this.initialU8aLength=c,this.__internal__KeyClass=i,this.__internal__ValClass=s,this.__internal__type=a}get encodedLength(){let e=Ft(this.size).length;for(const[t,n]of this.entries())e+=t.encodedLength+n.encodedLength;return e}get hash(){return this.registry.hash(this.toU8a())}get isEmpty(){return 0===this.size}eq(e){return rt(this,e)}inspect(){const e=[];for(const[t,n]of this.entries())e.push(t.inspect()),e.push(n.inspect());return{inner:e,outer:[Ft(this.size)]}}toHex(){return(0,O.c)(this.toU8a())}toHuman(e,t){const n={};for(const[r,a]of this.entries())n[r instanceof ft&&!t&&r.isAscii?r.toUtf8():r.toString()]=a.toHuman(e,t);return n}toJSON(){const e={};for(const[t,n]of this.entries())e[t.toString()]=n.toJSON();return e}toPrimitive(e){const t={};for(const[n,r]of this.entries())t[n instanceof ft&&!e&&n.isAscii?n.toUtf8():n.toString()]=r.toPrimitive(e);return t}toRawType(){return`${this.__internal__type}<${this.registry.getClassName(this.__internal__KeyClass)||new this.__internal__KeyClass(this.registry).toRawType()},${this.registry.getClassName(this.__internal__ValClass)||new this.__internal__ValClass(this.registry).toRawType()}>`}toString(){return(0,Qe.P)(this.toJSON())}toU8a(e){const t=[];e||t.push(Ft(this.size));for(const[n,r]of this.entries())t.push(n.toU8a(e),r.toU8a(e));return Lt(t)}}class Cn extends En{static with(e,t){return class extends Cn{constructor(n,r){super(n,e,t,r,"BTreeMap")}}}}function An(e,t){return e.size===t.length&&!t.some((t=>!e.has(t)))}const Hn=(0,ht.k)("BTreeSet");function Rn(e,t,n){const r=en(e,t);if(!n)return[r,new Set,0];if((0,gt.U)(n)||(0,it.vq)(n))return function(e,t,n){const r=new Set,[a,i]=xt(n),s=new Array(i),[o]=mn(e,s,n,a,t);for(let c=0;c{try{r.add(n instanceof t?n:new t(e,n))}catch(a){throw Hn.error("Failed to decode key or value:",a.message),a}})),[t,r,0]}(e,r,n);throw new Error("BTreeSet: cannot decode type")}class Bn extends Set{registry;createdAtHash;initialU8aLength;isStorageFallback;__internal__ValClass;constructor(e,t,n){const[r,a,i]=Rn(e,t,n);super(function(e){const t=new Set;return new Set(Array.from(e).filter((e=>Mn("BTreeSet",t,e))).sort(_n))}(a)),this.registry=e,this.initialU8aLength=i,this.__internal__ValClass=r}static with(e){return class extends Bn{constructor(t,n){super(t,e,n)}}}get encodedLength(){let e=Ft(this.size).length;for(const t of this.values())e+=t.encodedLength;return e}get hash(){return this.registry.hash(this.toU8a())}get isEmpty(){return 0===this.size}get strings(){return[...super.values()].map((e=>e.toString()))}eq(e){return t=this,n=e,Array.isArray(n)?An(t,n):n instanceof Set?An(t,[...n.values()]):!!(0,et.K)(n)&&An(t,Object.values(n));var t,n}inspect(){const e=[];for(const t of this.values())e.push(t.inspect());return{inner:e,outer:[Ft(this.size)]}}toHex(){return(0,O.c)(this.toU8a())}toHuman(e,t){const n=[];for(const r of this.values())n.push(r.toHuman(e,t));return n}toJSON(){const e=[];for(const t of this.values())e.push(t.toJSON());return e}toRawType(){return`BTreeSet<${this.registry.getClassName(this.__internal__ValClass)||new this.__internal__ValClass(this.registry).toRawType()}>`}toPrimitive(e){const t=[];for(const n of this.values())t.push(n.toPrimitive(e));return t}toString(){return(0,Qe.P)(this.toJSON())}toU8a(e){const t=[];e||t.push(Ft(this.size));for(const n of this.values())t.push(n.toU8a(e));return Lt(t)}}class Ln{registry;createdAtHash;initialU8aLength;isStorageFallback;__internal__Type;__internal__raw;constructor(e,t,n=0,{definition:r,setDefinition:a=M.y}={}){this.registry=e,this.__internal__Type=r||a(en(e,t));const[i,s]=function(e,t,n){if((0,gt.U)(n)){const[r,a]=(3&n[0])<3?xt(n):yt(n);return[new t(e,a),r]}if(n instanceof Ln){const r=n.unwrap();return r instanceof t?[r,0]:[new t(e,r),0]}return n instanceof t?[n,0]:[new t(e,n),0]}(e,this.__internal__Type,n);this.initialU8aLength=s,this.__internal__raw=i}static with(e){let t;const n=e=>t=e;return class extends Ln{constructor(r,a){super(r,e,a,{definition:t,setDefinition:n})}}}get encodedLength(){return this.toU8a().length}get hash(){return this.registry.hash(this.toU8a())}get isEmpty(){return this.__internal__raw.isEmpty}bitLength(){return this.__internal__raw.bitLength()}eq(e){return this.__internal__raw.eq(e instanceof Ln?e.__internal__raw:e)}inspect(){return{outer:[this.toU8a()]}}toBigInt(){return this.__internal__raw.toBigInt()}toBn(){return this.__internal__raw.toBn()}toHex(e){return this.__internal__raw.toHex(e)}toHuman(e,t){return this.__internal__raw.toHuman(e,t)}toJSON(){return this.__internal__raw.toJSON()}toNumber(){return this.__internal__raw.toNumber()}toPrimitive(e){return this.__internal__raw.toPrimitive(e)}toRawType(){return`Compact<${this.registry.getClassName(this.__internal__Type)||this.__internal__raw.toRawType()}>`}toString(){return this.__internal__raw.toString()}toU8a(e){return Ft(this.__internal__raw.toBn())}unwrap(){return this.__internal__raw}}class Un extends En{static with(e,t){return class extends Un{constructor(n,r){super(n,e,t,r)}}}}const zn=new RegExp("(\\d+?)(?=(\\d{3})+(?!\\d)|$)","g");function Dn(e,t=","){const n=e[0].startsWith("-"),r=n?e.substring(1).match(zn):e.match(zn);return r?`${n?"-":""}${r.join(t)}`:e}function qn(e){return{decimal:.1.toLocaleString(e).substring(1,2),thousand:1e3.toLocaleString(e).substring(1,2)}}const jn=8,Fn=[{power:-24,text:"yocto",value:"y"},{power:-21,text:"zepto",value:"z"},{power:-18,text:"atto",value:"a"},{power:-15,text:"femto",value:"f"},{power:-12,text:"pico",value:"p"},{power:-9,text:"nano",value:"n"},{power:-6,text:"micro",value:"\xb5"},{power:-3,text:"milli",value:"m"},{power:0,text:"Unit",value:"-"},{power:3,text:"Kilo",value:"k"},{power:6,text:"Mill",value:"M"},{power:9,text:"Bill",value:"B"},{power:12,text:"Tril",value:"T"},{power:15,text:"Peta",value:"P"},{power:18,text:"Exa",value:"E"},{power:21,text:"Zeta",value:"Z"},{power:24,text:"Yotta",value:"Y"}];function Xn(e){for(let t=0,n=Fn.length;tWn(e,t),Yn.findSi=Xn,Yn.getDefaults=()=>({decimals:Gn,unit:Kn}),Yn.getOptions=(e=Gn)=>Fn.filter((({power:t})=>!(t<0)||e+t>=0)),Yn.setDefaults=({decimals:e,unit:t})=>{Gn=(Array.isArray(e)?e[0]:e)??Gn,Kn=(Array.isArray(t)?t[0]:t)??Kn,Fn[jn].text=Kn};const Qn=new bt(1e4),$n=[["Perquintill",Vt],["Perbill",Pt],["Permill",Tt],["Percent",kt]];function er(e,t){if((0,Zt.h)(e)){if(!Number.isInteger(e)||e>Number.MAX_SAFE_INTEGER||ei)throw new Error(`${this.toRawType()}: Input too large. Found input with ${super.bitLength()} bits, expected ${i}`)}get hash(){return this.registry.hash(this.toU8a())}get isEmpty(){return this.isZero()}bitLength(){return this.__internal__bitLength}eq(e){return super.eq((0,it.vq)(e)?It(e.toString(),{isLe:!1,isNegative:!this.isUnsigned}):At(e))}inspect(){return{outer:[this.toU8a()]}}isMax(){return this.toU8a().filter((e=>255===e)).length===this.__internal__bitLength/8}toBigInt(){return BigInt(this.toString())}toBn(){return this}toHex(e=!1){return function(e,{bitLength:t=-1,isLe:n=!1,isNegative:r=!1}={}){return(0,O.c)(Rt(e,{bitLength:t,isLe:n,isNegative:r}))}(this,{bitLength:this.bitLength(),isLe:e,isNegative:!this.isUnsigned})}toHuman(e){const t=this.toRawType();if("Balance"===t)return this.isMax()?"everything":Yn(this,{decimals:this.registry.chainDecimals[0],withSi:!0,withUnit:this.registry.chainTokens[0]});const[,n]=$n.find((([e])=>e===t))||[];return n?function(e,t){return`${(e.mul(Qn).div(t).toNumber()/100).toFixed(2)}%`}(this,n):Jn(this)}toJSON(e=!1){return e||this.__internal__bitLength>128||super.bitLength()>52?this.toHex():this.toNumber()}toPrimitive(){return super.bitLength()>52?this.toString():this.toNumber()}toRawType(){return this instanceof this.registry.createClassUnsafe("Balance")?"Balance":`${this.isUnsigned?"u":"i"}${this.bitLength()}`}toString(e){return super.toString(e)}toU8a(e){return Rt(this,{bitLength:this.bitLength(),isLe:!0,isNegative:!this.isUnsigned})}}class nr extends tr{constructor(e,t=0,n){super(e,t,n,!0)}static with(e,t){return class extends nr{constructor(t,n){super(t,n,e)}toRawType(){return t||super.toRawType()}}}}class rr extends sn{toRawType(){return"None"}}class ar{registry;createdAtHash;initialU8aLength;isStorageFallback;__internal__Type;__internal__raw;constructor(e,t,n,{definition:r,setDefinition:a=M.y}={}){const i=r||a(en(e,t)),s=(0,gt.U)(n)&&n.length&&!wn(n)?0===n[0]?new rr(e):new i(e,n.subarray(1)):function(e,t,n){return n instanceof t?n:n instanceof ar?n.value instanceof t?n.value:n.isNone?new rr(e):new t(e,n.value):(0,an.F)(n)||(0,$e.o)(n)||"0x"===n||n instanceof rr?new rr(e):(0,gt.U)(n)?n.length&&0!==n[0]?new t(e,n.subarray(1)):new rr(e):new t(e,n)}(e,i,n);this.registry=e,this.__internal__Type=i,this.__internal__raw=s,s?.initialU8aLength&&(this.initialU8aLength=1+s.initialU8aLength)}static with(e){let t;const n=e=>(t=e,e);return class extends ar{constructor(r,a){super(r,e,a,{definition:t,setDefinition:n})}}}get encodedLength(){return 1+this.__internal__raw.encodedLength}get hash(){return this.registry.hash(this.toU8a())}get isEmpty(){return this.isNone}get isNone(){return this.__internal__raw instanceof rr}get isSome(){return!this.isNone}get value(){return this.__internal__raw}eq(e){return e instanceof ar?this.isSome===e.isSome&&this.value.eq(e.value):this.value.eq(e)}inspect(){if(this.isNone)return{outer:[new Uint8Array([0])]};const{inner:e,outer:t=[]}=this.__internal__raw.inspect();return{inner:e,outer:[new Uint8Array([1]),...t]}}toHex(){return this.isNone?"0x":(0,O.c)(this.toU8a().subarray(1))}toHuman(e,t){return this.__internal__raw.toHuman(e,t)}toJSON(){return this.isNone?null:this.__internal__raw.toJSON()}toPrimitive(e){return this.isNone?null:this.__internal__raw.toPrimitive(e)}toRawType(e){const t=this.registry.getClassName(this.__internal__Type)||new this.__internal__Type(this.registry).toRawType();return e?t:`Option<${t}>`}toString(){return this.__internal__raw.toString()}toU8a(e){if(e)return this.__internal__raw.toU8a(!0);const t=new Uint8Array(this.encodedLength);return this.isSome&&(t.set([1]),t.set(this.__internal__raw.toU8a(),1)),t}unwrap(){if(this.isNone)throw new Error("Option: unwrapping a None value");return this.__internal__raw}unwrapOr(e){return this.isSome?this.unwrap():e}unwrapOrDefault(){return this.isSome?this.unwrap():new this.__internal__Type(this.registry)}}class ir extends Wt{__internal__Types;constructor(e,t,n,{definition:r,setDefinition:a=M.y}={}){const i=r||a(Array.isArray(t)?[tn(e,t),[]]:(0,Je.m)(t)||(0,I.H)(t)?[[en(e,t)],[]]:nn(e,t));super(e,i[0].length),this.initialU8aLength=((0,gt.U)(n)?bn(e,this,n,i):function(e,t,n,r){if(Array.isArray(n)){const i=r[0];for(let r=0,s=i.length;rt=e;return class extends ir{constructor(r,a){super(r,e,a,{definition:t,setDefinition:n})}}}get encodedLength(){let e=0;for(let t=0,n=this.length;tnew e(this.registry).toRawType()))}inspect(){return{inner:this.inspectInner()}}toRawType(){return`(${this.__internal__Types[0].map((e=>this.registry.getClassName(e)||new e(this.registry).toRawType())).join(",")})`}toString(){return(0,Qe.P)(this.toJSON())}toU8a(e){return Lt(this.toU8aInner(e))}}class sr extends ir{__internal__rangeName;constructor(e,t,n,{rangeName:r="Range"}={}){super(e,[t,t],n),this.__internal__rangeName=r}static with(e){return class extends sr{constructor(t,n){super(t,e,n)}}}get start(){return this[0]}get end(){return this[1]}toRawType(){return`${this.__internal__rangeName}<${this.start.toRawType()}>`}}class or extends sr{constructor(e,t,n){super(e,t,n,{rangeName:"RangeInclusive"})}static with(e){return class extends or{constructor(t,n){super(t,e,n)}}}}class cr extends fn{constructor(e,t,n,r){super(e,{Ok:t,Err:n},r)}static with(e){return class extends cr{constructor(t,n){super(t,e.Ok,e.Err,n)}}}get asErr(){if(!this.isErr)throw new Error("Cannot extract Err value from Ok result, check isErr first");return this.value}get asOk(){if(!this.isOk)throw new Error("Cannot extract Ok value from Err result, check isOk first");return this.value}get isEmpty(){return this.isOk&&this.value.isEmpty}get isErr(){return!this.isOk}get isOk(){return 0===this.index}toRawType(){const e=this._toRawStruct();return`Result<${e.Ok},${e.Err}>`}}function dr(e,t){const n=new bt(0);for(let r=0,a=t.length;rr.strings.includes(t[n])))}constructor(n,r){super(n,e,r,t)}}}get encodedLength(){return this.__internal__byteLength}get hash(){return this.registry.hash(this.toU8a())}get isEmpty(){return 0===this.size}get strings(){return[...super.values()]}get valueEncoded(){return dr(this.__internal__allowed,this.strings)}add=e=>{if(this.__internal__allowed&&(0,$e.o)(this.__internal__allowed[e]))throw new Error(`Set: Invalid key '${e}' on add`);return super.add(e),this};eq(e){return Array.isArray(e)?Xt(this.strings.sort(),e.sort()):e instanceof Set?this.eq([...e.values()]):!(!(0,Zt.h)(e)&&!(0,Sn.H)(e))&&this.valueEncoded.eq(At(e))}inspect(){return{outer:[this.toU8a()]}}toHex(){return(0,O.c)(this.toU8a())}toHuman(){return this.toJSON()}toJSON(){return this.strings}toNumber(){return this.valueEncoded.toNumber()}toPrimitive(){return this.toJSON()}toRawType(){return(0,Qe.P)({_set:this.__internal__allowed})}toString(){return`[${this.strings.join(", ")}]`}toU8a(e){return Rt(this.valueEncoded,{bitLength:8*this.__internal__byteLength,isLe:!0})}}class pr extends tr{static with(e,t){return class extends pr{constructor(t,n){super(t,n,e)}toRawType(){return t||super.toRawType()}}}}function hr(e){return Lt([Ft(e.length),e])}const br=10485760;class mr extends ft{constructor(e,t){const[n,r]=!(0,gt.U)(t)||t instanceof ft?Array.isArray(t)||(0,I.H)(t)?[(0,N.Y)(t),0]:[t,0]:function(e){if(!e.length)return[new Uint8Array,0];const[t,n]=xt(e),r=t+n;if(n>br)throw new Error(`Bytes length ${n.toString()} exceeds 10485760`);if(r>e.length)throw new Error(`Bytes: required length less than remainder, expected at least ${r}, found ${e.length}`);return[e.subarray(t,r),r]}(t);super(e,n,r)}get encodedLength(){return this.length+Ft(this.length).length}inspect(e){const t=Ft(this.length);return{outer:e?[super.toU8a()]:this.length?[t,super.toU8a()]:[t]}}toRawType(){return"Bytes"}toU8a(e){return e?super.toU8a(e):hr(this)}}const yr=(0,ht.k)("Vec");function xr(e,t,n,r,a){if(Array.isArray(n)){const r=t.length;for(let s=0;s65536)throw new Error(`Vec length ${r.toString()} exceeds 65536`);return[t,r,n]}if(!e)return[null,0,0];throw new Error(`Expected array/hex input to Vec<*> decoding, found ${typeof e}: ${(0,Qe.P)(e)}`)}(n);super(e,s),this.__internal__Type=r||a(en(e,t)),this.initialU8aLength=((0,gt.U)(i)?mn(e,this,i,o,this.__internal__Type):xr(e,this,i,o,this.__internal__Type))[0]}static with(e){let t;const n=e=>t=e;return class extends gr{constructor(r,a){super(r,e,a,{definition:t,setDefinition:n})}}}get Type(){return this.__internal__Type.name}indexOf(e){const t=e instanceof this.__internal__Type?e:new this.__internal__Type(this.registry,e);for(let n=0,r=this.length;n`}}class vr extends ft{constructor(e,t=new Uint8Array,n=256){const[r,a]=function(e,t){const n=(0,N.Y)(e),r=t/8;if(!n.length)return[new Uint8Array(r),0];if((0,gt.U)(e)?n.lengthn=e;return class extends wr{constructor(a,i){super(a,e,t,i,{definition:n,setDefinition:r})}}}get Type(){return new this.__internal__Type(this.registry).toRawType()}get encodedLength(){let e=0;for(let t=0,n=this.length;t`}toString(){return this.__internal__decoded?this.__internal__decoded.toString():super.toString()}unwrap(){if(!this.__internal__decoded)throw new Error(`${this.__internal__opaqueName}: unwrapping an undecodable value`);return this.__internal__decoded}}class Tr extends kr{constructor(e,t,n){super(e,t,n,{opaqueName:"WrapperOpaque"})}static with(e){return class extends Tr{constructor(t,n){super(t,e,n)}}}get inner(){return this.unwrap()}}var Pr;!function(e){e[e.BTreeMap=0]="BTreeMap",e[e.BTreeSet=1]="BTreeSet",e[e.Compact=2]="Compact",e[e.DoNotConstruct=3]="DoNotConstruct",e[e.Enum=4]="Enum",e[e.HashMap=5]="HashMap",e[e.Int=6]="Int",e[e.Linkage=7]="Linkage",e[e.Null=8]="Null",e[e.Option=9]="Option",e[e.Plain=10]="Plain",e[e.Range=11]="Range",e[e.RangeInclusive=12]="RangeInclusive",e[e.Result=13]="Result",e[e.Set=14]="Set",e[e.Si=15]="Si",e[e.Struct=16]="Struct",e[e.Tuple=17]="Tuple",e[e.UInt=18]="UInt",e[e.Vec=19]="Vec",e[e.VecFixed=20]="VecFixed",e[e.WrapperKeepOpaque=21]="WrapperKeepOpaque",e[e.WrapperOpaque=22]="WrapperOpaque"}(Pr||(Pr={}));const Vr=["BTreeMap","BTreeSet","HashMap","Vec"],Mr=Vr.concat(["Compact","DoNotConstruct","Int","Linkage","Range","RangeInclusive","Result","Opaque","Option","UInt","WrapperKeepOpaque","WrapperOpaque"]),_r=["<","(","[",'"',","," "],Ir=[Nr("::Inherent","InherentOfflineReport",!1),Nr("VecDeque<","Vec<",!1),e=>{if(e.includes(" as HasCompact"))for(let t=0,n=e.length;t`)}return e},Cr("Bounded",!0),Cr("Weak",!1),function(){const e=/\s/g,t=/(T|Self)::/g,n=/<(T|Self)asTrait>::/g,r=/::/g,a=//g,i=/::Type/g;return s=>(e.lastIndex=0,t.lastIndex=0,n.lastIndex=0,r.lastIndex=0,a.lastIndex=0,i.lastIndex=0,s.replace(e,"").replace(t,"").replace(n,"").replace(r,"").replace(a,"Lookup").replace(i,""))}(),function(){const e=e=>`(${e},${e})`;return t=>Er(t,"PairOf<",e)}(),function(e){const t=e=>e;return n=>Er(n,e,t)}("Box<"),e=>{for(let t=0,n=e.length;t{const r=t-n.length;return r>=0&&e.substring(r,t)===n&&(0===r||_r.includes(e[r-1]))}))){const n=Or(e,t+1);e=`${e.substring(0,t)}${e.substring(n+1)}`}return e},Nr("String","Text"),Nr("Vec","Bytes"),Nr("&\\[u8\\]","Bytes"),Nr("&'static\\[u8\\]","Bytes"),Nr("RawAddress","Address"),Nr("Lookup::Source","LookupSource"),Nr("Lookup::Target","LookupTarget"),Nr("exec::StorageKey","ContractStorageKey"),function(){const e=/,\)/g,t=/\(([^,]+)\)/;return n=>(e.lastIndex=0,n.replace(e,")").replace(t,"$1"))}(),e=>{let t=0;for(;-1!==t;)if(t=e.indexOf("::"),0===t)e=e.substring(2);else if(-1!==t){let n=t;for(;-1!==n&&!_r.includes(e[n]);)n--;e=`${e.substring(0,n+1)}${e.substring(t+2)}`}return e},e=>e.trim()];function Or(e,t){let n=0;for(let r=t,a=e.length;r"===e[r]){if(!n)return r;n--}else"<"===e[r]&&n++;throw new Error(`Unable to find closing matching <> on '${e}' (start ${t})`)}function Nr(e,t,n=!0){const r=new RegExp(`(^${e}|${_r.map((t=>`\\${t}${e}`)).join("|")})`,"g"),a=e=>(r.lastIndex=0,n&&_r.includes(e[0])?`${e[0]}${t}`:t);return e=>e.replace(r,a)}function Er(e,t,n){let r=-1;for(;;){if(r=e.indexOf(t,r+1),-1===r)return e;const a=r+t.length,i=Or(e,a);e=`${e.substring(0,r)}${n(e.substring(a,i))}${e.substring(i+1)}`}}function Cr(e,t){return n=>{for(let r=0,a=Vr.length;r{const n=e.split(",").map((e=>e.trim())).filter((e=>e));return t&&n.pop(),`${a}<${n.join(",")}>`}))}return n}}const Ar=new Map;function Hr(e){const t=e.toString(),n=Ar.get(t);if(n)return n;let r=t;for(let a=0,i=Ir.length;a({index:t,info:Pr.Plain,name:e,type:"Null"}))):!function(e){const t=Object.values(e);if(t.some((e=>(0,Zt.h)(e)))){if(!t.every((e=>(0,Zt.h)(e)&&e>=0&&e<=255)))throw new Error("Invalid number-indexed enum definition");return!1}return!0}(t)?e.sub=Object.entries(t).map((([e,t])=>({index:t,info:Pr.Plain,name:e,type:"Null"}))):e.sub=Object.entries(t).map((([e,t],r)=>(0,_.Z)({},Xr(Br(t||"Null"),{name:e},n),{index:r}))),e}function Ur(e,t,n,r){return e.sub=0===n.length?[]:function(e){const t=[];let n=0,r=0,a=0,i=0,s=0;for(let o=0,c=e.length;o":n--;break;case"[":r++;break;case"]":r--;break;case"{":a++;break;case"}":a--;break;case"(":i++;break;case")":i--}if(n||r||a||i)throw new Error(`Invalid definition (missing terminators) found in ${e}`);return t.push(e.substring(s,e.length).trim()),t}(n).map((e=>Xr(e,{},r))),e}function zr(e,t,n,r){const[a,i]=t.substring(r.length+1,t.length-1).split(","),s=parseInt(a.trim(),10);if(s>8192||s%8)throw new Error(`${t}: Only support for ${r}, where length <= 8192 and a power of 8, found ${s}`);return e.displayName=i,e.length=s,e}function Dr(e,[t,n]){return e.startsWith(t)&&e.slice(-1*n.length)===n}const qr=[["[","]",Pr.VecFixed,function(e,t,n,r){const a=t.length-1;let i=-1,s=0;for(let l=1;l":s--}if(-1===i)throw new Error(`${t}: Unable to extract location of ';'`);const o=t.substring(1,i),[c,d]=t.substring(i+1,a).split(";"),u=parseInt(c.trim(),10);if(u>2048)throw new Error(`${t}: Only support for [Type; ], where length <= 2048`);return e.displayName=d,e.length=u,e.sub=Xr(o,{},r),e}],["{","}",Pr.Struct,function(e,t,n,r){const a=JSON.parse(t),i=Object.keys(a);return a._enum?Lr(e,a._enum,r,a._fallback):a._set?function(e,t,n){return e.info=Pr.Set,e.fallbackType=n,e.length=t._bitLength,e.sub=Object.entries(t).filter((([e])=>!e.startsWith("_"))).map((([e,t])=>({index:t,info:Pr.Plain,name:e,type:"Null"}))),e}(e,a._set,a._fallback):(e.alias=a._alias?new Map(Object.entries(a._alias)):void 0,e.fallbackType=a._fallback,e.sub=i.filter((e=>!Rr.includes(e))).map((e=>Xr(Br(a[e]),{name:e},r))),e)}],["(",")",Pr.Tuple,Ur],["BTreeMap<",">",Pr.BTreeMap,Ur],["HashMap<",">",Pr.HashMap,Ur],["Int<",">",Pr.Int,function(e,t,n){return zr(e,t,0,"Int")}],["Result<",">",Pr.Result,Ur],["UInt<",">",Pr.UInt,function(e,t,n){return zr(e,t,0,"UInt")}],["DoNotConstruct<",">",Pr.DoNotConstruct,function(e,t,n){return e.displayName=t.substring(15,t.length-1),e}]],jr=[["BTreeSet<",">",Pr.BTreeSet],["Compact<",">",Pr.Compact],["Linkage<",">",Pr.Linkage],["Opaque<",">",Pr.WrapperOpaque],["Option<",">",Pr.Option],["Range<",">",Pr.Range],["RangeInclusive<",">",Pr.RangeInclusive],["Vec<",">",Pr.Vec],["WrapperKeepOpaque<",">",Pr.WrapperKeepOpaque],["WrapperOpaque<",">",Pr.WrapperOpaque]];function Fr(e,[t,n]){return e.substring(t.length,e.length-n.length)}function Xr(e,{displayName:t,name:n}={},r=0){const a=Hr(e),i={displayName:t,info:Pr.Plain,name:n,type:a};if(++r>64)throw new Error("getTypeDef: Maximum nested limit reached");const s=qr.find((e=>Dr(a,e)));if(s)return i.info=s[2],s[3](i,a,Fr(a,s),r);const o=jr.find((e=>Dr(a,e)));return o&&(i.info=o[2],i.sub=Xr(Fr(a,o),{},r)),i}function Wr({lookupName:e,type:t}){return e||t}function Zr(e){if(!Array.isArray(e.sub))throw new Error(`Expected subtype as TypeDef[] in ${(0,Qe.P)(e)}`);return e.sub}function Gr(e){return Wr(function(e){if(!e.sub||Array.isArray(e.sub))throw new Error(`Expected subtype as TypeDef in ${(0,Qe.P)(e)}`);return e.sub}(e))}function Kr(e){const t=Zr(e),n={};for(let r=0,a=t.length;r`);return e.with(n,t)}function Qr(e,t){const[n,r]=Yr(t);return e.with(n,r)}function $r(e,t){return e.with(Gr(t))}const ea={[Pr.BTreeMap]:(e,t)=>Qr(Cn,t),[Pr.BTreeSet]:(e,t)=>$r(Bn,t),[Pr.Compact]:(e,t)=>$r(Ln,t),[Pr.DoNotConstruct]:(e,t)=>pt.with(t.displayName||t.type),[Pr.Enum]:(e,t)=>{const n=Zr(t);return fn.with(n.every((({type:e})=>"Null"===e))?n.reduce(((e,{index:t,name:n},r)=>{if(!n)throw new Error("No name found in sub definition");return e[n]=t||r,e}),{}):Kr(t))},[Pr.HashMap]:(e,t)=>Qr(Un,t),[Pr.Int]:(e,t)=>Jr(nr,t),[Pr.Linkage]:(e,t)=>{const n=`Option<${Gr(t)}>`,r=xn.with({previous:n,next:n});return r.prototype.toRawType=function(){return`Linkage<${this.next.toRawType(!0)}>`},r},[Pr.Null]:(e,t)=>sn,[Pr.Option]:(e,t)=>{if(!t.sub||Array.isArray(t.sub))throw new Error("Expected type information for Option");return $r(ar,t)},[Pr.Plain]:(e,t)=>e.getOrUnknown(t.type),[Pr.Range]:(e,t)=>$r(sr,t),[Pr.RangeInclusive]:(e,t)=>$r(or,t),[Pr.Result]:(e,t)=>{const[n,r]=Yr(t);return cr.with({Err:r,Ok:n})},[Pr.Set]:(e,t)=>fr.with(Zr(t).reduce(((e,{index:t,name:n})=>{if(!n||!(0,Zt.h)(t))throw new Error("No name found in sub definition");return e[n]=t,e}),{}),t.length),[Pr.Si]:(e,t)=>ta(e,e.lookup.getTypeDef(t.type)),[Pr.Struct]:(e,t)=>xn.with(Kr(t),t.alias),[Pr.Tuple]:(e,t)=>ir.with(Yr(t)),[Pr.UInt]:(e,t)=>Jr(pr,t),[Pr.Vec]:(e,{sub:t})=>{if(!t||Array.isArray(t))throw new Error("Expected type information for vector");return"u8"===t.type?mr:gr.with(Wr(t))},[Pr.VecFixed]:(e,{displayName:t,length:n,sub:r})=>{if(!(0,Zt.h)(n)||!r||Array.isArray(r))throw new Error("Expected length & type information for fixed vector");return"u8"===r.type?vr.with(8*n,t):wr.with(Wr(r),n)},[Pr.WrapperKeepOpaque]:(e,t)=>$r(kr,t),[Pr.WrapperOpaque]:(e,t)=>$r(Tr,t)};function ta(e,t){return e.getUnsafe(t.type,!1,t)}function na(e,t){return e.getUnsafe(t)||ta(e,e.isLookupType(t)?e.lookup.getTypeDef(t):Xr(t))}function ra(e,t){const n=(0,N.Y)(e),r=(0,N.Y)(t);if(n.length===r.length){const e=new DataView(n.buffer,n.byteOffset),t=new DataView(r.buffer,r.byteOffset),a=n.length%4|0,i=n.length-a|0;for(let n=0;n!e))))throw new Error(`${r}:: Decoded input doesn't match input, received ${(0,O.c)(t,512)} (${t.length} bytes), created ${(0,O.c)(n,512)} (${n.length} bytes)`)}function ia(e,t,n=[],{blockHash:r,isFallback:a,isOptional:i,isPedantic:s}={}){const o=new(i?ar.with(t):t)(e,...n);return s&&function(e,[t]){(0,gt.U)(t)?aa(e,t):(0,it.vq)(t)&&aa(e,(0,N.Y)(t))}(o,n),r&&(o.createdAtHash=sa(e,"BlockHash",[r])),a&&(o.isStorageFallback=!0),o}function sa(e,t,n=[],r={}){let a=null,i=null;try{return a=na(e,t),ia(e,a,n,r)}catch(s){i=new Error(`createType(${t}):: ${s.message}`)}if(a?.__fallbackType)try{return a=na(e,a.__fallbackType),ia(e,a,n,r)}catch{}throw i}function oa(e,t,n,r,a=0){const i=r?r(t,a):t.toString();let s;Object.defineProperty(e,i,{configurable:!0,enumerable:!0,get:function(){if(void 0===s){s=n(t,a,this);try{Object.defineProperty(this,i,{value:s})}catch{}}return s}})}function ca(e,t,n,r){for(let a=0,i=t.length;a0&&!t.includes(e.length))throw new Error(`Expected Uint8Array of length ${t}, not of length=${e.length}`)}function fa(e){if("function"!=typeof e||"function"!=typeof e.create)throw new Error("Hash should be wrapped by utils.wrapConstructor");ua(e.outputLen),ua(e.blockLen)}function pa(e,t=!0){if(e.destroyed)throw new Error("Hash instance has been destroyed");if(t&&e.finished)throw new Error("Hash#digest() has already been called")}function ha(e,t){la(e);const n=t.outputLen;if(e.lengthnew Uint32Array(e.buffer,e.byteOffset,Math.floor(e.byteLength/4));function ya(e){return e instanceof Uint8Array||null!=e&&"object"==typeof e&&"Uint8Array"===e.constructor.name}const xa=e=>new DataView(e.buffer,e.byteOffset,e.byteLength),ga=(e,t)=>e<<32-t|e>>>t;if(!(68===new Uint8Array(new Uint32Array([287454020]).buffer)[0]))throw new Error("Non little-endian hardware is not supported");function va(e){if("string"==typeof e&&(e=function(e){if("string"!=typeof e)throw new Error("utf8ToBytes expected string, got "+typeof e);return new Uint8Array((new TextEncoder).encode(e))}(e)),!ya(e))throw new Error("expected Uint8Array, got "+typeof e);return e}class wa{clone(){return this._cloneInto()}}function Sa(e){const t=t=>e().update(va(t)).digest(),n=e();return t.outputLen=n.outputLen,t.blockLen=n.blockLen,t.create=()=>e(),t}function ka(e){const t=(t,n)=>e(n).update(va(t)).digest(),n=e({});return t.outputLen=n.outputLen,t.blockLen=n.blockLen,t.create=t=>e(t),t}function Ta(e=32){if(ba&&"function"==typeof ba.getRandomValues)return ba.getRandomValues(new Uint8Array(e));throw new Error("crypto.getRandomValues must be defined")}const Pa=new Uint8Array([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,14,10,4,8,9,15,13,6,1,12,0,2,11,7,5,3,11,8,12,0,5,2,15,13,10,14,3,6,7,1,9,4,7,9,3,1,13,12,11,14,2,6,5,10,4,0,15,8,9,0,5,7,2,4,10,15,14,1,11,12,6,8,3,13,2,12,6,10,0,11,8,3,4,13,7,5,15,14,1,9,12,5,1,15,14,13,4,10,0,7,6,3,9,2,8,11,13,11,7,14,12,1,3,9,5,0,15,4,8,6,2,10,6,15,14,9,11,3,0,8,12,2,13,7,1,4,10,5,10,2,8,4,7,6,1,5,15,11,9,14,3,12,13,0,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,14,10,4,8,9,15,13,6,1,12,0,2,11,7,5,3]);class Va extends wa{constructor(e,t,n={},r,a,i){if(super(),this.blockLen=e,this.outputLen=t,this.length=0,this.pos=0,this.finished=!1,this.destroyed=!1,ua(e),ua(t),ua(r),t<0||t>r)throw new Error("outputLen bigger than keyLen");if(void 0!==n.key&&(n.key.length<1||n.key.length>r))throw new Error(`key must be up 1..${r} byte long or undefined`);if(void 0!==n.salt&&n.salt.length!==a)throw new Error(`salt must be ${a} byte long or undefined`);if(void 0!==n.personalization&&n.personalization.length!==i)throw new Error(`personalization must be ${i} byte long or undefined`);this.buffer32=ma(this.buffer=new Uint8Array(e))}update(e){pa(this);const{blockLen:t,buffer:n,buffer32:r}=this,a=(e=va(e)).length,i=e.byteOffset,s=e.buffer;for(let o=0;or[t]=e))}digest(){const{buffer:e,outputLen:t}=this;this.digestInto(e);const n=e.slice(0,t);return this.destroy(),n}_cloneInto(e){const{buffer:t,length:n,finished:r,destroyed:a,outputLen:i,pos:s}=this;return e||(e=new this.constructor({dkLen:i})),e.set(...this.get()),e.length=n,e.finished=r,e.destroyed=a,e.outputLen=i,e.buffer.set(t),e.pos=s,e}}const Ma=BigInt(2**32-1),_a=BigInt(32);function Ia(e,t=!1){return t?{h:Number(e&Ma),l:Number(e>>_a&Ma)}:{h:0|Number(e>>_a&Ma),l:0|Number(e&Ma)}}function Oa(e,t=!1){let n=new Uint32Array(e.length),r=new Uint32Array(e.length);for(let a=0;ae<>>32-n,Ea=(e,t,n)=>t<>>32-n,Ca=(e,t,n)=>t<>>64-n,Aa=(e,t,n)=>e<>>64-n;const Ha={fromBig:Ia,split:Oa,toBig:(e,t)=>BigInt(e>>>0)<<_a|BigInt(t>>>0),shrSH:(e,t,n)=>e>>>n,shrSL:(e,t,n)=>e<<32-n|t>>>n,rotrSH:(e,t,n)=>e>>>n|t<<32-n,rotrSL:(e,t,n)=>e<<32-n|t>>>n,rotrBH:(e,t,n)=>e<<64-n|t>>>n-32,rotrBL:(e,t,n)=>e>>>n-32|t<<64-n,rotr32H:(e,t)=>t,rotr32L:(e,t)=>e,rotlSH:Na,rotlSL:Ea,rotlBH:Ca,rotlBL:Aa,add:function(e,t,n,r){const a=(t>>>0)+(r>>>0);return{h:e+n+(a/2**32|0)|0,l:0|a}},add3L:(e,t,n)=>(e>>>0)+(t>>>0)+(n>>>0),add3H:(e,t,n,r)=>t+n+r+(e/2**32|0)|0,add4L:(e,t,n,r)=>(e>>>0)+(t>>>0)+(n>>>0)+(r>>>0),add4H:(e,t,n,r,a)=>t+n+r+a+(e/2**32|0)|0,add5H:(e,t,n,r,a,i)=>t+n+r+a+i+(e/2**32|0)|0,add5L:(e,t,n,r,a)=>(e>>>0)+(t>>>0)+(n>>>0)+(r>>>0)+(a>>>0)},Ra=Ha,Ba=new Uint32Array([4089235720,1779033703,2227873595,3144134277,4271175723,1013904242,1595750129,2773480762,2917565137,1359893119,725511199,2600822924,4215389547,528734635,327033209,1541459225]),La=new Uint32Array(32);function Ua(e,t,n,r,a,i){const s=a[i],o=a[i+1];let c=La[2*e],d=La[2*e+1],u=La[2*t],l=La[2*t+1],f=La[2*n],p=La[2*n+1],h=La[2*r],b=La[2*r+1],m=Ra.add3L(c,u,s);d=Ra.add3H(m,d,l,o),c=0|m,({Dh:b,Dl:h}={Dh:b^d,Dl:h^c}),({Dh:b,Dl:h}={Dh:Ra.rotr32H(b,h),Dl:Ra.rotr32L(b,h)}),({h:p,l:f}=Ra.add(p,f,b,h)),({Bh:l,Bl:u}={Bh:l^p,Bl:u^f}),({Bh:l,Bl:u}={Bh:Ra.rotrSH(l,u,24),Bl:Ra.rotrSL(l,u,24)}),La[2*e]=c,La[2*e+1]=d,La[2*t]=u,La[2*t+1]=l,La[2*n]=f,La[2*n+1]=p,La[2*r]=h,La[2*r+1]=b}function za(e,t,n,r,a,i){const s=a[i],o=a[i+1];let c=La[2*e],d=La[2*e+1],u=La[2*t],l=La[2*t+1],f=La[2*n],p=La[2*n+1],h=La[2*r],b=La[2*r+1],m=Ra.add3L(c,u,s);d=Ra.add3H(m,d,l,o),c=0|m,({Dh:b,Dl:h}={Dh:b^d,Dl:h^c}),({Dh:b,Dl:h}={Dh:Ra.rotrSH(b,h,16),Dl:Ra.rotrSL(b,h,16)}),({h:p,l:f}=Ra.add(p,f,b,h)),({Bh:l,Bl:u}={Bh:l^p,Bl:u^f}),({Bh:l,Bl:u}={Bh:Ra.rotrBH(l,u,63),Bl:Ra.rotrBL(l,u,63)}),La[2*e]=c,La[2*e+1]=d,La[2*t]=u,La[2*t+1]=l,La[2*n]=f,La[2*n+1]=p,La[2*r]=h,La[2*r+1]=b}class Da extends Va{constructor(e={}){super(128,void 0===e.dkLen?64:e.dkLen,e,64,16,16),this.v0l=0|Ba[0],this.v0h=0|Ba[1],this.v1l=0|Ba[2],this.v1h=0|Ba[3],this.v2l=0|Ba[4],this.v2h=0|Ba[5],this.v3l=0|Ba[6],this.v3h=0|Ba[7],this.v4l=0|Ba[8],this.v4h=0|Ba[9],this.v5l=0|Ba[10],this.v5h=0|Ba[11],this.v6l=0|Ba[12],this.v6h=0|Ba[13],this.v7l=0|Ba[14],this.v7h=0|Ba[15];const t=e.key?e.key.length:0;if(this.v0l^=this.outputLen|t<<8|65536|1<<24,e.salt){const t=ma(va(e.salt));this.v4l^=t[0],this.v4h^=t[1],this.v5l^=t[2],this.v5h^=t[3]}if(e.personalization){const t=ma(va(e.personalization));this.v6l^=t[0],this.v6h^=t[1],this.v7l^=t[2],this.v7h^=t[3]}if(e.key){const t=new Uint8Array(this.blockLen);t.set(va(e.key)),this.update(t)}}get(){let{v0l:e,v0h:t,v1l:n,v1h:r,v2l:a,v2h:i,v3l:s,v3h:o,v4l:c,v4h:d,v5l:u,v5h:l,v6l:f,v6h:p,v7l:h,v7h:b}=this;return[e,t,n,r,a,i,s,o,c,d,u,l,f,p,h,b]}set(e,t,n,r,a,i,s,o,c,d,u,l,f,p,h,b){this.v0l=0|e,this.v0h=0|t,this.v1l=0|n,this.v1h=0|r,this.v2l=0|a,this.v2h=0|i,this.v3l=0|s,this.v3h=0|o,this.v4l=0|c,this.v4h=0|d,this.v5l=0|u,this.v5h=0|l,this.v6l=0|f,this.v6h=0|p,this.v7l=0|h,this.v7h=0|b}compress(e,t,n){this.get().forEach(((e,t)=>La[t]=e)),La.set(Ba,16);let{h:r,l:a}=Ra.fromBig(BigInt(this.length));La[24]=Ba[8]^a,La[25]=Ba[9]^r,n&&(La[28]=~La[28],La[29]=~La[29]);let i=0;const s=Pa;for(let o=0;o<12;o++)Ua(0,4,8,12,e,t+2*s[i++]),za(0,4,8,12,e,t+2*s[i++]),Ua(1,5,9,13,e,t+2*s[i++]),za(1,5,9,13,e,t+2*s[i++]),Ua(2,6,10,14,e,t+2*s[i++]),za(2,6,10,14,e,t+2*s[i++]),Ua(3,7,11,15,e,t+2*s[i++]),za(3,7,11,15,e,t+2*s[i++]),Ua(0,5,10,15,e,t+2*s[i++]),za(0,5,10,15,e,t+2*s[i++]),Ua(1,6,11,12,e,t+2*s[i++]),za(1,6,11,12,e,t+2*s[i++]),Ua(2,7,8,13,e,t+2*s[i++]),za(2,7,8,13,e,t+2*s[i++]),Ua(3,4,9,14,e,t+2*s[i++]),za(3,4,9,14,e,t+2*s[i++]);this.v0l^=La[0]^La[16],this.v0h^=La[1]^La[17],this.v1l^=La[2]^La[18],this.v1h^=La[3]^La[19],this.v2l^=La[4]^La[20],this.v2h^=La[5]^La[21],this.v3l^=La[6]^La[22],this.v3h^=La[7]^La[23],this.v4l^=La[8]^La[24],this.v4h^=La[9]^La[25],this.v5l^=La[10]^La[26],this.v5h^=La[11]^La[27],this.v6l^=La[12]^La[28],this.v6h^=La[13]^La[29],this.v7l^=La[14]^La[30],this.v7h^=La[15]^La[31],La.fill(0)}destroy(){this.destroyed=!0,this.buffer32.fill(0),this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)}}const qa=ka((e=>new Da(e)));var ja=n(98657),Fa=n(56398);const Xa=ct.Ur.crypto;const Wa={getRandomValues:function(e){return Xa.getRandomValues(e)}},Za={crypto:Wa};class Ga{__internal__bridge;constructor(e){this.__internal__bridge=e}abort=()=>{throw new Error("abort")};__wbindgen_is_undefined=e=>void 0===this.__internal__bridge.getObject(e);__wbindgen_throw=(e,t)=>{throw new Error(this.__internal__bridge.getString(e,t))};__wbg_self_1b7a39e3a92c949c=()=>this.__internal__bridge.addObject(Za);__wbg_require_604837428532a733=(e,t)=>{throw new Error(`Unable to require ${this.__internal__bridge.getString(e,t)}`)};__wbg_crypto_968f1772287e2df0=e=>this.__internal__bridge.addObject(Wa);__wbg_getRandomValues_a3d34b4fee3c2869=e=>this.__internal__bridge.addObject(Wa.getRandomValues);__wbg_getRandomValues_f5e14ab7ac8e995d=(e,t,n)=>{Wa.getRandomValues(this.__internal__bridge.getU8a(t,n))};__wbg_randomFillSync_d5bd2d655fdf256a=(e,t,n)=>{throw new Error("randomFillsync is not available")};__wbindgen_object_drop_ref=e=>{this.__internal__bridge.takeObject(e)}}function Ka(e,t,n){return async r=>{const a={error:null,type:"none",wasm:null};try{if(!t?.length)throw new Error("No WebAssembly provided for initialization");if("object"!=typeof WebAssembly||"function"!=typeof WebAssembly.instantiate)throw new Error("WebAssembly is not available in your environment");const e=await WebAssembly.instantiate(t,{wbg:r});a.wasm=e.instance.exports,a.type="wasm"}catch(i){"function"==typeof n?(a.wasm=n(r),a.type="asm"):(a.error=`FATAL: Unable to initialize @polkadot/wasm-${e}:: ${i.message}`,console.error(a.error))}return a}}const Ya=Uint8Array,Ja=Uint16Array,Qa=Uint32Array,$a=new Ya([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),ei=new Ya([0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0,0,0,0]),ti=new Ya([0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,0,0]),ni=(e,t)=>{const n=new Ja(31);for(let a=0;a<31;++a)n[a]=t+=1<>>1|(21845&$w)<<1;e=(52428&e)>>>2|(13107&e)<<2,e=(61680&e)>>>4|(3855&e)<<4,si[$w]=((65280&e)>>>8|(255&e)<<8)>>>1}const oi=(e,t,n)=>{const r=e.length;let a=0;const i=new Ja(t);for(;a>n]=r}}else for(o=new Ja(r),a=0;a>15-e[a]);return o},ci=new Ya(288);for(let $w=0;$w<144;++$w)ci[$w]=8;for(let $w=144;$w<256;++$w)ci[$w]=9;for(let $w=256;$w<280;++$w)ci[$w]=7;for(let $w=280;$w<288;++$w)ci[$w]=8;const di=new Ya(32);for(let $w=0;$w<32;++$w)di[$w]=5;const ui=oi(ci,9,1),li=oi(di,5,1),fi=(e,t,n)=>{const r=t>>>3;return(e[r]|e[r+1]<<8)>>>(7&t)&n},pi=(e,t)=>{const n=t>>>3;return(e[n]|e[n+1]<<8|e[n+2]<<16)>>>(7&t)},hi=e=>{let t=e[0];for(let n=1,r=e.length;nt&&(t=e[n]);return t},bi=(e,t,n)=>{const r=!n||n.i;n||(n={});const a=e.length,i=!t||!r;t||(t=new Ya(3*a));const s=e=>{let n=t.length;if(e>n){const r=new Ya(Math.max(n<<1,e));r.set(t),t=r}};let o=n.f||0,c=n.p||0,d=n.b||0,u=n.l,l=n.d,f=n.m,p=n.n;if(o&&!u)return t;const h=a<<3;do{if(!u){n.f=o=fi(e,c,1);const m=fi(e,c+1,3);if(c+=3,!m){const o=((b=c)>>>3)+(7&b&&1)+4,u=e[o-4]|e[o-3]<<8,l=o+u;if(l>a){if(r)throw"unexpected EOF";break}i&&s(d+u),t.set(e.subarray(o,l),d),n.b=d+=u,n.p=c=l<<3;continue}if(1==m)u=ui,l=li,f=9,p=5;else{if(2!=m)throw"invalid block type";{const t=fi(e,c,31)+257,n=fi(e,c+10,15)+4,a=t+fi(e,c+5,31)+1;c+=14;const i=new Ya(a),s=new Ya(19);for(let r=0;rh)break;const b=oi(s,o,1);for(let r=0;r>>4;if(n<16)i[r++]=n;else{let t=0,a=0;for(16==n?(a=3+fi(e,c,3),c+=2,t=i[r-1]):17==n?(a=3+fi(e,c,7),c+=3):18==n&&(a=11+fi(e,c,127),c+=7);a--;)i[r++]=t}}const m=i.subarray(0,t),y=i.subarray(t);f=hi(m),p=hi(y),u=oi(m,f,1),l=oi(y,p,1)}}if(c>h)throw"unexpected EOF"}i&&s(d+131072);const m=(1<>>4;if(c+=15&n,c>h)throw"unexpected EOF";if(!n)throw"invalid length/literal";if(r<256)t[d++]=r;else{if(256==r){u=void 0;break}{let n=r-254;if(r>264){const t=r-257,a=ei[t];n=fi(e,c,(1<>>4;if(!a)throw"invalid distance";c+=15&a;let u=ii[o];if(o>3){const t=ti[o];u+=pi(e,c)&(1<h)throw"unexpected EOF";i&&s(d+131072);const f=d+n;for(;d{(null==t||t<0)&&(t=0),(null==n||n>e.length)&&(n=e.length);const r=new(e instanceof Ja?Ja:e instanceof Qa?Qa:Ya)(n-t);return r.set(e.subarray(t,n)),r})(t,0,d)};function mi(e,t){return bi(((e=>{if(8!=(15&e[0])||e[0]>>>4>7||(e[0]<<8|e[1])%31)throw"invalid zlib data";if(32&e[1])throw"invalid zlib data: preset dictionaries not supported"})(e),e.subarray(2,-4)),t)}const yi="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",xi=new Array(256);for(let $w=0,eS=64;$w=8&&(t[++a]=n>>>(r-=8)&255);return t}(gi.aI,new Uint8Array(gi.lY)),new Uint8Array(gi.JH)),wi=Ka("crypto",vi,null),Si=new class{__internal__createWasm;__internal__heap;__internal__wbg;__internal__cachegetInt32;__internal__cachegetUint8;__internal__heapNext;__internal__wasm;__internal__wasmError;__internal__wasmPromise;__internal__type;constructor(e){this.__internal__createWasm=e,this.__internal__cachegetInt32=null,this.__internal__cachegetUint8=null,this.__internal__heap=new Array(32).fill(void 0).concat(void 0,null,!0,!1),this.__internal__heapNext=this.__internal__heap.length,this.__internal__type="none",this.__internal__wasm=null,this.__internal__wasmError=null,this.__internal__wasmPromise=null,this.__internal__wbg={...new Ga(this)}}get error(){return this.__internal__wasmError}get type(){return this.__internal__type}get wasm(){return this.__internal__wasm}async init(e){this.__internal__wasmPromise&&!e||(this.__internal__wasmPromise=(e||this.__internal__createWasm)(this.__internal__wbg));const{error:t,type:n,wasm:r}=await this.__internal__wasmPromise;return this.__internal__type=n,this.__internal__wasm=r,this.__internal__wasmError=t,this.__internal__wasm}getObject(e){return this.__internal__heap[e]}dropObject(e){e<36||(this.__internal__heap[e]=this.__internal__heapNext,this.__internal__heapNext=e)}takeObject(e){const t=this.getObject(e);return this.dropObject(e),t}addObject(e){this.__internal__heapNext===this.__internal__heap.length&&this.__internal__heap.push(this.__internal__heap.length+1);const t=this.__internal__heapNext;return this.__internal__heapNext=this.__internal__heap[t],this.__internal__heap[t]=e,t}getInt32(){return null!==this.__internal__cachegetInt32&&this.__internal__cachegetInt32.buffer===this.__internal__wasm.memory.buffer||(this.__internal__cachegetInt32=new Int32Array(this.__internal__wasm.memory.buffer)),this.__internal__cachegetInt32}getUint8(){return null!==this.__internal__cachegetUint8&&this.__internal__cachegetUint8.buffer===this.__internal__wasm.memory.buffer||(this.__internal__cachegetUint8=new Uint8Array(this.__internal__wasm.memory.buffer)),this.__internal__cachegetUint8}getU8a(e,t){return this.getUint8().subarray(e/1,e/1+t)}getString(e,t){return lt(this.getU8a(e,t))}allocU8a(e){const t=this.__internal__wasm.__wbindgen_malloc(1*e.length);return this.getUint8().set(e,t/1),[t,e.length]}allocString(e){return this.allocU8a((0,Fa.d)(e))}resultU8a(){const e=this.getInt32()[2],t=this.getInt32()[3],n=this.getU8a(e,t).slice();return this.__internal__wasm.__wbindgen_free(e,1*t),n}resultString(){return lt(this.resultU8a())}}(wi);function ki(e){return(...t)=>{if(!Si.wasm)throw new Error("The WASM interface has not been initialized. Ensure that you wait for the initialization Promise with waitReady() from @polkadot/wasm-crypto (or cryptoWaitReady() from @polkadot/util-crypto) before attempting to use WASM-only interfaces.");return e(Si.wasm,...t)}}const Ti=ki(((e,t)=>(e.ext_secp_pub_expand(8,...Si.allocU8a(t)),Si.resultU8a()))),Pi=ki(((e,t,n,r)=>(e.ext_blake2b(8,...Si.allocU8a(t),...Si.allocU8a(n),r),Si.resultU8a()))),Vi=ki(((e,t)=>(e.ext_keccak256(8,...Si.allocU8a(t)),Si.resultU8a()))),Mi=ki(((e,t)=>(e.ext_keccak512(8,...Si.allocU8a(t)),Si.resultU8a()))),_i=ki(((e,t,n)=>(e.ext_twox(8,...Si.allocU8a(t),n),Si.resultU8a())));function Ii(){return!!Si.wasm}async function Oi(){try{const e=await async function(e){return Si.init(e)}();return!!e}catch{return!1}}function Ni(e){return(...t)=>(0,O.c)(e(...t))}function Ei(e,t){return(n,r=256,a)=>{const i=(0,N.Y)(n);return!ja.vc||!a&&Ii()?e[r](i):t[r](i)}}function Ci(e,t=256,n,r){const a=Math.ceil(t/8),i=(0,N.Y)(e);return!ja.vc||!r&&Ii()?Pi(i,(0,N.Y)(n),a):qa(i,n?{dkLen:a,key:n}:{dkLen:a})}const Ai=Ni(Ci),Hi={extrinsic:{},payload:{}},Ri={LimitParathreadCommits:Hi,OnlyStakingAndClaims:Hi,PrevalidateAttests:Hi,RestrictFunctionality:Hi,TransactionCallFilter:Hi,ValidateDoubleVoteReports:Hi},Bi={DisallowSigned:Hi},Li={extrinsic:{era:"ExtrinsicEra"},payload:{blockHash:"Hash"}},Ui={extrinsic:{tip:"Compact"},payload:{}},zi={ChargeTransactionPayment:Ui,CheckBlockGasLimit:Hi,CheckEra:Li,CheckGenesis:{extrinsic:{},payload:{genesisHash:"Hash"}},CheckMortality:Li,CheckNonZeroSender:Hi,CheckNonce:{extrinsic:{nonce:"Compact"},payload:{}},CheckSpecVersion:{extrinsic:{},payload:{specVersion:"u32"}},CheckTxVersion:{extrinsic:{},payload:{transactionVersion:"u32"}},CheckVersion:{extrinsic:{},payload:{specVersion:"u32"}},CheckWeight:Hi,LockStakingStatus:Hi,SkipCheckIfFeeless:Ui,ValidateEquivocationReport:Hi},Di=(0,_.Z)({},zi,Ri,Bi,{ChargeAssetTxPayment:{extrinsic:{tip:"Compact",assetId:"TAssetConversion"},payload:{}}}),qi=["CheckVersion","CheckGenesis","CheckEra","CheckNonce","CheckWeight","ChargeTransactionPayment","CheckBlockGasLimit"];function ji(e,t,n={}){return e.map((e=>n[e]||Di[e])).filter((e=>!!e)).reduce(((e,n)=>(0,_.Z)(e,n[t])),{})}class Fi extends ir{__internal__meta;__internal__method;__internal__names=null;__internal__section;__internal__typeDef;constructor(e,t,n,r="",a=""){const i=n?.fields||[];super(e,i.map((({type:t})=>e.createLookupType(t))),t),this.__internal__meta=n,this.__internal__method=a,this.__internal__section=r,this.__internal__typeDef=i.map((({type:t})=>e.lookup.getTypeDef(t)));const s=i.map((({name:t})=>e.lookup.sanitizeField(t)[0])).filter((e=>!!e));s.length===i.length&&(this.__internal__names=s,Ye(this,s,((e,t)=>this[t])))}get meta(){return this.__internal__meta}get method(){return this.__internal__method}get names(){return this.__internal__names}get section(){return this.__internal__section}get typeDef(){return this.__internal__typeDef}toHuman(e,t){if(null!==this.__internal__names){const n={};for(let r=0,a=this.__internal__names.length;re.toString()))}:null,super.toHuman(e,t))}}class Wi{registry;createdAtHash;initialU8aLength;isStorageFallback;__internal__raw;constructor(e,t,n){this.initialU8aLength=n,this.__internal__raw=t,this.registry=e}get encodedLength(){return this.toU8a().length}get hash(){return this.registry.hash(this.toU8a())}get inner(){return this.__internal__raw}get isEmpty(){return this.__internal__raw.isEmpty}eq(e){return this.__internal__raw.eq(e)}inspect(){return this.__internal__raw.inspect()}toHex(e){return this.__internal__raw.toHex(e)}toHuman(e,t){return this.__internal__raw.toHuman(e,t)}toJSON(){return this.__internal__raw.toJSON()}toPrimitive(e){return this.__internal__raw.toPrimitive(e)}toString(){return this.__internal__raw.toString()}toU8a(e){return this.__internal__raw.toU8a(e)}unwrap(){return this.__internal__raw}valueOf(){return this.__internal__raw}}class Zi extends xn{constructor(e,t,{isSigned:n}={}){super(e,{signature:"ExtrinsicSignatureV4",method:"Call"},Zi.decodeExtrinsic(e,t,n))}static decodeExtrinsic(e,t,n=!1){if(t instanceof Zi)return t;if(t instanceof e.createClassUnsafe("Call"))return{method:t};if((0,gt.U)(t)){const r=e.createTypeUnsafe("ExtrinsicSignatureV4",[t,{isSigned:n}]);return{method:e.createTypeUnsafe("Call",[t.subarray(r.encodedLength)]),signature:r}}return t||{}}get encodedLength(){return this.toU8a().length}get method(){return this.getT("method")}get signature(){return this.getT("signature")}get version(){return 4}addSignature(e,t,n){return this.signature.addSignature(e,t,n),this}sign(e,t){return this.signature.sign(this.method,e,t),this}signFake(e,t){return this.signature.signFake(this.method,e,t),this}}const Gi=128,Ki=new Uint8Array,Yi=new Uint8Array([0]),Ji=127,Qi=["ExtrinsicUnknown","ExtrinsicUnknown","ExtrinsicUnknown","ExtrinsicUnknown","ExtrinsicV4"];function $i(e,t,n){if(t instanceof ns)return t.unwrap();const r=(n&Gi)===Gi,a=Qi[n&Ji]||Qi[0];return e.createTypeUnsafe(a,[t,{isSigned:r,version:n}])}function es(e,t,n=4){return(0,gt.U)(t)||Array.isArray(t)||(0,it.vq)(t)?function(e,t,n){if(!t.length)return $i(e,new Uint8Array,n);const[r,a]=yt(t),i=r+a.toNumber();if(i>t.length)throw new Error(`Extrinsic: length less than remainder, expected at least ${i}, found ${t.length}`);const s=t.subarray(r,i);return $i(e,s.subarray(1),s[0])}(e,(0,N.Y)(t),n):t instanceof e.createClassUnsafe("Call")?$i(e,{method:t},n):$i(e,t,n)}class ts extends Wi{constructor(e,t,n){super(e,t,n);const r=Object.keys(e.getSignedExtensionTypes()),a=e=>this.inner.signature[e];for(let i=0,s=r.length;i>12,1),o=(a>>4)*s;if(i<4||o>=i)throw new Error("Invalid data passed to Mortal era");return[new rs(e,i),new rs(e,o)]}(e,(0,N.Y)(t));if(!t)return[new rs(e),new rs(e)];if((0,et.K)(t))return function(e,t){const{current:n,period:r}=t;let a=Math.pow(2,Math.ceil(Math.log2(r)));a=Math.min(Math.max(a,4),65536);const i=n%a,s=Math.max(a>>12,1),o=i/s*s;return[new rs(e,a),new rs(e,o)]}(e,t);throw new Error("Invalid data passed to Mortal era")}function ss(e=new Uint8Array){if((0,gt.U)(e))return e.length&&0!==e[0]?new Uint8Array([1,e[0],e[1]]):new Uint8Array([0]);if(!e)return new Uint8Array([0]);if(e instanceof ds)return ss(e.toU8a());if((0,it.vq)(e))return ss((0,as.G)(e));if((0,et.K)(e)){const t=Object.entries(e).map((([e,t])=>[e.toLowerCase(),t])),n=t.find((([e])=>"mortalera"===e.toLowerCase())),r=t.find((([e])=>"immortalera"===e.toLowerCase()));return n?{MortalEra:n[1]}:r?{ImmortalEra:r[1]}:{MortalEra:e}}throw new Error("Invalid data passed to Era")}class os extends ft{constructor(e,t){super(e,Yi)}}class cs extends ir{constructor(e,t){super(e,{period:rs,phase:rs},is(e,t))}get encodedLength(){return 2}get period(){return this[0]}get phase(){return this[1]}toHuman(){return{period:Jn(this.period),phase:Jn(this.phase)}}toJSON(){return this.toHex()}toU8a(e){const t=this.period.toNumber(),n=Math.min(15,Math.max(1,function(e){const t=e.toString(2);let n=0;for(;"0"===t[t.length-1-n];)n++;return n}(t)-1))+(this.phase.toNumber()/Math.max(t>>12,1)<<4);return new Uint8Array([255&n,n>>8])}birth(e){const t=this.phase.toNumber(),n=this.period.toNumber();return~~((Math.max(At(e).toNumber(),t)-t)/n)*n+t}death(e){return this.birth(e)+this.period.toNumber()}}class ds extends fn{constructor(e,t){super(e,{ImmortalEra:os,MortalEra:cs},ss(t))}get encodedLength(){return this.isImmortalEra?this.asImmortalEra.encodedLength:this.asMortalEra.encodedLength}get asImmortalEra(){if(!this.isImmortalEra)throw new Error(`Cannot convert '${this.type}' via asImmortalEra`);return this.inner}get asMortalEra(){if(!this.isMortalEra)throw new Error(`Cannot convert '${this.type}' via asMortalEra`);return this.inner}get isImmortalEra(){return 0===this.index}get isMortalEra(){return this.index>0}toU8a(e){return this.isMortalEra?this.asMortalEra.toU8a(e):this.asImmortalEra.toU8a(e)}}const us=["ExtrinsicPayloadUnknown","ExtrinsicPayloadUnknown","ExtrinsicPayloadUnknown","ExtrinsicPayloadUnknown","ExtrinsicPayloadV4"];class ls extends Wi{constructor(e,t,{version:n}={}){super(e,function(e,t,n=4){return t instanceof ls?t.unwrap():e.createTypeUnsafe(us[n]||us[0],[t,{version:n}])}(e,t,n))}get blockHash(){return this.inner.blockHash}get era(){return this.inner.era}get genesisHash(){return this.inner.genesisHash||this.registry.createTypeUnsafe("Hash",[])}get method(){return this.inner.method}get nonce(){return this.inner.nonce}get specVersion(){return this.inner.specVersion||this.registry.createTypeUnsafe("u32",[])}get tip(){return this.inner.tip||this.registry.createTypeUnsafe("Compact",[])}get transactionVersion(){return this.inner.transactionVersion||this.registry.createTypeUnsafe("u32",[])}get assetId(){return this.inner.assetId}eq(e){return this.inner.eq(e)}sign(e){const t=this.inner.sign(e);return{signature:(0,O.c)(t)}}toHuman(e,t){return this.inner.toHuman(e,t)}toJSON(){return this.toHex()}toRawType(){return"ExtrinsicPayload"}toString(){return this.toHex()}toU8a(e){return super.toU8a(!!e&&{method:!0})}}class fs extends xn{constructor(e,t,{version:n=0}={}){throw super(e,{}),new Error(`Unsupported extrinsic payload version ${n}`)}}class ps extends xn{constructor(e,t,{isSigned:n=!1,version:r=0}={}){throw super(e,{}),new Error(`Unsupported ${n?"":"un"}signed extrinsic version ${r&Ji}`)}}const hs={address:"Address",blockHash:"Hash",blockNumber:"BlockNumber",era:"ExtrinsicEra",genesisHash:"Hash",method:"Call",nonce:"Compact",runtimeVersion:"RuntimeVersion",signedExtensions:"Vec",tip:"Compact",version:"u8"};class bs extends xn{__internal__extraTypes;constructor(e,t){const n=(0,_.Z)({},e.getSignedExtensionTypes(),e.getSignedExtensionExtra());super(e,(0,_.Z)({},n,hs),t),this.__internal__extraTypes={};const r=e=>this.get(e);for(const[a,i]of Object.entries(n))hs[a]||(this.__internal__extraTypes[a]=i),Ke(this,a,r)}get address(){return this.getT("address")}get blockHash(){return this.getT("blockHash")}get blockNumber(){return this.getT("blockNumber")}get era(){return this.getT("era")}get genesisHash(){return this.getT("genesisHash")}get method(){return this.getT("method")}get nonce(){return this.getT("nonce")}get runtimeVersion(){return this.getT("runtimeVersion")}get signedExtensions(){return this.getT("signedExtensions")}get tip(){return this.getT("tip")}get assetId(){return this.getT("assetId")}get version(){return this.getT("version")}toPayload(){const e={},t=Object.keys(this.__internal__extraTypes);for(let n=0,r=t.length;ne.toString())),specVersion:this.runtimeVersion.specVersion.toHex(),tip:this.tip.toHex(),transactionVersion:this.runtimeVersion.transactionVersion.toHex(),version:this.version.toNumber()})}toRaw(){const e=this.toPayload(),t=(0,O.c)(this.registry.createTypeUnsafe("ExtrinsicPayload",[e,{version:e.version}]).toU8a({method:!0}));return{address:e.address,data:t,type:"payload"}}}class ms extends xn{__internal__signOptions;constructor(e,t){super(e,(0,_.Z)({method:"Bytes"},e.getSignedExtensionTypes(),e.getSignedExtensionExtra()),t),this.__internal__signOptions={withType:e.createTypeUnsafe("ExtrinsicSignature",[])instanceof fn}}inspect(){return super.inspect({method:!0})}get blockHash(){return this.getT("blockHash")}get era(){return this.getT("era")}get genesisHash(){return this.getT("genesisHash")}get method(){return this.getT("method")}get nonce(){return this.getT("nonce")}get specVersion(){return this.getT("specVersion")}get tip(){return this.getT("tip")}get transactionVersion(){return this.getT("transactionVersion")}get assetId(){return this.getT("assetId")}sign(e){return function(e,t,n,r){const a=n.length>256?e.hash(n):n;return t.sign(a,r)}(this.registry,e,this.toU8a({method:!0}),this.__internal__signOptions)}}const ys=new Uint8Array(256).fill(1);function xs(e,t){return e.createTypeUnsafe("Address",[(0,gt.U)(t)?(0,O.c)(t):t])}class gs extends xn{__internal__signKeys;constructor(e,t,{isSigned:n}={}){const r=e.getSignedExtensionTypes();super(e,(0,_.Z)({signer:"Address",signature:"ExtrinsicSignature"},r),gs.decodeExtrinsicSignature(t,n)),this.__internal__signKeys=Object.keys(r),Ye(this,this.__internal__signKeys,(e=>this.get(e)))}static decodeExtrinsicSignature(e,t=!1){return e&&(e instanceof gs||t)?e:Ki}get encodedLength(){return this.isSigned?super.encodedLength:0}get isSigned(){return!this.signature.isEmpty}get era(){return this.getT("era")}get nonce(){return this.getT("nonce")}get signature(){return this.multiSignature.value||this.multiSignature}get multiSignature(){return this.getT("signature")}get signer(){return this.getT("signer")}get tip(){return this.getT("tip")}get assetId(){return this.getT("assetId")}_injectSignature(e,t,n){for(let r=0,a=this.__internal__signKeys.length;re,n=(e,t)=>n=>e(t(n));return{encode:e.map((e=>e.encode)).reduceRight(n,t),decode:e.map((e=>e.decode)).reduce(n,t)}}function ks(e){return{encode:t=>{if(!Array.isArray(t)||t.length&&"number"!=typeof t[0])throw new Error("alphabet.encode input should be an array of numbers");return t.map((t=>{if(vs(t),t<0||t>=e.length)throw new Error(`Digit index outside alphabet: ${t} (alphabet: ${e.length})`);return e[t]}))},decode:t=>{if(!Array.isArray(t)||t.length&&"string"!=typeof t[0])throw new Error("alphabet.decode input should be array of strings");return t.map((t=>{if("string"!=typeof t)throw new Error(`alphabet.decode: not string element=${t}`);const n=e.indexOf(t);if(-1===n)throw new Error(`Unknown letter: "${t}". Allowed: ${e}`);return n}))}}}function Ts(e=""){if("string"!=typeof e)throw new Error("join separator should be string");return{encode:t=>{if(!Array.isArray(t)||t.length&&"string"!=typeof t[0])throw new Error("join.encode input should be array of strings");for(let e of t)if("string"!=typeof e)throw new Error(`join.encode: non-string input=${e}`);return t.join(e)},decode:t=>{if("string"!=typeof t)throw new Error("join.decode input should be string");return t.split(e)}}}function Ps(e,t="="){if(vs(e),"string"!=typeof t)throw new Error("padding chr should be string");return{encode(n){if(!Array.isArray(n)||n.length&&"string"!=typeof n[0])throw new Error("padding.encode input should be array of strings");for(let e of n)if("string"!=typeof e)throw new Error(`padding.encode: non-string input=${e}`);for(;n.length*e%8;)n.push(t);return n},decode(n){if(!Array.isArray(n)||n.length&&"string"!=typeof n[0])throw new Error("padding.encode input should be array of strings");for(let e of n)if("string"!=typeof e)throw new Error(`padding.decode: non-string input=${e}`);let r=n.length;if(r*e%8)throw new Error("Invalid padding: string should have whole number of bytes");for(;r>0&&n[r-1]===t;r--)if(!((r-1)*e%8))throw new Error("Invalid padding: string has too much padding");return n.slice(0,r)}}}function Vs(e){if("function"!=typeof e)throw new Error("normalize fn should be function");return{encode:e=>e,decode:t=>e(t)}}function Ms(e,t,n){if(t<2)throw new Error(`convertRadix: wrong from=${t}, base cannot be less than 2`);if(n<2)throw new Error(`convertRadix: wrong to=${n}, base cannot be less than 2`);if(!Array.isArray(e))throw new Error("convertRadix: data should be array");if(!e.length)return[];let r=0;const a=[],i=Array.from(e);for(i.forEach((e=>{if(vs(e),e<0||e>=t)throw new Error(`Wrong integer: ${e}`)}));;){let e=0,s=!0;for(let a=r;at?_s(t,e%t):e,Is=(e,t)=>e+(t-_s(e,t));function Os(e,t,n,r){if(!Array.isArray(e))throw new Error("convertRadix2: data should be array");if(t<=0||t>32)throw new Error(`convertRadix2: wrong from=${t}`);if(n<=0||n>32)throw new Error(`convertRadix2: wrong to=${n}`);if(Is(t,n)>32)throw new Error(`convertRadix2: carry overflow from=${t} to=${n} carryBits=${Is(t,n)}`);let a=0,i=0;const s=2**n-1,o=[];for(const c of e){if(vs(c),c>=2**t)throw new Error(`convertRadix2: invalid data word=${c} from=${t}`);if(a=a<32)throw new Error(`convertRadix2: carry overflow pos=${i} from=${t}`);for(i+=t;i>=n;i-=n)o.push((a>>i-n&s)>>>0);a&=2**i-1}if(a=a<=t)throw new Error("Excess padding");if(!r&&a)throw new Error(`Non-zero padding: ${a}`);return r&&i>0&&o.push(a>>>0),o}function Ns(e){return vs(e),{encode:t=>{if(!ws(t))throw new Error("radix.encode input should be Uint8Array");return Ms(Array.from(t),256,e)},decode:t=>{if(!Array.isArray(t)||t.length&&"number"!=typeof t[0])throw new Error("radix.decode input should be array of numbers");return Uint8Array.from(Ms(t,e,256))}}}function Es(e,t=!1){if(vs(e),e<=0||e>32)throw new Error("radix2: bits should be in (0..32]");if(Is(8,e)>32||Is(e,8)>32)throw new Error("radix2: carry overflow");return{encode:n=>{if(!ws(n))throw new Error("radix2.encode input should be Uint8Array");return Os(Array.from(n),8,e,!t)},decode:n=>{if(!Array.isArray(n)||n.length&&"number"!=typeof n[0])throw new Error("radix2.decode input should be array of numbers");return Uint8Array.from(Os(n,e,8,t))}}}const Cs=Ss(Es(4),ks("0123456789ABCDEF"),Ts("")),As=Ss(Es(5),ks("ABCDEFGHIJKLMNOPQRSTUVWXYZ234567"),Ps(5),Ts("")),Hs=(Es(5),ks("0123456789ABCDEFGHIJKLMNOPQRSTUV"),Ps(5),Ts(""),Es(5),ks("0123456789ABCDEFGHJKMNPQRSTVWXYZ"),Ts(""),Vs((e=>e.toUpperCase().replace(/O/g,"0").replace(/[IL]/g,"1"))),Ss(Es(6),ks("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"),Ps(6),Ts(""))),Rs=Ss(Es(6),ks("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_"),Ps(6),Ts("")),Bs=(Es(6),ks("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_"),Ts(""),e=>Ss(Ns(58),ks(e),Ts(""))),Ls=Bs("123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"),Us=[0,2,3,5,6,7,9,10,11],zs={encode(e){let t="";for(let n=0;n(new TextDecoder).decode(e),decode:e=>(new TextEncoder).encode(e)};Es(4),ks("0123456789abcdef"),Ts(""),Vs((e=>{if("string"!=typeof e||e.length%2)throw new TypeError(`hex.decode: expected string, got ${typeof e} with length ${e.length}`);return e.toLowerCase()}));function qs({coder:e,ipfs:t},n){return(r,a)=>(n(r,a),e.decode(t&&a?r.substring(1):r))}function js({coder:e,ipfs:t}){return(n,r)=>{const a=e.encode((0,N.Y)(n));return t&&r?`${t}${a}`:a}}function Fs({chars:e,ipfs:t,type:n,withPadding:r}){return(a,i)=>{if("string"!=typeof a)throw new Error(`Expected ${n} string input`);if(t&&i&&!a.startsWith(t))throw new Error(`Expected ipfs-compatible ${n} to start with '${t}'`);for(let t=i?1:0,s=a.length;te)),prefix:42};function so(e,t,n=-1){if(!e)throw new Error("Invalid empty address passed");if((0,gt.U)(e)||(0,it.vq)(e))return(0,N.Y)(e);try{const r=Zs(e);if(!io.allowedEncodedLengths.includes(r.length))throw new Error("Invalid decoded address length");const[a,i,s,o]=function(e){const t=64&e[0]?2:1,n=1===t?e[0]:(63&e[0])<<2|e[1]>>6|(63&e[1])<<8,r=[34+t,35+t].includes(e.length),a=e.length-(r?2:1),i=Ys(e.subarray(0,a));return[0==(128&e[0])&&![46,47].includes(e[0])&&(r?e[e.length-2]===i[0]&&e[e.length-1]===i[1]:e[e.length-1]===i[0]),a,t,n]}(r);if(!a&&!t)throw new Error("Invalid decoded address checksum");if(-1!==n&&n!==o)throw new Error(`Expected ss58Format ${n}, received ${o}`);return r.slice(s,i)}catch(r){throw new Error(`Decoding ${e}: ${r.message}`)}}function oo(e,t=io.prefix){const n=so(e);if(t<0||t>16383||[46,47].includes(t))throw new Error("Out of range ss58Format specified");if(!io.allowedDecodedLengths.includes(n.length))throw new Error(`Expected a valid key to convert, with length ${io.allowedDecodedLengths.join(", ")}`);const r=Bt(t<64?[t]:[(252&t)>>2|64,t>>8|(3&t)<<6],n);return Gs(Bt(r,Ys(r).subarray(0,[32,33].includes(n.length)?2:1)))}function co(e){if((0,gt.U)(e)||Array.isArray(e))return(0,N.Y)(e);if(!e)return new Uint8Array;if((0,it.vq)(e))return(0,as.G)(e);if((0,I.H)(e))return so(e.toString());throw new Error("Unknown type passed to AccountId constructor, found typeof "+typeof e)}class uo extends vr{constructor(e,t=264,n){const r=co(n);if(8*r.lengthe)))throw new Error(`Invalid AccountId provided, expected ${t>>3} bytes, found ${r.length}`);super(e,r,t)}eq(e){return super.eq(co(e))}toHuman(){return this.toJSON()}toJSON(){return this.toString()}toPrimitive(){return this.toJSON()}toString(){return oo(this,this.registry.chainSS58)}toRawType(){return"AccountId"}}class lo extends uo{constructor(e,t){super(e,256,t)}}class fo extends uo{constructor(e,t){super(e,264,t)}}class po extends(pr.with(32)){__UIntType="u32"}const ho=new bt(239),bo=new bt(1).shln(16),mo=new bt(1).shln(32);function yo(e){return e instanceof xo?e.toBn():(0,Sn.H)(e)||(0,Zt.h)(e)||(0,it.vq)(e)||(0,gt.U)(e)||(0,Ot.C)(e)?e:yo(so(e))}class xo extends po{constructor(e,t=new bt(0)){super(e,yo(t))}static calcLength(e){const t=At(e);return t.lte(ho)?1:t.lt(bo)?2:t.lt(mo)?4:8}static readLength(e){const t=e[0];return 252===t?[1,2]:253===t?[1,4]:254===t?[1,8]:[0,1]}static writeLength(e){switch(e.length){case 2:return new Uint8Array([252]);case 4:return new Uint8Array([253]);case 8:return new Uint8Array([254]);default:return new Uint8Array([])}}eq(e){return(0,Sn.H)(e)||(0,Zt.h)(e)?super.eq(e):super.eq(this.registry.createTypeUnsafe("AccountIndex",[e]))}toHuman(){return this.toJSON()}toJSON(){return this.toString()}toPrimitive(){return this.toJSON()}toString(){const e=xo.calcLength(this);return oo(this.toU8a().subarray(0,e),this.registry.chainSS58)}toRawType(){return"AccountIndex"}}class go extends xn{constructor(e,t){super(e,{header:"Header",extrinsics:"Vec"},t)}get contentHash(){return this.registry.hash(this.toU8a())}get extrinsics(){return this.getT("extrinsics")}get hash(){return this.header.hash}get header(){return this.getT("header")}}function vo(e,t){return t.fields.reduce(((t,{name:n,type:r},a)=>(t[n.unwrapOr(`param${a}`).toString()]=e.createLookupType(r),t)),{})}function wo(e,t=new Uint8Array,n){if((0,gt.U)(t)||(0,it.vq)(t))return function(e,t,n){const r=e.firstCallIndex.slice();r.set(t.subarray(0,2),0);const a=n||e.findMetaCall(r).meta;return{args:t.subarray(2),argsDef:vo(e,a),callIndex:r,meta:a}}(e,(0,N.Y)(t),n);if((0,et.K)(t)&&t.callIndex&&t.args)return function(e,t,n){const{args:r,callIndex:a}=t,i=a instanceof So?a.toU8a():a,s=n||e.findMetaCall(i).meta;return{args:r,argsDef:vo(e,s),callIndex:a,meta:s}}(e,t,n);throw new Error(`Call: Cannot decode value '${t}' of type ${typeof t}`)}class So extends vr{constructor(e,t){super(e,t,16)}toPrimitive(){return this.toHex()}}class ko extends xn{_meta;constructor(e,t,n){const r=wo(e,t,n);try{super(e,{callIndex:So,args:xn.with(r.argsDef)},r)}catch(a){let t="unknown.unknown";try{const n=e.findMetaCall(r.callIndex);t=`${n.section}.${n.method}`}catch{}throw new Error(`Call: failed decoding ${t}:: ${a.message}`)}this._meta=r.meta}get args(){return[...this.getT("args").values()]}get argsDef(){return vo(this.registry,this.meta)}get argsEntries(){return[...this.getT("args").entries()]}get callIndex(){return this.getT("callIndex").toU8a()}get data(){return this.getT("args").toU8a()}get meta(){return this._meta}get method(){return this.registry.findMetaCall(this.callIndex).method}get section(){return this.registry.findMetaCall(this.callIndex).section}is(e){return e.callIndex[0]===this.callIndex[0]&&e.callIndex[1]===this.callIndex[1]}toHuman(e,t){let n;try{n=this.registry.findMetaCall(this.callIndex)}catch{}return(0,_.Z)({args:this.argsEntries.reduce(((n,[r,a])=>(0,_.Z)(n,{[r]:a.toHuman(e,t)})),{}),method:n?.method,section:n?.section},e&&n?{docs:n.meta.docs.map((e=>e.toString()))}:null)}toRawType(){return"Call"}}function To(e,t,n,r=!0){return n&&(0,Je.m)(n.unwrapOrDefault)?n:e.createTypeUnsafe(t,[r?(0,an.F)(n)||(0,$e.o)(n)?null:Array.isArray(n)?n:[n]:n])}function Po(e,t){return(t&&(0,Je.m)(t.entries)?[...t.entries()]:Object.entries(t||{})).reduce(((t,[n,r])=>(t[n]=function(e,t,n){return"ss58Format"===t?To(e,"Option",n,!1):"tokenDecimals"===t?To(e,"Option>",n):"tokenSymbol"===t?To(e,"Option>",n):"isEthereum"===t?To(e,"Bool",n,!1):n}(e,n,r),t)),{isEthereum:e.createTypeUnsafe("Bool",[]),ss58Format:e.createTypeUnsafe("Option",[]),tokenDecimals:e.createTypeUnsafe("Option>",[]),tokenSymbol:e.createTypeUnsafe("Option>",[])})}class Vo extends at{constructor(e,t){super(e,Po(e,t))}get isEthereum(){return this.getT("isEthereum")}get ss58Format(){return this.getT("ss58Format")}get tokenDecimals(){return this.getT("tokenDecimals")}get tokenSymbol(){return this.getT("tokenSymbol")}}const Mo=(0,Fa.d)("aura"),_o=(0,Fa.d)("BABE"),Io=(0,Fa.d)("FRNK"),Oo=(0,Fa.d)("pow_"),No=(0,Fa.d)("nmbs");class Eo extends vr{constructor(e,t){super(e,(0,Zt.h)(t)?Rt(t,{isLe:!1}):t,32)}get isAura(){return this.eq(Mo)}get isBabe(){return this.eq(_o)}get isGrandpa(){return this.eq(Io)}get isPow(){return this.eq(Oo)}get isNimbus(){return this.eq(No)}extractAuthor(e,t){if(t?.length){if(this.isAura)return function(e,t,n){return n[e.createTypeUnsafe("RawAuraPreDigest",[t.toU8a(!0)]).slotNumber.mod(new bt(n.length)).toNumber()]}(this.registry,e,t);if(this.isBabe)return function(e,t,n){return n[e.createTypeUnsafe("RawBabePreDigestCompat",[t.toU8a(!0)]).value.toNumber()]}(this.registry,e,t)}if(this.isPow||this.isNimbus)return function(e,t){return e.createTypeUnsafe("AccountId",[t])}(this.registry,e)}toHuman(){return this.toString()}toRawType(){return"ConsensusEngineId"}toString(){return this.isAscii?lt(this):(0,O.c)(this)}}const Co=new Uint8Array([255]);function Ao(e,t){return t instanceof Ho?t.inner:t instanceof lo||t instanceof xo?t:(0,Sn.H)(t)||(0,Zt.h)(t)||(0,Ot.C)(t)?e.createTypeUnsafe("AccountIndex",[t]):Array.isArray(t)||(0,it.vq)(t)||(0,gt.U)(t)?function(e,t){if(32===t.length)return e.createTypeUnsafe("AccountId",[t]);if(255===t[0])return e.createTypeUnsafe("AccountId",[t.subarray(1)]);const[n,r]=xo.readLength(t);return e.createTypeUnsafe("AccountIndex",[mt(t.subarray(n,n+r))])}(e,(0,N.Y)(t)):function(e,t){const n=so(t);return 32===n.length?e.createTypeUnsafe("AccountId",[n]):e.createTypeUnsafe("AccountIndex",[mt(n)])}(e,t)}class Ho extends Wi{constructor(e,t=new Uint8Array){super(e,Ao(e,t))}get encodedLength(){const e=this._rawLength;return e+(e>1?1:0)}get _rawLength(){return this.inner instanceof xo?xo.calcLength(this.inner):this.inner.encodedLength}inspect(){const e=this.inner.toU8a().subarray(0,this._rawLength);return{outer:[new Uint8Array(this.inner instanceof xo?xo.writeLength(e):Co),e]}}toHex(){return(0,O.c)(this.toU8a())}toRawType(){return"Address"}toU8a(e){const t=this.inner.toU8a().subarray(0,this._rawLength);return e?t:Bt(this.inner instanceof xo?xo.writeLength(t):Co,t)}}function Ro(e,t){return[0,32].includes(t.length)?{Id:t}:20===t.length?{Address20:t}:t.length<=8?{Index:e.createTypeUnsafe("AccountIndex",[t]).toNumber()}:t}class Bo extends fn{constructor(e,t){super(e,{Id:"AccountId",Index:"Compact",Raw:"Bytes",Address32:"H256",Address20:"H160"},function(e,t){return t instanceof lo?{Id:t}:(0,gt.U)(t)?Ro(e,t):t instanceof Bo?t:t instanceof xo||(0,Sn.H)(t)||(0,Zt.h)(t)?{Index:(0,Zt.h)(t)?t:t.toNumber()}:(0,I.H)(t)?Ro(e,so(t.toString())):t}(e,t))}inspect(){const{inner:e,outer:t=[]}=this.inner.inspect();return{inner:e,outer:[new Uint8Array([this.index]),...t]}}toString(){return this.value.toString()}}class Lo extends Boolean{registry;createdAtHash;initialU8aLength=1;isStorageFallback;constructor(e,t=!1){super((0,gt.U)(t)?1===t[0]:t instanceof Boolean?t.valueOf():!!t),this.registry=e}get encodedLength(){return 1}get hash(){return this.registry.hash(this.toU8a())}get isEmpty(){return this.isFalse}get isFalse(){return!this.isTrue}get isTrue(){return this.valueOf()}eq(e){return this.valueOf()===(e instanceof Boolean?e.valueOf():e)}inspect(){return{outer:[this.toU8a()]}}toHex(){return(0,O.c)(this.toU8a())}toHuman(){return this.toJSON()}toJSON(){return this.valueOf()}toPrimitive(){return this.toJSON()}toRawType(){return"bool"}toString(){return this.toJSON().toString()}toU8a(e){return new Uint8Array([this.valueOf()?1:0])}}const Uo=128,zo=0,Do=0;function qo(e){return e?new Uint8Array([Uo|Do]):new Uint8Array([zo])}function jo(e,t){return(0,gt.U)(t)?function(e){return e.length?e.subarray(0,1):new Uint8Array([zo])}(t):(0,$e.o)(t)||t instanceof Boolean||pn(t)?qo(new Lo(e,t).isTrue):(0,Zt.h)(t)?qo(t<0):function(e,t){return new Uint8Array([(new Lo(e,t.aye).isTrue?Uo:zo)|e.createTypeUnsafe("Conviction",[t.conviction||Do]).index])}(e,t)}class Fo extends vr{__internal__aye;__internal__conviction;constructor(e,t){const n=jo(e,t);super(e,n,8),this.__internal__aye=(n[0]&Uo)===Uo,this.__internal__conviction=this.registry.createTypeUnsafe("Conviction",[127&n[0]])}get conviction(){return this.__internal__conviction}get isAye(){return this.__internal__aye}get isNay(){return!this.isAye}toHuman(e){return{conviction:this.conviction.toHuman(e),vote:this.isAye?"Aye":"Nay"}}toPrimitive(){return{aye:this.isAye,conviction:this.conviction.toPrimitive()}}toRawType(){return"Vote"}}const[Xo,Wo,Zo]=[[],[],[]],Go=BigInt(0),Ko=BigInt(1),Yo=BigInt(2),Jo=BigInt(7),Qo=BigInt(256),$o=BigInt(113);for(let $w=0,eS=Ko,tS=1,nS=0;$w<24;$w++){[tS,nS]=[nS,(2*tS+3*nS)%5],Xo.push(2*(5*nS+tS)),Wo.push(($w+1)*($w+2)/2%64);let e=Go;for(let t=0;t<7;t++)eS=(eS<>Jo)*$o)%Qo,eS&Yo&&(e^=Ko<<(Ko<n>32?Ca(e,t,n):Na(e,t,n),rc=(e,t,n)=>n>32?Aa(e,t,n):Ea(e,t,n);class ac extends wa{constructor(e,t,n,r=!1,a=24){if(super(),this.blockLen=e,this.suffix=t,this.outputLen=n,this.enableXOF=r,this.rounds=a,this.pos=0,this.posOut=0,this.finished=!1,this.destroyed=!1,ua(n),0>=this.blockLen||this.blockLen>=200)throw new Error("Sha3 supports only keccak-f1600 function");this.state=new Uint8Array(200),this.state32=ma(this.state)}keccak(){!function(e,t=24){const n=new Uint32Array(10);for(let r=24-t;r<24;r++){for(let r=0;r<10;r++)n[r]=e[r]^e[r+10]^e[r+20]^e[r+30]^e[r+40];for(let r=0;r<10;r+=2){const t=(r+8)%10,a=(r+2)%10,i=n[a],s=n[a+1],o=nc(i,s,1)^n[t],c=rc(i,s,1)^n[t+1];for(let n=0;n<50;n+=10)e[r+n]^=o,e[r+n+1]^=c}let t=e[2],a=e[3];for(let n=0;n<24;n++){const r=Wo[n],i=nc(t,a,r),s=rc(t,a,r),o=Xo[n];t=e[o],a=e[o+1],e[o]=i,e[o+1]=s}for(let r=0;r<50;r+=10){for(let t=0;t<10;t++)n[t]=e[r+t];for(let t=0;t<10;t++)e[r+t]^=~n[(t+2)%10]&n[(t+4)%10]}e[0]^=ec[r],e[1]^=tc[r]}n.fill(0)}(this.state32,this.rounds),this.posOut=0,this.pos=0}update(e){pa(this);const{blockLen:t,state:n}=this,r=(e=va(e)).length;for(let a=0;a=n&&this.keccak();const i=Math.min(n-this.posOut,a-r);e.set(t.subarray(this.posOut,this.posOut+i),r),this.posOut+=i,r+=i}return e}xofInto(e){if(!this.enableXOF)throw new Error("XOF is not possible for this instance");return this.writeInto(e)}xof(e){return ua(e),this.xofInto(new Uint8Array(e))}digestInto(e){if(ha(e,this),this.finished)throw new Error("digest() was already called");return this.writeInto(e),this.destroy(),e}digest(){return this.digestInto(new Uint8Array(this.outputLen))}destroy(){this.destroyed=!0,this.state.fill(0)}_cloneInto(e){const{blockLen:t,suffix:n,outputLen:r,rounds:a,enableXOF:i}=this;return e||(e=new ac(t,n,r,i,a)),e.state32.set(this.state32),e.pos=this.pos,e.posOut=this.posOut,e.finished=this.finished,e.rounds=a,e.suffix=n,e.outputLen=r,e.enableXOF=i,e.destroyed=this.destroyed,e}}const ic=(e,t,n)=>Sa((()=>new ac(t,e,n))),sc=Ei({256:Vi,512:Mi},{256:ic(1,136,32),512:ic(1,72,64)});function oc(e){return!(!e||42!==e.length||!(0,it.vq)(e))&&(!(!/^(0x)?[0-9a-f]{40}$/.test(e)&&!/^(0x)?[0-9A-F]{40}$/.test(e))||function(e){const t=e.replace("0x",""),n=(0,O.c)(sc(t.toLowerCase()),-1,!1);for(let i=0;i<40;i++)if(r=t[i],a=parseInt(n[i],16),r!==(a>7?r.toUpperCase():r.toLowerCase()))return!1;var r,a;return!0}(e))}class cc extends wa{constructor(e,t,n,r){super(),this.blockLen=e,this.outputLen=t,this.padOffset=n,this.isLE=r,this.finished=!1,this.length=0,this.pos=0,this.destroyed=!1,this.buffer=new Uint8Array(e),this.view=xa(this.buffer)}update(e){pa(this);const{view:t,buffer:n,blockLen:r}=this,a=(e=va(e)).length;for(let i=0;ir-i&&(this.process(n,0),i=0);for(let u=i;u>a&i),o=Number(n&i),c=r?4:0,d=r?0:4;e.setUint32(t+c,s,r),e.setUint32(t+d,o,r)}(n,r-8,BigInt(8*this.length),a),this.process(n,0);const s=xa(e),o=this.outputLen;if(o%4)throw new Error("_sha2: outputLen should be aligned to 32bit");const c=o/4,d=this.get();if(c>d.length)throw new Error("_sha2: outputLen bigger than state");for(let u=0;ue&t^e&n^t&n,uc=new Uint32Array([1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298]),lc=new Uint32Array([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]),fc=new Uint32Array(64);class pc extends cc{constructor(){super(64,32,8,!1),this.A=0|lc[0],this.B=0|lc[1],this.C=0|lc[2],this.D=0|lc[3],this.E=0|lc[4],this.F=0|lc[5],this.G=0|lc[6],this.H=0|lc[7]}get(){const{A:e,B:t,C:n,D:r,E:a,F:i,G:s,H:o}=this;return[e,t,n,r,a,i,s,o]}set(e,t,n,r,a,i,s,o){this.A=0|e,this.B=0|t,this.C=0|n,this.D=0|r,this.E=0|a,this.F=0|i,this.G=0|s,this.H=0|o}process(e,t){for(let l=0;l<16;l++,t+=4)fc[l]=e.getUint32(t,!1);for(let l=16;l<64;l++){const e=fc[l-15],t=fc[l-2],n=ga(e,7)^ga(e,18)^e>>>3,r=ga(t,17)^ga(t,19)^t>>>10;fc[l]=r+fc[l-7]+n+fc[l-16]|0}let{A:n,B:r,C:a,D:i,E:s,F:o,G:c,H:d}=this;for(let l=0;l<64;l++){const e=d+(ga(s,6)^ga(s,11)^ga(s,25))+((u=s)&o^~u&c)+uc[l]+fc[l]|0,t=(ga(n,2)^ga(n,13)^ga(n,22))+dc(n,r,a)|0;d=c,c=o,o=s,s=i+e|0,i=a,a=r,r=n,n=e+t|0}var u;n=n+this.A|0,r=r+this.B|0,a=a+this.C|0,i=i+this.D|0,s=s+this.E|0,o=o+this.F|0,c=c+this.G|0,d=d+this.H|0,this.set(n,r,a,i,s,o,c,d)}roundClean(){fc.fill(0)}destroy(){this.set(0,0,0,0,0,0,0,0),this.buffer.fill(0)}}const hc=Sa((()=>new pc)),bc=(BigInt(0),BigInt(1)),mc=BigInt(2);function yc(e){return e instanceof Uint8Array||null!=e&&"object"==typeof e&&"Uint8Array"===e.constructor.name}const xc=Array.from({length:256},((e,t)=>t.toString(16).padStart(2,"0")));function gc(e){if(!yc(e))throw new Error("Uint8Array expected");let t="";for(let n=0;n=wc._0&&e<=wc._9?e-wc._0:e>=wc._A&&e<=wc._F?e-(wc._A-10):e>=wc._a&&e<=wc._f?e-(wc._a-10):void 0}function kc(e){if("string"!=typeof e)throw new Error("hex string expected, got "+typeof e);const t=e.length,n=t/2;if(t%2)throw new Error("padded hex string expected, got unpadded hex of length "+t);const r=new Uint8Array(n);for(let a=0,i=0;a(mc<new Uint8Array(e),Ec=e=>Uint8Array.from(e);function Cc(e,t,n){if("number"!=typeof e||e<2)throw new Error("hashLen must be a number");if("number"!=typeof t||t<2)throw new Error("qByteLen must be a number");if("function"!=typeof n)throw new Error("hmacFn must be a function");let r=Nc(e),a=Nc(e),i=0;const s=()=>{r.fill(1),a.fill(0),i=0},o=(...e)=>n(a,r,...e),c=(e=Nc())=>{a=o(Ec([0]),e),r=o(),0!==e.length&&(a=o(Ec([1]),e),r=o())},d=()=>{if(i++>=1e3)throw new Error("drbg: tried 1000 values");let e=0;const n=[];for(;e{let n;for(s(),c(e);!(n=t(d()));)c();return s(),n}}const Ac={bigint:e=>"bigint"==typeof e,function:e=>"function"==typeof e,boolean:e=>"boolean"==typeof e,string:e=>"string"==typeof e,stringOrUint8Array:e=>"string"==typeof e||yc(e),isSafeInteger:e=>Number.isSafeInteger(e),array:e=>Array.isArray(e),field:(e,t)=>t.Fp.isValid(e),hash:e=>"function"==typeof e&&Number.isSafeInteger(e.outputLen)};function Hc(e,t,n={}){const r=(t,n,r)=>{const a=Ac[n];if("function"!=typeof a)throw new Error(`Invalid validator "${n}", expected function`);const i=e[t];if(!(r&&void 0===i||a(i,e)))throw new Error(`Invalid param ${String(t)}=${i} (${typeof i}), expected ${n}`)};for(const[a,i]of Object.entries(t))r(a,i,!1);for(const[a,i]of Object.entries(n))r(a,i,!0);return e}const Rc=BigInt(0),Bc=BigInt(1),Lc=BigInt(2),Uc=BigInt(3),zc=BigInt(4),Dc=BigInt(5),qc=BigInt(8);BigInt(9),BigInt(16);function jc(e,t){const n=e%t;return n>=Rc?n:t+n}function Fc(e,t,n){if(n<=Rc||t 0");if(n===Bc)return Rc;let r=Bc;for(;t>Rc;)t&Bc&&(r=r*e%n),e=e*e%n,t>>=Bc;return r}function Xc(e,t,n){let r=e;for(;t-- >Rc;)r*=r,r%=n;return r}function Wc(e,t){if(e===Rc||t<=Rc)throw new Error(`invert: expected positive integers, got n=${e} mod=${t}`);let n=jc(e,t),r=t,a=Rc,i=Bc,s=Bc,o=Rc;for(;n!==Rc;){const e=r/n,t=r%n,c=a-s*e,d=i-o*e;r=n,n=t,a=s,i=o,s=c,o=d}if(r!==Bc)throw new Error("invert: does not exist");return jc(a,t)}function Zc(e){if(e%zc===Uc){const t=(e+Bc)/zc;return function(e,n){const r=e.pow(n,t);if(!e.eql(e.sqr(r),n))throw new Error("Cannot find square root");return r}}if(e%qc===Dc){const t=(e-Dc)/qc;return function(e,n){const r=e.mul(n,Lc),a=e.pow(r,t),i=e.mul(n,a),s=e.mul(e.mul(i,Lc),a),o=e.mul(i,e.sub(s,e.ONE));if(!e.eql(e.sqr(o),n))throw new Error("Cannot find square root");return o}}return function(e){const t=(e-Bc)/Lc;let n,r,a;for(n=e-Bc,r=0;n%Lc===Rc;n/=Lc,r++);for(a=Lc;ar?e.create().update(n).digest():n);for(let i=0;inew Qc(e,t).update(n).digest();$c.create=(e,t)=>new Qc(e,t);const ed=BigInt(0),td=BigInt(1);function nd(e){return function(e){const t=Gc.reduce(((e,t)=>(e[t]="function",e)),{ORDER:"bigint",MASK:"bigint",BYTES:"isSafeInteger",BITS:"isSafeInteger"});Hc(e,t)}(e.Fp),Hc(e,{n:"bigint",h:"bigint",Gx:"field",Gy:"field"},{nBitLength:"isSafeInteger",nByteLength:"isSafeInteger"}),Object.freeze({...Kc(e.n,e.nBitLength),...e,p:e.Fp.ORDER})}const{bytesToNumberBE:rd,hexToBytes:ad}=r,id={Err:class extends Error{constructor(e=""){super(e)}},_parseInt(e){const{Err:t}=id;if(e.length<2||2!==e[0])throw new t("Invalid signature integer tag");const n=e[1],r=e.subarray(2,n+2);if(!n||r.length!==n)throw new t("Invalid signature integer: wrong length");if(128&r[0])throw new t("Invalid signature integer: negative");if(0===r[0]&&!(128&r[1]))throw new t("Invalid signature integer: unnecessary leading zero");return{d:rd(r),l:e.subarray(n+2)}},toSig(e){const{Err:t}=id,n="string"==typeof e?ad(e):e;if(!yc(n))throw new Error("ui8a expected");let r=n.length;if(r<2||48!=n[0])throw new t("Invalid signature tag");if(n[1]!==r-2)throw new t("Invalid signature: incorrect length");const{d:a,l:i}=id._parseInt(n.subarray(2)),{d:s,l:o}=id._parseInt(i);if(o.length)throw new t("Invalid signature: left bytes after parsing");return{r:a,s:s}},hexFromSig(e){const t=e=>8&Number.parseInt(e[0],16)?"00"+e:e,n=e=>{const t=e.toString(16);return 1&t.length?`0${t}`:t},r=t(n(e.s)),a=t(n(e.r)),i=r.length/2,s=a.length/2,o=n(i),c=n(s);return`30${n(s+i+4)}02${c}${a}02${o}${r}`}},sd=BigInt(0),od=BigInt(1),cd=(BigInt(2),BigInt(3));BigInt(4);function dd(e){const t=function(e){const t=nd(e);Hc(t,{a:"field",b:"field"},{allowedPrivateKeyLengths:"array",wrapPrivateKey:"boolean",isTorsionFree:"function",clearCofactor:"function",allowInfinityPoint:"boolean",fromBytes:"function",toBytes:"function"});const{endo:n,Fp:r,a:a}=t;if(n){if(!r.eql(a,r.ZERO))throw new Error("Endomorphism can only be defined for Koblitz curves that have a=0");if("object"!=typeof n||"bigint"!=typeof n.beta||"function"!=typeof n.splitScalar)throw new Error("Expected endomorphism with beta: bigint and splitScalar: function")}return Object.freeze({...t})}(e),{Fp:n}=t,r=t.toBytes||((e,t,r)=>{const a=t.toAffine();return Ic(Uint8Array.from([4]),n.toBytes(a.x),n.toBytes(a.y))}),a=t.fromBytes||(e=>{const t=e.subarray(1);return{x:n.fromBytes(t.subarray(0,n.BYTES)),y:n.fromBytes(t.subarray(n.BYTES,2*n.BYTES))}});function i(e){const{a:r,b:a}=t,i=n.sqr(e),s=n.mul(i,e);return n.add(n.add(s,n.mul(e,r)),a)}if(!n.eql(n.sqr(t.Gy),i(t.Gx)))throw new Error("bad generator point: equation left != right");function s(e){return"bigint"==typeof e&&sdn.eql(e,n.ZERO);return a(t)&&a(r)?l.ZERO:new l(t,r,n.ONE)}get x(){return this.toAffine().x}get y(){return this.toAffine().y}static normalizeZ(e){const t=n.invertBatch(e.map((e=>e.pz)));return e.map(((e,n)=>e.toAffine(t[n]))).map(l.fromAffine)}static fromHex(e){const t=l.fromAffine(a(_c("pointHex",e)));return t.assertValidity(),t}static fromPrivateKey(e){return l.BASE.multiply(c(e))}_setWindowSize(e){this._WINDOW_SIZE=e,d.delete(this)}assertValidity(){if(this.is0()){if(t.allowInfinityPoint&&!n.is0(this.py))return;throw new Error("bad point: ZERO")}const{x:e,y:r}=this.toAffine();if(!n.isValid(e)||!n.isValid(r))throw new Error("bad point: x or y not FE");const a=n.sqr(r),s=i(e);if(!n.eql(a,s))throw new Error("bad point: equation left != right");if(!this.isTorsionFree())throw new Error("bad point: not in prime-order subgroup")}hasEvenY(){const{y:e}=this.toAffine();if(n.isOdd)return!n.isOdd(e);throw new Error("Field doesn't support isOdd")}equals(e){u(e);const{px:t,py:r,pz:a}=this,{px:i,py:s,pz:o}=e,c=n.eql(n.mul(t,o),n.mul(i,a)),d=n.eql(n.mul(r,o),n.mul(s,a));return c&&d}negate(){return new l(this.px,n.neg(this.py),this.pz)}double(){const{a:e,b:r}=t,a=n.mul(r,cd),{px:i,py:s,pz:o}=this;let c=n.ZERO,d=n.ZERO,u=n.ZERO,f=n.mul(i,i),p=n.mul(s,s),h=n.mul(o,o),b=n.mul(i,s);return b=n.add(b,b),u=n.mul(i,o),u=n.add(u,u),c=n.mul(e,u),d=n.mul(a,h),d=n.add(c,d),c=n.sub(p,d),d=n.add(p,d),d=n.mul(c,d),c=n.mul(b,c),u=n.mul(a,u),h=n.mul(e,h),b=n.sub(f,h),b=n.mul(e,b),b=n.add(b,u),u=n.add(f,f),f=n.add(u,f),f=n.add(f,h),f=n.mul(f,b),d=n.add(d,f),h=n.mul(s,o),h=n.add(h,h),f=n.mul(h,b),c=n.sub(c,f),u=n.mul(h,p),u=n.add(u,u),u=n.add(u,u),new l(c,d,u)}add(e){u(e);const{px:r,py:a,pz:i}=this,{px:s,py:o,pz:c}=e;let d=n.ZERO,f=n.ZERO,p=n.ZERO;const h=t.a,b=n.mul(t.b,cd);let m=n.mul(r,s),y=n.mul(a,o),x=n.mul(i,c),g=n.add(r,a),v=n.add(s,o);g=n.mul(g,v),v=n.add(m,y),g=n.sub(g,v),v=n.add(r,i);let w=n.add(s,c);return v=n.mul(v,w),w=n.add(m,x),v=n.sub(v,w),w=n.add(a,i),d=n.add(o,c),w=n.mul(w,d),d=n.add(y,x),w=n.sub(w,d),p=n.mul(h,v),d=n.mul(b,x),p=n.add(d,p),d=n.sub(y,p),p=n.add(y,p),f=n.mul(d,p),y=n.add(m,m),y=n.add(y,m),x=n.mul(h,x),v=n.mul(b,v),y=n.add(y,x),x=n.sub(m,x),x=n.mul(h,x),v=n.add(v,x),m=n.mul(y,v),f=n.add(f,m),m=n.mul(w,v),d=n.mul(g,d),d=n.sub(d,m),m=n.mul(g,y),p=n.mul(w,p),p=n.add(p,m),new l(d,f,p)}subtract(e){return this.add(e.negate())}is0(){return this.equals(l.ZERO)}wNAF(e){return p.wNAFCached(this,d,e,(e=>{const t=n.invertBatch(e.map((e=>e.pz)));return e.map(((e,n)=>e.toAffine(t[n]))).map(l.fromAffine)}))}multiplyUnsafe(e){const r=l.ZERO;if(e===sd)return r;if(o(e),e===od)return this;const{endo:a}=t;if(!a)return p.unsafeLadder(this,e);let{k1neg:i,k1:s,k2neg:c,k2:d}=a.splitScalar(e),u=r,f=r,h=this;for(;s>sd||d>sd;)s&od&&(u=u.add(h)),d&od&&(f=f.add(h)),h=h.double(),s>>=od,d>>=od;return i&&(u=u.negate()),c&&(f=f.negate()),f=new l(n.mul(f.px,a.beta),f.py,f.pz),u.add(f)}multiply(e){o(e);let r,a,i=e;const{endo:s}=t;if(s){const{k1neg:e,k1:t,k2neg:o,k2:c}=s.splitScalar(i);let{p:d,f:u}=this.wNAF(t),{p:f,f:h}=this.wNAF(c);d=p.constTimeNegate(e,d),f=p.constTimeNegate(o,f),f=new l(n.mul(f.px,s.beta),f.py,f.pz),r=d.add(f),a=u.add(h)}else{const{p:e,f:t}=this.wNAF(i);r=e,a=t}return l.normalizeZ([r,a])[0]}multiplyAndAddUnsafe(e,t,n){const r=l.BASE,a=(e,t)=>t!==sd&&t!==od&&e.equals(r)?e.multiply(t):e.multiplyUnsafe(t),i=a(this,t).add(a(e,n));return i.is0()?void 0:i}toAffine(e){const{px:t,py:r,pz:a}=this,i=this.is0();null==e&&(e=i?n.ONE:n.inv(a));const s=n.mul(t,e),o=n.mul(r,e),c=n.mul(a,e);if(i)return{x:n.ZERO,y:n.ZERO};if(!n.eql(c,n.ONE))throw new Error("invZ was invalid");return{x:s,y:o}}isTorsionFree(){const{h:e,isTorsionFree:n}=t;if(e===od)return!0;if(n)return n(l,this);throw new Error("isTorsionFree() has not been declared for the elliptic curve")}clearCofactor(){const{h:e,clearCofactor:n}=t;return e===od?this:n?n(l,this):this.multiplyUnsafe(t.h)}toRawBytes(e=!0){return this.assertValidity(),r(l,this,e)}toHex(e=!0){return gc(this.toRawBytes(e))}}l.BASE=new l(t.Gx,t.Gy,n.ONE),l.ZERO=new l(n.ZERO,n.ONE,n.ZERO);const f=t.nBitLength,p=function(e,t){const n=(e,t)=>{const n=t.negate();return e?n:t},r=e=>({windows:Math.ceil(t/e)+1,windowSize:2**(e-1)});return{constTimeNegate:n,unsafeLadder(t,n){let r=e.ZERO,a=t;for(;n>ed;)n&td&&(r=r.add(a)),a=a.double(),n>>=td;return r},precomputeWindow(e,t){const{windows:n,windowSize:a}=r(t),i=[];let s=e,o=s;for(let r=0;r>=f,r>o&&(r-=l,i+=td);const s=t,p=t+Math.abs(r)-1,h=e%2!=0,b=r<0;0===r?d=d.add(n(h,a[s])):c=c.add(n(b,a[p]))}return{p:c,f:d}},wNAFCached(e,t,n,r){const a=e._WINDOW_SIZE||1;let i=t.get(e);return i||(i=this.precomputeWindow(e,a),1!==a&&t.set(e,r(i))),this.wNAF(a,i,n)}}}(l,t.endo?Math.ceil(f/2):f);return{CURVE:t,ProjectivePoint:l,normPrivateKeyToScalar:c,weierstrassEquation:i,isWithinCurveOrder:s}}function ud(e){const t=function(e){const t=nd(e);return Hc(t,{hash:"hash",hmac:"function",randomBytes:"function"},{bits2int:"function",bits2int_modN:"function",lowS:"boolean"}),Object.freeze({lowS:!0,...t})}(e),{Fp:n,n:r}=t,a=n.BYTES+1,i=2*n.BYTES+1;function s(e){return jc(e,r)}function o(e){return Wc(e,r)}const{ProjectivePoint:c,normPrivateKeyToScalar:d,weierstrassEquation:u,isWithinCurveOrder:l}=dd({...t,toBytes(e,t,r){const a=t.toAffine(),i=n.toBytes(a.x),s=Ic;return r?s(Uint8Array.from([t.hasEvenY()?2:3]),i):s(Uint8Array.from([4]),i,n.toBytes(a.y))},fromBytes(e){const t=e.length,r=e[0],s=e.subarray(1);if(t!==a||2!==r&&3!==r){if(t===i&&4===r){return{x:n.fromBytes(s.subarray(0,n.BYTES)),y:n.fromBytes(s.subarray(n.BYTES,2*n.BYTES))}}throw new Error(`Point of length ${t} was invalid. Expected ${a} compressed bytes or ${i} uncompressed bytes`)}{const e=Tc(s);if(!(sd<(o=e)&&ogc(Vc(e,t.nByteLength));function p(e){return e>r>>od}const h=(e,t,n)=>Tc(e.slice(t,n));class b{constructor(e,t,n){this.r=e,this.s=t,this.recovery=n,this.assertValidity()}static fromCompact(e){const n=t.nByteLength;return e=_c("compactSignature",e,2*n),new b(h(e,0,n),h(e,n,2*n))}static fromDER(e){const{r:t,s:n}=id.toSig(_c("DER",e));return new b(t,n)}assertValidity(){if(!l(this.r))throw new Error("r must be 0 < r < CURVE.n");if(!l(this.s))throw new Error("s must be 0 < s < CURVE.n")}addRecoveryBit(e){return new b(this.r,this.s,e)}recoverPublicKey(e){const{r:r,s:a,recovery:i}=this,d=g(_c("msgHash",e));if(null==i||![0,1,2,3].includes(i))throw new Error("recovery id invalid");const u=2===i||3===i?r+t.n:r;if(u>=n.ORDER)throw new Error("recovery id 2 or 3 invalid");const l=0==(1&i)?"02":"03",p=c.fromHex(l+f(u)),h=o(u),b=s(-d*h),m=s(a*h),y=c.BASE.multiplyAndAddUnsafe(p,b,m);if(!y)throw new Error("point at infinify");return y.assertValidity(),y}hasHighS(){return p(this.s)}normalizeS(){return this.hasHighS()?new b(this.r,s(-this.s),this.recovery):this}toDERRawBytes(){return kc(this.toDERHex())}toDERHex(){return id.hexFromSig({r:this.r,s:this.s})}toCompactRawBytes(){return kc(this.toCompactHex())}toCompactHex(){return f(this.r)+f(this.s)}}const m={isValidPrivateKey(e){try{return d(e),!0}catch(t){return!1}},normPrivateKeyToScalar:d,randomPrivateKey:()=>{const e=Jc(t.n);return function(e,t,n=!1){const r=e.length,a=Yc(t),i=Jc(t);if(r<16||r1024)throw new Error(`expected ${i}-1024 bytes of input, got ${r}`);const s=jc(n?Tc(e):Pc(e),t-Bc)+Bc;return n?Mc(s,a):Vc(s,a)}(t.randomBytes(e),t.n)},precompute:(e=8,t=c.BASE)=>(t._setWindowSize(e),t.multiply(BigInt(3)),t)};function y(e){const t=yc(e),n="string"==typeof e,r=(t||n)&&e.length;return t?r===a||r===i:n?r===2*a||r===2*i:e instanceof c}const x=t.bits2int||function(e){const n=Tc(e),r=8*e.length-t.nBitLength;return r>0?n>>BigInt(r):n},g=t.bits2int_modN||function(e){return s(x(e))},v=Oc(t.nBitLength);function w(e){if("bigint"!=typeof e)throw new Error("bigint expected");if(!(sd<=e&&ee in a)))throw new Error("sign() legacy options not supported");const{hash:i,randomBytes:u}=t;let{lowS:f,prehash:h,extraEntropy:m}=a;null==f&&(f=!0),e=_c("msgHash",e),h&&(e=_c("prehashed msgHash",i(e)));const y=g(e),v=d(r),S=[w(v),w(y)];if(null!=m){const e=!0===m?u(n.BYTES):m;S.push(_c("extraEntropy",e))}const T=Ic(...S),P=y;return{seed:T,k2sig:function(e){const t=x(e);if(!l(t))return;const n=o(t),r=c.BASE.multiply(t).toAffine(),a=s(r.x);if(a===sd)return;const i=s(n*s(P+a*v));if(i===sd)return;let d=(r.x===a?0:2)|Number(r.y&od),u=i;return f&&p(i)&&(u=function(e){return p(e)?s(-e):e}(i),d^=1),new b(a,u,d)}}}const k={lowS:t.lowS,prehash:!1},T={lowS:t.lowS,prehash:!1};return c.BASE._setWindowSize(8),{CURVE:t,getPublicKey:function(e,t=!0){return c.fromPrivateKey(e).toRawBytes(t)},getSharedSecret:function(e,t,n=!0){if(y(e))throw new Error("first arg must be private key");if(!y(t))throw new Error("second arg must be public key");return c.fromHex(t).multiply(d(e)).toRawBytes(n)},sign:function(e,n,r=k){const{seed:a,k2sig:i}=S(e,n,r),s=t;return Cc(s.hash.outputLen,s.nByteLength,s.hmac)(a,i)},verify:function(e,n,r,a=T){const i=e;if(n=_c("msgHash",n),r=_c("publicKey",r),"strict"in a)throw new Error("options.strict was renamed to lowS");const{lowS:d,prehash:u}=a;let l,f;try{if("string"==typeof i||yc(i))try{l=b.fromDER(i)}catch(S){if(!(S instanceof id.Err))throw S;l=b.fromCompact(i)}else{if("object"!=typeof i||"bigint"!=typeof i.r||"bigint"!=typeof i.s)throw new Error("PARSE");{const{r:e,s:t}=i;l=new b(e,t)}}f=c.fromHex(r)}catch(k){if("PARSE"===k.message)throw new Error("signature must be Signature instance, Uint8Array or hex string");return!1}if(d&&l.hasHighS())return!1;u&&(n=t.hash(n));const{r:p,s:h}=l,m=g(n),y=o(h),x=s(m*y),v=s(p*y),w=c.BASE.multiplyAndAddUnsafe(f,x,v)?.toAffine();return!!w&&s(w.x)===p},ProjectivePoint:c,Signature:b,utils:m}}function ld(e){return{hash:e,hmac:(t,...n)=>$c(e,t,function(...e){let t=0;for(let r=0;r(e+t/bd)/t;function yd(e){const t=fd,n=BigInt(3),r=BigInt(6),a=BigInt(11),i=BigInt(22),s=BigInt(23),o=BigInt(44),c=BigInt(88),d=e*e*e%t,u=d*d*e%t,l=Xc(u,n,t)*u%t,f=Xc(l,n,t)*u%t,p=Xc(f,bd,t)*d%t,h=Xc(p,a,t)*p%t,b=Xc(h,i,t)*h%t,m=Xc(b,o,t)*b%t,y=Xc(m,c,t)*m%t,x=Xc(y,o,t)*b%t,g=Xc(x,n,t)*u%t,v=Xc(g,s,t)*h%t,w=Xc(v,r,t)*d%t,S=Xc(w,bd,t);if(!xd.eql(xd.sqr(S),e))throw new Error("Cannot find square root");return S}const xd=function(e,t,n=!1,r={}){if(e<=Rc)throw new Error(`Expected Field ORDER > 0, got ${e}`);const{nBitLength:a,nByteLength:i}=Kc(e,t);if(i>2048)throw new Error("Field lengths over 2048 bytes are not supported");const s=Zc(e),o=Object.freeze({ORDER:e,BITS:a,BYTES:i,MASK:Oc(a),ZERO:Rc,ONE:Bc,create:t=>jc(t,e),isValid:t=>{if("bigint"!=typeof t)throw new Error("Invalid field element: expected bigint, got "+typeof t);return Rc<=t&&te===Rc,isOdd:e=>(e&Bc)===Bc,neg:t=>jc(-t,e),eql:(e,t)=>e===t,sqr:t=>jc(t*t,e),add:(t,n)=>jc(t+n,e),sub:(t,n)=>jc(t-n,e),mul:(t,n)=>jc(t*n,e),pow:(e,t)=>function(e,t,n){if(n 0");if(n===Rc)return e.ONE;if(n===Bc)return t;let r=e.ONE,a=t;for(;n>Rc;)n&Bc&&(r=e.mul(r,a)),a=e.sqr(a),n>>=Bc;return r}(o,e,t),div:(t,n)=>jc(t*Wc(n,e),e),sqrN:e=>e*e,addN:(e,t)=>e+t,subN:(e,t)=>e-t,mulN:(e,t)=>e*t,inv:t=>Wc(t,e),sqrt:r.sqrt||(e=>s(o,e)),invertBatch:e=>function(e,t){const n=new Array(t.length),r=t.reduce(((t,r,a)=>e.is0(r)?t:(n[a]=t,e.mul(t,r))),e.ONE),a=e.inv(r);return t.reduceRight(((t,r,a)=>e.is0(r)?t:(n[a]=e.mul(t,n[a]),e.mul(t,r))),a),n}(o,e),cmov:(e,t,n)=>n?t:e,toBytes:e=>n?Mc(e,i):Vc(e,i),fromBytes:e=>{if(e.length!==i)throw new Error(`Fp.fromBytes: expected ${i}, got ${e.length}`);return n?Pc(e):Tc(e)}});return Object.freeze(o)}(fd,void 0,void 0,{sqrt:yd}),gd=function(e,t){const n=t=>ud({...e,...ld(t)});return Object.freeze({...n(t),create:n})}({a:BigInt(0),b:BigInt(7),Fp:xd,n:pd,Gx:BigInt("55066263022277343669578718895168534326250603453777594175500187360389116729240"),Gy:BigInt("32670510020758816978083085130507043184471273380659243275938904335757337482424"),h:BigInt(1),lowS:!0,endo:{beta:BigInt("0x7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee"),splitScalar:e=>{const t=pd,n=BigInt("0x3086d221a7d46bcde86c90e49284eb15"),r=-hd*BigInt("0xe4437ed6010e88286f547fa90abfe4c3"),a=BigInt("0x114ca50f7a8e2f3f657c1108d9d44cfd8"),i=n,s=BigInt("0x100000000000000000000000000000000"),o=md(i*e,t),c=md(-r*e,t);let d=jc(e-o*n-c*a,t),u=jc(-o*r-c*i,t);const l=d>s,f=u>s;if(l&&(d=t-d),f&&(u=t-u),d>s||u>s)throw new Error("splitScalar: Endomorphism failed, k="+e);return{k1neg:l,k1:d,k2neg:f,k2:u}}}},hc);BigInt(0);gd.ProjectivePoint;const vd={bitLength:256,isLe:!1};function wd(e){return[33,65].includes(e.length)&&(e=sc(function(e,t){if(![33,65].includes(e.length))throw new Error(`Invalid publicKey provided, received ${e.length} bytes input`);if(65===e.length)return e.subarray(1);if(!ja.vc||!t&&Ii())return Ti(e).subarray(1);const{px:n,py:r}=gd.ProjectivePoint.fromHex(e);return Bt(Rt(n,vd),Rt(r,vd))}(e))),e.slice(-20)}function Sd(e){return(0,gt.U)(e)||Array.isArray(e)?(0,N.Y)(e):(0,it.vq)(e)||oc(e.toString())?(0,as.G)(e.toString()):(0,I.H)(e)?(0,N.Y)(e):e}class kd extends vr{constructor(e,t=new Uint8Array){super(e,Sd(t),160)}eq(e){return!!e&&super.eq(Sd(e))}toHuman(){return this.toJSON()}toJSON(){return this.toString()}toPrimitive(){return this.toJSON()}toString(){return function(e){if(!e)return"0x";const t=(0,N.Y)(e);if(![20,32,33,65].includes(t.length))throw new Error(`Invalid address or publicKey provided, received ${t.length} bytes input`);const n=(0,O.c)(wd(t),-1,!1),r=(0,O.c)(sc(n),-1,!1);let a="";for(let i=0;i<40;i++)a=`${a}${parseInt(r[i],16)>7?n[i].toUpperCase():n[i]}`;return`0x${a}`}(this)}toRawType(){return"AccountId"}}const Td=new Uint8Array([255]);function Pd(e,t){return t instanceof Vd?t.inner:t instanceof kd||t instanceof xo?t:(0,gt.U)(t)||Array.isArray(t)||(0,it.vq)(t)?function(e,t){if(20===t.length)return e.createTypeUnsafe("EthereumAccountId",[t]);if(255===t[0])return e.createTypeUnsafe("EthereumAccountId",[t.subarray(1)]);const[n,r]=xo.readLength(t);return e.createTypeUnsafe("AccountIndex",[mt(t.subarray(n,n+r))])}(e,(0,N.Y)(t)):(0,Sn.H)(t)||(0,Zt.h)(t)||(0,Ot.C)(t)?e.createTypeUnsafe("AccountIndex",[t]):function(e,t){const n=so(t);return 20===n.length?e.createTypeUnsafe("EthereumAccountId",[n]):e.createTypeUnsafe("AccountIndex",[mt(n)])}(e,t)}class Vd extends Wi{constructor(e,t=new Uint8Array){super(e,Pd(e,t))}get encodedLength(){const e=this._rawLength;return e+(e>1?1:0)}get _rawLength(){return this.inner instanceof xo?xo.calcLength(this.inner):this.inner.encodedLength}toHex(){return(0,O.c)(this.toU8a())}toRawType(){return"Address"}toU8a(e){const t=this.inner.toU8a().subarray(0,this._rawLength);return e?t:Bt(this.inner instanceof xo?xo.writeLength(t):Td,t)}}function Md(e){if(Array.isArray(e)||(0,I.H)(e)){const t=(0,N.Y)(e);return[t.length/8,t]}return function(e){if(!e?.length)return[0,new Uint8Array];const[t,n]=xt(e),r=t+Math.ceil(n/8);if(r>e.length)throw new Error(`BitVec: required length less than remainder, expected at least ${r}, found ${e.length}`);return[n,e.subarray(t,r)]}(e)}class _d extends ft{__internal__decodedLength;__internal__isMsb;constructor(e,t,n=!1){const[r,a]=Md(t);super(e,a),this.__internal__decodedLength=r,this.__internal__isMsb=n}get encodedLength(){return this.length+Ft(this.__internal__decodedLength).length}inspect(){return{outer:[Ft(this.__internal__decodedLength),super.toU8a()]}}toBoolArray(){const e=[...this.toU8a(!0)].map((e=>[!!(128&e),!!(64&e),!!(32&e),!!(16&e),!!(8&e),!!(4&e),!!(2&e),!!(1&e)])),t=e.length,n=new Array(8*t);for(let r=0;r`00000000${e.toString(2)}`.slice(-8))).map((e=>this.__internal__isMsb?e:e.split("").reverse().join(""))).join("_")}`}toRawType(){return"BitVec"}toU8a(e){const t=super.toU8a(e);return e?t:Lt([Ft(this.__internal__decodedLength),t])}}class Id extends Number{encodedLength;registry;createdAtHash;initialU8aLength;isStorageFallback;__internal__bitLength;constructor(e,t,{bitLength:n=32}={}){super((0,gt.U)(t)||(0,it.vq)(t)?0===t.length?0:function(e,{bitLength:t=32,isLe:n=!0}={}){if(32!==t&&64!==t)throw new Error("Invalid bitLength provided, expected 32 or 64");if(e.length"}toU8a(e){return e?super.toU8a(!0):this.isSome?new Uint8Array([this.isTrue?1:2]):new Uint8Array([0])}}const zd=131072;class Dd extends String{registry;createdAtHash;initialU8aLength;isStorageFallback;__internal__override=null;constructor(e,t){const[n,r]=function(e){if((0,gt.U)(e)){if(!e.length)return["",0];if(e instanceof ft)return[lt(e),0];const[t,n]=xt(e),r=t+n;if(n>zd)throw new Error(`Text: length ${n.toString()} exceeds 131072`);if(r>e.length)throw new Error(`Text: required length less than remainder, expected at least ${r}, found ${e.length}`);return[lt(e.subarray(t,r)),r]}return(0,it.vq)(e)?[lt((0,as.G)(e)),0]:[e?e.toString():"",0]}(t);super(n),this.registry=e,this.initialU8aLength=r}get encodedLength(){return this.toU8a().length}get hash(){return this.registry.hash(this.toU8a())}get isEmpty(){return 0===this.length}get length(){return super.length}eq(e){return!!(0,I.H)(e)&&this.toString()===e.toString()}inspect(){const e=(0,Fa.d)(super.toString());return{outer:e.length?[Ft(e.length),e]:[Ft(e.length)]}}setOverride(e){this.__internal__override=e}toHex(){return(0,O.c)(this.toU8a(!0))}toHuman(){return this.toJSON()}toJSON(){return this.toString()}toPrimitive(){return this.toJSON()}toRawType(){return"Text"}toString(){return this.__internal__override||super.toString()}toU8a(e){const t=(0,Fa.d)(super.toString());return e?t:hr(t)}}class qd extends Dd{constructor(e,t=""){super(e,t),this.setOverride(Hr(this.toString()))}toRawType(){return"Type"}}class jd extends(pr.with(8)){__UIntType="u8"}class Fd extends(pr.with(16)){__UIntType="u16"}class Xd extends(pr.with(128)){__UIntType="u128"}class Wd extends(pr.with(256)){__UIntType="u256"}class Zd extends po{constructor(e,t){throw super(e,t),new Error("The `usize` type should not be used. Since it is platform-specific, it creates incompatibilities between native (generally u64) and WASM (always u32) code. Use one of the `u32` or `u64` types explicitly.")}}function Gd(e,t){return(0,gt.U)(t)||(0,I.H)(t)?function(e,t){const n=t[0];if(!n)return[void 0,void 0];if(n>=1&&n<=33){const r=n-1,a=t.subarray(1,r+1);return[e.createTypeUnsafe("Raw",[a]),1]}if(n>=34&&n<=37)return[t.subarray(1,33),n-32];throw new Error(`Unable to decode Data, invalid indicator byte ${n}`)}(e,(0,N.Y)(t)):t?[t,void 0]:[void 0,void 0]}class Kd extends fn{constructor(e,t){if(super(e,{None:"Null",Raw:"Bytes",BlakeTwo256:"H256",Sha256:"H256",Keccak256:"H256",ShaThree256:"H256"},...Gd(e,t)),this.isRaw&&this.asRaw.length>32)throw new Error("Data.Raw values are limited to a maximum length of 32 bytes")}get asBlakeTwo256(){return this.value}get asKeccak256(){return this.value}get asRaw(){return this.value}get asSha256(){return this.value}get asShaThree256(){return this.value}get isBlakeTwo256(){return 2===this.index}get isKeccak256(){return 4===this.index}get isNone(){return 0===this.index}get isRaw(){return 1===this.index}get isSha256(){return 3===this.index}get isShaThree256(){return 5===this.index}get encodedLength(){return this.toU8a().length}toU8a(){if(0===this.index)return new Uint8Array(1);if(1===this.index){const e=this.value.toU8a(!0),t=Math.min(e.length,32),n=new Uint8Array(t+1);return n.set([t+1],0),n.set(e.subarray(0,t),1),n}const e=new Uint8Array(33);return e.set([this.index+32],0),e.set(this.value.toU8a(),1),e}}function Yd(e,t){const n=e.getTypeDef(t);return n.lookupName||n.type}function Jd(e,t,n){const r=Yd(e.lookup,function(e){return e.isPlain?e.asPlain:e.asMap.value}(t));return n?`Option<${r}>`:r}const Qd={Blake2_128:[16,!1],Blake2_128Concat:[16,!0],Blake2_256:[32,!1],Identity:[0,!0],Twox128:[16,!1],Twox256:[32,!1],Twox64Concat:[8,!0]};function $d(e,t,n){if(!n||!n.type.isMap)return[];const{hashers:r,key:a}=n.type.asMap,i=1===r.length?[a]:e.lookup.getSiType(a).def.asTuple;return function(e,t,n){let r=32;const a=n.length,i=new Array(a);for(let s=0;s[e,i[t]])))}class eu extends mr{__internal__args;__internal__meta;__internal__outputType;__internal__method;__internal__section;constructor(e,t,n={}){const{key:r,method:a,section:i}=function(e){if((0,gt.U)(e)||!e||(0,I.H)(e))return{key:e};if(e instanceof eu)return{key:e,method:e.method,section:e.section};if((0,Je.m)(e))return{key:e(),method:e.method,section:e.section};if(Array.isArray(e)){const[t,n=[]]=e;if(!(0,Je.m)(t))throw new Error("Expected function input for key construction");if(t.meta&&t.meta.type.isMap){const e=t.meta.type.asMap;if(!Array.isArray(n)||n.length!==e.hashers.length)throw new Error(`Expected an array of ${e.hashers.length} values as params to a Map query`)}return{key:t(...n),method:t.method,section:t.section}}throw new Error(`Unable to convert input ${e} to StorageKey`)}(t);super(e,r),this.__internal__outputType=function(e,t){if(t instanceof eu)return t.outputType;if((0,Je.m)(t))return Jd(e,t.meta.type);if(Array.isArray(t)){const[n]=t;if(n.meta)return Jd(e,n.meta.type)}return"Raw"}(e,t),this.setMeta(function(e){if(e instanceof eu)return e.meta;if((0,Je.m)(e))return e.meta;if(Array.isArray(e)){const[t]=e;return t.meta}}(t),n.section||i,n.method||a)}get args(){return this.__internal__args}get meta(){return this.__internal__meta}get method(){return this.__internal__method}get outputType(){return this.__internal__outputType}get section(){return this.__internal__section}is(e){return e.section===this.section&&e.method===this.method}setMeta(e,t,n){this.__internal__meta=e,this.__internal__method=n||this.__internal__method,this.__internal__section=t||this.__internal__section,e&&(this.__internal__outputType=Jd(this.registry,e.type));try{this.__internal__args=$d(this.registry,this.toU8a(!0),e)}catch{}return this}toHuman(e,t){return this.__internal__args.length?this.__internal__args.map((e=>e.toHuman(void 0,t))):super.toHuman(void 0,t)}toRawType(){return"StorageKey"}}const tu={metadata:{description:"Returns the metadata of a runtime",params:[],type:"OpaqueMetadata"}},nu={name:"Text",fields:"Vec",index:"u8",docs:"Vec"},ru={Si1Field:{name:"Option",type:"Si1LookupTypeId",typeName:"Option",docs:"Vec"},Si1LookupTypeId:"Compact",Si1Path:"Si0Path",Si1Type:{path:"Si1Path",params:"Vec",def:"Si1TypeDef",docs:"Vec"},Si1TypeDef:{_enum:{Composite:"Si1TypeDefComposite",Variant:"Si1TypeDefVariant",Sequence:"Si1TypeDefSequence",Array:"Si1TypeDefArray",Tuple:"Si1TypeDefTuple",Primitive:"Si1TypeDefPrimitive",Compact:"Si1TypeDefCompact",BitSequence:"Si1TypeDefBitSequence",HistoricMetaCompat:"Type"}},Si1TypeDefArray:{len:"u32",type:"Si1LookupTypeId"},Si1TypeDefBitSequence:{bitStoreType:"Si1LookupTypeId",bitOrderType:"Si1LookupTypeId"},Si1TypeDefCompact:{type:"Si1LookupTypeId"},Si1TypeDefComposite:{fields:"Vec"},Si1TypeDefPrimitive:"Si0TypeDefPrimitive",Si1TypeDefSequence:{type:"Si1LookupTypeId"},Si1TypeDefTuple:"Vec",Si1TypeParameter:{name:"Text",type:"Option"},Si1TypeDefVariant:{variants:"Vec"},Si1Variant:nu},au={rpc:{},runtime:{Metadata:[{methods:{metadata_at_version:{description:"Returns the metadata at a given version.",params:[{name:"version",type:"u32"}],type:"Option"},metadata_versions:{description:"Returns the supported metadata versions.",params:[],type:"Vec"},...tu},version:2},{methods:{...tu},version:1}]},types:{ErrorMetadataV9:{name:"Text",docs:"Vec"},EventMetadataV9:{name:"Text",args:"Vec",docs:"Vec"},FunctionArgumentMetadataV9:{name:"Text",type:"Type"},FunctionMetadataV9:{name:"Text",args:"Vec",docs:"Vec"},MetadataV9:{modules:"Vec"},ModuleConstantMetadataV9:{name:"Text",type:"Type",value:"Bytes",docs:"Vec"},ModuleMetadataV9:{name:"Text",storage:"Option",calls:"Option>",events:"Option>",constants:"Vec",errors:"Vec"},StorageEntryMetadataV9:{name:"Text",modifier:"StorageEntryModifierV9",type:"StorageEntryTypeV9",fallback:"Bytes",docs:"Vec"},StorageEntryModifierV9:{_enum:["Optional","Default","Required"]},StorageEntryTypeV9:{_enum:{Plain:"Type",Map:{hasher:"StorageHasherV9",key:"Type",value:"Type",linked:"bool"},DoubleMap:{hasher:"StorageHasherV9",key1:"Type",key2:"Type",value:"Type",key2Hasher:"StorageHasherV9"}}},StorageHasherV9:{_enum:{Blake2_128:null,Blake2_256:null,Twox128:null,Twox256:null,Twox64Concat:null}},StorageMetadataV9:{prefix:"Text",items:"Vec"},ErrorMetadataV10:"ErrorMetadataV9",EventMetadataV10:"EventMetadataV9",FunctionArgumentMetadataV10:"FunctionArgumentMetadataV9",FunctionMetadataV10:"FunctionMetadataV9",MetadataV10:{modules:"Vec"},ModuleConstantMetadataV10:"ModuleConstantMetadataV9",ModuleMetadataV10:{name:"Text",storage:"Option",calls:"Option>",events:"Option>",constants:"Vec",errors:"Vec"},StorageEntryModifierV10:"StorageEntryModifierV9",StorageEntryMetadataV10:{name:"Text",modifier:"StorageEntryModifierV10",type:"StorageEntryTypeV10",fallback:"Bytes",docs:"Vec"},StorageEntryTypeV10:{_enum:{Plain:"Type",Map:{hasher:"StorageHasherV10",key:"Type",value:"Type",linked:"bool"},DoubleMap:{hasher:"StorageHasherV10",key1:"Type",key2:"Type",value:"Type",key2Hasher:"StorageHasherV10"}}},StorageMetadataV10:{prefix:"Text",items:"Vec"},StorageHasherV10:{_enum:{Blake2_128:null,Blake2_256:null,Blake2_128Concat:null,Twox128:null,Twox256:null,Twox64Concat:null}},...{ErrorMetadataV11:"ErrorMetadataV10",EventMetadataV11:"EventMetadataV10",ExtrinsicMetadataV11:{version:"u8",signedExtensions:"Vec"},FunctionArgumentMetadataV11:"FunctionArgumentMetadataV10",FunctionMetadataV11:"FunctionMetadataV10",MetadataV11:{modules:"Vec",extrinsic:"ExtrinsicMetadataV11"},ModuleConstantMetadataV11:"ModuleConstantMetadataV10",ModuleMetadataV11:{name:"Text",storage:"Option",calls:"Option>",events:"Option>",constants:"Vec",errors:"Vec"},StorageEntryModifierV11:"StorageEntryModifierV10",StorageEntryMetadataV11:{name:"Text",modifier:"StorageEntryModifierV11",type:"StorageEntryTypeV11",fallback:"Bytes",docs:"Vec"},StorageEntryTypeV11:{_enum:{Plain:"Type",Map:{hasher:"StorageHasherV11",key:"Type",value:"Type",linked:"bool"},DoubleMap:{hasher:"StorageHasherV11",key1:"Type",key2:"Type",value:"Type",key2Hasher:"StorageHasherV11"}}},StorageMetadataV11:{prefix:"Text",items:"Vec"},StorageHasherV11:{_enum:{Blake2_128:null,Blake2_256:null,Blake2_128Concat:null,Twox128:null,Twox256:null,Twox64Concat:null,Identity:null}}},ErrorMetadataV12:"ErrorMetadataV11",EventMetadataV12:"EventMetadataV11",ExtrinsicMetadataV12:"ExtrinsicMetadataV11",FunctionArgumentMetadataV12:"FunctionArgumentMetadataV11",FunctionMetadataV12:"FunctionMetadataV11",MetadataV12:{modules:"Vec",extrinsic:"ExtrinsicMetadataV12"},ModuleConstantMetadataV12:"ModuleConstantMetadataV11",ModuleMetadataV12:{name:"Text",storage:"Option",calls:"Option>",events:"Option>",constants:"Vec",errors:"Vec",index:"u8"},StorageEntryModifierV12:"StorageEntryModifierV11",StorageEntryMetadataV12:"StorageEntryMetadataV11",StorageEntryTypeV12:"StorageEntryTypeV11",StorageMetadataV12:"StorageMetadataV11",StorageHasherV12:"StorageHasherV11",ErrorMetadataV13:"ErrorMetadataV12",EventMetadataV13:"EventMetadataV12",ExtrinsicMetadataV13:"ExtrinsicMetadataV12",FunctionArgumentMetadataV13:"FunctionArgumentMetadataV12",FunctionMetadataV13:"FunctionMetadataV12",MetadataV13:{modules:"Vec",extrinsic:"ExtrinsicMetadataV13"},ModuleConstantMetadataV13:"ModuleConstantMetadataV12",ModuleMetadataV13:{name:"Text",storage:"Option",calls:"Option>",events:"Option>",constants:"Vec",errors:"Vec",index:"u8"},StorageEntryModifierV13:"StorageEntryModifierV12",StorageEntryMetadataV13:{name:"Text",modifier:"StorageEntryModifierV13",type:"StorageEntryTypeV13",fallback:"Bytes",docs:"Vec"},StorageEntryTypeV13:{_enum:{Plain:"Type",Map:{hasher:"StorageHasherV13",key:"Type",value:"Type",linked:"bool"},DoubleMap:{hasher:"StorageHasherV13",key1:"Type",key2:"Type",value:"Type",key2Hasher:"StorageHasherV13"},NMap:{keyVec:"Vec",hashers:"Vec",value:"Type"}}},StorageMetadataV13:{prefix:"Text",items:"Vec"},StorageHasherV13:"StorageHasherV12",...{PortableTypeV14:{id:"Si1LookupTypeId",type:"Si1Type"},ErrorMetadataV14:{...nu,args:"Vec"},EventMetadataV14:{...nu,args:"Vec"},FunctionArgumentMetadataV14:{name:"Text",type:"Type",typeName:"Option"},FunctionMetadataV14:{...nu,args:"Vec"},ExtrinsicMetadataV14:{type:"SiLookupTypeId",version:"u8",signedExtensions:"Vec"},MetadataV14:{lookup:"PortableRegistry",pallets:"Vec",extrinsic:"ExtrinsicMetadataV14",type:"SiLookupTypeId"},PalletCallMetadataV14:{type:"SiLookupTypeId"},PalletConstantMetadataV14:{name:"Text",type:"SiLookupTypeId",value:"Bytes",docs:"Vec"},PalletErrorMetadataV14:{type:"SiLookupTypeId"},PalletEventMetadataV14:{type:"SiLookupTypeId"},PalletMetadataV14:{name:"Text",storage:"Option",calls:"Option",events:"Option",constants:"Vec",errors:"Option",index:"u8"},PalletStorageMetadataV14:{prefix:"Text",items:"Vec"},SignedExtensionMetadataV14:{identifier:"Text",type:"SiLookupTypeId",additionalSigned:"SiLookupTypeId"},StorageEntryMetadataV14:{name:"Text",modifier:"StorageEntryModifierV14",type:"StorageEntryTypeV14",fallback:"Bytes",docs:"Vec"},StorageEntryModifierV14:"StorageEntryModifierV13",StorageEntryTypeV14:{_enum:{Plain:"SiLookupTypeId",Map:{hashers:"Vec",key:"SiLookupTypeId",value:"SiLookupTypeId"}}},StorageHasherV14:"StorageHasherV13"},CustomMetadata15:{map:"BTreeMap"},CustomValueMetadata15:{type:"SiLookupTypeId",value:"Bytes"},ExtrinsicMetadataV15:{version:"u8",addressType:"SiLookupTypeId",callType:"SiLookupTypeId",signatureType:"SiLookupTypeId",extraType:"SiLookupTypeId",signedExtensions:"Vec"},OuterEnums15:{callType:"SiLookupTypeId",eventType:"SiLookupTypeId",errorType:"SiLookupTypeId"},PalletMetadataV15:{name:"Text",storage:"Option",calls:"Option",events:"Option",constants:"Vec",errors:"Option",index:"u8",docs:"Vec"},RuntimeApiMetadataV15:{name:"Text",methods:"Vec",docs:"Vec"},RuntimeApiMethodMetadataV15:{name:"Text",inputs:"Vec",output:"SiLookupTypeId",docs:"Vec"},RuntimeApiMethodParamMetadataV15:{name:"Text",type:"SiLookupTypeId"},MetadataV15:{lookup:"PortableRegistry",pallets:"Vec",extrinsic:"ExtrinsicMetadataV15",type:"SiLookupTypeId",apis:"Vec",outerEnums:"OuterEnums15",custom:"CustomMetadata15"},ErrorMetadataLatest:"ErrorMetadataV14",EventMetadataLatest:"EventMetadataV14",ExtrinsicMetadataLatest:"ExtrinsicMetadataV15",FunctionArgumentMetadataLatest:"FunctionArgumentMetadataV14",FunctionMetadataLatest:"FunctionMetadataV14",MetadataLatest:"MetadataV15",PalletCallMetadataLatest:"PalletCallMetadataV14",PalletConstantMetadataLatest:"PalletConstantMetadataV14",PalletErrorMetadataLatest:"PalletErrorMetadataV14",PalletEventMetadataLatest:"PalletEventMetadataV14",PalletMetadataLatest:"PalletMetadataV15",PalletStorageMetadataLatest:"PalletStorageMetadataV14",PortableType:"PortableTypeV14",RuntimeApiMetadataLatest:"RuntimeApiMetadataV15",SignedExtensionMetadataLatest:"SignedExtensionMetadataV14",StorageEntryMetadataLatest:"StorageEntryMetadataV14",StorageEntryModifierLatest:"StorageEntryModifierV14",StorageEntryTypeLatest:"StorageEntryTypeV14",StorageHasher:"StorageHasherV14",OpaqueMetadata:"Opaque",MetadataAll:{_enum:{V0:"DoNotConstruct",V1:"DoNotConstruct",V2:"DoNotConstruct",V3:"DoNotConstruct",V4:"DoNotConstruct",V5:"DoNotConstruct",V6:"DoNotConstruct",V7:"DoNotConstruct",V8:"DoNotConstruct",V9:"MetadataV9",V10:"MetadataV10",V11:"MetadataV11",V12:"MetadataV12",V13:"MetadataV13",V14:"MetadataV14",V15:"MetadataV15"}}}},iu={execute_block:{description:"Execute the given block.",params:[{name:"block",type:"Block"}],type:"Null"}},su={version:{description:"Returns the version of the runtime.",params:[],type:"RuntimeVersionPre3"}},ou={initialize_block:{description:"Initialize a block with the given header.",params:[{name:"header",type:"Header"}],type:"Null"}},cu={version:{description:"Returns the version of the runtime.",params:[],type:"RuntimeVersion"}},du={...iu,initialize_block:{description:"Initialize a block with the given header.",params:[{name:"header",type:"Header"}],type:"ExtrinsicInclusionMode"}},uu={Core:[{methods:{...cu,...du},version:5},{methods:{...cu,...iu,...ou},version:4},{methods:{version:{description:"Returns the version of the runtime.",params:[],type:"RuntimeVersionPre4"},...iu,...ou},version:3},{methods:{...su,...iu,...ou},version:2},{methods:{initialise_block:{description:"Initialize a block with the given header.",params:[{name:"header",type:"Header"}],type:"Null"},...su,...iu},version:1}]},lu={Council:"CollectiveOrigin",System:"SystemOrigin",TechnicalCommittee:"CollectiveOrigin",Xcm:"XcmOrigin",XcmPallet:"XcmOrigin",Authority:"AuthorityOrigin",GeneralCouncil:"CollectiveOrigin"},fu={rpc:{},runtime:uu,types:{Fixed64:"Int<64, Fixed64>",FixedI64:"Int<64, FixedI64>",FixedU64:"UInt<64, FixedU64>",Fixed128:"Int<128, Fixed128>",FixedI128:"Int<128, FixedI128>",FixedU128:"UInt<128, FixedU128>",I32F32:"Int<64, I32F32>",U32F32:"UInt<64, U32F32>",PerU16:"UInt<16, PerU16>",Perbill:"UInt<32, Perbill>",Percent:"UInt<8, Percent>",Permill:"UInt<32, Permill>",Perquintill:"UInt<64, Perquintill>",AccountId:"AccountId32",AccountId20:"GenericEthereumAccountId",AccountId32:"GenericAccountId32",AccountId33:"GenericAccountId33",AccountIdOf:"AccountId",AccountIndex:"GenericAccountIndex",Address:"MultiAddress",AssetId:"u32",Balance:"UInt<128, Balance>",BalanceOf:"Balance",Block:"GenericBlock",BlockNumber:"u32",BlockNumberFor:"BlockNumber",BlockNumberOf:"BlockNumber",Call:"GenericCall",CallHash:"Hash",CallHashOf:"CallHash",ChangesTrieConfiguration:{digestInterval:"u32",digestLevels:"u32"},ChangesTrieSignal:{_enum:{NewConfiguration:"Option"}},ConsensusEngineId:"GenericConsensusEngineId",CodecHash:"Hash",CrateVersion:{major:"u16",minor:"u8",patch:"u8"},Digest:{logs:"Vec"},DigestItem:{_enum:{Other:"Bytes",AuthoritiesChange:"Vec",ChangesTrieRoot:"Hash",SealV0:"SealV0",Consensus:"Consensus",Seal:"Seal",PreRuntime:"PreRuntime",ChangesTrieSignal:"ChangesTrieSignal",RuntimeEnvironmentUpdated:"Null"}},ExtrinsicsWeight:{normal:"Weight",operational:"Weight"},H32:"[u8; 4; H32]",H64:"[u8; 8; H64]",H128:"[u8; 16; H128]",H160:"[u8; 20; H160]",H256:"[u8; 32; H256]",H512:"[u8; 64; H512]",H1024:"[u8; 128; H1024]",H2048:"[u8; 256; H2048]",Hash:"H256",Header:{parentHash:"Hash",number:"Compact",stateRoot:"Hash",extrinsicsRoot:"Hash",digest:"Digest"},HeaderPartial:{parentHash:"Hash",number:"BlockNumber"},IndicesLookupSource:"GenericLookupSource",Index:"u32",Justification:"(ConsensusEngineId, EncodedJustification)",EncodedJustification:"Bytes",Justifications:"Vec",KeyValue:"(StorageKey, StorageData)",KeyTypeId:"u32",LockIdentifier:"[u8; 8]",LookupSource:"MultiAddress",LookupTarget:"AccountId",ModuleId:"LockIdentifier",MultiAddress:"GenericMultiAddress",MultiSigner:{_enum:{Ed25519:"[u8; 32]",Sr25519:"[u8; 32]",Ecdsa:"[u8; 33]"}},Moment:"UInt<64, Moment>",OpaqueCall:"Bytes",Origin:"DoNotConstruct",OriginCaller:{_enum:{System:"SystemOrigin"}},PalletId:"LockIdentifier",PalletsOrigin:"OriginCaller",PalletVersion:{major:"u16",minor:"u8",patch:"u8"},Pays:{_enum:["Yes","No"]},Phantom:"Null",PhantomData:"Null",Releases:{_enum:["V1","V2","V3","V4","V5","V6","V7","V8","V9","V10"]},RuntimeCall:"Call",RuntimeEvent:"Event",RuntimeDbWeight:{read:"Weight",write:"Weight"},SignedBlock:"SignedBlockWithJustifications",SignedBlockWithJustification:{block:"Block",justification:"Option"},SignedBlockWithJustifications:{block:"Block",justifications:"Option"},Slot:"u64",SlotDuration:"u64",StorageData:"Bytes",StorageInfo:{palletName:"Bytes",storage_name:"Bytes",prefix:"Bytes",maxValues:"Option",maxSize:"Option"},StorageProof:{trieNodes:"Vec"},TransactionPriority:"u64",TransactionLongevity:"u64",TransactionTag:"Bytes",TransactionInfo:{_alias:{dataSize:"size"},chunkRoot:"H256",contentHash:"H256",dataSize:"u32",blockChunks:"u32"},TransactionStorageProof:{chunk:"Vec",proof:"Vec>"},ValidatorId:"AccountId",ValidatorIdOf:"ValidatorId",WeightV0:"u32",WeightV1:"u64",WeightV2:{refTime:"Compact",proofSize:"Compact"},Weight:"WeightV2",WeightMultiplier:"Fixed64",PreRuntime:"(ConsensusEngineId, Bytes)",SealV0:"(u64, Signature)",Seal:"(ConsensusEngineId, Bytes)",Consensus:"(ConsensusEngineId, Bytes)",ExtrinsicInclusionMode:{_enum:["AllExtrinsics","OnlyInherents"]}}},pu={rpc:{},types:{Si0Field:{name:"Option",type:"Si0LookupTypeId",typeName:"Option",docs:"Vec"},Si0LookupTypeId:"u32",Si0Path:"Vec",Si0Type:{path:"Si0Path",params:"Vec",def:"Si0TypeDef"},Si0TypeDef:{_enum:{Composite:"Si0TypeDefComposite",Variant:"Si0TypeDefVariant",Sequence:"Si0TypeDefSequence",Array:"Si0TypeDefArray",Tuple:"Si0TypeDefTuple",Primitive:"Si0TypeDefPrimitive",Compact:"Si0TypeDefCompact",Phantom:"Si0TypeDefPhantom",BitSequence:"Si0TypeDefBitSequence"}},Si0TypeDefArray:{len:"u32",type:"Si0LookupTypeId"},Si0TypeDefBitSequence:{bitStoreType:"Si0LookupTypeId",bitOrderType:"Si0LookupTypeId"},Si0TypeDefCompact:{type:"Si0LookupTypeId"},Si0TypeDefComposite:{fields:"Vec"},Si0TypeDefPhantom:"Null",Si0TypeDefVariant:{variants:"Vec"},Si0TypeDefPrimitive:{_enum:["Bool","Char","Str","U8","U16","U32","U64","U128","U256","I8","I16","I32","I64","I128","I256"]},Si0TypeDefSequence:{type:"Si0LookupTypeId"},Si0TypeDefTuple:"Vec",Si0TypeParameter:{name:"Text",type:"Option"},Si0Variant:{name:"Text",fields:"Vec",index:"Option",discriminant:"Option",docs:"Vec"},...ru,SiField:"Si1Field",SiLookupTypeId:"Si1LookupTypeId",SiPath:"Si1Path",SiType:"Si1Type",SiTypeDef:"Si1TypeDef",SiTypeDefArray:"Si1TypeDefArray",SiTypeDefBitSequence:"Si1TypeDefBitSequence",SiTypeDefCompact:"Si1TypeDefCompact",SiTypeDefComposite:"Si1TypeDefComposite",SiTypeDefPrimitive:"Si1TypeDefPrimitive",SiTypeDefSequence:"Si1TypeDefSequence",SiTypeDefTuple:"Si1TypeDefTuple",SiTypeParameter:"Si1TypeParameter",SiTypeDefVariant:"Si1TypeDefVariant",SiVariant:"Si1Variant"}},hu={rpc:{},runtime:{AssetConversionApi:[{methods:{get_reserves:{description:"Get pool reserves",params:[{name:"asset1",type:"StagingXcmV3MultiLocation"},{name:"asset2",type:"StagingXcmV3MultiLocation"}],type:"Option<(Balance,Balance)>"},quote_price_exact_tokens_for_tokens:{description:"Quote price: exact tokens for tokens",params:[{name:"asset1",type:"StagingXcmV3MultiLocation"},{name:"asset2",type:"StagingXcmV3MultiLocation"},{name:"amount",type:"u128"},{name:"include_fee",type:"bool"}],type:"Option<(Balance)>"},quote_price_tokens_for_exact_tokens:{description:"Quote price: tokens for exact tokens",params:[{name:"asset1",type:"StagingXcmV3MultiLocation"},{name:"asset2",type:"StagingXcmV3MultiLocation"},{name:"amount",type:"u128"},{name:"include_fee",type:"bool"}],type:"Option<(Balance)>"}},version:1}]},types:{TAssetConversion:"Option"}},bu={rpc:{},runtime:{AssetsApi:[{methods:{account_balances:{description:"Return the current set of authorities.",params:[{name:"account",type:"AccountId"}],type:"Vec<(u32, TAssetBalance)>"}},version:1}]},types:{AssetApprovalKey:{owner:"AccountId",delegate:"AccountId"},AssetApproval:{amount:"TAssetBalance",deposit:"TAssetDepositBalance"},AssetBalance:{balance:"TAssetBalance",isFrozen:"bool",isSufficient:"bool"},AssetDestroyWitness:{accounts:"Compact",sufficients:"Compact",approvals:"Compact"},AssetDetails:{owner:"AccountId",issuer:"AccountId",admin:"AccountId",freezer:"AccountId",supply:"TAssetBalance",deposit:"TAssetDepositBalance",minBalance:"TAssetBalance",isSufficient:"bool",accounts:"u32",sufficients:"u32",approvals:"u32",isFrozen:"bool"},AssetMetadata:{deposit:"TAssetDepositBalance",name:"Vec",symbol:"Vec",decimals:"u8",isFrozen:"bool"},TAssetBalance:"u64",TAssetDepositBalance:"BalanceOf"}},mu={rpc:{},runtime:{AuraApi:[{methods:{authorities:{description:"Return the current set of authorities.",params:[],type:"Vec"},slot_duration:{description:"Returns the slot duration for Aura.",params:[],type:"SlotDuration"}},version:1}]},types:{RawAuraPreDigest:{slotNumber:"u64"}}},yu={rpc:{},types:{UncleEntryItem:{_enum:{InclusionHeight:"BlockNumber",Uncle:"(Hash, Option)"}}}},xu={current_epoch:{description:"Returns information regarding the current epoch.",params:[],type:"Epoch"},current_epoch_start:{description:"Returns the slot that started the current epoch.",params:[],type:"Slot"},generate_key_ownership_proof:{description:"Generates a proof of key ownership for the given authority in the current epoch.",params:[{name:"slot",type:"Slot"},{name:"authorityId",type:"AuthorityId"}],type:"Option"},next_epoch:{description:"Returns information regarding the next epoch (which was already previously announced).",params:[],type:"Epoch"},submit_report_equivocation_unsigned_extrinsic:{description:"Submits an unsigned extrinsic to report an equivocation.",params:[{name:"equivocationProof",type:"BabeEquivocationProof"},{name:"keyOwnerProof",type:"OpaqueKeyOwnershipProof"}],type:"Option"}},gu={rpc:{epochAuthorship:{description:"Returns data about which slots (primary or secondary) can be claimed in the current epoch with the keys in the keystore",isUnsafe:!0,params:[],type:"HashMap"}},runtime:{BabeApi:[{methods:{configuration:{description:"Return the genesis configuration for BABE. The configuration is only read on genesis.",params:[],type:"BabeGenesisConfiguration"},...xu},version:2},{methods:{configuration:{description:"Return the configuration for BABE. Version 1.",params:[],type:"BabeGenesisConfigurationV1"},...xu},version:1}]},types:{AllowedSlots:{_enum:["PrimarySlots","PrimaryAndSecondaryPlainSlots","PrimaryAndSecondaryVRFSlots"]},BabeAuthorityWeight:"u64",BabeEpochConfiguration:{c:"(u64, u64)",allowedSlots:"AllowedSlots"},BabeBlockWeight:"u32",BabeEquivocationProof:{offender:"AuthorityId",slotNumber:"SlotNumber",firstHeader:"Header",secondHeader:"Header"},BabeGenesisConfiguration:{slotDuration:"u64",epochLength:"u64",c:"(u64, u64)",genesisAuthorities:"Vec<(AuthorityId, BabeAuthorityWeight)>",randomness:"Randomness",allowedSlots:"AllowedSlots"},BabeGenesisConfigurationV1:{slotDuration:"u64",epochLength:"u64",c:"(u64, u64)",genesisAuthorities:"Vec<(AuthorityId, BabeAuthorityWeight)>",randomness:"Randomness",secondarySlots:"bool"},BabeWeight:"u64",MaybeRandomness:"Option",MaybeVrf:"Option",Epoch:{epochIndex:"u64",startSlot:"Slot",duration:"u64",authorities:"Vec<(AuthorityId, BabeAuthorityWeight)>",randomness:"Hash",config:"BabeEpochConfiguration"},EpochAuthorship:{primary:"Vec",secondary:"Vec",secondary_vrf:"Vec"},NextConfigDescriptor:{_enum:{V0:"Null",V1:"NextConfigDescriptorV1"}},NextConfigDescriptorV1:{c:"(u64, u64)",allowedSlots:"AllowedSlots"},OpaqueKeyOwnershipProof:"Bytes",Randomness:"Hash",RawBabePreDigest:{_enum:{Phantom:"Null",Primary:"RawBabePreDigestPrimary",SecondaryPlain:"RawBabePreDigestSecondaryPlain",SecondaryVRF:"RawBabePreDigestSecondaryVRF"}},RawBabePreDigestPrimary:{authorityIndex:"u32",slotNumber:"SlotNumber",vrfOutput:"VrfOutput",vrfProof:"VrfProof"},RawBabePreDigestSecondaryPlain:{authorityIndex:"u32",slotNumber:"SlotNumber"},RawBabePreDigestSecondaryVRF:{authorityIndex:"u32",slotNumber:"SlotNumber",vrfOutput:"VrfOutput",vrfProof:"VrfProof"},RawBabePreDigestTo159:{_enum:{Primary:"RawBabePreDigestPrimaryTo159",Secondary:"RawBabePreDigestSecondaryTo159"}},RawBabePreDigestPrimaryTo159:{authorityIndex:"u32",slotNumber:"SlotNumber",weight:"BabeBlockWeight",vrfOutput:"VrfOutput",vrfProof:"VrfProof"},RawBabePreDigestSecondaryTo159:{authorityIndex:"u32",slotNumber:"SlotNumber",weight:"BabeBlockWeight"},RawBabePreDigestCompat:{_enum:{Zero:"u32",One:"u32",Two:"u32",Three:"u32"}},SlotNumber:"u64",VrfData:"[u8; 32]",VrfOutput:"[u8; 32]",VrfProof:"[u8; 64]"}},vu={rpc:{},types:{AccountData:{free:"Balance",reserved:"Balance",miscFrozen:"Balance",feeFrozen:"Balance"},BalanceLockTo212:{id:"LockIdentifier",amount:"Balance",until:"BlockNumber",reasons:"WithdrawReasons"},BalanceLock:{id:"LockIdentifier",amount:"Balance",reasons:"Reasons"},BalanceStatus:{_enum:["Free","Reserved"]},Reasons:{_enum:["Fee","Misc","All"]},ReserveData:{id:"ReserveIdentifier",amount:"Balance"},ReserveIdentifier:"[u8; 8]",VestingSchedule:{offset:"Balance",perBlock:"Balance",startingBlock:"BlockNumber"},WithdrawReasons:{_set:{TransactionPayment:1,Transfer:2,Reserve:4,Fee:8,Tip:16}}}},wu={beefy_genesis:{description:"Return the block number where BEEFY consensus is enabled/started",params:[],type:"Option"},generate_key_ownership_proof:{description:"Generates a proof of key ownership for the given authority in the given set.",params:[{name:"setId",type:"ValidatorSetId"},{name:"authorityId",type:"AuthorityId"}],type:"Option"},submit_report_equivocation_unsigned_extrinsic:{description:"Submits an unsigned extrinsic to report an equivocation.",params:[{name:"equivocationProof",type:"BeefyEquivocationProof"},{name:"keyOwnerProof",type:"OpaqueKeyOwnershipProof"}],type:"Option"},validator_set:{description:"Return the current active BEEFY validator set",params:[],type:"Option"}},Su={rpc:{getFinalizedHead:{description:"Returns hash of the latest BEEFY finalized block as seen by this client.",params:[],type:"H256"},subscribeJustifications:{description:"Returns the block most recently finalized by BEEFY, alongside its justification.",params:[],pubsub:["justifications","subscribeJustifications","unsubscribeJustifications"],type:"BeefyVersionedFinalityProof"}},runtime:{BeefyApi:[{methods:wu,version:3},{methods:wu,version:2},{methods:wu,version:1}],BeefyMmrApi:[{methods:{authority_set_proof:{description:"Return the currently active BEEFY authority set proof.",params:[],type:"BeefyAuthoritySet"},next_authority_set_proof:{description:"Return the next/queued BEEFY authority set proof.",params:[],type:"BeefyNextAuthoritySet"}},version:1}]},types:{BeefyAuthoritySet:{id:"u64",len:"u32",root:"H256"},BeefyCommitment:{payload:"BeefyPayload",blockNumber:"BlockNumber",validatorSetId:"ValidatorSetId"},BeefyId:"[u8; 33]",BeefyEquivocationProof:{first:"BeefyVoteMessage",second:"BeefyVoteMessage"},BeefyCompactSignedCommitment:{commitment:"BeefyCommitment",signaturesFrom:"Vec",validatorSetLen:"u32",signaturesCompact:"Vec"},BeefySignedCommitment:{commitment:"BeefyCommitment",signatures:"Vec>"},BeefyVersionedFinalityProof:{_enum:{V0:"Null",V1:"BeefyCompactSignedCommitment"}},BeefyNextAuthoritySet:{id:"u64",len:"u32",root:"H256"},BeefyPayload:"Vec<(BeefyPayloadId, Bytes)>",BeefyPayloadId:"[u8;2]",BeefyVoteMessage:{commitment:"BeefyCommitment",id:"AuthorityId",signature:"Signature"},MmrRootHash:"H256",ValidatorSetId:"u64",ValidatorSet:{validators:"Vec",id:"ValidatorSetId"}}},ku={rpc:{},runtime:{Benchmark:[{methods:{benchmark_metadata:{description:"Get the benchmark metadata available for this runtime.",params:[{name:"extra",type:"bool"}],type:"(Vec, Vec)"},dispatch_benchmark:{description:"Dispatch the given benchmark.",params:[{name:"config",type:"BenchmarkConfig"}],type:"Result, Text>"}},version:1}]},types:{BenchmarkBatch:{pallet:"Text",instance:"Text",benchmark:"Text",results:"Vec"},BenchmarkConfig:{pallet:"Bytes",benchmark:"Bytes",selectedComponents:"Vec<(BenchmarkParameter, u32)>",verify:"bool",internalRepeats:"u32"},BenchmarkList:{pallet:"Bytes",instance:"Bytes",benchmarks:"Vec"},BenchmarkMetadata:{name:"Bytes",components:"Vec<(BenchmarkParameter, u32, u32)>"},BenchmarkParameter:{_enum:["a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z"]},BenchmarkResult:{components:"Vec<(BenchmarkParameter, u32)>",extrinsicTime:"u128",storageRootTime:"u128",reads:"u32",repeatReads:"u32",writes:"u32",repeatWrites:"u32",proofSize:"u32",benchKeys:"Vec<(Vec, u32, u32, bool)>"}}},Tu={random_seed:{description:"Generate a random seed.",params:[],type:"Hash"}},Pu={apply_extrinsic:{description:"Apply the given extrinsic.",params:[{name:"extrinsic",type:"Extrinsic"}],type:"ApplyExtrinsicResultPre6"}},Vu={check_inherents:{description:"Check that the inherents are valid.",params:[{name:"block",type:"Block"},{name:"data",type:"InherentData"}],type:"CheckInherentsResult"},inherent_extrinsics:{description:"Generate inherent extrinsics.",params:[{name:"inherent",type:"InherentData"}],type:"Vec"}},Mu={finalize_block:{description:"Finish the current block.",params:[],type:"Header"}},_u={rpc:{},runtime:{BlockBuilder:[{methods:{apply_extrinsic:{description:"Apply the given extrinsic.",params:[{name:"extrinsic",type:"Extrinsic"}],type:"ApplyExtrinsicResult"},...Vu,...Mu},version:6},{methods:{...Pu,...Vu,...Mu},version:5},{methods:{...Tu,...Pu,...Vu,...Mu},version:4},{methods:{...Tu,...Vu,...Mu},version:3},{methods:{finalise_block:{description:"Finish the current block.",params:[],type:"Header"},...Tu,...Vu},version:2}]},types:{CheckInherentsResult:{okay:"bool",fatalError:"bool",errors:"InherentData"},InherentData:{data:"BTreeMap"},InherentIdentifier:"[u8; 8]"}},Iu={rpc:{},types:{CollectiveOrigin:{_enum:{Members:"(MemberCount, MemberCount)",Member:"AccountId"}},MemberCount:"u32",ProposalIndex:"u32",VotesTo230:{index:"ProposalIndex",threshold:"MemberCount",ayes:"Vec",nays:"Vec"},Votes:{index:"ProposalIndex",threshold:"MemberCount",ayes:"Vec",nays:"Vec",end:"BlockNumber"}}},Ou={rpc:{},types:{AuthorityId:"AccountId",RawVRFOutput:"[u8; 32]"}},Nu={get_storage:{description:"Query a given storage key in a given contract.",params:[{name:"address",type:"AccountId"},{name:"key",type:"Bytes"}],type:"Option"},upload_code:{description:"Upload new code without instantiating a contract from it.",params:[{name:"origin",type:"AccountId"},{name:"code",type:"Bytes"},{name:"storageDepositLimit",type:"Option"}],type:"CodeUploadResult"}},Eu={rpc:{call:{deprecated:"Use the runtime interface `api.call.contractsApi.call` instead",description:"Executes a call to a contract",params:[{name:"callRequest",type:"ContractCallRequest"},{isHistoric:!0,isOptional:!0,name:"at",type:"BlockHash"}],type:"ContractExecResult"},getStorage:{deprecated:"Use the runtime interface `api.call.contractsApi.getStorage` instead",description:"Returns the value under a specified storage key in a contract",params:[{name:"address",type:"AccountId"},{name:"key",type:"H256"},{isHistoric:!0,isOptional:!0,name:"at",type:"BlockHash"}],type:"Option"},instantiate:{deprecated:"Use the runtime interface `api.call.contractsApi.instantiate` instead",description:"Instantiate a new contract",params:[{name:"request",type:"InstantiateRequestV1"},{isHistoric:!0,isOptional:!0,name:"at",type:"BlockHash"}],type:"ContractInstantiateResult"},rentProjection:{deprecated:"Not available in newer versions of the contracts interfaces",description:"Returns the projected time a given contract will be able to sustain paying its rent",params:[{name:"address",type:"AccountId"},{isHistoric:!0,isOptional:!0,name:"at",type:"BlockHash"}],type:"Option"},uploadCode:{deprecated:"Use the runtime interface `api.call.contractsApi.uploadCode` instead",description:"Upload new code without instantiating a contract from it",endpoint:"contracts_upload_code",params:[{name:"uploadRequest",type:"CodeUploadRequest"},{isHistoric:!0,isOptional:!0,name:"at",type:"BlockHash"}],type:"CodeUploadResult"}},runtime:{ContractsApi:[{methods:{call:{description:"Perform a call from a specified account to a given contract.",params:[{name:"origin",type:"AccountId"},{name:"dest",type:"AccountId"},{name:"value",type:"Balance"},{name:"gasLimit",type:"Option"},{name:"storageDepositLimit",type:"Option"},{name:"inputData",type:"Vec"}],type:"ContractExecResult"},instantiate:{description:"Instantiate a new contract.",params:[{name:"origin",type:"AccountId"},{name:"value",type:"Balance"},{name:"gasLimit",type:"Option"},{name:"storageDepositLimit",type:"Option"},{name:"code",type:"CodeSource"},{name:"data",type:"Bytes"},{name:"salt",type:"Bytes"}],type:"ContractInstantiateResult"},...Nu},version:2},{methods:{call:{description:"Perform a call from a specified account to a given contract.",params:[{name:"origin",type:"AccountId"},{name:"dest",type:"AccountId"},{name:"value",type:"Balance"},{name:"gasLimit",type:"u64"},{name:"storageDepositLimit",type:"Option"},{name:"inputData",type:"Vec"}],type:"ContractExecResultU64"},instantiate:{description:"Instantiate a new contract.",params:[{name:"origin",type:"AccountId"},{name:"value",type:"Balance"},{name:"gasLimit",type:"u64"},{name:"storageDepositLimit",type:"Option"},{name:"code",type:"CodeSource"},{name:"data",type:"Bytes"},{name:"salt",type:"Bytes"}],type:"ContractInstantiateResultU64"},...Nu},version:1}]},types:{AliveContractInfo:{trieId:"TrieId",storageSize:"u32",pairCount:"u32",codeHash:"CodeHash",rentAllowance:"Balance",rentPaid:"Balance",deductBlock:"BlockNumber",lastWrite:"Option",_reserved:"Option"},CodeHash:"Hash",CodeSource:{_enum:{Upload:"Bytes",Existing:"Hash"}},CodeUploadRequest:{origin:"AccountId",code:"Bytes",storageDepositLimit:"Option"},CodeUploadResult:"Result",CodeUploadResultValue:{codeHash:"CodeHash",deposit:"Balance"},ContractCallRequest:{origin:"AccountId",dest:"AccountId",value:"Balance",gasLimit:"u64",storageDepositLimit:"Option",inputData:"Bytes"},ContractExecResultSuccessTo255:{status:"u8",data:"Raw"},ContractExecResultTo255:{_enum:{Success:"ContractExecResultSuccessTo255",Error:"Null"}},ContractExecResultSuccessTo260:{flags:"ContractReturnFlags",data:"Bytes",gasConsumed:"u64"},ContractExecResultTo260:{_enum:{Success:"ContractExecResultSuccessTo260",Error:"Null"}},ContractExecResultOk:{flags:"ContractReturnFlags",data:"Bytes"},ContractExecResultResult:"Result",ContractExecResultTo267:{gasConsumed:"u64",debugMessage:"Text",result:"ContractExecResultResult"},ContractExecResult:{gasConsumed:"Weight",gasRequired:"Weight",storageDeposit:"StorageDeposit",debugMessage:"Text",result:"ContractExecResultResult"},ContractExecResultU64:{gasConsumed:"u64",gasRequired:"u64",storageDeposit:"StorageDeposit",debugMessage:"Text",result:"ContractExecResultResult"},ContractInfo:{_enum:{Alive:"AliveContractInfo",Tombstone:"TombstoneContractInfo"}},ContractCallFlags:{_set:{_bitLength:32,ForwardInput:1,CloneInput:2,TailCall:4,AllowReentry:8}},ContractReturnFlags:{_set:{_bitLength:32,Revert:1}},ContractStorageKey:"[u8; 32]",DeletedContract:{pairCount:"u32",trieId:"TrieId"},ExecReturnValue:{flags:"ContractReturnFlags",data:"Bytes"},Gas:"u64",HostFnWeightsTo264:{caller:"Weight",address:"Weight",gasLeft:"Weight",balance:"Weight",valueTransferred:"Weight",minimumBalance:"Weight",tombstoneDeposit:"Weight",rentAllowance:"Weight",blockNumber:"Weight",now:"Weight",weightToFee:"Weight",gas:"Weight",input:"Weight",inputPerByte:"Weight",return:"Weight",returnPerByte:"Weight",terminate:"Weight",restoreTo:"Weight",restoreToPerDelta:"Weight",random:"Weight",depositEvent:"Weight",depositEventPerTopic:"Weight",depositEventPerByte:"Weight",setRentAllowance:"Weight",setStorage:"Weight",setStoragePerByte:"Weight",clearStorage:"Weight",getStorage:"Weight",getStoragePerByte:"Weight",transfer:"Weight",call:"Weight",callTransferSurcharge:"Weight",callPerInputByte:"Weight",callPerOutputByte:"Weight",instantiate:"Weight",instantiatePerInputByte:"Weight",instantiatePerOutputByte:"Weight",hashSha2256:"Weight",hashSha2256PerByte:"Weight",hashKeccak256:"Weight",hashKeccak256PerByte:"Weight",hashBlake2256:"Weight",hashBlake2256PerByte:"Weight",hashBlake2128:"Weight",hashBlake2128PerByte:"Weight"},HostFnWeights:{caller:"Weight",address:"Weight",gasLeft:"Weight",balance:"Weight",valueTransferred:"Weight",minimumBalance:"Weight",tombstoneDeposit:"Weight",rentAllowance:"Weight",blockNumber:"Weight",now:"Weight",weightToFee:"Weight",gas:"Weight",input:"Weight",inputPerByte:"Weight",return:"Weight",returnPerByte:"Weight",terminate:"Weight",terminatePerCodeByte:"Weight",restoreTo:"Weight",restoreToPerCallerCodeByte:"Weight",restoreToPerTombstoneCodeByte:"Weight",restoreToPerDelta:"Weight",random:"Weight",depositEvent:"Weight",depositEventPerTopic:"Weight",depositEventPerByte:"Weight",setRentAllowance:"Weight",setStorage:"Weight",setStoragePerByte:"Weight",clearStorage:"Weight",getStorage:"Weight",getStoragePerByte:"Weight",transfer:"Weight",call:"Weight",callPerCodeByte:"Weight",callTransferSurcharge:"Weight",callPerInputByte:"Weight",callPerOutputByte:"Weight",instantiate:"Weight",instantiatePerCodeByte:"Weight",instantiatePerInputByte:"Weight",instantiatePerOutputByte:"Weight",instantiatePerSaltByte:"Weight",hashSha2256:"Weight",hashSha2256PerByte:"Weight",hashKeccak256:"Weight",hashKeccak256PerByte:"Weight",hashBlake2256:"Weight",hashBlake2256PerByte:"Weight",hashBlake2128:"Weight",hashBlake2128PerByte:"Weight",rentParams:"Weight"},InstantiateRequestV1:{origin:"AccountId",value:"Balance",gasLimit:"Gas",code:"Bytes",data:"Bytes",salt:"Bytes"},InstantiateRequestV2:{_fallback:"InstantiateRequestV1",origin:"AccountId",value:"Balance",gasLimit:"Gas",storageDepositLimit:"Option",code:"Bytes",data:"Bytes",salt:"Bytes"},InstantiateRequest:{_fallback:"InstantiateRequestV2",origin:"AccountId",value:"Balance",gasLimit:"Gas",storageDepositLimit:"Option",code:"CodeSource",data:"Bytes",salt:"Bytes"},ContractInstantiateResultTo267:"Result",ContractInstantiateResultTo299:"Result",ContractInstantiateResult:{gasConsumed:"WeightV2",gasRequired:"WeightV2",storageDeposit:"StorageDeposit",debugMessage:"Text",result:"InstantiateReturnValue"},ContractInstantiateResultU64:{_fallback:"ContractInstantiateResultTo299",gasConsumed:"u64",gasRequired:"u64",storageDeposit:"StorageDeposit",debugMessage:"Text",result:"InstantiateReturnValue"},InstantiateReturnValueTo267:{result:"ExecReturnValue",accountId:"AccountId",rentProjection:"Option"},InstantiateReturnValueOk:{result:"ExecReturnValue",accountId:"AccountId"},InstantiateReturnValue:"Result",InstructionWeights:{i64const:"u32",i64load:"u32",i64store:"u32",select:"u32",rIf:"u32",br:"u32",brIf:"u32",brIable:"u32",brIablePerEntry:"u32",call:"u32",callIndirect:"u32",callIndirectPerParam:"u32",localGet:"u32",localSet:"u32",local_tee:"u32",globalGet:"u32",globalSet:"u32",memoryCurrent:"u32",memoryGrow:"u32",i64clz:"u32",i64ctz:"u32",i64popcnt:"u32",i64eqz:"u32",i64extendsi32:"u32",i64extendui32:"u32",i32wrapi64:"u32",i64eq:"u32",i64ne:"u32",i64lts:"u32",i64ltu:"u32",i64gts:"u32",i64gtu:"u32",i64les:"u32",i64leu:"u32",i64ges:"u32",i64geu:"u32",i64add:"u32",i64sub:"u32",i64mul:"u32",i64divs:"u32",i64divu:"u32",i64rems:"u32",i64remu:"u32",i64and:"u32",i64or:"u32",i64xor:"u32",i64shl:"u32",i64shrs:"u32",i64shru:"u32",i64rotl:"u32",i64rotr:"u32"},LimitsTo264:{eventTopics:"u32",stackHeight:"u32",globals:"u32",parameters:"u32",memoryPages:"u32",tableSize:"u32",brTableSize:"u32",subjectLen:"u32",codeSize:"u32"},Limits:{eventTopics:"u32",stackHeight:"u32",globals:"u32",parameters:"u32",memoryPages:"u32",tableSize:"u32",brTableSize:"u32",subjectLen:"u32"},PrefabWasmModule:{scheduleVersion:"Compact",initial:"Compact",maximum:"Compact",refcount:"Compact",_reserved:"Option",code:"Bytes",originalCodeLen:"u32"},RentProjection:{_enum:{EvictionAt:"BlockNumber",NoEviction:"Null"}},ScheduleTo212:{version:"u32",putCodePerByteCost:"Gas",growMemCost:"Gas",regularOpCost:"Gas",returnDataPerByteCost:"Gas",eventDataPerByteCost:"Gas",eventPerTopicCost:"Gas",eventBaseCost:"Gas",sandboxDataReadCost:"Gas",sandboxDataWriteCost:"Gas",maxEventTopics:"u32",maxStackHeight:"u32",maxMemoryPages:"u32",enablePrintln:"bool",maxSubjectLen:"u32"},ScheduleTo258:{version:"u32",putCodePerByteCost:"Gas",growMemCost:"Gas",regularOpCost:"Gas",returnDataPerByteCost:"Gas",eventDataPerByteCost:"Gas",eventPerTopicCost:"Gas",eventBaseCost:"Gas",sandboxDataReadCost:"Gas",sandboxDataWriteCost:"Gas",transferCost:"Gas",maxEventTopics:"u32",maxStackHeight:"u32",maxMemoryPages:"u32",enablePrintln:"bool",maxSubjectLen:"u32"},ScheduleTo264:{version:"u32",enablePrintln:"bool",limits:"LimitsTo264",instructionWeights:"InstructionWeights",hostFnWeights:"HostFnWeightsTo264"},Schedule:{version:"u32",enablePrintln:"bool",limits:"Limits",instructionWeights:"InstructionWeights",hostFnWeights:"HostFnWeights"},SeedOf:"Hash",StorageDeposit:{_enum:{Refund:"Balance",Charge:"Balance"}},TombstoneContractInfo:"Hash",TrieId:"Bytes"}},Cu={rpc:{},types:{AccountVote:{_enum:{Standard:"AccountVoteStandard",Split:"AccountVoteSplit"}},AccountVoteSplit:{aye:"Balance",nay:"Balance"},AccountVoteStandard:{vote:"Vote",balance:"Balance"},Conviction:{_enum:["None","Locked1x","Locked2x","Locked3x","Locked4x","Locked5x","Locked6x"]},Delegations:{votes:"Balance",capital:"Balance"},PreimageStatus:{_enum:{Missing:"BlockNumber",Available:"PreimageStatusAvailable"}},PreimageStatusAvailable:{data:"Bytes",provider:"AccountId",deposit:"Balance",since:"BlockNumber",expiry:"Option"},PriorLock:"(BlockNumber, Balance)",PropIndex:"u32",Proposal:"Call",ProxyState:{_enum:{Open:"AccountId",Active:"AccountId"}},ReferendumIndex:"u32",ReferendumInfoTo239:{end:"BlockNumber",proposalHash:"Hash",threshold:"VoteThreshold",delay:"BlockNumber"},ReferendumInfo:{_enum:{Ongoing:"ReferendumStatus",Finished:"ReferendumInfoFinished"}},ReferendumInfoFinished:{approved:"bool",end:"BlockNumber"},ReferendumStatus:{end:"BlockNumber",proposalHash:"Hash",threshold:"VoteThreshold",delay:"BlockNumber",tally:"Tally"},Tally:{ayes:"Balance",nays:"Balance",turnout:"Balance"},Voting:{_enum:{Direct:"VotingDirect",Delegating:"VotingDelegating"}},VotingDirect:{votes:"Vec",delegations:"Delegations",prior:"PriorLock"},VotingDirectVote:"(ReferendumIndex, AccountVote)",VotingDelegating:{balance:"Balance",target:"AccountId",conviction:"Conviction",delegations:"Delegations",prior:"PriorLock"}}},Au={rpc:{getBlockStats:{description:"Reexecute the specified `block_hash` and gather statistics while doing so",isUnsafe:!0,params:[{isHistoric:!0,name:"at",type:"Hash"}],type:"Option"}},types:{BlockStats:{witnessLen:"u64",witnessCompactLen:"u64",blockLen:"u64",blockNumExtrinsics:"u64"}}},Hu={rpc:{},runtime:{AuthorityDiscoveryApi:[{methods:{authorities:{description:"Retrieve authority identifiers of the current and next authority set.",params:[],type:"Vec"}},version:1}]},types:{}},Ru={rpc:{},types:{ApprovalFlag:"u32",DefunctVoter:{who:"AccountId",voteCount:"Compact",candidateCount:"Compact"},Renouncing:{_enum:{Member:"Null",RunnerUp:"Null",Candidate:"Compact"}},SetIndex:"u32",Vote:"GenericVote",VoteIndex:"u32",VoterInfo:{lastActive:"VoteIndex",lastWin:"VoteIndex",pot:"Balance",stake:"Balance"},VoteThreshold:{_enum:["Super Majority Approve","Super Majority Against","Simple Majority"]}}},Bu={rpc:{createBlock:{description:"Instructs the manual-seal authorship task to create a new block",params:[{name:"createEmpty",type:"bool"},{name:"finalize",type:"bool"},{isOptional:!0,name:"parentHash",type:"BlockHash"}],type:"CreatedBlock"},finalizeBlock:{description:"Instructs the manual-seal authorship task to finalize a block",params:[{name:"hash",type:"BlockHash"},{isOptional:!0,name:"justification",type:"Justification"}],type:"bool"}},types:{CreatedBlock:{_alias:{blockHash:"hash"},blockHash:"BlockHash",aux:"ImportedAux"},ImportedAux:{headerOnly:"bool",clearJustificationRequests:"bool",needsJustification:"bool",badJustification:"bool",needsFinalityProof:"bool",isNewBest:"bool"}}},Lu={rpc:{},types:{EvmAccount:{nonce:"u256",balance:"u256"},EvmCallInfo:{exitReason:"ExitReason",value:"Bytes",usedGas:"U256",logs:"Vec"},EvmCreateInfo:{exitReason:"ExitReason",value:"H160",usedGas:"U256",logs:"Vec"},EvmCallInfoV2:{exitReason:"ExitReason",value:"Bytes",usedGas:"U256",weightInfo:"Option",logs:"Vec"},EvmCreateInfoV2:{exitReason:"ExitReason",value:"H160",usedGas:"U256",weightInfo:"Option",logs:"Vec"},EvmLog:{address:"H160",topics:"Vec",data:"Bytes"},EvmVicinity:{gasPrice:"u256",origin:"H160"},EvmWeightInfo:{refTimeLimit:"Option",proofSizeLimit:"Option",refTimeUsage:"Option",proofSizeUsage:"Option"},ExitError:{_enum:{StackUnderflow:"Null",StackOverflow:"Null",InvalidJump:"Null",InvalidRange:"Null",DesignatedInvalid:"Null",CallTooDeep:"Null",CreateCollision:"Null",CreateContractLimit:"Null",OutOfOffset:"Null",OutOfGas:"Null",OutOfFund:"Null",PCUnderflow:"Null",CreateEmpty:"Null",Other:"Text"}},ExitFatal:{_enum:{NotSupported:"Null",UnhandledInterrupt:"Null",CallErrorAsFatal:"ExitError",Other:"Text"}},ExitReason:{_enum:{Succeed:"ExitSucceed",Error:"ExitError",Revert:"ExitRevert",Fatal:"ExitFatal"}},ExitRevert:{_enum:["Reverted"]},ExitSucceed:{_enum:["Stopped","Returned","Suicided"]}}},Uu={rpc:{},types:{Extrinsic:"GenericExtrinsic",ExtrinsicEra:"GenericExtrinsicEra",ExtrinsicPayload:"GenericExtrinsicPayload",ExtrinsicSignature:"MultiSignature",ExtrinsicV4:"GenericExtrinsicV4",ExtrinsicPayloadV4:"GenericExtrinsicPayloadV4",ExtrinsicSignatureV4:"GenericExtrinsicSignatureV4",ExtrinsicUnknown:"GenericExtrinsicUnknown",ExtrinsicPayloadUnknown:"GenericExtrinsicPayloadUnknown",Era:"ExtrinsicEra",ImmortalEra:"GenericImmortalEra",MortalEra:"GenericMortalEra",AnySignature:"H512",MultiSignature:{_enum:{Ed25519:"Ed25519Signature",Sr25519:"Sr25519Signature",Ecdsa:"EcdsaSignature"}},Signature:"H512",SignerPayload:"GenericSignerPayload",EcdsaSignature:"[u8; 65]",Ed25519Signature:"H512",Sr25519Signature:"H512"}},zu={rpc:{},runtime:{FungiblesApi:[{methods:{query_account_balances:{description:"Returns the list of all `MultiAsset` that an `AccountId` has",params:[{name:"account",type:"AccountId"}],type:"Result, FungiblesAccessError>"}},version:1},{methods:{query_account_balances:{description:"Returns the list of all `MultiAsset` that an `AccountId` has",params:[{name:"account",type:"AccountId"}],type:"Result"}},version:2}]},types:{FungiblesAccessError:{_enum:["AssetIdConversionFailed","AmountToBalanceConversionFailed"]}}},Du={rpc:{},types:{AssetOptions:{initalIssuance:"Compact",permissions:"PermissionLatest"},Owner:{_enum:{None:"Null",Address:"AccountId"}},PermissionsV1:{update:"Owner",mint:"Owner",burn:"Owner"},PermissionVersions:{_enum:{V1:"PermissionsV1"}},PermissionLatest:"PermissionsV1"}},qu={rpc:{},runtime:{GenesisBuilder:[{methods:{build_config:{description:"Build `RuntimeGenesisConfig` from a JSON blob not using any defaults and store it in the storage.",params:[{name:"json",type:"Vec"}],type:"Result<(), GenesisBuildErr>"},create_default_config:{description:"Creates the default `RuntimeGenesisConfig` and returns it as a JSON blob.",params:[],type:"Vec"}},version:1}]},types:{GenesisBuildErr:"Text"}},ju={rpc:{},types:{ActiveGilt:{proportion:"Perquintill",amount:"Balance",who:"AccountId",expiry:"BlockNumber"},ActiveGiltsTotal:{frozen:"Balance",proportion:"Perquintill",index:"ActiveIndex",target:"Perquintill"},ActiveIndex:"u32",GiltBid:{amount:"Balance",who:"AccountId"}}},Fu={generate_key_ownership_proof:{description:"Generates a proof of key ownership for the given authority in the given set.",params:[{name:"setId",type:"SetId"},{name:"authorityId",type:"AuthorityId"}],type:"Option"},grandpa_authorities:{description:"Get the current GRANDPA authorities and weights. This should not change except for when changes are scheduled and the corresponding delay has passed.",params:[],type:"AuthorityList"},submit_report_equivocation_unsigned_extrinsic:{description:"Submits an unsigned extrinsic to report an equivocation.",params:[{name:"equivocationProof",type:"GrandpaEquivocationProof"},{name:"keyOwnerProof",type:"OpaqueKeyOwnershipProof"}],type:"Option"}},Xu={rpc:{proveFinality:{description:"Prove finality for the given block number, returning the Justification for the last block in the set.",params:[{name:"blockNumber",type:"BlockNumber"}],type:"Option"},roundState:{description:"Returns the state of the current best round state as well as the ongoing background rounds",params:[],type:"ReportedRoundStates"},subscribeJustifications:{description:"Subscribes to grandpa justifications",params:[],pubsub:["justifications","subscribeJustifications","unsubscribeJustifications"],type:"JustificationNotification"}},runtime:{GrandpaApi:[{methods:{current_set_id:{description:"Get current GRANDPA authority set id.",params:[],type:"SetId"},...Fu},version:3},{methods:Fu,version:2}]},types:{AuthorityIndex:"u64",AuthorityList:"Vec",AuthoritySet:{currentAuthorities:"AuthorityList",setId:"u64",pendingStandardChanges:"ForkTreePendingChange",pendingForcedChanges:"Vec",authoritySetChanges:"AuthoritySetChanges"},ForkTreePendingChange:{roots:"Vec",bestFinalizedNumber:"Option"},ForkTreePendingChangeNode:{hash:"BlockHash",number:"BlockNumber",data:"PendingChange",children:"Vec"},AuthoritySetChange:"(U64, BlockNumber)",AuthoritySetChanges:"Vec",AuthorityWeight:"u64",DelayKind:{_enum:{Finalized:"Null",Best:"DelayKindBest"}},DelayKindBest:{medianLastFinalized:"BlockNumber"},EncodedFinalityProofs:"Bytes",GrandpaEquivocation:{_enum:{Prevote:"GrandpaEquivocationValue",Precommit:"GrandpaEquivocationValue"}},GrandpaEquivocationProof:{setId:"SetId",equivocation:"GrandpaEquivocation"},GrandpaEquivocationValue:{roundNumber:"u64",identity:"AuthorityId",first:"(GrandpaPrevote, AuthoritySignature)",second:"(GrandpaPrevote, AuthoritySignature)"},GrandpaPrevote:{targetHash:"Hash",targetNumber:"BlockNumber"},GrandpaCommit:{targetHash:"BlockHash",targetNumber:"BlockNumber",precommits:"Vec"},GrandpaPrecommit:{targetHash:"BlockHash",targetNumber:"BlockNumber"},GrandpaSignedPrecommit:{precommit:"GrandpaPrecommit",signature:"AuthoritySignature",id:"AuthorityId"},GrandpaJustification:{round:"u64",commit:"GrandpaCommit",votesAncestries:"Vec
"},JustificationNotification:"Bytes",KeyOwnerProof:"MembershipProof",NextAuthority:"(AuthorityId, AuthorityWeight)",PendingChange:{nextAuthorities:"AuthorityList",delay:"BlockNumber",canonHeight:"BlockNumber",canonHash:"BlockHash",delayKind:"DelayKind"},PendingPause:{scheduledAt:"BlockNumber",delay:"BlockNumber"},PendingResume:{scheduledAt:"BlockNumber",delay:"BlockNumber"},Precommits:{currentWeight:"u32",missing:"BTreeSet"},Prevotes:{currentWeight:"u32",missing:"BTreeSet"},ReportedRoundStates:{setId:"u32",best:"RoundState",background:"Vec"},RoundState:{round:"u32",totalWeight:"u32",thresholdWeight:"u32",prevotes:"Prevotes",precommits:"Precommits"},SetId:"u64",StoredPendingChange:{scheduledAt:"BlockNumber",delay:"BlockNumber",nextAuthorities:"AuthorityList"},StoredState:{_enum:{Live:"Null",PendingPause:"PendingPause",Paused:"Null",PendingResume:"PendingResume"}}}},Wu={rpc:{},types:{IdentityFields:{_set:{_bitLength:64,Display:1,Legal:2,Web:4,Riot:8,Email:16,PgpFingerprint:32,Image:64,Twitter:128}},IdentityInfoAdditional:"(Data, Data)",IdentityInfoTo198:{additional:"Vec",display:"Data",legal:"Data",web:"Data",riot:"Data",email:"Data",pgpFingerprint:"Option",image:"Data"},IdentityInfo:{_fallback:"IdentityInfoTo198",additional:"Vec",display:"Data",legal:"Data",web:"Data",riot:"Data",email:"Data",pgpFingerprint:"Option",image:"Data",twitter:"Data"},IdentityJudgement:{_enum:{Unknown:"Null",FeePaid:"Balance",Reasonable:"Null",KnownGood:"Null",OutOfDate:"Null",LowQuality:"Null",Erroneous:"Null"}},RegistrationJudgement:"(RegistrarIndex, IdentityJudgement)",RegistrationTo198:{judgements:"Vec",deposit:"Balance",info:"IdentityInfoTo198"},Registration:{_fallback:"RegistrationTo198",judgements:"Vec",deposit:"Balance",info:"IdentityInfo"},RegistrarIndex:"u32",RegistrarInfo:{account:"AccountId",fee:"Balance",fields:"IdentityFields"}}},Zu={rpc:{},types:{AuthIndex:"u32",AuthoritySignature:"Signature",Heartbeat:{blockNumber:"BlockNumber",networkState:"OpaqueNetworkState",sessionIndex:"SessionIndex",authorityIndex:"AuthIndex",validatorsLen:"u32"},HeartbeatTo244:{blockNumber:"BlockNumber",networkState:"OpaqueNetworkState",sessionIndex:"SessionIndex",authorityIndex:"AuthIndex"},OpaqueMultiaddr:"Opaque",OpaquePeerId:"Opaque",OpaqueNetworkState:{peerId:"OpaquePeerId",externalAddresses:"Vec"}}},Gu={rpc:{},types:{CallIndex:"(u8, u8)",LotteryConfig:{price:"Balance",start:"BlockNumber",length:"BlockNumber",delay:"BlockNumber",repeat:"bool"}}},Ku={rpc:{},runtime:{MixnetApi:[{methods:{current_mixnodes:{description:"Get the index and phase of the current session.",params:[],type:"Result"},maybe_register:{description:"Try to register a mixnode for the next session.",params:[{name:"session_index",type:"u32"},{name:"mixnode",type:"Mixnode"}],type:"bool"},prev_mixnodes:{description:"Get the index and phase of the current session.",params:[],type:"Result"},session_status:{description:"Get the index and phase of the current session.",params:[],type:"SessionStatus"}},version:1}]},types:{Mixnode:{externalAddresses:"Vec",kxPublic:"[u8; 32]",peerId:"[u8; 32]"},MixnodesErr:{_enum:{InsufficientRegistrations:{min:"u32",num:"u32"}}},SessionPhase:{_enum:["CoverToCurrent","RequestsToCurrent","CoverToPrev","DisconnectFromPrev"]},SessionStatus:{currentIndex:"u32",phase:"SessionPhase"}}},Yu={rpc:{generateProof:{description:"Generate MMR proof for the given block numbers.",params:[{name:"blockNumbers",type:"Vec"},{isOptional:!0,name:"bestKnownBlockNumber",type:"u64"},{isHistoric:!0,isOptional:!0,name:"at",type:"BlockHash"}],type:"MmrLeafBatchProof"},root:{description:"Get the MMR root hash for the current best block.",params:[{isHistoric:!0,isOptional:!0,name:"at",type:"BlockHash"}],type:"MmrHash"},verifyProof:{description:"Verify an MMR proof",params:[{name:"proof",type:"MmrLeafBatchProof"}],type:"bool"},verifyProofStateless:{description:"Verify an MMR proof statelessly given an mmr_root",params:[{name:"root",type:"MmrHash"},{name:"proof",type:"MmrLeafBatchProof"}],type:"bool"}},runtime:{MmrApi:[{methods:{generate_proof:{description:"Generate MMR proof for the given block numbers.",params:[{name:"blockNumbers",type:"Vec"},{name:"bestKnownBlockNumber",type:"Option"}],type:"Result<(Vec, MmrBatchProof), MmrError>"},mmr_leaf_count:{description:"Return the number of MMR blocks in the chain.",params:[],type:"Result"},mmr_root:{description:"Return the on-chain MMR root hash.",params:[],type:"Result"},verify_proof:{description:"Verify MMR proof against on-chain MMR.",params:[{name:"leaves",type:"Vec"},{name:"proof",type:"MmrBatchProof"}],type:"Result<(), MmrError>"},verify_proof_stateless:{description:"Verify MMR proof against given root hash.",params:[{name:"root",type:"Hash"},{name:"leaves",type:"Vec"},{name:"proof",type:"MmrBatchProof"}],type:"Result<(), MmrError>"}},version:2},{methods:{generate_batch_proof:{description:"Generate MMR proof for a series of leaves under given indices.",params:[{name:"leafIndices",type:"Vec"}],type:"Result<(Vec, MmrBatchProof), MmrError>"},generate_proof:{description:"Generate MMR proof for a leaf under given index.",params:[{name:"leafIndex",type:"MmrLeafIndex"}],type:"Result<(MmrEncodableOpaqueLeaf, MmrProof), MmrError>"},mmr_root:{description:"Return the on-chain MMR root hash.",params:[],type:"Result"},verify_batch_proof:{description:"Verify MMR proof against on-chain MMR for a batch of leaves.",params:[{name:"leaves",type:"Vec"},{name:"proof",type:"MmrBatchProof"}],type:"Result<(), MmrError>"},verify_batch_proof_stateless:{description:"Verify MMR proof against given root hash or a batch of leaves.",params:[{name:"root",type:"Hash"},{name:"leaves",type:"Vec"},{name:"proof",type:"MmrBatchProof"}],type:"Result<(), MmrError>"},verify_proof:{description:"Verify MMR proof against on-chain MMR.",params:[{name:"leaf",type:"MmrEncodableOpaqueLeaf"},{name:"proof",type:"MmrProof"}],type:"Result<(), MmrError>"},verify_proof_stateless:{description:"Verify MMR proof against given root hash.",params:[{name:"root",type:"Hash"},{name:"leaf",type:"MmrEncodableOpaqueLeaf"},{name:"proof",type:"MmrProof"}],type:"Result<(), MmrError>"}},version:1}]},types:{MmrBatchProof:{leafIndices:"Vec",leafCount:"MmrNodeIndex",items:"Vec"},MmrEncodableOpaqueLeaf:"Bytes",MmrError:{_enum:["InvalidNumericOp","Push","GetRoot","Commit","GenerateProof","Verify","LeafNotFound"," PalletNotIncluded","InvalidLeafIndex","InvalidBestKnownBlock"]},MmrHash:"Hash",MmrLeafBatchProof:{blockHash:"BlockHash",leaves:"Bytes",proof:"Bytes"},MmrLeafIndex:"u64",MmrLeafProof:{blockHash:"BlockHash",leaf:"Bytes",proof:"Bytes"},MmrNodeIndex:"u64",MmrProof:{leafIndex:"MmrLeafIndex",leafCount:"MmrNodeIndex",items:"Vec"}}},Ju={rpc:{},runtime:{NftsApi:[{methods:{attribute:{description:"An attribute",params:[{name:"collection",type:"NftCollectionId"},{name:"item",type:"NftItemId"},{name:"key",type:"Bytes"}],type:"Option"},collection_attribute:{description:"A collection attribute",params:[{name:"collection",type:"NftCollectionId"},{name:"key",type:"Bytes"}],type:"Option"},collection_owner:{description:"A collection owner",params:[{name:"collection",type:"NftCollectionId"}],type:"Option"},custom_attribute:{description:"A custom attribute",params:[{name:"account",type:"AccountId"},{name:"collection",type:"NftCollectionId"},{name:"item",type:"NftItemId"},{name:"key",type:"Bytes"}],type:"Option"},owner:{description:"Collection owner",params:[{name:"collection",type:"NftCollectionId"},{name:"item",type:"NftItemId"}],type:"Option"},system_attribute:{description:"System attribute",params:[{name:"collection",type:"NftCollectionId"},{name:"item",type:"NftItemId"},{name:"key",type:"Bytes"}],type:"Option"}},version:1}]},types:{NftCollectionId:"u32",NftItemId:"u32"}},Qu={rpc:{},runtime:{NominationPoolsApi:[{methods:{balance_to_points:{description:"Returns the equivalent points of `new_funds` for a given pool.",params:[{name:"poolId",type:"NpPoolId"},{name:"newFunds",type:"Balance"}],type:"Balance"},pending_rewards:{description:"Returns the pending rewards for the given member.",params:[{name:"member",type:"AccountId"}],type:"Balance"},points_to_balance:{description:"Returns the equivalent balance of `points` for a given pool.",params:[{name:"poolId",type:"NpPoolId"},{name:"points",type:"Balance"}],type:"Balance"}},version:1}]},types:{NpApiError:{_enum:["MemberNotFound","OverflowInPendingRewards"]},NpPoolId:"u32"}},$u={rpc:{},types:{DeferredOffenceOf:"(Vec, Vec, SessionIndex)",Kind:"[u8; 16]",OffenceDetails:{offender:"Offender",reporters:"Vec"},Offender:"IdentificationTuple",OpaqueTimeSlot:"Bytes",ReportIdOf:"Hash",Reporter:"AccountId"}},el={rpc:{},runtime:{DifficultyApi:[{methods:{difficulty:{description:"Return the target difficulty of the next block.",params:[],type:"Raw"}},version:1}],TimestampApi:[{methods:{timestamp:{description:"API necessary for timestamp-based difficulty adjustment algorithms.",params:[],type:"Moment"}},version:1}]},types:{}},tl={rpc:{},types:{ProxyDefinition:{delegate:"AccountId",proxyType:"ProxyType",delay:"BlockNumber"},ProxyType:{_enum:["Any","NonTransfer","Governance","Staking"]},ProxyAnnouncement:{real:"AccountId",callHash:"Hash",height:"BlockNumber"}}},nl={rpc:{},types:{ActiveRecovery:{created:"BlockNumber",deposit:"Balance",friends:"Vec"},RecoveryConfig:{delayPeriod:"BlockNumber",deposit:"Balance",friends:"Vec",threshold:"u16"}}},rl={rpc:{},types:{Period:"(BlockNumber, u32)",Priority:"u8",SchedulePeriod:"Period",SchedulePriority:"Priority",Scheduled:{maybeId:"Option",priority:"SchedulePriority",call:"Call",maybePeriodic:"Option",origin:"PalletsOrigin"},ScheduledTo254:{maybeId:"Option",priority:"SchedulePriority",call:"Call",maybePeriodic:"Option"},TaskAddress:"(BlockNumber, u32)"}},al={rpc:{},runtime:{SessionKeys:[{methods:{decode_session_keys:{description:"Decode the given public session keys.",params:[{name:"encoded",type:"Bytes"}],type:"Option>"},generate_session_keys:{description:"Generate a set of session keys with optionally using the given seed.",params:[{name:"seed",type:"Option"}],type:"Bytes"}},version:1}]},types:{BeefyKey:"[u8; 33]",Keys:"SessionKeys4",SessionKeys1:"(AccountId)",SessionKeys2:"(AccountId, AccountId)",SessionKeys3:"(AccountId, AccountId, AccountId)",SessionKeys4:"(AccountId, AccountId, AccountId, AccountId)",SessionKeys5:"(AccountId, AccountId, AccountId, AccountId, AccountId)",SessionKeys6:"(AccountId, AccountId, AccountId, AccountId, AccountId, AccountId)",SessionKeys6B:"(AccountId, AccountId, AccountId, AccountId, AccountId, BeefyKey)",SessionKeys7:"(AccountId, AccountId, AccountId, AccountId, AccountId, AccountId, AccountId)",SessionKeys7B:"(AccountId, AccountId, AccountId, AccountId, AccountId, AccountId, BeefyKey)",SessionKeys8:"(AccountId, AccountId, AccountId, AccountId, AccountId, AccountId, AccountId, AccountId)",SessionKeys8B:"(AccountId, AccountId, AccountId, AccountId, AccountId, AccountId, AccountId, BeefyKey)",SessionKeys9:"(AccountId, AccountId, AccountId, AccountId, AccountId, AccountId, AccountId, AccountId, AccountId)",SessionKeys9B:"(AccountId, AccountId, AccountId, AccountId, AccountId, AccountId, AccountId, AccountId, BeefyKey)",SessionKeys10:"(AccountId, AccountId, AccountId, AccountId, AccountId, AccountId, AccountId, AccountId, AccountId, AccountId)",SessionKeys10B:"(AccountId, AccountId, AccountId, AccountId, AccountId, AccountId, AccountId, AccountId, AccountId, BeefyKey)",FullIdentification:"Exposure",IdentificationTuple:"(ValidatorId, FullIdentification)",MembershipProof:{session:"SessionIndex",trieNodes:"Vec",validatorCount:"ValidatorCount"},SessionIndex:"u32",ValidatorCount:"u32"}},il={rpc:{},types:{Bid:{who:"AccountId",kind:"BidKind",value:"Balance"},BidKind:{_enum:{Deposit:"Balance",Vouch:"(AccountId, Balance)"}},SocietyJudgement:{_enum:["Rebid","Reject","Approve"]},SocietyVote:{_enum:["Skeptic","Reject","Approve"]},StrikeCount:"u32",VouchingStatus:{_enum:["Vouching","Banned"]}}},sl={rpc:{},runtime:{StakingApi:[{methods:{nominations_quota:{description:"Returns the nominations quota for a nominator with a given balance.",params:[{name:"balance",type:"Balance"}],type:"u32"}},version:1}]},types:{Points:"u32",EraPoints:{total:"Points",individual:"Vec"},CompactAssignments:"CompactAssignmentsWith16",CompactAssignmentsWith16:{votes1:"Vec<(NominatorIndexCompact, ValidatorIndexCompact)>",votes2:"Vec<(NominatorIndexCompact, CompactScoreCompact, ValidatorIndexCompact)>",votes3:"Vec<(NominatorIndexCompact, [CompactScoreCompact; 2], ValidatorIndexCompact)>",votes4:"Vec<(NominatorIndexCompact, [CompactScoreCompact; 3], ValidatorIndexCompact)>",votes5:"Vec<(NominatorIndexCompact, [CompactScoreCompact; 4], ValidatorIndexCompact)>",votes6:"Vec<(NominatorIndexCompact, [CompactScoreCompact; 5], ValidatorIndexCompact)>",votes7:"Vec<(NominatorIndexCompact, [CompactScoreCompact; 6], ValidatorIndexCompact)>",votes8:"Vec<(NominatorIndexCompact, [CompactScoreCompact; 7], ValidatorIndexCompact)>",votes9:"Vec<(NominatorIndexCompact, [CompactScoreCompact; 8], ValidatorIndexCompact)>",votes10:"Vec<(NominatorIndexCompact, [CompactScoreCompact; 9], ValidatorIndexCompact)>",votes11:"Vec<(NominatorIndexCompact, [CompactScoreCompact; 10], ValidatorIndexCompact)>",votes12:"Vec<(NominatorIndexCompact, [CompactScoreCompact; 11], ValidatorIndexCompact)>",votes13:"Vec<(NominatorIndexCompact, [CompactScoreCompact; 12], ValidatorIndexCompact)>",votes14:"Vec<(NominatorIndexCompact, [CompactScoreCompact; 13], ValidatorIndexCompact)>",votes15:"Vec<(NominatorIndexCompact, [CompactScoreCompact; 14], ValidatorIndexCompact)>",votes16:"Vec<(NominatorIndexCompact, [CompactScoreCompact; 15], ValidatorIndexCompact)>"},CompactAssignmentsWith24:{votes1:"Vec<(NominatorIndexCompact, ValidatorIndexCompact)>",votes2:"Vec<(NominatorIndexCompact, CompactScoreCompact, ValidatorIndexCompact)>",votes3:"Vec<(NominatorIndexCompact, [CompactScoreCompact; 2], ValidatorIndexCompact)>",votes4:"Vec<(NominatorIndexCompact, [CompactScoreCompact; 3], ValidatorIndexCompact)>",votes5:"Vec<(NominatorIndexCompact, [CompactScoreCompact; 4], ValidatorIndexCompact)>",votes6:"Vec<(NominatorIndexCompact, [CompactScoreCompact; 5], ValidatorIndexCompact)>",votes7:"Vec<(NominatorIndexCompact, [CompactScoreCompact; 6], ValidatorIndexCompact)>",votes8:"Vec<(NominatorIndexCompact, [CompactScoreCompact; 7], ValidatorIndexCompact)>",votes9:"Vec<(NominatorIndexCompact, [CompactScoreCompact; 8], ValidatorIndexCompact)>",votes10:"Vec<(NominatorIndexCompact, [CompactScoreCompact; 9], ValidatorIndexCompact)>",votes11:"Vec<(NominatorIndexCompact, [CompactScoreCompact; 10], ValidatorIndexCompact)>",votes12:"Vec<(NominatorIndexCompact, [CompactScoreCompact; 11], ValidatorIndexCompact)>",votes13:"Vec<(NominatorIndexCompact, [CompactScoreCompact; 12], ValidatorIndexCompact)>",votes14:"Vec<(NominatorIndexCompact, [CompactScoreCompact; 13], ValidatorIndexCompact)>",votes15:"Vec<(NominatorIndexCompact, [CompactScoreCompact; 14], ValidatorIndexCompact)>",votes16:"Vec<(NominatorIndexCompact, [CompactScoreCompact; 15], ValidatorIndexCompact)>",votes17:"Vec<(NominatorIndexCompact, [CompactScoreCompact; 16], ValidatorIndexCompact)>",votes18:"Vec<(NominatorIndexCompact, [CompactScoreCompact; 17], ValidatorIndexCompact)>",votes19:"Vec<(NominatorIndexCompact, [CompactScoreCompact; 18], ValidatorIndexCompact)>",votes20:"Vec<(NominatorIndexCompact, [CompactScoreCompact; 19], ValidatorIndexCompact)>",votes21:"Vec<(NominatorIndexCompact, [CompactScoreCompact; 20], ValidatorIndexCompact)>",votes22:"Vec<(NominatorIndexCompact, [CompactScoreCompact; 21], ValidatorIndexCompact)>",votes23:"Vec<(NominatorIndexCompact, [CompactScoreCompact; 22], ValidatorIndexCompact)>",votes24:"Vec<(NominatorIndexCompact, [CompactScoreCompact; 23], ValidatorIndexCompact)>"},CompactAssignmentsTo265:"CompactAssignmentsWith16",CompactAssignmentsTo257:{votes1:"Vec<(NominatorIndex, [CompactScore; 0], ValidatorIndex)>",votes2:"Vec<(NominatorIndex, [CompactScore; 1], ValidatorIndex)>",votes3:"Vec<(NominatorIndex, [CompactScore; 2], ValidatorIndex)>",votes4:"Vec<(NominatorIndex, [CompactScore; 3], ValidatorIndex)>",votes5:"Vec<(NominatorIndex, [CompactScore; 4], ValidatorIndex)>",votes6:"Vec<(NominatorIndex, [CompactScore; 5], ValidatorIndex)>",votes7:"Vec<(NominatorIndex, [CompactScore; 6], ValidatorIndex)>",votes8:"Vec<(NominatorIndex, [CompactScore; 7], ValidatorIndex)>",votes9:"Vec<(NominatorIndex, [CompactScore; 8], ValidatorIndex)>",votes10:"Vec<(NominatorIndex, [CompactScore; 9], ValidatorIndex)>",votes11:"Vec<(NominatorIndex, [CompactScore; 10], ValidatorIndex)>",votes12:"Vec<(NominatorIndex, [CompactScore; 11], ValidatorIndex)>",votes13:"Vec<(NominatorIndex, [CompactScore; 12], ValidatorIndex)>",votes14:"Vec<(NominatorIndex, [CompactScore; 13], ValidatorIndex)>",votes15:"Vec<(NominatorIndex, [CompactScore; 14], ValidatorIndex)>",votes16:"Vec<(NominatorIndex, [CompactScore; 15], ValidatorIndex)>"},CompactScore:"(ValidatorIndex, OffchainAccuracy)",CompactScoreCompact:"(ValidatorIndexCompact, OffchainAccuracyCompact)",ElectionCompute:{_enum:["OnChain","Signed","Unsigned"]},ElectionPhase:{_enum:{Off:null,Signed:null,Unsigned:"(bool, BlockNumber)",Emergency:null}},ElectionResult:{compute:"ElectionCompute",slotStake:"Balance",electedStashes:"Vec",exposures:"Vec<(AccountId, Exposure)>"},ElectionScore:"[u128; 3]",ElectionSize:{validators:"Compact",nominators:"Compact"},ElectionStatus:{_enum:{Close:"Null",Open:"BlockNumber"}},ExtendedBalance:"u128",RawSolution:"RawSolutionWith16",RawSolutionWith16:{compact:"CompactAssignmentsWith16",score:"ElectionScore",round:"u32"},RawSolutionWith24:{compact:"CompactAssignmentsWith24",score:"ElectionScore",round:"u32"},RawSolutionTo265:"RawSolutionWith16",ReadySolution:{supports:"SolutionSupports",score:"ElectionScore",compute:"ElectionCompute"},RoundSnapshot:{voters:"Vec<(AccountId, VoteWeight, Vec)>",targets:"Vec"},SeatHolder:{who:"AccountId",stake:"Balance",deposit:"Balance"},SignedSubmission:{_fallback:"SignedSubmissionTo276",who:"AccountId",deposit:"Balance",solution:"RawSolution",reward:"Balance"},SignedSubmissionTo276:{who:"AccountId",deposit:"Balance",solution:"RawSolution"},SignedSubmissionOf:"SignedSubmission",SolutionOrSnapshotSize:{voters:"Compact",targets:"Compact"},SolutionSupport:{total:"ExtendedBalance",voters:"Vec<(AccountId, ExtendedBalance)>"},SolutionSupports:"Vec<(AccountId, SolutionSupport)>",Supports:"SolutionSupports",SubmissionIndicesOf:"BTreeMap",Voter:{votes:"Vec",stake:"Balance",deposit:"Balance"},VoteWeight:"u64",ActiveEraInfo:{index:"EraIndex",start:"Option"},EraIndex:"u32",EraRewardPoints:{total:"RewardPoint",individual:"BTreeMap"},EraRewards:{total:"u32",rewards:"Vec"},Exposure:{total:"Compact",own:"Compact",others:"Vec"},Forcing:{_enum:["NotForcing","ForceNew","ForceNone","ForceAlways"]},IndividualExposure:{who:"AccountId",value:"Compact"},KeyType:"AccountId",MomentOf:"Moment",Nominations:{targets:"Vec",submittedIn:"EraIndex",suppressed:"bool"},NominatorIndex:"u32",NominatorIndexCompact:"Compact",OffchainAccuracy:"PerU16",OffchainAccuracyCompact:"Compact",PhragmenScore:"[u128; 3]",Points:"u32",RewardDestination:{_enum:{Staked:"Null",Stash:"Null",Controller:"Null",Account:"AccountId",None:"Null"}},RewardPoint:"u32",SlashJournalEntry:{who:"AccountId",amount:"Balance",ownSlash:"Balance"},SlashingSpansTo204:{spanIndex:"SpanIndex",lastStart:"EraIndex",prior:"Vec"},SlashingSpans:{spanIndex:"SpanIndex",lastStart:"EraIndex",lastNonzeroSlash:"EraIndex",prior:"Vec"},SpanIndex:"u32",SpanRecord:{slashed:"Balance",paidOut:"Balance"},StakingLedgerTo223:{stash:"AccountId",total:"Compact",active:"Compact",unlocking:"Vec"},StakingLedgerTo240:{_fallback:"StakingLedgerTo223",stash:"AccountId",total:"Compact",active:"Compact",unlocking:"Vec",lastReward:"Option"},StakingLedger:{stash:"AccountId",total:"Compact",active:"Compact",unlocking:"Vec",claimedRewards:"Vec"},UnappliedSlashOther:"(AccountId, Balance)",UnappliedSlash:{validator:"AccountId",own:"Balance",others:"Vec",reporters:"Vec",payout:"Balance"},UnlockChunk:{value:"Compact",era:"Compact"},ValidatorIndex:"u16",ValidatorIndexCompact:"Compact",ValidatorPrefs:"ValidatorPrefsWithBlocked",ValidatorPrefsWithCommission:{commission:"Compact"},ValidatorPrefsWithBlocked:{commission:"Compact",blocked:"bool"},ValidatorPrefsTo196:{validatorPayment:"Compact"},ValidatorPrefsTo145:{unstakeThreshold:"Compact",validatorPayment:"Compact"}}},ol={rpc:{},runtime:{ValidateStatement:[{methods:{valdate_statement:{description:"Validate the statement.",params:[{name:"source",type:"StatementStoreStatementSource"},{name:"statement",type:"SpStatementStoreStatement"}],type:"Result"}},version:1}]},types:{StatementStoreStatementSource:{_enum:["Chain","Network","Local"]},StatementStoreValidStatement:{maxCount:"u32",maxSize:"u32"},StatementStoreInvalidStatement:{_enum:["BadProof","NoProof","InternalError"]}}},cl={rpc:{},types:{WeightToFeeCoefficient:{coeffInteger:"Balance",coeffFrac:"Perbill",negative:"bool",degree:"u8"}}},dl={rpc:{genSyncSpec:{description:"Returns the json-serialized chainspec running the node, with a sync state.",endpoint:"sync_state_genSyncSpec",params:[{name:"raw",type:"bool"}],type:"Json"}},types:{}},ul={rpc:{accountNextIndex:{alias:["account_nextIndex"],description:"Retrieves the next accountIndex as available on the node",params:[{name:"accountId",type:"AccountId"}],type:"Index"},addLogFilter:{description:"Adds the supplied directives to the current log filter",isUnsafe:!0,params:[{name:"directives",type:"Text"}],type:"Null"},addReservedPeer:{description:"Adds a reserved peer",isUnsafe:!0,params:[{name:"peer",type:"Text"}],type:"Text"},chain:{description:"Retrieves the chain",params:[],type:"Text"},chainType:{description:"Retrieves the chain type",params:[],type:"ChainType"},dryRun:{alias:["system_dryRunAt"],description:"Dry run an extrinsic at a given block",isUnsafe:!0,params:[{name:"extrinsic",type:"Bytes"},{isHistoric:!0,isOptional:!0,name:"at",type:"BlockHash"}],type:"ApplyExtrinsicResult"},health:{description:"Return health status of the node",noErrorLog:!0,params:[],type:"Health"},localListenAddresses:{description:"The addresses include a trailing /p2p/ with the local PeerId, and are thus suitable to be passed to addReservedPeer or as a bootnode address for example",params:[],type:"Vec"},localPeerId:{description:"Returns the base58-encoded PeerId of the node",params:[],type:"Text"},name:{description:"Retrieves the node name",params:[],type:"Text"},networkState:{alias:["system_unstable_networkState"],description:"Returns current state of the network",isUnsafe:!0,params:[],type:"NetworkState"},nodeRoles:{description:"Returns the roles the node is running as",params:[],type:"Vec"},peers:{description:"Returns the currently connected peers",isUnsafe:!0,params:[],type:"Vec"},properties:{description:"Get a custom set of properties as a JSON object, defined in the chain spec",params:[],type:"ChainProperties"},removeReservedPeer:{description:"Remove a reserved peer",isUnsafe:!0,params:[{name:"peerId",type:"Text"}],type:"Text"},reservedPeers:{description:"Returns the list of reserved peers",params:[],type:"Vec"},resetLogFilter:{description:"Resets the log filter to Substrate defaults",isUnsafe:!0,params:[],type:"Null"},syncState:{description:"Returns the state of the syncing of the node",params:[],type:"SyncState"},version:{description:"Retrieves the version of the node",params:[],type:"Text"}},runtime:{AccountNonceApi:[{methods:{account_nonce:{description:"The API to query account nonce (aka transaction index)",params:[{name:"accountId",type:"AccountId"}],type:"Index"}},version:1}]},types:{AccountInfo:"AccountInfoWithTripleRefCount",AccountInfoWithRefCountU8:{nonce:"Index",refcount:"u8",data:"AccountData"},AccountInfoWithRefCount:{_fallback:"AccountInfoWithRefCountU8",nonce:"Index",refcount:"RefCount",data:"AccountData"},AccountInfoWithDualRefCount:{_fallback:"AccountInfoWithRefCount",nonce:"Index",consumers:"RefCount",providers:"RefCount",data:"AccountData"},AccountInfoWithProviders:"AccountInfoWithDualRefCount",AccountInfoWithTripleRefCount:{_fallback:"AccountInfoWithDualRefCount",nonce:"Index",consumers:"RefCount",providers:"RefCount",sufficients:"RefCount",data:"AccountData"},ApplyExtrinsicResult:"Result",ApplyExtrinsicResultPre6:"Result",ArithmeticError:{_enum:["Underflow","Overflow","DivisionByZero"]},BlockLength:{max:"PerDispatchClassU32"},BlockWeights:{baseBlock:"Weight",maxBlock:"Weight",perClass:"PerDispatchClassWeightsPerClass"},ChainProperties:"GenericChainProperties",ChainType:{_enum:{Development:"Null",Local:"Null",Live:"Null",Custom:"Text"}},ConsumedWeight:"PerDispatchClassWeight",DigestOf:"Digest",DispatchClass:{_enum:["Normal","Operational","Mandatory"]},DispatchError:{_enum:{Other:"Null",CannotLookup:"Null",BadOrigin:"Null",Module:"DispatchErrorModule",ConsumerRemaining:"Null",NoProviders:"Null",TooManyConsumers:"Null",Token:"TokenError",Arithmetic:"ArithmeticError",Transactional:"TransactionalError",Exhausted:"Null",Corruption:"Null",Unavailable:"Null"}},DispatchErrorPre6:{_enum:{Other:"Null",CannotLookup:"Null",BadOrigin:"Null",Module:"DispatchErrorModulePre6",ConsumerRemaining:"Null",NoProviders:"Null",TooManyConsumers:"Null",Token:"TokenError",Arithmetic:"ArithmeticError",Transactional:"TransactionalError"}},DispatchErrorPre6First:{_enum:{Other:"Null",CannotLookup:"Null",BadOrigin:"Null",Module:"DispatchErrorModulePre6",ConsumerRemaining:"Null",NoProviders:"Null",Token:"TokenError",Arithmetic:"ArithmeticError",Transactional:"TransactionalError"}},DispatchErrorModuleU8:{index:"u8",error:"u8"},DispatchErrorModuleU8a:{index:"u8",error:"[u8; 4]"},DispatchErrorModule:"DispatchErrorModuleU8a",DispatchErrorModulePre6:"DispatchErrorModuleU8",DispatchErrorTo198:{module:"Option",error:"u8"},DispatchInfo:{weight:"Weight",class:"DispatchClass",paysFee:"Pays"},DispatchInfoTo190:{weight:"Weight",class:"DispatchClass"},DispatchInfoTo244:{weight:"Weight",class:"DispatchClass",paysFee:"bool"},DispatchOutcome:"Result<(), DispatchError>",DispatchOutcomePre6:"Result<(), DispatchErrorPre6>",DispatchResult:"Result<(), DispatchError>",DispatchResultOf:"DispatchResult",DispatchResultTo198:"Result<(), Text>",Event:"GenericEvent",EventId:"[u8; 2]",EventIndex:"u32",EventRecord:{phase:"Phase",event:"Event",topics:"Vec"},Health:{peers:"u64",isSyncing:"bool",shouldHavePeers:"bool"},InvalidTransaction:{_enum:{Call:"Null",Payment:"Null",Future:"Null",Stale:"Null",BadProof:"Null",AncientBirthBlock:"Null",ExhaustsResources:"Null",Custom:"u8",BadMandatory:"Null",MandatoryDispatch:"Null",BadSigner:"Null"}},Key:"Bytes",LastRuntimeUpgradeInfo:{specVersion:"Compact",specName:"Text"},NetworkState:{peerId:"Text",listenedAddresses:"Vec",externalAddresses:"Vec",connectedPeers:"HashMap",notConnectedPeers:"HashMap",averageDownloadPerSec:"u64",averageUploadPerSec:"u64",peerset:"NetworkStatePeerset"},NetworkStatePeerset:{messageQueue:"u64",nodes:"HashMap"},NetworkStatePeersetInfo:{connected:"bool",reputation:"i32"},NodeRole:{_enum:{Full:"Null",LightClient:"Null",Authority:"Null",UnknownRole:"u8"}},NotConnectedPeer:{knownAddresses:"Vec",latestPingTime:"Option",versionString:"Option"},Peer:{enabled:"bool",endpoint:"PeerEndpoint",knownAddresses:"Vec",latestPingTime:"PeerPing",open:"bool",versionString:"Text"},PeerEndpoint:{listening:"PeerEndpointAddr"},PeerEndpointAddr:{_alias:{localAddr:"local_addr",sendBackAddr:"send_back_addr"},localAddr:"Text",sendBackAddr:"Text"},PeerPing:{nanos:"u64",secs:"u64"},PeerInfo:{peerId:"Text",roles:"Text",protocolVersion:"u32",bestHash:"Hash",bestNumber:"BlockNumber"},PerDispatchClassU32:{normal:"u32",operational:"u32",mandatory:"u32"},PerDispatchClassWeight:{normal:"Weight",operational:"Weight",mandatory:"Weight"},PerDispatchClassWeightsPerClass:{normal:"WeightPerClass",operational:"WeightPerClass",mandatory:"WeightPerClass"},Phase:{_enum:{ApplyExtrinsic:"u32",Finalization:"Null",Initialization:"Null"}},RawOrigin:{_enum:{Root:"Null",Signed:"AccountId",None:"Null"}},RefCount:"u32",RefCountTo259:"u8",SyncState:{startingBlock:"BlockNumber",currentBlock:"BlockNumber",highestBlock:"Option"},SystemOrigin:"RawOrigin",TokenError:{_enum:["NoFunds","WouldDie","BelowMinimum","CannotCreate","UnknownAsset","Frozen","Unsupported","Underflow","Overflow"]},TransactionValidityError:{_enum:{Invalid:"InvalidTransaction",Unknown:"UnknownTransaction"}},TransactionalError:{_enum:["LimitReached","NoLayer"]},UnknownTransaction:{_enum:{CannotLookup:"Null",NoUnsignedValidator:"Null",Custom:"u8"}},WeightPerClass:{baseExtrinsic:"Weight",maxExtrinsic:"Option",maxTotal:"Option",reserved:"Option"}}},ll={rpc:{},types:{Bounty:{proposer:"AccountId",value:"Balance",fee:"Balance",curatorDeposit:"Balance",bond:"Balance",status:"BountyStatus"},BountyIndex:"u32",BountyStatus:{_enum:{Proposed:"Null",Approved:"Null",Funded:"Null",CuratorProposed:"BountyStatusCuratorProposed",Active:"BountyStatusActive",PendingPayout:"BountyStatusPendingPayout"}},BountyStatusActive:{curator:"AccountId",updateDue:"BlockNumber"},BountyStatusCuratorProposed:{curator:"AccountId"},BountyStatusPendingPayout:{curator:"AccountId",beneficiary:"AccountId",unlockAt:"BlockNumber"},OpenTip:{reason:"Hash",who:"AccountId",finder:"AccountId",deposit:"Balance",closes:"Option",tips:"Vec",findersFee:"bool"},OpenTipTo225:{reason:"Hash",who:"AccountId",finder:"Option",closes:"Option",tips:"Vec"},OpenTipFinderTo225:"(AccountId, Balance)",OpenTipTip:"(AccountId, Balance)",TreasuryProposal:{proposer:"AccountId",value:"Balance",beneficiary:"AccountId",bond:"Balance"}}},fl={rpc:{},types:{Multiplier:"Fixed128"}},pl={rpc:{},runtime:{TaggedTransactionQueue:[{methods:{validate_transaction:{description:"Validate the transaction.",params:[{name:"source",type:"TransactionSource"},{name:"tx",type:"Extrinsic"},{name:"blockHash",type:"BlockHash"}],type:"TransactionValidity"}},version:3},{methods:{validate_transaction:{description:"Validate the transaction.",params:[{name:"source",type:"TransactionSource"},{name:"tx",type:"Extrinsic"}],type:"TransactionValidity"}},version:2},{methods:{validate_transaction:{description:"Validate the transaction.",params:[{name:"tx",type:"Extrinsic"}],type:"TransactionValidity"}},version:1}]},types:{TransactionSource:{_enum:["InBlock","Local","External"]},TransactionValidity:"Result",ValidTransaction:{priority:"TransactionPriority",requires:"Vec",provides:"Vec",longevity:"TransactionLongevity",propagate:"bool"}}},hl={rpc:{},types:{ClassId:"u32",InstanceId:"u32",DepositBalance:"Balance",DepositBalanceOf:"Balance",ClassDetails:{owner:"AccountId",issuer:"AccountId",admin:"AccountId",freezer:"AccountId",totalDeposit:"DepositBalance",freeHolding:"bool",instances:"u32",instanceMetadatas:"u32",attributes:"u32",isFrozen:"bool"},DestroyWitness:{instances:"Compact",instanceMetadatas:"Compact",attributes:"Compact"},InstanceDetails:{owner:"AccountId",approved:"Option",isFrozen:"bool",deposit:"DepositBalance"},ClassMetadata:{deposit:"DepositBalance",data:"Vec",isFrozen:"bool"},InstanceMetadata:{deposit:"DepositBalance",data:"Vec",isFrozen:"bool"}}},bl={rpc:{},types:{Multisig:{when:"Timepoint",deposit:"Balance",depositor:"AccountId",approvals:"Vec"},Timepoint:{height:"BlockNumber",index:"u32"}}},ml={rpc:{},types:{VestingInfo:{locked:"Balance",perBlock:"Balance",startingBlock:"BlockNumber"}}},yl={rpc:{},types:{BlockAttestations:{receipt:"CandidateReceipt",valid:"Vec",invalid:"Vec"},IncludedBlocks:{actualNumber:"BlockNumber",session:"SessionIndex",randomSeed:"H256",activeParachains:"Vec",paraBlocks:"Vec"},MoreAttestations:{}}},xl={rpc:{},types:{BridgedBlockHash:"H256",BridgedBlockNumber:"BlockNumber",BridgedHeader:"Header",BridgeMessageId:"(LaneId, MessageNonce)",CallOrigin:{_enum:{SourceRoot:"Null",TargetAccount:"(AccountId, MultiSigner, MultiSignature)",SourceAccount:"AccountId"}},ChainId:"[u8; 4]",DeliveredMessages:{begin:"MessageNonce",end:"MessageNonce",dispatchResults:"BitVec"},DispatchFeePayment:{_enum:["AtSourceChain","AtTargetChain"]},InboundLaneData:{relayers:"Vec",lastConfirmedNonce:"MessageNonce"},InboundRelayer:"AccountId",InitializationData:{header:"Header",authorityList:"AuthorityList",setId:"SetId",isHalted:"bool"},LaneId:"[u8; 4]",MessageData:{payload:"Bytes",fee:"Balance"},MessagesDeliveryProofOf:{bridgedHeaderHash:"BlockHash",storageProof:"Vec",lane:"LaneId"},MessageKey:{laneId:"LaneId",nonce:"MessageNonce"},MessageNonce:"u64",MessagesProofOf:{bridgedHeaderHash:"BridgedBlockHash",storageProof:"Vec",lane:"LaneId",noncesStart:"MessageNonce",noncesEnd:"MessageNonce"},OperatingMode:{_enum:["Normal","RejectingOutboundMessages","Halted"]},OutboundLaneData:{oldestUnprunedNonce:"MessageNonce",latestReceivedNonce:"MessageNonce",latestGeneratedNonce:"MessageNonce"},OutboundMessageFee:"Balance",OutboundPayload:{specVersion:"u32",weight:"Weight",origin:"CallOrigin",dispatchFeePayment:"DispatchFeePayment",call:"Bytes"},Parameter:"Null",RelayerId:"AccountId",UnrewardedRelayer:{relayer:"RelayerId",messages:"DeliveredMessages"},UnrewardedRelayersState:{unrewardedRelayer_Entries:"MessageNonce",messagesInOldestEntry:"MessageNonce",totalMessages:"MessageNonce"}}},gl={rpc:{},types:{StatementKind:{_enum:["Regular","Saft"]}}},vl={rpc:{},types:{FundIndex:"u32",LastContribution:{_enum:{Never:"Null",PreEnding:"u32",Ending:"BlockNumber"}},FundInfo:{depositor:"AccountId",verifier:"Option",deposit:"Balance",raised:"Balance",end:"BlockNumber",cap:"Balance",lastContribution:"LastContribution",firstPeriod:"LeasePeriod",lastPeriod:"LeasePeriod",trieIndex:"TrieIndex"},TrieIndex:"u32"}},wl={rpc:{},runtime:{CollectCollationInfo:[{methods:{collect_collation_info:{description:"Collect information about a collation.",params:[{name:"header",type:"Header"}],type:"CollationInfo"}},version:2},{methods:{collect_collation_info:{description:"Collect information about a collation.",params:[],type:"CollationInfoV1"}},version:1}]},types:{CollationInfo:{upwardMessages:"Vec",horizontalMessages:"Vec",newValidationCode:"Option",processedDownwardMessages:"u32",hrmpWatermark:"RelayBlockNumber",headData:"HeadData"},CollationInfoV1:{upwardMessages:"Vec",horizontalMessages:"Vec",newValidationCode:"Option",processedDownwardMessages:"u32",hrmpWatermark:"RelayBlockNumber"},ConfigData:{maxIndividual:"Weight"},MessageId:"[u8; 32]",OverweightIndex:"u64",PageCounter:"u32",PageIndexData:{beginUsed:"PageCounter",endUsed:"PageCounter",overweightCount:"OverweightIndex"}}},Sl={methods:{best_finalized:{description:"Returns number and hash of the best finalized header known to the bridge module.",params:[],type:"(BlockNumber, Hash)"}},version:1},kl={rpc:{},runtime:{KusamaFinalityApi:[Sl],PolkadotFinalityApi:[Sl],RococoFinalityApi:[Sl],WestendFinalityApi:[Sl]},types:{}},Tl={assumed_validation_data:{description:"Returns the persisted validation data for the given `ParaId` along with the corresponding validation code hash.",params:[{name:"paraId",type:"ParaId"},{name:"hash",type:"Hash"}],type:"Option<(PersistedValidationData, ValidationCodeHash)>"},availability_cores:{description:"Yields information on all availability cores as relevant to the child block.",params:[],type:"Vec"},candidate_events:{description:"Get a vector of events concerning candidates that occurred within a block.",params:[],type:"Vec"},candidate_pending_availability:{description:"Get the receipt of a candidate pending availability.",params:[{name:"paraId",type:"ParaId"}],type:"Option"},check_validation_outputs:{description:"Checks if the given validation outputs pass the acceptance criteria.",params:[{name:"paraId",type:"ParaId"},{name:"outputs",type:"CandidateCommitments"}],type:"bool"},dmq_contents:{description:"Get all the pending inbound messages in the downward message queue for a para.",params:[{name:"paraId",type:"ParaId"}],type:"Vec"},inbound_hrmp_channels_contents:{description:"Get the contents of all channels addressed to the given recipient.",params:[{name:"paraId",type:"ParaId"}],type:"Vec"},on_chain_votes:{description:"Scrape dispute relevant from on-chain, backing votes and resolved disputes.",params:[],type:"Option"},persisted_validation_data:{description:"Yields the persisted validation data for the given `ParaId` along with an assumption that should be used if the para currently occupies a core.",params:[{name:"paraId",type:"ParaId"},{name:"assumption",type:"OccupiedCoreAssumption"}],type:"Option"},session_index_for_child:{description:"Returns the session index expected at a child of the block.",params:[],type:"SessionIndex"},validation_code:{description:"Fetch the validation code used by a para, making the given `OccupiedCoreAssumption`.",params:[{name:"paraId",type:"ParaId"},{name:"assumption",type:"OccupiedCoreAssumption"}],type:"Option"},validation_code_by_hash:{description:"Get the validation code from its hash.",params:[{name:"hash",type:"ValidationCodeHash"}],type:"Option"},validator_groups:{description:"Returns the validator groups and rotation info localized based on the hypothetical child of a block whose state this is invoked on",params:[],type:"(Vec>, GroupRotationInfo)"},validators:{description:"Get the current validators.",params:[],type:"Vec"}},Pl={pvfs_require_precheck:{description:"Returns code hashes of PVFs that require pre-checking by validators in the active set.",params:[],type:"Vec"},session_info:{description:"Get the session info for the given session, if stored.",params:[{name:"index",type:"SessionIndex"}],type:"Option"},submit_pvf_check_statement:{description:"Submits a PVF pre-checking statement into the transaction pool.",params:[{name:"stmt",type:"PvfCheckStatement"},{name:"signature",type:"ValidatorSignature"}],type:"Null"},validation_code_hash:{description:"Fetch the hash of the validation code used by a para, making the given `OccupiedCoreAssumption`.",params:[{name:"paraId",type:"ParaId"},{name:"assumption",type:"OccupiedCoreAssumption"}],type:"Option"}},Vl={disputes:{description:"Returns all onchain disputes.",params:[],type:"Vec<(SessionIndex, CandidateHash, DisputeState)>"}},Ml={session_executor_params:{description:"Returns execution parameters for the session.",params:[{name:"sessionIndex",type:"SessionIndex"}],type:"Option"}},_l={key_ownership_proof:{description:"Returns a merkle proof of a validator session key",params:[{name:"validatorId",type:"ValidatorId"}],type:"Option"},submit_report_dispute_lost:{description:"Submit an unsigned extrinsic to slash validators who lost a dispute about a candidate of a past session",params:[{name:"disputeProof",type:"DisputeProof"},{name:"keyOwnershipProof",type:"OpaqueKeyOwnershipProof"}],type:"Option"},unapplied_slashes:{description:"Returns a list of validators that lost a past session dispute and need to be slashed",params:[],type:"Vec<(SessionIndex, CandidateHash, PendingSlashes)>"}},Il={minimum_backing_votes:{description:"Get the minimum number of backing votes for a parachain candidate. This is a staging method! Do not use on production runtimes!",params:[],type:"u32"}},Ol={async_backing_params:{description:"Returns candidate's acceptance limitations for asynchronous backing for a relay parent",params:[],type:"AsyncBackingParams"},para_backing_state:{description:"Returns the state of parachain backing for a given para",params:[{name:"paraId",type:"ParaId"}],type:"Option"}},Nl={disabled_validators:{description:"Returns a list of all disabled validators at the given block",params:[],type:"ValidatorIndex"}},El={node_features:{description:"Get node features. This is a staging method! Do not use on production runtimes!",params:[],type:"NodeFeatures"}},Cl={_enum:["ZeroZero","ZeroOne","ZeroTwo","ZeroThree","OneOne","OneTwo","OneThree","TwoTwo","TwoThree","ThreeThree"]},Al={_enum:["ZeroZero","ZeroOne","ZeroTwo","ZeroThree","ZeroFour","ZeroFive","ZeroSix","ZeroSeven","OneOne","OneTwo","OneThree","OneFour","OneFive","OneSix","OneSeven","TwoTwo","TwoThree","TwoFour","TwoFive","TwoSix","TwoSeven","ThreeThree","ThreeFour","ThreeFive","ThreeSix","ThreeSeven","FourFour","FourFive","FourSix","FourSeven","FiveFive","FiveSix","FiveSeven","SixSix","SixSeven","SevenSeven"]},Hl={rpc:{},runtime:{ParachainHost:[{methods:{...Tl,...Pl,...Vl,...Ml,..._l,...Il,...Ol,...Nl,...El,approval_voting_params:{description:"Approval voting configuration parameters",params:[],type:"ApprovalVotingParams"}},version:10},{methods:{...Tl,...Pl,...Vl,...Ml,..._l,...Il,...Ol,...Nl,...El},version:9},{methods:{...Tl,...Pl,...Vl,...Ml,..._l,...Il,...Ol,...Nl},version:8},{methods:{...Tl,...Pl,...Vl,...Ml,..._l,...Il,...Ol},version:7},{methods:{...Tl,...Pl,...Vl,...Ml,..._l,...Il},version:6},{methods:{...Tl,...Pl,...Vl,...Ml,..._l},version:5},{methods:{...Tl,...Pl,...Vl,...Ml},version:4},{methods:{...Tl,...Pl,...Vl},version:3},{methods:{...Tl,...Pl},version:2},{methods:{session_info:{description:"Get the session info for the given session, if stored.",params:[{name:"index",type:"SessionIndex"}],type:"Option"},...Tl},version:1}]},types:{ServiceQuality:{_enum:["Ordered","Fast"]},DisputeLocation:{_enum:["Local","Remote"]},DisputeResult:{_enum:["Valid","Invalid"]},DisputeState:{validatorsFor:"BitVec",validatorsAgainst:"BitVec",start:"BlockNumber",concludedAt:"Option"},DisputeStatement:{_enum:{Valid:"ValidDisputeStatementKind",Invalid:"InvalidDisputeStatementKind"}},DisputeStatementSet:{candidateHash:"CandidateHash",session:"SessionIndex",statements:"Vec<(DisputeStatement, ParaValidatorIndex, ValidatorSignature)>"},ExecutorParam:{_enum:{Phantom:"Null",MaxMemoryPages:"u32",StackLogicalMax:"u32",StackNativeMax:"u32",PrecheckingMaxMemory:"u64",PvfPrepTimeout:"(PvfPrepTimeoutKind, u64)",PvfExecTimeout:"(PvfExecTimeoutKind, u64)"}},ExecutorParamsHash:"Hash",ExecutorParams:"Vec",ExplicitDisputeStatement:{valid:"bool",candidateHash:"CandidateHash",session:"SessionIndex"},InvalidDisputeStatementKind:{_enum:["Explicit"]},MultiDisputeStatementSet:"Vec",PvfExecTimeoutKind:{_enum:["Backing","Approval"]},PvfPrepTimeoutKind:{_enum:["Precheck","Lenient"]},ValidDisputeStatementKind:{_enum:{Explicit:"Null",BackingSeconded:"Hash",BackingValid:"Hash",ApprovalChecking:"Null"}},HrmpChannel:{maxCapacity:"u32",maxTotalSize:"u32",maxMessageSize:"u32",msgCount:"u32",totalSize:"u32",mqcHead:"Option",senderDeposit:"Balance",recipientDeposit:"Balance"},HrmpChannelId:{sender:"u32",receiver:"u32"},HrmpOpenChannelRequest:{confirmed:"bool",age:"SessionIndex",senderDeposit:"Balance",maxMessageSize:"u32",maxCapacity:"u32",maxTotalSize:"u32"},ParachainProposal:{proposer:"AccountId",genesisHead:"HeadData",validators:"Vec",name:"Bytes",balance:"Balance"},RegisteredParachainInfo:{validators:"Vec",proposer:"AccountId"},...{Bidder:{_enum:{New:"NewBidder",Existing:"ParaId"}},IncomingParachain:{_enum:{Unset:"NewBidder",Fixed:"IncomingParachainFixed",Deploy:"IncomingParachainDeploy"}},IncomingParachainDeploy:{code:"ValidationCode",initialHeadData:"HeadData"},IncomingParachainFixed:{codeHash:"Hash",codeSize:"u32",initialHeadData:"HeadData"},NewBidder:{who:"AccountId",sub:"SubId"},SubId:"u32",AuctionIndex:"u32",LeasePeriod:"BlockNumber",LeasePeriodOf:"BlockNumber",SlotRange10:Cl,SlotRange:Al,WinningData10:`[WinningDataEntry; ${Cl._enum.length}]`,WinningData:`[WinningDataEntry; ${Al._enum.length}]`,WinningDataEntry:"Option<(AccountId, ParaId, BalanceOf)>",WinnersData10:"Vec",WinnersData:"Vec",WinnersDataTuple10:"(AccountId, ParaId, BalanceOf, SlotRange10)",WinnersDataTuple:"(AccountId, ParaId, BalanceOf, SlotRange)"},AbridgedCandidateReceipt:{parachainIndex:"ParaId",relayParent:"Hash",headData:"HeadData",collator:"CollatorId",signature:"CollatorSignature",povBlockHash:"Hash",commitments:"CandidateCommitments"},AbridgedHostConfiguration:{maxCodeSize:"u32",maxHeadDataSize:"u32",maxUpwardQueueCount:"u32",maxUpwardQueueSize:"u32",maxUpwardMessageSize:"u32",maxUpwardMessageNumPerCandidate:"u32",hrmpMaxMessageNumPerCandidate:"u32",validationUpgradeFrequency:"BlockNumber",validationUpgradeDelay:"BlockNumber"},AbridgedHrmpChannel:{maxCapacity:"u32",maxTotalSize:"u32",maxMessageSize:"u32",msgCount:"u32",totalSize:"u32",mqcHead:"Option"},ApprovalVotingParams:{maxApprovalCoalesceCount:"u32"},AssignmentId:"AccountId",AssignmentKind:{_enum:{Parachain:"Null",Parathread:"(CollatorId, u32)"}},AsyncBackingParams:{maxCandidateDepth:"u32",allowedAncestryLen:"u32"},AttestedCandidate:{candidate:"AbridgedCandidateReceipt",validityVotes:"Vec",validatorIndices:"BitVec"},AuthorityDiscoveryId:"AccountId",AvailabilityBitfield:"BitVec",AvailabilityBitfieldRecord:{bitfield:"AvailabilityBitfield",submittedTt:"BlockNumber"},BackedCandidate:{candidate:"CommittedCandidateReceipt",validityVotes:"Vec",validatorIndices:"BitVec"},BackingState:{constraints:"Constraints",pendingAvailability:"Vec"},BufferedSessionChange:{applyAt:"BlockNumber",validators:"Vec",queued:"Vec",sessionIndex:"SessionIndex"},CandidateCommitments:{upwardMessages:"Vec",horizontalMessages:"Vec",newValidationCode:"Option",headData:"HeadData",processedDownwardMessages:"u32",hrmpWatermark:"BlockNumber"},CandidateDescriptor:{paraId:"ParaId",relayParent:"RelayChainHash",collatorId:"CollatorId",persistedValidationDataHash:"Hash",povHash:"Hash",erasureRoot:"Hash",signature:"CollatorSignature",paraHead:"Hash",validationCodeHash:"ValidationCodeHash"},CandidateEvent:{_enum:{CandidateBacked:"(CandidateReceipt, HeadData, CoreIndex, GroupIndex)",CandidateIncluded:"(CandidateReceipt, HeadData, CoreIndex, GroupIndex)",CandidateTimedOut:"(CandidateReceipt, HeadData, CoreIndex)"}},CandidateHash:"Hash",CandidateInfo:{who:"AccountId",deposit:"Balance"},CandidatePendingAvailability:{core:"CoreIndex",hash:"CandidateHash",descriptor:"CandidateDescriptor",availabilityVotes:"BitVec",backers:"BitVec",relayParentNumber:"BlockNumber",backedInNumber:"BlockNumber",backingGroup:"GroupIndex"},CandidateReceipt:{descriptor:"CandidateDescriptor",commitmentsHash:"Hash"},GlobalValidationData:{maxCodeSize:"u32",maxHeadDataSize:"u32",blockNumber:"BlockNumber"},CollatorId:"H256",CollatorSignature:"Signature",CommittedCandidateReceipt:{descriptor:"CandidateDescriptor",commitments:"CandidateCommitments"},Constraints:{minRelayParentNumber:"BlockNumber",maxPovSize:"u32",maxCodeSize:"u32",umpRemaining:"u32",umpRemainingBytes:"u32",maxUmpNumPerCandidate:"u32",dmpRemainingMessages:"Vec",hrmpInbound:"InboundHrmpLimitations",hrmpChannelsOut:"HashMap",maxHrmpNumPerCandidate:"u32",requiredParent:"HeadData",validationCodeHash:"ValidationCodeHash",upgradeRestriction:"Option",futureValidationCode:"Option<(BlockNumber, ValidationCodeHash)>"},CoreAssignment:{core:"CoreIndex",paraId:"ParaId",kind:"AssignmentKind",groupIdx:"GroupIndex"},CoreIndex:"u32",CoreOccupied:{_enum:{Parathread:"ParathreadEntry",Parachain:"Null"}},CoreState:{_enum:{Occupied:"OccupiedCore",Scheduled:"ScheduledCore",Free:"Null"}},DisputeProof:{timeSlot:"DisputesTimeSlot",kind:"SlashingOffenceKind",validatorIndex:"ValidatorIndex",validatorId:"ValidatorId"},DisputesTimeSlot:{sessionIndex:"SessionIndex",candidateHash:"CandidateHash"},DoubleVoteReport:{identity:"ValidatorId",first:"(Statement, ValidatorSignature)",second:"(Statement, ValidatorSignature)",proof:"MembershipProof",signingContext:"SigningContext"},DownwardMessage:"Bytes",GroupIndex:"u32",GroupRotationInfo:{sessionStartBlock:"BlockNumber",groupRotationFrequency:"BlockNumber",now:"BlockNumber"},GlobalValidationSchedule:{maxCodeSize:"u32",maxHeadDataSize:"u32",blockNumber:"BlockNumber"},HeadData:"Bytes",HostConfiguration:{maxCodeSize:"u32",maxHeadDataSize:"u32",maxUpwardQueueCount:"u32",maxUpwardQueueSize:"u32",maxUpwardMessageSize:"u32",maxUpwardMessageNumPerCandidate:"u32",hrmpMaxMessageNumPerCandidate:"u32",validationUpgradeFrequency:"BlockNumber",validationUpgradeDelay:"BlockNumber",maxPovSize:"u32",maxDownwardMessageSize:"u32",preferredDispatchableUpwardMessagesStepWeight:"Weight",hrmpMaxParachainOutboundChannels:"u32",hrmpMaxParathreadOutboundChannels:"u32",hrmpOpenRequestTtl:"u32",hrmpSenderDeposit:"Balance",hrmpRecipientDeposit:"Balance",hrmpChannelMaxCapacity:"u32",hrmpChannelMaxTotalSize:"u32",hrmpMaxParachainInboundChannels:"u32",hrmpMaxParathreadInboundChannels:"u32",hrmpChannelMaxMessageSize:"u32",codeRetentionPeriod:"BlockNumber",parathreadCores:"u32",parathreadRetries:"u32",groupRotationFrequency:"BlockNumber",chainAvailabilityPeriod:"BlockNumber",threadAvailabilityPeriod:"BlockNumber",schedulingLookahead:"u32",maxValidatorsPerCore:"Option",maxValidators:"Option",disputePeriod:"SessionIndex",disputePostConclusionAcceptancePeriod:"BlockNumber",disputeMaxSpamSlots:"u32",disputeConclusionByTimeOutPeriod:"BlockNumber",noShowSlots:"u32",nDelayTranches:"u32",zerothDelayTrancheWidth:"u32",neededApprovals:"u32",relayVrfModuloSamples:"u32"},InboundDownwardMessage:{pubSentAt:"BlockNumber",pubMsg:"DownwardMessage"},InboundHrmpMessage:{sentAt:"BlockNumber",data:"Bytes"},InboundHrmpLimitations:{validWatermarks:"Vec"},InboundHrmpMessages:"Vec",LocalValidationData:{parentHead:"HeadData",balance:"Balance",codeUpgradeAllowed:"Option"},MessageIngestionType:{downwardMessages:"Vec",horizontalMessages:"BTreeMap"},MessageQueueChain:"RelayChainHash",NodeFeatures:"BitVec",OccupiedCore:{nextUpOnAvailable:"Option",occupiedSince:"BlockNumber",timeOutAt:"BlockNumber",nextUpOnTimeOut:"Option",availability:"BitVec",groupResponsible:"GroupIndex",candidateHash:"CandidateHash",candidateDescriptor:"CandidateDescriptor"},OccupiedCoreAssumption:{_enum:["Included,","TimedOut","Free"]},OutboundHrmpChannelLimitations:{bytesRemaining:"u32",messagesRemaining:"u32"},OutboundHrmpMessage:{recipient:"u32",data:"Bytes"},PendingSlashes:{_alias:{slashKeys:"keys"},slashKeys:"BTreeMap",kind:"SlashingOffenceKind"},ParachainDispatchOrigin:{_enum:["Signed","Parachain","Root"]},ParachainInherentData:{validationData:"PersistedValidationData",relayChainState:"StorageProof",downwardMessages:"Vec",horizontalMessages:"BTreeMap"},ParachainsInherentData:{bitfields:"SignedAvailabilityBitfields",backedCandidates:"Vec",disputes:"MultiDisputeStatementSet",parentHeader:"Header"},ParaGenesisArgs:{genesisHead:"Bytes",validationCode:"Bytes",parachain:"bool"},ParaId:"u32",ParaInfo:{manager:"AccountId",deposit:"Balance",locked:"bool"},ParaLifecycle:{_enum:["Onboarding","Parathread","Parachain","UpgradingToParachain","DowngradingToParathread","OutgoingParathread","OutgoingParachain"]},ParaPastCodeMeta:{upgradeTimes:"Vec",lastPruned:"Option"},ParaScheduling:{_enum:["Always","Dynamic"]},ParathreadClaim:"(ParaId, CollatorId)",ParathreadClaimQueue:{queue:"Vec",nextCoreOffset:"u32"},ParathreadEntry:{claim:"ParathreadClaim",retries:"u32"},ParaValidatorIndex:"u32",PersistedValidationData:{parentHead:"HeadData",relayParentNumber:"RelayChainBlockNumber",relayParentStorageRoot:"Hash",maxPovSize:"u32"},PvfCheckStatement:{accept:"bool",subject:"ValidationCodeHash",sessionIndex:"SessionIndex",validatorIndex:"ParaValidatorIndex"},QueuedParathread:{claim:"ParathreadEntry",coreOffset:"u32"},RelayBlockNumber:"u32",RelayChainBlockNumber:"RelayBlockNumber",RelayHash:"Hash",RelayChainHash:"RelayHash",Remark:"[u8; 32]",ReplacementTimes:{expectedAt:"BlockNumber",activatedAt:"BlockNumber"},Retriable:{_enum:{Never:"Null",WithRetries:"u32"}},ScheduledCore:{paraId:"ParaId",collator:"Option"},Scheduling:{_enum:["Always","Dynamic"]},ScrapedOnChainVotes:{session:"SessionIndex",backingValidatorsPerCandidate:"Vec<(CandidateReceipt, Vec<(ParaValidatorIndex, ValidityAttestation)>)>",disputes:"MultiDisputeStatementSet"},SessionInfo:{activeValidatorIndices:"Vec",randomSeed:"[u8; 32]",disputePeriod:"SessionIndex",validators:"Vec",discoveryKeys:"Vec",assignmentKeys:"Vec",validatorGroups:"Vec>",nCores:"u32",zerothDelayTrancheWidth:"u32",relayVrfModuloSamples:"u32",nDelayTranches:"u32",noShowSlots:"u32",neededApprovals:"u32"},OldV1SessionInfo:{validators:"Vec",discoveryKeys:"Vec",assignmentKeys:"Vec",validatorGroups:"Vec>",nCores:"u32",zerothDelayTrancheWidth:"u32",relayVrfModuloSamples:"u32",nDelayTranches:"u32",noShowSlots:"u32",neededApprovals:"u32"},SessionInfoValidatorGroup:"Vec",SignedAvailabilityBitfield:{payload:"BitVec",validatorIndex:"ParaValidatorIndex",signature:"ValidatorSignature"},SignedAvailabilityBitfields:"Vec",SigningContext:{sessionIndex:"SessionIndex",parentHash:"Hash"},SlashingOffenceKind:{_enum:["ForInvalid","AgainstValid"]},Statement:{_enum:{Never:"Null",Candidate:"Hash",Valid:"Hash",Invalid:"Hash"}},TransientValidationData:{maxCodeSize:"u32",maxHeadDataSize:"u32",balance:"Balance",codeUpgradeAllowed:"Option",dmqLength:"u32"},UpgradeGoAhead:{_enum:["Abort","GoAhead"]},UpgradeRestriction:{_enum:["Present"]},UpwardMessage:"Bytes",ValidationFunctionParams:{maxCodeSize:"u32",relayChainHeight:"RelayChainBlockNumber",codeUpgradeAllowed:"Option"},ValidationCode:"Bytes",ValidationCodeHash:"Hash",ValidationData:{persisted:"PersistedValidationData",transient:"TransientValidationData"},ValidationDataType:{validationData:"ValidationData",relayChainState:"Vec"},ValidatorSignature:"Signature",ValidityAttestation:{_enum:{Never:"Null",Implicit:"ValidatorSignature",Explicit:"ValidatorSignature"}},MessagingStateSnapshot:{relayDispatchQueueSize:"(u32, u32)",egressChannels:"Vec"},MessagingStateSnapshotEgressEntry:"(ParaId, AbridgedHrmpChannel)",SystemInherentData:"ParachainInherentData",VecInboundHrmpMessage:"Vec"}},Rl={rpc:{},types:{Approvals:"[bool; 4]"}},Bl={rpc:{},types:{AccountStatus:{validity:"AccountValidity",freeBalance:"Balance",lockedBalance:"Balance",signature:"Vec",vat:"Permill"},AccountValidity:{_enum:["Invalid","Initiated","Pending","ValidLow","ValidHigh","Completed"]}}},Ll=["AssetInstance","Fungibility","Junction","Junctions","MultiAsset","MultiAssetFilter","MultiLocation","Response","WildFungibility","WildMultiAsset","Xcm","XcmError","XcmOrder"];function Ul(e){return Ll.reduce(((t,n)=>(0,_.Z)(t,{[n]:`${n}${e}`})),{})}const zl={rpc:{},types:{BodyId:{_enum:{Unit:"Null",Named:"Vec",Index:"Compact",Executive:"Null",Technical:"Null",Legislative:"Null",Judicial:"Null"}},BodyPart:{_enum:{Voice:"Null",Members:"Compact",Fraction:{nom:"Compact",denom:"Compact"},AtLeastProportion:{nom:"Compact",denom:"Compact"},MoreThanProportion:{nom:"Compact",denom:"Compact"}}},InteriorMultiLocation:"Junctions",NetworkId:{_enum:{Any:"Null",Named:"Vec",Polkadot:"Null",Kusama:"Null"}},XcmOrigin:{_enum:{Xcm:"MultiLocation"}},XcmpMessageFormat:{_enum:["ConcatenatedVersionedXcm","ConcatenatedEncodedBlob","Signals"]},XcmAssetId:{_enum:{Concrete:"MultiLocation",Abstract:"Bytes"}},InboundStatus:{_enum:["Ok","Suspended"]},OutboundStatus:{_enum:["Ok","Suspended"]},MultiAssets:"Vec",FungibilityV0:"FungibilityV1",WildFungibilityV0:"WildFungibilityV1",AssetInstanceV0:{_enum:{Undefined:"Null",Index8:"u8",Index16:"Compact",Index32:"Compact",Index64:"Compact",Index128:"Compact",Array4:"[u8; 4]",Array8:"[u8; 8]",Array16:"[u8; 16]",Array32:"[u8; 32]",Blob:"Vec"}},JunctionV0:{_enum:{Parent:"Null",Parachain:"Compact",AccountId32:{network:"NetworkId",id:"AccountId"},AccountIndex64:{network:"NetworkId",index:"Compact"},AccountKey20:{network:"NetworkId",key:"[u8; 20]"},PalletInstance:"u8",GeneralIndex:"Compact",GeneralKey:"Vec",OnlyChild:"Null",Plurality:{id:"BodyId",part:"BodyPart"}}},MultiAssetV0:{_enum:{None:"Null",All:"Null",AllFungible:"Null",AllNonFungible:"Null",AllAbstractFungible:"Vec",AllAbstractNonFungible:"Vec",AllConcreteFungible:"MultiLocationV0",AllConcreteNonFungible:"MultiLocationV0",AbstractFungible:{id:"Vec",instance:"Compact"},AbstractNonFungible:{class:"Vec",instance:"AssetInstanceV0"},ConcreteFungible:{id:"MultiLocationV0",amount:"Compact"},ConcreteNonFungible:{class:"MultiLocationV0",instance:"AssetInstanceV0"}}},MultiLocationV0:{_enum:{Here:"Null",X1:"JunctionV0",X2:"(JunctionV0, JunctionV0)",X3:"(JunctionV0, JunctionV0, JunctionV0)",X4:"(JunctionV0, JunctionV0, JunctionV0, JunctionV0)",X5:"(JunctionV0, JunctionV0, JunctionV0, JunctionV0, JunctionV0)",X6:"(JunctionV0, JunctionV0, JunctionV0, JunctionV0, JunctionV0, JunctionV0)",X7:"(JunctionV0, JunctionV0, JunctionV0, JunctionV0, JunctionV0, JunctionV0, JunctionV0)",X8:"(JunctionV0, JunctionV0, JunctionV0, JunctionV0, JunctionV0, JunctionV0, JunctionV0, JunctionV0)"}},OriginKindV0:{_enum:["Native","SovereignAccount","Superuser","Xcm"]},ResponseV0:{_enum:{Assets:"Vec"}},XcmV0:{_enum:{WithdrawAsset:{assets:"Vec",effects:"Vec"},ReserveAssetDeposit:{assets:"Vec",effects:"Vec"},ReceiveTeleportedAsset:{assets:"Vec",effects:"Vec"},QueryResponse:{queryId:"Compact",response:"ResponseV0"},TransferAsset:{assets:"Vec",dest:"MultiLocationV0"},TransferReserveAsset:{assets:"Vec",dest:"MultiLocationV0",effects:"Vec"},Transact:{originType:"XcmOriginKind",requireWeightAtMost:"u64",call:"DoubleEncodedCall"},HrmpNewChannelOpenRequest:{sender:"Compact",maxMessageSize:"Compact",maxCapacity:"Compact"},HrmpChannelAccepted:{recipient:"Compact"},HrmpChannelClosing:{initiator:"Compact",sender:"Compact",recipient:"Compact"},RelayedFrom:{who:"MultiLocationV0",message:"XcmV0"}}},XcmErrorV0:{_enum:{Undefined:"Null",Overflow:"Null",Unimplemented:"Null",UnhandledXcmVersion:"Null",UnhandledXcmMessage:"Null",UnhandledEffect:"Null",EscalationOfPrivilege:"Null",UntrustedReserveLocation:"Null",UntrustedTeleportLocation:"Null",DestinationBufferOverflow:"Null",SendFailed:"Null",CannotReachDestination:"(MultiLocation, Xcm)",MultiLocationFull:"Null",FailedToDecode:"Null",BadOrigin:"Null",ExceedsMaxMessageSize:"Null",FailedToTransactAsset:"Null",WeightLimitReached:"Weight",Wildcard:"Null",TooMuchWeightRequired:"Null",NotHoldingFees:"Null",WeightNotComputable:"Null",Barrier:"Null",NotWithdrawable:"Null",LocationCannotHold:"Null",TooExpensive:"Null",AssetNotFound:"Null",RecursionLimitReached:"Null"}},XcmOrderV0:{_enum:{Null:"Null",DepositAsset:{assets:"Vec",dest:"MultiLocationV0"},DepositReserveAsset:{assets:"Vec",dest:"MultiLocationV0",effects:"Vec"},ExchangeAsset:{give:"Vec",receive:"Vec"},InitiateReserveWithdraw:{assets:"Vec",reserve:"MultiLocationV0",effects:"Vec"},InitiateTeleport:{assets:"Vec",dest:"MultiLocationV0",effects:"Vec"},QueryHolding:{queryId:"Compact",dest:"MultiLocationV0",assets:"Vec"},BuyExecution:{fees:"MultiAssetV0",weight:"u64",debt:"u64",haltOnError:"bool",xcm:"Vec"}}},AssetInstanceV1:{_enum:{Undefined:"Null",Index:"Compact",Array4:"[u8; 4]",Array8:"[u8; 8]",Array16:"[u8; 16]",Array32:"[u8; 32]",Blob:"Bytes"}},FungibilityV1:{_enum:{Fungible:"Compact",NonFungible:"AssetInstanceV1"}},JunctionV1:{_enum:{Parachain:"Compact",AccountId32:{network:"NetworkId",id:"AccountId"},AccountIndex64:{network:"NetworkId",index:"Compact"},AccountKey20:{network:"NetworkId",key:"[u8; 20]"},PalletInstance:"u8",GeneralIndex:"Compact",GeneralKey:"Vec",OnlyChild:"Null",Plurality:{id:"BodyId",part:"BodyPart"}}},JunctionsV1:{_enum:{Here:"Null",X1:"JunctionV1",X2:"(JunctionV1, JunctionV1)",X3:"(JunctionV1, JunctionV1, JunctionV1)",X4:"(JunctionV1, JunctionV1, JunctionV1, JunctionV1)",X5:"(JunctionV1, JunctionV1, JunctionV1, JunctionV1, JunctionV1)",X6:"(JunctionV1, JunctionV1, JunctionV1, JunctionV1, JunctionV1, JunctionV1)",X7:"(JunctionV1, JunctionV1, JunctionV1, JunctionV1, JunctionV1, JunctionV1, JunctionV1)",X8:"(JunctionV1, JunctionV1, JunctionV1, JunctionV1, JunctionV1, JunctionV1, JunctionV1, JunctionV1)"}},MultiAssetsV1:"Vec",MultiAssetV1:{id:"XcmAssetId",fungibility:"FungibilityV1"},MultiAssetFilterV1:{_enum:{Definite:"MultiAssetsV1",Wild:"WildMultiAssetV1"}},MultiLocationV1:{parents:"u8",interior:"JunctionsV1"},OriginKindV1:"OriginKindV0",ResponseV1:{_enum:{Assets:"MultiAssetsV1"}},WildFungibilityV1:{_enum:["Fungible","NonFungible"]},WildMultiAssetV1:{_enum:{All:"Null",AllOf:{id:"XcmAssetId",fungibility:"WildFungibilityV1"}}},XcmV1:{_enum:{WithdrawAsset:{assets:"MultiAssetsV1",effects:"Vec"},ReserveAssetDeposit:{assets:"MultiAssetsV1",effects:"Vec"},ReceiveTeleportedAsset:{assets:"MultiAssetsV1",effects:"Vec"},QueryResponse:{queryId:"Compact",response:"ResponseV1"},TransferAsset:{assets:"MultiAssetsV1",dest:"MultiLocationV1"},TransferReserveAsset:{assets:"MultiAssetsV1",dest:"MultiLocationV1",effects:"Vec"},Transact:{originType:"XcmOriginKind",requireWeightAtMost:"u64",call:"DoubleEncodedCall"},HrmpNewChannelOpenRequest:{sender:"Compact",maxMessageSize:"Compact",maxCapacity:"Compact"},HrmpChannelAccepted:{recipient:"Compact"},HrmpChannelClosing:{initiator:"Compact",sender:"Compact",recipient:"Compact"},RelayedFrom:{who:"MultiLocationV1",message:"XcmV1"}}},XcmErrorV1:{_enum:{Undefined:"Null",Overflow:"Null",Unimplemented:"Null",UnhandledXcmVersion:"Null",UnhandledXcmMessage:"Null",UnhandledEffect:"Null",EscalationOfPrivilege:"Null",UntrustedReserveLocation:"Null",UntrustedTeleportLocation:"Null",DestinationBufferOverflow:"Null",SendFailed:"Null",CannotReachDestination:"(MultiLocationV1, XcmV1)",MultiLocationFull:"Null",FailedToDecode:"Null",BadOrigin:"Null",ExceedsMaxMessageSize:"Null",FailedToTransactAsset:"Null",WeightLimitReached:"Weight",Wildcard:"Null",TooMuchWeightRequired:"Null",NotHoldingFees:"Null",WeightNotComputable:"Null",Barrier:"Null",NotWithdrawable:"Null",LocationCannotHold:"Null",TooExpensive:"Null",AssetNotFound:"Null",DestinationUnsupported:"Null",RecursionLimitReached:"Null"}},XcmOrderV1:{_enum:{Noop:"Null",DepositAsset:{assets:"MultiAssetFilterV1",maxAssets:"u32",beneficiary:"MultiLocationV1"},DepositReserveAsset:{assets:"MultiAssetFilterV1",maxAssets:"u32",dest:"MultiLocationV1",effects:"Vec"},ExchangeAsset:{give:"MultiAssetFilterV1",receive:"MultiAssetsV1"},InitiateReserveWithdraw:{assets:"MultiAssetFilterV1",reserve:"MultiLocationV1",effects:"Vec"},InitiateTeleport:{assets:"MultiAssetFilterV1",dest:"MultiLocationV1",effects:"Vec"},QueryHolding:{queryId:"Compact",dest:"MultiLocationV1",assets:"MultiAssetFilterV1"},BuyExecution:{fees:"MultiAssetV1",weight:"u64",debt:"u64",haltOnError:"bool",instructions:"Vec"}}},AssetInstanceV2:"AssetInstanceV1",FungibilityV2:"FungibilityV1",JunctionV2:"JunctionV1",JunctionsV2:"JunctionsV1",MultiAssetsV2:"MultiAssetsV1",MultiAssetV2:"MultiAssetV1",MultiAssetFilterV2:"MultiAssetFilterV1",MultiLocationV2:"MultiLocationV1",OriginKindV2:"OriginKindV1",WildFungibilityV2:"WildFungibilityV1",ResponseV2:{_enum:{Null:"Null",Assets:"MultiAssetsV2",ExecutionResult:"ResponseV2Result"}},ResponseV2Error:"(u32, XcmErrorV2)",ResponseV2Result:"Result",WeightLimitV2:{_enum:{Unlimited:"Null",Limited:"Compact"}},InstructionV2:{_enum:{WithdrawAsset:"MultiAssetsV2",ReserveAssetDeposited:"MultiAssetsV2",ReceiveTeleportedAsset:"MultiAssetsV2",QueryResponse:{queryId:"Compact",response:"ResponseV2",maxWeight:"Compact"},TransferAsset:{assets:"MultiAssetsV2",beneficiary:"MultiLocationV2"},TransferReserveAsset:{assets:"MultiAssetsV2",dest:"MultiLocationV2",xcm:"XcmV2"},Transact:{originType:"OriginKindV2",requireWeightAtMost:"u64",call:"DoubleEncodedCall"},HrmpNewChannelOpenRequest:{sender:"Compact",maxMessageSize:"Compact",maxCapacity:"Compact"},HrmpChannelAccepted:{recipient:"Compact"},HrmpChannelClosing:{initiator:"Compact",sender:"Compact",recipient:"Compact"},ClearOrigin:"Null",DescendOrigin:"InteriorMultiLocation",ReportError:{queryId:"Compact",dest:"MultiLocationV2",maxResponseWeight:"Compact"},DepositAsset:{assets:"MultiAssetFilterV2",maxAssets:"u32",beneficiary:"MultiLocationV2"},DepositReserveAsset:{assets:"MultiAssetFilterV2",maxAssets:"u32",dest:"MultiLocationV2",xcm:"XcmV2"},ExchangeAsset:{give:"MultiAssetFilterV2",receive:"MultiAssetsV2"},InitiateReserveWithdraw:{assets:"MultiAssetFilterV2",reserve:"MultiLocationV2",xcm:"XcmV2"},InitiateTeleport:{assets:"MultiAssetFilterV2",dest:"MultiLocationV2",xcm:"XcmV2"},QueryHolding:{query_id:"Compact",dest:"MultiLocationV2",assets:"MultiAssetFilterV2",maxResponse_Weight:"Compact"},BuyExecution:{fees:"MultiAssetV2",weightLimit:"WeightLimitV2"},RefundSurplus:"Null",SetErrorHandler:"XcmV2",SetAppendix:"XcmV2",ClearError:"Null",ClaimAsset:{assets:"MultiAssetsV2",ticket:"MultiLocationV2"},Trap:"u64"}},WildMultiAssetV2:"WildMultiAssetV1",XcmV2:"Vec",XcmErrorV2:{_enum:{Undefined:"Null",Overflow:"Null",Unimplemented:"Null",UnhandledXcmVersion:"Null",UnhandledXcmMessage:"Null",UnhandledEffect:"Null",EscalationOfPrivilege:"Null",UntrustedReserveLocation:"Null",UntrustedTeleportLocation:"Null",DestinationBufferOverflow:"Null",MultiLocationFull:"Null",MultiLocationNotInvertible:"Null",FailedToDecode:"Null",BadOrigin:"Null",ExceedsMaxMessageSize:"Null",FailedToTransactAsset:"Null",WeightLimitReached:"Weight",Wildcard:"Null",TooMuchWeightRequired:"Null",NotHoldingFees:"Null",WeightNotComputable:"Null",Barrier:"Null",NotWithdrawable:"Null",LocationCannotHold:"Null",TooExpensive:"Null",AssetNotFound:"Null",DestinationUnsupported:"Null",RecursionLimitReached:"Null",Transport:"Null",Unroutable:"Null",UnknownWeightRequired:"Null",Trap:"u64",UnknownClaim:"Null",InvalidLocation:"Null"}},XcmOrderV2:"XcmOrderV1",...Ul("V2"),DoubleEncodedCall:{encoded:"Vec"},XcmOriginKind:{_enum:["Native","SovereignAccount","Superuser","Xcm"]},Outcome:{_enum:{Complete:"Weight",Incomplete:"(Weight, XcmErrorV0)",Error:"XcmErrorV0"}},QueryId:"u64",QueryStatus:{_enum:{Pending:{responder:"VersionedMultiLocation",maybeNotify:"Option<(u8, u8)>",timeout:"BlockNumber"},Ready:{response:"VersionedResponse",at:"BlockNumber"}}},QueueConfigData:{suspendThreshold:"u32",dropThreshold:"u32",resumeThreshold:"u32",thresholdWeight:"Weight",weightRestrictDecay:"Weight"},VersionMigrationStage:{_enum:{MigrateSupportedVersion:"Null",MigrateVersionNotifiers:"Null",NotifyCurrentTargets:"Option",MigrateAndNotifyOldTargets:"Null"}},VersionedMultiAsset:{_enum:{V0:"MultiAssetV0",V1:"MultiAssetV1",V2:"MultiAssetV2"}},VersionedMultiAssets:{_enum:{V0:"Vec",V1:"MultiAssetsV1",V2:"MultiAssetsV2"}},VersionedMultiLocation:{_enum:{V0:"MultiLocationV0",V1:"MultiLocationV1",V2:"MultiLocationV2"}},VersionedResponse:{V0:"ResponseV0",V1:"ResponseV1",V2:"ResponseV2"},VersionedXcm:{_enum:{V0:"XcmV0",V1:"XcmV1",V2:"XcmV2"}},XcmVersion:"u32"}},Dl={rpc:{},types:{ContractCryptoHasher:{_enum:["Blake2x256","Sha2x256","Keccak256"]},ContractDiscriminant:"u32",ContractLayoutArray:{offset:"ContractLayoutKey",len:"u32",cellsPerElem:"u64",layout:"ContractStorageLayout"},ContractLayoutCell:{key:"ContractLayoutKey",ty:"SiLookupTypeId"},ContractLayoutEnum:{dispatchKey:"ContractLayoutKey",variants:"BTreeMap"},ContractLayoutHash:{offset:"ContractLayoutKey",strategy:"ContractLayoutHashingStrategy",layout:"ContractStorageLayout"},ContractLayoutHashingStrategy:{hasher:"ContractCryptoHasher",postfix:"Vec",prefix:"Vec"},ContractLayoutKey:"[u8; 32]",ContractLayoutStruct:{fields:"Vec"},ContractLayoutStructField:{layout:"ContractStorageLayout",name:"Text"},ContractStorageLayout:{_enum:{Cell:"ContractLayoutCell",Hash:"ContractLayoutHash",Array:"ContractLayoutArray",Struct:"ContractLayoutStruct",Enum:"ContractLayoutEnum"}},ContractConstructorSpecV0:{name:"Text",selector:"ContractSelector",args:"Vec",docs:"Vec"},ContractConstructorSpecV1:{name:"Vec",selector:"ContractSelector",args:"Vec",docs:"Vec"},ContractConstructorSpecV2:{label:"Text",selector:"ContractSelector",args:"Vec",docs:"Vec"},ContractConstructorSpecV3:{label:"Text",selector:"ContractSelector",payable:"bool",args:"Vec",docs:"Vec"},ContractConstructorSpecV4:{label:"Text",selector:"ContractSelector",payable:"bool",args:"Vec",docs:"Vec",default:"bool",returnType:"Option"},ContractContractSpecV0:{constructors:"Vec",messages:"Vec",events:"Vec",docs:"Vec"},ContractContractSpecV1:{constructors:"Vec",messages:"Vec",events:"Vec",docs:"Vec"},ContractContractSpecV2:{constructors:"Vec",messages:"Vec",events:"Vec",docs:"Vec"},ContractContractSpecV3:{constructors:"Vec",messages:"Vec",events:"Vec",docs:"Vec"},ContractContractSpecV4:{constructors:"Vec",messages:"Vec",events:"Vec",docs:"Vec",environment:"ContractEnvironmentV4"},ContractContractSpecV5:{constructors:"Vec",messages:"Vec",events:"Vec",docs:"Vec",environment:"ContractEnvironmentV4"},ContractDisplayName:"SiPath",ContractEventParamSpecV0:{name:"Text",indexed:"bool",type:"ContractTypeSpec",docs:"Vec"},ContractEventParamSpecV2:{label:"Text",indexed:"bool",type:"ContractTypeSpec",docs:"Vec"},ContractEventSpecV0:{name:"Text",args:"Vec",docs:"Vec"},ContractEventSpecV1:{name:"Text",args:"Vec",docs:"Vec"},ContractEventSpecV2:{label:"Text",args:"Vec",docs:"Vec"},ContractEventSpecV3:{label:"Text",args:"Vec",docs:"Vec",module_path:"Text",signature_topic:"Option<[u8; 32]>"},ContractMessageParamSpecV0:{name:"Text",type:"ContractTypeSpec"},ContractMessageParamSpecV2:{label:"Text",type:"ContractTypeSpec"},ContractMessageSpecV0:{name:"Text",selector:"ContractSelector",mutates:"bool",payable:"bool",args:"Vec",returnType:"Option",docs:"Vec"},ContractMessageSpecV1:{name:"Vec",selector:"ContractSelector",mutates:"bool",payable:"bool",args:"Vec",returnType:"Option",docs:"Vec"},ContractMessageSpecV2:{label:"Text",selector:"ContractSelector",mutates:"bool",payable:"bool",args:"Vec",returnType:"Option",docs:"Vec"},ContractMessageSpecV3:{label:"Text",selector:"ContractSelector",mutates:"bool",payable:"bool",args:"Vec",returnType:"Option",docs:"Vec",default:"bool"},ContractSelector:"[u8; 4]",ContractTypeSpec:{type:"SiLookupTypeId",displayName:"ContractDisplayName"},ContractConstructorSpecLatest:"ContractConstructorSpecV4",ContractEventSpecLatest:"ContractEventSpecV3",ContractEventParamSpecLatest:"ContractEventParamSpecV2",ContractMessageParamSpecLatest:"ContractMessageParamSpecV2",ContractMessageSpecLatest:"ContractMessageSpecV3",ContractMetadataLatest:"ContractMetadataV5",ContractProjectInfo:{source:"ContractProjectSource",contract:"ContractProjectContract"},ContractMetadataV0:{metadataVersion:"Text",types:"Vec",spec:"ContractContractSpecV0"},ContractMetadataV1:{types:"Vec",spec:"ContractContractSpecV1"},ContractMetadataV2:{types:"Vec",spec:"ContractContractSpecV2"},ContractMetadataV3:{types:"Vec",spec:"ContractContractSpecV3"},ContractMetadataV4:{types:"Vec",spec:"ContractContractSpecV4",version:"Text"},ContractMetadataV5:{types:"Vec",spec:"ContractContractSpecV5",version:"u64"},ContractMetadata:{_enum:{V0:"ContractMetadataV0",V1:"ContractMetadataV1",V2:"ContractMetadataV2",V3:"ContractMetadataV3",V4:"ContractMetadataV4",V5:"ContractMetadataV5"}},ContractProjectV0:{metadataVersion:"Text",source:"ContractProjectSource",contract:"ContractProjectContract",types:"Vec",spec:"ContractContractSpecV0"},ContractProject:"(ContractProjectInfo, ContractMetadata)",ContractProjectContract:{_alias:{docs:"documentation"},name:"Text",version:"Text",authors:"Vec",description:"Option",docs:"Option",repository:"Option",homepage:"Option",license:"Option"},ContractProjectSource:{_alias:{wasmHash:"hash"},wasmHash:"[u8; 32]",language:"Text",compiler:"Text",wasm:"Raw"},ContractEnvironmentV4:{_alias:{hashType:"hash"},accountId:"Option",balance:"Option",blockNumber:"Option",hashType:"Option",timestamp:"Option",maxEventTopics:"Option"}}},ql={account_basic:{description:"Returns pallet_evm::Accounts by address.",params:[{name:"address",type:"H160"}],type:"EvmAccount"},account_code_at:{description:"For a given account address, returns pallet_evm::AccountCodes.",params:[{name:"address",type:"H160"}],type:"Bytes"},author:{description:"Returns the converted FindAuthor::find_author authority id.",params:[],type:"H160"},call:{description:"Returns a frame_ethereum::call response. If `estimate` is true,",params:[{name:"from",type:"H160"},{name:"to",type:"H160"},{name:"data",type:"Vec"},{name:"value",type:"U256"},{name:"gasLimit",type:"U256"},{name:"maxFeePerGas",type:"Option"},{name:"maxPriorityFeePerGas",type:"Option"},{name:"nonce",type:"Option"},{name:"estimate",type:"bool"},{name:"accessList",type:"Option)>>"}],type:"Result"},chain_id:{description:"Returns runtime defined pallet_evm::ChainId.",params:[],type:"u64"},create:{description:"Returns a frame_ethereum::call response. If `estimate` is true,",params:[{name:"from",type:"H160"},{name:"data",type:"Vec"},{name:"value",type:"U256"},{name:"gasLimit",type:"U256"},{name:"maxFeePerGas",type:"Option"},{name:"maxPriorityFeePerGas",type:"Option"},{name:"nonce",type:"Option"},{name:"estimate",type:"bool"},{name:"accessList",type:"Option)>>"}],type:"Result"},current_all:{description:"Return all the current data for a block in a single runtime call.",params:[],type:"(Option, Option>, Option>)"},current_block:{description:"Return the current block.",params:[],type:"BlockV2"},current_receipts:{description:"Return the current receipt.",params:[],type:"Option>"},current_transaction_statuses:{description:"Return the current transaction status.",params:[],type:"Option>"},elasticity:{description:"Return the elasticity multiplier.",params:[],type:"Option"},extrinsic_filter:{description:"Receives a `Vec` and filters all the ethereum transactions.",params:[{name:"xts",type:"Vec"}],type:"Vec"},gas_price:{description:"Returns FixedGasPrice::min_gas_price",params:[],type:"u256"},storage_at:{description:"For a given account address and index, returns pallet_evm::AccountStorages.",params:[{name:"address",type:"H160"},{name:"index",type:"u256"}],type:"H256"}},jl={rpc:{listening:{aliasSection:"net",description:"Returns true if client is actively listening for network connections. Otherwise false.",params:[],type:"bool"},peerCount:{aliasSection:"net",description:"Returns number of peers connected to node.",params:[],type:"Text"},version:{aliasSection:"net",description:"Returns protocol version.",params:[],type:"Text"},clientVersion:{aliasSection:"web3",description:"Returns current client version.",params:[],type:"Text"},sha3:{aliasSection:"web3",description:"Returns sha3 of the given data",params:[{name:"data",type:"Bytes"}],type:"H256"},accounts:{description:"Returns accounts list.",params:[],type:"Vec"},blockNumber:{description:"Returns the blockNumber",params:[],type:"U256"},call:{description:"Call contract, returning the output data.",params:[{name:"request",type:"EthCallRequest"},{isHistoric:!0,isOptional:!0,name:"number",type:"BlockNumber"}],type:"Bytes"},chainId:{description:"Returns the chain ID used for transaction signing at the current best block. None is returned if not available.",params:[],type:"U64"},coinbase:{description:"Returns block author.",params:[],type:"H160"},estimateGas:{description:"Estimate gas needed for execution of given contract.",params:[{name:"request",type:"EthCallRequest"},{isHistoric:!0,isOptional:!0,name:"number",type:"BlockNumber"}],type:"U256"},feeHistory:{description:"Returns fee history for given block count & reward percentiles",params:[{name:"blockCount",type:"U256"},{name:"newestBlock",type:"BlockNumber"},{name:"rewardPercentiles",type:"Option>"}],type:"EthFeeHistory"},gasPrice:{description:"Returns current gas price.",params:[],type:"U256"},getBalance:{description:"Returns balance of the given account.",params:[{name:"address",type:"H160"},{isHistoric:!0,isOptional:!0,name:"number",type:"BlockNumber"}],type:"U256"},getBlockByHash:{description:"Returns block with given hash.",params:[{name:"hash",type:"H256"},{name:"full",type:"bool"}],type:"Option"},getBlockByNumber:{description:"Returns block with given number.",params:[{name:"block",type:"BlockNumber"},{name:"full",type:"bool"}],type:"Option"},getBlockTransactionCountByHash:{description:"Returns the number of transactions in a block with given hash.",params:[{name:"hash",type:"H256"}],type:"U256"},getBlockTransactionCountByNumber:{description:"Returns the number of transactions in a block with given block number.",params:[{name:"block",type:"BlockNumber"}],type:"U256"},getCode:{description:"Returns the code at given address at given time (block number).",params:[{name:"address",type:"H160"},{isHistoric:!0,isOptional:!0,name:"number",type:"BlockNumber"}],type:"Bytes"},getFilterChanges:{description:"Returns filter changes since last poll.",params:[{name:"index",type:"U256"}],type:"EthFilterChanges"},getFilterLogs:{description:"Returns all logs matching given filter (in a range 'from' - 'to').",params:[{name:"index",type:"U256"}],type:"Vec"},getLogs:{description:"Returns logs matching given filter object.",params:[{name:"filter",type:"EthFilter"}],type:"Vec"},getProof:{description:"Returns proof for account and storage.",params:[{name:"address",type:"H160"},{name:"storageKeys",type:"Vec"},{name:"number",type:"BlockNumber"}],type:"EthAccount"},getStorageAt:{description:"Returns content of the storage at given address.",params:[{name:"address",type:"H160"},{name:"index",type:"U256"},{isHistoric:!0,isOptional:!0,name:"number",type:"BlockNumber"}],type:"H256"},getTransactionByBlockHashAndIndex:{description:"Returns transaction at given block hash and index.",params:[{name:"hash",type:"H256"},{name:"index",type:"U256"}],type:"EthTransaction"},getTransactionByBlockNumberAndIndex:{description:"Returns transaction by given block number and index.",params:[{name:"number",type:"BlockNumber"},{name:"index",type:"U256"}],type:"EthTransaction"},getTransactionByHash:{description:"Get transaction by its hash.",params:[{name:"hash",type:"H256"}],type:"EthTransaction"},getTransactionCount:{description:"Returns the number of transactions sent from given address at given time (block number).",params:[{name:"address",type:"H160"},{isHistoric:!0,isOptional:!0,name:"number",type:"BlockNumber"}],type:"U256"},getTransactionReceipt:{description:"Returns transaction receipt by transaction hash.",params:[{name:"hash",type:"H256"}],type:"EthReceipt"},getUncleByBlockHashAndIndex:{description:"Returns an uncles at given block and index.",params:[{name:"hash",type:"H256"},{name:"index",type:"U256"}],type:"EthRichBlock"},getUncleByBlockNumberAndIndex:{description:"Returns an uncles at given block and index.",params:[{name:"number",type:"BlockNumber"},{name:"index",type:"U256"}],type:"EthRichBlock"},getUncleCountByBlockHash:{description:"Returns the number of uncles in a block with given hash.",params:[{name:"hash",type:"H256"}],type:"U256"},getUncleCountByBlockNumber:{description:"Returns the number of uncles in a block with given block number.",params:[{name:"number",type:"BlockNumber"}],type:"U256"},getWork:{description:"Returns the hash of the current block, the seedHash, and the boundary condition to be met.",params:[],type:"EthWork"},hashrate:{description:"Returns the number of hashes per second that the node is mining with.",params:[],type:"U256"},maxPriorityFeePerGas:{description:"Returns max priority fee per gas",params:[],type:"U256"},mining:{description:"Returns true if client is actively mining new blocks.",params:[],type:"bool"},newBlockFilter:{description:"Returns id of new block filter.",params:[],type:"U256"},newFilter:{description:"Returns id of new filter.",params:[{name:"filter",type:"EthFilter"}],type:"U256"},newPendingTransactionFilter:{description:"Returns id of new block filter.",params:[],type:"U256"},protocolVersion:{description:"Returns protocol version encoded as a string (quotes are necessary).",params:[],type:"u64"},sendRawTransaction:{description:"Sends signed transaction, returning its hash.",params:[{name:"bytes",type:"Bytes"}],type:"H256"},sendTransaction:{description:"Sends transaction; will block waiting for signer to return the transaction hash",params:[{name:"tx",type:"EthTransactionRequest"}],type:"H256"},submitHashrate:{description:"Used for submitting mining hashrate.",params:[{name:"index",type:"U256"},{name:"hash",type:"H256"}],type:"bool"},submitWork:{description:"Used for submitting a proof-of-work solution.",params:[{name:"nonce",type:"H64"},{name:"headerHash",type:"H256"},{name:"mixDigest",type:"H256"}],type:"bool"},subscribe:{description:"Subscribe to Eth subscription.",params:[{name:"kind",type:"EthSubKind"},{isOptional:!0,name:"params",type:"EthSubParams"}],pubsub:["subscription","subscribe","unsubscribe"],type:"Null"},syncing:{description:"Returns an object with data about the sync status or false.",params:[],type:"EthSyncStatus"},uninstallFilter:{description:"Uninstalls filter.",params:[{name:"index",type:"U256"}],type:"bool"}},runtime:{ConvertTransactionRuntimeApi:[{methods:{convert_transaction:{description:"Converts an Ethereum-style transaction to Extrinsic",params:[{name:"transaction",type:"TransactionV2"}],type:"Extrinsic"}},version:2}],DebugRuntimeApi:[{methods:{trace_block:{description:"Trace all block extrinsics",params:[{name:"extrinsics",type:"Vec"},{name:"knownTransactions",type:"Vec"}],type:"Result<(), DispatchError>"},trace_transaction:{description:"Trace transaction extrinsics",params:[{name:"extrinsics",type:"Vec"},{name:"transaction",type:"EthTransaction"}],type:"Result<(), DispatchError>"}},version:4}],EthereumRuntimeRPCApi:[{methods:{...ql},version:4},{methods:{...ql,call:{description:"Returns a frame_ethereum::call response. If `estimate` is true,",params:[{name:"from",type:"H160"},{name:"to",type:"H160"},{name:"data",type:"Vec"},{name:"value",type:"U256"},{name:"gasLimit",type:"U256"},{name:"maxFeePerGas",type:"Option"},{name:"maxPriorityFeePerGas",type:"Option"},{name:"nonce",type:"Option"},{name:"estimate",type:"bool"},{name:"accessList",type:"Option)>>"}],type:"Result"},create:{description:"Returns a frame_ethereum::call response. If `estimate` is true,",params:[{name:"from",type:"H160"},{name:"data",type:"Vec"},{name:"value",type:"U256"},{name:"gasLimit",type:"U256"},{name:"maxFeePerGas",type:"Option"},{name:"maxPriorityFeePerGas",type:"Option"},{name:"nonce",type:"Option"},{name:"estimate",type:"bool"},{name:"accessList",type:"Option)>>"}],type:"Result"}},version:5}]},types:{BlockV0:{header:"EthHeader",transactions:"Vec",ommers:"Vec"},LegacyTransaction:{nonce:"U256",gasPrice:"U256",gasLimit:"U256",action:"EthTransactionAction",value:"U256",input:"Bytes",signature:"EthTransactionSignature"},TransactionV0:"LegacyTransaction",BlockV1:{header:"EthHeader",transactions:"Vec",ommers:"Vec"},EIP2930Transaction:{chainId:"u64",nonce:"U256",gasPrice:"U256",gasLimit:"U256",action:"EthTransactionAction",value:"U256",input:"Bytes",accessList:"EthAccessList",oddYParity:"bool",r:"H256",s:"H256"},TransactionV1:{_enum:{Legacy:"LegacyTransaction",EIP2930:"EIP2930Transaction"}},BlockV2:{header:"EthHeader",transactions:"Vec",ommers:"Vec"},EIP1559Transaction:{chainId:"u64",nonce:"U256",maxPriorityFeePerGas:"U256",maxFeePerGas:"U256",gasLimit:"U256",action:"EthTransactionAction",value:"U256",input:"Bytes",accessList:"EthAccessList",oddYParity:"bool",r:"H256",s:"H256"},TransactionV2:{_enum:{Legacy:"LegacyTransaction",EIP2930:"EIP2930Transaction",EIP1559:"EIP1559Transaction"}},EthereumAccountId:"GenericEthereumAccountId",EthereumAddress:"GenericEthereumAccountId",EthereumLookupSource:"GenericEthereumLookupSource",EthereumSignature:"[u8; 65]",EthAccessListItem:{address:"EthAddress",slots:"Vec"},EthAccessList:"Vec",EthAccount:{address:"EthAddress",balance:"U256",nonce:"U256",codeHash:"H256",storageHash:"H256",accountProof:"Vec",storageProof:"Vec"},EthAddress:"H160",EthBlock:{header:"EthHeader",transactions:"Vec",ommers:"Vec"},EthHeader:{parentHash:"H256",ommersHash:"H256",beneficiary:"EthAddress",stateRoot:"H256",transactionsRoot:"H256",receiptsRoot:"H256",logsBloom:"EthBloom",difficulty:"U256",number:"U256",gasLimit:"U256",gasUsed:"U256",timestamp:"u64",extraData:"Bytes",mixMash:"H256",nonce:"H64"},EthRichBlock:{_alias:{blockHash:"hash",blockSize:"size"},blockHash:"Option",parentHash:"H256",sha3Uncles:"H256",author:"EthAddress",miner:"EthAddress",stateRoot:"H256",transactionsRoot:"H256",receiptsRoot:"H256",number:"Option",gasUsed:"U256",gasLimit:"U256",extraData:"Bytes",logsBloom:"EthBloom",timestamp:"U256",difficulty:"U256",totalDifficulty:"Option",sealFields:"Vec",uncles:"Vec",transactions:"Vec",blockSize:"Option"},EthBloom:"H2048",EthCallRequest:{from:"Option",to:"Option",gasPrice:"Option",gas:"Option",value:"Option",data:"Option",nonce:"Option"},EthFeeHistory:{oldestBlock:"U256",baseFeePerGas:"Vec",gasUsedRatio:"Vec",reward:"Option>>"},EthFilter:{fromBlock:"Option",toBlock:"Option",blockHash:"Option",address:"Option",topics:"Option"},EthFilterAddress:{_enum:{Single:"EthAddress",Multiple:"Vec",Null:"Null"}},EthFilterChanges:{_enum:{Logs:"Vec",Hashes:"Vec",Empty:"Null"}},EthFilterTopic:{_enum:{Single:"EthFilterTopicInner",Multiple:"Vec",Null:"Null"}},EthFilterTopicEntry:"Option",EthFilterTopicInner:{_enum:{Single:"EthFilterTopicEntry",Multiple:"Vec",Null:"Null"}},EthRichHeader:{_alias:{blockHash:"hash",blockSize:"size"},blockHash:"Option",parentHash:"H256",sha3Uncles:"H256",author:"EthAddress",miner:"EthAddress",stateRoot:"H256",transactionsRoot:"H256",receiptsRoot:"H256",number:"Option",gasUsed:"U256",gasLimit:"U256",extraData:"Bytes",logsBloom:"EthBloom",timestamp:"U256",difficulty:"U256",sealFields:"Vec",blockSize:"Option"},EthLog:{address:"EthAddress",topics:"Vec",data:"Bytes",blockHash:"Option",blockNumber:"Option",transactionHash:"Option",transactionIndex:"Option",logIndex:"Option",transactionLogIndex:"Option",removed:"bool"},EthReceipt:{transactionHash:"Option",transactionIndex:"Option",blockHash:"Option",from:"Option",to:"Option",blockNumber:"Option",cumulativeGasUsed:"U256",gasUsed:"Option",contractAddress:"Option",logs:"Vec",root:"Option",logsBloom:"EthBloom",statusCode:"Option"},EthReceiptV0:"EthReceipt",EthReceiptV3:"EthReceipt",EthStorageProof:{key:"U256",value:"U256",proof:"Vec"},EthSubKind:{_enum:["newHeads","logs","newPendingTransactions","syncing"]},EthSubParams:{_enum:{None:"Null",Logs:"EthFilter"}},EthSubResult:{_enum:{Header:"EthRichHeader",Log:"EthLog",TransactionHash:"H256",SyncState:"EthSyncStatus"}},EthSyncInfo:{startingBlock:"U256",currentBlock:"U256",highestBlock:"U256",warpChunksAmount:"Option",warpChunksProcessed:"Option"},EthSyncStatus:{_enum:{Info:"EthSyncInfo",None:"Null"}},EthTransaction:{hash:"H256",nonce:"U256",blockHash:"Option",blockNumber:"Option",transactionIndex:"Option",from:"H160",to:"Option",value:"U256",gasPrice:"Option",maxFeePerGas:"Option",maxPriorityFeePerGas:"Option",gas:"U256",input:"Bytes",creates:"Option",raw:"Bytes",publicKey:"Option",chainId:"Option",standardV:"U256",v:"U256",r:"U256",s:"U256",accessList:"Option>",transactionType:"Option"},EthTransactionSignature:{v:"u64",r:"H256",s:"H256"},EthTransactionAction:{_enum:{Call:"H160",Create:"Null"}},EthTransactionCondition:{_enum:{block:"u64",time:"u64"}},EthTransactionRequest:{from:"Option",to:"Option",gasPrice:"Option",gas:"Option",value:"Option",data:"Option",nonce:"Option"},EthTransactionStatus:{transactionHash:"H256",transactionIndex:"u32",from:"EthAddress",to:"Option",contractAddress:"Option",logs:"Vec",logsBloom:"EthBloom"},EthWork:{powHash:"H256",seedHash:"H256",target:"H256",number:"Option"}}},Fl={rpc:{},runtime:{AuthorFilterAPI:[{methods:{can_author:{description:"The runtime api used to predict whether an author will be eligible in the given slot",params:[{name:"author",type:"AccountId"},{name:"relayParent",type:"u32"},{name:"parentHeader",type:"Header"}],type:"bool"}},version:2},{methods:{can_author:{description:"The runtime api used to predict whether an author will be eligible in the given slot",params:[{name:"author",type:"AccountId"},{name:"relayParent",type:"u32"}],type:"bool"}},version:1}],NimbusApi:[{methods:{can_author:{description:"The runtime api used to predict whether a Nimbus author will be eligible in the given slot",params:[{name:"author",type:"AccountId"},{name:"relayParent",type:"u32"},{name:"parentHeader",type:"Header"}],type:"bool"}},version:1}]},types:{}},Xl={rpc:{},runtime:{OracleApi:[{methods:{get_all_values:{description:"Retrieves all values",params:[{name:"providerId",type:"Raw"}],type:"Raw"},get_value:{description:"Retrieves a single value",params:[{name:"providerId",type:"Raw"},{name:"key",type:"Raw"}],type:"Option"}},version:1}]},types:{}},Wl={rpc:{},runtime:{TokensApi:[{methods:{query_existential_deposit:{description:"Query the existential amount for a specific currency",params:[{name:"currencyId",type:"Raw"}],type:"u128"}},version:1}]},types:{}},Zl={rpc:{methods:{description:"Retrieves the list of RPC methods that are exposed by the node",params:[],type:"RpcMethods"}},types:{RpcMethods:{version:"u32",methods:"Vec"}}},Gl={rpc:{hasKey:{description:"Returns true if the keystore has private keys for the given public key and key type.",isUnsafe:!0,params:[{name:"publicKey",type:"Bytes"},{name:"keyType",type:"Text"}],type:"bool"},hasSessionKeys:{description:"Returns true if the keystore has private keys for the given session public keys.",isUnsafe:!0,params:[{name:"sessionKeys",type:"Bytes"}],type:"bool"},insertKey:{description:"Insert a key into the keystore.",isUnsafe:!0,params:[{name:"keyType",type:"Text"},{name:"suri",type:"Text"},{name:"publicKey",type:"Bytes"}],type:"Bytes"},pendingExtrinsics:{description:"Returns all pending extrinsics, potentially grouped by sender",params:[],type:"Vec"},removeExtrinsic:{description:"Remove given extrinsic from the pool and temporarily ban it to prevent reimporting",isUnsafe:!0,params:[{name:"bytesOrHash",type:"Vec"}],type:"Vec"},rotateKeys:{description:"Generate new session keys and returns the corresponding public keys",isUnsafe:!0,params:[],type:"Bytes"},submitAndWatchExtrinsic:{description:"Submit and subscribe to watch an extrinsic until unsubscribed",isSigned:!0,params:[{name:"extrinsic",type:"Extrinsic"}],pubsub:["extrinsicUpdate","submitAndWatchExtrinsic","unwatchExtrinsic"],type:"ExtrinsicStatus"},submitExtrinsic:{description:"Submit a fully formatted extrinsic for block inclusion",isSigned:!0,params:[{name:"extrinsic",type:"Extrinsic"}],type:"Hash"}},types:{ExtrinsicOrHash:{_enum:{Hash:"Hash",Extrinsic:"Bytes"}},ExtrinsicStatus:{_enum:{Future:"Null",Ready:"Null",Broadcast:"Vec",InBlock:"Hash",Retracted:"Hash",FinalityTimeout:"Hash",Finalized:"Hash",Usurped:"Hash",Dropped:"Null",Invalid:"Null"}}}},Kl={rpc:{getBlock:{description:"Get header and body of a relay chain block",params:[{isHistoric:!0,isOptional:!0,name:"hash",type:"BlockHash"}],type:"SignedBlock"},getBlockHash:{description:"Get the block hash for a specific block",params:[{isOptional:!0,name:"blockNumber",type:"BlockNumber"}],type:"BlockHash"},getFinalizedHead:{alias:["chain_getFinalisedHead"],description:"Get hash of the last finalized block in the canon chain",params:[],type:"BlockHash"},getHeader:{alias:["chain_getHead"],description:"Retrieves the header for a specific block",params:[{isHistoric:!0,isOptional:!0,name:"hash",type:"BlockHash"}],type:"Header"},subscribeAllHeads:{description:"Retrieves the newest header via subscription",params:[],pubsub:["allHead","subscribeAllHeads","unsubscribeAllHeads"],type:"Header"},subscribeFinalizedHeads:{alias:["chain_subscribeFinalisedHeads","chain_unsubscribeFinalisedHeads"],description:"Retrieves the best finalized header via subscription",params:[],pubsub:["finalizedHead","subscribeFinalizedHeads","unsubscribeFinalizedHeads"],type:"Header"},subscribeNewHeads:{alias:["chain_unsubscribeNewHeads","subscribe_newHead","unsubscribe_newHead"],description:"Retrieves the best header via subscription",params:[],pubsub:["newHead","subscribeNewHead","unsubscribeNewHead"],type:"Header"}},types:{BlockHash:"Hash"}},Yl={rpc:{getKeys:{description:"Returns the keys with prefix from a child storage, leave empty to get all the keys",params:[{name:"childKey",type:"PrefixedStorageKey"},{name:"prefix",type:"StorageKey"},{isHistoric:!0,isOptional:!0,name:"at",type:"Hash"}],type:"Vec"},getKeysPaged:{alias:["childstate_getKeysPagedAt"],description:"Returns the keys with prefix from a child storage with pagination support",params:[{name:"childKey",type:"PrefixedStorageKey"},{name:"prefix",type:"StorageKey"},{name:"count",type:"u32"},{isOptional:!0,name:"startKey",type:"StorageKey"},{isHistoric:!0,isOptional:!0,name:"at",type:"Hash"}],type:"Vec"},getStorage:{description:"Returns a child storage entry at a specific block state",params:[{name:"childKey",type:"PrefixedStorageKey"},{name:"key",type:"StorageKey"},{isHistoric:!0,isOptional:!0,name:"at",type:"Hash"}],type:"Option"},getStorageEntries:{description:"Returns child storage entries for multiple keys at a specific block state",params:[{name:"childKey",type:"PrefixedStorageKey"},{name:"keys",type:"Vec"},{isHistoric:!0,isOptional:!0,name:"at",type:"Hash"}],type:"Vec>"},getStorageHash:{description:"Returns the hash of a child storage entry at a block state",params:[{name:"childKey",type:"PrefixedStorageKey"},{name:"key",type:"StorageKey"},{isHistoric:!0,isOptional:!0,name:"at",type:"Hash"}],type:"Option"},getStorageSize:{description:"Returns the size of a child storage entry at a block state",params:[{name:"childKey",type:"PrefixedStorageKey"},{name:"key",type:"StorageKey"},{isHistoric:!0,isOptional:!0,name:"at",type:"Hash"}],type:"Option"}},types:{PrefixedStorageKey:"StorageKey"}},Jl={rpc:{localStorageGet:{description:"Get offchain local storage under given key and prefix",isUnsafe:!0,params:[{name:"kind",type:"StorageKind"},{name:"key",type:"Bytes"}],type:"Option"},localStorageSet:{description:"Set offchain local storage under given key and prefix",isUnsafe:!0,params:[{name:"kind",type:"StorageKind"},{name:"key",type:"Bytes"},{name:"value",type:"Bytes"}],type:"Null"}},runtime:{OffchainWorkerApi:[{methods:{offchain_worker:{description:"Starts the off-chain task for given block header.",params:[{name:"header",type:"Header"}],type:"Null"}},version:2},{methods:{offchain_worker:{description:"Starts the off-chain task for given block header.",params:[{name:"number",type:"BlockNumber"}],type:"Null"}},version:1}]},types:{StorageKind:{_enum:{PERSISTENT:1,LOCAL:2}}}},Ql={query_fee_details:{description:"The transaction fee details",params:[{name:"uxt",type:"Extrinsic"},{name:"len",type:"u32"}],type:"FeeDetails"}},$l={query_call_fee_details:{description:"The call fee details",params:[{name:"call",type:"Call"},{name:"len",type:"u32"}],type:"FeeDetails"}},ef={query_info:{description:"The transaction info",params:[{name:"uxt",type:"Extrinsic"},{name:"len",type:"u32"}],type:"RuntimeDispatchInfo"}},tf={query_call_info:{description:"The call info",params:[{name:"call",type:"Call"},{name:"len",type:"u32"}],type:"RuntimeDispatchInfo"}},nf={query_length_to_fee:{description:"Query the output of the current LengthToFee given some input",params:[{name:"length",type:"u32"}],type:"Balance"},query_weight_to_fee:{description:"Query the output of the current WeightToFee given some input",params:[{name:"weight",type:"Weight"}],type:"Balance"}},rf={rpc:{queryFeeDetails:{deprecated:"Use `api.call.transactionPaymentApi.queryFeeDetails` instead",description:"Query the detailed fee of a given encoded extrinsic",params:[{name:"extrinsic",type:"Bytes"},{isHistoric:!0,isOptional:!0,name:"at",type:"BlockHash"}],type:"FeeDetails"},queryInfo:{deprecated:"Use `api.call.transactionPaymentApi.queryInfo` instead",description:"Retrieves the fee information for an encoded extrinsic",params:[{name:"extrinsic",type:"Bytes"},{isHistoric:!0,isOptional:!0,name:"at",type:"BlockHash"}],type:"RuntimeDispatchInfoV1"}},runtime:{TransactionPaymentApi:[{methods:{...nf,...ef,...Ql},version:4},{methods:{...nf,...ef,...Ql},version:3},{methods:{...ef,...Ql},version:2},{methods:{query_info:{description:"The transaction info",params:[{name:"uxt",type:"Extrinsic"},{name:"len",type:"u32"}],type:"RuntimeDispatchInfo"},...Ql},version:1}],TransactionPaymentCallApi:[{methods:{...nf,...tf,...$l},version:3},{methods:{...tf,...$l},version:2},{methods:{CALL:{description:"The call info",params:[{name:"call",type:"Call"},{name:"len",type:"u32"}],type:"RuntimeDispatchInfo"},...$l},version:1}]},types:{FeeDetails:{inclusionFee:"Option"},InclusionFee:{baseFee:"Balance",lenFee:"Balance",adjustedWeightFee:"Balance"},RuntimeDispatchInfo:{weight:"Weight",class:"DispatchClass",partialFee:"Balance"},RuntimeDispatchInfoV1:{weight:"WeightV1",class:"DispatchClass",partialFee:"Balance"},RuntimeDispatchInfoV2:{weight:"WeightV2",class:"DispatchClass",partialFee:"Balance"}}},af={rpc:{call:{alias:["state_callAt"],description:"Perform a call to a builtin on the chain",params:[{name:"method",type:"Text"},{name:"data",type:"Bytes"},{isHistoric:!0,isOptional:!0,name:"at",type:"BlockHash"}],type:"Bytes"},getChildKeys:{description:"Retrieves the keys with prefix of a specific child storage",params:[{name:"childStorageKey",type:"StorageKey"},{name:"childDefinition",type:"StorageKey"},{name:"childType",type:"u32"},{name:"key",type:"StorageKey"},{isHistoric:!0,isOptional:!0,name:"at",type:"BlockHash"}],type:"Vec"},getChildReadProof:{description:"Returns proof of storage for child key entries at a specific block state.",params:[{name:"childStorageKey",type:"PrefixedStorageKey"},{name:"keys",type:"Vec"},{isHistoric:!0,isOptional:!0,name:"at",type:"BlockHash"}],type:"ReadProof"},getChildStorage:{description:"Retrieves the child storage for a key",params:[{name:"childStorageKey",type:"StorageKey"},{name:"childDefinition",type:"StorageKey"},{name:"childType",type:"u32"},{name:"key",type:"StorageKey"},{isHistoric:!0,isOptional:!0,name:"at",type:"BlockHash"}],type:"StorageData"},getChildStorageHash:{description:"Retrieves the child storage hash",params:[{name:"childStorageKey",type:"StorageKey"},{name:"childDefinition",type:"StorageKey"},{name:"childType",type:"u32"},{name:"key",type:"StorageKey"},{isHistoric:!0,isOptional:!0,name:"at",type:"BlockHash"}],type:"Hash"},getChildStorageSize:{description:"Retrieves the child storage size",params:[{name:"childStorageKey",type:"StorageKey"},{name:"childDefinition",type:"StorageKey"},{name:"childType",type:"u32"},{name:"key",type:"StorageKey"},{isHistoric:!0,isOptional:!0,name:"at",type:"BlockHash"}],type:"u64"},getKeys:{deprecated:"Use `api.rpc.state.getKeysPaged` to retrieve keys",description:"Retrieves the keys with a certain prefix",params:[{name:"key",type:"StorageKey"},{isHistoric:!0,isOptional:!0,name:"at",type:"BlockHash"}],type:"Vec"},getKeysPaged:{alias:["state_getKeysPagedAt"],description:"Returns the keys with prefix with pagination support.",params:[{name:"key",type:"StorageKey"},{name:"count",type:"u32"},{isOptional:!0,name:"startKey",type:"StorageKey"},{isHistoric:!0,isOptional:!0,name:"at",type:"BlockHash"}],type:"Vec"},getMetadata:{description:"Returns the runtime metadata",params:[{isHistoric:!0,isOptional:!0,name:"at",type:"BlockHash"}],type:"Metadata"},getPairs:{deprecated:"Use `api.rpc.state.getKeysPaged` to retrieve keys",description:"Returns the keys with prefix, leave empty to get all the keys (deprecated: Use getKeysPaged)",isUnsafe:!0,params:[{name:"prefix",type:"StorageKey"},{isHistoric:!0,isOptional:!0,name:"at",type:"BlockHash"}],type:"Vec"},getReadProof:{description:"Returns proof of storage entries at a specific block state",params:[{name:"keys",type:"Vec"},{isHistoric:!0,isOptional:!0,name:"at",type:"BlockHash"}],type:"ReadProof"},getRuntimeVersion:{alias:["chain_getRuntimeVersion"],description:"Get the runtime version",params:[{isHistoric:!0,isOptional:!0,name:"at",type:"BlockHash"}],type:"RuntimeVersion"},getStorage:{alias:["state_getStorageAt"],description:"Retrieves the storage for a key",params:[{name:"key",type:"StorageKey"},{isHistoric:!0,isOptional:!0,name:"at",type:"BlockHash"}],type:"StorageData"},getStorageHash:{alias:["state_getStorageHashAt"],description:"Retrieves the storage hash",params:[{name:"key",type:"StorageKey"},{isHistoric:!0,isOptional:!0,name:"at",type:"BlockHash"}],type:"Hash"},getStorageSize:{alias:["state_getStorageSizeAt"],description:"Retrieves the storage size",params:[{name:"key",type:"StorageKey"},{isHistoric:!0,isOptional:!0,name:"at",type:"BlockHash"}],type:"u64"},queryStorage:{description:"Query historical storage entries (by key) starting from a start block",isUnsafe:!0,params:[{name:"keys",type:"Vec"},{name:"fromBlock",type:"Hash"},{isOptional:!0,name:"toBlock",type:"BlockHash"}],type:"Vec"},queryStorageAt:{description:"Query storage entries (by key) starting at block hash given as the second parameter",params:[{name:"keys",type:"Vec"},{isHistoric:!0,isOptional:!0,name:"at",type:"BlockHash"}],type:"Vec"},subscribeRuntimeVersion:{alias:["chain_subscribeRuntimeVersion","chain_unsubscribeRuntimeVersion"],description:"Retrieves the runtime version via subscription",params:[],pubsub:["runtimeVersion","subscribeRuntimeVersion","unsubscribeRuntimeVersion"],type:"RuntimeVersion"},subscribeStorage:{description:"Subscribes to storage changes for the provided keys",params:[{isOptional:!0,name:"keys",type:"Vec"}],pubsub:["storage","subscribeStorage","unsubscribeStorage"],type:"StorageChangeSet"},traceBlock:{description:"Provides a way to trace the re-execution of a single block",isUnsafe:!0,params:[{name:"block",type:"Hash"},{name:"targets",type:"Option"},{name:"storageKeys",type:"Option"},{name:"methods",type:"Option"}],type:"TraceBlockResponse"},trieMigrationStatus:{description:"Check current migration state",isUnsafe:!0,params:[{isHistoric:!0,isOptional:!0,name:"at",type:"BlockHash"}],type:"MigrationStatusResult"}},types:{ApiId:"[u8; 8]",BlockTrace:{blockHash:"Text",parentHash:"Text",tracingTargets:"Text",storageKeys:"Text",spans:"Vec",events:"Vec"},BlockTraceEvent:{target:"Text",data:"BlockTraceEventData",parentId:"Option"},BlockTraceEventData:{stringValues:"HashMap"},BlockTraceSpan:{id:"u64",parentId:"Option",name:"Text",target:"Text",wasm:"bool"},KeyValueOption:"(StorageKey, Option)",MigrationStatusResult:{topRemainingToMigrate:"u64",childRemainingToMigrate:"u64"},ReadProof:{at:"Hash",proof:"Vec"},RuntimeVersionApi:"(ApiId, u32)",RuntimeVersion:{specName:"Text",implName:"Text",authoringVersion:"u32",specVersion:"u32",implVersion:"u32",apis:"Vec",transactionVersion:"u32",stateVersion:"u8"},RuntimeVersionPre4:{specName:"Text",implName:"Text",authoringVersion:"u32",specVersion:"u32",implVersion:"u32",apis:"Vec",transactionVersion:"u32"},RuntimeVersionPre3:{specName:"Text",implName:"Text",authoringVersion:"u32",specVersion:"u32",implVersion:"u32",apis:"Vec"},RuntimeVersionPartial:{specName:"Text",specVersion:"u32",apis:"Vec"},SpecVersion:"u32",StorageChangeSet:{block:"Hash",changes:"Vec"},TraceBlockResponse:{_enum:{TraceError:"TraceError",BlockTrace:"BlockTrace"}},TraceError:{error:"Text"}}};function sf(e,{type:t},n,r){const a={},i=e.getSiType(t).def.asVariant.variants;for(let s=0,o=i.length;se(t)}const cf=of(Qt),df=of((e=>e.toString()));function uf({calls:e}){return e.isSome}function lf(e,t,n,r,a){const{fields:i,index:s}=n,o=i.length,c=new Array(o);for(let d=0;d{if(a.length!==s.length)throw new Error(`Extrinsic ${t}.${i} expects ${a.length} arguments, got ${s.length}.`);return e.createTypeUnsafe("Call",[{args:s,callIndex:n},r])};return s.is=e=>function(e,t){return e.callIndex[0]===t[0]&&e.callIndex[1]===t[1]}(e,n),s.callIndex=n,s.meta=r,s.method=i,s.section=t,s.toJSON=()=>r.toJSON(),s}(e,r,new Uint8Array([a,s.toNumber()]),e.createTypeUnsafe("FunctionMetadataLatest",[(0,_.Z)({args:c},n)]))}function ff(e,{lookup:t,pallets:n},r){const a={},i=n.filter(uf);for(let s=0,o=i.length;s=12?o.toNumber():s;oa(a,d,(()=>sf(t,n.unwrap(),cf,(n=>lf(e,t,n,d,u)))))}return a}function pf(e,t){return(0,_.Z)({args:t.fields.map((({type:t})=>e.getTypeDef(t).type))},t)}function hf(e,{lookup:t,pallets:n},r){const a={};for(let i=0,s=n.length;i=12?o.toNumber():i;oa(a,Qt(c),(()=>sf(t,s.unwrap(),df,(r=>({is:e=>wn(e)&&wn(e.index)&&e.index.eq(n)&&((0,gt.U)(e.error)?e.error[0]===r.index.toNumber():wn(e.error)&&e.error.eq(r.index)),meta:e.createTypeUnsafe("ErrorMetadataLatest",[pf(t,r)])})))))}}return a}function bf({events:e}){return e.isSome}function mf(e,{lookup:t,pallets:n},r){const a={},i=n.filter(bf);for(let s=0,o=i.length;s=12?o.toNumber():s;oa(a,Qt(c),(()=>sf(t,n.unwrap(),df,(n=>({is:e=>wn(e)&&(0,gt.U)(e.index)&&d===e.index[0]&&n.index.eq(e.index[1]),meta:e.createTypeUnsafe("EventMetadataLatest",[pf(t,n)])})))))}return a}function yf(e,{pallets:t},n){const r={};for(let a=0,i=t.length;aca({},n,(t=>{const n=e.createTypeUnsafe(e.createLookupType(t.type),[(0,as.G)(t.value.toHex())]);return n.meta=t,n}),cf)))}return r}function xf(e){const t=e.map((e=>e.toString().trim())),n=t.findIndex((e=>!e.length));return-1===n?t:t.slice(0,n)}function gf(e,{extrinsic:t,lookup:n,pallets:r}){return e.createTypeUnsafe("MetadataLatest",[{extrinsic:t,lookup:{types:n.types.map((({id:t,type:n})=>e.createTypeUnsafe("PortableType",[{id:t,type:(0,_.Z)({},n,{docs:xf(n.docs)})}])))},pallets:r.map((({calls:t,index:n,name:r})=>({calls:e.createTypeUnsafe("Option",[t.unwrapOr(null)]),index:n,name:r})))}]).toJSON()}function vf(e,t=[]){for(let n=0,r=e.length;ne||t)))}function kf(e,{info:t}){throw new Error(`Unhandled: Unable to create and validate type from ${e} (info=${Pr[t]})`)}const Tf={[Pr.BTreeMap]:Sf,[Pr.BTreeSet]:wf,[Pr.Compact]:wf,[Pr.DoNotConstruct]:kf,[Pr.Enum]:Sf,[Pr.HashMap]:Sf,[Pr.Int]:kf,[Pr.Linkage]:wf,[Pr.Null]:kf,[Pr.Option]:wf,[Pr.Plain]:(e,t)=>t.lookupName||t.type,[Pr.Range]:wf,[Pr.RangeInclusive]:wf,[Pr.Result]:Sf,[Pr.Set]:Sf,[Pr.Si]:kf,[Pr.Struct]:Sf,[Pr.Tuple]:Sf,[Pr.UInt]:kf,[Pr.Vec]:wf,[Pr.VecFixed]:wf,[Pr.WrapperKeepOpaque]:wf,[Pr.WrapperOpaque]:wf};function Pf(e){const t=e.length,n=new Array(t);for(let r=0;re.getTypeDef(t).type))}function _f(e,t){return e.getSiType(t).def.asVariant.variants.map((({fields:t})=>Mf(e,t)))}function If(e,t,n){return function(e,t,n){const r=vf(Pf(n)).filter((t=>!e.hasType(t)&&!e.isLookupType(t))).sort();if(0!==r.length){const e=`Unknown types found, no types for ${r.join(", ")}`;if(t)throw new Error(e);Vf.warn(e)}return n}(e,n,vf(function({lookup:e,pallets:t}){return t.reduce(((t,{calls:n,constants:r,events:a,storage:i})=>(t.push([Mf(e,r)]),n.isSome&&t.push(_f(e,n.unwrap().type)),a.isSome&&t.push(_f(e,a.unwrap().type)),i.isSome&&t.push(i.unwrap().items.map((({type:t})=>{if(t.isPlain)return[e.getTypeDef(t.asPlain).type];const{hashers:n,key:r,value:a}=t.asMap;return 1===n.length?[e.getTypeDef(a).type,e.getTypeDef(r).type]:[e.getTypeDef(a).type,...e.getSiType(r).def.asTuple.map((t=>e.getTypeDef(t).type))]}))),t)),[])}(t)))}function Of(e,t){return t.toNumber()>=2?e.createTypeUnsafe("StorageHasherV10",[t.toNumber()+1]):e.createTypeUnsafe("StorageHasherV10",[t])}function Nf(e,t){return t.isMap?[(0,_.Z)({},t.asMap,{hasher:Of(e,t.asMap.hasher)}),1]:t.isDoubleMap?[(0,_.Z)({},t.asDoubleMap,{hasher:Of(e,t.asDoubleMap.hasher),key2Hasher:Of(e,t.asDoubleMap.key2Hasher)}),2]:[t.asPlain,0]}function Ef(e,{modules:t}){return e.createTypeUnsafe("MetadataV10",[{modules:t.map((t=>function(e,t){const n=t.storage.unwrapOr(null);return e.createTypeUnsafe("ModuleMetadataV10",[(0,_.Z)({},t,{storage:n?(0,_.Z)({},n,{items:n.items.map((t=>(0,_.Z)({},t,{type:e.createTypeUnsafe("StorageEntryTypeV10",Nf(e,t.type))})))}):null})])}(e,t)))}])}function Cf(e,{modules:t}){return e.createTypeUnsafe("MetadataV11",[{extrinsic:{signedExtensions:[],version:0},modules:t}])}function Af(e,{extrinsic:t,modules:n}){return e.createTypeUnsafe("MetadataV12",[{extrinsic:t,modules:n.map((t=>e.createTypeUnsafe("ModuleMetadataV12",[(0,_.Z)({},t,{index:255})])))}])}function Hf(e,t){return e.createTypeUnsafe("MetadataV13",[t])}const Rf={assets:{Approval:"AssetApproval",ApprovalKey:"AssetApprovalKey",Balance:"TAssetBalance",DestroyWitness:"AssetDestroyWitness"},babe:{EquivocationProof:"BabeEquivocationProof"},balances:{Status:"BalanceStatus"},beefy:{AuthorityId:"BeefyId"},contracts:{StorageKey:"ContractStorageKey"},electionProviderMultiPhase:{Phase:"ElectionPhase"},ethereum:{Block:"EthBlock",Header:"EthHeader",Receipt:"EthReceipt",Transaction:"EthTransaction",TransactionStatus:"EthTransactionStatus"},evm:{Account:"EvmAccount",Log:"EvmLog",Vicinity:"EvmVicinity"},grandpa:{Equivocation:"GrandpaEquivocation",EquivocationProof:"GrandpaEquivocationProof"},identity:{Judgement:"IdentityJudgement"},inclusion:{ValidatorIndex:"ParaValidatorIndex"},paraDisputes:{ValidatorIndex:"ParaValidatorIndex"},paraInclusion:{ValidatorIndex:"ParaValidatorIndex"},paraScheduler:{ValidatorIndex:"ParaValidatorIndex"},paraShared:{ValidatorIndex:"ParaValidatorIndex"},parachains:{Id:"ParaId"},parasDisputes:{ValidatorIndex:"ParaValidatorIndex"},parasInclusion:{ValidatorIndex:"ParaValidatorIndex"},parasScheduler:{ValidatorIndex:"ParaValidatorIndex"},parasShared:{ValidatorIndex:"ParaValidatorIndex"},proposeParachain:{Proposal:"ParachainProposal"},proxy:{Announcement:"ProxyAnnouncement"},scheduler:{ValidatorIndex:"ParaValidatorIndex"},shared:{ValidatorIndex:"ParaValidatorIndex"},society:{Judgement:"SocietyJudgement",Vote:"SocietyVote"},staking:{Compact:"CompactAssignments"},treasury:{Proposal:"TreasuryProposal"},xcm:{AssetId:"XcmAssetId"},xcmPallet:{AssetId:"XcmAssetId"}};const Bf=[["<",">"],["<",","],[",",">"],["(",")"],["(",","],[",",","],[",",")"]];function Lf(e,t){const n=t.toString(),r=e.findIndex((({def:e})=>e.HistoricMetaCompat===n));return-1!==r?r:e.push({def:{HistoricMetaCompat:n}})-1}function Uf(e,t){return e.push({def:{Tuple:t}})-1}function zf(e,t,n,r){return n.push({def:{Variant:{variants:r}},path:[`pallet_${e.toString()}`,"pallet",t]})-1}function Df(e,t){t.forEach((t=>{const n=Object.keys(e).find((e=>t.eq(e)));if(n)t.setOverride(e[n]);else{const n=t.toString(),r=Object.entries(e).reduce(((e,[t,n])=>Bf.reduce(((e,[r,a])=>e.replace(`${r}${t}${a}`,`${r}${n}${a}`)),e)),n);n!==r&&t.setOverride(r)}}))}function qf(e,t,n,r,a){const i=r.map((({args:n,docs:r,name:i},s)=>(Df(a,n.map((({type:e})=>e))),t.createTypeUnsafe("SiVariant",[{docs:r,fields:n.map((({name:n,type:r})=>t.createTypeUnsafe("SiField",[{name:n,type:Lf(e,r)}]))),index:s,name:i}]))));return t.createTypeUnsafe("PalletCallMetadataV14",[{type:zf(n,"Call",e,i)}])}function jf(e,t,n,r){return n.map((({docs:n,name:a,type:i,value:s})=>(Df(r,[i]),t.createTypeUnsafe("PalletConstantMetadataV14",[{docs:n,name:a,type:Lf(e,i),value:s}]))))}function Ff(e,t,n,r,a){const i=r.map((({docs:e,name:n},r)=>t.createTypeUnsafe("SiVariant",[{docs:e,fields:[],index:r,name:n}])));return t.createTypeUnsafe("PalletErrorMetadataV14",[{type:zf(n,"Error",e,i)}])}function Xf(e,t,n,r,a){const i=r.map((({args:n,docs:r,name:i},s)=>(Df(a,n),t.createTypeUnsafe("SiVariant",[{docs:r,fields:n.map((n=>t.createTypeUnsafe("SiField",[{type:Lf(e,n)}]))),index:s,name:i}]))));return t.createTypeUnsafe("PalletEventMetadataV14",[{type:zf(n,"Event",e,i)}])}function Wf(e,t,n,{hashers:r,isLinked:a,isOptional:i,keys:s,value:o}){return Df(n,[o,...Array.isArray(s)?s:[s]]),t.createTypeUnsafe("StorageEntryTypeV14",[{Map:{hashers:r,key:1===r.length?Lf(e,s[0]):Uf(e,s.map((t=>Lf(e,t)))),value:Lf(e,a?`(${i?`Option<${o.toString()}>`:o.toString()}, Linkage<${s[0].toString()}>)`:o)}}])}function Zf(e,t,{items:n,prefix:r},a){return t.createTypeUnsafe("PalletStorageMetadataV14",[{items:n.map((({docs:n,fallback:r,modifier:i,name:s,type:o})=>{let c;if(o.isPlain){const n=o.asPlain;Df(a,[n]),c=t.createTypeUnsafe("StorageEntryTypeV14",[{Plain:Lf(e,n)}])}else if(o.isMap){const n=o.asMap;c=Wf(e,t,a,{hashers:[n.hasher],isLinked:n.linked.isTrue,isOptional:i.isOptional,keys:[n.key],value:n.value})}else if(o.isDoubleMap){const n=o.asDoubleMap;c=Wf(e,t,a,{hashers:[n.hasher,n.key2Hasher],isLinked:!1,isOptional:i.isOptional,keys:[n.key1,n.key2],value:n.value})}else{const n=o.asNMap;c=Wf(e,t,a,{hashers:n.hashers,isLinked:!1,isOptional:i.isOptional,keys:n.keyVec,value:n.value})}return t.createTypeUnsafe("StorageEntryMetadataV14",[{docs:n,fallback:r,modifier:i,name:s,type:c}])})),prefix:r}])}function Gf(e,t,n,{calls:r,constants:a,errors:i,events:s,storage:o}){const c=function({knownTypes:e},t){return{...Rf[t]??{},...e.typesAlias?.[t]??{}}}(t,Qt(n.name));return t.createTypeUnsafe("PalletMetadataV14",[{calls:r&&qf(e,t,n.name,r,c),constants:jf(e,t,a,c),errors:i&&Ff(e,t,n.name,i),events:s&&Xf(e,t,n.name,s,c),index:n.index,name:n.name,storage:o&&Zf(e,t,o,c)}])}function Kf(e,t,n){const r=[];!function(e,...t){for(let n=0,r=t.length;n[e.name.toString(),n>=12?e.index.toNumber():t])).sort(((e,t)=>e[1]-t[1])).reduce(((e,[t,n])=>{for(let r=Object.keys(e).length;r({identifier:e,type:0}))),type:0,version:n}])}(e,t.extrinsic),i=t.modules.map((t=>Gf(r,e,t,{calls:t.calls.unwrapOr(null),constants:t.constants,errors:t.errors.length?t.errors:null,events:t.events.unwrapOr(null),storage:t.storage.unwrapOr(null)})));return e.createTypeUnsafe("MetadataV14",[{extrinsic:a,lookup:{types:r.map(((t,n)=>e.createTypeUnsafe("PortableType",[{id:n,type:t}])))},pallets:i}])}function Yf(e,t,n){const r=t.lookup.paramTypes.SpRuntimeUncheckedExtrinsic;return e.createTypeUnsafe("MetadataV15",[(0,_.Z)({},t,{extrinsic:e.createTypeUnsafe("ExtrinsicMetadataV15",[(0,_.Z)({},t.extrinsic,{addressType:r?.[0].type.unwrapOr(0),callType:r?.[1].type.unwrapOr(0),extraType:r?.[3].type.unwrapOr(0),signatureType:r?.[2].type.unwrapOr(0)})]),outerEnums:e.createTypeUnsafe("OuterEnums15",[{callType:r?.[1].type.unwrapOr(0),eventType:t.lookup.paramTypes.FrameSystemEventRecord?.[0].type.unwrapOr(0)}])})])}function Jf(e,t,n){return t}const Qf=1635018093;class $f extends po{constructor(e,t){if(super(e,t),!this.isEmpty&&!this.eq(Qf))throw new Error(`MagicNumber mismatch: expected ${e.createTypeUnsafe("u32",[Qf]).toHex()}, found ${this.toHex()}`)}}class ep extends xn{__internal__converted=new Map;constructor(e,t){super(e,{magicNumber:$f,metadata:"MetadataAll"},t)}__internal__assertVersion=e=>{if(this.version>e)throw new Error(`Cannot convert metadata from version ${this.version} to ${e}`);return this.version===e};__internal__getVersion=(e,t)=>{if("latest"!==e&&this.__internal__assertVersion(e)){const t=`asV${e}`;return this.__internal__metadata()[t]}if(!this.__internal__converted.has(e)){const n="latest"===e?"asV15":"asV"+(e-1);this.__internal__converted.set(e,t(this.registry,this[n],this.version))}return this.__internal__converted.get(e)};__internal__metadata=()=>this.getT("metadata");get asCallsOnly(){return new ep(this.registry,{magicNumber:this.magicNumber,metadata:this.registry.createTypeUnsafe("MetadataAll",[gf(this.registry,this.asLatest),14])})}get asV9(){return this.__internal__assertVersion(9),this.__internal__metadata().asV9}get asV10(){return this.__internal__getVersion(10,Ef)}get asV11(){return this.__internal__getVersion(11,Cf)}get asV12(){return this.__internal__getVersion(12,Af)}get asV13(){return this.__internal__getVersion(13,Hf)}get asV14(){return this.__internal__getVersion(14,Kf)}get asV15(){return this.__internal__getVersion(15,Yf)}get asLatest(){return this.__internal__getVersion("latest",Jf)}get magicNumber(){return this.getT("magicNumber")}get version(){return this.__internal__metadata().index}getUniqTypes(e){return If(this.registry,this.asLatest,e)}toJSON(){return this.asLatest,super.toJSON()}}const tp=new Uint8Array([109,101,116,97,9]),np=tp.length-1;class rp extends ep{constructor(e,t){super(e,(0,gt.U)(t)||(0,I.H)(t)?function(e,t){if(0===t.length)return tp;if(9===t[np])try{return new ep(e,t)}catch{t[np]=10}return t}(e,(0,N.Y)(t)):t)}}const ap=e=>e.toString(),ip=["BTreeMap","BTreeSet","Compact","HashMap","Option","Result","Vec"];function sp(e,t,n){const{info:r,sub:a}=t;switch(r){case Pr.BTreeMap:case Pr.BTreeSet:case Pr.Compact:case Pr.HashMap:case Pr.Linkage:case Pr.Option:case Pr.Range:case Pr.RangeInclusive:case Pr.Result:case Pr.Vec:case Pr.WrapperKeepOpaque:case Pr.WrapperOpaque:return function(e,t,n=ap){return`${e}${t?`<${(Array.isArray(t)?t:[t]).map(n).join(", ")}>`:""}`}(n,a,(t=>up(e,t)))}throw new Error(`Unable to encode ${(0,Qe.P)(t)} with params`)}function op(e,t,n,r){const a=t.map((({name:e})=>e));if(!a.every((e=>!!e)))throw new Error(`Subtypes does not have consistent names, ${a.join(", ")}`);const i=(0,_.Z)({},r);for(let s=0,o=t.length;ssp(e,t,"BTreeMap"),[Pr.BTreeSet]:(e,t)=>sp(e,t,"BTreeSet"),[Pr.Compact]:(e,t)=>sp(e,t,"Compact"),[Pr.DoNotConstruct]:(e,{displayName:t,lookupIndex:n,lookupName:r})=>`DoNotConstruct<${r||t||((0,$e.o)(n)?"Unknown":e.createLookupType(n))}>`,[Pr.Enum]:(e,{sub:t})=>{if(!Array.isArray(t))throw new Error("Unable to encode Enum type");return t.every((({type:e})=>"Null"===e))?(0,Qe.P)({_enum:t.map((({name:e},t)=>`${e||`Empty${t}`}`))}):op(e,t,!0)},[Pr.HashMap]:(e,t)=>sp(e,t,"HashMap"),[Pr.Int]:(e,{length:t=32})=>`Int<${t}>`,[Pr.Linkage]:(e,t)=>sp(e,t,"Linkage"),[Pr.Null]:(e,t)=>"Null",[Pr.Option]:(e,t)=>sp(e,t,"Option"),[Pr.Plain]:(e,{displayName:t,type:n})=>t||n,[Pr.Range]:(e,t)=>sp(e,t,"Range"),[Pr.RangeInclusive]:(e,t)=>sp(e,t,"RangeInclusive"),[Pr.Result]:(e,t)=>sp(e,t,"Result"),[Pr.Set]:(e,{length:t=8,sub:n})=>{if(!Array.isArray(n))throw new Error("Unable to encode Set type");return(0,Qe.P)({_set:n.reduce(((e,{index:t,name:n},r)=>(0,_.Z)(e,{[`${n||`Unknown${t||r}`}`]:t||r})),{_bitLength:t||8})})},[Pr.Si]:(e,{lookupName:t,type:n})=>t||n,[Pr.Struct]:(e,{alias:t,sub:n})=>{if(!Array.isArray(n))throw new Error("Unable to encode Struct type");return op(e,n,!1,t?{_alias:[...t.entries()].reduce(((e,[t,n])=>(0,_.Z)(e,{[t]:n})),{})}:{})},[Pr.Tuple]:(e,{sub:t})=>{if(!Array.isArray(t))throw new Error("Unable to encode Tuple type");return`(${t.map((t=>up(e,t))).join(",")})`},[Pr.UInt]:(e,{length:t=32})=>`UInt<${t}>`,[Pr.Vec]:(e,t)=>sp(e,t,"Vec"),[Pr.VecFixed]:(e,{length:t,sub:n})=>{if(!(0,Zt.h)(t)||!n||Array.isArray(n))throw new Error("Unable to encode VecFixed type");return`[${n.type};${t}]`},[Pr.WrapperKeepOpaque]:(e,t)=>sp(e,t,"WrapperKeepOpaque"),[Pr.WrapperOpaque]:(e,t)=>sp(e,t,"WrapperOpaque")};function dp(e,t,n=!0){return n&&t.lookupName?t.lookupName:cp[t.info](e,t)}function up(e,t){return t.displayName&&!ip.some((e=>t.displayName===e))?t.displayName:dp(e,t)}function lp(e,t){return(0,_.Z)({},t,{type:dp(e,t,!1)})}const fp=(0,ht.k)("PortableRegistry"),pp={toNumber:()=>-1},hp={Char:"u32",Str:"Text"},bp=kp(["sp_core::crypto::AccountId32","sp_runtime::generic::era::Era","sp_runtime::multiaddress::MultiAddress","fp_account::AccountId20","account::AccountId20","polkadot_runtime_common::claims::EthereumAddress","frame_support::weights::weight_v2::Weight","sp_weights::weight_v2::Weight","*_democracy::vote::Vote","*_conviction_voting::vote::Vote","*_identity::types::Data","sp_core::OpaqueMetadata","sp_core::OpaquePeerId","sp_core::offchain::OpaqueMultiaddr","primitive_types::*","sp_arithmetic::per_things::*","*_runtime::RuntimeCall","*_runtime::RuntimeEvent","ink::env::types::*","ink::primitives::types::*","ink_env::types::*","ink_primitives::types::*","np_runtime::accountname::AccountName","np_runtime::universaladdress::UniversalAddress"]),mp=kp(["pallet_identity::types::BitFlags"]),yp=["bitvec::order::Lsb0","BitOrderLsb0"],xp=[...yp,"bitvec::order::Msb0","BitOrderMsb0"],gp=["BoundedBTreeMap","BoundedBTreeSet","BoundedVec","Box","BTreeMap","BTreeSet","Cow","Option","Range","RangeInclusive","Result","WeakBoundedVec","WrapperKeepOpaque","WrapperOpaque"],vp=["entries","keys","new","size","hash","registry"],wp=["generic","misc","pallet","traits","types"];function Sp(e){const t=e.length,n=new Array(t);for(let r=0;r{const r=t[n].toString();if("*"===e||e===r)return!0;if(e.includes("*")&&e.includes("_")&&r.includes("_")){let t=e.split("_"),n=r.split("_");if("*"===t[0]){const e=n.indexOf(t[1]);-1!==e&&(t=t.slice(1),n=n.slice(e))}return 2===t.length&&"*"===t[1]&&t[0]===n[0]||Tp(t,n)}return!1}))}function Pp(e,t,n,r,a=!1){const i=r.length;if(0===i||gp.includes(r[i-1].toString()))return null;const s=new Array(i),o=new Array(i);for(let d=0;d{const{lookupIndex:s,name:o,params:c}=a;if(!o)return null;if(r[s])return a;const d=function(e,t,n){const r=[n[t]];for(let a=t+1,i=n.length;ac.length!==e.params.length||c.some(((t,n)=>!t.name.eq(e.params[n].name)||t.type.unwrapOr(pp).toNumber()!==e.params[n].type.unwrapOr(pp).toNumber())))))return a;const u=c.findIndex((({type:e},t)=>d.every((({params:n},r)=>n[t].type.isSome&&(0===r||!n[t].type.eq(e))))));if(-1===u)return a;const l=d.length,f=new Array(l);for(let t=0;t!!e)).map((({lookupIndex:e,name:t,params:n})=>({lookupIndex:e,name:r[e]||t,params:n})))}(e,t,n);for(let c=0,d=o.length;c"},t);const{lookups:r,names:a,params:i,types:s}=_p(this,this.types);this.__internal__alias=function(e,t){const n=Object.keys(e).some((e=>!e.startsWith("Pallet"))),r={};if(e.SpRuntimeUncheckedExtrinsic){const[,{type:t}]=e.SpRuntimeUncheckedExtrinsic;r[t.unwrap().toNumber()]="Call"}else n&&!t&&fp.warn("Unable to determine runtime Call type, cannot inspect sp_runtime::generic::unchecked_extrinsic::UncheckedExtrinsic");if(e.FrameSystemEventRecord){const[{type:t}]=e.FrameSystemEventRecord;r[t.unwrap().toNumber()]="Event"}else n&&!t&&fp.warn("Unable to determine runtime Event type, cannot inspect frame_system::EventRecord");return r}(i,n),this.__internal__lookups=r,this.__internal__names=a,this.__internal__params=i,this.__internal__types=s}get names(){return Object.values(this.__internal__names).sort()}get paramTypes(){return this.__internal__params}get types(){return this.getT("types")}register(){!function(e,t,n,r){if(e.registry.register(t),r.SpRuntimeUncheckedExtrinsic){const[t,,a]=r.SpRuntimeUncheckedExtrinsic,i=e.getSiType(t.type.unwrap()),s=e.getSiType(a.type.unwrap()).path.join("::");let o=i.path.join("::");const c="sp_runtime::multiaddress::MultiAddress"===o;if(c){const[t]=i.params;o=e.getSiType(t.type.unwrap()).path.join("::")}e.registry.register({AccountId:o.endsWith("::AccountId20")||o.endsWith("::H160")?"AccountId20":"AccountId32",Address:c?"MultiAddress":"AccountId",ExtrinsicSignature:["sp_runtime::MultiSignature"].includes(s)?"MultiSignature":n[a.type.unwrap().toNumber()]||"MultiSignature"})}}(this,this.__internal__lookups,this.__internal__names,this.__internal__params)}getName(e){return this.__internal__names[this.__internal__getLookupId(e)]}getSiType(e){const t=(this.__internal__types||this.types)[this.__internal__getLookupId(e)];if(!t)throw new Error(`PortableRegistry: Unable to find type with lookupId ${e.toString()}`);return t.type}getTypeDef(e){const t=this.__internal__getLookupId(e);if(!this.__internal__typeDefs[t]){const n=this.__internal__names[t],r={info:Pr.DoNotConstruct,lookupIndex:t,lookupName:n,type:this.registry.createLookupType(t)};n&&(this.__internal__typeDefs[t]=r);const a=this.__internal__extract(this.getSiType(e),t);n||(this.__internal__typeDefs[t]=r),Object.keys(a).forEach((e=>{("lookupName"!==e||a[e])&&(this.__internal__typeDefs[t][e]=a[e])})),a.info===Pr.Plain&&(this.__internal__typeDefs[t].lookupNameRoot=this.__internal__typeDefs[t].lookupName,delete this.__internal__typeDefs[t].lookupName)}return this.__internal__typeDefs[t]}sanitizeField(e){let t=null,n=null;return e.isSome&&(t=Qt(e.unwrap()),t.includes("#")?(n=t,t=n.replace(/#/g,"_")):vp.includes(t)&&(n=t,t=`${t}_`)),[t,n]}__internal__createSiDef(e){const t=this.getTypeDef(e),n=e.toNumber();return[Pr.DoNotConstruct,Pr.Enum,Pr.Struct].includes(t.info)&&t.lookupName?{docs:t.docs,info:Pr.Si,lookupIndex:n,lookupName:this.__internal__names[n],type:this.registry.createLookupType(e)}:t}__internal__getLookupId(e){if((0,I.H)(e)){if(!this.registry.isLookupType(e))throw new Error(`PortableRegistry: Expected a lookup string type, found ${e}`);return parseInt(e.replace("Lookup",""),10)}return(0,Zt.h)(e)?e:e.toNumber()}__internal__extract(e,t){const n=e.path.join("::");let r;const a=this.__internal__alias[t]||function({def:e,path:t}){return["frame_support::weights::weight_v2::Weight","sp_weights::weight_v2::Weight"].includes(t.join("::"))?e.isComposite&&1!==e.asComposite.fields.length?null:"WeightV1":t.length&&bp.some((e=>Tp(e,t)))?t[t.length-1].toString():null}(e);try{if(a)r=this.__internal__extractAliasPath(t,a);else switch(e.def.type){case"Array":r=this.__internal__extractArray(t,e.def.asArray);break;case"BitSequence":r=this.__internal__extractBitSequence(t,e.def.asBitSequence);break;case"Compact":r=this.__internal__extractCompact(t,e.def.asCompact);break;case"Composite":r=this.__internal__extractComposite(t,e,e.def.asComposite);break;case"HistoricMetaCompat":r=this.__internal__extractHistoric(t,e.def.asHistoricMetaCompat);break;case"Primitive":r=this.__internal__extractPrimitive(t,e);break;case"Sequence":r=this.__internal__extractSequence(t,e.def.asSequence);break;case"Tuple":r=this.__internal__extractTuple(t,e.def.asTuple);break;case"Variant":r=this.__internal__extractVariant(t,e,e.def.asVariant);break;default:!function(e){throw new Error(`This codepath should be unreachable. Unhandled input: ${e}`)}(e.def.type)}}catch(i){throw new Error(`PortableRegistry: ${t}${n?` (${n})`:""}: Error extracting ${(0,Qe.P)(e)}: ${i.message}`)}return(0,_.Z)({docs:Sp(e.docs),namespace:n},r)}__internal__extractArray(e,{len:t,type:n}){const r=t.toNumber();if(r>2048)throw new Error("Only support for [Type; ], where length <= 2048");return lp(this.registry,{info:Pr.VecFixed,length:r,sub:this.__internal__createSiDef(n)})}__internal__extractBitSequence(e,{bitOrderType:t,bitStoreType:n}){const r=this.__internal__createSiDef(t),a=this.__internal__createSiDef(n),[i,s]=xp.includes(r.namespace||"")?[r,a]:[a,r];if(!i.namespace||!xp.includes(i.namespace))throw new Error(`Unexpected bitOrder found as ${i.namespace||""}`);if(s.info!==Pr.Plain||"u8"!==s.type)throw new Error(`Only u8 bitStore is currently supported, found ${s.type}`);yp.includes(i.namespace);return{info:Pr.Plain,type:"BitVec"}}__internal__extractCompact(e,{type:t}){return lp(this.registry,{info:Pr.Compact,sub:this.__internal__createSiDef(t)})}__internal__extractComposite(e,{params:t,path:n},{fields:r}){if(n.length){const e=n[0].toString(),r=n[n.length-1].toString();if(1===n.length&&"BTreeMap"===e){if(2!==t.length)throw new Error(`BTreeMap requires 2 parameters, found ${t.length}`);return lp(this.registry,{info:Pr.BTreeMap,sub:t.map((({type:e})=>this.__internal__createSiDef(e.unwrap())))})}if(1===n.length&&"BTreeSet"===e){if(1!==t.length)throw new Error(`BTreeSet requires 1 parameter, found ${t.length}`);return lp(this.registry,{info:Pr.BTreeSet,sub:this.__internal__createSiDef(t[0].type.unwrap())})}if(["Range","RangeInclusive"].includes(e)){if(1!==t.length)throw new Error(`Range requires 1 parameter, found ${t.length}`);return lp(this.registry,{info:"Range"===e?Pr.Range:Pr.RangeInclusive,sub:this.__internal__createSiDef(t[0].type.unwrap()),type:e})}if(["WrapperKeepOpaque","WrapperOpaque"].includes(r)){if(1!==t.length)throw new Error(`WrapperOpaque requires 1 parameter, found ${t.length}`);return lp(this.registry,{info:"WrapperKeepOpaque"===r?Pr.WrapperKeepOpaque:Pr.WrapperOpaque,sub:this.__internal__createSiDef(t[0].type.unwrap()),type:r})}}return mp.some((e=>Tp(e,n)))?this.__internal__extractCompositeSet(e,t,r):this.__internal__extractFields(e,r)}__internal__extractCompositeSet(e,t,n){if(1!==t.length||1!==n.length)throw new Error("Set handling expects param/field as single entries");return lp(this.registry,{info:Pr.Set,length:this.registry.createTypeUnsafe(this.registry.createLookupType(n[0].type),[]).bitLength(),sub:this.getSiType(t[0].type.unwrap()).def.asVariant.variants.map((({index:e,name:t})=>({index:e.toNumber(),info:Pr.Plain,name:t.toString(),type:"Null"})))})}__internal__extractFields(e,t){let n=!0,r=!0;const a=t.length;for(let o=0;othis.__internal__createSiDef(e)));return lp(this.registry,{info:Pr.Tuple,lookupIndex:e,lookupName:this.__internal__names[e],sub:n})}__internal__extractVariant(e,{params:t,path:n},{variants:r}){if(n.length){const e=n[0].toString();if("Option"===e){if(1!==t.length)throw new Error(`Option requires 1 parameter, found ${t.length}`);return lp(this.registry,{info:Pr.Option,sub:this.__internal__createSiDef(t[0].type.unwrap())})}if("Result"===e){if(2!==t.length)throw new Error(`Result requires 2 parameters, found ${t.length}`);return lp(this.registry,{info:Pr.Result,sub:t.map((({type:e},t)=>(0,_.Z)({name:["Ok","Error"][t]},this.__internal__createSiDef(e.unwrap()))))})}}return 0===r.length?{info:Pr.Null,type:"Null"}:this.__internal__extractVariantEnum(e,r)}__internal__extractVariantEnum(e,t){const n=[];return t.slice().sort(((e,t)=>e.index.cmp(t.index))).forEach((({fields:e,index:t,name:r})=>{const a=t.toNumber();for(;n.length!==a;)n.push({index:n.length,info:Pr.Null,name:`__Unused${n.length}`,type:"Null"});n.push((0,_.Z)(this.__internal__extractFields(-1,e),{index:a,name:r.toString()}))})),lp(this.registry,{info:Pr.Enum,lookupIndex:e,lookupName:this.__internal__names[e],sub:n})}}const Op=new Uint8Array(2),Np=(0,ht.k)("registry");function Ep(e,t){return parseInt(e,10)-parseInt(t,10)}function Cp(e){return e.toString()}function Ap(e,t){const n=t.length,r=new Array(n);for(let a=0;ae.toNumber()))}return[12]}get chainIsEthereum(){return this.__internal__chainProperties?.isEthereum.isTrue||!1}get chainSS58(){return this.__internal__chainProperties?.ss58Format.isSome?this.__internal__chainProperties.ss58Format.unwrap().toNumber():void 0}get chainTokens(){if(this.__internal__chainProperties?.tokenSymbol.isSome){const e=this.__internal__chainProperties.tokenSymbol.unwrap();if(e.length)return e.map(Cp)}return[Yn.getDefaults().unit]}get firstCallIndex(){return this.__internal__firstCallIndex||Op}isLookupType(e){return/Lookup\d+$/.test(e)}createLookupType(e){return`Lookup${"number"==typeof e?e:e.toNumber()}`}get knownTypes(){return this.__internal__knownTypes}get lookup(){return da(this.__internal__lookup,"PortableRegistry has not been set on this registry")}get metadata(){return da(this.__internal__metadata,"Metadata has not been set on this registry")}get unknownTypes(){return[...this.__internal__unknownTypes.keys()]}get signedExtensions(){return this.__internal__signedExtensions}clearCache(){this.__internal__classes=new Map}createClass(e){return na(this,e)}createClassUnsafe(e){return na(this,e)}createType(e,...t){return sa(this,e,t)}createTypeUnsafe(e,t,n){return sa(this,e,t,n)}findMetaCall(e){const[t,n]=[e[0],e[1]];return da(this.__internal__metadataCalls[`${t}`]&&this.__internal__metadataCalls[`${t}`][`${n}`],(()=>`findMetaCall: Unable to find Call with index [${t}, ${n}]/[${e.toString()}]`))}findMetaError(e){const[t,n]=(0,gt.U)(e)?[e[0],e[1]]:[e.index.toNumber(),(0,gt.U)(e.error)?e.error[0]:e.error.toNumber()];return da(this.__internal__metadataErrors[`${t}`]&&this.__internal__metadataErrors[`${t}`][`${n}`],(()=>`findMetaError: Unable to find Error with index [${t}, ${n}]/[${e.toString()}]`))}findMetaEvent(e){const[t,n]=[e[0],e[1]];return da(this.__internal__metadataEvents[`${t}`]&&this.__internal__metadataEvents[`${t}`][`${n}`],(()=>`findMetaEvent: Unable to find Event with index [${t}, ${n}]/[${e.toString()}]`))}get(e,t,n){return this.getUnsafe(e,t,n)}getUnsafe(e,t,n){let r=this.__internal__classes.get(e)||this.__internal__knownDefaults[e];if(!r){const a=this.__internal__definitions.get(e);let i;a?i=na(this,a):n?i=function(e,t){try{const n=ea[t.info](e,t);if(!n)throw new Error("No class created");return!n.__fallbackType&&t.fallbackType&&(n.__fallbackType=t.fallbackType),n}catch(n){throw new Error(`Unable to construct class from ${(0,Qe.P)(t)}: ${n.message}`)}}(this,n):t&&(Np.warn(`Unable to resolve type ${e}, it will fail on construction`),this.__internal__unknownTypes.set(e,!0),i=pt.with(e)),i&&(r=class extends i{},this.__internal__classes.set(e,r),n&&(0,Zt.h)(n.lookupIndex)&&this.__internal__classes.set(this.createLookupType(n.lookupIndex),r))}return r}getChainProperties(){return this.__internal__chainProperties}getClassName(e){const t=[];for(const[n,r]of this.__internal__knownDefaultsEntries)e===r&&t.push(n);for(const[n,r]of this.__internal__classes.entries())e===r&&t.push(n);return t.length?t.sort().reverse()[0]:void 0}getDefinition(e){return this.__internal__definitions.get(e)}getModuleInstances(e,t){return this.__internal__knownTypes?.typesBundle?.spec?.[e.toString()]?.instances?.[t]||this.__internal__moduleMap[t]}getOrThrow(e){const t=this.get(e);if(!t)throw new Error(`type ${e} not found`);return t}getOrUnknown(e){return this.get(e,!0)}getSignedExtensionExtra(){return ji(this.__internal__signedExtensions,"payload",this.__internal__userExtensions)}getSignedExtensionTypes(){return ji(this.__internal__signedExtensions,"extrinsic",this.__internal__userExtensions)}hasClass(e){return this.__internal__classes.has(e)||!!this.__internal__knownDefaults[e]}hasDef(e){return this.__internal__definitions.has(e)}hasType(e){return!this.__internal__unknownTypes.get(e)&&(this.hasClass(e)||this.hasDef(e))}hash(e){return this.createType("CodecHash",this.__internal__hasher(e))}register(e,t){if((0,Je.m)(e))this.__internal__classes.set(e.name,e);else if((0,I.H)(e)){if(!(0,Je.m)(t))throw new Error(`Expected class definition passed to '${e}' registration`);if(e===t.toString())throw new Error(`Unable to register circular ${e} === ${e}`);this.__internal__classes.set(e,t)}else this.__internal__registerObject(e)}__internal__registerObject=e=>{const t=Object.entries(e);for(let n=0,r=t.length;n{this.setLookup(e);let t=null;if(this.hasType("SpWeightsWeightV2Weight")){const e=this.createType("SpWeightsWeightV2Weight");t=e.refTime&&e.proofSize?"SpWeightsWeightV2Weight":"WeightV1"}else(0,Sn.H)(this.createType("Weight"))||(t="WeightV1");t&&this.register({Weight:t})};setMetadata(e,t,n,r){this.__internal__metadata=e.asLatest,this.__internal__metadataVersion=e.version,this.__internal__firstCallIndex=null,this.__internal__registerLookup(this.__internal__metadata.lookup),function(e,{lookup:t,pallets:n},r,a,i){const s=n.filter(uf);Hp(a),Hp(i);for(let o=0,c=s.length;o=12?c.toNumber():o,l=Qt(d),f=n.unwrap();oa(a,u,(()=>sf(t,f,Rp,(n=>lf(e,t,n,l,u)))));const{path:p}=e.lookup.getSiType(f.type),h=p.findIndex((e=>e.eq("pallet")));if(-1!==h){const e=Qt(p.slice(0,h).map(((e,t)=>0===t?e.replace(/^(frame|pallet)_/,""):e)).join(" "));i[e]?i[e].push(l):i[e]=[l]}}}(this,this.__internal__metadata,this.__internal__metadataVersion,this.__internal__metadataCalls,this.__internal__moduleMap),function(e,{lookup:t,pallets:n},r,a){Hp(a);for(let i=0,s=n.length;i=12?s.toNumber():i,(()=>sf(t,e.unwrap(),Rp,(({docs:e,fields:r,index:a,name:i})=>({args:Ap(t,r),docs:e.map(Cp),fields:r,index:a.toNumber(),method:i.toString(),name:i.toString(),section:n})))))}}}(0,this.__internal__metadata,this.__internal__metadataVersion,this.__internal__metadataErrors),function(e,{lookup:t,pallets:n},r,a){const i=n.filter(bf);Hp(a);for(let s=0,o=i.length;s=12?o.toNumber():s,(()=>sf(t,n.unwrap(),Rp,(n=>{const r=e.createType("EventMetadataLatest",(0,_.Z)({},n,{args:Ap(t,n.fields)}));return class extends Fi{constructor(e,t){super(e,t,r,Qt(c),n.name.toString())}}}))))}}(this,this.__internal__metadata,this.__internal__metadataVersion,this.__internal__metadataEvents);const[a]=Object.keys(this.__internal__metadataCalls).sort(Ep);if(a){const[e]=Object.keys(this.__internal__metadataCalls[a]).sort(Ep);e&&(this.__internal__firstCallIndex=new Uint8Array([parseInt(a,10),parseInt(e,10)]))}this.setSignedExtensions(t||(this.__internal__metadata.extrinsic.version.gt(vt)?this.__internal__metadata.extrinsic.signedExtensions.map((({identifier:e})=>e.toString())):qi),n,r),this.setChainProperties(function(e,t){const n=e.getChainProperties(),r=yf(e,t.asLatest,t.version),a=r.system&&(r.system.sS58Prefix||r.system.ss58Prefix);if(!a)return n;const{isEthereum:i,tokenDecimals:s,tokenSymbol:o}=n||{};return e.createTypeUnsafe("ChainProperties",[{isEthereum:i,ss58Format:a,tokenDecimals:s,tokenSymbol:o}])}(this,e))}setSignedExtensions(e=qi,t,n){if(this.__internal__signedExtensions=e,this.__internal__userExtensions=t,!n){const e=function(e,t={}){const n=[...Object.keys(Di),...Object.keys(t)];return e.filter((e=>!n.includes(e)))}(this.__internal__signedExtensions,this.__internal__userExtensions);e.length&&Np.warn(`Unknown signed extensions ${e.join(", ")} found, treating them as no-effect`)}}}const Lp={},Up={AnchorData:{anchoredBlock:"u64",docRoot:"H256",id:"H256"},DispatchErrorModule:"DispatchErrorModuleU8",PreCommitData:{expirationBlock:"u64",identity:"H256",signingRoot:"H256"},Fee:{key:"Hash",price:"Balance"},MultiAccountData:{deposit:"Balance",depositor:"AccountId",signatories:"Vec",threshold:"u16"},ChainId:"u8",DepositNonce:"u64",ResourceId:"[u8; 32]","chainbridge::ChainId":"u8",RegistryId:"H160",TokenId:"U256",AssetId:{registryId:"RegistryId",tokenId:"TokenId"},AssetInfo:{metadata:"Bytes"},MintInfo:{anchorId:"Hash",proofs:"Vec",staticHashes:"[Hash; 3]"},Proof:{leafHash:"H256",sortedHashes:"H256"},ProofMint:{hashes:"Vec",property:"Bytes",salt:"[u8; 32]",value:"Bytes"},RegistryInfo:{fields:"Vec",ownerCanBurn:"bool"},ProxyType:{_enum:["Any","NonTransfer","Governance","Staking","NonProxy"]}},zp={...Up,AccountInfo:"AccountInfoWithRefCount",Address:"LookupSource",LookupSource:"IndicesLookupSource",Multiplier:"Fixed64",RefCount:"RefCountTo259"},Dp={CompactAssignments:"CompactAssignmentsWith24",DispatchErrorModule:"DispatchErrorModuleU8",RawSolution:"RawSolutionWith24",Keys:"SessionKeys6",ProxyType:{_enum:["Any","NonTransfer","Governance","Staking","IdentityJudgement","CancelProxy","Auction"]},Weight:"WeightV1"},qp={AccountInfo:"AccountInfoWithRefCount",Address:"LookupSource",CompactAssignments:"CompactAssignmentsWith16",DispatchErrorModule:"DispatchErrorModuleU8",RawSolution:"RawSolutionWith16",Keys:"SessionKeys5",LookupSource:"IndicesLookupSource",ValidatorPrefs:"ValidatorPrefsWithCommission"},jp={AccountInfo:"AccountInfoWithRefCount",Address:"AccountId",CompactAssignments:"CompactAssignmentsWith16",DispatchErrorModule:"DispatchErrorModuleU8",RawSolution:"RawSolutionWith16",Keys:"SessionKeys5",LookupSource:"AccountId",ValidatorPrefs:"ValidatorPrefsWithCommission"},Fp={CompactAssignments:"CompactAssignmentsWith16",DispatchErrorModule:"DispatchErrorModuleU8",RawSolution:"RawSolutionWith16",Keys:"SessionKeys6",ProxyType:{_enum:{Any:0,NonTransfer:1,Governance:2,Staking:3,UnusedSudoBalances:4,IdentityJudgement:5,CancelProxy:6,Auction:7}},Weight:"WeightV1"},Xp={AccountInfo:"AccountInfoWithRefCount",Address:"AccountId",DispatchErrorModule:"DispatchErrorModuleU8",Keys:"SessionKeys5",LookupSource:"AccountId",ValidatorPrefs:"ValidatorPrefsWithCommission"},Wp={DispatchErrorModule:"DispatchErrorModuleU8",FullIdentification:"()",Keys:"SessionKeys7B",Weight:"WeightV1"},Zp={DispatchErrorModule:"DispatchErrorModuleU8",TAssetBalance:"u128",ProxyType:{_enum:["Any","NonTransfer","CancelProxy","Assets","AssetOwner","AssetManager","Staking"]},Weight:"WeightV1"},Gp={DispatchErrorModule:"DispatchErrorModuleU8",TAssetBalance:"u128",ProxyType:{_enum:["Any","NonTransfer","CancelProxy","Assets","AssetOwner","AssetManager","Staking"]},Weight:"WeightV1"},Kp={CompactAssignments:"CompactAssignmentsWith16",DispatchErrorModule:"DispatchErrorModuleU8",RawSolution:"RawSolutionWith16",Keys:"SessionKeys6",ProxyType:{_enum:["Any","NonTransfer","Staking","SudoBalances","IdentityJudgement","CancelProxy"]},Weight:"WeightV1"},Yp={AccountInfo:"AccountInfoWithRefCount",Address:"AccountId",CompactAssignments:"CompactAssignmentsWith16",DispatchErrorModule:"DispatchErrorModuleU8",LookupSource:"AccountId",Keys:"SessionKeys5",RawSolution:"RawSolutionWith16",ValidatorPrefs:"ValidatorPrefsWithCommission"},Jp={DispatchErrorModule:"DispatchErrorModuleU8",TAssetBalance:"u128",ProxyType:{_enum:["Any","NonTransfer","CancelProxy","Assets","AssetOwner","AssetManager","Staking"]},Weight:"WeightV1"},Qp={"centrifuge-chain":[{minmax:[240,243],types:{...zp,ProxyType:{_enum:["Any","NonTransfer","Governance","Staking","Vesting"]}}},{minmax:[244,999],types:{...zp}},{minmax:[1e3,void 0],types:{...Up}}],kusama:[{minmax:[1019,1031],types:{...qp,BalanceLock:"BalanceLockTo212",CompactAssignments:"CompactAssignmentsTo257",DispatchError:"DispatchErrorTo198",DispatchInfo:"DispatchInfoTo244",Heartbeat:"HeartbeatTo244",IdentityInfo:"IdentityInfoTo198",Keys:"SessionKeys5",Multiplier:"Fixed64",OpenTip:"OpenTipTo225",RefCount:"RefCountTo259",ReferendumInfo:"ReferendumInfoTo239",Scheduled:"ScheduledTo254",SlashingSpans:"SlashingSpansTo204",StakingLedger:"StakingLedgerTo223",Votes:"VotesTo230",Weight:"u32"}},{minmax:[1032,1042],types:{...qp,BalanceLock:"BalanceLockTo212",CompactAssignments:"CompactAssignmentsTo257",DispatchInfo:"DispatchInfoTo244",Heartbeat:"HeartbeatTo244",Keys:"SessionKeys5",Multiplier:"Fixed64",OpenTip:"OpenTipTo225",RefCount:"RefCountTo259",ReferendumInfo:"ReferendumInfoTo239",Scheduled:"ScheduledTo254",SlashingSpans:"SlashingSpansTo204",StakingLedger:"StakingLedgerTo223",Votes:"VotesTo230",Weight:"u32"}},{minmax:[1043,1045],types:{...qp,BalanceLock:"BalanceLockTo212",CompactAssignments:"CompactAssignmentsTo257",DispatchInfo:"DispatchInfoTo244",Heartbeat:"HeartbeatTo244",Keys:"SessionKeys5",Multiplier:"Fixed64",OpenTip:"OpenTipTo225",RefCount:"RefCountTo259",ReferendumInfo:"ReferendumInfoTo239",Scheduled:"ScheduledTo254",StakingLedger:"StakingLedgerTo223",Votes:"VotesTo230",Weight:"u32"}},{minmax:[1046,1049],types:{...Dp,...jp,CompactAssignments:"CompactAssignmentsTo257",DispatchInfo:"DispatchInfoTo244",Heartbeat:"HeartbeatTo244",Multiplier:"Fixed64",OpenTip:"OpenTipTo225",RefCount:"RefCountTo259",ReferendumInfo:"ReferendumInfoTo239",Scheduled:"ScheduledTo254",StakingLedger:"StakingLedgerTo223",Weight:"u32"}},{minmax:[1050,1054],types:{...Dp,...jp,CompactAssignments:"CompactAssignmentsTo257",DispatchInfo:"DispatchInfoTo244",Heartbeat:"HeartbeatTo244",Multiplier:"Fixed64",OpenTip:"OpenTipTo225",RefCount:"RefCountTo259",ReferendumInfo:"ReferendumInfoTo239",Scheduled:"ScheduledTo254",StakingLedger:"StakingLedgerTo240",Weight:"u32"}},{minmax:[1055,1056],types:{...Dp,...jp,CompactAssignments:"CompactAssignmentsTo257",DispatchInfo:"DispatchInfoTo244",Heartbeat:"HeartbeatTo244",Multiplier:"Fixed64",OpenTip:"OpenTipTo225",RefCount:"RefCountTo259",Scheduled:"ScheduledTo254",StakingLedger:"StakingLedgerTo240",Weight:"u32"}},{minmax:[1057,1061],types:{...Dp,...jp,CompactAssignments:"CompactAssignmentsTo257",DispatchInfo:"DispatchInfoTo244",Heartbeat:"HeartbeatTo244",OpenTip:"OpenTipTo225",RefCount:"RefCountTo259",Scheduled:"ScheduledTo254"}},{minmax:[1062,2012],types:{...Dp,...jp,CompactAssignments:"CompactAssignmentsTo257",OpenTip:"OpenTipTo225",RefCount:"RefCountTo259"}},{minmax:[2013,2022],types:{...Dp,...jp,CompactAssignments:"CompactAssignmentsTo257",RefCount:"RefCountTo259"}},{minmax:[2023,2024],types:{...Dp,...jp,RefCount:"RefCountTo259"}},{minmax:[2025,2027],types:{...Dp,...jp}},{minmax:[2028,2029],types:{...Dp,AccountInfo:"AccountInfoWithDualRefCount",CompactAssignments:"CompactAssignmentsWith16",RawSolution:"RawSolutionWith16"}},{minmax:[2030,9e3],types:{...Dp,CompactAssignments:"CompactAssignmentsWith16",RawSolution:"RawSolutionWith16"}},{minmax:[9010,9099],types:{...Dp,...Ul("V0")}},{minmax:[9100,9105],types:{...Dp,...Ul("V1")}},{minmax:[9106,void 0],types:{Weight:"WeightV1"}}],node:[{minmax:[0,void 0],types:{Weight:"WeightV2"}}],"node-template":[{minmax:[0,void 0],types:{Weight:"WeightV2"}}],polkadot:[{minmax:[0,12],types:{...Fp,...Xp,CompactAssignments:"CompactAssignmentsTo257",OpenTip:"OpenTipTo225",RefCount:"RefCountTo259"}},{minmax:[13,22],types:{...Fp,...Xp,CompactAssignments:"CompactAssignmentsTo257",RefCount:"RefCountTo259"}},{minmax:[23,24],types:{...Fp,...Xp,RefCount:"RefCountTo259"}},{minmax:[25,27],types:{...Fp,...Xp}},{minmax:[28,29],types:{...Fp,AccountInfo:"AccountInfoWithDualRefCount"}},{minmax:[30,9109],types:{...Fp}},{minmax:[9110,void 0],types:{Weight:"WeightV1"}}],rococo:[{minmax:[0,200],types:{...Wp,AccountInfo:"AccountInfoWithDualRefCount",Address:"AccountId",LookupSource:"AccountId"}},{minmax:[201,214],types:{...Wp,AccountInfo:"AccountInfoWithDualRefCount"}},{minmax:[215,228],types:{...Wp,Keys:"SessionKeys6"}},{minmax:[229,9099],types:{...Wp,...Ul("V0")}},{minmax:[9100,9105],types:{...Wp,...Ul("V1")}},{minmax:[9106,void 0],types:{Weight:"WeightV1"}}],shell:[{minmax:[0,void 0],types:{}}],statemine:[{minmax:[0,3],types:{DispatchError:"DispatchErrorPre6First",...Zp,...Ul("V0")}},{minmax:[4,5],types:{DispatchError:"DispatchErrorPre6First",...Zp,...Ul("V1")}},{minmax:[500,9999],types:{Weight:"WeightV1",TAssetConversion:"Option"}},{minmax:[1e4,void 0],types:{Weight:"WeightV1"}}],statemint:[{minmax:[0,3],types:{DispatchError:"DispatchErrorPre6First",...Gp,...Ul("V0")}},{minmax:[4,5],types:{DispatchError:"DispatchErrorPre6First",...Gp,...Ul("V1")}},{minmax:[500,1001003],types:{Weight:"WeightV1",TAssetConversion:"Option"}},{minmax:[1002e3,void 0],types:{Weight:"WeightV1"}}],westend:[{minmax:[1,2],types:{...Kp,...Yp,CompactAssignments:"CompactAssignmentsTo257",DispatchInfo:"DispatchInfoTo244",Heartbeat:"HeartbeatTo244",Multiplier:"Fixed64",OpenTip:"OpenTipTo225",RefCount:"RefCountTo259",Weight:"u32"}},{minmax:[3,22],types:{...Kp,...Yp,CompactAssignments:"CompactAssignmentsTo257",DispatchInfo:"DispatchInfoTo244",Heartbeat:"HeartbeatTo244",OpenTip:"OpenTipTo225",RefCount:"RefCountTo259"}},{minmax:[23,42],types:{...Kp,...Yp,CompactAssignments:"CompactAssignmentsTo257",DispatchInfo:"DispatchInfoTo244",Heartbeat:"HeartbeatTo244",RefCount:"RefCountTo259"}},{minmax:[43,44],types:{...Kp,...Yp,DispatchInfo:"DispatchInfoTo244",Heartbeat:"HeartbeatTo244",RefCount:"RefCountTo259"}},{minmax:[45,47],types:{...Kp,...Yp}},{minmax:[48,49],types:{...Kp,AccountInfo:"AccountInfoWithDualRefCount"}},{minmax:[50,9099],types:{...Kp,...Ul("V0")}},{minmax:[9100,9105],types:{...Kp,...Ul("V1")}},{minmax:[9106,void 0],types:{Weight:"WeightV1"}}],westmint:[{minmax:[0,3],types:{DispatchError:"DispatchErrorPre6First",...Jp,...Ul("V0")}},{minmax:[4,5],types:{DispatchError:"DispatchErrorPre6First",...Jp,...Ul("V1")}},{minmax:[500,9434],types:{Weight:"WeightV1",TAssetConversion:"Option"}},{minmax:[9435,void 0],types:{Weight:"WeightV1"}}]},$p=[[0,1020,[["0xdf6acb689907609b",2],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",4],["0xd2bc9897eed08f15",1],["0xf78b278be53f454c",1],["0xaf2c0297a23e6d3d",1],["0xed99c5acb25eedf5",2],["0xcbca25e39f142387",1],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[26669,1021,[["0xdf6acb689907609b",2],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",4],["0xd2bc9897eed08f15",1],["0xf78b278be53f454c",1],["0xaf2c0297a23e6d3d",1],["0xed99c5acb25eedf5",2],["0xcbca25e39f142387",1],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[38245,1022,[["0xdf6acb689907609b",2],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",4],["0xd2bc9897eed08f15",1],["0xf78b278be53f454c",1],["0xaf2c0297a23e6d3d",1],["0xed99c5acb25eedf5",2],["0xcbca25e39f142387",1],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[54248,1023,[["0xdf6acb689907609b",2],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",4],["0xd2bc9897eed08f15",1],["0xf78b278be53f454c",1],["0xaf2c0297a23e6d3d",1],["0xed99c5acb25eedf5",2],["0xcbca25e39f142387",1],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[59659,1024,[["0xdf6acb689907609b",2],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",4],["0xd2bc9897eed08f15",1],["0xf78b278be53f454c",1],["0xaf2c0297a23e6d3d",1],["0xed99c5acb25eedf5",2],["0xcbca25e39f142387",1],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[67651,1025,[["0xdf6acb689907609b",2],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",4],["0xd2bc9897eed08f15",1],["0xf78b278be53f454c",1],["0xaf2c0297a23e6d3d",1],["0xed99c5acb25eedf5",2],["0xcbca25e39f142387",1],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[82191,1027,[["0xdf6acb689907609b",2],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",4],["0xd2bc9897eed08f15",1],["0xf78b278be53f454c",1],["0xaf2c0297a23e6d3d",2],["0xed99c5acb25eedf5",2],["0xcbca25e39f142387",1],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[83238,1028,[["0xdf6acb689907609b",2],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",4],["0xd2bc9897eed08f15",1],["0xf78b278be53f454c",1],["0xaf2c0297a23e6d3d",2],["0xed99c5acb25eedf5",2],["0xcbca25e39f142387",1],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[101503,1029,[["0xdf6acb689907609b",2],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",4],["0xd2bc9897eed08f15",1],["0xf78b278be53f454c",1],["0xaf2c0297a23e6d3d",2],["0xed99c5acb25eedf5",2],["0xcbca25e39f142387",1],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[203466,1030,[["0xdf6acb689907609b",2],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",4],["0xd2bc9897eed08f15",1],["0xf78b278be53f454c",1],["0xaf2c0297a23e6d3d",2],["0xed99c5acb25eedf5",2],["0xcbca25e39f142387",1],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[295787,1031,[["0xdf6acb689907609b",2],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",4],["0xd2bc9897eed08f15",1],["0xf78b278be53f454c",1],["0xaf2c0297a23e6d3d",2],["0xed99c5acb25eedf5",2],["0xcbca25e39f142387",1],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[461692,1032,[["0xdf6acb689907609b",2],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",4],["0xd2bc9897eed08f15",1],["0xf78b278be53f454c",1],["0xaf2c0297a23e6d3d",2],["0xed99c5acb25eedf5",2],["0xcbca25e39f142387",1],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[504329,1033,[["0xdf6acb689907609b",2],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",4],["0xd2bc9897eed08f15",1],["0xf78b278be53f454c",1],["0xaf2c0297a23e6d3d",2],["0xed99c5acb25eedf5",2],["0xcbca25e39f142387",1],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[569327,1038,[["0xdf6acb689907609b",2],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",4],["0xd2bc9897eed08f15",1],["0xf78b278be53f454c",1],["0xaf2c0297a23e6d3d",2],["0xed99c5acb25eedf5",2],["0xcbca25e39f142387",1],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[587687,1039,[["0xdf6acb689907609b",2],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",4],["0xd2bc9897eed08f15",1],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",2],["0xed99c5acb25eedf5",2],["0xcbca25e39f142387",1],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[653183,1040,[["0xdf6acb689907609b",2],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",4],["0xd2bc9897eed08f15",1],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",2],["0xed99c5acb25eedf5",2],["0xcbca25e39f142387",1],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[693488,1042,[["0xdf6acb689907609b",2],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",4],["0xd2bc9897eed08f15",1],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",2],["0xed99c5acb25eedf5",2],["0xcbca25e39f142387",1],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[901442,1045,[["0xdf6acb689907609b",2],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",4],["0xd2bc9897eed08f15",1],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",2],["0xed99c5acb25eedf5",2],["0xcbca25e39f142387",1],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[1375086,1050,[["0xdf6acb689907609b",2],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",4],["0xd2bc9897eed08f15",1],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",2],["0xed99c5acb25eedf5",2],["0xcbca25e39f142387",1],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[1445458,1051,[["0xdf6acb689907609b",2],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",4],["0xd2bc9897eed08f15",1],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",2],["0xed99c5acb25eedf5",2],["0xcbca25e39f142387",1],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[1472960,1052,[["0xdf6acb689907609b",2],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",4],["0xd2bc9897eed08f15",1],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",2],["0xed99c5acb25eedf5",2],["0xcbca25e39f142387",1],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[1475648,1053,[["0xdf6acb689907609b",2],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",4],["0xd2bc9897eed08f15",1],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",2],["0xed99c5acb25eedf5",2],["0xcbca25e39f142387",1],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[1491596,1054,[["0xdf6acb689907609b",2],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",4],["0xd2bc9897eed08f15",1],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",2],["0xed99c5acb25eedf5",2],["0xcbca25e39f142387",1],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[1574408,1055,[["0xdf6acb689907609b",2],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",4],["0xd2bc9897eed08f15",1],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",2],["0xed99c5acb25eedf5",2],["0xcbca25e39f142387",1],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[2064961,1058,[["0xdf6acb689907609b",3],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",4],["0xd2bc9897eed08f15",2],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",3],["0xed99c5acb25eedf5",2],["0xcbca25e39f142387",1],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[2201991,1062,[["0xdf6acb689907609b",3],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",4],["0xd2bc9897eed08f15",2],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",3],["0xed99c5acb25eedf5",2],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[2671528,2005,[["0xdf6acb689907609b",3],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",4],["0xd2bc9897eed08f15",2],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",3],["0xed99c5acb25eedf5",2],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[2704202,2007,[["0xdf6acb689907609b",3],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",4],["0xd2bc9897eed08f15",2],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",3],["0xed99c5acb25eedf5",2],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[2728002,2008,[["0xdf6acb689907609b",3],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",4],["0xd2bc9897eed08f15",2],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",3],["0xed99c5acb25eedf5",2],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[2832534,2011,[["0xdf6acb689907609b",3],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",4],["0xd2bc9897eed08f15",2],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",3],["0xed99c5acb25eedf5",2],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[2962294,2012,[["0xdf6acb689907609b",3],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",4],["0xd2bc9897eed08f15",2],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",3],["0xed99c5acb25eedf5",2],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[324e4,2013,[["0xdf6acb689907609b",3],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",4],["0xd2bc9897eed08f15",2],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",3],["0xed99c5acb25eedf5",2],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[3274408,2015,[["0xdf6acb689907609b",3],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",4],["0xd2bc9897eed08f15",2],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",3],["0xed99c5acb25eedf5",2],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[3323565,2019,[["0xdf6acb689907609b",3],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",4],["0xd2bc9897eed08f15",2],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",3],["0xed99c5acb25eedf5",2],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[3534175,2022,[["0xdf6acb689907609b",3],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",4],["0xd2bc9897eed08f15",2],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",3],["0xed99c5acb25eedf5",2],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[3860281,2023,[["0xdf6acb689907609b",3],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",4],["0xd2bc9897eed08f15",2],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",3],["0xed99c5acb25eedf5",2],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[4143129,2024,[["0xdf6acb689907609b",3],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",4],["0xd2bc9897eed08f15",2],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",3],["0xed99c5acb25eedf5",2],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[4401242,2025,[["0xdf6acb689907609b",3],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",4],["0xd2bc9897eed08f15",2],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",1],["0xed99c5acb25eedf5",2],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[4841367,2026,[["0xdf6acb689907609b",3],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",4],["0xd2bc9897eed08f15",2],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",1],["0xed99c5acb25eedf5",2],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[5961600,2027,[["0xdf6acb689907609b",3],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",4],["0xd2bc9897eed08f15",2],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",1],["0xed99c5acb25eedf5",2],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[6137912,2028,[["0xdf6acb689907609b",3],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",4],["0xd2bc9897eed08f15",2],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",1],["0xed99c5acb25eedf5",2],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[6561855,2029,[["0xdf6acb689907609b",3],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",4],["0xd2bc9897eed08f15",2],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",1],["0xed99c5acb25eedf5",2],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[7100891,2030,[["0xdf6acb689907609b",3],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",4],["0xd2bc9897eed08f15",2],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",1],["0xed99c5acb25eedf5",2],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[7468792,9010,[["0xdf6acb689907609b",3],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",5],["0xd2bc9897eed08f15",2],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",1],["0x49eaaf1b548a0cb0",1],["0x91d5df18b0d2cf58",1],["0xed99c5acb25eedf5",2],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[7668600,9030,[["0xdf6acb689907609b",3],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",5],["0xd2bc9897eed08f15",2],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",1],["0x49eaaf1b548a0cb0",1],["0x91d5df18b0d2cf58",1],["0xed99c5acb25eedf5",2],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[7812476,9040,[["0xdf6acb689907609b",3],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",5],["0xd2bc9897eed08f15",2],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",1],["0x49eaaf1b548a0cb0",1],["0x91d5df18b0d2cf58",1],["0xed99c5acb25eedf5",2],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[8010981,9050,[["0xdf6acb689907609b",3],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",5],["0xd2bc9897eed08f15",2],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",1],["0x49eaaf1b548a0cb0",1],["0x91d5df18b0d2cf58",1],["0xed99c5acb25eedf5",2],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[8073833,9070,[["0xdf6acb689907609b",3],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",5],["0xd2bc9897eed08f15",2],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",1],["0x49eaaf1b548a0cb0",1],["0x91d5df18b0d2cf58",1],["0xed99c5acb25eedf5",2],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[8555825,9080,[["0xdf6acb689907609b",3],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",5],["0xd2bc9897eed08f15",3],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",1],["0x49eaaf1b548a0cb0",1],["0x91d5df18b0d2cf58",1],["0xed99c5acb25eedf5",2],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[8945245,9090,[["0xdf6acb689907609b",3],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",5],["0xd2bc9897eed08f15",3],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",1],["0x49eaaf1b548a0cb0",1],["0x91d5df18b0d2cf58",1],["0xed99c5acb25eedf5",3],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[9611377,9100,[["0xdf6acb689907609b",3],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",5],["0xd2bc9897eed08f15",3],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",1],["0x49eaaf1b548a0cb0",1],["0x91d5df18b0d2cf58",1],["0xed99c5acb25eedf5",3],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[9625129,9111,[["0xdf6acb689907609b",3],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",5],["0xd2bc9897eed08f15",3],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",1],["0x49eaaf1b548a0cb0",1],["0x91d5df18b0d2cf58",1],["0xed99c5acb25eedf5",3],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[9866422,9122,[["0xdf6acb689907609b",3],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",5],["0xd2bc9897eed08f15",3],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",1],["0x49eaaf1b548a0cb0",1],["0x91d5df18b0d2cf58",1],["0xed99c5acb25eedf5",3],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[10403784,9130,[["0xdf6acb689907609b",3],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",5],["0xd2bc9897eed08f15",3],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",1],["0x49eaaf1b548a0cb0",1],["0x91d5df18b0d2cf58",1],["0xed99c5acb25eedf5",3],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[10960765,9150,[["0xdf6acb689907609b",3],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",5],["0xd2bc9897eed08f15",3],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",1],["0x49eaaf1b548a0cb0",1],["0x91d5df18b0d2cf58",1],["0xed99c5acb25eedf5",3],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[11006614,9151,[["0xdf6acb689907609b",3],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",5],["0xd2bc9897eed08f15",3],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",1],["0x49eaaf1b548a0cb0",1],["0x91d5df18b0d2cf58",1],["0xed99c5acb25eedf5",3],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[11404482,9160,[["0xdf6acb689907609b",4],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",5],["0xd2bc9897eed08f15",3],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",2],["0x49eaaf1b548a0cb0",1],["0x91d5df18b0d2cf58",1],["0xed99c5acb25eedf5",3],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[11601803,9170,[["0xdf6acb689907609b",4],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",5],["0xd2bc9897eed08f15",3],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",2],["0x49eaaf1b548a0cb0",1],["0x91d5df18b0d2cf58",1],["0xed99c5acb25eedf5",3],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[12008022,9180,[["0xdf6acb689907609b",4],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",5],["0xd2bc9897eed08f15",3],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",2],["0x49eaaf1b548a0cb0",1],["0x91d5df18b0d2cf58",1],["0xed99c5acb25eedf5",3],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[12405451,9190,[["0xdf6acb689907609b",4],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",6],["0xd2bc9897eed08f15",3],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",2],["0x49eaaf1b548a0cb0",1],["0x91d5df18b0d2cf58",1],["0xed99c5acb25eedf5",3],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[12665416,9200,[["0xdf6acb689907609b",4],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",6],["0xd2bc9897eed08f15",3],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",2],["0x49eaaf1b548a0cb0",1],["0x91d5df18b0d2cf58",1],["0xed99c5acb25eedf5",3],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[12909508,9220,[["0xdf6acb689907609b",4],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",6],["0xd2bc9897eed08f15",3],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",2],["0x49eaaf1b548a0cb0",1],["0x91d5df18b0d2cf58",1],["0xed99c5acb25eedf5",3],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[13109752,9230,[["0xdf6acb689907609b",4],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",6],["0xd2bc9897eed08f15",3],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",2],["0x49eaaf1b548a0cb0",1],["0x91d5df18b0d2cf58",1],["0xed99c5acb25eedf5",3],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[13555777,9250,[["0xdf6acb689907609b",4],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",6],["0xd2bc9897eed08f15",3],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",2],["0x49eaaf1b548a0cb0",1],["0x91d5df18b0d2cf58",1],["0xed99c5acb25eedf5",3],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[13727747,9260,[["0xdf6acb689907609b",4],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",6],["0xd2bc9897eed08f15",3],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",2],["0x49eaaf1b548a0cb0",1],["0x91d5df18b0d2cf58",1],["0xed99c5acb25eedf5",3],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[14248044,9271,[["0xdf6acb689907609b",4],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",6],["0xd2bc9897eed08f15",3],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",2],["0x49eaaf1b548a0cb0",1],["0x91d5df18b0d2cf58",1],["0xed99c5acb25eedf5",3],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1],["0x17a6bc0d0062aeb3",1]]],[14433840,9280,[["0xdf6acb689907609b",4],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",6],["0xd2bc9897eed08f15",3],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",2],["0x49eaaf1b548a0cb0",1],["0x91d5df18b0d2cf58",1],["0xed99c5acb25eedf5",3],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1],["0xf3ff14d5ab527059",1],["0x17a6bc0d0062aeb3",1]]],[14645900,9291,[["0xdf6acb689907609b",4],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",6],["0xd2bc9897eed08f15",3],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",2],["0x49eaaf1b548a0cb0",1],["0x91d5df18b0d2cf58",1],["0xed99c5acb25eedf5",3],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1],["0xf3ff14d5ab527059",1],["0x17a6bc0d0062aeb3",1]]],[15048375,9300,[["0xdf6acb689907609b",4],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",6],["0xd2bc9897eed08f15",3],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",2],["0x49eaaf1b548a0cb0",1],["0x91d5df18b0d2cf58",1],["0xed99c5acb25eedf5",3],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1],["0xf3ff14d5ab527059",1],["0x17a6bc0d0062aeb3",1]]],[15426015,9320,[["0xdf6acb689907609b",4],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",6],["0xd2bc9897eed08f15",3],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",2],["0x49eaaf1b548a0cb0",1],["0x91d5df18b0d2cf58",1],["0xed99c5acb25eedf5",3],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",2],["0xf3ff14d5ab527059",2],["0x17a6bc0d0062aeb3",1]]],[15680713,9340,[["0xdf6acb689907609b",4],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",6],["0xd2bc9897eed08f15",3],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",2],["0x49eaaf1b548a0cb0",1],["0x91d5df18b0d2cf58",1],["0xed99c5acb25eedf5",3],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",2],["0xf3ff14d5ab527059",2],["0x17a6bc0d0062aeb3",1]]],[15756296,9350,[["0xdf6acb689907609b",4],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",6],["0xd2bc9897eed08f15",3],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",2],["0x49eaaf1b548a0cb0",1],["0x91d5df18b0d2cf58",1],["0xed99c5acb25eedf5",3],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",2],["0xf3ff14d5ab527059",2],["0x17a6bc0d0062aeb3",1]]],[15912007,9360,[["0xdf6acb689907609b",4],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",6],["0xd2bc9897eed08f15",3],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",2],["0x49eaaf1b548a0cb0",1],["0x91d5df18b0d2cf58",1],["0xed99c5acb25eedf5",3],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",2],["0xf3ff14d5ab527059",2],["0x17a6bc0d0062aeb3",1]]],[16356547,9370,[["0xdf6acb689907609b",4],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",6],["0xd2bc9897eed08f15",3],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",2],["0x49eaaf1b548a0cb0",1],["0x91d5df18b0d2cf58",1],["0xed99c5acb25eedf5",3],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",2],["0xf3ff14d5ab527059",2],["0x17a6bc0d0062aeb3",1]]],[17335450,9381,[["0xdf6acb689907609b",4],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",6],["0xd2bc9897eed08f15",3],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",2],["0x49eaaf1b548a0cb0",1],["0x91d5df18b0d2cf58",1],["0xed99c5acb25eedf5",3],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",3],["0xf3ff14d5ab527059",3],["0x17a6bc0d0062aeb3",1]]],[18062739,9420,[["0xdf6acb689907609b",4],["0x37e397fc7c91f5e4",2],["0x40fe3ad401f8959a",6],["0xd2bc9897eed08f15",3],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",4],["0x49eaaf1b548a0cb0",2],["0x91d5df18b0d2cf58",2],["0xed99c5acb25eedf5",3],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",4],["0xf3ff14d5ab527059",3],["0x17a6bc0d0062aeb3",1],["0x18ef58a3b67ba770",1]]],[18625e3,9430,[["0xdf6acb689907609b",4],["0x37e397fc7c91f5e4",2],["0x40fe3ad401f8959a",6],["0xd2bc9897eed08f15",3],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",4],["0x49eaaf1b548a0cb0",2],["0x91d5df18b0d2cf58",2],["0xed99c5acb25eedf5",3],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",4],["0xf3ff14d5ab527059",3],["0x17a6bc0d0062aeb3",1],["0x18ef58a3b67ba770",1]]],[20465806,1e6,[["0xdf6acb689907609b",4],["0x37e397fc7c91f5e4",2],["0x40fe3ad401f8959a",6],["0xd2bc9897eed08f15",3],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",5],["0x49eaaf1b548a0cb0",3],["0x91d5df18b0d2cf58",2],["0x2a5e924655399e60",1],["0xed99c5acb25eedf5",3],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",4],["0xf3ff14d5ab527059",3],["0x17a6bc0d0062aeb3",1],["0x18ef58a3b67ba770",1]]],[2157e4,1001e3,[["0xdf6acb689907609b",4],["0x37e397fc7c91f5e4",2],["0x40fe3ad401f8959a",6],["0xd2bc9897eed08f15",3],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",7],["0x49eaaf1b548a0cb0",3],["0x91d5df18b0d2cf58",2],["0x2a5e924655399e60",1],["0xed99c5acb25eedf5",3],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",4],["0xf3ff14d5ab527059",3],["0x17a6bc0d0062aeb3",1],["0x18ef58a3b67ba770",1],["0xfbc577b9d747efd6",1]]],[21786291,1001002,[["0xdf6acb689907609b",4],["0x37e397fc7c91f5e4",2],["0x40fe3ad401f8959a",6],["0xd2bc9897eed08f15",3],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",7],["0x49eaaf1b548a0cb0",3],["0x91d5df18b0d2cf58",2],["0x2a5e924655399e60",1],["0xed99c5acb25eedf5",3],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",4],["0xf3ff14d5ab527059",3],["0x17a6bc0d0062aeb3",1],["0x18ef58a3b67ba770",1],["0xfbc577b9d747efd6",1]]],[22515962,1001003,[["0xdf6acb689907609b",4],["0x37e397fc7c91f5e4",2],["0x40fe3ad401f8959a",6],["0xd2bc9897eed08f15",3],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",7],["0x49eaaf1b548a0cb0",3],["0x91d5df18b0d2cf58",2],["0x2a5e924655399e60",1],["0xed99c5acb25eedf5",3],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",4],["0xf3ff14d5ab527059",3],["0x17a6bc0d0062aeb3",1],["0x18ef58a3b67ba770",1],["0xfbc577b9d747efd6",1]]]],eh=[[0,0,[["0xdf6acb689907609b",3],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",4],["0xd2bc9897eed08f15",2],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",3],["0xed99c5acb25eedf5",2],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[29231,1,[["0xdf6acb689907609b",3],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",4],["0xd2bc9897eed08f15",2],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",3],["0xed99c5acb25eedf5",2],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[188836,5,[["0xdf6acb689907609b",3],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",4],["0xd2bc9897eed08f15",2],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",3],["0xed99c5acb25eedf5",2],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[199405,6,[["0xdf6acb689907609b",3],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",4],["0xd2bc9897eed08f15",2],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",3],["0xed99c5acb25eedf5",2],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[214264,7,[["0xdf6acb689907609b",3],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",4],["0xd2bc9897eed08f15",2],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",3],["0xed99c5acb25eedf5",2],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[244358,8,[["0xdf6acb689907609b",3],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",4],["0xd2bc9897eed08f15",2],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",3],["0xed99c5acb25eedf5",2],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[303079,9,[["0xdf6acb689907609b",3],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",4],["0xd2bc9897eed08f15",2],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",3],["0xed99c5acb25eedf5",2],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[314201,10,[["0xdf6acb689907609b",3],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",4],["0xd2bc9897eed08f15",2],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",3],["0xed99c5acb25eedf5",2],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[342400,11,[["0xdf6acb689907609b",3],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",4],["0xd2bc9897eed08f15",2],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",3],["0xed99c5acb25eedf5",2],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[443963,12,[["0xdf6acb689907609b",3],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",4],["0xd2bc9897eed08f15",2],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",3],["0xed99c5acb25eedf5",2],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[528470,13,[["0xdf6acb689907609b",3],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",4],["0xd2bc9897eed08f15",2],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",3],["0xed99c5acb25eedf5",2],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[687751,14,[["0xdf6acb689907609b",3],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",4],["0xd2bc9897eed08f15",2],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",3],["0xed99c5acb25eedf5",2],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[746085,15,[["0xdf6acb689907609b",3],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",4],["0xd2bc9897eed08f15",2],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",3],["0xed99c5acb25eedf5",2],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[787923,16,[["0xdf6acb689907609b",3],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",4],["0xd2bc9897eed08f15",2],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",3],["0xed99c5acb25eedf5",2],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[799302,17,[["0xdf6acb689907609b",3],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",4],["0xd2bc9897eed08f15",2],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",3],["0xed99c5acb25eedf5",2],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[1205128,18,[["0xdf6acb689907609b",3],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",4],["0xd2bc9897eed08f15",2],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",3],["0xed99c5acb25eedf5",2],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[1603423,23,[["0xdf6acb689907609b",3],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",4],["0xd2bc9897eed08f15",2],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",3],["0xed99c5acb25eedf5",2],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[1733218,24,[["0xdf6acb689907609b",3],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",4],["0xd2bc9897eed08f15",2],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",3],["0xed99c5acb25eedf5",2],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[2005673,25,[["0xdf6acb689907609b",3],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",4],["0xd2bc9897eed08f15",2],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",1],["0xed99c5acb25eedf5",2],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[2436698,26,[["0xdf6acb689907609b",3],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",4],["0xd2bc9897eed08f15",2],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",1],["0xed99c5acb25eedf5",2],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[3613564,27,[["0xdf6acb689907609b",3],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",4],["0xd2bc9897eed08f15",2],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",1],["0xed99c5acb25eedf5",2],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[3899547,28,[["0xdf6acb689907609b",3],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",4],["0xd2bc9897eed08f15",2],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",1],["0xed99c5acb25eedf5",2],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[4345767,29,[["0xdf6acb689907609b",3],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",4],["0xd2bc9897eed08f15",2],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",1],["0xed99c5acb25eedf5",2],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[4876134,30,[["0xdf6acb689907609b",3],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",4],["0xd2bc9897eed08f15",2],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",1],["0xed99c5acb25eedf5",2],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[5661442,9050,[["0xdf6acb689907609b",3],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",5],["0xd2bc9897eed08f15",2],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",1],["0x49eaaf1b548a0cb0",1],["0x91d5df18b0d2cf58",1],["0xed99c5acb25eedf5",2],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[6321619,9080,[["0xdf6acb689907609b",3],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",5],["0xd2bc9897eed08f15",3],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",1],["0x49eaaf1b548a0cb0",1],["0x91d5df18b0d2cf58",1],["0xed99c5acb25eedf5",2],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[6713249,9090,[["0xdf6acb689907609b",3],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",5],["0xd2bc9897eed08f15",3],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",1],["0x49eaaf1b548a0cb0",1],["0x91d5df18b0d2cf58",1],["0xed99c5acb25eedf5",3],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[7217907,9100,[["0xdf6acb689907609b",3],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",5],["0xd2bc9897eed08f15",3],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",1],["0x49eaaf1b548a0cb0",1],["0x91d5df18b0d2cf58",1],["0xed99c5acb25eedf5",3],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[7229126,9110,[["0xdf6acb689907609b",3],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",5],["0xd2bc9897eed08f15",3],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",1],["0x49eaaf1b548a0cb0",1],["0x91d5df18b0d2cf58",1],["0xed99c5acb25eedf5",3],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[7560558,9122,[["0xdf6acb689907609b",3],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",5],["0xd2bc9897eed08f15",3],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",1],["0x49eaaf1b548a0cb0",1],["0x91d5df18b0d2cf58",1],["0xed99c5acb25eedf5",3],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[8115869,9140,[["0xdf6acb689907609b",3],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",5],["0xd2bc9897eed08f15",3],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",1],["0x49eaaf1b548a0cb0",1],["0x91d5df18b0d2cf58",1],["0xed99c5acb25eedf5",3],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[8638103,9151,[["0xdf6acb689907609b",3],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",5],["0xd2bc9897eed08f15",3],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",1],["0x49eaaf1b548a0cb0",1],["0x91d5df18b0d2cf58",1],["0xed99c5acb25eedf5",3],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[9280179,9170,[["0xdf6acb689907609b",4],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",5],["0xd2bc9897eed08f15",3],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",2],["0x49eaaf1b548a0cb0",1],["0x91d5df18b0d2cf58",1],["0xed99c5acb25eedf5",3],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[9738717,9180,[["0xdf6acb689907609b",4],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",5],["0xd2bc9897eed08f15",3],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",2],["0x49eaaf1b548a0cb0",1],["0x91d5df18b0d2cf58",1],["0xed99c5acb25eedf5",3],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[10156856,9190,[["0xdf6acb689907609b",4],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",6],["0xd2bc9897eed08f15",3],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",2],["0x49eaaf1b548a0cb0",1],["0x91d5df18b0d2cf58",1],["0xed99c5acb25eedf5",3],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[10458576,9200,[["0xdf6acb689907609b",4],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",6],["0xd2bc9897eed08f15",3],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",2],["0x49eaaf1b548a0cb0",1],["0x91d5df18b0d2cf58",1],["0xed99c5acb25eedf5",3],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[10655116,9220,[["0xdf6acb689907609b",4],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",6],["0xd2bc9897eed08f15",3],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",2],["0x49eaaf1b548a0cb0",1],["0x91d5df18b0d2cf58",1],["0xed99c5acb25eedf5",3],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[10879371,9230,[["0xdf6acb689907609b",4],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",6],["0xd2bc9897eed08f15",3],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",2],["0x49eaaf1b548a0cb0",1],["0x91d5df18b0d2cf58",1],["0xed99c5acb25eedf5",3],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[11328884,9250,[["0xdf6acb689907609b",4],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",6],["0xd2bc9897eed08f15",3],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",2],["0x49eaaf1b548a0cb0",1],["0x91d5df18b0d2cf58",1],["0xed99c5acb25eedf5",3],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[11532856,9260,[["0xdf6acb689907609b",4],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",6],["0xd2bc9897eed08f15",3],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",2],["0x49eaaf1b548a0cb0",1],["0x91d5df18b0d2cf58",1],["0xed99c5acb25eedf5",3],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[11933818,9270,[["0xdf6acb689907609b",4],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",6],["0xd2bc9897eed08f15",3],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",2],["0x49eaaf1b548a0cb0",1],["0x91d5df18b0d2cf58",1],["0xed99c5acb25eedf5",3],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[12217535,9280,[["0xdf6acb689907609b",4],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",6],["0xd2bc9897eed08f15",3],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",2],["0x49eaaf1b548a0cb0",1],["0x91d5df18b0d2cf58",1],["0xed99c5acb25eedf5",3],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1],["0xf3ff14d5ab527059",1]]],[12245277,9281,[["0xdf6acb689907609b",4],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",6],["0xd2bc9897eed08f15",3],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",2],["0x49eaaf1b548a0cb0",1],["0x91d5df18b0d2cf58",1],["0xed99c5acb25eedf5",3],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1],["0xf3ff14d5ab527059",1]]],[12532644,9291,[["0xdf6acb689907609b",4],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",6],["0x17a6bc0d0062aeb3",1],["0xd2bc9897eed08f15",3],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",2],["0x49eaaf1b548a0cb0",1],["0x91d5df18b0d2cf58",1],["0xed99c5acb25eedf5",3],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1],["0xf3ff14d5ab527059",1]]],[12876189,9300,[["0xdf6acb689907609b",4],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",6],["0x17a6bc0d0062aeb3",1],["0xd2bc9897eed08f15",3],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",2],["0x49eaaf1b548a0cb0",1],["0x91d5df18b0d2cf58",1],["0xed99c5acb25eedf5",3],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1],["0xf3ff14d5ab527059",1]]],[13800015,9340,[["0xdf6acb689907609b",4],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",6],["0x17a6bc0d0062aeb3",1],["0xd2bc9897eed08f15",3],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",2],["0x49eaaf1b548a0cb0",1],["0x91d5df18b0d2cf58",1],["0xed99c5acb25eedf5",3],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",2],["0xf3ff14d5ab527059",2]]],[14188833,9360,[["0xdf6acb689907609b",4],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",6],["0x17a6bc0d0062aeb3",1],["0xd2bc9897eed08f15",3],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",2],["0x49eaaf1b548a0cb0",1],["0x91d5df18b0d2cf58",1],["0xed99c5acb25eedf5",3],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",2],["0xf3ff14d5ab527059",2]]],[14543918,9370,[["0xdf6acb689907609b",4],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",6],["0x17a6bc0d0062aeb3",1],["0xd2bc9897eed08f15",3],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",2],["0x49eaaf1b548a0cb0",1],["0x91d5df18b0d2cf58",1],["0xed99c5acb25eedf5",3],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",2],["0xf3ff14d5ab527059",2]]],[15978362,9420,[["0xdf6acb689907609b",4],["0x37e397fc7c91f5e4",2],["0x40fe3ad401f8959a",6],["0x17a6bc0d0062aeb3",1],["0x18ef58a3b67ba770",1],["0xd2bc9897eed08f15",3],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",4],["0x49eaaf1b548a0cb0",2],["0x91d5df18b0d2cf58",2],["0xed99c5acb25eedf5",3],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",4],["0xf3ff14d5ab527059",3]]],[1645e4,9430,[["0xdf6acb689907609b",4],["0x37e397fc7c91f5e4",2],["0x40fe3ad401f8959a",6],["0x17a6bc0d0062aeb3",1],["0x18ef58a3b67ba770",1],["0xd2bc9897eed08f15",3],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",4],["0x49eaaf1b548a0cb0",2],["0x91d5df18b0d2cf58",2],["0xed99c5acb25eedf5",3],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",4],["0xf3ff14d5ab527059",3]]],[1784e4,9431,[["0xdf6acb689907609b",4],["0x37e397fc7c91f5e4",2],["0x40fe3ad401f8959a",6],["0x17a6bc0d0062aeb3",1],["0x18ef58a3b67ba770",1],["0xd2bc9897eed08f15",3],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",4],["0x49eaaf1b548a0cb0",2],["0x91d5df18b0d2cf58",2],["0xed99c5acb25eedf5",3],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",4],["0xf3ff14d5ab527059",3]]],[18407475,1000001,[["0xdf6acb689907609b",4],["0x37e397fc7c91f5e4",2],["0x40fe3ad401f8959a",6],["0x17a6bc0d0062aeb3",1],["0x18ef58a3b67ba770",1],["0xd2bc9897eed08f15",3],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",5],["0x49eaaf1b548a0cb0",3],["0x91d5df18b0d2cf58",2],["0xed99c5acb25eedf5",3],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",4],["0xf3ff14d5ab527059",3]]],[19551e3,1001002,[["0xdf6acb689907609b",4],["0x37e397fc7c91f5e4",2],["0x40fe3ad401f8959a",6],["0x17a6bc0d0062aeb3",1],["0x18ef58a3b67ba770",1],["0xd2bc9897eed08f15",3],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",5],["0x49eaaf1b548a0cb0",3],["0x91d5df18b0d2cf58",2],["0x2a5e924655399e60",1],["0xed99c5acb25eedf5",3],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",4],["0xf3ff14d5ab527059",3],["0xfbc577b9d747efd6",1]]],[20181758,1001003,[["0xdf6acb689907609b",4],["0x37e397fc7c91f5e4",2],["0x40fe3ad401f8959a",6],["0x17a6bc0d0062aeb3",1],["0x18ef58a3b67ba770",1],["0xd2bc9897eed08f15",3],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",5],["0x49eaaf1b548a0cb0",3],["0x91d5df18b0d2cf58",2],["0x2a5e924655399e60",1],["0xed99c5acb25eedf5",3],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",4],["0xf3ff14d5ab527059",3],["0xfbc577b9d747efd6",1]]],[20438530,1002e3,[["0xdf6acb689907609b",4],["0x37e397fc7c91f5e4",2],["0x40fe3ad401f8959a",6],["0x17a6bc0d0062aeb3",1],["0x18ef58a3b67ba770",1],["0xd2bc9897eed08f15",3],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",10],["0x49eaaf1b548a0cb0",3],["0x91d5df18b0d2cf58",2],["0x2a5e924655399e60",1],["0xed99c5acb25eedf5",3],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",4],["0xf3ff14d5ab527059",3],["0xfbc577b9d747efd6",1]]]],th=[[214356,4,[["0xdf6acb689907609b",3],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",4],["0xd2bc9897eed08f15",2],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",3],["0xed99c5acb25eedf5",2],["0xcbca25e39f142387",1],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[392764,7,[["0xdf6acb689907609b",3],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",4],["0xd2bc9897eed08f15",2],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",3],["0xed99c5acb25eedf5",2],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[409740,8,[["0xdf6acb689907609b",3],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",4],["0xd2bc9897eed08f15",2],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",3],["0xed99c5acb25eedf5",2],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[809976,20,[["0xdf6acb689907609b",3],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",4],["0xd2bc9897eed08f15",2],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",3],["0xed99c5acb25eedf5",2],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[877581,24,[["0xdf6acb689907609b",3],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",4],["0xd2bc9897eed08f15",2],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",3],["0xed99c5acb25eedf5",2],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[879238,25,[["0xdf6acb689907609b",3],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",4],["0xd2bc9897eed08f15",2],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",3],["0xed99c5acb25eedf5",2],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[889472,26,[["0xdf6acb689907609b",3],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",4],["0xd2bc9897eed08f15",2],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",3],["0xed99c5acb25eedf5",2],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[902937,27,[["0xdf6acb689907609b",3],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",4],["0xd2bc9897eed08f15",2],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",3],["0xed99c5acb25eedf5",2],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[932751,28,[["0xdf6acb689907609b",3],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",4],["0xd2bc9897eed08f15",2],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",3],["0xed99c5acb25eedf5",2],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[991142,29,[["0xdf6acb689907609b",3],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",4],["0xd2bc9897eed08f15",2],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",3],["0xed99c5acb25eedf5",2],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[1030162,31,[["0xdf6acb689907609b",3],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",4],["0xd2bc9897eed08f15",2],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",3],["0xed99c5acb25eedf5",2],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[1119657,32,[["0xdf6acb689907609b",3],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",4],["0xd2bc9897eed08f15",2],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",3],["0xed99c5acb25eedf5",2],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[1199282,33,[["0xdf6acb689907609b",3],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",4],["0xd2bc9897eed08f15",2],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",3],["0xed99c5acb25eedf5",2],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[1342534,34,[["0xdf6acb689907609b",3],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",4],["0xd2bc9897eed08f15",2],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",3],["0xed99c5acb25eedf5",2],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[1392263,35,[["0xdf6acb689907609b",3],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",4],["0xd2bc9897eed08f15",2],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",3],["0xed99c5acb25eedf5",2],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[1431703,36,[["0xdf6acb689907609b",3],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",4],["0xd2bc9897eed08f15",2],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",3],["0xed99c5acb25eedf5",2],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[1433369,37,[["0xdf6acb689907609b",3],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",4],["0xd2bc9897eed08f15",2],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",3],["0xed99c5acb25eedf5",2],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[1490972,41,[["0xdf6acb689907609b",3],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",4],["0xd2bc9897eed08f15",2],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",3],["0xed99c5acb25eedf5",2],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[2087397,43,[["0xdf6acb689907609b",3],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",4],["0xd2bc9897eed08f15",2],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",3],["0xed99c5acb25eedf5",2],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[2316688,44,[["0xdf6acb689907609b",3],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",4],["0xd2bc9897eed08f15",2],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",3],["0xed99c5acb25eedf5",2],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[2549864,45,[["0xdf6acb689907609b",3],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",4],["0xd2bc9897eed08f15",2],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",1],["0xed99c5acb25eedf5",2],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[3925782,46,[["0xdf6acb689907609b",3],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",4],["0xd2bc9897eed08f15",2],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",1],["0xed99c5acb25eedf5",2],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[3925843,47,[["0xdf6acb689907609b",3],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",4],["0xd2bc9897eed08f15",2],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",1],["0xed99c5acb25eedf5",2],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[4207800,48,[["0xdf6acb689907609b",3],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",4],["0xd2bc9897eed08f15",2],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",1],["0xed99c5acb25eedf5",2],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[4627944,49,[["0xdf6acb689907609b",3],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",4],["0xd2bc9897eed08f15",2],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",1],["0xed99c5acb25eedf5",2],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[5124076,50,[["0xdf6acb689907609b",3],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",4],["0xd2bc9897eed08f15",2],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",1],["0xed99c5acb25eedf5",2],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[5478664,900,[["0xdf6acb689907609b",3],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",4],["0xd2bc9897eed08f15",2],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",1],["0xed99c5acb25eedf5",2],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[5482450,9e3,[["0xdf6acb689907609b",3],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",4],["0xd2bc9897eed08f15",2],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",1],["0x49eaaf1b548a0cb0",1],["0x91d5df18b0d2cf58",1],["0xed99c5acb25eedf5",2],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[5584305,9010,[["0xdf6acb689907609b",3],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",5],["0xd2bc9897eed08f15",2],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",1],["0x49eaaf1b548a0cb0",1],["0x91d5df18b0d2cf58",1],["0xed99c5acb25eedf5",2],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[5784566,9030,[["0xdf6acb689907609b",3],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",5],["0xd2bc9897eed08f15",2],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",1],["0x49eaaf1b548a0cb0",1],["0x91d5df18b0d2cf58",1],["0xed99c5acb25eedf5",2],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[5879822,9031,[["0xdf6acb689907609b",3],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",5],["0xd2bc9897eed08f15",2],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",1],["0x49eaaf1b548a0cb0",1],["0x91d5df18b0d2cf58",1],["0xed99c5acb25eedf5",2],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[5896856,9032,[["0xdf6acb689907609b",3],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",5],["0xd2bc9897eed08f15",2],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",1],["0x49eaaf1b548a0cb0",1],["0x91d5df18b0d2cf58",1],["0xed99c5acb25eedf5",2],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[5897316,9033,[["0xdf6acb689907609b",3],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",5],["0xd2bc9897eed08f15",2],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",1],["0x49eaaf1b548a0cb0",1],["0x91d5df18b0d2cf58",1],["0xed99c5acb25eedf5",2],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[6117927,9050,[["0xdf6acb689907609b",3],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",5],["0xd2bc9897eed08f15",2],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",1],["0x49eaaf1b548a0cb0",1],["0x91d5df18b0d2cf58",1],["0xed99c5acb25eedf5",2],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[6210274,9070,[["0xdf6acb689907609b",3],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",5],["0xd2bc9897eed08f15",2],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",1],["0x49eaaf1b548a0cb0",1],["0x91d5df18b0d2cf58",1],["0xed99c5acb25eedf5",2],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[6379314,9080,[["0xdf6acb689907609b",3],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",5],["0xd2bc9897eed08f15",3],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",1],["0x49eaaf1b548a0cb0",1],["0x91d5df18b0d2cf58",1],["0xed99c5acb25eedf5",2],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[6979141,9090,[["0xdf6acb689907609b",3],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",5],["0xd2bc9897eed08f15",3],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",1],["0x49eaaf1b548a0cb0",1],["0x91d5df18b0d2cf58",1],["0xed99c5acb25eedf5",3],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[7568453,9100,[["0xdf6acb689907609b",3],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",5],["0xd2bc9897eed08f15",3],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",1],["0x49eaaf1b548a0cb0",1],["0x91d5df18b0d2cf58",1],["0xed99c5acb25eedf5",3],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[7766394,9111,[["0xdf6acb689907609b",3],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",5],["0xd2bc9897eed08f15",3],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",1],["0x49eaaf1b548a0cb0",1],["0x91d5df18b0d2cf58",1],["0xed99c5acb25eedf5",3],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[7911691,9120,[["0xdf6acb689907609b",3],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",5],["0xd2bc9897eed08f15",3],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",1],["0x49eaaf1b548a0cb0",1],["0x91d5df18b0d2cf58",1],["0xed99c5acb25eedf5",3],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[7968866,9121,[["0xdf6acb689907609b",3],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",5],["0xd2bc9897eed08f15",3],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",1],["0x49eaaf1b548a0cb0",1],["0x91d5df18b0d2cf58",1],["0xed99c5acb25eedf5",3],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[7982889,9122,[["0xdf6acb689907609b",3],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",5],["0xd2bc9897eed08f15",3],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",1],["0x49eaaf1b548a0cb0",1],["0x91d5df18b0d2cf58",1],["0xed99c5acb25eedf5",3],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[8514322,9130,[["0xdf6acb689907609b",3],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",5],["0xd2bc9897eed08f15",3],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",1],["0x49eaaf1b548a0cb0",1],["0x91d5df18b0d2cf58",1],["0xed99c5acb25eedf5",3],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[9091726,9140,[["0xdf6acb689907609b",3],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",5],["0xd2bc9897eed08f15",3],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",1],["0x49eaaf1b548a0cb0",1],["0x91d5df18b0d2cf58",1],["0xed99c5acb25eedf5",3],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[9091774,9150,[["0xdf6acb689907609b",3],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",5],["0xd2bc9897eed08f15",3],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",1],["0x49eaaf1b548a0cb0",1],["0x91d5df18b0d2cf58",1],["0xed99c5acb25eedf5",3],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[9406726,9160,[["0xdf6acb689907609b",4],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",5],["0xd2bc9897eed08f15",3],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",2],["0x49eaaf1b548a0cb0",1],["0x91d5df18b0d2cf58",1],["0xed99c5acb25eedf5",3],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[9921066,9170,[["0xdf6acb689907609b",4],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",5],["0xd2bc9897eed08f15",3],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",2],["0x49eaaf1b548a0cb0",1],["0x91d5df18b0d2cf58",1],["0xed99c5acb25eedf5",3],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[10007115,9180,[["0xdf6acb689907609b",4],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",5],["0xd2bc9897eed08f15",3],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",2],["0x49eaaf1b548a0cb0",1],["0x91d5df18b0d2cf58",1],["0xed99c5acb25eedf5",3],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[10480973,9190,[["0xdf6acb689907609b",4],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",6],["0xd2bc9897eed08f15",3],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",2],["0x49eaaf1b548a0cb0",1],["0x91d5df18b0d2cf58",1],["0xed99c5acb25eedf5",3],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[10578091,9200,[["0xdf6acb689907609b",4],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",6],["0xd2bc9897eed08f15",3],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",2],["0x49eaaf1b548a0cb0",1],["0x91d5df18b0d2cf58",1],["0xed99c5acb25eedf5",3],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[10678509,9210,[["0xdf6acb689907609b",4],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",6],["0xd2bc9897eed08f15",3],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",2],["0x49eaaf1b548a0cb0",1],["0x91d5df18b0d2cf58",1],["0xed99c5acb25eedf5",3],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[10811001,9220,[["0xdf6acb689907609b",4],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",6],["0xd2bc9897eed08f15",3],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",2],["0x49eaaf1b548a0cb0",1],["0x91d5df18b0d2cf58",1],["0xed99c5acb25eedf5",3],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[11096116,9230,[["0xdf6acb689907609b",4],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",6],["0xd2bc9897eed08f15",3],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",2],["0x49eaaf1b548a0cb0",1],["0x91d5df18b0d2cf58",1],["0xed99c5acb25eedf5",3],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[11409279,9250,[["0xdf6acb689907609b",4],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",6],["0xd2bc9897eed08f15",3],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",2],["0x49eaaf1b548a0cb0",1],["0x91d5df18b0d2cf58",1],["0xed99c5acb25eedf5",3],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[11584820,9251,[["0xdf6acb689907609b",4],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",6],["0xd2bc9897eed08f15",3],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",2],["0x49eaaf1b548a0cb0",1],["0x91d5df18b0d2cf58",1],["0xed99c5acb25eedf5",3],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[11716837,9260,[["0xdf6acb689907609b",4],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",6],["0xd2bc9897eed08f15",3],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",2],["0x49eaaf1b548a0cb0",1],["0x91d5df18b0d2cf58",1],["0xed99c5acb25eedf5",3],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[11876919,9261,[["0xdf6acb689907609b",4],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",6],["0xd2bc9897eed08f15",3],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",2],["0x49eaaf1b548a0cb0",1],["0x91d5df18b0d2cf58",1],["0xed99c5acb25eedf5",3],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1]]],[11987927,9270,[["0xdf6acb689907609b",4],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",6],["0xd2bc9897eed08f15",3],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",2],["0x49eaaf1b548a0cb0",1],["0x91d5df18b0d2cf58",1],["0xed99c5acb25eedf5",3],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1],["0x17a6bc0d0062aeb3",1]]],[12077324,9271,[["0xdf6acb689907609b",4],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",6],["0xd2bc9897eed08f15",3],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",2],["0x49eaaf1b548a0cb0",1],["0x91d5df18b0d2cf58",1],["0xed99c5acb25eedf5",3],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1],["0x17a6bc0d0062aeb3",1]]],[12301871,9280,[["0xdf6acb689907609b",4],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",6],["0xd2bc9897eed08f15",3],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",2],["0x49eaaf1b548a0cb0",1],["0x91d5df18b0d2cf58",1],["0xed99c5acb25eedf5",3],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1],["0xf3ff14d5ab527059",1],["0x17a6bc0d0062aeb3",1]]],[12604343,9290,[["0xdf6acb689907609b",4],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",6],["0xd2bc9897eed08f15",3],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",2],["0x49eaaf1b548a0cb0",1],["0x91d5df18b0d2cf58",1],["0xed99c5acb25eedf5",3],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1],["0xf3ff14d5ab527059",1],["0x17a6bc0d0062aeb3",1]]],[12841034,9300,[["0xdf6acb689907609b",4],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",6],["0xd2bc9897eed08f15",3],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",3],["0x49eaaf1b548a0cb0",1],["0x91d5df18b0d2cf58",1],["0xed99c5acb25eedf5",3],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1],["0xf3ff14d5ab527059",1],["0x17a6bc0d0062aeb3",1]]],[13128237,9310,[["0xdf6acb689907609b",4],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",6],["0xd2bc9897eed08f15",3],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",3],["0x49eaaf1b548a0cb0",1],["0x91d5df18b0d2cf58",1],["0xed99c5acb25eedf5",3],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",1],["0xf3ff14d5ab527059",1],["0x17a6bc0d0062aeb3",1]]],[13272363,9320,[["0xdf6acb689907609b",4],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",6],["0xd2bc9897eed08f15",3],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",3],["0x49eaaf1b548a0cb0",1],["0x91d5df18b0d2cf58",1],["0xed99c5acb25eedf5",3],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",2],["0xf3ff14d5ab527059",2],["0x17a6bc0d0062aeb3",1]]],[13483497,9330,[["0xdf6acb689907609b",4],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",6],["0xd2bc9897eed08f15",3],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",3],["0x49eaaf1b548a0cb0",1],["0x91d5df18b0d2cf58",1],["0xed99c5acb25eedf5",3],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",2],["0xf3ff14d5ab527059",2],["0x17a6bc0d0062aeb3",1]]],[13649433,9340,[["0xdf6acb689907609b",4],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",6],["0xd2bc9897eed08f15",3],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",3],["0x49eaaf1b548a0cb0",1],["0x91d5df18b0d2cf58",1],["0xed99c5acb25eedf5",3],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",2],["0xf3ff14d5ab527059",2],["0x17a6bc0d0062aeb3",1]]],[13761100,9350,[["0xdf6acb689907609b",4],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",6],["0xd2bc9897eed08f15",3],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",3],["0x49eaaf1b548a0cb0",1],["0x91d5df18b0d2cf58",1],["0xed99c5acb25eedf5",3],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",2],["0xf3ff14d5ab527059",2],["0x17a6bc0d0062aeb3",1]]],[13847400,9360,[["0xdf6acb689907609b",4],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",6],["0xd2bc9897eed08f15",3],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",3],["0x49eaaf1b548a0cb0",1],["0x91d5df18b0d2cf58",1],["0xed99c5acb25eedf5",3],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",2],["0xf3ff14d5ab527059",2],["0x17a6bc0d0062aeb3",1]]],[14249200,9370,[["0xdf6acb689907609b",4],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",6],["0xd2bc9897eed08f15",3],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",3],["0x49eaaf1b548a0cb0",1],["0x91d5df18b0d2cf58",1],["0xed99c5acb25eedf5",3],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",2],["0xf3ff14d5ab527059",2],["0x17a6bc0d0062aeb3",1]]],[14576855,9380,[["0xdf6acb689907609b",4],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",6],["0xd2bc9897eed08f15",3],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",3],["0x49eaaf1b548a0cb0",1],["0x91d5df18b0d2cf58",1],["0xed99c5acb25eedf5",3],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",3],["0xf3ff14d5ab527059",3],["0x17a6bc0d0062aeb3",1]]],[14849830,9390,[["0xdf6acb689907609b",4],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",6],["0xd2bc9897eed08f15",3],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",4],["0x49eaaf1b548a0cb0",1],["0x91d5df18b0d2cf58",1],["0xed99c5acb25eedf5",3],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",3],["0xf3ff14d5ab527059",3],["0x17a6bc0d0062aeb3",1],["0x18ef58a3b67ba770",1]]],[15146832,9400,[["0xdf6acb689907609b",4],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",6],["0xd2bc9897eed08f15",3],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",4],["0x49eaaf1b548a0cb0",2],["0x91d5df18b0d2cf58",2],["0xed99c5acb25eedf5",3],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",3],["0xf3ff14d5ab527059",3],["0x17a6bc0d0062aeb3",1],["0x18ef58a3b67ba770",1]]],[15332317,9401,[["0xdf6acb689907609b",4],["0x37e397fc7c91f5e4",1],["0x40fe3ad401f8959a",6],["0xd2bc9897eed08f15",3],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",4],["0x49eaaf1b548a0cb0",2],["0x91d5df18b0d2cf58",2],["0xed99c5acb25eedf5",3],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",3],["0xf3ff14d5ab527059",3],["0x17a6bc0d0062aeb3",1],["0x18ef58a3b67ba770",1]]],[15661793,9420,[["0xdf6acb689907609b",4],["0x37e397fc7c91f5e4",2],["0x40fe3ad401f8959a",6],["0xd2bc9897eed08f15",3],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",4],["0x49eaaf1b548a0cb0",2],["0x91d5df18b0d2cf58",2],["0xed99c5acb25eedf5",3],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",4],["0xf3ff14d5ab527059",3],["0x17a6bc0d0062aeb3",1],["0x18ef58a3b67ba770",1]]],[16165469,9430,[["0xdf6acb689907609b",4],["0x37e397fc7c91f5e4",2],["0x40fe3ad401f8959a",6],["0xd2bc9897eed08f15",3],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",4],["0x49eaaf1b548a0cb0",2],["0x91d5df18b0d2cf58",2],["0xed99c5acb25eedf5",3],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",4],["0xf3ff14d5ab527059",3],["0x17a6bc0d0062aeb3",1],["0x18ef58a3b67ba770",1]]],[18293984,102e3,[["0xdf6acb689907609b",4],["0x37e397fc7c91f5e4",2],["0x40fe3ad401f8959a",6],["0xd2bc9897eed08f15",3],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",7],["0x49eaaf1b548a0cb0",3],["0x91d5df18b0d2cf58",2],["0x2a5e924655399e60",1],["0xed99c5acb25eedf5",3],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",4],["0xf3ff14d5ab527059",3],["0x17a6bc0d0062aeb3",1],["0x18ef58a3b67ba770",1],["0xfbc577b9d747efd6",1]]],[18293991,103e3,[["0xdf6acb689907609b",4],["0x37e397fc7c91f5e4",2],["0x40fe3ad401f8959a",6],["0xd2bc9897eed08f15",3],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",8],["0x49eaaf1b548a0cb0",3],["0x91d5df18b0d2cf58",2],["0x2a5e924655399e60",1],["0xed99c5acb25eedf5",3],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",4],["0xf3ff14d5ab527059",3],["0x17a6bc0d0062aeb3",1],["0x18ef58a3b67ba770",1],["0xfbc577b9d747efd6",1]]],[18451783,104e3,[["0xdf6acb689907609b",4],["0x37e397fc7c91f5e4",2],["0x40fe3ad401f8959a",6],["0xd2bc9897eed08f15",3],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",9],["0x49eaaf1b548a0cb0",3],["0x91d5df18b0d2cf58",2],["0x2a5e924655399e60",1],["0xed99c5acb25eedf5",3],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",4],["0xf3ff14d5ab527059",3],["0x17a6bc0d0062aeb3",1],["0x18ef58a3b67ba770",1],["0xfbc577b9d747efd6",1]]],[18679741,1005e3,[["0xdf6acb689907609b",4],["0x37e397fc7c91f5e4",2],["0x40fe3ad401f8959a",6],["0xd2bc9897eed08f15",3],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",9],["0x49eaaf1b548a0cb0",3],["0x91d5df18b0d2cf58",2],["0x2a5e924655399e60",1],["0xed99c5acb25eedf5",3],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",4],["0xf3ff14d5ab527059",3],["0x17a6bc0d0062aeb3",1],["0x18ef58a3b67ba770",1],["0xfbc577b9d747efd6",1]]],[19166695,1006e3,[["0xdf6acb689907609b",4],["0x37e397fc7c91f5e4",2],["0x40fe3ad401f8959a",6],["0xd2bc9897eed08f15",3],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",10],["0x49eaaf1b548a0cb0",3],["0x91d5df18b0d2cf58",2],["0x2a5e924655399e60",1],["0xed99c5acb25eedf5",3],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",4],["0xf3ff14d5ab527059",3],["0x17a6bc0d0062aeb3",1],["0x18ef58a3b67ba770",1],["0xfbc577b9d747efd6",1]]],[19234157,1006001,[["0xdf6acb689907609b",4],["0x37e397fc7c91f5e4",2],["0x40fe3ad401f8959a",6],["0xd2bc9897eed08f15",3],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",10],["0x49eaaf1b548a0cb0",3],["0x91d5df18b0d2cf58",2],["0x2a5e924655399e60",1],["0xed99c5acb25eedf5",3],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",4],["0xf3ff14d5ab527059",3],["0x17a6bc0d0062aeb3",1],["0x18ef58a3b67ba770",1],["0xfbc577b9d747efd6",1]]],[19542944,1007e3,[["0xdf6acb689907609b",4],["0x37e397fc7c91f5e4",2],["0x40fe3ad401f8959a",6],["0xd2bc9897eed08f15",3],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",10],["0x49eaaf1b548a0cb0",3],["0x91d5df18b0d2cf58",2],["0x2a5e924655399e60",1],["0xed99c5acb25eedf5",3],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",4],["0xf3ff14d5ab527059",3],["0x17a6bc0d0062aeb3",1],["0x18ef58a3b67ba770",1],["0xfbc577b9d747efd6",1]]],[19621258,1007001,[["0xdf6acb689907609b",4],["0x37e397fc7c91f5e4",2],["0x40fe3ad401f8959a",6],["0xd2bc9897eed08f15",3],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",10],["0x49eaaf1b548a0cb0",3],["0x91d5df18b0d2cf58",2],["0x2a5e924655399e60",1],["0xed99c5acb25eedf5",3],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",4],["0xf3ff14d5ab527059",3],["0x17a6bc0d0062aeb3",1],["0x18ef58a3b67ba770",1],["0xfbc577b9d747efd6",1]]],[19761406,1008e3,[["0xdf6acb689907609b",4],["0x37e397fc7c91f5e4",2],["0x40fe3ad401f8959a",6],["0xd2bc9897eed08f15",3],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",10],["0x49eaaf1b548a0cb0",3],["0x91d5df18b0d2cf58",2],["0x2a5e924655399e60",1],["0xed99c5acb25eedf5",3],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",4],["0xf3ff14d5ab527059",3],["0x17a6bc0d0062aeb3",1],["0x18ef58a3b67ba770",1],["0xfbc577b9d747efd6",1]]],[20056997,1009e3,[["0xdf6acb689907609b",5],["0x37e397fc7c91f5e4",2],["0x40fe3ad401f8959a",6],["0xd2bc9897eed08f15",3],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",10],["0x49eaaf1b548a0cb0",3],["0x91d5df18b0d2cf58",2],["0x2a5e924655399e60",1],["0xed99c5acb25eedf5",3],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",4],["0xf3ff14d5ab527059",3],["0x17a6bc0d0062aeb3",1],["0x18ef58a3b67ba770",1],["0xfbc577b9d747efd6",1]]],[20368318,101e4,[["0xdf6acb689907609b",5],["0x37e397fc7c91f5e4",2],["0x40fe3ad401f8959a",6],["0xd2bc9897eed08f15",3],["0xf78b278be53f454c",2],["0xaf2c0297a23e6d3d",10],["0x49eaaf1b548a0cb0",3],["0x91d5df18b0d2cf58",2],["0x2a5e924655399e60",1],["0xed99c5acb25eedf5",3],["0xcbca25e39f142387",2],["0x687ad44ad37f03c2",1],["0xab3c0572291feb8b",1],["0xbc9d89904f5b923f",1],["0x37c8bb1350a9a2a8",4],["0xf3ff14d5ab527059",3],["0x6ff52ee858e6c5bd",1],["0x17a6bc0d0062aeb3",1],["0x18ef58a3b67ba770",1],["0xfbc577b9d747efd6",1]]]],nh={westend:{genesisHash:["0xe143f23803ac50e8f6f8e62695d1ce9e4e1d68aa36c1cd2cfd15340213f3423e"]}};const rh=Object.entries(s).map((function([e,t]){const n=ao.find((t=>t.network===e))||nh[e];if(!n)throw new Error(`Unable to find info for chain ${e}`);return{genesisHash:(0,as.G)(n.genesisHash[0]),network:e,versions:t.map((([e,t,n])=>({apis:n,blockNumber:new bt(e),specVersion:new bt(t)})))}}));function ah(e,t,n){return n(e.toString(),t.toString())}function ih(e=[],t){return e.filter((({minmax:[e,n]})=>(null==e||t>=e)&&(null==n||t<=n))).reduce(((e,{types:t})=>({...e,...t})),{})}function sh({knownTypes:e},t,n){return ah(t,n,((t,n)=>({...e.typesBundle?.spec?.[n]?.rpc??{},...e.typesBundle?.chain?.[t]?.rpc??{}})))}var oh=R((function(e){return function(){e(this),this.name="ObjectUnsubscribedError",this.message="object unsubscribed"}})),ch=function(e){function t(){var t=e.call(this)||this;return t.closed=!1,t.currentObservers=null,t.observers=[],t.isStopped=!1,t.hasError=!1,t.thrownError=null,t}return U(t,e),t.prototype.lift=function(e){var t=new dh(this,this);return t.operator=e,t},t.prototype._throwIfClosed=function(){if(this.closed)throw new oh},t.prototype.next=function(e){var t=this;ce((function(){var n,r;if(t._throwIfClosed(),!t.isStopped){t.currentObservers||(t.currentObservers=Array.from(t.observers));try{for(var a=q(t.currentObservers),i=a.next();!i.done;i=a.next()){i.value.next(e)}}catch(s){n={error:s}}finally{try{i&&!i.done&&(r=a.return)&&r.call(a)}finally{if(n)throw n.error}}}}))},t.prototype.error=function(e){var t=this;ce((function(){if(t._throwIfClosed(),!t.isStopped){t.hasError=t.isStopped=!0,t.thrownError=e;for(var n=t.observers;n.length;)n.shift().error(e)}}))},t.prototype.complete=function(){var e=this;ce((function(){if(e._throwIfClosed(),!e.isStopped){e.isStopped=!0;for(var t=e.observers;t.length;)t.shift().complete()}}))},t.prototype.unsubscribe=function(){this.isStopped=this.closed=!0,this.observers=this.currentObservers=null},Object.defineProperty(t.prototype,"observed",{get:function(){var e;return(null===(e=this.observers)||void 0===e?void 0:e.length)>0},enumerable:!1,configurable:!0}),t.prototype._trySubscribe=function(t){return this._throwIfClosed(),e.prototype._trySubscribe.call(this,t)},t.prototype._subscribe=function(e){return this._throwIfClosed(),this._checkFinalizedStatuses(e),this._innerSubscribe(e)},t.prototype._innerSubscribe=function(e){var t=this,n=this,r=n.hasError,a=n.isStopped,i=n.observers;return r||a?Q:(this.currentObservers=null,i.push(e),new J((function(){t.currentObservers=null,Y(i,e)})))},t.prototype._checkFinalizedStatuses=function(e){var t=this,n=t.hasError,r=t.thrownError,a=t.isStopped;n?e.error(r):a&&e.complete()},t.prototype.asObservable=function(){var e=new ke;return e.source=this,e},t.create=function(e,t){return new dh(e,t)},t}(ke),dh=function(e){function t(t,n){var r=e.call(this)||this;return r.destination=t,r.source=n,r}return U(t,e),t.prototype.next=function(e){var t,n;null===(n=null===(t=this.destination)||void 0===t?void 0:t.next)||void 0===n||n.call(t,e)},t.prototype.error=function(e){var t,n;null===(n=null===(t=this.destination)||void 0===t?void 0:t.error)||void 0===n||n.call(t,e)},t.prototype.complete=function(){var e,t;null===(t=null===(e=this.destination)||void 0===e?void 0:e.complete)||void 0===t||t.call(e)},t.prototype._subscribe=function(e){var t,n;return null!==(n=null===(t=this.source)||void 0===t?void 0:t.subscribe(e))&&void 0!==n?n:Q},t}(ch),uh=function(e){function t(t){var n=e.call(this)||this;return n._value=t,n}return U(t,e),Object.defineProperty(t.prototype,"value",{get:function(){return this.getValue()},enumerable:!1,configurable:!0}),t.prototype._subscribe=function(t){var n=e.prototype._subscribe.call(this,t);return!n.closed&&t.next(this._value),n},t.prototype.getValue=function(){var e=this,t=e.hasError,n=e.thrownError,r=e._value;if(t)throw n;return this._throwIfClosed(),r},t.prototype.next=function(t){e.prototype.next.call(this,this._value=t)},t}(ch),lh=Array.isArray,fh=Object.getPrototypeOf,ph=Object.prototype,hh=Object.keys;function bh(e){if(1===e.length){var t=e[0];if(lh(t))return{args:t,keys:null};if((r=t)&&"object"==typeof r&&fh(r)===ph){var n=hh(t);return{args:n.map((function(e){return t[e]})),keys:n}}}var r;return{args:e,keys:null}}var mh=Array.isArray;function yh(e){return Ge((function(t){return function(e,t){return mh(t)?e.apply(void 0,F([],j(t))):e(t)}(e,t)}))}function xh(){for(var e=[],t=0;t=2,!1,!0))}var Sh=function(e,t){return e.push(t),e};function kh(){return He((function(e,t){wh(Sh,[])(e).subscribe(t)}))}function Th(e,t,n,r){oa(e,t,(()=>ca({},n(t),(e=>r(t,e)))))}function Ph(){return"none"}function Vh(e,{getInstanceId:t=Ph}={}){const n={},r=(...r)=>{const a=(0,Qe.P)(r),i=t();return n[i]||(n[i]={}),void 0===n[i][a]&&(n[i][a]=e(...r)),n[i][a]};return r.unmemoize=(...e)=>{const r=(0,Qe.P)(e),a=t();void 0!==n[a]?.[r]&&delete n[a][r]},r}function Mh(e){return He((function(t,n){var r,a=null,i=!1;a=t.subscribe(Re(n,void 0,void 0,(function(s){r=Ee(e(s,Mh(e)(t))),a?(a.unsubscribe(),a=null,r.subscribe(n)):i=!0}))),i&&(a.unsubscribe(),a=null,r.subscribe(n))}))}function _h(e,t){return e===t}var Ih={now:function(){return(Ih.delegate||Date).now()},delegate:void 0},Oh=function(e){function t(t,n,r){void 0===t&&(t=1/0),void 0===n&&(n=1/0),void 0===r&&(r=Ih);var a=e.call(this)||this;return a._bufferSize=t,a._windowTime=n,a._timestampProvider=r,a._buffer=[],a._infiniteTimeWindow=!0,a._infiniteTimeWindow=n===1/0,a._bufferSize=Math.max(1,t),a._windowTime=Math.max(1,n),a}return U(t,e),t.prototype.next=function(t){var n=this,r=n.isStopped,a=n._buffer,i=n._infiniteTimeWindow,s=n._timestampProvider,o=n._windowTime;r||(a.push(t),!i&&a.push(s.now()+o)),this._trimBuffer(),e.prototype.next.call(this,t)},t.prototype._subscribe=function(e){this._throwIfClosed(),this._trimBuffer();for(var t=this._innerSubscribe(e),n=this._infiniteTimeWindow,r=this._buffer.slice(),a=0;a0?e.prototype.requestAsyncId.call(this,t,n,r):(t.actions.push(this),t._scheduled||(t._scheduled=Xh.setImmediate(t.flush.bind(t,void 0))))},t.prototype.recycleAsyncId=function(t,n,r){var a;if(void 0===r&&(r=0),null!=r?r>0:this.delay>0)return e.prototype.recycleAsyncId.call(this,t,n,r);var i=t.actions;null!=n&&(null===(a=i[i.length-1])||void 0===a?void 0:a.id)!==n&&(Xh.clearImmediate(n),t._scheduled===n&&(t._scheduled=void 0))},t}(Uh),Zh=function(){function e(t,n){void 0===n&&(n=e.now),this.schedulerActionCtor=t,this.now=n}return e.prototype.schedule=function(e,t,n){return void 0===t&&(t=0),new this.schedulerActionCtor(this,e).schedule(n,t)},e.now=Ih.now,e}(),Gh=new(function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return U(t,e),t.prototype.flush=function(e){this._active=!0;var t=this._scheduled;this._scheduled=void 0;var n,r=this.actions;e=e||r.shift();do{if(n=e.execute(e.state,e.delay))break}while((e=r[0])&&e.id===t&&r.shift());if(this._active=!1,n){for(;(e=r[0])&&e.id===t&&r.shift();)e.unsubscribe();throw n}},t}(function(e){function t(t,n){void 0===n&&(n=Zh.now);var r=e.call(this,t,n)||this;return r.actions=[],r._active=!1,r}return U(t,e),t.prototype.flush=function(e){var t=this.actions;if(this._active)t.push(e);else{var n;this._active=!0;do{if(n=e.execute(e.state,e.delay))break}while(e=t.shift());if(this._active=!1,n){for(;e=t.shift();)e.unsubscribe();throw n}}},t}(Zh)))(Wh);function Kh(e=1750){return t=>{let[n,r,a,i]=[0,0,J.EMPTY,J.EMPTY];return new ke((s=>(t.subscribe(s),0==r++&&(1===n?i.unsubscribe():a=t.connect(),n=3),()=>{0==--r&&(2===n?(n=0,i.unsubscribe()):(n=1,i=Gh.schedule((()=>{n=0,a.unsubscribe()}),e)))})))}}function Yh(e,t){return(0,Qe.P)({t:e})===(0,Qe.P)({t:t})}function Jh(e){throw e}function Qh(){}function $h({delay:e,skipChange:t=!1,skipTimeout:n=!1}={}){return r=>{return r.pipe(Mh(Jh),t?vh(Qh):(void 0===i&&(i=we),a=null!=(a=Yh)?a:_h,He((function(e,t){var n,r=!0;e.subscribe(Re(t,(function(e){var s=i(e);!r&&a(n,s)||(r=!1,n=s,t.next(e))})))}))),Hh(1),n?Nh():Kh(e));var a,i}}function eb(e,t){const n=Vh(((...e)=>new ke((r=>{const a=t(...e).subscribe(r);return()=>{n.unmemoize(...e),a.unsubscribe()}})).pipe($h())),{getInstanceId:()=>e});return n}function tb(e,t){return eb(e,(e=>{const n=(0,gt.U)(e)?e:so((e||"").toString());if(n.length>8)return Ze(t.registry.createType("AccountId",n));const r=t.registry.createType("AccountIndex",n);return t.derive.accounts.indexToId(r.toString()).pipe(Ge((e=>da(e,"Unable to retrieve accountId"))))}))}function nb(e,t){return eb(e,(()=>{const e=[void 0,[],[],[],void 0],n=[(t.query.elections||t.query.phragmenElection||t.query.electionsPhragmen)?.members,t.query.council?.members,t.query.technicalCommittee?.members,t.query.society?.members,t.query.sudo?.key],r=n.filter((e=>e));return r.length?t.queryMulti(r).pipe(Ge((t=>{let r=-1;for(let a=0,i=n.length;at.derive.accounts._flags().pipe(Ge((t=>function(e,[t,n,r,a,i]){const s=e?.toString(),o=e=>e.toString()===s;return{isCouncil:(t?.map((e=>Array.isArray(e)?e[0]:e.who))||n||[]).some(o),isSociety:(a||[]).some(o),isSudo:i?.toString()===s,isTechCommittee:(r||[]).some(o)}}(e,t))))))}function ab(e,t){return eb(e,(e=>{try{const n=(0,gt.U)(e)?e:so((e||"").toString());if(n.length>8){const e=t.registry.createType("AccountId",n);return t.derive.accounts.idToIndex(e).pipe(Ge((t=>[e,t])))}const r=t.registry.createType("AccountIndex",n);return t.derive.accounts.indexToId(r.toString()).pipe(Ge((e=>[e,r])))}catch{return Ze([void 0,void 0])}}))}function ib(e){return e.pipe(Ge((([e])=>e)))}function sb(e){return(t,n)=>eb(t,((...t)=>ib(e(n,...t))))}const ob={toHex:()=>{}};function cb(e){return e.isRaw?lt(e.asRaw.toU8a(!0)):e.isNone?void 0:e.toHex()}function db(e){const t=e.unwrap();return Array.isArray(t)?t[0]:t}function ub(e,t){return eb(e,(e=>e&&t.query.identity?.identityOf?xh([t.query.identity.identityOf(e),t.query.identity.superOf(e)]):Ze([void 0,void 0])))}function lb(e,t){return eb(e,(e=>t.derive.accounts._identity(e).pipe(Le((([e,n])=>function(e,t,n){if(t?.isSome)return Ze([t,void 0]);if(n?.isSome){const t=n.unwrap();return xh([e.derive.accounts._identity(t[0]).pipe(Ge((([e])=>e))),Ze(t)])}return Ze([void 0,void 0])}(t,e,n))),Ge((([e,t])=>function(e,t){if(!e?.isSome)return{judgements:[]};const{info:n,judgements:r}=db(e),a=cb(n.display);return{display:t&&cb(t[1])||a,displayParent:t&&a,email:cb(n.email),image:cb(n.image),judgements:r,legal:cb(n.legal),other:(i=n.additional,i.reduce(((e,[t,n])=>{const r=cb(t),a=cb(n);return r&&a&&(e[r]=a),e}),{})),parent:t?.[0],pgp:n.pgpFingerprint.unwrapOr(ob).toHex(),riot:cb(n.riot),twitter:cb(n.twitter),web:cb(n.web)};var i}(e,t))))))}const fb=sb(((e,t)=>e.derive.accounts.hasIdentityMulti([t])));function pb(e,t){return eb(e,(e=>t.query.identity?.identityOf?xh([t.query.identity.identityOf.multi(e),t.query.identity.superOf.multi(e)]).pipe(Ge((([e,t])=>e.map(((e,n)=>{const r=t[n],a=r&&r.isSome?r.unwrap()[0].toString():void 0;let i;if(e&&e.isSome){const t=cb(db(e).info.display);t&&!(0,it.vq)(t)&&(i=t)}return{display:i,hasIdentity:!(!i&&!a),parentId:a}}))))):Ze(e.map((()=>({hasIdentity:!1}))))))}function hb(e,t){return eb(e,(e=>t.derive.accounts.indexes().pipe(Ge((t=>t[e.toString()])))))}function bb(e,t,n){return void 0===n&&(n=1/0),G(t)?bb((function(n,r){return Ge((function(e,a){return t(n,e,r,a)}))(Ee(e(n,r)))}),n):("number"==typeof t&&(n=t),He((function(t,r){return function(e,t,n,r,a,i,s,o){var c=[],d=0,u=0,l=!1,f=function(){!l||c.length||d||t.complete()},p=function(e){return dgb?Ze(gb):(t.query.indices?function(e){return e.query.indices.accounts.entries().pipe(Ge((t=>t.reduce(((t,[n,r])=>(r.isSome&&(t[r.unwrap()[0].toString()]=e.registry.createType("AccountIndex",n.args[0])),t)),{}))))}(t).pipe(xb({})):Ze({})).pipe(Ge((e=>(gb=e,e))))))}function wb(e,t){return eb(e,(e=>t.query.indices?t.query.indices.accounts(e).pipe(Ge((e=>e.unwrapOr([])[0]))):Ze(void 0)))}function Sb(e,t){return(t&&e.query.nicks?.nameOf?e.query.nicks.nameOf(t):Ze(void 0)).pipe(Ge((t=>t?.isSome?lt(t.unwrap()[0]).substring(0,e.consts.nicks.maxLength.toNumber()):void 0)))}function kb(e,t){return eb(e,(e=>t.derive.accounts.idAndIndex(e).pipe(Le((([e,n])=>xh([Ze({accountId:e,accountIndex:n}),t.derive.accounts.identity(e),Sb(t,e)]))),Ge((([{accountId:e,accountIndex:t},n,r])=>({accountId:e,accountIndex:t,identity:n,nickname:r}))))))}function Tb(e,t){return(n,r)=>eb(n,t(function(e,t){const n=e.registry.getModuleInstances(e.runtimeVersion.specName,t),r=n?.length?n[0]:t;return e.query[r]}(r,e),r,n))}function Pb(e,t){return n=>Tb(n,(n=>()=>(0,Je.m)(n?.[e])?n[e]():Ze(t)))}const Vb=Pb("members",[]);function Mb(e,t,n){return((0,Je.m)(t?.proposals)&&n.length?xh([Ze(n),t.proposalOf.multi(n).pipe(Mh((()=>Ze(n.map((()=>null)))))),t.voting.multi(n)]):Ze([[],[],[]])).pipe(Ge((t=>function(e,[t,n,r]){return n.map(((n,a)=>({hash:e.registry.createType("Hash",t[a]),proposal:n&&n.isSome?n.unwrap():null,votes:r[a].unwrapOr(null)})))}(e,t))))}function _b(e){return Tb(e,(e=>()=>Ze((0,Je.m)(e?.proposals))))}function Ib(e){return Tb(e,((t,n)=>()=>n.derive[e].proposalHashes().pipe(Le((e=>Mb(n,t,e))))))}function Ob(e){return Tb(e,((e,t)=>n=>(0,Je.m)(e?.proposals)?ib(Mb(t,e,[n])):Ze(null)))}const Nb=Pb("proposalCount",null),Eb=Pb("proposals",[]);function Cb(e){return Tb(e,(e=>()=>(0,Je.m)(e?.prime)?e.prime().pipe(Ge((e=>e.unwrapOr(null)))):Ze(null)))}const Ab=Vb("allianceMotion"),Hb=_b("allianceMotion"),Rb=Ob("allianceMotion"),Bb=Nb("allianceMotion"),Lb=Eb("allianceMotion"),Ub=Ib("allianceMotion"),zb=Cb("allianceMotion");function Db(e){return e.query.voterList||e.query.voterBagsList||e.query.bagsList}function qb(e,t){const n=Db(t);return eb(e,(e=>{const t=e.map((e=>At(e)));return t.length?n.listBags.multi(t).pipe(Ge((e=>function(e,t){const n=e.map(((e,n)=>({bag:t[n].unwrapOr(null),id:e,key:e.toString()}))).sort(((e,t)=>t.id.cmp(e.id))),r=n.length-1;return n.map(((e,t)=>(0,_.Z)(e,{bagLower:t===r?vt:n[t+1].id,bagUpper:e.id,index:t})))}(t,e)))):Ze([])}))}function jb(e,t){const n=Db(t);return eb(e,(()=>n.listBags.keys().pipe(Le((e=>t.derive.bagsList._getIds(e.map((({args:[e]})=>e))))),Ge((e=>e.filter((({bag:e})=>e)))))))}function Fb(e,t){return eb(e,(e=>t.derive.bagsList._getIds([At(e)]).pipe(Ge((e=>e[0])))))}function Xb(e,t){return eb(e,(e=>t.derive.bagsList.listNodes(e.bag).pipe(Ge((t=>(0,_.Z)({nodes:t},e))))))}function Wb(e,t){return eb(e,(e=>t.derive.bagsList.get(e).pipe(Le((e=>t.derive.bagsList.expand(e))))))}function Zb(e,t){setTimeout((()=>{Promise.resolve().then((()=>{e()})).catch((e=>{t?t(e):console.error(e)}))}),0)}function Gb(e,t){return eb(e,(e=>e&&e.head.isSome?function(e,t){const n=new uh(t),r=Db(e);return n.pipe(Le((e=>r.listNodes(e))),vh((e=>{Zb((()=>{e.isSome&&e.value.next.isSome?n.next(e.unwrap().next.unwrap()):n.complete()}))})),kh(),Ge((e=>e.map((e=>e.unwrap())))))}(t,e.head.unwrap()):Ze([])))}function Kb(e){return(...t)=>{const n=t.length;if(0===n)throw new Error("Must provide one or more arguments");let r=t[0];for(let a=1;ae.gt(t))),Jb=Kb(((e,t)=>e.lt(t))),Qb="0x76657374696e6720";function $b(e,t,n,r){const{allLocked:a,lockedBalance:i,lockedBreakdown:s,vestingLocked:o}=function(e,t,n){let r=e.registry.createType("Balance"),a=[],i=e.registry.createType("Balance"),s=!1;if(Array.isArray(n)){a=n.filter((({until:e})=>!e||t&&e.gt(t))),s=a.some((({amount:e})=>e&&e.isMax())),i=e.registry.createType("Balance",a.filter((({id:e})=>e.eq(Qb))).reduce(((e,{amount:t})=>e.iadd(t)),new bt(0)));const o=a.filter((({amount:e})=>e&&!e.isMax()));o.length&&(r=e.registry.createType("Balance",Yb(...o.map((({amount:e})=>e)))))}return{allLocked:s,lockedBalance:r,lockedBreakdown:a,vestingLocked:i}}(e,t,r);return(0,_.Z)({},n,{availableBalance:e.registry.createType("Balance",a?0:Yb(new bt(0),n?.freeBalance?n.freeBalance.sub(i):new bt(0))),lockedBalance:i,lockedBreakdown:s,vestingLocked:o})}function em(e,t){const[n,[r,a,i],s]=t,o=$b(e,s,n,a[0]);return(0,_.Z)(o,function(e,t,n){const r=n||[],a=!t.vestingLocked.isZero(),i=r.map((({locked:t,perBlock:n,startingBlock:r})=>e.gt(r)?Jb(t,n.mul(e.sub(r))):vt)),s=i.reduce(((e,t)=>e.iadd(t)),new bt(0)),o=r.reduce(((e,{locked:t})=>e.iadd(t)),new bt(0));return{isVesting:a,vestedBalance:s,vestedClaimable:a?t.vestingLocked.sub(o.sub(s)):vt,vesting:r.map((({locked:e,perBlock:t,startingBlock:n},r)=>({endBlock:e.div(t).iadd(n),locked:e,perBlock:t,startingBlock:n,vested:i[r]}))).filter((({locked:e})=>!e.isZero())),vestingTotal:o}}(s,o,r),{accountId:n.accountId,accountNonce:n.accountNonce,additional:a.slice(1).map(((t,r)=>$b(e,s,n.additional[r],t))),namedReserves:i})}function tm(e,t){return xh([e.query.balances.locks(t),e.query.balances.vesting(t)]).pipe(Ge((([t,n])=>{let r=null;if(n.isSome){const{offset:t,perBlock:a,startingBlock:i}=n.unwrap();r=e.registry.createType("VestingInfo",{locked:t,perBlock:a,startingBlock:i})}return[r?[r]:null,[t],[]]})))}const nm=e=>!!e;function rm(e){return[e.map((e=>!e)),e.filter(nm)]}function am(e,t,n=["balances"]){const[r,a]=rm(n.map((t=>e.derive[t]?.customLocks||e.query[t]?.locks))),[i,s]=rm(n.map((t=>e.query[t]?.reserves)));return xh([e.query.vesting?.vesting?e.query.vesting.vesting(t):Ze(e.registry.createType("Option")),a.length?xh(a.map((e=>e(t)))):Ze([]),s.length?xh(s.map((e=>e(t)))):Ze([])]).pipe(Ge((([t,n,a])=>{let s=-1,o=-1;const c=t.unwrapOr(null);return[c?Array.isArray(c)?c:[c]:null,r.map((t=>t?e.registry.createType("Vec"):n[++s])),i.map((t=>t?e.registry.createType("Vec"):a[++o]))]})))}function im(e,t){const n=t.registry.getModuleInstances(t.runtimeVersion.specName,"balances");return eb(e,(e=>xh([t.derive.balances.account(e),(0,Je.m)(t.query.system?.account)||(0,Je.m)(t.query.balances?.account)?am(t,e,n):tm(t,e)]).pipe(Le((([e,n])=>xh([Ze(e),Ze(n),t.derive.chain.bestNumber()]))),Ge((e=>em(t,e))))))}function sm(e){return e.registry.createType("Balance")}function om(e,[t,n,r,a]){const i=e.registry.createType("Balance",t.toBn());return{freeBalance:t,frozenFee:r,frozenMisc:a,reservedBalance:n,votingBalance:i}}function cm(e,t){return xh([e.query.balances.freeBalance(t),e.query.balances.reservedBalance(t),e.query.system.accountNonce(t)]).pipe(Ge((([t,n,r])=>[r,[[t,n,sm(e),sm(e)]]])))}function dm(e,t){const n=t=>[t,[[sm(e),sm(e),sm(e),sm(e)]]];return(0,Je.m)(e.query.system.account)?e.query.system.account(t).pipe(Ge((({nonce:e})=>n(e)))):(0,Je.m)(e.query.system.accountNonce)?e.query.system.accountNonce(t).pipe(Ge((e=>n(e)))):Ze(n(e.registry.createType("Index")))}function um(e,t,n=["balances"]){const r=n.map((t=>e.derive[t]?.customAccount||e.query[t]?.account)).filter((e=>(0,Je.m)(e))),a=(e,t)=>[e,t.map((({feeFrozen:e,free:t,miscFrozen:n,reserved:r})=>[t,r,e,n]))];return r.length?(0,Je.m)(e.query.system.account)?xh([e.query.system.account(t),...r.map((e=>e(t)))]).pipe(Ge((([{nonce:e},...t])=>a(e,t)))):xh([e.query.system.accountNonce(t),...r.map((e=>e(t)))]).pipe(Ge((([e,...t])=>a(e,t)))):dm(e,t)}function lm(e,t){return e.query.system.account(t).pipe(Ge((t=>{const n=t.nonce?t.data:t[1],r=t.nonce||t[0];if(!n||n.isEmpty)return[r,[[sm(e),sm(e),sm(e),sm(e)]]];const{feeFrozen:a,free:i,miscFrozen:s,reserved:o}=n;return[r,[[i,o,a,s]]]})))}function fm(e,t){const n=t.registry.getModuleInstances(t.runtimeVersion.specName,"balances"),r=n&&"balances"!==n[0];return eb(e,(e=>t.derive.accounts.accountId(e).pipe(Le((e=>e?xh([Ze(e),r?um(t,e,n):(0,Je.m)(t.query.system?.account)?lm(t,e):(0,Je.m)(t.query.balances?.account)?um(t,e):(0,Je.m)(t.query.balances?.freeBalance)?cm(t,e):dm(t,e)]):Ze([t.registry.createType("AccountId"),[t.registry.createType("Index"),[[sm(t),sm(t),sm(t),sm(t)]]]]))),Ge((e=>function(e,[t,[n,[r,...a]]]){return(0,_.Z)({accountId:t,accountNonce:n,additional:a.map((t=>om(e,t)))},om(e,r))}(t,e))))))}function pm(e,t){return eb(e,(e=>e?.length?xh(e.map((e=>t.derive.balances.account(e)))):Ze([])))}const hm=im;function bm(e,t){const n=e.tx.bounties?e.tx.bounties:e.tx.treasury,r=[n.approveBounty,n.closeBounty,n.proposeCurator,n.unassignCurator];return t.filter((e=>r.find((t=>e.proposal&&t.is(e.proposal)))))}function mm([e,t,n,r]){const a=[];return e.forEach(((e,i)=>{e.isSome&&a.push({bounty:e.unwrap(),description:t[i].unwrapOrDefault().toUtf8(),index:n[i],proposals:r.filter((e=>e.proposal&&n[i].eq(e.proposal.args[0])))})})),a}function ym(e,t){const n=t.query.bounties||t.query.treasury;return eb(e,(()=>n.bounties?xh([n.bountyCount(),t.query.council?t.query.council.proposalCount():Ze(0)]).pipe(Le((()=>xh([n.bounties.keys(),t.derive.council?t.derive.council.proposals():Ze([])]))),Le((([e,r])=>{const a=e.map((({args:[e]})=>e));return xh([n.bounties.multi(a),n.bountyDescriptions.multi(a),Ze(a),Ze(bm(t,r))])})),Ge(mm)):Ze(mm([[],[],[],[]]))))}const xm=(0,Nt.be)("toBigInt","toBn","toNumber","unwrap");function gm(e){return xm(e.number)?e.number.unwrap():e.number}function vm(e){return(t,n)=>eb(t,(()=>e(n).pipe(Ge(gm))))}function wm(e,t,n){return e.queryAt(t.parentHash.isEmpty?n||t.hash:t.parentHash).pipe(Le((e=>function(e,t){const n=t.session?.validators?t.session.validators():Ze(null),{logs:[r]}=e.digest,a=r&&(r.isConsensus&&r.asConsensus[0].isNimbus&&r.asConsensus[1]||r.isPreRuntime&&r.asPreRuntime[0].isNimbus&&r.asPreRuntime[1]);if(a){if(t.authorMapping?.mappingWithDeposit)return xh([Ze(e),n,t.authorMapping.mappingWithDeposit(a).pipe(Ge((e=>e.unwrapOr({account:null}).account)))]);if(t.parachainStaking?.selectedCandidates&&t.session?.nextKeys){const r=a.toHex();return xh([Ze(e),n,t.parachainStaking.selectedCandidates().pipe(bb((e=>xh([Ze(e),t.session.nextKeys.multi(e).pipe(Ge((e=>e.findIndex((e=>e.unwrapOrDefault().nimbus.toHex()===r)))))]))),Ge((([e,t])=>-1===t?null:e[t])))])}}return xh([Ze(e),n,Ze(null)])}(t,e))))}const Sm=vm((e=>e.rpc.chain.subscribeNewHeads())),km=vm((e=>e.rpc.chain.subscribeFinalizedHeads()));function Tm(e,t){return eb(e,(()=>xh([t.derive.chain.bestNumber(),t.derive.chain.bestNumberFinalized()]).pipe(Ge((([e,n])=>t.registry.createType("BlockNumber",e.sub(n)))))))}function Pm(e,t){const[n]=e.logs.filter((e=>e.isConsensus)),[r]=e.logs.filter((e=>e.isPreRuntime)),[a]=e.logs.filter((e=>e.isSeal));let i;try{if(r){const[e,n]=r.asPreRuntime;i=e.extractAuthor(n,t)}if(!i&&n){const[e,r]=n.asConsensus;i=e.extractAuthor(r,t)}if(!i&&a){const[e,n]=a.asSeal;i=e.extractAuthor(n,t)}}catch{}return i}function Vm(e,t){return eb(e,(e=>xh([t.rpc.chain.getBlock(e),t.queryAt(e)]).pipe(Le((([n,r])=>xh([Ze(n),r.system.events(),wm(t,n.block.header,e)]))),Ge((([e,t,[,n,r]])=>function(e,t,n,r,a){const i=e.createClass("SignedBlock");return new class extends i{__internal__author;__internal__events;__internal__extrinsics;constructor(e,t,n,r,a){var i,s;super(e,t),this.__internal__author=a||Pm(this.block.header.digest,r||[]),this.__internal__events=n||[],this.__internal__extrinsics=(i=this.block.extrinsics,s=this.__internal__events,i.map(((e,t)=>{let n,r;const a=s.filter((({phase:e})=>e.isApplyExtrinsic&&e.asApplyExtrinsic.eq(t))).map((({event:e})=>("system"===e.section&&("ExtrinsicSuccess"===e.method?r=e.data[0]:"ExtrinsicFailed"===e.method&&(n=e.data[0],r=e.data[1])),e)));return{dispatchError:n,dispatchInfo:r,events:a,extrinsic:e}}))),this.createdAtHash=t?.createdAtHash}get author(){return this.__internal__author}get events(){return this.__internal__events}get extrinsics(){return this.__internal__extrinsics}}(e,t,n,r,a)}(t.registry,e,t,n,r))))))}function Mm(e,t){return eb(e,(e=>t.rpc.chain.getBlockHash(e).pipe(Le((e=>t.derive.chain.getBlock(e))))))}function _m(e,t,n,r){const a=e.createClass("Header");return new class extends a{__internal__author;constructor(e,t,n,r){super(e,t),this.__internal__author=r||Pm(this.digest,n||[]),this.createdAtHash=t?.createdAtHash}get author(){return this.__internal__author}}(e,t,n,r)}function Im(e,t){return eb(e,(e=>t.rpc.chain.getHeader(e).pipe(Le((n=>wm(t,n,e))),Ge((([e,t,n])=>_m((t||e).registry,e,t,n))))))}function Om(e,t){return eb(e,(()=>t.derive.chain.subscribeFinalizedHeads().pipe(Le((e=>t.derive.chain.getBlock(e.createdAtHash||e.hash))))))}function Nm(e,t){return eb(e,((e,n,r=[])=>t.rpc.chain.getHeader(e).pipe(Le((e=>e.parentHash.eq(n)?Ze([e,...r]):t.derive.chain._getHeaderRange(e.parentHash,n,[e,...r]))))))}function Em(e,t){return eb(e,(()=>{let e=null;return t.rpc.chain.subscribeFinalizedHeads().pipe(Le((n=>{const r=e,a=n.parentHash;return e=n.createdAtHash=n.hash,null===r||a.eq(r)?Ze(n):t.derive.chain._getHeaderRange(a,r,[n]).pipe(Le((e=>We(e))))})))}))}function Cm(e,t){return eb(e,(()=>t.derive.chain.subscribeNewHeads().pipe(Le((e=>t.derive.chain.getBlock(e.createdAtHash||e.hash))))))}function Am(e,t){return eb(e,(()=>t.rpc.chain.subscribeNewHeads().pipe(Le((e=>wm(t,e))),Ge((([e,t,n])=>(e.createdAtHash=e.hash,_m(e.registry,e,t,n)))))))}function Hm(e,t){return eb(e,(()=>function(e){return Ze([e.consts.contracts.callBaseFee||e.registry.createType("Balance"),e.consts.contracts.contractFee||e.registry.createType("Balance"),e.consts.contracts.creationFee||e.registry.createType("Balance"),e.consts.contracts.transactionBaseFee||e.registry.createType("Balance"),e.consts.contracts.transactionByteFee||e.registry.createType("Balance"),e.consts.contracts.transferFee||e.registry.createType("Balance"),e.consts.contracts.rentByteFee||e.registry.createType("Balance"),e.consts.contracts.rentDepositOffset||e.registry.createType("Balance"),e.consts.contracts.surchargeReward||e.registry.createType("Balance"),e.consts.contracts.tombstoneDeposit||e.registry.createType("Balance")])}(t).pipe(Ge((([e,t,n,r,a,i,s,o,c,d])=>({callBaseFee:e,contractFee:t,creationFee:n,rentByteFee:s,rentDepositOffset:o,surchargeReward:c,tombstoneDeposit:d,transactionBaseFee:r,transactionByteFee:a,transferFee:i}))))))}function Rm(e){return!Array.isArray(e)}function Bm(e){return e.stakeOf.entries().pipe(Ge((e=>e.map((([{args:[e]},t])=>[e,t])))))}function Lm(e){return e.votesOf.entries().pipe(Ge((e=>e.map((([{args:[e]},t])=>[e,t])))))}function Um(e,t){const n=t.query.elections||t.query.phragmenElection||t.query.electionsPhragmen;return eb(e,(()=>n?n.stakeOf?function(e,t){return xh([Bm(t),Lm(t)]).pipe(Ge((([t,n])=>{const r=[];return n.forEach((([t,n])=>{r.push([t,{stake:e.registry.createType("Balance"),votes:n}])})),t.forEach((([e,t])=>{const n=r.find((([t])=>t.eq(e)));n?n[1].stake=t:r.push([e,{stake:t,votes:[]}])})),r})))}(t,n):function(e){return e.voting.entries().pipe(Ge((e=>e.map((([{args:[e]},t])=>[e,Rm(t)?{stake:t.stake,votes:t.votes}:{stake:t[0],votes:t[1]}])))))}(n):Ze([])))}function zm(e,t){return eb(e,(e=>t.derive.council.votes().pipe(Ge((n=>(n.find((([t])=>t.eq(e)))||[null,{stake:t.registry.createType("Balance"),votes:[]}])[1])))))}const Dm=Vb("council"),qm=_b("council"),jm=Ob("council"),Fm=Nb("council"),Xm=Eb("council"),Wm=Ib("council"),Zm=Cb("council");function Gm(e,t){return eb(e,(e=>t.query.crowdloan.funds(e).pipe(Ge((e=>e.isSome?function(e){return(0,O.c)(Bt(":child_storage:default:",Ci(Bt("crowdloan",(e.fundIndex||e.trieIndex).toU8a()))))}(e.unwrap()):null)))))}var Km=new ke((function(e){return e.complete()}));function Ym(e){const t=e.length;if(0===t)return[];if(1===t)return e[0];let n=0;for(let i=0;i"crowdloan"===r&&["Contributed","Withdrew"].includes(n)&&t.eq(e))).reduce(((e,{event:{data:[t],method:n}})=>("Contributed"===n?e.added.push(t.toHex()):e.removed.push(t.toHex()),e)),{added:[],blockHash:t.createdAtHash?.toHex()||"-",removed:[]})}const Qm=1e3;function $m(e,t){let n=[],r=[];return e.query.system.events().pipe(Le((e=>{const a=Jm(t,e);return a.added.length||a.removed.length?(n=n.concat(...a.added),r=r.concat(...a.removed),Ze({added:n,addedDelta:a.added,blockHash:e.createdAtHash?.toHex()||"-",removed:r,removedDelta:a.removed})):Km})),xb({added:n,addedDelta:[],blockHash:"-",removed:r,removedDelta:[]}))}function ey(e,t,n){return function(e,t){return e.query.system.events().pipe(Le((e=>{const n=e.filter((({event:{data:[e],method:n,section:r}})=>"crowdloan"===r&&["AllRefunded","Dissolved","PartiallyRefunded"].includes(n)&&e.eq(t)));return n.length?Ze(e.createdAtHash?.toHex()||"-"):Km})),xb("-"))}(e,t).pipe(Le((()=>(0,Je.m)(e.rpc.childstate.getKeysPaged)?function(e,t){const n=new uh(void 0);return n.pipe(Le((n=>e.rpc.childstate.getKeysPaged(t,"0x",Qm,n))),vh((e=>{Zb((()=>{e.length===Qm?n.next(e[Qm-1].toHex()):n.complete()}))})),kh(),Ge((e=>Ym(e))))}(e,n):e.rpc.childstate.getKeys(n,"0x"))),Ge((e=>e.map((e=>e.toHex())))))}function ty(e,t){return eb(e,(e=>t.derive.crowdloan.childKey(e).pipe(Le((n=>n?function(e,t,n){return xh([ey(e,t,n),$m(e,t)]).pipe(Ge((([e,{added:t,blockHash:n,removed:r}])=>{const a={};return e.forEach((e=>{a[e]=!0})),t.forEach((e=>{a[e]=!0})),r.forEach((e=>{delete a[e]})),{blockHash:n,contributorsHex:Object.keys(a)}})))}(t,e,n):Ze({blockHash:"-",contributorsHex:[]}))))))}function ny(e,t,n){return xh(n.map((n=>e.rpc.childstate.getStorage(t,n)))).pipe(Ge((t=>t.map((t=>e.registry.createType("Option",t))).map((t=>t.isSome?e.registry.createType("Balance",t.unwrap()):e.registry.createType("Balance"))).reduce(((e,t,r)=>(0,_.Z)(e,{[n[r]]:t})),{}))))}function ry(e,t,n,r){return e.query.system.events().pipe(Le((a=>{const i=Jm(t,a),s=r.filter((e=>i.added.includes(e)||i.removed.includes(e)));return s.length?ny(e,n,s):Km})),xb({}))}function ay(e,t){return eb(e,((e,n)=>t.derive.crowdloan.childKey(e).pipe(Le((r=>r&&n.length?function(e,t,n,r){return xh([ny(e,n,r),ry(e,t,n,r)]).pipe(Ge((([e,t])=>(0,_.Z)({},e,t))))}(t,e,r,n):Ze({}))))))}function iy(e){return(0,O.c)((0,Fa.d)(e))}function sy(e){const t=At(e);if(t.isNeg())throw new Error("square root of negative numbers is not supported");if(t.lte(Mt))return new bt(~~Math.sqrt(t.toNumber()));let n=_t.clone();for(;;){const e=t.div(n).iadd(n).ishrn(1);if(n.eq(e)||n.eq(e.sub(wt)))return n;n=e}}function oy(e,t,n,r){for(;;){const a=e.div(t),i=n.div(r);if(a.lt(i))return!0;if(i.lt(a))return!1;const s=e.mod(t),o=n.mod(r);if(o.isZero())return!1;if(s.isZero())return!0;e=r,n=t,t=o,r=s}}function cy(e,t,n){return e.isSimpleMajority?n.votedAye.gt(n.votedNay):function(e,t,{votedAye:n,votedNay:r,votedTotal:a}){const i=sy(a);return!i.isZero()&&(e.isSuperMajorityApprove?oy(r,i,n,t):oy(r,t,n,i))}(e,t,n)}function dy(e,t,n){const r=t.status.tally?function(e,t){const n=[],r=[];return t.forEach((e=>{e.vote.isAye?n.push(e):r.push(e)})),{allAye:n,allNay:r,voteCount:n.length+r.length,voteCountAye:n.length,voteCountNay:r.length,votedAye:e.ayes,votedNay:e.nays,votedTotal:e.turnout}}(t.status.tally,n):n.reduce(((e,t)=>{const{balance:n,vote:r}=t,a=0===r.conviction.index,i=n.muln(a?1:r.conviction.index).divn(a?10:1);return r.isAye?(e.allAye.push(t),e.voteCountAye++,e.votedAye.iadd(i)):(e.allNay.push(t),e.voteCountNay++,e.votedNay.iadd(i)),e.voteCount++,e.votedTotal.iadd(i),e}),{allAye:[],allNay:[],voteCount:0,voteCountAye:0,voteCountNay:0,votedAye:new bt(0),votedNay:new bt(0),votedTotal:new bt(0)});return(0,_.Z)({},r,{isPassing:cy(t.status.threshold,e,r),votes:n})}function uy(e){return e.isLegacy?e.asLegacy.hash_.toHex():e.isLookup?e.asLookup.hash_.toHex():e.isInline?e.asInline.hash.toHex():(0,I.H)(e)?(0,it.vq)(e)?e:iy(e):(0,gt.U)(e)?(0,O.c)(e):e.toHex()}function ly(e){return uy(e.proposal||e.proposalHash)}const fy=iy("democrac");function py(e){return function(e){return e.derive.democracy.referendumsFinished().pipe(Le((()=>e.query.scheduler.agenda.keys())),Le((t=>{const n=t.map((({args:[e]})=>e));return n.length?xh([Ze(n),e.query.scheduler.agenda.multi(n).pipe(Mh((()=>Ze(n.map((()=>[]))))))]):Ze([[],[]])})))}(e).pipe(Le((([t,n])=>{const r=[];return t.forEach(((t,a)=>{(n[a]||[]).filter((e=>e.isSome)).forEach((n=>{const a=n.unwrap();if(a.maybeId.isSome){const n=a.maybeId.unwrap().toHex();if(n.startsWith(fy)){const i=a.call instanceof fn?function(e){return e.isInline||e.isLegacy||e.isLookup}(a.call)?uy(a.call):a.call.isHash?a.call.asHash.toHex():a.call.asValue.args[0].toHex():a.call.args[0].toHex();r.push({at:t,imageHash:i,index:e.registry.createType("(u64, ReferendumIndex)",n)[1]})}}}))})),xh([Ze(r),r.length?e.derive.democracy.preimages(r.map((({imageHash:e})=>e))):Ze([])])})),Ge((([e,t])=>e.map(((e,n)=>(0,_.Z)({image:t[n]},e))))))}function hy(e,t){return eb(e,(()=>(0,Je.m)(t.query.scheduler?.agenda)?py(t):t.query.democracy.dispatchQueue?function(e){return e.query.democracy.dispatchQueue().pipe(Le((t=>xh([Ze(t),e.derive.democracy.preimages(t.map((([,e])=>e)))]))),Ge((([e,t])=>e.map((([e,n,r],a)=>({at:e,image:t[a],imageHash:uy(n),index:r}))))))}(t):Ze([])))}const by=[0,1,2,4,8,16,32];function my(e,[t,n],r){const{balance:a,vote:i}=n.asStandard,[s,o]=r.isFinished?function(e,t,{approved:n,end:r}){return[r,n.isTrue&&t.isAye||n.isFalse&&t.isNay?r.add((e.consts.democracy.voteLockingPeriod||e.consts.democracy.enactmentPeriod).muln(by[t.conviction.index])):vt]}(e,i,r.asFinished):[vt,vt];return{balance:a,isDelegated:!1,isFinished:r.isFinished,referendumEnd:s,referendumId:t,unlockAt:o,vote:i}}function yy(e,t){return eb(e,(e=>t.query.democracy.votingOf?t.query.democracy.votingOf(e).pipe(Le((e=>e.isDirect?function(e,{votes:t}){return t.length?e.query.democracy.referendumInfoOf.multi(t.map((([e])=>e))).pipe(Ge((n=>t.map(((e,t)=>[e,n[t].unwrapOr(null)])).filter((e=>!!e[1]&&(0,$e.o)(e[1].end)&&e[0][1].isStandard)).map((([t,n])=>my(e,t,n)))))):Ze([])}(t,e.asDirect):e.isDelegating?function(e,{balance:t,conviction:n,target:r}){return e.derive.democracy.locks(r).pipe(Ge((r=>r.map((({isFinished:r,referendumEnd:a,referendumId:i,unlockAt:s,vote:o})=>({balance:t,isDelegated:!0,isFinished:r,referendumEnd:a,referendumId:i,unlockAt:s.isZero()?s:a.add((e.consts.democracy.voteLockingPeriod||e.consts.democracy.enactmentPeriod).muln(by[n.index])),vote:e.registry.createType("Vote",{aye:o.isAye,conviction:n})}))))))}(t,e.asDelegating):Ze([])))):Ze([])))}function xy(e,t){return eb(e,(()=>t.query.democracy?.nextExternal?t.query.democracy.nextExternal().pipe(Le((e=>function(e,t){if(t.isNone)return Ze(null);const[n,r]=t.unwrap();return e.derive.democracy.preimage(n).pipe(Ge((e=>({image:e,imageHash:uy(n),threshold:r}))))}(t,e)))):Ze(null)))}function gy(e,[t,n,r,a]){let i;try{i=e.registry.createType("Call",t.toU8a(!0))}catch(s){console.error(s)}return{at:a,balance:r,proposal:i,proposer:n}}function vy(e,t){const n=t.map((e=>uy(e)));return e.query.democracy.preimages.multi(n).pipe(Ge((t=>t.map((t=>function(e,t){if(!t.isNone){if(function(e,t){return!!t&&!e.query.democracy.dispatchQueue}(e,t)){const n=t.unwrap();if(n.isMissing)return;const{data:r,deposit:a,provider:i,since:s}=n.asAvailable;return gy(e,[r,i,a,s])}return gy(e,t.unwrap())}}(e,t))))))}function wy(e,t){const n=t.map((e=>uy(e))),r=e.registry.lookup.getTypeDef(e.query.preimage.preimageFor.creator.meta.type.asMap.key).type;return e.query.preimage.statusFor.multi(n).pipe(Le((t=>{const a=t.map((e=>e.unwrapOr(null))),i=a.map(((e,t)=>e?"H256"===r?n[t]:e.isRequested?[n[t],e.asRequested.len.unwrapOr(0)]:[n[t],e.asUnrequested.len]:null)).filter((e=>!!e));return e.query.preimage.preimageFor.multi(i).pipe(Ge((t=>{let r=-1;return a.map(((e,a)=>e?[n[a],e,t[++r].unwrapOr(null)]:[n[a],null,null])).map((t=>function(e,[t,n,r]){if(!n)return;const[a,i]=n.isUnrequested?function(e){return e.ticket||e.deposit}(n.asUnrequested):function(e){return(e.maybeTicket||e.deposit).unwrapOrDefault()}(n.asRequested);let s;if(r)try{s=e.registry.createType("Call",r.toU8a(!0))}catch(o){console.error(o)}return{at:vt,balance:i,proposal:s,proposalHash:t,proposer:a}}(e,t)))})))})))}function Sy(e,t){return eb(e,(e=>e.length?(0,Je.m)(t.query.democracy.preimages)?vy(t,e):(0,Je.m)(t.query.preimage.preimageFor)?wy(t,e):Ze([]):Ze([])))}const ky=sb(((e,t)=>e.derive.democracy.preimages([t])));function Ty([e,t,n]){return e.filter((([,,e],t)=>!!n[t]?.isSome&&!e.isEmpty)).map((([e,r,a],i)=>{const s=n[i].unwrap();return(0,_.Z)({image:t[i],imageHash:uy(r),index:e,proposer:a},function(e){return(0,Je.m)(e[1].mul)}(s)?{balance:s[1],seconds:s[0]}:{balance:s[0],seconds:s[1]})}))}function Py(e,t){return eb(e,(()=>(0,Je.m)(t.query.democracy?.publicProps)?t.query.democracy.publicProps().pipe(Le((e=>e.length?xh([Ze(e),t.derive.democracy.preimages(e.map((([,e])=>e))),t.query.democracy.depositOf.multi(e.map((([e])=>e)))]):Ze([[],[],[]]))),Ge(Ty)):Ze([])))}function Vy(e,t){return eb(e,(()=>t.query.democracy?.lowestUnbaked?t.queryMulti([t.query.democracy.lowestUnbaked,t.query.democracy.referendumCount]).pipe(Ge((([e,t])=>t.gt(e)?[...Array(t.sub(e).toNumber())].map(((t,n)=>e.addn(n))):[]))):Ze([])))}function My(e,t){return eb(e,(()=>t.derive.democracy.referendumsActive().pipe(Le((e=>e.length?xh([Ze(e),t.derive.democracy._referendumsVotes(e)]):Ze([[],[]]))),Ge((([e,t])=>e.map(((e,n)=>(0,_.Z)({},e,t[n]))))))))}function _y(e,t){return eb(e,(()=>t.derive.democracy.referendumIds().pipe(Le((e=>e.length?t.derive.democracy.referendumsInfo(e):Ze([]))))))}function Iy(e,t){return eb(e,(()=>t.derive.democracy.referendumIds().pipe(Le((e=>t.query.democracy.referendumInfoOf.multi(e))),Ge((e=>e.map((e=>e.unwrapOr(null))).filter((e=>!!e&&e.isFinished)).map((e=>e.asFinished)))))))}function Oy(e,t){return e.query.democracy.votersFor(t).pipe(Le((n=>xh([Ze(n),n.length?e.query.democracy.voteOf.multi(n.map((e=>[t,e]))):Ze([]),e.derive.balances.votingBalances(n)]))),Ge((([t,n,r])=>t.map(((t,a)=>({accountId:t,balance:r[a].votingBalance||e.registry.createType("Balance"),isDelegating:!1,vote:n[a]||e.registry.createType("Vote")}))))))}function Ny(e,t){return e.query.democracy.votingOf.entries().pipe(Ge((n=>{const r=n.map((([{args:[e]},t])=>[e,t])),a=function(e,t){return e.filter((([,e])=>e.isDirect)).map((([e,n])=>[e,n.asDirect.votes.filter((([e])=>e.eq(t)))])).filter((([,e])=>!!e.length)).reduce(((e,[t,n])=>n.reduce(((e,[,n])=>(n.isStandard&&e.push((0,_.Z)({accountId:t,isDelegating:!1},n.asStandard)),e)),e)),[])}(r,t),i=r.filter((([,e])=>e.isDelegating)).map((([e,t])=>[e,t.asDelegating]));return i.forEach((([t,{balance:n,conviction:r,target:s}])=>{const o=i.find((([e])=>e.eq(s))),c=a.find((({accountId:e})=>e.eq(o?o[0]:s)));c&&a.push({accountId:t,balance:n,isDelegating:!0,vote:e.registry.createType("Vote",{aye:c.vote.isAye,conviction:r})})})),a})))}function Ey(e,t){return eb(e,(e=>xh([t.derive.democracy.sqrtElectorate(),(0,Je.m)(t.query.democracy.votingOf)?Ny(t,e.index):Oy(t,e.index)]).pipe(Ge((([t,n])=>dy(t,e,n))))))}function Cy(e,t){return eb(e,(e=>e.length?xh(e.map((e=>t.derive.democracy._referendumVotes(e)))):Ze([])))}function Ay(e,t){return eb(e,((e,n)=>{const r=function(e){if(e.isNone)return null;const t=e.unwrap();return function(e){return!!e.proposalHash}(t)?t:t.isOngoing?t.asOngoing:null}(n);return r?t.derive.democracy.preimage(r.proposal||r.proposalHash).pipe(Ge((n=>({image:n,imageHash:ly(r),index:t.registry.createType("ReferendumIndex",e),status:r})))):Ze(null)}))}function Hy(e,t){return eb(e,(e=>e.length?t.query.democracy.referendumInfoOf.multi(e).pipe(Le((n=>xh(e.map(((e,r)=>t.derive.democracy._referendumInfo(e,n[r])))))),Ge((e=>e.filter((e=>!!e))))):Ze([])))}function Ry(e,t){return eb(e,(()=>t.query.balances.totalIssuance().pipe(Ge(sy))))}function By(e){return function(e){return!Array.isArray(e)}(e)?[e.who,e.stake]:e}function Ly(e){return function(e){return Array.isArray(e)}(e)?e[0]:e}function Uy([,e],[,t]){return t.cmp(e)}function zy(e,t){return eb(e,(()=>{const[e,n]=function(e){const[t]=e.registry.getModuleInstances(e.runtimeVersion.specName,"council")||["council"],n=e.query.phragmenElection?"phragmenElection":e.query.electionsPhragmen?"electionsPhragmen":e.query.elections?"elections":null;return[e.query[t]?t:"council",n]}(t);return(n?function(e,t,n){return e.queryMulti([e.query[t].members,e.query[n].candidates,e.query[n].members,e.query[n].runnersUp])}(t,e,n):function(e,t){return xh([e.query[t].members(),Ze([]),Ze([]),Ze([])])}(t,e)).pipe(Ge((([e,r,a,i])=>(0,_.Z)({},function(e,t){return t?{candidacyBond:e.consts[t].candidacyBond,desiredRunnersUp:e.consts[t].desiredRunnersUp,desiredSeats:e.consts[t].desiredMembers,termDuration:e.consts[t].termDuration,votingBond:e.consts[t].votingBond,votingBondBase:e.consts[t].votingBondBase,votingBondFactor:e.consts[t].votingBondFactor}:{}}(t,n),{candidateCount:t.registry.createType("u32",r.length),candidates:r.map(Ly),members:a.length?a.map(By).sort(Uy):e.map((e=>[e,t.registry.createType("Balance")])),runnersUp:i.map(By).sort(Uy)}))))}))}function Dy([e,t,n,r]){return t.forEach(((t,a)=>{const i=t.toString(),s=r[a],o=!n[a].isEmpty,c=e[i];c&&c.hasMessage===o&&c.blockCount.eq(s)||(e[i]={blockCount:s,hasMessage:o,isOnline:o||s.gt(vt)})})),e}function qy(e,t){return eb(e,(()=>t.query.imOnline?.receivedHeartbeats?t.derive.staking.overview().pipe(Le((({currentIndex:e,validators:n})=>xh([Ze({}),Ze(n),t.query.imOnline.receivedHeartbeats.multi(n.map(((t,n)=>[e,n]))),t.query.imOnline.authoredBlocks.multi(n.map((t=>[e,t])))]))),Ge(Dy)):Ze({})))}const jy=Vb("membership"),Fy=_b("membership"),Xy=Ob("membership"),Wy=Nb("membership"),Zy=Eb("membership"),Gy=Ib("membership"),Ky=Cb("membership");function Yy(e,t){return!!e.isSome&&e.unwrap().some((e=>e.eq(t)))}function Jy(e,t){const n=t.find((([t])=>t===e));if(n&&n[1].isSome){const[e,t]=n[1].unwrap();return(0,_.Z)({collatorId:e},t.isWithRetries?{isRetriable:!0,retries:t.asWithRetries.toNumber()}:{isRetriable:!1,retries:0})}return null}function Qy(e,t){return t.map((t=>{const n=t.find((([t])=>t===e));return n?n[1]:null}))}function $y(e,t){return eb(e,(e=>t.query.registrar&&t.query.parachains?t.queryMulti([t.query.registrar.active,t.query.registrar.retryQueue,t.query.registrar.selectedThreads,t.query.parachains.didUpdate,[t.query.registrar.paras,e],[t.query.registrar.pendingSwap,e],[t.query.parachains.heads,e],[t.query.parachains.relayDispatchQueue,e]]).pipe(Ge((n=>function(e,[t,n,r,a,i,s,o,c]){return i.isNone?null:{active:Jy(e,t),didUpdate:Yy(a,e),heads:o,id:e,info:(0,_.Z)({id:e},i.unwrap()),pendingSwapId:s.unwrapOr(null),relayDispatchQueue:c,retryCollators:Qy(e,n),selectedCollators:Qy(e,r)}}(t.registry.createType("ParaId",e),n)))):Ze(null)))}function ex([e,t,n,r,a]){return e.map(((e,i)=>({didUpdate:Yy(t,e),id:e,info:(0,_.Z)({id:e},r[i].unwrapOr(null)),pendingSwapId:a[i].unwrapOr(null),relayDispatchQueueSize:n[i][0].toNumber()})))}function tx(e,t){return eb(e,(()=>t.query.registrar?.parachains&&t.query.parachains?t.query.registrar.parachains().pipe(Le((e=>xh([Ze(e),t.query.parachains.didUpdate(),t.query.parachains.relayDispatchQueueSize.multi(e),t.query.registrar.paras.multi(e),t.query.registrar.pendingSwap.multi(e)]))),Ge(ex)):Ze([])))}function nx([e,t,n,r,a]){return{activeEra:t,activeEraStart:n,currentEra:r,currentIndex:e,validatorCount:a}}function rx(e,t){return eb(e,(()=>t.query.session?t.query.staking?function(e){return e.queryMulti([e.query.session.currentIndex,e.query.staking.activeEra,e.query.staking.currentEra,e.query.staking.validatorCount]).pipe(Ge((([e,t,n,r])=>{const{index:a,start:i}=t.unwrapOrDefault();return nx([e,a,i,n.unwrapOrDefault(),r])})))}(t):function(e){return e.query.session.currentIndex().pipe(Ge((t=>nx([t,e.registry.createType("EraIndex"),e.registry.createType("Option"),e.registry.createType("EraIndex"),e.registry.createType("u32")]))))}(t):function(e){return Ze(nx([e.registry.createType("SessionIndex",1),e.registry.createType("EraIndex"),e.registry.createType("Option"),e.registry.createType("EraIndex"),e.registry.createType("u32")]))}(t)))}function ax(e,t){return eb(e,(()=>t.derive.session.indexes().pipe(Ge((e=>{const n=t.consts?.babe?.epochDuration||t.registry.createType("u64",1),r=t.consts?.staking?.sessionsPerEra||t.registry.createType("SessionIndex",1);return(0,_.Z)({eraLength:t.registry.createType("BlockNumber",r.mul(n)),isEpoch:!!t.query.babe,sessionLength:n,sessionsPerEra:r},e)})))))}function ix(e){return(t,n)=>eb(t,(()=>n.derive.session.progress().pipe(Ge((t=>t[e])))))}function sx(e,t){return eb(e,(()=>t.query.babe?function(e){return e.derive.session.info().pipe(Le((t=>xh([Ze(t),e.query.staking?.erasStartSessionIndex?e.queryMulti([e.query.babe.currentSlot,e.query.babe.epochIndex,e.query.babe.genesisSlot,[e.query.staking.erasStartSessionIndex,t.activeEra]]):e.queryMulti([e.query.babe.currentSlot,e.query.babe.epochIndex,e.query.babe.genesisSlot])]))),Ge((([t,[n,r,a,i]])=>[t,[n,r,a,i&&i.isSome?i.unwrap():e.registry.createType("SessionIndex",1)]])))}(t).pipe(Ge((([e,n])=>function(e,t,[n,r,a,i]){const s=r.mul(t.sessionLength).iadd(a),o=n.sub(s),c=t.currentIndex.sub(i).imul(t.sessionLength).iadd(o);return(0,_.Z)({eraProgress:e.registry.createType("BlockNumber",c),sessionProgress:e.registry.createType("BlockNumber",o)},t)}(t,e,n)))):function(e){return e.derive.session.info().pipe(Ge((t=>(0,_.Z)({eraProgress:e.registry.createType("BlockNumber"),sessionProgress:e.registry.createType("BlockNumber")},t))))}(t)))}const ox=ix("eraLength"),cx=ix("eraProgress"),dx=ix("sessionProgress");function ux(e,t){return eb(e,(()=>t.query.society.suspendedCandidates&&t.query.society.candidates.creator.meta.type.isPlain?function(e){return e.query.society.candidates().pipe(Le((t=>xh([Ze(t),e.query.society.suspendedCandidates.multi(t.map((({who:e})=>e)))]))),Ge((([e,t])=>e.map((({kind:e,value:n,who:r},a)=>({accountId:r,isSuspended:t[a].isSome,kind:e,value:n}))))))}(t):function(e){return e.query.society.candidates.entries().pipe(Ge((e=>e.filter((([,e])=>e.isSome)).map((([{args:[e]},t])=>[e,t.unwrap()])).map((([e,{bid:t,kind:n}])=>({accountId:e,isSuspended:!1,kind:n,value:t}))))))}(t)))}function lx(e,t){return eb(e,(()=>xh([t.query.society.bids(),t.query.society.defender?t.query.society.defender():Ze(void 0),t.query.society.founder(),t.query.society.head(),t.query.society.maxMembers?t.query.society.maxMembers():Ze(void 0),t.query.society.pot()]).pipe(Ge((([e,t,n,r,a,i])=>({bids:e,defender:t?.unwrapOr(void 0),founder:n.unwrapOr(void 0),hasDefender:t?.isSome&&r.isSome&&!r.eq(t)||!1,head:r.unwrapOr(void 0),maxMembers:a,pot:i}))))))}function fx(e,t){return eb(e,(e=>t.derive.society._members([e]).pipe(Ge((([e])=>e)))))}function px(e,t){return eb(e,(e=>t.query.society.members.creator.meta.type.isMap?function(e,t){return xh([Ze(t),e.query.society.members.multi(t),e.query.society.payouts.multi(t),e.query.society.challengeRoundCount().pipe(Le((n=>e.query.society.defenderVotes.multi(t.map((e=>[n,e])))))),e.query.society.suspendedMembers.multi(t)]).pipe(Ge((([e,t,n,r,a])=>e.map(((e,i)=>t[i].isSome?{accountId:e,isDefenderVoter:r[i].isSome,isSuspended:a[i].isSome,member:t[i].unwrap(),payouts:n[i].payouts}:null)).filter((e=>!!e)).map((({accountId:e,isDefenderVoter:t,isSuspended:n,member:r,payouts:a})=>({accountId:e,isDefenderVoter:t,isSuspended:n,payouts:a,strikes:r.strikes,vouching:r.vouching.unwrapOr(void 0)}))))))}(t,e):function(e,t){return xh([Ze(t),e.query.society.payouts.multi(t),e.query.society.strikes.multi(t),e.query.society.defenderVotes.multi(t),e.query.society.suspendedMembers.multi(t),e.query.society.vouching.multi(t)]).pipe(Ge((([e,t,n,r,a,i])=>e.map(((e,s)=>({accountId:e,isDefenderVoter:r[s].isSome,isSuspended:a[s].isTrue,payouts:t[s],strikes:n[s],vote:r[s].unwrapOr(void 0),vouching:i[s].unwrapOr(void 0)}))))))}(t,e)))}function hx(e,t){return eb(e,(()=>t.query.society.members.creator.meta.type.isMap?t.query.society.members.keys().pipe(Le((e=>t.derive.society._members(e.map((({args:[e]})=>e)))))):t.query.society.members().pipe(Le((e=>t.derive.society._members(e))))))}const bx={withDestination:!0,withLedger:!0,withNominations:!0,withPrefs:!0};function mx(e,t,n){const r=Object.entries((a=(t?.unlocking||[]).filter((({era:e})=>e.unwrap().gt(n.activeEra))),a.reduce(((e,{era:t,value:n})=>{const r=t.toString();return e[r]=(e[r]||vt).add(n.unwrap()),e}),{}))).map((([t,r])=>({remainingEras:new bt(t).isub(n.activeEra),value:e.registry.createType("Balance",r)})));var a;return r.length?r:void 0}function yx(e,t,n){return e.registry.createType("Balance",(t?.unlocking||[]).reduce(((e,{era:t,value:r})=>t.unwrap().gt(n.currentEra)?e:e.iadd(r.unwrap())),new bt(0)))}function xx(e,t){return eb(e,((e,n=bx)=>t.derive.session.info().pipe(Le((r=>xh([t.derive.staking.keysMulti(e),t.derive.staking.queryMulti(e,n)]).pipe(Ge((([e,n])=>n.map(((n,a)=>function(e,t,n,r){return(0,_.Z)({},n,r,{redeemable:yx(e,r.stakingLedger,t),unlocking:mx(e,r.stakingLedger,t)})}(t,r,e[a],n)))))))))))}const gx=sb(((e,t,n)=>e.derive.staking.accounts([t],n)));function vx(e,t){return eb(e,(()=>t.derive.session.indexes().pipe(Le((({activeEra:e})=>t.query.staking.erasRewardPoints(e))))))}const wx={withController:!0,withExposure:!0,withPrefs:!0};function Sx(e,t){return eb(e,((e=wx,n=0)=>t.derive.staking.validators().pipe(Le((({nextElected:r,validators:a})=>t.derive.staking.queryMulti(function(e,t){return Ym([e,t.filter((t=>!e.find((e=>e.eq(t)))))])}(r,a),e,n).pipe(Ge((e=>({info:e,nextElected:r,validators:a})))))))))}new Map;const kx={del:()=>{},forEach:()=>{},get:()=>{},set:(e,t)=>t},Tx=6048e5;let Px;function Vx(e,t,n){const r=`${e}-${t.toString()}`;return[r,n?void 0:Px.get(r)]}function Mx(e,t,n){return n?[]:t.map((t=>Px.get(`${e}-${t.toString()}`))).filter((e=>!!e))}function _x(e,t,n){return!t&&Px.set(e,n),n}function Ix(e,t,n){return!t&&n.forEach((t=>Px.set(`${e}-${t.era.toString()}`,t))),n}function Ox(e,t,n){return e.map((e=>t.find((({era:t})=>e.eq(t)))||n.find((({era:t})=>e.eq(t))))).filter((e=>!!e))}function Nx(e,t){const n=Math.ceil(e.length/t);if(1===n)return[e];const r=Array(n);for(let a=0;at.del(`${e}${n}`),forEach:t.forEach,get:n=>{const r=`${e}${n}`,a=t.get(r);if(a)return a.x=Date.now(),t.set(r,a),a.v},set:(n,r)=>{t.set(`${e}${n}`,{v:r,x:Date.now()})}}}(`derive:${e}:`,t):kx,t&&function(e){const t=Date.now(),n=[];e.forEach(((e,{x:r})=>{t-r>Tx&&n.push(e)})),n.forEach((t=>e.del(t)))}(t)}();const Ex=14;function Cx(e,t){return e.filter((e=>!t.some((({era:t})=>e.eq(t)))))}function Ax(e){return(t,n)=>eb(t,((t=!1)=>n.derive.staking.erasHistoric(t).pipe(Le((r=>n.derive.staking[e](r,t))))))}function Hx(e){return(t,n)=>eb(t,((t,r=!1,a)=>n.derive.staking.erasHistoric(r).pipe(Le((i=>n.derive.staking[e](t,i,r,a||0))))))}function Rx(e){return(t,n)=>eb(t,(t=>n.derive.staking[e](t,!0)))}function Bx(e){return(t,n)=>eb(t,((t,r)=>t.length?function(e,t){const n=Nx(e,Ex);let r=0;const a=new uh(n[r]);return a.pipe(Le(t),vh((()=>{Zb((()=>{r++,r===n.length?a.complete():a.next(n[r])}))})),kh(),Ge(Ym))}(t,(t=>xh(t.map((t=>n.derive.staking[e](t,r)))))):Ze([])))}const Lx="eraExposure";function Ux(e,t){return eb(e,((e,n=!1)=>{const[r,a]=Vx(Lx,e,n);return a?Ze(a):t.query.staking.erasStakersPaged?t.query.staking.erasStakersPaged.entries(e).pipe(Ge((t=>_x(r,n,function(e,t){const n={},r={};return t.forEach((([e,t])=>{if(t.isSome){const a=e.args[1].toString(),i=t.unwrap();r[a]=i,i.others.forEach((({who:e},t)=>{const r=e.toString();n[r]=n[r]||[],n[r].push({validatorId:a,validatorIndex:t})}))}})),{era:e,nominators:n,validators:r}}(e,t))))):t.query.staking.erasStakersClipped.entries(e).pipe(Ge((t=>_x(r,n,function(e,t){const n={},r={};return t.forEach((([e,t])=>{const a=e.args[1].toString();r[a]=t,t.others.forEach((({who:e},t)=>{const r=e.toString();n[r]=n[r]||[],n[r].push({validatorId:a,validatorIndex:t})}))})),{era:e,nominators:n,validators:r}}(e,t)))))}))}const zx=Rx("_eraExposure"),Dx=Bx("_eraExposure"),qx=Ax("_erasExposure");function jx(e,t){return eb(e,(e=>xh([t.query.staking.activeEra(),t.consts.staking.historyDepth?Ze(t.consts.staking.historyDepth):t.query.staking.historyDepth()]).pipe(Ge((([n,r])=>{const a=[],i=r.toNumber(),s=n.unwrapOrDefault().index;let o=s;for(;o.gte(vt)&&a.lengthe.gt(vt))).reduce(((e,[t,n])=>(e[t.toString()]=n,e)),{})}function Wx(e,t){return eb(e,((e,n)=>{if(!e.length)return Ze([]);const r=Mx(Fx,e,n),a=Cx(e,r);return a.length?t.query.staking.erasRewardPoints.multi(a).pipe(Ge((t=>Ox(e,r,Ix(Fx,n,function(e,t){return e.map(((e,n)=>({era:e,eraPoints:t[n].total,validators:Xx(t[n])})))}(a,t)))))):Ze(r)}))}const Zx=Ax("_erasPoints"),Gx="eraPrefs";function Kx(e,t){return eb(e,((e,n)=>{const[r,a]=Vx(Gx,e,n);return a?Ze(a):t.query.staking.erasValidatorPrefs.entries(e).pipe(Ge((t=>_x(r,n,function(e,t){const n={};return t.forEach((([e,t])=>{n[e.args[1].toString()]=t})),{era:e,validators:n}}(e,t)))))}))}const Yx=Rx("_eraPrefs"),Jx=Bx("_eraPrefs"),Qx=Ax("_erasPrefs"),$x="eraRewards";function eg(e,t){return eb(e,((e,n)=>{if(!e.length)return Ze([]);const r=Mx($x,e,n),a=Cx(e,r);return a.length?t.query.staking.erasValidatorReward.multi(a).pipe(Ge((t=>Ox(e,r,Ix($x,n,function(e,t){return e.map(((e,n)=>({era:e,eraReward:t[n].unwrapOrDefault()})))}(a,t)))))):Ze(r)}))}const tg=Ax("_erasRewards"),ng="eraSlashes";function rg(e,t){return eb(e,((e,n)=>{const[r,a]=Vx(ng,e,n);return a?Ze(a):xh([t.query.staking.nominatorSlashInEra.entries(e),t.query.staking.validatorSlashInEra.entries(e)]).pipe(Ge((([t,a])=>_x(r,n,function(e,t,n){const r={},a={};return t.forEach((([e,t])=>{r[e.args[1].toString()]=t.unwrap()})),n.forEach((([e,t])=>{a[e.args[1].toString()]=t.unwrapOrDefault()[1]})),{era:e,nominators:r,validators:a}}(e,t,a)))))}))}const ag=Rx("_eraSlashes"),ig=Bx("_eraSlashes"),sg=Ax("_erasSlashes");const og=sb(((e,t)=>e.derive.staking.keysMulti([t])));function cg(e,t){return eb(e,(e=>e.length?t.query.session.queuedKeys().pipe(Le((n=>xh([Ze(n),t.consts.session?.dedupKeyPrefix?t.query.session.nextKeys.multi(e.map((e=>[t.consts.session.dedupKeyPrefix,e]))):xh(e.map((e=>t.query.session.nextKeys(e))))]))),Ge((([t,n])=>e.map(((e,r)=>function(e,t,n){const r=(t.find((([t])=>t.eq(e)))||[void 0,[]])[1],a=n.unwrapOr([]);return{nextSessionIds:Array.isArray(a)?a:[...a.values()],sessionIds:Array.isArray(r)?r:[...r.values()]}}(e,t,n[r])))))):Ze([])))}function dg(e,t){return eb(e,(()=>xh([t.derive.session.indexes(),t.derive.staking.validators()]).pipe(Ge((([e,{nextElected:t,validators:n}])=>(0,_.Z)({},e,{nextElected:t,validators:n}))))))}function ug(e,t){return eb(e,((e,n,r,a)=>{const i=t.registry.createType("Exposure"),s=t.registry.createType("Option"),o=t.registry.createType("Option");return n.length?xh([t.query.staking.erasStakersClipped?xh(n.map((n=>t.query.staking.erasStakersClipped(n,e)))):Ze(n.map((e=>i))),t.query.staking.erasStakers?xh(n.map((n=>t.query.staking.erasStakers(n,e)))):Ze(n.map((e=>i))),t.query.staking.erasStakersPaged?xh(n.map((n=>t.query.staking.erasStakersPaged(n,e,a)))):Ze(n.map((e=>s))),t.query.staking.erasStakersOverview?xh(n.map((n=>t.query.staking.erasStakersOverview(n,e)))):Ze(n.map((e=>o)))]).pipe(Ge((([e,t,r,a])=>n.map(((n,i)=>({clipped:e[i],era:n,exposure:t[i],exposureMeta:a[i],exposurePaged:r[i]})))))):Ze([])}))}const lg=sb(((e,t,n,r)=>e.derive.staking._ownExposures(t,[n],!0,r||0))),fg=Hx("_ownExposures");function pg(e,t){return eb(e,((e,n,r)=>n.length?xh([xh(n.map((n=>t.query.staking.validatorSlashInEra(n,e)))),xh(n.map((n=>t.query.staking.nominatorSlashInEra(n,e))))]).pipe(Ge((([e,t])=>n.map(((n,r)=>({era:n,total:e[r].isSome?e[r].unwrap()[1]:t[r].unwrapOrDefault()})))))):Ze([])))}const hg=sb(((e,t,n)=>e.derive.staking._ownSlashes(t,[n],!0))),bg=Hx("_ownSlashes");function mg(e,t){return e.registry.createType("Vec",t.filter((e=>-1!==e)))}function yg(e,t,n,{withClaimedRewardsEras:r,withController:a,withDestination:i,withExposure:s,withExposureErasStakersLegacy:o,withExposureMeta:c,withLedger:d,withNominations:u,withPrefs:l},f){const p=e.registry.createType("Option"),h=e.registry.createType("RewardDestination"),b=e.registry.createType("Exposure"),m=e.registry.createType("ValidatorPrefs"),y=e.registry.createType("Option"),x=e.registry.createType("Option"),g=[-1],v=Number(e.consts.staking.historyDepth.toNumber()),w=new Array(v).fill(0).map(((e,t)=>0===t?n.toNumber()-1:n.toNumber()-t-1));return xh([a||d?xh(t.map((t=>e.query.staking.bonded(t)))):Ze(t.map((()=>null))),u?xh(t.map((t=>e.query.staking.nominators(t)))):Ze(t.map((()=>p))),i?xh(t.map((t=>e.query.staking.payee(t)))):Ze(t.map((()=>h))),l?xh(t.map((t=>e.query.staking.validators(t)))):Ze(t.map((()=>m))),s&&e.query.staking.erasStakersPaged?xh(t.map((t=>e.query.staking.erasStakersPaged(n,t,f)))):Ze(t.map((()=>y))),c&&e.query.staking.erasStakersOverview?xh(t.map((t=>e.query.staking.erasStakersOverview(n,t)))):Ze(t.map((()=>x))),r&&e.query.staking.claimedRewards?xh([e.query.staking.claimedRewards.entries(),e.query.staking.erasStakersOverview.entries()]).pipe(Ge((([e,n])=>function(e,t,n,r){const a={},i={},s=e.map((e=>e.toString()));return n.forEach((([e,t])=>{const n=e.args[1].toString(),r=e.args[0].toNumber();s.includes(n)&&(a[n]||(a[n]=new Map),a[n].set(r,t.toArray()))})),r.forEach((([e,t])=>{const n=e.args[1].toString(),r=e.args[0].toNumber();s.includes(n)&&t.isSome&&(i[n]||(i[n]=new Map),i[n].set(r,t.unwrap().pageCount))})),e.map((e=>{const n=a[e.toString()],r=i[e.toString()];return t.map((e=>{if(n&&n.has(e)&&r&&r.has(e)){const t=n.get(e),a=r.get(e);return t.length===a.toNumber()?e:-1}return-1}))}))}(t,w,e,n)))):Ze(t.map((()=>g))),o&&e.query.staking.erasStakers?xh(t.map((t=>e.query.staking.erasStakers(n,t)))):Ze(t.map((()=>b)))])}function xg(e,t,n,r,a){return yg(e,n,t,r,a).pipe(Le((([t,a,i,s,o,c,d,u])=>function(e,t,{withLedger:n=!1}){const r=t.filter((e=>n&&!!e&&e.isSome)).map((e=>e.unwrap())),a=e.registry.createType("Option");return(r.length?xh(r.map((t=>e.query.staking.ledger(t)))):Ze([])).pipe(Ge((e=>{let n=-1;return t.map((t=>t&&t.isSome&&e[++n]||a))})))}(e,t,r).pipe(Ge((r=>n.map(((n,l)=>function(e,t,n,r,a,i,s,o,c,d,u){return{accountId:t,claimedRewardsEras:mg(e,d),controllerId:n?.unwrapOr(null)||null,exposureEraStakers:u,exposureMeta:c,exposurePaged:s,nominators:r.isSome?r.unwrap().targets:[],rewardDestination:(l=a,"boolean"==typeof l.isSome?l.unwrapOr(null):l),stakingLedger:o.unwrapOrDefault(),stashId:t,validatorPrefs:i};var l}(e,n,t[l],a[l],i[l],s[l],o[l],r[l],c[l],d[l],u[l])))))))))}const gg=sb(((e,t,n,r)=>e.derive.staking.queryMulti([t],n,r)));function vg(e,t){return eb(e,((e,n,r)=>t.derive.session.indexes().pipe(Le((({activeEra:a})=>{const i=e.map((e=>t.registry.createType("AccountId",e))),s=r||0;return i.length?xg(t,a,i,n,s):Ze([])})))))}function wg(e,t){return eb(e,((e,n,r=!1)=>{const a=e.map((e=>t.registry.createType("AccountId",e).toString()));return t.derive.staking._erasExposure(n,r).pipe(Ge((e=>a.map((t=>e.map((({era:e,nominators:n,validators:r})=>{const a=!!r[t],i={},s=n[t]||[];return a?i[t]=r[t]:s&&s.forEach((({validatorId:e})=>{i[e]=r[e]})),{era:e,isEmpty:!Object.keys(i).length,isValidator:a,nominating:s,validators:i}})))))))}))}function Sg(e,t){return eb(e,((e,n=!1)=>t.derive.staking.erasHistoric(n).pipe(Le((r=>t.derive.staking._stakerExposures(e,r,n))))))}const kg=sb(((e,t,n)=>e.derive.staking.stakerExposures([t],n)));function Tg(e,t){return eb(e,((e,n,r)=>{const a=t.registry.createType("AccountId",e).toString();return t.derive.staking._erasPoints(n,r).pipe(Ge((e=>e.map((({era:e,eraPoints:n,validators:r})=>({era:e,eraPoints:n,points:r[a]||t.registry.createType("RewardPoint")}))))))}))}const Pg=Hx("_stakerPoints");function Vg(e,t){return eb(e,((e,n,r)=>t.query.staking.erasValidatorPrefs.multi(n.map((t=>[t,e]))).pipe(Ge((e=>e.map(((e,t)=>({era:n[t],validatorPrefs:e}))))))))}const Mg=Hx("_stakerPrefs");function _g(e,t){const n=t?(t.legacyClaimedRewards||t.claimedRewards).toArray():[];return e.toArray().concat(n)}function Ig(e,t,{claimedRewardsEras:n,rewards:r,stakingLedger:a}){const i=e.filter((e=>!_g(n,a).some((t=>t.eq(e))))),s=t.map((([e])=>e)),o=t.map((([,e])=>e));return r.filter((({isEmpty:e})=>!e)).filter((e=>!!i.some((t=>e.era.eq(t)))&&(function(e,t,n,r){const a=[];Object.keys(n.validators).forEach((i=>{const s=e.indexOf(i);if(-1!==s){const e=t[s].stakingLedger;_g(r,e).some((e=>n.era.eq(e)))&&a.push(i)}})),a.forEach((e=>{delete n.validators[e]}))}(s,o,e,n),!0))).filter((({validators:e})=>0!==Object.keys(e).length)).map((e=>(0,_.Z)({},e,{nominators:e.nominating.filter((t=>e.validators[t.validatorId]))})))}function Og(e,t){return eb(e,((e,n=!1)=>xh([t.derive.staking._erasPoints(e,n),t.derive.staking._erasPrefs(e,n),t.derive.staking._erasRewards(e,n)])))}function Ng(e,t){return eb(e,((e,n,r=!1)=>xh([t.derive.staking.queryMulti(e,{withClaimedRewardsEras:!0,withLedger:!0}),t.derive.staking._stakerExposures(e,n,r),t.derive.staking._stakerRewardsEras(n,r)]).pipe(Le((([e,a,i])=>{const s=e.map((({claimedRewardsEras:e,stakingLedger:n,stashId:r},s)=>r&&(n||e)?function(e,t,[n,r,a],i){return i.map((({era:i,isEmpty:s,isValidator:o,nominating:c,validators:d})=>{const{eraPoints:u,validators:l}=n.find((e=>e.era.eq(i)))||{eraPoints:vt,validators:{}},{eraReward:f}=a.find((e=>e.era.eq(i)))||{eraReward:e.registry.createType("Balance")},{validators:p}=r.find((e=>e.era.eq(i)))||{validators:{}},h={},b=t.toString();return Object.entries(d).forEach((([t,n])=>{const r=l[t]||vt,a=p[t]?.commission.unwrap()||vt,i=n.total?n.total?.unwrap():n.pageTotal?n.pageTotal?.unwrap():vt;let s,o=vt;if(!(i.isZero()||r.isZero()||u.isZero())){o=f.mul(r).div(u);const e=a.mul(o).div(Pt);let c;if(t===b)if(n.own)c=n.own.unwrap();else{const e=n.others.find((({who:e})=>e.eq(t)));c=e?e.value.unwrap():vt}else{const e=n.others.find((({who:e})=>e.eq(b)));c=e?e.value.unwrap():vt}s=o.sub(e).imul(c).div(i).iadd(t===b?e:vt)}h[t]={total:e.registry.createType("Balance",o),value:e.registry.createType("Balance",s)}})),{era:i,eraReward:f,isEmpty:s,isValidator:o,nominating:c,validators:h}}))}(t,r,i,a[s]):[]));if(r)return Ze(s);const[o,c]=s.reduce((([e,t],n)=>{const r=[];return t.push(r),n.forEach((({validators:t})=>Object.keys(t).forEach((t=>{r.includes(t)||(r.push(t),e.includes(t)||e.push(t))})))),[e,t]}),[[],[]]);return t.derive.staking.queryMulti(o,{withClaimedRewardsEras:!0,withLedger:!0}).pipe(Ge((t=>e.map((({claimedRewardsEras:e,stakingLedger:r},a)=>Ig(n,c[a].map((e=>[e,t.find((t=>t.accountId.eq(e)))])).filter((e=>!!e[1])),{claimedRewardsEras:e,rewards:s[a],stakingLedger:r}))))))})))))}const Eg=sb(((e,t,n)=>e.derive.staking.erasHistoric(n).pipe(Le((r=>e.derive.staking._stakerRewards([t],r,n))))));function Cg(e,t){return eb(e,((e,n)=>e.length&&n.length?t.derive.staking._stakerRewards(e,n,!1):Ze([])))}function Ag(e,t){return eb(e,((e,n=!1)=>t.derive.staking.erasHistoric(n).pipe(Le((n=>t.derive.staking.stakerRewardsMultiEras(e,n))))))}function Hg(e,t){return eb(e,((e,n,r)=>{const a=t.registry.createType("AccountId",e).toString();return t.derive.staking._erasSlashes(n,r).pipe(Ge((e=>e.map((({era:e,nominators:n,validators:r})=>({era:e,total:n[a]||r[a]||t.registry.createType("Balance")}))))))}))}const Rg=Hx("_stakerSlashes");function Bg(e,t){return eb(e,(()=>function(e){let t=Date.now();return e.query.system.events().pipe(Ge((e=>(t=e.filter((({event:e,phase:t})=>{try{return t.isApplyExtrinsic&&"staking"===e.section&&"Bonded"===e.method}catch{return!1}}))?Date.now():t,t))),xb(t),$h({skipTimeout:!0}))}(t).pipe(Le((()=>t.query.staking.validators.keys())),Ge((e=>e.map((({args:[e]})=>e)).filter((e=>e)))))))}function Lg(e,t){return eb(e,(()=>t.query.staking.erasStakersPaged?t.derive.session.indexes().pipe(Le((({currentEra:e})=>t.query.staking.erasStakersPaged.keys(e))),Ge((e=>e.map((({args:[,e]})=>e))))):t.query.staking.erasStakers?t.derive.session.indexes().pipe(Le((({currentEra:e})=>t.query.staking.erasStakers.keys(e))),Ge((e=>e.map((({args:[,e]})=>e))))):t.query.staking.currentElected()))}function Ug(e,t){return eb(e,(()=>xh([t.query.session?t.query.session.validators():Ze([]),t.query.staking?t.derive.staking.nextElected():Ze([])]).pipe(Ge((([e,t])=>({nextElected:t.length?t:e,validators:e}))))))}const zg={withController:!0,withPrefs:!0};function Dg(e,t){return eb(e,((e=zg)=>xh([t.derive.staking.validators(),t.derive.staking.stashes()]).pipe(Le((([{nextElected:n},r])=>{const a=n.map((e=>e.toString())),i=r.filter((e=>!a.includes(e.toString())));return t.derive.staking.queryMulti(i,e).pipe(Ge((e=>({info:e,waiting:i}))))})))))}const qg=Vb("technicalCommittee"),jg=_b("technicalCommittee"),Fg=Ob("technicalCommittee"),Xg=Nb("technicalCommittee"),Wg=Eb("technicalCommittee"),Zg=Ib("technicalCommittee"),Gg=Cb("technicalCommittee");function Kg(e,t){return eb(e,(()=>t.query.treasury?xh([t.query.treasury.proposalCount(),t.query.treasury.approvals()]).pipe(Le((([e,n])=>function(e,t,n){const r=[],a=t.toNumber();for(let s=0;se.eqn(s)))||r.push(e.registry.createType("ProposalIndex",s));const i=[...r,...n];return xh([e.query.treasury.proposals.multi(i),e.derive.council?e.derive.council.proposals():Ze([])]).pipe(Ge((([r,a])=>function(e,{allIds:t,allProposals:n,approvalIds:r,councilProposals:a,proposalCount:i}){const s=[],o=[],c=a.filter((({proposal:t})=>t&&(e.tx.treasury.approveProposal.is(t)||e.tx.treasury.rejectProposal.is(t))));return t.forEach(((e,t)=>{if(n[t].isSome){const a=c.filter((({proposal:t})=>t&&e.eq(t.args[0]))).sort(((e,t)=>e.proposal&&t.proposal?e.proposal.method.localeCompare(t.proposal.method):e.proposal?-1:1)),i=r.some((t=>t.eq(e))),d={council:a,id:e,proposal:n[t].unwrap()};i?s.push(d):o.push(d)}})),{approvals:s,proposalCount:i,proposals:o}}(e,{allIds:i,allProposals:r,approvalIds:n,councilProposals:a,proposalCount:t}))))}(t,e,n)))):Ze({approvals:[],proposalCount:t.registry.createType("ProposalIndex"),proposals:[]})))}function Yg(e,t){return eb(e,(e=>xh([t.rpc.chain.getBlock(e),t.queryAt(e).pipe(Le((e=>e.system.events())))]).pipe(Ge((([e,t])=>({block:e,events:t}))))))}const Jg=250,Qg=new bt(6e3),$g=new bt(5),ev=new bt(3e5);function tv(e,t){return e.derive.balances.account(t).pipe(Ge((({accountNonce:e})=>e)))}function nv(e,t){return e.rpc.system?.accountNextIndex?e.rpc.system.accountNextIndex(t):tv(e,t)}function rv(e){return xh([e.rpc.chain.getHeader().pipe(Le((t=>t.parentHash.isEmpty?Ze(t):e.rpc.chain.getHeader(t.parentHash).pipe(Mh((()=>Ze(t))))))),e.rpc.chain.getFinalizedHead().pipe(Le((t=>e.rpc.chain.getHeader(t).pipe(Mh((()=>Ze(null)))))))]).pipe(Ge((([e,t])=>!t||gm(e).sub(gm(t)).gt($g)?e:t)))}function av(e){const t=e.consts.babe?.expectedBlockTime||e.consts.aura?.slotDuration||e.consts.timestamp?.minimumPeriod.muln(2);return t.isZero()?void 0:t}function iv(e,t){return(e,n,r)=>xh([(0,$e.o)(n)?tv(t,e):-1===n?nv(t,e):Ze(t.registry.createType("Index",n)),(0,$e.o)(r)||(0,Zt.h)(r)&&r>0?rv(t):Ze(null)]).pipe(Ge((([e,n])=>({header:n,mortalLength:Math.min(t.consts.system?.blockHashCount?.toNumber()||Jg,ev.div(av(t)||Qg).iadd($g).toNumber()),nonce:e}))))}const sv={accounts:o,alliance:c,bagsList:d,balances:u,bounties:l,chain:f,contracts:p,council:h,crowdloan:b,democracy:m,elections:y,imOnline:x,membership:g,parachains:v,session:w,society:S,staking:k,technicalCommittee:T,treasury:P,tx:V},ov={allianceMotion:{instances:["allianceMotion"],methods:[]},bagsList:{instances:["voterBagsList","voterList","bagsList"],methods:[],withDetect:!0},contracts:{instances:["contracts"],methods:[]},council:{instances:["council"],methods:[],withDetect:!0},crowdloan:{instances:["crowdloan"],methods:[]},democracy:{instances:["democracy"],methods:[]},elections:{instances:["phragmenElection","electionsPhragmen","elections","council"],methods:[],withDetect:!0},imOnline:{instances:["imOnline"],methods:[]},membership:{instances:["membership"],methods:[]},parachains:{instances:["parachains","registrar"],methods:[]},session:{instances:["session"],methods:[]},society:{instances:["society"],methods:[]},staking:{instances:["staking"],methods:["erasRewardPoints"]},technicalCommittee:{instances:["technicalCommittee"],methods:[],withDetect:!0},treasury:{instances:["treasury"],methods:[]}};function cv(e,t,n){const r={},a=Object.keys(n),i=Object.keys(t.query),s=t.runtimeVersion.specName,o=e=>i.includes(e),c=e=>function(e,t,n){return e.registry.getModuleInstances(t,n)||[]}(t,s,e).some(o),d=e=>Object.keys(n[e]),u=(r,a)=>n[r][a](e,t),l=e=>{return!ov[e]||ov[e].instances.some(o)&&(!ov[e].methods.length||ov[e].methods.every((n=ov[e].instances,e=>n.some((n=>i.includes(n)&&t.query[n][e])))))||ov[e].withDetect&&ov[e].instances.some(c);var n};for(let f=0,p=a.length;fObject.entries(i[e].rpc||{}).forEach((([t,n])=>{const r=n.aliasSection||e;dv[r]||(dv[r]={}),dv[r][t]=(0,_.Z)({},n,{isSubscription:!!n.pubsub,jsonrpc:`${r}_${t}`,method:t,section:r})}))));const uv=dv,lv=(0,ht.k)("rpc-core"),fv={fallback:void 0,modifier:{isOptional:!0},type:{asMap:{linked:{isTrue:!1}},isMap:!1}};function pv(e,{noErrorLog:t,params:n,type:r},a){t||lv.error(`${e}(${n.map((({isOptional:e,name:t,type:n})=>`${t}${e?"?":""}: ${n}`)).join(", ")}): ${r}:: ${a.message}`)}function hv(e){return["0x3a636f6465"].includes(e.toHex())}class bv{__internal__instanceId;__internal__isPedantic;__internal__registryDefault;__internal__storageCache=new Map;__internal__storageCacheHits=0;__internal__storageCacheSize=0;__internal__getBlockRegistry;__internal__getBlockHash;mapping=new Map;provider;sections=[];constructor(e,t,{isPedantic:n=!0,provider:r,userRpc:a={}}){if(!r||!(0,Je.m)(r.send))throw new Error("Expected Provider to API create");this.__internal__instanceId=e,this.__internal__isPedantic=n,this.__internal__registryDefault=t,this.provider=r;const i=Object.keys(uv);this.sections.push(...i),this.addUserInterfaces(a)}get isConnected(){return this.provider.isConnected}connect(){return this.provider.connect()}disconnect(){return this.provider.disconnect()}get stats(){const e=this.provider.stats;return e?{...e,core:{cacheHits:this.__internal__storageCacheHits,cacheSize:this.__internal__storageCacheSize}}:void 0}setRegistrySwap(e){this.__internal__getBlockRegistry=Vh(e,{getInstanceId:()=>this.__internal__instanceId})}setResolveBlockHash(e){this.__internal__getBlockHash=Vh(e,{getInstanceId:()=>this.__internal__instanceId})}addUserInterfaces(e){this.sections.push(...Object.keys(e).filter((e=>!this.sections.includes(e))));for(let t=0,n=this.sections.length;te?this._createMethodSubscribe(n,t,i):this._createMethodSend(n,t,i)))}}}}_memomize(e,t){const n={getInstanceId:()=>this.__internal__instanceId},r=Vh(e(!0),n);return r.raw=Vh(e(!1),n),r.meta=t,r}_formatResult(e,t,n,r,a,i,s){return e?this._formatOutput(t,n,r,a,i,s):s}_createMethodSend(e,t,n){const r=n.endpoint||`${e}_${t}`,a=n.params.findIndex((({isHistoric:e})=>e));let i=null;const s=async(e,i)=>{const s=-1===a?null:i[a],o=s&&"BlockNumber"===n.params[a].type?await(this.__internal__getBlockHash?.(s)):s,{registry:c}=e&&o&&this.__internal__getBlockRegistry?await this.__internal__getBlockRegistry((0,N.Y)(o)):{registry:this.__internal__registryDefault},d=this._formatParams(c,null,n,i),u=await this.provider.send(r,d.map((e=>e.toJSON())),!!o);return this._formatResult(e,c,o,t,n,d,u)};return i=this._memomize((e=>(...r)=>{const o=e&&-1!==a&&!!r[a];return new ke((a=>(s(e,r).then((e=>{a.next(e),a.complete()})).catch((e=>{pv(t,n,e),a.error(e),a.complete()})),()=>{e?i?.unmemoize(...r):i?.raw.unmemoize(...r)}))).pipe(Hh(1),o?Kh():Nh())}),n),i}_createSubscriber({paramsJson:e,subName:t,subType:n,update:r},a){return new Promise(((i,s)=>{this.provider.subscribe(n,t,e,r).then(i).catch((e=>{a(e),s(e)}))}))}_createMethodSubscribe(e,t,n){const[r,a,i]=n.pubsub,s=`${e}_${a}`,o=`${e}_${i}`,c=`${e}_${r}`;let d=null;return d=this._memomize((e=>(...r)=>new ke((a=>{let i=Promise.resolve(null);const u=this.__internal__registryDefault,l=e=>{pv(t,n,e),a.error(e)};try{const o=this._formatParams(u,null,n,r),d=(r,i)=>{if(r)pv(t,n,r);else try{a.next(this._formatResult(e,u,null,t,n,o,i))}catch(r){a.error(r)}};i=this._createSubscriber({paramsJson:o.map((e=>e.toJSON())),subName:s,subType:c,update:d},l)}catch(f){l(f)}return()=>{e?d?.unmemoize(...r):d?.raw.unmemoize(...r),i.then((e=>(0,an.F)(e)?Promise.resolve(!1):this.provider.unsubscribe(c,o,e))).catch((e=>pv(t,n,e)))}})).pipe($h())),n),d}_formatParams(e,t,n,r){const a=r.length,i=n.params.filter((({isOptional:e})=>!e)).length;if(an.params.length)throw new Error(`Expected ${n.params.length} parameters${i===n.params.length?"":` (${n.params.length-i} optional)`}, ${a} found instead`);const s=new Array(a);for(let o=0;o"===r.type){const t=i,r=t.length,s=new Array(r);for(let n=0;ne===s)),c=(0,$e.o)(o);if(c&&a){const e=this.__internal__storageCache.get(s);if(e)return this.__internal__storageCacheHits++,e}const d=c?null:o[1],u=(0,an.F)(d),l=u||hv(n)?d:(0,N.Y)(d),f=this._newType(e,t,n,l,u,i);return this.__internal__storageCache.set(s,f),this.__internal__storageCacheSize++,f}_newType(e,t,n,r,a,i=-1){const s=n.outputType||"Raw",o=n.meta||fv,c=-1===i?"":` entry ${i}:`;try{return e.createTypeUnsafe(s,[a?o.fallback?s.includes("Linkage<")?Bt((0,as.G)(o.fallback.toHex()),new Uint8Array(2)):(0,as.G)(o.fallback.toHex()):void 0:o.modifier.isOptional?e.createTypeUnsafe(s,[r],{blockHash:t,isPedantic:this.__internal__isPedantic}):r],{blockHash:t,isFallback:a&&!!o.fallback,isOptional:o.modifier.isOptional,isPedantic:this.__internal__isPedantic&&!o.modifier.isOptional})}catch(d){throw new Error(`Unable to decode storage ${n.section||"unknown"}.${n.method||"unknown"}:${c}: ${d.message}`)}}}var mv=n(87152),yv=n(51216);const xv=(0,yv.t)(0),gv=(0,yv.t)(1),vv=(Number.MAX_SAFE_INTEGER,(0,yv.t)("11400714785074694791")),wv=(0,yv.t)("14029467366897019727"),Sv=(0,yv.t)("1609587929392839161"),kv=(0,yv.t)("9650029242287828579"),Tv=(0,yv.t)("2870177450012600261"),Pv=(0,yv.t)("0xffffffffffffffff"),Vv=(0,yv.t)(7),Mv=(0,yv.t)(11),_v=(0,yv.t)(12),Iv=(0,yv.t)(16),Ov=(0,yv.t)(18),Nv=(0,yv.t)(23),Ev=(0,yv.t)(27),Cv=(0,yv.t)(29),Av=(0,yv.t)(31),Hv=(0,yv.t)(32),Rv=(0,yv.t)(33),Bv=(0,yv.t)(64),Lv=(0,yv.t)(256);function Uv(e,t){const n=e&Pv;return(n<>Bv-t)&Pv}function zv(e,t,n){const r=new Array(n);let a=0;for(let s=0;s=0;s--)i=(i<=0){const e=e=>vv*Uv(e+wv*zv(t,a,4),Av);do{n.v1=e(n.v1),a+=8,n.v2=e(n.v2),a+=8,n.v3=e(n.v3),a+=8,n.v4=e(n.v4),a+=8}while(a<=r)}return a=32?((((Uv(i,gv)+Uv(s,Vv)+Uv(o,_v)+Uv(c,Ov)^vv*Uv(i*wv,Av))*vv+kv^vv*Uv(s*wv,Av))*vv+kv^vv*Uv(o*wv,Av))*vv+kv^vv*Uv(c*wv,Av))*vv+kv:n+Tv);for(;d<=a-8;)u=Pv&kv+vv*Uv(u^vv*Uv(wv*zv(r,d,4),Av),Ev),d+=8;for(d+4<=a&&(u=Pv&Sv+wv*Uv(u^vv*zv(r,d,2),Nv),d+=4);d>Rv),u=Pv&Sv*(u^u>>Cv),u=Pv&(u^u>>Hv);const l=new Uint8Array(8);for(let f=7;f>=0;f--)l[f]=Number(u%Lv),u/=Lv;return l}function qv(e,t=64,n){const r=Math.ceil(t/64),a=(0,N.Y)(e);if(!ja.vc||!n&&Ii())return _i(a,r);const i=new Uint8Array(8*r);for(let s=0;sqv(e,128),Fv={Blake2_128:e=>Ci(e,128),Blake2_128Concat:e=>Bt(Ci(e,128),(0,N.Y)(e)),Blake2_256:e=>Ci(e,256),Identity:e=>(0,N.Y)(e),Twox128:e=>qv(e,128),Twox256:e=>qv(e,256),Twox64Concat:e=>Bt(qv(e,64),(0,N.Y)(e))};const Xv={args:[],hashers:[],keys:[]};function Wv(e){return!(0,$e.o)(e)}function Zv({method:e,section:t},{args:n,keys:r}){if(!Array.isArray(n))throw new Error(`Call to ${Qt(t||"unknown")}.${Qt(e||"unknown")} needs ${r.length} arguments`);if(n.filter(Wv).length!==r.length)throw new Error(`Call to ${Qt(t||"unknown")}.${Qt(e||"unknown")} needs ${r.length} arguments, found [${n.join(", ")}]`)}function Gv(e,t,{args:n,hashers:r,keys:a}){const i=a.length,s=new Array(i);for(let c=0;c`${t[r].type}(${Yd(e.lookup,n)})`))}const o=["module","method"].concat(...n.args.map(((e,t)=>s[t])));return{inner:a.concat(...i).map(((e,t)=>({name:o[t],outer:[e]})))}}function Yv(e,t,n){const[r,a]=Gv(e,t,n);return Bt(...r,...a)}function Jv(e,t,n){return Zv(t,n),hr(Yv(e,t,n))}function Qv(e,t,n){const{meta:r,method:a,prefix:i,section:s}=t,o=function(e,t,n){const{meta:{type:r}}=t;let a=null;return(...i)=>{if(r.isPlain)return a||(a=n.skipHashing?hr((0,N.Y)(n.key)):Jv(e,t,Xv)),a;const{hashers:s,key:o}=r.asMap;return 1===s.length?Jv(e,t,{args:i,hashers:s,keys:[o]}):Jv(e,t,{args:i,hashers:s,keys:e.lookup.getSiType(o).def.asTuple})}}(e,t,n);return o.inspect=function(e,t,n){const{meta:{type:r}}=t;return(...a)=>{if(r.isPlain)return n.skipHashing?{inner:[],name:"wellKnown",outer:[(0,N.Y)(n.key)]}:Kv(e,t,Xv);const{hashers:i,key:s}=r.asMap;return 1===i.length?Kv(e,t,{args:a,hashers:i,keys:[s]}):Kv(e,t,{args:a,hashers:i,keys:e.lookup.getSiType(s).def.asTuple})}}(e,t,n),o.meta=r,o.method=Qt(a),o.prefix=i,o.section=s,o.toJSON=()=>(0,_.Z)({storage:{method:a,prefix:i,section:s}},r.toJSON()),o}function $v(e,t,n){const{meta:{type:r}}=t,a=Qv(e,t,n);return r.isMap&&function(e,t,n){const{meta:{type:r},method:a,section:i}=t;n.iterKey=function(e,{meta:{docs:t,name:n,type:r},section:a},{method:i},s){const o=e.createTypeUnsafe("StorageEntryMetadataLatest",[{docs:t,fallback:e.createTypeUnsafe("Bytes",[]),modifier:e.createTypeUnsafe("StorageEntryModifierLatest",[1]),name:n,type:e.createTypeUnsafe("StorageEntryTypeLatest",[r.asMap.key,0])}]);s.meta=o;const c=(...t)=>e.createTypeUnsafe("StorageKey",[s(...t),{method:i,section:a}]);return c.meta=o,c}(e,t,n,((...n)=>{if(n.length&&(r.isPlain||n.length>=r.asMap.hashers.length))throw new Error(`Iteration of ${Qt(i||"unknown")}.${Qt(a||"unknown")} needs arguments to be at least one less than the full arguments, found [${n.join(", ")}]`);if(n.length&&r.isMap){const{hashers:a,key:i}=r.asMap,s=1===a.length?[i]:e.lookup.getSiType(i).def.asTuple;return new ft(e,Yv(e,t,{args:n,hashers:a.slice(0,n.length),keys:s.slice(0,n.length)}))}return new ft(e,Yv(e,t,Xv))}))}(e,t,a),a.keyPrefix=(...e)=>a.iterKey&&a.iterKey(...e)||Sr(a())[1],a}function ew(e,t){const n=t.toLowerCase();return e.lookup.types.find((e=>e.type.def.isPrimitive&&e.type.def.asPrimitive.toString().toLowerCase()===n||e.type.def.isHistoricMetaCompat&&e.type.def.asHistoricMetaCompat.toString().toLowerCase()===n))}function tw(e,t){let n=ew(e,t);if(!n&&("Bytes"===t||t.startsWith("[u8;"))){const r=ew(e,"u8");if(r)if("Bytes"===t)n=e.lookup.types.find((e=>e.type.def.isSequence&&e.type.def.asSequence.type.eq(r.id)||e.type.def.isHistoricMetaCompat&&e.type.def.asHistoricMetaCompat.eq(t)));else{const a=Xr(t);n=e.lookup.types.find((e=>e.type.def.isArray&&e.type.def.asArray.eq({len:a.length,type:r.id})||e.type.def.isHistoricMetaCompat&&e.type.def.asHistoricMetaCompat.eq(t)))}}return n||console.warn(`Unable to map ${t} to a lookup index`),n}function nw({method:e,prefix:t,section:n},r,{docs:a,type:i}){return s=>$v(s,{meta:s.createTypeUnsafe("StorageEntryMetadataLatest",[{docs:s.createTypeUnsafe("Vec",[[a]]),modifier:s.createTypeUnsafe("StorageEntryModifierLatest",["Required"]),name:s.createTypeUnsafe("Text",[e]),toJSON:()=>r,type:s.createTypeUnsafe("StorageEntryTypeLatest",[{Plain:tw(s,i)?.id||0}])}]),method:e,prefix:t,section:n},{key:r,skipHashing:!0})}function rw(e,t,n){return nw({method:e,prefix:"Substrate",section:"substrate"},t,n)}const aw={changesTrieConfig:rw("changesTrieConfig",":changes_trie",{docs:"Changes trie configuration is stored under this key.",type:"u32"}),childStorageKeyPrefix:rw("childStorageKeyPrefix",":child_storage:",{docs:"Prefix of child storage keys.",type:"u32"}),code:rw("code",":code",{docs:"Wasm code of the runtime.",type:"Bytes"}),extrinsicIndex:rw("extrinsicIndex",":extrinsic_index",{docs:"Current extrinsic index (u32) is stored under this key.",type:"u32"}),heapPages:rw("heapPages",":heappages",{docs:"Number of wasm linear memory pages required for execution of the runtime.",type:"u64"}),intrablockEntropy:rw("intrablockEntropy",":intrablock_entropy",{docs:"Current intra-block entropy (a universally unique `[u8; 32]` value) is stored here.",type:"[u8; 32]"})};const iw="palletVersion",sw=":__STORAGE_VERSION__:",ow={docs:"Returns the current pallet version from storage",type:"u16"};function cw(e,{pallets:t},n){const r=function(e){const t={},n=Object.entries(aw);for(let r=0,a=n.length;rca({palletVersion:nw({method:iw,prefix:o,section:t},Yv(e,{method:sw,prefix:n.toString()},Xv),ow)(e)},a,(n=>$v(e,{meta:n,method:n.name.toString(),prefix:o,section:t},{})),cf)))}}return r}function dw(e){return t=>t?e[t.charCodeAt(0)]+t.slice(1):""}const uw=dw(Gt);function lw(){return new B}function fw(e,t){var n=arguments.length>=2;return function(r){return r.pipe(e?function(e,t){return He((function(n,r){var a=0;n.subscribe(Re(r,(function(n){return e.call(t,n,a++)&&r.next(n)})))}))}((function(t,n){return e(t,n,r)})):we,(i=1)<=0?function(){return Km}:He((function(e,t){var n=0;e.subscribe(Re(t,(function(e){++n<=i&&(t.next(e),i<=n&&t.complete())})))})),n?function(e){return He((function(t,n){var r=!1;t.subscribe(Re(n,(function(e){r=!0,n.next(e)}),(function(){r||n.next(e),n.complete()})))}))}(t):(void 0===(a=function(){return new B})&&(a=lw),He((function(e,t){var n=!1;e.subscribe(Re(t,(function(e){n=!0,t.next(e)}),(function(){return n?t.complete():t.error(a())})))}))));var a,i}}function pw(e){return(0,Je.m)(e.sign)}const hw=(0,ht.k)("api/util");function bw(e,{block:{extrinsics:t,header:n}},r,a){for(const[i,s]of t.entries())if(s.hash.eq(e))return{blockNumber:xm(n.number)?n.number.unwrap():n.number,events:r.filter((({phase:e})=>e.isApplyExtrinsic&&e.asApplyExtrinsic.eqn(i))),txIndex:i};if(a.isInBlock){const r=t.map((e=>e.hash.toHex()));hw.warn(`block ${n.hash.toHex()}: Unable to find extrinsic ${e.toHex()} inside ${r.join(", ")}`)}return{}}const mw=e=>e;function yw(e,t,n,r){return e.filter((({event:e})=>t===e.section&&n.includes(e.method))).map((e=>r(e)))}function xw({event:{data:[e]}}){return e}function gw({event:{data:e,method:t}}){return"ExtrinsicSuccess"===t?e[0]:e[1]}class vw{dispatchError;dispatchInfo;internalError;events;status;txHash;txIndex;blockNumber;constructor({blockNumber:e,dispatchError:t,dispatchInfo:n,events:r,internalError:a,status:i,txHash:s,txIndex:o}){this.dispatchError=t||function(e=[]){return yw(e,"system",["ExtrinsicFailed"],xw)[0]}(r),this.dispatchInfo=n||function(e=[]){return yw(e,"system",["ExtrinsicFailed","ExtrinsicSuccess"],gw)[0]}(r),this.events=r||[],this.internalError=a,this.status=i,this.txHash=s,this.txIndex=o,this.blockNumber=e}get isCompleted(){return this.isError||this.status.isInBlock||this.status.isFinalized}get isError(){return this.status.isDropped||this.status.isFinalityTimeout||this.status.isInvalid||this.status.isUsurped}get isFinalized(){return this.status.isFinalized}get isInBlock(){return this.status.isInBlock}get isWarning(){return this.status.isRetracted}filterRecords(e,t){return yw(this.events,e,Array.isArray(t)?t:[t],mw)}findRecord(e,t){return this.filterRecords(e,t)[0]}toHuman(e){return{dispatchError:this.dispatchError?.toHuman(),dispatchInfo:this.dispatchInfo?.toHuman(),events:this.events.map((t=>t.toHuman(e))),internalError:this.internalError?.message.toString(),status:this.status.toHuman(e)}}}function ww(e,t,n,{header:r,mortalLength:a,nonce:i}){if(!r){if(n.era&&!n.blockHash)throw new Error("Expected blockHash to be passed alongside non-immortal era options");return(0,Zt.h)(n.era)&&(delete n.era,delete n.blockHash),kw(e,n,{nonce:i})}return kw(e,n,{blockHash:r.hash,era:t.createTypeUnsafe("ExtrinsicEra",[{current:r.number,period:n.era||a}]),nonce:i})}function Sw(e,t){let n={};return(0,Je.m)(e)?t=e:n=(0,_.Z)({},e),[n,t]}function kw(e,t,n){return(0,_.Z)({blockHash:e.genesisHash,genesisHash:e.genesisHash},t,n,{runtimeVersion:e.runtimeVersion,signedExtensions:e.registry.signedExtensions,version:e.extrinsicType})}function Tw({api:e,apiType:t,blockHash:n,decorateMethod:r}){const a=e.registry.createClass("Extrinsic");return class extends a{__internal__ignoreStatusCb;__internal__transformResult=M.y;constructor(n,r){super(n,r,{version:e.extrinsicType}),this.__internal__ignoreStatusCb="rxjs"===t}get hasDryRun(){return(0,Je.m)(e.rpc.system?.dryRun)}get hasPaymentInfo(){return(0,Je.m)(e.call.transactionPaymentApi?.queryInfo)}dryRun(t,a){if(!this.hasDryRun)throw new Error("The system.dryRun RPC call is not available in your environment");return n||(0,I.H)(a)||(0,gt.U)(a)?r((()=>e.rpc.system.dryRun(this.toHex(),n||a))):r((()=>this.__internal__observeSign(t,a).pipe(Le((()=>e.rpc.system.dryRun(this.toHex()))))))()}paymentInfo(t,a){if(!this.hasPaymentInfo)throw new Error("The transactionPaymentApi.queryInfo runtime call is not available in your environment");if(n||(0,I.H)(a)||(0,gt.U)(a))return r((()=>e.callAt(n||a).pipe(Le((e=>{const t=this.toU8a();return e.transactionPaymentApi.queryInfo(t,t.length)})))));const[i]=Sw(a),s=pw(t)?t.address:t.toString();return r((()=>e.derive.tx.signingInfo(s,i.nonce,i.era).pipe(fw(),Le((t=>{const n=ww(e,this.registry,i,t),r=kw(e,n,{}),a=e.tx(this.toU8a()).signFake(s,r).toU8a();return e.call.transactionPaymentApi.queryInfo(a,a.length)})))))()}send(t){const n=e.hasSubscriptions&&(this.__internal__ignoreStatusCb||!!t);return r(n?this.__internal__observeSubscribe:this.__internal__observeSend)(t)}signAsync(e,t){return r((()=>this.__internal__observeSign(e,t).pipe(Ge((()=>this)))))()}signAndSend(t,n,a){const[i,s]=Sw(n,a),o=e.hasSubscriptions&&(this.__internal__ignoreStatusCb||!!s);return r((()=>this.__internal__observeSign(t,i).pipe(Le((e=>o?this.__internal__observeSubscribe(e):this.__internal__observeSend(e))))))(s)}withResultTransform(e){return this.__internal__transformResult=e,this}__internal__observeSign=(t,n)=>{const r=pw(t)?t.address:t.toString(),a=function(e={}){return(0,Sn.H)(e)||(0,Zt.h)(e)?{nonce:e}:e}(n);return e.derive.tx.signingInfo(r,a.nonce,a.era).pipe(fw(),bb((async n=>{const i=ww(e,this.registry,a,n);let s=-1;return pw(t)?this.sign(t,i):s=await this.__internal__signViaSigner(r,i,n.header),{options:i,updateId:s}})))};__internal__observeStatus=(t,n)=>{if(!n.isFinalized&&!n.isInBlock)return Ze(this.__internal__transformResult(new vw({status:n,txHash:t})));const r=n.isInBlock?n.asInBlock:n.asFinalized;return e.derive.tx.events(r).pipe(Ge((({block:e,events:r})=>this.__internal__transformResult(new vw({...bw(t,e,r,n),status:n,txHash:t})))),Mh((e=>Ze(this.__internal__transformResult(new vw({internalError:e,status:n,txHash:t}))))))};__internal__observeSend=t=>e.rpc.author.submitExtrinsic(this).pipe(vh((e=>{this.__internal__updateSigner(e,t)})));__internal__observeSubscribe=t=>{const n=this.hash;return e.rpc.author.submitAndWatchExtrinsic(this).pipe(Le((e=>this.__internal__observeStatus(n,e))),vh((e=>{this.__internal__updateSigner(e,t)})))};__internal__signViaSigner=async(t,n,r)=>{const a=n.signer||e.signer;if(!a)throw new Error("No signer specified, either via api.setSigner or via sign options. You possibly need to pass through an explicit keypair for the origin so it can be used for signing.");const i=this.registry.createTypeUnsafe("SignerPayload",[(0,_.Z)({},n,{address:t,blockNumber:r?r.number:0,method:this.method})]);let s;if((0,Je.m)(a.signPayload))s=await a.signPayload(i.toPayload());else{if(!(0,Je.m)(a.signRaw))throw new Error("Invalid signer interface, it should implement either signPayload or signRaw (or both)");s=await a.signRaw(i.toRaw())}return super.addSignature(t,s.signature,i.toPayload()),s.id};__internal__updateSigner=(t,n)=>{if(n&&-1!==n.updateId){const{options:r,updateId:a}=n,i=r.signer||e.signer;i&&(0,Je.m)(i.update)&&i.update(a,t)}}}}function Pw(e,t,n,r,a){const i=Tw({api:t,apiType:e,blockHash:a,decorateMethod:n});return e=>new i(r||t.registry,e)}const Vw=(0,ht.k)("api/augment");function Mw(e,t,n=[]){return t.length?` ${t.length} ${e}${n.length?" and":""}`:""}function _w(e,t){return t.length?`\n\t${e.padStart(7)}: ${t.sort().join(", ")}`:""}function Iw(e,t,[n,r]){(n.length||r.length)&&Vw.warn(`api.${e}: Found${Mw("added",n,r)}${Mw("removed",r)} ${t}:${_w("added",n)}${_w("removed",r)}`)}function Ow(e,t){return e.filter((e=>!t.includes(e)))}function Nw(e,t){const n=Object.keys(e),r=(a=Object.keys(t),i=n,a.filter((e=>i.includes(e))));var a,i;const s=[];for(let o=0,c=r.length;or[e]))}return n}function Cw(e,t){const n=e=>Object.keys(t[e]),r=(n,r)=>e(t[n][r]),a={},i=Object.keys(t);for(let s=0,o=i.length;se.getTypeDef(t).type)).join(", ")})`}function Hw(e,t,n){const r=n.filter((e=>!(0,$e.o)(e)));if(t.meta.type.isPlain){if(0!==r.length)throw new Error(`${Aw(e,t,[])} does not take any arguments, ${r.length} found`)}else{const{hashers:n,key:a}=t.meta.type.asMap,i=1===n.length?[a]:e.lookup.getSiType(a).def.asTuple.map((e=>e));if(r.length!==i.length)throw new Error(`${Aw(e,t,i)} is a map, requiring ${i.length} arguments, ${r.length} found`)}return[t,r]}var Rw=n(54146);class Bw{__internal__eventemitter=new Rw.v;emit(e,...t){return this.__internal__eventemitter.emit(e,...t)}on(e,t){return this.__internal__eventemitter.on(e,t),this}off(e,t){return this.__internal__eventemitter.removeListener(e,t),this}once(e,t){return this.__internal__eventemitter.once(e,t),this}}const Lw=1e3,Uw=(0,ht.k)("api/init");let zw=0;function Dw(e,{method:t,section:n}){return da(e.rx.query[n]&&e.rx.query[n][t],(()=>`query.${n}.${t} is not available in this version of the metadata`))}class qw extends Bw{__internal__instanceId;__internal__runtimeLog={};__internal__registry;__internal__storageGetQ=[];__internal__storageSubQ=[];__phantom=new bt(0);_type;_call={};_consts={};_derive;_errors={};_events={};_extrinsics;_extrinsicType=ns.LATEST_EXTRINSIC_VERSION;_genesisHash;_isConnected;_isReady=!1;_query={};_queryMulti;_rpc;_rpcCore;_runtimeMap={};_runtimeChain;_runtimeMetadata;_runtimeVersion;_rx={call:{},consts:{},query:{},tx:{}};_options;_decorateMethod;constructor(e,t,n){super(),this.__internal__instanceId=""+ ++zw,this.__internal__registry=e.source?.registry||e.registry||new Bp,this._rx.callAt=(e,t)=>We(this.at(e,t)).pipe(Ge((e=>e.rx.call))),this._rx.queryAt=(e,t)=>We(this.at(e,t)).pipe(Ge((e=>e.rx.query))),this._rx.registry=this.__internal__registry,this._decorateMethod=n,this._options=e,this._type=t;const r=e.source?e.source._rpcCore.provider.isClonable?e.source._rpcCore.provider.clone():e.source._rpcCore.provider:e.provider||new mv.U;this._rpcCore=new bv(this.__internal__instanceId,this.__internal__registry,{isPedantic:this._options.isPedantic,provider:r,userRpc:this._options.rpc}),this._isConnected=new uh(this._rpcCore.provider.isConnected),this._rx.hasSubscriptions=this._rpcCore.provider.hasSubscriptions}get registry(){return this.__internal__registry}createType(e,...t){return this.__internal__registry.createType(e,...t)}registerTypes(e){e&&this.__internal__registry.register(e)}get hasSubscriptions(){return this._rpcCore.provider.hasSubscriptions}get supportMulti(){return this._rpcCore.provider.hasSubscriptions||!!this._rpcCore.state.queryStorageAt}_emptyDecorated(e,t){return{call:{},consts:{},errors:{},events:{},query:{},registry:e,rx:{call:{},query:{}},tx:Pw(this._type,this._rx,this._decorateMethod,e,t)}}_createDecorated(e,t,n,r){n||(n=this._emptyDecorated(e.registry,r)),!t&&e.decoratedMeta||(e.decoratedMeta=function(e,t){if(!(t instanceof rp))throw new Error("You need to pass a valid Metadata instance to Decorated");const n=t.asLatest,r=t.version;return{consts:yf(e,n),errors:hf(e,n,r),events:mf(e,n,r),query:cw(e,n),registry:e,tx:ff(e,n,r)}}(e.registry,e.metadata));const a=this._decorateCalls(e,this._decorateMethod,r),i=this._decorateCalls(e,this._rxDecorateMethod,r),s=this._decorateStorage(e.decoratedMeta,this._decorateMethod,r),o=this._decorateStorage(e.decoratedMeta,this._rxDecorateMethod,r);return Ew("consts",e.decoratedMeta.consts,n.consts,t),Ew("errors",e.decoratedMeta.errors,n.errors,t),Ew("events",e.decoratedMeta.events,n.events,t),Ew("query",s,n.query,t),Ew("query",o,n.rx.query,t),Ew("call",a,n.call,t),Ew("call",i,n.rx.call,t),n.findCall=t=>A(e.registry,t),n.findError=t=>H(e.registry,t),n.queryMulti=r?this._decorateMultiAt(n,this._decorateMethod,r):this._decorateMulti(this._decorateMethod),n.runtimeVersion=e.runtimeVersion,{createdAt:r,decoratedApi:n,decoratedMeta:e.decoratedMeta}}_injectMetadata(e,t=!1){!t&&e.decoratedApi||(e.decoratedApi=this._emptyDecorated(e.registry));const{decoratedApi:n,decoratedMeta:r}=this._createDecorated(e,t,e.decoratedApi);this._call=n.call,this._consts=n.consts,this._errors=n.errors,this._events=n.events,this._query=n.query,this._rx.call=n.rx.call,this._rx.query=n.rx.query;const a=this._decorateExtrinsics(r,this._decorateMethod),i=this._decorateExtrinsics(r,this._rxDecorateMethod);t||!this._extrinsics?(this._extrinsics=a,this._rx.tx=i):(Ew("tx",a,this._extrinsics,!1),Ew(null,i,this._rx.tx,!1)),Ew(null,r.consts,this._rx.consts,t),this.emit("decorated")}injectMetadata(e,t,n){this._injectMetadata({counter:0,metadata:e,registry:n||this.__internal__registry,runtimeVersion:this.__internal__registry.createType("RuntimeVersionPartial")},t)}_decorateFunctionMeta(e,t){return t.meta=e.meta,t.method=e.method,t.section=e.section,t.toJSON=e.toJSON,e.callIndex&&(t.callIndex=e.callIndex),t}_filterRpc(e,t){0!==Object.keys(t).length&&(this._rpcCore.addUserInterfaces(t),this._decorateRpc(this._rpcCore,this._decorateMethod,this._rpc),this._decorateRpc(this._rpcCore,this._rxDecorateMethod,this._rx.rpc));const n={};for(let a=0,i=e.length;a!r.includes(e)&&!e.includes("_unstable_")));i.length&&!this._options.noInitWarn&&Uw.warn(`RPC methods not decorated: ${i.join(", ")}`);for(let s=0;sWe(this._rpcCore.provider.send(e,t))))}_decorateRpc(e,t,n=this._rpcSubmitter(t)){const r=n,a=(n,r)=>{const a=e[n][r],i=t(a,{methodName:r});return i.meta=a.meta,i.raw=t(a.raw,{methodName:r}),i};for(let i=0,s=e.sections.length;ia(t,e);for(let e=0,a=n.length;er.version===e));i?(0,_.Z)(i.methods,r.methods):e[t].push(r)}else e[t]=a}}_getRuntimeDefs(e,t,n=""){const r={},a=Object.values(i);for(let i=0,s=a.length;i({...e.typesBundle?.spec?.[n]?.runtime??{},...e.typesBundle?.chain?.[t]?.runtime??{}})))}(e,n,t)),this._addRuntimeDef(r,this._options.runtime),Object.entries(r)}_decorateCalls({registry:e,runtimeVersion:{apis:t,specName:n,specVersion:r}},a,i){const s={},o={},c={},d=this._getRuntimeDefs(e,n,this._runtimeChain),u=[],l=`${n.toString()}/${r.toString()}`,f=this.__internal__runtimeLog[l]||!1;this.__internal__runtimeLog[l]=!0;for(let y=0,x=d.length;ye.eq(r)));if(c[r]=!0,a){const t=n.map((({version:e})=>e)).sort(),i=n.find((({version:e})=>a[1].eq(e)));if(i){const t=Qt(e),n=Object.entries(i.methods);if(n.length){o[t]||(o[t]={});for(let a=0,i=n.length;a[e.toHex(),t.toString()])).filter((([e])=>!c[e])).map((([e,t])=>`${this._runtimeMap[e]||e}/${t}`));this._options.noInitWarn||f||(u.length&&Uw.warn(`${l}: Not decorating runtime apis without matching versions: ${u.join(", ")}`),p.length&&Uw.warn(`${l}: Not decorating unknown runtime apis: ${p.join(", ")}`));const h=i?(e,t)=>this._rpcCore.state.call(e,t,i):(e,t)=>this._rpcCore.state.call(e,t),b=t=>ca({},Object.keys(o[t]),(n=>this._decorateCall(e,o[t][n],h,a))),m=Object.keys(o);for(let y=0,x=m.length;y{if(r.length!==t.params.length)throw new Error(`${t.name}:: Expected ${t.params.length} arguments, found ${r.length}`);const a=e.createType("Raw",Lt(r.map(((n,r)=>e.createTypeUnsafe(t.params[r].type,[n]).toU8a()))));return n(t.name,a).pipe(Ge((n=>e.createTypeUnsafe(t.type,[n]))))}));return a.meta=t,a}_decorateMulti(e){return e((e=>e.length?(this.hasSubscriptions?this._rpcCore.state.subscribeStorage:this._rpcCore.state.queryStorageAt)(e.map((e=>Array.isArray(e)?e[0].creator.meta.type.isPlain?[e[0].creator]:1===e[0].creator.meta.type.asMap.hashers.length?[e[0].creator,e.slice(1)]:[e[0].creator,...e.slice(1)]:[e.creator]))):Ze([])))}_decorateMultiAt(e,t,n){return t((t=>t.length?this._rpcCore.state.queryStorageAt(t.map((t=>{if(Array.isArray(t)){const{creator:n}=Dw(e,t[0].creator);return n.meta.type.isPlain?[n]:1===n.meta.type.asMap.hashers.length?[n,t.slice(1)]:[n,...t.slice(1)]}return[Dw(e,t.creator).creator]})),n):Ze([])))}_decorateExtrinsics({tx:e},t){const n=Pw(this._type,this._rx,t),r=t=>ca({},Object.keys(e[t]),(r=>r.startsWith("$")?e[t][r]:this._decorateExtrinsicEntry(e[t][r],n))),a=Object.keys(e);for(let i=0,s=a.length;it(e(...n));return n.is=t=>e.is(t),this._decorateFunctionMeta(e,n)}_decorateStorage({query:e,registry:t},n,r){const a={},i=a=>ca({},Object.keys(e[a]),(i=>r?this._decorateStorageEntryAt(t,e[a][i],n,r):this._decorateStorageEntry(e[a][i],n))),s=Object.keys(e);for(let o=0,c=s.length;oHw(n||this.__internal__registry,e,t),r=t=>We(this.at(t)).pipe(Ge((t=>Dw(t,e)))),a=this._decorateStorageCall(e,t);return a.creator=e,a.at=t(((e,...t)=>r(e).pipe(Le((e=>e(...t)))))),a.hash=t(((...e)=>this._rpcCore.state.getStorageHash(n(e)))),a.is=t=>t.section===e.section&&t.method===e.method,a.key=(...t)=>(0,O.c)(Sr(e(...t))[1]),a.keyPrefix=(...t)=>(0,O.c)(e.keyPrefix(...t)),a.size=t(((...e)=>this._rpcCore.state.getStorageSize(n(e)))),a.sizeAt=t(((e,...t)=>r(e).pipe(Le((r=>this._rpcCore.state.getStorageSize(n(t,r.creator.meta.registry),e)))))),e.iterKey&&e.meta.type.isMap&&(a.entries=t(eb(this.__internal__instanceId,((...t)=>this._retrieveMapEntries(e,null,t)))),a.entriesAt=t(eb(this.__internal__instanceId,((e,...t)=>r(e).pipe(Le((n=>this._retrieveMapEntries(n.creator,e,t))))))),a.entriesPaged=t(eb(this.__internal__instanceId,(t=>this._retrieveMapEntriesPaged(e,void 0,t)))),a.keys=t(eb(this.__internal__instanceId,((...t)=>this._retrieveMapKeys(e,null,t)))),a.keysAt=t(eb(this.__internal__instanceId,((e,...t)=>r(e).pipe(Le((n=>this._retrieveMapKeys(n.creator,e,t))))))),a.keysPaged=t(eb(this.__internal__instanceId,(t=>this._retrieveMapKeysPaged(e,void 0,t))))),this.supportMulti&&e.meta.type.isMap&&(a.multi=t((t=>1===e.meta.type.asMap.hashers.length?this._retrieveMulti(t.map((t=>[e,[t]]))):this._retrieveMulti(t.map((t=>[e,t])))))),this._decorateFunctionMeta(e,a)}_decorateStorageEntryAt(e,t,n,r){const a=n=>Hw(e,t,n),i=n(((...e)=>this._rpcCore.state.getStorage(a(e),r)));return i.creator=t,i.hash=n(((...e)=>this._rpcCore.state.getStorageHash(a(e),r))),i.is=e=>e.section===t.section&&e.method===t.method,i.key=(...e)=>(0,O.c)(Sr(t(...e))[1]),i.keyPrefix=(...e)=>(0,O.c)(t.keyPrefix(...e)),i.size=n(((...e)=>this._rpcCore.state.getStorageSize(a(e),r))),t.iterKey&&t.meta.type.isMap&&(i.entries=n(eb(this.__internal__instanceId,((...e)=>this._retrieveMapEntries(t,r,e)))),i.entriesPaged=n(eb(this.__internal__instanceId,(e=>this._retrieveMapEntriesPaged(t,r,e)))),i.keys=n(eb(this.__internal__instanceId,((...e)=>this._retrieveMapKeys(t,r,e)))),i.keysPaged=n(eb(this.__internal__instanceId,(e=>this._retrieveMapKeysPaged(t,r,e))))),this.supportMulti&&t.meta.type.isMap&&(i.multi=n((e=>1===t.meta.type.asMap.hashers.length?this._retrieveMulti(e.map((e=>[t,[e]])),r):this._retrieveMulti(e.map((e=>[t,e])),r)))),this._decorateFunctionMeta(t,i)}_queueStorage(e,t){const n=t===this.__internal__storageSubQ?this._rpcCore.state.subscribeStorage:this._rpcCore.state.queryStorageAt;let r,a=t.length-1,i=0;return-1!==a&&t[a]&&50!==t[a][1].length?(r=t[a][0],i=t[a][1].length,t[a][1].push(e)):(a++,r=We(new Promise((e=>{Zb((()=>{const n=t[a][1];delete t[a],e(n)}))}))).pipe(Le((e=>n(e)))),t.push([r,[e]])),r.pipe(Ge((e=>e[i])))}_decorateStorageCall(e,t){return t(eb(this.__internal__instanceId,((...t)=>{const n=Hw(this.__internal__registry,e,t);return this.hasSubscriptions?this._queueStorage(n,this.__internal__storageSubQ):this._rpcCore.state.getStorage(n)})),{methodName:e.method,overrideNoSub:(...t)=>this._queueStorage(Hw(this.__internal__registry,e,t),this.__internal__storageGetQ)})}_retrieveMulti(e,t){if(!e.length)return Ze([]);const n=this.hasSubscriptions&&!t?this._rpcCore.state.subscribeStorage:this._rpcCore.state.queryStorageAt;return e.length<=250?t?n(e,t):n(e):xh(Nx(e,250).map((e=>t?n(e,t):n(e)))).pipe(Ge(Ym))}_retrieveMapKeys({iterKey:e,meta:t,method:n,section:r},a,i){if(!e||!t.type.isMap)throw new Error("keys can only be retrieved on maps");const s=e(...i).toHex(),o=new uh(s),c=a?e=>this._rpcCore.state.getKeysPaged(s,Lw,e,a):e=>this._rpcCore.state.getKeysPaged(s,Lw,e),d=e=>e.setMeta(t,r,n);return o.pipe(Le(c),Ge((e=>e.map(d))),vh((e=>Zb((()=>{e.length===Lw?o.next(e[999].toHex()):o.complete()})))),kh(),Ge(Ym))}_retrieveMapKeysPaged({iterKey:e,meta:t,method:n,section:r},a,i){if(!e||!t.type.isMap)throw new Error("keys can only be retrieved on maps");const s=e=>e.setMeta(t,r,n);return(a?e=>this._rpcCore.state.getKeysPaged(e,i.pageSize,i.startKey||e,a):e=>this._rpcCore.state.getKeysPaged(e,i.pageSize,i.startKey||e))(e(...i.args).toHex()).pipe(Ge((e=>e.map(s))))}_retrieveMapEntries(e,t,n){const r=t?e=>this._rpcCore.state.queryStorageAt(e,t):e=>this._rpcCore.state.queryStorageAt(e);return this._retrieveMapKeys(e,t,n).pipe(Le((e=>e.length?xh(Nx(e,250).map(r)).pipe(Ge((t=>Ym(t).map(((t,n)=>[e[n],t]))))):Ze([]))))}_retrieveMapEntriesPaged(e,t,n){const r=t?e=>this._rpcCore.state.queryStorageAt(e,t):e=>this._rpcCore.state.queryStorageAt(e);return this._retrieveMapKeysPaged(e,t,n).pipe(Le((e=>e.length?r(e).pipe(Ge((t=>t.map(((t,n)=>[e[n],t]))))):Ze([]))))}_decorateDeriveRx(e){const t=this._runtimeVersion?.specName.toString();return Cw(e,function(e,t,n={}){return{...cv(e,t,sv),...cv(e,t,n)}}(this.__internal__instanceId,this._rx,(0,_.Z)({},this._options.derives,this._options.typesBundle?.spec?.[t||""]?.derives)))}_decorateDerive(e){return Cw(e,this._rx.derive)}_rxDecorateMethod=e=>e}const jw=(0,ht.k)("api/init");function Fw(e){return e.toString()}class Xw extends qw{__internal__atLast=null;__internal__healthTimer=null;__internal__registries=[];__internal__updateSub=null;__internal__waitingRegistries={};constructor(e,t,n){super(e,t,n),this.registry.setKnownTypes(e),e.source?this.__internal__registries=e.source.__internal__registries:this.registerTypes(e.types),this._rpc=this._decorateRpc(this._rpcCore,this._decorateMethod),this._rx.rpc=this._decorateRpc(this._rpcCore,this._rxDecorateMethod),this.supportMulti&&(this._queryMulti=this._decorateMulti(this._decorateMethod),this._rx.queryMulti=this._decorateMulti(this._rxDecorateMethod)),this._rx.signer=e.signer,this._rpcCore.setRegistrySwap((e=>this.getBlockRegistry(e))),this._rpcCore.setResolveBlockHash((e=>ye(this._rpcCore.chain.getBlockHash(e)))),this.hasSubscriptions?(this._rpcCore.provider.on("disconnected",(()=>this.__internal__onProviderDisconnect())),this._rpcCore.provider.on("error",(e=>this.__internal__onProviderError(e))),this._rpcCore.provider.on("connected",(()=>this.__internal__onProviderConnect()))):this._options.noInitWarn||jw.warn("Api will be available in a limited mode since the provider does not support subscriptions"),this._rpcCore.provider.isConnected&&this.__internal__onProviderConnect().catch(M.Z)}_initRegistry(e,t,n,r,a){e.clearCache(),e.setChainProperties(a||this.registry.getChainProperties()),e.setKnownTypes(this._options),e.register(function({knownTypes:e},t,n,r){const a=At(r).toNumber();return ah(t,n,((t,n)=>({...ih(Qp[n],a),...ih(Lp[t],a),...ih(e.typesBundle?.spec?.[n]?.types,a),...ih(e.typesBundle?.chain?.[t]?.types,a),...e.typesSpec?.[n]??{},...e.typesChain?.[t]??{},...e.types??{}})))}(e,t,n.specName,n.specVersion)),e.setHasher(function({knownTypes:e},t,n){return ah(t,n,((t,n)=>e.hasher||e.typesBundle?.chain?.[t]?.hasher||e.typesBundle?.spec?.[n]?.hasher||null))}(e,t,n.specName)),e.knownTypes.typesBundle&&(e.knownTypes.typesAlias=function({knownTypes:e},t,n){return ah(t,n,((t,n)=>({...e.typesBundle?.spec?.[n]?.alias??{},...e.typesBundle?.chain?.[t]?.alias??{},...e.typesAlias??{}})))}(e,t,n.specName)),e.setMetadata(r,void 0,(0,_.Z)({},function({knownTypes:e},t,n){return ah(t,n,((t,n)=>({...e.typesBundle?.spec?.[n]?.signedExtensions??{},...e.typesBundle?.chain?.[t]?.signedExtensions??{}})))}(e,t,n.specName),this._options.signedExtensions),this._options.noInitWarn)}_getDefaultRegistry(){return da(this.__internal__registries.find((({isDefault:e})=>e)),"Initialization error, cannot find the default registry")}async at(e,t){const n=(0,N.Y)(e),r=(0,O.c)(n),a=await this.getBlockRegistry(n,t);return this.__internal__atLast&&this.__internal__atLast[0]===r||(this.__internal__atLast=[r,this._createDecorated(a,!0,null,n).decoratedApi]),this.__internal__atLast[1]}async _createBlockRegistry(e,t,n){const r=new Bp(e),a=new rp(r,await ye(this._rpcCore.state.getMetadata.raw(t.parentHash))),i=this._runtimeChain;if(!i)throw new Error("Invalid initializion order, runtimeChain is not available");this._initRegistry(r,i,n,a);const s={counter:0,lastBlockHash:e,metadata:a,registry:r,runtimeVersion:n};return this.__internal__registries.push(s),s}_cacheBlockRegistryProgress(e,t){let n=this.__internal__waitingRegistries[e];return(0,$e.o)(n)&&(n=this.__internal__waitingRegistries[e]=new Promise(((n,r)=>{t().then((t=>{delete this.__internal__waitingRegistries[e],n(t)})).catch((t=>{delete this.__internal__waitingRegistries[e],r(t)}))}))),n}_getBlockRegistryViaVersion(e,t){if(t){const n=this.__internal__registries.find((({runtimeVersion:{specName:e,specVersion:n}})=>e.eq(t.specName)&&n.eq(t.specVersion)));if(n)return n.counter++,n.lastBlockHash=e,n}return null}async _getBlockRegistryViaHash(e){if(!this._genesisHash||!this._runtimeVersion)throw new Error("Cannot retrieve data on an uninitialized chain");const t=this.registry.createType("HeaderPartial",this._genesisHash.eq(e)?{number:vt,parentHash:this._genesisHash}:await ye(this._rpcCore.chain.getHeader.raw(e)));if(t.parentHash.isEmpty)throw new Error("Unable to retrieve header and parent from supplied hash");const[n,r]=function(e,t){const n=rh.find((t=>e.eq(t.genesisHash)));return n?[n.versions.reduce(((e,n)=>t.gt(n.blockNumber)?n:e),void 0),n.versions.find((e=>t.lte(e.blockNumber)))]:[void 0,void 0]}(this._genesisHash,t.number),a=this.registry.createType("RuntimeVersionPartial",await ye(this._rpcCore.state.getRuntimeVersion.raw(t.parentHash)));return this._getBlockRegistryViaVersion(e,a)||await this._cacheBlockRegistryProgress(a.toHex(),(()=>this._createBlockRegistry(e,t,a)))}async getBlockRegistry(e,t){return this.__internal__registries.find((({lastBlockHash:t})=>t&&ra(t,e)))||this._getBlockRegistryViaVersion(e,t)||await this._cacheBlockRegistryProgress((0,O.c)(e),(()=>this._getBlockRegistryViaHash(e)))}async _loadMeta(){return!!this._isReady||(this._unsubscribeUpdates(),[this._genesisHash,this._runtimeMetadata]=this._options.source?._isReady?await this._metaFromSource(this._options.source):await this._metaFromChain(this._options.metadata),this._initFromMeta(this._runtimeMetadata))}async _metaFromSource(e){this._extrinsicType=e.extrinsicVersion,this._runtimeChain=e.runtimeChain,this._runtimeVersion=e.runtimeVersion;const t=Object.keys(e.rpc),n=[];for(let r=0,a=t.length;rthis._runtimeVersion?.specVersion.eq(e.specVersion)?Ze(!1):this._rpcCore.state.getMetadata().pipe(Ge((t=>{jw.log(`Runtime version updated to spec=${e.specVersion.toString()}, tx=${e.transactionVersion.toString()}`),this._runtimeMetadata=t,this._runtimeVersion=e,this._rx.runtimeVersion=e;const n=this._getDefaultRegistry(),r=this._runtimeChain;if(!r)throw new Error("Invalid initializion order, runtimeChain is not available");return n.metadata=t,n.runtimeVersion=e,this._initRegistry(this.registry,r,e,t),this._injectMetadata(n,!0),!0})))))).subscribe())}async _metaFromChain(e){const[t,n,r,a,i,s]=await Promise.all([ye(this._rpcCore.chain.getBlockHash(0)),ye(this._rpcCore.state.getRuntimeVersion()),ye(this._rpcCore.system.chain()),ye(this._rpcCore.system.properties()),ye(this._rpcCore.rpc.methods()),e?Promise.resolve(null):ye(this._rpcCore.state.getMetadata())]);this._runtimeChain=r,this._runtimeVersion=n,this._rx.runtimeVersion=n;const o=`${t.toHex()||"0x"}-${n.specVersion.toString()}`,c=s||(e?.[o]?new rp(this.registry,e[o]):await ye(this._rpcCore.state.getMetadata()));return this._initRegistry(this.registry,r,n,c,a),this._filterRpc(i.methods.map(Fw),sh(this.registry,r,n.specName)),this._subscribeUpdates(),this.__internal__registries.length||this.__internal__registries.push({counter:0,isDefault:!0,metadata:c,registry:this.registry,runtimeVersion:n}),c.getUniqTypes(this._options.throwOnUnknown||!1),[t,c]}_initFromMeta(e){const t=this._runtimeVersion;if(!t)throw new Error("Invalid initializion order, runtimeVersion is not available");return this._extrinsicType=e.asLatest.extrinsic.version.toNumber(),this._rx.extrinsicType=this._extrinsicType,this._rx.genesisHash=this._genesisHash,this._rx.runtimeVersion=t,this._injectMetadata(this._getDefaultRegistry(),!0),this._rx.derive=this._decorateDeriveRx(this._rxDecorateMethod),this._derive=this._decorateDerive(this._decorateMethod),!0}_subscribeHealth(){this._unsubscribeHealth(),this.__internal__healthTimer=this.hasSubscriptions?setInterval((()=>{ye(this._rpcCore.system.health.raw()).catch(M.Z)}),1e4):null}_unsubscribeHealth(){this.__internal__healthTimer&&(clearInterval(this.__internal__healthTimer),this.__internal__healthTimer=null)}_unsubscribeUpdates(){this.__internal__updateSub&&(this.__internal__updateSub.unsubscribe(),this.__internal__updateSub=null)}_unsubscribe(){this._unsubscribeHealth(),this._unsubscribeUpdates()}async __internal__onProviderConnect(){this._isConnected.next(!0),this.emit("connected");try{const e=!1===this._options.initWasm||await Oi().then((()=>{if(!Ii())throw new Error("Unable to initialize @polkadot/util-crypto");return!0})).catch((()=>!1)),t=await this._loadMeta();this._subscribeHealth(),t&&!this._isReady&&e&&(this._isReady=!0,this.emit("ready",this))}catch(e){const t=new Error(`FATAL: Unable to initialize the API: ${e.message}`);jw.error(t),this.emit("error",t)}}__internal__onProviderDisconnect(){this._isConnected.next(!1),this._unsubscribe(),this.emit("disconnected")}__internal__onProviderError(e){this.emit("error",e)}}function Ww(e){if(void 0===e)throw new Error("Api interfaces needs to be initialized before using, wait for 'isReady'");return e}class Zw extends Xw{get call(){return Ww(this._call)}get consts(){return Ww(this._consts)}get derive(){return Ww(this._derive)}get errors(){return Ww(this._errors)}get events(){return Ww(this._events)}get extrinsicVersion(){return this._extrinsicType}get genesisHash(){return Ww(this._genesisHash)}get isConnected(){return this._isConnected.getValue()}get libraryInfo(){return`${E} v${C}`}get query(){return Ww(this._query)}get queryMulti(){return Ww(this._queryMulti)}get rpc(){return Ww(this._rpc)}get runtimeChain(){return Ww(this._runtimeChain)}get runtimeMetadata(){return Ww(this._runtimeMetadata)}get runtimeVersion(){return Ww(this._runtimeVersion)}get rx(){return Ww(this._rx)}get stats(){return this._rpcCore.stats}get type(){return this._type}get tx(){return Ww(this._extrinsics)}findCall(e){return A(this.registry,e)}findError(e){return H(this.registry,e)}}class Gw extends Zw{constructor(e={},t,n){super(e,t,n)}connect(){return this._rpcCore.connect()}disconnect(){return this._unsubscribe(),this._rpcCore.disconnect()}setSigner(e){this._rx.signer=e}async sign(e,t,{signer:n}={}){if((0,I.H)(e)){const r=n||this._rx.signer;if(!r?.signRaw)throw new Error("No signer exists with a signRaw interface. You possibly need to pass through an explicit keypair for the origin so it can be used for signing.");return(await r.signRaw((0,_.Z)({type:"bytes"},t,{address:e}))).signature}return(0,O.c)(e.sign((0,N.Y)(t.data)))}}class Kw{__internal__allHasFired=!1;__internal__callback;__internal__fired=[];__internal__fns=[];__internal__isActive=!0;__internal__results=[];__internal__subscriptions=[];constructor(e,t){this.__internal__callback=t,this.__internal__subscriptions=e.map((async(e,t)=>{const[n,...r]=Array.isArray(e)?e:[e];return this.__internal__fired.push(!1),this.__internal__fns.push(n),n(...r,this._createCallback(t))}))}_allHasFired(){return this.__internal__allHasFired||=0===this.__internal__fired.filter((e=>!e)).length,this.__internal__allHasFired}_createCallback(e){return t=>{this.__internal__fired[e]=!0,this.__internal__results[e]=t,this._triggerUpdate()}}_triggerUpdate(){if(this.__internal__isActive&&(0,Je.m)(this.__internal__callback)&&this._allHasFired())try{Promise.resolve(this.__internal__callback(this.__internal__results)).catch(M.Z)}catch{}}unsubscribe(){this.__internal__isActive&&(this.__internal__isActive=!1,Promise.all(this.__internal__subscriptions.map((async e=>{try{const t=await e;(0,Je.m)(t)&&t()}catch{}}))).catch((()=>{})))}}function Yw(e,t){let n=!1;return{reject:e=>(n||(n=!0,t(e)),Km),resolve:t=>{n||(n=!0,e(t))}}}function Jw(e,t){const n=!(!t?.methodName||!t.methodName.includes("subscribe"));return function(...r){const[a,i]=function(e,t){const n=e.slice(),r=e.length&&(0,Je.m)(e[e.length-1])?n.pop():void 0;if(t&&!(0,Je.m)(r))throw new Error("Expected a callback to be passed with subscriptions");return[n,r]}(r,n);return i?function(e,t,n){return new Promise(((r,a)=>{const i=Yw(r,a),s=e(...t).pipe(Mh((e=>i.reject(e))),vh((()=>i.resolve((()=>s.unsubscribe()))))).subscribe((e=>{Zb((()=>n(e)))}))}))}(e,a,i):function(e,t){return new Promise(((n,r)=>{const a=Yw(n,r),i=e(...t).pipe(Mh((e=>a.reject(e)))).subscribe((e=>{a.resolve(e),Zb((()=>i.unsubscribe()))}))}))}(t?.overrideNoSub||e,a)}}class Qw extends Gw{__internal__isReadyPromise;__internal__isReadyOrErrorPromise;constructor(e){super(e,"promise",Jw),this.__internal__isReadyPromise=new Promise((e=>{super.once("ready",(()=>e(this)))})),this.__internal__isReadyOrErrorPromise=new Promise(((e,t)=>{const n=Yw(e,t);super.once("ready",(()=>n.resolve(this))),super.once("error",(e=>n.reject(e)))}))}static create(e){const t=new Qw(e);return e&&e.throwOnConnect?t.isReadyOrError:(t.isReadyOrError.catch(M.Z),t.isReady)}get isReady(){return this.__internal__isReadyPromise}get isReadyOrError(){return this.__internal__isReadyOrErrorPromise}clone(){return new Qw((0,_.Z)({},this._options,{source:this}))}async combineLatest(e,t){const n=new Kw(e,t);return()=>{n.unsubscribe()}}}},87152:(e,t,n)=>{"use strict";n.d(t,{U:()=>_});var r=n(54146),a=n(64992),i=n(33667);const s=(0,n(50075).Sn)("isPrototypeOf","hasOwnProperty");var o=n(94676),c=n(98278),d=n(66103),u=n(50273),l=n(58758);const f=l.Ur.WebSocket;var p=n(48907),h=n(51482),b=n(6169);const m=-99999;function y(e,t,n){Object.defineProperty(e,t,{configurable:!0,enumerable:!1,value:n})}class x extends Error{code;data;message;name;stack;constructor(e="",t=-99999,n){if(super(),y(this,"message",String(e)),y(this,"name",this.constructor.name),y(this,"data",n),y(this,"code",t),(0,b.m)(Error.captureStackTrace))Error.captureStackTrace(this,this.constructor);else{const{stack:t}=new Error(e);t&&y(this,"stack",t)}}static CODES={ASSERT:-90009,INVALID_JSONRPC:-99998,METHOD_NOT_FOUND:-32601,UNKNOWN:m}}function g(e){if(e){const{code:t,data:n,message:r}=e;throw new x(`${t}: ${r}${function(e){if((0,c.o)(e))return"";const t=`: ${(0,p.H)(e)?e.replace(/Error\("/g,"").replace(/\("/g,"(").replace(/"\)/g,")").replace(/\(/g,", ").replace(/\)/g,""):(0,o.P)(e)}`;return t.length<=256?t:`${t.substring(0,255)}\u2026`}(n)}`,t,n)}}class v{__internal__id=0;decodeResponse(e){if(!e||"2.0"!==e.jsonrpc)throw new Error("Invalid jsonrpc field in decoded object");const t=!(0,c.o)(e.params)&&!(0,c.o)(e.method);if(!((0,h.h)(e.id)||t&&((0,h.h)(e.params.subscription)||(0,p.H)(e.params.subscription))))throw new Error("Invalid id field in decoded object");if(g(e.error),void 0===e.result&&!t)throw new Error("No result found in jsonrpc response");return t?(g(e.params.error),e.params.result):e.result}encodeJson(e,t){const[n,r]=this.encodeObject(e,t);return[n,(0,o.P)(r)]}encodeObject(e,t){const n=++this.__internal__id;return[n,{id:n,jsonrpc:"2.0",method:e,params:t}]}}const w="ws://127.0.0.1:9944";class S{key;next;prev;constructor(e){this.key=e,this.next=this.prev=this}}class k{capacity;__internal__data=new Map;__internal__refs=new Map;__internal__length=0;__internal__head;__internal__tail;constructor(e=128){this.capacity=e,this.__internal__head=this.__internal__tail=new S("")}get length(){return this.__internal__length}get lengthData(){return this.__internal__data.size}get lengthRefs(){return this.__internal__refs.size}entries(){const e=this.keys(),t=e.length,n=new Array(t);for(let r=0;r{t&&t(e[n]),delete e[n]}))}class _{__internal__callCache;__internal__coder;__internal__endpoints;__internal__headers;__internal__eventemitter;__internal__handlers={};__internal__isReadyPromise;__internal__stats;__internal__waitingForId={};__internal__autoConnectMs;__internal__endpointIndex;__internal__endpointStats;__internal__isConnected=!1;__internal__subscriptions={};__internal__timeoutId=null;__internal__websocket;__internal__timeout;constructor(e=w,t=2500,n={},a,s){const o=Array.isArray(e)?e:[e];if(0===o.length)throw new Error("WsProvider requires at least one Endpoint");o.forEach((e=>{if(!/^(wss|ws):\/\//.test(e))throw new Error(`Endpoint should start with 'ws://', received '${e}'`)})),this.__internal__callCache=new k(s||128),this.__internal__eventemitter=new r.v,this.__internal__autoConnectMs=t||0,this.__internal__coder=new v,this.__internal__endpointIndex=-1,this.__internal__endpoints=o,this.__internal__headers=n,this.__internal__websocket=null,this.__internal__stats={active:{requests:0,subscriptions:0},total:{bytesRecv:0,bytesSent:0,cached:0,errors:0,requests:0,subscriptions:0,timeout:0}},this.__internal__endpointStats={bytesRecv:0,bytesSent:0,cached:0,errors:0,requests:0,subscriptions:0,timeout:0},this.__internal__timeout=a||6e4,t&&t>0&&this.connectWithRetry().catch(i.Z),this.__internal__isReadyPromise=new Promise((e=>{this.__internal__eventemitter.once("connected",(()=>{e(this)}))}))}get hasSubscriptions(){return!0}get isClonable(){return!0}get isConnected(){return this.__internal__isConnected}get isReady(){return this.__internal__isReadyPromise}get endpoint(){return this.__internal__endpoints[this.__internal__endpointIndex]}clone(){return new _(this.__internal__endpoints)}selectEndpointIndex(e){return(this.__internal__endpointIndex+1)%e.length}async connect(){if(this.__internal__websocket)throw new Error("WebSocket is already connected");try{this.__internal__endpointIndex=this.selectEndpointIndex(this.__internal__endpoints),this.__internal__websocket=void 0!==l.Ur.WebSocket&&(e=l.Ur.WebSocket,s(t=f)&&s(e)&&(e===t||e.isPrototypeOf(t)))?new f(this.endpoint):new f(this.endpoint,void 0,{headers:this.__internal__headers}),this.__internal__websocket&&(this.__internal__websocket.onclose=this.__internal__onSocketClose,this.__internal__websocket.onerror=this.__internal__onSocketError,this.__internal__websocket.onmessage=this.__internal__onSocketMessage,this.__internal__websocket.onopen=this.__internal__onSocketOpen),this.__internal__timeoutId=setInterval((()=>this.__internal__timeoutHandlers()),5e3)}catch(n){throw V.error(n),this.__internal__emit("error",n),n}var e,t}async connectWithRetry(){if(this.__internal__autoConnectMs>0)try{await this.connect()}catch{setTimeout((()=>{this.connectWithRetry().catch(i.Z)}),this.__internal__autoConnectMs)}}async disconnect(){this.__internal__autoConnectMs=0;try{this.__internal__websocket&&this.__internal__websocket.close(1e3)}catch(e){throw V.error(e),this.__internal__emit("error",e),e}}get stats(){return{active:{requests:Object.keys(this.__internal__handlers).length,subscriptions:Object.keys(this.__internal__subscriptions).length},total:this.__internal__stats.total}}get endpointStats(){return this.__internal__endpointStats}on(e,t){return this.__internal__eventemitter.on(e,t),()=>{this.__internal__eventemitter.removeListener(e,t)}}send(e,t,n,r){this.__internal__endpointStats.requests++,this.__internal__stats.total.requests++;const[a,i]=this.__internal__coder.encodeJson(e,t),s=n?`${e}::${(0,o.P)(t)}`:"";let c=n?this.__internal__callCache.get(s):null;return c?(this.__internal__endpointStats.cached++,this.__internal__stats.total.cached++):(c=this.__internal__send(a,i,e,t,r),n&&this.__internal__callCache.set(s,c)),c}async __internal__send(e,t,n,r,a){return new Promise(((i,s)=>{try{if(!this.isConnected||null===this.__internal__websocket)throw new Error("WebSocket is not connected");const o=(e,t)=>{e?s(e):i(t)};V.debug((()=>["calling",n,t])),this.__internal__handlers[e]={callback:o,method:n,params:r,start:Date.now(),subscription:a};const c=t.length;this.__internal__endpointStats.bytesSent+=c,this.__internal__stats.total.bytesSent+=c,this.__internal__websocket.send(t)}catch(o){this.__internal__endpointStats.errors++,this.__internal__stats.total.errors++,s(o)}}))}subscribe(e,t,n,r){return this.__internal__endpointStats.subscriptions++,this.__internal__stats.total.subscriptions++,this.send(t,n,!1,{callback:r,type:e})}async unsubscribe(e,t,n){const r=`${e}::${n}`;if((0,c.o)(this.__internal__subscriptions[r]))return V.debug((()=>`Unable to find active subscription=${r}`)),!1;delete this.__internal__subscriptions[r];try{return!(this.isConnected&&!(0,d.F)(this.__internal__websocket))||this.send(t,[n])}catch{return!1}}__internal__emit=(e,...t)=>{this.__internal__eventemitter.emit(e,...t)};__internal__onSocketClose=e=>{const t=new Error(`disconnected from ${this.endpoint}: ${e.code}:: ${e.reason||function(e){if(e>=0&&e<=999)return"(Unused)";if(e>=1016){if(e<=1999)return"(For WebSocket standard)";if(e<=2999)return"(For WebSocket extensions)";if(e<=3999)return"(For libraries and frameworks)";if(e<=4999)return"(For applications)"}return T[e]||"(Unknown)"}(e.code)}`);this.__internal__autoConnectMs>0&&V.error(t.message),this.__internal__isConnected=!1,this.__internal__websocket&&(this.__internal__websocket.onclose=null,this.__internal__websocket.onerror=null,this.__internal__websocket.onmessage=null,this.__internal__websocket.onopen=null,this.__internal__websocket=null),this.__internal__timeoutId&&(clearInterval(this.__internal__timeoutId),this.__internal__timeoutId=null),M(this.__internal__handlers,(e=>{try{e.callback(t,void 0)}catch(n){V.error(n)}})),M(this.__internal__waitingForId),this.__internal__endpointStats={bytesRecv:0,bytesSent:0,cached:0,errors:0,requests:0,subscriptions:0,timeout:0},this.__internal__emit("disconnected"),this.__internal__autoConnectMs>0&&setTimeout((()=>{this.connectWithRetry().catch(i.Z)}),this.__internal__autoConnectMs)};__internal__onSocketError=e=>{V.debug((()=>["socket error",e])),this.__internal__emit("error",e)};__internal__onSocketMessage=e=>{V.debug((()=>["received",e.data]));const t=e.data.length;this.__internal__endpointStats.bytesRecv+=t,this.__internal__stats.total.bytesRecv+=t;const n=JSON.parse(e.data);return(0,c.o)(n.method)?this.__internal__onSocketMessageResult(n):this.__internal__onSocketMessageSubscribe(n)};__internal__onSocketMessageResult=e=>{const t=this.__internal__handlers[e.id];if(t){try{const{method:n,params:r,subscription:a}=t,i=this.__internal__coder.decodeResponse(e);if(t.callback(null,i),a){const e=`${a.type}::${i}`;this.__internal__subscriptions[e]=(0,u.Z)({},a,{method:n,params:r}),this.__internal__waitingForId[e]&&this.__internal__onSocketMessageSubscribe(this.__internal__waitingForId[e])}}catch(n){this.__internal__endpointStats.errors++,this.__internal__stats.total.errors++,t.callback(n,void 0)}delete this.__internal__handlers[e.id]}else V.debug((()=>`Unable to find handler for id=${e.id}`))};__internal__onSocketMessageSubscribe=e=>{if(!e.method)throw new Error("No method found in JSONRPC response");const t=`${P[e.method]||e.method}::${e.params.subscription}`,n=this.__internal__subscriptions[t];if(!n)return this.__internal__waitingForId[t]=e,void V.debug((()=>`Unable to find handler for subscription=${t}`));delete this.__internal__waitingForId[t];try{const t=this.__internal__coder.decodeResponse(e);n.callback(null,t)}catch(r){this.__internal__endpointStats.errors++,this.__internal__stats.total.errors++,n.callback(r,void 0)}};__internal__onSocketOpen=()=>{if(null===this.__internal__websocket)throw new Error("WebSocket cannot be null in onOpen");return V.debug((()=>["connected to",this.endpoint])),this.__internal__isConnected=!0,this.__internal__resubscribe(),this.__internal__emit("connected"),!0};__internal__resubscribe=()=>{const e=this.__internal__subscriptions;this.__internal__subscriptions={},Promise.all(Object.keys(e).map((async t=>{const{callback:n,method:r,params:a,type:i}=e[t];if(!i.startsWith("author_"))try{await this.subscribe(i,r,a,n)}catch(s){V.error(s)}}))).catch(V.error)};__internal__timeoutHandlers=()=>{const e=Date.now(),t=Object.keys(this.__internal__handlers);for(let n=0,r=t.length;nthis.__internal__timeout){try{r.callback(new Error(`No response received from RPC endpoint in ${this.__internal__timeout/1e3}s`),void 0)}catch{}this.__internal__endpointStats.timeout++,this.__internal__stats.total.timeout++,delete this.__internal__handlers[t[n]]}}}}},98657:(e,t,n)=>{"use strict";n.d(t,{cR:()=>s,vc:()=>i});var r=n(51216),a=n(58758);const i="function"==typeof r.t&&"function"==typeof r.t.asIntN,s="function"==typeof a.Ur.Buffer&&"function"==typeof a.Ur.Buffer.isBuffer;a.Ur.process},63707:(e,t,n)=>{"use strict";n.d(t,{G:()=>s});const r="0123456789abcdef",a=new Uint8Array(256),i=new Uint8Array(65536);for(let o=0,c=16;o9&&(a[0|r[o].toUpperCase().charCodeAt(0)]=0|o);for(let o=0;o<256;o++){const e=o<<8;for(let t=0;t<256;t++)i[e|t]=a[o]<<4|a[t]}function s(e,t=-1){if(!e)return new Uint8Array;let n=e.startsWith("0x")?2:0;const r=Math.ceil((e.length-n)/2),a=Math.ceil(-1===t?r:t/8),s=new Uint8Array(a);for(let o=a>r?a-r:0;o{"use strict";function r(e){return"bigint"==typeof e}n.d(t,{C:()=>r})},17003:(e,t,n)=>{"use strict";n.d(t,{H:()=>a});var r=n(13550);function a(e){return r.isBN(e)}},56439:(e,t,n)=>{"use strict";n.d(t,{z:()=>s});var r=n(58758),a=n(98657),i=n(6169);function s(e){return a.cR&&!!e&&(0,i.m)(e.readDoubleLE)&&r.Ur.Buffer.isBuffer(e)}},6169:(e,t,n)=>{"use strict";function r(e){return"function"==typeof e}n.d(t,{m:()=>r})},50075:(e,t,n)=>{"use strict";n.d(t,{F7:()=>i,Sn:()=>s,be:()=>o});var r=n(6169),a=n(21652);function i(...e){return t=>((0,a.K)(t)||(0,r.m)(t))&&e.every((e=>(0,r.m)(t[e])))}function s(...e){return t=>(0,r.m)(t)&&e.every((e=>(0,r.m)(t[e])))}function o(...e){return t=>(0,a.K)(t)&&e.every((e=>(0,r.m)(t[e])))}},51787:(e,t,n)=>{"use strict";n.d(t,{Dh:()=>r,vq:()=>i,y$:()=>a});const r=/^0x[\da-fA-F]+$/,a=/^[\da-fA-F]+$/;function i(e,t=-1,n){return"string"==typeof e&&("0x"===e||r.test(e))&&(-1===t?n||e.length%2==0:e.length===2+Math.ceil(t/4))}},66103:(e,t,n)=>{"use strict";function r(e){return null===e}n.d(t,{F:()=>r})},51482:(e,t,n)=>{"use strict";function r(e){return"number"==typeof e}n.d(t,{h:()=>r})},21652:(e,t,n)=>{"use strict";function r(e){return!!e&&"object"==typeof e}n.d(t,{K:()=>r})},48907:(e,t,n)=>{"use strict";function r(e){return"string"==typeof e||e instanceof String}n.d(t,{H:()=>r})},53554:(e,t,n)=>{"use strict";function r(e){return(e&&e.constructor)===Uint8Array||e instanceof Uint8Array}n.d(t,{U:()=>r})},98278:(e,t,n)=>{"use strict";function r(e){return void 0===e}n.d(t,{o:()=>r})},64992:(e,t,n)=>{"use strict";n.d(t,{k:()=>g});var r=n(58758);function a(e){return e.toString().padStart(2,"0")}var i=n(17003),s=n(56439),o=n(6169),c=n(21652),d=n(53554),u=n(249),l=n(65716),f=n(33667);const p={debug:"log",error:"error",log:"log",warn:"warn"};function h(e){return Array.isArray(e)?e.map(h):(0,i.H)(e)?e.toString():(0,d.U)(e)||(0,s.z)(e)?(0,u.c)((0,l.Y)(e)):function(e){if(e&&(0,c.K)(e)&&e.constructor===Object){const t={};for(const[n,r]of Object.entries(e))t[n]=h(r);return t}return e}(e)}function b(e,t,n,r=-1){if(1===n.length&&(0,o.m)(n[0])){const a=n[0]();return b(e,t,Array.isArray(a)?a:[a],r)}var i,s;console[p[e]](`${(s=new Date).getFullYear().toString()}-${a(s.getMonth()+1)}-${a(s.getDate())} ${a(s.getHours())}:${a(s.getMinutes())}:${a(s.getSeconds())}`,t,...n.map(h).map((i=r,e=>{if(i<=0)return e;const t=`${e}`;return t.lengthb("debug",t,e,a):f.Z,error:(...e)=>b("error",t,e),log:(...e)=>b("log",t,e),noop:f.Z,warn:(...e)=>b("warn",t,e)}}},33667:(e,t,n)=>{"use strict";function r(e){return e}function a(){}n.d(t,{Z:()=>a,y:()=>r})},50273:(e,t,n)=>{"use strict";function r(e,...t){for(let n=0,r=t.length;nr})},56398:(e,t,n)=>{"use strict";n.d(t,{d:()=>s});var r=n(58758);class a{encode(e){const t=e.length,n=new Uint8Array(t);for(let r=0;r{"use strict";n.d(t,{P:()=>i});var r=n(36032);function a(e,t){return(0,r.C)(t)?t.toString():t}function i(e,t){return JSON.stringify(e,a,t)}},249:(e,t,n)=>{"use strict";n.d(t,{c:()=>s});const r=new Array(256),a=new Array(65536);for(let o=0;o<256;o++)r[o]=o.toString(16).padStart(2,"0");for(let o=0;o<256;o++){const e=o<<8;for(let t=0;t<256;t++)a[e|t]=r[o]+r[t]}function i(e,t){const n=e.length%2|0,i=e.length-n|0;for(let r=0;r0){const n=Math.ceil(t/8);if(e.length>n)return`${i(e.subarray(0,n/2),r)}\u2026${i(e.subarray(e.length-n/2),"")}`}return i(e,r)}},65716:(e,t,n)=>{"use strict";n.d(t,{Y:()=>c});var r=n(63707),a=n(56439),i=n(51787),s=n(53554),o=n(56398);function c(e){return(0,s.U)(e)?(0,a.z)(e)?new Uint8Array(e):e:(0,i.vq)(e)?(0,r.G)(e):Array.isArray(e)?new Uint8Array(e):(0,o.d)(e)}},51216:(e,t,n)=>{"use strict";function r(){return Number.NaN}n.d(t,{t:()=>a});const a=(0,n(58758).o)("BigInt",r)},58758:(e,t,n)=>{"use strict";n.d(t,{Ur:()=>r,o:()=>a});const r="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:Function("return this");function a(e,t){return void 0===r[e]?t:r[e]}},54146:(e,t,n)=>{"use strict";n.d(t,{v:()=>r});var r=n(26729)}}]); \ No newline at end of file diff --git a/assets/js/60738e36.4ee51de4.js b/assets/js/60738e36.d8a4cbd8.js similarity index 99% rename from assets/js/60738e36.4ee51de4.js rename to assets/js/60738e36.d8a4cbd8.js index ce94e1bea5..245cccfb9b 100644 --- a/assets/js/60738e36.4ee51de4.js +++ b/assets/js/60738e36.d8a4cbd8.js @@ -1 +1 @@ -(self.webpackChunk=self.webpackChunk||[]).push([[9071],{71345:(e,t,a)=>{"use strict";a.r(t),a.d(t,{assets:()=>$,contentTitle:()=>Y,default:()=>ne,frontMatter:()=>X,metadata:()=>Q,toc:()=>ee});var n=a(87462),r=a(63366),l=a(67294),s=a(3905),c=a(67855);var i=a(74165),o=a(15861),m=a(87152),u=a(9712);var p,d=JSON.parse('{"v6":{"To":"^11.0.3"}}').v6.To.substring(1),h=[{name:"Polkadot",rpc:"wss://rpc.polkadot.io"},{name:"Kusama",rpc:"wss://kusama-rpc.polkadot.io"},{name:"Westend",rpc:"wss://westend-rpc.polkadot.io"},{name:"Polkadot Asset Hub",rpc:"wss://polkadot-asset-hub-rpc.polkadot.io"},{name:"Kusama Asset Hub",rpc:"wss://kusama-asset-hub-rpc.polkadot.io"},{name:"Westmint",rpc:"wss://westmint-rpc.polkadot.io"},{name:"Rococo",rpc:"wss://rococo-rpc.polkadot.io"}],E=["auctions","claims","crowdloan","registrar","slots"],y=["configuration","hrmp","initializer","paras_inherent","paras","disputes","disputes/slashing"],f={registrar:"paras_registrar",xcmpallet:"xcm",voterlist:"bags_list",fastunstake:"fast_unstake",childbounties:"child_bounties",nominationpools:"nomination_pools",convictionvoting:"conviction_voting",imonline:"im_online",parasdisputes:"disputes",parasslashing:"disputes/slashing",parainherent:"paras_inherent",messagequeue:"message_queue",electionprovidermultiphase:"election_provider_multi_phase",system:"frame_system"},b=[];function g(e){var t=e.version,a=(0,l.useState)(""),n=a[0],r=a[1];return(0,l.useEffect)((0,o.Z)((0,i.Z)().mark((function e(){var a,n,s,c,o;return(0,i.Z)().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return a="Polkadot","Metadata Explorer \xb7 Guide"===document.title&&(a="Kusama"),n=h.find((function(e){return e.name===a})),s=n.rpc,c=[],h.forEach((function(e){var t=l.createElement("option",{value:e.rpc,key:e.name},""+(e.name.charAt(0).toUpperCase()+e.name.slice(1)));c.push(t)})),o=l.createElement("select",{defaultValue:n.rpc,style:Z,onChange:function(e){return v(t,e.target.value,o,r)}},c.map((function(e){return e}))),r(l.createElement("div",{style:H},l.createElement("b",null,"Loading Metadata Explorer..."))),e.next=10,v(t,s,o,r);case 10:case"end":return e.stop()}}),e)}))),[]),n}function v(e,t,a,n){return k.apply(this,arguments)}function k(){return(k=(0,o.Z)((0,i.Z)().mark((function e(t,a,n,r){var s,c,o,p,h,E,y,f,g;return(0,i.Z)().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return I("metadataLoading",!1),s=new m.U(a),e.next=4,u.G.create({provider:s});case 4:return c=e.sent,b=[],e.next=8,c.rpc.state.getMetadata();case 8:o=e.sent,p=o.toHuman(),h=p.metadata[t].lookup.types,(E=p.metadata[t].pallets).sort((function(e,t){return e.name.localeCompare(t.name)})),y=[],E.forEach((function(e){var t=x(e,c.consts[""+C(e.name)],"constants",h),a=x(e,c.errors[""+C(e.name)],"errors",h),n=x(e,c.events[""+C(e.name)],"events",h),r=x(e,c.tx[""+C(e.name)],"extrinsics",h),s=x(e,c.query[C(e.name)],"storage",h),i=T(e.name,"constants",t),o=T(e.name,"errors",a),m=T(e.name,"events",n),u=T(e.name,"extrinsics",r),p=T(e.name,"storage",s);y.push(l.createElement("div",{key:e.name,style:G},l.createElement("span",null,l.createElement("b",{id:e.name+"-button",style:W,onClick:function(){j(e.name)}},"+"),"\xa0",l.createElement("b",null,e.name)),l.createElement("div",{id:e.name,style:R},i,o,m,u,p))),b.push(e.name),b.push(e.name+"-constants",e.name+"-errors",e.name+"-events",e.name+"-extrinsics",e.name+"-storage")})),f=w(c.rpc,"rpc"),g=w(c.call,"runtime"),I("metadataLoading",!0),r(l.createElement("div",null,l.createElement("div",{style:L},l.createElement("input",{id:"metaSearch",type:"text",placeholder:"Search Metadata",style:K,onInput:function(){return D()}}),l.createElement("br",null),n,l.createElement("div",{id:"buttonControls"},l.createElement("button",{style:O,onClick:function(){return S(!0)}},l.createElement("span",{style:{fontSize:"10px"}},"Expand All")),l.createElement("button",{style:O,onClick:function(){return S(!1)}},l.createElement("span",{style:{fontSize:"10px"}},"Collapse All"))),l.createElement("div",{style:{fontSize:"10px"}},l.createElement("b",{style:H},"metadata"),l.createElement("b",null," "+t),"\xa0",l.createElement("b",{style:H},"@polkadot/api"),l.createElement("b",null," V"+d)),l.createElement("div",{id:"metadataLoading",style:q},l.createElement("b",null,"Connecting to "+a+"...")),l.createElement("div",{id:"searchLoading",style:q},l.createElement("b",null,"Searching...")),l.createElement("div",{id:"searchResults",style:q},l.createElement("b",null,"Matches: "),l.createElement("b",{id:"searchCount",style:H},"0"))),l.createElement("b",{style:F},"Pallets:"),y,l.createElement("br",null),l.createElement("b",{style:F},"RPC:"),f,l.createElement("br",null),l.createElement("b",{style:F},"Runtime:"),g));case 19:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function x(e,t,a,n){var r=[];null!=t&&Object.keys(t).sort((function(e,t){return e.localeCompare(t)})).forEach((function(s){var c,i=t[s].meta.toHuman(),o=A(e.name.toLowerCase(),i.docs.join(" ")),m=s.charAt(0).toUpperCase()+s.slice(1);switch(a){case"constants":var u=n[i.type].type.def;c=l.createElement("ul",null,l.createElement("li",{className:"searchable"},l.createElement("u",null,"Description"),": ",o),l.createElement("li",{className:"searchable"},l.createElement("u",null,"API Endpoint"),": ",l.createElement("span",{style:H},"api.consts."+C(e.name)+"."+C(s))),l.createElement("li",{className:"searchable"},l.createElement("u",null,"Chain Value"),": ",l.createElement("span",{style:H},""+JSON.stringify(t[s]))),l.createElement("li",{className:"searchable"},l.createElement("u",null,"Chain Value Type"),": ","("+Object.keys(u)[0]+": "+Object.values(u)[0]+")"));break;case"errors":c=l.createElement("ul",null,l.createElement("li",{className:"searchable"},l.createElement("u",null,"Description"),": ",o),l.createElement("li",{className:"searchable"},l.createElement("u",null,"API Endpoint"),": ",l.createElement("span",{style:H},"api.errors."+C(e.name)+"."+C(s))));break;case"events":c=l.createElement("ul",null,l.createElement("li",{className:"searchable"},l.createElement("u",null,"Description"),": ",o),l.createElement("li",{className:"searchable"},l.createElement("u",null,"API Endpoint"),": ",l.createElement("span",{style:H},"api.events."+C(e.name)+"."+C(s))),l.createElement("li",{className:"searchable"},l.createElement("u",null,"Fields"),": ",_(i,"events")));break;case"extrinsics":c=l.createElement("ul",null,l.createElement("li",{className:"searchable"},l.createElement("u",null,"Description"),": ",o),l.createElement("li",{className:"searchable"},l.createElement("u",null,"API Endpoint"),": ",l.createElement("span",{style:H},"api.tx."+C(e.name)+"."+C(s))),l.createElement("li",{className:"searchable"},l.createElement("u",null,"Parameters"),": ",_(i,"extrinsics")));break;case"storage":c=l.createElement("ul",null,l.createElement("li",{className:"searchable"},l.createElement("u",null,"Description"),": ",o),l.createElement("li",{className:"searchable"},l.createElement("u",null,"API Endpoint"),": ",l.createElement("span",{style:H},"api.query."+C(e.name)+"."+C(s))),l.createElement("li",{className:"searchable"},l.createElement("u",null,"Return Type"),": ",_(i,"storage",n)));break;default:!function(e){throw new TypeError('"'+e+'" is read-only')}("item")}var p=l.createElement("li",{key:s},l.createElement("b",null,m),c);r.push(p)}));return r=N(r)}function w(e,t){var a=[],n=Object.keys(e);return n.sort((function(e,t){return e.localeCompare(t)})),n.forEach((function(n){var r=[],s=e[n],c=Object.keys(s);c.sort((function(e,t){return e.localeCompare(t)})),c.forEach((function(e){var a,c=s[e].meta,i=A("",c.description);switch(t){case"rpc":a=l.createElement("ul",{style:V},l.createElement("li",{className:"searchable"},l.createElement("u",null,"Description"),": ",i),l.createElement("li",{className:"searchable"},l.createElement("u",null,"API Endpoint"),": ",l.createElement("span",{style:H},"api.rpc."+n+"."+e)),l.createElement("li",{className:"searchable"},l.createElement("u",null,"Return Type"),": ",c.type),l.createElement("li",{className:"searchable"},l.createElement("u",null,"Parameters"),": ",_(c,"rpc")));break;case"runtime":a=l.createElement("ul",{style:V},l.createElement("li",{className:"searchable"},l.createElement("u",null,"Description"),": ",i),l.createElement("li",{className:"searchable"},l.createElement("u",null,"API Endpoint"),": ",l.createElement("span",{style:H},"api.call."+n+"."+e)),l.createElement("li",{className:"searchable"},l.createElement("u",null,"Type"),": ",c.type))}var o=l.createElement("div",{key:n+"."+e},l.createElement("b",null,""+(e.charAt(0).toUpperCase()+e.slice(1))),a);r.push(o)})),r=N(r);var i=n.charAt(0).toUpperCase()+n.slice(1),o=l.createElement("div",{key:n,style:G},l.createElement("span",null,l.createElement("b",{id:n+"-button",style:W,onClick:function(){j(n)}},"+"),"\xa0",l.createElement("b",null,i)),l.createElement("div",{id:n,style:R},l.createElement("ul",{style:V},r)));a.push(o),b.push(n)})),a}function C(e){return e.charAt(0).toLowerCase()+e.slice(1)}function N(e){return 0===e.length?l.createElement("p",{style:V},"None"):e}function T(e,t,a){return l.createElement("ul",{style:V},l.createElement("span",null,l.createElement("b",{id:e+"-"+t+"-button",style:W,onClick:function(){j(e+"-"+t)}},"+"),"\xa0",l.createElement("b",null,t.charAt(0).toUpperCase()+t.slice(1))),l.createElement("div",{id:e+"-"+t,style:U},l.createElement("ul",null,a)))}function P(e,t){var a=null!=f[e]?f[e]:e;return E.includes(e)?"https://paritytech.github.io/polkadot-sdk/master/polkadot_runtime_common/"+a+"/pallet/struct.Pallet.html#method."+t:y.includes(a)?"https://paritytech.github.io/polkadot-sdk/master/polkadot_runtime_parachains/"+a+"/pallet/struct.Pallet.html#method."+t:"staking"==e?"https://paritytech.github.io/polkadot-sdk/master/pallet_"+a+"/struct.Pallet.html#method."+t:a.startsWith("frame_")?"https://paritytech.github.io/polkadot-sdk/master/"+a+"/pallet/struct.Pallet.html#method."+t:"https://paritytech.github.io/polkadot-sdk/master/pallet_"+a+"/pallet/struct.Pallet.html#method."+t}function A(e,t){for(var a=t.split("`"),n=[],r=0;r{}}]); \ No newline at end of file +(self.webpackChunk=self.webpackChunk||[]).push([[9071],{71345:(e,t,a)=>{"use strict";a.r(t),a.d(t,{assets:()=>$,contentTitle:()=>Y,default:()=>ne,frontMatter:()=>X,metadata:()=>Q,toc:()=>ee});var n=a(87462),r=a(63366),l=a(67294),s=a(3905),c=a(67855);var i=a(74165),o=a(15861),m=a(87152),u=a(9712);var p,d=JSON.parse('{"v6":{"To":"^11.1.1"}}').v6.To.substring(1),h=[{name:"Polkadot",rpc:"wss://rpc.polkadot.io"},{name:"Kusama",rpc:"wss://kusama-rpc.polkadot.io"},{name:"Westend",rpc:"wss://westend-rpc.polkadot.io"},{name:"Polkadot Asset Hub",rpc:"wss://polkadot-asset-hub-rpc.polkadot.io"},{name:"Kusama Asset Hub",rpc:"wss://kusama-asset-hub-rpc.polkadot.io"},{name:"Westmint",rpc:"wss://westmint-rpc.polkadot.io"},{name:"Rococo",rpc:"wss://rococo-rpc.polkadot.io"}],E=["auctions","claims","crowdloan","registrar","slots"],y=["configuration","hrmp","initializer","paras_inherent","paras","disputes","disputes/slashing"],f={registrar:"paras_registrar",xcmpallet:"xcm",voterlist:"bags_list",fastunstake:"fast_unstake",childbounties:"child_bounties",nominationpools:"nomination_pools",convictionvoting:"conviction_voting",imonline:"im_online",parasdisputes:"disputes",parasslashing:"disputes/slashing",parainherent:"paras_inherent",messagequeue:"message_queue",electionprovidermultiphase:"election_provider_multi_phase",system:"frame_system"},b=[];function g(e){var t=e.version,a=(0,l.useState)(""),n=a[0],r=a[1];return(0,l.useEffect)((0,o.Z)((0,i.Z)().mark((function e(){var a,n,s,c,o;return(0,i.Z)().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return a="Polkadot","Metadata Explorer \xb7 Guide"===document.title&&(a="Kusama"),n=h.find((function(e){return e.name===a})),s=n.rpc,c=[],h.forEach((function(e){var t=l.createElement("option",{value:e.rpc,key:e.name},""+(e.name.charAt(0).toUpperCase()+e.name.slice(1)));c.push(t)})),o=l.createElement("select",{defaultValue:n.rpc,style:Z,onChange:function(e){return v(t,e.target.value,o,r)}},c.map((function(e){return e}))),r(l.createElement("div",{style:H},l.createElement("b",null,"Loading Metadata Explorer..."))),e.next=10,v(t,s,o,r);case 10:case"end":return e.stop()}}),e)}))),[]),n}function v(e,t,a,n){return k.apply(this,arguments)}function k(){return(k=(0,o.Z)((0,i.Z)().mark((function e(t,a,n,r){var s,c,o,p,h,E,y,f,g;return(0,i.Z)().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return I("metadataLoading",!1),s=new m.U(a),e.next=4,u.G.create({provider:s});case 4:return c=e.sent,b=[],e.next=8,c.rpc.state.getMetadata();case 8:o=e.sent,p=o.toHuman(),h=p.metadata[t].lookup.types,(E=p.metadata[t].pallets).sort((function(e,t){return e.name.localeCompare(t.name)})),y=[],E.forEach((function(e){var t=x(e,c.consts[""+C(e.name)],"constants",h),a=x(e,c.errors[""+C(e.name)],"errors",h),n=x(e,c.events[""+C(e.name)],"events",h),r=x(e,c.tx[""+C(e.name)],"extrinsics",h),s=x(e,c.query[C(e.name)],"storage",h),i=T(e.name,"constants",t),o=T(e.name,"errors",a),m=T(e.name,"events",n),u=T(e.name,"extrinsics",r),p=T(e.name,"storage",s);y.push(l.createElement("div",{key:e.name,style:G},l.createElement("span",null,l.createElement("b",{id:e.name+"-button",style:W,onClick:function(){j(e.name)}},"+"),"\xa0",l.createElement("b",null,e.name)),l.createElement("div",{id:e.name,style:R},i,o,m,u,p))),b.push(e.name),b.push(e.name+"-constants",e.name+"-errors",e.name+"-events",e.name+"-extrinsics",e.name+"-storage")})),f=w(c.rpc,"rpc"),g=w(c.call,"runtime"),I("metadataLoading",!0),r(l.createElement("div",null,l.createElement("div",{style:L},l.createElement("input",{id:"metaSearch",type:"text",placeholder:"Search Metadata",style:K,onInput:function(){return D()}}),l.createElement("br",null),n,l.createElement("div",{id:"buttonControls"},l.createElement("button",{style:O,onClick:function(){return S(!0)}},l.createElement("span",{style:{fontSize:"10px"}},"Expand All")),l.createElement("button",{style:O,onClick:function(){return S(!1)}},l.createElement("span",{style:{fontSize:"10px"}},"Collapse All"))),l.createElement("div",{style:{fontSize:"10px"}},l.createElement("b",{style:H},"metadata"),l.createElement("b",null," "+t),"\xa0",l.createElement("b",{style:H},"@polkadot/api"),l.createElement("b",null," V"+d)),l.createElement("div",{id:"metadataLoading",style:q},l.createElement("b",null,"Connecting to "+a+"...")),l.createElement("div",{id:"searchLoading",style:q},l.createElement("b",null,"Searching...")),l.createElement("div",{id:"searchResults",style:q},l.createElement("b",null,"Matches: "),l.createElement("b",{id:"searchCount",style:H},"0"))),l.createElement("b",{style:F},"Pallets:"),y,l.createElement("br",null),l.createElement("b",{style:F},"RPC:"),f,l.createElement("br",null),l.createElement("b",{style:F},"Runtime:"),g));case 19:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function x(e,t,a,n){var r=[];null!=t&&Object.keys(t).sort((function(e,t){return e.localeCompare(t)})).forEach((function(s){var c,i=t[s].meta.toHuman(),o=A(e.name.toLowerCase(),i.docs.join(" ")),m=s.charAt(0).toUpperCase()+s.slice(1);switch(a){case"constants":var u=n[i.type].type.def;c=l.createElement("ul",null,l.createElement("li",{className:"searchable"},l.createElement("u",null,"Description"),": ",o),l.createElement("li",{className:"searchable"},l.createElement("u",null,"API Endpoint"),": ",l.createElement("span",{style:H},"api.consts."+C(e.name)+"."+C(s))),l.createElement("li",{className:"searchable"},l.createElement("u",null,"Chain Value"),": ",l.createElement("span",{style:H},""+JSON.stringify(t[s]))),l.createElement("li",{className:"searchable"},l.createElement("u",null,"Chain Value Type"),": ","("+Object.keys(u)[0]+": "+Object.values(u)[0]+")"));break;case"errors":c=l.createElement("ul",null,l.createElement("li",{className:"searchable"},l.createElement("u",null,"Description"),": ",o),l.createElement("li",{className:"searchable"},l.createElement("u",null,"API Endpoint"),": ",l.createElement("span",{style:H},"api.errors."+C(e.name)+"."+C(s))));break;case"events":c=l.createElement("ul",null,l.createElement("li",{className:"searchable"},l.createElement("u",null,"Description"),": ",o),l.createElement("li",{className:"searchable"},l.createElement("u",null,"API Endpoint"),": ",l.createElement("span",{style:H},"api.events."+C(e.name)+"."+C(s))),l.createElement("li",{className:"searchable"},l.createElement("u",null,"Fields"),": ",_(i,"events")));break;case"extrinsics":c=l.createElement("ul",null,l.createElement("li",{className:"searchable"},l.createElement("u",null,"Description"),": ",o),l.createElement("li",{className:"searchable"},l.createElement("u",null,"API Endpoint"),": ",l.createElement("span",{style:H},"api.tx."+C(e.name)+"."+C(s))),l.createElement("li",{className:"searchable"},l.createElement("u",null,"Parameters"),": ",_(i,"extrinsics")));break;case"storage":c=l.createElement("ul",null,l.createElement("li",{className:"searchable"},l.createElement("u",null,"Description"),": ",o),l.createElement("li",{className:"searchable"},l.createElement("u",null,"API Endpoint"),": ",l.createElement("span",{style:H},"api.query."+C(e.name)+"."+C(s))),l.createElement("li",{className:"searchable"},l.createElement("u",null,"Return Type"),": ",_(i,"storage",n)));break;default:!function(e){throw new TypeError('"'+e+'" is read-only')}("item")}var p=l.createElement("li",{key:s},l.createElement("b",null,m),c);r.push(p)}));return r=N(r)}function w(e,t){var a=[],n=Object.keys(e);return n.sort((function(e,t){return e.localeCompare(t)})),n.forEach((function(n){var r=[],s=e[n],c=Object.keys(s);c.sort((function(e,t){return e.localeCompare(t)})),c.forEach((function(e){var a,c=s[e].meta,i=A("",c.description);switch(t){case"rpc":a=l.createElement("ul",{style:V},l.createElement("li",{className:"searchable"},l.createElement("u",null,"Description"),": ",i),l.createElement("li",{className:"searchable"},l.createElement("u",null,"API Endpoint"),": ",l.createElement("span",{style:H},"api.rpc."+n+"."+e)),l.createElement("li",{className:"searchable"},l.createElement("u",null,"Return Type"),": ",c.type),l.createElement("li",{className:"searchable"},l.createElement("u",null,"Parameters"),": ",_(c,"rpc")));break;case"runtime":a=l.createElement("ul",{style:V},l.createElement("li",{className:"searchable"},l.createElement("u",null,"Description"),": ",i),l.createElement("li",{className:"searchable"},l.createElement("u",null,"API Endpoint"),": ",l.createElement("span",{style:H},"api.call."+n+"."+e)),l.createElement("li",{className:"searchable"},l.createElement("u",null,"Type"),": ",c.type))}var o=l.createElement("div",{key:n+"."+e},l.createElement("b",null,""+(e.charAt(0).toUpperCase()+e.slice(1))),a);r.push(o)})),r=N(r);var i=n.charAt(0).toUpperCase()+n.slice(1),o=l.createElement("div",{key:n,style:G},l.createElement("span",null,l.createElement("b",{id:n+"-button",style:W,onClick:function(){j(n)}},"+"),"\xa0",l.createElement("b",null,i)),l.createElement("div",{id:n,style:R},l.createElement("ul",{style:V},r)));a.push(o),b.push(n)})),a}function C(e){return e.charAt(0).toLowerCase()+e.slice(1)}function N(e){return 0===e.length?l.createElement("p",{style:V},"None"):e}function T(e,t,a){return l.createElement("ul",{style:V},l.createElement("span",null,l.createElement("b",{id:e+"-"+t+"-button",style:W,onClick:function(){j(e+"-"+t)}},"+"),"\xa0",l.createElement("b",null,t.charAt(0).toUpperCase()+t.slice(1))),l.createElement("div",{id:e+"-"+t,style:U},l.createElement("ul",null,a)))}function P(e,t){var a=null!=f[e]?f[e]:e;return E.includes(e)?"https://paritytech.github.io/polkadot-sdk/master/polkadot_runtime_common/"+a+"/pallet/struct.Pallet.html#method."+t:y.includes(a)?"https://paritytech.github.io/polkadot-sdk/master/polkadot_runtime_parachains/"+a+"/pallet/struct.Pallet.html#method."+t:"staking"==e?"https://paritytech.github.io/polkadot-sdk/master/pallet_"+a+"/struct.Pallet.html#method."+t:a.startsWith("frame_")?"https://paritytech.github.io/polkadot-sdk/master/"+a+"/pallet/struct.Pallet.html#method."+t:"https://paritytech.github.io/polkadot-sdk/master/pallet_"+a+"/pallet/struct.Pallet.html#method."+t}function A(e,t){for(var a=t.split("`"),n=[],r=0;r{}}]); \ No newline at end of file diff --git a/assets/js/a74a59a0.02bd5f36.js b/assets/js/a74a59a0.02bd5f36.js new file mode 100644 index 0000000000..7dfe58cde4 --- /dev/null +++ b/assets/js/a74a59a0.02bd5f36.js @@ -0,0 +1 @@ +(self.webpackChunk=self.webpackChunk||[]).push([[8702],{47940:(e,t,a)=>{"use strict";a.d(t,{Z:()=>c});var n=a(74165),o=a(15861),i=a(67294),r=a(87152),s=a(9712),l=a(67425);function d(e,t,a){return p.apply(this,arguments)}function p(){return(p=(0,o.Z)((0,n.Z)().mark((function e(t,a,o){var i,l,d,p,u;return(0,n.Z)().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:i=void 0,l=void 0,e.t0=t,e.next="polkadot"===e.t0?5:"kusama"===e.t0?7:"statemine"===e.t0?9:"statemint"===e.t0?11:13;break;case 5:return i="wss://rpc.polkadot.io",e.abrupt("break",14);case 7:return i="wss://kusama-rpc.polkadot.io/",e.abrupt("break",14);case 9:return i="wss://statemine-rpc.polkadot.io/",e.abrupt("break",14);case 11:return i="wss://statemint-rpc.polkadot.io/",e.abrupt("break",14);case 13:console.log("Unknown socket url provided, no connection made.");case 14:if(void 0!==i){e.next=18;break}return e.abrupt("return");case 18:return d=new r.U(i),e.next=21,s.G.create({provider:d});case 21:p=e.sent,(u=a.split(".")).forEach((function(e){e in p&&(p=p[e])})),e.t1=u[0],e.next="consts"===e.t1?27:"query"===e.t1?29:34;break;case 27:return l=p.toString(),e.abrupt("break",35);case 29:return e.next=31,p();case 31:return l=(l=e.sent).toString(),e.abrupt("break",35);case 34:console.log("Unknown path prefix ("+u[0]+") in "+a);case 35:return e.abrupt("return",l);case 36:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function u(e,t,a,n){switch(t){case"humanReadable":(0,l.HumanReadable)(e,a,n);break;case"precise":(0,l.Precise)(e,a,n);break;case"blocksToDays":(0,l.BlocksToDays)(e,n);break;case"erasToDays":(0,l.ErasToDays)(e,n,a);break;case"percentage":(0,l.Percentage)(e,n);break;case"permillToPercent":(0,l.PermillToPercent)(e,n);break;case"arrayLength":(0,l.ArrayLength)(e,n);break;default:return void console.log("Ignoring unknown filter type")}}const c=function(e){var t=e.network,a=e.path,r=e.defaultValue,s=e.filter,l=void 0===s?void 0:s,p=(0,i.useState)(""),c=p[0],h=p[1];return t=t.toLowerCase(),(0,i.useEffect)((function(){void 0!==l?u(r.toString(),l,t,h):h(r.toString());var e=void 0;switch(t){case"polkadot":e="wss://rpc.polkadot.io";break;case"kusama":e="wss://kusama-rpc.polkadot.io/";break;case"statemine":e="wss://kusama-asset-hub-rpc.polkadot.io/";break;case"statemint":e="wss://polkadot-asset-hub-rpc.polkadot.io/";break;default:console.log("Unknown network provided, "+t)}if(void 0===e)console.log("Failed to connect to a valid websocket, applying default");else{var i=function(){var e=(0,o.Z)((0,n.Z)().mark((function e(){var o;return(0,n.Z)().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,d(t,a,h);case 2:if(void 0!==(o=e.sent)){e.next=7;break}return e.abrupt("return");case 7:void 0!==l?u(o,l,t,h):h(o);case 8:case"end":return e.stop()}}),e)})));return function(){return e.apply(this,arguments)}}();try{i()}catch(s){console.log(s)}}}),[]),c}},67425:e=>{var t="polkadot",a="kusama",n="statemine",o="statemint",i={polkadot:{precision:1e10,symbol:"DOT"},kusama:{precision:1e12,symbol:"KSM"},statemint:{precision:1e10,symbol:"DOT"},statemine:{precision:1e12,symbol:"KSM"}};e.exports={HumanReadable:function(e,r,s){var l=void 0;if(r===t||r===o)l=3;else{if(r!==a&&r!==n)return void console.log("Unknown network type found when attempting to apply 'Human Readable' filter");l=6}e=parseFloat(e),s((e=Number.isInteger(e/i[r].precision)?e/i[r].precision+" "+i[r].symbol:(e/i[r].precision).toFixed(l)+" "+i[r].symbol).toString())},Precise:function(e,t,a){a(e=(e=parseFloat(e))/i[t].precision+" "+i[t].symbol)},BlocksToDays:function(e,t){t((e=6*e/86400).toString())},ErasToDays:function(e,i,r){var s=void 0;if(r===t||r===o)s=1;else{if(r!==a&&r!==n)return void console.log("Unknown network type found when attempting to apply 'Human Readable' filter");s=4}i((e/=s).toString())},Percentage:function(e,t){t((e/=1e7).toString())},PermillToPercent:function(e,t){t((e/=1e4).toString())},ArrayLength:function(e,t){t((e=e.split(",").length).toString())}}},11300:(e,t,a)=>{"use strict";a.r(t),a.d(t,{assets:()=>u,contentTitle:()=>d,default:()=>k,frontMatter:()=>l,metadata:()=>p,toc:()=>c});var n=a(87462),o=a(63366),i=(a(67294),a(3905)),r=a(47940),s=["components"],l={id:"maintain-guides-how-to-validate-polkadot",title:"Run a Validator (Polkadot)",sidebar_label:"How to run a Validator on Polkadot",description:"The fundamentals for running a Polkadot validator.",keywords:["validator setup","validator","validate","binary","runtime"],slug:"../maintain-guides-how-to-validate-polkadot"},d=void 0,p={unversionedId:"maintain/maintain-guides-how-to-validate-polkadot",id:"maintain/maintain-guides-how-to-validate-polkadot",title:"Run a Validator (Polkadot)",description:"The fundamentals for running a Polkadot validator.",source:"@site/../docs/maintain/maintain-guides-how-to-validate-polkadot.md",sourceDirName:"maintain",slug:"/maintain-guides-how-to-validate-polkadot",permalink:"/docs/maintain-guides-how-to-validate-polkadot",draft:!1,tags:[],version:"current",lastUpdatedBy:"bLd759",lastUpdatedAt:1716410330,formattedLastUpdatedAt:"May 22, 2024",frontMatter:{id:"maintain-guides-how-to-validate-polkadot",title:"Run a Validator (Polkadot)",sidebar_label:"How to run a Validator on Polkadot",description:"The fundamentals for running a Polkadot validator.",keywords:["validator setup","validator","validate","binary","runtime"],slug:"../maintain-guides-how-to-validate-polkadot"}},u={},c=[{value:"Preliminaries",id:"preliminaries",level:2},{value:"How many DOT do I need to become an active Validator?",id:"how-many-dot-do-i-need-to-become-an-active-validator",level:3},{value:"Initial Set-up",id:"initial-set-up",level:2},{value:"Requirements",id:"requirements",level:3},{value:"Reference Hardware",id:"reference-hardware",level:4},{value:"Install & Configure Network Time Protocol (NTP) Client",id:"install--configure-network-time-protocol-ntp-client",level:3},{value:"Make Sure Landlock is Enabled",id:"make-sure-landlock-is-enabled",level:3},{value:"Installing the Polkadot binaries",id:"installing-the-polkadot-binaries",level:3},{value:"Installation from official releases",id:"installation-from-official-releases",level:4},{value:"Optional: Installation with Package Managers",id:"optional-installation-with-package-managers",level:4},{value:"Debian-based (Debian, Ubuntu)",id:"debian-based-debian-ubuntu",level:4},{value:"RPM-based (Fedora, CentOS)",id:"rpm-based-fedora-centos",level:4},{value:"Optional: Installation with Ansible",id:"optional-installation-with-ansible",level:4},{value:"Optional: Installation with Docker",id:"optional-installation-with-docker",level:4},{value:"Optional: Building the Polkadot binaries from sources",id:"optional-building-the-polkadot-binaries-from-sources",level:3},{value:"Prerequisites: Install Rust and Dependencies",id:"prerequisites-install-rust-and-dependencies",level:4},{value:"Building the binaries",id:"building-the-binaries",level:4},{value:"Verify the installation",id:"verify-the-installation",level:3},{value:"Synchronize Chain Data",id:"synchronize-chain-data",level:3},{value:"Database Snapshot Services",id:"database-snapshot-services",level:4},{value:"Bond DOT",id:"bond-dot",level:2},{value:"Set Session Keys",id:"set-session-keys",level:2},{value:"Generating the Session Keys",id:"generating-the-session-keys",level:3},{value:"Option 1: PolkadotJS-APPS",id:"option-1-polkadotjs-apps",level:4},{value:"Option 2: CLI",id:"option-2-cli",level:4},{value:"Submitting the setKeys Transaction",id:"submitting-the-setkeys-transaction",level:3},{value:"Validate",id:"validate",level:2},{value:"Setup via Validator Tab",id:"setup-via-validator-tab",level:3},{value:"Thousand Validators Programme",id:"thousand-validators-programme",level:2},{value:"Running a validator on a testnet",id:"running-a-validator-on-a-testnet",level:2},{value:"FAQ",id:"faq",level:2},{value:"Why am I unable to synchronize the chain with 0 peers?",id:"why-am-i-unable-to-synchronize-the-chain-with-0-peers",level:3},{value:"How do I clear all my chain data?",id:"how-do-i-clear-all-my-chain-data",level:3},{value:"Note about VPS",id:"note-about-vps",level:2},{value:"Disable SMT",id:"disable-smt",level:3},{value:"Disable automatic NUMA balancing",id:"disable-automatic-numa-balancing",level:3},{value:"Configure Spectre/Meltdown Mitigations",id:"configure-spectremeltdown-mitigations",level:3},{value:"For Linux >= 5.16",id:"for-linux--516",level:4},{value:"For Linux < 5.16",id:"for-linux--516-1",level:4},{value:"VPS List",id:"vps-list",level:3}],h={toc:c},m="wrapper";function k(e){var t=e.components,l=(0,o.Z)(e,s);return(0,i.kt)(m,(0,n.Z)({},h,l,{components:t,mdxType:"MDXLayout"}),(0,i.kt)("admonition",{type:"tip"},(0,i.kt)("p",{parentName:"admonition"},"If you are a beginner, it is recommended that you start your validator journey on Kusama network.\nCheck the ",(0,i.kt)("a",{parentName:"p",href:"/docs/maintain-guides-how-to-validate-kusama"},"Kusama guide")," for details on how to get\nstarted.")),(0,i.kt)("h2",{id:"preliminaries"},"Preliminaries"),(0,i.kt)("p",null,"Running a validator on a live network is a lot of responsibility! You will be accountable for not\nonly your own stake, but also the stake of your current nominators. If you make a mistake and get\nslashed, your tokens and your reputation will be at risk. However, running a validator can also be\nvery rewarding, knowing that you contribute to the security of a decentralized network while growing\nyour stash."),(0,i.kt)("admonition",{type:"warning"},(0,i.kt)("p",{parentName:"admonition"},"It is highly recommended that you have significant system administration experience before\nattempting to run your own validator."),(0,i.kt)("p",{parentName:"admonition"},"You must be able to handle technical issues and anomalies with your node which you must be able to\ntackle yourself. Being a validator involves more than just executing the Polkadot binary.")),(0,i.kt)("p",null,"Since security is so important to running a successful validator, you should take a look at the\n",(0,i.kt)("a",{parentName:"p",href:"/docs/maintain-guides-secure-validator"},"secure validator")," information to make sure you understand the\nfactors to consider when constructing your infrastructure. As you progress in your journey as a\nvalidator, you will likely want to use this repository as a ",(0,i.kt)("em",{parentName:"p"},"starting point")," for your own\nmodifications and customizations."),(0,i.kt)("p",null,"If you need help, please reach out on the\n",(0,i.kt)("a",{parentName:"p",href:"https://matrix.to/#/#polkadotvalidatorlounge:web3.foundation"},"Polkadot Validator Lounge")," on\nElement. The team and other validators are there to help answer questions and provide tips from\nexperience."),(0,i.kt)("h3",{id:"how-many-dot-do-i-need-to-become-an-active-validator"},"How many DOT do I need to become an active Validator?"),(0,i.kt)("p",null,"You can have a rough estimate on that by using the methods listed\n",(0,i.kt)("a",{parentName:"p",href:"/docs/faq/#what-is-the-minimum-stake-necessary-to-be-elected-as-an-active-validator"},"here"),".\nTo be elected into the set, you need a minimum stake behind your validator. This stake can come from\nyourself or from ",(0,i.kt)("a",{parentName:"p",href:"/docs/learn-nominator"},"nominators"),". This means that as a minimum, you will\nneed enough DOT to set up stash (and optionally a staking\n",(0,i.kt)("a",{parentName:"p",href:"/docs/learn-proxies"},"proxy account"),") with the existential deposit, plus a little extra for\ntransaction fees. The rest can come from nominators. To understand how validators are elected, check\nthe ",(0,i.kt)("a",{parentName:"p",href:"/docs/learn-phragmen"},"NPoS Election algorithms")," page."),(0,i.kt)("p",null,"For further reference, you may look at the\n","\n",(0,i.kt)("a",{parentName:"p",href:"https://kusama.subscan.io/validator_list?status=validator"},"statistics for current, active validators."),""),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Warning:")," Any DOT that you stake for your validator is liable to be slashed, meaning that an\ninsecure or improper setup may result in loss of DOT tokens! If you are not confident in your\nability to run a validator node, it is recommended to nominate your DOT to a trusted validator node\ninstead."),(0,i.kt)("h2",{id:"initial-set-up"},"Initial Set-up"),(0,i.kt)("h3",{id:"requirements"},"Requirements"),(0,i.kt)("p",null,"The most common way for a beginner to run a validator is on a cloud server running Linux. You may\nchoose whatever ",(0,i.kt)("a",{parentName:"p",href:"#note-about-vps"},"VPS")," provider that you prefer. As OS it is best to use a recent\nDebian Linux. For this guide we will be using ",(0,i.kt)("strong",{parentName:"p"},"Ubuntu 22.04"),", but the instructions should be\nsimilar for other platforms."),(0,i.kt)("h4",{id:"reference-hardware"},"Reference Hardware"),(0,i.kt)("p",null,"The transaction weights in Polkadot are benchmarked on reference hardware. We ran the benchmark on\nVM instances of two major cloud providers: Google Cloud Platform (GCP) and Amazon Web Services\n(AWS). To be specific, we used ",(0,i.kt)("inlineCode",{parentName:"p"},"n2-standard-8")," VM instance on GCP and ",(0,i.kt)("inlineCode",{parentName:"p"},"c6i.4xlarge")," on AWS. It is\nrecommended that the hardware used to run the validators at least matches the specs of the reference\nhardware in order to ensure they are able to process all blocks in time. If you use subpar hardware\nyou will possibly run into performance issues, get less era points, and potentially even get\nslashed."),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"CPU"),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"x86-64 compatible;"),(0,i.kt)("li",{parentName:"ul"},"Intel Ice Lake, or newer (Xeon or Core series); AMD Zen3, or newer (EPYC or Ryzen);"),(0,i.kt)("li",{parentName:"ul"},"4 physical cores @ 3.4GHz;"),(0,i.kt)("li",{parentName:"ul"},"Simultaneous multithreading disabled (Hyper-Threading on Intel, SMT on AMD);"),(0,i.kt)("li",{parentName:"ul"},"Prefer single-threaded performance over higher cores count. A comparison of single-threaded\nperformance can be found ",(0,i.kt)("a",{parentName:"li",href:"https://www.cpubenchmark.net/singleThread.html"},"here"),"."))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Storage"),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"An NVMe SSD of 1 TB (As it should be reasonably sized to deal with blockchain growth). An\nestimation of current chain snapshot sizes can be found\n",(0,i.kt)("a",{parentName:"li",href:"https://stakeworld.io/docs/dbsize"},"here"),". In general, the latency is more important than the\nthroughput."))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Memory"),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"32 GB DDR4 ECC."))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"System"),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"Linux Kernel 5.16 or newer."))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Network"),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"The minimum symmetric networking speed is set to 500 Mbit/s (= 62.5 MB/s). This is required to\nsupport a large number of parachains and allow for proper congestion control in busy network\nsituations.")))),(0,i.kt)("p",null,"The specs posted above are not a ",(0,i.kt)("em",{parentName:"p"},"hard")," requirement to run a validator, but are considered best\npractice. Running a validator is a responsible task; using professional hardware is a must in any\nway."),(0,i.kt)("h3",{id:"install--configure-network-time-protocol-ntp-client"},"Install & Configure Network Time Protocol (NTP) Client"),(0,i.kt)("p",null,(0,i.kt)("a",{parentName:"p",href:"https://en.wikipedia.org/wiki/Network_Time_Protocol"},"NTP")," is a networking protocol designed to\nsynchronize the clocks of computers over a network. NTP allows you to synchronize the clocks of all\nthe systems within the network. Currently it is required that validators' local clocks stay\nreasonably in sync, so you should be running NTP or a similar service. You can check whether you\nhave the NTP client by running:"),(0,i.kt)("p",null,(0,i.kt)("em",{parentName:"p"},"If you are using Ubuntu 18.04 or a newer version, NTP Client should be installed by default.")),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-sh"},"timedatectl\n")),(0,i.kt)("p",null,"If NTP is installed and running, you should see ",(0,i.kt)("inlineCode",{parentName:"p"},"System clock synchronized: yes")," (or a similar\nmessage). If you do not see it, you can install it by executing:"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-sh"},"sudo apt-get install ntp\n")),(0,i.kt)("p",null,"ntpd will be started automatically after install. You can query ntpd for status information to\nverify that everything is working:"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-sh"},"sudo ntpq -p\n")),(0,i.kt)("admonition",{type:"warning"},(0,i.kt)("p",{parentName:"admonition"},"Skipping this can result in the validator node missing block authorship opportunities. If the clock\nis out of sync (even by a small amount), the blocks the validator produces may not get accepted by\nthe network.")),(0,i.kt)("h3",{id:"make-sure-landlock-is-enabled"},"Make Sure Landlock is Enabled"),(0,i.kt)("p",null,(0,i.kt)("a",{parentName:"p",href:"https://docs.kernel.org/userspace-api/landlock.html"},"Landlock")," is a Linux security feature used in\nPolkadot:"),(0,i.kt)("blockquote",null,(0,i.kt)("p",{parentName:"blockquote"},"Landlock empowers any process, including unprivileged ones, to securely restrict themselves.")),(0,i.kt)("p",null,"To make use of landlock, make sure you are on the reference kernel version or newer. Most Linux\ndistributions should already have landlock enabled, but you can check by running the following as\nroot:"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-sh"},"dmesg | grep landlock || journalctl -kg landlock\n")),(0,i.kt)("p",null,"If it is not enabled, please see the\n",(0,i.kt)("a",{parentName:"p",href:"https://docs.kernel.org/userspace-api/landlock.html#kernel-support"},'official docs ("Kernel support")'),"\nif you would like to build Linux with landlock enabled."),(0,i.kt)("h3",{id:"installing-the-polkadot-binaries"},"Installing the Polkadot binaries"),(0,i.kt)("admonition",{title:"Multiple Validator Binaries",type:"info"},(0,i.kt)("p",{parentName:"admonition"},"In addition to the ",(0,i.kt)("inlineCode",{parentName:"p"},"polkadot")," binary, recent changes have separated out functionality into two\nadditional needed binaries, ",(0,i.kt)("inlineCode",{parentName:"p"},"polkadot-prepare-worker"),", and ",(0,i.kt)("inlineCode",{parentName:"p"},"polkadot-execute-worker"),". All three\nbinaries are needed to properly run a validator node. More context on these changes can be found\n",(0,i.kt)("a",{parentName:"p",href:"https://github.com/paritytech/polkadot/pull/7337"},"here"))),(0,i.kt)("h4",{id:"installation-from-official-releases"},"Installation from official releases"),(0,i.kt)("p",null,"The official binaries can be downloaded from the\n",(0,i.kt)("a",{parentName:"p",href:"https://github.com/paritytech/polkadot-sdk/releases"},"Github Releases"),". You should download the\nlatest available version. You can also download the binaries by using the following direct links\n(replace X.Y.Z by the appropriate version):"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-sh"},"https://github.com/paritytech/polkadot-sdk/releases/download/polkadot-vX.Y.Z/polkadot\nhttps://github.com/paritytech/polkadot-sdk/releases/download/polkadot-vX.Y.Z/polkadot-execute-worker\nhttps://github.com/paritytech/polkadot-sdk/releases/download/polkadot-vX.Y.Z/polkadot-prepare-worker\n")),(0,i.kt)("h4",{id:"optional-installation-with-package-managers"},"Optional: Installation with Package Managers"),(0,i.kt)("p",null,"The Polkadot Binary in included in ",(0,i.kt)("inlineCode",{parentName:"p"},"Debian")," derivatives (i.e. ",(0,i.kt)("strong",{parentName:"p"},"Debian"),", ",(0,i.kt)("strong",{parentName:"p"},"Ubuntu"),") and\n",(0,i.kt)("inlineCode",{parentName:"p"},"RPM-based")," distros (i.e. ",(0,i.kt)("strong",{parentName:"p"},"Fedora"),", ",(0,i.kt)("strong",{parentName:"p"},"CentOS"),")."),(0,i.kt)("h4",{id:"debian-based-debian-ubuntu"},"Debian-based (Debian, Ubuntu)"),(0,i.kt)("p",null,"Run the following commands as the root user:"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-ssh"},"# Import the security@parity.io GPG key\ngpg --recv-keys --keyserver hkps://keys.mailvelope.com 9D4B2B6EB8F97156D19669A9FF0812D491B96798\ngpg --export 9D4B2B6EB8F97156D19669A9FF0812D491B96798 > /usr/share/keyrings/parity.gpg\n# Add the Parity repository and update the package index\necho 'deb [signed-by=/usr/share/keyrings/parity.gpg] https://releases.parity.io/deb release main' > /etc/apt/sources.list.d/parity.list\napt update\n# Install the `parity-keyring` package - This will ensure the GPG key\n# used by APT remains up-to-date\napt install parity-keyring\n# Install polkadot\napt install polkadot\n")),(0,i.kt)("h4",{id:"rpm-based-fedora-centos"},"RPM-based (Fedora, CentOS)"),(0,i.kt)("p",null,"Run the following commands as the root user:"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-bash"},"# Install dnf-plugins-core (This might already be installed)\ndnf install dnf-plugins-core\n# Add the repository and enable it\ndnf config-manager --add-repo https://releases.parity.io/rpm/polkadot.repo\ndnf config-manager --set-enabled polkadot\n# Install polkadot (You may have to confirm the import of the GPG key, which\n# should have the following fingerprint: 9D4B2B6EB8F97156D19669A9FF0812D491B96798)\ndnf install polkadot\n")),(0,i.kt)("p",null,'Make sure you verify the installation (see the "Verify the installation" section).'),(0,i.kt)("admonition",{title:"By default, the Polkadot systemd service is disabled",type:"note"},(0,i.kt)("p",{parentName:"admonition"},"To start the service, run:"),(0,i.kt)("pre",{parentName:"admonition"},(0,i.kt)("code",{parentName:"pre",className:"language-bash"},"sudo systemctl start polkadot.service\n"))),(0,i.kt)("h4",{id:"optional-installation-with-ansible"},"Optional: Installation with Ansible"),(0,i.kt)("p",null,"To manage Polkadot installation with Ansible, you can use the ",(0,i.kt)("strong",{parentName:"p"},"Substrate node role")," distributed on\nthe ",(0,i.kt)("a",{parentName:"p",href:"https://github.com/paritytech/ansible-galaxy/"},"Parity chain operations Ansible collection")),(0,i.kt)("h4",{id:"optional-installation-with-docker"},"Optional: Installation with Docker"),(0,i.kt)("p",null,"To run Polkadot on a Docker or an OCI compatible container runtime, you can use the official\n",(0,i.kt)("a",{parentName:"p",href:"https://hub.docker.com/r/parity/polkadot/tags"},"parity/polkadot docker image"),", available on Docker\nHub (replace X.Y.Z by the appropriate version):"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-sh"},"docker.io/parity/polkadot:vX.Y.Z\n")),(0,i.kt)("h3",{id:"optional-building-the-polkadot-binaries-from-sources"},"Optional: Building the Polkadot binaries from sources"),(0,i.kt)("h4",{id:"prerequisites-install-rust-and-dependencies"},"Prerequisites: Install Rust and Dependencies"),(0,i.kt)("p",null,"If you have never installed Rust, you should do this first."),(0,i.kt)("p",null,"If you have already installed Rust, run the following command to make sure you are using the latest\nversion."),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-sh"},"rustup update\n")),(0,i.kt)("p",null,"If not, this command will fetch the latest version of Rust and install it."),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-sh"},"curl https://sh.rustup.rs -sSf | sh -s -- -y\n")),(0,i.kt)("admonition",{type:"note"},(0,i.kt)("p",{parentName:"admonition"},'If you do not have "curl" installed, run:'),(0,i.kt)("pre",{parentName:"admonition"},(0,i.kt)("code",{parentName:"pre",className:"language-bash"},"sudo apt install curl\n")),(0,i.kt)("p",{parentName:"admonition"},'It will also be valuable to have "websocat" (Netcat, curl and socat for WebSockets) installed for\nRPC interactions. Installation instructions for various operating systems can be found\n',(0,i.kt)("a",{parentName:"p",href:"https://github.com/vi/websocat#installation"},"here"),".")),(0,i.kt)("p",null,"To configure your shell, run the following command."),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-sh"},"source $HOME/.cargo/env\n")),(0,i.kt)("p",null,"Verify your installation."),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-sh"},"rustc --version\n")),(0,i.kt)("p",null,"Finally, run this command to install the necessary dependencies for compiling and running the\nPolkadot node software."),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-sh"},"sudo apt install make clang pkg-config libssl-dev build-essential\n")),(0,i.kt)("admonition",{type:"note"},(0,i.kt)("p",{parentName:"admonition"},"If you are using OSX and you have ",(0,i.kt)("a",{parentName:"p",href:"https://brew.sh"},"Homebrew")," installed, you can issue the following\nequivalent command INSTEAD of the previous one:"),(0,i.kt)("pre",{parentName:"admonition"},(0,i.kt)("code",{parentName:"pre",className:"language-sh"},"brew install cmake pkg-config openssl git llvm\n"))),(0,i.kt)("h4",{id:"building-the-binaries"},"Building the binaries"),(0,i.kt)("p",null,"You can build the Polkadot binaries from the\n",(0,i.kt)("a",{parentName:"p",href:"https://github.com/paritytech/polkadot-sdk"},"paritytech/polkadot-sdk")," repository on GitHub."),(0,i.kt)("p",null,"You should generally use the latest ",(0,i.kt)("strong",{parentName:"p"},"X.Y.Z"),' tag. You should either review the output from the "git\ntag" command or view the ',(0,i.kt)("a",{parentName:"p",href:"https://github.com/paritytech/polkadot-sdk/tags"},"Polkadot SDK Github tags"),"\nto see a list of all the available release versions. You should replace ",(0,i.kt)("inlineCode",{parentName:"p"},"VERSION")," below with the\nlatest build (i.e., the highest number)."),(0,i.kt)("admonition",{type:"note"},(0,i.kt)("p",{parentName:"admonition"},"If you prefer to use SSH rather than HTTPS, you can replace the first line of the below with"),(0,i.kt)("pre",{parentName:"admonition"},(0,i.kt)("code",{parentName:"pre",className:"language-sh"},"git clone git@github.com:paritytech/polkadot-sdk.git\n"))),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-sh"},"git clone https://github.com/paritytech/polkadot-sdk.git\ncd polkadot-sdk/polkadot\n")),(0,i.kt)("p",null,"Run the following command to find the latest version."),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-sh"},"git tag -l | sort -V | grep -v -- '-rc'\n")),(0,i.kt)("p",null,'Find the latest version; replace "VERSION" in the command below and run to change your branch.'),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-sh"},"git checkout VERSION\n")),(0,i.kt)("p",null,"Build native code with the production profile. The following will make sure that the binaries are\nall in your ",(0,i.kt)("inlineCode",{parentName:"p"},"$PATH"),"."),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-sh"},"cargo install --force --path . --profile production\n")),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},(0,i.kt)("em",{parentName:"strong"},"This step will take a while (generally 10 - 40 minutes, depending on your hardware)."))),(0,i.kt)("admonition",{title:"Compilation Errors",type:"note"},(0,i.kt)("p",{parentName:"admonition"},"If you run into compile errors, you may have to pin the version of Rust compiler to the one that was\nused to build the release. Check out ",(0,i.kt)("inlineCode",{parentName:"p"},"Rust compiler versions")," section in the release notes. This can\nbe done by running:"),(0,i.kt)("pre",{parentName:"admonition"},(0,i.kt)("code",{parentName:"pre",className:"language-sh"},"rustup install nightly-2022-05-18\nrustup target add wasm32-unknown-unknown --toolchain nightly-2022-05-18\ncargo +nightly-2022-05-18 build --release\n")),(0,i.kt)("p",{parentName:"admonition"},"You may also need to run the build more than once."),(0,i.kt)("p",{parentName:"admonition"},"If you would like to execute the tests, run the following command:"),(0,i.kt)("pre",{parentName:"admonition"},(0,i.kt)("code",{parentName:"pre",className:"language-sh"},"cargo test --all\n"))),(0,i.kt)("p",null,"If you are interested in generating keys locally, you can also install ",(0,i.kt)("inlineCode",{parentName:"p"},"subkey")," from the same\ndirectory. You may then take the generated ",(0,i.kt)("inlineCode",{parentName:"p"},"subkey")," executable and transfer it to an air-gapped\nmachine for extra security."),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-sh"},"cargo install --force --git https://github.com/paritytech/polkadot-sdk subkey\n")),(0,i.kt)("h3",{id:"verify-the-installation"},"Verify the installation"),(0,i.kt)("p",null,"After installing Polkadot, you can verify the installation by running"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-bash"},"polkadot --version\npolkadot-execute-worker --version\npolkadot-prepare-worker --version\n")),(0,i.kt)("p",null,"It should return something like this (the exact versions don't matter, but they must all be the\nsame):"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-bash"},"0.9.43-36264cb36db\n0.9.43-36264cb36db\n0.9.43-36264cb36db\n")),(0,i.kt)("p",null,"If not, make sure that you installed all the binaries, all the binaries are somewhere in your\n",(0,i.kt)("inlineCode",{parentName:"p"},"$PATH")," and they are all in the same folder."),(0,i.kt)("h3",{id:"synchronize-chain-data"},"Synchronize Chain Data"),(0,i.kt)("p",null,"You can begin syncing your node by running the following command if you do not want to start in\nvalidator mode right away:"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-sh"},"polkadot\n")),(0,i.kt)("admonition",{type:"info"},(0,i.kt)("p",{parentName:"admonition"},"If you want to run a validator on Kusama, you have an option to specify the chain. With no\nspecification, this would default to Polkadot."),(0,i.kt)("pre",{parentName:"admonition"},(0,i.kt)("code",{parentName:"pre",className:"language-sh"},"polkadot --chain=kusama\n"))),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre"},"2021-06-17 03:07:07 Parity Polkadot\n2021-06-17 03:07:07 \u270c\ufe0f version 0.9.5-95f6aa201-x86_64-linux-gnu\n2021-06-17 03:07:07 \u2764\ufe0f by Parity Technologies , 2017-2021\n2021-06-17 03:07:07 \ud83d\udccb Chain specification: Polkadot\n2021-06-17 03:07:07 \ud83c\udff7 Node name: boiling-pet-7554\n2021-06-17 03:07:07 \ud83d\udc64 Role: FULL\n2021-06-17 03:07:07 \ud83d\udcbe Database: RocksDb at /root/.local/share/polkadot/chains/polkadot/db\n2021-06-17 03:07:07 \u26d3 Native runtime: polkadot-9050 (parity-polkadot-0.tx7.au0)\n2021-06-17 03:07:10 \ud83c\udff7 Local node identity is: 12D3KooWLtXFWf1oGrnxMGmPKPW54xWCHAXHbFh4Eap6KXmxoi9u\n2021-06-17 03:07:10 \ud83d\udce6 Highest known block at #17914\n2021-06-17 03:07:10 \u303d\ufe0f Prometheus server started at 127.0.0.1:9615\n2021-06-17 03:07:10 Listening for new connections on 127.0.0.1:9944.\n")),(0,i.kt)("admonition",{title:"Example of node sync",type:"info"},(0,i.kt)("pre",{parentName:"admonition"},(0,i.kt)("code",{parentName:"pre"},"2021-06-17 03:07:39 \ud83d\udd0d Discovered new external address for our node: /ip4/10.26.16.1/tcp/30333/ws/p2p/12D3KooWLtXFWf1oGrnxMGmPKPW54xWCHAXHbFh4Eap6KXmxoi9u\n2021-06-17 03:07:40 \u2699\ufe0f Syncing 218.8 bps, target=#5553764 (17 peers), best: #24034 (0x08af\u2026dcf5), finalized #23552 (0xd4f0\u20262642), \u2b07 173.5kiB/s \u2b06 12.7kiB/s\n2021-06-17 03:07:45 \u2699\ufe0f Syncing 214.8 bps, target=#5553765 (20 peers), best: #25108 (0xb272\u2026e800), finalized #25088 (0x94e6\u20268a9f), \u2b07 134.3kiB/s \u2b06 7.4kiB/s\n2021-06-17 03:07:50 \u2699\ufe0f Syncing 214.8 bps, target=#5553766 (21 peers), best: #26182 (0xe7a5\u202601a2), finalized #26112 (0xcc29\u2026b1a9), \u2b07 5.0kiB/s \u2b06 1.1kiB/s\n2021-06-17 03:07:55 \u2699\ufe0f Syncing 138.4 bps, target=#5553767 (21 peers), best: #26874 (0xcf4b\u20266553), finalized #26624 (0x9dd9\u202627f8), \u2b07 18.9kiB/s \u2b06 2.0kiB/s\n2021-06-17 03:08:00 \u2699\ufe0f Syncing 37.0 bps, target=#5553768 (22 peers), best: #27059 (0x5b73\u20266fc9), finalized #26624 (0x9dd9\u202627f8), \u2b07 14.3kiB/s \u2b06 4.4kiB/s\n"))),(0,i.kt)("admonition",{title:"Use Warp sync for faster syncing",type:"tip"},(0,i.kt)("p",{parentName:"admonition"},"By default, the node performs ",(0,i.kt)("inlineCode",{parentName:"p"},"full")," sync, which downloads and validates the full blockchain\nhistory. Full sync works by listening to announced blocks and requesting the blocks from the\nannouncing peers, or just the block headers in case of light clients."),(0,i.kt)("p",{parentName:"admonition"},(0,i.kt)("inlineCode",{parentName:"p"},"Fast")," sync is another option that works by downloading the block header history and validating the\nauthority set changes in order to arrive at a specific (usually the most recent) header. After the\ndesired header has been reached and verified, the state can be downloaded and imported. Once this\nprocess has been completed, the node can proceed with a full sync."),(0,i.kt)("pre",{parentName:"admonition"},(0,i.kt)("code",{parentName:"pre",className:"language-sh"},"polkadot --sync warp\n")),(0,i.kt)("p",{parentName:"admonition"},(0,i.kt)("inlineCode",{parentName:"p"},"Warp sync")," initially downloads and validates the finality proofs from\n",(0,i.kt)("a",{parentName:"p",href:"/docs/learn-consensus#finality-gadget-grandpa"},"GRANDPA")," and then downloads the state of the\nlatest finalized block. After the warp sync, the node is ready to import the latest blocks from the\nnetwork and can be used as a Validator. The blocks from genesis will be downloaded in the\nbackground. Check\n",(0,i.kt)("a",{parentName:"p",href:"https://substrate.stackexchange.com/questions/334/what-kinds-of-sync-mechanisms-does-substrate-implement/"},"this discussion"),"\nfor more information about the different sync options available.")),(0,i.kt)("admonition",{title:"Validators should sync using the RocksDb backend",type:"note"},(0,i.kt)("p",{parentName:"admonition"},"This is implicit by default, but can be explicit by passing the ",(0,i.kt)("inlineCode",{parentName:"p"},"--database RocksDb")," flag."),(0,i.kt)("p",{parentName:"admonition"},"In the future, it is recommended to switch to the faster and more efficient ParityDB option. Note\nthat ",(0,i.kt)("strong",{parentName:"p"},"ParityDB is still experimental and should not be used in production.")," If you want to test\nout ParityDB, you can add the flag ",(0,i.kt)("inlineCode",{parentName:"p"},"--database paritydb"),". Switching between database backends will\nrequire a resync.")),(0,i.kt)("p",null,"Depending on the size of the chain when you do this, this step may take anywhere from a few minutes\nto a few hours."),(0,i.kt)("p",null,"If you are interested in determining how much longer you have to go, your server logs (printed to\nSTDOUT from the ",(0,i.kt)("inlineCode",{parentName:"p"},"polkadot")," process) will tell you the latest block your node has processed and\nverified. You can then compare that to the current highest block via\n",(0,i.kt)("a",{parentName:"p",href:"https://telemetry.polkadot.io/#list/Polkadot%20CC1"},"Telemetry")," or the\n",(0,i.kt)("a",{parentName:"p",href:"https://polkadot.js.org/apps/#/explorer"},"PolkadotJS Block Explorer"),"."),(0,i.kt)("h4",{id:"database-snapshot-services"},"Database Snapshot Services"),(0,i.kt)("p",null,"If you start a node for the first time, it will start building from the genesis block. This process\ncan take a while depending on the database size. To make this process faster, snapshots can be used.\nSnapshots are compressed backups of the database directory of Polkadot/Kusama nodes, containing the\nwhole chain (or a pruned version of it, with states only from the latest 1000 or 256 blocks). Listed\nbelow are a few public snapshot providers for Polkadot and Kusama."),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://stakeworld.io/snapshot"},"Stakeworld")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://polkachu.com/snapshots"},"Polkachu")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://polkashots.io/"},"Polkashots"))),(0,i.kt)("admonition",{type:"caution"},(0,i.kt)("p",{parentName:"admonition"},"For the security of the network, it is recommended that you sync from scratch, even if you are\nrunning your node in pruning mode for validation. The reason is that if these snapshots get\ncorrupted and a majority of nodes run based on these snapshots, the network could end up running on\na non-canonical chain.")),(0,i.kt)("h2",{id:"bond-dot"},"Bond DOT"),(0,i.kt)("p",null,"To start a validator instance on Kusama, the\nminimum bond required is\n","\n",(0,i.kt)(r.Z,{network:"polkadot",path:"query.staking.minValidatorBond",defaultValue:"0",filter:"humanReadable",mdxType:"RPC"}),".\nBut to enter the active validator set and be eligible to earn rewards, your validator node should be\nnominated by a minimum number of DOT tokens."),(0,i.kt)("p",null,"For example, the minimum stake backing a validator in era\n6646 (May 21st 2024) is\n7,078.811 KSM. For a live view at\ncurrent validator stats, you may look to\n",(0,i.kt)("a",{parentName:"p",href:"https://polkadot.subscan.io/validator_list?status=validator"},"Subscan")," or the\n",(0,i.kt)("a",{parentName:"p",href:"https://staking.polkadot.network/#/overview"},"Staking Dashboard.")),(0,i.kt)("p",null,"If you are validator who intends to get DOT/KSM nominations from the community, you will need to\nshow some skin in the game. For that, you need to bond some DOT/KSM as own stake. Make sure not to\nbond all your DOT balance since you will be unable to pay transaction fees from your bonded balance."),(0,i.kt)("admonition",{title:"Controller accounts are deprecated. Use Staking Proxy.",type:"info"},(0,i.kt)("p",{parentName:"admonition"},"Controller accounts are deprecated. For more information, see\n",(0,i.kt)("a",{parentName:"p",href:"https://forum.polkadot.network/t/staking-controller-deprecation-plan-staking-ui-leads-comms/2748"},"this discussion"),".\nIt is highly recommended that you setup an account with a staking proxy, which can be used for\nissuing start and stop validating calls. Read more about ",(0,i.kt)("a",{parentName:"p",href:"/docs/learn-proxies"},"proxy accounts"),"\nhere.")),(0,i.kt)("p",null,"First, go to the ",(0,i.kt)("a",{parentName:"p",href:"https://polkadot.js.org/apps/#/staking/actions"},"Staking"),' section. Click on\n"Account Actions", and then the "+ Stash" button.'),(0,i.kt)("p",null,(0,i.kt)("img",{alt:"bonding-JS-UI",src:a(90412).Z,width:"2143",height:"847"})),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Stash account")," - Select your Stash account (which is the account with the DOT/KSM balance)"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Value bonded")," - How much DOT from the Stash account you want to bond/stake. Note that you do\nnot need to bond all of the DOT in that account. Also note that you can always bond ",(0,i.kt)("em",{parentName:"li"},"more")," DOT\nlater. However, ",(0,i.kt)("em",{parentName:"li"},"withdrawing")," any bonded amount requires the duration of the unbonding period. On\nKusama, the unbonding period is 7 days. On Polkadot, the planned unbonding period is 28 days."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Payment destination")," - The account where the rewards from validating are sent. More info\n",(0,i.kt)("a",{parentName:"li",href:"/docs/learn-staking/#reward-distribution"},"here"),". Starting with runtime version v23 natively\nincluded in client version ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/paritytech/polkadot/releases/tag/v0.9.3"},"0.9.3"),",\npayouts can go to any custom address. If you'd like to redirect payments to an account that is not\nthe stash account, you can do it by entering the address here. Note that it is extremely unsafe to\nset an exchange address as the recipient of the staking rewards.")),(0,i.kt)("p",null,"Once everything is filled in properly, click ",(0,i.kt)("inlineCode",{parentName:"p"},"Bond")," and sign the transaction with your Stash\naccount."),(0,i.kt)("p",null,(0,i.kt)("img",{alt:"sign transaction",src:a(93002).Z,width:"2141",height:"780"})),(0,i.kt)("p",null,"After a few seconds, you should see an ",(0,i.kt)("inlineCode",{parentName:"p"},"ExtrinsicSuccess")," message."),(0,i.kt)("p",null,"Your bonded account will be available under ",(0,i.kt)("inlineCode",{parentName:"p"},"Stashes"),". You should now see a new card with all your\naccounts (note: you may need to refresh the screen). The bonded amount on the right corresponds to\nthe funds bonded by the Stash account."),(0,i.kt)("h2",{id:"set-session-keys"},"Set Session Keys"),(0,i.kt)("admonition",{title:"Session keys are consensus critical",type:"caution"},(0,i.kt)("p",{parentName:"admonition"},"If you are not sure if your node has the current session keys that you made the ",(0,i.kt)("inlineCode",{parentName:"p"},"setKeys"),"\ntransaction then you can use one of the two available RPC methods to query your node:\n",(0,i.kt)("a",{parentName:"p",href:"https://polkadot.js.org/docs/substrate/rpc/#haskeypublickey-bytes-keytype-text-bool"},"hasKey")," to\ncheck for a specific key or\n",(0,i.kt)("a",{parentName:"p",href:"https://polkadot.js.org/docs/substrate/rpc/#hassessionkeyssessionkeys-bytes-bool"},"hasSessionKeys"),"\nto check the full session key public key string.")),(0,i.kt)("p",null,"Once your node is fully synced, stop the process by pressing Ctrl-C. At your terminal prompt, you\nwill now start running the node."),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-sh"},'polkadot --validator --name "name on telemetry"\n')),(0,i.kt)("p",null,"Similarly:"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre"},"2021-06-17 03:12:08 Parity Polkadot\n2021-06-17 03:12:08 \u270c\ufe0f version 0.9.5-95f6aa201-x86_64-linux-gnu\n2021-06-17 03:12:08 \u2764\ufe0f by Parity Technologies , 2017-2021\n2021-06-17 03:12:08 \ud83d\udccb Chain specification: Polkadot\n2021-06-17 03:12:08 \ud83c\udff7 Node name: nateched-test\n2021-06-17 03:12:08 \ud83d\udc64 Role: AUTHORITY\n2021-06-17 03:12:08 \ud83d\udcbe Database: RocksDb at /root/.local/share/polkadot/chains/polkadot/db\n2021-06-17 03:12:08 \u26d3 Native runtime: polkadot-9050 (parity-polkadot-0.tx7.au0)\n2021-06-17 03:12:12 \ud83c\udff7 Local node identity is: 12D3KooWLtXFWf1oGrnxMGmPKPW54xWCHAXHbFh4Eap6KXmxoi9u\n2021-06-17 03:12:12 \ud83d\udce6 Highest known block at #64673\n2021-06-17 03:12:12 \u303d\ufe0f Prometheus server started at 127.0.0.1:9615\n2021-06-17 03:12:12 Listening for new connections on 127.0.0.1:9944.\n2021-06-17 03:12:12 \ud83d\udc76 Starting BABE Authorship worker\n")),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre"},"2021-06-17 03:12:16 \ud83d\udd0d Discovered new external address for our node: /ip4/10.26.11.1/tcp/30333/p2p/12D3KooWLtXFWf1oGrnxMGmPKPW54xWCHAXHbFh4Eap6KXmxoi9u\n2021-06-17 03:12:17 \u2699\ufe0f Syncing, target=#5553810 (14 peers), best: #65068 (0x6da5\u20260662), finalized #65024 (0x4e84\u2026d170), \u2b07 352.2kiB/s \u2b06 75.6kiB/s\n")),(0,i.kt)("p",null,"You can give your validator any name that you like, but note that others will be able to see it, and\nit will be included in the list of all servers using the same telemetry server. Since numerous\npeople are using telemetry, it is recommended that you choose something likely to be unique."),(0,i.kt)("h3",{id:"generating-the-session-keys"},"Generating the Session Keys"),(0,i.kt)("p",null,"You need to tell the chain your Session keys by signing and submitting an extrinsic. This is what\nassociates your validator node with your stash account on Polkadot."),(0,i.kt)("h4",{id:"option-1-polkadotjs-apps"},"Option 1: PolkadotJS-APPS"),(0,i.kt)("p",null,"You can generate your ",(0,i.kt)("a",{parentName:"p",href:"/docs/learn-cryptography"},"Session keys")," in the client via the apps RPC.\nIf you are doing this, make sure that you have the PolkadotJS-Apps explorer attached to your\nvalidator node. You can configure the apps dashboard to connect to the endpoint of your validator in\nthe Settings tab. If you are connected to a default endpoint hosted by Parity of Web3 Foundation,\nyou will not be able to use this method since making RPC requests to this node would effect the\nlocal keystore hosted on a ",(0,i.kt)("em",{parentName:"p"},"public node")," and you want to make sure you are interacting with the\nkeystore for ",(0,i.kt)("em",{parentName:"p"},"your node"),"."),(0,i.kt)("p",null,"Once ensuring that you have connected to your node, the easiest way to set session keys for your\nnode is by calling the ",(0,i.kt)("inlineCode",{parentName:"p"},"author_rotateKeys")," RPC request to create new keys in your validator's\nkeystore. Navigate to Toolbox tab and select RPC Calls then select the author > rotateKeys() option\nand remember to save the output that you get back for a later step."),(0,i.kt)("p",null,(0,i.kt)("img",{alt:"Explorer RPC call",src:a(54061).Z,width:"1700",height:"582"})),(0,i.kt)("h4",{id:"option-2-cli"},"Option 2: CLI"),(0,i.kt)("p",null,"If you are on a remote server, it is easier to run this command on the same machine (while the node\nis running with the default WS RPC port configured):"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-sh"},'curl -H "Content-Type: application/json" -d \'{"id":1, "jsonrpc":"2.0", "method": "author_rotateKeys", "params":[]}\' http://localhost:9944\n')),(0,i.kt)("p",null,'The output will have a hex-encoded "result" field. The result is the concatenation of the four\npublic keys. Save this result for a later step.'),(0,i.kt)("p",null,"You can restart your node at this point."),(0,i.kt)("h3",{id:"submitting-the-setkeys-transaction"},"Submitting the ",(0,i.kt)("inlineCode",{parentName:"h3"},"setKeys")," Transaction"),(0,i.kt)("p",null,"You need to tell the chain your Session keys by signing and submitting an extrinsic. This is what\nassociates your validator with your staking proxy."),(0,i.kt)("p",null,"Go to ",(0,i.kt)("a",{parentName:"p",href:"https://polkadot.js.org/apps/#/staking/actions"},"Staking > Account Actions"),', and click "Set\nSession Key" on the bonding account you generated earlier. Enter the output from ',(0,i.kt)("inlineCode",{parentName:"p"},"author_rotateKeys"),'\nin the field and click "Set Session Key".'),(0,i.kt)("p",null,(0,i.kt)("img",{alt:"staking-change-session",src:a(72316).Z,width:"2792",height:"182"}),"\n",(0,i.kt)("img",{alt:"staking-session-result",src:a(12883).Z,width:"2146",height:"680"})),(0,i.kt)("p",null,"Submit this extrinsic and you are now ready to start validating."),(0,i.kt)("h2",{id:"validate"},"Validate"),(0,i.kt)("p",null,"To verify that your node is live and synchronized, head to\n",(0,i.kt)("a",{parentName:"p",href:"https://telemetry.polkadot.io/#list/Polkadot%20CC1"},"Telemetry")," and find your node. Note that this\nwill show all nodes on the Polkadot network, which is why it is important to select a unique name!"),(0,i.kt)("p",null,"In this example, we used the name ",(0,i.kt)("inlineCode",{parentName:"p"},"techedtest")," and have successfully located it upon searching:"),(0,i.kt)("p",null,(0,i.kt)("img",{alt:"polkadot-dashboard-telemetry",src:a(67929).Z,width:"2862",height:"472"})),(0,i.kt)("h3",{id:"setup-via-validator-tab"},"Setup via Validator Tab"),(0,i.kt)("p",null,(0,i.kt)("img",{alt:"polkadot-dashboard-validate-1",src:a(63670).Z,width:"2128",height:"1022"})),(0,i.kt)("p",null,"Here you will need to input the Keys from ",(0,i.kt)("inlineCode",{parentName:"p"},"rotateKeys"),", which is the Hex output from\n",(0,i.kt)("inlineCode",{parentName:"p"},"author_rotateKeys"),". The keys will show as pending until applied at the start of a new session."),(0,i.kt)("p",null,'The "reward commission percentage" is the commission percentage that you can declare against your\nvalidator\'s rewards. This is the rate that your validator will be commissioned with.'),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Payment preferences")," - You can specify the percentage of the rewards that will get paid to you.\nThe remaining will be split among your nominators.")),(0,i.kt)("admonition",{title:"Setting a commission rate of 100% suggests that you do not want your validator to receive",type:"caution"},(0,i.kt)("p",{parentName:"admonition"},"nominations")),(0,i.kt)("p",null,'You can also determine if you would like to receive nominations with the "allows new nominations"\noption.'),(0,i.kt)("p",null,(0,i.kt)("img",{alt:"dashboard validate",src:a(44281).Z,width:"2126",height:"694"})),(0,i.kt)("p",null,'Click "Bond & Validate".'),(0,i.kt)("p",null,'If you go to the "Staking" tab, you will see a list of active validators currently running on the\nnetwork. At the top of the page, it shows the number of validator slots that are available as well\nas the number of nodes that have signaled their intention to be a validator. You can go to the\n"Waiting" tab to double check to see whether your node is listed there.'),(0,i.kt)("p",null,(0,i.kt)("img",{alt:"staking queue",src:a(46513).Z,width:"2838",height:"1440"})),(0,i.kt)("p",null,"The validator set is refreshed every era. In the next era, if there is a slot available and your\nnode is selected to join the validator set, your node will become an active validator. Until then,\nit will remain in the ",(0,i.kt)("em",{parentName:"p"},"waiting")," queue. If your validator is not selected to become part of the\nvalidator set, it will remain in the ",(0,i.kt)("em",{parentName:"p"},"waiting")," queue until it is. There is no need to re-start if\nyou are not selected for the validator set in a particular era. However, it may be necessary to\nincrease the number of DOT staked or seek out nominators for your validator in order to join the\nvalidator set."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Congratulations!")," If you have followed all of these steps, and been selected to be a part of the\nvalidator set, you are now running a Polkadot validator! If you need help, reach out on the\n",(0,i.kt)("a",{parentName:"p",href:"https://matrix.to/#/!NZrbtteFeqYKCUGQtr:matrix.parity.io?via=matrix.parity.io&via=matrix.org&via=web3.foundation"},"Polkadot Validator chat"),"."),(0,i.kt)("h2",{id:"thousand-validators-programme"},"Thousand Validators Programme"),(0,i.kt)("p",null,"The Thousand Validators Programme is a joint initiative by Web3 Foundation and Parity Technologies\nto provide support for community validators. If you are interested in applying for the program, you\ncan find more information ",(0,i.kt)("a",{parentName:"p",href:"/docs/thousand-validators"},"on the wiki page"),"."),(0,i.kt)("h2",{id:"running-a-validator-on-a-testnet"},"Running a validator on a testnet"),(0,i.kt)("p",null,"To verify your validator setup, it is possible to run it against a PoS test network such as Westend.\nHowever, validator slots are intentionally limited on Westend to ensure stability and availability\nof the testnet for the Polkadot release process."),(0,i.kt)("p",null,"Here is a small comparison of each network characteristics as relevant to validators:"),(0,i.kt)("table",null,(0,i.kt)("thead",{parentName:"table"},(0,i.kt)("tr",{parentName:"thead"},(0,i.kt)("th",{parentName:"tr",align:null},"Network"),(0,i.kt)("th",{parentName:"tr",align:null},"Polkadot"),(0,i.kt)("th",{parentName:"tr",align:null},"Westend"))),(0,i.kt)("tbody",{parentName:"table"},(0,i.kt)("tr",{parentName:"tbody"},(0,i.kt)("td",{parentName:"tr",align:null},"epoch"),(0,i.kt)("td",{parentName:"tr",align:null},"4h"),(0,i.kt)("td",{parentName:"tr",align:null},"1h")),(0,i.kt)("tr",{parentName:"tbody"},(0,i.kt)("td",{parentName:"tr",align:null},"era"),(0,i.kt)("td",{parentName:"tr",align:null},"1d"),(0,i.kt)("td",{parentName:"tr",align:null},"6h")),(0,i.kt)("tr",{parentName:"tbody"},(0,i.kt)("td",{parentName:"tr",align:null},"token"),(0,i.kt)("td",{parentName:"tr",align:null},"DOT"),(0,i.kt)("td",{parentName:"tr",align:null},"WND (test)")),(0,i.kt)("tr",{parentName:"tbody"},(0,i.kt)("td",{parentName:"tr",align:null},"active validators"),(0,i.kt)("td",{parentName:"tr",align:null},"~300"),(0,i.kt)("td",{parentName:"tr",align:null},"~20")))),(0,i.kt)("h2",{id:"faq"},"FAQ"),(0,i.kt)("h3",{id:"why-am-i-unable-to-synchronize-the-chain-with-0-peers"},"Why am I unable to synchronize the chain with 0 peers?"),(0,i.kt)("p",null,(0,i.kt)("img",{alt:"zero-peer",src:a(29009).Z,width:"1350",height:"235"})),(0,i.kt)("p",null,"Make sure to enable ",(0,i.kt)("inlineCode",{parentName:"p"},"30333")," libp2p port. Eventually, it will take a little bit of time to discover\nother peers over the network."),(0,i.kt)("h3",{id:"how-do-i-clear-all-my-chain-data"},"How do I clear all my chain data?"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-sh"},"polkadot purge-chain\n")),(0,i.kt)("admonition",{type:"info"},(0,i.kt)("p",{parentName:"admonition"},"Check out the ",(0,i.kt)("a",{parentName:"p",href:"https://substrate.stackexchange.com/"},"Substrate StackExchange")," to quickly get the\nanswers you need.")),(0,i.kt)("h2",{id:"note-about-vps"},"Note about VPS"),(0,i.kt)("p",null,"VPS providers are very popular for running servers of any kind. Extensive benchmarking was conducted\nto ensure that VPS servers are able to keep up with the work load in general."),(0,i.kt)("admonition",{type:"note"},(0,i.kt)("p",{parentName:"admonition"},"Before you run a live Validator, please verify if the advertised performance is actually delivered\nconsistently by the VPS provider.")),(0,i.kt)("p",null,"that this is not an endorsement in any way:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"GCP's ",(0,i.kt)("em",{parentName:"li"},"c2")," and ",(0,i.kt)("em",{parentName:"li"},"c2d")," machine families"),(0,i.kt)("li",{parentName:"ul"},"AWS's ",(0,i.kt)("em",{parentName:"li"},"c6id")," machine family")),(0,i.kt)("p",null,"The following additional configurations were applied to the instances to tune their performance:"),(0,i.kt)("h3",{id:"disable-smt"},"Disable ",(0,i.kt)("a",{parentName:"h3",href:"https://en.wikipedia.org/wiki/Simultaneous_multithreading"},"SMT")),(0,i.kt)("p",null,"As critical path of Substrate is single-threaded we need to optimize for single-core CPU\nperformance. The node still profits from multiple cores when doing networking and other non-runtime\noperations. It is therefore still necessary to run it on at least the minimum required number of\ncores. Disabling SMT improves the performance as each vCPU becomes mapped to a physical CPU core\nrather than being presented to the OS as two logical cores. SMT implementation is called\n",(0,i.kt)("em",{parentName:"p"},"Hyper-Threading")," on Intel and ",(0,i.kt)("em",{parentName:"p"},"2-way SMT")," on AMD Zen. To disable SMT in runtime:"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-bash"},"for cpunum in $(cat /sys/devices/system/cpu/cpu*/topology/thread_siblings_list | cut -s -d, -f2- | tr ',' '\\n' | sort -un)\ndo\n echo 0 > /sys/devices/system/cpu/cpu$cpunum/online\ndone\n")),(0,i.kt)("p",null,"It will disable every other (vCPU) core."),(0,i.kt)("p",null,"To save changes permanently add ",(0,i.kt)("inlineCode",{parentName:"p"},"nosmt=force")," as kernel parameter. Edit ",(0,i.kt)("inlineCode",{parentName:"p"},"/etc/default/grub")," and add\n",(0,i.kt)("inlineCode",{parentName:"p"},"nosmt=force")," to ",(0,i.kt)("inlineCode",{parentName:"p"},"GRUB_CMDLINE_LINUX_DEFAULT")," variable and run ",(0,i.kt)("inlineCode",{parentName:"p"},"sudo update-grub"),". After the reboot\nyou should see half of the cores are offline. Run ",(0,i.kt)("inlineCode",{parentName:"p"},"lscpu --extended")," to confirm."),(0,i.kt)("h3",{id:"disable-automatic-numa-balancing"},"Disable automatic NUMA balancing"),(0,i.kt)("p",null,"If you have multiple physical CPUs (CPU0 and CPU1) in the system each with its own memory bank (MB0\nand MB1), then it is usually slower for a CPU0 to access MB1 due to the slower interconnection. To\nprevent the OS from automatically moving the running Substrate process from one CPU to another and\nthus causing an increased latency, it is recommended to disable automatic NUMA balancing."),(0,i.kt)("p",null,"With automatic NUMA balancing disabled, an OS will always run a process on the same NUMA node where\nit was initially scheduled."),(0,i.kt)("p",null,"To disable NUMA balancing in runtime:"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-bash"},"sysctl kernel.numa_balancing=0\n")),(0,i.kt)("p",null,"To save changes permanently, update startup options and reconfigure GRUB. Edit ",(0,i.kt)("inlineCode",{parentName:"p"},"/etc/default/grub"),"\nand add ",(0,i.kt)("inlineCode",{parentName:"p"},"numa_balancing=disable")," to ",(0,i.kt)("inlineCode",{parentName:"p"},"GRUB_CMDLINE_LINUX_DEFAULT")," variable and run\n",(0,i.kt)("inlineCode",{parentName:"p"},"sudo update-grub"),". After reboot you can confirm the change by running\n",(0,i.kt)("inlineCode",{parentName:"p"},"sysctl -a | grep 'kernel.numa_balancing'")," and checking if the parameter is set to 0"),(0,i.kt)("h3",{id:"configure-spectremeltdown-mitigations"},"Configure Spectre/Meltdown Mitigations"),(0,i.kt)("p",null,"Spectre and Meltdown are vulnerabilities discovered in modern CPUs a few years ago. Mitigations were\nmade to the Linux kernel to cope with the multiple variations of these attacks. Check out\n",(0,i.kt)("a",{parentName:"p",href:"https://meltdownattack.com/"},"https://meltdownattack.com/")," for more info."),(0,i.kt)("p",null,"Initially those mitigations added ~20% penalty to the performance of the workloads. As CPU\nmanufacturers started to roll-out mitigations implemented in hardware, the performance gap\n",(0,i.kt)("a",{parentName:"p",href:"https://www.phoronix.com/scan.php?page=article&item=3-years-specmelt&num=1"},"narrowed down"),". As the\nbenchmark demonstrates, the performance penalty got reduced to ~7% on Intel 10th Gen CPUs. This is\ntrue for the workloads running on both bare-metal and VMs. But the penalty remains high for the\ncontainerized workloads in some cases."),(0,i.kt)("p",null,"As demonstrated in\n",(0,i.kt)("a",{parentName:"p",href:"http://mamememo.blogspot.com/2020/05/cpu-intensive-rubypython-code-runs.html"},"Yusuke Endoh's article"),",\na performance penalty for containerized workloads can be as high as 100%. This is due to SECCOMP\nprofile being overprotective about applying Spectre/Meltdown mitigations without providing real\nsecurity. A longer explanation is available in the\n",(0,i.kt)("a",{parentName:"p",href:"https://lkml.org/lkml/2020/11/4/1135"},"kernel patch discussion"),"."),(0,i.kt)("p",null,"Linux 5.16\n",(0,i.kt)("a",{parentName:"p",href:"https://www.phoronix.com/scan.php?page=news_item&px=Linux-Spectre-SECCOMP-Default"},"loosened the protections"),"\napplied to SECCOMP threads by default. Containers running on kernel 5.16 and later now don't suffer\nfrom the performance penalty implied by using a SECCOMP profile in container runtimes."),(0,i.kt)("h4",{id:"for-linux--516"},"For Linux >= 5.16"),(0,i.kt)("p",null,"You are all set. The performance of containerized workloads is on par with non-containerized ones.\nYou don't have to do anything."),(0,i.kt)("h4",{id:"for-linux--516-1"},"For Linux < 5.16"),(0,i.kt)("p",null,"You'll need to disable mitigations for Spectre V2 for user-space tasks as well as Speculative Store\nBypass Disable (SSBD) for Spectre V4.\n",(0,i.kt)("a",{parentName:"p",href:"https://git.kernel.org/pub/scm/linux/kernel/git/kees/linux.git/commit/?h=for-next/seccomp&id=2f46993d83ff4abb310ef7b4beced56ba96f0d9d"},"This patch message"),"\ndescribes the reasoning for this default change in more detail:"),(0,i.kt)("blockquote",null,(0,i.kt)("p",{parentName:"blockquote"},"Ultimately setting SSBD and STIBP by default for all seccomp jails is a bad sweet spot and bad\ndefault with more cons than pros that end up reducing security in the public cloud (by giving an\nhuge incentive to not expose SPEC_CTRL which would be needed to get full security with IBPB after\nsetting nosmt in the guest) and by excessively hurting performance to more secure apps using\nseccomp that end up having to opt out with SECCOMP_FILTER_FLAG_SPEC_ALLOW.")),(0,i.kt)("p",null,"To disable the mitigations edit ",(0,i.kt)("inlineCode",{parentName:"p"},"/etc/default/grub")," and add\n",(0,i.kt)("inlineCode",{parentName:"p"},"spec_store_bypass_disable=prctl spectre_v2_user=prctl")," to ",(0,i.kt)("inlineCode",{parentName:"p"},"GRUB_CMDLINE_LINUX_DEFAULT")," variable,\nrun ",(0,i.kt)("inlineCode",{parentName:"p"},"sudo update-grub"),", then reboot."),(0,i.kt)("p",null,"Note that mitigations are not disabled completely. You can fully disable all the available kernel\nmitigations by setting ",(0,i.kt)("inlineCode",{parentName:"p"},"mitigations=off"),". But we don't recommend doing this unless you run a fully\ntrusted code on the host."),(0,i.kt)("h3",{id:"vps-list"},"VPS List"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://cloud.google.com/"},"Google Cloud")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://aws.amazon.com/"},"Amazon AWS")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://www.ovh.com.au/"},"OVH")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://www.digitalocean.com/"},"Digital Ocean")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://www.vultr.com/"},"Vultr")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://www.linode.com/"},"Linode")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://www.scaleway.com/"},"Scaleway")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://onfinality.io/"},"OnFinality"))),(0,i.kt)("admonition",{type:"caution"},(0,i.kt)("mdxAdmonitionTitle",{parentName:"admonition"},"Beware of the ",(0,i.kt)("strong",{parentName:"mdxAdmonitionTitle"},"Terms and Conditions")," and ",(0,i.kt)("strong",{parentName:"mdxAdmonitionTitle"},"Acceptable Use Policies")," for each VPS"),(0,i.kt)("p",{parentName:"admonition"},"provider"),(0,i.kt)("p",{parentName:"admonition"},'You may be locked out of your account and your server shut down if you come in violation. For\ninstance, Digital Ocean lists "Mining of Cryptocurrencies" under the Network Abuse section of their\n',(0,i.kt)("a",{parentName:"p",href:"https://www.digitalocean.com/legal/acceptable-use-policy/"},"Acceptable Use Policy")," and requires\nexplicit permission to do so. This may extend to other cryptocurrency activity.")))}k.isMDXComponent=!0},90412:(e,t,a)=>{"use strict";a.d(t,{Z:()=>n});const n=a.p+"assets/images/JS-UI-bond-7bdecad8831f3c1b20d96e426e7e47c1.png"},93002:(e,t,a)=>{"use strict";a.d(t,{Z:()=>n});const n=a.p+"assets/images/JS-UI-sign-transaction-75b2e29fcaecc44c5eb1c4f5e3e364ae.png"},46513:(e,t,a)=>{"use strict";a.d(t,{Z:()=>n});const n=a.p+"assets/images/polkadot-dashboard-staking-4005504ef30291ebe1a243298c351a34.png"},67929:(e,t,a)=>{"use strict";a.d(t,{Z:()=>n});const n=a.p+"assets/images/polkadot-dashboard-telemetry-8930bdd60309c864ed682a1bdd4b1e31.png"},63670:(e,t,a)=>{"use strict";a.d(t,{Z:()=>n});const n=a.p+"assets/images/polkadot-dashboard-validate-1-4bf6a6488b4e128d12cab2617025d796.png"},44281:(e,t,a)=>{"use strict";a.d(t,{Z:()=>n});const n=a.p+"assets/images/polkadot-dashboard-validate-2-18a8869804f89ffebafa1b920e31ccd6.png"},54061:(e,t,a)=>{"use strict";a.d(t,{Z:()=>n});const n=a.p+"assets/images/polkadot-explorer-rotatekeys-rpc-6d5ba5d9ffb20fd9683432e9a6ccd0f9.jpg"},29009:(e,t,a)=>{"use strict";a.d(t,{Z:()=>n});const n=a.p+"assets/images/polkadot-zero-peer-2642d52b7e07893a66a0ddfd492cce38.jpg"},72316:(e,t,a)=>{"use strict";a.d(t,{Z:()=>n});const n=a.p+"assets/images/set-session-key-1-b0cdb38a299d6ef6bcc24c6ab2bce66d.png"},12883:(e,t,a)=>{"use strict";a.d(t,{Z:()=>n});const n=a.p+"assets/images/set-session-key-2-408efe22daa8d6533715987a1099828a.png"},46601:()=>{}}]); \ No newline at end of file diff --git a/assets/js/a74a59a0.7deb8cbb.js b/assets/js/a74a59a0.7deb8cbb.js deleted file mode 100644 index 96d551611d..0000000000 --- a/assets/js/a74a59a0.7deb8cbb.js +++ /dev/null @@ -1 +0,0 @@ -(self.webpackChunk=self.webpackChunk||[]).push([[8702],{47940:(e,t,a)=>{"use strict";a.d(t,{Z:()=>c});var n=a(74165),o=a(15861),i=a(67294),r=a(87152),s=a(9712),l=a(67425);function d(e,t,a){return p.apply(this,arguments)}function p(){return(p=(0,o.Z)((0,n.Z)().mark((function e(t,a,o){var i,l,d,p,u;return(0,n.Z)().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:i=void 0,l=void 0,e.t0=t,e.next="polkadot"===e.t0?5:"kusama"===e.t0?7:"statemine"===e.t0?9:"statemint"===e.t0?11:13;break;case 5:return i="wss://rpc.polkadot.io",e.abrupt("break",14);case 7:return i="wss://kusama-rpc.polkadot.io/",e.abrupt("break",14);case 9:return i="wss://statemine-rpc.polkadot.io/",e.abrupt("break",14);case 11:return i="wss://statemint-rpc.polkadot.io/",e.abrupt("break",14);case 13:console.log("Unknown socket url provided, no connection made.");case 14:if(void 0!==i){e.next=18;break}return e.abrupt("return");case 18:return d=new r.U(i),e.next=21,s.G.create({provider:d});case 21:p=e.sent,(u=a.split(".")).forEach((function(e){e in p&&(p=p[e])})),e.t1=u[0],e.next="consts"===e.t1?27:"query"===e.t1?29:34;break;case 27:return l=p.toString(),e.abrupt("break",35);case 29:return e.next=31,p();case 31:return l=(l=e.sent).toString(),e.abrupt("break",35);case 34:console.log("Unknown path prefix ("+u[0]+") in "+a);case 35:return e.abrupt("return",l);case 36:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function u(e,t,a,n){switch(t){case"humanReadable":(0,l.HumanReadable)(e,a,n);break;case"precise":(0,l.Precise)(e,a,n);break;case"blocksToDays":(0,l.BlocksToDays)(e,n);break;case"erasToDays":(0,l.ErasToDays)(e,n,a);break;case"percentage":(0,l.Percentage)(e,n);break;case"permillToPercent":(0,l.PermillToPercent)(e,n);break;case"arrayLength":(0,l.ArrayLength)(e,n);break;default:return void console.log("Ignoring unknown filter type")}}const c=function(e){var t=e.network,a=e.path,r=e.defaultValue,s=e.filter,l=void 0===s?void 0:s,p=(0,i.useState)(""),c=p[0],h=p[1];return t=t.toLowerCase(),(0,i.useEffect)((function(){void 0!==l?u(r.toString(),l,t,h):h(r.toString());var e=void 0;switch(t){case"polkadot":e="wss://rpc.polkadot.io";break;case"kusama":e="wss://kusama-rpc.polkadot.io/";break;case"statemine":e="wss://kusama-asset-hub-rpc.polkadot.io/";break;case"statemint":e="wss://polkadot-asset-hub-rpc.polkadot.io/";break;default:console.log("Unknown network provided, "+t)}if(void 0===e)console.log("Failed to connect to a valid websocket, applying default");else{var i=function(){var e=(0,o.Z)((0,n.Z)().mark((function e(){var o;return(0,n.Z)().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,d(t,a,h);case 2:if(void 0!==(o=e.sent)){e.next=7;break}return e.abrupt("return");case 7:void 0!==l?u(o,l,t,h):h(o);case 8:case"end":return e.stop()}}),e)})));return function(){return e.apply(this,arguments)}}();try{i()}catch(s){console.log(s)}}}),[]),c}},67425:e=>{var t="polkadot",a="kusama",n="statemine",o="statemint",i={polkadot:{precision:1e10,symbol:"DOT"},kusama:{precision:1e12,symbol:"KSM"},statemint:{precision:1e10,symbol:"DOT"},statemine:{precision:1e12,symbol:"KSM"}};e.exports={HumanReadable:function(e,r,s){var l=void 0;if(r===t||r===o)l=3;else{if(r!==a&&r!==n)return void console.log("Unknown network type found when attempting to apply 'Human Readable' filter");l=6}e=parseFloat(e),s((e=Number.isInteger(e/i[r].precision)?e/i[r].precision+" "+i[r].symbol:(e/i[r].precision).toFixed(l)+" "+i[r].symbol).toString())},Precise:function(e,t,a){a(e=(e=parseFloat(e))/i[t].precision+" "+i[t].symbol)},BlocksToDays:function(e,t){t((e=6*e/86400).toString())},ErasToDays:function(e,i,r){var s=void 0;if(r===t||r===o)s=1;else{if(r!==a&&r!==n)return void console.log("Unknown network type found when attempting to apply 'Human Readable' filter");s=4}i((e/=s).toString())},Percentage:function(e,t){t((e/=1e7).toString())},PermillToPercent:function(e,t){t((e/=1e4).toString())},ArrayLength:function(e,t){t((e=e.split(",").length).toString())}}},11300:(e,t,a)=>{"use strict";a.r(t),a.d(t,{assets:()=>u,contentTitle:()=>d,default:()=>k,frontMatter:()=>l,metadata:()=>p,toc:()=>c});var n=a(87462),o=a(63366),i=(a(67294),a(3905)),r=a(47940),s=["components"],l={id:"maintain-guides-how-to-validate-polkadot",title:"Run a Validator (Polkadot)",sidebar_label:"How to run a Validator on Polkadot",description:"The fundamentals for running a Polkadot validator.",keywords:["validator setup","validator","validate","binary","runtime"],slug:"../maintain-guides-how-to-validate-polkadot"},d=void 0,p={unversionedId:"maintain/maintain-guides-how-to-validate-polkadot",id:"maintain/maintain-guides-how-to-validate-polkadot",title:"Run a Validator (Polkadot)",description:"The fundamentals for running a Polkadot validator.",source:"@site/../docs/maintain/maintain-guides-how-to-validate-polkadot.md",sourceDirName:"maintain",slug:"/maintain-guides-how-to-validate-polkadot",permalink:"/docs/maintain-guides-how-to-validate-polkadot",draft:!1,tags:[],version:"current",lastUpdatedBy:"bader y",lastUpdatedAt:1716312500,formattedLastUpdatedAt:"May 21, 2024",frontMatter:{id:"maintain-guides-how-to-validate-polkadot",title:"Run a Validator (Polkadot)",sidebar_label:"How to run a Validator on Polkadot",description:"The fundamentals for running a Polkadot validator.",keywords:["validator setup","validator","validate","binary","runtime"],slug:"../maintain-guides-how-to-validate-polkadot"}},u={},c=[{value:"Preliminaries",id:"preliminaries",level:2},{value:"How many DOT do I need to become an active Validator?",id:"how-many-dot-do-i-need-to-become-an-active-validator",level:3},{value:"Initial Set-up",id:"initial-set-up",level:2},{value:"Requirements",id:"requirements",level:3},{value:"Reference Hardware",id:"reference-hardware",level:4},{value:"Install & Configure Network Time Protocol (NTP) Client",id:"install--configure-network-time-protocol-ntp-client",level:3},{value:"Make Sure Landlock is Enabled",id:"make-sure-landlock-is-enabled",level:3},{value:"Installing the Polkadot binaries",id:"installing-the-polkadot-binaries",level:3},{value:"Installation from official releases",id:"installation-from-official-releases",level:4},{value:"Optional: Installation with Package Managers",id:"optional-installation-with-package-managers",level:4},{value:"Debian-based (Debian, Ubuntu)",id:"debian-based-debian-ubuntu",level:4},{value:"RPM-based (Fedora, CentOS)",id:"rpm-based-fedora-centos",level:4},{value:"Optional: Installation with Ansible",id:"optional-installation-with-ansible",level:4},{value:"Optional: Installation with Docker",id:"optional-installation-with-docker",level:4},{value:"Optional: Building the Polkadot binaries from sources",id:"optional-building-the-polkadot-binaries-from-sources",level:3},{value:"Prerequisites: Install Rust and Dependencies",id:"prerequisites-install-rust-and-dependencies",level:4},{value:"Building the binaries",id:"building-the-binaries",level:4},{value:"Verify the installation",id:"verify-the-installation",level:3},{value:"Synchronize Chain Data",id:"synchronize-chain-data",level:3},{value:"Database Snapshot Services",id:"database-snapshot-services",level:4},{value:"Bond DOT",id:"bond-dot",level:2},{value:"Set Session Keys",id:"set-session-keys",level:2},{value:"Generating the Session Keys",id:"generating-the-session-keys",level:3},{value:"Option 1: PolkadotJS-APPS",id:"option-1-polkadotjs-apps",level:4},{value:"Option 2: CLI",id:"option-2-cli",level:4},{value:"Submitting the setKeys Transaction",id:"submitting-the-setkeys-transaction",level:3},{value:"Validate",id:"validate",level:2},{value:"Setup via Validator Tab",id:"setup-via-validator-tab",level:3},{value:"Thousand Validators Programme",id:"thousand-validators-programme",level:2},{value:"Running a validator on a testnet",id:"running-a-validator-on-a-testnet",level:2},{value:"FAQ",id:"faq",level:2},{value:"Why am I unable to synchronize the chain with 0 peers?",id:"why-am-i-unable-to-synchronize-the-chain-with-0-peers",level:3},{value:"How do I clear all my chain data?",id:"how-do-i-clear-all-my-chain-data",level:3},{value:"Note about VPS",id:"note-about-vps",level:2},{value:"Disable SMT",id:"disable-smt",level:3},{value:"Disable automatic NUMA balancing",id:"disable-automatic-numa-balancing",level:3},{value:"Configure Spectre/Meltdown Mitigations",id:"configure-spectremeltdown-mitigations",level:3},{value:"For Linux >= 5.16",id:"for-linux--516",level:4},{value:"For Linux < 5.16",id:"for-linux--516-1",level:4},{value:"VPS List",id:"vps-list",level:3}],h={toc:c},m="wrapper";function k(e){var t=e.components,l=(0,o.Z)(e,s);return(0,i.kt)(m,(0,n.Z)({},h,l,{components:t,mdxType:"MDXLayout"}),(0,i.kt)("admonition",{type:"tip"},(0,i.kt)("p",{parentName:"admonition"},"If you are a beginner, it is recommended that you start your validator journey on Kusama network.\nCheck the ",(0,i.kt)("a",{parentName:"p",href:"/docs/maintain-guides-how-to-validate-kusama"},"Kusama guide")," for details on how to get\nstarted.")),(0,i.kt)("h2",{id:"preliminaries"},"Preliminaries"),(0,i.kt)("p",null,"Running a validator on a live network is a lot of responsibility! You will be accountable for not\nonly your own stake, but also the stake of your current nominators. If you make a mistake and get\nslashed, your tokens and your reputation will be at risk. However, running a validator can also be\nvery rewarding, knowing that you contribute to the security of a decentralized network while growing\nyour stash."),(0,i.kt)("admonition",{type:"warning"},(0,i.kt)("p",{parentName:"admonition"},"It is highly recommended that you have significant system administration experience before\nattempting to run your own validator."),(0,i.kt)("p",{parentName:"admonition"},"You must be able to handle technical issues and anomalies with your node which you must be able to\ntackle yourself. Being a validator involves more than just executing the Polkadot binary.")),(0,i.kt)("p",null,"Since security is so important to running a successful validator, you should take a look at the\n",(0,i.kt)("a",{parentName:"p",href:"/docs/maintain-guides-secure-validator"},"secure validator")," information to make sure you understand the\nfactors to consider when constructing your infrastructure. As you progress in your journey as a\nvalidator, you will likely want to use this repository as a ",(0,i.kt)("em",{parentName:"p"},"starting point")," for your own\nmodifications and customizations."),(0,i.kt)("p",null,"If you need help, please reach out on the\n",(0,i.kt)("a",{parentName:"p",href:"https://matrix.to/#/#polkadotvalidatorlounge:web3.foundation"},"Polkadot Validator Lounge")," on\nElement. The team and other validators are there to help answer questions and provide tips from\nexperience."),(0,i.kt)("h3",{id:"how-many-dot-do-i-need-to-become-an-active-validator"},"How many DOT do I need to become an active Validator?"),(0,i.kt)("p",null,"You can have a rough estimate on that by using the methods listed\n",(0,i.kt)("a",{parentName:"p",href:"/docs/faq/#what-is-the-minimum-stake-necessary-to-be-elected-as-an-active-validator"},"here"),".\nTo be elected into the set, you need a minimum stake behind your validator. This stake can come from\nyourself or from ",(0,i.kt)("a",{parentName:"p",href:"/docs/learn-nominator"},"nominators"),". This means that as a minimum, you will\nneed enough DOT to set up stash (and optionally a staking\n",(0,i.kt)("a",{parentName:"p",href:"/docs/learn-proxies"},"proxy account"),") with the existential deposit, plus a little extra for\ntransaction fees. The rest can come from nominators. To understand how validators are elected, check\nthe ",(0,i.kt)("a",{parentName:"p",href:"/docs/learn-phragmen"},"NPoS Election algorithms")," page."),(0,i.kt)("p",null,"For further reference, you may look at the\n","\n",(0,i.kt)("a",{parentName:"p",href:"https://kusama.subscan.io/validator_list?status=validator"},"statistics for current, active validators."),""),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Warning:")," Any DOT that you stake for your validator is liable to be slashed, meaning that an\ninsecure or improper setup may result in loss of DOT tokens! If you are not confident in your\nability to run a validator node, it is recommended to nominate your DOT to a trusted validator node\ninstead."),(0,i.kt)("h2",{id:"initial-set-up"},"Initial Set-up"),(0,i.kt)("h3",{id:"requirements"},"Requirements"),(0,i.kt)("p",null,"The most common way for a beginner to run a validator is on a cloud server running Linux. You may\nchoose whatever ",(0,i.kt)("a",{parentName:"p",href:"#note-about-vps"},"VPS")," provider that you prefer. As OS it is best to use a recent\nDebian Linux. For this guide we will be using ",(0,i.kt)("strong",{parentName:"p"},"Ubuntu 22.04"),", but the instructions should be\nsimilar for other platforms."),(0,i.kt)("h4",{id:"reference-hardware"},"Reference Hardware"),(0,i.kt)("p",null,"The transaction weights in Polkadot are benchmarked on reference hardware. We ran the benchmark on\nVM instances of two major cloud providers: Google Cloud Platform (GCP) and Amazon Web Services\n(AWS). To be specific, we used ",(0,i.kt)("inlineCode",{parentName:"p"},"n2-standard-8")," VM instance on GCP and ",(0,i.kt)("inlineCode",{parentName:"p"},"c6i.4xlarge")," on AWS. It is\nrecommended that the hardware used to run the validators at least matches the specs of the reference\nhardware in order to ensure they are able to process all blocks in time. If you use subpar hardware\nyou will possibly run into performance issues, get less era points, and potentially even get\nslashed."),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"CPU"),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"x86-64 compatible;"),(0,i.kt)("li",{parentName:"ul"},"Intel Ice Lake, or newer (Xeon or Core series); AMD Zen3, or newer (EPYC or Ryzen);"),(0,i.kt)("li",{parentName:"ul"},"4 physical cores @ 3.4GHz;"),(0,i.kt)("li",{parentName:"ul"},"Simultaneous multithreading disabled (Hyper-Threading on Intel, SMT on AMD);"),(0,i.kt)("li",{parentName:"ul"},"Prefer single-threaded performance over higher cores count. A comparison of single-threaded\nperformance can be found ",(0,i.kt)("a",{parentName:"li",href:"https://www.cpubenchmark.net/singleThread.html"},"here"),"."))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Storage"),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"An NVMe SSD of 1 TB (As it should be reasonably sized to deal with blockchain growth). An\nestimation of current chain snapshot sizes can be found\n",(0,i.kt)("a",{parentName:"li",href:"https://stakeworld.io/docs/dbsize"},"here"),". In general, the latency is more important than the\nthroughput."))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Memory"),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"32 GB DDR4 ECC."))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"System"),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"Linux Kernel 5.16 or newer."))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Network"),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"The minimum symmetric networking speed is set to 500 Mbit/s (= 62.5 MB/s). This is required to\nsupport a large number of parachains and allow for proper congestion control in busy network\nsituations.")))),(0,i.kt)("p",null,"The specs posted above are not a ",(0,i.kt)("em",{parentName:"p"},"hard")," requirement to run a validator, but are considered best\npractice. Running a validator is a responsible task; using professional hardware is a must in any\nway."),(0,i.kt)("h3",{id:"install--configure-network-time-protocol-ntp-client"},"Install & Configure Network Time Protocol (NTP) Client"),(0,i.kt)("p",null,(0,i.kt)("a",{parentName:"p",href:"https://en.wikipedia.org/wiki/Network_Time_Protocol"},"NTP")," is a networking protocol designed to\nsynchronize the clocks of computers over a network. NTP allows you to synchronize the clocks of all\nthe systems within the network. Currently it is required that validators' local clocks stay\nreasonably in sync, so you should be running NTP or a similar service. You can check whether you\nhave the NTP client by running:"),(0,i.kt)("p",null,(0,i.kt)("em",{parentName:"p"},"If you are using Ubuntu 18.04 or a newer version, NTP Client should be installed by default.")),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-sh"},"timedatectl\n")),(0,i.kt)("p",null,"If NTP is installed and running, you should see ",(0,i.kt)("inlineCode",{parentName:"p"},"System clock synchronized: yes")," (or a similar\nmessage). If you do not see it, you can install it by executing:"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-sh"},"sudo apt-get install ntp\n")),(0,i.kt)("p",null,"ntpd will be started automatically after install. You can query ntpd for status information to\nverify that everything is working:"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-sh"},"sudo ntpq -p\n")),(0,i.kt)("admonition",{type:"warning"},(0,i.kt)("p",{parentName:"admonition"},"Skipping this can result in the validator node missing block authorship opportunities. If the clock\nis out of sync (even by a small amount), the blocks the validator produces may not get accepted by\nthe network.")),(0,i.kt)("h3",{id:"make-sure-landlock-is-enabled"},"Make Sure Landlock is Enabled"),(0,i.kt)("p",null,(0,i.kt)("a",{parentName:"p",href:"https://docs.kernel.org/userspace-api/landlock.html"},"Landlock")," is a Linux security feature used in\nPolkadot:"),(0,i.kt)("blockquote",null,(0,i.kt)("p",{parentName:"blockquote"},"Landlock empowers any process, including unprivileged ones, to securely restrict themselves.")),(0,i.kt)("p",null,"To make use of landlock, make sure you are on the reference kernel version or newer. Most Linux\ndistributions should already have landlock enabled, but you can check by running the following as\nroot:"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-sh"},"dmesg | grep landlock || journalctl -kg landlock\n")),(0,i.kt)("p",null,"If it is not enabled, please see the\n",(0,i.kt)("a",{parentName:"p",href:"https://docs.kernel.org/userspace-api/landlock.html#kernel-support"},'official docs ("Kernel support")'),"\nif you would like to build Linux with landlock enabled."),(0,i.kt)("h3",{id:"installing-the-polkadot-binaries"},"Installing the Polkadot binaries"),(0,i.kt)("admonition",{title:"Multiple Validator Binaries",type:"info"},(0,i.kt)("p",{parentName:"admonition"},"In addition to the ",(0,i.kt)("inlineCode",{parentName:"p"},"polkadot")," binary, recent changes have separated out functionality into two\nadditional needed binaries, ",(0,i.kt)("inlineCode",{parentName:"p"},"polkadot-prepare-worker"),", and ",(0,i.kt)("inlineCode",{parentName:"p"},"polkadot-execute-worker"),". All three\nbinaries are needed to properly run a validator node. More context on these changes can be found\n",(0,i.kt)("a",{parentName:"p",href:"https://github.com/paritytech/polkadot/pull/7337"},"here"))),(0,i.kt)("h4",{id:"installation-from-official-releases"},"Installation from official releases"),(0,i.kt)("p",null,"The official binaries can be downloaded from the\n",(0,i.kt)("a",{parentName:"p",href:"https://github.com/paritytech/polkadot-sdk/releases"},"Github Releases"),". You should download the\nlatest available version. You can also download the binaries by using the following direct links\n(replace X.Y.Z by the appropriate version):"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-sh"},"https://github.com/paritytech/polkadot-sdk/releases/download/polkadot-vX.Y.Z/polkadot\nhttps://github.com/paritytech/polkadot-sdk/releases/download/polkadot-vX.Y.Z/polkadot-execute-worker\nhttps://github.com/paritytech/polkadot-sdk/releases/download/polkadot-vX.Y.Z/polkadot-prepare-worker\n")),(0,i.kt)("h4",{id:"optional-installation-with-package-managers"},"Optional: Installation with Package Managers"),(0,i.kt)("p",null,"The Polkadot Binary in included in ",(0,i.kt)("inlineCode",{parentName:"p"},"Debian")," derivatives (i.e. ",(0,i.kt)("strong",{parentName:"p"},"Debian"),", ",(0,i.kt)("strong",{parentName:"p"},"Ubuntu"),") and\n",(0,i.kt)("inlineCode",{parentName:"p"},"RPM-based")," distros (i.e. ",(0,i.kt)("strong",{parentName:"p"},"Fedora"),", ",(0,i.kt)("strong",{parentName:"p"},"CentOS"),")."),(0,i.kt)("h4",{id:"debian-based-debian-ubuntu"},"Debian-based (Debian, Ubuntu)"),(0,i.kt)("p",null,"Run the following commands as the root user:"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-ssh"},"# Import the security@parity.io GPG key\ngpg --recv-keys --keyserver hkps://keys.mailvelope.com 9D4B2B6EB8F97156D19669A9FF0812D491B96798\ngpg --export 9D4B2B6EB8F97156D19669A9FF0812D491B96798 > /usr/share/keyrings/parity.gpg\n# Add the Parity repository and update the package index\necho 'deb [signed-by=/usr/share/keyrings/parity.gpg] https://releases.parity.io/deb release main' > /etc/apt/sources.list.d/parity.list\napt update\n# Install the `parity-keyring` package - This will ensure the GPG key\n# used by APT remains up-to-date\napt install parity-keyring\n# Install polkadot\napt install polkadot\n")),(0,i.kt)("h4",{id:"rpm-based-fedora-centos"},"RPM-based (Fedora, CentOS)"),(0,i.kt)("p",null,"Run the following commands as the root user:"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-bash"},"# Install dnf-plugins-core (This might already be installed)\ndnf install dnf-plugins-core\n# Add the repository and enable it\ndnf config-manager --add-repo https://releases.parity.io/rpm/polkadot.repo\ndnf config-manager --set-enabled polkadot\n# Install polkadot (You may have to confirm the import of the GPG key, which\n# should have the following fingerprint: 9D4B2B6EB8F97156D19669A9FF0812D491B96798)\ndnf install polkadot\n")),(0,i.kt)("p",null,'Make sure you verify the installation (see the "Verify the installation" section).'),(0,i.kt)("admonition",{title:"By default, the Polkadot systemd service is disabled",type:"note"},(0,i.kt)("p",{parentName:"admonition"},"To start the service, run:"),(0,i.kt)("pre",{parentName:"admonition"},(0,i.kt)("code",{parentName:"pre",className:"language-bash"},"sudo systemctl start polkadot.service\n"))),(0,i.kt)("h4",{id:"optional-installation-with-ansible"},"Optional: Installation with Ansible"),(0,i.kt)("p",null,"To manage Polkadot installation with Ansible, you can use the ",(0,i.kt)("strong",{parentName:"p"},"Substrate node role")," distributed on\nthe ",(0,i.kt)("a",{parentName:"p",href:"https://github.com/paritytech/ansible-galaxy/"},"Parity chain operations Ansible collection")),(0,i.kt)("h4",{id:"optional-installation-with-docker"},"Optional: Installation with Docker"),(0,i.kt)("p",null,"To run Polkadot on a Docker or an OCI compatible container runtime, you can use the official\n",(0,i.kt)("a",{parentName:"p",href:"https://hub.docker.com/r/parity/polkadot/tags"},"parity/polkadot docker image"),", available on Docker\nHub (replace X.Y.Z by the appropriate version):"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-sh"},"docker.io/parity/polkadot:vX.Y.Z\n")),(0,i.kt)("h3",{id:"optional-building-the-polkadot-binaries-from-sources"},"Optional: Building the Polkadot binaries from sources"),(0,i.kt)("h4",{id:"prerequisites-install-rust-and-dependencies"},"Prerequisites: Install Rust and Dependencies"),(0,i.kt)("p",null,"If you have never installed Rust, you should do this first."),(0,i.kt)("p",null,"If you have already installed Rust, run the following command to make sure you are using the latest\nversion."),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-sh"},"rustup update\n")),(0,i.kt)("p",null,"If not, this command will fetch the latest version of Rust and install it."),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-sh"},"curl https://sh.rustup.rs -sSf | sh -s -- -y\n")),(0,i.kt)("admonition",{type:"note"},(0,i.kt)("p",{parentName:"admonition"},'If you do not have "curl" installed, run:'),(0,i.kt)("pre",{parentName:"admonition"},(0,i.kt)("code",{parentName:"pre",className:"language-bash"},"sudo apt install curl\n")),(0,i.kt)("p",{parentName:"admonition"},'It will also be valuable to have "websocat" (Netcat, curl and socat for WebSockets) installed for\nRPC interactions. Installation instructions for various operating systems can be found\n',(0,i.kt)("a",{parentName:"p",href:"https://github.com/vi/websocat#installation"},"here"),".")),(0,i.kt)("p",null,"To configure your shell, run the following command."),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-sh"},"source $HOME/.cargo/env\n")),(0,i.kt)("p",null,"Verify your installation."),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-sh"},"rustc --version\n")),(0,i.kt)("p",null,"Finally, run this command to install the necessary dependencies for compiling and running the\nPolkadot node software."),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-sh"},"sudo apt install make clang pkg-config libssl-dev build-essential\n")),(0,i.kt)("admonition",{type:"note"},(0,i.kt)("p",{parentName:"admonition"},"If you are using OSX and you have ",(0,i.kt)("a",{parentName:"p",href:"https://brew.sh"},"Homebrew")," installed, you can issue the following\nequivalent command INSTEAD of the previous one:"),(0,i.kt)("pre",{parentName:"admonition"},(0,i.kt)("code",{parentName:"pre",className:"language-sh"},"brew install cmake pkg-config openssl git llvm\n"))),(0,i.kt)("h4",{id:"building-the-binaries"},"Building the binaries"),(0,i.kt)("p",null,"You can build the Polkadot binaries from the\n",(0,i.kt)("a",{parentName:"p",href:"https://github.com/paritytech/polkadot-sdk"},"paritytech/polkadot-sdk")," repository on GitHub."),(0,i.kt)("p",null,"You should generally use the latest ",(0,i.kt)("strong",{parentName:"p"},"X.Y.Z"),' tag. You should either review the output from the "git\ntag" command or view the ',(0,i.kt)("a",{parentName:"p",href:"https://github.com/paritytech/polkadot-sdk/tags"},"Polkadot SDK Github tags"),"\nto see a list of all the available release versions. You should replace ",(0,i.kt)("inlineCode",{parentName:"p"},"VERSION")," below with the\nlatest build (i.e., the highest number)."),(0,i.kt)("admonition",{type:"note"},(0,i.kt)("p",{parentName:"admonition"},"If you prefer to use SSH rather than HTTPS, you can replace the first line of the below with"),(0,i.kt)("pre",{parentName:"admonition"},(0,i.kt)("code",{parentName:"pre",className:"language-sh"},"git clone git@github.com:paritytech/polkadot-sdk.git\n"))),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-sh"},"git clone https://github.com/paritytech/polkadot-sdk.git\ncd polkadot-sdk/polkadot\n")),(0,i.kt)("p",null,"Run the following command to find the latest version."),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-sh"},"git tag -l | sort -V | grep -v -- '-rc'\n")),(0,i.kt)("p",null,'Find the latest version; replace "VERSION" in the command below and run to change your branch.'),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-sh"},"git checkout VERSION\n./scripts/init.sh\n")),(0,i.kt)("p",null,"Build native code with the production profile. The following will make sure that the binaries are\nall in your ",(0,i.kt)("inlineCode",{parentName:"p"},"$PATH"),"."),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-sh"},"cargo install --force --path . --profile production\n")),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},(0,i.kt)("em",{parentName:"strong"},"This step will take a while (generally 10 - 40 minutes, depending on your hardware)."))),(0,i.kt)("admonition",{title:"Compilation Errors",type:"note"},(0,i.kt)("p",{parentName:"admonition"},"If you run into compile errors, you may have to pin the version of Rust compiler to the one that was\nused to build the release. Check out ",(0,i.kt)("inlineCode",{parentName:"p"},"Rust compiler versions")," section in the release notes. This can\nbe done by running:"),(0,i.kt)("pre",{parentName:"admonition"},(0,i.kt)("code",{parentName:"pre",className:"language-sh"},"rustup install nightly-2022-05-18\nrustup target add wasm32-unknown-unknown --toolchain nightly-2022-05-18\ncargo +nightly-2022-05-18 build --release\n")),(0,i.kt)("p",{parentName:"admonition"},"You may also need to run the build more than once."),(0,i.kt)("p",{parentName:"admonition"},"If you would like to execute the tests, run the following command:"),(0,i.kt)("pre",{parentName:"admonition"},(0,i.kt)("code",{parentName:"pre",className:"language-sh"},"cargo test --all\n"))),(0,i.kt)("p",null,"If you are interested in generating keys locally, you can also install ",(0,i.kt)("inlineCode",{parentName:"p"},"subkey")," from the same\ndirectory. You may then take the generated ",(0,i.kt)("inlineCode",{parentName:"p"},"subkey")," executable and transfer it to an air-gapped\nmachine for extra security."),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-sh"},"cargo install --force --git https://github.com/paritytech/polkadot-sdk subkey\n")),(0,i.kt)("h3",{id:"verify-the-installation"},"Verify the installation"),(0,i.kt)("p",null,"After installing Polkadot, you can verify the installation by running"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-bash"},"polkadot --version\npolkadot-execute-worker --version\npolkadot-prepare-worker --version\n")),(0,i.kt)("p",null,"It should return something like this (the exact versions don't matter, but they must all be the\nsame):"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-bash"},"0.9.43-36264cb36db\n0.9.43-36264cb36db\n0.9.43-36264cb36db\n")),(0,i.kt)("p",null,"If not, make sure that you installed all the binaries, all the binaries are somewhere in your\n",(0,i.kt)("inlineCode",{parentName:"p"},"$PATH")," and they are all in the same folder."),(0,i.kt)("h3",{id:"synchronize-chain-data"},"Synchronize Chain Data"),(0,i.kt)("p",null,"You can begin syncing your node by running the following command if you do not want to start in\nvalidator mode right away:"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-sh"},"polkadot\n")),(0,i.kt)("admonition",{type:"info"},(0,i.kt)("p",{parentName:"admonition"},"If you want to run a validator on Kusama, you have an option to specify the chain. With no\nspecification, this would default to Polkadot."),(0,i.kt)("pre",{parentName:"admonition"},(0,i.kt)("code",{parentName:"pre",className:"language-sh"},"polkadot --chain=kusama\n"))),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre"},"2021-06-17 03:07:07 Parity Polkadot\n2021-06-17 03:07:07 \u270c\ufe0f version 0.9.5-95f6aa201-x86_64-linux-gnu\n2021-06-17 03:07:07 \u2764\ufe0f by Parity Technologies , 2017-2021\n2021-06-17 03:07:07 \ud83d\udccb Chain specification: Polkadot\n2021-06-17 03:07:07 \ud83c\udff7 Node name: boiling-pet-7554\n2021-06-17 03:07:07 \ud83d\udc64 Role: FULL\n2021-06-17 03:07:07 \ud83d\udcbe Database: RocksDb at /root/.local/share/polkadot/chains/polkadot/db\n2021-06-17 03:07:07 \u26d3 Native runtime: polkadot-9050 (parity-polkadot-0.tx7.au0)\n2021-06-17 03:07:10 \ud83c\udff7 Local node identity is: 12D3KooWLtXFWf1oGrnxMGmPKPW54xWCHAXHbFh4Eap6KXmxoi9u\n2021-06-17 03:07:10 \ud83d\udce6 Highest known block at #17914\n2021-06-17 03:07:10 \u303d\ufe0f Prometheus server started at 127.0.0.1:9615\n2021-06-17 03:07:10 Listening for new connections on 127.0.0.1:9944.\n")),(0,i.kt)("admonition",{title:"Example of node sync",type:"info"},(0,i.kt)("pre",{parentName:"admonition"},(0,i.kt)("code",{parentName:"pre"},"2021-06-17 03:07:39 \ud83d\udd0d Discovered new external address for our node: /ip4/10.26.16.1/tcp/30333/ws/p2p/12D3KooWLtXFWf1oGrnxMGmPKPW54xWCHAXHbFh4Eap6KXmxoi9u\n2021-06-17 03:07:40 \u2699\ufe0f Syncing 218.8 bps, target=#5553764 (17 peers), best: #24034 (0x08af\u2026dcf5), finalized #23552 (0xd4f0\u20262642), \u2b07 173.5kiB/s \u2b06 12.7kiB/s\n2021-06-17 03:07:45 \u2699\ufe0f Syncing 214.8 bps, target=#5553765 (20 peers), best: #25108 (0xb272\u2026e800), finalized #25088 (0x94e6\u20268a9f), \u2b07 134.3kiB/s \u2b06 7.4kiB/s\n2021-06-17 03:07:50 \u2699\ufe0f Syncing 214.8 bps, target=#5553766 (21 peers), best: #26182 (0xe7a5\u202601a2), finalized #26112 (0xcc29\u2026b1a9), \u2b07 5.0kiB/s \u2b06 1.1kiB/s\n2021-06-17 03:07:55 \u2699\ufe0f Syncing 138.4 bps, target=#5553767 (21 peers), best: #26874 (0xcf4b\u20266553), finalized #26624 (0x9dd9\u202627f8), \u2b07 18.9kiB/s \u2b06 2.0kiB/s\n2021-06-17 03:08:00 \u2699\ufe0f Syncing 37.0 bps, target=#5553768 (22 peers), best: #27059 (0x5b73\u20266fc9), finalized #26624 (0x9dd9\u202627f8), \u2b07 14.3kiB/s \u2b06 4.4kiB/s\n"))),(0,i.kt)("admonition",{title:"Use Warp sync for faster syncing",type:"tip"},(0,i.kt)("p",{parentName:"admonition"},"By default, the node performs ",(0,i.kt)("inlineCode",{parentName:"p"},"full")," sync, which downloads and validates the full blockchain\nhistory. Full sync works by listening to announced blocks and requesting the blocks from the\nannouncing peers, or just the block headers in case of light clients."),(0,i.kt)("p",{parentName:"admonition"},(0,i.kt)("inlineCode",{parentName:"p"},"Fast")," sync is another option that works by downloading the block header history and validating the\nauthority set changes in order to arrive at a specific (usually the most recent) header. After the\ndesired header has been reached and verified, the state can be downloaded and imported. Once this\nprocess has been completed, the node can proceed with a full sync."),(0,i.kt)("pre",{parentName:"admonition"},(0,i.kt)("code",{parentName:"pre",className:"language-sh"},"polkadot --sync warp\n")),(0,i.kt)("p",{parentName:"admonition"},(0,i.kt)("inlineCode",{parentName:"p"},"Warp sync")," initially downloads and validates the finality proofs from\n",(0,i.kt)("a",{parentName:"p",href:"/docs/learn-consensus#finality-gadget-grandpa"},"GRANDPA")," and then downloads the state of the\nlatest finalized block. After the warp sync, the node is ready to import the latest blocks from the\nnetwork and can be used as a Validator. The blocks from genesis will be downloaded in the\nbackground. Check\n",(0,i.kt)("a",{parentName:"p",href:"https://substrate.stackexchange.com/questions/334/what-kinds-of-sync-mechanisms-does-substrate-implement/"},"this discussion"),"\nfor more information about the different sync options available.")),(0,i.kt)("admonition",{title:"Validators should sync using the RocksDb backend",type:"note"},(0,i.kt)("p",{parentName:"admonition"},"This is implicit by default, but can be explicit by passing the ",(0,i.kt)("inlineCode",{parentName:"p"},"--database RocksDb")," flag."),(0,i.kt)("p",{parentName:"admonition"},"In the future, it is recommended to switch to the faster and more efficient ParityDB option. Note\nthat ",(0,i.kt)("strong",{parentName:"p"},"ParityDB is still experimental and should not be used in production.")," If you want to test\nout ParityDB, you can add the flag ",(0,i.kt)("inlineCode",{parentName:"p"},"--database paritydb"),". Switching between database backends will\nrequire a resync.")),(0,i.kt)("p",null,"Depending on the size of the chain when you do this, this step may take anywhere from a few minutes\nto a few hours."),(0,i.kt)("p",null,"If you are interested in determining how much longer you have to go, your server logs (printed to\nSTDOUT from the ",(0,i.kt)("inlineCode",{parentName:"p"},"polkadot")," process) will tell you the latest block your node has processed and\nverified. You can then compare that to the current highest block via\n",(0,i.kt)("a",{parentName:"p",href:"https://telemetry.polkadot.io/#list/Polkadot%20CC1"},"Telemetry")," or the\n",(0,i.kt)("a",{parentName:"p",href:"https://polkadot.js.org/apps/#/explorer"},"PolkadotJS Block Explorer"),"."),(0,i.kt)("h4",{id:"database-snapshot-services"},"Database Snapshot Services"),(0,i.kt)("p",null,"If you start a node for the first time, it will start building from the genesis block. This process\ncan take a while depending on the database size. To make this process faster, snapshots can be used.\nSnapshots are compressed backups of the database directory of Polkadot/Kusama nodes, containing the\nwhole chain (or a pruned version of it, with states only from the latest 1000 or 256 blocks). Listed\nbelow are a few public snapshot providers for Polkadot and Kusama."),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://stakeworld.io/snapshot"},"Stakeworld")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://polkachu.com/snapshots"},"Polkachu")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://polkashots.io/"},"Polkashots"))),(0,i.kt)("admonition",{type:"caution"},(0,i.kt)("p",{parentName:"admonition"},"For the security of the network, it is recommended that you sync from scratch, even if you are\nrunning your node in pruning mode for validation. The reason is that if these snapshots get\ncorrupted and a majority of nodes run based on these snapshots, the network could end up running on\na non-canonical chain.")),(0,i.kt)("h2",{id:"bond-dot"},"Bond DOT"),(0,i.kt)("p",null,"To start a validator instance on Kusama, the\nminimum bond required is\n","\n",(0,i.kt)(r.Z,{network:"polkadot",path:"query.staking.minValidatorBond",defaultValue:"0",filter:"humanReadable",mdxType:"RPC"}),".\nBut to enter the active validator set and be eligible to earn rewards, your validator node should be\nnominated by a minimum number of DOT tokens."),(0,i.kt)("p",null,"For example, the minimum stake backing a validator in era\n6646 (May 21st 2024) is\n7,078.811 KSM. For a live view at\ncurrent validator stats, you may look to\n",(0,i.kt)("a",{parentName:"p",href:"https://polkadot.subscan.io/validator_list?status=validator"},"Subscan")," or the\n",(0,i.kt)("a",{parentName:"p",href:"https://staking.polkadot.network/#/overview"},"Staking Dashboard.")),(0,i.kt)("p",null,"If you are validator who intends to get DOT/KSM nominations from the community, you will need to\nshow some skin in the game. For that, you need to bond some DOT/KSM as own stake. Make sure not to\nbond all your DOT balance since you will be unable to pay transaction fees from your bonded balance."),(0,i.kt)("admonition",{title:"Controller accounts are deprecated. Use Staking Proxy.",type:"info"},(0,i.kt)("p",{parentName:"admonition"},"Controller accounts are deprecated. For more information, see\n",(0,i.kt)("a",{parentName:"p",href:"https://forum.polkadot.network/t/staking-controller-deprecation-plan-staking-ui-leads-comms/2748"},"this discussion"),".\nIt is highly recommended that you setup an account with a staking proxy, which can be used for\nissuing start and stop validating calls. Read more about ",(0,i.kt)("a",{parentName:"p",href:"/docs/learn-proxies"},"proxy accounts"),"\nhere.")),(0,i.kt)("p",null,"First, go to the ",(0,i.kt)("a",{parentName:"p",href:"https://polkadot.js.org/apps/#/staking/actions"},"Staking"),' section. Click on\n"Account Actions", and then the "+ Stash" button.'),(0,i.kt)("p",null,(0,i.kt)("img",{alt:"bonding-JS-UI",src:a(90412).Z,width:"2143",height:"847"})),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Stash account")," - Select your Stash account (which is the account with the DOT/KSM balance)"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Value bonded")," - How much DOT from the Stash account you want to bond/stake. Note that you do\nnot need to bond all of the DOT in that account. Also note that you can always bond ",(0,i.kt)("em",{parentName:"li"},"more")," DOT\nlater. However, ",(0,i.kt)("em",{parentName:"li"},"withdrawing")," any bonded amount requires the duration of the unbonding period. On\nKusama, the unbonding period is 7 days. On Polkadot, the planned unbonding period is 28 days."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Payment destination")," - The account where the rewards from validating are sent. More info\n",(0,i.kt)("a",{parentName:"li",href:"/docs/learn-staking/#reward-distribution"},"here"),". Starting with runtime version v23 natively\nincluded in client version ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/paritytech/polkadot/releases/tag/v0.9.3"},"0.9.3"),",\npayouts can go to any custom address. If you'd like to redirect payments to an account that is not\nthe stash account, you can do it by entering the address here. Note that it is extremely unsafe to\nset an exchange address as the recipient of the staking rewards.")),(0,i.kt)("p",null,"Once everything is filled in properly, click ",(0,i.kt)("inlineCode",{parentName:"p"},"Bond")," and sign the transaction with your Stash\naccount."),(0,i.kt)("p",null,(0,i.kt)("img",{alt:"sign transaction",src:a(93002).Z,width:"2141",height:"780"})),(0,i.kt)("p",null,"After a few seconds, you should see an ",(0,i.kt)("inlineCode",{parentName:"p"},"ExtrinsicSuccess")," message."),(0,i.kt)("p",null,"Your bonded account will be available under ",(0,i.kt)("inlineCode",{parentName:"p"},"Stashes"),". You should now see a new card with all your\naccounts (note: you may need to refresh the screen). The bonded amount on the right corresponds to\nthe funds bonded by the Stash account."),(0,i.kt)("h2",{id:"set-session-keys"},"Set Session Keys"),(0,i.kt)("admonition",{title:"Session keys are consensus critical",type:"caution"},(0,i.kt)("p",{parentName:"admonition"},"If you are not sure if your node has the current session keys that you made the ",(0,i.kt)("inlineCode",{parentName:"p"},"setKeys"),"\ntransaction then you can use one of the two available RPC methods to query your node:\n",(0,i.kt)("a",{parentName:"p",href:"https://polkadot.js.org/docs/substrate/rpc/#haskeypublickey-bytes-keytype-text-bool"},"hasKey")," to\ncheck for a specific key or\n",(0,i.kt)("a",{parentName:"p",href:"https://polkadot.js.org/docs/substrate/rpc/#hassessionkeyssessionkeys-bytes-bool"},"hasSessionKeys"),"\nto check the full session key public key string.")),(0,i.kt)("p",null,"Once your node is fully synced, stop the process by pressing Ctrl-C. At your terminal prompt, you\nwill now start running the node."),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-sh"},'polkadot --validator --name "name on telemetry"\n')),(0,i.kt)("p",null,"Similarly:"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre"},"2021-06-17 03:12:08 Parity Polkadot\n2021-06-17 03:12:08 \u270c\ufe0f version 0.9.5-95f6aa201-x86_64-linux-gnu\n2021-06-17 03:12:08 \u2764\ufe0f by Parity Technologies , 2017-2021\n2021-06-17 03:12:08 \ud83d\udccb Chain specification: Polkadot\n2021-06-17 03:12:08 \ud83c\udff7 Node name: nateched-test\n2021-06-17 03:12:08 \ud83d\udc64 Role: AUTHORITY\n2021-06-17 03:12:08 \ud83d\udcbe Database: RocksDb at /root/.local/share/polkadot/chains/polkadot/db\n2021-06-17 03:12:08 \u26d3 Native runtime: polkadot-9050 (parity-polkadot-0.tx7.au0)\n2021-06-17 03:12:12 \ud83c\udff7 Local node identity is: 12D3KooWLtXFWf1oGrnxMGmPKPW54xWCHAXHbFh4Eap6KXmxoi9u\n2021-06-17 03:12:12 \ud83d\udce6 Highest known block at #64673\n2021-06-17 03:12:12 \u303d\ufe0f Prometheus server started at 127.0.0.1:9615\n2021-06-17 03:12:12 Listening for new connections on 127.0.0.1:9944.\n2021-06-17 03:12:12 \ud83d\udc76 Starting BABE Authorship worker\n")),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre"},"2021-06-17 03:12:16 \ud83d\udd0d Discovered new external address for our node: /ip4/10.26.11.1/tcp/30333/p2p/12D3KooWLtXFWf1oGrnxMGmPKPW54xWCHAXHbFh4Eap6KXmxoi9u\n2021-06-17 03:12:17 \u2699\ufe0f Syncing, target=#5553810 (14 peers), best: #65068 (0x6da5\u20260662), finalized #65024 (0x4e84\u2026d170), \u2b07 352.2kiB/s \u2b06 75.6kiB/s\n")),(0,i.kt)("p",null,"You can give your validator any name that you like, but note that others will be able to see it, and\nit will be included in the list of all servers using the same telemetry server. Since numerous\npeople are using telemetry, it is recommended that you choose something likely to be unique."),(0,i.kt)("h3",{id:"generating-the-session-keys"},"Generating the Session Keys"),(0,i.kt)("p",null,"You need to tell the chain your Session keys by signing and submitting an extrinsic. This is what\nassociates your validator node with your stash account on Polkadot."),(0,i.kt)("h4",{id:"option-1-polkadotjs-apps"},"Option 1: PolkadotJS-APPS"),(0,i.kt)("p",null,"You can generate your ",(0,i.kt)("a",{parentName:"p",href:"/docs/learn-cryptography"},"Session keys")," in the client via the apps RPC.\nIf you are doing this, make sure that you have the PolkadotJS-Apps explorer attached to your\nvalidator node. You can configure the apps dashboard to connect to the endpoint of your validator in\nthe Settings tab. If you are connected to a default endpoint hosted by Parity of Web3 Foundation,\nyou will not be able to use this method since making RPC requests to this node would effect the\nlocal keystore hosted on a ",(0,i.kt)("em",{parentName:"p"},"public node")," and you want to make sure you are interacting with the\nkeystore for ",(0,i.kt)("em",{parentName:"p"},"your node"),"."),(0,i.kt)("p",null,"Once ensuring that you have connected to your node, the easiest way to set session keys for your\nnode is by calling the ",(0,i.kt)("inlineCode",{parentName:"p"},"author_rotateKeys")," RPC request to create new keys in your validator's\nkeystore. Navigate to Toolbox tab and select RPC Calls then select the author > rotateKeys() option\nand remember to save the output that you get back for a later step."),(0,i.kt)("p",null,(0,i.kt)("img",{alt:"Explorer RPC call",src:a(54061).Z,width:"1700",height:"582"})),(0,i.kt)("h4",{id:"option-2-cli"},"Option 2: CLI"),(0,i.kt)("p",null,"If you are on a remote server, it is easier to run this command on the same machine (while the node\nis running with the default WS RPC port configured):"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-sh"},'curl -H "Content-Type: application/json" -d \'{"id":1, "jsonrpc":"2.0", "method": "author_rotateKeys", "params":[]}\' http://localhost:9944\n')),(0,i.kt)("p",null,'The output will have a hex-encoded "result" field. The result is the concatenation of the four\npublic keys. Save this result for a later step.'),(0,i.kt)("p",null,"You can restart your node at this point."),(0,i.kt)("h3",{id:"submitting-the-setkeys-transaction"},"Submitting the ",(0,i.kt)("inlineCode",{parentName:"h3"},"setKeys")," Transaction"),(0,i.kt)("p",null,"You need to tell the chain your Session keys by signing and submitting an extrinsic. This is what\nassociates your validator with your staking proxy."),(0,i.kt)("p",null,"Go to ",(0,i.kt)("a",{parentName:"p",href:"https://polkadot.js.org/apps/#/staking/actions"},"Staking > Account Actions"),', and click "Set\nSession Key" on the bonding account you generated earlier. Enter the output from ',(0,i.kt)("inlineCode",{parentName:"p"},"author_rotateKeys"),'\nin the field and click "Set Session Key".'),(0,i.kt)("p",null,(0,i.kt)("img",{alt:"staking-change-session",src:a(72316).Z,width:"2792",height:"182"}),"\n",(0,i.kt)("img",{alt:"staking-session-result",src:a(12883).Z,width:"2146",height:"680"})),(0,i.kt)("p",null,"Submit this extrinsic and you are now ready to start validating."),(0,i.kt)("h2",{id:"validate"},"Validate"),(0,i.kt)("p",null,"To verify that your node is live and synchronized, head to\n",(0,i.kt)("a",{parentName:"p",href:"https://telemetry.polkadot.io/#list/Polkadot%20CC1"},"Telemetry")," and find your node. Note that this\nwill show all nodes on the Polkadot network, which is why it is important to select a unique name!"),(0,i.kt)("p",null,"In this example, we used the name ",(0,i.kt)("inlineCode",{parentName:"p"},"techedtest")," and have successfully located it upon searching:"),(0,i.kt)("p",null,(0,i.kt)("img",{alt:"polkadot-dashboard-telemetry",src:a(67929).Z,width:"2862",height:"472"})),(0,i.kt)("h3",{id:"setup-via-validator-tab"},"Setup via Validator Tab"),(0,i.kt)("p",null,(0,i.kt)("img",{alt:"polkadot-dashboard-validate-1",src:a(63670).Z,width:"2128",height:"1022"})),(0,i.kt)("p",null,"Here you will need to input the Keys from ",(0,i.kt)("inlineCode",{parentName:"p"},"rotateKeys"),", which is the Hex output from\n",(0,i.kt)("inlineCode",{parentName:"p"},"author_rotateKeys"),". The keys will show as pending until applied at the start of a new session."),(0,i.kt)("p",null,'The "reward commission percentage" is the commission percentage that you can declare against your\nvalidator\'s rewards. This is the rate that your validator will be commissioned with.'),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Payment preferences")," - You can specify the percentage of the rewards that will get paid to you.\nThe remaining will be split among your nominators.")),(0,i.kt)("admonition",{title:"Setting a commission rate of 100% suggests that you do not want your validator to receive",type:"caution"},(0,i.kt)("p",{parentName:"admonition"},"nominations")),(0,i.kt)("p",null,'You can also determine if you would like to receive nominations with the "allows new nominations"\noption.'),(0,i.kt)("p",null,(0,i.kt)("img",{alt:"dashboard validate",src:a(44281).Z,width:"2126",height:"694"})),(0,i.kt)("p",null,'Click "Bond & Validate".'),(0,i.kt)("p",null,'If you go to the "Staking" tab, you will see a list of active validators currently running on the\nnetwork. At the top of the page, it shows the number of validator slots that are available as well\nas the number of nodes that have signaled their intention to be a validator. You can go to the\n"Waiting" tab to double check to see whether your node is listed there.'),(0,i.kt)("p",null,(0,i.kt)("img",{alt:"staking queue",src:a(46513).Z,width:"2838",height:"1440"})),(0,i.kt)("p",null,"The validator set is refreshed every era. In the next era, if there is a slot available and your\nnode is selected to join the validator set, your node will become an active validator. Until then,\nit will remain in the ",(0,i.kt)("em",{parentName:"p"},"waiting")," queue. If your validator is not selected to become part of the\nvalidator set, it will remain in the ",(0,i.kt)("em",{parentName:"p"},"waiting")," queue until it is. There is no need to re-start if\nyou are not selected for the validator set in a particular era. However, it may be necessary to\nincrease the number of DOT staked or seek out nominators for your validator in order to join the\nvalidator set."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Congratulations!")," If you have followed all of these steps, and been selected to be a part of the\nvalidator set, you are now running a Polkadot validator! If you need help, reach out on the\n",(0,i.kt)("a",{parentName:"p",href:"https://matrix.to/#/!NZrbtteFeqYKCUGQtr:matrix.parity.io?via=matrix.parity.io&via=matrix.org&via=web3.foundation"},"Polkadot Validator chat"),"."),(0,i.kt)("h2",{id:"thousand-validators-programme"},"Thousand Validators Programme"),(0,i.kt)("p",null,"The Thousand Validators Programme is a joint initiative by Web3 Foundation and Parity Technologies\nto provide support for community validators. If you are interested in applying for the program, you\ncan find more information ",(0,i.kt)("a",{parentName:"p",href:"/docs/thousand-validators"},"on the wiki page"),"."),(0,i.kt)("h2",{id:"running-a-validator-on-a-testnet"},"Running a validator on a testnet"),(0,i.kt)("p",null,"To verify your validator setup, it is possible to run it against a PoS test network such as Westend.\nHowever, validator slots are intentionally limited on Westend to ensure stability and availability\nof the testnet for the Polkadot release process."),(0,i.kt)("p",null,"Here is a small comparison of each network characteristics as relevant to validators:"),(0,i.kt)("table",null,(0,i.kt)("thead",{parentName:"table"},(0,i.kt)("tr",{parentName:"thead"},(0,i.kt)("th",{parentName:"tr",align:null},"Network"),(0,i.kt)("th",{parentName:"tr",align:null},"Polkadot"),(0,i.kt)("th",{parentName:"tr",align:null},"Westend"))),(0,i.kt)("tbody",{parentName:"table"},(0,i.kt)("tr",{parentName:"tbody"},(0,i.kt)("td",{parentName:"tr",align:null},"epoch"),(0,i.kt)("td",{parentName:"tr",align:null},"4h"),(0,i.kt)("td",{parentName:"tr",align:null},"1h")),(0,i.kt)("tr",{parentName:"tbody"},(0,i.kt)("td",{parentName:"tr",align:null},"era"),(0,i.kt)("td",{parentName:"tr",align:null},"1d"),(0,i.kt)("td",{parentName:"tr",align:null},"6h")),(0,i.kt)("tr",{parentName:"tbody"},(0,i.kt)("td",{parentName:"tr",align:null},"token"),(0,i.kt)("td",{parentName:"tr",align:null},"DOT"),(0,i.kt)("td",{parentName:"tr",align:null},"WND (test)")),(0,i.kt)("tr",{parentName:"tbody"},(0,i.kt)("td",{parentName:"tr",align:null},"active validators"),(0,i.kt)("td",{parentName:"tr",align:null},"~300"),(0,i.kt)("td",{parentName:"tr",align:null},"~20")))),(0,i.kt)("h2",{id:"faq"},"FAQ"),(0,i.kt)("h3",{id:"why-am-i-unable-to-synchronize-the-chain-with-0-peers"},"Why am I unable to synchronize the chain with 0 peers?"),(0,i.kt)("p",null,(0,i.kt)("img",{alt:"zero-peer",src:a(29009).Z,width:"1350",height:"235"})),(0,i.kt)("p",null,"Make sure to enable ",(0,i.kt)("inlineCode",{parentName:"p"},"30333")," libp2p port. Eventually, it will take a little bit of time to discover\nother peers over the network."),(0,i.kt)("h3",{id:"how-do-i-clear-all-my-chain-data"},"How do I clear all my chain data?"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-sh"},"polkadot purge-chain\n")),(0,i.kt)("admonition",{type:"info"},(0,i.kt)("p",{parentName:"admonition"},"Check out the ",(0,i.kt)("a",{parentName:"p",href:"https://substrate.stackexchange.com/"},"Substrate StackExchange")," to quickly get the\nanswers you need.")),(0,i.kt)("h2",{id:"note-about-vps"},"Note about VPS"),(0,i.kt)("p",null,"VPS providers are very popular for running servers of any kind. Extensive benchmarking was conducted\nto ensure that VPS servers are able to keep up with the work load in general."),(0,i.kt)("admonition",{type:"note"},(0,i.kt)("p",{parentName:"admonition"},"Before you run a live Validator, please verify if the advertised performance is actually delivered\nconsistently by the VPS provider.")),(0,i.kt)("p",null,"that this is not an endorsement in any way:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"GCP's ",(0,i.kt)("em",{parentName:"li"},"c2")," and ",(0,i.kt)("em",{parentName:"li"},"c2d")," machine families"),(0,i.kt)("li",{parentName:"ul"},"AWS's ",(0,i.kt)("em",{parentName:"li"},"c6id")," machine family")),(0,i.kt)("p",null,"The following additional configurations were applied to the instances to tune their performance:"),(0,i.kt)("h3",{id:"disable-smt"},"Disable ",(0,i.kt)("a",{parentName:"h3",href:"https://en.wikipedia.org/wiki/Simultaneous_multithreading"},"SMT")),(0,i.kt)("p",null,"As critical path of Substrate is single-threaded we need to optimize for single-core CPU\nperformance. The node still profits from multiple cores when doing networking and other non-runtime\noperations. It is therefore still necessary to run it on at least the minimum required number of\ncores. Disabling SMT improves the performance as each vCPU becomes mapped to a physical CPU core\nrather than being presented to the OS as two logical cores. SMT implementation is called\n",(0,i.kt)("em",{parentName:"p"},"Hyper-Threading")," on Intel and ",(0,i.kt)("em",{parentName:"p"},"2-way SMT")," on AMD Zen. To disable SMT in runtime:"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-bash"},"for cpunum in $(cat /sys/devices/system/cpu/cpu*/topology/thread_siblings_list | cut -s -d, -f2- | tr ',' '\\n' | sort -un)\ndo\n echo 0 > /sys/devices/system/cpu/cpu$cpunum/online\ndone\n")),(0,i.kt)("p",null,"It will disable every other (vCPU) core."),(0,i.kt)("p",null,"To save changes permanently add ",(0,i.kt)("inlineCode",{parentName:"p"},"nosmt=force")," as kernel parameter. Edit ",(0,i.kt)("inlineCode",{parentName:"p"},"/etc/default/grub")," and add\n",(0,i.kt)("inlineCode",{parentName:"p"},"nosmt=force")," to ",(0,i.kt)("inlineCode",{parentName:"p"},"GRUB_CMDLINE_LINUX_DEFAULT")," variable and run ",(0,i.kt)("inlineCode",{parentName:"p"},"sudo update-grub"),". After the reboot\nyou should see half of the cores are offline. Run ",(0,i.kt)("inlineCode",{parentName:"p"},"lscpu --extended")," to confirm."),(0,i.kt)("h3",{id:"disable-automatic-numa-balancing"},"Disable automatic NUMA balancing"),(0,i.kt)("p",null,"If you have multiple physical CPUs (CPU0 and CPU1) in the system each with its own memory bank (MB0\nand MB1), then it is usually slower for a CPU0 to access MB1 due to the slower interconnection. To\nprevent the OS from automatically moving the running Substrate process from one CPU to another and\nthus causing an increased latency, it is recommended to disable automatic NUMA balancing."),(0,i.kt)("p",null,"With automatic NUMA balancing disabled, an OS will always run a process on the same NUMA node where\nit was initially scheduled."),(0,i.kt)("p",null,"To disable NUMA balancing in runtime:"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-bash"},"sysctl kernel.numa_balancing=0\n")),(0,i.kt)("p",null,"To save changes permanently, update startup options and reconfigure GRUB. Edit ",(0,i.kt)("inlineCode",{parentName:"p"},"/etc/default/grub"),"\nand add ",(0,i.kt)("inlineCode",{parentName:"p"},"numa_balancing=disable")," to ",(0,i.kt)("inlineCode",{parentName:"p"},"GRUB_CMDLINE_LINUX_DEFAULT")," variable and run\n",(0,i.kt)("inlineCode",{parentName:"p"},"sudo update-grub"),". After reboot you can confirm the change by running\n",(0,i.kt)("inlineCode",{parentName:"p"},"sysctl -a | grep 'kernel.numa_balancing'")," and checking if the parameter is set to 0"),(0,i.kt)("h3",{id:"configure-spectremeltdown-mitigations"},"Configure Spectre/Meltdown Mitigations"),(0,i.kt)("p",null,"Spectre and Meltdown are vulnerabilities discovered in modern CPUs a few years ago. Mitigations were\nmade to the Linux kernel to cope with the multiple variations of these attacks. Check out\n",(0,i.kt)("a",{parentName:"p",href:"https://meltdownattack.com/"},"https://meltdownattack.com/")," for more info."),(0,i.kt)("p",null,"Initially those mitigations added ~20% penalty to the performance of the workloads. As CPU\nmanufacturers started to roll-out mitigations implemented in hardware, the performance gap\n",(0,i.kt)("a",{parentName:"p",href:"https://www.phoronix.com/scan.php?page=article&item=3-years-specmelt&num=1"},"narrowed down"),". As the\nbenchmark demonstrates, the performance penalty got reduced to ~7% on Intel 10th Gen CPUs. This is\ntrue for the workloads running on both bare-metal and VMs. But the penalty remains high for the\ncontainerized workloads in some cases."),(0,i.kt)("p",null,"As demonstrated in\n",(0,i.kt)("a",{parentName:"p",href:"http://mamememo.blogspot.com/2020/05/cpu-intensive-rubypython-code-runs.html"},"Yusuke Endoh's article"),",\na performance penalty for containerized workloads can be as high as 100%. This is due to SECCOMP\nprofile being overprotective about applying Spectre/Meltdown mitigations without providing real\nsecurity. A longer explanation is available in the\n",(0,i.kt)("a",{parentName:"p",href:"https://lkml.org/lkml/2020/11/4/1135"},"kernel patch discussion"),"."),(0,i.kt)("p",null,"Linux 5.16\n",(0,i.kt)("a",{parentName:"p",href:"https://www.phoronix.com/scan.php?page=news_item&px=Linux-Spectre-SECCOMP-Default"},"loosened the protections"),"\napplied to SECCOMP threads by default. Containers running on kernel 5.16 and later now don't suffer\nfrom the performance penalty implied by using a SECCOMP profile in container runtimes."),(0,i.kt)("h4",{id:"for-linux--516"},"For Linux >= 5.16"),(0,i.kt)("p",null,"You are all set. The performance of containerized workloads is on par with non-containerized ones.\nYou don't have to do anything."),(0,i.kt)("h4",{id:"for-linux--516-1"},"For Linux < 5.16"),(0,i.kt)("p",null,"You'll need to disable mitigations for Spectre V2 for user-space tasks as well as Speculative Store\nBypass Disable (SSBD) for Spectre V4.\n",(0,i.kt)("a",{parentName:"p",href:"https://git.kernel.org/pub/scm/linux/kernel/git/kees/linux.git/commit/?h=for-next/seccomp&id=2f46993d83ff4abb310ef7b4beced56ba96f0d9d"},"This patch message"),"\ndescribes the reasoning for this default change in more detail:"),(0,i.kt)("blockquote",null,(0,i.kt)("p",{parentName:"blockquote"},"Ultimately setting SSBD and STIBP by default for all seccomp jails is a bad sweet spot and bad\ndefault with more cons than pros that end up reducing security in the public cloud (by giving an\nhuge incentive to not expose SPEC_CTRL which would be needed to get full security with IBPB after\nsetting nosmt in the guest) and by excessively hurting performance to more secure apps using\nseccomp that end up having to opt out with SECCOMP_FILTER_FLAG_SPEC_ALLOW.")),(0,i.kt)("p",null,"To disable the mitigations edit ",(0,i.kt)("inlineCode",{parentName:"p"},"/etc/default/grub")," and add\n",(0,i.kt)("inlineCode",{parentName:"p"},"spec_store_bypass_disable=prctl spectre_v2_user=prctl")," to ",(0,i.kt)("inlineCode",{parentName:"p"},"GRUB_CMDLINE_LINUX_DEFAULT")," variable,\nrun ",(0,i.kt)("inlineCode",{parentName:"p"},"sudo update-grub"),", then reboot."),(0,i.kt)("p",null,"Note that mitigations are not disabled completely. You can fully disable all the available kernel\nmitigations by setting ",(0,i.kt)("inlineCode",{parentName:"p"},"mitigations=off"),". But we don't recommend doing this unless you run a fully\ntrusted code on the host."),(0,i.kt)("h3",{id:"vps-list"},"VPS List"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://cloud.google.com/"},"Google Cloud")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://aws.amazon.com/"},"Amazon AWS")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://www.ovh.com.au/"},"OVH")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://www.digitalocean.com/"},"Digital Ocean")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://www.vultr.com/"},"Vultr")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://www.linode.com/"},"Linode")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://www.scaleway.com/"},"Scaleway")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://onfinality.io/"},"OnFinality"))),(0,i.kt)("admonition",{type:"caution"},(0,i.kt)("mdxAdmonitionTitle",{parentName:"admonition"},"Beware of the ",(0,i.kt)("strong",{parentName:"mdxAdmonitionTitle"},"Terms and Conditions")," and ",(0,i.kt)("strong",{parentName:"mdxAdmonitionTitle"},"Acceptable Use Policies")," for each VPS"),(0,i.kt)("p",{parentName:"admonition"},"provider"),(0,i.kt)("p",{parentName:"admonition"},'You may be locked out of your account and your server shut down if you come in violation. For\ninstance, Digital Ocean lists "Mining of Cryptocurrencies" under the Network Abuse section of their\n',(0,i.kt)("a",{parentName:"p",href:"https://www.digitalocean.com/legal/acceptable-use-policy/"},"Acceptable Use Policy")," and requires\nexplicit permission to do so. This may extend to other cryptocurrency activity.")))}k.isMDXComponent=!0},90412:(e,t,a)=>{"use strict";a.d(t,{Z:()=>n});const n=a.p+"assets/images/JS-UI-bond-7bdecad8831f3c1b20d96e426e7e47c1.png"},93002:(e,t,a)=>{"use strict";a.d(t,{Z:()=>n});const n=a.p+"assets/images/JS-UI-sign-transaction-75b2e29fcaecc44c5eb1c4f5e3e364ae.png"},46513:(e,t,a)=>{"use strict";a.d(t,{Z:()=>n});const n=a.p+"assets/images/polkadot-dashboard-staking-4005504ef30291ebe1a243298c351a34.png"},67929:(e,t,a)=>{"use strict";a.d(t,{Z:()=>n});const n=a.p+"assets/images/polkadot-dashboard-telemetry-8930bdd60309c864ed682a1bdd4b1e31.png"},63670:(e,t,a)=>{"use strict";a.d(t,{Z:()=>n});const n=a.p+"assets/images/polkadot-dashboard-validate-1-4bf6a6488b4e128d12cab2617025d796.png"},44281:(e,t,a)=>{"use strict";a.d(t,{Z:()=>n});const n=a.p+"assets/images/polkadot-dashboard-validate-2-18a8869804f89ffebafa1b920e31ccd6.png"},54061:(e,t,a)=>{"use strict";a.d(t,{Z:()=>n});const n=a.p+"assets/images/polkadot-explorer-rotatekeys-rpc-6d5ba5d9ffb20fd9683432e9a6ccd0f9.jpg"},29009:(e,t,a)=>{"use strict";a.d(t,{Z:()=>n});const n=a.p+"assets/images/polkadot-zero-peer-2642d52b7e07893a66a0ddfd492cce38.jpg"},72316:(e,t,a)=>{"use strict";a.d(t,{Z:()=>n});const n=a.p+"assets/images/set-session-key-1-b0cdb38a299d6ef6bcc24c6ab2bce66d.png"},12883:(e,t,a)=>{"use strict";a.d(t,{Z:()=>n});const n=a.p+"assets/images/set-session-key-2-408efe22daa8d6533715987a1099828a.png"},46601:()=>{}}]); \ No newline at end of file diff --git a/assets/js/c91a9c06.68bbd3df.js b/assets/js/c91a9c06.68bbd3df.js new file mode 100644 index 0000000000..6394afa25c --- /dev/null +++ b/assets/js/c91a9c06.68bbd3df.js @@ -0,0 +1 @@ +(self.webpackChunk=self.webpackChunk||[]).push([[8355],{47940:(e,t,n)=>{"use strict";n.d(t,{Z:()=>p});var a=n(74165),r=n(15861),i=n(67294),s=n(87152),o=n(9712),l=n(67425);function u(e,t,n){return d.apply(this,arguments)}function d(){return(d=(0,r.Z)((0,a.Z)().mark((function e(t,n,r){var i,l,u,d,c;return(0,a.Z)().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:i=void 0,l=void 0,e.t0=t,e.next="polkadot"===e.t0?5:"kusama"===e.t0?7:"statemine"===e.t0?9:"statemint"===e.t0?11:13;break;case 5:return i="wss://rpc.polkadot.io",e.abrupt("break",14);case 7:return i="wss://kusama-rpc.polkadot.io/",e.abrupt("break",14);case 9:return i="wss://statemine-rpc.polkadot.io/",e.abrupt("break",14);case 11:return i="wss://statemint-rpc.polkadot.io/",e.abrupt("break",14);case 13:console.log("Unknown socket url provided, no connection made.");case 14:if(void 0!==i){e.next=18;break}return e.abrupt("return");case 18:return u=new s.U(i),e.next=21,o.G.create({provider:u});case 21:d=e.sent,(c=n.split(".")).forEach((function(e){e in d&&(d=d[e])})),e.t1=c[0],e.next="consts"===e.t1?27:"query"===e.t1?29:34;break;case 27:return l=d.toString(),e.abrupt("break",35);case 29:return e.next=31,d();case 31:return l=(l=e.sent).toString(),e.abrupt("break",35);case 34:console.log("Unknown path prefix ("+c[0]+") in "+n);case 35:return e.abrupt("return",l);case 36:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function c(e,t,n,a){switch(t){case"humanReadable":(0,l.HumanReadable)(e,n,a);break;case"precise":(0,l.Precise)(e,n,a);break;case"blocksToDays":(0,l.BlocksToDays)(e,a);break;case"erasToDays":(0,l.ErasToDays)(e,a,n);break;case"percentage":(0,l.Percentage)(e,a);break;case"permillToPercent":(0,l.PermillToPercent)(e,a);break;case"arrayLength":(0,l.ArrayLength)(e,a);break;default:return void console.log("Ignoring unknown filter type")}}const p=function(e){var t=e.network,n=e.path,s=e.defaultValue,o=e.filter,l=void 0===o?void 0:o,d=(0,i.useState)(""),p=d[0],m=d[1];return t=t.toLowerCase(),(0,i.useEffect)((function(){void 0!==l?c(s.toString(),l,t,m):m(s.toString());var e=void 0;switch(t){case"polkadot":e="wss://rpc.polkadot.io";break;case"kusama":e="wss://kusama-rpc.polkadot.io/";break;case"statemine":e="wss://kusama-asset-hub-rpc.polkadot.io/";break;case"statemint":e="wss://polkadot-asset-hub-rpc.polkadot.io/";break;default:console.log("Unknown network provided, "+t)}if(void 0===e)console.log("Failed to connect to a valid websocket, applying default");else{var i=function(){var e=(0,r.Z)((0,a.Z)().mark((function e(){var r;return(0,a.Z)().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,u(t,n,m);case 2:if(void 0!==(r=e.sent)){e.next=7;break}return e.abrupt("return");case 7:void 0!==l?c(r,l,t,m):m(r);case 8:case"end":return e.stop()}}),e)})));return function(){return e.apply(this,arguments)}}();try{i()}catch(o){console.log(o)}}}),[]),p}},67425:e=>{var t="polkadot",n="kusama",a="statemine",r="statemint",i={polkadot:{precision:1e10,symbol:"DOT"},kusama:{precision:1e12,symbol:"KSM"},statemint:{precision:1e10,symbol:"DOT"},statemine:{precision:1e12,symbol:"KSM"}};e.exports={HumanReadable:function(e,s,o){var l=void 0;if(s===t||s===r)l=3;else{if(s!==n&&s!==a)return void console.log("Unknown network type found when attempting to apply 'Human Readable' filter");l=6}e=parseFloat(e),o((e=Number.isInteger(e/i[s].precision)?e/i[s].precision+" "+i[s].symbol:(e/i[s].precision).toFixed(l)+" "+i[s].symbol).toString())},Precise:function(e,t,n){n(e=(e=parseFloat(e))/i[t].precision+" "+i[t].symbol)},BlocksToDays:function(e,t){t((e=6*e/86400).toString())},ErasToDays:function(e,i,s){var o=void 0;if(s===t||s===r)o=1;else{if(s!==n&&s!==a)return void console.log("Unknown network type found when attempting to apply 'Human Readable' filter");o=4}i((e/=o).toString())},Percentage:function(e,t){t((e/=1e7).toString())},PermillToPercent:function(e,t){t((e/=1e4).toString())},ArrayLength:function(e,t){t((e=e.split(",").length).toString())}}},48693:(e,t,n)=>{"use strict";n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>u,default:()=>g,frontMatter:()=>l,metadata:()=>d,toc:()=>p});var a=n(87462),r=n(63366),i=(n(67294),n(3905)),s=n(47940),o=["components"],l={id:"learn-identity",title:"Account Identity",sidebar_label:"Account Identity",description:"On-chain Identity, Judgements and Registrars.",keywords:["identity","registrars","judgements"],slug:"../learn-identity"},u=void 0,d={unversionedId:"learn/learn-identity",id:"learn/learn-identity",title:"Account Identity",description:"On-chain Identity, Judgements and Registrars.",source:"@site/../docs/learn/learn-identity.md",sourceDirName:"learn",slug:"/learn-identity",permalink:"/docs/learn-identity",draft:!1,tags:[],version:"current",lastUpdatedBy:"Radha",lastUpdatedAt:1716455408,formattedLastUpdatedAt:"May 23, 2024",frontMatter:{id:"learn-identity",title:"Account Identity",sidebar_label:"Account Identity",description:"On-chain Identity, Judgements and Registrars.",keywords:["identity","registrars","judgements"],slug:"../learn-identity"},sidebar:"docs",previous:{title:"Account Abstraction",permalink:"/docs/learn-account-abstraction"},next:{title:"Multi-Signature Accounts",permalink:"/docs/learn-account-multisig"}},c={},p=[{value:"Judgements",id:"judgements",level:2},{value:"Registrars",id:"registrars",level:2},{value:"Sub-Identities",id:"sub-identities",level:2}],m={toc:p},k="wrapper";function g(e){var t=e.components,n=(0,r.Z)(e,o);return(0,i.kt)(k,(0,a.Z)({},m,n,{components:t,mdxType:"MDXLayout"}),(0,i.kt)("p",null,"Kusama provides a naming system that allows\nparticipants to add personal information to their on-chain account and subsequently ask for\nverification of this information by ",(0,i.kt)("a",{parentName:"p",href:"#registrars"},"registrars"),"."),(0,i.kt)("p",null,"Users must reserve funds in a bond to store their information on chain:\n","\n",(0,i.kt)(s.Z,{network:"kusama",path:"consts.identity.basicDeposit",defaultValue:33333e6,filter:"humanReadable",mdxType:"RPC"}),"\nand\n","\n",(0,i.kt)(s.Z,{network:"kusama",path:"consts.identity.fieldDeposit",defaultValue:8333e6,filter:"humanReadable",mdxType:"RPC"}),"\nper each field beyond the legal name. These funds are ",(0,i.kt)("em",{parentName:"p"},"locked"),", not spent - they are returned when\nthe identity is cleared."),(0,i.kt)("h2",{id:"judgements"},"Judgements"),(0,i.kt)("p",null,"After a user injects their information on chain, they can request judgement from a registrar. Users\ndeclare a maximum fee that they are willing to pay for judgement, and registrars whose fee is below\nthat amount can provide a judgement."),(0,i.kt)("p",null,"When a registrar provides judgement, they can select up to six levels of confidence in their\nattestation:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Unknown: The default value, no judgement made yet."),(0,i.kt)("li",{parentName:"ul"},"Reasonable: The data appears reasonable, but no in-depth checks (e.g. formal KYC process) were\nperformed (all the currently verified identities on-chain)."),(0,i.kt)("li",{parentName:"ul"},"Known Good: The registrar has certified that the information is correct (this step involves\nverification of state issued identity documents, and at the moment no account has known good\nidentity, with the exception of registrars)."),(0,i.kt)("li",{parentName:"ul"},"Out of Date: The information used to be good, but is now out of date."),(0,i.kt)("li",{parentName:"ul"},"Low Quality: The information is low quality or imprecise, but can be fixed with an update."),(0,i.kt)("li",{parentName:"ul"},"Erroneous: The information is erroneous and may indicate malicious intent.")),(0,i.kt)("p",null,'A seventh state, "fee paid", is for when a user has requested judgement and it is in progress.\nInformation that is in this state or "erroneous" is "sticky" and cannot be modified; it can only be\nremoved by the complete removal of the identity.'),(0,i.kt)("p",null,"Registrars gain trust by performing proper due diligence and would presumably be replaced for\nissuing faulty judgments."),(0,i.kt)("h2",{id:"registrars"},"Registrars"),(0,i.kt)("p",null,"Registrars can set a fee for their services and limit their attestation to certain fields. For\nexample, a registrar could charge 0.1 KSM to\nverify one's legal name, email, and GPG key. When a user requests judgement, they will pay this fee\nto the registrar who provides the judgement on those claims. Users set a maximum fee they are\nwilling to pay and only registrars below this amount would provide judgement."),(0,i.kt)("p",null,"There are multiple registrars on Kusama.\nUnless no additional information is available here, you must reach out to specific registrars\nindividually if you want to be judged by those."),(0,i.kt)("admonition",{title:"Registrar 0 decommissioned on April 1st, 2024",type:"info"},(0,i.kt)("p",{parentName:"admonition"},"From the 1st of April 2024 onwards, Registrar 0 will still exist on-chain but will not accept any\nnew judgment requests. The registrar fee is set to a substantial amount to dissuade identity\njudgement requests. Identities judged by the registrar before that date will not be affected. For\nnew identity judgment, please use the other registrars.")),(0,i.kt)("p",null,(0,i.kt)("del",{parentName:"p"},"Registrar 0")," : ",(0,i.kt)("br",null)," ",(0,i.kt)("strong",{parentName:"p"},"URL"),": NA ",(0,i.kt)("br",null)," ",(0,i.kt)("strong",{parentName:"p"},"Account"),":\n","\n",(0,i.kt)("del",{parentName:"p"},"H4XieK3r3dq3VEvRtqZR7wN7a1UEkXxf14orRsEfdFjmgkF")," ",(0,i.kt)("br",null)," ",(0,i.kt)("strong",{parentName:"p"},"Fee"),":\n"," ",(0,i.kt)("del",{parentName:"p"},"0.04 KSM")," ",(0,i.kt)("br",null)),(0,i.kt)("p",null,"Registrar 1: ",(0,i.kt)("br",null)," ",(0,i.kt)("strong",{parentName:"p"},"URL"),": ",(0,i.kt)("a",{parentName:"p",href:"https://registrar.d11d.net/"},"https://registrar.d11d.net/")," ",(0,i.kt)("br",null)," ",(0,i.kt)("strong",{parentName:"p"},"Account"),":\n\nFom9M5W6Kck1hNAiE2mDcZ67auUCiNTzLBUdQy4QnxHSxdn ",(0,i.kt)("br",null)," ",(0,i.kt)("strong",{parentName:"p"},"Fee"),":\n4.5 KSM ",(0,i.kt)("br",null)),(0,i.kt)("p",null,"Registrar 2: ",(0,i.kt)("br",null)," ",(0,i.kt)("strong",{parentName:"p"},"Account"),":\n\nEK8veMNH6sVtvhSRo4q1ZRh6huCDm69gxK4eN5MFoZzo3G7 ",(0,i.kt)("br",null)," ",(0,i.kt)("strong",{parentName:"p"},"Fee"),":\n1 KSM ",(0,i.kt)("br",null)),(0,i.kt)("p",null,"Registrar 3: ",(0,i.kt)("br",null)," ",(0,i.kt)("strong",{parentName:"p"},"Account"),":\n\nGLiebiQp5f6G5vNcc7BgRE9T3hrZSYDwP6evERn3hEczdaM ",(0,i.kt)("br",null)," ",(0,i.kt)("strong",{parentName:"p"},"Fee"),":\n1 KSM ",(0,i.kt)("br",null)),(0,i.kt)("p",null,"Registrar 4: ",(0,i.kt)("br",null)," ",(0,i.kt)("strong",{parentName:"p"},"Account"),": GhmpzxUyTVsFJhV7s2wNvD8v3Bgikb6WvYjj4QSuSScAUw6 ",(0,i.kt)("br",null)," ",(0,i.kt)("strong",{parentName:"p"},"Fee"),": 0.04 KSM ",(0,i.kt)("br",null),""),(0,i.kt)("p",null,"Registrar 5: ",(0,i.kt)("br",null)," ",(0,i.kt)("strong",{parentName:"p"},"Account"),": F1wAMxpzvjWCpsnbUMamgKfqFM7LRvNdkcQ44STkeVbemEZ ",(0,i.kt)("br",null)," ",(0,i.kt)("strong",{parentName:"p"},"Fee"),": 0.04 KSM ",(0,i.kt)("br",null),""),(0,i.kt)("p",null,"","\nPolkassembly (Registrar 5) provides setting on-chain ID as a service on their ",(0,i.kt)("a",{parentName:"p",href:"https://kusama.polkassembly.io/"},"website"),"."),(0,i.kt)("p",null,"See ",(0,i.kt)("a",{parentName:"p",href:"/docs/learn-guides-identity#registrars"},"this page")," to learn how to become a Registrar."),(0,i.kt)("h2",{id:"sub-identities"},"Sub-Identities"),(0,i.kt)("p",null,'Users can also link accounts by setting "sub accounts", each with its own identity, under a primary\naccount. The system reserves a bond for each sub account. An example of how you might use this would\nbe a validation company running multiple validators. A single entity, "My Staking Company", could\nregister multiple sub accounts that represent the ',(0,i.kt)("a",{parentName:"p",href:"/docs/learn-cryptography"},"Stash accounts")," of each of\ntheir validators."),(0,i.kt)("p",null,"An account can have a maximum of 100 sub-accounts. Note that a deposit of\n","\n",(0,i.kt)(s.Z,{network:"kusama",path:"consts.identity.subAccountDeposit",defaultValue:6666e6,filter:"humanReadable",mdxType:"RPC"}),"\nis required for every sub-account."),(0,i.kt)("hr",null),(0,i.kt)("admonition",{title:"Polkadot-JS Guides",type:"info"},(0,i.kt)("p",{parentName:"admonition"},"If you are an advanced user, see the\n",(0,i.kt)("a",{parentName:"p",href:"/docs/learn-guides-identity"},"Polkadot-JS guides about account identity"),".")))}g.isMDXComponent=!0},46601:()=>{}}]); \ No newline at end of file diff --git a/assets/js/c91a9c06.e06e91b1.js b/assets/js/c91a9c06.e06e91b1.js deleted file mode 100644 index 144dded9d9..0000000000 --- a/assets/js/c91a9c06.e06e91b1.js +++ /dev/null @@ -1 +0,0 @@ -(self.webpackChunk=self.webpackChunk||[]).push([[8355],{47940:(e,t,n)=>{"use strict";n.d(t,{Z:()=>p});var a=n(74165),r=n(15861),i=n(67294),s=n(87152),o=n(9712),l=n(67425);function u(e,t,n){return d.apply(this,arguments)}function d(){return(d=(0,r.Z)((0,a.Z)().mark((function e(t,n,r){var i,l,u,d,c;return(0,a.Z)().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:i=void 0,l=void 0,e.t0=t,e.next="polkadot"===e.t0?5:"kusama"===e.t0?7:"statemine"===e.t0?9:"statemint"===e.t0?11:13;break;case 5:return i="wss://rpc.polkadot.io",e.abrupt("break",14);case 7:return i="wss://kusama-rpc.polkadot.io/",e.abrupt("break",14);case 9:return i="wss://statemine-rpc.polkadot.io/",e.abrupt("break",14);case 11:return i="wss://statemint-rpc.polkadot.io/",e.abrupt("break",14);case 13:console.log("Unknown socket url provided, no connection made.");case 14:if(void 0!==i){e.next=18;break}return e.abrupt("return");case 18:return u=new s.U(i),e.next=21,o.G.create({provider:u});case 21:d=e.sent,(c=n.split(".")).forEach((function(e){e in d&&(d=d[e])})),e.t1=c[0],e.next="consts"===e.t1?27:"query"===e.t1?29:34;break;case 27:return l=d.toString(),e.abrupt("break",35);case 29:return e.next=31,d();case 31:return l=(l=e.sent).toString(),e.abrupt("break",35);case 34:console.log("Unknown path prefix ("+c[0]+") in "+n);case 35:return e.abrupt("return",l);case 36:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function c(e,t,n,a){switch(t){case"humanReadable":(0,l.HumanReadable)(e,n,a);break;case"precise":(0,l.Precise)(e,n,a);break;case"blocksToDays":(0,l.BlocksToDays)(e,a);break;case"erasToDays":(0,l.ErasToDays)(e,a,n);break;case"percentage":(0,l.Percentage)(e,a);break;case"permillToPercent":(0,l.PermillToPercent)(e,a);break;case"arrayLength":(0,l.ArrayLength)(e,a);break;default:return void console.log("Ignoring unknown filter type")}}const p=function(e){var t=e.network,n=e.path,s=e.defaultValue,o=e.filter,l=void 0===o?void 0:o,d=(0,i.useState)(""),p=d[0],m=d[1];return t=t.toLowerCase(),(0,i.useEffect)((function(){void 0!==l?c(s.toString(),l,t,m):m(s.toString());var e=void 0;switch(t){case"polkadot":e="wss://rpc.polkadot.io";break;case"kusama":e="wss://kusama-rpc.polkadot.io/";break;case"statemine":e="wss://kusama-asset-hub-rpc.polkadot.io/";break;case"statemint":e="wss://polkadot-asset-hub-rpc.polkadot.io/";break;default:console.log("Unknown network provided, "+t)}if(void 0===e)console.log("Failed to connect to a valid websocket, applying default");else{var i=function(){var e=(0,r.Z)((0,a.Z)().mark((function e(){var r;return(0,a.Z)().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,u(t,n,m);case 2:if(void 0!==(r=e.sent)){e.next=7;break}return e.abrupt("return");case 7:void 0!==l?c(r,l,t,m):m(r);case 8:case"end":return e.stop()}}),e)})));return function(){return e.apply(this,arguments)}}();try{i()}catch(o){console.log(o)}}}),[]),p}},67425:e=>{var t="polkadot",n="kusama",a="statemine",r="statemint",i={polkadot:{precision:1e10,symbol:"DOT"},kusama:{precision:1e12,symbol:"KSM"},statemint:{precision:1e10,symbol:"DOT"},statemine:{precision:1e12,symbol:"KSM"}};e.exports={HumanReadable:function(e,s,o){var l=void 0;if(s===t||s===r)l=3;else{if(s!==n&&s!==a)return void console.log("Unknown network type found when attempting to apply 'Human Readable' filter");l=6}e=parseFloat(e),o((e=Number.isInteger(e/i[s].precision)?e/i[s].precision+" "+i[s].symbol:(e/i[s].precision).toFixed(l)+" "+i[s].symbol).toString())},Precise:function(e,t,n){n(e=(e=parseFloat(e))/i[t].precision+" "+i[t].symbol)},BlocksToDays:function(e,t){t((e=6*e/86400).toString())},ErasToDays:function(e,i,s){var o=void 0;if(s===t||s===r)o=1;else{if(s!==n&&s!==a)return void console.log("Unknown network type found when attempting to apply 'Human Readable' filter");o=4}i((e/=o).toString())},Percentage:function(e,t){t((e/=1e7).toString())},PermillToPercent:function(e,t){t((e/=1e4).toString())},ArrayLength:function(e,t){t((e=e.split(",").length).toString())}}},48693:(e,t,n)=>{"use strict";n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>u,default:()=>g,frontMatter:()=>l,metadata:()=>d,toc:()=>p});var a=n(87462),r=n(63366),i=(n(67294),n(3905)),s=n(47940),o=["components"],l={id:"learn-identity",title:"Account Identity",sidebar_label:"Account Identity",description:"On-chain Identity, Judgements and Registrars.",keywords:["identity","registrars","judgements"],slug:"../learn-identity"},u=void 0,d={unversionedId:"learn/learn-identity",id:"learn/learn-identity",title:"Account Identity",description:"On-chain Identity, Judgements and Registrars.",source:"@site/../docs/learn/learn-identity.md",sourceDirName:"learn",slug:"/learn-identity",permalink:"/docs/learn-identity",draft:!1,tags:[],version:"current",lastUpdatedBy:"github-actions[bot]",lastUpdatedAt:1712558849,formattedLastUpdatedAt:"Apr 8, 2024",frontMatter:{id:"learn-identity",title:"Account Identity",sidebar_label:"Account Identity",description:"On-chain Identity, Judgements and Registrars.",keywords:["identity","registrars","judgements"],slug:"../learn-identity"},sidebar:"docs",previous:{title:"Account Abstraction",permalink:"/docs/learn-account-abstraction"},next:{title:"Multi-Signature Accounts",permalink:"/docs/learn-account-multisig"}},c={},p=[{value:"Judgements",id:"judgements",level:2},{value:"Registrars",id:"registrars",level:2},{value:"Sub-Identities",id:"sub-identities",level:2}],m={toc:p},k="wrapper";function g(e){var t=e.components,n=(0,r.Z)(e,o);return(0,i.kt)(k,(0,a.Z)({},m,n,{components:t,mdxType:"MDXLayout"}),(0,i.kt)("p",null,"Kusama provides a naming system that allows\nparticipants to add personal information to their on-chain account and subsequently ask for\nverification of this information by ",(0,i.kt)("a",{parentName:"p",href:"#registrars"},"registrars"),"."),(0,i.kt)("p",null,"Users must reserve funds in a bond to store their information on chain:\n","\n",(0,i.kt)(s.Z,{network:"kusama",path:"consts.identity.basicDeposit",defaultValue:33333e6,filter:"humanReadable",mdxType:"RPC"}),"\nand\n","\n",(0,i.kt)(s.Z,{network:"kusama",path:"consts.identity.fieldDeposit",defaultValue:8333e6,filter:"humanReadable",mdxType:"RPC"}),"\nper each field beyond the legal name. These funds are ",(0,i.kt)("em",{parentName:"p"},"locked"),", not spent - they are returned when\nthe identity is cleared."),(0,i.kt)("h2",{id:"judgements"},"Judgements"),(0,i.kt)("p",null,"After a user injects their information on chain, they can request judgement from a registrar. Users\ndeclare a maximum fee that they are willing to pay for judgement, and registrars whose fee is below\nthat amount can provide a judgement."),(0,i.kt)("p",null,"When a registrar provides judgement, they can select up to six levels of confidence in their\nattestation:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Unknown: The default value, no judgement made yet."),(0,i.kt)("li",{parentName:"ul"},"Reasonable: The data appears reasonable, but no in-depth checks (e.g. formal KYC process) were\nperformed (all the currently verified identities on-chain)."),(0,i.kt)("li",{parentName:"ul"},"Known Good: The registrar has certified that the information is correct (this step involves\nverification of state issued identity documents, and at the moment no account has known good\nidentity, with the exception of registrars)."),(0,i.kt)("li",{parentName:"ul"},"Out of Date: The information used to be good, but is now out of date."),(0,i.kt)("li",{parentName:"ul"},"Low Quality: The information is low quality or imprecise, but can be fixed with an update."),(0,i.kt)("li",{parentName:"ul"},"Erroneous: The information is erroneous and may indicate malicious intent.")),(0,i.kt)("p",null,'A seventh state, "fee paid", is for when a user has requested judgement and it is in progress.\nInformation that is in this state or "erroneous" is "sticky" and cannot be modified; it can only be\nremoved by the complete removal of the identity.'),(0,i.kt)("p",null,"Registrars gain trust by performing proper due diligence and would presumably be replaced for\nissuing faulty judgments."),(0,i.kt)("h2",{id:"registrars"},"Registrars"),(0,i.kt)("p",null,"Registrars can set a fee for their services and limit their attestation to certain fields. For\nexample, a registrar could charge 0.1 KSM to\nverify one's legal name, email, and GPG key. When a user requests judgement, they will pay this fee\nto the registrar who provides the judgement on those claims. Users set a maximum fee they are\nwilling to pay and only registrars below this amount would provide judgement."),(0,i.kt)("p",null,"There are multiple registrars on Kusama.\nUnless no additional information is available here, you must reach out to specific registrars\nindividually if you want to be judged by those."),(0,i.kt)("admonition",{title:"Registrar 0 decommissioned on April 1st, 2024",type:"info"},(0,i.kt)("p",{parentName:"admonition"},"From the 1st of April 2024 onwards, Registrar 0 will still exist on-chain but will not accept any\nnew judgment requests. The registrar fee is set to a substantial amount to dissuade identity\njudgement requests. Identities judged by the registrar before that date will not be affected. For\nnew identity judgment, please use the other registrars.")),(0,i.kt)("p",null,(0,i.kt)("del",{parentName:"p"},"Registrar 0")," : ",(0,i.kt)("br",null)," ",(0,i.kt)("strong",{parentName:"p"},"URL"),": NA ",(0,i.kt)("br",null)," ",(0,i.kt)("strong",{parentName:"p"},"Account"),":\n","\n",(0,i.kt)("del",{parentName:"p"},"H4XieK3r3dq3VEvRtqZR7wN7a1UEkXxf14orRsEfdFjmgkF")," ",(0,i.kt)("br",null)," ",(0,i.kt)("strong",{parentName:"p"},"Fee"),":\n"," ",(0,i.kt)("del",{parentName:"p"},"0.04 KSM")," ",(0,i.kt)("br",null)),(0,i.kt)("p",null,"Registrar 1: ",(0,i.kt)("br",null)," ",(0,i.kt)("strong",{parentName:"p"},"URL"),": ",(0,i.kt)("a",{parentName:"p",href:"https://registrar.d11d.net/"},"https://registrar.d11d.net/")," ",(0,i.kt)("br",null)," ",(0,i.kt)("strong",{parentName:"p"},"Account"),":\n\nFom9M5W6Kck1hNAiE2mDcZ67auUCiNTzLBUdQy4QnxHSxdn ",(0,i.kt)("br",null)," ",(0,i.kt)("strong",{parentName:"p"},"Fee"),":\n4.5 KSM ",(0,i.kt)("br",null)),(0,i.kt)("p",null,"Registrar 2: ",(0,i.kt)("br",null)," ",(0,i.kt)("strong",{parentName:"p"},"Account"),":\n\nEK8veMNH6sVtvhSRo4q1ZRh6huCDm69gxK4eN5MFoZzo3G7 ",(0,i.kt)("br",null)," ",(0,i.kt)("strong",{parentName:"p"},"Fee"),":\n1 KSM ",(0,i.kt)("br",null)),(0,i.kt)("p",null,"Registrar 3: ",(0,i.kt)("br",null)," ",(0,i.kt)("strong",{parentName:"p"},"Account"),":\n\nGLiebiQp5f6G5vNcc7BgRE9T3hrZSYDwP6evERn3hEczdaM ",(0,i.kt)("br",null)," ",(0,i.kt)("strong",{parentName:"p"},"Fee"),":\n1 KSM ",(0,i.kt)("br",null)),(0,i.kt)("p",null,"Registrar 4: ",(0,i.kt)("br",null)," ",(0,i.kt)("strong",{parentName:"p"},"Account"),": GhmpzxUyTVsFJhV7s2wNvD8v3Bgikb6WvYjj4QSuSScAUw6 ",(0,i.kt)("br",null)," ",(0,i.kt)("strong",{parentName:"p"},"Fee"),": 0.04 KSM ",(0,i.kt)("br",null),""),(0,i.kt)("p",null,"Registrar 5: ",(0,i.kt)("br",null)," ",(0,i.kt)("strong",{parentName:"p"},"Account"),": F1wAMxpzvjWCpsnbUMamgKfqFM7LRvNdkcQ44STkeVbemEZ ",(0,i.kt)("br",null)," ",(0,i.kt)("strong",{parentName:"p"},"Fee"),": 0 KSM ",(0,i.kt)("br",null),""),(0,i.kt)("p",null,"","\nPolkassembly (Registrar 5) provides setting on-chain ID as a service on their ",(0,i.kt)("a",{parentName:"p",href:"https://kusama.polkassembly.io/"},"website"),"."),(0,i.kt)("p",null,"See ",(0,i.kt)("a",{parentName:"p",href:"/docs/learn-guides-identity#registrars"},"this page")," to learn how to become a Registrar."),(0,i.kt)("h2",{id:"sub-identities"},"Sub-Identities"),(0,i.kt)("p",null,'Users can also link accounts by setting "sub accounts", each with its own identity, under a primary\naccount. The system reserves a bond for each sub account. An example of how you might use this would\nbe a validation company running multiple validators. A single entity, "My Staking Company", could\nregister multiple sub accounts that represent the ',(0,i.kt)("a",{parentName:"p",href:"/docs/learn-cryptography"},"Stash accounts")," of each of\ntheir validators."),(0,i.kt)("p",null,"An account can have a maximum of 100 sub-accounts. Note that a deposit of\n","\n",(0,i.kt)(s.Z,{network:"kusama",path:"consts.identity.subAccountDeposit",defaultValue:6666e6,filter:"humanReadable",mdxType:"RPC"}),"\nis required for every sub-account."),(0,i.kt)("hr",null),(0,i.kt)("admonition",{title:"Polkadot-JS Guides",type:"info"},(0,i.kt)("p",{parentName:"admonition"},"If you are an advanced user, see the\n",(0,i.kt)("a",{parentName:"p",href:"/docs/learn-guides-identity"},"Polkadot-JS guides about account identity"),".")))}g.isMDXComponent=!0},46601:()=>{}}]); \ No newline at end of file diff --git a/assets/js/ccc1222e.7635c335.js b/assets/js/ccc1222e.7635c335.js deleted file mode 100644 index 61e8031abf..0000000000 --- a/assets/js/ccc1222e.7635c335.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[6920],{3905:(t,a,e)=>{e.d(a,{Zo:()=>m,kt:()=>k});var r=e(67294);function n(t,a,e){return a in t?Object.defineProperty(t,a,{value:e,enumerable:!0,configurable:!0,writable:!0}):t[a]=e,t}function o(t,a){var e=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);a&&(r=r.filter((function(a){return Object.getOwnPropertyDescriptor(t,a).enumerable}))),e.push.apply(e,r)}return e}function i(t){for(var a=1;a=0||(n[e]=t[e]);return n}(t,a);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(t);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(t,e)&&(n[e]=t[e])}return n}var l=r.createContext({}),h=function(t){var a=r.useContext(l),e=a;return t&&(e="function"==typeof t?t(a):i(i({},a),t)),e},m=function(t){var a=h(t.components);return r.createElement(l.Provider,{value:a},t.children)},s="mdxType",d={inlineCode:"code",wrapper:function(t){var a=t.children;return r.createElement(r.Fragment,{},a)}},u=r.forwardRef((function(t,a){var e=t.components,n=t.mdxType,o=t.originalType,l=t.parentName,m=p(t,["components","mdxType","originalType","parentName"]),s=h(e),u=n,k=s["".concat(l,".").concat(u)]||s[u]||d[u]||o;return e?r.createElement(k,i(i({ref:a},m),{},{components:e})):r.createElement(k,i({ref:a},m))}));function k(t,a){var e=arguments,n=a&&a.mdxType;if("string"==typeof t||n){var o=e.length,i=new Array(o);i[0]=u;var p={};for(var l in a)hasOwnProperty.call(a,l)&&(p[l]=a[l]);p.originalType=t,p[s]="string"==typeof t?t:n,i[1]=p;for(var h=2;h{e.r(a),e.d(a,{assets:()=>m,contentTitle:()=>l,default:()=>k,frontMatter:()=>p,metadata:()=>h,toc:()=>s});var r=e(87462),n=e(63366),o=(e(67294),e(3905)),i=["components"],p={id:"build-open-source",title:"Open Source Stack",sidebar_label:"Open Source Stack",description:"Overview of the open source Polkadot/Kusama Tech Stack",keywords:["open","source","development","code","resources","tools","apis"],slug:"../build-open-source"},l="Open Source Polkadot Stack \x3c!-- omit in toc --\x3e",h={unversionedId:"build/build-open-source",id:"build/build-open-source",title:"Open Source Stack",description:"Overview of the open source Polkadot/Kusama Tech Stack",source:"@site/../docs/build/build-open-source.md",sourceDirName:"build",slug:"/build-open-source",permalink:"/docs/build-open-source",draft:!1,tags:[],version:"current",lastUpdatedBy:"github-actions[bot]",lastUpdatedAt:1716182759,formattedLastUpdatedAt:"May 20, 2024",frontMatter:{id:"build-open-source",title:"Open Source Stack",sidebar_label:"Open Source Stack",description:"Overview of the open source Polkadot/Kusama Tech Stack",keywords:["open","source","development","code","resources","tools","apis"],slug:"../build-open-source"},sidebar:"docs",previous:{title:"Explorer, Data, & Indexing Tools",permalink:"/docs/build-data"},next:{title:"Hackathons",permalink:"/docs/build-hackathon"}},m={},s=[{value:"About",id:"about",level:2},{value:"Layers of Polkadot Stack",id:"layers-of-polkadot-stack",level:2},{value:"Wallets",id:"wallets",level:3},{value:"User Interface",id:"user-interface",level:3},{value:"Tools, APIs, and Languages",id:"tools-apis-and-languages",level:3},{value:"ink! Smart Contracts",id:"ink-smart-contracts",level:3},{value:"Chains and Pallets",id:"chains-and-pallets",level:3},{value:"Host",id:"host",level:3},{value:"Network Maintenance Tools",id:"network-maintenance-tools",level:3},{value:"Signatures",id:"signatures",level:3},{value:"Consensus",id:"consensus",level:3},{value:"Networking",id:"networking",level:3},{value:"Primitives",id:"primitives",level:3},{value:"Contributing",id:"contributing",level:2}],d={toc:s},u="wrapper";function k(t){var a=t.components,e=(0,n.Z)(t,i);return(0,o.kt)(u,(0,r.Z)({},d,e,{components:a,mdxType:"MDXLayout"}),(0,o.kt)("h1",{id:"open-source-polkadot-stack--omit-in-toc-"},"Open Source Polkadot Stack "),(0,o.kt)("admonition",{title:"Do your research before using open-source tools",type:"caution"},(0,o.kt)("p",{parentName:"admonition"},"The tools listed here are open-source and are linked directly to their source code. Before using these tools to build your projects, always ",(0,o.kt)("a",{parentName:"p",href:"/docs/how-to-dyor"},"do your research")," and be aware of ",(0,o.kt)("a",{parentName:"p",href:"/docs/learn-scams"},"scams"),".")),(0,o.kt)("p",null,"This page aims to provide an overview of the open-source Polkadot Tech Stack."),(0,o.kt)("p",null,"This is a living document, and we rely on everyone to contribute and help maintain\nit. ",(0,o.kt)("a",{parentName:"p",href:"#contributing"},(0,o.kt)("strong",{parentName:"a"},"Please feel free to make edits and additions via pull requests")),". We\napologize if we missed your project!"),(0,o.kt)("hr",null),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("a",{parentName:"li",href:"#about"},"About")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("a",{parentName:"li",href:"#layers-of-polkadot-stack"},"Layers of Polkadot Stack"),(0,o.kt)("ul",{parentName:"li"},(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("a",{parentName:"li",href:"#wallets"},"Wallets")," "),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("a",{parentName:"li",href:"#user-interface"},"User Interface")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("a",{parentName:"li",href:"#tools-apis-and-languages"},"Tools, APIs, and Languages")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("a",{parentName:"li",href:"#ink-smart-contracts"},"ink! Smart Contracts")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("a",{parentName:"li",href:"#chains-and-pallets"},"Chains and Pallets")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("a",{parentName:"li",href:"#host"},"Host")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("a",{parentName:"li",href:"#network-maintenance-tools"},"Network Maintenance Tools")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("a",{parentName:"li",href:"#signatures"},"Signatures")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("a",{parentName:"li",href:"#consensus"},"Consensus")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("a",{parentName:"li",href:"#networking"},"Networking")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("a",{parentName:"li",href:"#primitives"},"Primitives")))),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("a",{parentName:"li",href:"#contributing"},"Contributing"))),(0,o.kt)("h2",{id:"about"},"About"),(0,o.kt)("p",null,"The Polkadot Tech Stack is a subset of the Web 3.0 Tech Stack, which consists of the ",(0,o.kt)("strong",{parentName:"p"},"open-source"),"\ntechnologies contributing to and relying on ",(0,o.kt)("a",{parentName:"p",href:"https://polkadot.network/"},"Polkadot"),". It is meant to be used\nfor decentralized application (Dapp) development within numerous verticals, including DeFi, Gaming,\nProvenance and many others not pictured below."),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre"},"|------|--------|------------|\n| DeFi | Gaming | Provenance |\n|______|________|____________|\n Dapps\n|--------------------------/-|\n| Explorers, Wallets / |\n|------------------------/---|\n| Tools, Apis, Languages/ |\n|----------------------/-----|\n| 2nd layer protocols / |\n|--------------------/-------|\n| Chains / other |\n|------------------/--- --|\n| *Polkadot* | tech |\n|------------------\\---------|\n| P2P, Crypto, Wasm \\ |\n|--------------------\\-------|\n")),(0,o.kt)("h2",{id:"layers-of-polkadot-stack"},"Layers of Polkadot Stack"),(0,o.kt)("p",null,"In the below sections, you can find a list of different layers of the Polkadot Stack."),(0,o.kt)("p",null,(0,o.kt)("strong",{parentName:"p"},"Maintenance Status"),":"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"\ud83d\udfe2 Actively maintained"),(0,o.kt)("li",{parentName:"ul"},"\ud83d\udfe1 Stale (no activity on the main branch for one month)"),(0,o.kt)("li",{parentName:"ul"},"\u26aa Unmaintained (no activity on the main branch for more than three months)")),(0,o.kt)("h3",{id:"wallets"},"Wallets"),(0,o.kt)("table",null,(0,o.kt)("thead",{parentName:"table"},(0,o.kt)("tr",{parentName:"thead"},(0,o.kt)("th",{parentName:"tr",align:null},"Components"),(0,o.kt)("th",{parentName:"tr",align:null},"Existing projects"),(0,o.kt)("th",{parentName:"tr",align:null},"Potentially interesting projects"))),(0,o.kt)("tbody",{parentName:"table"},(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:null},"Web Wallets"),(0,o.kt)("td",{parentName:"tr",align:null},(0,o.kt)("a",{parentName:"td",href:"https://github.com/ChainSafe/Multix"},"Multix")," \ud83d\udfe2, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/polkasafe/polkasafe-ui"},"Polkasafe")," \ud83d\udfe2, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/polkadot-js/apps"},"polkadot-js/apps")," \ud83d\udfe2, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/TalismanSociety/talisman-web"},"Talisman Web Application")," \ud83d\udfe2, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/enkryptcom/mydotwallet"},"mydotwallet")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/dappforce/subid"},"Sub ID")," \ud83d\udfe1, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/Primis-Labs/client"},"Primis")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/w3finance/sakura"},"Sakura")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/w3f-grants-archive/Web3Box-apps"},"Web3Box")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/CoongCrafts/coong-wallet"},"Coong Wallet")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/itering/subscan-multisig-react"},"Subscan Multisig UI - React")," \ud83d\udfe1, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/itering/subscan-multisig-ui"},"Subscan Multisig UI")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/DoraFactory/dorafactory-multisig"},"Dorafactory-Multisig")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/paritytech/capi-multisig-app"},"Capi Multisig App")," \u26aa"),(0,o.kt)("td",{parentName:"tr",align:null},"User-friendly Wallet based on the ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/paritytech/polkadot-sdk/tree/master/substrate/frame/recovery"},"Recovery Pallet"),", Web wallets focused on user-onboarding (e.g. using ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/near/near-wallet"},"localStorage"),")")),(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:null},"Desktop Wallets"),(0,o.kt)("td",{parentName:"tr",align:null},(0,o.kt)("a",{parentName:"td",href:"https://github.com/novasamatech/nova-spektr"},"nova-spektr")," \ud83d\udfe2, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/w3f-grants-archive/omni-desktop-prototype"},"Omni desktop")," \u26aa"),(0,o.kt)("td",{parentName:"tr",align:null},"Enterprise Wallets")),(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:null},"Browser Extensions"),(0,o.kt)("td",{parentName:"tr",align:null},(0,o.kt)("a",{parentName:"td",href:"https://github.com/TalismanSociety/talisman"},"Talisman-Extension")," \ud83d\udfe2, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/Koniverse/SubWallet-Extension"},"SubWallet-Extension")," \ud83d\udfe2, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/enkryptcom/enKrypt"},"Enkrypt")," \ud83d\udfe2, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/polkadot-js/extension"},"Polkadot{.js}")," \ud83d\udfe2, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/PolkaGate/polkagate-extension"},"PolkaGate")," \ud83d\udfe2, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/ChainBridgeNetworkTeam/Doter"},"Doter")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/GetSpeckle/speckle-browser-extension"},"Speckle OS")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/blockcoders/kuma-wallet"},"Kuma Cross-chain Wallet")," \u26aa"),(0,o.kt)("td",{parentName:"tr",align:null},"Sign-in with your Polkadot, Kusama, etc. account.")),(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:null},"Mobile Wallets"),(0,o.kt)("td",{parentName:"tr",align:null},(0,o.kt)("a",{parentName:"td",href:"https://github.com/novasamatech/nova-wallet-ios"},"Nova Wallet iOS")," \ud83d\udfe2, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/novasamatech/nova-wallet-android"},"Nova Wallet Android")," \ud83d\udfe2, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/paritytech/parity-signer"},"Polkadot Vault")," \ud83d\udfe2, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/soramitsu/fearless-Android"},"Fearless Wallet Android")," \ud83d\udfe2, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/soramitsu/fearless-iOS"},"Fearless Wallet iOS")," \ud83d\udfe1, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/Koniverse/SubWallet-Mobile"},"SubWallet-Mobile")," \ud83d\udfe2, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/Kalapaja/kampela-firmware"},"Kampela")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/airgap-it/airgap-wallet"},"AirGap")," \ud83d\udfe1, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/Interstellar-Network/wallet-app"},"Interstellar Network")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/luniehq/lunie"},"Lunie")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/polkawallet-io/polkawallet-flutter"},"Polkawallet")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/consenlabs/token-core"},"imToken")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/stylo-app/stylo"},"Stylo")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/fractapp/fractapp/"},"Fractapp")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/hypha-dao/hashed-wallet"},"Hashed Wallet")," \u26aa"),(0,o.kt)("td",{parentName:"tr",align:null})),(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:null},"Burner Wallets/Faucet/Gifts"),(0,o.kt)("td",{parentName:"tr",align:null},(0,o.kt)("a",{parentName:"td",href:"https://github.com/hamidra/dotdrop"},"dotdrop")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/vue-polkadot/apps"},"KodaDot")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/AstarNetwork/astar-faucet-bot"},"Astar Faucet Bot")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/karooolis/sybil-resistant-substrate-faucet"},"Generic sybil-resistant faucet")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/StringNick/sybil-resistant-chat-bot-substrate-faucet"},"sybil-resistant Chat Bot Faucet")," \u26aa"),(0,o.kt)("td",{parentName:"tr",align:null},"Faucet (a sybil-resistant way to receive free tokens)")),(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:null},"Wallet Plugins"),(0,o.kt)("td",{parentName:"tr",align:null},(0,o.kt)("a",{parentName:"td",href:"https://github.com/ChainSafe/metamask-snap-polkadot"},"Metamask-Snap by Chainsafe")," \ud83d\udfe1"),(0,o.kt)("td",{parentName:"tr",align:null})),(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:null},"CLI Wallet"),(0,o.kt)("td",{parentName:"tr",align:null},(0,o.kt)("a",{parentName:"td",href:"https://github.com/yxf/subwallet"},"Subwallet")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/canontech/proxy-hot-wallet"},"Proxy-hot-wallet")," \u26aa"),(0,o.kt)("td",{parentName:"tr",align:null})),(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:null},"Hardware Wallets"),(0,o.kt)("td",{parentName:"tr",align:null},(0,o.kt)("a",{parentName:"td",href:"https://github.com/ZondaX/ledger-polkadot"},"Ledger Polkadot")," \ud83d\udfe1, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/Zondax/ledger-kusama"},"Ledger Kusama")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/Zondax/ledger-statemint"},"Ledger Statemint")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/Zondax/ledger-statemine"},"Ledger Statemine")," \u26aa"),(0,o.kt)("td",{parentName:"tr",align:null},"Trezor")))),(0,o.kt)("h3",{id:"user-interface"},"User Interface"),(0,o.kt)("table",null,(0,o.kt)("thead",{parentName:"table"},(0,o.kt)("tr",{parentName:"thead"},(0,o.kt)("th",{parentName:"tr",align:null},"Components"),(0,o.kt)("th",{parentName:"tr",align:null},"Existing projects"),(0,o.kt)("th",{parentName:"tr",align:null},"Potentially interesting projects"))),(0,o.kt)("tbody",{parentName:"table"},(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:null},"Block Explorers"),(0,o.kt)("td",{parentName:"tr",align:null},(0,o.kt)("a",{parentName:"td",href:"https://github.com/topmonks/calamar"},"Calamar")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/polkascan/explorer-api"},"Polkascan")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/Colm3na/polkastats-backend"},"Polkastats")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/itering/subscan"},"Subscan")," \ud83d\udfe1, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/opensquare-network/statescan-v2"},"Statescan")," \ud83d\udfe2, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/edgeware-builders/edgscan"},"Edgscan")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/web3labs/epirus-substrate"},"Sirato")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/blockcoders/ink-substrate-explorer-api"},"ink! Explorer API")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/CESSProject/substats"},"Substats")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/hybrid-explorer/hybrid-dapp"},"Hybrid Block Explorer")," \u26aa"),(0,o.kt)("td",{parentName:"tr",align:null},"Mempool focused explorer (including parachain transaction)")),(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:null},"Validator Dashboards"),(0,o.kt)("td",{parentName:"tr",align:null},(0,o.kt)("a",{parentName:"td",href:"https://github.com/paritytech/substrate-telemetry"},"Polkadot Telemetry")," \ud83d\udfe2, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/hashquark-io/polkacube-frontend"},"Polkacube")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/buidl-labs/YieldScan"},"YieldScan")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/w3f-community/hubble/tree/master/app/controllers/polkadot"},"Hubble")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/ArthurHoeke/cyclops"},"Cyclops")," \ud83d\udfe2, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/web3go-xyz/web3go-xyz-v2"},"Web3Go")," \ud83d\udfe1, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/MathCryptoDoc/insights-1kv"},"1kv insights")," \u26aa"),(0,o.kt)("td",{parentName:"tr",align:null})),(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:null},"Node Explorers"),(0,o.kt)("td",{parentName:"tr",align:null},(0,o.kt)("a",{parentName:"td",href:"https://github.com/protos-research/polkadot-node-explorer"},"Polkadot Node Explorer")," \u26aa"),(0,o.kt)("td",{parentName:"tr",align:null})),(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:null},"NFT Explorer"),(0,o.kt)("td",{parentName:"tr",align:null},(0,o.kt)("a",{parentName:"td",href:"https://github.com/kodadot/nft-gallery"},"NFT Explorer for Kusama & Polkadot")," \ud83d\udfe2"),(0,o.kt)("td",{parentName:"tr",align:null})),(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:null},"Governance Dashboards"),(0,o.kt)("td",{parentName:"tr",align:null},(0,o.kt)("a",{parentName:"td",href:"https://github.com/paritytech/governance-ui"},"Polkadot Delegation Dashboard")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/premiurly/polkassembly"},"Polkassembly")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/opensquare-network/dotreasury"},"dotreasury")," \ud83d\udfe2, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/bright/bright-tresury"},"Bright Treasury")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/opensquare-network/collaboration"},"OpenSquare offchain voting")," \ud83d\udfe2, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/wpank/open-gov-insights"},"OpenGov Insights")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/stake-plus/treasury-tracker"},"Treasury Tracker")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/joepetrowski/opengov-cli"},"OpenGov CLI")," \ud83d\udfe2"),(0,o.kt)("td",{parentName:"tr",align:null},"UI for the Kusama and/or Polkadot treasury (see ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/paritytech/substrate/pull/5715"},"bounty module"),"), UI for Parachain Lease Offering (PLO)")),(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:null},"Staking"),(0,o.kt)("td",{parentName:"tr",align:null},(0,o.kt)("a",{parentName:"td",href:"https://github.com/w3f/staking-rewards-collector"},"Staking Rewards Collector")," \ud83d\udfe1, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/jackson-harris-iii/staking-rewards-viewer"},"Staking Rewards Viewer")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/cryptolab-network/polkadot-staking-site"},"Polkadot Staking Site")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/paritytech/polkadot-staking-dashboard"},"Polkadot Staking Dashboard")," \ud83d\udfe2, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/James-Sangalli/dot-validator-selector"},"Polkadot/Kusama Validator Selector")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/James-Sangalli/dot-staking-income"},"Staking Income CSV Generator")," \u26aa"),(0,o.kt)("td",{parentName:"tr",align:null})),(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:null},"Bridge UI"),(0,o.kt)("td",{parentName:"tr",align:null},(0,o.kt)("a",{parentName:"td",href:"https://github.com/paritytech/parity-bridges-ui"},"Parity Bridges UI")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/nutbox-dao/donut-interface"},"Donut Interface (Steem - Dot)")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/RostislavLitovkin/PlutonicationServer"},"Plutonication")," \ud83d\udfe2"),(0,o.kt)("td",{parentName:"tr",align:null})),(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:null},"Parachain/Crowdloan"),(0,o.kt)("td",{parentName:"tr",align:null},(0,o.kt)("a",{parentName:"td",href:"https://github.com/jhonalino/parachains.network"},"Parachains.Network")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/CrommVardek/polk-auction-ui"},"PolkAuction")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/10clouds/crowdloan-template"},"Crowdloan Front End Template")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/hack-ink/slothunter/"},"Slothunter")," \u26aa"),(0,o.kt)("td",{parentName:"tr",align:null})),(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:null},"Identicon"),(0,o.kt)("td",{parentName:"tr",align:null},(0,o.kt)("a",{parentName:"td",href:"https://polkadot.cloud/polkicon"},"Polkicon")," \ud83d\udfe2, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/RidOne-technologies/polkadot-web-identicon"},"PolkadotWebIdenticon")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/RidOne-technologies/polkadot-angular-identicon"},"Polkadot Angular IdentIcon")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/Noc2/Bird-Identicon"},"Bird Identicon")," \u26aa"),(0,o.kt)("td",{parentName:"tr",align:null})),(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:null},"Coretime"),(0,o.kt)("td",{parentName:"tr",align:null},(0,o.kt)("a",{parentName:"td",href:"https://github.com/LasticXYZ/LasticUI"},"Lastic")," \ud83d\udfe2, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/RegionX-Labs/RegionX"},"RegionX")," \ud83d\udfe1"),(0,o.kt)("td",{parentName:"tr",align:null})),(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:null},"Other"),(0,o.kt)("td",{parentName:"tr",align:null},(0,o.kt)("a",{parentName:"td",href:"https://polkadot.cloud"},"Polkadot Cloud")," \ud83d\udfe2, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/KappaSigmaMu/ksm-app"},"KappaSigmaMu Fratority")," \ud83d\udfe1, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/OAK-Foundation/quadratic-funding-webapp"},"Quadratic Funding Webapp")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://gitlab.com/polkawatch/polkawatch"},"Polkawatch"),", ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/bytepayment/bytepay"},"Bytepay")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/Delmonicos/charging-management-platform"},"charging-management-platform")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/TDSoftware/subidentity-webapp"},"subidentity-webapp")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/opensquare-network/paid-qa/"},"OpenSquare Paid QA")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/CrossChainLabs-DOT/dotpulse-api"},"DotPulse")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/bsn-si/rubeus-smartcontract"},"Rubeus Keeper")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/justmert/eco-flow-frontend"},"Polkaflow")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/helikon-labs/chainviz"},"ChainViz")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/fidi-tech/dotsight"},"Dotsight")," \ud83d\udfe2"),(0,o.kt)("td",{parentName:"tr",align:null},(0,o.kt)("a",{parentName:"td",href:"https://docs.sui.io/build/zk_login"},"zkLogin"),", Portfolio Viewer like Zapper or Zerion")))),(0,o.kt)("h3",{id:"tools-apis-and-languages"},"Tools, APIs, and Languages"),(0,o.kt)("table",null,(0,o.kt)("thead",{parentName:"table"},(0,o.kt)("tr",{parentName:"thead"},(0,o.kt)("th",{parentName:"tr",align:null},"Components"),(0,o.kt)("th",{parentName:"tr",align:null},"Existing projects"),(0,o.kt)("th",{parentName:"tr",align:null},"Potentially interesting projects"))),(0,o.kt)("tbody",{parentName:"table"},(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:null},"Runtime/Parachain frameworks"),(0,o.kt)("td",{parentName:"tr",align:null},(0,o.kt)("a",{parentName:"td",href:"https://github.com/paritytech/polkadot-sdk"},"Polkadot Blockchain SDK")," \ud83d\udfe2, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/LimeChain/gosemble"},"Gosemble")," \ud83d\udfe2, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/LimeChain/subsembly"},"Subsembly")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/AcalaNetwork/parachain-utilities"},"Parachain utilities")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/gantree-io/gantree-core"},"Gantree")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/ideal-lab5"},"Cryptex")," \ud83d\udfe2"),(0,o.kt)("td",{parentName:"tr",align:null},"Tools to create parachains with other frameworks, like the ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/cosmos/cosmos-sdk"},"Cosmos SDK")," or ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/0xPolygon/cdk-validium-node"},"Polygon CDK"))),(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:null},"Client Libraries"),(0,o.kt)("td",{parentName:"tr",align:null},(0,o.kt)("a",{parentName:"td",href:"https://github.com/paritytech/polkadot-api"},"Polkadot API - Typescript")," \ud83d\udfe2, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/paritytech/capi"},"Capi - Typescript")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/kodadot/packages/tree/main/sub-api"},"sub-api")," \ud83d\udfe2, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/centrifuge/go-substrate-rpc-client"},"Go")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/usetech-llc/polkadot_api_dotnet"},".Net")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/SubstrateGaming/Substrate.NET.API"},".NET Standard 2.0")," \ud83d\udfe1, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/SubstrateGaming/Substrate.NET.Toolchain"},"Substrate .NET Toolchain")," \ud83d\udfe2, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/usetech-llc/polkadot_api_cpp"},"C++")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/finoabanking/substrate-c-tool"},"C")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/airalab/hs-web3"},"Haskell")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/polkadot-js/api"},"Javascript")," \ud83d\udfe2, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/paritytech/substrate-api-sidecar"},"Substrate API Sidecar - TypeScript")," \ud83d\udfe2, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/polkascan/py-substrate-interface"},"Python")," \ud83d\udfe2, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/emeraldpay/polkaj"},"Java (+ Android)")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/strategyobject/substrate-client-java"},"Substrate Client Java")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/scs/substrate-api-client"},"Rust SCS")," \ud83d\udfe2, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/paritytech/subxt"},"Rust Parity (subxt)")," \ud83d\udfe2, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/trevor-crypto"},"Rust pdotc")," ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/gmajor-encrypt/php-substrate-api"},"PHP (gmajor-encrypt)")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/neha0921/substrate-interface-package"},"PHP (neha0921)")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/paritytech/frontier"},"RPC-Ethereum")," \ud83d\udfe2, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/tesseract-one/Substrate.swift"},"Swift")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/NodleCode/substrate-client-kotlin"},"Kotlin")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/sublabdev/substrate-client-kotlin"},"substrate-client-kotlin")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/sublabdev/substrate-client-swift"},"substrate-client-swift")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/rankanizer/polkadart"},"Dart")," \ud83d\udfe1, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/polywrap/integrations"},"Substrate Core Polywrapper")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/novasamatech/substrate-sdk-ios"},"Substrate SDK iOS")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/novasamatech/substrate-sdk-android"},"Substrate SDK Android")," \ud83d\udfe1, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/CoongCrafts/delightfuldot"},"DelightfulDot")," \ud83d\udfe2"),(0,o.kt)("td",{parentName:"tr",align:null})),(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:null},"RPC Gateway"),(0,o.kt)("td",{parentName:"tr",align:null},(0,o.kt)("a",{parentName:"td",href:"https://github.com/AcalaNetwork/subway"},"Subway")," \ud83d\udfe2"),(0,o.kt)("td",{parentName:"tr",align:null})),(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:null},"Substrate Contract clients"),(0,o.kt)("td",{parentName:"tr",align:null},(0,o.kt)("a",{parentName:"td",href:"https://github.com/patractlabs/go-patract"},"PatractGo")," \u26aa"),(0,o.kt)("td",{parentName:"tr",align:null})),(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:null},"Easy Runtime Development"),(0,o.kt)("td",{parentName:"tr",align:null},(0,o.kt)("a",{parentName:"td",href:"https://github.com/hack-ink/subalfred"},"Subalfred")," \ud83d\udfe2, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/kaichaosun/substrate-stencil"},"substrate-stencil")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/kaichaosun/play-substrate"},"Play Substrate")," \ud83d\udfe1, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/substrate-developer-hub/substrate-node-template"},"substrate-node-template")," \ud83d\udfe1, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/paritytech/substrate-playground"},"Substrate Playground")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/LimeChain/as-substrate-runtime"},"AssemblyScript Runtime Generation")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/clearloop/sup"},"Substrate Package Manager")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/LimeChain/subsembly"},"Subsembly: Framework for developing AssemblyScript Substrate Runtimes")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/bkchr/diener"},"dependency diener")," \u26aa"),(0,o.kt)("td",{parentName:"tr",align:null})),(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:null},"IDE Plugins"),(0,o.kt)("td",{parentName:"tr",align:null},(0,o.kt)("a",{parentName:"td",href:"https://github.com/paritytech/vscode-substrate"},"Substrate Marketplace VS Code Plugin")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/everstake/vscode-plugin-substrate"},"VS Code Plugin")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/everstake/atom-plugin-substrate"},"Atom Code Plugin")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/paritytech/zombienet-vscode-extension"},"zombienet extension")," \u26aa"),(0,o.kt)("td",{parentName:"tr",align:null})),(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:null},"Runtime/Pallet Security"),(0,o.kt)("td",{parentName:"tr",align:null},(0,o.kt)("a",{parentName:"td",href:"https://github.com/srlabs/substrate-runtime-fuzzer"},"Substrate Runtime Fuzzer")," \ud83d\udfe2, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/shawntabrizi/substrate-toml-lint"},"Substrate Toml Lint")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/kframework/wasm-semantics"},"K specifications")," \ud83d\udfe2, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/ChainSecurity/polpatrol"},"PolPatrol - Polkadot Runtime Checker")," \u26aa"),(0,o.kt)("td",{parentName:"tr",align:null},"Automated Runtime checking tools, economic audit simulator such as ",(0,o.kt)("a",{parentName:"td",href:"https://gauntlet.network/"},"gauntlet.network"))),(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:null},"Smart Contract Languages"),(0,o.kt)("td",{parentName:"tr",align:null},(0,o.kt)("a",{parentName:"td",href:"#ink-smart-contracts"},"ink!")," \ud83d\udfe2, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/ask-lang/ask"},"Ask!")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/slickup/subscript"},"Subscript")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/hyperledger-labs/solang"},"Solang")," \ud83d\udfe2, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/eigerco/pallet-move"},"pallet-move")," \ud83d\udfe2, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/pontem-network/sp-move"},"Move VM Substrate")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/neatcoin/neatcoin"},"Move smart contract by Neatcoin")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/pepyakin/substrate-seal-ebpf"},"eBPF Contracts Hackathon")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/koute/polkavm"},"PolkaVM")," \ud83d\udfe2"),(0,o.kt)("td",{parentName:"tr",align:null},"Functional Programming Languages, other languages with developed toolchains")),(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:null},"Testing"),(0,o.kt)("td",{parentName:"tr",align:null},(0,o.kt)("a",{parentName:"td",href:"https://github.com/paritytech/polkadot-introspector"},"Polkadot introspector")," \ud83d\udfe2, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/subdirectory/subshell"},"Subshell")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/polytope-labs/sc-simnode"},"substrate-simnode")," \ud83d\udfe2, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/halva-suite/halva"},"Halva")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/patractlabs/redspot"},"Redspot")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/mixbytes/tank"},"MixBytes Tank")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/NikVolf/sub-flood"},"sub-flood")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/paritytech/substrate-debug-kit"},"Substrate debug-kit")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/JesseAbram/asset_cli_tool"},"Asset CLI tool")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/JesseAbram/unfinished_testing_tool"},"sub_crash")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/chevdor/subwasm"},"subwasm")," \ud83d\udfe2, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/ascjones/subsee"},"subsee")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/w3f/polkadot-lab"},"polkadot-lab")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/dwellir-public/rpc-perf/"},"RPC-perf")," \u26aa"),(0,o.kt)("td",{parentName:"tr",align:null})),(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:null},"Static Analysis"),(0,o.kt)("td",{parentName:"tr",align:null},(0,o.kt)("a",{parentName:"td",href:"https://github.com/KaiserKarel/substrace"},"Substrace")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/simon-perriard/saft"},"Static analyzer for Substrate FRAME's pallets")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/CoinFabrik/scout"},"CoinFabrik Scout")," \ud83d\udfe2"),(0,o.kt)("td",{parentName:"tr",align:null})),(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:null},"Testnet"),(0,o.kt)("td",{parentName:"tr",align:null},(0,o.kt)("a",{parentName:"td",href:"https://github.com/paritytech/zombienet"},"Zombienet")," \ud83d\udfe2, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/AcalaNetwork/chopsticks"},"Chopsticks")," \ud83d\udfe2, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/paritytech/polkadot-launch"},"Polkadot Launch")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/koute/polkadot-starship"},"polkadot-starship")," \ud83d\udfe1, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/maxsam4/fork-off-substrate"},"Fork off Substrate")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/paritytech/try-runtime-cli"},"try-runtime-cli")," \ud83d\udfe2, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/open-web3-stack/parachain-launch"},"Parachain Launch")," \ud83d\udfe2, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/Zeeve-App/larch"},"Larch Zombienet GUI")," \u26aa"),(0,o.kt)("td",{parentName:"tr",align:null})),(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:null},"Benchmarking"),(0,o.kt)("td",{parentName:"tr",align:null},(0,o.kt)("a",{parentName:"td",href:"https://github.com/paritytech/polkadot-sdk/tree/master/substrate/utils/frame/benchmarking-cli"},"Benchmarking CLI")," \ud83d\udfe2, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/paritytech/polkadot-stps"},"Polkadot sTPS")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/0xekez/clockchain"},"Clockchain")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/shawntabrizi/substrate-graph-benchmarks"},"Substrate Graph Benchmarks")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/Nikhil-Desai-Talentica/substrate-node-template-benchmarking"},"ink! & pallet benchmarking template")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/paritytech/smart-bench"},"smart-bench")," \ud83d\udfe2"),(0,o.kt)("td",{parentName:"tr",align:null})),(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:null},"Blockchain Indexing Engine"),(0,o.kt)("td",{parentName:"tr",align:null},(0,o.kt)("a",{parentName:"td",href:"https://github.com/subsquid/squid-sdk"},"Squid SDK")," \ud83d\udfe2, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/hybrid-explorer/hybrid-indexer"},"Hybrid Indexer")," \ud83d\udfe2, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/paritytech/substrate-archive"},"Substrate Archive")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/usetech-llc/polkadot_psql_indexer"},"PSQL Indexer")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/playzero/substrate-graph"},"Substrate Graph")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/OnFinality-io/subql"},"Subquery")," \ud83d\udfe2, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/p2p-org/polkadot-profit-transformer"},"MBELT3")," \ud83d\udfe1, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/kodadot/stick"},"stick")," \ud83d\udfe2, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/Infra3-Network/hyperdot"},"Hyperdot")," \u26aa"),(0,o.kt)("td",{parentName:"tr",align:null})),(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:null},"Blockchain/Event Monitoring"),(0,o.kt)("td",{parentName:"tr",align:null},(0,o.kt)("a",{parentName:"td",href:"https://github.com/open-web3-stack/guardian"},"Web3 Guardian")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/HugoByte/aurras-event-manager"},"Aurras Event Manager")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/hicommonwealth/chain-events"},"@commonwealth/chain-events")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/w3f-grants-archive/massbitchain"},"Massbit")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/kianenigma/polkadot-basic-notification"},"Polkadot Basic Notifications")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/sodazone/ocelloids"},"Ocelloids")," \ud83d\udfe2, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/TrackingChains/TrackingChain"},"Tracking Chain")," \u26aa,"),(0,o.kt)("td",{parentName:"tr",align:null})),(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:null},"Gaming"),(0,o.kt)("td",{parentName:"tr",align:null},(0,o.kt)("a",{parentName:"td",href:"https://github.com/PolkadotPlay/Polkadot.Unity.SDK"},"Polkadot SDK for Unity")," \ud83d\udfe1, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/dodorare/crossbow"},"Crossbow")," \u26aa"),(0,o.kt)("td",{parentName:"tr",align:null},(0,o.kt)("a",{parentName:"td",href:"https://assetstore.unity.com/packages/decentralization/infrastructure/polkadot-sdk-for-unity-273535"},"Unity Asset Store"),", ",(0,o.kt)("a",{parentName:"td",href:"https://amethyst.rs/"},"Amethyst")," + ",(0,o.kt)("a",{parentName:"td",href:"https://substrate.dev/"},"Substrate"))),(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:null},"No-code Platforms"),(0,o.kt)("td",{parentName:"tr",align:null},(0,o.kt)("a",{parentName:"td",href:"https://github.com/NovaBloq/Bubble-Plugin-Polkadot.js"},"EzCode's Polkadot.js plugin on Bubble.io")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/Blackprint/nodes-polkadot.js"},"Blackprint Visual Programming Polkadot.js module")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/subrelay/interface"},"SubRelay")," \u26aa"),(0,o.kt)("td",{parentName:"tr",align:null})),(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:null},"Wallets"),(0,o.kt)("td",{parentName:"tr",align:null},(0,o.kt)("a",{parentName:"td",href:"https://github.com/TalismanSociety/talisman-connect"},"Talisman Connect")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/Koniverse/SubConnect"},"SubWallet-SubConnect")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/nova-wallet/metadata-portal"},"Metadata Portal")," \ud83d\udfe2, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/tesseract-one/Tesseract.rs"},"Tesseract")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/w3f-grants-archive/walletconnect-v2-monorepo"},"WalletConnect")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/BitGo/BitGoJS/tree/master"},"BitGoJS")," \ud83d\udfe2"),(0,o.kt)("td",{parentName:"tr",align:null})),(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:null},"XCM"),(0,o.kt)("td",{parentName:"tr",align:null},(0,o.kt)("a",{parentName:"td",href:"https://github.com/paritytech/trappist"},"Trappist")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/Moonsong-Labs/xcm-tools"},"XCM-tools")," \ud83d\udfe1, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/itering/substrate-api-rpc"},"XCM-tools Golang")," \ud83d\udfe1,",(0,o.kt)("a",{parentName:"td",href:"https://github.com/paraspell/ui-v2"},"ParaSpell")," \u2754, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/t3rn/xbi"},"XBI")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/blockcoders/xcm-sdk"},"XCM TS/JS SDK")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/XcmSend/app"},"XCMSend")," \ud83d\udfe2, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/sodazone/xcm-monitoring/"},"XCM Monitoring Server")," \ud83d\udfe2, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/moonbeam-foundation/xcm-sdk"},"Moonbeam Foundation XCM-SDK")," \ud83d\udfe2"),(0,o.kt)("td",{parentName:"tr",align:null})),(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:null},"Other"),(0,o.kt)("td",{parentName:"tr",align:null},(0,o.kt)("a",{parentName:"td",href:"https://github.com/paritytech/asset-transfer-api"},"asset-transfer-api")," \ud83d\udfe2, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/paritytech/txwrapper-core"},"txwrapper-core")," \ud83d\udfe2, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/open-web3-stack/open-web3.js"},"open-web3 JS library")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/CycanTech/GVM-Bridge"},"VM-Bridge")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/paritytech/srtool"},"srtool")," \ud83d\udfe2, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/chevdor/srtool-cli"},"srtool-cli")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/paritytech/substrate-tip-bot"},"Substrate Tip Bot")," \ud83d\udfe2, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/syntifi/ori"},"ORI (Onchain Risk Intelligence)")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/albertov19/PolkaTools"},"PolkaTools")," \ud83d\udfe2, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/paritytech/polkadot-scripts"},"polkadot-scripts")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/virto-network/sube"},"Sube")," \ud83d\udfe2, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/CESSProject/data-store-sidecar"},"data-store-sidecar")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/SugarFunge/sugarfunge-node"},"SugarFunge")," \ud83d\udfe1, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/second-state/substrate-wasmedge"},"substrate-wasmedge")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/eightfish-org/eightfish"},"EightFish")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/sandoxio/sandox"},"Sandox")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/darwinia-network/apk-verifier/"},"APK verifier")," \u26aa"),(0,o.kt)("td",{parentName:"tr",align:null})))),(0,o.kt)("h3",{id:"ink-smart-contracts"},"ink! Smart Contracts"),(0,o.kt)("table",null,(0,o.kt)("thead",{parentName:"table"},(0,o.kt)("tr",{parentName:"thead"},(0,o.kt)("th",{parentName:"tr",align:null},"Components"),(0,o.kt)("th",{parentName:"tr",align:null},"Existing projects"),(0,o.kt)("th",{parentName:"tr",align:null},"Potentially interesting projects"))),(0,o.kt)("tbody",{parentName:"table"},(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:null},"Core Libraries"),(0,o.kt)("td",{parentName:"tr",align:null},(0,o.kt)("a",{parentName:"td",href:"https://github.com/paritytech/ink"},"ink!")," \ud83d\udfe2, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/paritytech/cargo-contract"},"cargo-contract")," \ud83d\udfe2, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/paritytech/polkadot-sdk/tree/master/substrate/frame/contracts"},"pallet-contracts")," \ud83d\udfe2"),(0,o.kt)("td",{parentName:"tr",align:null})),(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:null},"Local Nodes"),(0,o.kt)("td",{parentName:"tr",align:null},(0,o.kt)("a",{parentName:"td",href:"https://github.com/paritytech/substrate-contracts-node"},"substrate-contracts-node")," \ud83d\udfe2, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/swankyhub/swanky-cli"},"Swanky")," \ud83d\udfe1"),(0,o.kt)("td",{parentName:"tr",align:null})),(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:null},"Smart Contract Development"),(0,o.kt)("td",{parentName:"tr",align:null},(0,o.kt)("a",{parentName:"td",href:"https://github.com/Cardinal-Cryptography/drink"},"DRink!")," \ud83d\udfe1, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/paritytech/contracts-ui"},"contracts-ui")," \ud83d\udfe2, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/Smart-Beaver"},"SmartBeaver"),", ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/h4nsu/openbrush-contracts"},"OpenBrush")," \u2754, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/727-Ventures/sol2ink"},"Sol2Ink")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/protofire/polkadot-contract-wizard"},"Polkadot Contract Wizard")," \ud83d\udfe1, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/Cardinal-Cryptography/ink-wrapper"},"ink-wrapper")," \ud83d\udfe1, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/paritytech/ink-playground"},"ink-playground")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/blockchain-it-hr/ink-remix-plugin"},"ink! Remix Plugin")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/standardweb3/signac/"},"Signac")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/avirajkhare00/ink-boxes/"},"ink!-boxes")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/avirajkhare00/ink-wizard"},"ink!-smart-contract-wizard")," \u26aa"),(0,o.kt)("td",{parentName:"tr",align:null})),(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:null},"Security & Testing"),(0,o.kt)("td",{parentName:"tr",align:null},(0,o.kt)("a",{parentName:"td",href:"https://github.com/paritytech/ink-waterfall"},"ink! Waterfall")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/web3labs/ink-verifier-image"},"Verifier Image for ink!")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/Brushfam/patron-backend/"},"Patron")," \u26aa"),(0,o.kt)("td",{parentName:"tr",align:null})),(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:null},"Frontend Development"),(0,o.kt)("td",{parentName:"tr",align:null},(0,o.kt)("a",{parentName:"td",href:"https://github.com/scio-labs/inkathon"},"ink!athon Boilerplate")," \ud83d\udfe2, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/paritytech/useink"},"useink")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/scio-labs/use-inkathon"},"useInkathon")," \ud83d\udfe2, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/subsquid/squid-sdk/tree/master/substrate/ink-typegen"},"ink-typegen")," \ud83d\udfe2, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/Brushfam/typechain-polkadot"},"Typechain Polkadot")," \ud83d\udfe1"),(0,o.kt)("td",{parentName:"tr",align:null})),(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:null},"IDE Plugins"),(0,o.kt)("td",{parentName:"tr",align:null},(0,o.kt)("a",{parentName:"td",href:"https://github.com/ink-analyzer/ink-analyzer"},"ink! Analyzer")," \ud83d\udfe2"),(0,o.kt)("td",{parentName:"tr",align:null})),(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:null},"Bridges"),(0,o.kt)("td",{parentName:"tr",align:null},(0,o.kt)("a",{parentName:"td",href:"https://github.com/dantenetwork/protocol-stack-for-ink"},"Dante Protocol")," \u26aa"),(0,o.kt)("td",{parentName:"tr",align:null})),(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:null},"DeFi"),(0,o.kt)("td",{parentName:"tr",align:null},(0,o.kt)("a",{parentName:"td",href:"https://github.com/pendulum-chain/pendulum-ink-wrapper"},"Pendulum-Ink-Wrapper")," \ud83d\udfe2, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/RottenKiwi/Panorama-Swap-INK-SC"},"Panorama Swap")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/Juminstock/ink_bank"},"ink_bank")," \ud83d\udfe1, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/realnimish/polkadot-amm"},"Polkadot AMM")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/veradefi/defi"},"Vera")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/nsure-tech/dot-contract"},"Nsure Insurance")," \u2754, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/CycanTech/ELC"},"Everlasting Cash")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/Coinversation/coinpro"},"Coinversation")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/zenlinkpro/zenlink-dex-contract"},"zenlink-dex-contract")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/ReserveLabs/AlgoCash"},"AlgoCash")," \u26aa"),(0,o.kt)("td",{parentName:"tr",align:null},"New seigniorage-style stable coins")),(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:null},"Gaming"),(0,o.kt)("td",{parentName:"tr",align:null},(0,o.kt)("a",{parentName:"td",href:"https://github.com/OpenEmojiBattler/open-emoji-battler"},"Open Emoji Battler")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/WiktorStarczewski/newomega.polkadot/blob/master/newomega_delegator/newomega/newomega.rs"},"NewOmega")," \u26aa"),(0,o.kt)("td",{parentName:"tr",align:null})),(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:null},"DAO"),(0,o.kt)("td",{parentName:"tr",align:null},(0,o.kt)("a",{parentName:"td",href:"https://github.com/SyncraDAO/modular-dao"},"SyncraDAO")," \u2754, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/w3f-grants-archive/subDAO-contracts"},"subDAO")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/RainbowcityFoundation/RainbowDAO-Protocol-Ink-milestone_1"},"RainbowDAO")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/Mangoboxlabs/Mangoboxink"},"MangoBox")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/Mangoboxlabs/MangoSaleV2"},"MangoSale")," \u26aa"),(0,o.kt)("td",{parentName:"tr",align:null})),(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:null},"Identity/DID"),(0,o.kt)("td",{parentName:"tr",align:null},(0,o.kt)("a",{parentName:"td",href:"https://github.com/TheDotflow"},"Dotflow")," \ud83d\udfe2"),(0,o.kt)("td",{parentName:"tr",align:null})),(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:null},"Oracles"),(0,o.kt)("td",{parentName:"tr",align:null},(0,o.kt)("a",{parentName:"td",href:"https://github.com/diadata-org/dia-wasm-oracle"},"DIA WASM Oracle")," \u26aa"),(0,o.kt)("td",{parentName:"tr",align:null})),(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:null},"Spam Protection"),(0,o.kt)("td",{parentName:"tr",align:null},(0,o.kt)("a",{parentName:"td",href:"https://github.com/prosopo/captcha"},"Prosopo")," \ud83d\udfe2"),(0,o.kt)("td",{parentName:"tr",align:null})),(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:null},"Governance"),(0,o.kt)("td",{parentName:"tr",align:null},(0,o.kt)("a",{parentName:"td",href:"https://github.com/AbaxFinance/Governance"},"Abax Governance")," \u26aa"),(0,o.kt)("td",{parentName:"tr",align:null})),(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:null},"NFT"),(0,o.kt)("td",{parentName:"tr",align:null},(0,o.kt)("a",{parentName:"td",href:"https://github.com/ArtZero-io/Contracts"},"ArtZero")," \u26aa"),(0,o.kt)("td",{parentName:"tr",align:null})),(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:null},"Other"),(0,o.kt)("td",{parentName:"tr",align:null},(0,o.kt)("a",{parentName:"td",href:"https://github.com/pnsproject/ink-aa"},"Polkadot Smart Account")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/swankyhub/magink-dapp"},"magink")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/AstarNetwork/ink-test-contracts"},"ink-test-contracts")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/agryaznov/candle-auction-ink"},"Candle Auctions")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/SubDAO-Network/polkasign-contract"},"polkasign-contract")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/bsn-si/ocex-cli"},"OCEX")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/RoloiMoney/roloi-polkadot-w3f-grant"},"Roloi")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/polkadrys/openPayroll"},"OpenPayroll")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/InkSmartContract/BlockchainFoodOrder"},"BlockchainFoodOrder")," \u26aa"),(0,o.kt)("td",{parentName:"tr",align:null})))),(0,o.kt)("h3",{id:"chains-and-pallets"},"Chains and Pallets"),(0,o.kt)("table",null,(0,o.kt)("thead",{parentName:"table"},(0,o.kt)("tr",{parentName:"thead"},(0,o.kt)("th",{parentName:"tr",align:null},"Components"),(0,o.kt)("th",{parentName:"tr",align:null},"Existing projects"),(0,o.kt)("th",{parentName:"tr",align:null},"Potentially interesting projects"))),(0,o.kt)("tbody",{parentName:"table"},(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:null},"Scalable Transactions"),(0,o.kt)("td",{parentName:"tr",align:null},(0,o.kt)("a",{parentName:"td",href:"https://github.com/perun-network/perun-polkadot-pallet"},"Perun channels")," \ud83d\udfe2, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/perun-network/perun-polkadot-demo"},"CLI demo of Perun")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/AstarNetwork/Astar"},"Astar")," \ud83d\udfe2, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/celer-network/cChannel-substrate"},"Celer")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/GunClear/Gunero"},"Gunclear")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/BCS-Labs/tpscore-etl-system"},"TPScore")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/auguth/pocs"},"proof-of-contract-stake")," \ud83d\udfe2"),(0,o.kt)("td",{parentName:"tr",align:null},"roll-ups, DAG-based consensus mechanisms, side chains")),(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:null},"Bridges"),(0,o.kt)("td",{parentName:"tr",align:null},(0,o.kt)("a",{parentName:"td",href:"https://github.com/interlay/interbtc"},"interBTC")," \ud83d\udfe1, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/webb-tools/dkg-substrate"},"DKG Substrate")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/sygmaprotocol/sygma-substrate-pallets"},"Sygma")," \ud83d\udfe2, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/bifrost-finance/bifrost-eos-relay"},"EOS by Bifrost")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/paritytech/parity-bridge"},"POA - Substrate")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/akropolisio/POC-polkadai-bridge"},"Substrate - Ethereum DAI Bridge")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/paritytech/substrate-bridge-relay"},"Substrate - Substrate Bridge")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/chainx-org/ChainX"},"BTC by ChainX")," \ud83d\udfe1, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/ChorusOne/wormhole-bridge"},"Cosmos-Substrate bridge")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/octopus-network/substrate-ibc"},"Substrate IBC Pallet")," \ud83d\udfe1, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/Snowfork/polkadot-ethereum"},"Polkadot Ethereum Bridge")," \ud83d\udfe2, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/darwinia-network/darwinia"},"Darwinia")," \ud83d\udfe2, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/pendulum-chain/spacewalk"},"Spacewalk: a Stellar bridge")," \ud83d\udfe2, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/ChainSafe/filecoindot"},"Filecoindot")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/centrifuge/axelar-cgp-substrate/tree/main"},"Axelar-Substrate")," \u26aa"),(0,o.kt)("td",{parentName:"tr",align:null},"ZCash")),(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:null},"Privacy"),(0,o.kt)("td",{parentName:"tr",align:null},(0,o.kt)("a",{parentName:"td",href:"https://github.com/LayerXcom/zero-chain"},"ZeroChain")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/xx-labs/xxchain"},"xx network")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/Phala-Network/phala-blockchain"},"pLibra (Phala Network)")," \ud83d\udfe2, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/automata-network/automata"},"Automata Network")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/zero-network/zero"},"Zero Network")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/appliedblockchain/silentdata-polkadot"},"Silent Data")," \u26aa"),(0,o.kt)("td",{parentName:"tr",align:null},(0,o.kt)("a",{parentName:"td",href:"https://github.com/anoma/masp"},"Multi-Asset Shielded Pool (MASP)")," , ",(0,o.kt)("a",{parentName:"td",href:"https://arxiv.org/pdf/2009.01020.pdf"},"Zkay"),", ",(0,o.kt)("a",{parentName:"td",href:"https://eprint.iacr.org/2018/962.pdf"},"Zexe"))),(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:null},"ZKP"),(0,o.kt)("td",{parentName:"tr",align:null},(0,o.kt)("a",{parentName:"td",href:"https://github.com/zeropoolnetwork/zeropool-substrate-groth16-example"},"ZeroPool")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/patractlabs/megaclite"},"Megaclite")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/patractlabs/zkmega"},"zkMega")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/AstarNetwork/plonk"},"PLONK for Substrate")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/webb-tools/protocol-substrate"},"Webb Anchor Protocol")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/bright/zk-snarks-with-substrate/"},"zk-SNARKs tutorial")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/Zkvers/substrate-zk"},"substrate-zk")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/w3f-grants-archive/hyperfridge-r0"},"hyperfridge-r0")," \ud83d\udfe1"),(0,o.kt)("td",{parentName:"tr",align:null})),(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:null},"TEE"),(0,o.kt)("td",{parentName:"tr",align:null},(0,o.kt)("a",{parentName:"td",href:"https://github.com/Acurast/acurast-core"},"Acurast")," \ud83d\udfe1, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/integritee-network/worker"},"Integritee")," \ud83d\udfe1, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/scs/substraTEE"},"substraTEE")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/wetee-dao/chain"},"WeTEE")," \ud83d\udfe2"),(0,o.kt)("td",{parentName:"tr",align:null},(0,o.kt)("a",{parentName:"td",href:"https://github.com/keysafe-protocol/keysafe-app"},"Keysafe Protocol")," \u26aa")),(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:null},"DeFi"),(0,o.kt)("td",{parentName:"tr",align:null},(0,o.kt)("a",{parentName:"td",href:"https://github.com/kapilsinha/privadex"},"PrivaDEX")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/uinb/fusotao"},"Fusotao")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/reef-defi/reef-chain"},"Reef")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/Diora-Network/Diora"},"Diora")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/pendulum-chain/pendulum"},"Pendulum Chain")," \ud83d\udfe2, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/compound-finance/gateway"},"Compound Gateway")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/parallel-finance/parallel"},"Parallel Finance")," \ud83d\udfe2, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/ChainSafe/PINT"},"PINT")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/laminar-protocol/laminar-chain"},"Laminar Chain")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/AcalaNetwork/Acala"},"Acala")," \ud83d\udfe2, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/centrifuge/centrifuge-chain"},"Centrifuge")," \ud83d\udfe2, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/stafiprotocol/stafi-node"},"Stafi")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/y2labs-0sh/definex"},"Definex")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/OAXFoundation/parrot"},"OAX Foundation")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/alexxuyang/substrate-dex"},"Cybex")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/zenlinkpro/pallet-zenlink"},"Zenlink")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/lsaether/pallet-swaps"},"Swaps Pallet")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/Polkadex-Substrate/Polkadex/tree/master"},"Polkadex")," \ud83d\udfe2, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/subdarkdex/subdex-parachain"},"SubDEX")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/galacticcouncil/hack.HydraDX-node"},"HydraDX")," \ud83d\udfe2, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/apopiak/stablecoin"},"Substrate Stablecoin")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/digitalnativeinc/standard-substrate"},"Standard protocol")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/sora-xor/sora2-network"},"Polkaswap")," \ud83d\udfe2, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/equilibrium-eosdt/equilibrium-curve-amm"},"Curve AMM")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/konomi-network/cumulus/"},"Konomi Network")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/nutsfinance/stable-asset"},"Stable Asset")," \ud83d\udfe2, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/atscaletech/libra"},"Libra Payment")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/mangata-finance/mangata-node"},"Mangata")," \ud83d\udfe1, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/tidelabs/tidechain"},"Tidechain")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/galacticcouncil/Basilisk-node"},"Basilisk")," \ud83d\udfe2, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/PolymeshAssociation/Polymesh"},"Polymesh")," \ud83d\udfe2"),(0,o.kt)("td",{parentName:"tr",align:null},"DEX with privacy and confidentiality features such as those found in a ",(0,o.kt)("a",{parentName:"td",href:"https://en.wikipedia.org/wiki/Dark_pool"},"dark pool"))),(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:null},"Smart contract chains"),(0,o.kt)("td",{parentName:"tr",align:null},(0,o.kt)("a",{parentName:"td",href:"https://github.com/PureStake/moonbeam"},"moonbeam")," \ud83d\udfe2, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/Magport/Magnet"},"Magnet")," \ud83d\udfe2, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/Cardinal-Cryptography/aleph-node"},"Aleph-node")," \ud83d\udfe2, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/hicommonwealth/edgeware-node"},"Edgeware")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/ParaState/substrate-ssvm-node"},"ParaState")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/gear-tech/gear"},"gear")," \ud83d\udfe2, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/cennznet/cennznet"},"CENNZnet")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/skyekiwi/skyekiwi-network"},"SkyeKiwi")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/OAK-Foundation/OAK-blockchain"},"OAK-blockchain")," \ud83d\udfe2, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/web3labs/ice-substrate"},"ICE Blockchain")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/OmniBTC/PSC"},"Polkadot Smart Chain")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/keep-starknet-strange/madara"},"Madara - Cairo/Starknet")," \ud83d\udfe2"),(0,o.kt)("td",{parentName:"tr",align:null},"smart contract chains with novel security approaches, smart contract chains based on existing toolchains")),(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:null},"Oracle"),(0,o.kt)("td",{parentName:"tr",align:null},(0,o.kt)("a",{parentName:"td",href:"https://github.com/tellor-io/tellor-pallet"},"Tellor")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/laminar-protocol/open-runtime-module-library/tree/master/oracle"},"Laminar")," \ud83d\udfe2, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/smartcontractkit/chainlink-polkadot"},"Chainlink-polkadot")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/aresprotocols/ares"},"Ares Protocol")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/Kylin-Network/kylin-node"},"Kylin Network")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/interlay/interbtc-clients/tree/master/oracle"},"interbtc-clients oracle")," \ud83d\udfe1, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/webb-tools/anonima"},"Anonima")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/SaaS3-Foundation/dRuntime-fat"},"SaaS3")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/tellor-io/tellor-parachain-contracts"},"Tellor")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/diadata-org/bridgestate-ocw"},"Bridgestate Oracle")," \u26aa"),(0,o.kt)("td",{parentName:"tr",align:null})),(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:null},"Identity/DID"),(0,o.kt)("td",{parentName:"tr",align:null},(0,o.kt)("a",{parentName:"td",href:"https://github.com/parami-foundation/parami-blockchain"},"Parami")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/litentry/litentry-parachain"},"Litentry")," \ud83d\udfe2, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/substrate-developer-hub/pallet-did"},"pallet-did")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/prasad-kumkar/dot-id"},"dot-id")," \u26aa"),(0,o.kt)("td",{parentName:"tr",align:null})),(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:null},"IoT"),(0,o.kt)("td",{parentName:"tr",align:null},(0,o.kt)("a",{parentName:"td",href:"https://github.com/NodleCode/chain"},"Nodle")," \ud83d\udfe2, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/DataHighway-DHX/node"},"MXC/DataHighway")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/peaqnetwork/peaq-network-node"},"peaq-network-node")," \ud83d\udfe2"),(0,o.kt)("td",{parentName:"tr",align:null})),(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:null},"Verifiable Claims"),(0,o.kt)("td",{parentName:"tr",align:null},(0,o.kt)("a",{parentName:"td",href:"https://github.com/KILTprotocol/kilt-node"},"KILT")," \ud83d\udfe2, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/docknetwork/dock-substrate"},"Dock")," \ud83d\udfe2"),(0,o.kt)("td",{parentName:"tr",align:null})),(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:null},"Supply chain"),(0,o.kt)("td",{parentName:"tr",align:null},(0,o.kt)("a",{parentName:"td",href:"https://github.com/digicatapult/dscp-node"},"DSCP Node")," \ud83d\udfe2"),(0,o.kt)("td",{parentName:"tr",align:null})),(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:null},"Health care"),(0,o.kt)("td",{parentName:"tr",align:null}),(0,o.kt)("td",{parentName:"tr",align:null})),(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:null},"Music Industry"),(0,o.kt)("td",{parentName:"tr",align:null},(0,o.kt)("a",{parentName:"td",href:"https://github.com/Allfeat/Allfeat"},"Allfeat Network")," \ud83d\udfe2"),(0,o.kt)("td",{parentName:"tr",align:null})),(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:null},"Data Availability"),(0,o.kt)("td",{parentName:"tr",align:null},(0,o.kt)("a",{parentName:"td",href:"https://github.com/availproject/avail"},"Avail")," \ud83d\udfe2, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/ZeroDAO/melodot"},"Melodot")," \ud83d\udfe1"),(0,o.kt)("td",{parentName:"tr",align:null})),(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:null},"Social Networking"),(0,o.kt)("td",{parentName:"tr",align:null},(0,o.kt)("a",{parentName:"td",href:"https://github.com/frequency-chain/frequency"},"Frequency")," \ud83d\udfe2, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/social-network/blockchain"},"Social Network")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/dappforce/subsocial-parachain"},"SubSocial")," \ud83d\udfe1, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/ZeroDAO/ZeroDAO-node"},"ZeroDAO")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/myriadsocial/myriad-node"},"Myriad Node")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/randombishop/wika_etl"},"Wika Network")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/listenofficial/listen-parachain"},"Listen")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/tribal-protocol/tribal_contract"},"Tribal Protocol")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/rust-0x0/hex-space-protocol-substrate"},"Five Degrees on Substrate")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/acuity-social/acuity-substrate"},"Acuity Social")," \u26aa"),(0,o.kt)("td",{parentName:"tr",align:null},"Private instant messenger that uses on-chain identity")),(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:null},"Governance/DAO"),(0,o.kt)("td",{parentName:"tr",align:null},(0,o.kt)("a",{parentName:"td",href:"https://github.com/aisland-dao/aisland-node/tree/main"},"Aisland Node")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/hashed-io/hashed-substrate"},"Hashed Network")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/sunshine-protocol/sunshine-bounty"},"Sunshine DAO")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/NucleiStudio/governance-os"},"Governance OS")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/idavollnetwork/idavoll"},"Idavoll Network")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/DoraFactory/Substrate-Moloch-V2"},"Substrate Moloch")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/Qrucial/QRUCIAL-DAO"},"QRUCIAL-DAO")," \ud83d\udfe1, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/sctllabs/societal-node"},"Societal")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/daos-org/daos"},"DAOs")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/amiyatulu/shivarthu/"},"Shivarthu")," \ud83d\udfe1, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/faterium"},"Faterium")," \ud83d\udfe2, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/decentration/apps"},"Supersig")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/deep-ink-ventures/genesis-dao-node"},"GenesisDAO")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/dao-entrance/dao-entrance-node"},"DAO Entrance")," \u2754, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/liberland/liberland_substrate"},"Liberland")," \ud83d\udfe1"),(0,o.kt)("td",{parentName:"tr",align:null},(0,o.kt)("a",{parentName:"td",href:"https://github.com/consul/consul"},"Consul")," - Open Government and E-Participation Web Software")),(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:null},"Prediction Markets and Futarchy"),(0,o.kt)("td",{parentName:"tr",align:null},(0,o.kt)("a",{parentName:"td",href:"https://github.com/zeitgeistpm/zeitgeist"},"Zeitgeist")," \ud83d\udfe2, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/XPredictMarket/NodePredict"},"X Predict Market")," \u26aa"),(0,o.kt)("td",{parentName:"tr",align:null})),(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:null},"Messaging"),(0,o.kt)("td",{parentName:"tr",align:null},(0,o.kt)("a",{parentName:"td",href:"https://github.com/validitylabs/HOPR-PL-Substrate"},"HOPR")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/chainify/nolik"},"Nolik")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/Uke-Messaging/uke-pallet"},"Uke")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/Belsoft-rs/diffychat-pallet"},"Diffy Chat")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/fennelLabs/Fennel-Protocol"},"Fennel Protocol")," \u26aa"),(0,o.kt)("td",{parentName:"tr",align:null})),(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:null},"File Storage, Cloud"),(0,o.kt)("td",{parentName:"tr",align:null},(0,o.kt)("a",{parentName:"td",href:"https://github.com/dappforce/subsocial-offchain"},"Subsocial-Offchain")," \ud83d\udfe2, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/playproject-io/datdot"},"DatDot")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/crustio/crust"},"Crust Network")," \ud83d\udfe2, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/rs-ipfs/offchain-ipfs-manual"},"offchain::ipfs")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/canyon-network/canyon"},"Canyon Network")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/Cumulus2021/cess"},"CESS")," \ud83d\udfe2, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/CESSProject/cess-proving-system"},"CESS Proving Subsystem")," \u2754, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/ideal-lab5/iris"},"Iris")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/CESSProject/fmd-cess"},"fmd-cess")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/DanHenton/pocket-substrate/tree/ipfs-ocw"},"IPFS Frame V3")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/threefoldtech/tfchain"},"Threefold Chain")," \ud83d\udfe1, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/Apron-Network/apron-node"},"Apron")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/TDSoftware/substrate-ipfs"},"IPFS Utilities")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://gitlab.com/dinfra/dinfra"},"DINFRA")," \ud83d\udfe2"),(0,o.kt)("td",{parentName:"tr",align:null})),(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:null},"Name Service"),(0,o.kt)("td",{parentName:"tr",align:null},(0,o.kt)("a",{parentName:"td",href:"https://github.com/xaya/substrate-names"},"Substrate Names")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/hskang9/substrate-name-service"},"ENS on Substrate")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/pnsproject/pns-pallets"},"PNS-Pallets")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/HeisenbergLin22/Faceless_milestone2_delivery"},"Faceless")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/ff13dfly/Anchor"},"Anchor")," \u26aa"),(0,o.kt)("td",{parentName:"tr",align:null})),(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:null},"Gaming"),(0,o.kt)("td",{parentName:"tr",align:null},(0,o.kt)("a",{parentName:"td",href:"https://github.com/bit-country/Bit-Country-Blockchain"},"Bit.country")," \ud83d\udfe2, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/SubGame-Network/subgame-network"},"SubGame")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/playzero/subzero"},"subzero")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/web3gamesofficial/web3games-blockchain"},"Web3Games")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/ajuna-network/ajuna-pallets"},"Ajuna Pallets")," \ud83d\udfe2, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/cryptoviet/gafi"},"Gafi Network")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://gitlab.com/asylum-space/asylum-item-nft"},"Asylum")," \ud83d\udfe2, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/3Dpass/3DP"},"3DPass")," \ud83d\udfe2, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/polketio/toearnfun_flutter_app"},"Polket")," \u26aa"),(0,o.kt)("td",{parentName:"tr",align:null})),(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:null},"Computation/AI"),(0,o.kt)("td",{parentName:"tr",align:null},(0,o.kt)("a",{parentName:"td",href:"https://github.com/Deitos-Network/deitos-ip"},"Deitos Network")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/DeepBrainChain/DeepBrainChain-MainChain"},"DeepBrain Chain")," \ud83d\udfe2, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/anudit/cerebrum"},"AI Infrastructure on Blockchain")," \u26aa"),(0,o.kt)("td",{parentName:"tr",align:null})),(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:null},"Enable specific use-cases"),(0,o.kt)("td",{parentName:"tr",align:null},(0,o.kt)("a",{parentName:"td",href:"https://github.com/deep-ink-ventures/pallet_hookpoints"},"pallet-hookpoints")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/airalab/substrate-node-robonomics"},"Robonomics")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/UniversalDot/pallets"},"UniversalDOT")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/EvercityEcosystem/evercity-chain"},"Evercity Sustainable Finance Protocol")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/logion-network/logion-node"},"logion")," \ud83d\udfe2, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/Me-Protocol/rusty-protocol-v0.1/"},"Me Protocol")," \ud83d\udfe2, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/QSTN-US/Polkadot-QSTN-v1/"},"QSTN")," \u26aa"),(0,o.kt)("td",{parentName:"tr",align:null})),(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:null},"NFT"),(0,o.kt)("td",{parentName:"tr",align:null},(0,o.kt)("a",{parentName:"td",href:"https://github.com/capsule-corp-ternoa/chain"},"ternoa")," \ud83d\udfe1, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/danforbes/pallet-nft"},"FRAME Pallet: NFTs for Substrate")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/UniqueNetwork/unique-chain"},"Unique NFT Parachain")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/DNFT-Team/dnft-substrate-node/tree/master/pallets"},"DNFT")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/rmrk-team/rmrk-substrate"},"RMRK-Substrate")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/Popular-Coding/nt-nft"},"NT-NFTs")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/GreenLemonProtocol/dksap-polkadot"},"Green Lemon")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/galacticcouncil/Basilisk-node"},"Basilisk")," \ud83d\udfe2"),(0,o.kt)("td",{parentName:"tr",align:null})),(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:null},"Randomness"),(0,o.kt)("td",{parentName:"tr",align:null},(0,o.kt)("a",{parentName:"td",href:"https://github.com/Cardinal-Cryptography/substrate/tree/randomness-beacon"},"DKG and Randomness Beacon")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/random-meat/drand-substrate-client"},"drand-substrate-client")," \u26aa"),(0,o.kt)("td",{parentName:"tr",align:null})),(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:null},"Licensing"),(0,o.kt)("td",{parentName:"tr",align:null},(0,o.kt)("a",{parentName:"td",href:"https://github.com/anagolay/anagolay-chain"},"Anagolay Network")," \u2754"),(0,o.kt)("td",{parentName:"tr",align:null})),(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:null},"Banking Integration"),(0,o.kt)("td",{parentName:"tr",align:null},(0,o.kt)("a",{parentName:"td",href:"https://github.com/element36-io/ebics-java-service"},"FIAT on-off-ramp")," \ud83d\udfe2"),(0,o.kt)("td",{parentName:"tr",align:null})),(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:null},"Crowdfunding"),(0,o.kt)("td",{parentName:"tr",align:null},(0,o.kt)("a",{parentName:"td",href:"https://github.com/ImbueNetwork/imbue"},"Imbue Network")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/zhangjiannan/QFgrant"},"Quadratic Funding pallet by Dora")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/OAK-Foundation/quadratic-funding-pallet/tree/master"},"Quadratic Funding pallet by OAK")," \u26aa"),(0,o.kt)("td",{parentName:"tr",align:null},(0,o.kt)("a",{parentName:"td",href:"https://ethresear.ch/t/minimal-anti-collusion-infrastructure/5413"},"Minimum Anti-Collusion Infrastructure (MACI)"))),(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:null},"Collection of Pallets"),(0,o.kt)("td",{parentName:"tr",align:null},(0,o.kt)("a",{parentName:"td",href:"https://github.com/open-web3-stack/open-runtime-module-library"},"Substrate Open Runtime Module Library")," \ud83d\udfe2, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/galacticcouncil/warehouse"},"warehouse")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/InvArch/InvArch-Frames"},"InvArch FRAME Pallet Library")," \ud83d\udfe2"),(0,o.kt)("td",{parentName:"tr",align:null})),(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:null},"Marketplaces"),(0,o.kt)("td",{parentName:"tr",align:null},(0,o.kt)("a",{parentName:"td",href:"https://github.com/WowLabz/dot-marketplace-v2/tree/Phase3_Milestone3"},"Dot Marketplace")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/hashed-io/hashed-substrate/tree/main/pallets/gated-marketplace"},"Gated Marketplace")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/Popular-Coding/ventur"},"Ventur")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/RELAI-Network/futur-protocol"},"Futur Protocol")," \u26aa"),(0,o.kt)("td",{parentName:"tr",align:null})),(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:null},"Carbon Credits"),(0,o.kt)("td",{parentName:"tr",align:null},(0,o.kt)("a",{parentName:"td",href:"https://github.com/bitgreen/bitg-node"},"BitGreen")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/EvercityEcosystem/carbon-assets"},"Carbon Assets Pallet")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/SequesterChain/pallets"},"Sequester Pallets")," \u26aa"),(0,o.kt)("td",{parentName:"tr",align:null})),(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:null},"UTXO"),(0,o.kt)("td",{parentName:"tr",align:null},(0,o.kt)("a",{parentName:"td",href:"https://github.com/Off-Narrative-Labs/Tuxedo"},"Tuxedo")," \ud83d\udfe2"),(0,o.kt)("td",{parentName:"tr",align:null})),(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:null},"Other"),(0,o.kt)("td",{parentName:"tr",align:null},(0,o.kt)("a",{parentName:"td",href:"https://github.com/Moonsong-Labs/moonkit"},"Moonkit")," \ud83d\udfe2, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/gautamdhameja/substrate-account-filter"},"Substrate Account Filter")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/opentensor/subtensor"},"Subtensor")," \ud83d\udfe2, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/AdMetaNetwork/admeta"},"AdMeta")," \ud83d\udfe1, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/chocolatenetwork/chocolate-node"},"Chocolate Node")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/virto-network/virto-node"},"Virto Network")," \ud83d\udfe2, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/gautamdhameja/substrate-validator-set"},"Substrate Validator Set")," \ud83d\udfe1, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/DEIPworld/deip-node"},"DEIP")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/debionetwork/debio-node"},"DeBio")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/mathwallet/MathChain"},"MathChain")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/encointer/encointer-node"},"encointer")," \ud83d\udfe1, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/grasslandnetwork/substrate_node"},"Grassland")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/rusty-crewmates/substrate-tutorials"},"Substrate-Tutorials")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/Fair-Squares/fair-squares"},"Fair Squares")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/totem-tech/totem"},"Totem Live Accounting")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/herou/EscrowPallet"},"Escrow Pallet")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/NexTokenTech/TREX"},"TREX")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/relationlabs/Relation-Graph"},"Relation Graph")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/gertt/Invoice"},"Decentralized Invoice")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/redstone-network/redstone-node"},"Redstone Network")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/WunderbarNetwork/access-control"},"Access Control Pallet")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/Omniverse-Web3-Labs/omniverse-swap/tree/web3-grant"},"Omniverse DLT")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/polytope-labs/substrate-ismp"},"ISMP")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/w3f/xcmp_prototype_playground"},"XCMP")," \ud83d\udfe1, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/dhiway/cord"},"CORD Chain")," \ud83d\udfe2"),(0,o.kt)("td",{parentName:"tr",align:null},"Decentralized review/reputation system")))),(0,o.kt)("h3",{id:"host"},"Host"),(0,o.kt)("table",null,(0,o.kt)("thead",{parentName:"table"},(0,o.kt)("tr",{parentName:"thead"},(0,o.kt)("th",{parentName:"tr",align:null},"Components"),(0,o.kt)("th",{parentName:"tr",align:null},"Existing projects"),(0,o.kt)("th",{parentName:"tr",align:null},"Potentially interesting projects"))),(0,o.kt)("tbody",{parentName:"table"},(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:null},"Rust"),(0,o.kt)("td",{parentName:"tr",align:null},(0,o.kt)("a",{parentName:"td",href:"https://github.com/paritytech/polkadot-sdk/tree/master/substrate"},"Substrate")," \ud83d\udfe2, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/paritytech/polkadot-sdk/tree/master/cumulus"},"Cumulus")," \ud83d\udfe2"),(0,o.kt)("td",{parentName:"tr",align:null})),(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:null},"C++"),(0,o.kt)("td",{parentName:"tr",align:null},(0,o.kt)("a",{parentName:"td",href:"https://github.com/soramitsu/kagome"},"Kagome")," \ud83d\udfe2, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/Zondax/mayon"},"Mayon")," \u26aa"),(0,o.kt)("td",{parentName:"tr",align:null})),(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:null},"Go"),(0,o.kt)("td",{parentName:"tr",align:null},(0,o.kt)("a",{parentName:"td",href:"https://github.com/ChainSafe/gossamer"},"Gossamer")," \ud83d\udfe2"),(0,o.kt)("td",{parentName:"tr",align:null})),(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:null},"Java"),(0,o.kt)("td",{parentName:"tr",align:null},(0,o.kt)("a",{parentName:"td",href:"https://github.com/LimeChain/Fruzhin"},"Fruzhin")," \ud83d\udfe2, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/LimeChain/java-host-research"},"Java Host Research")," \u26aa"),(0,o.kt)("td",{parentName:"tr",align:null})),(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:null},"AssemblyScript"),(0,o.kt)("td",{parentName:"tr",align:null}),(0,o.kt)("td",{parentName:"tr",align:null})),(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:null},"Light Client"),(0,o.kt)("td",{parentName:"tr",align:null},(0,o.kt)("a",{parentName:"td",href:"https://github.com/smol-dot/smoldot"},"smoldot")," \ud83d\udfe2, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/paritytech/substrate-connect"},"Substrate Connect")," \ud83d\udfe2, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/eqlabs/polkadot-light-client"},"C++ Polkadot Light Client")," \u26aa"),(0,o.kt)("td",{parentName:"tr",align:null})),(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:null},"Testing"),(0,o.kt)("td",{parentName:"tr",align:null},(0,o.kt)("a",{parentName:"td",href:"https://github.com/LimeChain/polkadot-conformance"},"Polkadot Conformance")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/sigp/polkafuzz"},"Polkafuzz")," \u26aa"),(0,o.kt)("td",{parentName:"tr",align:null})))),(0,o.kt)("h3",{id:"network-maintenance-tools"},"Network Maintenance Tools"),(0,o.kt)("table",null,(0,o.kt)("thead",{parentName:"table"},(0,o.kt)("tr",{parentName:"thead"},(0,o.kt)("th",{parentName:"tr",align:null},"Components"),(0,o.kt)("th",{parentName:"tr",align:null},"Existing projects"),(0,o.kt)("th",{parentName:"tr",align:null},"Potentially interesting projects"))),(0,o.kt)("tbody",{parentName:"table"},(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:null},"Secure validator setup"),(0,o.kt)("td",{parentName:"tr",align:null},(0,o.kt)("a",{parentName:"td",href:"https://github.com/polkachu/polkadot-validator"},"Polkadot Validation Node Ansible Setup")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/w3f/polkadot-validator-setup"},"W3F Polkadot Validator Setup")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/Nexus2k/polkadot-ansible"},"polkadot-ansible")," \u26aa"),(0,o.kt)("td",{parentName:"tr",align:null})),(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:null},"High availability setup"),(0,o.kt)("td",{parentName:"tr",align:null},(0,o.kt)("a",{parentName:"td",href:"https://github.com/luguslabs/archipel"},"Archipel")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/protofire/polkadot-failover-mechanism"},"Polkadot Failover Mechanism")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/Datagen-Project/Datagen-Substrate-Grant"},"Datagen")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/bright/substrate-raft"},"High Availability Validator Setup")," \u26aa"),(0,o.kt)("td",{parentName:"tr",align:null})),(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:null},"Load Balanced Endpoints"),(0,o.kt)("td",{parentName:"tr",align:null},(0,o.kt)("a",{parentName:"td",href:"https://github.com/insight-w3f/terragrunt-polkadot"},"terragrunt-polkadot")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/sudoblockio/substrate-meta"},"Geometry Labs' Substrate Meta repo")," \u26aa"),(0,o.kt)("td",{parentName:"tr",align:null})),(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:null},"Deployment Tools"),(0,o.kt)("td",{parentName:"tr",align:null},(0,o.kt)("a",{parentName:"td",href:"https://github.com/Blockdaemon/bpm-sdk"},"Polkadot Package Manager")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/akropolisio/polkahub-monorepo"},"PolkaHub")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/AvadoDServer/AVADO-DNP-Polkadot-custom"},"Avado")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/w3f/polkadot-deployer"},"Polkadot Deployer")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/for-parity-with-love/unified-collator-node-deployment"},"Unified Collator Deployment")," \u26aa"),(0,o.kt)("td",{parentName:"tr",align:null})),(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:null},"Validator monitoring"),(0,o.kt)("td",{parentName:"tr",align:null},(0,o.kt)("a",{parentName:"td",href:"https://github.com/turboflakes/one-t"},"ONE-T")," \ud83d\udfe2, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/helikon-labs/subvt-backend"},"SubVT")," \ud83d\udfe2, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/SimplyVC/panic"},"P.A.N.I.C.")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/galacticcouncil/polkalert"},"Polkalert")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/nodebreaker0-0/substrate/tree/prometheus_v0.3"},"B-Harvest")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/stakezone/nmonpolkadot"},"nmonpolkadot")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/ironoa/polkadot-k8s-monitor"},"Polkadot-K8s-Monitor")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/w3f/polkadot-watcher"},"Polkadot-Watcher")," \ud83d\udfe2, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/helikon-labs/polkadot-kusama-1kv-telegram-bot"},"1KV Telegram Bot")," \u26aa"),(0,o.kt)("td",{parentName:"tr",align:null})),(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:null},"Validator payout management"),(0,o.kt)("td",{parentName:"tr",align:null},(0,o.kt)("a",{parentName:"td",href:"https://github.com/Colm3na/substrate-auto-payout"},"Substrate validator auto payout")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/w3f/polkadot-payouts"},"Polkadot Payouts")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/emostov/staking-payouts"},"staking-payouts CLI")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/stakelink/substrate-payctl"},"Payctl")," \ud83d\udfe2, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/turboflakes/crunch"},"crunch")," \ud83d\udfe2"),(0,o.kt)("td",{parentName:"tr",align:null})),(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:null},"Staking Miner"),(0,o.kt)("td",{parentName:"tr",align:null},(0,o.kt)("a",{parentName:"td",href:"https://github.com/paritytech/staking-miner-v2"},"Staking Miner v2")," \ud83d\udfe2"),(0,o.kt)("td",{parentName:"tr",align:null})),(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:null},"Nominator Tools"),(0,o.kt)("td",{parentName:"tr",align:null},(0,o.kt)("a",{parentName:"td",href:"https://github.com/miepsik/validators_selection"},"Validator Selection")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/filippoweb3/polkanalyzer"},"Polkanalyzer")," \ud83d\udfe2, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/filippoweb3/polkanalyzer-app"},"Polkanalyzer-app")," \ud83d\udfe1"),(0,o.kt)("td",{parentName:"tr",align:null})))),(0,o.kt)("h3",{id:"signatures"},"Signatures"),(0,o.kt)("table",null,(0,o.kt)("thead",{parentName:"table"},(0,o.kt)("tr",{parentName:"thead"},(0,o.kt)("th",{parentName:"tr",align:null},"Components"),(0,o.kt)("th",{parentName:"tr",align:null},"Existing projects"),(0,o.kt)("th",{parentName:"tr",align:null},"Potentially interesting projects"))),(0,o.kt)("tbody",{parentName:"table"},(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:null},"SR25519"),(0,o.kt)("td",{parentName:"tr",align:null},(0,o.kt)("a",{parentName:"td",href:"https://github.com/w3f/schnorrkel"},"rust")," \ud83d\udfe2(contains partial bindings for C, JavaScript, and Python), ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/gautamdhameja/sr25519-dotnet"},".Net bindings")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/usetech-llc/sr25519"},"C")," \u26aa",(0,o.kt)("em",{parentName:"td"},"(old)"),", ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/TerenceGe/sr25519-donna"},"C")," \u26aa",(0,o.kt)("em",{parentName:"td"},"(new)"),", ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/soramitsu/soramitsu-sr25519-crust"},"C/C++")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/usetech-llc/sr25519_dotnet"},"C#")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/ChainSafe/go-schnorrkel"},"Go")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/debuggor/schnorrkel-java"},"java")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/gmajor-encrypt/sr25519-bindings"},"PHP")," \u26aa"),(0,o.kt)("td",{parentName:"tr",align:null})),(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:null},"Signature Aggregation"),(0,o.kt)("td",{parentName:"tr",align:null},(0,o.kt)("a",{parentName:"td",href:"https://github.com/w3f/apk-proofs"},"apk-proofs")," \u26aa"),(0,o.kt)("td",{parentName:"tr",align:null})),(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:null},"Distributed key generation (DKG) or management"),(0,o.kt)("td",{parentName:"tr",align:null},(0,o.kt)("a",{parentName:"td",href:"https://github.com/isislovecruft/frost-dalek"},"keygen.rs")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/w3f-grants-archive/sword"},"Secure Wallet Origin Distribution (SWORD)")," \u26aa"),(0,o.kt)("td",{parentName:"tr",align:null})),(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:null},"Validator HSMs"),(0,o.kt)("td",{parentName:"tr",align:null},(0,o.kt)("a",{parentName:"td",href:"https://github.com/Zondax/buildroot-zondax"},"Zondax Remote Signer")," \u26aa"),(0,o.kt)("td",{parentName:"tr",align:null})),(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:null},"MPC"),(0,o.kt)("td",{parentName:"tr",align:null},(0,o.kt)("a",{parentName:"td",href:"https://github.com/orochi-network/orochi-network.github.io"},"Orochi Network")," \ud83d\udfe2"),(0,o.kt)("td",{parentName:"tr",align:null})))),(0,o.kt)("h3",{id:"consensus"},"Consensus"),(0,o.kt)("table",null,(0,o.kt)("thead",{parentName:"table"},(0,o.kt)("tr",{parentName:"thead"},(0,o.kt)("th",{parentName:"tr",align:null},"Components"),(0,o.kt)("th",{parentName:"tr",align:null},"Existing projects"),(0,o.kt)("th",{parentName:"tr",align:null},"Potentially interesting projects"))),(0,o.kt)("tbody",{parentName:"table"},(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:null},"PoC"),(0,o.kt)("td",{parentName:"tr",align:null},(0,o.kt)("a",{parentName:"td",href:"https://github.com/subspace/substrate"},"Spartan")," \u26aa"),(0,o.kt)("td",{parentName:"tr",align:null})),(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:null},"PoW"),(0,o.kt)("td",{parentName:"tr",align:null},(0,o.kt)("a",{parentName:"td",href:"https://github.com/paritytech/polkadot-sdk/tree/master/substrate/client/consensus/pow"},"PoW consensus for Substrate")," \ud83d\udfe2, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/kulupu/kulupu/tree/master/pow"},"RandomX")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/substrate-developer-hub/recipes/tree/master/consensus/sha3pow"},"Sha3 PoW")," \u26aa"),(0,o.kt)("td",{parentName:"tr",align:null})),(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:null},"Block production"),(0,o.kt)("td",{parentName:"tr",align:null},(0,o.kt)("a",{parentName:"td",href:"https://github.com/paritytech/polkadot-sdk/tree/master/substrate/client/consensus/babe"},"BABE")," \ud83d\udfe2, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/paritytech/polkadot-sdk/tree/master/substrate/client/consensus/aura"},"Aura")," \ud83d\udfe2"),(0,o.kt)("td",{parentName:"tr",align:null})),(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:null},"Finality"),(0,o.kt)("td",{parentName:"tr",align:null},(0,o.kt)("a",{parentName:"td",href:"https://github.com/paritytech/polkadot-sdk/tree/master/substrate/frame/grandpa"},"GRANDPA")," \ud83d\udfe2, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/Cardinal-Cryptography/AlephBFT"},"AlephBFT")," \ud83d\udfe2"),(0,o.kt)("td",{parentName:"tr",align:null})),(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:null},"Other"),(0,o.kt)("td",{parentName:"tr",align:null},(0,o.kt)("a",{parentName:"td",href:"https://github.com/PureStake/nimbus"},"Nimbus: Upgradeable consensus framework")," \u26aa"),(0,o.kt)("td",{parentName:"tr",align:null})))),(0,o.kt)("h3",{id:"networking"},"Networking"),(0,o.kt)("table",null,(0,o.kt)("thead",{parentName:"table"},(0,o.kt)("tr",{parentName:"thead"},(0,o.kt)("th",{parentName:"tr",align:null},"Components"),(0,o.kt)("th",{parentName:"tr",align:null},"Existing projects"),(0,o.kt)("th",{parentName:"tr",align:null},"Potentially interesting projects"))),(0,o.kt)("tbody",{parentName:"table"},(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:null},"SCALE Codec"),(0,o.kt)("td",{parentName:"tr",align:null},(0,o.kt)("a",{parentName:"td",href:"https://github.com/paritytech/parity-scale-codec"},"Rust")," \ud83d\udfe2, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/paritytech/parity-scale-codec-ts"},"TypeScript")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/polkascan/py-scale-codec"},"Python")," \ud83d\udfe2, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/ChainSafe/gossamer/tree/development/pkg/scale/"},"Golang Chainsafe")," \ud83d\udfe2, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/itering/scale.go"},"Golang Itering")," \ud83d\udfe1, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/MatthewDarnell/cScale"},"C")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/soramitsu/scale-codec-cpp"},"C++")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/polkadot-js/api"},"JavaScript")," \ud83d\udfe2, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/LimeChain/as-scale-codec"},"AssemblyScript")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/airalab/hs-web3/tree/master/packages/scale/src/Codec"},"Haskell")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/emeraldpay/polkaj"},"Java")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/itering/scale.rb"},"Ruby")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/nbltrust/dart-scale-codec"},"Dart")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/tesseract-one/swift-scale-codec"},"Swift")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/sublabdev/scale-codec-swift"},"scale-codec-swift")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/sublabdev/scale-codec-kotlin"},"scale-codec-kotlin")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/gmajor-encrypt/php-scale-codec"},"PHP")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/soramitsu/scale-codec-js-library"},"JavaScript by Soramitsu")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/gmajor-encrypt/scale-codec-comparator"},"Scale Codec Comparator")," \ud83d\udfe2, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/darwinia-network/darwinia-messages-sol/blob/master/contracts/utils/contracts/ScaleCodec.sol"},"ScaleCodec.sol by Darwinia")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/Snowfork/snowbridge/blob/main/core/packages/contracts/contracts/ScaleCodec.sol"},"ScaleCodec.sol by Snowfork")," \ud83d\udfe2, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/arijitAD/dotscale"},"Dotscale")," \u26aa"),(0,o.kt)("td",{parentName:"tr",align:null})),(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:null},"Networking Framework"),(0,o.kt)("td",{parentName:"tr",align:null},(0,o.kt)("a",{parentName:"td",href:"https://github.com/libp2p/libp2p"},"libp2p")," \u26aa"),(0,o.kt)("td",{parentName:"tr",align:null})),(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:null},"DHT Crawler"),(0,o.kt)("td",{parentName:"tr",align:null},(0,o.kt)("a",{parentName:"td",href:"https://github.com/atredispartners/dht-crawler-polkadot"},"Go")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/emeraldpay/polkabot"},"Kotlin")," \u26aa"),(0,o.kt)("td",{parentName:"tr",align:null})),(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:null},"RPC Tor-like access"),(0,o.kt)("td",{parentName:"tr",align:null},(0,o.kt)("a",{parentName:"td",href:"https://github.com/Evanesco-Labs/WhiteNoise.rs"},"WhiteNoise")," \u26aa"),(0,o.kt)("td",{parentName:"tr",align:null})))),(0,o.kt)("h3",{id:"primitives"},"Primitives"),(0,o.kt)("table",null,(0,o.kt)("thead",{parentName:"table"},(0,o.kt)("tr",{parentName:"thead"},(0,o.kt)("th",{parentName:"tr",align:null},"Components"),(0,o.kt)("th",{parentName:"tr",align:null},"Existing projects"),(0,o.kt)("th",{parentName:"tr",align:null},"Potentially interesting projects"))),(0,o.kt)("tbody",{parentName:"table"},(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:null},"Storage"),(0,o.kt)("td",{parentName:"tr",align:null},(0,o.kt)("a",{parentName:"td",href:"https://github.com/frisitano/merkle-tree-db"},"Merkle Tree DB")," \u26aa"),(0,o.kt)("td",{parentName:"tr",align:null})),(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:null},"Merkle Proofs"),(0,o.kt)("td",{parentName:"tr",align:null},(0,o.kt)("a",{parentName:"td",href:"https://github.com/polytope-labs/solidity-merkle-trees"},"Solidity Trie Verifier")," \ud83d\udfe2"),(0,o.kt)("td",{parentName:"tr",align:null})))),(0,o.kt)("h2",{id:"contributing"},"Contributing"),(0,o.kt)("p",null,"Pull requests, issues, or other contributions from the community are encouraged! You can not only\nadd specific projects, but also potentially interesting fields/areas which are currently missing in\nthe tech stack."),(0,o.kt)("p",null,"\u2757 All technologies listed above need to be open-source. Ideally, the links\nlead directly to the code."),(0,o.kt)("p",null,(0,o.kt)("em",{parentName:"p"},"Note: You will need a GitHub account to suggest changes or open issues. If you do not have one, you\nmay ",(0,o.kt)("a",{parentName:"em",href:"https://github.com/join"},"sign up for free"),".")))}k.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/ccc1222e.84d45f59.js b/assets/js/ccc1222e.84d45f59.js new file mode 100644 index 0000000000..38da5d87aa --- /dev/null +++ b/assets/js/ccc1222e.84d45f59.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[6920],{3905:(t,a,e)=>{e.d(a,{Zo:()=>m,kt:()=>k});var r=e(67294);function n(t,a,e){return a in t?Object.defineProperty(t,a,{value:e,enumerable:!0,configurable:!0,writable:!0}):t[a]=e,t}function o(t,a){var e=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);a&&(r=r.filter((function(a){return Object.getOwnPropertyDescriptor(t,a).enumerable}))),e.push.apply(e,r)}return e}function i(t){for(var a=1;a=0||(n[e]=t[e]);return n}(t,a);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(t);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(t,e)&&(n[e]=t[e])}return n}var l=r.createContext({}),h=function(t){var a=r.useContext(l),e=a;return t&&(e="function"==typeof t?t(a):i(i({},a),t)),e},m=function(t){var a=h(t.components);return r.createElement(l.Provider,{value:a},t.children)},s="mdxType",d={inlineCode:"code",wrapper:function(t){var a=t.children;return r.createElement(r.Fragment,{},a)}},u=r.forwardRef((function(t,a){var e=t.components,n=t.mdxType,o=t.originalType,l=t.parentName,m=p(t,["components","mdxType","originalType","parentName"]),s=h(e),u=n,k=s["".concat(l,".").concat(u)]||s[u]||d[u]||o;return e?r.createElement(k,i(i({ref:a},m),{},{components:e})):r.createElement(k,i({ref:a},m))}));function k(t,a){var e=arguments,n=a&&a.mdxType;if("string"==typeof t||n){var o=e.length,i=new Array(o);i[0]=u;var p={};for(var l in a)hasOwnProperty.call(a,l)&&(p[l]=a[l]);p.originalType=t,p[s]="string"==typeof t?t:n,i[1]=p;for(var h=2;h{e.r(a),e.d(a,{assets:()=>m,contentTitle:()=>l,default:()=>k,frontMatter:()=>p,metadata:()=>h,toc:()=>s});var r=e(87462),n=e(63366),o=(e(67294),e(3905)),i=["components"],p={id:"build-open-source",title:"Open Source Stack",sidebar_label:"Open Source Stack",description:"Overview of the open source Polkadot/Kusama Tech Stack",keywords:["open","source","development","code","resources","tools","apis"],slug:"../build-open-source"},l="Open Source Polkadot Stack \x3c!-- omit in toc --\x3e",h={unversionedId:"build/build-open-source",id:"build/build-open-source",title:"Open Source Stack",description:"Overview of the open source Polkadot/Kusama Tech Stack",source:"@site/../docs/build/build-open-source.md",sourceDirName:"build",slug:"/build-open-source",permalink:"/docs/build-open-source",draft:!1,tags:[],version:"current",lastUpdatedBy:"Keegan | W3F",lastUpdatedAt:1716413011,formattedLastUpdatedAt:"May 22, 2024",frontMatter:{id:"build-open-source",title:"Open Source Stack",sidebar_label:"Open Source Stack",description:"Overview of the open source Polkadot/Kusama Tech Stack",keywords:["open","source","development","code","resources","tools","apis"],slug:"../build-open-source"},sidebar:"docs",previous:{title:"Explorer, Data, & Indexing Tools",permalink:"/docs/build-data"},next:{title:"Hackathons",permalink:"/docs/build-hackathon"}},m={},s=[{value:"About",id:"about",level:2},{value:"Layers of Polkadot Stack",id:"layers-of-polkadot-stack",level:2},{value:"Wallets",id:"wallets",level:3},{value:"User Interface",id:"user-interface",level:3},{value:"Tools, APIs, and Languages",id:"tools-apis-and-languages",level:3},{value:"ink! Smart Contracts",id:"ink-smart-contracts",level:3},{value:"Chains and Pallets",id:"chains-and-pallets",level:3},{value:"Host",id:"host",level:3},{value:"Network Maintenance Tools",id:"network-maintenance-tools",level:3},{value:"Signatures",id:"signatures",level:3},{value:"Consensus",id:"consensus",level:3},{value:"Networking",id:"networking",level:3},{value:"Primitives",id:"primitives",level:3},{value:"Contributing",id:"contributing",level:2}],d={toc:s},u="wrapper";function k(t){var a=t.components,e=(0,n.Z)(t,i);return(0,o.kt)(u,(0,r.Z)({},d,e,{components:a,mdxType:"MDXLayout"}),(0,o.kt)("h1",{id:"open-source-polkadot-stack--omit-in-toc-"},"Open Source Polkadot Stack "),(0,o.kt)("admonition",{title:"Do your research before using open-source tools",type:"caution"},(0,o.kt)("p",{parentName:"admonition"},"The tools listed here are open-source and are linked directly to their source code. Before using these tools to build your projects, always ",(0,o.kt)("a",{parentName:"p",href:"/docs/how-to-dyor"},"do your research")," and be aware of ",(0,o.kt)("a",{parentName:"p",href:"/docs/learn-scams"},"scams"),".")),(0,o.kt)("p",null,"This page aims to provide an overview of the open-source Polkadot Tech Stack."),(0,o.kt)("p",null,"This is a living document, and we rely on everyone to contribute and help maintain\nit. ",(0,o.kt)("a",{parentName:"p",href:"#contributing"},(0,o.kt)("strong",{parentName:"a"},"Please feel free to make edits and additions via pull requests")),". We\napologize if we missed your project!"),(0,o.kt)("hr",null),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("a",{parentName:"li",href:"#about"},"About")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("a",{parentName:"li",href:"#layers-of-polkadot-stack"},"Layers of Polkadot Stack"),(0,o.kt)("ul",{parentName:"li"},(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("a",{parentName:"li",href:"#wallets"},"Wallets")," "),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("a",{parentName:"li",href:"#user-interface"},"User Interface")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("a",{parentName:"li",href:"#tools-apis-and-languages"},"Tools, APIs, and Languages")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("a",{parentName:"li",href:"#ink-smart-contracts"},"ink! Smart Contracts")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("a",{parentName:"li",href:"#chains-and-pallets"},"Chains and Pallets")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("a",{parentName:"li",href:"#host"},"Host")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("a",{parentName:"li",href:"#network-maintenance-tools"},"Network Maintenance Tools")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("a",{parentName:"li",href:"#signatures"},"Signatures")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("a",{parentName:"li",href:"#consensus"},"Consensus")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("a",{parentName:"li",href:"#networking"},"Networking")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("a",{parentName:"li",href:"#primitives"},"Primitives")))),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("a",{parentName:"li",href:"#contributing"},"Contributing"))),(0,o.kt)("h2",{id:"about"},"About"),(0,o.kt)("p",null,"The Polkadot Tech Stack is a subset of the Web 3.0 Tech Stack, which consists of the ",(0,o.kt)("strong",{parentName:"p"},"open-source"),"\ntechnologies contributing to and relying on ",(0,o.kt)("a",{parentName:"p",href:"https://polkadot.network/"},"Polkadot"),". It is meant to be used\nfor decentralized application (Dapp) development within numerous verticals, including DeFi, Gaming,\nProvenance and many others not pictured below."),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre"},"|------|--------|------------|\n| DeFi | Gaming | Provenance |\n|______|________|____________|\n Dapps\n|--------------------------/-|\n| Explorers, Wallets / |\n|------------------------/---|\n| Tools, Apis, Languages/ |\n|----------------------/-----|\n| 2nd layer protocols / |\n|--------------------/-------|\n| Chains / other |\n|------------------/--- --|\n| *Polkadot* | tech |\n|------------------\\---------|\n| P2P, Crypto, Wasm \\ |\n|--------------------\\-------|\n")),(0,o.kt)("h2",{id:"layers-of-polkadot-stack"},"Layers of Polkadot Stack"),(0,o.kt)("p",null,"In the below sections, you can find a list of different layers of the Polkadot Stack."),(0,o.kt)("p",null,(0,o.kt)("strong",{parentName:"p"},"Maintenance Status"),":"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"\ud83d\udfe2 Actively maintained"),(0,o.kt)("li",{parentName:"ul"},"\ud83d\udfe1 Stale (no activity on the main branch for one month)"),(0,o.kt)("li",{parentName:"ul"},"\u26aa Unmaintained (no activity on the main branch for more than three months)")),(0,o.kt)("h3",{id:"wallets"},"Wallets"),(0,o.kt)("table",null,(0,o.kt)("thead",{parentName:"table"},(0,o.kt)("tr",{parentName:"thead"},(0,o.kt)("th",{parentName:"tr",align:null},"Components"),(0,o.kt)("th",{parentName:"tr",align:null},"Existing projects"),(0,o.kt)("th",{parentName:"tr",align:null},"Potentially interesting projects"))),(0,o.kt)("tbody",{parentName:"table"},(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:null},"Web Wallets"),(0,o.kt)("td",{parentName:"tr",align:null},(0,o.kt)("a",{parentName:"td",href:"https://github.com/ChainSafe/Multix"},"Multix")," \ud83d\udfe2, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/polkasafe/polkasafe-ui"},"Polkasafe")," \ud83d\udfe2, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/polkadot-js/apps"},"polkadot-js/apps")," \ud83d\udfe2, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/TalismanSociety/talisman-web"},"Talisman Web Application")," \ud83d\udfe2, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/enkryptcom/mydotwallet"},"mydotwallet")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/dappforce/subid"},"Sub ID")," \ud83d\udfe1, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/Primis-Labs/client"},"Primis")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/w3finance/sakura"},"Sakura")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/w3f-grants-archive/Web3Box-apps"},"Web3Box")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/CoongCrafts/coong-wallet"},"Coong Wallet")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/itering/subscan-multisig-react"},"Subscan Multisig UI - React")," \ud83d\udfe1, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/itering/subscan-multisig-ui"},"Subscan Multisig UI")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/DoraFactory/dorafactory-multisig"},"Dorafactory-Multisig")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/paritytech/capi-multisig-app"},"Capi Multisig App")," \u26aa"),(0,o.kt)("td",{parentName:"tr",align:null},"User-friendly Wallet based on the ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/paritytech/polkadot-sdk/tree/master/substrate/frame/recovery"},"Recovery Pallet"),", Web wallets focused on user-onboarding (e.g. using ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/near/near-wallet"},"localStorage"),")")),(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:null},"Desktop Wallets"),(0,o.kt)("td",{parentName:"tr",align:null},(0,o.kt)("a",{parentName:"td",href:"https://github.com/novasamatech/nova-spektr"},"nova-spektr")," \ud83d\udfe2, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/w3f-grants-archive/omni-desktop-prototype"},"Omni desktop")," \u26aa"),(0,o.kt)("td",{parentName:"tr",align:null},"Enterprise Wallets")),(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:null},"Browser Extensions"),(0,o.kt)("td",{parentName:"tr",align:null},(0,o.kt)("a",{parentName:"td",href:"https://github.com/TalismanSociety/talisman"},"Talisman-Extension")," \ud83d\udfe2, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/Koniverse/SubWallet-Extension"},"SubWallet-Extension")," \ud83d\udfe2, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/enkryptcom/enKrypt"},"Enkrypt")," \ud83d\udfe2, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/polkadot-js/extension"},"Polkadot{.js}")," \ud83d\udfe2, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/PolkaGate/polkagate-extension"},"PolkaGate")," \ud83d\udfe2, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/ChainBridgeNetworkTeam/Doter"},"Doter")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/GetSpeckle/speckle-browser-extension"},"Speckle OS")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/blockcoders/kuma-wallet"},"Kuma Cross-chain Wallet")," \u26aa"),(0,o.kt)("td",{parentName:"tr",align:null},"Sign-in with your Polkadot, Kusama, etc. account.")),(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:null},"Mobile Wallets"),(0,o.kt)("td",{parentName:"tr",align:null},(0,o.kt)("a",{parentName:"td",href:"https://github.com/novasamatech/nova-wallet-ios"},"Nova Wallet iOS")," \ud83d\udfe2, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/novasamatech/nova-wallet-android"},"Nova Wallet Android")," \ud83d\udfe2, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/paritytech/parity-signer"},"Polkadot Vault")," \ud83d\udfe2, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/soramitsu/fearless-Android"},"Fearless Wallet Android")," \ud83d\udfe2, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/soramitsu/fearless-iOS"},"Fearless Wallet iOS")," \ud83d\udfe1, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/Koniverse/SubWallet-Mobile"},"SubWallet-Mobile")," \ud83d\udfe2, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/Kalapaja/kampela-firmware"},"Kampela")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/airgap-it/airgap-wallet"},"AirGap")," \ud83d\udfe1, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/Interstellar-Network/wallet-app"},"Interstellar Network")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/luniehq/lunie"},"Lunie")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/polkawallet-io/polkawallet-flutter"},"Polkawallet")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/consenlabs/token-core"},"imToken")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/stylo-app/stylo"},"Stylo")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/fractapp/fractapp/"},"Fractapp")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/hypha-dao/hashed-wallet"},"Hashed Wallet")," \u26aa"),(0,o.kt)("td",{parentName:"tr",align:null})),(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:null},"Burner Wallets/Faucet/Gifts"),(0,o.kt)("td",{parentName:"tr",align:null},(0,o.kt)("a",{parentName:"td",href:"https://github.com/hamidra/dotdrop"},"dotdrop")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/vue-polkadot/apps"},"KodaDot")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/AstarNetwork/astar-faucet-bot"},"Astar Faucet Bot")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/karooolis/sybil-resistant-substrate-faucet"},"Generic sybil-resistant faucet")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/StringNick/sybil-resistant-chat-bot-substrate-faucet"},"sybil-resistant Chat Bot Faucet")," \u26aa"),(0,o.kt)("td",{parentName:"tr",align:null},"Faucet (a sybil-resistant way to receive free tokens)")),(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:null},"Wallet Plugins"),(0,o.kt)("td",{parentName:"tr",align:null},(0,o.kt)("a",{parentName:"td",href:"https://github.com/ChainSafe/metamask-snap-polkadot"},"Metamask-Snap by Chainsafe")," \ud83d\udfe1"),(0,o.kt)("td",{parentName:"tr",align:null})),(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:null},"CLI Wallet"),(0,o.kt)("td",{parentName:"tr",align:null},(0,o.kt)("a",{parentName:"td",href:"https://github.com/yxf/subwallet"},"Subwallet")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/canontech/proxy-hot-wallet"},"Proxy-hot-wallet")," \u26aa"),(0,o.kt)("td",{parentName:"tr",align:null})),(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:null},"Hardware Wallets"),(0,o.kt)("td",{parentName:"tr",align:null},(0,o.kt)("a",{parentName:"td",href:"https://github.com/ZondaX/ledger-polkadot"},"Ledger Polkadot")," \ud83d\udfe1, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/Zondax/ledger-kusama"},"Ledger Kusama")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/Zondax/ledger-statemint"},"Ledger Statemint")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/Zondax/ledger-statemine"},"Ledger Statemine")," \u26aa"),(0,o.kt)("td",{parentName:"tr",align:null},"Trezor")))),(0,o.kt)("h3",{id:"user-interface"},"User Interface"),(0,o.kt)("table",null,(0,o.kt)("thead",{parentName:"table"},(0,o.kt)("tr",{parentName:"thead"},(0,o.kt)("th",{parentName:"tr",align:null},"Components"),(0,o.kt)("th",{parentName:"tr",align:null},"Existing projects"),(0,o.kt)("th",{parentName:"tr",align:null},"Potentially interesting projects"))),(0,o.kt)("tbody",{parentName:"table"},(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:null},"Block Explorers"),(0,o.kt)("td",{parentName:"tr",align:null},(0,o.kt)("a",{parentName:"td",href:"https://github.com/topmonks/calamar"},"Calamar")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/polkascan/explorer-api"},"Polkascan")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/Colm3na/polkastats-backend"},"Polkastats")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/itering/subscan"},"Subscan")," \ud83d\udfe1, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/opensquare-network/statescan-v2"},"Statescan")," \ud83d\udfe2, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/edgeware-builders/edgscan"},"Edgscan")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/web3labs/epirus-substrate"},"Sirato")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/blockcoders/ink-substrate-explorer-api"},"ink! Explorer API")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/CESSProject/substats"},"Substats")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/hybrid-explorer/hybrid-dapp"},"Hybrid Block Explorer")," \u26aa"),(0,o.kt)("td",{parentName:"tr",align:null},"Mempool focused explorer (including parachain transaction)")),(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:null},"Validator Dashboards"),(0,o.kt)("td",{parentName:"tr",align:null},(0,o.kt)("a",{parentName:"td",href:"https://github.com/paritytech/substrate-telemetry"},"Polkadot Telemetry")," \ud83d\udfe2, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/hashquark-io/polkacube-frontend"},"Polkacube")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/buidl-labs/YieldScan"},"YieldScan")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/w3f-community/hubble/tree/master/app/controllers/polkadot"},"Hubble")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/ArthurHoeke/cyclops"},"Cyclops")," \ud83d\udfe2, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/web3go-xyz/web3go-xyz-v2"},"Web3Go")," \ud83d\udfe1, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/MathCryptoDoc/insights-1kv"},"1kv insights")," \u26aa"),(0,o.kt)("td",{parentName:"tr",align:null})),(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:null},"Node Explorers"),(0,o.kt)("td",{parentName:"tr",align:null},(0,o.kt)("a",{parentName:"td",href:"https://github.com/protos-research/polkadot-node-explorer"},"Polkadot Node Explorer")," \u26aa"),(0,o.kt)("td",{parentName:"tr",align:null})),(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:null},"NFT Explorer"),(0,o.kt)("td",{parentName:"tr",align:null},(0,o.kt)("a",{parentName:"td",href:"https://github.com/kodadot/nft-gallery"},"NFT Explorer for Kusama & Polkadot")," \ud83d\udfe2"),(0,o.kt)("td",{parentName:"tr",align:null})),(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:null},"Governance Dashboards"),(0,o.kt)("td",{parentName:"tr",align:null},(0,o.kt)("a",{parentName:"td",href:"https://github.com/paritytech/governance-ui"},"Polkadot Delegation Dashboard")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/premiurly/polkassembly"},"Polkassembly")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/opensquare-network/dotreasury"},"dotreasury")," \ud83d\udfe2, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/bright/bright-tresury"},"Bright Treasury")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/opensquare-network/collaboration"},"OpenSquare offchain voting")," \ud83d\udfe2, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/wpank/open-gov-insights"},"OpenGov Insights")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/stake-plus/treasury-tracker"},"Treasury Tracker")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/joepetrowski/opengov-cli"},"OpenGov CLI")," \ud83d\udfe2"),(0,o.kt)("td",{parentName:"tr",align:null},"UI for the Kusama and/or Polkadot treasury (see ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/paritytech/substrate/pull/5715"},"bounty module"),"), UI for Parachain Lease Offering (PLO)")),(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:null},"Staking"),(0,o.kt)("td",{parentName:"tr",align:null},(0,o.kt)("a",{parentName:"td",href:"https://github.com/w3f/staking-rewards-collector"},"Staking Rewards Collector")," \ud83d\udfe1, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/jackson-harris-iii/staking-rewards-viewer"},"Staking Rewards Viewer")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/cryptolab-network/polkadot-staking-site"},"Polkadot Staking Site")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/paritytech/polkadot-staking-dashboard"},"Polkadot Staking Dashboard")," \ud83d\udfe2, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/James-Sangalli/dot-validator-selector"},"Polkadot/Kusama Validator Selector")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/James-Sangalli/dot-staking-income"},"Staking Income CSV Generator")," \u26aa"),(0,o.kt)("td",{parentName:"tr",align:null})),(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:null},"Bridge UI"),(0,o.kt)("td",{parentName:"tr",align:null},(0,o.kt)("a",{parentName:"td",href:"https://github.com/paritytech/parity-bridges-ui"},"Parity Bridges UI")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/nutbox-dao/donut-interface"},"Donut Interface (Steem - Dot)")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/RostislavLitovkin/PlutonicationServer"},"Plutonication")," \ud83d\udfe2"),(0,o.kt)("td",{parentName:"tr",align:null})),(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:null},"Parachain/Crowdloan"),(0,o.kt)("td",{parentName:"tr",align:null},(0,o.kt)("a",{parentName:"td",href:"https://github.com/jhonalino/parachains.network"},"Parachains.Network")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/CrommVardek/polk-auction-ui"},"PolkAuction")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/10clouds/crowdloan-template"},"Crowdloan Front End Template")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/hack-ink/slothunter/"},"Slothunter")," \u26aa"),(0,o.kt)("td",{parentName:"tr",align:null})),(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:null},"Identicon"),(0,o.kt)("td",{parentName:"tr",align:null},(0,o.kt)("a",{parentName:"td",href:"https://polkadot.cloud/polkicon"},"Polkicon")," \ud83d\udfe2, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/RidOne-technologies/polkadot-web-identicon"},"PolkadotWebIdenticon")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/RidOne-technologies/polkadot-angular-identicon"},"Polkadot Angular IdentIcon")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/Noc2/Bird-Identicon"},"Bird Identicon")," \u26aa"),(0,o.kt)("td",{parentName:"tr",align:null})),(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:null},"Coretime"),(0,o.kt)("td",{parentName:"tr",align:null},(0,o.kt)("a",{parentName:"td",href:"https://github.com/LasticXYZ/LasticUI"},"Lastic")," \ud83d\udfe2, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/RegionX-Labs/RegionX"},"RegionX")," \ud83d\udfe1"),(0,o.kt)("td",{parentName:"tr",align:null})),(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:null},"Other"),(0,o.kt)("td",{parentName:"tr",align:null},(0,o.kt)("a",{parentName:"td",href:"https://polkadot.cloud"},"Polkadot Cloud")," \ud83d\udfe2, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/KappaSigmaMu/ksm-app"},"KappaSigmaMu Fratority")," \ud83d\udfe1, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/OAK-Foundation/quadratic-funding-webapp"},"Quadratic Funding Webapp")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://gitlab.com/polkawatch/polkawatch"},"Polkawatch"),", ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/bytepayment/bytepay"},"Bytepay")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/Delmonicos/charging-management-platform"},"charging-management-platform")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/TDSoftware/subidentity-webapp"},"subidentity-webapp")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/opensquare-network/paid-qa/"},"OpenSquare Paid QA")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/CrossChainLabs-DOT/dotpulse-api"},"DotPulse")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/bsn-si/rubeus-smartcontract"},"Rubeus Keeper")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/justmert/eco-flow-frontend"},"Polkaflow")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/helikon-labs/chainviz"},"ChainViz")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/fidi-tech/dotsight"},"Dotsight")," \ud83d\udfe2"),(0,o.kt)("td",{parentName:"tr",align:null},(0,o.kt)("a",{parentName:"td",href:"https://docs.sui.io/build/zk_login"},"zkLogin"),", Portfolio Viewer like Zapper or Zerion")))),(0,o.kt)("h3",{id:"tools-apis-and-languages"},"Tools, APIs, and Languages"),(0,o.kt)("table",null,(0,o.kt)("thead",{parentName:"table"},(0,o.kt)("tr",{parentName:"thead"},(0,o.kt)("th",{parentName:"tr",align:null},"Components"),(0,o.kt)("th",{parentName:"tr",align:null},"Existing projects"),(0,o.kt)("th",{parentName:"tr",align:null},"Potentially interesting projects"))),(0,o.kt)("tbody",{parentName:"table"},(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:null},"Runtime/Parachain frameworks"),(0,o.kt)("td",{parentName:"tr",align:null},(0,o.kt)("a",{parentName:"td",href:"https://github.com/paritytech/polkadot-sdk"},"Polkadot Blockchain SDK")," \ud83d\udfe2, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/LimeChain/gosemble"},"Gosemble")," \ud83d\udfe2, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/LimeChain/subsembly"},"Subsembly")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/AcalaNetwork/parachain-utilities"},"Parachain utilities")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/gantree-io/gantree-core"},"Gantree")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/ideal-lab5"},"Cryptex")," \ud83d\udfe2"),(0,o.kt)("td",{parentName:"tr",align:null},"Tools to create parachains with other frameworks, like the ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/cosmos/cosmos-sdk"},"Cosmos SDK")," or ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/0xPolygon/cdk-validium-node"},"Polygon CDK"))),(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:null},"Client Libraries"),(0,o.kt)("td",{parentName:"tr",align:null},(0,o.kt)("a",{parentName:"td",href:"https://github.com/paritytech/polkadot-api"},"Polkadot API - Typescript")," \ud83d\udfe2, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/paritytech/capi"},"Capi - Typescript")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/kodadot/packages/tree/main/sub-api"},"sub-api")," \ud83d\udfe2, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/centrifuge/go-substrate-rpc-client"},"Go")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/usetech-llc/polkadot_api_dotnet"},".Net")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/SubstrateGaming/Substrate.NET.API"},".NET Standard 2.0")," \ud83d\udfe1, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/SubstrateGaming/Substrate.NET.Toolchain"},"Substrate .NET Toolchain")," \ud83d\udfe2, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/usetech-llc/polkadot_api_cpp"},"C++")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/finoabanking/substrate-c-tool"},"C")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/airalab/hs-web3"},"Haskell")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/polkadot-js/api"},"Javascript")," \ud83d\udfe2, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/paritytech/substrate-api-sidecar"},"Substrate API Sidecar - TypeScript")," \ud83d\udfe2, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/polkascan/py-substrate-interface"},"Python")," \ud83d\udfe2, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/emeraldpay/polkaj"},"Java (+ Android)")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/strategyobject/substrate-client-java"},"Substrate Client Java")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/scs/substrate-api-client"},"Rust SCS")," \ud83d\udfe2, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/paritytech/subxt"},"Rust Parity (subxt)")," \ud83d\udfe2, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/trevor-crypto"},"Rust pdotc")," ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/gmajor-encrypt/php-substrate-api"},"PHP (gmajor-encrypt)")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/neha0921/substrate-interface-package"},"PHP (neha0921)")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/paritytech/frontier"},"RPC-Ethereum")," \ud83d\udfe2, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/tesseract-one/Substrate.swift"},"Swift")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/NodleCode/substrate-client-kotlin"},"Kotlin")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/sublabdev/substrate-client-kotlin"},"substrate-client-kotlin")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/sublabdev/substrate-client-swift"},"substrate-client-swift")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/rankanizer/polkadart"},"Dart")," \ud83d\udfe1, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/polywrap/integrations"},"Substrate Core Polywrapper")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/novasamatech/substrate-sdk-ios"},"Substrate SDK iOS")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/novasamatech/substrate-sdk-android"},"Substrate SDK Android")," \ud83d\udfe1, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/CoongCrafts/delightfuldot"},"DelightfulDot")," \ud83d\udfe2"),(0,o.kt)("td",{parentName:"tr",align:null})),(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:null},"RPC Gateway"),(0,o.kt)("td",{parentName:"tr",align:null},(0,o.kt)("a",{parentName:"td",href:"https://github.com/AcalaNetwork/subway"},"Subway")," \ud83d\udfe2"),(0,o.kt)("td",{parentName:"tr",align:null})),(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:null},"Substrate Contract clients"),(0,o.kt)("td",{parentName:"tr",align:null},(0,o.kt)("a",{parentName:"td",href:"https://github.com/patractlabs/go-patract"},"PatractGo")," \u26aa"),(0,o.kt)("td",{parentName:"tr",align:null})),(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:null},"Easy Runtime Development"),(0,o.kt)("td",{parentName:"tr",align:null},(0,o.kt)("a",{parentName:"td",href:"https://github.com/hack-ink/subalfred"},"Subalfred")," \ud83d\udfe2, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/kaichaosun/substrate-stencil"},"substrate-stencil")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/kaichaosun/play-substrate"},"Play Substrate")," \ud83d\udfe1, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/substrate-developer-hub/substrate-node-template"},"substrate-node-template")," \ud83d\udfe1, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/paritytech/substrate-playground"},"Substrate Playground")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/LimeChain/as-substrate-runtime"},"AssemblyScript Runtime Generation")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/clearloop/sup"},"Substrate Package Manager")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/LimeChain/subsembly"},"Subsembly: Framework for developing AssemblyScript Substrate Runtimes")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/bkchr/diener"},"dependency diener")," \u26aa"),(0,o.kt)("td",{parentName:"tr",align:null})),(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:null},"IDE Plugins"),(0,o.kt)("td",{parentName:"tr",align:null},(0,o.kt)("a",{parentName:"td",href:"https://github.com/paritytech/vscode-substrate"},"Substrate Marketplace VS Code Plugin")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/everstake/vscode-plugin-substrate"},"VS Code Plugin")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/everstake/atom-plugin-substrate"},"Atom Code Plugin")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/paritytech/zombienet-vscode-extension"},"zombienet extension")," \u26aa"),(0,o.kt)("td",{parentName:"tr",align:null})),(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:null},"Runtime/Pallet Security"),(0,o.kt)("td",{parentName:"tr",align:null},(0,o.kt)("a",{parentName:"td",href:"https://github.com/srlabs/substrate-runtime-fuzzer"},"Substrate Runtime Fuzzer")," \ud83d\udfe2, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/shawntabrizi/substrate-toml-lint"},"Substrate Toml Lint")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/kframework/wasm-semantics"},"K specifications")," \ud83d\udfe2, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/ChainSecurity/polpatrol"},"PolPatrol - Polkadot Runtime Checker")," \u26aa"),(0,o.kt)("td",{parentName:"tr",align:null},"Automated Runtime checking tools, economic audit simulator such as ",(0,o.kt)("a",{parentName:"td",href:"https://gauntlet.network/"},"gauntlet.network"))),(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:null},"Smart Contract Languages"),(0,o.kt)("td",{parentName:"tr",align:null},(0,o.kt)("a",{parentName:"td",href:"#ink-smart-contracts"},"ink!")," \ud83d\udfe2, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/ask-lang/ask"},"Ask!")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/slickup/subscript"},"Subscript")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/hyperledger-labs/solang"},"Solang")," \ud83d\udfe2, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/eigerco/pallet-move"},"pallet-move")," \ud83d\udfe2, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/pontem-network/sp-move"},"Move VM Substrate")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/neatcoin/neatcoin"},"Move smart contract by Neatcoin")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/pepyakin/substrate-seal-ebpf"},"eBPF Contracts Hackathon")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/koute/polkavm"},"PolkaVM")," \ud83d\udfe2"),(0,o.kt)("td",{parentName:"tr",align:null},"Functional Programming Languages, other languages with developed toolchains")),(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:null},"Testing"),(0,o.kt)("td",{parentName:"tr",align:null},(0,o.kt)("a",{parentName:"td",href:"https://github.com/paritytech/polkadot-introspector"},"Polkadot introspector")," \ud83d\udfe2, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/subdirectory/subshell"},"Subshell")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/polytope-labs/sc-simnode"},"substrate-simnode")," \ud83d\udfe2, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/halva-suite/halva"},"Halva")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/patractlabs/redspot"},"Redspot")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/mixbytes/tank"},"MixBytes Tank")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/NikVolf/sub-flood"},"sub-flood")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/paritytech/substrate-debug-kit"},"Substrate debug-kit")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/JesseAbram/asset_cli_tool"},"Asset CLI tool")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/JesseAbram/unfinished_testing_tool"},"sub_crash")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/chevdor/subwasm"},"subwasm")," \ud83d\udfe2, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/ascjones/subsee"},"subsee")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/w3f/polkadot-lab"},"polkadot-lab")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/dwellir-public/rpc-perf/"},"RPC-perf")," \u26aa"),(0,o.kt)("td",{parentName:"tr",align:null})),(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:null},"Static Analysis"),(0,o.kt)("td",{parentName:"tr",align:null},(0,o.kt)("a",{parentName:"td",href:"https://github.com/KaiserKarel/substrace"},"Substrace")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/simon-perriard/saft"},"Static analyzer for Substrate FRAME's pallets")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/CoinFabrik/scout"},"CoinFabrik Scout")," \ud83d\udfe2"),(0,o.kt)("td",{parentName:"tr",align:null})),(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:null},"Testnet"),(0,o.kt)("td",{parentName:"tr",align:null},(0,o.kt)("a",{parentName:"td",href:"https://github.com/paritytech/zombienet"},"Zombienet")," \ud83d\udfe2, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/AcalaNetwork/chopsticks"},"Chopsticks")," \ud83d\udfe2, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/paritytech/polkadot-launch"},"Polkadot Launch")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/koute/polkadot-starship"},"polkadot-starship")," \ud83d\udfe1, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/maxsam4/fork-off-substrate"},"Fork off Substrate")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/paritytech/try-runtime-cli"},"try-runtime-cli")," \ud83d\udfe2, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/open-web3-stack/parachain-launch"},"Parachain Launch")," \ud83d\udfe2, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/Zeeve-App/larch"},"Larch Zombienet GUI")," \u26aa"),(0,o.kt)("td",{parentName:"tr",align:null})),(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:null},"Benchmarking"),(0,o.kt)("td",{parentName:"tr",align:null},(0,o.kt)("a",{parentName:"td",href:"https://github.com/paritytech/polkadot-sdk/tree/master/substrate/utils/frame/benchmarking-cli"},"Benchmarking CLI")," \ud83d\udfe2, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/paritytech/polkadot-stps"},"Polkadot sTPS")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/0xekez/clockchain"},"Clockchain")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/shawntabrizi/substrate-graph-benchmarks"},"Substrate Graph Benchmarks")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/Nikhil-Desai-Talentica/substrate-node-template-benchmarking"},"ink! & pallet benchmarking template")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/paritytech/smart-bench"},"smart-bench")," \ud83d\udfe2"),(0,o.kt)("td",{parentName:"tr",align:null})),(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:null},"Blockchain Indexing Engine"),(0,o.kt)("td",{parentName:"tr",align:null},(0,o.kt)("a",{parentName:"td",href:"https://github.com/subsquid/squid-sdk"},"Squid SDK")," \ud83d\udfe2, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/hybrid-explorer/hybrid-indexer"},"Hybrid Indexer")," \ud83d\udfe2, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/paritytech/substrate-archive"},"Substrate Archive")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/usetech-llc/polkadot_psql_indexer"},"PSQL Indexer")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/playzero/substrate-graph"},"Substrate Graph")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/OnFinality-io/subql"},"Subquery")," \ud83d\udfe2, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/p2p-org/polkadot-profit-transformer"},"MBELT3")," \ud83d\udfe1, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/kodadot/stick"},"stick")," \ud83d\udfe2, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/Infra3-Network/hyperdot"},"Hyperdot")," \u26aa"),(0,o.kt)("td",{parentName:"tr",align:null})),(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:null},"Blockchain/Event Monitoring"),(0,o.kt)("td",{parentName:"tr",align:null},(0,o.kt)("a",{parentName:"td",href:"https://github.com/open-web3-stack/guardian"},"Web3 Guardian")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/HugoByte/aurras-event-manager"},"Aurras Event Manager")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/hicommonwealth/chain-events"},"@commonwealth/chain-events")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/w3f-grants-archive/massbitchain"},"Massbit")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/kianenigma/polkadot-basic-notification"},"Polkadot Basic Notifications")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/sodazone/ocelloids"},"Ocelloids")," \ud83d\udfe2, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/TrackingChains/TrackingChain"},"Tracking Chain")," \u26aa,"),(0,o.kt)("td",{parentName:"tr",align:null})),(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:null},"Gaming"),(0,o.kt)("td",{parentName:"tr",align:null},(0,o.kt)("a",{parentName:"td",href:"https://github.com/PolkadotPlay/Polkadot.Unity.SDK"},"Polkadot SDK for Unity")," \ud83d\udfe1, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/dodorare/crossbow"},"Crossbow")," \u26aa"),(0,o.kt)("td",{parentName:"tr",align:null},(0,o.kt)("a",{parentName:"td",href:"https://assetstore.unity.com/packages/decentralization/infrastructure/polkadot-sdk-for-unity-273535"},"Unity Asset Store"),", ",(0,o.kt)("a",{parentName:"td",href:"https://amethyst.rs/"},"Amethyst")," + ",(0,o.kt)("a",{parentName:"td",href:"https://substrate.dev/"},"Substrate"))),(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:null},"No-code Platforms"),(0,o.kt)("td",{parentName:"tr",align:null},(0,o.kt)("a",{parentName:"td",href:"https://github.com/NovaBloq/Bubble-Plugin-Polkadot.js"},"EzCode's Polkadot.js plugin on Bubble.io")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/Blackprint/nodes-polkadot.js"},"Blackprint Visual Programming Polkadot.js module")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/subrelay/interface"},"SubRelay")," \u26aa"),(0,o.kt)("td",{parentName:"tr",align:null})),(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:null},"Wallets"),(0,o.kt)("td",{parentName:"tr",align:null},(0,o.kt)("a",{parentName:"td",href:"https://github.com/TalismanSociety/talisman-connect"},"Talisman Connect")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/Koniverse/SubConnect"},"SubWallet-SubConnect")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/nova-wallet/metadata-portal"},"Metadata Portal")," \ud83d\udfe2, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/tesseract-one/Tesseract.rs"},"Tesseract")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/w3f-grants-archive/walletconnect-v2-monorepo"},"WalletConnect")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/BitGo/BitGoJS/tree/master"},"BitGoJS")," \ud83d\udfe2"),(0,o.kt)("td",{parentName:"tr",align:null})),(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:null},"XCM"),(0,o.kt)("td",{parentName:"tr",align:null},(0,o.kt)("a",{parentName:"td",href:"https://github.com/paritytech/trappist"},"Trappist")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/Moonsong-Labs/xcm-tools"},"XCM-tools")," \ud83d\udfe1, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/itering/substrate-api-rpc"},"XCM-tools Golang")," \ud83d\udfe1,",(0,o.kt)("a",{parentName:"td",href:"https://github.com/paraspell/ui-v2"},"ParaSpell")," \u2754, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/t3rn/xbi"},"XBI")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/blockcoders/xcm-sdk"},"XCM TS/JS SDK")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/XcmSend/app"},"XCMSend")," \ud83d\udfe2, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/sodazone/xcm-monitoring/"},"XCM Monitoring Server")," \ud83d\udfe2, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/moonbeam-foundation/xcm-sdk"},"Moonbeam Foundation XCM-SDK")," \ud83d\udfe2"),(0,o.kt)("td",{parentName:"tr",align:null})),(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:null},"Other"),(0,o.kt)("td",{parentName:"tr",align:null},(0,o.kt)("a",{parentName:"td",href:"https://github.com/paritytech/asset-transfer-api"},"asset-transfer-api")," \ud83d\udfe2, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/paritytech/txwrapper-core"},"txwrapper-core")," \ud83d\udfe2, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/open-web3-stack/open-web3.js"},"open-web3 JS library")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/CycanTech/GVM-Bridge"},"VM-Bridge")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/paritytech/srtool"},"srtool")," \ud83d\udfe2, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/chevdor/srtool-cli"},"srtool-cli")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/paritytech/substrate-tip-bot"},"Substrate Tip Bot")," \ud83d\udfe2, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/syntifi/ori"},"ORI (Onchain Risk Intelligence)")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/albertov19/PolkaTools"},"PolkaTools")," \ud83d\udfe2, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/paritytech/polkadot-scripts"},"polkadot-scripts")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/virto-network/sube"},"Sube")," \ud83d\udfe2, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/CESSProject/data-store-sidecar"},"data-store-sidecar")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/SugarFunge/sugarfunge-node"},"SugarFunge")," \ud83d\udfe1, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/second-state/substrate-wasmedge"},"substrate-wasmedge")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/eightfish-org/eightfish"},"EightFish")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/sandoxio/sandox"},"Sandox")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/darwinia-network/apk-verifier/"},"APK verifier")," \u26aa"),(0,o.kt)("td",{parentName:"tr",align:null})))),(0,o.kt)("h3",{id:"ink-smart-contracts"},"ink! Smart Contracts"),(0,o.kt)("table",null,(0,o.kt)("thead",{parentName:"table"},(0,o.kt)("tr",{parentName:"thead"},(0,o.kt)("th",{parentName:"tr",align:null},"Components"),(0,o.kt)("th",{parentName:"tr",align:null},"Existing projects"),(0,o.kt)("th",{parentName:"tr",align:null},"Potentially interesting projects"))),(0,o.kt)("tbody",{parentName:"table"},(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:null},"Core Libraries"),(0,o.kt)("td",{parentName:"tr",align:null},(0,o.kt)("a",{parentName:"td",href:"https://github.com/paritytech/ink"},"ink!")," \ud83d\udfe2, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/paritytech/cargo-contract"},"cargo-contract")," \ud83d\udfe2, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/paritytech/polkadot-sdk/tree/master/substrate/frame/contracts"},"pallet-contracts")," \ud83d\udfe2"),(0,o.kt)("td",{parentName:"tr",align:null})),(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:null},"Local Nodes"),(0,o.kt)("td",{parentName:"tr",align:null},(0,o.kt)("a",{parentName:"td",href:"https://github.com/paritytech/substrate-contracts-node"},"substrate-contracts-node")," \ud83d\udfe2, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/swankyhub/swanky-cli"},"Swanky")," \ud83d\udfe1"),(0,o.kt)("td",{parentName:"tr",align:null})),(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:null},"Smart Contract Development"),(0,o.kt)("td",{parentName:"tr",align:null},(0,o.kt)("a",{parentName:"td",href:"https://github.com/Cardinal-Cryptography/drink"},"DRink!")," \ud83d\udfe1, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/paritytech/contracts-ui"},"contracts-ui")," \ud83d\udfe2, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/Smart-Beaver"},"SmartBeaver"),", ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/h4nsu/openbrush-contracts"},"OpenBrush")," \u2754, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/727-Ventures/sol2ink"},"Sol2Ink")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/protofire/polkadot-contract-wizard"},"Polkadot Contract Wizard")," \ud83d\udfe1, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/Cardinal-Cryptography/ink-wrapper"},"ink-wrapper")," \ud83d\udfe1, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/paritytech/ink-playground"},"ink-playground")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/blockchain-it-hr/ink-remix-plugin"},"ink! Remix Plugin")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/standardweb3/signac/"},"Signac")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/avirajkhare00/ink-boxes/"},"ink!-boxes")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/avirajkhare00/ink-wizard"},"ink!-smart-contract-wizard")," \u26aa"),(0,o.kt)("td",{parentName:"tr",align:null})),(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:null},"Security & Testing"),(0,o.kt)("td",{parentName:"tr",align:null},(0,o.kt)("a",{parentName:"td",href:"https://github.com/paritytech/ink-waterfall"},"ink! Waterfall")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/web3labs/ink-verifier-image"},"Verifier Image for ink!")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/Brushfam/patron-backend/"},"Patron")," \u26aa"),(0,o.kt)("td",{parentName:"tr",align:null})),(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:null},"Frontend Development"),(0,o.kt)("td",{parentName:"tr",align:null},(0,o.kt)("a",{parentName:"td",href:"https://github.com/scio-labs/inkathon"},"ink!athon Boilerplate")," \ud83d\udfe2, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/paritytech/useink"},"useink")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/scio-labs/use-inkathon"},"useInkathon")," \ud83d\udfe2, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/subsquid/squid-sdk/tree/master/substrate/ink-typegen"},"ink-typegen")," \ud83d\udfe2, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/Brushfam/typechain-polkadot"},"Typechain Polkadot")," \ud83d\udfe1"),(0,o.kt)("td",{parentName:"tr",align:null})),(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:null},"IDE Plugins"),(0,o.kt)("td",{parentName:"tr",align:null},(0,o.kt)("a",{parentName:"td",href:"https://github.com/ink-analyzer/ink-analyzer"},"ink! Analyzer")," \ud83d\udfe2"),(0,o.kt)("td",{parentName:"tr",align:null})),(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:null},"Bridges"),(0,o.kt)("td",{parentName:"tr",align:null},(0,o.kt)("a",{parentName:"td",href:"https://github.com/dantenetwork/protocol-stack-for-ink"},"Dante Protocol")," \u26aa"),(0,o.kt)("td",{parentName:"tr",align:null})),(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:null},"DeFi"),(0,o.kt)("td",{parentName:"tr",align:null},(0,o.kt)("a",{parentName:"td",href:"https://github.com/pendulum-chain/pendulum-ink-wrapper"},"Pendulum-Ink-Wrapper")," \ud83d\udfe2, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/RottenKiwi/Panorama-Swap-INK-SC"},"Panorama Swap")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/Juminstock/ink_bank"},"ink_bank")," \ud83d\udfe1, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/realnimish/polkadot-amm"},"Polkadot AMM")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/veradefi/defi"},"Vera")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/nsure-tech/dot-contract"},"Nsure Insurance")," \u2754, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/CycanTech/ELC"},"Everlasting Cash")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/Coinversation/coinpro"},"Coinversation")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/zenlinkpro/zenlink-dex-contract"},"zenlink-dex-contract")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/ReserveLabs/AlgoCash"},"AlgoCash")," \u26aa"),(0,o.kt)("td",{parentName:"tr",align:null},"New seigniorage-style stable coins")),(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:null},"Gaming"),(0,o.kt)("td",{parentName:"tr",align:null},(0,o.kt)("a",{parentName:"td",href:"https://github.com/OpenEmojiBattler/open-emoji-battler"},"Open Emoji Battler")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/WiktorStarczewski/newomega.polkadot/blob/master/newomega_delegator/newomega/newomega.rs"},"NewOmega")," \u26aa"),(0,o.kt)("td",{parentName:"tr",align:null})),(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:null},"DAO"),(0,o.kt)("td",{parentName:"tr",align:null},(0,o.kt)("a",{parentName:"td",href:"https://github.com/SyncraDAO/modular-dao"},"SyncraDAO")," \u2754, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/w3f-grants-archive/subDAO-contracts"},"subDAO")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/RainbowcityFoundation/RainbowDAO-Protocol-Ink-milestone_1"},"RainbowDAO")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/Mangoboxlabs/Mangoboxink"},"MangoBox")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/Mangoboxlabs/MangoSaleV2"},"MangoSale")," \u26aa"),(0,o.kt)("td",{parentName:"tr",align:null})),(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:null},"Identity/DID"),(0,o.kt)("td",{parentName:"tr",align:null},(0,o.kt)("a",{parentName:"td",href:"https://github.com/TheDotflow"},"Dotflow")," \ud83d\udfe2"),(0,o.kt)("td",{parentName:"tr",align:null})),(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:null},"Oracles"),(0,o.kt)("td",{parentName:"tr",align:null},(0,o.kt)("a",{parentName:"td",href:"https://github.com/diadata-org/dia-wasm-oracle"},"DIA WASM Oracle")," \u26aa"),(0,o.kt)("td",{parentName:"tr",align:null})),(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:null},"Spam Protection"),(0,o.kt)("td",{parentName:"tr",align:null},(0,o.kt)("a",{parentName:"td",href:"https://github.com/prosopo/captcha"},"Prosopo")," \ud83d\udfe2"),(0,o.kt)("td",{parentName:"tr",align:null})),(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:null},"Governance"),(0,o.kt)("td",{parentName:"tr",align:null},(0,o.kt)("a",{parentName:"td",href:"https://github.com/AbaxFinance/Governance"},"Abax Governance")," \u26aa"),(0,o.kt)("td",{parentName:"tr",align:null})),(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:null},"NFT"),(0,o.kt)("td",{parentName:"tr",align:null},(0,o.kt)("a",{parentName:"td",href:"https://github.com/ArtZero-io/Contracts"},"ArtZero")," \u26aa"),(0,o.kt)("td",{parentName:"tr",align:null})),(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:null},"Other"),(0,o.kt)("td",{parentName:"tr",align:null},(0,o.kt)("a",{parentName:"td",href:"https://github.com/pnsproject/ink-aa"},"Polkadot Smart Account")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/swankyhub/magink-dapp"},"magink")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/AstarNetwork/ink-test-contracts"},"ink-test-contracts")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/agryaznov/candle-auction-ink"},"Candle Auctions")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/SubDAO-Network/polkasign-contract"},"polkasign-contract")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/bsn-si/ocex-cli"},"OCEX")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/RoloiMoney/roloi-polkadot-w3f-grant"},"Roloi")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/polkadrys/openPayroll"},"OpenPayroll")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/InkSmartContract/BlockchainFoodOrder"},"BlockchainFoodOrder")," \u26aa"),(0,o.kt)("td",{parentName:"tr",align:null})))),(0,o.kt)("h3",{id:"chains-and-pallets"},"Chains and Pallets"),(0,o.kt)("table",null,(0,o.kt)("thead",{parentName:"table"},(0,o.kt)("tr",{parentName:"thead"},(0,o.kt)("th",{parentName:"tr",align:null},"Components"),(0,o.kt)("th",{parentName:"tr",align:null},"Existing projects"),(0,o.kt)("th",{parentName:"tr",align:null},"Potentially interesting projects"))),(0,o.kt)("tbody",{parentName:"table"},(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:null},"Scalable Transactions"),(0,o.kt)("td",{parentName:"tr",align:null},(0,o.kt)("a",{parentName:"td",href:"https://github.com/perun-network/perun-polkadot-pallet"},"Perun channels")," \ud83d\udfe2, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/perun-network/perun-polkadot-demo"},"CLI demo of Perun")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/AstarNetwork/Astar"},"Astar")," \ud83d\udfe2, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/celer-network/cChannel-substrate"},"Celer")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/GunClear/Gunero"},"Gunclear")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/BCS-Labs/tpscore-etl-system"},"TPScore")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/auguth/pocs"},"proof-of-contract-stake")," \ud83d\udfe2"),(0,o.kt)("td",{parentName:"tr",align:null},"roll-ups, DAG-based consensus mechanisms, side chains")),(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:null},"Bridges"),(0,o.kt)("td",{parentName:"tr",align:null},(0,o.kt)("a",{parentName:"td",href:"https://github.com/interlay/interbtc"},"interBTC")," \ud83d\udfe1, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/webb-tools/dkg-substrate"},"DKG Substrate")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/sygmaprotocol/sygma-substrate-pallets"},"Sygma")," \ud83d\udfe2, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/bifrost-finance/bifrost-eos-relay"},"EOS by Bifrost")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/paritytech/parity-bridge"},"POA - Substrate")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/akropolisio/POC-polkadai-bridge"},"Substrate - Ethereum DAI Bridge")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/paritytech/substrate-bridge-relay"},"Substrate - Substrate Bridge")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/chainx-org/ChainX"},"BTC by ChainX")," \ud83d\udfe1, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/ChorusOne/wormhole-bridge"},"Cosmos-Substrate bridge")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/octopus-network/substrate-ibc"},"Substrate IBC Pallet")," \ud83d\udfe1, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/Snowfork/polkadot-ethereum"},"Polkadot Ethereum Bridge")," \ud83d\udfe2, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/darwinia-network/darwinia"},"Darwinia")," \ud83d\udfe2, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/pendulum-chain/spacewalk"},"Spacewalk: a Stellar bridge")," \ud83d\udfe2, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/ChainSafe/filecoindot"},"Filecoindot")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/centrifuge/axelar-cgp-substrate/tree/main"},"Axelar-Substrate")," \u26aa"),(0,o.kt)("td",{parentName:"tr",align:null},"ZCash")),(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:null},"Privacy"),(0,o.kt)("td",{parentName:"tr",align:null},(0,o.kt)("a",{parentName:"td",href:"https://github.com/LayerXcom/zero-chain"},"ZeroChain")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/xx-labs/xxchain"},"xx network")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/Phala-Network/phala-blockchain"},"pLibra (Phala Network)")," \ud83d\udfe2, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/automata-network/automata"},"Automata Network")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/zero-network/zero"},"Zero Network")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/appliedblockchain/silentdata-polkadot"},"Silent Data")," \u26aa"),(0,o.kt)("td",{parentName:"tr",align:null},(0,o.kt)("a",{parentName:"td",href:"https://github.com/anoma/masp"},"Multi-Asset Shielded Pool (MASP)")," , ",(0,o.kt)("a",{parentName:"td",href:"https://arxiv.org/pdf/2009.01020.pdf"},"Zkay"),", ",(0,o.kt)("a",{parentName:"td",href:"https://eprint.iacr.org/2018/962.pdf"},"Zexe"))),(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:null},"ZKP"),(0,o.kt)("td",{parentName:"tr",align:null},(0,o.kt)("a",{parentName:"td",href:"https://github.com/zeropoolnetwork/zeropool-substrate-groth16-example"},"ZeroPool")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/patractlabs/megaclite"},"Megaclite")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/patractlabs/zkmega"},"zkMega")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/AstarNetwork/plonk"},"PLONK for Substrate")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/webb-tools/protocol-substrate"},"Webb Anchor Protocol")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/bright/zk-snarks-with-substrate/"},"zk-SNARKs tutorial")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/Zkvers/substrate-zk"},"substrate-zk")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/w3f-grants-archive/hyperfridge-r0"},"hyperfridge-r0")," \ud83d\udfe1"),(0,o.kt)("td",{parentName:"tr",align:null})),(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:null},"TEE"),(0,o.kt)("td",{parentName:"tr",align:null},(0,o.kt)("a",{parentName:"td",href:"https://github.com/Acurast/acurast-core"},"Acurast")," \ud83d\udfe1, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/integritee-network/worker"},"Integritee")," \ud83d\udfe1, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/scs/substraTEE"},"substraTEE")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/wetee-dao/chain"},"WeTEE")," \ud83d\udfe2"),(0,o.kt)("td",{parentName:"tr",align:null},(0,o.kt)("a",{parentName:"td",href:"https://github.com/keysafe-protocol/keysafe-app"},"Keysafe Protocol")," \u26aa")),(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:null},"DeFi"),(0,o.kt)("td",{parentName:"tr",align:null},(0,o.kt)("a",{parentName:"td",href:"https://github.com/kapilsinha/privadex"},"PrivaDEX")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/uinb/fusotao"},"Fusotao")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/reef-defi/reef-chain"},"Reef")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/Diora-Network/Diora"},"Diora")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/pendulum-chain/pendulum"},"Pendulum Chain")," \ud83d\udfe2, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/compound-finance/gateway"},"Compound Gateway")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/parallel-finance/parallel"},"Parallel Finance")," \ud83d\udfe2, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/ChainSafe/PINT"},"PINT")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/laminar-protocol/laminar-chain"},"Laminar Chain")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/AcalaNetwork/Acala"},"Acala")," \ud83d\udfe2, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/centrifuge/centrifuge-chain"},"Centrifuge")," \ud83d\udfe2, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/stafiprotocol/stafi-node"},"Stafi")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/y2labs-0sh/definex"},"Definex")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/OAXFoundation/parrot"},"OAX Foundation")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/alexxuyang/substrate-dex"},"Cybex")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/zenlinkpro/pallet-zenlink"},"Zenlink")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/lsaether/pallet-swaps"},"Swaps Pallet")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/Polkadex-Substrate/Polkadex/tree/master"},"Polkadex")," \ud83d\udfe2, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/subdarkdex/subdex-parachain"},"SubDEX")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/galacticcouncil/hack.HydraDX-node"},"HydraDX")," \ud83d\udfe2, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/apopiak/stablecoin"},"Substrate Stablecoin")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/digitalnativeinc/standard-substrate"},"Standard protocol")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/sora-xor/sora2-network"},"Polkaswap")," \ud83d\udfe2, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/equilibrium-eosdt/equilibrium-curve-amm"},"Curve AMM")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/konomi-network/cumulus/"},"Konomi Network")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/nutsfinance/stable-asset"},"Stable Asset")," \ud83d\udfe2, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/atscaletech/libra"},"Libra Payment")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/mangata-finance/mangata-node"},"Mangata")," \ud83d\udfe1, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/tidelabs/tidechain"},"Tidechain")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/galacticcouncil/Basilisk-node"},"Basilisk")," \ud83d\udfe2, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/PolymeshAssociation/Polymesh"},"Polymesh")," \ud83d\udfe2"),(0,o.kt)("td",{parentName:"tr",align:null},"DEX with privacy and confidentiality features such as those found in a ",(0,o.kt)("a",{parentName:"td",href:"https://en.wikipedia.org/wiki/Dark_pool"},"dark pool"))),(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:null},"Smart contract chains"),(0,o.kt)("td",{parentName:"tr",align:null},(0,o.kt)("a",{parentName:"td",href:"https://github.com/PureStake/moonbeam"},"moonbeam")," \ud83d\udfe2, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/Magport/Magnet"},"Magnet")," \ud83d\udfe2, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/Cardinal-Cryptography/aleph-node"},"Aleph-node")," \ud83d\udfe2, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/hicommonwealth/edgeware-node"},"Edgeware")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/ParaState/substrate-ssvm-node"},"ParaState")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/gear-tech/gear"},"gear")," \ud83d\udfe2, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/cennznet/cennznet"},"CENNZnet")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/skyekiwi/skyekiwi-network"},"SkyeKiwi")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/OAK-Foundation/OAK-blockchain"},"OAK-blockchain")," \ud83d\udfe2, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/web3labs/ice-substrate"},"ICE Blockchain")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/OmniBTC/PSC"},"Polkadot Smart Chain")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/keep-starknet-strange/madara"},"Madara - Cairo/Starknet")," \ud83d\udfe2"),(0,o.kt)("td",{parentName:"tr",align:null},"smart contract chains with novel security approaches, smart contract chains based on existing toolchains")),(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:null},"Oracle"),(0,o.kt)("td",{parentName:"tr",align:null},(0,o.kt)("a",{parentName:"td",href:"https://github.com/tellor-io/tellor-pallet"},"Tellor")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/laminar-protocol/open-runtime-module-library/tree/master/oracle"},"Laminar")," \ud83d\udfe2, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/smartcontractkit/chainlink-polkadot"},"Chainlink-polkadot")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/aresprotocols/ares"},"Ares Protocol")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/Kylin-Network/kylin-node"},"Kylin Network")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/interlay/interbtc-clients/tree/master/oracle"},"interbtc-clients oracle")," \ud83d\udfe1, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/webb-tools/anonima"},"Anonima")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/SaaS3-Foundation/dRuntime-fat"},"SaaS3")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/tellor-io/tellor-parachain-contracts"},"Tellor")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/diadata-org/bridgestate-ocw"},"Bridgestate Oracle")," \u26aa"),(0,o.kt)("td",{parentName:"tr",align:null})),(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:null},"Identity/DID"),(0,o.kt)("td",{parentName:"tr",align:null},(0,o.kt)("a",{parentName:"td",href:"https://github.com/parami-foundation/parami-blockchain"},"Parami")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/litentry/litentry-parachain"},"Litentry")," \ud83d\udfe2, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/substrate-developer-hub/pallet-did"},"pallet-did")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/prasad-kumkar/dot-id"},"dot-id")," \u26aa"),(0,o.kt)("td",{parentName:"tr",align:null})),(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:null},"IoT"),(0,o.kt)("td",{parentName:"tr",align:null},(0,o.kt)("a",{parentName:"td",href:"https://github.com/NodleCode/chain"},"Nodle")," \ud83d\udfe2, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/DataHighway-DHX/node"},"MXC/DataHighway")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/peaqnetwork/peaq-network-node"},"peaq-network-node")," \ud83d\udfe2"),(0,o.kt)("td",{parentName:"tr",align:null})),(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:null},"Verifiable Claims"),(0,o.kt)("td",{parentName:"tr",align:null},(0,o.kt)("a",{parentName:"td",href:"https://github.com/KILTprotocol/kilt-node"},"KILT")," \ud83d\udfe2, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/docknetwork/dock-substrate"},"Dock")," \ud83d\udfe2"),(0,o.kt)("td",{parentName:"tr",align:null})),(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:null},"Supply chain"),(0,o.kt)("td",{parentName:"tr",align:null},(0,o.kt)("a",{parentName:"td",href:"https://github.com/digicatapult/dscp-node"},"DSCP Node")," \ud83d\udfe2"),(0,o.kt)("td",{parentName:"tr",align:null})),(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:null},"Health care"),(0,o.kt)("td",{parentName:"tr",align:null}),(0,o.kt)("td",{parentName:"tr",align:null})),(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:null},"Music Industry"),(0,o.kt)("td",{parentName:"tr",align:null},(0,o.kt)("a",{parentName:"td",href:"https://github.com/Allfeat/Allfeat"},"Allfeat Network")," \ud83d\udfe2"),(0,o.kt)("td",{parentName:"tr",align:null})),(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:null},"Data Availability"),(0,o.kt)("td",{parentName:"tr",align:null},(0,o.kt)("a",{parentName:"td",href:"https://github.com/availproject/avail"},"Avail")," \ud83d\udfe2, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/ZeroDAO/melodot"},"Melodot")," \ud83d\udfe1"),(0,o.kt)("td",{parentName:"tr",align:null})),(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:null},"Social Networking"),(0,o.kt)("td",{parentName:"tr",align:null},(0,o.kt)("a",{parentName:"td",href:"https://github.com/frequency-chain/frequency"},"Frequency")," \ud83d\udfe2, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/social-network/blockchain"},"Social Network")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/dappforce/subsocial-parachain"},"SubSocial")," \ud83d\udfe1, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/ZeroDAO/ZeroDAO-node"},"ZeroDAO")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/myriadsocial/myriad-node"},"Myriad Node")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/randombishop/wika_etl"},"Wika Network")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/listenofficial/listen-parachain"},"Listen")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/tribal-protocol/tribal_contract"},"Tribal Protocol")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/rust-0x0/hex-space-protocol-substrate"},"Five Degrees on Substrate")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/acuity-social/acuity-substrate"},"Acuity Social")," \u26aa"),(0,o.kt)("td",{parentName:"tr",align:null},"Private instant messenger that uses on-chain identity")),(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:null},"Governance/DAO"),(0,o.kt)("td",{parentName:"tr",align:null},(0,o.kt)("a",{parentName:"td",href:"https://github.com/aisland-dao/aisland-node/tree/main"},"Aisland Node")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/hashed-io/hashed-substrate"},"Hashed Network")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/sunshine-protocol/sunshine-bounty"},"Sunshine DAO")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/NucleiStudio/governance-os"},"Governance OS")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/idavollnetwork/idavoll"},"Idavoll Network")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/DoraFactory/Substrate-Moloch-V2"},"Substrate Moloch")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/Qrucial/QRUCIAL-DAO"},"QRUCIAL-DAO")," \ud83d\udfe1, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/sctllabs/societal-node"},"Societal")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/daos-org/daos"},"DAOs")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/amiyatulu/shivarthu/"},"Shivarthu")," \ud83d\udfe1, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/faterium"},"Faterium")," \ud83d\udfe2, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/decentration/apps"},"Supersig")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/deep-ink-ventures/genesis-dao-node"},"GenesisDAO")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/dao-entrance/dao-entrance-node"},"DAO Entrance")," \u2754, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/liberland/liberland_substrate"},"Liberland")," \ud83d\udfe1"),(0,o.kt)("td",{parentName:"tr",align:null},(0,o.kt)("a",{parentName:"td",href:"https://github.com/consul/consul"},"Consul")," - Open Government and E-Participation Web Software")),(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:null},"Prediction Markets and Futarchy"),(0,o.kt)("td",{parentName:"tr",align:null},(0,o.kt)("a",{parentName:"td",href:"https://github.com/zeitgeistpm/zeitgeist"},"Zeitgeist")," \ud83d\udfe2, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/XPredictMarket/NodePredict"},"X Predict Market")," \u26aa"),(0,o.kt)("td",{parentName:"tr",align:null})),(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:null},"Messaging"),(0,o.kt)("td",{parentName:"tr",align:null},(0,o.kt)("a",{parentName:"td",href:"https://github.com/validitylabs/HOPR-PL-Substrate"},"HOPR")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/chainify/nolik"},"Nolik")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/Uke-Messaging/uke-pallet"},"Uke")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/Belsoft-rs/diffychat-pallet"},"Diffy Chat")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/fennelLabs/Fennel-Protocol"},"Fennel Protocol")," \u26aa"),(0,o.kt)("td",{parentName:"tr",align:null})),(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:null},"File Storage, Cloud"),(0,o.kt)("td",{parentName:"tr",align:null},(0,o.kt)("a",{parentName:"td",href:"https://github.com/dappforce/subsocial-offchain"},"Subsocial-Offchain")," \ud83d\udfe2, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/playproject-io/datdot"},"DatDot")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/crustio/crust"},"Crust Network")," \ud83d\udfe2, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/rs-ipfs/offchain-ipfs-manual"},"offchain::ipfs")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/canyon-network/canyon"},"Canyon Network")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/Cumulus2021/cess"},"CESS")," \ud83d\udfe2, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/CESSProject/cess-proving-system"},"CESS Proving Subsystem")," \u2754, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/ideal-lab5/iris"},"Iris")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/CESSProject/fmd-cess"},"fmd-cess")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/DanHenton/pocket-substrate/tree/ipfs-ocw"},"IPFS Frame V3")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/threefoldtech/tfchain"},"Threefold Chain")," \ud83d\udfe1, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/Apron-Network/apron-node"},"Apron")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/TDSoftware/substrate-ipfs"},"IPFS Utilities")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://gitlab.com/dinfra/dinfra"},"DINFRA")," \ud83d\udfe2"),(0,o.kt)("td",{parentName:"tr",align:null})),(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:null},"Name Service"),(0,o.kt)("td",{parentName:"tr",align:null},(0,o.kt)("a",{parentName:"td",href:"https://github.com/xaya/substrate-names"},"Substrate Names")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/hskang9/substrate-name-service"},"ENS on Substrate")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/pnsproject/pns-pallets"},"PNS-Pallets")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/HeisenbergLin22/Faceless_milestone2_delivery"},"Faceless")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/ff13dfly/Anchor"},"Anchor")," \u26aa"),(0,o.kt)("td",{parentName:"tr",align:null})),(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:null},"Gaming"),(0,o.kt)("td",{parentName:"tr",align:null},(0,o.kt)("a",{parentName:"td",href:"https://github.com/bit-country/Bit-Country-Blockchain"},"Bit.country")," \ud83d\udfe2, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/SubGame-Network/subgame-network"},"SubGame")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/playzero/subzero"},"subzero")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/web3gamesofficial/web3games-blockchain"},"Web3Games")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/ajuna-network/ajuna-pallets"},"Ajuna Pallets")," \ud83d\udfe2, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/cryptoviet/gafi"},"Gafi Network")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://gitlab.com/asylum-space/asylum-item-nft"},"Asylum")," \ud83d\udfe2, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/3Dpass/3DP"},"3DPass")," \ud83d\udfe2, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/polketio/toearnfun_flutter_app"},"Polket")," \u26aa"),(0,o.kt)("td",{parentName:"tr",align:null})),(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:null},"Computation/AI"),(0,o.kt)("td",{parentName:"tr",align:null},(0,o.kt)("a",{parentName:"td",href:"https://github.com/Deitos-Network/deitos-ip"},"Deitos Network")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/DeepBrainChain/DeepBrainChain-MainChain"},"DeepBrain Chain")," \ud83d\udfe2, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/anudit/cerebrum"},"AI Infrastructure on Blockchain")," \u26aa"),(0,o.kt)("td",{parentName:"tr",align:null})),(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:null},"Enable specific use-cases"),(0,o.kt)("td",{parentName:"tr",align:null},(0,o.kt)("a",{parentName:"td",href:"https://github.com/deep-ink-ventures/pallet_hookpoints"},"pallet-hookpoints")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/airalab/substrate-node-robonomics"},"Robonomics")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/UniversalDot/pallets"},"UniversalDOT")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/EvercityEcosystem/evercity-chain"},"Evercity Sustainable Finance Protocol")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/logion-network/logion-node"},"logion")," \ud83d\udfe2, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/Me-Protocol/rusty-protocol-v0.1/"},"Me Protocol")," \ud83d\udfe2, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/QSTN-US/Polkadot-QSTN-v1/"},"QSTN")," \u26aa"),(0,o.kt)("td",{parentName:"tr",align:null})),(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:null},"NFT"),(0,o.kt)("td",{parentName:"tr",align:null},(0,o.kt)("a",{parentName:"td",href:"https://github.com/capsule-corp-ternoa/chain"},"ternoa")," \ud83d\udfe1, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/danforbes/pallet-nft"},"FRAME Pallet: NFTs for Substrate")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/UniqueNetwork/unique-chain"},"Unique NFT Parachain")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/DNFT-Team/dnft-substrate-node/tree/master/pallets"},"DNFT")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/rmrk-team/rmrk-substrate"},"RMRK-Substrate")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/Popular-Coding/nt-nft"},"NT-NFTs")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/GreenLemonProtocol/dksap-polkadot"},"Green Lemon")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/galacticcouncil/Basilisk-node"},"Basilisk")," \ud83d\udfe2"),(0,o.kt)("td",{parentName:"tr",align:null})),(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:null},"Randomness"),(0,o.kt)("td",{parentName:"tr",align:null},(0,o.kt)("a",{parentName:"td",href:"https://github.com/Cardinal-Cryptography/substrate/tree/randomness-beacon"},"DKG and Randomness Beacon")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/random-meat/drand-substrate-client"},"drand-substrate-client")," \u26aa"),(0,o.kt)("td",{parentName:"tr",align:null})),(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:null},"Licensing"),(0,o.kt)("td",{parentName:"tr",align:null},(0,o.kt)("a",{parentName:"td",href:"https://github.com/anagolay/anagolay-chain"},"Anagolay Network")," \u2754"),(0,o.kt)("td",{parentName:"tr",align:null})),(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:null},"Banking Integration"),(0,o.kt)("td",{parentName:"tr",align:null},(0,o.kt)("a",{parentName:"td",href:"https://github.com/element36-io/ebics-java-service"},"FIAT on-off-ramp")," \ud83d\udfe2"),(0,o.kt)("td",{parentName:"tr",align:null})),(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:null},"Crowdfunding"),(0,o.kt)("td",{parentName:"tr",align:null},(0,o.kt)("a",{parentName:"td",href:"https://github.com/ImbueNetwork/imbue"},"Imbue Network")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/zhangjiannan/QFgrant"},"Quadratic Funding pallet by Dora")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/OAK-Foundation/quadratic-funding-pallet/tree/master"},"Quadratic Funding pallet by OAK")," \u26aa"),(0,o.kt)("td",{parentName:"tr",align:null},(0,o.kt)("a",{parentName:"td",href:"https://ethresear.ch/t/minimal-anti-collusion-infrastructure/5413"},"Minimum Anti-Collusion Infrastructure (MACI)"))),(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:null},"Collection of Pallets"),(0,o.kt)("td",{parentName:"tr",align:null},(0,o.kt)("a",{parentName:"td",href:"https://github.com/open-web3-stack/open-runtime-module-library"},"Substrate Open Runtime Module Library")," \ud83d\udfe2, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/galacticcouncil/warehouse"},"warehouse")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/InvArch/InvArch-Frames"},"InvArch FRAME Pallet Library")," \ud83d\udfe2"),(0,o.kt)("td",{parentName:"tr",align:null})),(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:null},"Marketplaces"),(0,o.kt)("td",{parentName:"tr",align:null},(0,o.kt)("a",{parentName:"td",href:"https://github.com/WowLabz/dot-marketplace-v2/tree/Phase3_Milestone3"},"Dot Marketplace")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/hashed-io/hashed-substrate/tree/main/pallets/gated-marketplace"},"Gated Marketplace")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/Popular-Coding/ventur"},"Ventur")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/RELAI-Network/futur-protocol"},"Futur Protocol")," \u26aa"),(0,o.kt)("td",{parentName:"tr",align:null})),(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:null},"Carbon Credits"),(0,o.kt)("td",{parentName:"tr",align:null},(0,o.kt)("a",{parentName:"td",href:"https://github.com/bitgreen/bitg-node"},"BitGreen")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/EvercityEcosystem/carbon-assets"},"Carbon Assets Pallet")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/SequesterChain/pallets"},"Sequester Pallets")," \u26aa"),(0,o.kt)("td",{parentName:"tr",align:null})),(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:null},"UTXO"),(0,o.kt)("td",{parentName:"tr",align:null},(0,o.kt)("a",{parentName:"td",href:"https://github.com/Off-Narrative-Labs/Tuxedo"},"Tuxedo")," \ud83d\udfe2"),(0,o.kt)("td",{parentName:"tr",align:null})),(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:null},"Other"),(0,o.kt)("td",{parentName:"tr",align:null},(0,o.kt)("a",{parentName:"td",href:"https://github.com/Moonsong-Labs/moonkit"},"Moonkit")," \ud83d\udfe2, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/gautamdhameja/substrate-account-filter"},"Substrate Account Filter")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/opentensor/subtensor"},"Subtensor")," \ud83d\udfe2, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/AdMetaNetwork/admeta"},"AdMeta")," \ud83d\udfe1, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/chocolatenetwork/chocolate-node"},"Chocolate Node")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/virto-network/virto-node"},"Virto Network")," \ud83d\udfe2, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/gautamdhameja/substrate-validator-set"},"Substrate Validator Set")," \ud83d\udfe1, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/DEIPworld/deip-node"},"DEIP")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/debionetwork/debio-node"},"DeBio")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/mathwallet/MathChain"},"MathChain")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/encointer/encointer-node"},"encointer")," \ud83d\udfe1, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/grasslandnetwork/substrate_node"},"Grassland")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/rusty-crewmates/substrate-tutorials"},"Substrate-Tutorials")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/Fair-Squares/fair-squares"},"Fair Squares")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/totem-tech/totem"},"Totem Live Accounting")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/herou/EscrowPallet"},"Escrow Pallet")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/NexTokenTech/TREX"},"TREX")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/relationlabs/Relation-Graph"},"Relation Graph")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/gertt/Invoice"},"Decentralized Invoice")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/redstone-network/redstone-node"},"Redstone Network")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/WunderbarNetwork/access-control"},"Access Control Pallet")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/Omniverse-Web3-Labs/omniverse-swap/tree/web3-grant"},"Omniverse DLT")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/polytope-labs/substrate-ismp"},"ISMP")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/w3f/xcmp_prototype_playground"},"XCMP")," \ud83d\udfe1, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/dhiway/cord"},"CORD Chain")," \ud83d\udfe2"),(0,o.kt)("td",{parentName:"tr",align:null},"Decentralized review/reputation system")))),(0,o.kt)("h3",{id:"host"},"Host"),(0,o.kt)("table",null,(0,o.kt)("thead",{parentName:"table"},(0,o.kt)("tr",{parentName:"thead"},(0,o.kt)("th",{parentName:"tr",align:null},"Components"),(0,o.kt)("th",{parentName:"tr",align:null},"Existing projects"),(0,o.kt)("th",{parentName:"tr",align:null},"Potentially interesting projects"))),(0,o.kt)("tbody",{parentName:"table"},(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:null},"Rust"),(0,o.kt)("td",{parentName:"tr",align:null},(0,o.kt)("a",{parentName:"td",href:"https://github.com/paritytech/polkadot-sdk/tree/master/substrate"},"Substrate")," \ud83d\udfe2, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/paritytech/polkadot-sdk/tree/master/cumulus"},"Cumulus")," \ud83d\udfe2"),(0,o.kt)("td",{parentName:"tr",align:null})),(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:null},"C++"),(0,o.kt)("td",{parentName:"tr",align:null},(0,o.kt)("a",{parentName:"td",href:"https://github.com/soramitsu/kagome"},"Kagome")," \ud83d\udfe2, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/Zondax/mayon"},"Mayon")," \u26aa"),(0,o.kt)("td",{parentName:"tr",align:null})),(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:null},"Go"),(0,o.kt)("td",{parentName:"tr",align:null},(0,o.kt)("a",{parentName:"td",href:"https://github.com/ChainSafe/gossamer"},"Gossamer")," \ud83d\udfe2"),(0,o.kt)("td",{parentName:"tr",align:null})),(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:null},"Java"),(0,o.kt)("td",{parentName:"tr",align:null},(0,o.kt)("a",{parentName:"td",href:"https://github.com/LimeChain/Fruzhin"},"Fruzhin")," \ud83d\udfe2, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/LimeChain/java-host-research"},"Java Host Research")," \u26aa"),(0,o.kt)("td",{parentName:"tr",align:null})),(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:null},"AssemblyScript"),(0,o.kt)("td",{parentName:"tr",align:null}),(0,o.kt)("td",{parentName:"tr",align:null})),(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:null},"Light Client"),(0,o.kt)("td",{parentName:"tr",align:null},(0,o.kt)("a",{parentName:"td",href:"https://github.com/smol-dot/smoldot"},"smoldot")," \ud83d\udfe2, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/paritytech/substrate-connect"},"Substrate Connect")," \ud83d\udfe2, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/eqlabs/polkadot-light-client"},"C++ Polkadot Light Client")," \u26aa"),(0,o.kt)("td",{parentName:"tr",align:null})),(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:null},"Testing"),(0,o.kt)("td",{parentName:"tr",align:null},(0,o.kt)("a",{parentName:"td",href:"https://github.com/LimeChain/polkadot-conformance"},"Polkadot Conformance")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/sigp/polkafuzz"},"Polkafuzz")," \u26aa"),(0,o.kt)("td",{parentName:"tr",align:null})))),(0,o.kt)("h3",{id:"network-maintenance-tools"},"Network Maintenance Tools"),(0,o.kt)("table",null,(0,o.kt)("thead",{parentName:"table"},(0,o.kt)("tr",{parentName:"thead"},(0,o.kt)("th",{parentName:"tr",align:null},"Components"),(0,o.kt)("th",{parentName:"tr",align:null},"Existing projects"),(0,o.kt)("th",{parentName:"tr",align:null},"Potentially interesting projects"))),(0,o.kt)("tbody",{parentName:"table"},(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:null},"Secure validator setup"),(0,o.kt)("td",{parentName:"tr",align:null},(0,o.kt)("a",{parentName:"td",href:"https://github.com/polkachu/polkadot-validator"},"Polkadot Validation Node Ansible Setup")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/w3f/polkadot-validator-setup"},"W3F Polkadot Validator Setup")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/Nexus2k/polkadot-ansible"},"polkadot-ansible")," \u26aa"),(0,o.kt)("td",{parentName:"tr",align:null})),(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:null},"High availability setup"),(0,o.kt)("td",{parentName:"tr",align:null},(0,o.kt)("a",{parentName:"td",href:"https://github.com/luguslabs/archipel"},"Archipel")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/protofire/polkadot-failover-mechanism"},"Polkadot Failover Mechanism")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/Datagen-Project/Datagen-Substrate-Grant"},"Datagen")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/bright/substrate-raft"},"High Availability Validator Setup")," \u26aa"),(0,o.kt)("td",{parentName:"tr",align:null})),(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:null},"Load Balanced Endpoints"),(0,o.kt)("td",{parentName:"tr",align:null},(0,o.kt)("a",{parentName:"td",href:"https://github.com/insight-w3f/terragrunt-polkadot"},"terragrunt-polkadot")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/sudoblockio/substrate-meta"},"Geometry Labs' Substrate Meta repo")," \u26aa"),(0,o.kt)("td",{parentName:"tr",align:null})),(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:null},"Deployment Tools"),(0,o.kt)("td",{parentName:"tr",align:null},(0,o.kt)("a",{parentName:"td",href:"https://github.com/Blockdaemon/bpm-sdk"},"Polkadot Package Manager")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/akropolisio/polkahub-monorepo"},"PolkaHub")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/AvadoDServer/AVADO-DNP-Polkadot-custom"},"Avado")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/w3f/polkadot-deployer"},"Polkadot Deployer")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/for-parity-with-love/unified-collator-node-deployment"},"Unified Collator Deployment")," \u26aa"),(0,o.kt)("td",{parentName:"tr",align:null})),(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:null},"Validator monitoring"),(0,o.kt)("td",{parentName:"tr",align:null},(0,o.kt)("a",{parentName:"td",href:"https://github.com/turboflakes/one-t"},"ONE-T")," \ud83d\udfe2, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/helikon-labs/subvt-backend"},"SubVT")," \ud83d\udfe2, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/SimplyVC/panic"},"P.A.N.I.C.")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/galacticcouncil/polkalert"},"Polkalert")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/nodebreaker0-0/substrate/tree/prometheus_v0.3"},"B-Harvest")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/stakezone/nmonpolkadot"},"nmonpolkadot")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/ironoa/polkadot-k8s-monitor"},"Polkadot-K8s-Monitor")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/w3f/polkadot-watcher"},"Polkadot-Watcher")," \ud83d\udfe2, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/helikon-labs/polkadot-kusama-1kv-telegram-bot"},"1KV Telegram Bot")," \u26aa"),(0,o.kt)("td",{parentName:"tr",align:null})),(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:null},"Validator payout management"),(0,o.kt)("td",{parentName:"tr",align:null},(0,o.kt)("a",{parentName:"td",href:"https://github.com/Colm3na/substrate-auto-payout"},"Substrate validator auto payout")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/w3f/polkadot-payouts"},"Polkadot Payouts")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/emostov/staking-payouts"},"staking-payouts CLI")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/stakelink/substrate-payctl"},"Payctl")," \ud83d\udfe2, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/turboflakes/crunch"},"crunch")," \ud83d\udfe2"),(0,o.kt)("td",{parentName:"tr",align:null})),(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:null},"Staking Miner"),(0,o.kt)("td",{parentName:"tr",align:null},(0,o.kt)("a",{parentName:"td",href:"https://github.com/paritytech/staking-miner-v2"},"Staking Miner v2")," \ud83d\udfe2"),(0,o.kt)("td",{parentName:"tr",align:null})),(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:null},"Nominator Tools"),(0,o.kt)("td",{parentName:"tr",align:null},(0,o.kt)("a",{parentName:"td",href:"https://github.com/miepsik/validators_selection"},"Validator Selection")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/filippoweb3/polkanalyzer"},"Polkanalyzer")," \ud83d\udfe2, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/filippoweb3/polkanalyzer-app"},"Polkanalyzer-app")," \ud83d\udfe1"),(0,o.kt)("td",{parentName:"tr",align:null})))),(0,o.kt)("h3",{id:"signatures"},"Signatures"),(0,o.kt)("table",null,(0,o.kt)("thead",{parentName:"table"},(0,o.kt)("tr",{parentName:"thead"},(0,o.kt)("th",{parentName:"tr",align:null},"Components"),(0,o.kt)("th",{parentName:"tr",align:null},"Existing projects"),(0,o.kt)("th",{parentName:"tr",align:null},"Potentially interesting projects"))),(0,o.kt)("tbody",{parentName:"table"},(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:null},"SR25519"),(0,o.kt)("td",{parentName:"tr",align:null},(0,o.kt)("a",{parentName:"td",href:"https://github.com/w3f/schnorrkel"},"rust")," \ud83d\udfe2(contains partial bindings for C, JavaScript, and Python), ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/gautamdhameja/sr25519-dotnet"},".Net bindings")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/usetech-llc/sr25519"},"C")," \u26aa",(0,o.kt)("em",{parentName:"td"},"(old)"),", ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/TerenceGe/sr25519-donna"},"C")," \u26aa",(0,o.kt)("em",{parentName:"td"},"(new)"),", ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/soramitsu/soramitsu-sr25519-crust"},"C/C++")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/usetech-llc/sr25519_dotnet"},"C#")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/ChainSafe/go-schnorrkel"},"Go")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/debuggor/schnorrkel-java"},"java")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/gmajor-encrypt/sr25519-bindings"},"PHP")," \u26aa"),(0,o.kt)("td",{parentName:"tr",align:null})),(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:null},"Signature Aggregation"),(0,o.kt)("td",{parentName:"tr",align:null},(0,o.kt)("a",{parentName:"td",href:"https://github.com/w3f/apk-proofs"},"apk-proofs")," \u26aa"),(0,o.kt)("td",{parentName:"tr",align:null})),(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:null},"Distributed key generation (DKG) or management"),(0,o.kt)("td",{parentName:"tr",align:null},(0,o.kt)("a",{parentName:"td",href:"https://github.com/isislovecruft/frost-dalek"},"keygen.rs")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/w3f-grants-archive/sword"},"Secure Wallet Origin Distribution (SWORD)")," \u26aa"),(0,o.kt)("td",{parentName:"tr",align:null})),(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:null},"Validator HSMs"),(0,o.kt)("td",{parentName:"tr",align:null},(0,o.kt)("a",{parentName:"td",href:"https://github.com/Zondax/buildroot-zondax"},"Zondax Remote Signer")," \u26aa"),(0,o.kt)("td",{parentName:"tr",align:null})),(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:null},"MPC"),(0,o.kt)("td",{parentName:"tr",align:null},(0,o.kt)("a",{parentName:"td",href:"https://github.com/orochi-network/orochi-network.github.io"},"Orochi Network")," \ud83d\udfe2"),(0,o.kt)("td",{parentName:"tr",align:null})))),(0,o.kt)("h3",{id:"consensus"},"Consensus"),(0,o.kt)("table",null,(0,o.kt)("thead",{parentName:"table"},(0,o.kt)("tr",{parentName:"thead"},(0,o.kt)("th",{parentName:"tr",align:null},"Components"),(0,o.kt)("th",{parentName:"tr",align:null},"Existing projects"),(0,o.kt)("th",{parentName:"tr",align:null},"Potentially interesting projects"))),(0,o.kt)("tbody",{parentName:"table"},(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:null},"PoC"),(0,o.kt)("td",{parentName:"tr",align:null},(0,o.kt)("a",{parentName:"td",href:"https://github.com/subspace/substrate"},"Spartan")," \u26aa"),(0,o.kt)("td",{parentName:"tr",align:null})),(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:null},"PoW"),(0,o.kt)("td",{parentName:"tr",align:null},(0,o.kt)("a",{parentName:"td",href:"https://github.com/paritytech/polkadot-sdk/tree/master/substrate/client/consensus/pow"},"PoW consensus for Substrate")," \ud83d\udfe2, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/kulupu/kulupu/tree/master/pow"},"RandomX")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/substrate-developer-hub/recipes/tree/master/consensus/sha3pow"},"Sha3 PoW")," \u26aa"),(0,o.kt)("td",{parentName:"tr",align:null})),(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:null},"Block production"),(0,o.kt)("td",{parentName:"tr",align:null},(0,o.kt)("a",{parentName:"td",href:"https://github.com/paritytech/polkadot-sdk/tree/master/substrate/client/consensus/babe"},"BABE")," \ud83d\udfe2, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/paritytech/polkadot-sdk/tree/master/substrate/client/consensus/aura"},"Aura")," \ud83d\udfe2"),(0,o.kt)("td",{parentName:"tr",align:null})),(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:null},"Finality"),(0,o.kt)("td",{parentName:"tr",align:null},(0,o.kt)("a",{parentName:"td",href:"https://github.com/paritytech/polkadot-sdk/tree/master/substrate/frame/grandpa"},"GRANDPA")," \ud83d\udfe2, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/Cardinal-Cryptography/AlephBFT"},"AlephBFT")," \ud83d\udfe2"),(0,o.kt)("td",{parentName:"tr",align:null})),(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:null},"Other"),(0,o.kt)("td",{parentName:"tr",align:null},(0,o.kt)("a",{parentName:"td",href:"https://github.com/PureStake/nimbus"},"Nimbus: Upgradeable consensus framework")," \u26aa"),(0,o.kt)("td",{parentName:"tr",align:null})))),(0,o.kt)("h3",{id:"networking"},"Networking"),(0,o.kt)("table",null,(0,o.kt)("thead",{parentName:"table"},(0,o.kt)("tr",{parentName:"thead"},(0,o.kt)("th",{parentName:"tr",align:null},"Components"),(0,o.kt)("th",{parentName:"tr",align:null},"Existing projects"),(0,o.kt)("th",{parentName:"tr",align:null},"Potentially interesting projects"))),(0,o.kt)("tbody",{parentName:"table"},(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:null},"SCALE Codec"),(0,o.kt)("td",{parentName:"tr",align:null},(0,o.kt)("a",{parentName:"td",href:"https://github.com/paritytech/parity-scale-codec"},"Rust")," \ud83d\udfe2, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/paritytech/parity-scale-codec-ts"},"TypeScript")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/polkascan/py-scale-codec"},"Python")," \ud83d\udfe2, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/ChainSafe/gossamer/tree/development/pkg/scale/"},"Golang Chainsafe")," \ud83d\udfe2, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/itering/scale.go"},"Golang Itering")," \ud83d\udfe1, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/MatthewDarnell/cScale"},"C")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/soramitsu/scale-codec-cpp"},"C++")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/polkadot-js/api"},"JavaScript")," \ud83d\udfe2, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/LimeChain/as-scale-codec"},"AssemblyScript")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/airalab/hs-web3/tree/master/packages/scale/src/Codec"},"Haskell")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/emeraldpay/polkaj"},"Java")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/itering/scale.rb"},"Ruby")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/nbltrust/dart-scale-codec"},"Dart")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/tesseract-one/swift-scale-codec"},"Swift")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/sublabdev/scale-codec-swift"},"scale-codec-swift")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/sublabdev/scale-codec-kotlin"},"scale-codec-kotlin")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/gmajor-encrypt/php-scale-codec"},"PHP")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/soramitsu/scale-codec-js-library"},"JavaScript by Soramitsu")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/gmajor-encrypt/scale-codec-comparator"},"Scale Codec Comparator")," \ud83d\udfe2, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/darwinia-network/darwinia-messages-sol/blob/master/contracts/utils/contracts/ScaleCodec.sol"},"ScaleCodec.sol by Darwinia")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/Snowfork/snowbridge/blob/main/core/packages/contracts/contracts/ScaleCodec.sol"},"ScaleCodec.sol by Snowfork")," \ud83d\udfe2, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/arijitAD/dotscale"},"Dotscale")," \u26aa"),(0,o.kt)("td",{parentName:"tr",align:null})),(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:null},"Networking Framework"),(0,o.kt)("td",{parentName:"tr",align:null},(0,o.kt)("a",{parentName:"td",href:"https://github.com/libp2p/libp2p"},"libp2p")," \u26aa ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/algorealmInc/SwarmNL"},"SwarmNL")," \ud83d\udfe2"),(0,o.kt)("td",{parentName:"tr",align:null})),(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:null},"DHT Crawler"),(0,o.kt)("td",{parentName:"tr",align:null},(0,o.kt)("a",{parentName:"td",href:"https://github.com/atredispartners/dht-crawler-polkadot"},"Go")," \u26aa, ",(0,o.kt)("a",{parentName:"td",href:"https://github.com/emeraldpay/polkabot"},"Kotlin")," \u26aa"),(0,o.kt)("td",{parentName:"tr",align:null})),(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:null},"RPC Tor-like access"),(0,o.kt)("td",{parentName:"tr",align:null},(0,o.kt)("a",{parentName:"td",href:"https://github.com/Evanesco-Labs/WhiteNoise.rs"},"WhiteNoise")," \u26aa"),(0,o.kt)("td",{parentName:"tr",align:null})))),(0,o.kt)("h3",{id:"primitives"},"Primitives"),(0,o.kt)("table",null,(0,o.kt)("thead",{parentName:"table"},(0,o.kt)("tr",{parentName:"thead"},(0,o.kt)("th",{parentName:"tr",align:null},"Components"),(0,o.kt)("th",{parentName:"tr",align:null},"Existing projects"),(0,o.kt)("th",{parentName:"tr",align:null},"Potentially interesting projects"))),(0,o.kt)("tbody",{parentName:"table"},(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:null},"Storage"),(0,o.kt)("td",{parentName:"tr",align:null},(0,o.kt)("a",{parentName:"td",href:"https://github.com/frisitano/merkle-tree-db"},"Merkle Tree DB")," \u26aa"),(0,o.kt)("td",{parentName:"tr",align:null})),(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:null},"Merkle Proofs"),(0,o.kt)("td",{parentName:"tr",align:null},(0,o.kt)("a",{parentName:"td",href:"https://github.com/polytope-labs/solidity-merkle-trees"},"Solidity Trie Verifier")," \ud83d\udfe2"),(0,o.kt)("td",{parentName:"tr",align:null})))),(0,o.kt)("h2",{id:"contributing"},"Contributing"),(0,o.kt)("p",null,"Pull requests, issues, or other contributions from the community are encouraged! You can not only\nadd specific projects, but also potentially interesting fields/areas which are currently missing in\nthe tech stack."),(0,o.kt)("p",null,"\u2757 All technologies listed above need to be open-source. Ideally, the links\nlead directly to the code."),(0,o.kt)("p",null,(0,o.kt)("em",{parentName:"p"},"Note: You will need a GitHub account to suggest changes or open issues. If you do not have one, you\nmay ",(0,o.kt)("a",{parentName:"em",href:"https://github.com/join"},"sign up for free"),".")))}k.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/runtime~main.f9f90dc8.js b/assets/js/runtime~main.0ba3a3bf.js similarity index 85% rename from assets/js/runtime~main.f9f90dc8.js rename to assets/js/runtime~main.0ba3a3bf.js index 18ad3f7cdf..9cb4387ac6 100644 --- a/assets/js/runtime~main.f9f90dc8.js +++ b/assets/js/runtime~main.0ba3a3bf.js @@ -1 +1 @@ -(()=>{"use strict";var e,f,d,a,b={},c={};function r(e){var f=c[e];if(void 0!==f)return f.exports;var d=c[e]={id:e,loaded:!1,exports:{}};return b[e].call(d.exports,d,d.exports,r),d.loaded=!0,d.exports}r.m=b,e=[],r.O=(f,d,a,b)=>{if(!d){var c=1/0;for(i=0;i=b)&&Object.keys(r.O).every((e=>r.O[e](d[o])))?d.splice(o--,1):(t=!1,b0&&e[i-1][2]>b;i--)e[i]=e[i-1];e[i]=[d,a,b]},r.n=e=>{var f=e&&e.__esModule?()=>e.default:()=>e;return r.d(f,{a:f}),f},d=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,r.t=function(e,a){if(1&a&&(e=this(e)),8&a)return e;if("object"==typeof e&&e){if(4&a&&e.__esModule)return e;if(16&a&&"function"==typeof e.then)return e}var b=Object.create(null);r.r(b);var c={};f=f||[null,d({}),d([]),d(d)];for(var t=2&a&&e;"object"==typeof t&&!~f.indexOf(t);t=d(t))Object.getOwnPropertyNames(t).forEach((f=>c[f]=()=>e[f]));return c.default=()=>e,r.d(b,c),b},r.d=(e,f)=>{for(var d in f)r.o(f,d)&&!r.o(e,d)&&Object.defineProperty(e,d,{enumerable:!0,get:f[d]})},r.f={},r.e=e=>Promise.all(Object.keys(r.f).reduce(((f,d)=>(r.f[d](e,f),f)),[])),r.u=e=>"assets/js/"+({1:"f4fb6e9c",6:"408829bd",12:"1d6d4797",43:"74985360",53:"935f2afb",63:"9f319605",150:"77c23c97",192:"f189ca9f",217:"c7a044bb",230:"804b1e9f",289:"bf3ab9de",315:"9528ac88",502:"2d429218",537:"3829cf1d",576:"f52abf29",609:"d569989b",657:"386bfe51",660:"387813b8",690:"e4ef088f",691:"145746f5",740:"078895e8",779:"49dac903",810:"23498fd5",1062:"f90fa732",1083:"899aadcc",1090:"cfd53ea4",1125:"3184af97",1211:"73c3bebc",1213:"25f2bd2a",1239:"f359a251",1288:"fabebe44",1299:"74df6a22",1306:"543c9f0a",1372:"b61f6dc7",1415:"4d76887f",1419:"f750c690",1446:"5136ee31",1451:"f44679e7",1486:"8dd7cee0",1494:"b21dd8a7",1506:"c630d0cd",1529:"ffe9c3c9",1585:"33b0bcab",1598:"7fbac68a",1635:"5db34cd0",1678:"fa343ad1",1686:"f7191335",1703:"a5002e4a",1713:"0eeb7a68",1723:"0df78d26",1748:"987d08ef",1774:"9e6341e5",1786:"d9ef69a7",1804:"0e306820",1825:"48074a08",1872:"78e1e977",1953:"1ed3671a",1957:"df154d69",1966:"f47489cd",1975:"fda65b2b",1979:"0cb62240",2008:"4f031749",2042:"dd32e389",2117:"21877fa5",2119:"6d5c9a28",2136:"ecb495b7",2169:"1646726c",2194:"6151e7ce",2242:"f3027c84",2248:"da9f79cb",2354:"493c7fdf",2399:"8d3a1bf8",2433:"69253974",2507:"7c78c461",2508:"918b38b6",2552:"863c4753",2581:"967fa6d4",2609:"db0b42b0",2633:"e2e89062",2635:"0b632434",2664:"9662c81e",2665:"f4130007",2677:"ece9fdae",2704:"f3bde756",2710:"39c15ff8",2712:"c2c6a3a6",2749:"b906f375",2754:"78868b16",2758:"9e3f6a8a",2794:"feadf832",2884:"5d69d9d4",2909:"f4200fe5",2914:"2be0d940",2949:"2ea50c63",3029:"6544ec02",3066:"af40287e",3091:"b0a48d97",3132:"85afe03a",3262:"8a8a7d05",3274:"41f7224c",3330:"e31fc461",3332:"3497b7c6",3356:"f14351c1",3452:"3d1bf5db",3484:"5c90fc9b",3513:"41b7b3e8",3554:"d5909206",3576:"73d1b372",3599:"21899dd2",3620:"f137ce68",3643:"cb9afd28",3665:"f1585bfb",3667:"b0cbc1d4",3668:"b225a2ce",3669:"dbbd9e76",3757:"bea375d6",3842:"ff6596ea",3933:"cda87995",3945:"f8518919",3978:"c8dd560b",4004:"ec3b6a32",4097:"eef3f1dd",4105:"702d5d94",4126:"5355b952",4143:"9f804621",4195:"c4f5d8e4",4338:"84ede15a",4355:"19ed4d4c",4359:"dc36d550",4363:"f2c21b54",4379:"c662f00a",4385:"e00ac272",4445:"4d9b9869",4507:"a7b37b86",4537:"1ae2b102",4541:"3e56470e",4566:"694e7470",4577:"9ebc4c9a",4620:"48d75399",4634:"54338ffb",4666:"f41c4e9d",4672:"43ee4f22",4674:"fea93377",4860:"346ef9e6",4885:"2462cc91",4909:"f0855ff9",4916:"c1bbdb2a",5005:"320c8a05",5013:"c41801b5",5049:"e3d2722f",5052:"6116139f",5103:"db039c7f",5132:"a4c751bb",5157:"d27ae88d",5281:"31bd35e0",5341:"9913464d",5422:"b3719d54",5483:"f7acb151",5526:"0c68fb82",5548:"d6b0148d",5645:"2d34559d",5651:"9e2042f5",5704:"b9b4ec9e",5752:"73a7060c",5806:"a8f54fb1",5933:"e77078a1",5969:"7dcec981",5989:"fbf58567",6104:"c7c5ba1a",6140:"32e8da05",6253:"a29dc56e",6255:"452ad91d",6294:"bbba852d",6312:"dbc4065c",6325:"3002ebf4",6343:"10c0f3e2",6357:"43cda9e8",6373:"ceaa29cb",6585:"13b7bafa",6598:"ca9fe671",6673:"af3013e9",6689:"f2521980",6730:"73617284",6779:"c5d9e474",6827:"279fb1d6",6920:"ccc1222e",6946:"4642ab5c",7022:"543610b9",7061:"feea648c",7202:"4a8eb552",7211:"f44ed8f8",7288:"6f1a81b8",7313:"db3d6c4d",7368:"bb8b1738",7388:"bd701914",7466:"a5b3561d",7584:"98a431f4",7633:"b940de31",7654:"c07c2447",7683:"cc44e8fd",7714:"591eca19",7717:"43267d13",7738:"113faa87",7745:"9129da9e",7799:"8b670b2b",7823:"9e76b49d",7830:"15985664",7837:"0a3f0c9b",7858:"d6a97e7e",7908:"33bbe353",7918:"17896441",7920:"1a4e3797",7940:"ad762f86",7961:"a2800a5b",8034:"fecdcc34",8049:"a87fd2e4",8067:"69b97ecd",8115:"8247eba8",8138:"694672cd",8139:"386099fc",8178:"9a679a70",8191:"f0ff685a",8215:"30d868e8",8236:"ffd76171",8270:"12331e8b",8355:"c91a9c06",8361:"824749c6",8444:"28b84bbb",8609:"ed3409b3",8648:"71ed82b9",8702:"a74a59a0",8757:"83d4859f",8791:"ab138bf8",8831:"3bd77df4",8842:"a9f58d5b",8855:"d3a753cf",8860:"766a10e1",8866:"98a30fd8",8876:"31c99aa1",8887:"a4ac0905",8901:"b48c599b",8950:"4cdd7dfa",8951:"e495ca4d",9009:"afddde9d",9062:"b38833d4",9071:"60738e36",9217:"64c7e1cc",9226:"2f3b630e",9315:"6d2ffbf3",9323:"131c7f55",9478:"c7a2145e",9514:"1be78505",9548:"f95cee6f",9567:"c977dfe8",9596:"390ca211",9626:"32c9742a",9764:"dc776cbc",9771:"89a76fd2",9802:"1e15616a",9806:"51fbc2c9",9817:"14eb3368",9856:"06597bc8",9905:"b0cb055f",9962:"dd2fa029",9964:"050c0163",9977:"3104d5d8",9993:"482bfb5c"}[e]||e)+"."+{1:"7982c32a",6:"db131571",12:"739fb3e6",43:"ec615290",53:"7f67f10b",63:"f608abaf",150:"13deb045",192:"2e7c60b0",217:"d820e3b8",230:"c9477250",289:"3b4a4a2e",315:"b8ee94d0",502:"604ed9b6",537:"524ff1b2",576:"b6d8d8a7",609:"778916fd",657:"ec35d451",660:"97b272bb",690:"155d9583",691:"552fe742",740:"c7d44045",779:"355a312e",810:"2264d0ff",1062:"4e350e70",1083:"e3fcfe42",1090:"22feed5e",1125:"08dc01f0",1211:"8f5a0e7c",1213:"3c1ab926",1239:"c590a4a0",1288:"0277d206",1299:"c961e5f6",1306:"ac52ea76",1372:"f88587f7",1415:"9e1bf21b",1419:"7a3f670a",1426:"ad86846c",1446:"537a7011",1451:"34c12ac3",1486:"30ce83fe",1494:"efa4db16",1506:"3ef0f30c",1529:"3ce3222b",1585:"aabb2412",1598:"6bb3632e",1635:"ed993afa",1678:"75c913b6",1686:"56d8ba25",1703:"47489b6f",1713:"243d8ca6",1723:"0ce10b86",1748:"f7b5e623",1774:"1d252aa1",1786:"f4772110",1804:"281549bf",1825:"14fb7ccf",1872:"65b3870e",1953:"2e3d0d61",1957:"c425e484",1966:"fec75d4e",1975:"40b37929",1979:"3ba15e56",2008:"5e9b5602",2042:"137e0856",2117:"1b1afa52",2119:"5bf4e5d4",2136:"cf18d27f",2169:"7312db8b",2194:"64dc35e4",2242:"29f4f13d",2248:"a4f7149f",2354:"546de39f",2399:"20b06c7c",2433:"62773624",2507:"baf80976",2508:"b06b13b7",2552:"54fedfee",2581:"ff76c3f3",2609:"6fc93a45",2633:"426c6a8b",2635:"52e500d9",2664:"1755a5f5",2665:"5e22445d",2677:"2a0c809d",2704:"9db3903d",2710:"225ee91e",2712:"6d602295",2749:"dcf9fcf5",2754:"79a78023",2758:"1d952cbe",2794:"fbc8e473",2884:"a8ef394b",2909:"59e2ad65",2914:"d7e05b76",2949:"fc813138",3029:"f03d8377",3066:"5970dc95",3091:"de1f67f7",3132:"06c02fa2",3262:"72a7d9e2",3274:"1a49e8ba",3330:"c37cc5ff",3332:"d83fa2b7",3356:"1d83a882",3452:"72d20b91",3484:"37120703",3513:"43572b28",3554:"4ccbc70d",3576:"4486e4eb",3599:"27e14893",3620:"ba1bbee3",3643:"7d08ed65",3665:"06cf5e6d",3667:"92dab6da",3668:"2c261bbe",3669:"26c59984",3757:"dc986e73",3842:"d692735f",3933:"c6a54796",3945:"998a9201",3978:"30845bc3",4004:"b05c10c0",4097:"81781328",4105:"0b1d1a99",4126:"a654b363",4143:"fd769080",4195:"4e25db6e",4338:"643c714a",4355:"3559111b",4359:"7ac25ade",4363:"187efbb6",4379:"7e070bb8",4385:"cdc74bcc",4445:"5d63a009",4507:"55820043",4537:"f4f33a53",4541:"4baf9fbc",4566:"0a7a2bee",4577:"e82df813",4620:"96326842",4634:"0f16e761",4666:"c52d88fc",4672:"7a7c9a18",4674:"e79e0edf",4860:"dbd9de91",4885:"54c35b11",4909:"4468613e",4916:"eb5c454a",4972:"d0d52519",5005:"9865a3ec",5013:"659d8905",5049:"a1466208",5052:"23363ab6",5103:"de0e23a2",5132:"a5637b62",5157:"591d4436",5281:"3d11be7e",5341:"71243665",5422:"6b8bc818",5424:"e7b21dd1",5483:"b564fcdf",5526:"249781df",5548:"7421f820",5645:"e0ed015c",5651:"c1eb55e8",5704:"829b1bb8",5752:"494c7a3d",5806:"48ca0161",5933:"1e4b86ea",5969:"edcbdd8d",5989:"8b2a2c52",6104:"31cdd89a",6140:"332d825f",6253:"15d1fb50",6255:"a12eb1f8",6294:"496ade5b",6312:"c07951cd",6316:"24db8bc9",6325:"bee30135",6343:"7f5e52ea",6357:"d5753309",6373:"4ce1f349",6495:"93b21474",6585:"a80112d7",6598:"c7f7651e",6673:"4c49fbbe",6689:"f65bb76b",6730:"34d6d35b",6779:"92314270",6827:"915455ce",6920:"7635c335",6945:"96d36007",6946:"96be403b",7022:"164cc371",7061:"581bdd3c",7202:"b8400472",7211:"b7c9471a",7288:"a35e31bf",7313:"c0f06167",7368:"c4feb8aa",7388:"aa16b6e8",7466:"0c21b184",7584:"dce5d342",7633:"ea7b0a53",7654:"3ff0d68b",7683:"26c41f21",7714:"bdf48486",7717:"91c74ab0",7724:"2906ce0b",7738:"29cf5632",7745:"946d7ac7",7799:"62053cad",7823:"9912ab3c",7830:"63aa0216",7837:"c9876e44",7858:"38d5fff3",7908:"84778ed0",7918:"916bc4d8",7920:"71c37020",7940:"8e9796c0",7961:"94328495",8034:"7bf67fbd",8049:"873cfc89",8067:"fec88749",8115:"8165c202",8138:"0a6c7877",8139:"aad9e32b",8178:"b0a99af1",8191:"f4ce1ed7",8215:"aae5ed82",8236:"da96a02f",8270:"2ff4fca8",8355:"e06e91b1",8361:"70aef7f4",8444:"12d8bc2e",8609:"67609406",8648:"63b1a1f5",8702:"7deb8cbb",8757:"d5b3e8a3",8791:"c1460ec8",8831:"d871707f",8842:"5a9a4b34",8855:"0b2d0c1d",8860:"5c0ca221",8866:"7ec2dc84",8876:"abc30cce",8887:"95abd240",8894:"ba661129",8901:"3e914279",8950:"fdf0595f",8951:"7740c50c",9009:"f3fb9fce",9062:"6aaa9d38",9071:"4ee51de4",9217:"c330134f",9226:"af0d17ab",9315:"151559ba",9323:"6a901c85",9478:"4320f054",9487:"48bf43fe",9514:"5d553167",9548:"a1739f6d",9567:"f1912b24",9596:"0eab3f58",9626:"2dadbb25",9764:"5757c115",9771:"6f75abbd",9802:"e08e9183",9806:"54c2c043",9817:"5ba13cdf",9856:"64966594",9905:"2cba576e",9962:"490ad29d",9964:"2762c242",9977:"f45b2d88",9993:"e037a0d9"}[e]+".js",r.miniCssF=e=>{},r.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),r.o=(e,f)=>Object.prototype.hasOwnProperty.call(e,f),a={},r.l=(e,f,d,b)=>{if(a[e])a[e].push(f);else{var c,t;if(void 0!==d)for(var o=document.getElementsByTagName("script"),n=0;n{c.onerror=c.onload=null,clearTimeout(u);var b=a[e];if(delete a[e],c.parentNode&&c.parentNode.removeChild(c),b&&b.forEach((e=>e(d))),f)return f(d)},u=setTimeout(l.bind(null,void 0,{type:"timeout",target:c}),12e4);c.onerror=l.bind(null,c.onerror),c.onload=l.bind(null,c.onload),t&&document.head.appendChild(c)}},r.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.nmd=e=>(e.paths=[],e.children||(e.children=[]),e),r.p="/",r.gca=function(e){return e={15985664:"7830",17896441:"7918",69253974:"2433",73617284:"6730",74985360:"43",f4fb6e9c:"1","408829bd":"6","1d6d4797":"12","935f2afb":"53","9f319605":"63","77c23c97":"150",f189ca9f:"192",c7a044bb:"217","804b1e9f":"230",bf3ab9de:"289","9528ac88":"315","2d429218":"502","3829cf1d":"537",f52abf29:"576",d569989b:"609","386bfe51":"657","387813b8":"660",e4ef088f:"690","145746f5":"691","078895e8":"740","49dac903":"779","23498fd5":"810",f90fa732:"1062","899aadcc":"1083",cfd53ea4:"1090","3184af97":"1125","73c3bebc":"1211","25f2bd2a":"1213",f359a251:"1239",fabebe44:"1288","74df6a22":"1299","543c9f0a":"1306",b61f6dc7:"1372","4d76887f":"1415",f750c690:"1419","5136ee31":"1446",f44679e7:"1451","8dd7cee0":"1486",b21dd8a7:"1494",c630d0cd:"1506",ffe9c3c9:"1529","33b0bcab":"1585","7fbac68a":"1598","5db34cd0":"1635",fa343ad1:"1678",f7191335:"1686",a5002e4a:"1703","0eeb7a68":"1713","0df78d26":"1723","987d08ef":"1748","9e6341e5":"1774",d9ef69a7:"1786","0e306820":"1804","48074a08":"1825","78e1e977":"1872","1ed3671a":"1953",df154d69:"1957",f47489cd:"1966",fda65b2b:"1975","0cb62240":"1979","4f031749":"2008",dd32e389:"2042","21877fa5":"2117","6d5c9a28":"2119",ecb495b7:"2136","1646726c":"2169","6151e7ce":"2194",f3027c84:"2242",da9f79cb:"2248","493c7fdf":"2354","8d3a1bf8":"2399","7c78c461":"2507","918b38b6":"2508","863c4753":"2552","967fa6d4":"2581",db0b42b0:"2609",e2e89062:"2633","0b632434":"2635","9662c81e":"2664",f4130007:"2665",ece9fdae:"2677",f3bde756:"2704","39c15ff8":"2710",c2c6a3a6:"2712",b906f375:"2749","78868b16":"2754","9e3f6a8a":"2758",feadf832:"2794","5d69d9d4":"2884",f4200fe5:"2909","2be0d940":"2914","2ea50c63":"2949","6544ec02":"3029",af40287e:"3066",b0a48d97:"3091","85afe03a":"3132","8a8a7d05":"3262","41f7224c":"3274",e31fc461:"3330","3497b7c6":"3332",f14351c1:"3356","3d1bf5db":"3452","5c90fc9b":"3484","41b7b3e8":"3513",d5909206:"3554","73d1b372":"3576","21899dd2":"3599",f137ce68:"3620",cb9afd28:"3643",f1585bfb:"3665",b0cbc1d4:"3667",b225a2ce:"3668",dbbd9e76:"3669",bea375d6:"3757",ff6596ea:"3842",cda87995:"3933",f8518919:"3945",c8dd560b:"3978",ec3b6a32:"4004",eef3f1dd:"4097","702d5d94":"4105","5355b952":"4126","9f804621":"4143",c4f5d8e4:"4195","84ede15a":"4338","19ed4d4c":"4355",dc36d550:"4359",f2c21b54:"4363",c662f00a:"4379",e00ac272:"4385","4d9b9869":"4445",a7b37b86:"4507","1ae2b102":"4537","3e56470e":"4541","694e7470":"4566","9ebc4c9a":"4577","48d75399":"4620","54338ffb":"4634",f41c4e9d:"4666","43ee4f22":"4672",fea93377:"4674","346ef9e6":"4860","2462cc91":"4885",f0855ff9:"4909",c1bbdb2a:"4916","320c8a05":"5005",c41801b5:"5013",e3d2722f:"5049","6116139f":"5052",db039c7f:"5103",a4c751bb:"5132",d27ae88d:"5157","31bd35e0":"5281","9913464d":"5341",b3719d54:"5422",f7acb151:"5483","0c68fb82":"5526",d6b0148d:"5548","2d34559d":"5645","9e2042f5":"5651",b9b4ec9e:"5704","73a7060c":"5752",a8f54fb1:"5806",e77078a1:"5933","7dcec981":"5969",fbf58567:"5989",c7c5ba1a:"6104","32e8da05":"6140",a29dc56e:"6253","452ad91d":"6255",bbba852d:"6294",dbc4065c:"6312","3002ebf4":"6325","10c0f3e2":"6343","43cda9e8":"6357",ceaa29cb:"6373","13b7bafa":"6585",ca9fe671:"6598",af3013e9:"6673",f2521980:"6689",c5d9e474:"6779","279fb1d6":"6827",ccc1222e:"6920","4642ab5c":"6946","543610b9":"7022",feea648c:"7061","4a8eb552":"7202",f44ed8f8:"7211","6f1a81b8":"7288",db3d6c4d:"7313",bb8b1738:"7368",bd701914:"7388",a5b3561d:"7466","98a431f4":"7584",b940de31:"7633",c07c2447:"7654",cc44e8fd:"7683","591eca19":"7714","43267d13":"7717","113faa87":"7738","9129da9e":"7745","8b670b2b":"7799","9e76b49d":"7823","0a3f0c9b":"7837",d6a97e7e:"7858","33bbe353":"7908","1a4e3797":"7920",ad762f86:"7940",a2800a5b:"7961",fecdcc34:"8034",a87fd2e4:"8049","69b97ecd":"8067","8247eba8":"8115","694672cd":"8138","386099fc":"8139","9a679a70":"8178",f0ff685a:"8191","30d868e8":"8215",ffd76171:"8236","12331e8b":"8270",c91a9c06:"8355","824749c6":"8361","28b84bbb":"8444",ed3409b3:"8609","71ed82b9":"8648",a74a59a0:"8702","83d4859f":"8757",ab138bf8:"8791","3bd77df4":"8831",a9f58d5b:"8842",d3a753cf:"8855","766a10e1":"8860","98a30fd8":"8866","31c99aa1":"8876",a4ac0905:"8887",b48c599b:"8901","4cdd7dfa":"8950",e495ca4d:"8951",afddde9d:"9009",b38833d4:"9062","60738e36":"9071","64c7e1cc":"9217","2f3b630e":"9226","6d2ffbf3":"9315","131c7f55":"9323",c7a2145e:"9478","1be78505":"9514",f95cee6f:"9548",c977dfe8:"9567","390ca211":"9596","32c9742a":"9626",dc776cbc:"9764","89a76fd2":"9771","1e15616a":"9802","51fbc2c9":"9806","14eb3368":"9817","06597bc8":"9856",b0cb055f:"9905",dd2fa029:"9962","050c0163":"9964","3104d5d8":"9977","482bfb5c":"9993"}[e]||e,r.p+r.u(e)},(()=>{var e={1303:0,532:0};r.f.j=(f,d)=>{var a=r.o(e,f)?e[f]:void 0;if(0!==a)if(a)d.push(a[2]);else if(/^(1303|532)$/.test(f))e[f]=0;else{var b=new Promise(((d,b)=>a=e[f]=[d,b]));d.push(a[2]=b);var c=r.p+r.u(f),t=new Error;r.l(c,(d=>{if(r.o(e,f)&&(0!==(a=e[f])&&(e[f]=void 0),a)){var b=d&&("load"===d.type?"missing":d.type),c=d&&d.target&&d.target.src;t.message="Loading chunk "+f+" failed.\n("+b+": "+c+")",t.name="ChunkLoadError",t.type=b,t.request=c,a[1](t)}}),"chunk-"+f,f)}},r.O.j=f=>0===e[f];var f=(f,d)=>{var a,b,[c,t,o]=d,n=0;if(c.some((f=>0!==e[f]))){for(a in t)r.o(t,a)&&(r.m[a]=t[a]);if(o)var i=o(r)}for(f&&f(d);n{"use strict";var e,f,d,a,c={},b={};function r(e){var f=b[e];if(void 0!==f)return f.exports;var d=b[e]={id:e,loaded:!1,exports:{}};return c[e].call(d.exports,d,d.exports,r),d.loaded=!0,d.exports}r.m=c,e=[],r.O=(f,d,a,c)=>{if(!d){var b=1/0;for(i=0;i=c)&&Object.keys(r.O).every((e=>r.O[e](d[o])))?d.splice(o--,1):(t=!1,c0&&e[i-1][2]>c;i--)e[i]=e[i-1];e[i]=[d,a,c]},r.n=e=>{var f=e&&e.__esModule?()=>e.default:()=>e;return r.d(f,{a:f}),f},d=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,r.t=function(e,a){if(1&a&&(e=this(e)),8&a)return e;if("object"==typeof e&&e){if(4&a&&e.__esModule)return e;if(16&a&&"function"==typeof e.then)return e}var c=Object.create(null);r.r(c);var b={};f=f||[null,d({}),d([]),d(d)];for(var t=2&a&&e;"object"==typeof t&&!~f.indexOf(t);t=d(t))Object.getOwnPropertyNames(t).forEach((f=>b[f]=()=>e[f]));return b.default=()=>e,r.d(c,b),c},r.d=(e,f)=>{for(var d in f)r.o(f,d)&&!r.o(e,d)&&Object.defineProperty(e,d,{enumerable:!0,get:f[d]})},r.f={},r.e=e=>Promise.all(Object.keys(r.f).reduce(((f,d)=>(r.f[d](e,f),f)),[])),r.u=e=>"assets/js/"+({1:"f4fb6e9c",6:"408829bd",12:"1d6d4797",43:"74985360",53:"935f2afb",63:"9f319605",150:"77c23c97",192:"f189ca9f",217:"c7a044bb",230:"804b1e9f",289:"bf3ab9de",315:"9528ac88",502:"2d429218",537:"3829cf1d",576:"f52abf29",609:"d569989b",657:"386bfe51",660:"387813b8",690:"e4ef088f",691:"145746f5",740:"078895e8",779:"49dac903",810:"23498fd5",1062:"f90fa732",1083:"899aadcc",1090:"cfd53ea4",1125:"3184af97",1211:"73c3bebc",1213:"25f2bd2a",1239:"f359a251",1288:"fabebe44",1299:"74df6a22",1306:"543c9f0a",1372:"b61f6dc7",1415:"4d76887f",1419:"f750c690",1446:"5136ee31",1451:"f44679e7",1486:"8dd7cee0",1494:"b21dd8a7",1506:"c630d0cd",1529:"ffe9c3c9",1585:"33b0bcab",1598:"7fbac68a",1635:"5db34cd0",1678:"fa343ad1",1686:"f7191335",1703:"a5002e4a",1713:"0eeb7a68",1723:"0df78d26",1748:"987d08ef",1774:"9e6341e5",1786:"d9ef69a7",1804:"0e306820",1825:"48074a08",1872:"78e1e977",1953:"1ed3671a",1957:"df154d69",1966:"f47489cd",1975:"fda65b2b",1979:"0cb62240",2008:"4f031749",2042:"dd32e389",2117:"21877fa5",2119:"6d5c9a28",2136:"ecb495b7",2169:"1646726c",2194:"6151e7ce",2242:"f3027c84",2248:"da9f79cb",2354:"493c7fdf",2399:"8d3a1bf8",2433:"69253974",2507:"7c78c461",2508:"918b38b6",2552:"863c4753",2581:"967fa6d4",2609:"db0b42b0",2633:"e2e89062",2635:"0b632434",2664:"9662c81e",2665:"f4130007",2677:"ece9fdae",2704:"f3bde756",2710:"39c15ff8",2712:"c2c6a3a6",2749:"b906f375",2754:"78868b16",2758:"9e3f6a8a",2794:"feadf832",2884:"5d69d9d4",2909:"f4200fe5",2914:"2be0d940",2949:"2ea50c63",3029:"6544ec02",3066:"af40287e",3091:"b0a48d97",3132:"85afe03a",3262:"8a8a7d05",3274:"41f7224c",3330:"e31fc461",3332:"3497b7c6",3356:"f14351c1",3452:"3d1bf5db",3484:"5c90fc9b",3513:"41b7b3e8",3554:"d5909206",3576:"73d1b372",3599:"21899dd2",3620:"f137ce68",3643:"cb9afd28",3665:"f1585bfb",3667:"b0cbc1d4",3668:"b225a2ce",3669:"dbbd9e76",3757:"bea375d6",3842:"ff6596ea",3933:"cda87995",3945:"f8518919",3978:"c8dd560b",4004:"ec3b6a32",4097:"eef3f1dd",4105:"702d5d94",4126:"5355b952",4143:"9f804621",4195:"c4f5d8e4",4338:"84ede15a",4355:"19ed4d4c",4359:"dc36d550",4363:"f2c21b54",4379:"c662f00a",4385:"e00ac272",4445:"4d9b9869",4507:"a7b37b86",4537:"1ae2b102",4541:"3e56470e",4566:"694e7470",4577:"9ebc4c9a",4620:"48d75399",4634:"54338ffb",4666:"f41c4e9d",4672:"43ee4f22",4674:"fea93377",4860:"346ef9e6",4885:"2462cc91",4909:"f0855ff9",4916:"c1bbdb2a",5005:"320c8a05",5013:"c41801b5",5049:"e3d2722f",5052:"6116139f",5103:"db039c7f",5132:"a4c751bb",5157:"d27ae88d",5281:"31bd35e0",5341:"9913464d",5422:"b3719d54",5483:"f7acb151",5526:"0c68fb82",5548:"d6b0148d",5645:"2d34559d",5651:"9e2042f5",5704:"b9b4ec9e",5752:"73a7060c",5806:"a8f54fb1",5933:"e77078a1",5969:"7dcec981",5989:"fbf58567",6104:"c7c5ba1a",6140:"32e8da05",6253:"a29dc56e",6255:"452ad91d",6294:"bbba852d",6312:"dbc4065c",6325:"3002ebf4",6343:"10c0f3e2",6357:"43cda9e8",6373:"ceaa29cb",6585:"13b7bafa",6598:"ca9fe671",6673:"af3013e9",6689:"f2521980",6730:"73617284",6779:"c5d9e474",6827:"279fb1d6",6920:"ccc1222e",6946:"4642ab5c",7022:"543610b9",7061:"feea648c",7202:"4a8eb552",7211:"f44ed8f8",7288:"6f1a81b8",7313:"db3d6c4d",7368:"bb8b1738",7388:"bd701914",7466:"a5b3561d",7584:"98a431f4",7633:"b940de31",7654:"c07c2447",7683:"cc44e8fd",7714:"591eca19",7717:"43267d13",7738:"113faa87",7745:"9129da9e",7799:"8b670b2b",7823:"9e76b49d",7830:"15985664",7837:"0a3f0c9b",7858:"d6a97e7e",7908:"33bbe353",7918:"17896441",7920:"1a4e3797",7940:"ad762f86",7961:"a2800a5b",8034:"fecdcc34",8049:"a87fd2e4",8067:"69b97ecd",8115:"8247eba8",8138:"694672cd",8139:"386099fc",8178:"9a679a70",8191:"f0ff685a",8215:"30d868e8",8236:"ffd76171",8270:"12331e8b",8355:"c91a9c06",8361:"824749c6",8444:"28b84bbb",8609:"ed3409b3",8648:"71ed82b9",8702:"a74a59a0",8757:"83d4859f",8791:"ab138bf8",8831:"3bd77df4",8842:"a9f58d5b",8855:"d3a753cf",8860:"766a10e1",8866:"98a30fd8",8876:"31c99aa1",8887:"a4ac0905",8901:"b48c599b",8950:"4cdd7dfa",8951:"e495ca4d",9009:"afddde9d",9062:"b38833d4",9071:"60738e36",9217:"64c7e1cc",9226:"2f3b630e",9315:"6d2ffbf3",9323:"131c7f55",9478:"c7a2145e",9514:"1be78505",9548:"f95cee6f",9567:"c977dfe8",9596:"390ca211",9626:"32c9742a",9764:"dc776cbc",9771:"89a76fd2",9802:"1e15616a",9806:"51fbc2c9",9817:"14eb3368",9856:"06597bc8",9905:"b0cb055f",9962:"dd2fa029",9964:"050c0163",9977:"3104d5d8",9993:"482bfb5c"}[e]||e)+"."+{1:"7982c32a",6:"db131571",12:"739fb3e6",43:"ec615290",53:"7f67f10b",63:"f608abaf",150:"13deb045",192:"2e7c60b0",217:"d820e3b8",230:"c9477250",289:"3b4a4a2e",315:"b8ee94d0",502:"604ed9b6",537:"524ff1b2",576:"b6d8d8a7",609:"778916fd",657:"ec35d451",660:"97b272bb",690:"155d9583",691:"552fe742",740:"c7d44045",779:"355a312e",810:"2264d0ff",1062:"4e350e70",1083:"e3fcfe42",1090:"22feed5e",1125:"08dc01f0",1211:"8f5a0e7c",1213:"3c1ab926",1239:"c590a4a0",1288:"0277d206",1299:"c961e5f6",1306:"ac52ea76",1372:"f88587f7",1415:"9e1bf21b",1419:"7a3f670a",1426:"ad86846c",1446:"537a7011",1451:"34c12ac3",1486:"30ce83fe",1494:"efa4db16",1506:"3ef0f30c",1529:"3ce3222b",1585:"aabb2412",1598:"6bb3632e",1635:"ed993afa",1678:"75c913b6",1686:"56d8ba25",1703:"47489b6f",1713:"243d8ca6",1723:"0ce10b86",1748:"f7b5e623",1774:"1d252aa1",1786:"f4772110",1804:"281549bf",1825:"14fb7ccf",1872:"65b3870e",1953:"2e3d0d61",1957:"c425e484",1966:"fec75d4e",1975:"40b37929",1979:"3ba15e56",2008:"5e9b5602",2042:"137e0856",2117:"1b1afa52",2119:"5bf4e5d4",2136:"cf18d27f",2169:"7312db8b",2194:"64dc35e4",2242:"29f4f13d",2248:"a4f7149f",2354:"546de39f",2399:"20b06c7c",2433:"62773624",2507:"baf80976",2508:"b06b13b7",2552:"54fedfee",2581:"ff76c3f3",2609:"6fc93a45",2633:"426c6a8b",2635:"52e500d9",2664:"1755a5f5",2665:"5e22445d",2677:"2a0c809d",2704:"9db3903d",2710:"225ee91e",2712:"6d602295",2749:"dcf9fcf5",2754:"79a78023",2758:"1d952cbe",2794:"fbc8e473",2884:"a8ef394b",2909:"59e2ad65",2914:"d7e05b76",2949:"fc813138",3029:"f03d8377",3066:"5970dc95",3091:"de1f67f7",3132:"06c02fa2",3262:"72a7d9e2",3274:"1a49e8ba",3330:"c37cc5ff",3332:"d83fa2b7",3356:"1d83a882",3452:"72d20b91",3484:"37120703",3513:"43572b28",3554:"4ccbc70d",3576:"4486e4eb",3599:"27e14893",3620:"ba1bbee3",3643:"7d08ed65",3665:"06cf5e6d",3667:"92dab6da",3668:"2c261bbe",3669:"26c59984",3757:"dc986e73",3842:"d692735f",3933:"c6a54796",3945:"998a9201",3978:"30845bc3",4004:"b05c10c0",4097:"81781328",4105:"0b1d1a99",4126:"a654b363",4143:"fd769080",4195:"4e25db6e",4338:"643c714a",4355:"3559111b",4359:"7ac25ade",4363:"187efbb6",4379:"7e070bb8",4385:"cdc74bcc",4445:"5d63a009",4507:"55820043",4537:"f4f33a53",4541:"4baf9fbc",4566:"0a7a2bee",4577:"e82df813",4620:"96326842",4634:"0f16e761",4666:"c52d88fc",4672:"7a7c9a18",4674:"e79e0edf",4860:"dbd9de91",4885:"54c35b11",4909:"4468613e",4916:"eb5c454a",4972:"d0d52519",5005:"9865a3ec",5013:"659d8905",5049:"a1466208",5052:"23363ab6",5103:"de0e23a2",5132:"a5637b62",5157:"591d4436",5281:"3d11be7e",5341:"71243665",5422:"6b8bc818",5424:"57902f93",5483:"b564fcdf",5526:"249781df",5548:"7421f820",5645:"e0ed015c",5651:"c1eb55e8",5704:"829b1bb8",5752:"494c7a3d",5806:"48ca0161",5933:"1e4b86ea",5969:"edcbdd8d",5989:"8b2a2c52",6104:"31cdd89a",6140:"332d825f",6253:"15d1fb50",6255:"a12eb1f8",6294:"496ade5b",6312:"c07951cd",6316:"24db8bc9",6325:"bee30135",6343:"7f5e52ea",6357:"d5753309",6373:"4ce1f349",6495:"93b21474",6585:"a80112d7",6598:"c7f7651e",6673:"4c49fbbe",6689:"f65bb76b",6730:"34d6d35b",6779:"92314270",6827:"915455ce",6920:"84d45f59",6945:"96d36007",6946:"96be403b",7022:"164cc371",7061:"581bdd3c",7202:"b8400472",7211:"b7c9471a",7288:"a35e31bf",7313:"c0f06167",7368:"c4feb8aa",7388:"aa16b6e8",7466:"0c21b184",7584:"dce5d342",7633:"ea7b0a53",7654:"3ff0d68b",7683:"26c41f21",7714:"bdf48486",7717:"91c74ab0",7724:"2906ce0b",7738:"29cf5632",7745:"946d7ac7",7799:"62053cad",7823:"9912ab3c",7830:"63aa0216",7837:"c9876e44",7858:"38d5fff3",7908:"84778ed0",7918:"916bc4d8",7920:"71c37020",7940:"8e9796c0",7961:"94328495",8034:"7bf67fbd",8049:"873cfc89",8067:"fec88749",8115:"8165c202",8138:"0a6c7877",8139:"aad9e32b",8178:"b0a99af1",8191:"f4ce1ed7",8215:"aae5ed82",8236:"da96a02f",8270:"2ff4fca8",8355:"68bbd3df",8361:"70aef7f4",8444:"12d8bc2e",8609:"67609406",8648:"63b1a1f5",8702:"02bd5f36",8757:"d5b3e8a3",8791:"c1460ec8",8831:"d871707f",8842:"5a9a4b34",8855:"0b2d0c1d",8860:"5c0ca221",8866:"7ec2dc84",8876:"abc30cce",8887:"95abd240",8894:"ba661129",8901:"3e914279",8950:"fdf0595f",8951:"7740c50c",9009:"f3fb9fce",9062:"6aaa9d38",9071:"d8a4cbd8",9217:"c330134f",9226:"af0d17ab",9315:"151559ba",9323:"6a901c85",9478:"4320f054",9487:"48bf43fe",9514:"5d553167",9548:"a1739f6d",9567:"f1912b24",9596:"0eab3f58",9626:"2dadbb25",9764:"5757c115",9771:"6f75abbd",9802:"e08e9183",9806:"54c2c043",9817:"5ba13cdf",9856:"64966594",9905:"2cba576e",9962:"490ad29d",9964:"2762c242",9977:"f45b2d88",9993:"e037a0d9"}[e]+".js",r.miniCssF=e=>{},r.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),r.o=(e,f)=>Object.prototype.hasOwnProperty.call(e,f),a={},r.l=(e,f,d,c)=>{if(a[e])a[e].push(f);else{var b,t;if(void 0!==d)for(var o=document.getElementsByTagName("script"),n=0;n{b.onerror=b.onload=null,clearTimeout(u);var c=a[e];if(delete a[e],b.parentNode&&b.parentNode.removeChild(b),c&&c.forEach((e=>e(d))),f)return f(d)},u=setTimeout(l.bind(null,void 0,{type:"timeout",target:b}),12e4);b.onerror=l.bind(null,b.onerror),b.onload=l.bind(null,b.onload),t&&document.head.appendChild(b)}},r.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.nmd=e=>(e.paths=[],e.children||(e.children=[]),e),r.p="/",r.gca=function(e){return e={15985664:"7830",17896441:"7918",69253974:"2433",73617284:"6730",74985360:"43",f4fb6e9c:"1","408829bd":"6","1d6d4797":"12","935f2afb":"53","9f319605":"63","77c23c97":"150",f189ca9f:"192",c7a044bb:"217","804b1e9f":"230",bf3ab9de:"289","9528ac88":"315","2d429218":"502","3829cf1d":"537",f52abf29:"576",d569989b:"609","386bfe51":"657","387813b8":"660",e4ef088f:"690","145746f5":"691","078895e8":"740","49dac903":"779","23498fd5":"810",f90fa732:"1062","899aadcc":"1083",cfd53ea4:"1090","3184af97":"1125","73c3bebc":"1211","25f2bd2a":"1213",f359a251:"1239",fabebe44:"1288","74df6a22":"1299","543c9f0a":"1306",b61f6dc7:"1372","4d76887f":"1415",f750c690:"1419","5136ee31":"1446",f44679e7:"1451","8dd7cee0":"1486",b21dd8a7:"1494",c630d0cd:"1506",ffe9c3c9:"1529","33b0bcab":"1585","7fbac68a":"1598","5db34cd0":"1635",fa343ad1:"1678",f7191335:"1686",a5002e4a:"1703","0eeb7a68":"1713","0df78d26":"1723","987d08ef":"1748","9e6341e5":"1774",d9ef69a7:"1786","0e306820":"1804","48074a08":"1825","78e1e977":"1872","1ed3671a":"1953",df154d69:"1957",f47489cd:"1966",fda65b2b:"1975","0cb62240":"1979","4f031749":"2008",dd32e389:"2042","21877fa5":"2117","6d5c9a28":"2119",ecb495b7:"2136","1646726c":"2169","6151e7ce":"2194",f3027c84:"2242",da9f79cb:"2248","493c7fdf":"2354","8d3a1bf8":"2399","7c78c461":"2507","918b38b6":"2508","863c4753":"2552","967fa6d4":"2581",db0b42b0:"2609",e2e89062:"2633","0b632434":"2635","9662c81e":"2664",f4130007:"2665",ece9fdae:"2677",f3bde756:"2704","39c15ff8":"2710",c2c6a3a6:"2712",b906f375:"2749","78868b16":"2754","9e3f6a8a":"2758",feadf832:"2794","5d69d9d4":"2884",f4200fe5:"2909","2be0d940":"2914","2ea50c63":"2949","6544ec02":"3029",af40287e:"3066",b0a48d97:"3091","85afe03a":"3132","8a8a7d05":"3262","41f7224c":"3274",e31fc461:"3330","3497b7c6":"3332",f14351c1:"3356","3d1bf5db":"3452","5c90fc9b":"3484","41b7b3e8":"3513",d5909206:"3554","73d1b372":"3576","21899dd2":"3599",f137ce68:"3620",cb9afd28:"3643",f1585bfb:"3665",b0cbc1d4:"3667",b225a2ce:"3668",dbbd9e76:"3669",bea375d6:"3757",ff6596ea:"3842",cda87995:"3933",f8518919:"3945",c8dd560b:"3978",ec3b6a32:"4004",eef3f1dd:"4097","702d5d94":"4105","5355b952":"4126","9f804621":"4143",c4f5d8e4:"4195","84ede15a":"4338","19ed4d4c":"4355",dc36d550:"4359",f2c21b54:"4363",c662f00a:"4379",e00ac272:"4385","4d9b9869":"4445",a7b37b86:"4507","1ae2b102":"4537","3e56470e":"4541","694e7470":"4566","9ebc4c9a":"4577","48d75399":"4620","54338ffb":"4634",f41c4e9d:"4666","43ee4f22":"4672",fea93377:"4674","346ef9e6":"4860","2462cc91":"4885",f0855ff9:"4909",c1bbdb2a:"4916","320c8a05":"5005",c41801b5:"5013",e3d2722f:"5049","6116139f":"5052",db039c7f:"5103",a4c751bb:"5132",d27ae88d:"5157","31bd35e0":"5281","9913464d":"5341",b3719d54:"5422",f7acb151:"5483","0c68fb82":"5526",d6b0148d:"5548","2d34559d":"5645","9e2042f5":"5651",b9b4ec9e:"5704","73a7060c":"5752",a8f54fb1:"5806",e77078a1:"5933","7dcec981":"5969",fbf58567:"5989",c7c5ba1a:"6104","32e8da05":"6140",a29dc56e:"6253","452ad91d":"6255",bbba852d:"6294",dbc4065c:"6312","3002ebf4":"6325","10c0f3e2":"6343","43cda9e8":"6357",ceaa29cb:"6373","13b7bafa":"6585",ca9fe671:"6598",af3013e9:"6673",f2521980:"6689",c5d9e474:"6779","279fb1d6":"6827",ccc1222e:"6920","4642ab5c":"6946","543610b9":"7022",feea648c:"7061","4a8eb552":"7202",f44ed8f8:"7211","6f1a81b8":"7288",db3d6c4d:"7313",bb8b1738:"7368",bd701914:"7388",a5b3561d:"7466","98a431f4":"7584",b940de31:"7633",c07c2447:"7654",cc44e8fd:"7683","591eca19":"7714","43267d13":"7717","113faa87":"7738","9129da9e":"7745","8b670b2b":"7799","9e76b49d":"7823","0a3f0c9b":"7837",d6a97e7e:"7858","33bbe353":"7908","1a4e3797":"7920",ad762f86:"7940",a2800a5b:"7961",fecdcc34:"8034",a87fd2e4:"8049","69b97ecd":"8067","8247eba8":"8115","694672cd":"8138","386099fc":"8139","9a679a70":"8178",f0ff685a:"8191","30d868e8":"8215",ffd76171:"8236","12331e8b":"8270",c91a9c06:"8355","824749c6":"8361","28b84bbb":"8444",ed3409b3:"8609","71ed82b9":"8648",a74a59a0:"8702","83d4859f":"8757",ab138bf8:"8791","3bd77df4":"8831",a9f58d5b:"8842",d3a753cf:"8855","766a10e1":"8860","98a30fd8":"8866","31c99aa1":"8876",a4ac0905:"8887",b48c599b:"8901","4cdd7dfa":"8950",e495ca4d:"8951",afddde9d:"9009",b38833d4:"9062","60738e36":"9071","64c7e1cc":"9217","2f3b630e":"9226","6d2ffbf3":"9315","131c7f55":"9323",c7a2145e:"9478","1be78505":"9514",f95cee6f:"9548",c977dfe8:"9567","390ca211":"9596","32c9742a":"9626",dc776cbc:"9764","89a76fd2":"9771","1e15616a":"9802","51fbc2c9":"9806","14eb3368":"9817","06597bc8":"9856",b0cb055f:"9905",dd2fa029:"9962","050c0163":"9964","3104d5d8":"9977","482bfb5c":"9993"}[e]||e,r.p+r.u(e)},(()=>{var e={1303:0,532:0};r.f.j=(f,d)=>{var a=r.o(e,f)?e[f]:void 0;if(0!==a)if(a)d.push(a[2]);else if(/^(1303|532)$/.test(f))e[f]=0;else{var c=new Promise(((d,c)=>a=e[f]=[d,c]));d.push(a[2]=c);var b=r.p+r.u(f),t=new Error;r.l(b,(d=>{if(r.o(e,f)&&(0!==(a=e[f])&&(e[f]=void 0),a)){var c=d&&("load"===d.type?"missing":d.type),b=d&&d.target&&d.target.src;t.message="Loading chunk "+f+" failed.\n("+c+": "+b+")",t.name="ChunkLoadError",t.type=c,t.request=b,a[1](t)}}),"chunk-"+f,f)}},r.O.j=f=>0===e[f];var f=(f,d)=>{var a,c,[b,t,o]=d,n=0;if(b.some((f=>0!==e[f]))){for(a in t)r.o(t,a)&&(r.m[a]=t[a]);if(o)var i=o(r)}for(f&&f(d);n - + @@ -34,7 +34,7 @@ development. The program aims to enable your team to tap into Polkadot’s ecosystem of resources and bring your product into production while contributing to feedback for Polkadot’s ecosystem.

Check out the official Polkadot Alpha Program site for more information and steps on how to apply.

- + \ No newline at end of file diff --git a/docs/ambassadors/index.html b/docs/ambassadors/index.html index 9b4ead969c..3d388baabd 100644 --- a/docs/ambassadors/index.html +++ b/docs/ambassadors/index.html @@ -16,7 +16,7 @@ - + @@ -25,7 +25,7 @@ the approval of Polkadot OpenGov referenda 487.

If you are enthusiastic about Polkadot and Web3 and are willing to help the community grow, you can join the program and receive funding for hosting events, gain access to communication channels of core team members, and gain access to Polkadot events.

There are many ways you can get involved in expanding Polkadot’s ecosystem, such as:

  • Contributing code and documentation related to the ecosystem
  • Speaking about Polkadot at events, workshops, and meetups
  • Writing blog posts
  • Representing Polkadot in your region
  • Mentoring and onboarding newcomers
  • Identifying partnerships and opportunities for the Polkadot ecosystem
  • Participating in calls and tasks that help drive the ecosystem forward
- + \ No newline at end of file diff --git a/docs/apps-index/index.html b/docs/apps-index/index.html index fae5233bc4..fe9437e47a 100644 --- a/docs/apps-index/index.html +++ b/docs/apps-index/index.html @@ -16,13 +16,13 @@ - + - + \ No newline at end of file diff --git a/docs/bug-bounty/index.html b/docs/bug-bounty/index.html index 251d8fedfd..a285030c42 100644 --- a/docs/bug-bounty/index.html +++ b/docs/bug-bounty/index.html @@ -16,7 +16,7 @@ - + @@ -40,7 +40,7 @@ not to be disruptive or harmful to our users or us. Otherwise, your actions might be interpreted as an attack rather than an effort to be helpful.

How to report a bug

Please follow the instructions at web3.foundation/security-report/.

- + \ No newline at end of file diff --git a/docs/build-client-index/index.html b/docs/build-client-index/index.html index 0497f1e714..99e48f3836 100644 --- a/docs/build-client-index/index.html +++ b/docs/build-client-index/index.html @@ -16,13 +16,13 @@ - + - + \ No newline at end of file diff --git a/docs/build-client-side/index.html b/docs/build-client-side/index.html index 9219b32d1a..2404a80113 100644 --- a/docs/build-client-side/index.html +++ b/docs/build-client-side/index.html @@ -16,7 +16,7 @@ - + @@ -69,7 +69,7 @@ specifically the documentation on deploying Polkadot dApp on decentralized storage. You can get started with Filebase by signing up here.

- + \ No newline at end of file diff --git a/docs/build-dapp/index.html b/docs/build-dapp/index.html index aab2a37556..82db177fc5 100644 --- a/docs/build-dapp/index.html +++ b/docs/build-dapp/index.html @@ -16,7 +16,7 @@ - + @@ -31,7 +31,7 @@ see the tooling page for a detailed overview of different SDKs and libraries that are available.

Frameworks & Toolkits

For front-end applications, several options exist for interfacing with Substrate-based chains (parachains, relay chains, etc.) and smart contracts. These often will interact with the RPC of a Substrate node:

Promise and RxJS APIs around Polkadot and Substrate-based chains via RPC calls. It is dynamically generated based on what the Substrate runtime provides regarding metadata. Full documentation & examples available here.
- + \ No newline at end of file diff --git a/docs/build-data/index.html b/docs/build-data/index.html index 1f5b785ab2..ce90fabc49 100644 --- a/docs/build-data/index.html +++ b/docs/build-data/index.html @@ -16,7 +16,7 @@ - + @@ -47,7 +47,7 @@ for details on how to access the data.

Block Explorers

As you can imagine, blockchain explorers also offer data analytics through an interface where users can examine common data points.

Some block explorers in the Polkadot ecosystem are listed on the tools page.

- + \ No newline at end of file diff --git a/docs/build-guide/index.html b/docs/build-guide/index.html index f68b80a90c..b517f27b73 100644 --- a/docs/build-guide/index.html +++ b/docs/build-guide/index.html @@ -16,7 +16,7 @@ - + @@ -128,7 +128,7 @@ (parachains, relay chains, etc.) and smart contracts. These often will interact with the RPC of a Substrate node.

Please visit the documentation for developing dApps and other general client-side development resources.

For a complete list of tools, please take a look here: Tools, APIs, and Languages

Resources

- + \ No newline at end of file diff --git a/docs/build-guides-coretime-start/index.html b/docs/build-guides-coretime-start/index.html index 412c6b2bb4..1e266ded5e 100644 --- a/docs/build-guides-coretime-start/index.html +++ b/docs/build-guides-coretime-start/index.html @@ -16,7 +16,7 @@ - + @@ -46,7 +46,7 @@ Substrate parachain runtime guide.

Polkadot SDK Parachain Template

If you wish to the Polkadot SDK's Parachain template, please follow the Template to Core guide.

- + \ No newline at end of file diff --git a/docs/build-guides-coretime-troubleshoot/index.html b/docs/build-guides-coretime-troubleshoot/index.html index 157827028b..77d97b7bd2 100644 --- a/docs/build-guides-coretime-troubleshoot/index.html +++ b/docs/build-guides-coretime-troubleshoot/index.html @@ -16,7 +16,7 @@ - + @@ -39,7 +39,7 @@ term now. They refer to what are now known as on-demand parachains. Although they be references in various places through PolkadotJS, docs, or other UIs, really we only have two types of parachain: on-demand parachains, and parachains which use bulk coretime.


- + \ No newline at end of file diff --git a/docs/build-guides-install-deps/index.html b/docs/build-guides-install-deps/index.html index 2a9e4cedb6..5502a48d52 100644 --- a/docs/build-guides-install-deps/index.html +++ b/docs/build-guides-install-deps/index.html @@ -16,7 +16,7 @@ - + @@ -75,7 +75,7 @@ by running the following command:

curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
  • Follow the prompts displayed to proceed with a default installation.

  • Update your current shell to include Cargo by running the following command:

    source ~/.cargo/env
  • Verify your installation by running the following command:

    rustc --version
  • Configure the Rust toolchain to use the latest stable version as the default toolchain by running the following commands:

    rustup default stable
    rustup update
  • Add the nightly version of the toolchain and the nightly WebAssembly (wasm) target to your development environment by running the following commands:

    rustup update nightly
    rustup target add wasm32-unknown-unknown --toolchain nightly
  • Verify your installation here.

  • Verifying Installation

    Verify the configuration of your development environment by running the following command:

    rustup show
    rustup +nightly show

    The command displays output similar to the following:

    # rustup show

    active toolchain
    ----------------

    stable-x86_64-unknown-linux-gnu (default)
    rustc 1.61.0 (fe5b13d68 2022-05-18)

    # rustup +nightly show

    active toolchain
    ----------------

    nightly-x86_64-unknown-linux-gnu (overridden by +toolchain on the command line)
    rustc 1.63.0-nightly (e7144
    - + \ No newline at end of file diff --git a/docs/build-guides-template-basic/index.html b/docs/build-guides-template-basic/index.html index 46c5265381..bf0c34aa68 100644 --- a/docs/build-guides-template-basic/index.html +++ b/docs/build-guides-template-basic/index.html @@ -16,7 +16,7 @@ - + @@ -79,7 +79,7 @@ for doing so:

    1. Head to General > Cross Chain Transfer on the right, and transfer 10 ROC:

    Region X cross chain transfer

    1. Sign the transaction with Polkadot.js. If all goes well, you should see the balance update in the upper right:

    Region X cross chain transfer

    1. Connect your wallet and make sure you select Rococo as your network:

    Connect your wallet to RegionX

    1. Click Purchase a Core on the left:

    GMcdatDW8AEC8kh

    1. In the lower right, click "Purchase Core":

    Purchase a core

    1. Go to My Regions, and click to select your region, then click Assign on the right side:

    Select and assign region

    1. Click Add Task, and input your ParaId along with a name for your chain:

    Add a new task

    1. Select your task, and select Provisional Assignment, and sign using Polkadot JS:

    Assign the core

    1. Once the transaction is confirmed, provided everything is synced and your collator is running, you should see blocks being persistently created as they were with the on-demand extrinsic:

    GMcdatDW8AEC8kh

    What's Next?

    Now that you can launch a layer one blockchain, the possibilities are endless:

    - + \ No newline at end of file diff --git a/docs/build-hackathon/index.html b/docs/build-hackathon/index.html index 07a6afd08e..70efffb908 100644 --- a/docs/build-hackathon/index.html +++ b/docs/build-hackathon/index.html @@ -16,7 +16,7 @@ - + @@ -43,7 +43,7 @@ that can be a feature of you hackathon or suggested prerequisite for those joining to use.

    Support / Contact

    If you have any questions regarding organizing a hackathon, please free feel to contact us by email or ask us via Element chat.

    - + \ No newline at end of file diff --git a/docs/build-hrmp-channels/index.html b/docs/build-hrmp-channels/index.html index e2d1ee1186..b365f4e975 100644 --- a/docs/build-hrmp-channels/index.html +++ b/docs/build-hrmp-channels/index.html @@ -16,7 +16,7 @@ - + @@ -59,7 +59,7 @@ forceOpenHrmpChannel calls.

    Opening HRMP Channels Between Two System Parachains

    As of Polkadot and Kusama runtimes 1,001,000, anyone can call an establishSystemChannel extrinsic with two system parachains as arguments in order to establish a channel from the given sender to receiver.

    - + \ No newline at end of file diff --git a/docs/build-index/index.html b/docs/build-index/index.html index 59e2628903..c55df79de4 100644 --- a/docs/build-index/index.html +++ b/docs/build-index/index.html @@ -16,7 +16,7 @@ - + @@ -36,7 +36,7 @@ are building.

    Grants

    • Grants - Information regarding grants and funding sources available in the Kusama ecosystem.

    PCPs

    Polkadot Contracts Proposals (PCPs) are standards for smart contracts in the Polkadot ecosystem.

    Hackathon

    - + \ No newline at end of file diff --git a/docs/build-integrate-assets/index.html b/docs/build-integrate-assets/index.html index f6a0d561f3..9b0e55dd8c 100644 --- a/docs/build-integrate-assets/index.html +++ b/docs/build-integrate-assets/index.html @@ -16,7 +16,7 @@ - + @@ -134,7 +134,7 @@ can be claimed).

    A great resource to learn more about Error Management in XCM is the Polkadot blog post from Gavin Wood, XCM Part III: Execution and Error Management.

    - + \ No newline at end of file diff --git a/docs/build-integration/index.html b/docs/build-integration/index.html index b4a7399de8..94ddf69509 100644 --- a/docs/build-integration/index.html +++ b/docs/build-integration/index.html @@ -16,7 +16,7 @@ - + @@ -39,7 +39,7 @@ transactions. Parity and Web3 Foundation will be able to provide the best support if you use these tools.

    If your team would like support, join some of our community channels or contact support@polkadot.network.

    - + \ No newline at end of file diff --git a/docs/build-light-clients/index.html b/docs/build-light-clients/index.html index 169a189034..426c2a4fae 100644 --- a/docs/build-light-clients/index.html +++ b/docs/build-light-clients/index.html @@ -16,7 +16,7 @@ - + @@ -51,7 +51,7 @@ end-users to interact with applications connected to multiple blockchains or connect their own blockchains to applications that support it.

    note

    Substrate Connect will auto-detect whether a user is using the extension. If not, the Wasm light client will be created in-page for them.

    Resources

    - + \ No newline at end of file diff --git a/docs/build-network-overview/index.html b/docs/build-network-overview/index.html index 58e8ad650d..5d76ebe418 100644 --- a/docs/build-network-overview/index.html +++ b/docs/build-network-overview/index.html @@ -16,7 +16,7 @@ - + @@ -38,7 +38,7 @@ here.

    For other programmatic ways of interacting with these networks (including PolkadotJS), please view the Node Interactions page.

    Testnet Faucets

    Almost all tesnets either have a web-based interface for getting test currency or a Matrix room which you can post !drip <ADDRESS>

    See here for all available faucets and how to obtain testnet tokens.

    - + \ No newline at end of file diff --git a/docs/build-node-interaction/index.html b/docs/build-node-interaction/index.html index a933b06b0b..0f24b3bd57 100644 --- a/docs/build-node-interaction/index.html +++ b/docs/build-node-interaction/index.html @@ -16,7 +16,7 @@ - + @@ -54,7 +54,7 @@ block by the block author.

    {
    "number":"7409038",
    "hash":"0x0e9610f3c89fac046ef83aa625ad414d5403031faa026b7ab2a918184e389968",
    "parentHash":"0xba308541eb207bc639f36d392706309a031c21622f883fb07411060389c5ffdd",
    "stateRoot":"0x4426383b64a944ad7222a4019aefd558c749da0c6920cfcdfd587741d54abbe2",
    "extrinsicsRoot":"0x74749e5f5aeb610bc23fd6d8d79fd8bbf5e4b6053f70ba94ea6b3cc271df4b3a",
    "authorId":"Fvvz6Ej1D5ZR5ZTK1vE1dCjBvkbxE1VncptEtmFaecXe4PF",
    "logs":[
    {
    "type":"PreRuntime",
    "index":"6",
    "value":[
    "BABE",
    "0x023a0200009c7d191000000000"
    ]
    },
    {
    "type":"Seal",
    "index":"5",
    "value":[
    "BABE",
    "0x2296a50fa4fea3a46a95ad5b1f09de76d22c6ed3dc6755718c976e2d14c63e4dd3c6257813d9bdc03bb180b1e20393f1558ae1204982e5c7570df393e11f908b"
    ]
    }
    ],
    "onInitialize":{
    "events":[

    ]
    },
    "extrinsics":[
    {
    "method":{
    "pallet":"timestamp",
    "method":"set"
    },
    "signature":null,
    "nonce":null,
    "args":{
    "now":"1620636072000"
    },
    "tip":null,
    "hash":"0x8b853f49b6543e4fcbc796ad3574ea5601d2869d80629e080e501da4cb7b74b4",
    "info":{

    },
    "events":[
    {
    "method":{
    "pallet":"system",
    "method":"ExtrinsicSuccess"
    },
    "data":[
    {
    "weight":"185253000",
    "class":"Mandatory",
    "paysFee":"Yes"
    }
    ]
    }
    ],
    "success":true,
    "paysFee":false
    },
    {
    "method":{
    "pallet":"balances",
    "method":"transfer"
    },
    "signature":{
    "signature":"0x94b63112648e8e692f0076fa1ccab3a04510c269d1392c1df2560503865e144e3afd578f1e37e98063b64b98a77a89a9cdc8ade579dcac0984e78d90646a052001",
    "signer":{
    "id":"Gr5sBB1EgdmQ7FG3Ud2BdECWQTMDXNgGPfdHMMtDsmT4Dj3"
    }
    },
    "nonce":"12",
    "args":{
    "dest":{
    "id":"J6ksma2jVeHRcRoYPZBkJRzRbckys7oSmgvjKLrVbj1U8bE"
    },
    "value":"100000000"
    },
    "tip":"0",
    "hash":"0xfbc5e5de75d64abe5aa3ee9272a3112b3ce53710664f6f2b9416b2ffda8799c2",
    "info":{
    "weight":"201217000",
    "class":"Normal",
    "partialFee":"2583332634"
    },
    "events":[
    {
    "method":{
    "pallet":"balances",
    "method":"Transfer"
    },
    "data":[
    "Gr5sBB1EgdmQ7FG3Ud2BdECWQTMDXNgGPfdHMMtDsmT4Dj3",
    "J6ksma2jVeHRcRoYPZBkJRzRbckys7oSmgvjKLrVbj1U8bE",
    "100000000"
    ]
    },
    {
    "method":{
    "pallet":"balances",
    "method":"Deposit"
    },
    "data":[
    "Fvvz6Ej1D5ZR5ZTK1vE1dCjBvkbxE1VncptEtmFaecXe4PF",
    "2583332634"
    ]
    },
    {
    "method":{
    "pallet":"system",
    "method":"ExtrinsicSuccess"
    },
    "data":[
    {
    "weight":"201217000",
    "class":"Normal",
    "paysFee":"Yes"
    }
    ]
    }
    ],
    "success":true,
    "paysFee":true
    },
    {
    "method":{
    "pallet":"utility",
    "method":"batch"
    },
    "signature":{
    "signature":"0x8aa2fc3f0cff52533745679523705720cff42d0e7258b9797feed193deb0ca73474726e148af0a0b096d44c07f20e5292819ec92279cffb2897e95cc337e638e",
    "signer":{
    "id":"F4gmSZGiM9pMYPsKW7xnGktDr4zRmN2jqy5Ze678y9YWR7F"
    }
    },
    "nonce":"687",
    "args":{
    "calls":[
    {
    "method":{
    "pallet":"staking",
    "method":"payoutStakers"
    },
    "args":{
    "validator_stash":"Cfish3zJiFnTvR9jscCap7imeA9ep3cH1wZfcZwAp2gdZHo",
    "era":"2229"
    }
    },
    {
    "method":{
    "pallet":"staking",
    "method":"payoutStakers"
    },
    "args":{
    "validator_stash":"Cfish3zJiFnTvR9jscCap7imeA9ep3cH1wZfcZwAp2gdZHo",
    "era":"2230"
    }
    },
    {
    "method":{
    "pallet":"staking",
    "method":"payoutStakers"
    },
    "args":{
    "validator_stash":"Cfish3zJiFnTvR9jscCap7imeA9ep3cH1wZfcZwAp2gdZHo",
    "era":"2231"
    }
    },
    {
    "method":{
    "pallet":"staking",
    "method":"payoutStakers"
    },
    "args":{
    "validator_stash":"DifishR4auphofhzxsy2aupgYo4NaUECH7qgt71CgiB2o6P",
    "era":"2231"
    }
    },
    {
    "method":{
    "pallet":"staking",
    "method":"payoutStakers"
    },
    "args":{
    "validator_stash":"J1fishfH94nFZLNScHgC2HorWpFD2xdPxd96wtTCHLvKxfa",
    "era":"2231"
    }
    }
    ]
    },
    "tip":"0",
    "hash":"0x69171ec3f4e5e4dfd27f4d1c5b5dbc884932c5d9a078c84495bb7ab875c8785f",
    "info":{
    "weight":"629782467000",
    "class":"Normal",
    "partialFee":"5150837715"
    },
    "events":[
    {
    "method":{
    "pallet":"staking",
    "method":"Reward"
    },
    "data":[
    "Cfish3zJiFnTvR9jscCap7imeA9ep3cH1wZfcZwAp2gdZHo",
    "40730624074"
    ]
    },
    {
    "method":{
    "pallet":"staking",
    "method":"Reward"
    },
    "data":[
    "FhLcXuFkTwyc3o9K82VBahpain1YHWyGeNMDTTyeDJKfm5b",
    "4296071738"
    ]
    },
    {
    "method":{
    "pallet":"staking",
    "method":"Reward"
    },
    "data":[
    "F1NyXFUayqmVMdjNK45hcaTCE3JiqdU83sEGhQ3HQXn2Rpq",
    "1770904403"
    ]
    },

    // ...

    {
    "method":{
    "pallet":"utility",
    "method":"BatchCompleted"
    },
    "data":[

    ]
    },
    {
    "method":{
    "pallet":"balances",
    "method":"Deposit"
    },
    "data":[
    "Fvvz6Ej1D5ZR5ZTK1vE1dCjBvkbxE1VncptEtmFaecXe4PF",
    "5150837715"
    ]
    },
    {
    "method":{
    "pallet":"system",
    "method":"ExtrinsicSuccess"
    },
    "data":[
    {
    "weight":"629782467000",
    "class":"Normal",
    "paysFee":"Yes"
    }
    ]
    }
    ],
    "success":true,
    "paysFee":true
    }
    ],
    "onFinalize":{
    "events":[

    ]
    },
    "finalized":true
    }
    The JS number type is a 53 bit precision float

    There is no guarantee that the numerical values in the response will have a numerical type. Any numbers larger than 2**53-1 will have a string type.

    Submitting a Transaction

    Submit a serialized transaction using the transaction endpoint with an HTTP POST request.

    import requests
    import json

    url = 'http://127.0.0.1:8080/transaction/'
    tx_headers = {'Content-type' : 'application/json', 'Accept' : 'text/plain'}
    response = requests.post(
    url,
    data='{"tx": "0xed0...000"}', # A serialized tx.
    headers=tx_headers
    )
    tx_response = json.loads(response.text)

    If successful, this endpoint returns a JSON with the transaction hash. In case of error, it will return an error report, e.g.:

    {
    "error": "Failed to parse a tx" | "Failed to submit a tx",
    "cause": "Upstream error description"
    }
    - + \ No newline at end of file diff --git a/docs/build-node-management/index.html b/docs/build-node-management/index.html index 9dde6a0199..38dac05080 100644 --- a/docs/build-node-management/index.html +++ b/docs/build-node-management/index.html @@ -16,7 +16,7 @@ - + @@ -64,7 +64,7 @@ has a monitor node metrics tutorial which uses this endpoint.

    - + \ No newline at end of file diff --git a/docs/build-open-source/index.html b/docs/build-open-source/index.html index 551fbacfee..9cd8c7af5c 100644 --- a/docs/build-open-source/index.html +++ b/docs/build-open-source/index.html @@ -16,7 +16,7 @@ - + @@ -26,12 +26,12 @@ apologize if we missed your project!


    About

    The Polkadot Tech Stack is a subset of the Web 3.0 Tech Stack, which consists of the open-source technologies contributing to and relying on Polkadot. It is meant to be used for decentralized application (Dapp) development within numerous verticals, including DeFi, Gaming, -Provenance and many others not pictured below.

    |------|--------|------------|
    | DeFi | Gaming | Provenance |
    |______|________|____________|
    Dapps
    |--------------------------/-|
    | Explorers, Wallets / |
    |------------------------/---|
    | Tools, Apis, Languages/ |
    |----------------------/-----|
    | 2nd layer protocols / |
    |--------------------/-------|
    | Chains / other |
    |------------------/--- --|
    | *Polkadot* | tech |
    |------------------\---------|
    | P2P, Crypto, Wasm \ |
    |--------------------\-------|

    Layers of Polkadot Stack

    In the below sections, you can find a list of different layers of the Polkadot Stack.

    Maintenance Status:

    • 🟢 Actively maintained
    • 🟡 Stale (no activity on the main branch for one month)
    • ⚪ Unmaintained (no activity on the main branch for more than three months)

    Wallets

    ComponentsExisting projectsPotentially interesting projects
    Web WalletsMultix 🟢, Polkasafe 🟢, polkadot-js/apps 🟢, Talisman Web Application 🟢, mydotwallet ⚪, Sub ID 🟡, Primis ⚪, Sakura ⚪, Web3Box ⚪, Coong Wallet ⚪, Subscan Multisig UI - React 🟡, Subscan Multisig UI ⚪, Dorafactory-Multisig ⚪, Capi Multisig AppUser-friendly Wallet based on the Recovery Pallet, Web wallets focused on user-onboarding (e.g. using localStorage)
    Desktop Walletsnova-spektr 🟢, Omni desktopEnterprise Wallets
    Browser ExtensionsTalisman-Extension 🟢, SubWallet-Extension 🟢, Enkrypt 🟢, Polkadot{.js} 🟢, PolkaGate 🟢, Doter ⚪, Speckle OS ⚪, Kuma Cross-chain WalletSign-in with your Polkadot, Kusama, etc. account.
    Mobile WalletsNova Wallet iOS 🟢, Nova Wallet Android 🟢, Polkadot Vault 🟢, Fearless Wallet Android 🟢, Fearless Wallet iOS 🟡, SubWallet-Mobile 🟢, Kampela ⚪, AirGap 🟡, Interstellar Network ⚪, Lunie ⚪, Polkawallet ⚪, imToken ⚪, Stylo ⚪, Fractapp ⚪, Hashed Wallet
    Burner Wallets/Faucet/Giftsdotdrop ⚪, KodaDot ⚪, Astar Faucet Bot ⚪, Generic sybil-resistant faucet ⚪, sybil-resistant Chat Bot FaucetFaucet (a sybil-resistant way to receive free tokens)
    Wallet PluginsMetamask-Snap by Chainsafe 🟡
    CLI WalletSubwallet ⚪, Proxy-hot-wallet
    Hardware WalletsLedger Polkadot 🟡, Ledger Kusama ⚪, Ledger Statemint ⚪, Ledger StatemineTrezor

    User Interface

    ComponentsExisting projectsPotentially interesting projects
    Block ExplorersCalamar ⚪, Polkascan ⚪, Polkastats ⚪, Subscan 🟡, Statescan 🟢, Edgscan ⚪, Sirato ⚪, ink! Explorer API ⚪, Substats ⚪, Hybrid Block ExplorerMempool focused explorer (including parachain transaction)
    Validator DashboardsPolkadot Telemetry 🟢, Polkacube ⚪, YieldScan ⚪, Hubble ⚪, Cyclops 🟢, Web3Go 🟡, 1kv insights
    Node ExplorersPolkadot Node Explorer
    NFT ExplorerNFT Explorer for Kusama & Polkadot 🟢
    Governance DashboardsPolkadot Delegation Dashboard ⚪, Polkassembly ⚪, dotreasury 🟢, Bright Treasury ⚪, OpenSquare offchain voting 🟢, OpenGov Insights ⚪, Treasury Tracker ⚪, OpenGov CLI 🟢UI for the Kusama and/or Polkadot treasury (see bounty module), UI for Parachain Lease Offering (PLO)
    StakingStaking Rewards Collector 🟡, Staking Rewards Viewer ⚪, Polkadot Staking Site ⚪, Polkadot Staking Dashboard 🟢, Polkadot/Kusama Validator Selector ⚪, Staking Income CSV Generator
    Bridge UIParity Bridges UI ⚪, Donut Interface (Steem - Dot) ⚪, Plutonication 🟢
    Parachain/CrowdloanParachains.Network ⚪, PolkAuction ⚪, Crowdloan Front End Template ⚪, Slothunter
    IdenticonPolkicon 🟢, PolkadotWebIdenticon ⚪, Polkadot Angular IdentIcon ⚪, Bird Identicon
    CoretimeLastic 🟢, RegionX 🟡
    OtherPolkadot Cloud 🟢, KappaSigmaMu Fratority 🟡, Quadratic Funding Webapp ⚪, Polkawatch, Bytepay ⚪, charging-management-platform ⚪, subidentity-webapp ⚪, OpenSquare Paid QA ⚪, DotPulse ⚪, Rubeus Keeper ⚪, Polkaflow ⚪, ChainViz ⚪, Dotsight 🟢zkLogin, Portfolio Viewer like Zapper or Zerion

    Tools, APIs, and Languages

    ComponentsExisting projectsPotentially interesting projects
    Runtime/Parachain frameworksPolkadot Blockchain SDK 🟢, Gosemble 🟢, Subsembly ⚪, Parachain utilities ⚪, Gantree ⚪, Cryptex 🟢Tools to create parachains with other frameworks, like the Cosmos SDK or Polygon CDK
    Client LibrariesPolkadot API - Typescript 🟢, Capi - Typescript ⚪, sub-api 🟢, Go ⚪, .Net ⚪, .NET Standard 2.0 🟡, Substrate .NET Toolchain 🟢, C++ ⚪, C ⚪, Haskell ⚪, Javascript 🟢, Substrate API Sidecar - TypeScript 🟢, Python 🟢, Java (+ Android) ⚪, Substrate Client Java ⚪, Rust SCS 🟢, Rust Parity (subxt) 🟢, Rust pdotc PHP (gmajor-encrypt) ⚪, PHP (neha0921) ⚪, RPC-Ethereum 🟢, Swift ⚪, Kotlin ⚪, substrate-client-kotlin ⚪, substrate-client-swift ⚪, Dart 🟡, Substrate Core Polywrapper ⚪, Substrate SDK iOS ⚪, Substrate SDK Android 🟡, DelightfulDot 🟢
    RPC GatewaySubway 🟢
    Substrate Contract clientsPatractGo
    Easy Runtime DevelopmentSubalfred 🟢, substrate-stencil ⚪, Play Substrate 🟡, substrate-node-template 🟡, Substrate Playground ⚪, AssemblyScript Runtime Generation ⚪, Substrate Package Manager ⚪, Subsembly: Framework for developing AssemblyScript Substrate Runtimes ⚪, dependency diener
    IDE PluginsSubstrate Marketplace VS Code Plugin ⚪, VS Code Plugin ⚪, Atom Code Plugin ⚪, zombienet extension
    Runtime/Pallet SecuritySubstrate Runtime Fuzzer 🟢, Substrate Toml Lint ⚪, K specifications 🟢, PolPatrol - Polkadot Runtime CheckerAutomated Runtime checking tools, economic audit simulator such as gauntlet.network
    Smart Contract Languagesink! 🟢, Ask! ⚪, Subscript ⚪, Solang 🟢, pallet-move 🟢, Move VM Substrate ⚪, Move smart contract by Neatcoin ⚪, eBPF Contracts Hackathon ⚪, PolkaVM 🟢Functional Programming Languages, other languages with developed toolchains
    TestingPolkadot introspector 🟢, Subshell ⚪, substrate-simnode 🟢, Halva ⚪, Redspot ⚪, MixBytes Tank ⚪, sub-flood ⚪, Substrate debug-kit ⚪, Asset CLI tool ⚪, sub_crash ⚪, subwasm 🟢, subsee ⚪, polkadot-lab ⚪, RPC-perf
    Static AnalysisSubstrace ⚪, Static analyzer for Substrate FRAME's pallets ⚪, CoinFabrik Scout 🟢
    TestnetZombienet 🟢, Chopsticks 🟢, Polkadot Launch ⚪, polkadot-starship 🟡, Fork off Substrate ⚪, try-runtime-cli 🟢, Parachain Launch 🟢, Larch Zombienet GUI
    BenchmarkingBenchmarking CLI 🟢, Polkadot sTPS ⚪, Clockchain ⚪, Substrate Graph Benchmarks ⚪, ink! & pallet benchmarking template ⚪, smart-bench 🟢
    Blockchain Indexing EngineSquid SDK 🟢, Hybrid Indexer 🟢, Substrate Archive ⚪, PSQL Indexer ⚪, Substrate Graph ⚪, Subquery 🟢, MBELT3 🟡, stick 🟢, Hyperdot
    Blockchain/Event MonitoringWeb3 Guardian ⚪, Aurras Event Manager ⚪, @commonwealth/chain-events ⚪, Massbit ⚪, Polkadot Basic Notifications ⚪, Ocelloids 🟢, Tracking Chain ⚪,
    GamingPolkadot SDK for Unity 🟡, CrossbowUnity Asset Store, Amethyst + Substrate
    No-code PlatformsEzCode's Polkadot.js plugin on Bubble.io ⚪, Blackprint Visual Programming Polkadot.js module ⚪, SubRelay
    WalletsTalisman Connect ⚪, SubWallet-SubConnect ⚪, Metadata Portal 🟢, Tesseract ⚪, WalletConnect ⚪, BitGoJS 🟢
    XCMTrappist ⚪, XCM-tools 🟡, XCM-tools Golang 🟡,ParaSpell ❔, XBI ⚪, XCM TS/JS SDK ⚪, XCMSend 🟢, XCM Monitoring Server 🟢, Moonbeam Foundation XCM-SDK 🟢
    Otherasset-transfer-api 🟢, txwrapper-core 🟢, open-web3 JS library ⚪, VM-Bridge ⚪, srtool 🟢, srtool-cli ⚪, Substrate Tip Bot 🟢, ORI (Onchain Risk Intelligence) ⚪, PolkaTools 🟢, polkadot-scripts ⚪, Sube 🟢, data-store-sidecar ⚪, SugarFunge 🟡, substrate-wasmedge ⚪, EightFish ⚪, Sandox ⚪, APK verifier

    ink! Smart Contracts

    ComponentsExisting projectsPotentially interesting projects
    Core Librariesink! 🟢, cargo-contract 🟢, pallet-contracts 🟢
    Local Nodessubstrate-contracts-node 🟢, Swanky 🟡
    Smart Contract DevelopmentDRink! 🟡, contracts-ui 🟢, SmartBeaver, OpenBrush ❔, Sol2Ink ⚪, Polkadot Contract Wizard 🟡, ink-wrapper 🟡, ink-playground ⚪, ink! Remix Plugin ⚪, Signac ⚪, ink!-boxes ⚪, ink!-smart-contract-wizard
    Security & Testingink! Waterfall ⚪, Verifier Image for ink! ⚪, Patron
    Frontend Developmentink!athon Boilerplate 🟢, useink ⚪, useInkathon 🟢, ink-typegen 🟢, Typechain Polkadot 🟡
    IDE Pluginsink! Analyzer 🟢
    BridgesDante Protocol
    DeFiPendulum-Ink-Wrapper 🟢, Panorama Swap ⚪, ink_bank 🟡, Polkadot AMM ⚪, Vera ⚪, Nsure Insurance ❔, Everlasting Cash ⚪, Coinversation ⚪, zenlink-dex-contract ⚪, AlgoCashNew seigniorage-style stable coins
    GamingOpen Emoji Battler ⚪, NewOmega
    DAOSyncraDAO ❔, subDAO ⚪, RainbowDAO ⚪, MangoBox ⚪, MangoSale
    Identity/DIDDotflow 🟢
    OraclesDIA WASM Oracle
    Spam ProtectionProsopo 🟢
    GovernanceAbax Governance
    NFTArtZero
    OtherPolkadot Smart Account ⚪, magink ⚪, ink-test-contracts ⚪, Candle Auctions ⚪, polkasign-contract ⚪, OCEX ⚪, Roloi ⚪, OpenPayroll ⚪, BlockchainFoodOrder

    Chains and Pallets

    ComponentsExisting projectsPotentially interesting projects
    Scalable TransactionsPerun channels 🟢, CLI demo of Perun ⚪, Astar 🟢, Celer ⚪, Gunclear ⚪, TPScore ⚪, proof-of-contract-stake 🟢roll-ups, DAG-based consensus mechanisms, side chains
    BridgesinterBTC 🟡, DKG Substrate ⚪, Sygma 🟢, EOS by Bifrost ⚪, POA - Substrate ⚪, Substrate - Ethereum DAI Bridge ⚪, Substrate - Substrate Bridge ⚪, BTC by ChainX 🟡, Cosmos-Substrate bridge ⚪, Substrate IBC Pallet 🟡, Polkadot Ethereum Bridge 🟢, Darwinia 🟢, Spacewalk: a Stellar bridge 🟢, Filecoindot ⚪, Axelar-SubstrateZCash
    PrivacyZeroChain ⚪, xx network ⚪, pLibra (Phala Network) 🟢, Automata Network ⚪, Zero Network ⚪, Silent DataMulti-Asset Shielded Pool (MASP) , Zkay, Zexe
    ZKPZeroPool ⚪, Megaclite ⚪, zkMega ⚪, PLONK for Substrate ⚪, Webb Anchor Protocol ⚪, zk-SNARKs tutorial ⚪, substrate-zk ⚪, hyperfridge-r0 🟡
    TEEAcurast 🟡, Integritee 🟡, substraTEE ⚪, WeTEE 🟢Keysafe Protocol
    DeFiPrivaDEX ⚪, Fusotao ⚪, Reef ⚪, Diora ⚪, Pendulum Chain 🟢, Compound Gateway ⚪, Parallel Finance 🟢, PINT ⚪, Laminar Chain ⚪, Acala 🟢, Centrifuge 🟢, Stafi ⚪, Definex ⚪, OAX Foundation ⚪, Cybex ⚪, Zenlink ⚪, Swaps Pallet ⚪, Polkadex 🟢, SubDEX ⚪, HydraDX 🟢, Substrate Stablecoin ⚪, Standard protocol ⚪, Polkaswap 🟢, Curve AMM ⚪, Konomi Network ⚪, Stable Asset 🟢, Libra Payment ⚪, Mangata 🟡, Tidechain ⚪, Basilisk 🟢, Polymesh 🟢DEX with privacy and confidentiality features such as those found in a dark pool
    Smart contract chainsmoonbeam 🟢, Magnet 🟢, Aleph-node 🟢, Edgeware ⚪, ParaState ⚪, gear 🟢, CENNZnet ⚪, SkyeKiwi ⚪, OAK-blockchain 🟢, ICE Blockchain ⚪, Polkadot Smart Chain ⚪, Madara - Cairo/Starknet 🟢smart contract chains with novel security approaches, smart contract chains based on existing toolchains
    OracleTellor ⚪, Laminar 🟢, Chainlink-polkadot ⚪, Ares Protocol ⚪, Kylin Network ⚪, interbtc-clients oracle 🟡, Anonima ⚪, SaaS3 ⚪, Tellor ⚪, Bridgestate Oracle
    Identity/DIDParami ⚪, Litentry 🟢, pallet-did ⚪, dot-id
    IoTNodle 🟢, MXC/DataHighway ⚪, peaq-network-node 🟢
    Verifiable ClaimsKILT 🟢, Dock 🟢
    Supply chainDSCP Node 🟢
    Health care
    Music IndustryAllfeat Network 🟢
    Data AvailabilityAvail 🟢, Melodot 🟡
    Social NetworkingFrequency 🟢, Social Network ⚪, SubSocial 🟡, ZeroDAO ⚪, Myriad Node ⚪, Wika Network ⚪, Listen ⚪, Tribal Protocol ⚪, Five Degrees on Substrate ⚪, Acuity SocialPrivate instant messenger that uses on-chain identity
    Governance/DAOAisland Node ⚪, Hashed Network ⚪, Sunshine DAO ⚪, Governance OS ⚪, Idavoll Network ⚪, Substrate Moloch ⚪, QRUCIAL-DAO 🟡, Societal ⚪, DAOs ⚪, Shivarthu 🟡, Faterium 🟢, Supersig ⚪, GenesisDAO ⚪, DAO Entrance ❔, Liberland 🟡Consul - Open Government and E-Participation Web Software
    Prediction Markets and FutarchyZeitgeist 🟢, X Predict Market
    MessagingHOPR ⚪, Nolik ⚪, Uke ⚪, Diffy Chat ⚪, Fennel Protocol
    File Storage, CloudSubsocial-Offchain 🟢, DatDot ⚪, Crust Network 🟢, offchain::ipfs ⚪, Canyon Network ⚪, CESS 🟢, CESS Proving Subsystem ❔, Iris ⚪, fmd-cess ⚪, IPFS Frame V3 ⚪, Threefold Chain 🟡, Apron ⚪, IPFS Utilities ⚪, DINFRA 🟢
    Name ServiceSubstrate Names ⚪, ENS on Substrate ⚪, PNS-Pallets ⚪, Faceless ⚪, Anchor
    GamingBit.country 🟢, SubGame ⚪, subzero ⚪, Web3Games ⚪, Ajuna Pallets 🟢, Gafi Network ⚪, Asylum 🟢, 3DPass 🟢, Polket
    Computation/AIDeitos Network ⚪, DeepBrain Chain 🟢, AI Infrastructure on Blockchain
    Enable specific use-casespallet-hookpoints ⚪, Robonomics ⚪, UniversalDOT ⚪, Evercity Sustainable Finance Protocol ⚪, logion 🟢, Me Protocol 🟢, QSTN
    NFTternoa 🟡, FRAME Pallet: NFTs for Substrate ⚪, Unique NFT Parachain ⚪, DNFT ⚪, RMRK-Substrate ⚪, NT-NFTs ⚪, Green Lemon ⚪, Basilisk 🟢
    RandomnessDKG and Randomness Beacon ⚪, drand-substrate-client
    LicensingAnagolay Network
    Banking IntegrationFIAT on-off-ramp 🟢
    CrowdfundingImbue Network ⚪, Quadratic Funding pallet by Dora ⚪, Quadratic Funding pallet by OAKMinimum Anti-Collusion Infrastructure (MACI)
    Collection of PalletsSubstrate Open Runtime Module Library 🟢, warehouse ⚪, InvArch FRAME Pallet Library 🟢
    MarketplacesDot Marketplace ⚪, Gated Marketplace ⚪, Ventur ⚪, Futur Protocol
    Carbon CreditsBitGreen ⚪, Carbon Assets Pallet ⚪, Sequester Pallets
    UTXOTuxedo 🟢
    OtherMoonkit 🟢, Substrate Account Filter ⚪, Subtensor 🟢, AdMeta 🟡, Chocolate Node ⚪, Virto Network 🟢, Substrate Validator Set 🟡, DEIP ⚪, DeBio ⚪, MathChain ⚪, encointer 🟡, Grassland ⚪, Substrate-Tutorials ⚪, Fair Squares ⚪, Totem Live Accounting ⚪, Escrow Pallet ⚪, TREX ⚪, Relation Graph ⚪, Decentralized Invoice ⚪, Redstone Network ⚪, Access Control Pallet ⚪, Omniverse DLT ⚪, ISMP ⚪, XCMP 🟡, CORD Chain 🟢Decentralized review/reputation system

    Host

    ComponentsExisting projectsPotentially interesting projects
    RustSubstrate 🟢, Cumulus 🟢
    C++Kagome 🟢, Mayon
    GoGossamer 🟢
    JavaFruzhin 🟢, Java Host Research
    AssemblyScript
    Light Clientsmoldot 🟢, Substrate Connect 🟢, C++ Polkadot Light Client
    TestingPolkadot Conformance ⚪, Polkafuzz

    Network Maintenance Tools

    ComponentsExisting projectsPotentially interesting projects
    Secure validator setupPolkadot Validation Node Ansible Setup ⚪, W3F Polkadot Validator Setup ⚪, polkadot-ansible
    High availability setupArchipel ⚪, Polkadot Failover Mechanism ⚪, Datagen ⚪, High Availability Validator Setup
    Load Balanced Endpointsterragrunt-polkadot ⚪, Geometry Labs' Substrate Meta repo
    Deployment ToolsPolkadot Package Manager ⚪, PolkaHub ⚪, Avado ⚪, Polkadot Deployer ⚪, Unified Collator Deployment
    Validator monitoringONE-T 🟢, SubVT 🟢, P.A.N.I.C. ⚪, Polkalert ⚪, B-Harvest ⚪, nmonpolkadot ⚪, Polkadot-K8s-Monitor ⚪, Polkadot-Watcher 🟢, 1KV Telegram Bot
    Validator payout managementSubstrate validator auto payout ⚪, Polkadot Payouts ⚪, staking-payouts CLI ⚪, Payctl 🟢, crunch 🟢
    Staking MinerStaking Miner v2 🟢
    Nominator ToolsValidator Selection ⚪, Polkanalyzer 🟢, Polkanalyzer-app 🟡

    Signatures

    ComponentsExisting projectsPotentially interesting projects
    SR25519rust 🟢(contains partial bindings for C, JavaScript, and Python), .Net bindings ⚪, C(old), C(new), C/C++ ⚪, C# ⚪, Go ⚪, java ⚪, PHP
    Signature Aggregationapk-proofs
    Distributed key generation (DKG) or managementkeygen.rs ⚪, Secure Wallet Origin Distribution (SWORD)
    Validator HSMsZondax Remote Signer
    MPCOrochi Network 🟢

    Consensus

    ComponentsExisting projectsPotentially interesting projects
    PoCSpartan
    PoWPoW consensus for Substrate 🟢, RandomX ⚪, Sha3 PoW
    Block productionBABE 🟢, Aura 🟢
    FinalityGRANDPA 🟢, AlephBFT 🟢
    OtherNimbus: Upgradeable consensus framework

    Networking

    ComponentsExisting projectsPotentially interesting projects
    SCALE CodecRust 🟢, TypeScript ⚪, Python 🟢, Golang Chainsafe 🟢, Golang Itering 🟡, C ⚪, C++ ⚪, JavaScript 🟢, AssemblyScript ⚪, Haskell ⚪, Java ⚪, Ruby ⚪, Dart ⚪, Swift ⚪, scale-codec-swift ⚪, scale-codec-kotlin ⚪, PHP ⚪, JavaScript by Soramitsu ⚪, Scale Codec Comparator 🟢, ScaleCodec.sol by Darwinia ⚪, ScaleCodec.sol by Snowfork 🟢, Dotscale
    Networking Frameworklibp2p
    DHT CrawlerGo ⚪, Kotlin
    RPC Tor-like accessWhiteNoise

    Primitives

    ComponentsExisting projectsPotentially interesting projects
    StorageMerkle Tree DB
    Merkle ProofsSolidity Trie Verifier 🟢

    Contributing

    Pull requests, issues, or other contributions from the community are encouraged! You can not only +Provenance and many others not pictured below.

    |------|--------|------------|
    | DeFi | Gaming | Provenance |
    |______|________|____________|
    Dapps
    |--------------------------/-|
    | Explorers, Wallets / |
    |------------------------/---|
    | Tools, Apis, Languages/ |
    |----------------------/-----|
    | 2nd layer protocols / |
    |--------------------/-------|
    | Chains / other |
    |------------------/--- --|
    | *Polkadot* | tech |
    |------------------\---------|
    | P2P, Crypto, Wasm \ |
    |--------------------\-------|

    Layers of Polkadot Stack

    In the below sections, you can find a list of different layers of the Polkadot Stack.

    Maintenance Status:

    • 🟢 Actively maintained
    • 🟡 Stale (no activity on the main branch for one month)
    • ⚪ Unmaintained (no activity on the main branch for more than three months)

    Wallets

    ComponentsExisting projectsPotentially interesting projects
    Web WalletsMultix 🟢, Polkasafe 🟢, polkadot-js/apps 🟢, Talisman Web Application 🟢, mydotwallet ⚪, Sub ID 🟡, Primis ⚪, Sakura ⚪, Web3Box ⚪, Coong Wallet ⚪, Subscan Multisig UI - React 🟡, Subscan Multisig UI ⚪, Dorafactory-Multisig ⚪, Capi Multisig AppUser-friendly Wallet based on the Recovery Pallet, Web wallets focused on user-onboarding (e.g. using localStorage)
    Desktop Walletsnova-spektr 🟢, Omni desktopEnterprise Wallets
    Browser ExtensionsTalisman-Extension 🟢, SubWallet-Extension 🟢, Enkrypt 🟢, Polkadot{.js} 🟢, PolkaGate 🟢, Doter ⚪, Speckle OS ⚪, Kuma Cross-chain WalletSign-in with your Polkadot, Kusama, etc. account.
    Mobile WalletsNova Wallet iOS 🟢, Nova Wallet Android 🟢, Polkadot Vault 🟢, Fearless Wallet Android 🟢, Fearless Wallet iOS 🟡, SubWallet-Mobile 🟢, Kampela ⚪, AirGap 🟡, Interstellar Network ⚪, Lunie ⚪, Polkawallet ⚪, imToken ⚪, Stylo ⚪, Fractapp ⚪, Hashed Wallet
    Burner Wallets/Faucet/Giftsdotdrop ⚪, KodaDot ⚪, Astar Faucet Bot ⚪, Generic sybil-resistant faucet ⚪, sybil-resistant Chat Bot FaucetFaucet (a sybil-resistant way to receive free tokens)
    Wallet PluginsMetamask-Snap by Chainsafe 🟡
    CLI WalletSubwallet ⚪, Proxy-hot-wallet
    Hardware WalletsLedger Polkadot 🟡, Ledger Kusama ⚪, Ledger Statemint ⚪, Ledger StatemineTrezor

    User Interface

    ComponentsExisting projectsPotentially interesting projects
    Block ExplorersCalamar ⚪, Polkascan ⚪, Polkastats ⚪, Subscan 🟡, Statescan 🟢, Edgscan ⚪, Sirato ⚪, ink! Explorer API ⚪, Substats ⚪, Hybrid Block ExplorerMempool focused explorer (including parachain transaction)
    Validator DashboardsPolkadot Telemetry 🟢, Polkacube ⚪, YieldScan ⚪, Hubble ⚪, Cyclops 🟢, Web3Go 🟡, 1kv insights
    Node ExplorersPolkadot Node Explorer
    NFT ExplorerNFT Explorer for Kusama & Polkadot 🟢
    Governance DashboardsPolkadot Delegation Dashboard ⚪, Polkassembly ⚪, dotreasury 🟢, Bright Treasury ⚪, OpenSquare offchain voting 🟢, OpenGov Insights ⚪, Treasury Tracker ⚪, OpenGov CLI 🟢UI for the Kusama and/or Polkadot treasury (see bounty module), UI for Parachain Lease Offering (PLO)
    StakingStaking Rewards Collector 🟡, Staking Rewards Viewer ⚪, Polkadot Staking Site ⚪, Polkadot Staking Dashboard 🟢, Polkadot/Kusama Validator Selector ⚪, Staking Income CSV Generator
    Bridge UIParity Bridges UI ⚪, Donut Interface (Steem - Dot) ⚪, Plutonication 🟢
    Parachain/CrowdloanParachains.Network ⚪, PolkAuction ⚪, Crowdloan Front End Template ⚪, Slothunter
    IdenticonPolkicon 🟢, PolkadotWebIdenticon ⚪, Polkadot Angular IdentIcon ⚪, Bird Identicon
    CoretimeLastic 🟢, RegionX 🟡
    OtherPolkadot Cloud 🟢, KappaSigmaMu Fratority 🟡, Quadratic Funding Webapp ⚪, Polkawatch, Bytepay ⚪, charging-management-platform ⚪, subidentity-webapp ⚪, OpenSquare Paid QA ⚪, DotPulse ⚪, Rubeus Keeper ⚪, Polkaflow ⚪, ChainViz ⚪, Dotsight 🟢zkLogin, Portfolio Viewer like Zapper or Zerion

    Tools, APIs, and Languages

    ComponentsExisting projectsPotentially interesting projects
    Runtime/Parachain frameworksPolkadot Blockchain SDK 🟢, Gosemble 🟢, Subsembly ⚪, Parachain utilities ⚪, Gantree ⚪, Cryptex 🟢Tools to create parachains with other frameworks, like the Cosmos SDK or Polygon CDK
    Client LibrariesPolkadot API - Typescript 🟢, Capi - Typescript ⚪, sub-api 🟢, Go ⚪, .Net ⚪, .NET Standard 2.0 🟡, Substrate .NET Toolchain 🟢, C++ ⚪, C ⚪, Haskell ⚪, Javascript 🟢, Substrate API Sidecar - TypeScript 🟢, Python 🟢, Java (+ Android) ⚪, Substrate Client Java ⚪, Rust SCS 🟢, Rust Parity (subxt) 🟢, Rust pdotc PHP (gmajor-encrypt) ⚪, PHP (neha0921) ⚪, RPC-Ethereum 🟢, Swift ⚪, Kotlin ⚪, substrate-client-kotlin ⚪, substrate-client-swift ⚪, Dart 🟡, Substrate Core Polywrapper ⚪, Substrate SDK iOS ⚪, Substrate SDK Android 🟡, DelightfulDot 🟢
    RPC GatewaySubway 🟢
    Substrate Contract clientsPatractGo
    Easy Runtime DevelopmentSubalfred 🟢, substrate-stencil ⚪, Play Substrate 🟡, substrate-node-template 🟡, Substrate Playground ⚪, AssemblyScript Runtime Generation ⚪, Substrate Package Manager ⚪, Subsembly: Framework for developing AssemblyScript Substrate Runtimes ⚪, dependency diener
    IDE PluginsSubstrate Marketplace VS Code Plugin ⚪, VS Code Plugin ⚪, Atom Code Plugin ⚪, zombienet extension
    Runtime/Pallet SecuritySubstrate Runtime Fuzzer 🟢, Substrate Toml Lint ⚪, K specifications 🟢, PolPatrol - Polkadot Runtime CheckerAutomated Runtime checking tools, economic audit simulator such as gauntlet.network
    Smart Contract Languagesink! 🟢, Ask! ⚪, Subscript ⚪, Solang 🟢, pallet-move 🟢, Move VM Substrate ⚪, Move smart contract by Neatcoin ⚪, eBPF Contracts Hackathon ⚪, PolkaVM 🟢Functional Programming Languages, other languages with developed toolchains
    TestingPolkadot introspector 🟢, Subshell ⚪, substrate-simnode 🟢, Halva ⚪, Redspot ⚪, MixBytes Tank ⚪, sub-flood ⚪, Substrate debug-kit ⚪, Asset CLI tool ⚪, sub_crash ⚪, subwasm 🟢, subsee ⚪, polkadot-lab ⚪, RPC-perf
    Static AnalysisSubstrace ⚪, Static analyzer for Substrate FRAME's pallets ⚪, CoinFabrik Scout 🟢
    TestnetZombienet 🟢, Chopsticks 🟢, Polkadot Launch ⚪, polkadot-starship 🟡, Fork off Substrate ⚪, try-runtime-cli 🟢, Parachain Launch 🟢, Larch Zombienet GUI
    BenchmarkingBenchmarking CLI 🟢, Polkadot sTPS ⚪, Clockchain ⚪, Substrate Graph Benchmarks ⚪, ink! & pallet benchmarking template ⚪, smart-bench 🟢
    Blockchain Indexing EngineSquid SDK 🟢, Hybrid Indexer 🟢, Substrate Archive ⚪, PSQL Indexer ⚪, Substrate Graph ⚪, Subquery 🟢, MBELT3 🟡, stick 🟢, Hyperdot
    Blockchain/Event MonitoringWeb3 Guardian ⚪, Aurras Event Manager ⚪, @commonwealth/chain-events ⚪, Massbit ⚪, Polkadot Basic Notifications ⚪, Ocelloids 🟢, Tracking Chain ⚪,
    GamingPolkadot SDK for Unity 🟡, CrossbowUnity Asset Store, Amethyst + Substrate
    No-code PlatformsEzCode's Polkadot.js plugin on Bubble.io ⚪, Blackprint Visual Programming Polkadot.js module ⚪, SubRelay
    WalletsTalisman Connect ⚪, SubWallet-SubConnect ⚪, Metadata Portal 🟢, Tesseract ⚪, WalletConnect ⚪, BitGoJS 🟢
    XCMTrappist ⚪, XCM-tools 🟡, XCM-tools Golang 🟡,ParaSpell ❔, XBI ⚪, XCM TS/JS SDK ⚪, XCMSend 🟢, XCM Monitoring Server 🟢, Moonbeam Foundation XCM-SDK 🟢
    Otherasset-transfer-api 🟢, txwrapper-core 🟢, open-web3 JS library ⚪, VM-Bridge ⚪, srtool 🟢, srtool-cli ⚪, Substrate Tip Bot 🟢, ORI (Onchain Risk Intelligence) ⚪, PolkaTools 🟢, polkadot-scripts ⚪, Sube 🟢, data-store-sidecar ⚪, SugarFunge 🟡, substrate-wasmedge ⚪, EightFish ⚪, Sandox ⚪, APK verifier

    ink! Smart Contracts

    ComponentsExisting projectsPotentially interesting projects
    Core Librariesink! 🟢, cargo-contract 🟢, pallet-contracts 🟢
    Local Nodessubstrate-contracts-node 🟢, Swanky 🟡
    Smart Contract DevelopmentDRink! 🟡, contracts-ui 🟢, SmartBeaver, OpenBrush ❔, Sol2Ink ⚪, Polkadot Contract Wizard 🟡, ink-wrapper 🟡, ink-playground ⚪, ink! Remix Plugin ⚪, Signac ⚪, ink!-boxes ⚪, ink!-smart-contract-wizard
    Security & Testingink! Waterfall ⚪, Verifier Image for ink! ⚪, Patron
    Frontend Developmentink!athon Boilerplate 🟢, useink ⚪, useInkathon 🟢, ink-typegen 🟢, Typechain Polkadot 🟡
    IDE Pluginsink! Analyzer 🟢
    BridgesDante Protocol
    DeFiPendulum-Ink-Wrapper 🟢, Panorama Swap ⚪, ink_bank 🟡, Polkadot AMM ⚪, Vera ⚪, Nsure Insurance ❔, Everlasting Cash ⚪, Coinversation ⚪, zenlink-dex-contract ⚪, AlgoCashNew seigniorage-style stable coins
    GamingOpen Emoji Battler ⚪, NewOmega
    DAOSyncraDAO ❔, subDAO ⚪, RainbowDAO ⚪, MangoBox ⚪, MangoSale
    Identity/DIDDotflow 🟢
    OraclesDIA WASM Oracle
    Spam ProtectionProsopo 🟢
    GovernanceAbax Governance
    NFTArtZero
    OtherPolkadot Smart Account ⚪, magink ⚪, ink-test-contracts ⚪, Candle Auctions ⚪, polkasign-contract ⚪, OCEX ⚪, Roloi ⚪, OpenPayroll ⚪, BlockchainFoodOrder

    Chains and Pallets

    ComponentsExisting projectsPotentially interesting projects
    Scalable TransactionsPerun channels 🟢, CLI demo of Perun ⚪, Astar 🟢, Celer ⚪, Gunclear ⚪, TPScore ⚪, proof-of-contract-stake 🟢roll-ups, DAG-based consensus mechanisms, side chains
    BridgesinterBTC 🟡, DKG Substrate ⚪, Sygma 🟢, EOS by Bifrost ⚪, POA - Substrate ⚪, Substrate - Ethereum DAI Bridge ⚪, Substrate - Substrate Bridge ⚪, BTC by ChainX 🟡, Cosmos-Substrate bridge ⚪, Substrate IBC Pallet 🟡, Polkadot Ethereum Bridge 🟢, Darwinia 🟢, Spacewalk: a Stellar bridge 🟢, Filecoindot ⚪, Axelar-SubstrateZCash
    PrivacyZeroChain ⚪, xx network ⚪, pLibra (Phala Network) 🟢, Automata Network ⚪, Zero Network ⚪, Silent DataMulti-Asset Shielded Pool (MASP) , Zkay, Zexe
    ZKPZeroPool ⚪, Megaclite ⚪, zkMega ⚪, PLONK for Substrate ⚪, Webb Anchor Protocol ⚪, zk-SNARKs tutorial ⚪, substrate-zk ⚪, hyperfridge-r0 🟡
    TEEAcurast 🟡, Integritee 🟡, substraTEE ⚪, WeTEE 🟢Keysafe Protocol
    DeFiPrivaDEX ⚪, Fusotao ⚪, Reef ⚪, Diora ⚪, Pendulum Chain 🟢, Compound Gateway ⚪, Parallel Finance 🟢, PINT ⚪, Laminar Chain ⚪, Acala 🟢, Centrifuge 🟢, Stafi ⚪, Definex ⚪, OAX Foundation ⚪, Cybex ⚪, Zenlink ⚪, Swaps Pallet ⚪, Polkadex 🟢, SubDEX ⚪, HydraDX 🟢, Substrate Stablecoin ⚪, Standard protocol ⚪, Polkaswap 🟢, Curve AMM ⚪, Konomi Network ⚪, Stable Asset 🟢, Libra Payment ⚪, Mangata 🟡, Tidechain ⚪, Basilisk 🟢, Polymesh 🟢DEX with privacy and confidentiality features such as those found in a dark pool
    Smart contract chainsmoonbeam 🟢, Magnet 🟢, Aleph-node 🟢, Edgeware ⚪, ParaState ⚪, gear 🟢, CENNZnet ⚪, SkyeKiwi ⚪, OAK-blockchain 🟢, ICE Blockchain ⚪, Polkadot Smart Chain ⚪, Madara - Cairo/Starknet 🟢smart contract chains with novel security approaches, smart contract chains based on existing toolchains
    OracleTellor ⚪, Laminar 🟢, Chainlink-polkadot ⚪, Ares Protocol ⚪, Kylin Network ⚪, interbtc-clients oracle 🟡, Anonima ⚪, SaaS3 ⚪, Tellor ⚪, Bridgestate Oracle
    Identity/DIDParami ⚪, Litentry 🟢, pallet-did ⚪, dot-id
    IoTNodle 🟢, MXC/DataHighway ⚪, peaq-network-node 🟢
    Verifiable ClaimsKILT 🟢, Dock 🟢
    Supply chainDSCP Node 🟢
    Health care
    Music IndustryAllfeat Network 🟢
    Data AvailabilityAvail 🟢, Melodot 🟡
    Social NetworkingFrequency 🟢, Social Network ⚪, SubSocial 🟡, ZeroDAO ⚪, Myriad Node ⚪, Wika Network ⚪, Listen ⚪, Tribal Protocol ⚪, Five Degrees on Substrate ⚪, Acuity SocialPrivate instant messenger that uses on-chain identity
    Governance/DAOAisland Node ⚪, Hashed Network ⚪, Sunshine DAO ⚪, Governance OS ⚪, Idavoll Network ⚪, Substrate Moloch ⚪, QRUCIAL-DAO 🟡, Societal ⚪, DAOs ⚪, Shivarthu 🟡, Faterium 🟢, Supersig ⚪, GenesisDAO ⚪, DAO Entrance ❔, Liberland 🟡Consul - Open Government and E-Participation Web Software
    Prediction Markets and FutarchyZeitgeist 🟢, X Predict Market
    MessagingHOPR ⚪, Nolik ⚪, Uke ⚪, Diffy Chat ⚪, Fennel Protocol
    File Storage, CloudSubsocial-Offchain 🟢, DatDot ⚪, Crust Network 🟢, offchain::ipfs ⚪, Canyon Network ⚪, CESS 🟢, CESS Proving Subsystem ❔, Iris ⚪, fmd-cess ⚪, IPFS Frame V3 ⚪, Threefold Chain 🟡, Apron ⚪, IPFS Utilities ⚪, DINFRA 🟢
    Name ServiceSubstrate Names ⚪, ENS on Substrate ⚪, PNS-Pallets ⚪, Faceless ⚪, Anchor
    GamingBit.country 🟢, SubGame ⚪, subzero ⚪, Web3Games ⚪, Ajuna Pallets 🟢, Gafi Network ⚪, Asylum 🟢, 3DPass 🟢, Polket
    Computation/AIDeitos Network ⚪, DeepBrain Chain 🟢, AI Infrastructure on Blockchain
    Enable specific use-casespallet-hookpoints ⚪, Robonomics ⚪, UniversalDOT ⚪, Evercity Sustainable Finance Protocol ⚪, logion 🟢, Me Protocol 🟢, QSTN
    NFTternoa 🟡, FRAME Pallet: NFTs for Substrate ⚪, Unique NFT Parachain ⚪, DNFT ⚪, RMRK-Substrate ⚪, NT-NFTs ⚪, Green Lemon ⚪, Basilisk 🟢
    RandomnessDKG and Randomness Beacon ⚪, drand-substrate-client
    LicensingAnagolay Network
    Banking IntegrationFIAT on-off-ramp 🟢
    CrowdfundingImbue Network ⚪, Quadratic Funding pallet by Dora ⚪, Quadratic Funding pallet by OAKMinimum Anti-Collusion Infrastructure (MACI)
    Collection of PalletsSubstrate Open Runtime Module Library 🟢, warehouse ⚪, InvArch FRAME Pallet Library 🟢
    MarketplacesDot Marketplace ⚪, Gated Marketplace ⚪, Ventur ⚪, Futur Protocol
    Carbon CreditsBitGreen ⚪, Carbon Assets Pallet ⚪, Sequester Pallets
    UTXOTuxedo 🟢
    OtherMoonkit 🟢, Substrate Account Filter ⚪, Subtensor 🟢, AdMeta 🟡, Chocolate Node ⚪, Virto Network 🟢, Substrate Validator Set 🟡, DEIP ⚪, DeBio ⚪, MathChain ⚪, encointer 🟡, Grassland ⚪, Substrate-Tutorials ⚪, Fair Squares ⚪, Totem Live Accounting ⚪, Escrow Pallet ⚪, TREX ⚪, Relation Graph ⚪, Decentralized Invoice ⚪, Redstone Network ⚪, Access Control Pallet ⚪, Omniverse DLT ⚪, ISMP ⚪, XCMP 🟡, CORD Chain 🟢Decentralized review/reputation system

    Host

    ComponentsExisting projectsPotentially interesting projects
    RustSubstrate 🟢, Cumulus 🟢
    C++Kagome 🟢, Mayon
    GoGossamer 🟢
    JavaFruzhin 🟢, Java Host Research
    AssemblyScript
    Light Clientsmoldot 🟢, Substrate Connect 🟢, C++ Polkadot Light Client
    TestingPolkadot Conformance ⚪, Polkafuzz

    Network Maintenance Tools

    ComponentsExisting projectsPotentially interesting projects
    Secure validator setupPolkadot Validation Node Ansible Setup ⚪, W3F Polkadot Validator Setup ⚪, polkadot-ansible
    High availability setupArchipel ⚪, Polkadot Failover Mechanism ⚪, Datagen ⚪, High Availability Validator Setup
    Load Balanced Endpointsterragrunt-polkadot ⚪, Geometry Labs' Substrate Meta repo
    Deployment ToolsPolkadot Package Manager ⚪, PolkaHub ⚪, Avado ⚪, Polkadot Deployer ⚪, Unified Collator Deployment
    Validator monitoringONE-T 🟢, SubVT 🟢, P.A.N.I.C. ⚪, Polkalert ⚪, B-Harvest ⚪, nmonpolkadot ⚪, Polkadot-K8s-Monitor ⚪, Polkadot-Watcher 🟢, 1KV Telegram Bot
    Validator payout managementSubstrate validator auto payout ⚪, Polkadot Payouts ⚪, staking-payouts CLI ⚪, Payctl 🟢, crunch 🟢
    Staking MinerStaking Miner v2 🟢
    Nominator ToolsValidator Selection ⚪, Polkanalyzer 🟢, Polkanalyzer-app 🟡

    Signatures

    ComponentsExisting projectsPotentially interesting projects
    SR25519rust 🟢(contains partial bindings for C, JavaScript, and Python), .Net bindings ⚪, C(old), C(new), C/C++ ⚪, C# ⚪, Go ⚪, java ⚪, PHP
    Signature Aggregationapk-proofs
    Distributed key generation (DKG) or managementkeygen.rs ⚪, Secure Wallet Origin Distribution (SWORD)
    Validator HSMsZondax Remote Signer
    MPCOrochi Network 🟢

    Consensus

    ComponentsExisting projectsPotentially interesting projects
    PoCSpartan
    PoWPoW consensus for Substrate 🟢, RandomX ⚪, Sha3 PoW
    Block productionBABE 🟢, Aura 🟢
    FinalityGRANDPA 🟢, AlephBFT 🟢
    OtherNimbus: Upgradeable consensus framework

    Networking

    ComponentsExisting projectsPotentially interesting projects
    SCALE CodecRust 🟢, TypeScript ⚪, Python 🟢, Golang Chainsafe 🟢, Golang Itering 🟡, C ⚪, C++ ⚪, JavaScript 🟢, AssemblyScript ⚪, Haskell ⚪, Java ⚪, Ruby ⚪, Dart ⚪, Swift ⚪, scale-codec-swift ⚪, scale-codec-kotlin ⚪, PHP ⚪, JavaScript by Soramitsu ⚪, Scale Codec Comparator 🟢, ScaleCodec.sol by Darwinia ⚪, ScaleCodec.sol by Snowfork 🟢, Dotscale
    Networking Frameworklibp2pSwarmNL 🟢
    DHT CrawlerGo ⚪, Kotlin
    RPC Tor-like accessWhiteNoise

    Primitives

    ComponentsExisting projectsPotentially interesting projects
    StorageMerkle Tree DB
    Merkle ProofsSolidity Trie Verifier 🟢

    Contributing

    Pull requests, issues, or other contributions from the community are encouraged! You can not only add specific projects, but also potentially interesting fields/areas which are currently missing in the tech stack.

    ❗ All technologies listed above need to be open-source. Ideally, the links lead directly to the code.

    Note: You will need a GitHub account to suggest changes or open issues. If you do not have one, you -may sign up for free.

    - +may sign up for free.

    + \ No newline at end of file diff --git a/docs/build-oracle/index.html b/docs/build-oracle/index.html index 793b54f125..1215ca9d19 100644 --- a/docs/build-oracle/index.html +++ b/docs/build-oracle/index.html @@ -16,7 +16,7 @@ - + @@ -46,7 +46,7 @@ Kusama ecosystem develops and oracle parachains begin to appear, this article will be updated with a comparison of the different solutions and the benefits and drawbacks that each provide.

    - + \ No newline at end of file diff --git a/docs/build-pdk/index.html b/docs/build-pdk/index.html index f1a21e6d94..09faa4b5e2 100644 --- a/docs/build-pdk/index.html +++ b/docs/build-pdk/index.html @@ -16,7 +16,7 @@ - + @@ -180,7 +180,7 @@ deprecated and parachains can purchase coretime to produce blocks continuously or on-demand.

    Resources

    - + \ No newline at end of file diff --git a/docs/build-protocol-index/index.html b/docs/build-protocol-index/index.html index c85e304d07..b7b198d0e3 100644 --- a/docs/build-protocol-index/index.html +++ b/docs/build-protocol-index/index.html @@ -16,13 +16,13 @@ - + - + \ No newline at end of file diff --git a/docs/build-protocol-info/index.html b/docs/build-protocol-info/index.html index b788b65882..cd0445fd73 100644 --- a/docs/build-protocol-info/index.html +++ b/docs/build-protocol-info/index.html @@ -16,7 +16,7 @@ - + @@ -124,7 +124,7 @@ to cancel a runtime upgrade. Using a finalized depth of ten blocks should be safe.

    Note that block production and finality are isolated processes in Polkadot, and the chain can have a long unfinalized head.

    Do users need to interact with any smart contracts?

    No, users interact directly with the chain's logic.

    Does Polkadot have state rent?

    No, Polkadot uses the existential deposit to prevent dust accounts and other economic mechanisms like locking or reserving tokens for operations that utilize state.

    What is an external source to see the current chain height?

    - + \ No newline at end of file diff --git a/docs/build-smart-contracts/index.html b/docs/build-smart-contracts/index.html index 09a61788d1..13bc92e381 100644 --- a/docs/build-smart-contracts/index.html +++ b/docs/build-smart-contracts/index.html @@ -16,7 +16,7 @@ - + @@ -145,7 +145,7 @@ Substrate and Polkadot StackExchange to ask their questions. As always, keep up to date with Polkadot and Kusama by following the social channels.

    - + \ No newline at end of file diff --git a/docs/build-storage/index.html b/docs/build-storage/index.html index c3fc77c00b..5b29d4f02c 100644 --- a/docs/build-storage/index.html +++ b/docs/build-storage/index.html @@ -16,7 +16,7 @@ - + @@ -56,7 +56,7 @@ directory info will not be visible if you switch to a new browser or clear the browser cache. The storage module allows you to export file directory info from the current browser and import it to the new browser.

    manage file dir

    note

    These above images are taken from this pull request

    - + \ No newline at end of file diff --git a/docs/build-tools-index/index.html b/docs/build-tools-index/index.html index ec5c4471f3..c8e1ccbba8 100644 --- a/docs/build-tools-index/index.html +++ b/docs/build-tools-index/index.html @@ -16,7 +16,7 @@ - + @@ -110,7 +110,7 @@ Squid Archive Registry
  • Polka-store - A tool which scans a Substrate chain and stores balance-relevant transactions in an SQLite database.
  • Substrate-graph - A compact indexer for Substrate based nodes providing a GraphQL interface.
  • - + \ No newline at end of file diff --git a/docs/build-transaction-construction/index.html b/docs/build-transaction-construction/index.html index 4a4fe504a5..99962f36f4 100644 --- a/docs/build-transaction-construction/index.html +++ b/docs/build-transaction-construction/index.html @@ -16,7 +16,7 @@ - + @@ -56,7 +56,7 @@ author_submitAndWatchExtrinsic, the latter of which will subscribe you to events to be notified as a transaction gets validated and included in the chain.

    Notes

    Some addresses to use in the examples. See Subkey documentation.

    $ subkey --network polkadot generate
    Secret phrase `pulp gaze fuel ... mercy inherit equal` is account:
    Secret seed: 0x57450b3e09ba4598 ... ... ... ... ... ... ... .. 219756eeba80bb16
    Public key (hex): 0x2ca17d26ca376087dc30ed52deb74bf0f64aca96fe78b05ec3e720a72adb1235
    Account ID: 0x2ca17d26ca376087dc30ed52deb74bf0f64aca96fe78b05ec3e720a72adb1235
    SS58 Address: 121X5bEgTZcGQx5NZjwuTjqqKoiG8B2wEAvrUFjuw24ZGZf2

    $ subkey --network polkadot generate
    Secret phrase `exercise auction soft ... obey control easily` is account:
    Secret seed: 0x5f4bbb9fbb69261a ... ... ... ... ... ... ... .. 4691ed7d1130fbbd
    Public key (hex): 0xda04de6cd781c98acf0693dfb97c11011938ad22fcc476ed0089ac5aec3fe243
    Account ID: 0xda04de6cd781c98acf0693dfb97c11011938ad22fcc476ed0089ac5aec3fe243
    SS58 Address: 15vrtLsCQFG3qRYUcaEeeEih4JwepocNJHkpsrqojqnZPc2y
    - + \ No newline at end of file diff --git a/docs/community-index/index.html b/docs/community-index/index.html index 17e556343f..2f1c289647 100644 --- a/docs/community-index/index.html +++ b/docs/community-index/index.html @@ -16,13 +16,13 @@ - + - + \ No newline at end of file diff --git a/docs/community/index.html b/docs/community/index.html index 022580b593..4f5bb66f37 100644 --- a/docs/community/index.html +++ b/docs/community/index.html @@ -16,7 +16,7 @@ - + @@ -62,7 +62,7 @@ Discover thriving communities and participate in engaging campaigns.
  • DotAppStore - Discover featured projects and apps upvoted by the Polkadot community.
  • Awesome Dot - community curated resources, projects, and learning material about the Polkadot and Kusama ecosystems.
  • - + \ No newline at end of file diff --git a/docs/contributing/index.html b/docs/contributing/index.html index 2d00c8549d..f39a02c9b4 100644 --- a/docs/contributing/index.html +++ b/docs/contributing/index.html @@ -16,7 +16,7 @@ - + @@ -48,7 +48,7 @@ your local copy with npx lint-staged, but for simplicity we also have a bot which runs this for us in your PRs.

    Heritage

    This document is based on the Level contribution guidelines.


    - + \ No newline at end of file diff --git a/docs/contributors/index.html b/docs/contributors/index.html index e0c74bfbf0..e3dd614441 100644 --- a/docs/contributors/index.html +++ b/docs/contributors/index.html @@ -16,7 +16,7 @@ - + @@ -92,7 +92,7 @@ for the Polkadot protocol. He contributed in creating written content and example applications that demonstrate how to use these new technologies.

    You can now find Logan leading efforts to define the prediction market space at Zeitgeist.

    - + \ No newline at end of file diff --git a/docs/dashboards-index/index.html b/docs/dashboards-index/index.html index bb6a0240b7..c84bd4a485 100644 --- a/docs/dashboards-index/index.html +++ b/docs/dashboards-index/index.html @@ -16,13 +16,13 @@ - + - + \ No newline at end of file diff --git a/docs/decentralized-futures/index.html b/docs/decentralized-futures/index.html index 2ad42f8f61..41bb677559 100644 --- a/docs/decentralized-futures/index.html +++ b/docs/decentralized-futures/index.html @@ -16,7 +16,7 @@ - + @@ -46,7 +46,7 @@ utilized, with granularity increasing proportionally with the amount sought. This meticulous approach ensures transparency and accountability in the allocation of resources.
  • A demonstrated willingness to receive a more significant portion of the value in long-term DOT rather than immediate FIAT, aligning with the broader ecosystem's goals.
  • - + \ No newline at end of file diff --git a/docs/decentralized-voices/index.html b/docs/decentralized-voices/index.html index 4da165e579..95fcbd674c 100644 --- a/docs/decentralized-voices/index.html +++ b/docs/decentralized-voices/index.html @@ -16,7 +16,7 @@ - + @@ -53,7 +53,7 @@ dedicated community members to shape the future of the Polkadot ecosystem. For more detailed information, see the original Medium article.

    - + \ No newline at end of file diff --git a/docs/dev-heroes/index.html b/docs/dev-heroes/index.html index 2bd32302fd..7cdfbd1203 100644 --- a/docs/dev-heroes/index.html +++ b/docs/dev-heroes/index.html @@ -16,7 +16,7 @@ - + @@ -37,7 +37,7 @@ open source technology stack list and contribute with a pull request, an issue, or find and fix bugs.

  • Create content: Write a blog post, record a video tutorial, and write a Twitter thread. Share about your latest coding success, something you learned and are excited about.

  • Speak at events: Do a workshop or talk at meetups and conferences.

  • - + \ No newline at end of file diff --git a/docs/explore-index/index.html b/docs/explore-index/index.html index b651f5f78e..c0c89b749c 100644 --- a/docs/explore-index/index.html +++ b/docs/explore-index/index.html @@ -16,13 +16,13 @@ - + - + \ No newline at end of file diff --git a/docs/faq/index.html b/docs/faq/index.html index 248dececf7..7ad6a47c6c 100644 --- a/docs/faq/index.html +++ b/docs/faq/index.html @@ -16,7 +16,7 @@ - + @@ -200,7 +200,7 @@ fee calculation page in the Substrate documentation for more detailed information.

    Answered by Gav series

    The "Answered by Gav" series is a collection of posts uploaded to Reddit of questions that have been asked in the Polkadot Watercooler Riot channel and answered by Polkadot founder Gavin Wood.

    - + \ No newline at end of file diff --git a/docs/general-index/index.html b/docs/general-index/index.html index ef61c36eda..ff3f10375d 100644 --- a/docs/general-index/index.html +++ b/docs/general-index/index.html @@ -16,13 +16,13 @@ - + - + \ No newline at end of file diff --git a/docs/getting-started/index.html b/docs/getting-started/index.html index e45d502bd0..c0687d46fd 100644 --- a/docs/getting-started/index.html +++ b/docs/getting-started/index.html @@ -16,7 +16,7 @@ - + @@ -108,7 +108,7 @@ about Polkadot.
  • Sample Applications - Sample applications that are built on or currently being built for Polkadot.
  • Contributing Guide - Rules for contributing to the wiki.
  • Polkadot Knowledge Base - Troubleshooting resources for specific errors and problems.
  • - + \ No newline at end of file diff --git a/docs/glossary/index.html b/docs/glossary/index.html index fbb6b2c6ce..1290c45563 100644 --- a/docs/glossary/index.html +++ b/docs/glossary/index.html @@ -16,7 +16,7 @@ - + @@ -285,7 +285,7 @@ not relevant for parachain developers.

    Witness

    Cryptographic proof statements of data validity.

    Whitelist Pallet

    Allows one Origin to escalate the privilege level of another Origin for a certain operation. In terms of OpenGov, it allows the Fellowship to authorise a new origin (which we will call Whitelisted-Root) to be executed with Root-level privileges.

    - + \ No newline at end of file diff --git a/docs/governance-apps/index.html b/docs/governance-apps/index.html index 931b6eb7dd..76a3b6bc51 100644 --- a/docs/governance-apps/index.html +++ b/docs/governance-apps/index.html @@ -16,7 +16,7 @@ - + @@ -50,7 +50,7 @@ this support guide..

    If you become a nomination pool member or a pool admin, you cannot participate in Governance with the bonded tokens in the pool, as they are held in a system account.

    - + \ No newline at end of file diff --git a/docs/grants/index.html b/docs/grants/index.html index aee17e7d61..c4d71aa08c 100644 --- a/docs/grants/index.html +++ b/docs/grants/index.html @@ -16,7 +16,7 @@ - + @@ -37,7 +37,7 @@ Treasury or receive a tip for doing something cool in the community.

    Other Grant Programs

    Below is a list of other grant programs in the Polkadot/Substrate ecosystem.

    - + \ No newline at end of file diff --git a/docs/how-to-dyor/index.html b/docs/how-to-dyor/index.html index 59a1b9f50a..8c3bef8f98 100644 --- a/docs/how-to-dyor/index.html +++ b/docs/how-to-dyor/index.html @@ -16,7 +16,7 @@ - + @@ -214,7 +214,7 @@ aims to bring to the ecosystem.

    This does not fall under fact-checking and verifying claims, but it is important to mention: fully understanding what something does and its prospective impact is an integral part of making an informed decision, so do not overlook it.

    - + \ No newline at end of file diff --git a/docs/kusama-adversarial-cheatsheet/index.html b/docs/kusama-adversarial-cheatsheet/index.html index 7cb5807f9e..832c8b498c 100644 --- a/docs/kusama-adversarial-cheatsheet/index.html +++ b/docs/kusama-adversarial-cheatsheet/index.html @@ -16,14 +16,14 @@ - +

    Adversarial Cheatsheet

    Expect things to break on Kusama. To help you break some things, take a look at the following threat model.

    Hacker wants to …Security promise that should prevent the hackHacking IncentiveHacking DamageHacking value details
    Double spend tokens via getting the clients to accept a different chainIntegrity (System-wide)HighHighIf attackers are able to double spend tokens, they are able to get services without paying for them. This gives them a high monetary incentive to execute the attack.
    Cause system to mint tokens to his own accountIntegrity (System-wide) MediumLow - MediumIf an attacker is able to craft transactions that mint tokens to their account, then this provides a high monetary incentive to execute this attack.
    Validate malicious blocks to double spend tokensAvailability (System-wide) HighMediumIf an attacker is able to double spend tokens, they are able to get services without paying for them. This gives them a high monetary incentive to execute the attack.
    Undermine consensus mechanism to split chainIntegrity (System-wide)HighHigh"If an attacker is able to double spend tokens, they are able to get services without paying for them. This gives them a high monetary incentive to execute the attack. Betting on decrease in value of the cryptocurrency or competitors want to damage the reputation, so that the value of their blockchain increases.
    Tamper/manipulate blockchain history to invalidate transactions (e.g. a voting result)Integrity (System-wide)MediumMedium - HighAttacker can rollback undesired transactions by intentionally invalidating the block where transaction has happened. Attacker can force a governance decision (or even an on-chain update) that favors them.
    Undermine blockchain or consensus mechanism to damage the ecosystem's reputationAvailability (System-wide)HighHighBetting on decrease in value of the cryptocurrency or competitors want to damage the reputation, so that the value of their blockchain increases
    CensorshipAvailability (System-wide)MediumHighHackers are able to block undesirable types of transactions (e.g. industry competitor transactions or referendum votes). This could be achieved by colluding with other stakeholders or by otherwise obtaining more voting power.
    Deanonymize usersConfidentiality (Node)MediumMediumParties that want to de-anonymize users can use the information to oppress the opposition (e.g. political activists).
    Steal token from nodeIntegrity (Node)HighHighAttackers that are able to steal tokens from nodes can claim assets for themselves, which gives them a high monetary incentive to execute the attack.
    Steal token from node by leaking credentialsConfidentiality (Node)HighHighAttackers that are able to steal tokens from nodes can claim assets for themselves, which gives them a high monetary incentive to execute the attack.
    Prevent node from accessing the Polkadot networkAvailability (Node)LowLow - MediumRun a targeted denial-of-service attack out of revenge, monetary interests (in case of a competing coin exchange, etc.).
    Defraud other participantsIntegrity (Node)MediumLow - MediumAttacker can abuse other participants’ misunderstanding of Polkadot's security guarantees to defraud them. Also, if the reward for calling out bad behavior can be set up so that it is higher than the according punishment, a set of self-handled nodes can be set up to generate a source cycle. Other participants are not needed for this attack.
    Defraud other participantsIntegrity (System-wide)HighHighAn attacker could abuse bugs in Polkadot's economic system to defraud other participants. For example, an attacker could exploit a logic bug to not pay transaction fees.
    - + \ No newline at end of file diff --git a/docs/kusama-bug-bounty/index.html b/docs/kusama-bug-bounty/index.html index a08ffc4f7f..b4a1f30e02 100644 --- a/docs/kusama-bug-bounty/index.html +++ b/docs/kusama-bug-bounty/index.html @@ -16,7 +16,7 @@ - + @@ -41,7 +41,7 @@ not to be disruptive or harmful to our users or us. Otherwise, your actions might be interpreted as an attack rather than an effort to be helpful.

    How to report a bug

    Please follow the instructions at web3.foundation/security-report/.

    - + \ No newline at end of file diff --git a/docs/kusama-claims/index.html b/docs/kusama-claims/index.html index 4c0f834874..5bd433a351 100644 --- a/docs/kusama-claims/index.html +++ b/docs/kusama-claims/index.html @@ -16,7 +16,7 @@ - + @@ -95,7 +95,7 @@ Polkadot Support page.

    Third Party Claims Processes

    We do not recommend using a third-party app or process to perform your claim or acquire KSM.

    Claiming using a third-party process can lead to the loss of your allocation; therefore, we cannot recommend using any third-party apps to do so. Manually specifying your transaction data, as specified in our claims process, is the only way to be certain you will receive your allocation.

    - + \ No newline at end of file diff --git a/docs/kusama-coc/index.html b/docs/kusama-coc/index.html index d794f25a10..9e7d52279e 100644 --- a/docs/kusama-coc/index.html +++ b/docs/kusama-coc/index.html @@ -16,7 +16,7 @@ - + @@ -39,7 +39,7 @@ on feedback from the Kusama participants and/or the Polkadot community.

    Bugs

    Please understand that this network is, despite its success, an experiment with potential flaws, so it’s appreciated that community members help report any sort of exploits directly to the team before sharing publicly. Please see the bug bounty program.

    - + \ No newline at end of file diff --git a/docs/kusama-community/index.html b/docs/kusama-community/index.html index e211ad0ec4..1ef99c85e3 100644 --- a/docs/kusama-community/index.html +++ b/docs/kusama-community/index.html @@ -16,7 +16,7 @@ - + @@ -39,7 +39,7 @@ for technical questions on building with Substrate.
  • Smart Contracts & Parity Ink! - A room to discuss developing Substrate smart contracts using Parity Ink!
  • Social

    Blogs and tutorials

    Newsletters

    - + \ No newline at end of file diff --git a/docs/kusama-getting-started/index.html b/docs/kusama-getting-started/index.html index 98c6cdd39d..968dcdfd55 100644 --- a/docs/kusama-getting-started/index.html +++ b/docs/kusama-getting-started/index.html @@ -16,7 +16,7 @@ - + @@ -52,7 +52,7 @@ here.

    While Kusama does not support smart contracts natively, building apps on it is still possible (e.g. RMRK.app). If you're interested in diving deeper into proper development, however, check out the builders guide.

    Additional Resources:

    - + \ No newline at end of file diff --git a/docs/kusama-index/index.html b/docs/kusama-index/index.html index a604cceb3a..c568ed5175 100644 --- a/docs/kusama-index/index.html +++ b/docs/kusama-index/index.html @@ -16,7 +16,7 @@ - + @@ -24,7 +24,7 @@

    Kusama

    Polkadot's Canary Network

    Kusama is a canary network for Polkadot; an earlier release of the code that is available first and holds real economic value. For developers, Kusama is a proving ground for runtime upgrades, on-chain governance, and parachains.

    No Promises.

    Kusama has a dedicated Wiki guide. Click on the image below to access it.

    guide
    Kusama Guide
    - + \ No newline at end of file diff --git a/docs/kusama-parameters/index.html b/docs/kusama-parameters/index.html index dc2cb566e3..30b0e9eefd 100644 --- a/docs/kusama-parameters/index.html +++ b/docs/kusama-parameters/index.html @@ -16,7 +16,7 @@ - + @@ -35,7 +35,7 @@ redirected into the Society's treasury to fund growth.

    Precision

    KSM have 12 decimals of precision. In other words, 1e12 (1_000_000_000_000, or one trillion) Plancks make up a single KSM.

    - + \ No newline at end of file diff --git a/docs/kusama-social-recovery/index.html b/docs/kusama-social-recovery/index.html index e5493457a1..d736559784 100644 --- a/docs/kusama-social-recovery/index.html +++ b/docs/kusama-social-recovery/index.html @@ -16,7 +16,7 @@ - + @@ -62,7 +62,7 @@ That is by using the Root origin. However, in order to use root permissions, you will need to either go through governance.

    Further Reading

    - + \ No newline at end of file diff --git a/docs/kusama-timeline/index.html b/docs/kusama-timeline/index.html index cdcec83e77..290ed4260d 100644 --- a/docs/kusama-timeline/index.html +++ b/docs/kusama-timeline/index.html @@ -16,7 +16,7 @@ - + @@ -54,7 +54,7 @@ forkless upgradability provided by Substrate, chaos continues, and in the spirit of chaos, more teams are eager to deploy on Kusama. The path of Kusama deployment has paved the way to Polkadot's parachains as the technology became proven.

    - + \ No newline at end of file diff --git a/docs/learn-DOT/index.html b/docs/learn-DOT/index.html index 8e9f6e686f..2ddfc6ebc0 100644 --- a/docs/learn-DOT/index.html +++ b/docs/learn-DOT/index.html @@ -16,7 +16,7 @@ - + @@ -82,7 +82,7 @@ market.

    Polkadot Mainnet DOT

    Polkadot Mainnet DOT are not freely given away. If you purchased DOT in the original 2017 offering, you may claim them via the Polkadot claims process. Alternatively, they are available on the open market.

    - + \ No newline at end of file diff --git a/docs/learn-account-abstraction/index.html b/docs/learn-account-abstraction/index.html index a6617736cc..bee2046d30 100644 --- a/docs/learn-account-abstraction/index.html +++ b/docs/learn-account-abstraction/index.html @@ -16,7 +16,7 @@ - + @@ -86,7 +86,7 @@ Bader Youssef - "Abstracting Away Account Abstraction on Polkadot"
  • Parity Blog Post by Joe Petrowski - "Building a Hot Wallet with Substrate Primitives"
  • FRAME Origin - Polkadot-SDK Docs
  • - + \ No newline at end of file diff --git a/docs/learn-account-advanced/index.html b/docs/learn-account-advanced/index.html index bbe338e75f..b41313622c 100644 --- a/docs/learn-account-advanced/index.html +++ b/docs/learn-account-advanced/index.html @@ -16,7 +16,7 @@ - + @@ -201,7 +201,7 @@ directly in the browser on the new one.

    This has been tested on Brave and Chrome, but not other browsers.

    1. Go to Polkadot-JS Apps
    2. Go to JavaScript console on the browser (Available in Developer Tools)
    3. Type in the command:
    JSON.stringify(localStorage)
    1. Copy and paste the returned string to a text editor and save the file.
    2. Check that the string you pasted begins and ends with a tick mark ('). If not, add one to the beginning and end.
    3. Save and send that file with the copied string to the new computer.
    4. On the new computer, go to Polkadot-JS Apps
    5. Open the Javascript console on the browser (Available in Developer Tools)
    6. Set a variable raw equal to the string from the text file
    raw = ... copy-pasted json from original computer ...
    1. Run the following code on the console:
    accounts = JSON.parse(raw);
    for (var key in accounts) {
    if (accounts.hasOwnProperty(key)) {
    val = JSON.stringify(accounts[key]).replace(/\\/g,'').slice(1,-1);
    console.log(key + " -> " + val);
    localStorage.setItem(key, val);
    }
    }
    1. Refresh Polkadot-JS App browser and check the Accounts and Addresses pages. All of your accounts and addresses should now be available.
    - + \ No newline at end of file diff --git a/docs/learn-account-balances/index.html b/docs/learn-account-balances/index.html index 6a8652da71..52e40b8312 100644 --- a/docs/learn-account-balances/index.html +++ b/docs/learn-account-balances/index.html @@ -16,7 +16,7 @@ - + @@ -98,7 +98,7 @@ The same applies to proxies. The idea is that those actions require some network memory usage that is not given for free. In the example, we created a governance proxy, and the reserved funds for this are 0.0668 KSM.
    - + \ No newline at end of file diff --git a/docs/learn-account-multisig/index.html b/docs/learn-account-multisig/index.html index 0e0b335f4c..6cbe7dc88f 100644 --- a/docs/learn-account-multisig/index.html +++ b/docs/learn-account-multisig/index.html @@ -16,7 +16,7 @@ - + @@ -41,7 +41,7 @@ the entities designated as the recipients come together in a new multisig under a matching threshold, they will immediately have access to these tokens.


    Polkadot-JS Guides

    If you are an advanced user, see the Polkadot-JS guides about multi-signature accounts.

    - + \ No newline at end of file diff --git a/docs/learn-accounts/index.html b/docs/learn-accounts/index.html index de581c120a..39a0d8845f 100644 --- a/docs/learn-accounts/index.html +++ b/docs/learn-accounts/index.html @@ -16,7 +16,7 @@ - + @@ -90,7 +90,7 @@ It just means you want to keep your computer clean until you maybe need this folder again and recreate it. Your address is like this folder - it gets removed from the chain when nothing is in it but gets put back when it has the existential deposit.


    Polkadot-JS Guides

    If you are an advanced user, see the Polkadot-JS guides about accounts.

    - + \ No newline at end of file diff --git a/docs/learn-advanced-index/index.html b/docs/learn-advanced-index/index.html index 37c36028bc..30755fef5c 100644 --- a/docs/learn-advanced-index/index.html +++ b/docs/learn-advanced-index/index.html @@ -16,13 +16,13 @@ - + - + \ No newline at end of file diff --git a/docs/learn-agile-coretime-getting-started/index.html b/docs/learn-agile-coretime-getting-started/index.html index be0027501e..685eb2e1ef 100644 --- a/docs/learn-agile-coretime-getting-started/index.html +++ b/docs/learn-agile-coretime-getting-started/index.html @@ -16,13 +16,13 @@ - + - + \ No newline at end of file diff --git a/docs/learn-agile-coretime-index/index.html b/docs/learn-agile-coretime-index/index.html index 4630828fdd..e536fa2304 100644 --- a/docs/learn-agile-coretime-index/index.html +++ b/docs/learn-agile-coretime-index/index.html @@ -16,13 +16,13 @@ - + - + \ No newline at end of file diff --git a/docs/learn-agile-coretime/index.html b/docs/learn-agile-coretime/index.html index d4c013efbd..38a33eb516 100644 --- a/docs/learn-agile-coretime/index.html +++ b/docs/learn-agile-coretime/index.html @@ -16,7 +16,7 @@ - + @@ -207,7 +207,7 @@ timeslices.
  • Interlacing: the action of dividing a region into the execution of different tasks for each block of a timeslice. The result regions will have the same start and end timeslice as the parent region, but different tasks will be executed at different blocks.
  • - + \ No newline at end of file diff --git a/docs/learn-architecture/index.html b/docs/learn-architecture/index.html index 021a3ea71e..fc7a083c67 100644 --- a/docs/learn-architecture/index.html +++ b/docs/learn-architecture/index.html @@ -16,7 +16,7 @@ - + @@ -81,7 +81,7 @@ They collect parachain transactions and produce state transition proofs for the validators on the Relay Chain. They can also send and receive messages from other parachains using XCMP.

    Parachain blocks themselves are produced by collators, whereas the relay chain validators only verify their validity (and later, their availability).

    - + \ No newline at end of file diff --git a/docs/learn-archive/index.html b/docs/learn-archive/index.html index 2cdf40776a..0356e3c513 100644 --- a/docs/learn-archive/index.html +++ b/docs/learn-archive/index.html @@ -16,14 +16,14 @@ - + - + \ No newline at end of file diff --git a/docs/learn-asset-conversion-assethub/index.html b/docs/learn-asset-conversion-assethub/index.html index 3d093b8a64..f3bf89de08 100644 --- a/docs/learn-asset-conversion-assethub/index.html +++ b/docs/learn-asset-conversion-assethub/index.html @@ -16,7 +16,7 @@ - + @@ -57,7 +57,7 @@ experience bonuses here:

    • The exchange/custodian only needs to transact on one parachain and can access every other without any infrastructure lift.
    • For the user, they never actually need to “see” AssetHub. It’s entirely abstracted away behind either the parachain wallet/application or the exchange/custodian.
    - + \ No newline at end of file diff --git a/docs/learn-assets-index/index.html b/docs/learn-assets-index/index.html index d2b82e802f..b7677af798 100644 --- a/docs/learn-assets-index/index.html +++ b/docs/learn-assets-index/index.html @@ -16,13 +16,13 @@ - + - + \ No newline at end of file diff --git a/docs/learn-assets/index.html b/docs/learn-assets/index.html index 8fc963553b..75e7d5caac 100644 --- a/docs/learn-assets/index.html +++ b/docs/learn-assets/index.html @@ -16,7 +16,7 @@ - + @@ -122,7 +122,7 @@ create a 2-of-2 multisig from two pure proxies, and then set members from each group as proxies to those two accounts.

    - + \ No newline at end of file diff --git a/docs/learn-async-backing/index.html b/docs/learn-async-backing/index.html index e58a4253dc..408deedf69 100644 --- a/docs/learn-async-backing/index.html +++ b/docs/learn-async-backing/index.html @@ -16,7 +16,7 @@ - + @@ -153,7 +153,7 @@ Synchronous and Asynchronous Backing
    - + \ No newline at end of file diff --git a/docs/learn-auction/index.html b/docs/learn-auction/index.html index b8d11306aa..bc593df378 100644 --- a/docs/learn-auction/index.html +++ b/docs/learn-auction/index.html @@ -16,7 +16,7 @@ - + @@ -138,7 +138,7 @@ W3F research page on parachain allocation that goes more in depth to the mechanism
  • Research Update: The Case for Candle Auctions - W3F breakdown and research update about candle auctions
  • Front-Running, Smart Contracts, and Candle Auctions W3F Research team discusses how to remedy current blockchain auction setbacks with candle auctions
  • - + \ No newline at end of file diff --git a/docs/learn-basics-index/index.html b/docs/learn-basics-index/index.html index f2e6f1b856..2321ae9211 100644 --- a/docs/learn-basics-index/index.html +++ b/docs/learn-basics-index/index.html @@ -16,13 +16,13 @@ - + - + \ No newline at end of file diff --git a/docs/learn-bridge-hub/index.html b/docs/learn-bridge-hub/index.html index 514b1429b8..9c50ec5e95 100644 --- a/docs/learn-bridge-hub/index.html +++ b/docs/learn-bridge-hub/index.html @@ -16,7 +16,7 @@ - + @@ -61,7 +61,7 @@ delivery confirmation relay. For more information on relayers and the Bridge Hub design, read through the high level documentation on bridges on the Polkadot-SDK repository.

    - + \ No newline at end of file diff --git a/docs/learn-bridges/index.html b/docs/learn-bridges/index.html index 3a141d4618..5ace8bb030 100644 --- a/docs/learn-bridges/index.html +++ b/docs/learn-bridges/index.html @@ -16,7 +16,7 @@ - + @@ -85,7 +85,7 @@ Edgeware chain (a Substrate-based chain) - now defunct and not maintained, but a good example.
  • XCLAIM - XCLAIM is a framework for achieving trustless and efficient cross-chain exchanges using cryptocurrency-backed assets.
  • Celer cBridge - a bridge to transfer assets from Ethereum & Binance Smart Chain to the Astar Polkadot EVM.
  • - + \ No newline at end of file diff --git a/docs/learn-collator/index.html b/docs/learn-collator/index.html index d220c616c2..b764024249 100644 --- a/docs/learn-collator/index.html +++ b/docs/learn-collator/index.html @@ -16,7 +16,7 @@ - + @@ -66,7 +66,7 @@ information can be found under the Cumulus section on the build parachain page.

    Guides and Tools

    - + \ No newline at end of file diff --git a/docs/learn-comparisons-avalanche/index.html b/docs/learn-comparisons-avalanche/index.html index 909f82cc13..5b3d2f9706 100644 --- a/docs/learn-comparisons-avalanche/index.html +++ b/docs/learn-comparisons-avalanche/index.html @@ -16,7 +16,7 @@ - + @@ -110,7 +110,7 @@ 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
    2. The Avalanche Consensus Whitepaper
    3. The AVAX Token Dynamics Paper
    4. Nakomoto vs Snow consensus
    - + \ No newline at end of file diff --git a/docs/learn-comparisons-cosmos/index.html b/docs/learn-comparisons-cosmos/index.html index 0f7f67e81b..0f719b39bf 100644 --- a/docs/learn-comparisons-cosmos/index.html +++ b/docs/learn-comparisons-cosmos/index.html @@ -16,7 +16,7 @@ - + @@ -127,7 +127,7 @@ receiving chain must trust the sending chain. Thus, each blockchain in the Cosmos network has its independent security mechanisms. Chains also have the option to share security with the Cosmos Hub and thereby leverage its economic security.

    - + \ No newline at end of file diff --git a/docs/learn-comparisons-ethereum-2/index.html b/docs/learn-comparisons-ethereum-2/index.html index b5cbe06f9b..8202de4155 100644 --- a/docs/learn-comparisons-ethereum-2/index.html +++ b/docs/learn-comparisons-ethereum-2/index.html @@ -16,7 +16,7 @@ - + @@ -147,7 +147,7 @@ enacted autonomously via forkless upgrades.
  • Validator selection mechanisms differ as Kusama can provide strong availability and validity guarantees with fewer validators per protocol.
  • - + \ No newline at end of file diff --git a/docs/learn-comparisons-kusama/index.html b/docs/learn-comparisons-kusama/index.html index 138cca459f..9996102ef2 100644 --- a/docs/learn-comparisons-kusama/index.html +++ b/docs/learn-comparisons-kusama/index.html @@ -16,7 +16,7 @@ - + @@ -73,7 +73,7 @@ the future, we’re also likely to see Kusama bridged to Polkadot for cross-network interoperability. Web3 Foundation remains committed to both networks going forward, providing crucial support and guidance to teams building for the ecosystem.

    Explore more

    - + \ No newline at end of file diff --git a/docs/learn-comparisons-rollups/index.html b/docs/learn-comparisons-rollups/index.html index eb5b2f8123..b8b91040f1 100644 --- a/docs/learn-comparisons-rollups/index.html +++ b/docs/learn-comparisons-rollups/index.html @@ -16,7 +16,7 @@ - + @@ -91,7 +91,7 @@ transition data.

    Despite these drawbacks, Kusama remains upgradable through forkless upgrades, which allows the protocol to be easily upgradable to stay in line with future technological advances.

    - + \ No newline at end of file diff --git a/docs/learn-comparisons/index.html b/docs/learn-comparisons/index.html index 8b9d8ae1b1..53698a3316 100644 --- a/docs/learn-comparisons/index.html +++ b/docs/learn-comparisons/index.html @@ -16,7 +16,7 @@ - + @@ -58,7 +58,7 @@ Chain, and as the number of validators in the active set on Kusama are increased, more parachains can be supported.

    - + \ No newline at end of file diff --git a/docs/learn-components-index/index.html b/docs/learn-components-index/index.html index 165ac52c30..52e97b0226 100644 --- a/docs/learn-components-index/index.html +++ b/docs/learn-components-index/index.html @@ -16,13 +16,13 @@ - + - + \ No newline at end of file diff --git a/docs/learn-consensus/index.html b/docs/learn-consensus/index.html index 0473600346..c59ec079a2 100644 --- a/docs/learn-consensus/index.html +++ b/docs/learn-consensus/index.html @@ -16,7 +16,7 @@ - + @@ -138,7 +138,7 @@ Bill Laboon.
  • Block Production and Finalization in Polkadot: Understanding the BABE and GRANDPA Protocols - An academic talk by Bill Laboon, given at MIT Cryptoeconomic Systems 2020, describing Polkadot's hybrid consensus model in-depth.
  • - + \ No newline at end of file diff --git a/docs/learn-crowdloans/index.html b/docs/learn-crowdloans/index.html index 99f8f5b94f..36dfb6a534 100644 --- a/docs/learn-crowdloans/index.html +++ b/docs/learn-crowdloans/index.html @@ -16,7 +16,7 @@ - + @@ -91,7 +91,7 @@ Apps page.

    Here is an example of the crowdloans in play during the very first Kusama auction.

    crowdloan dashboard

    Furthermore, check out this video on How to Participate in Crowdloans for steps on how to access available crowdloans on PolkadotJS apps.

    - + \ No newline at end of file diff --git a/docs/learn-cryptography/index.html b/docs/learn-cryptography/index.html index 371b6c7f33..d7b941ffe8 100644 --- a/docs/learn-cryptography/index.html +++ b/docs/learn-cryptography/index.html @@ -16,7 +16,7 @@ - + @@ -172,7 +172,7 @@ make passive attacks much harder if such a backdoor exists.

    However an alternative exists in the form of Curve25519. This algorithm has been proposed in 2006 by DJB [Curve25519]. Its main strengths are its speed, its constant-time run time (and resistance against side-channel attacks), and its lack of nebulous hard-coded constants.

    - + \ No newline at end of file diff --git a/docs/learn-dot-ksm-bridge/index.html b/docs/learn-dot-ksm-bridge/index.html index f74a81236f..6916f81e24 100644 --- a/docs/learn-dot-ksm-bridge/index.html +++ b/docs/learn-dot-ksm-bridge/index.html @@ -16,7 +16,7 @@ - + @@ -55,7 +55,7 @@ through Kusama OpenGov.

    For more information on relayer rewards, check the relayers compensation scheme section on the relayer docs on the Polkadot-SDK repository.

    - + \ No newline at end of file diff --git a/docs/learn-elastic-scaling/index.html b/docs/learn-elastic-scaling/index.html index 5e437580dc..7ee2145dc0 100644 --- a/docs/learn-elastic-scaling/index.html +++ b/docs/learn-elastic-scaling/index.html @@ -16,7 +16,7 @@ - + @@ -56,7 +56,7 @@ parachain side, collators must produce more parablocks per unit of time, implying that technical specifications for collators will likely increase.

    For more advanced technical challenges, see the Elastic Scaling GitHub PR.

    - + \ No newline at end of file diff --git a/docs/learn-future-implementations-index/index.html b/docs/learn-future-implementations-index/index.html index 8d90bd8383..868ace021e 100644 --- a/docs/learn-future-implementations-index/index.html +++ b/docs/learn-future-implementations-index/index.html @@ -16,13 +16,13 @@ - + - + \ No newline at end of file diff --git a/docs/learn-guides-accounts-multisig/index.html b/docs/learn-guides-accounts-multisig/index.html index e00b2cf67f..e74d0ed1fb 100644 --- a/docs/learn-guides-accounts-multisig/index.html +++ b/docs/learn-guides-accounts-multisig/index.html @@ -16,7 +16,7 @@ - + @@ -90,7 +90,7 @@ Check the "How to use a multisig account" in the support docs on how to decode the multisig call data.

    - + \ No newline at end of file diff --git a/docs/learn-guides-accounts-proxy-pure/index.html b/docs/learn-guides-accounts-proxy-pure/index.html index 966d64036e..eaec37bab1 100644 --- a/docs/learn-guides-accounts-proxy-pure/index.html +++ b/docs/learn-guides-accounts-proxy-pure/index.html @@ -16,7 +16,7 @@ - + @@ -81,7 +81,7 @@ address but does not impact the pure proxy address. In Scenario Two, if signatories behind the pure proxies change, the address of the multisig stays the same. However, changing the number of signatories and threshold would not be possible.

    - + \ No newline at end of file diff --git a/docs/learn-guides-accounts-proxy/index.html b/docs/learn-guides-accounts-proxy/index.html index 0dd9cb448a..0986abc672 100644 --- a/docs/learn-guides-accounts-proxy/index.html +++ b/docs/learn-guides-accounts-proxy/index.html @@ -16,7 +16,7 @@ - + @@ -76,7 +76,7 @@ automatically ask for Charly's signature. Thus one proxy call will trigger the second one because Charly's is the only any proxy of P-C, and P-C cannot sign anything. While if we want to use Bob's account we will need to submit all three proxy calls.

    - + \ No newline at end of file diff --git a/docs/learn-guides-accounts/index.html b/docs/learn-guides-accounts/index.html index 136c753ff0..d3bf577106 100644 --- a/docs/learn-guides-accounts/index.html +++ b/docs/learn-guides-accounts/index.html @@ -16,7 +16,7 @@ - + @@ -124,7 +124,7 @@ encrypting/decrypting your wallet. If you cannot load a JSON file, please use the latest version of the wallet software. If you cannot load it, ensure that the wallet software uses the newest version of the Polkadot API.

    - + \ No newline at end of file diff --git a/docs/learn-guides-asset-conversion/index.html b/docs/learn-guides-asset-conversion/index.html index 76c3ae899f..9a8d65263d 100644 --- a/docs/learn-guides-asset-conversion/index.html +++ b/docs/learn-guides-asset-conversion/index.html @@ -16,7 +16,7 @@ - + @@ -76,7 +76,7 @@ (u128 value of 400000000000 as it has 10 decimals).

    Remove Liquidity

    Below is the snapshot of the liquidity pool on the DOT ACP UI. after successful submission of the extrinsic above.

    Remove Liquidity Example

    - + \ No newline at end of file diff --git a/docs/learn-guides-assets-create/index.html b/docs/learn-guides-assets-create/index.html index 6e5fc09014..6ca4b905ef 100644 --- a/docs/learn-guides-assets-create/index.html +++ b/docs/learn-guides-assets-create/index.html @@ -16,7 +16,7 @@ - + @@ -61,7 +61,7 @@ an ID that has already been taken. After all the details are entered, click on the next button.

    Add Asset Metadata

    • Choose the admin, issuer and the freezer accounts for your asset and click on the create button.

    Asset managing accounts

    • Sign and submit the transaction (If you like to verify the transaction details before signing, you can click on the dropdown button pointed by the arrow in the snapshot below).

    Sign asset creating transaction

    If the transaction is successful, you should see the asset and its details displayed in the Network > Assets page on the Asset Hub.

    - + \ No newline at end of file diff --git a/docs/learn-guides-assets-ledger/index.html b/docs/learn-guides-assets-ledger/index.html index 2f2d5138dc..cc6dfb087c 100644 --- a/docs/learn-guides-assets-ledger/index.html +++ b/docs/learn-guides-assets-ledger/index.html @@ -16,7 +16,7 @@ - + @@ -95,7 +95,7 @@ here.
  • Transfer the desired amount as described above. If you want to send exactly the amount you want to teleport, don't forget take into account the fees for teleporting that will be deducted in the next step.
  • Teleport your tokens following the instructions you will find here.
  • Teleporting to a Ledger account from a non-Ledger account doesn't require these extra steps.

    Support

    If you need support, please visit the Polkadot Support page.

    - + \ No newline at end of file diff --git a/docs/learn-guides-assets/index.html b/docs/learn-guides-assets/index.html index f1b8ddc26b..48b0a8c9f8 100644 --- a/docs/learn-guides-assets/index.html +++ b/docs/learn-guides-assets/index.html @@ -16,7 +16,7 @@ - + @@ -25,7 +25,7 @@ Polkadot-JS UI, you can contact the Polkadot Support Team. For more user-friendly tools see the wallets, apps and dashboard pages.
    - + \ No newline at end of file diff --git a/docs/learn-guides-bounties/index.html b/docs/learn-guides-bounties/index.html index eecdab9e8c..86867f1b7a 100644 --- a/docs/learn-guides-bounties/index.html +++ b/docs/learn-guides-bounties/index.html @@ -16,7 +16,7 @@ - + @@ -76,7 +76,7 @@ delay elapsed, follow the guidelines in the video tutorial below to learn how to claim a child bounty reward. Note that the extrinsic to claim the child bounty reward is permissionless, and anyone can initiate the claim on behalf of the beneficiary.

    - + \ No newline at end of file diff --git a/docs/learn-guides-bridges/index.html b/docs/learn-guides-bridges/index.html index 69350333df..74b1bcad37 100644 --- a/docs/learn-guides-bridges/index.html +++ b/docs/learn-guides-bridges/index.html @@ -16,7 +16,7 @@ - + @@ -25,7 +25,7 @@ Polkadot-JS UI, you can contact the Polkadot Support Team. For more user-friendly tools see the wallets, apps and dashboard pages.
    - + \ No newline at end of file diff --git a/docs/learn-guides-coretime-marketplaces/index.html b/docs/learn-guides-coretime-marketplaces/index.html index 3aa00deade..1381b13415 100644 --- a/docs/learn-guides-coretime-marketplaces/index.html +++ b/docs/learn-guides-coretime-marketplaces/index.html @@ -16,7 +16,7 @@ - + @@ -35,7 +35,7 @@ Wallet and Polkadot-JS Extension. Select the account to be used for the coretime purchase and then, click on "buy core" button to sign and broadcast the transaction.

    Lastic-purchase-bulk-coretime

    Managing Cores with Lastic

    Lastic enables you to transfer your core to another account, utilize it for a parachain, split it up, change block production frequency, or assign it to a task.

    Lastic-manage-core

    - + \ No newline at end of file diff --git a/docs/learn-guides-coretime-parachains/index.html b/docs/learn-guides-coretime-parachains/index.html index 8a23dd137b..e9b010275b 100644 --- a/docs/learn-guides-coretime-parachains/index.html +++ b/docs/learn-guides-coretime-parachains/index.html @@ -16,7 +16,7 @@ - + @@ -70,7 +70,7 @@ account if the provided funds will run out, ensuring the account is kept alive.

    With each successful on-demand extrinsic, the parachain head changes (you may have to zoom out on the browser for parachain head details to show up on Polkadot-JS UI).

    coretime-ondemand-parahead

    The successful collation can also be verified in the parachain collator logs. It can be noticed that with each parachain block, the state of adder-collator is incremented by 2.

    coretime-new-collation

    - + \ No newline at end of file diff --git a/docs/learn-guides-dot-ksm-bridge/index.html b/docs/learn-guides-dot-ksm-bridge/index.html index 334f54d4ec..415ad0f691 100644 --- a/docs/learn-guides-dot-ksm-bridge/index.html +++ b/docs/learn-guides-dot-ksm-bridge/index.html @@ -16,7 +16,7 @@ - + @@ -77,7 +77,7 @@ destination chain but will not be accepted by your account, and instead get trapped in the Asset Trap on the destination chain.

    Once arbitrary asset transfers are enabled by the Asset Hubs, a guide will be posted to this Wiki page.

    - + \ No newline at end of file diff --git a/docs/learn-guides-identity/index.html b/docs/learn-guides-identity/index.html index 72e7b147f7..b1b175bd11 100644 --- a/docs/learn-guides-identity/index.html +++ b/docs/learn-guides-identity/index.html @@ -16,7 +16,7 @@ - + @@ -92,7 +92,7 @@ minimumDeposit.

    Submitting a proposal

    At this point, DOT holders can endorse the motion. With enough endorsements, the motion will become a referendum, which is then voted on. If it passes, users will be able to request judgement from this registrar.

    - + \ No newline at end of file diff --git a/docs/learn-guides-ledger/index.html b/docs/learn-guides-ledger/index.html index 7b9170f30a..28fbe39375 100644 --- a/docs/learn-guides-ledger/index.html +++ b/docs/learn-guides-ledger/index.html @@ -16,7 +16,7 @@ - + @@ -79,7 +79,7 @@ Nano S and the Ledger Nano X, some extrinsics are not supported by the light version. The following repository by Zondax lists the currently supported extrinsics on the XL version of the Ledger app.

    - + \ No newline at end of file diff --git a/docs/learn-guides-nominator/index.html b/docs/learn-guides-nominator/index.html index 27f74a75f3..349dedb054 100644 --- a/docs/learn-guides-nominator/index.html +++ b/docs/learn-guides-nominator/index.html @@ -16,7 +16,7 @@ - + @@ -88,7 +88,7 @@ Subscan. Also, you can verify the bonding state under the Staking page on the Polkadot-JS UI.

    Step 3: Nominate a validator

    To nominate a validator, you can execute the following command:

    polkadot-js-api --seed "MNEMONIC_PHRASE" tx.staking.nominate '["VALIDATOR_ADDRESS"]' --ws WS_ENDPOINT
    polkadot-js-api --seed "xxxx xxxxx xxxx xxxxx" tx.staking.nominate '["CmD9vaMYoiKe7HiFnfkftwvhKbxN9bhyjcDrfFRGbifJEG8","E457XaKbj2yTB2URy8N4UuzmyuFRkcdxYs67UvSgVr7HyFb"]' --ws wss://kusama-rpc.polkadot.io

    After a few seconds, you should see the hash of the transaction, and if you would like to verify the nomination status, you can check that on the Polkadot-JS UI as well.

    - + \ No newline at end of file diff --git a/docs/learn-guides-polkadot-opengov/index.html b/docs/learn-guides-polkadot-opengov/index.html index 821e65cbf2..e3a16f6904 100644 --- a/docs/learn-guides-polkadot-opengov/index.html +++ b/docs/learn-guides-polkadot-opengov/index.html @@ -16,7 +16,7 @@ - + @@ -151,7 +151,7 @@ a decimal integer. The bitfield stores both the conviction and aye/nay boolean, where the boolean is represented using the MSB of the byte. This would mean that the seven remaining bits are grouped to store the conviction.

    - + \ No newline at end of file diff --git a/docs/learn-guides-staking-pools/index.html b/docs/learn-guides-staking-pools/index.html index 3bb3ec532a..0b596a0370 100644 --- a/docs/learn-guides-staking-pools/index.html +++ b/docs/learn-guides-staking-pools/index.html @@ -16,7 +16,7 @@ - + @@ -63,7 +63,7 @@ Polkadot-JS UI Extrinsic Tab and issue the following extrisics:

    • nominationPools.claimPayoutOthers extrinsic specifying ALICE's account. This will claim the rewards as a free balance on ALICE's account.

    pools-payoutOthers

    • nominationPools.bondExtraOthers extrinsic specifying ALICE's account and the option to bond:
      • the free balance currently available in ALICE's account (FreeBalance) or
      • the pool rewards (Rewards) unclaimed by ALICE.

    pools-bondExtraOthers

    - + \ No newline at end of file diff --git a/docs/learn-guides-staking/index.html b/docs/learn-guides-staking/index.html index 23b29ae700..191ccb25c6 100644 --- a/docs/learn-guides-staking/index.html +++ b/docs/learn-guides-staking/index.html @@ -16,7 +16,7 @@ - + @@ -25,7 +25,7 @@ Polkadot-JS UI, you can contact the Polkadot Support Team. For more user-friendly tools see the wallets, apps and dashboard pages.
    - + \ No newline at end of file diff --git a/docs/learn-guides-transfers/index.html b/docs/learn-guides-transfers/index.html index a273db6109..60130ddfe4 100644 --- a/docs/learn-guides-transfers/index.html +++ b/docs/learn-guides-transfers/index.html @@ -16,7 +16,7 @@ - + @@ -121,7 +121,7 @@ chain state. This can be found under Developer > Chain state in PolkadotJS Apps.

    Existing Non-Native Assets

    Currently, Kusama does not use the Assets Pallet, so this is probably not the reason for your tokens having existing references.

    - + \ No newline at end of file diff --git a/docs/learn-guides-treasury/index.html b/docs/learn-guides-treasury/index.html index a8ece47cd3..4f3e13eb69 100644 --- a/docs/learn-guides-treasury/index.html +++ b/docs/learn-guides-treasury/index.html @@ -16,7 +16,7 @@ - + @@ -123,7 +123,7 @@ -day timeout
  • Once the referendum ends you can claim the preimage and decision deposits back
  • - + \ No newline at end of file diff --git a/docs/learn-guides-vault/index.html b/docs/learn-guides-vault/index.html index 072c7c94b3..41a7549a95 100644 --- a/docs/learn-guides-vault/index.html +++ b/docs/learn-guides-vault/index.html @@ -16,7 +16,7 @@ - + @@ -83,7 +83,7 @@ chain and version is the version of the metadata.

    Add the renamed files to the /public/qr folder within the Metadata Portal repository.

    Run Portal

    Open the terminal within the Metadata Portal repository and run make updater. Then run make collector; this will create the _latest.apng files for each of the chains (removed by the command make cleaner). Finally, run yarn start to load the metadata portal on your localhost.

    - + \ No newline at end of file diff --git a/docs/learn-hyperbridge/index.html b/docs/learn-hyperbridge/index.html index bdb9b224f8..8311e638bf 100644 --- a/docs/learn-hyperbridge/index.html +++ b/docs/learn-hyperbridge/index.html @@ -16,7 +16,7 @@ - + @@ -86,7 +86,7 @@ repository of hyperbridge.
  • Interoperable State Machine Protocol (ISMP) Book - Guidebook of the ISMP
  • The Puzzle of Blockchain Interoperability
  • RFC-1: Agile Coretime - Agile periodic-sale-based model for assigning Coretime on the Polkadot Ubiquitous Computer.
  • ISMP, The Endgame for Parachain Interoperability | Sub0 2023
  • Research Summary: PlonK: Permutations over Lagrange-bases for Oecumenical Noninteractive arguments of Knowledge
  • - + \ No newline at end of file diff --git a/docs/learn-identity/index.html b/docs/learn-identity/index.html index 77fd72b14a..b7d94272ee 100644 --- a/docs/learn-identity/index.html +++ b/docs/learn-identity/index.html @@ -16,7 +16,7 @@ - + @@ -60,7 +60,7 @@ 1 KSM

    Registrar 3:
    Account: GLiebiQp5f6G5vNcc7BgRE9T3hrZSYDwP6evERn3hEczdaM
    Fee: -1 KSM

    Registrar 4:
    Account: GhmpzxUyTVsFJhV7s2wNvD8v3Bgikb6WvYjj4QSuSScAUw6
    Fee: 0.04 KSM

    Registrar 5:
    Account: F1wAMxpzvjWCpsnbUMamgKfqFM7LRvNdkcQ44STkeVbemEZ
    Fee: 0 KSM

    +1 KSM

    Registrar 4:
    Account: GhmpzxUyTVsFJhV7s2wNvD8v3Bgikb6WvYjj4QSuSScAUw6
    Fee: 0.04 KSM

    Registrar 5:
    Account: F1wAMxpzvjWCpsnbUMamgKfqFM7LRvNdkcQ44STkeVbemEZ
    Fee: 0.04 KSM

    Polkassembly (Registrar 5) provides setting on-chain ID as a service on their website.

    See this page to learn how to become a Registrar.

    Sub-Identities

    Users can also link accounts by setting "sub accounts", each with its own identity, under a primary account. The system reserves a bond for each sub account. An example of how you might use this would be a validation company running multiple validators. A single entity, "My Staking Company", could @@ -69,8 +69,8 @@ is required for every sub-account.


    Polkadot-JS Guides

    If you are an advanced user, see the -Polkadot-JS guides about account identity.

    - +Polkadot-JS guides about account identity.

    + \ No newline at end of file diff --git a/docs/learn-implementations/index.html b/docs/learn-implementations/index.html index 8202f99ed5..af81048b4b 100644 --- a/docs/learn-implementations/index.html +++ b/docs/learn-implementations/index.html @@ -16,7 +16,7 @@ - + @@ -54,7 +54,7 @@ collection of tools, interfaces, and libraries for Polkadot and Substrate.

    Other implementations that have received grants

    While the ecosystem continues to grow rapidly, the continued development of alternative implementations will only make Polkadot stronger. Consider becoming a contributor to the ecosystem, and learn about the how you can receive a grant for your development.

    - + \ No newline at end of file diff --git a/docs/learn-index/index.html b/docs/learn-index/index.html index 10111aea56..467818bd73 100644 --- a/docs/learn-index/index.html +++ b/docs/learn-index/index.html @@ -16,13 +16,13 @@ - + - + \ No newline at end of file diff --git a/docs/learn-inflation/index.html b/docs/learn-inflation/index.html index e4a18bfba2..90f9d2438c 100644 --- a/docs/learn-inflation/index.html +++ b/docs/learn-inflation/index.html @@ -16,7 +16,7 @@ - + @@ -74,7 +74,7 @@ incentivizing them to stake more tokens on the network. On the contrary, staking rewards drop if staked tokens exceed the ideal staking rate. This results from the change in the percentage of staking rewards that go to the Treasury.

    - + \ No newline at end of file diff --git a/docs/learn-jam-chain/index.html b/docs/learn-jam-chain/index.html index bf86e8b38c..305f139e5a 100644 --- a/docs/learn-jam-chain/index.html +++ b/docs/learn-jam-chain/index.html @@ -16,7 +16,7 @@ - + @@ -230,7 +230,7 @@ capability to target coretime not only at parachains but also at arbitrary sets of work packages. This flexibility enhances the versatility and efficiency of resource allocation within the JAM ecosystem.

    - + \ No newline at end of file diff --git a/docs/learn-jam-faq/index.html b/docs/learn-jam-faq/index.html index 08c809ae5a..557c9b6c61 100644 --- a/docs/learn-jam-faq/index.html +++ b/docs/learn-jam-faq/index.html @@ -16,7 +16,7 @@ - + @@ -92,7 +92,7 @@ learn more about JAM. You can also join discussions on the forum and the fellowship calls.
  • Read this blog post about the original talk by Gavin Wood at Token2049 in Dubai.
  • - + \ No newline at end of file diff --git a/docs/learn-nft-pallets/index.html b/docs/learn-nft-pallets/index.html index f5e8317d8b..8191b476b5 100644 --- a/docs/learn-nft-pallets/index.html +++ b/docs/learn-nft-pallets/index.html @@ -16,7 +16,7 @@ - + @@ -115,7 +115,7 @@ balance-keeping chain for both fungible and non-fungibles.

    These NFTs can be viewed and interacted with on RMRK's Singular platform, by switching the top right menu from Kusama to the Asset Hub.

    nft-hub

    They can also be interacted with directly through the extrinsics tab of the Asset Hub:

    uniques.png

    - + \ No newline at end of file diff --git a/docs/learn-nft-projects/index.html b/docs/learn-nft-projects/index.html index fa25c54b8e..c642917e0f 100644 --- a/docs/learn-nft-projects/index.html +++ b/docs/learn-nft-projects/index.html @@ -16,7 +16,7 @@ - + @@ -98,7 +98,7 @@ on, rather than entering the NFT space themselves as an end-product.

    Unique Network aims to make their marketplace technology open-source and whitelabel-friendly. In theory, it should be trivial to set up a new marketplace for your project using Unique's technology. Unique network aims to be a parachain on Polkadot, and Quartz is their Kusama counterpart.

    - + \ No newline at end of file diff --git a/docs/learn-nft/index.html b/docs/learn-nft/index.html index 7934b87efe..280188d378 100644 --- a/docs/learn-nft/index.html +++ b/docs/learn-nft/index.html @@ -16,7 +16,7 @@ - + @@ -61,7 +61,7 @@ RMRK hackathon for porting RMRK NFTs into simplified IOUs on EVM chains

    References

    - + \ No newline at end of file diff --git a/docs/learn-nomination-pools/index.html b/docs/learn-nomination-pools/index.html index 25323abcfc..1ba64fd87b 100644 --- a/docs/learn-nomination-pools/index.html +++ b/docs/learn-nomination-pools/index.html @@ -16,7 +16,7 @@ - + @@ -187,7 +187,7 @@ in the nomination pools and earn staking rewards. For additional information, see this blog post. Check the wiki doc on nomination pools for more information.

    NominatingJoining a Pool
    Minimum 250 DOT to nominate.Minimum 1 DOT to be a member.
    Rewards can be compounded automatically or sent to any account.Rewards can be manually claimed to the pool member's account and be bonded in the pool again to compound them.
    If the active validator gets slashed, all active nominators are subjected to slashing.If the active validator gets slashed, all pool members are subjected to slashing.
    Can bond and stake DOT indefinitely.Can bond and stake DOT until the pool exists.
    Unbonding period of 28 days. Can switch validators without unbonding.Unbonding period of 28 days. Need to unbond before switching to a different pool.
    Maximum uncapped.Maximum uncapped.
    Should bond more than the minimum active nomination in an era to be eligible to earn staking rewards, although it can depend on multiple other factors outlined in the linked document.A nomination pool earns rewards in an era if it satisfies all the conditions mentioned for the nominator (as the nomination pool is just a nominator from the NPoS system perspective).
    Staked tokens can be used for participation in Governance.Staked tokens cannot be used for participation in Governance.
    Rewards payout can be triggered permissionlessly by anyone (typically done by the validator).A pool member can self claim the rewards or can grant permission to any other account to claim and compound rewards on your behalf. See Claim Permissions.
    Bonded funds remain in your account.Bonded funds are transferred to a pool account which is administered by the network protocol and is not accessible to anyone else. See System Accounts for more information.
    Nominator manages the list of staked validators (up to 16).Nominations managed by the pool operator.
    - + \ No newline at end of file diff --git a/docs/learn-nominator/index.html b/docs/learn-nominator/index.html index ae18aefb1b..1ae24f60f8 100644 --- a/docs/learn-nominator/index.html +++ b/docs/learn-nominator/index.html @@ -16,7 +16,7 @@ - + @@ -236,7 +236,7 @@ Polkadot JS Apps > Network > Staking > Targets page.

    Minimum Active Nomination

    Guides

    - + \ No newline at end of file diff --git a/docs/learn-parachains-faq/index.html b/docs/learn-parachains-faq/index.html index 4023d970e4..bb8ce33c4e 100644 --- a/docs/learn-parachains-faq/index.html +++ b/docs/learn-parachains-faq/index.html @@ -16,7 +16,7 @@ - + @@ -107,7 +107,7 @@ initiate an auction, however, Root origin (via referendum) is needed to cancel an auction. Here is a proposal that gives a glimpse of what goes into planning auctions schedule - Proposed Polkadot Auction Schedule 2022.

    - + \ No newline at end of file diff --git a/docs/learn-parachains-index/index.html b/docs/learn-parachains-index/index.html index eabcf82be8..aa35d9cfb0 100644 --- a/docs/learn-parachains-index/index.html +++ b/docs/learn-parachains-index/index.html @@ -16,13 +16,13 @@ - + - + \ No newline at end of file diff --git a/docs/learn-parachains-protocol/index.html b/docs/learn-parachains-protocol/index.html index f2edf3524b..92f386c39e 100644 --- a/docs/learn-parachains-protocol/index.html +++ b/docs/learn-parachains-protocol/index.html @@ -16,7 +16,7 @@ - + @@ -272,7 +272,7 @@ Parity analyst Joe Petrowski expounds on the validity checks that a parachain block must pass in order to progress the parachain.
  • Availability and Validity - Paper by the W3F Research Team that specifies the availability and validity protocol in detail.
  • - + \ No newline at end of file diff --git a/docs/learn-parachains/index.html b/docs/learn-parachains/index.html index e955cfa0e1..b3e5283153 100644 --- a/docs/learn-parachains/index.html +++ b/docs/learn-parachains/index.html @@ -16,7 +16,7 @@ - + @@ -216,7 +216,7 @@ its own. The Relay Chain provides security to attached parachains, but also provides a guarantee of secure message-passing between them."
  • The Path of a Parachain Block - A technical walk-through of how parachains interact with the Relay Chain.
  • - + \ No newline at end of file diff --git a/docs/learn-participants-index/index.html b/docs/learn-participants-index/index.html index 24b8fd3742..2bd859eb11 100644 --- a/docs/learn-participants-index/index.html +++ b/docs/learn-participants-index/index.html @@ -16,13 +16,13 @@ - + - + \ No newline at end of file diff --git a/docs/learn-phragmen/index.html b/docs/learn-phragmen/index.html index 39c0998fa8..2e5113568d 100644 --- a/docs/learn-phragmen/index.html +++ b/docs/learn-phragmen/index.html @@ -16,7 +16,7 @@ - + @@ -264,7 +264,7 @@ This paper by Brill et al. is the source for the simple Phragmén method, along with proofs about its properties.
  • Offline Phragmén - Script to generate the Phragmén validator election outcome before the start of an era.
  • - + \ No newline at end of file diff --git a/docs/learn-polkadot-host/index.html b/docs/learn-polkadot-host/index.html index b083561912..2dd9833e22 100644 --- a/docs/learn-polkadot-host/index.html +++ b/docs/learn-polkadot-host/index.html @@ -16,7 +16,7 @@ - + @@ -42,7 +42,7 @@ Host is referred to as the Executor. For additional technical implementation details, check out this section of the Polkadot Spec.

    Resources

    - + \ No newline at end of file diff --git a/docs/learn-polkadot-js-guides/index.html b/docs/learn-polkadot-js-guides/index.html index 2fe8418f58..5f00dde19d 100644 --- a/docs/learn-polkadot-js-guides/index.html +++ b/docs/learn-polkadot-js-guides/index.html @@ -16,7 +16,7 @@ - + @@ -29,7 +29,7 @@ Ledger and Polkadot Vault for signing transactions. We do not provide support for third party applications.

    - + \ No newline at end of file diff --git a/docs/learn-polkadot-opengov-index/index.html b/docs/learn-polkadot-opengov-index/index.html index 08da665923..8de87d5986 100644 --- a/docs/learn-polkadot-opengov-index/index.html +++ b/docs/learn-polkadot-opengov-index/index.html @@ -16,13 +16,13 @@ - + - + \ No newline at end of file diff --git a/docs/learn-polkadot-opengov-origins/index.html b/docs/learn-polkadot-opengov-origins/index.html index 82ba71700d..c6b82ed5e7 100644 --- a/docs/learn-polkadot-opengov-origins/index.html +++ b/docs/learn-polkadot-opengov-origins/index.html @@ -16,7 +16,7 @@ - + @@ -91,7 +91,7 @@

    Big Spender

    Origin able to spend up to 33333.33 KSM from the treasury at once.

    - + \ No newline at end of file diff --git a/docs/learn-polkadot-opengov-treasury/index.html b/docs/learn-polkadot-opengov-treasury/index.html index a407c7dc46..76be98765f 100644 --- a/docs/learn-polkadot-opengov-treasury/index.html +++ b/docs/learn-polkadot-opengov-treasury/index.html @@ -16,7 +16,7 @@ - + @@ -105,7 +105,7 @@ allocation of funds and as part of a nested iteration of the bounty mechanism.

    Child Bounties

    Child bounties are spawned from parent bounties. Child bounties are used to access funds directly from the parent bounty without going through an OpenGov referendum.


    Polkadot-JS Guides

    If you are an advanced user, see the Polkadot-JS guides about bounties and treasury.

    - + \ No newline at end of file diff --git a/docs/learn-polkadot-opengov/index.html b/docs/learn-polkadot-opengov/index.html index c3b73ed2da..10dc3a07cc 100644 --- a/docs/learn-polkadot-opengov/index.html +++ b/docs/learn-polkadot-opengov/index.html @@ -16,7 +16,7 @@ - + @@ -281,7 +281,7 @@ allow voters to participate in OpenGov hands-free by delegating their voting power to trusted entities.

    Resources


    Polkadot-JS Guides

    If you are an advanced user, see the Polkadot-JS guides about OpenGov.

    - + \ No newline at end of file diff --git a/docs/learn-polkadot-technical-fellowship/index.html b/docs/learn-polkadot-technical-fellowship/index.html index 22b11daa8c..018ecdbf2f 100644 --- a/docs/learn-polkadot-technical-fellowship/index.html +++ b/docs/learn-polkadot-technical-fellowship/index.html @@ -16,7 +16,7 @@ - + @@ -76,7 +76,7 @@ Promotion of the Polkadot Fellowship members from rank 5 needs to be done through an OpenGov referendum. For more information, check the rank updates section on the fellowship dashboard.

    - + \ No newline at end of file diff --git a/docs/learn-polkadotjs/index.html b/docs/learn-polkadotjs/index.html index 6f8d2ff522..1500b4a628 100644 --- a/docs/learn-polkadotjs/index.html +++ b/docs/learn-polkadotjs/index.html @@ -16,7 +16,7 @@ - + @@ -25,7 +25,7 @@ Polkadot-JS UI, you can contact the Polkadot Support Team. For more user-friendly tools see the wallets, apps and dashboard pages.
    - + \ No newline at end of file diff --git a/docs/learn-proxies-pure/index.html b/docs/learn-proxies-pure/index.html index 2acbe21053..1fe79b43a4 100644 --- a/docs/learn-proxies-pure/index.html +++ b/docs/learn-proxies-pure/index.html @@ -16,7 +16,7 @@ - + @@ -61,7 +61,7 @@ corporate-level management where the chance of replacing someone within a multisig can be high. Pure proxies allow keeping the same multisig when the signatories change.
    Polkadot-JS Guides

    If you are an advanced user, see the Polkadot-JS guides about pure proxy accounts.

    - + \ No newline at end of file diff --git a/docs/learn-proxies/index.html b/docs/learn-proxies/index.html index c878e73adb..9cb0cb2209 100644 --- a/docs/learn-proxies/index.html +++ b/docs/learn-proxies/index.html @@ -16,7 +16,7 @@ - + @@ -97,7 +97,7 @@ .


    Polkadot-JS Guides

    If you are an advanced user, see the Polkadot-JS guides about proxy accounts. You can find information about creating and removing proxies, and more.

    - + \ No newline at end of file diff --git a/docs/learn-runtime-upgrades/index.html b/docs/learn-runtime-upgrades/index.html index e076a539e1..e85e96cd8a 100644 --- a/docs/learn-runtime-upgrades/index.html +++ b/docs/learn-runtime-upgrades/index.html @@ -16,7 +16,7 @@ - + @@ -92,7 +92,7 @@ will be enacted.
  • referenda (Rejected) indicates that index's referendum has been rejected and will not be enacted.
  • When the runtime upgrades, there will be a system(CodeUpdated) event confirming the execution of the runtime upgrade.
  • - + \ No newline at end of file diff --git a/docs/learn-sassafras/index.html b/docs/learn-sassafras/index.html index 0cd63f355f..213c79399b 100644 --- a/docs/learn-sassafras/index.html +++ b/docs/learn-sassafras/index.html @@ -16,7 +16,7 @@ - + @@ -28,7 +28,7 @@ with time-constant intervals. The protocol utilizes zk-SNARKs to construct a ring-VRF and is a work in progress.

    This page will be updated as progress ensues.

    Resources

    - + \ No newline at end of file diff --git a/docs/learn-scams/index.html b/docs/learn-scams/index.html index 45f40805e1..a5030f26f4 100644 --- a/docs/learn-scams/index.html +++ b/docs/learn-scams/index.html @@ -16,7 +16,7 @@ - + @@ -85,7 +85,7 @@ for steps you should take to prevent further loss and contact Polkadot Support from the same page. Finally, make sure to read the present article carefully to learn how to avoid falling victim in the future.

    - + \ No newline at end of file diff --git a/docs/learn-spree/index.html b/docs/learn-spree/index.html index 635b016964..128f5702eb 100644 --- a/docs/learn-spree/index.html +++ b/docs/learn-spree/index.html @@ -16,7 +16,7 @@ - + @@ -75,7 +75,7 @@ instances, and the next state root of the instance. They do this validation by checking it against the validate function as provided by the SPREE module API. Collators are expected to be able to provide this information to progress their parachains.

    - + \ No newline at end of file diff --git a/docs/learn-staking-advanced/index.html b/docs/learn-staking-advanced/index.html index 773f18902c..250d44411b 100644 --- a/docs/learn-staking-advanced/index.html +++ b/docs/learn-staking-advanced/index.html @@ -16,7 +16,7 @@ - + @@ -277,7 +277,7 @@ which is a fixed amount.

    Further Resources

    If you want to run a staking miner on your validator, refer to the repository provided in the resources section below.

    - + \ No newline at end of file diff --git a/docs/learn-staking-index/index.html b/docs/learn-staking-index/index.html index 37bd2a9e53..c7c45e0d64 100644 --- a/docs/learn-staking-index/index.html +++ b/docs/learn-staking-index/index.html @@ -16,13 +16,13 @@ - + - + \ No newline at end of file diff --git a/docs/learn-staking/index.html b/docs/learn-staking/index.html index 59ac73f9fe..a6b3e58aeb 100644 --- a/docs/learn-staking/index.html +++ b/docs/learn-staking/index.html @@ -16,7 +16,7 @@ - + @@ -357,7 +357,7 @@ Blog post by Web3 Foundation researcher Alfonso Cevallos covering NPoS in Polkadot.
  • Validator setup
  • Polkadot validator selector tool - A tool that helps nominators find reliable validators that meet quality-control criteria, including commission rates, verified identity, etc.

  • Polkadot-JS Guides

    If you are an advanced user, see the Polkadot-JS guides about staking.

    - + \ No newline at end of file diff --git a/docs/learn-system-chains/index.html b/docs/learn-system-chains/index.html index 24034cce9a..6a406dba4c 100644 --- a/docs/learn-system-chains/index.html +++ b/docs/learn-system-chains/index.html @@ -16,7 +16,7 @@ - + @@ -84,7 +84,7 @@ isolation provided by parachains.

    See the Bridges page for information on the latest bridge projects. Currently, a Bridge Hub parachain is in development that will be a portal for trust-minimized bridges to other networks.

    - + \ No newline at end of file diff --git a/docs/learn-teleport/index.html b/docs/learn-teleport/index.html index 0fe54024ce..c16d598899 100644 --- a/docs/learn-teleport/index.html +++ b/docs/learn-teleport/index.html @@ -16,7 +16,7 @@ - + @@ -45,7 +45,7 @@ teleportation should result in the same circulating supply of the asset, and failing to uphold this condition will result in a change in the asset's total issuance (in the case of fungible tokens) or a complete loss/duplication of an NFT.

    - + \ No newline at end of file diff --git a/docs/learn-transaction-fees/index.html b/docs/learn-transaction-fees/index.html index 0cf0337122..9ddc961d8b 100644 --- a/docs/learn-transaction-fees/index.html +++ b/docs/learn-transaction-fees/index.html @@ -16,7 +16,7 @@ - + @@ -96,7 +96,7 @@ to free storage (e.g. clear their IDE).
  • Burns: A transaction may burn funds internally based on its logic. For example, a transaction may burn funds from the sender if it creates new storage entries, thus increasing the state size.
  • Limits: Some limits are part of the protocol. For example, nominators can only nominate 16 validators. This limits the complexity of Phragmén.
  • Learn More

    - + \ No newline at end of file diff --git a/docs/learn-transactions/index.html b/docs/learn-transactions/index.html index a60cb7a5b1..1e80803f58 100644 --- a/docs/learn-transactions/index.html +++ b/docs/learn-transactions/index.html @@ -16,7 +16,7 @@ - + @@ -93,7 +93,7 @@ the fee will go to the block producer, producers will include the transactions with the highest fees to maximize their reward.


    Polkadot-JS Guides

    If you are an advanced user, see the Polkadot-JS guides about transfers.

    - + \ No newline at end of file diff --git a/docs/learn-validator/index.html b/docs/learn-validator/index.html index 03e400871a..79ef3e451f 100644 --- a/docs/learn-validator/index.html +++ b/docs/learn-validator/index.html @@ -16,7 +16,7 @@ - + @@ -91,7 +91,7 @@ statistics.
  • YieldScan - Staking yield maximization platform, designed to minimize effort.
  • Subscan Validators Page - Displays information on the current validators - not as tailored for validators as the other sites.
  • - + \ No newline at end of file diff --git a/docs/learn-video-tutorials/index.html b/docs/learn-video-tutorials/index.html index a78addac6e..39501cd1ca 100644 --- a/docs/learn-video-tutorials/index.html +++ b/docs/learn-video-tutorials/index.html @@ -16,7 +16,7 @@ - + @@ -24,7 +24,7 @@ - + \ No newline at end of file diff --git a/docs/learn-wasm/index.html b/docs/learn-wasm/index.html index ffaffb5e78..4dd19d41cd 100644 --- a/docs/learn-wasm/index.html +++ b/docs/learn-wasm/index.html @@ -16,7 +16,7 @@ - + @@ -32,7 +32,7 @@ spec.
  • Wasmi - WebAssembly interpreter written in Rust.
  • Parity Wasm - WebAssembly serialization/deserialization in Rust.
  • Wasm utils - Collection of Wasm utilities used in Parity and Wasm contract development.
  • - + \ No newline at end of file diff --git a/docs/learn-xcm-index/index.html b/docs/learn-xcm-index/index.html index a52c8e8be2..2214e8fde9 100644 --- a/docs/learn-xcm-index/index.html +++ b/docs/learn-xcm-index/index.html @@ -16,13 +16,13 @@ - +
    - + \ No newline at end of file diff --git a/docs/learn-xcm-instructions/index.html b/docs/learn-xcm-instructions/index.html index 689f4a8ede..f7e9801474 100644 --- a/docs/learn-xcm-instructions/index.html +++ b/docs/learn-xcm-instructions/index.html @@ -16,7 +16,7 @@ - + @@ -34,7 +34,7 @@ system and may not be transferred. It may only be unlocked with the receipt of the UnlockAsset instruction from this chain.

  • RequestUnlock(MultiAsset, MultiLocation) - Send an UnlockAsset instruction to the locker for the given asset.

  • - + \ No newline at end of file diff --git a/docs/learn-xcm-pallet/index.html b/docs/learn-xcm-pallet/index.html index e753e50029..4ad31c9275 100644 --- a/docs/learn-xcm-pallet/index.html +++ b/docs/learn-xcm-pallet/index.html @@ -16,7 +16,7 @@ - + @@ -84,7 +84,7 @@ calculates the total fee based on the number of instructions.

    The Trader used to calculate the weight (time for computation in consensus) to include in the message. Fee calculation in XCM is highly configurable and, for this reason, subjective to whichever configuration is in place.

    - + \ No newline at end of file diff --git a/docs/learn-xcm-transport/index.html b/docs/learn-xcm-transport/index.html index c9f7148cc0..ca75f874f7 100644 --- a/docs/learn-xcm-transport/index.html +++ b/docs/learn-xcm-transport/index.html @@ -16,7 +16,7 @@ - + @@ -66,7 +66,7 @@ asset transfer as intended.

    The collator now hands this block to the validator, which itself will verify that this message was processed. If the message was processed and all other aspects of the block are valid, the validator will include this block for parachain B into the Relay Chain.

    - + \ No newline at end of file diff --git a/docs/learn-xcm-usecases/index.html b/docs/learn-xcm-usecases/index.html index 196d61b425..714ed41e20 100644 --- a/docs/learn-xcm-usecases/index.html +++ b/docs/learn-xcm-usecases/index.html @@ -16,7 +16,7 @@ - + @@ -43,7 +43,7 @@ destination's sovereign account, and sends this instruction onwards to the destination. The destination receives the instruction and processes it, minting the derivative assets as a result of the process.

    1. DepositAsset

    The destination deposits the derivative assets minted to the receiving account.

    - + \ No newline at end of file diff --git a/docs/learn-xcm/index.html b/docs/learn-xcm/index.html index 8f0f3c4742..81172d27a7 100644 --- a/docs/learn-xcm/index.html +++ b/docs/learn-xcm/index.html @@ -16,7 +16,7 @@ - + @@ -89,7 +89,7 @@ Technical audit report by Quarkslab prepared for Parity.

  • XCM pallet code - The pallet that contains XCM logic from the Polkadot code repository

  • XCM Config & Pallet-XCM | Polkadot Deep Dives - A technical deep dive into pallet-xcm and the XCM configuration.

  • - + \ No newline at end of file diff --git a/docs/learn-xcvm/index.html b/docs/learn-xcvm/index.html index 056fce5866..994feba203 100644 --- a/docs/learn-xcvm/index.html +++ b/docs/learn-xcvm/index.html @@ -16,7 +16,7 @@ - + @@ -108,7 +108,7 @@ xcm-simulator, which allows developers to experiment with building, executing, and simulating various XCM use scenarios.

    - + \ No newline at end of file diff --git a/docs/learn/learn-controller/index.html b/docs/learn/learn-controller/index.html index 944c5fa9bf..31c9b3d194 100644 --- a/docs/learn/learn-controller/index.html +++ b/docs/learn/learn-controller/index.html @@ -16,7 +16,7 @@ - + @@ -38,7 +38,7 @@ used less often and usually signed by the stash.

    stash-not-as-controller

    From a practical perspective, there were two accounts, and we needed to remember two passwords. From a security perspective, the party who wanted to control our staking actions was required to control two accounts.

    - + \ No newline at end of file diff --git a/docs/learn/learn-governance/index.html b/docs/learn/learn-governance/index.html index 0223275c44..dcea76d775 100644 --- a/docs/learn/learn-governance/index.html +++ b/docs/learn/learn-governance/index.html @@ -16,7 +16,7 @@ - + @@ -239,7 +239,7 @@ proposals and referenda.

    * E.g. via pallets/democracy/storage/ReferendumInfoOf?key1=index&at=blockNumber on Sidecar.

    Resources

    - + \ No newline at end of file diff --git a/docs/learn/learn-launch/index.html b/docs/learn/learn-launch/index.html index 131aac60da..45e2e2331e 100644 --- a/docs/learn/learn-launch/index.html +++ b/docs/learn/learn-launch/index.html @@ -16,7 +16,7 @@ - + @@ -43,7 +43,7 @@ block number 1_205_128 on August 18, 2020, at 16:39 UTC.

    Core Functionality

    After five years of research and development and a multi-stage launch that began in May 2020, Polkadot launch was completed on December 18, 2021, with all auction-winning parachains producing blocks on the network.

    Check out these resources for further information:

    - + \ No newline at end of file diff --git a/docs/learn/learn-redenomination/index.html b/docs/learn/learn-redenomination/index.html index 79ebd09dff..7d32ac1ec0 100644 --- a/docs/learn/learn-redenomination/index.html +++ b/docs/learn/learn-redenomination/index.html @@ -16,7 +16,7 @@ - + @@ -81,7 +81,7 @@ Ecosystem Redenomination Guide for recommendations.

    Please reach out to support@polkadot.network if you need any assistance in making sure your software is compatible with the redenomination.

    - + \ No newline at end of file diff --git a/docs/learn/learn-treasury/index.html b/docs/learn/learn-treasury/index.html index 9af1e13636..0c4fba2139 100644 --- a/docs/learn/learn-treasury/index.html +++ b/docs/learn/learn-treasury/index.html @@ -16,7 +16,7 @@ - + @@ -159,7 +159,7 @@ taking place. The time delay then allows chain participants time to respond. The response may take the form of governance measures or - in the most extreme cases a liquidation of their holdings and a migration to a minority fork. However, the possibility of this scenario is quite low.

    Further Reading

    - + \ No newline at end of file diff --git a/docs/learn/xcm/config-deep-dive/index.html b/docs/learn/xcm/config-deep-dive/index.html index 9849ae934e..6ca30b83ad 100644 --- a/docs/learn/xcm/config-deep-dive/index.html +++ b/docs/learn/xcm/config-deep-dive/index.html @@ -16,7 +16,7 @@ - + @@ -129,7 +129,7 @@ Statemine, or Trappist for examples of how to implement the xcm-executor config.

    - + \ No newline at end of file diff --git a/docs/learn/xcm/fundamentals-fees/index.html b/docs/learn/xcm/fundamentals-fees/index.html index 0808eb1fb6..8ad8d99946 100644 --- a/docs/learn/xcm/fundamentals-fees/index.html +++ b/docs/learn/xcm/fundamentals-fees/index.html @@ -16,7 +16,7 @@ - + @@ -53,7 +53,7 @@ and charging execution fees.

    XCM pallet

    FRAME pallets, like the XCM pallet, specify weights for each extrinsic they expose. That means that when interacting with pallets that deal with XCM, there will be an additional fee at the beginning for calling the extrinsic locally.

    - + \ No newline at end of file diff --git a/docs/learn/xcm/fundamentals-multiasset/index.html b/docs/learn/xcm/fundamentals-multiasset/index.html index 5f71967165..56f1c3565a 100644 --- a/docs/learn/xcm/fundamentals-multiasset/index.html +++ b/docs/learn/xcm/fundamentals-multiasset/index.html @@ -16,7 +16,7 @@ - + @@ -53,7 +53,7 @@ MultiAssets and WildMultiAsset allowing either a wildcard or a list of definite (i.e. not wildcard) assets to be specified.

    pub enum MultiAssetFilter {
    /// Specify the filter as being everything contained by the given `MultiAssets` inner.
    Definite(MultiAssets),
    /// Specify the filter as the given `WildMultiAsset` wildcard.
    Wild(WildMultiAsset),
    }

    Examples

    MultiAsset

    For more information about the MultiLocations used to define concrete assets, see MultiLocation and Junction.

    // Location Relay Chain
    // 100 Native Asset (three ways)
    MultiAsset {id: Concrete(MultiLocation {parents: 0, interior: Here}), fun: Fungible(100u128)};
    MultiAsset {id: Here.into(), fun: 100.into()};
    let _: MultiAsset = (Here, 100u128).into();

    // 100 Parachain's Native Asset
    let _: MultiAsset = (X1(Parachain(1000)), 100u128).into();
    // 100 Fungible assets in Parachain 1000 with id 1234
    let _: MultiAsset = (X2(Parachain(1000), GeneralIndex(1234)), 100u128).into();
    // Non Fungible asset with asset class 1234 containing only one nft instance in Parachain 1000
    let _: MultiAsset = (X2(Parachain(1000), GeneralIndex(1234)), Undefined).into();
    // Non Fungible asset with asset class 1234 and AssetInstance 1 in Parachain 1000
    let _: MultiAsset = (X2(Parachain(1000), GeneralIndex(1234)), Index(1)).into();

    MultiAssetFilter

    let a1: MultiAssets = MultiAssets::from(vec![MultiAsset {id: Here.into(), fun: 100u128.into()}]);
    let b1: MultiAssets = (Here, 100u128).into();
    assert_eq!(a1, b1);

    let a2: MultiAssetFilter = a1.into();
    let b2 = MultiAssetFilter::Definite((Here, 100u128).into());
    assert_eq!(a2, b2);

    let a3 = MultiAssetFilter::Wild(WildMultiAsset::All);
    let b3: MultiAssetFilter = All.into();
    assert_eq!(a3, b3);
    - + \ No newline at end of file diff --git a/docs/learn/xcm/fundamentals-summary/index.html b/docs/learn/xcm/fundamentals-summary/index.html index acabd70208..fe8ca803e5 100644 --- a/docs/learn/xcm/fundamentals-summary/index.html +++ b/docs/learn/xcm/fundamentals-summary/index.html @@ -16,14 +16,14 @@ - + - + \ No newline at end of file diff --git a/docs/learn/xcm/fundamentals-xcvm/index.html b/docs/learn/xcm/fundamentals-xcvm/index.html index 7807539f82..cb18e29251 100644 --- a/docs/learn/xcm/fundamentals-xcvm/index.html +++ b/docs/learn/xcm/fundamentals-xcvm/index.html @@ -16,13 +16,13 @@ - +
    - + \ No newline at end of file diff --git a/docs/learn/xcm/fundamentals/index.html b/docs/learn/xcm/fundamentals/index.html index cc304e30a8..7b64b44514 100644 --- a/docs/learn/xcm/fundamentals/index.html +++ b/docs/learn/xcm/fundamentals/index.html @@ -16,13 +16,13 @@ - + - + \ No newline at end of file diff --git a/docs/learn/xcm/fundamentals/multilocation-example/index.html b/docs/learn/xcm/fundamentals/multilocation-example/index.html index 7844fc43cc..665ac3b3ae 100644 --- a/docs/learn/xcm/fundamentals/multilocation-example/index.html +++ b/docs/learn/xcm/fundamentals/multilocation-example/index.html @@ -16,14 +16,14 @@ - +

    Example

    In this example we show different MultiLocations for the system hierarchy in the image below. Example

    From the perspective of RelayA

    // ParaA
    let _: MultiLocation = Parachain(1000).into();
    // AccountId32 in Parachain A
    let _: MultiLocation = (Parachain(1000), AccountId32 { network: RELAY_A_NETWORK, id: [0u8; 32]}).into();
    // Asset in Parachain A
    let _: MultiLocation = (Parachain(1000), PalletInstance(1), GeneralIndex(1)).into();
    // Ethereum based account on Parachain B
    let _: MultiLocation = (Parachain(2000), AccountKey20 { network: RELAY_A_NETWORK, key: [0u8; 20] }).into();
    // Smart Contract
    let _: MultiLocation = (Parachain(2000), PalletInstance(1), AccountKey20 { network: RELAY_A_NETWORK, key: [0u8; 20] }).into();
    // RelayB
    let _: MultiLocation = (Parent, GlobalConsensus(RELAY_B_NETWORK)).into();
    // NFT on Parachain C
    let _: MultiLocation = (Parent, GlobalConsensus(RELAY_B_NETWORK), Parachain(1000), GeneralIndex(1)).into();

    From the perspective of Parachain C

    // Relay B
    let _: MultiLocation = Parent.into();
    // Plurality Example. Many more BodyId/BodyPart combos imaginable
    let _: MultiLocation = (Parent, Plurality { id: BodyId::Index(0), part: BodyPart::Members { count: 10 } }).into();
    // Account in Relay
    let _: MultiLocation = (Parent, AccountId32 { network: None, id: [0u8; 32] }).into();

    From the perspective of the Smart Contract

    // Asset in Parachain A
    let _: MultiLocation = (Parent, Parent, Parachain(1000), PalletInstance(1), GeneralIndex(1)).into();

    - + \ No newline at end of file diff --git a/docs/learn/xcm/fundamentals/multilocation-junctions/index.html b/docs/learn/xcm/fundamentals/multilocation-junctions/index.html index ee4937129f..3051f2beb8 100644 --- a/docs/learn/xcm/fundamentals/multilocation-junctions/index.html +++ b/docs/learn/xcm/fundamentals/multilocation-junctions/index.html @@ -16,7 +16,7 @@ - + @@ -56,7 +56,7 @@ relay chain from the perspective of the Polkadot relay chain as {parents: 1, interior: GlobalConsensus(Kusama)}. An example use case could be routing XCMs between global consensus networks using bridges.

    Multiple ways to create a MultiLocation

    // Current Location
    MultiLocation {parents: 0, interior: Here};
    MultiLocation::new(0, Here);
    MultiLocation::here();
    MultiLocation::default();
    let _: MultiLocation = Here.into();

    // Parent Location
    MultiLocation {parents: 1, interior: Here};
    MultiLocation::parent();
    let _: MultiLocation = Parent.into();

    // Conversion
    MultiLocation { parents: 2, interior: X2(Parachain(1), GeneralIndex(1))};
    let _: MultiLocation = (Parent, Parent, Parachain(1), GeneralIndex(1)).into();
    - + \ No newline at end of file diff --git a/docs/learn/xcm/fundamentals/multilocation-summary/index.html b/docs/learn/xcm/fundamentals/multilocation-summary/index.html index 6d8393cbee..bd4e0e0ec6 100644 --- a/docs/learn/xcm/fundamentals/multilocation-summary/index.html +++ b/docs/learn/xcm/fundamentals/multilocation-summary/index.html @@ -16,7 +16,7 @@ - + @@ -51,7 +51,7 @@ .. are followed by some number of Junctions, all separated by /. The X1 and X2 variants are expressing the number of Junctions that we step down in the hierarchical structure (see Junctions for an explanation).

    // From: RelayA
    // To: ParaB
    // Location: Parachain(2000)
    MultiLocation {parents: 0, interior: X1(Parachain(2000))};
    // To: Account in ParaA
    // Location: Parachain(1000)/AccountId32(0x00..)
    MultiLocation {
    parents: 0,
    interior: X2(
    Parachain(1000),
    AccountId32{network: None, id: [0u8; 32]}
    )
    };

    // From: ParaB
    // To: RelayA
    // Location: ../Here
    MultiLocation {parents: 1, interior: Here};
    // To: Account in ParaA
    // Location: ../Parachain(1000)/AccountId32(0x00..)
    MultiLocation {
    parents: 1,
    interior: X2(
    Parachain(1000),
    AccountId32{network: None, id: [0u8; 32]}
    )
    };

    What's next:

    • More information about junctions
    • More MultiLocation examples
    • Expressing assets using Multilocations: [MultiAsset][../multiasset.md]
    - + \ No newline at end of file diff --git a/docs/learn/xcm/fundamentals/multilocation/index.html b/docs/learn/xcm/fundamentals/multilocation/index.html index 32ca80892e..de94a77530 100644 --- a/docs/learn/xcm/fundamentals/multilocation/index.html +++ b/docs/learn/xcm/fundamentals/multilocation/index.html @@ -16,13 +16,13 @@ - + - + \ No newline at end of file diff --git a/docs/learn/xcm/index.html b/docs/learn/xcm/index.html index 1e5e18e075..12c52ccdb2 100644 --- a/docs/learn/xcm/index.html +++ b/docs/learn/xcm/index.html @@ -16,13 +16,13 @@ - + - + \ No newline at end of file diff --git a/docs/learn/xcm/introduction/index.html b/docs/learn/xcm/introduction/index.html index 313eab6f20..1ce35fd74b 100644 --- a/docs/learn/xcm/introduction/index.html +++ b/docs/learn/xcm/introduction/index.html @@ -16,7 +16,7 @@ - + @@ -32,7 +32,7 @@ open an issue. If you want to contribute to the format, check out the RFC process.

    - + \ No newline at end of file diff --git a/docs/learn/xcm/journey-assets/index.html b/docs/learn/xcm/journey-assets/index.html index 17a3dd92d8..574279a837 100644 --- a/docs/learn/xcm/journey-assets/index.html +++ b/docs/learn/xcm/journey-assets/index.html @@ -16,7 +16,7 @@ - + @@ -39,7 +39,7 @@ relay chain. The assets are trapped because an error is thrown and the execution is halted. Parachain A claims the trapped assets and receives a report of the holding register.

    Parachain A sends the following message to the relay chain. The message errors because of the Trap instruction, so all assets in the Holding Register are trapped.

    let message = Xcm(vec![
    WithdrawAsset((Here, 10 * CENTS).into()),
    BuyExecution { fees: (Here, CENTS).into(), weight_limit: WeightLimit::Unlimited },
    Trap(0), // <-- Errors
    DepositAsset { // <-- Not executed because of error.
    assets: All.into(),
    beneficiary: AccountId32 {
    network: Some(parachain::RelayNetwork::get()),
    id: ALICE.into()
    }.into()
    }
    ]);

    Parachain A claims the assets, reports them to itself and deposits them in the Account of Alice.

    let claim_message = Xcm(vec![
    ClaimAsset { assets: (Here, 10 * CENTS).into(), ticket: Here.into() },
    ReportHolding {
    response_info: QueryResponseInfo {
    destination: Parachain(1).into(),
    query_id: QUERY_ID,
    max_weight: Weight::from_parts(1_000_000_000, 64*64) },
    assets: All.into()
    },
    DepositAsset {
    assets: All.into(),
    beneficiary: AccountId32 {
    network: Some(parachain::RelayNetwork::get()),
    id: ALICE.into()
    }.into()
    },
    ]);
    - + \ No newline at end of file diff --git a/docs/learn/xcm/journey-channels/index.html b/docs/learn/xcm/journey-channels/index.html index 1ae32ace73..4ae007ce76 100644 --- a/docs/learn/xcm/journey-channels/index.html +++ b/docs/learn/xcm/journey-channels/index.html @@ -16,7 +16,7 @@ - + @@ -48,7 +48,7 @@ network), you would call with network: NetworkId::Kusama and destination: X1(Parachain(1000)). Alternatively, to export a message for execution on Polkadot, you would call with network: NetworkId:: Polkadot and destination: Here.

    - + \ No newline at end of file diff --git a/docs/learn/xcm/journey-expectations/index.html b/docs/learn/xcm/journey-expectations/index.html index 76fefcdb8d..e0d7802b59 100644 --- a/docs/learn/xcm/journey-expectations/index.html +++ b/docs/learn/xcm/journey-expectations/index.html @@ -16,7 +16,7 @@ - + @@ -41,7 +41,7 @@ the error handler, when a specific error is thrown.

        ExpectError(Option<(u32, Error)>)

    Example

    For the full example, check here.

    SetErrorHandler(Xcm(vec![
    ExpectError(Some((1, XcmError::VersionIncompatible))),
    ReportError(QueryResponseInfo {
    destination: Parachain(1).into(),
    query_id: QUERY_ID,
    max_weight: Weight::from_all(0),
    }),
    ])),
    // Pallet index is wrong, so throws `PalletNotFound` error.
    ExpectPallet {
    index: 100,
    name: "Balances".into(),
    module_name: "pallet_balances".into(),
    crate_major: 4,
    min_crate_minor: 0,
    },

    ExpectTransactStatus

    The ExpectTransactStatus instruction throws an ExpectationFalse error if the transact status register does not equal the expected transact status.

    Example

    For the full example, check here. The transact status is reported to Parachain(1) if the call in the Transact errors.

    SetErrorHandler(Xcm(vec![ReportTransactStatus(QueryResponseInfo {
    destination: Parachain(1).into(),
    query_id: QUERY_ID,
    max_weight: Weight::from_all(0),
    })])),
    Transact {
    origin_kind: OriginKind::SovereignAccount,
    require_weight_at_most: Weight::from_parts(INITIAL_BALANCE as u64, 1024 * 1024),
    call: call.encode().into(),
    },
    ExpectTransactStatus(MaybeErrorCode::Success),
    - + \ No newline at end of file diff --git a/docs/learn/xcm/journey-fees/index.html b/docs/learn/xcm/journey-fees/index.html index e3a69bf1d7..58d01e96e7 100644 --- a/docs/learn/xcm/journey-fees/index.html +++ b/docs/learn/xcm/journey-fees/index.html @@ -16,7 +16,7 @@ - + @@ -59,7 +59,7 @@ throws an error, the error handler will be called and the weight for all the instructions that weren't executed is refunded. For the full example, check our repo.

    - + \ No newline at end of file diff --git a/docs/learn/xcm/journey-holding/index.html b/docs/learn/xcm/journey-holding/index.html index ea84b974ac..5e73213e78 100644 --- a/docs/learn/xcm/journey-holding/index.html +++ b/docs/learn/xcm/journey-holding/index.html @@ -16,7 +16,7 @@ - + @@ -44,7 +44,7 @@ results could differ.

    The Assets in the exchange in Parachain(1). This is a custom exchange implementation just for testing purposes.

    let assets_in_exchange = vec![(Parent, 10 * CENTS).into()];
    parachain::set_exchange_assets(assets_in_exchange);

    The message that is send:

    let message = Xcm(vec![
    WithdrawAsset((Here, 10 * CENTS).into()),
    BuyExecution { fees: (Here, CENTS).into(), weight_limit: WeightLimit::Unlimited },
    // Maximal field set to true.
    ExchangeAsset {
    give: Definite((Here, 5 * CENTS).into()),
    want: (Parent, 5 * CENTS).into(),
    maximal: true,
    },
    DepositAsset {
    assets: AllCounted(2).into(),
    beneficiary: AccountId32 {
    network: Some(parachain::RelayNetwork::get()),
    id: ALICE.into(),
    }
    .into(),
    },
    ]);

    Alice receives 5 CENTS worth of native assets (Here) and 5 CENTS worth of relay chain derivative assets (Parent).

    - + \ No newline at end of file diff --git a/docs/learn/xcm/journey-locks/index.html b/docs/learn/xcm/journey-locks/index.html index 2d6c99eb26..2545caf791 100644 --- a/docs/learn/xcm/journey-locks/index.html +++ b/docs/learn/xcm/journey-locks/index.html @@ -16,7 +16,7 @@ - + @@ -52,7 +52,7 @@ pallet-balances: 10.
    ParaA::execute_with(|| {
    let message = Xcm(vec![
    LockAsset { asset: (Here, 10 * CENTS).into(), unlocker: (Parachain(2)).into() },
    LockAsset { asset: (Here, 5 * CENTS).into(), unlocker: (Parachain(3)).into() },
    ]);
    assert_ok!(ParachainPalletXcm::send_xcm(Here, Parent, message.clone()));
    });

    Relay::execute_with(|| {
    assert_eq!(
    relay_chain::Balances::locks(&parachain_sovereign_account_id(1)),
    vec![BalanceLock { id: *b"py/xcmlk", amount: 10 * CENTS, reasons: Reasons::All }]
    );
    });
    1. Parachain B and C receive the NoteUnlockable instruction.
    ParaB::execute_with(|| {
    assert_eq!(
    parachain::MsgQueue::received_dmp(),
    vec![Xcm(vec![NoteUnlockable {
    owner: (Parent, Parachain(1)).into(),
    asset: (Parent, 10 * CENTS).into()
    }])]
    );
    });

    ParaC::execute_with(|| {
    assert_eq!(
    parachain::MsgQueue::received_dmp(),
    vec![Xcm(vec![NoteUnlockable {
    owner: (Parent, Parachain(1)).into(),
    asset: (Parent, 5 * CENTS).into()
    }])]
    );
    });
    1. Parachain A sends a RequestUnlock instruction to Parachain B for 8 CENTS.
    ParaA::execute_with(|| {
    let message = Xcm(vec![RequestUnlock {
    asset: (Parent, 8 * CENTS).into(),
    locker: Parent.into(),
    }]);

    assert_ok!(ParachainPalletXcm::send_xcm(Here, (Parent, Parachain(2)), message.clone()));
    });
    1. Parachain B Unlocks a part of the funds by sending an UnlockAsset to the relay chain. we check the lock in the balances-pallet. Unlockers: B, C; Funds registered in pallet-xcm: 2, 5. Lock set in pallet-balances: 5.
    Relay::execute_with(|| {
    assert_eq!(
    relay_chain::Balances::locks(&parachain_sovereign_account_id(1)),
    vec![BalanceLock { id: *b"py/xcmlk", amount: 5 * CENTS, reasons: Reasons::All }]
    );
    });
    - + \ No newline at end of file diff --git a/docs/learn/xcm/journey-origin/index.html b/docs/learn/xcm/journey-origin/index.html index 9c28e95d96..ce2d8d1271 100644 --- a/docs/learn/xcm/journey-origin/index.html +++ b/docs/learn/xcm/journey-origin/index.html @@ -16,7 +16,7 @@ - + @@ -44,7 +44,7 @@ for certain values of X (thereby allowing sibling chains to use the same account IDs) or Parachain(X)/ (allowing a Relay-chain to use the account IDs native to its child parachains) or just Parent/ (allowing parachains to use AccountIds of the Relay-chain).

    - + \ No newline at end of file diff --git a/docs/learn/xcm/journey-queries/index.html b/docs/learn/xcm/journey-queries/index.html index 5ae40b5852..ddf005d8df 100644 --- a/docs/learn/xcm/journey-queries/index.html +++ b/docs/learn/xcm/journey-queries/index.html @@ -16,7 +16,7 @@ - + @@ -48,7 +48,7 @@ specified destination.

    ReportTransactStatus(QueryResponseInfo)

    Example

    For the full example, check here. Dispatches a call on the consensus system receiving this Xcm and reports back the status of the Transact Status Register.

    Xcm(vec![
    Transact {
    origin_kind: OriginKind::SovereignAccount,
    require_weight_at_most: Weight::from_parts(INITIAL_BALANCE as u64, 1024 * 1024),
    call: remark.encode().into(),
    },
    ReportTransactStatus(QueryResponseInfo {
    destination: Parachain(1).into(),
    query_id: QUERY_ID,
    max_weight: Weight::from_all(0),
    }),
    ]);
    - + \ No newline at end of file diff --git a/docs/learn/xcm/journey-register/index.html b/docs/learn/xcm/journey-register/index.html index 621676618d..4658ab38b2 100644 --- a/docs/learn/xcm/journey-register/index.html +++ b/docs/learn/xcm/journey-register/index.html @@ -16,7 +16,7 @@ - + @@ -30,7 +30,7 @@ and error handler instruction are executed. These instructions are executed regardless of whether an error occurred.

    ClearError

    ClearError

    The ClearError instruction clears the Error Register by setting it to None.

    ClearTransactStatus

    ClearTransactStatus

    The ClearTransactStatus instruction sets the Transact Status Register to its default, cleared, value.

    SetTopic

    SetTopic([u8; 32])

    The SetTopic instruction sets the Topic Register.

    ClearTopic

    ClearTopic

    The ClearTopic instruction clears the Topic Register.

    - + \ No newline at end of file diff --git a/docs/learn/xcm/journey-summary/index.html b/docs/learn/xcm/journey-summary/index.html index 7fa162fbae..0d1d82c718 100644 --- a/docs/learn/xcm/journey-summary/index.html +++ b/docs/learn/xcm/journey-summary/index.html @@ -16,7 +16,7 @@ - + @@ -24,7 +24,7 @@ - + \ No newline at end of file diff --git a/docs/learn/xcm/journey-transact/index.html b/docs/learn/xcm/journey-transact/index.html index 2f6069842a..891ff2faf8 100644 --- a/docs/learn/xcm/journey-transact/index.html +++ b/docs/learn/xcm/journey-transact/index.html @@ -16,7 +16,7 @@ - + @@ -47,7 +47,7 @@ Parachain(1). This function requires the origin to be root. We enable the root origin for the relay chain by setting ParentAsSuperuser for the OriginConverter config type.

    let call = parachain::RuntimeCall::Balances(
    pallet_balances::Call::<parachain::Runtime>::set_balance {
    who: ALICE,
    new_free: 5 * AMOUNT,
    new_reserved: 0,
    },
    );

    let message = Xcm(vec![
    WithdrawAsset((Here, AMOUNT).into()),
    BuyExecution { fees: (Here, AMOUNT).into(), weight_limit: WeightLimit::Unlimited },
    Transact {
    origin_kind: OriginKind::Superuser,
    require_weight_at_most: Weight::from_parts(INITIAL_BALANCE as u64, 1024 * 1024),
    call: call.encode().into(),
    },
    ]);

    Example 2

    For the full example, check the repo.

    In this example, as Parachain(1), we create an NFT collection on the relay chain and we then mint an NFT with ID 1. The admin for the nft collection is parachain(1). The call looks as follows:

    let create_collection = relay_chain::RuntimeCall::Uniques(
    pallet_uniques::Call::<relay_chain::Runtime>::create {
    collection: 1u32,
    admin: parachain_sovereign_account_id(1),
    }
    );

    The owner of the NFT is Alice. The nft mint call looks as follows:

    let mint = relay_chain::RuntimeCall::Uniques(
    pallet_uniques::Call::<relay_chain::Runtime>::mint {
    collection: 1u32,
    item: 1u32,
    owner: ALICE,
    }
    );

    The xcm message contains the following instructions:

    1. Withdraw native assets from the Parachain(1)'s sovereign account.
    2. Buy weight with these assets.
    3. Create a collection with as admin and owner the sovereign account of Parachain(1).
    4. Mints an NFT in the collection with item ID 1 and as owner Alice.
    let message = Xcm(vec![
    WithdrawAsset((Here, AMOUNT).into()),
    BuyExecution { fees: (Here, AMOUNT).into(), weight_limit: WeightLimit::Unlimited },
    Transact {
    origin_kind: OriginKind::SovereignAccount,
    require_weight_at_most: Weight::from_parts(INITIAL_BALANCE as u64, 1024 * 1024),
    call: create_collection.encode().into(),
    },
    Transact {
    origin_kind: OriginKind::SovereignAccount,
    require_weight_at_most: Weight::from_parts(INITIAL_BALANCE as u64, 1024 * 1024),
    call: mint.encode().into(),
    },
    ]);

    Next:

    Check out the following instructions that interact with the Transact Status Register:

    - + \ No newline at end of file diff --git a/docs/learn/xcm/journey-version/index.html b/docs/learn/xcm/journey-version/index.html index 941ca1eccf..2a44eec060 100644 --- a/docs/learn/xcm/journey-version/index.html +++ b/docs/learn/xcm/journey-version/index.html @@ -16,7 +16,7 @@ - + @@ -32,7 +32,7 @@ send back its currently AdvertisedVersion and will keep the subscribed location up to date when the version changes. The subscribed location can unsubscribe to version changes by sending the UnsubscribeVersion instruction.

    SubscribeVersion {
    #[codec(compact)]
    query_id: QueryId,
    max_response_weight: Weight,
    }

    UnsubscribeVersion

    Check out the example.

    - + \ No newline at end of file diff --git a/docs/learn/xcm/journey/index.html b/docs/learn/xcm/journey/index.html index dcd565c09a..e03bbb903e 100644 --- a/docs/learn/xcm/journey/index.html +++ b/docs/learn/xcm/journey/index.html @@ -16,13 +16,13 @@ - +
    - + \ No newline at end of file diff --git a/docs/learn/xcm/journey/transfers-reserve/index.html b/docs/learn/xcm/journey/transfers-reserve/index.html index fd2da6579d..1c5ae6ee1c 100644 --- a/docs/learn/xcm/journey/transfers-reserve/index.html +++ b/docs/learn/xcm/journey/transfers-reserve/index.html @@ -16,7 +16,7 @@ - + @@ -70,7 +70,7 @@ It's the sender the one who doesn't need to trust the destination, since it'll ever only be minting derivatives anyway, the sender/reserve controls the real assets and issuance.

    Next steps

    Next, we'll talk about a very important topic we mentioned before but skipped in this chapter, paying fees for the effects our XCMs have.

    - + \ No newline at end of file diff --git a/docs/learn/xcm/journey/transfers-summary/index.html b/docs/learn/xcm/journey/transfers-summary/index.html index 243f24262c..f064490af7 100644 --- a/docs/learn/xcm/journey/transfers-summary/index.html +++ b/docs/learn/xcm/journey/transfers-summary/index.html @@ -16,7 +16,7 @@ - + @@ -39,7 +39,7 @@ paying for execution and depositing the rest to another account on the same system. The full example can be seen in the repo.

    Transferring between systems

    But what if you want to make a transfer from one system to another? There are two ways of doing this:

    • Asset teleportation
    • Reserve-backed transfers

    We'll be discussing both in the following chapters.

    - + \ No newline at end of file diff --git a/docs/learn/xcm/journey/transfers-teleport/index.html b/docs/learn/xcm/journey/transfers-teleport/index.html index 56d98249c3..5c3dd345c4 100644 --- a/docs/learn/xcm/journey/transfers-teleport/index.html +++ b/docs/learn/xcm/journey/transfers-teleport/index.html @@ -16,7 +16,7 @@ - + @@ -58,7 +58,7 @@ another system. We could do so with the following program:

    let message = Xcm(vec![
    WithdrawAsset((GeneralIndex(1), 42u32).into()),
    InitiateTeleport {
    assets: All.into(),
    dest: Parachain(1).into(),
    xcm: Xcm(vec![DepositAsset {
    assets: All.into(),
    beneficiary: Junction::AccountId32 {
    id: ALICE.into(),
    network: None,
    }.into()
    }]),
    },
    ]);

    Very little changes, in fact, only the MultiAsset we're referencing changes, like we would expect. All the teleportation logic stays the same. The example assumes an NFT with index 42 inside a collection with index 1.

    Next steps

    We'll look at reserve-backed transfers next.

    - + \ No newline at end of file diff --git a/docs/learn/xcm/journey/transfers/index.html b/docs/learn/xcm/journey/transfers/index.html index 7d7631bb8a..1ada7375b5 100644 --- a/docs/learn/xcm/journey/transfers/index.html +++ b/docs/learn/xcm/journey/transfers/index.html @@ -16,13 +16,13 @@ - + - + \ No newline at end of file diff --git a/docs/learn/xcm/overview-architecture/index.html b/docs/learn/xcm/overview-architecture/index.html index 82e23d9220..640eea96e1 100644 --- a/docs/learn/xcm/overview-architecture/index.html +++ b/docs/learn/xcm/overview-architecture/index.html @@ -16,7 +16,7 @@ - + @@ -46,7 +46,7 @@ about later. It's the glue between XCM and FRAME, which is highly used in the Polkadot ecosystem.

    Simulator

    The simulator allows for testing XCMs fast, without needing to boot up several different nodes in a network, or test in production. It's a very useful tool which we'll use throughout this document to build and test different XCMs.

    - + \ No newline at end of file diff --git a/docs/learn/xcm/overview-format/index.html b/docs/learn/xcm/overview-format/index.html index c9cc6d4ab8..525f3620bc 100644 --- a/docs/learn/xcm/overview-format/index.html +++ b/docs/learn/xcm/overview-format/index.html @@ -16,7 +16,7 @@ - + @@ -35,7 +35,7 @@ changes. XCM communicates intentions; the actual interpretation and behaviour of each instruction in an XCM is defined by target's XCVM implementation.

    Both simple and more complex scenarios can be expressed, and developers are encouraged to design and implement diverse cross-consensus communication solutions.

    - + \ No newline at end of file diff --git a/docs/learn/xcm/overview-intro/index.html b/docs/learn/xcm/overview-intro/index.html index 96464bb2b2..9090e0c6a8 100644 --- a/docs/learn/xcm/overview-intro/index.html +++ b/docs/learn/xcm/overview-intro/index.html @@ -16,7 +16,7 @@ - + @@ -38,7 +38,7 @@ propose changes, which end up in newer versions, the current one being v3. To keep up with the development of the format, or to propose changes, go to the XCM format repository.

    - + \ No newline at end of file diff --git a/docs/learn/xcm/overview-summary/index.html b/docs/learn/xcm/overview-summary/index.html index 8169558ab7..57a082b5d4 100644 --- a/docs/learn/xcm/overview-summary/index.html +++ b/docs/learn/xcm/overview-summary/index.html @@ -16,7 +16,7 @@ - + @@ -29,7 +29,7 @@ interactions between them. XCM is meant to be used by developers to package these interactions into their runtime logic before exposing that functionality to end users.

    This chapter will cover what XCM is, what it isn't, and why it matters before exploring the different components that make up the XCM ecosystem.

    - + \ No newline at end of file diff --git a/docs/learn/xcm/overview-xcvm/index.html b/docs/learn/xcm/overview-xcvm/index.html index fb34272b86..5e6ee2b283 100644 --- a/docs/learn/xcm/overview-xcvm/index.html +++ b/docs/learn/xcm/overview-xcvm/index.html @@ -16,7 +16,7 @@ - + @@ -38,7 +38,7 @@ putting them in and taking them from this register. This register is used by several of the instructions we will look at later, including DepositAsset and WithdrawAsset.

    For more information on other registers, see the All XCVM Registers section.

    - + \ No newline at end of file diff --git a/docs/learn/xcm/overview/index.html b/docs/learn/xcm/overview/index.html index 1153d01d85..1f5b18a537 100644 --- a/docs/learn/xcm/overview/index.html +++ b/docs/learn/xcm/overview/index.html @@ -16,13 +16,13 @@ - + - + \ No newline at end of file diff --git a/docs/learn/xcm/quickstart-first-look/index.html b/docs/learn/xcm/quickstart-first-look/index.html index 4a3f1b9d93..dff3e9f967 100644 --- a/docs/learn/xcm/quickstart-first-look/index.html +++ b/docs/learn/xcm/quickstart-first-look/index.html @@ -16,7 +16,7 @@ - + @@ -48,7 +48,7 @@ examples for every instruction in the journey through XCM chapter. First, it's important to learn the fundamentals, MultiLocation, MultiAsset, and other concepts in XCM. We'll talk about those next.

    - + \ No newline at end of file diff --git a/docs/learn/xcm/quickstart-simulator/index.html b/docs/learn/xcm/quickstart-simulator/index.html index 1a2f9e7276..8c1af034eb 100644 --- a/docs/learn/xcm/quickstart-simulator/index.html +++ b/docs/learn/xcm/quickstart-simulator/index.html @@ -16,7 +16,7 @@ - + @@ -28,7 +28,7 @@ actually test your XCM-powered solution. We'll get into tools and best practices for testing in the testing chapter.

    We'll use the simulator throughout the documentation to show different XCMs in action. In the next section we will take a first look at an XCM.

    - + \ No newline at end of file diff --git a/docs/learn/xcm/quickstart-summary/index.html b/docs/learn/xcm/quickstart-summary/index.html index 9c5fef34b4..7191386f1e 100644 --- a/docs/learn/xcm/quickstart-summary/index.html +++ b/docs/learn/xcm/quickstart-summary/index.html @@ -16,7 +16,7 @@ - + @@ -26,7 +26,7 @@ installation guide.

    Running the Examples

    All examples in the documentation are located in the repository. Follow these steps to run the first-look example. First clone the repository:

    git clone git@github.com:paritytech/xcm-docs.git
    cd xcm-docs/examples

    To run the first-look example, run the following line:

    cargo test -p xcm-examples para_a_simple_transfer -- --nocapture

    It should show you the following output:

    running 1 test
    test first_look::tests::para_a_simple_transfer ... ok

    test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 1 filtered out; finished in 0.01s
    - + \ No newline at end of file diff --git a/docs/learn/xcm/quickstart/index.html b/docs/learn/xcm/quickstart/index.html index 450a957397..b626d7d413 100644 --- a/docs/learn/xcm/quickstart/index.html +++ b/docs/learn/xcm/quickstart/index.html @@ -16,13 +16,13 @@ - + - + \ No newline at end of file diff --git a/docs/learn/xcm/reference-glossary/index.html b/docs/learn/xcm/reference-glossary/index.html index c5f3596507..f6248ebf8b 100644 --- a/docs/learn/xcm/reference-glossary/index.html +++ b/docs/learn/xcm/reference-glossary/index.html @@ -16,7 +16,7 @@ - + @@ -41,7 +41,7 @@ through the relay chain.

    HRMP (Horizontal Message Passing)

    Transport-layer protocol that allows a parachain to send messages to a sibling parachain going through the relay chain. It's a precursor to XCMP, also known as XCMP-lite. It uses a mixture of UMP and VMP.

    - + \ No newline at end of file diff --git a/docs/learn/xcm/reference-xcvm-registers/index.html b/docs/learn/xcm/reference-xcvm-registers/index.html index 6130bf5d2c..a5c849d656 100644 --- a/docs/learn/xcm/reference-xcvm-registers/index.html +++ b/docs/learn/xcm/reference-xcvm-registers/index.html @@ -16,7 +16,7 @@ - + @@ -24,7 +24,7 @@
    - + \ No newline at end of file diff --git a/docs/learn/xcm/references/index.html b/docs/learn/xcm/references/index.html index f2f8574503..d02e071605 100644 --- a/docs/learn/xcm/references/index.html +++ b/docs/learn/xcm/references/index.html @@ -16,13 +16,13 @@ - + - + \ No newline at end of file diff --git a/docs/learn/xcm/testing/index.html b/docs/learn/xcm/testing/index.html index ded179c393..3ce238c8ac 100644 --- a/docs/learn/xcm/testing/index.html +++ b/docs/learn/xcm/testing/index.html @@ -16,7 +16,7 @@ - + @@ -37,7 +37,7 @@ messaging infrastructure as live networks, as the transport mechanism is being mocked out. Also, consensus related events are not tested, like disputes and staking. To test for these events, parachains can use E2E tests.

    End-to-End testing

    There are two frameworks being used in the ecosystem to do e2e testing:

    - + \ No newline at end of file diff --git a/docs/ledger/index.html b/docs/ledger/index.html index f817926a6a..1c1dab8eef 100644 --- a/docs/ledger/index.html +++ b/docs/ledger/index.html @@ -16,7 +16,7 @@ - + @@ -87,7 +87,7 @@ automatically detect the developer release and give the option to install the previous stable release.
    Polkadot-JS Guides

    If you are an advanced user, see the Polkadot-JS guides about Ledger.

    - + \ No newline at end of file diff --git a/docs/maintain-archive/index.html b/docs/maintain-archive/index.html index 7ee2feb1d9..18b95efd20 100644 --- a/docs/maintain-archive/index.html +++ b/docs/maintain-archive/index.html @@ -16,14 +16,14 @@ - + - + \ No newline at end of file diff --git a/docs/maintain-bootnode/index.html b/docs/maintain-bootnode/index.html index 2af0e3bd82..4e3378d336 100644 --- a/docs/maintain-bootnode/index.html +++ b/docs/maintain-bootnode/index.html @@ -16,7 +16,7 @@ - + @@ -38,7 +38,7 @@ port 30311:

    /etc/nginx/sites-enabled/dot-bootnode

    server {
    listen 30312 ssl http2 default_server;
    server_name dot-bootnode.stakeworld.io;
    root /var/www/html;

    ssl_certificate "<your_cert";
    ssl_certificate_key "<your_key>";

    location / {
    proxy_buffers 16 4k;
    proxy_buffer_size 2k;
    proxy_pass http://localhost:30311;
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "Upgrade";
    proxy_set_header Host $host;
    }

    }

    Testing Bootnode Connection

    If we have the above node running with DNS name dot-bootnode.stakeworld.io, proxied with a valid certificate and node-id 12D3KooWAb5MyC1UJiEQJk4Hg4B2Vi3AJdqSUhTGYUqSnEqCFMFg then the following commands should give you a: "syncing 1 peers".

    tip

    You can add -lsub-libp2p=trace on the end to get libp2p trace logging for debugging purposes.

    p2p:

    polkadot --chain polkadot --base-path /tmp/node --name "Bootnode testnode" --reserved-only --reserved-nodes "/dns/dot-bootnode.stakeworld.io/tcp/30310/p2p/12D3KooWAb5MyC1UJiEQJk4Hg4B2Vi3AJdqSUhTGYUqSnEqCFMFg" --no-hardware-benchmarks

    p2p/ws:

    polkadot --chain polkadot --base-path /tmp/node --name "Bootnode testnode" --reserved-only --reserved-nodes "/dns/dot-bootnode.stakeworld.io/tcp/30311/ws/p2p/12D3KooWAb5MyC1UJiEQJk4Hg4B2Vi3AJdqSUhTGYUqSnEqCFMFg" --no-hardware-benchmarks

    p2p/wss:

    polkadot --chain polkadot --base-path /tmp/node --name "Bootnode testnode" --reserved-only --reserved-nodes "/dns/dot-bootnode.stakeworld.io/tcp/30312/wss/p2p/12D3KooWAb5MyC1UJiEQJk4Hg4B2Vi3AJdqSUhTGYUqSnEqCFMFg" --no-hardware-benchmarks
    - + \ No newline at end of file diff --git a/docs/maintain-endpoints/index.html b/docs/maintain-endpoints/index.html index e2e57dc546..63272ed38f 100644 --- a/docs/maintain-endpoints/index.html +++ b/docs/maintain-endpoints/index.html @@ -16,7 +16,7 @@ - + @@ -37,7 +37,7 @@ provide additional services such as higher rate limits, potentially more reliable and scalable service, and additional metrics.

    note

    The list of third party RPC endpoints above for Polkadot and Kusama is directly fetched from Polkdot-JS UI

    - + \ No newline at end of file diff --git a/docs/maintain-errors/index.html b/docs/maintain-errors/index.html index a889277da1..520567deb5 100644 --- a/docs/maintain-errors/index.html +++ b/docs/maintain-errors/index.html @@ -16,7 +16,7 @@ - + @@ -48,7 +48,7 @@ will wait to be executed at the correct place in the nonce sequence OR it will get discarded due to some other error (ex. the validity period expires).*

    Error Table

    The below table is a reference to the errors that exists in Polkadot. It is generated from the runtime's metadata.

    PalletErrorDocumentation
    System (0)
    InvalidSpecName (0)The name of specification does not match between the current runtime and the new runtime.
    SpecVersionNeedsToIncrease (1)The specification version is not allowed to decrease between the current runtime and the new runtime.
    FailedToExtractRuntimeVersion (2)Failed to extract the runtime version from the new runtime. Either calling Core_version or decoding RuntimeVersion failed.
    NonDefaultComposite (3)Suicide called when the account has non-default composite data.
    NonZeroRefCount (4)There is a non-zero reference count preventing the account from being purged.
    Scheduler (1)
    FailedToSchedule (0)Failed to schedule a call
    NotFound (1)Cannot find the scheduled call.
    TargetBlockNumberInPast (2)Given target block number is in the past.
    RescheduleNoChange (3)Reschedule failed because it does not change scheduled time.
    Balances (5)
    VestingBalance (0)Vesting balance too high to send value
    LiquidityRestrictions (1)Account liquidity restrictions prevent withdrawal
    Overflow (2)Got an overflow after adding
    InsufficientBalance (3)Balance too low to send value
    ExistentialDeposit (4)Value too low to create account due to existential deposit
    KeepAlive (5)Transfer/payment would kill account
    ExistingVestingSchedule (6)A vesting schedule already exists for this account
    DeadAccount (7)Beneficiary account must pre-exist
    Authorship (6)
    InvalidUncleParent (0)The uncle parent not in the chain.
    UnclesAlreadySet (1)Uncles already set in the block.
    TooManyUncles (2)Too many uncles.
    GenesisUncle (3)The uncle is genesis.
    TooHighUncle (4)The uncle is too high in chain.
    UncleAlreadyIncluded (5)The uncle is already included.
    OldUncle (6)The uncle isn't recent enough to be included.
    Staking (7)
    NotController (0)Not a controller account.
    NotStash (1)Not a stash account.
    AlreadyBonded (2)Stash is already bonded.
    AlreadyPaired (3)Controller is already paired.
    EmptyTargets (4)Targets cannot be empty.
    DuplicateIndex (5)Duplicate index.
    InvalidSlashIndex (6)Slash record index out of bounds.
    InsufficientValue (7)Can not bond with value less than minimum balance.
    NoMoreChunks (8)Can not schedule more unlock chunks.
    NoUnlockChunk (9)Can not rebond without unlocking chunks.
    FundedTarget (10)Attempting to target a stash that still has funds.
    InvalidEraToReward (11)Invalid era to reward.
    InvalidNumberOfNominations (12)Invalid number of nominations.
    NotSortedAndUnique (13)Items are not sorted and unique.
    AlreadyClaimed (14)Rewards for this era have already been claimed for this validator.
    OffchainElectionEarlySubmission (15)The submitted result is received out of the open window.
    OffchainElectionWeakSubmission (16)The submitted result is not as good as the one stored on chain.
    SnapshotUnavailable (17)The snapshot data of the current window is missing.
    OffchainElectionBogusWinnerCount (18)Incorrect number of winners were presented.
    OffchainElectionBogusWinner (19)One of the submitted winners is not an active candidate on chain (index is out of range in snapshot).
    OffchainElectionBogusCompact (20)Error while building the assignment type from the compact. This can happen if an index is invalid, or if the weights overflow.
    OffchainElectionBogusNominator (21)One of the submitted nominators is not an active nominator on chain.
    OffchainElectionBogusNomination (22)One of the submitted nominators has an edge to which they have not voted on chain.
    OffchainElectionSlashedNomination (23)One of the submitted nominators has an edge which is submitted before the last non-zero slash of the target.
    OffchainElectionBogusSelfVote (24)A self vote must only be originated from a validator to ONLY themselves.
    OffchainElectionBogusEdge (25)The submitted result has unknown edges that are not among the presented winners.
    OffchainElectionBogusScore (26)The claimed score does not match with the one computed from the data.
    OffchainElectionBogusElectionSize (27)The election size is invalid.
    CallNotAllowed (28)The call is not allowed at the given time due to restrictions of election period.
    IncorrectHistoryDepth (29)Incorrect previous history depth input provided.
    IncorrectSlashingSpans (30)Incorrect number of slashing spans provided.
    Session (9)
    InvalidProof (0)Invalid ownership proof.
    NoAssociatedValidatorId (1)No associated validator ID for account.
    DuplicatedKey (2)Registered duplicate key.
    NoKeys (3)No keys are associated with this account.
    Grandpa (11)
    PauseFailed (0)Attempt to signal GRANDPA pause when the authority set isn't live (either paused or already pending pause).
    ResumeFailed (1)Attempt to signal GRANDPA resume when the authority set isn't paused (either live or already pending resume).
    ChangePending (2)Attempt to signal GRANDPA change with one already pending.
    TooSoon (3)Cannot signal forced change so soon after last.
    InvalidKeyOwnershipProof (4)A key ownership proof provided as part of an equivocation report is invalid.
    InvalidEquivocationProof (5)An equivocation proof provided as part of an equivocation report is invalid.
    DuplicateOffenceReport (6)A given equivocation report is valid but already previously reported.
    Democracy (14)
    ValueLow (0)Value too low
    ProposalMissing (1)Proposal does not exist
    BadIndex (2)Unknown index
    AlreadyCanceled (3)Cannot cancel the same proposal twice
    DuplicateProposal (4)Proposal already made
    ProposalBlacklisted (5)Proposal still blacklisted
    NotSimpleMajority (6)Next external proposal not simple majority
    InvalidHash (7)Invalid hash
    NoProposal (8)No external proposal
    AlreadyVetoed (9)Identity may not veto a proposal twice
    NotDelegated (10)Not delegated
    DuplicatePreimage (11)Preimage already noted
    NotImminent (12)Not imminent
    TooEarly (13)Too early
    Imminent (14)Imminent
    PreimageMissing (15)Preimage not found
    ReferendumInvalid (16)Vote given for invalid referendum
    PreimageInvalid (17)Invalid preimage
    NoneWaiting (18)No proposals waiting
    NotLocked (19)The target account does not have a lock.
    NotExpired (20)The lock on the account to be unlocked has not yet expired.
    NotVoter (21)The given account did not vote on the referendum.
    NoPermission (22)The actor has no permission to conduct the action.
    AlreadyDelegating (23)The account is already delegating.
    Overflow (24)An unexpected integer overflow occurred.
    Underflow (25)An unexpected integer underflow occurred.
    InsufficientFunds (26)Too high a balance was provided that the account cannot afford.
    NotDelegating (27)The account is not currently delegating.
    VotesExist (28)The account currently has votes attached to it and the operation cannot succeed until these are removed, either through unvote or reap_vote.
    InstantNotAllowed (29)The instant referendum origin is currently disallowed.
    Nonsense (30)Delegation to oneself makes no sense.
    WrongUpperBound (31)Invalid upper bound.
    MaxVotesReached (32)Maximum number of votes reached.
    InvalidWitness (33)The provided witness data is wrong.
    TooManyProposals (34)Maximum number of proposals reached.
    Council (15)
    NotMember (0)Account is not a member
    DuplicateProposal (1)Duplicate proposals not allowed
    ProposalMissing (2)Proposal must exist
    WrongIndex (3)Mismatched index
    DuplicateVote (4)Duplicate vote ignored
    AlreadyInitialized (5)Members are already initialized!
    TooEarly (6)The close call was made too early, before the end of the voting.
    TooManyProposals (7)There can only be a maximum of MaxProposals active proposals.
    WrongProposalWeight (8)The given weight bound for the proposal was too low.
    WrongProposalLength (9)The given length bound for the proposal was too low.
    TechnicalCommittee (16)
    NotMember (0)Account is not a member
    DuplicateProposal (1)Duplicate proposals not allowed
    ProposalMissing (2)Proposal must exist
    WrongIndex (3)Mismatched index
    DuplicateVote (4)Duplicate vote ignored
    AlreadyInitialized (5)Members are already initialized!
    TooEarly (6)The close call was made too early, before the end of the voting.
    TooManyProposals (7)There can only be a maximum of MaxProposals active proposals.
    WrongProposalWeight (8)The given weight bound for the proposal was too low.
    WrongProposalLength (9)The given length bound for the proposal was too low.
    ElectionsPhragmen (17)
    UnableToVote (0)Cannot vote when no candidates or members exist.
    NoVotes (1)Must vote for at least one candidate.
    TooManyVotes (2)Cannot vote more than candidates.
    MaximumVotesExceeded (3)Cannot vote more than maximum allowed.
    LowBalance (4)Cannot vote with stake less than minimum balance.
    UnableToPayBond (5)Voter can not pay voting bond.
    MustBeVoter (6)Must be a voter.
    ReportSelf (7)Cannot report self.
    DuplicatedCandidate (8)Duplicated candidate submission.
    MemberSubmit (9)Member cannot re-submit candidacy.
    RunnerSubmit (10)Runner cannot re-submit candidacy.
    InsufficientCandidateFunds (11)Candidate does not have enough funds.
    NotMember (12)Not a member.
    InvalidCandidateCount (13)The provided count of number of candidates is incorrect.
    InvalidVoteCount (14)The provided count of number of votes is incorrect.
    InvalidRenouncing (15)The renouncing origin presented a wrong Renouncing parameter.
    InvalidReplacement (16)Prediction regarding replacement after member removal is wrong.
    Treasury (19)
    InsufficientProposersBalance (0)Proposer's balance is too low.
    InvalidIndex (1)No proposal or bounty at that index.
    ReasonTooBig (2)The reason given is just too big.
    AlreadyKnown (3)The tip was already found/started.
    UnknownTip (4)The tip hash is unknown.
    NotFinder (5)The account attempting to retract the tip is not the finder of the tip.
    StillOpen (6)The tip cannot be claimed/closed because there are not enough tippers yet.
    Premature (7)The tip cannot be claimed/closed because it's still in the countdown period.
    UnexpectedStatus (8)The bounty status is unexpected.
    RequireCurator (9)Require bounty curator.
    InvalidValue (10)Invalid bounty value.
    InvalidFee (11)Invalid bounty fee.
    PendingPayout (12)A bounty payout is pending. To cancel the bounty, you must unassign and slash the curator.
    Claims (24)
    InvalidEthereumSignature (0)Invalid Ethereum signature.
    SignerHasNoClaim (1)Ethereum address has no claim.
    SenderHasNoClaim (2)Account ID sending tx has no claim.
    PotUnderflow (3)There's not enough in the pot to pay out some unvested amount. Generally implies a logic error.
    InvalidStatement (4)A needed statement was not included.
    VestedBalanceExists (5)The account already has a vested balance.
    Vesting (25)
    NotVesting (0)The account given is not vesting.
    ExistingVestingSchedule (1)An existing vesting schedule already exists for this account that cannot be clobbered.
    AmountLow (2)Amount being transferred is too low to create a vesting schedule.
    Identity (28)
    TooManySubAccounts (0)Too many subs-accounts.
    NotFound (1)Account isn't found.
    NotNamed (2)Account isn't named.
    EmptyIndex (3)Empty index.
    FeeChanged (4)Fee is changed.
    NoIdentity (5)No identity found.
    StickyJudgement (6)Sticky judgement.
    JudgementGiven (7)Judgement given.
    InvalidJudgement (8)Invalid judgement.
    InvalidIndex (9)The index is invalid.
    InvalidTarget (10)The target is invalid.
    TooManyFields (11)Too many additional fields.
    TooManyRegistrars (12)Maximum amount of registrars reached. Cannot add any more.
    AlreadyClaimed (13)Account ID is already named.
    NotSub (14)Sender is not a sub-account.
    NotOwned (15)Sub-account isn't owned by sender.
    Proxy (29)
    TooMany (0)There are too many proxies registered or too many announcements pending.
    NotFound (1)Proxy registration not found.
    NotProxy (2)Sender is not a proxy of the account to be proxied.
    Unproxyable (3)A call which is incompatible with the proxy type's filter was attempted.
    Duplicate (4)Account is already a proxy.
    NoPermission (5)Call may not be made by proxy because it may escalate its privileges.
    Unannounced (6)Announcement, if made at all, was made too recently.
    Multisig (30)
    MinimumThreshold (0)Threshold must be 2 or greater.
    AlreadyApproved (1)Call is already approved by this signatory.
    NoApprovalsNeeded (2)Call doesn't need any (more) approvals.
    TooFewSignatories (3)There are too few signatories in the list.
    TooManySignatories (4)There are too many signatories in the list.
    SignatoriesOutOfOrder (5)The signatories were provided out of order; they should be ordered.
    SenderInSignatories (6)The sender was contained in the other signatories; it shouldn't be.
    NotFound (7)Multisig operation not found when attempting to cancel.
    NotOwner (8)Only the account that originally created the multisig is able to cancel it.
    NoTimepoint (9)No timepoint was given, yet the multisig operation is already underway.
    WrongTimepoint (10)A different timepoint was given to the multisig operation that is underway.
    UnexpectedTimepoint (11)A timepoint was given, yet no multisig operation is underway.
    WeightTooLow (12)The maximum weight information provided was too low.
    AlreadyStored (13)The data to be stored is already stored.
    - + \ No newline at end of file diff --git a/docs/maintain-guides-async-backing/index.html b/docs/maintain-guides-async-backing/index.html index c989c5aaaa..b3b2b5d362 100644 --- a/docs/maintain-guides-async-backing/index.html +++ b/docs/maintain-guides-async-backing/index.html @@ -16,7 +16,7 @@ - + @@ -88,7 +88,7 @@ Relay block number is kept track of by each parachain in pallet-parachain-system with the storage value LastRelayChainBlockNumber. This value can be obtained and used wherever timing based on block number is needed.

    - + \ No newline at end of file diff --git a/docs/maintain-guides-avoid-slashing/index.html b/docs/maintain-guides-avoid-slashing/index.html index 670c98926f..5c05ade2b5 100644 --- a/docs/maintain-guides-avoid-slashing/index.html +++ b/docs/maintain-guides-avoid-slashing/index.html @@ -16,7 +16,7 @@ - + @@ -44,7 +44,7 @@ obtain pristine binaries or source code and to ensure the security of their node:

    1. Always download either source files or binaries from the official Parity repository
    2. Verify the hash of downloaded files.
    3. Use the W3F secure validator setup or adhere to its principles
    4. Ensure essential security items are checked, use a firewall, manage user access, use SSH certificates
    5. Avoid using your server as a general-purpose system. Hosting a validator on your workstation or one that hosts other services increases the risk of maleficence.

    Examples

    NetworkEraEvent TypeDetailsAction Taken
    Polkadot774Small EquivocationThe validator migrated servers and cloned the keystore folder. The on-chain event can be viewed here.The validator did not submit a request for the slash to be canceled.
    Kusama3329Small EquivocationThe validator operated a test machine with cloned keys; the test machine was online at the same time as the primary, which resulted in a slash. Details can be found here.The validator requested a cancellation of the slash, but the council declined.
    Kusama3995Small EquivocationThe validator noticed several errors, after which the client crashed, and a slash was applied. The validator recorded all events and opened GitHub issues to allow for technical opinions to be shared. Details can be found here.The validator requested to cancel the slash. The council approved the request as they believed the error was not operator related.
    - + \ No newline at end of file diff --git a/docs/maintain-guides-how-to-chill/index.html b/docs/maintain-guides-how-to-chill/index.html index 679efbff08..1dec7039fb 100644 --- a/docs/maintain-guides-how-to-chill/index.html +++ b/docs/maintain-guides-how-to-chill/index.html @@ -16,7 +16,7 @@ - + @@ -66,7 +66,7 @@ Polkadot is set to None eliminating the upper bound on the number of nominators on the network. Due to this, the chillOther extrinsic on Polkadot network has no effect as the chill threshold will never be met.

    - + \ No newline at end of file diff --git a/docs/maintain-guides-how-to-monitor-your-node/index.html b/docs/maintain-guides-how-to-monitor-your-node/index.html index 307815e0a1..668d37e013 100644 --- a/docs/maintain-guides-how-to-monitor-your-node/index.html +++ b/docs/maintain-guides-how-to-monitor-your-node/index.html @@ -16,7 +16,7 @@ - + @@ -80,7 +80,7 @@ here. There are other interesting alerts you may find useful here.

    groups:
    - name: alert_rules
    rules:
    - alert: InstanceDown
    expr: up == 0
    for: 5m
    labels:
    severity: critical
    annotations:
    summary: "Instance [{{ $labels.instance }}] down"
    description: "[{{ $labels.instance }}] of job [{{ $labels.job }}] has been down for more than 1 minute."

    Change the ownership of this file to prometheus instead of root by running:

    sudo chown prometheus:prometheus rules.yml

    To check the rules defined in the "rules.yml" is syntactically correct, run the following command:

    sudo -u prometheus promtool check rules rules.yml

    Finally, restart everything by running:

    sudo systemctl restart prometheus && sudo systemctl restart alertmanager

    Now if one of your target instances down, you will receive an alert on the AlertManager and Gmail like below.

    grafana-am-6

    - + \ No newline at end of file diff --git a/docs/maintain-guides-how-to-stop-validating/index.html b/docs/maintain-guides-how-to-stop-validating/index.html index f932b4e114..bce0d1d140 100644 --- a/docs/maintain-guides-how-to-stop-validating/index.html +++ b/docs/maintain-guides-how-to-stop-validating/index.html @@ -16,7 +16,7 @@ - + @@ -37,7 +37,7 @@ transfer your tokens.

    See Unbonding and Rebonding for more details.

    Unbond your tokens

    Unbonding your tokens can be done through the Network > Staking > Account actions page in PolkadotJS Apps by clicking the corresponding stash account dropdown and selecting "Unbond funds". This can also be done through the staking.unbond() extrinsic with the staking proxy account.

    - + \ No newline at end of file diff --git a/docs/maintain-guides-how-to-systemd/index.html b/docs/maintain-guides-how-to-systemd/index.html index 44867cca39..253ab5c1d9 100644 --- a/docs/maintain-guides-how-to-systemd/index.html +++ b/docs/maintain-guides-how-to-systemd/index.html @@ -16,7 +16,7 @@ - + @@ -29,7 +29,7 @@ not recognize votes that didn't make it to disk, and will then cast conflicting votes. Delaying the restart will allow the network to progress past potentially conflicting votes, at which point other nodes will not accept them.

    To enable this to autostart on bootup run:

    systemctl enable polkadot-validator.service

    Start it manually with:

    systemctl start polkadot-validator.service

    You can check that it's working with:

    systemctl status polkadot-validator.service

    You can tail the logs with journalctl like so:

    journalctl -f -u polkadot-validator
    - + \ No newline at end of file diff --git a/docs/maintain-guides-how-to-upgrade/index.html b/docs/maintain-guides-how-to-upgrade/index.html index bea7377454..d19fe7385e 100644 --- a/docs/maintain-guides-how-to-upgrade/index.html +++ b/docs/maintain-guides-how-to-upgrade/index.html @@ -16,7 +16,7 @@ - + @@ -47,7 +47,7 @@ Validator A.
  • Take note of the Session that this extrinsic was executed in.
  • Again, it is imperative that Validator B is kept running until the current session finishes and two further full sessions have elapsed.

    Once this time has elapsed, Validator A will take over. You can safely stop Validator B.

    NOTE: To verify that the Session has changed, make sure that a block in the new Session is finalized. You should see log messages like the ones below to confirm the change:

    2019-10-28 21:44:13 Applying authority set change scheduled at block #450092
    2019-10-28 21:44:13 Applying GRANDPA set change to new set with 20 authorities
    - + \ No newline at end of file diff --git a/docs/maintain-guides-how-to-validate-kusama/index.html b/docs/maintain-guides-how-to-validate-kusama/index.html index b626457d62..8213c7fd82 100644 --- a/docs/maintain-guides-how-to-validate-kusama/index.html +++ b/docs/maintain-guides-how-to-validate-kusama/index.html @@ -16,7 +16,7 @@ - + @@ -65,7 +65,7 @@ validator payout document.

    Run a Kusama Validator

    Running a validator on the Kusama network is identical to running a Polkadot validator. Check out the Polkadot guide on how to setup a validator.

    Make sure to adjust the Polkadot guide to run a Kusama network validator (the instructions will also be available in the Polkadot Validator guide):

    • When starting the node pass --chain=kusama CLI flag
    - + \ No newline at end of file diff --git a/docs/maintain-guides-how-to-validate-polkadot/index.html b/docs/maintain-guides-how-to-validate-polkadot/index.html index 05d87e48f9..8f9146639e 100644 --- a/docs/maintain-guides-how-to-validate-polkadot/index.html +++ b/docs/maintain-guides-how-to-validate-polkadot/index.html @@ -16,7 +16,7 @@ - + @@ -97,7 +97,7 @@ paritytech/polkadot-sdk repository on GitHub.

    You should generally use the latest X.Y.Z tag. You should either review the output from the "git tag" command or view the Polkadot SDK Github tags to see a list of all the available release versions. You should replace VERSION below with the -latest build (i.e., the highest number).

    note

    If you prefer to use SSH rather than HTTPS, you can replace the first line of the below with

    git clone git@github.com:paritytech/polkadot-sdk.git
    git clone https://github.com/paritytech/polkadot-sdk.git
    cd polkadot-sdk/polkadot

    Run the following command to find the latest version.

    git tag -l | sort -V | grep -v -- '-rc'

    Find the latest version; replace "VERSION" in the command below and run to change your branch.

    git checkout VERSION
    ./scripts/init.sh

    Build native code with the production profile. The following will make sure that the binaries are +latest build (i.e., the highest number).

    note

    If you prefer to use SSH rather than HTTPS, you can replace the first line of the below with

    git clone git@github.com:paritytech/polkadot-sdk.git
    git clone https://github.com/paritytech/polkadot-sdk.git
    cd polkadot-sdk/polkadot

    Run the following command to find the latest version.

    git tag -l | sort -V | grep -v -- '-rc'

    Find the latest version; replace "VERSION" in the command below and run to change your branch.

    git checkout VERSION

    Build native code with the production profile. The following will make sure that the binaries are all in your $PATH.

    cargo install --force --path . --profile production

    This step will take a while (generally 10 - 40 minutes, depending on your hardware).

    Compilation Errors

    If you run into compile errors, you may have to pin the version of Rust compiler to the one that was used to build the release. Check out Rust compiler versions section in the release notes. This can be done by running:

    rustup install nightly-2022-05-18
    rustup target add wasm32-unknown-unknown --toolchain nightly-2022-05-18
    cargo +nightly-2022-05-18 build --release

    You may also need to run the build more than once.

    If you would like to execute the tests, run the following command:

    cargo test --all

    If you are interested in generating keys locally, you can also install subkey from the same @@ -253,8 +253,8 @@ trusted code on the host.

    VPS List

    Beware of the Terms and Conditions and Acceptable Use Policies for each VPS

    provider

    You may be locked out of your account and your server shut down if you come in violation. For instance, Digital Ocean lists "Mining of Cryptocurrencies" under the Network Abuse section of their Acceptable Use Policy and requires -explicit permission to do so. This may extend to other cryptocurrency activity.

    - +explicit permission to do so. This may extend to other cryptocurrency activity.

    + \ No newline at end of file diff --git a/docs/maintain-guides-secure-validator/index.html b/docs/maintain-guides-secure-validator/index.html index 5aa7b1c18d..cea39126f2 100644 --- a/docs/maintain-guides-secure-validator/index.html +++ b/docs/maintain-guides-secure-validator/index.html @@ -16,7 +16,7 @@ - + @@ -64,7 +64,7 @@ hardware. The provisioning of the validator machine should be automated and defined in code. This code should be kept in private version control, reviewed, audited, and tested.

  • Session keys should be generated and provided in a secure way.

  • Polkadot should be started at boot and restarted if stopped for any reason (supervisor process).

  • Polkadot should run as a non-root user.

  • Monitoring

    • There should be an on-call rotation for managing the alerts.

    • There should be a clear protocol with actions to perform for each level of each alert and an escalation policy.

    Resources

    - + \ No newline at end of file diff --git a/docs/maintain-guides-society-kusama/index.html b/docs/maintain-guides-society-kusama/index.html index 230a206239..2f9f9130ab 100644 --- a/docs/maintain-guides-society-kusama/index.html +++ b/docs/maintain-guides-society-kusama/index.html @@ -16,7 +16,7 @@ - + @@ -90,7 +90,7 @@ extrinsic's parameters go to Element 1 ("proposal") -> "value" -> "params" -> Element 2 ("rules") and copy the value corresponding to the key "value". You can use a hex-to-UTF8 converter to then display the text. Note that the text is formatted with Markdown.

    - + \ No newline at end of file diff --git a/docs/maintain-guides-validator-community/index.html b/docs/maintain-guides-validator-community/index.html index 85b6879d95..eedba099b0 100644 --- a/docs/maintain-guides-validator-community/index.html +++ b/docs/maintain-guides-validator-community/index.html @@ -16,7 +16,7 @@ - + @@ -160,7 +160,7 @@ monitoring, observability services, staking dashboards, wallets, command-line utilities, or porting implementations to other languages. Additionally, this may also be eligible to be funded via a Web3 Foundation Grant.

    - + \ No newline at end of file diff --git a/docs/maintain-guides-validator-payout/index.html b/docs/maintain-guides-validator-payout/index.html index 43c4c0f25d..d6119a5646 100644 --- a/docs/maintain-guides-validator-payout/index.html +++ b/docs/maintain-guides-validator-payout/index.html @@ -16,7 +16,7 @@ - + @@ -102,7 +102,7 @@ brackets ([]) next to each validator. Note that since the validator payment is public knowledge, having a low or non-existent validator payment may attract more stake from nominators, since they know they will receive a larger reward.

    Validator Set Size (v): 4
    Validator 1 Stake (v1) [20% commission]: 18 DOT (9 validator, 9 nominator)
    Validator 2 Stake (v2) [40% commission]: 9 DOT (3 validator, 6 nominator)
    Validator 3 Stake (v3) [10% commission]: 8 DOT (4 validator, 4 nominator)
    Validator 4 Stake (v4) [ 0% commission]: 6 DOT (1 validator, 5 nominator)
    Payout (p): 8 DOT

    Payout for each validator (v1 - v4):
    p / v = 8 / 4 = 2 DOT

    v1:
    (0.2 * 2) = 0.4 DOT -> validator payment
    (2 - 0.4) = 1.6 -> shared between all stake
    (9 / 18) * 1.6 = 0.8 -> validator stake share
    (9 / 18) * 1.6 = 0.8 -> nominator stake share
    v1 validator total reward: 0.4 + 0.8 = 1.2 DOT
    v1 nominator reward: 0.8 DOT

    v2:
    (0.4 * 2) = 0.8 DOT -> validator payment
    (2 - 0.8) = 1.2 -> shared between all stake
    (3 / 9) * 1.2 = 0.4 -> validator stake share
    (6 / 9) * 1.2 = 0.8 -> nominator stake share
    v2 validator total reward: 0.8 + 0.4 = 1.2 DOT
    v2 nominator reward: 0.8 DOT

    v3:
    (0.1 * 2) = 0.2 DOT -> validator payment
    (2 - 0.2) = 1.8 -> shared between all stake
    (4 / 8) * 1.8 = 0.9 -> validator stake share
    (4 / 8) * 1.8 = 0.9 -> nominator stake share
    v3 validator total reward: 0.2 + 0.9 DOT = 1.1 DOT
    v3 nominator reward: 0.9 DOT

    v4:
    (0 * 2) = 0 DOT -> validator payment
    (2 - 0) = 2.0 -> shared between all stake
    (1 / 6) * 2 = 0.33 -> validator stake share
    (5 / 6) * 2 = 1.67 -> nominator stake share
    v4 validator total reward: 0 + 0.33 DOT = 0.33 DOT
    v4 nominator reward: 1.67 DOT
    - + \ No newline at end of file diff --git a/docs/maintain-index/index.html b/docs/maintain-index/index.html index 23dc8ecf7b..1e4736f1ab 100644 --- a/docs/maintain-index/index.html +++ b/docs/maintain-index/index.html @@ -16,7 +16,7 @@ - + @@ -26,7 +26,7 @@ information and guides to set up a node and run the network.

    Polkadot's Canary Network Kusama

    For more information about being a Kusama maintainer, see the pages below:

    - + \ No newline at end of file diff --git a/docs/maintain-networks/index.html b/docs/maintain-networks/index.html index 9c871325c1..8226f6c549 100644 --- a/docs/maintain-networks/index.html +++ b/docs/maintain-networks/index.html @@ -16,7 +16,7 @@ - + @@ -51,7 +51,7 @@ the public Telemetry service.

    You can verify that your node is connected by navigating to the correct network on the dashboard and finding the name of your node.

    There is a built-in search function on the nodes page. Simply start typing keystrokes in the main window to make it available.

    - + \ No newline at end of file diff --git a/docs/maintain-polkadot-parameters/index.html b/docs/maintain-polkadot-parameters/index.html index 59f68bf7b3..a434f7c2e5 100644 --- a/docs/maintain-polkadot-parameters/index.html +++ b/docs/maintain-polkadot-parameters/index.html @@ -16,7 +16,7 @@ - + @@ -36,7 +36,7 @@ Plancks make up a DOT.

    The denomination of DOT was changed from 12 decimals of precision at block #1,248,328 in an event known as Denomination Day. See Redenomination for details.

    - + \ No newline at end of file diff --git a/docs/maintain-rpc/index.html b/docs/maintain-rpc/index.html index b068b7bdc6..00eae5544f 100644 --- a/docs/maintain-rpc/index.html +++ b/docs/maintain-rpc/index.html @@ -16,7 +16,7 @@ - + @@ -51,7 +51,7 @@ node. Activate the "Development" toggle and input your node's address - either the domain or the IP address. Remember to prefix with wss://, and if you're using the 443 port, append :443 like so: wss://example.com:443.

    A sync-in-progress chain connected to Polkadot-JS UI

    Now you have a secure remote connect setup for your Substrate node.

    - + \ No newline at end of file diff --git a/docs/maintain-sync/index.html b/docs/maintain-sync/index.html index 9a66f99165..7e51d8136b 100644 --- a/docs/maintain-sync/index.html +++ b/docs/maintain-sync/index.html @@ -16,7 +16,7 @@ - + @@ -87,7 +87,7 @@ on localhost by default. If you would like to connect to your node's services (rpc, and prometheus) you need to ensure that you run you node with the --rpc-external, and --prometheus-external commands.

    docker run -p 9944:9944 -p 9615:9615 parity/polkadot:v0.9.13 --name "calling_home_from_a_docker_container" --rpc-external --prometheus-external
    - + \ No newline at end of file diff --git a/docs/maintain-wss/index.html b/docs/maintain-wss/index.html index 0b65e5aa70..a15f7d88f2 100644 --- a/docs/maintain-wss/index.html +++ b/docs/maintain-wss/index.html @@ -16,7 +16,7 @@ - + @@ -40,7 +40,7 @@ node. Activate the "Development" toggle and input your node's address - either the domain or the IP address. Remember to prefix with wss:// and if you're using the 443 port, append :443, like so: wss://example.com:443.

    A sync-in-progress chain connected to Polkadot-JS UI

    Now you have a secure remote connect setup for your Substrate node.

    - + \ No newline at end of file diff --git a/docs/maintain/maintain-guides-democracy/index.html b/docs/maintain/maintain-guides-democracy/index.html index ae09379765..6d13f4eab7 100644 --- a/docs/maintain/maintain-guides-democracy/index.html +++ b/docs/maintain/maintain-guides-democracy/index.html @@ -16,7 +16,7 @@ - + @@ -154,7 +154,7 @@ pallet, and you will specify the index of the referendum that is being voted, the judgement (i.e. "Aye" for approval or "Nay" for rejection), and the conviction, just like a normal vote.

    For more material on adding and removing Governance proxies, as well as other types, please see the Proxy page.

    - + \ No newline at end of file diff --git a/docs/maintain/maintain-guides-how-to-join-council/index.html b/docs/maintain/maintain-guides-how-to-join-council/index.html index e209870099..cdf268b555 100644 --- a/docs/maintain/maintain-guides-how-to-join-council/index.html +++ b/docs/maintain/maintain-guides-how-to-join-council/index.html @@ -16,7 +16,7 @@ - + @@ -41,7 +41,7 @@ the row "Members".

    council members list

    Now you are able to participate on the council by making motions or voting proposals. To join in on the active discussions, join the Polkadot Direction channel.

    - + \ No newline at end of file diff --git a/docs/maintain/maintain-guides-how-to-vote-councillor/index.html b/docs/maintain/maintain-guides-how-to-vote-councillor/index.html index 3387a44c3b..75fb655a55 100644 --- a/docs/maintain/maintain-guides-how-to-vote-councillor/index.html +++ b/docs/maintain/maintain-guides-how-to-vote-councillor/index.html @@ -16,7 +16,7 @@ - + @@ -44,7 +44,7 @@ Polkadot-JS Apps Dashboard.

    Under the "Council overview" tab, click on "Vote".

    polkadotjs_removeVoter

    Issue the "Unvote all" option.

    When the transaction is included in a block you should have your reserved tokens made liquid again and your vote will no longer be counting for any councillors in the elections starting in the next term.

    - + \ No newline at end of file diff --git a/docs/metadata/index.html b/docs/metadata/index.html index a104bf5d5b..1bf4fed24b 100644 --- a/docs/metadata/index.html +++ b/docs/metadata/index.html @@ -16,7 +16,7 @@ - + @@ -26,7 +26,7 @@ The dropdown below allows you to update the chain selection to visualize. You can search all sub-categories using the provided search field. The information is categorized by the chains Pallets, RPC and Runtime information.

    - + \ No newline at end of file diff --git a/docs/multisig-apps/index.html b/docs/multisig-apps/index.html index 15e4e2e329..6f72baaec9 100644 --- a/docs/multisig-apps/index.html +++ b/docs/multisig-apps/index.html @@ -16,7 +16,7 @@ - + @@ -68,7 +68,7 @@ the Polkadot Blockchain.
  • Whether you're interacting with smart contracts, parachains, or other advanced features, PolkaSafe's MultiSig capabilities ensure every extrinsic is secure and efficient.
  • User-Centric Design: Every feature, from initiating a transaction to diving deep into extrinsics, is designed for clarity and ease.
  • - + \ No newline at end of file diff --git a/docs/parachains-apps/index.html b/docs/parachains-apps/index.html index f4fbc752f7..6956efdac7 100644 --- a/docs/parachains-apps/index.html +++ b/docs/parachains-apps/index.html @@ -16,7 +16,7 @@ - + @@ -95,7 +95,7 @@ tokens (LST) “vTokens”, as well as remote exchange, and swapping of vTokens from any chain. The DApp aims to simplify the cross-chain experience by providing a seamless interface for users to interact with vTokens across different chains natively.

    - + \ No newline at end of file diff --git a/docs/polkadot-direction/index.html b/docs/polkadot-direction/index.html index bbcf7ce7d5..159078ec06 100644 --- a/docs/polkadot-direction/index.html +++ b/docs/polkadot-direction/index.html @@ -16,7 +16,7 @@ - + @@ -137,7 +137,7 @@ decentralizing the network is ensuring experts on which the maintenance of the system relies upon are incentivized and recruited over time by the Polkadot network and not by organizations within the Polkadot ecosystem.
    - + \ No newline at end of file diff --git a/docs/polkadot-v1/index.html b/docs/polkadot-v1/index.html index 0ce48d4bea..bdd9b89207 100644 --- a/docs/polkadot-v1/index.html +++ b/docs/polkadot-v1/index.html @@ -16,7 +16,7 @@ - + @@ -106,7 +106,7 @@ could become.

    Polkadot is perfecting its implementation through RFCs to continue being a decentralized, secure, ubiquitous computing engine to power the next generation of Web3 applications.

    - + \ No newline at end of file diff --git a/docs/polkadot-vault/index.html b/docs/polkadot-vault/index.html index fbe5957bd0..3df4ccc6af 100644 --- a/docs/polkadot-vault/index.html +++ b/docs/polkadot-vault/index.html @@ -16,7 +16,7 @@ - + @@ -82,7 +82,7 @@ this article for detailed instructions. If you choose this approach, you should trust the provider you choose.


    Polkadot-JS Guides

    If you are an advanced user, see the Polkadot-JS guides about Polkadot Vault.

    - + \ No newline at end of file diff --git a/docs/polkadot-vision-index/index.html b/docs/polkadot-vision-index/index.html index 66aa681b99..dc3293b9d9 100644 --- a/docs/polkadot-vision-index/index.html +++ b/docs/polkadot-vision-index/index.html @@ -16,13 +16,13 @@ - + - + \ No newline at end of file diff --git a/docs/polkadotjs-ui/index.html b/docs/polkadotjs-ui/index.html index 727c625a35..264b18748a 100644 --- a/docs/polkadotjs-ui/index.html +++ b/docs/polkadotjs-ui/index.html @@ -16,7 +16,7 @@ - + @@ -71,7 +71,7 @@ nomination pool settings (nomination and roles) and use non-transfer proxies, destroy assets, and much more.

    Beginner's Guide to Polkadot-JS

    - + \ No newline at end of file diff --git a/docs/polkadotjs/index.html b/docs/polkadotjs/index.html index afffe8569f..247b9568d9 100644 --- a/docs/polkadotjs/index.html +++ b/docs/polkadotjs/index.html @@ -16,7 +16,7 @@ - + @@ -94,7 +94,7 @@ of spam prevention, whereas signed transactions are issued by the originator account of a transaction which contains a signature of that account, which will be subject to a fee to include it on the chain.

    - + \ No newline at end of file diff --git a/docs/programs-index/index.html b/docs/programs-index/index.html index 979800f062..0fb7cb84b2 100644 --- a/docs/programs-index/index.html +++ b/docs/programs-index/index.html @@ -16,13 +16,13 @@ - +
    - + \ No newline at end of file diff --git a/docs/research/index.html b/docs/research/index.html index 7c8d5f196e..54d077974c 100644 --- a/docs/research/index.html +++ b/docs/research/index.html @@ -16,7 +16,7 @@ - + @@ -51,7 +51,7 @@ – Gives an outline of Nominated Proof of Stake in Polkadot. Author: Alfonzo Cevallos
  • Messaging Protocol Workshop Outcomes – An initiative to design and implement a privacy-preserving communication system for decentralized applications.
  • - + \ No newline at end of file diff --git a/docs/staking-apps/index.html b/docs/staking-apps/index.html index b9cb3604cd..c9c4e28b73 100644 --- a/docs/staking-apps/index.html +++ b/docs/staking-apps/index.html @@ -16,7 +16,7 @@ - + @@ -48,7 +48,7 @@ and stake on multiple networks in the Polkadot, Kusama and Polkadot SDK (Substrate) ecosystems.

    The Web Dashboard features an Earning tab which allows users to stake DOT easily via native nomination pools, as well as in liquid staking and lending protocols, without having to manage multiple applications with different interfaces and experiences.

    - + \ No newline at end of file diff --git a/docs/staking-dashboard/index.html b/docs/staking-dashboard/index.html index a2623b5a36..bb9b990eab 100644 --- a/docs/staking-dashboard/index.html +++ b/docs/staking-dashboard/index.html @@ -16,7 +16,7 @@ - + @@ -157,7 +157,7 @@ the official Polkadot support website.

    Network

    Under Network, you can connect to either Polkadot, Kusama, or Westend through public RPC nodes or light clients for a true Web3 experience. For more information about light clients, see this page.

    - + \ No newline at end of file diff --git a/docs/start-building/index.html b/docs/start-building/index.html index 930360e096..b22ca14822 100644 --- a/docs/start-building/index.html +++ b/docs/start-building/index.html @@ -16,7 +16,7 @@ - + @@ -49,7 +49,7 @@ this Medium article and the original Polkadot Forum post.

    - + \ No newline at end of file diff --git a/docs/stay-safe-index/index.html b/docs/stay-safe-index/index.html index 777a2e67e4..9386a909b3 100644 --- a/docs/stay-safe-index/index.html +++ b/docs/stay-safe-index/index.html @@ -16,13 +16,13 @@ - + - + \ No newline at end of file diff --git a/docs/thousand-contributors/index.html b/docs/thousand-contributors/index.html index ce1662077b..a5d3fe3eaa 100644 --- a/docs/thousand-contributors/index.html +++ b/docs/thousand-contributors/index.html @@ -16,7 +16,7 @@ - + @@ -32,7 +32,7 @@ the account shared with us.

    Submission reviews

    The review process follows the present pipeline in the 1KC public GitHub project.

    Learn more about the program and its components on the official 1KC repository

    - + \ No newline at end of file diff --git a/docs/thousand-validators/index.html b/docs/thousand-validators/index.html index 9bb1b4bae4..ad19b73a32 100644 --- a/docs/thousand-validators/index.html +++ b/docs/thousand-validators/index.html @@ -16,7 +16,7 @@ - + @@ -81,7 +81,7 @@ things time to resolve; if they don't, leave a message in the dedicated matrix room or open an issue on GitHub.
  • The 1000 validators website is not up to date? See these resources for more up-to-date information.
  • Resources

    To extract and display the 1KV Programme scores there are various tools listed below.

    ResourceGithub sourceInfo
    Main 1KV sitegithubMain site and 1KV backend.
    SubVT telegram bot for polkadot and kusamagithubTelegram bot with overviews and alerts for various polkadot and kusama related events, including 1KV events.
    SubVT ios and android appgithubSubVT app version for mobile phones.
    Validator earnings overviewgithubOverview of validators' earnings.
    Math Crypto's Insightsgithub1KV-oriented scoring overview of Kusama and Polkadot.
    One-T for polkadot and kusamagithubA performance report bot for the Polkadot and Kusama network with special focus on the 1KV programme.
    One-T parachains overviewgithubOne-T's parachain overview.
    Metaspan's 1KV overviewgithubOverview of 1KV programme, including the newly introduced endpoints, see here for available endpoints.
    Decentradot's 1KV overviewgithubOverview of the 1KV programme, including the newly introduced endpoints.
    Hirish 1KV overviewgithub?Overview of the 1KV Programme.
    - + \ No newline at end of file diff --git a/docs/transaction-attacks/index.html b/docs/transaction-attacks/index.html index ea27987d28..fd97783da0 100644 --- a/docs/transaction-attacks/index.html +++ b/docs/transaction-attacks/index.html @@ -16,7 +16,7 @@ - + @@ -63,7 +63,7 @@ transfer will fail).

    Defense against Attacks

    danger

    If you can't verify the transaction or you suspect you are signing something different than what you intended, don't sign it!

    To avoid being victim of an attack:

    • Use only trusted extensions, sites and software in general.
    • Use cold storage options (Ledger, Signer) and verify them. Trust what these devices tell you over what is shown in the app or the browser extension.
    • Update Signer metadata only from trusted sources (or do it yourself).
    • Accept metadata updates for the extension only from trusted apps.
    - + \ No newline at end of file diff --git a/docs/wallets-and-extensions/index.html b/docs/wallets-and-extensions/index.html index f705a33a19..63df073306 100644 --- a/docs/wallets-and-extensions/index.html +++ b/docs/wallets-and-extensions/index.html @@ -16,7 +16,7 @@ - + @@ -97,7 +97,7 @@ balance changes, view your total balance in multiple fiat currencies, secured by your personal Telegram cloud and manual backups.

    Use Telenova on any of your devices — be it mobile or desktop — within the same Telegram account, and start exploring the Polkadot ecosystem today!

    - + \ No newline at end of file diff --git a/docs/wallets-index/index.html b/docs/wallets-index/index.html index 984d1dce7a..b9a5d11671 100644 --- a/docs/wallets-index/index.html +++ b/docs/wallets-index/index.html @@ -16,13 +16,13 @@ - + - + \ No newline at end of file diff --git a/docs/web3-and-polkadot/index.html b/docs/web3-and-polkadot/index.html index 5122999791..a8765de38c 100644 --- a/docs/web3-and-polkadot/index.html +++ b/docs/web3-and-polkadot/index.html @@ -16,7 +16,7 @@ - + @@ -152,7 +152,7 @@ all blockchains attached to it. For more information, see the Polkadot 1.0 page and the section about XCM and Accords in Polkadot Direction page.

    - + \ No newline at end of file diff --git a/index.html b/index.html index 303cbf2771..2239bdc449 100644 --- a/index.html +++ b/index.html @@ -16,13 +16,13 @@ - +

    Kusama is an early release of Polkadot: a scalable, multichain network for radical innovation. Kusama serves as a proving ground that allows teams and developers to build and deploy a parachain, and experiment with Polkadot’s governance and NPoS functionality in a real environment.

    Join the chaos.

    Become a Nominator

    Help maintain the network by participating as a nominator. Nomination is the process of staking your tokens behind a validator to support and secure the network. As a result, nominators are rewarded from the block production rewards that their nominatations are entitled to.

    Become a Validator

    The minimum requirement for staking as a validator on Kusama is much lower than it is expected for Polkadot. There are also programs in place such as Thousand Validators to help community validators rise the ranks.


    Deploy Parachains

    Kusama Parachains are live. Chaos has been welcomed and continues with no promises. The path of Kusama deployment is paving the way to Polkadot's parachains as the technology becomes proven.

    Explore the Politics

    Learn about Kusama's on-chain governance. Campaign as a councillor or vote for new runtime proposals using Democracy.


    Learn about Kusama's Cousin, Polkadot

    Kusama is Polkadot’s canary network. Polkadot development is on track to deliver the most robust platform for security, scalability and innovation. With the help of Kusama, Polkadot will become a scalable, interoperable & secure network protocol for web 3.0.

    Help Improve this Wiki

    This Wiki was started by and is maintained by Web3 Foundation. It is an open-source project and aims to be the most extensive resource of knowledge on Kusama and the Kusama ecosystem.


    - + \ No newline at end of file diff --git a/search/index.html b/search/index.html index 4da3827fa9..82d4508eaf 100644 --- a/search/index.html +++ b/search/index.html @@ -16,13 +16,13 @@ - +

    Search the documentation

    - + \ No newline at end of file