diff --git a/404.html b/404.html index 641187bb8cad..f1f685a3a56e 100644 --- a/404.html +++ b/404.html @@ -19,13 +19,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/967fa6d4.619df153.js b/assets/js/967fa6d4.619df153.js deleted file mode 100644 index 24076636cc5e..000000000000 --- a/assets/js/967fa6d4.619df153.js +++ /dev/null @@ -1 +0,0 @@ -(self.webpackChunk=self.webpackChunk||[]).push([[2581],{35703:(t,e,a)=>{"use strict";a.d(e,{Z:()=>n});var i=a(67294);const n=function(t){var e,a=t.message,n=(0,i.useState)(!0),o=n[0],s=n[1];return i.createElement(i.Fragment,null,o&&i.createElement("div",{className:"message-box"},i.createElement("button",{className:"close-button",onClick:function(){s(!1)}},"\u2716 "),i.createElement("div",{className:"message-content",dangerouslySetInnerHTML:{__html:(e=a,e.replace(/\[(.*?)\]\((.*?)\)/g,'$1'))}})))}},47940:(t,e,a)=>{"use strict";a.d(e,{Z:()=>d});var i=a(74165),n=a(15861),o=a(67294),s=a(87152),r=a(18509),l=a(67425);function c(t,e,a){return u.apply(this,arguments)}function u(){return(u=(0,n.Z)((0,i.Z)().mark((function t(e,a,n){var o,l,c,u,p;return(0,i.Z)().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:o=void 0,l=void 0,t.t0=e,t.next="polkadot"===t.t0?5:"kusama"===t.t0?7:"statemine"===t.t0?9:"statemint"===t.t0?11:13;break;case 5:return o="wss://rpc.polkadot.io",t.abrupt("break",14);case 7:return o="wss://kusama-rpc.polkadot.io/",t.abrupt("break",14);case 9:return o="wss://statemine-rpc.polkadot.io/",t.abrupt("break",14);case 11:return o="wss://statemint-rpc.polkadot.io/",t.abrupt("break",14);case 13:console.log("Unknown socket url provided, no connection made.");case 14:if(void 0!==o){t.next=18;break}return t.abrupt("return");case 18:return c=new s.U(o),t.next=21,r.G.create({provider:c});case 21:u=t.sent,(p=a.split(".")).forEach((function(t){t in u&&(u=u[t])})),t.t1=p[0],t.next="consts"===t.t1?27:"query"===t.t1?29:34;break;case 27:return l=u.toString(),t.abrupt("break",35);case 29:return t.next=31,u();case 31:return l=(l=t.sent).toString(),t.abrupt("break",35);case 34:console.log("Unknown path prefix ("+p[0]+") in "+a);case 35:return t.abrupt("return",l);case 36:case"end":return t.stop()}}),t)})))).apply(this,arguments)}function p(t,e,a,i){switch(e){case"humanReadable":(0,l.HumanReadable)(t,a,i);break;case"precise":(0,l.Precise)(t,a,i);break;case"blocksToDays":(0,l.BlocksToDays)(t,i);break;case"erasToDays":(0,l.ErasToDays)(t,i,a);break;case"percentage":(0,l.Percentage)(t,i);break;case"permillToPercent":(0,l.PermillToPercent)(t,i);break;case"arrayLength":(0,l.ArrayLength)(t,i);break;default:return void console.log("Ignoring unknown filter type")}}const d=function(t){var e=t.network,a=t.path,s=t.defaultValue,r=t.filter,l=void 0===r?void 0:r,u=(0,o.useState)(""),d=u[0],h=u[1];return e=e.toLowerCase(),(0,o.useEffect)((function(){void 0!==l?p(s.toString(),l,e,h):h(s.toString());var t=void 0;switch(e){case"polkadot":t="wss://rpc.polkadot.io";break;case"kusama":t="wss://kusama-rpc.polkadot.io/";break;case"statemine":t="wss://kusama-asset-hub-rpc.polkadot.io/";break;case"statemint":t="wss://polkadot-asset-hub-rpc.polkadot.io/";break;case"kusama-people":t="wss://kusama-people-rpc.polkadot.io";break;default:console.log("Unknown network provided, "+e)}if(void 0===t)console.log("Failed to connect to a valid websocket, applying default");else{var o=function(){var t=(0,n.Z)((0,i.Z)().mark((function t(){var n;return(0,i.Z)().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,c(e,a,h);case 2:if(void 0!==(n=t.sent)){t.next=7;break}return t.abrupt("return");case 7:void 0!==l?p(n,l,e,h):h(n);case 8:case"end":return t.stop()}}),t)})));return function(){return t.apply(this,arguments)}}();try{o()}catch(r){console.log(r)}}}),[]),d}},67425:t=>{var e="polkadot",a="kusama",i="statemine",n="statemint",o={polkadot:{precision:1e10,symbol:"DOT"},kusama:{precision:1e12,symbol:"KSM"},statemint:{precision:1e10,symbol:"DOT"},statemine:{precision:1e12,symbol:"KSM"}};t.exports={HumanReadable:function(t,s,r){var l=void 0;if(s===e||s===n)l=3;else{if(s!==a&&s!==i)return void console.log("Unknown network type found when attempting to apply 'Human Readable' filter");l=6}t=parseFloat(t),r((t=Number.isInteger(t/o[s].precision)?t/o[s].precision+" "+o[s].symbol:(t/o[s].precision).toFixed(l)+" "+o[s].symbol).toString())},Precise:function(t,e,a){a(t=(t=parseFloat(t))/o[e].precision+" "+o[e].symbol)},BlocksToDays:function(t,e){e((t=6*t/86400).toString())},ErasToDays:function(t,o,s){var r=void 0;if(s===e||s===n)r=1;else{if(s!==a&&s!==i)return void console.log("Unknown network type found when attempting to apply 'Human Readable' filter");r=4}o((t/=r).toString())},Percentage:function(t,e){e((t/=1e7).toString())},PermillToPercent:function(t,e){e((t/=1e4).toString())},ArrayLength:function(t,e){e((t=t.split(",").length).toString())}}},91430:(t,e,a)=>{"use strict";a.r(e),a.d(e,{assets:()=>d,contentTitle:()=>u,default:()=>k,frontMatter:()=>c,metadata:()=>p,toc:()=>h});var i=a(87462),n=a(63366),o=(a(67294),a(3905)),s=a(47940),r=a(35703),l=["components"],c={id:"learn-guides-accounts-multisig",title:"Polkadot-JS Guides about Multi-signature Accounts",sidebar_label:"Multisig Guides",description:"Polkadot-JS Guides about Multi-signature Accounts",keyword:["guides","polkadot-js","accounts","multisig","multi-signature"],slug:"../learn-guides-accounts-multisig"},u=void 0,p={unversionedId:"learn/learn-guides-accounts-multisig",id:"learn/learn-guides-accounts-multisig",title:"Polkadot-JS Guides about Multi-signature Accounts",description:"Polkadot-JS Guides about Multi-signature Accounts",source:"@site/../docs/learn/learn-guides-accounts-multisig.md",sourceDirName:"learn",slug:"/learn-guides-accounts-multisig",permalink:"/docs/learn-guides-accounts-multisig",draft:!1,editUrl:"https://github.com/w3f/polkadot-wiki/edit/master/docs/learn/learn-guides-accounts-multisig.md",tags:[],version:"current",lastUpdatedBy:"Filippo",lastUpdatedAt:1714545713,formattedLastUpdatedAt:"May 1, 2024",frontMatter:{id:"learn-guides-accounts-multisig",title:"Polkadot-JS Guides about Multi-signature Accounts",sidebar_label:"Multisig Guides",description:"Polkadot-JS Guides about Multi-signature Accounts",keyword:["guides","polkadot-js","accounts","multisig","multi-signature"],slug:"../learn-guides-accounts-multisig"},sidebar:"docs",previous:{title:"Account Guides",permalink:"/docs/learn-guides-accounts"},next:{title:"Proxy Guides",permalink:"/docs/learn-guides-accounts-proxy"}},d={},h=[{value:"Creating a Multisig Account",id:"creating-a-multisig-account",level:2},{value:"Multisig Transactions with Accounts Tab",id:"multisig-transactions-with-accounts-tab",level:2},{value:"Multisig Transactions with Extrinsic Tab",id:"multisig-transactions-with-extrinsic-tab",level:2},{value:"Multisig Call Deposit",id:"multisig-call-deposit",level:3},{value:"Example using Multisig Accounts",id:"example-using-multisig-accounts",level:3},{value:"Decoding Multisig Call Data",id:"decoding-multisig-call-data",level:2}],m={toc:h},g="wrapper";function k(t){var e=t.components,c=(0,n.Z)(t,l);return(0,o.kt)(g,(0,i.Z)({},m,c,{components:e,mdxType:"MDXLayout"}),(0,o.kt)(r.Z,{message:"Polkadot-JS is for developers and power users only. If you need help using the\n[Polkadot-JS UI](/docs/polkadotjs-ui), you can contact the\n[Polkadot Support Team](https://support.polkadot.network/support/home). For more user-friendly tools\nsee the [wallets](./wallets-index), [apps](./apps-index) and [dashboard](./dashboards-index) pages.",mdxType:"MessageBox"}),(0,o.kt)("h2",{id:"creating-a-multisig-account"},"Creating a Multisig Account"),(0,o.kt)("p",null,'Check the "How to create a multisig account" section on\n',(0,o.kt)("a",{parentName:"p",href:"https://support.polkadot.network/support/solutions/articles/65000181826-how-to-create-and-use-a-multisig-account"},"this support page"),".\nWe recommend trying out the tutorial on\n",(0,o.kt)("a",{parentName:"p",href:"/docs/maintain-networks#westend-test-network"},"Westend network")," - Polkadot's testnet."),(0,o.kt)("h2",{id:"multisig-transactions-with-accounts-tab"},"Multisig Transactions with Accounts Tab"),(0,o.kt)("admonition",{title:"Walkthrough Video Tutorial",type:"info"},(0,o.kt)("p",{parentName:"admonition"},"See ",(0,o.kt)("a",{parentName:"p",href:"https://www.youtube.com/watch?v=-cPiKMslZqI"},"this video tutorial")," to learn how to transact with\na multisig account using the Accounts Tab in the\n",(0,o.kt)("a",{parentName:"p",href:"https://polkadot.js.org/apps/#/accounts"},"Polkadot-JS UI"),".")),(0,o.kt)("p",null,"You can create a multisig account directly on the Accounts Tab of the\n",(0,o.kt)("a",{parentName:"p",href:"https://polkadot.js.org/apps/#/accounts"},"Polkadot-JS UI"),", and use this account to send funds. See\n",(0,o.kt)("a",{parentName:"p",href:"https://support.polkadot.network/support/solutions/articles/65000181826-how-to-create-and-use-a-multisig-account"},"this support article"),"\nfor more information."),(0,o.kt)("h2",{id:"multisig-transactions-with-extrinsic-tab"},"Multisig Transactions with Extrinsic Tab"),(0,o.kt)("p",null,"There are three types of actions you can take with a multisig account:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"Executing a call ",(0,o.kt)("inlineCode",{parentName:"li"},"asMulti"),". This is used to begin or end a multisig transaction."),(0,o.kt)("li",{parentName:"ul"},"Approving a call ",(0,o.kt)("inlineCode",{parentName:"li"},"approveAsMulti"),". This is used to approve an extrinsic and pass-on to the next\nsignatory (see ",(0,o.kt)("a",{parentName:"li",href:"#example-using-multi-signature-accounts"},"example below")," for more information)."),(0,o.kt)("li",{parentName:"ul"},"Cancelling a call ",(0,o.kt)("inlineCode",{parentName:"li"},"cancelAsMulti"),".")),(0,o.kt)("admonition",{type:"info"},(0,o.kt)("p",{parentName:"admonition"},"Check out ",(0,o.kt)("a",{parentName:"p",href:"https://polkadot.js.org/docs/substrate/extrinsics#multisig"},"this page")," for more\ninformation about the actions you can take with a multi-signature account.")),(0,o.kt)("p",null,"In scenarios where only a single approval is needed, a convenience method ",(0,o.kt)("inlineCode",{parentName:"p"},"as_multi_threshold_1"),"\nshould be used. This function takes only the other signatories and the raw call as arguments. Note\nthat the Polkadot-JS UI does not have integration for this call because it is not possible to create\nmultisig accounts with ",(0,o.kt)("inlineCode",{parentName:"p"},"threshold=1"),". If you want to create a multisig with threshold 1, you can use\n",(0,o.kt)("a",{parentName:"p",href:"https://github.com/paritytech/txwrapper-core"},"txwrapper-core"),", which is developed and supported by\nParity Technologies. There is a detailed\n",(0,o.kt)("a",{parentName:"p",href:"https://github.com/paritytech/txwrapper-core/tree/main/packages/txwrapper-examples/multisig"},"multisig example"),"\nthat you can try out and change to see how it works."),(0,o.kt)("p",null,"However, in anything but the simple one approval case, you will likely need more than one of the\nsignatories to approve the call before finally executing it."),(0,o.kt)("h3",{id:"multisig-call-deposit"},"Multisig Call Deposit"),(0,o.kt)("p",null,"When you create a new multi-sig call, you will need to place a\nDOT deposit. The deposit stays locked until the\ncall is executed. This deposit is to establish an economic cost on the storage space that the\nmultisig call takes up in the chain state and discourage users from creating multisig calls that\nnever get executed. The deposit will be reserved in the call initiator's account."),(0,o.kt)("p",null,"The deposit is dependent on the ",(0,o.kt)("inlineCode",{parentName:"p"},"threshold")," parameter and is calculated as follows:"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre"},"Deposit = depositBase + threshold * depositFactor\n")),(0,o.kt)("p",null,"Where ",(0,o.kt)("inlineCode",{parentName:"p"},"depositBase")," and ",(0,o.kt)("inlineCode",{parentName:"p"},"depositFactor")," are chain constants (in\nDOT units) set in the runtime code. Currently,\nthe deposit base equals\n",(0,o.kt)(s.Z,{network:"polkadot",path:"consts.multisig.depositBase",defaultValue:20088e7,filter:"humanReadable",mdxType:"RPC"}),"\n","\nand the deposit factor equals\n",(0,o.kt)(s.Z,{network:"polkadot",path:"consts.multisig.depositFactor",defaultValue:32e7,filter:"humanReadable",mdxType:"RPC"}),".\n",""),(0,o.kt)("p",null,"The other signatory accounts should have enough funds to pay for the transaction fees associated\nwith approving the multisig call. The deposit is for the call; that is, other signatories will not\nneed to place additional deposits. Once the multisig call is executed or rejected, the deposit is\nreleased on the account that initiated the call."),(0,o.kt)("h3",{id:"example-using-multisig-accounts"},"Example using Multisig Accounts"),(0,o.kt)("admonition",{title:"Walk-through video tutorial",type:"info"},(0,o.kt)("p",{parentName:"admonition"},"See ",(0,o.kt)("a",{parentName:"p",href:"https://www.youtube.com/watch?v=T0vIuJcTJeQ"},"this video tutorial")," to learn how to transact with\na multisig account using the Extrinsic Tab in the\n",(0,o.kt)("a",{parentName:"p",href:"https://polkadot.js.org/apps/#/explorer"},"Polkadot-JS UI"),".")),(0,o.kt)("p",null,(0,o.kt)("img",{alt:"multisig diagram",src:a(706).Z,width:"1920",height:"800"})),(0,o.kt)("p",null,"Let's consider an example of a multisig on Polkadot with a threshold of 2 and 3 signers: Charlie,\nDan, and Eleanor. First, Charlie will create the call on-chain by calling the ",(0,o.kt)("inlineCode",{parentName:"p"},"multisig.asMulti"),"\nextrinsic with the raw call, in this case, a balance transfer (",(0,o.kt)("inlineCode",{parentName:"p"},"balances.transferKeepAlive"),"\nextrinsic) from multisig CDE to Frank's account. When doing this, Charlie will have to deposit\n",(0,o.kt)("inlineCode",{parentName:"p"},"DepositBase + (2 * DepositFactor) = 20.152 DOT")," while he waits for either Dan or Eleanor also to\napprove the balance transfer call using the ",(0,o.kt)("inlineCode",{parentName:"p"},"multisig.approveAsMulti")," or the ",(0,o.kt)("inlineCode",{parentName:"p"},"multisig.asMulti"),"\nextrinsics."),(0,o.kt)("p",null,"If Dan submits the ",(0,o.kt)("inlineCode",{parentName:"p"},"multisig.approveAsMulti")," extrinsic, he approves Charlie's call but he passes on\nthe final approval to Eleanor. So, although the multisig has threshold 2, in this case all 3/3\nsignatories need to participate in the transaction approval. Eleanor will need to submit a\n",(0,o.kt)("inlineCode",{parentName:"p"},"multisig.asMulti")," or ",(0,o.kt)("inlineCode",{parentName:"p"},"multisig.approveAsMulti")," extrinsic to transfer funds from CDE to Frank."),(0,o.kt)("p",null,"Alternatively, Dan or Eleanor can just submit a ",(0,o.kt)("inlineCode",{parentName:"p"},"multisig.asMulti")," extrinsic after Charlie to\ntransfer the funds. In this case, 2/3 signatories will participate in the transaction approval. The\naccounts approving Charlie's call will not need to place the deposit, and Charlie will receive his\ndeposit back once the transfer is successful or canceled. To cancel the transaction, Dan or Eleanor\ncan use the ",(0,o.kt)("inlineCode",{parentName:"p"},"multisig.cancelAsMulti")," extrinsic."),(0,o.kt)("p",null,"Note that multisigs are ",(0,o.kt)("strong",{parentName:"p"},"deterministic"),", which means that multisig addresses are generated from\nthe addresses of signers and the threshold of the multisig wallet. No matter the order of the\nsignatories' accounts, the multisig will always have the same address because accounts' addresses\nare sorted in ascending order."),(0,o.kt)("admonition",{title:"Addresses that are provided to the multisig wallet are sorted",type:"note"},(0,o.kt)("p",{parentName:"admonition"},"Public keys of signers' wallets are compared byte-for-byte and sorted ascending before being used to\ngenerate the multisig address. For example, consider the scenario with three addresses, A, B, and C,\nstarting with ",(0,o.kt)("inlineCode",{parentName:"p"},"5FUGT"),", ",(0,o.kt)("inlineCode",{parentName:"p"},"5HMfS"),", and ",(0,o.kt)("inlineCode",{parentName:"p"},"5GhKJ"),". If we build the ABC multisig with the accounts in that\nspecific order (i.e. first A, then B, and C), the real order of the accounts in the multisig will be\nACB. If, in the Extrinsic tab, we initiate a multisig call with C, the order of the other\nsignatories will be first A, then B. If we put first B, then A, the transaction will fail.")),(0,o.kt)("p",null,"This has some implications when using the Extrinsics tab on the\n",(0,o.kt)("a",{parentName:"p",href:"https://polkadot.js.org/apps/#/accounts"},"Polkadot-JS UI")," to perform multisig transactions. If the\norder of the ",(0,o.kt)("em",{parentName:"p"},"other signatories")," is wrong, the transaction will fail. This does not happen if the\nmultisig is executed directly from the Accounts tab (recommended). The Polkadot-JS UI supports\nmultisig accounts, as documented on the ",(0,o.kt)("a",{parentName:"p",href:"/docs/learn-account-multisig"},"Account Generation page"),". You\ncan see our video tutorials for more information about creating multisig accounts and transacting\nwith them using both the ",(0,o.kt)("a",{parentName:"p",href:"https://www.youtube.com/watch?v=-cPiKMslZqI"},"Accounts Tab")," and the\n",(0,o.kt)("a",{parentName:"p",href:"https://www.youtube.com/watch?v=T0vIuJcTJeQ"},"Extrinsic Tab")," in the Polkadot-JS UI."),(0,o.kt)("h2",{id:"decoding-multisig-call-data"},"Decoding Multisig Call Data"),(0,o.kt)("admonition",{type:"info"},(0,o.kt)("p",{parentName:"admonition"},"Before signing a transaction, it is important to know the exact specifics of what is being signed.\nCheck the\n",(0,o.kt)("a",{parentName:"p",href:"https://support.polkadot.network/support/solutions/articles/65000181826-how-to-create-and-use-a-multisig-account"},'"How to use a multisig account"'),"\nin the support docs on how to decode the multisig call data.")))}k.isMDXComponent=!0},706:(t,e,a)=>{"use strict";a.d(e,{Z:()=>i});const i=a.p+"assets/images/multisig-diagram-90327330a3e865703a0ab1a1cc1eee47.png"},46601:()=>{}}]); \ No newline at end of file diff --git a/assets/js/967fa6d4.cf5d8ad0.js b/assets/js/967fa6d4.cf5d8ad0.js new file mode 100644 index 000000000000..b3a4ec04b289 --- /dev/null +++ b/assets/js/967fa6d4.cf5d8ad0.js @@ -0,0 +1 @@ +(self.webpackChunk=self.webpackChunk||[]).push([[2581],{35703:(t,e,a)=>{"use strict";a.d(e,{Z:()=>n});var i=a(67294);const n=function(t){var e,a=t.message,n=(0,i.useState)(!0),o=n[0],s=n[1];return i.createElement(i.Fragment,null,o&&i.createElement("div",{className:"message-box"},i.createElement("button",{className:"close-button",onClick:function(){s(!1)}},"\u2716 "),i.createElement("div",{className:"message-content",dangerouslySetInnerHTML:{__html:(e=a,e.replace(/\[(.*?)\]\((.*?)\)/g,'$1'))}})))}},47940:(t,e,a)=>{"use strict";a.d(e,{Z:()=>d});var i=a(74165),n=a(15861),o=a(67294),s=a(87152),r=a(18509),l=a(67425);function c(t,e,a){return u.apply(this,arguments)}function u(){return(u=(0,n.Z)((0,i.Z)().mark((function t(e,a,n){var o,l,c,u,p;return(0,i.Z)().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:o=void 0,l=void 0,t.t0=e,t.next="polkadot"===t.t0?5:"kusama"===t.t0?7:"statemine"===t.t0?9:"statemint"===t.t0?11:13;break;case 5:return o="wss://rpc.polkadot.io",t.abrupt("break",14);case 7:return o="wss://kusama-rpc.polkadot.io/",t.abrupt("break",14);case 9:return o="wss://statemine-rpc.polkadot.io/",t.abrupt("break",14);case 11:return o="wss://statemint-rpc.polkadot.io/",t.abrupt("break",14);case 13:console.log("Unknown socket url provided, no connection made.");case 14:if(void 0!==o){t.next=18;break}return t.abrupt("return");case 18:return c=new s.U(o),t.next=21,r.G.create({provider:c});case 21:u=t.sent,(p=a.split(".")).forEach((function(t){t in u&&(u=u[t])})),t.t1=p[0],t.next="consts"===t.t1?27:"query"===t.t1?29:34;break;case 27:return l=u.toString(),t.abrupt("break",35);case 29:return t.next=31,u();case 31:return l=(l=t.sent).toString(),t.abrupt("break",35);case 34:console.log("Unknown path prefix ("+p[0]+") in "+a);case 35:return t.abrupt("return",l);case 36:case"end":return t.stop()}}),t)})))).apply(this,arguments)}function p(t,e,a,i){switch(e){case"humanReadable":(0,l.HumanReadable)(t,a,i);break;case"precise":(0,l.Precise)(t,a,i);break;case"blocksToDays":(0,l.BlocksToDays)(t,i);break;case"erasToDays":(0,l.ErasToDays)(t,i,a);break;case"percentage":(0,l.Percentage)(t,i);break;case"permillToPercent":(0,l.PermillToPercent)(t,i);break;case"arrayLength":(0,l.ArrayLength)(t,i);break;default:return void console.log("Ignoring unknown filter type")}}const d=function(t){var e=t.network,a=t.path,s=t.defaultValue,r=t.filter,l=void 0===r?void 0:r,u=(0,o.useState)(""),d=u[0],h=u[1];return e=e.toLowerCase(),(0,o.useEffect)((function(){void 0!==l?p(s.toString(),l,e,h):h(s.toString());var t=void 0;switch(e){case"polkadot":t="wss://rpc.polkadot.io";break;case"kusama":t="wss://kusama-rpc.polkadot.io/";break;case"statemine":t="wss://kusama-asset-hub-rpc.polkadot.io/";break;case"statemint":t="wss://polkadot-asset-hub-rpc.polkadot.io/";break;case"kusama-people":t="wss://kusama-people-rpc.polkadot.io";break;default:console.log("Unknown network provided, "+e)}if(void 0===t)console.log("Failed to connect to a valid websocket, applying default");else{var o=function(){var t=(0,n.Z)((0,i.Z)().mark((function t(){var n;return(0,i.Z)().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,c(e,a,h);case 2:if(void 0!==(n=t.sent)){t.next=7;break}return t.abrupt("return");case 7:void 0!==l?p(n,l,e,h):h(n);case 8:case"end":return t.stop()}}),t)})));return function(){return t.apply(this,arguments)}}();try{o()}catch(r){console.log(r)}}}),[]),d}},67425:t=>{var e="polkadot",a="kusama",i="statemine",n="statemint",o={polkadot:{precision:1e10,symbol:"DOT"},kusama:{precision:1e12,symbol:"KSM"},statemint:{precision:1e10,symbol:"DOT"},statemine:{precision:1e12,symbol:"KSM"}};t.exports={HumanReadable:function(t,s,r){var l=void 0;if(s===e||s===n)l=3;else{if(s!==a&&s!==i)return void console.log("Unknown network type found when attempting to apply 'Human Readable' filter");l=6}t=parseFloat(t),r((t=Number.isInteger(t/o[s].precision)?t/o[s].precision+" "+o[s].symbol:(t/o[s].precision).toFixed(l)+" "+o[s].symbol).toString())},Precise:function(t,e,a){a(t=(t=parseFloat(t))/o[e].precision+" "+o[e].symbol)},BlocksToDays:function(t,e){e((t=6*t/86400).toString())},ErasToDays:function(t,o,s){var r=void 0;if(s===e||s===n)r=1;else{if(s!==a&&s!==i)return void console.log("Unknown network type found when attempting to apply 'Human Readable' filter");r=4}o((t/=r).toString())},Percentage:function(t,e){e((t/=1e7).toString())},PermillToPercent:function(t,e){e((t/=1e4).toString())},ArrayLength:function(t,e){e((t=t.split(",").length).toString())}}},91430:(t,e,a)=>{"use strict";a.r(e),a.d(e,{assets:()=>d,contentTitle:()=>u,default:()=>k,frontMatter:()=>c,metadata:()=>p,toc:()=>h});var i=a(87462),n=a(63366),o=(a(67294),a(3905)),s=a(47940),r=a(35703),l=["components"],c={id:"learn-guides-accounts-multisig",title:"Polkadot-JS Guides about Multi-signature Accounts",sidebar_label:"Multisig Guides",description:"Polkadot-JS Guides about Multi-signature Accounts",keyword:["guides","polkadot-js","accounts","multisig","multi-signature"],slug:"../learn-guides-accounts-multisig"},u=void 0,p={unversionedId:"learn/learn-guides-accounts-multisig",id:"learn/learn-guides-accounts-multisig",title:"Polkadot-JS Guides about Multi-signature Accounts",description:"Polkadot-JS Guides about Multi-signature Accounts",source:"@site/../docs/learn/learn-guides-accounts-multisig.md",sourceDirName:"learn",slug:"/learn-guides-accounts-multisig",permalink:"/docs/learn-guides-accounts-multisig",draft:!1,editUrl:"https://github.com/w3f/polkadot-wiki/edit/master/docs/learn/learn-guides-accounts-multisig.md",tags:[],version:"current",lastUpdatedBy:"Filippo",lastUpdatedAt:1720201256,formattedLastUpdatedAt:"Jul 5, 2024",frontMatter:{id:"learn-guides-accounts-multisig",title:"Polkadot-JS Guides about Multi-signature Accounts",sidebar_label:"Multisig Guides",description:"Polkadot-JS Guides about Multi-signature Accounts",keyword:["guides","polkadot-js","accounts","multisig","multi-signature"],slug:"../learn-guides-accounts-multisig"},sidebar:"docs",previous:{title:"Account Guides",permalink:"/docs/learn-guides-accounts"},next:{title:"Proxy Guides",permalink:"/docs/learn-guides-accounts-proxy"}},d={},h=[{value:"Creating a Multisig Account",id:"creating-a-multisig-account",level:2},{value:"Multisig Transactions with Accounts Tab",id:"multisig-transactions-with-accounts-tab",level:2},{value:"Multisig Transactions with Extrinsic Tab",id:"multisig-transactions-with-extrinsic-tab",level:2},{value:"Multisig Call Deposit",id:"multisig-call-deposit",level:3},{value:"Example using Multisig Accounts",id:"example-using-multisig-accounts",level:3},{value:"Decoding Multisig Call Data",id:"decoding-multisig-call-data",level:2}],m={toc:h},g="wrapper";function k(t){var e=t.components,c=(0,n.Z)(t,l);return(0,o.kt)(g,(0,i.Z)({},m,c,{components:e,mdxType:"MDXLayout"}),(0,o.kt)(r.Z,{message:"Polkadot-JS is for developers and power users only. If you need help using the\n[Polkadot-JS UI](/docs/polkadotjs-ui), you can contact the\n[Polkadot Support Team](https://support.polkadot.network/support/home). For more user-friendly tools\nsee the [wallets](./wallets-index), [apps](./apps-index) and [dashboard](./dashboards-index) pages.",mdxType:"MessageBox"}),(0,o.kt)("h2",{id:"creating-a-multisig-account"},"Creating a Multisig Account"),(0,o.kt)("p",null,'Check the "How to create a multisig account" section on\n',(0,o.kt)("a",{parentName:"p",href:"https://support.polkadot.network/support/solutions/articles/65000181826-how-to-create-and-use-a-multisig-account"},"this support page"),".\nWe recommend trying out the tutorial on\n",(0,o.kt)("a",{parentName:"p",href:"/docs/maintain-networks#westend-test-network"},"Westend network")," - Polkadot's testnet."),(0,o.kt)("h2",{id:"multisig-transactions-with-accounts-tab"},"Multisig Transactions with Accounts Tab"),(0,o.kt)("admonition",{title:"Walkthrough Video Tutorial",type:"info"},(0,o.kt)("p",{parentName:"admonition"},"See ",(0,o.kt)("a",{parentName:"p",href:"https://www.youtube.com/watch?v=-cPiKMslZqI"},"this video tutorial")," to learn how to transact with\na multisig account using the Accounts Tab in the\n",(0,o.kt)("a",{parentName:"p",href:"https://polkadot.js.org/apps/#/accounts"},"Polkadot-JS UI"),".")),(0,o.kt)("p",null,"You can create a multisig account directly on the Accounts Tab of the\n",(0,o.kt)("a",{parentName:"p",href:"https://polkadot.js.org/apps/#/accounts"},"Polkadot-JS UI"),", and use this account to send funds. See\n",(0,o.kt)("a",{parentName:"p",href:"https://support.polkadot.network/support/solutions/articles/65000181826-how-to-create-and-use-a-multisig-account"},"this support article"),"\nfor more information."),(0,o.kt)("h2",{id:"multisig-transactions-with-extrinsic-tab"},"Multisig Transactions with Extrinsic Tab"),(0,o.kt)("p",null,"See the video tutorial below to learn about multi-signature accounts and how you can transact with them using\nthe Polkadot-JS UI."),(0,o.kt)("div",{className:"row"},(0,o.kt)("div",{className:"col text--center"},(0,o.kt)("a",{href:"https://youtu.be/Qv_nJVcvQr8?t=2109"},(0,o.kt)("img",{src:"https://img.youtube.com/vi/Qv_nJVcvQr8/0.jpg",width:"350",style:{borderRadius:10,border:"1px solid slategrey"}})),(0,o.kt)("p",null,(0,o.kt)("a",{href:"https://youtu.be/Qv_nJVcvQr8?t=2109"},"Transact with Multi-signature Accounts")))),(0,o.kt)("p",null,"There are three types of actions you can take with a multisig account:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"Executing a call ",(0,o.kt)("inlineCode",{parentName:"li"},"asMulti"),". This is used to begin or end a multisig transaction."),(0,o.kt)("li",{parentName:"ul"},"Approving a call ",(0,o.kt)("inlineCode",{parentName:"li"},"approveAsMulti"),". This is used to approve an extrinsic and pass-on to the next\nsignatory (see ",(0,o.kt)("a",{parentName:"li",href:"#example-using-multi-signature-accounts"},"example below")," for more information)."),(0,o.kt)("li",{parentName:"ul"},"Cancelling a call ",(0,o.kt)("inlineCode",{parentName:"li"},"cancelAsMulti"),".")),(0,o.kt)("admonition",{type:"info"},(0,o.kt)("p",{parentName:"admonition"},"Check out ",(0,o.kt)("a",{parentName:"p",href:"https://polkadot.js.org/docs/substrate/extrinsics#multisig"},"this page")," for more\ninformation about the actions you can take with a multi-signature account.")),(0,o.kt)("p",null,"In scenarios where only a single approval is needed, a convenience method ",(0,o.kt)("inlineCode",{parentName:"p"},"as_multi_threshold_1"),"\nshould be used. This function takes only the other signatories and the raw call as arguments. Note\nthat the Polkadot-JS UI does not have integration for this call because it is not possible to create\nmultisig accounts with ",(0,o.kt)("inlineCode",{parentName:"p"},"threshold=1"),". If you want to create a multisig with threshold 1, you can use\n",(0,o.kt)("a",{parentName:"p",href:"https://github.com/paritytech/txwrapper-core"},"txwrapper-core"),", which is developed and supported by\nParity Technologies. There is a detailed\n",(0,o.kt)("a",{parentName:"p",href:"https://github.com/paritytech/txwrapper-core/tree/main/packages/txwrapper-examples/multisig"},"multisig example"),"\nthat you can try out and change to see how it works."),(0,o.kt)("p",null,"However, in anything but the simple one approval case, you will likely need more than one of the\nsignatories to approve the call before finally executing it."),(0,o.kt)("h3",{id:"multisig-call-deposit"},"Multisig Call Deposit"),(0,o.kt)("p",null,"When you create a new multi-sig call, you will need to place a\nDOT deposit. The deposit stays locked until the\ncall is executed. This deposit is to establish an economic cost on the storage space that the\nmultisig call takes up in the chain state and discourage users from creating multisig calls that\nnever get executed. The deposit will be reserved in the call initiator's account."),(0,o.kt)("p",null,"The deposit is dependent on the ",(0,o.kt)("inlineCode",{parentName:"p"},"threshold")," parameter and is calculated as follows:"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre"},"Deposit = depositBase + threshold * depositFactor\n")),(0,o.kt)("p",null,"Where ",(0,o.kt)("inlineCode",{parentName:"p"},"depositBase")," and ",(0,o.kt)("inlineCode",{parentName:"p"},"depositFactor")," are chain constants (in\nDOT units) set in the runtime code. Currently,\nthe deposit base equals\n",(0,o.kt)(s.Z,{network:"polkadot",path:"consts.multisig.depositBase",defaultValue:20088e7,filter:"humanReadable",mdxType:"RPC"}),"\n","\nand the deposit factor equals\n",(0,o.kt)(s.Z,{network:"polkadot",path:"consts.multisig.depositFactor",defaultValue:32e7,filter:"humanReadable",mdxType:"RPC"}),".\n",""),(0,o.kt)("p",null,"The other signatory accounts should have enough funds to pay for the transaction fees associated\nwith approving the multisig call. The deposit is for the call; that is, other signatories will not\nneed to place additional deposits. Once the multisig call is executed or rejected, the deposit is\nreleased on the account that initiated the call."),(0,o.kt)("h3",{id:"example-using-multisig-accounts"},"Example using Multisig Accounts"),(0,o.kt)("admonition",{title:"Walk-through video tutorial",type:"info"},(0,o.kt)("p",{parentName:"admonition"},"See ",(0,o.kt)("a",{parentName:"p",href:"https://www.youtube.com/watch?v=T0vIuJcTJeQ"},"this video tutorial")," to learn how to transact with\na multisig account using the Extrinsic Tab in the\n",(0,o.kt)("a",{parentName:"p",href:"https://polkadot.js.org/apps/#/explorer"},"Polkadot-JS UI"),".")),(0,o.kt)("p",null,(0,o.kt)("img",{alt:"multisig diagram",src:a(706).Z,width:"1920",height:"800"})),(0,o.kt)("p",null,"Let's consider an example of a multisig on Polkadot with a threshold of 2 and 3 signers: Charlie,\nDan, and Eleanor. First, Charlie will create the call on-chain by calling the ",(0,o.kt)("inlineCode",{parentName:"p"},"multisig.asMulti"),"\nextrinsic with the raw call, in this case, a balance transfer (",(0,o.kt)("inlineCode",{parentName:"p"},"balances.transferKeepAlive"),"\nextrinsic) from multisig CDE to Frank's account. When doing this, Charlie will have to deposit\n",(0,o.kt)("inlineCode",{parentName:"p"},"DepositBase + (2 * DepositFactor) = 20.152 DOT")," while he waits for either Dan or Eleanor also to\napprove the balance transfer call using the ",(0,o.kt)("inlineCode",{parentName:"p"},"multisig.approveAsMulti")," or the ",(0,o.kt)("inlineCode",{parentName:"p"},"multisig.asMulti"),"\nextrinsics."),(0,o.kt)("p",null,"If Dan submits the ",(0,o.kt)("inlineCode",{parentName:"p"},"multisig.approveAsMulti")," extrinsic, he approves Charlie's call but he passes on\nthe final approval to Eleanor. So, although the multisig has threshold 2, in this case all 3/3\nsignatories need to participate in the transaction approval. Eleanor will need to submit a\n",(0,o.kt)("inlineCode",{parentName:"p"},"multisig.asMulti")," or ",(0,o.kt)("inlineCode",{parentName:"p"},"multisig.approveAsMulti")," extrinsic to transfer funds from CDE to Frank."),(0,o.kt)("p",null,"Alternatively, Dan or Eleanor can just submit a ",(0,o.kt)("inlineCode",{parentName:"p"},"multisig.asMulti")," extrinsic after Charlie to\ntransfer the funds. In this case, 2/3 signatories will participate in the transaction approval. The\naccounts approving Charlie's call will not need to place the deposit, and Charlie will receive his\ndeposit back once the transfer is successful or canceled. To cancel the transaction, Dan or Eleanor\ncan use the ",(0,o.kt)("inlineCode",{parentName:"p"},"multisig.cancelAsMulti")," extrinsic."),(0,o.kt)("p",null,"Note that multisigs are ",(0,o.kt)("strong",{parentName:"p"},"deterministic"),", which means that multisig addresses are generated from\nthe addresses of signers and the threshold of the multisig wallet. No matter the order of the\nsignatories' accounts, the multisig will always have the same address because accounts' addresses\nare sorted in ascending order."),(0,o.kt)("admonition",{title:"Addresses that are provided to the multisig wallet are sorted",type:"note"},(0,o.kt)("p",{parentName:"admonition"},"Public keys of signers' wallets are compared byte-for-byte and sorted ascending before being used to\ngenerate the multisig address. For example, consider the scenario with three addresses, A, B, and C,\nstarting with ",(0,o.kt)("inlineCode",{parentName:"p"},"5FUGT"),", ",(0,o.kt)("inlineCode",{parentName:"p"},"5HMfS"),", and ",(0,o.kt)("inlineCode",{parentName:"p"},"5GhKJ"),". If we build the ABC multisig with the accounts in that\nspecific order (i.e. first A, then B, and C), the real order of the accounts in the multisig will be\nACB. If, in the Extrinsic tab, we initiate a multisig call with C, the order of the other\nsignatories will be first A, then B. If we put first B, then A, the transaction will fail.")),(0,o.kt)("p",null,"This has some implications when using the Extrinsics tab on the\n",(0,o.kt)("a",{parentName:"p",href:"https://polkadot.js.org/apps/#/accounts"},"Polkadot-JS UI")," to perform multisig transactions. If the\norder of the ",(0,o.kt)("em",{parentName:"p"},"other signatories")," is wrong, the transaction will fail. This does not happen if the\nmultisig is executed directly from the Accounts tab (recommended). The Polkadot-JS UI supports\nmultisig accounts, as documented on the ",(0,o.kt)("a",{parentName:"p",href:"/docs/learn-account-multisig"},"Account Generation page"),". You\ncan see our video tutorials for more information about creating multisig accounts and transacting\nwith them using both the ",(0,o.kt)("a",{parentName:"p",href:"https://www.youtube.com/watch?v=-cPiKMslZqI"},"Accounts Tab")," and the\n",(0,o.kt)("a",{parentName:"p",href:"https://www.youtube.com/watch?v=T0vIuJcTJeQ"},"Extrinsic Tab")," in the Polkadot-JS UI."),(0,o.kt)("h2",{id:"decoding-multisig-call-data"},"Decoding Multisig Call Data"),(0,o.kt)("admonition",{type:"info"},(0,o.kt)("p",{parentName:"admonition"},"Before signing a transaction, it is important to know the exact specifics of what is being signed.\nCheck the\n",(0,o.kt)("a",{parentName:"p",href:"https://support.polkadot.network/support/solutions/articles/65000181826-how-to-create-and-use-a-multisig-account"},'"How to use a multisig account"'),"\nin the support docs on how to decode the multisig call data.")))}k.isMDXComponent=!0},706:(t,e,a)=>{"use strict";a.d(e,{Z:()=>i});const i=a.p+"assets/images/multisig-diagram-90327330a3e865703a0ab1a1cc1eee47.png"},46601:()=>{}}]); \ No newline at end of file diff --git a/assets/js/ed3409b3.2fde4e45.js b/assets/js/ed3409b3.2fde4e45.js deleted file mode 100644 index 4ccca8d88b8f..000000000000 --- a/assets/js/ed3409b3.2fde4e45.js +++ /dev/null @@ -1 +0,0 @@ -(self.webpackChunk=self.webpackChunk||[]).push([[8609],{35703:(e,t,o)=>{"use strict";o.d(t,{Z:()=>n});var a=o(67294);const n=function(e){var t,o=e.message,n=(0,a.useState)(!0),r=n[0],s=n[1];return a.createElement(a.Fragment,null,r&&a.createElement("div",{className:"message-box"},a.createElement("button",{className:"close-button",onClick:function(){s(!1)}},"\u2716 "),a.createElement("div",{className:"message-content",dangerouslySetInnerHTML:{__html:(t=o,t.replace(/\[(.*?)\]\((.*?)\)/g,'$1'))}})))}},47940:(e,t,o)=>{"use strict";o.d(t,{Z:()=>c});var a=o(74165),n=o(15861),r=o(67294),s=o(87152),i=o(18509),u=o(67425);function l(e,t,o){return d.apply(this,arguments)}function d(){return(d=(0,n.Z)((0,a.Z)().mark((function e(t,o,n){var r,u,l,d,p;return(0,a.Z)().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:r=void 0,u=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 r="wss://rpc.polkadot.io",e.abrupt("break",14);case 7:return r="wss://kusama-rpc.polkadot.io/",e.abrupt("break",14);case 9:return r="wss://statemine-rpc.polkadot.io/",e.abrupt("break",14);case 11:return r="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!==r){e.next=18;break}return e.abrupt("return");case 18:return l=new s.U(r),e.next=21,i.G.create({provider:l});case 21:d=e.sent,(p=o.split(".")).forEach((function(e){e in d&&(d=d[e])})),e.t1=p[0],e.next="consts"===e.t1?27:"query"===e.t1?29:34;break;case 27:return u=d.toString(),e.abrupt("break",35);case 29:return e.next=31,d();case 31:return u=(u=e.sent).toString(),e.abrupt("break",35);case 34:console.log("Unknown path prefix ("+p[0]+") in "+o);case 35:return e.abrupt("return",u);case 36:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function p(e,t,o,a){switch(t){case"humanReadable":(0,u.HumanReadable)(e,o,a);break;case"precise":(0,u.Precise)(e,o,a);break;case"blocksToDays":(0,u.BlocksToDays)(e,a);break;case"erasToDays":(0,u.ErasToDays)(e,a,o);break;case"percentage":(0,u.Percentage)(e,a);break;case"permillToPercent":(0,u.PermillToPercent)(e,a);break;case"arrayLength":(0,u.ArrayLength)(e,a);break;default:return void console.log("Ignoring unknown filter type")}}const c=function(e){var t=e.network,o=e.path,s=e.defaultValue,i=e.filter,u=void 0===i?void 0:i,d=(0,r.useState)(""),c=d[0],h=d[1];return t=t.toLowerCase(),(0,r.useEffect)((function(){void 0!==u?p(s.toString(),u,t,h):h(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;case"kusama-people":e="wss://kusama-people-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 r=function(){var e=(0,n.Z)((0,a.Z)().mark((function e(){var n;return(0,a.Z)().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,l(t,o,h);case 2:if(void 0!==(n=e.sent)){e.next=7;break}return e.abrupt("return");case 7:void 0!==u?p(n,u,t,h):h(n);case 8:case"end":return e.stop()}}),e)})));return function(){return e.apply(this,arguments)}}();try{r()}catch(i){console.log(i)}}}),[]),c}},67425:e=>{var t="polkadot",o="kusama",a="statemine",n="statemint",r={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,i){var u=void 0;if(s===t||s===n)u=3;else{if(s!==o&&s!==a)return void console.log("Unknown network type found when attempting to apply 'Human Readable' filter");u=6}e=parseFloat(e),i((e=Number.isInteger(e/r[s].precision)?e/r[s].precision+" "+r[s].symbol:(e/r[s].precision).toFixed(u)+" "+r[s].symbol).toString())},Precise:function(e,t,o){o(e=(e=parseFloat(e))/r[t].precision+" "+r[t].symbol)},BlocksToDays:function(e,t){t((e=6*e/86400).toString())},ErasToDays:function(e,r,s){var i=void 0;if(s===t||s===n)i=1;else{if(s!==o&&s!==a)return void console.log("Unknown network type found when attempting to apply 'Human Readable' filter");i=4}r((e/=i).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())}}},64539:(e,t,o)=>{"use strict";o.r(t),o.d(t,{assets:()=>c,contentTitle:()=>d,default:()=>k,frontMatter:()=>l,metadata:()=>p,toc:()=>h});var a=o(87462),n=o(63366),r=(o(67294),o(3905)),s=o(47940),i=o(35703),u=["components"],l={id:"learn-guides-bounties",title:"Polkadot-JS Guides about Bounties",sidebar_label:"Bounty Guides",description:"Polkadot-JS Guides for Bounties",keyword:["treasury","bounties","guides","child bounty","polkadot-js"],slug:"../learn-guides-bounties"},d=void 0,p={unversionedId:"learn/learn-guides-bounties",id:"learn/learn-guides-bounties",title:"Polkadot-JS Guides about Bounties",description:"Polkadot-JS Guides for Bounties",source:"@site/../docs/learn/learn-guides-bounties.md",sourceDirName:"learn",slug:"/learn-guides-bounties",permalink:"/docs/learn-guides-bounties",draft:!1,editUrl:"https://github.com/w3f/polkadot-wiki/edit/master/docs/learn/learn-guides-bounties.md",tags:[],version:"current",lastUpdatedBy:"Filippo",lastUpdatedAt:1714545713,formattedLastUpdatedAt:"May 1, 2024",frontMatter:{id:"learn-guides-bounties",title:"Polkadot-JS Guides about Bounties",sidebar_label:"Bounty Guides",description:"Polkadot-JS Guides for Bounties",keyword:["treasury","bounties","guides","child bounty","polkadot-js"],slug:"../learn-guides-bounties"},sidebar:"docs",previous:{title:"Treasury Guides",permalink:"/docs/learn-guides-treasury"},next:{title:"Identity Guides",permalink:"/docs/learn-guides-identity"}},c={},h=[{value:"Submit a Bounty Proposal",id:"submit-a-bounty-proposal",level:2},{value:"Assign a Curator to a Bounty",id:"assign-a-curator-to-a-bounty",level:2},{value:"Create and Award Child Bounties",id:"create-and-award-child-bounties",level:2},{value:"Claim a Child Bounty Reward",id:"claim-a-child-bounty-reward",level:2}],m={toc:h},b="wrapper";function k(e){var t=e.components,l=(0,n.Z)(e,u);return(0,r.kt)(b,(0,a.Z)({},m,l,{components:t,mdxType:"MDXLayout"}),(0,r.kt)(i.Z,{message:"Polkadot-JS is for developers and power users only. If you need help using the\n[Polkadot-JS UI](/docs/polkadotjs-ui), you can contact the\n[Polkadot Support Team](https://support.polkadot.network/support/home). For more user-friendly tools\nsee the [wallets](./wallets-index), [apps](./apps-index) and [dashboard](./dashboards-index) pages.",mdxType:"MessageBox"}),(0,r.kt)("p",null,"See ",(0,r.kt)("a",{parentName:"p",href:"/docs/learn-polkadot-opengov-treasury#bounties"},"this page")," to learn about Bounties."),(0,r.kt)("admonition",{title:"Notify the Polkadot Direction Channel",type:"info"},(0,r.kt)("p",{parentName:"admonition"},"Remember always to notify the\n",(0,r.kt)("a",{parentName:"p",href:"https://matrix.to/#/#Polkadot-Direction:parity.io"},"Polkadot Direction Element Channel")," about\n",(0,r.kt)("a",{parentName:"p",href:"/docs/learn-polkadot-opengov#referenda"},"OpenGov referenda")," so that the community can start reviewing\nthem and voting on them.")),(0,r.kt)("h2",{id:"submit-a-bounty-proposal"},"Submit a Bounty Proposal"),(0,r.kt)("admonition",{title:"Step-by-step written tutorial",type:"info"},(0,r.kt)("p",{parentName:"admonition"},"See\n",(0,r.kt)("a",{parentName:"p",href:"https://scribehow.com/shared/How_to_Submit_a_Bounty_Proposal_on_Polkadotjs_Apps__Ps_zfmNXRbm6PuZaj28JBQ"},"this written tutorial"),"\nto learn more about how to submit a bounty proposal.")),(0,r.kt)("p",null,"See the video tutorial below to learn how you can create a bounty and submit it for approval through\nan OpenGov referendum."),(0,r.kt)("div",{className:"row"},(0,r.kt)("div",{className:"col text--center"},(0,r.kt)("a",{href:"https://www.youtube.com/watch?v=8Cft1-8RWmk"},(0,r.kt)("img",{src:"https://img.youtube.com/vi/8Cft1-8RWmk/0.jpg",width:"350",style:{borderRadius:10,border:"1px solid slategrey"}})),(0,r.kt)("p",null,(0,r.kt)("a",{href:"https://www.youtube.com/watch?v=8Cft1-8RWmk"},"Submit a Bounty")))),(0,r.kt)("p",null,'When you add a bounty, this will show as "proposed" in the main\n',(0,r.kt)("a",{parentName:"p",href:"https://polkadot.js.org/apps/#/bounties"},"Bounties page"),'. Once the community approves your bounty\nproposal as an OpenGov referendum, the bounty will show as "funded" at the end of the\n',(0,r.kt)("a",{parentName:"p",href:"/docs/glossary#spend-period"},"spending period")," on the main\n",(0,r.kt)("a",{parentName:"p",href:"https://polkadot.js.org/apps/#/bounties"},"Bounties page"),". You can then proceed with assigning\ncurators to the bounty."),(0,r.kt)("p",null,"To minimize storage on chain in the same way as any proposal, bounties don't contain contextual\ninformation. When a user submits a bounty spending proposal, they will need to find an off-chain\nmedium to explain the proposal, for example a bounty proposal document on\n",(0,r.kt)("a",{parentName:"p",href:"https://polkadot.polkassembly.io/opengov"},"Polkassembly")," or\n",(0,r.kt)("a",{parentName:"p",href:"https://polkadot.subsquare.io/"},"Subsquare"),".\n",(0,r.kt)("a",{parentName:"p",href:"https://docs.google.com/document/d/1-IBz_owspV5OcvezWXpksWDQReWowschD0TFuaVKKcU/edit?usp=sharing"},"This template"),"\ncan be used to submit all the information needed by OpenGov voters to make an informed decision."),(0,r.kt)("p",null,"Submitting a bounty proposal will reserve\n",(0,r.kt)(s.Z,{network:"polkadot",path:"consts.bounties.bountyDepositBase",defaultValue:1e10,filter:"humanReadable",mdxType:"RPC"}),"","."),(0,r.kt)("h2",{id:"assign-a-curator-to-a-bounty"},"Assign a Curator to a Bounty"),(0,r.kt)("admonition",{title:"Step-by-step written tutorial",type:"info"},(0,r.kt)("p",{parentName:"admonition"},"See\n",(0,r.kt)("a",{parentName:"p",href:"https://scribehow.com/shared/How_to_Assign_a_Curator_to_a_Bounty_on_Polkadotjs_Apps__JgK3eSfXQdm_PSvtz8TelQ"},"this written tutorial"),"\nto learn more about how to assign a curator to a bounty.")),(0,r.kt)("p",null,'Once your bounty is shown as "funded" on the main\n',(0,r.kt)("a",{parentName:"p",href:"https://polkadot.js.org/apps/#/bounties"},"Bounties page"),", you can propose a bounty curator. See the\nvideo tutorial below to learn how you can add a curator to a bounty and submit it for approval\nthrough an OpenGov referendum."),(0,r.kt)("div",{className:"row"},(0,r.kt)("div",{className:"col text--center"},(0,r.kt)("a",{href:"https://www.youtube.com/watch?v=TM7vk3oP9IA"},(0,r.kt)("img",{src:"https://img.youtube.com/vi/TM7vk3oP9IA/0.jpg",width:"350",style:{borderRadius:10,border:"1px solid slategrey"}})),(0,r.kt)("p",null,(0,r.kt)("a",{href:"https://www.youtube.com/watch?v=TM7vk3oP9IA"},"Assign Curator to a Bounty")))),(0,r.kt)("p",null,"Once your OpenGov referendum has been approved by the community and served the required\n",(0,r.kt)("a",{parentName:"p",href:"/docs/glossary#spend-period"},"spending period"),', the bounty will still show as "funded" on\nthe main ',(0,r.kt)("a",{parentName:"p",href:"https://polkadot.js.org/apps/#/bounties"},"Bounties page")," and await the curator's\nacceptance. The curator must formally accept the curator role by signing a ",(0,r.kt)("inlineCode",{parentName:"p"},"bounties.acceptCurator"),"\nextrinsic. More information about when to do this can be found on the main\n",(0,r.kt)("a",{parentName:"p",href:"https://polkadot.js.org/apps/#/bounties"},"Bounties page"),'. Only after the curators claim their\ncandidacy the bounty will show as "active" on the main Bounty page.'),(0,r.kt)("admonition",{title:"Curator assignment call must be executed after bounty is funded",type:"info"},(0,r.kt)("p",{parentName:"admonition"},"Curator assignment must take place after the bounty has been funded, and approved bounties are\nfunded after a spend period has been completed. A curator assignment referendum cannot be executed\nduring the same spend period when the bounty is funded."),(0,r.kt)("p",{parentName:"admonition"},"If your bounty has been awarded but is not funded yet, you need to make sure that the curator\nassignment referendum gets enacted in the subsequent spending period (you can set a delay in\n",(0,r.kt)("a",{parentName:"p",href:"/docs/learn-guides-polkadot-opengov#submitting-a-proposal"},"Polkadot-JS")," when you submit the proposal\nduring the current spend period).")),(0,r.kt)("h2",{id:"create-and-award-child-bounties"},"Create and Award Child Bounties"),(0,r.kt)("admonition",{title:"Step-by-step written tutorial",type:"info"},(0,r.kt)("p",{parentName:"admonition"},"See\n",(0,r.kt)("a",{parentName:"p",href:"https://scribehow.com/shared/How_to_Create_and_Award_a_Child_Bounty__Q-YFGkYAR3WxMnvYGHiU3Q"},"this written tutorial"),"\nto learn more about how to create and award child bounties.")),(0,r.kt)("admonition",{title:"Remember to add contextual information about child bounties",type:"info"},(0,r.kt)("p",{parentName:"admonition"},"When you add child bounties, please add contextual information on the governance forums\n",(0,r.kt)("a",{parentName:"p",href:"https://polkassembly.io/"},"Polkassembly")," or ",(0,r.kt)("a",{parentName:"p",href:"https://polkadot.subsquare.io/"},"Subsquare"),".")),(0,r.kt)("p",null,"See the video tutorial below to learn how to create a child bounty, assign a curator, and award a\nchild bounty."),(0,r.kt)("p",null,"The video will show how to create and award a child bounty using a batch call. We will also include\nproposing and approving curator candidacy for the child bounty. The calls can be executed\nseparately, depending on the process curators consider appropriate for their bounty."),(0,r.kt)("div",{className:"row"},(0,r.kt)("div",{className:"col text--center"},(0,r.kt)("a",{href:"https://www.youtube.com/watch?v=mLpvx0OQoyM"},(0,r.kt)("img",{src:"https://img.youtube.com/vi/mLpvx0OQoyM/0.jpg",width:"350",style:{borderRadius:10,border:"1px solid slategrey"}})),(0,r.kt)("p",null,(0,r.kt)("a",{href:"https://www.youtube.com/watch?v=mLpvx0OQoyM"},"Create and Award Child Bounties")))),(0,r.kt)("p",null,"Note that once a child bounty is awarded, awardees need to wait for the\n8-day delay to be complete before claiming the\nchild bounty."),(0,r.kt)("h2",{id:"claim-a-child-bounty-reward"},"Claim a Child Bounty Reward"),(0,r.kt)("admonition",{title:"Step-by-step written tutorial",type:"info"},(0,r.kt)("p",{parentName:"admonition"},"See\n",(0,r.kt)("a",{parentName:"p",href:"https://scribehow.com/shared/How_to_claim_a_Child_Bounty_reward_on_Polkadotjs__t3V7NDUjQlus40EUjc-5Kw"},"this written tutorial"),"\nto learn more about how to claim a child bounty reward.")),(0,r.kt)("p",null,"The status of child bounties can be viewed on the\n",(0,r.kt)("a",{parentName:"p",href:"https://polkadot.polkassembly.io/bounties"},"Polkassembly Bounty page"),' under the specific parent\nbounty. A child bounty status can be "Added", "Awarded", or "Claimed". For example, the parent\nbounty 17 refers to the Community Events Bounty, which has 183 child bounties.'),(0,r.kt)("p",null,(0,r.kt)("img",{alt:"polkassembly-child-bounties",src:o(83001).Z,width:"2408",height:"1053"})),(0,r.kt)("p",null,"After a child bounty has been awarded and the\n",(0,r.kt)(s.Z,{network:"polkadot",path:"consts.bounties.bountyDepositPayoutDelay",defaultValue:115200,filter:"blocksToDays",mdxType:"RPC"}),"","-day\ndelay elapsed, follow the guidelines in the video tutorial below to learn how to claim a child\nbounty reward. Note that the extrinsic to claim the child bounty reward is permissionless, and\nanyone can initiate the claim on behalf of the beneficiary."),(0,r.kt)("div",{className:"row"},(0,r.kt)("div",{className:"col text--center"},(0,r.kt)("a",{href:"https://www.youtube.com/watch?v=db82aHgy23c"},(0,r.kt)("img",{src:"https://img.youtube.com/vi/db82aHgy23c/0.jpg",width:"350",style:{borderRadius:10,border:"1px solid slategrey"}})),(0,r.kt)("p",null,(0,r.kt)("a",{href:"https://www.youtube.com/watch?v=db82aHgy23c"},"Claim Child Bounty Reward")))))}k.isMDXComponent=!0},83001:(e,t,o)=>{"use strict";o.d(t,{Z:()=>a});const a=o.p+"assets/images/polkassembly-child-bounties-fde994e770f3e109a07752068aa417b1.png"},46601:()=>{}}]); \ No newline at end of file diff --git a/assets/js/ed3409b3.59c52957.js b/assets/js/ed3409b3.59c52957.js new file mode 100644 index 000000000000..183226c0cde9 --- /dev/null +++ b/assets/js/ed3409b3.59c52957.js @@ -0,0 +1 @@ +(self.webpackChunk=self.webpackChunk||[]).push([[8609],{35703:(e,t,o)=>{"use strict";o.d(t,{Z:()=>n});var a=o(67294);const n=function(e){var t,o=e.message,n=(0,a.useState)(!0),r=n[0],s=n[1];return a.createElement(a.Fragment,null,r&&a.createElement("div",{className:"message-box"},a.createElement("button",{className:"close-button",onClick:function(){s(!1)}},"\u2716 "),a.createElement("div",{className:"message-content",dangerouslySetInnerHTML:{__html:(t=o,t.replace(/\[(.*?)\]\((.*?)\)/g,'$1'))}})))}},47940:(e,t,o)=>{"use strict";o.d(t,{Z:()=>c});var a=o(74165),n=o(15861),r=o(67294),s=o(87152),i=o(18509),u=o(67425);function l(e,t,o){return d.apply(this,arguments)}function d(){return(d=(0,n.Z)((0,a.Z)().mark((function e(t,o,n){var r,u,l,d,p;return(0,a.Z)().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:r=void 0,u=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 r="wss://rpc.polkadot.io",e.abrupt("break",14);case 7:return r="wss://kusama-rpc.polkadot.io/",e.abrupt("break",14);case 9:return r="wss://statemine-rpc.polkadot.io/",e.abrupt("break",14);case 11:return r="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!==r){e.next=18;break}return e.abrupt("return");case 18:return l=new s.U(r),e.next=21,i.G.create({provider:l});case 21:d=e.sent,(p=o.split(".")).forEach((function(e){e in d&&(d=d[e])})),e.t1=p[0],e.next="consts"===e.t1?27:"query"===e.t1?29:34;break;case 27:return u=d.toString(),e.abrupt("break",35);case 29:return e.next=31,d();case 31:return u=(u=e.sent).toString(),e.abrupt("break",35);case 34:console.log("Unknown path prefix ("+p[0]+") in "+o);case 35:return e.abrupt("return",u);case 36:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function p(e,t,o,a){switch(t){case"humanReadable":(0,u.HumanReadable)(e,o,a);break;case"precise":(0,u.Precise)(e,o,a);break;case"blocksToDays":(0,u.BlocksToDays)(e,a);break;case"erasToDays":(0,u.ErasToDays)(e,a,o);break;case"percentage":(0,u.Percentage)(e,a);break;case"permillToPercent":(0,u.PermillToPercent)(e,a);break;case"arrayLength":(0,u.ArrayLength)(e,a);break;default:return void console.log("Ignoring unknown filter type")}}const c=function(e){var t=e.network,o=e.path,s=e.defaultValue,i=e.filter,u=void 0===i?void 0:i,d=(0,r.useState)(""),c=d[0],h=d[1];return t=t.toLowerCase(),(0,r.useEffect)((function(){void 0!==u?p(s.toString(),u,t,h):h(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;case"kusama-people":e="wss://kusama-people-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 r=function(){var e=(0,n.Z)((0,a.Z)().mark((function e(){var n;return(0,a.Z)().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,l(t,o,h);case 2:if(void 0!==(n=e.sent)){e.next=7;break}return e.abrupt("return");case 7:void 0!==u?p(n,u,t,h):h(n);case 8:case"end":return e.stop()}}),e)})));return function(){return e.apply(this,arguments)}}();try{r()}catch(i){console.log(i)}}}),[]),c}},67425:e=>{var t="polkadot",o="kusama",a="statemine",n="statemint",r={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,i){var u=void 0;if(s===t||s===n)u=3;else{if(s!==o&&s!==a)return void console.log("Unknown network type found when attempting to apply 'Human Readable' filter");u=6}e=parseFloat(e),i((e=Number.isInteger(e/r[s].precision)?e/r[s].precision+" "+r[s].symbol:(e/r[s].precision).toFixed(u)+" "+r[s].symbol).toString())},Precise:function(e,t,o){o(e=(e=parseFloat(e))/r[t].precision+" "+r[t].symbol)},BlocksToDays:function(e,t){t((e=6*e/86400).toString())},ErasToDays:function(e,r,s){var i=void 0;if(s===t||s===n)i=1;else{if(s!==o&&s!==a)return void console.log("Unknown network type found when attempting to apply 'Human Readable' filter");i=4}r((e/=i).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())}}},64539:(e,t,o)=>{"use strict";o.r(t),o.d(t,{assets:()=>c,contentTitle:()=>d,default:()=>k,frontMatter:()=>l,metadata:()=>p,toc:()=>h});var a=o(87462),n=o(63366),r=(o(67294),o(3905)),s=o(47940),i=o(35703),u=["components"],l={id:"learn-guides-bounties",title:"Polkadot-JS Guides about Bounties",sidebar_label:"Bounty Guides",description:"Polkadot-JS Guides for Bounties",keyword:["treasury","bounties","guides","child bounty","polkadot-js"],slug:"../learn-guides-bounties"},d=void 0,p={unversionedId:"learn/learn-guides-bounties",id:"learn/learn-guides-bounties",title:"Polkadot-JS Guides about Bounties",description:"Polkadot-JS Guides for Bounties",source:"@site/../docs/learn/learn-guides-bounties.md",sourceDirName:"learn",slug:"/learn-guides-bounties",permalink:"/docs/learn-guides-bounties",draft:!1,editUrl:"https://github.com/w3f/polkadot-wiki/edit/master/docs/learn/learn-guides-bounties.md",tags:[],version:"current",lastUpdatedBy:"Filippo",lastUpdatedAt:1720201256,formattedLastUpdatedAt:"Jul 5, 2024",frontMatter:{id:"learn-guides-bounties",title:"Polkadot-JS Guides about Bounties",sidebar_label:"Bounty Guides",description:"Polkadot-JS Guides for Bounties",keyword:["treasury","bounties","guides","child bounty","polkadot-js"],slug:"../learn-guides-bounties"},sidebar:"docs",previous:{title:"Treasury Guides",permalink:"/docs/learn-guides-treasury"},next:{title:"Identity Guides",permalink:"/docs/learn-guides-identity"}},c={},h=[{value:"Submit a Bounty Proposal",id:"submit-a-bounty-proposal",level:2},{value:"Assign a Curator to a Bounty",id:"assign-a-curator-to-a-bounty",level:2},{value:"Create and Award Child Bounties",id:"create-and-award-child-bounties",level:2},{value:"Claim a Child Bounty Reward",id:"claim-a-child-bounty-reward",level:2}],m={toc:h},b="wrapper";function k(e){var t=e.components,l=(0,n.Z)(e,u);return(0,r.kt)(b,(0,a.Z)({},m,l,{components:t,mdxType:"MDXLayout"}),(0,r.kt)(i.Z,{message:"Polkadot-JS is for developers and power users only. If you need help using the\n[Polkadot-JS UI](/docs/polkadotjs-ui), you can contact the\n[Polkadot Support Team](https://support.polkadot.network/support/home). For more user-friendly tools\nsee the [wallets](./wallets-index), [apps](./apps-index) and [dashboard](./dashboards-index) pages.",mdxType:"MessageBox"}),(0,r.kt)("p",null,"See ",(0,r.kt)("a",{parentName:"p",href:"/docs/learn-polkadot-opengov-treasury#bounties"},"this page")," to learn about Bounties."),(0,r.kt)("admonition",{title:"Notify the Polkadot Direction Channel",type:"info"},(0,r.kt)("p",{parentName:"admonition"},"Remember always to notify the\n",(0,r.kt)("a",{parentName:"p",href:"https://matrix.to/#/#Polkadot-Direction:parity.io"},"Polkadot Direction Element Channel")," about\n",(0,r.kt)("a",{parentName:"p",href:"/docs/learn-polkadot-opengov#referenda"},"OpenGov referenda")," so that the community can start reviewing\nthem and voting on them.")),(0,r.kt)("h2",{id:"submit-a-bounty-proposal"},"Submit a Bounty Proposal"),(0,r.kt)("admonition",{title:"Step-by-step written tutorial",type:"info"},(0,r.kt)("p",{parentName:"admonition"},"See\n",(0,r.kt)("a",{parentName:"p",href:"https://scribehow.com/shared/How_to_Submit_a_Bounty_Proposal_on_Polkadotjs_Apps__Ps_zfmNXRbm6PuZaj28JBQ"},"this written tutorial"),"\nto learn more about how to submit a bounty proposal.")),(0,r.kt)("p",null,"See the video tutorial below to learn how you can create a bounty and submit it for approval through\nan OpenGov referendum."),(0,r.kt)("div",{className:"row"},(0,r.kt)("div",{className:"col text--center"},(0,r.kt)("a",{href:"https://youtu.be/Qv_nJVcvQr8?t=52"},(0,r.kt)("img",{src:"https://img.youtube.com/vi/Qv_nJVcvQr8/0.jpg",width:"350",style:{borderRadius:10,border:"1px solid slategrey"}})),(0,r.kt)("p",null,(0,r.kt)("a",{href:"https://youtu.be/Qv_nJVcvQr8?t=52"},"Introduction to Bounties"))),(0,r.kt)("div",{className:"col text--center"},(0,r.kt)("a",{href:"https://www.youtube.com/watch?v=8Cft1-8RWmk"},(0,r.kt)("img",{src:"https://img.youtube.com/vi/8Cft1-8RWmk/0.jpg",width:"350",style:{borderRadius:10,border:"1px solid slategrey"}})),(0,r.kt)("p",null,(0,r.kt)("a",{href:"https://www.youtube.com/watch?v=8Cft1-8RWmk"},"Submit a Bounty")))),(0,r.kt)("p",null,'When you add a bounty, this will show as "proposed" in the main\n',(0,r.kt)("a",{parentName:"p",href:"https://polkadot.js.org/apps/#/bounties"},"Bounties page"),'. Once the community approves your bounty\nproposal as an OpenGov referendum, the bounty will show as "funded" at the end of the\n',(0,r.kt)("a",{parentName:"p",href:"/docs/glossary#spend-period"},"spending period")," on the main\n",(0,r.kt)("a",{parentName:"p",href:"https://polkadot.js.org/apps/#/bounties"},"Bounties page"),". You can then proceed with assigning\ncurators to the bounty."),(0,r.kt)("p",null,"To minimize storage on chain in the same way as any proposal, bounties don't contain contextual\ninformation. When a user submits a bounty spending proposal, they will need to find an off-chain\nmedium to explain the proposal, for example a bounty proposal document on\n",(0,r.kt)("a",{parentName:"p",href:"https://polkadot.polkassembly.io/opengov"},"Polkassembly")," or\n",(0,r.kt)("a",{parentName:"p",href:"https://polkadot.subsquare.io/"},"Subsquare"),".\n",(0,r.kt)("a",{parentName:"p",href:"https://docs.google.com/document/d/1-IBz_owspV5OcvezWXpksWDQReWowschD0TFuaVKKcU/edit?usp=sharing"},"This template"),"\ncan be used to submit all the information needed by OpenGov voters to make an informed decision."),(0,r.kt)("p",null,"Submitting a bounty proposal will reserve\n",(0,r.kt)(s.Z,{network:"polkadot",path:"consts.bounties.bountyDepositBase",defaultValue:1e10,filter:"humanReadable",mdxType:"RPC"}),"","."),(0,r.kt)("h2",{id:"assign-a-curator-to-a-bounty"},"Assign a Curator to a Bounty"),(0,r.kt)("admonition",{title:"Step-by-step written tutorial",type:"info"},(0,r.kt)("p",{parentName:"admonition"},"See\n",(0,r.kt)("a",{parentName:"p",href:"https://scribehow.com/shared/How_to_Assign_a_Curator_to_a_Bounty_on_Polkadotjs_Apps__JgK3eSfXQdm_PSvtz8TelQ"},"this written tutorial"),"\nto learn more about how to assign a curator to a bounty.")),(0,r.kt)("p",null,'Once your bounty is shown as "funded" on the main\n',(0,r.kt)("a",{parentName:"p",href:"https://polkadot.js.org/apps/#/bounties"},"Bounties page"),", you can propose a bounty curator. See the\nvideo tutorial below to learn how you can add a curator to a bounty and submit it for approval\nthrough an OpenGov referendum."),(0,r.kt)("div",{className:"row"},(0,r.kt)("div",{className:"col text--center"},(0,r.kt)("a",{href:"https://www.youtube.com/watch?v=TM7vk3oP9IA"},(0,r.kt)("img",{src:"https://img.youtube.com/vi/TM7vk3oP9IA/0.jpg",width:"350",style:{borderRadius:10,border:"1px solid slategrey"}})),(0,r.kt)("p",null,(0,r.kt)("a",{href:"https://www.youtube.com/watch?v=TM7vk3oP9IA"},"Assign Curator to a Bounty")))),(0,r.kt)("p",null,"Once your OpenGov referendum has been approved by the community and served the required\n",(0,r.kt)("a",{parentName:"p",href:"/docs/glossary#spend-period"},"spending period"),', the bounty will still show as "funded" on\nthe main ',(0,r.kt)("a",{parentName:"p",href:"https://polkadot.js.org/apps/#/bounties"},"Bounties page")," and await the curator's\nacceptance. The curator must formally accept the curator role by signing a ",(0,r.kt)("inlineCode",{parentName:"p"},"bounties.acceptCurator"),"\nextrinsic. More information about when to do this can be found on the main\n",(0,r.kt)("a",{parentName:"p",href:"https://polkadot.js.org/apps/#/bounties"},"Bounties page"),'. Only after the curators claim their\ncandidacy the bounty will show as "active" on the main Bounty page.'),(0,r.kt)("admonition",{title:"Curator assignment call must be executed after bounty is funded",type:"info"},(0,r.kt)("p",{parentName:"admonition"},"Curator assignment must take place after the bounty has been funded, and approved bounties are\nfunded after a spend period has been completed. A curator assignment referendum cannot be executed\nduring the same spend period when the bounty is funded."),(0,r.kt)("p",{parentName:"admonition"},"If your bounty has been awarded but is not funded yet, you need to make sure that the curator\nassignment referendum gets enacted in the subsequent spending period (you can set a delay in\n",(0,r.kt)("a",{parentName:"p",href:"/docs/learn-guides-polkadot-opengov#submitting-a-proposal"},"Polkadot-JS")," when you submit the proposal\nduring the current spend period).")),(0,r.kt)("h2",{id:"create-and-award-child-bounties"},"Create and Award Child Bounties"),(0,r.kt)("admonition",{title:"Step-by-step written tutorial",type:"info"},(0,r.kt)("p",{parentName:"admonition"},"See\n",(0,r.kt)("a",{parentName:"p",href:"https://scribehow.com/shared/How_to_Create_and_Award_a_Child_Bounty__Q-YFGkYAR3WxMnvYGHiU3Q"},"this written tutorial"),"\nto learn more about how to create and award child bounties.")),(0,r.kt)("admonition",{title:"Remember to add contextual information about child bounties",type:"info"},(0,r.kt)("p",{parentName:"admonition"},"When you add child bounties, please add contextual information on the governance forums\n",(0,r.kt)("a",{parentName:"p",href:"https://polkassembly.io/"},"Polkassembly")," or ",(0,r.kt)("a",{parentName:"p",href:"https://polkadot.subsquare.io/"},"Subsquare"),".")),(0,r.kt)("p",null,"See the video tutorial below to learn how to create a child bounty, assign a curator, and award a\nchild bounty."),(0,r.kt)("p",null,"The video will show how to create and award a child bounty using a batch call. We will also include\nproposing and approving curator candidacy for the child bounty. The calls can be executed\nseparately, depending on the process curators consider appropriate for their bounty."),(0,r.kt)("div",{className:"row"},(0,r.kt)("div",{className:"col text--center"},(0,r.kt)("a",{href:"https://www.youtube.com/watch?v=mLpvx0OQoyM"},(0,r.kt)("img",{src:"https://img.youtube.com/vi/mLpvx0OQoyM/0.jpg",width:"350",style:{borderRadius:10,border:"1px solid slategrey"}})),(0,r.kt)("p",null,(0,r.kt)("a",{href:"https://www.youtube.com/watch?v=mLpvx0OQoyM"},"Create and Award Child Bounties")))),(0,r.kt)("p",null,"Note that once a child bounty is awarded, awardees need to wait for the\n8-day delay to be complete before claiming the\nchild bounty."),(0,r.kt)("h2",{id:"claim-a-child-bounty-reward"},"Claim a Child Bounty Reward"),(0,r.kt)("admonition",{title:"Step-by-step written tutorial",type:"info"},(0,r.kt)("p",{parentName:"admonition"},"See\n",(0,r.kt)("a",{parentName:"p",href:"https://scribehow.com/shared/How_to_claim_a_Child_Bounty_reward_on_Polkadotjs__t3V7NDUjQlus40EUjc-5Kw"},"this written tutorial"),"\nto learn more about how to claim a child bounty reward.")),(0,r.kt)("p",null,"The status of child bounties can be viewed on the\n",(0,r.kt)("a",{parentName:"p",href:"https://polkadot.polkassembly.io/bounties"},"Polkassembly Bounty page"),' under the specific parent\nbounty. A child bounty status can be "Added", "Awarded", or "Claimed". For example, the parent\nbounty 17 refers to the Community Events Bounty, which has 183 child bounties.'),(0,r.kt)("p",null,(0,r.kt)("img",{alt:"polkassembly-child-bounties",src:o(83001).Z,width:"2408",height:"1053"})),(0,r.kt)("p",null,"After a child bounty has been awarded and the\n",(0,r.kt)(s.Z,{network:"polkadot",path:"consts.bounties.bountyDepositPayoutDelay",defaultValue:115200,filter:"blocksToDays",mdxType:"RPC"}),"","-day\ndelay elapsed, follow the guidelines in the video tutorial below to learn how to claim a child\nbounty reward. Note that the extrinsic to claim the child bounty reward is permissionless, and\nanyone can initiate the claim on behalf of the beneficiary."),(0,r.kt)("div",{className:"row"},(0,r.kt)("div",{className:"col text--center"},(0,r.kt)("a",{href:"https://www.youtube.com/watch?v=db82aHgy23c"},(0,r.kt)("img",{src:"https://img.youtube.com/vi/db82aHgy23c/0.jpg",width:"350",style:{borderRadius:10,border:"1px solid slategrey"}})),(0,r.kt)("p",null,(0,r.kt)("a",{href:"https://www.youtube.com/watch?v=db82aHgy23c"},"Claim Child Bounty Reward")))))}k.isMDXComponent=!0},83001:(e,t,o)=>{"use strict";o.d(t,{Z:()=>a});const a=o.p+"assets/images/polkassembly-child-bounties-fde994e770f3e109a07752068aa417b1.png"},46601:()=>{}}]); \ No newline at end of file diff --git a/assets/js/f0ff685a.3776c227.js b/assets/js/f0ff685a.3776c227.js new file mode 100644 index 000000000000..56e0949b27be --- /dev/null +++ b/assets/js/f0ff685a.3776c227.js @@ -0,0 +1 @@ +(self.webpackChunk=self.webpackChunk||[]).push([[8191],{35703:(e,t,o)=>{"use strict";o.d(t,{Z:()=>n});var a=o(67294);const n=function(e){var t,o=e.message,n=(0,a.useState)(!0),r=n[0],s=n[1];return a.createElement(a.Fragment,null,r&&a.createElement("div",{className:"message-box"},a.createElement("button",{className:"close-button",onClick:function(){s(!1)}},"\u2716 "),a.createElement("div",{className:"message-content",dangerouslySetInnerHTML:{__html:(t=o,t.replace(/\[(.*?)\]\((.*?)\)/g,'$1'))}})))}},47940:(e,t,o)=>{"use strict";o.d(t,{Z:()=>u});var a=o(74165),n=o(15861),r=o(67294),s=o(87152),i=o(18509),l=o(67425);function c(e,t,o){return p.apply(this,arguments)}function p(){return(p=(0,n.Z)((0,a.Z)().mark((function e(t,o,n){var r,l,c,p,d;return(0,a.Z)().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:r=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 r="wss://rpc.polkadot.io",e.abrupt("break",14);case 7:return r="wss://kusama-rpc.polkadot.io/",e.abrupt("break",14);case 9:return r="wss://statemine-rpc.polkadot.io/",e.abrupt("break",14);case 11:return r="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!==r){e.next=18;break}return e.abrupt("return");case 18:return c=new s.U(r),e.next=21,i.G.create({provider:c});case 21:p=e.sent,(d=o.split(".")).forEach((function(e){e in p&&(p=p[e])})),e.t1=d[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 ("+d[0]+") in "+o);case 35:return e.abrupt("return",l);case 36:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function d(e,t,o,a){switch(t){case"humanReadable":(0,l.HumanReadable)(e,o,a);break;case"precise":(0,l.Precise)(e,o,a);break;case"blocksToDays":(0,l.BlocksToDays)(e,a);break;case"erasToDays":(0,l.ErasToDays)(e,a,o);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 u=function(e){var t=e.network,o=e.path,s=e.defaultValue,i=e.filter,l=void 0===i?void 0:i,p=(0,r.useState)(""),u=p[0],h=p[1];return t=t.toLowerCase(),(0,r.useEffect)((function(){void 0!==l?d(s.toString(),l,t,h):h(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;case"kusama-people":e="wss://kusama-people-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 r=function(){var e=(0,n.Z)((0,a.Z)().mark((function e(){var n;return(0,a.Z)().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,c(t,o,h);case 2:if(void 0!==(n=e.sent)){e.next=7;break}return e.abrupt("return");case 7:void 0!==l?d(n,l,t,h):h(n);case 8:case"end":return e.stop()}}),e)})));return function(){return e.apply(this,arguments)}}();try{r()}catch(i){console.log(i)}}}),[]),u}},67425:e=>{var t="polkadot",o="kusama",a="statemine",n="statemint",r={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,i){var l=void 0;if(s===t||s===n)l=3;else{if(s!==o&&s!==a)return void console.log("Unknown network type found when attempting to apply 'Human Readable' filter");l=6}e=parseFloat(e),i((e=Number.isInteger(e/r[s].precision)?e/r[s].precision+" "+r[s].symbol:(e/r[s].precision).toFixed(l)+" "+r[s].symbol).toString())},Precise:function(e,t,o){o(e=(e=parseFloat(e))/r[t].precision+" "+r[t].symbol)},BlocksToDays:function(e,t){t((e=6*e/86400).toString())},ErasToDays:function(e,r,s){var i=void 0;if(s===t||s===n)i=1;else{if(s!==o&&s!==a)return void console.log("Unknown network type found when attempting to apply 'Human Readable' filter");i=4}r((e/=i).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())}}},56870:(e,t,o)=>{"use strict";o.r(t),o.d(t,{assets:()=>d,contentTitle:()=>c,default:()=>k,frontMatter:()=>l,metadata:()=>p,toc:()=>u});var a=o(87462),n=o(63366),r=(o(67294),o(3905)),s=(o(47940),o(35703)),i=["components"],l={id:"learn-guides-accounts-proxy",title:"Polkadot-JS Guides about Proxy Accounts",sidebar_label:"Proxy Guides",description:"Polkadot-JS Guides about Proxy Accounts",keyword:["guides","polkadot-js","accounts","proxy"],slug:"../learn-guides-accounts-proxy"},c=void 0,p={unversionedId:"learn/learn-guides-accounts-proxy",id:"learn/learn-guides-accounts-proxy",title:"Polkadot-JS Guides about Proxy Accounts",description:"Polkadot-JS Guides about Proxy Accounts",source:"@site/../docs/learn/learn-guides-accounts-proxy.md",sourceDirName:"learn",slug:"/learn-guides-accounts-proxy",permalink:"/docs/learn-guides-accounts-proxy",draft:!1,editUrl:"https://github.com/w3f/polkadot-wiki/edit/master/docs/learn/learn-guides-accounts-proxy.md",tags:[],version:"current",lastUpdatedBy:"Filippo",lastUpdatedAt:1720201256,formattedLastUpdatedAt:"Jul 5, 2024",frontMatter:{id:"learn-guides-accounts-proxy",title:"Polkadot-JS Guides about Proxy Accounts",sidebar_label:"Proxy Guides",description:"Polkadot-JS Guides about Proxy Accounts",keyword:["guides","polkadot-js","accounts","proxy"],slug:"../learn-guides-accounts-proxy"},sidebar:"docs",previous:{title:"Multisig Guides",permalink:"/docs/learn-guides-accounts-multisig"},next:{title:"Pure Proxy Guides",permalink:"/docs/learn-guides-accounts-proxy-pure"}},d={},u=[{value:"Creating Proxy with Polkadot-JS",id:"creating-proxy-with-polkadot-js",level:2},{value:"Removing Proxy with Polkadot-JS",id:"removing-proxy-with-polkadot-js",level:2},{value:"View your Proxy on Polkadot-JS",id:"view-your-proxy-on-polkadot-js",level:2},{value:"Set-up and Use of Time-delayed Proxies with Polkadot-JS",id:"set-up-and-use-of-time-delayed-proxies-with-polkadot-js",level:2},{value:"Proxy calls",id:"proxy-calls",level:2},{value:"Nested Proxy Calls",id:"nested-proxy-calls",level:3}],h={toc:u},y="wrapper";function k(e){var t=e.components,l=(0,n.Z)(e,i);return(0,r.kt)(y,(0,a.Z)({},h,l,{components:t,mdxType:"MDXLayout"}),(0,r.kt)(s.Z,{message:"Polkadot-JS is for developers and power users only. If you need help using the\n[Polkadot-JS UI](/docs/polkadotjs-ui), you can contact the\n[Polkadot Support Team](https://support.polkadot.network/support/home). For more user-friendly tools\nsee the [wallets](./wallets-index), [apps](./apps-index) and [dashboard](./dashboards-index) pages.",mdxType:"MessageBox"}),(0,r.kt)("p",null,"Proxies allow users to use an account (it can be in cold storage or a hot wallet) less frequently\nbut actively participate in the network with the weight of the tokens in that account. Proxies are\nallowed to perform a limited amount of actions related to specific\n",(0,r.kt)("a",{parentName:"p",href:"https://docs.substrate.io/reference/frame-pallets/"},"substrate pallets")," on behalf of another\naccount. The videos below contain more information about using proxies."),(0,r.kt)("div",{className:"row"},(0,r.kt)("div",{className:"col text--center"},(0,r.kt)("a",{href:"https://www.youtube.com/watch?v=1tcygkq52tU"},(0,r.kt)("img",{src:"https://img.youtube.com/vi/1tcygkq52tU/0.jpg",width:"350",style:{borderRadius:10,border:"1px solid slategrey"}})),(0,r.kt)("p",null,(0,r.kt)("a",{href:"https://www.youtube.com/watch?v=1tcygkq52tU"},"Proxy Accounts Tutorial"))),(0,r.kt)("div",{className:"col text--center"},(0,r.kt)("a",{href:"https://www.youtube.com/watch?v=Qv_nJVcvQr8&t=4437s"},(0,r.kt)("img",{src:"https://img.youtube.com/vi/Qv_nJVcvQr8/0.jpg",width:"350",style:{borderRadius:10,border:"1px solid slategrey"}})),(0,r.kt)("p",null,(0,r.kt)("a",{href:"https://www.youtube.com/watch?v=Qv_nJVcvQr8&t=4437s"},"Proxy Accounts Advanced Tutorial")))),(0,r.kt)("admonition",{title:"Know how to check the calls and pallets accessible by proxies",type:"tip"},(0,r.kt)("p",{parentName:"admonition"},"For the latest information on the calls and pallets that can be fully accessed by proxies, check the\n",(0,r.kt)("a",{parentName:"p",href:"https://github.com/paritytech/polkadot-sdk/blob/153543b0c8c582e73f520e5c08cbe33bddfb5f69/runtime/polkadot/src/lib.rs#L1158"},"source code in the runtime folder"),"\non the ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/paritytech/polkadot-sdk"},"Polkadot repository"))),(0,r.kt)("h2",{id:"creating-proxy-with-polkadot-js"},"Creating Proxy with Polkadot-JS"),(0,r.kt)("p",null,"To create a proxy account with Polkadot-JS read\n",(0,r.kt)("a",{parentName:"p",href:"https://support.polkadot.network/support/solutions/articles/65000182179-how-to-create-a-proxy-account"},"this support article"),"."),(0,r.kt)("h2",{id:"removing-proxy-with-polkadot-js"},"Removing Proxy with Polkadot-JS"),(0,r.kt)("p",null,'Read the section "Removing Proxies" on\n',(0,r.kt)("a",{parentName:"p",href:"https://support.polkadot.network/support/solutions/articles/65000182179-how-to-create-a-proxy-account"},"this support page"),"\nto learn how to remove proxies."),(0,r.kt)("h2",{id:"view-your-proxy-on-polkadot-js"},"View your Proxy on Polkadot-JS"),(0,r.kt)("p",null,"To view your proxy, just go on the ",(0,r.kt)("em",{parentName:"p"},"Accounts")," menu in the Polkadot-JS UI, next to the proxied\naccount you will notice a blue icon. Hover on it, and you will see ",(0,r.kt)("em",{parentName:"p"},"Proxy overview"),". Click on it and\nyou will be presented with a list of all proxies for that account."),(0,r.kt)("p",null,(0,r.kt)("img",{alt:"polkadot_view_proxies",src:o(42273).Z,width:"1842",height:"120"})),(0,r.kt)("p",null,"Additionally, you can head over to the ",(0,r.kt)("em",{parentName:"p"},"Chain State")," tab (underneath the ",(0,r.kt)("em",{parentName:"p"},"Developer")," menu) on\n",(0,r.kt)("a",{parentName:"p",href:"https://polkadot.js.org/apps/?rpc=wss%3A%2F%2Frpc.polkadot.io#/chainstate"},"Polkadot-JS Apps"),". If\nyou've created your proxy on a Polkadot\naccount, it is required to change your network accordingly using the top left navigation button. On\nthis page, the proxy pallet should be selected, returning the announcements and proxies functions.\nThe proxies function will allow you to see your created proxies for either one account or for all\naccounts (using the toggle will enable this). Proxy announcements are what time lock proxies do to\nannounce they are going to conduct an action."),(0,r.kt)("p",null,(0,r.kt)("img",{alt:"polkadot_view_proxies_dev",src:o(28902).Z,width:"1871",height:"820"})),(0,r.kt)("h2",{id:"set-up-and-use-of-time-delayed-proxies-with-polkadot-js"},"Set-up and Use of Time-delayed Proxies with Polkadot-JS"),(0,r.kt)("admonition",{type:"info"},(0,r.kt)("p",{parentName:"admonition"},"See ",(0,r.kt)("a",{parentName:"p",href:"https://youtu.be/3L7Vu2SX0PE"},"this video tutorial")," to learn how you can setup and use\ntime-delayed proxies. The video goes through the example below.")),(0,r.kt)("p",null,"Initially the time time-delayed proxy announces its intended action using the ",(0,r.kt)("inlineCode",{parentName:"p"},"proxy.announce"),"\nextrinsic and will wait for the number of blocks defined in the delay time before executing it. The\nproxy will include the hash of the intended function call in the announcement. Within this time\nwindow, the intended action may be canceled by accounts that control the proxy. This can be done by\nthe proxy itself using the ",(0,r.kt)("inlineCode",{parentName:"p"},"proxy.removeAnnouncement")," extrinsic or by the proxied account using the\nthe ",(0,r.kt)("inlineCode",{parentName:"p"},"proxy.rejectAnnouncement")," extrinsic. Now we can use proxies knowing that any malicious actions\ncan be noticed and reverted within a delay period. After the time-delay, the proxy can use the\n",(0,r.kt)("inlineCode",{parentName:"p"},"proxy.proxyAnnounced")," extrinsic to execute the announced call."),(0,r.kt)("p",null,"Let's take for example the stash account Eleanor setting Bob as a time-delayed staking proxy. In\nthis way, if Bob submits an extrinsic to change the reward destination, such extrinsic can be\nrejected by Eleanor. This implies that Eleanor monitors Bob, and that within the time-delay she can\nspot the announced extrinsic. Eleanor can check all the proxy call announcements made by her\naccount's proxies on-chain. On Polkadot-JS UI, go to Developer > Storage > Proxy > Announcements to\ncheck the hashes for the calls made by the proxy accounts and the block height at which they are\nenabled for execution."),(0,r.kt)("p",null,(0,r.kt)("img",{alt:"time-delayed proxies",src:o(54481).Z,width:"1920",height:"800"})),(0,r.kt)("admonition",{type:"info"},(0,r.kt)("p",{parentName:"admonition"},"If you try to use ",(0,r.kt)("inlineCode",{parentName:"p"},"proxy.proxyAnnounced"),' to execute the call within the time-delay window you will\nget an error "Proxy unannounced" since the announcement will be done after the time delay. Also note\nthat regular ',(0,r.kt)("inlineCode",{parentName:"p"},"proxy.proxy")," calls do not work with time-delayed proxies, you need to announce the\ncall first and then execute the announced call on a separate transaction.")),(0,r.kt)("h2",{id:"proxy-calls"},"Proxy calls"),(0,r.kt)("p",null,"Proxy calls are used by proxies to call proxied accounts. These calls are important for example in\nthe case of ",(0,r.kt)("em",{parentName:"p"},"pure")," proxies, as any attempt to sign transactions with a ",(0,r.kt)("em",{parentName:"p"},"pure")," proxy will fail. For\nmore details see the ",(0,r.kt)("a",{parentName:"p",href:"/docs/learn-proxies-pure"},"dedicated section about pure proxies"),"."),(0,r.kt)("h3",{id:"nested-proxy-calls"},"Nested Proxy Calls"),(0,r.kt)("p",null,"As the term suggests, nested proxy calls are proxy calls within proxy calls. Such calls are needed\nif there are proxied accounts that are proxies themselves. In the example diagram below, Alice has a\nstash account that has a ",(0,r.kt)("em",{parentName:"p"},"staking")," proxy account, P-C. P-C is a ",(0,r.kt)("em",{parentName:"p"},"pure")," proxy, a proxied account\noriginally spawned by Charly that is now an ",(0,r.kt)("em",{parentName:"p"},"any")," proxy of P-C and signs everything on its behalf."),(0,r.kt)("p",null,(0,r.kt)("img",{alt:"nested proxy calls",src:o(51050).Z,width:"1920",height:"800"})),(0,r.kt)("p",null,"For example, to bond more funds, Charly needs to submit a ",(0,r.kt)("inlineCode",{parentName:"p"},"prox.proxy")," extrinsic to P-C, which in\nturn submits a ",(0,r.kt)("inlineCode",{parentName:"p"},"proxy.proxy")," extrinsic to Alice including for example a ",(0,r.kt)("inlineCode",{parentName:"p"},"staking.bondExtra"),"\nextrinsic, specifying the number of extra tokens that need to be bounded. If Charly wants to leave,\na new account can take his place as any proxy (before Charly leaves!). There is no need to change\nthe staking proxy account. Also, Alice is the only one who can remove P-C as a staking proxy, and\nP-C can only perform staking-related tasks. For example, P-C cannot send funds out from Alice's\naccount."),(0,r.kt)("p",null,"Proxy calls can be done using the Extrinsic Tab in the Polkadot-JS UI. Nested proxy calls can be\ndone by calling each ",(0,r.kt)("inlineCode",{parentName:"p"},"proxy.proxy")," extrinsic separately, or in some cases by just calling the last\n",(0,r.kt)("inlineCode",{parentName:"p"},"proxy.proxy")," extrinsic. In the diagram above, submitting the proxy call from P-C to Alice will\nautomatically ask for Charly's signature. Thus one proxy call will trigger the second one because\nCharly's is the only ",(0,r.kt)("em",{parentName:"p"},"any")," proxy of P-C, and P-C cannot sign anything. While if we want to use Bob's\naccount we will need to submit all three proxy calls."))}k.isMDXComponent=!0},51050:(e,t,o)=>{"use strict";o.d(t,{Z:()=>a});const a=o.p+"assets/images/nested-proxy-calls-65bdc70624a0b21a087da639743c710d.png"},42273:(e,t,o)=>{"use strict";o.d(t,{Z:()=>a});const a=o.p+"assets/images/polkadot_view_proxies-5c65a3f24dc6902f1734de8887dd5696.png"},28902:(e,t,o)=>{"use strict";o.d(t,{Z:()=>a});const a=o.p+"assets/images/polkadot_view_proxies_dev-c7f33e592f2c37cade0cc3d37e356aef.png"},54481:(e,t,o)=>{"use strict";o.d(t,{Z:()=>a});const a=o.p+"assets/images/time-delayed-proxies-8b85523c3caac25b32d1d884af71c048.png"},46601:()=>{}}]); \ No newline at end of file diff --git a/assets/js/f0ff685a.82d11cad.js b/assets/js/f0ff685a.82d11cad.js deleted file mode 100644 index 5e7579856491..000000000000 --- a/assets/js/f0ff685a.82d11cad.js +++ /dev/null @@ -1 +0,0 @@ -(self.webpackChunk=self.webpackChunk||[]).push([[8191],{35703:(e,t,o)=>{"use strict";o.d(t,{Z:()=>n});var a=o(67294);const n=function(e){var t,o=e.message,n=(0,a.useState)(!0),r=n[0],s=n[1];return a.createElement(a.Fragment,null,r&&a.createElement("div",{className:"message-box"},a.createElement("button",{className:"close-button",onClick:function(){s(!1)}},"\u2716 "),a.createElement("div",{className:"message-content",dangerouslySetInnerHTML:{__html:(t=o,t.replace(/\[(.*?)\]\((.*?)\)/g,'$1'))}})))}},47940:(e,t,o)=>{"use strict";o.d(t,{Z:()=>u});var a=o(74165),n=o(15861),r=o(67294),s=o(87152),i=o(18509),l=o(67425);function c(e,t,o){return p.apply(this,arguments)}function p(){return(p=(0,n.Z)((0,a.Z)().mark((function e(t,o,n){var r,l,c,p,d;return(0,a.Z)().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:r=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 r="wss://rpc.polkadot.io",e.abrupt("break",14);case 7:return r="wss://kusama-rpc.polkadot.io/",e.abrupt("break",14);case 9:return r="wss://statemine-rpc.polkadot.io/",e.abrupt("break",14);case 11:return r="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!==r){e.next=18;break}return e.abrupt("return");case 18:return c=new s.U(r),e.next=21,i.G.create({provider:c});case 21:p=e.sent,(d=o.split(".")).forEach((function(e){e in p&&(p=p[e])})),e.t1=d[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 ("+d[0]+") in "+o);case 35:return e.abrupt("return",l);case 36:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function d(e,t,o,a){switch(t){case"humanReadable":(0,l.HumanReadable)(e,o,a);break;case"precise":(0,l.Precise)(e,o,a);break;case"blocksToDays":(0,l.BlocksToDays)(e,a);break;case"erasToDays":(0,l.ErasToDays)(e,a,o);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 u=function(e){var t=e.network,o=e.path,s=e.defaultValue,i=e.filter,l=void 0===i?void 0:i,p=(0,r.useState)(""),u=p[0],h=p[1];return t=t.toLowerCase(),(0,r.useEffect)((function(){void 0!==l?d(s.toString(),l,t,h):h(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;case"kusama-people":e="wss://kusama-people-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 r=function(){var e=(0,n.Z)((0,a.Z)().mark((function e(){var n;return(0,a.Z)().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,c(t,o,h);case 2:if(void 0!==(n=e.sent)){e.next=7;break}return e.abrupt("return");case 7:void 0!==l?d(n,l,t,h):h(n);case 8:case"end":return e.stop()}}),e)})));return function(){return e.apply(this,arguments)}}();try{r()}catch(i){console.log(i)}}}),[]),u}},67425:e=>{var t="polkadot",o="kusama",a="statemine",n="statemint",r={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,i){var l=void 0;if(s===t||s===n)l=3;else{if(s!==o&&s!==a)return void console.log("Unknown network type found when attempting to apply 'Human Readable' filter");l=6}e=parseFloat(e),i((e=Number.isInteger(e/r[s].precision)?e/r[s].precision+" "+r[s].symbol:(e/r[s].precision).toFixed(l)+" "+r[s].symbol).toString())},Precise:function(e,t,o){o(e=(e=parseFloat(e))/r[t].precision+" "+r[t].symbol)},BlocksToDays:function(e,t){t((e=6*e/86400).toString())},ErasToDays:function(e,r,s){var i=void 0;if(s===t||s===n)i=1;else{if(s!==o&&s!==a)return void console.log("Unknown network type found when attempting to apply 'Human Readable' filter");i=4}r((e/=i).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())}}},56870:(e,t,o)=>{"use strict";o.r(t),o.d(t,{assets:()=>d,contentTitle:()=>c,default:()=>k,frontMatter:()=>l,metadata:()=>p,toc:()=>u});var a=o(87462),n=o(63366),r=(o(67294),o(3905)),s=(o(47940),o(35703)),i=["components"],l={id:"learn-guides-accounts-proxy",title:"Polkadot-JS Guides about Proxy Accounts",sidebar_label:"Proxy Guides",description:"Polkadot-JS Guides about Proxy Accounts",keyword:["guides","polkadot-js","accounts","proxy"],slug:"../learn-guides-accounts-proxy"},c=void 0,p={unversionedId:"learn/learn-guides-accounts-proxy",id:"learn/learn-guides-accounts-proxy",title:"Polkadot-JS Guides about Proxy Accounts",description:"Polkadot-JS Guides about Proxy Accounts",source:"@site/../docs/learn/learn-guides-accounts-proxy.md",sourceDirName:"learn",slug:"/learn-guides-accounts-proxy",permalink:"/docs/learn-guides-accounts-proxy",draft:!1,editUrl:"https://github.com/w3f/polkadot-wiki/edit/master/docs/learn/learn-guides-accounts-proxy.md",tags:[],version:"current",lastUpdatedBy:"Filippo",lastUpdatedAt:1714545713,formattedLastUpdatedAt:"May 1, 2024",frontMatter:{id:"learn-guides-accounts-proxy",title:"Polkadot-JS Guides about Proxy Accounts",sidebar_label:"Proxy Guides",description:"Polkadot-JS Guides about Proxy Accounts",keyword:["guides","polkadot-js","accounts","proxy"],slug:"../learn-guides-accounts-proxy"},sidebar:"docs",previous:{title:"Multisig Guides",permalink:"/docs/learn-guides-accounts-multisig"},next:{title:"Pure Proxy Guides",permalink:"/docs/learn-guides-accounts-proxy-pure"}},d={},u=[{value:"Creating Proxy with Polkadot-JS",id:"creating-proxy-with-polkadot-js",level:2},{value:"Removing Proxy with Polkadot-JS",id:"removing-proxy-with-polkadot-js",level:2},{value:"View your Proxy on Polkadot-JS",id:"view-your-proxy-on-polkadot-js",level:2},{value:"Set-up and Use of Time-delayed Proxies with Polkadot-JS",id:"set-up-and-use-of-time-delayed-proxies-with-polkadot-js",level:2},{value:"Proxy calls",id:"proxy-calls",level:2},{value:"Nested Proxy Calls",id:"nested-proxy-calls",level:3}],h={toc:u},y="wrapper";function k(e){var t=e.components,l=(0,n.Z)(e,i);return(0,r.kt)(y,(0,a.Z)({},h,l,{components:t,mdxType:"MDXLayout"}),(0,r.kt)(s.Z,{message:"Polkadot-JS is for developers and power users only. If you need help using the\n[Polkadot-JS UI](/docs/polkadotjs-ui), you can contact the\n[Polkadot Support Team](https://support.polkadot.network/support/home). For more user-friendly tools\nsee the [wallets](./wallets-index), [apps](./apps-index) and [dashboard](./dashboards-index) pages.",mdxType:"MessageBox"}),(0,r.kt)("p",null,"Proxies allow users to use an account (it can be in cold storage or a hot wallet) less frequently\nbut actively participate in the network with the weight of the tokens in that account. Proxies are\nallowed to perform a limited amount of actions related to specific\n",(0,r.kt)("a",{parentName:"p",href:"https://docs.substrate.io/reference/frame-pallets/"},"substrate pallets")," on behalf of another\naccount. The video below contains more information about using proxies."),(0,r.kt)("div",{className:"row"},(0,r.kt)("div",{className:"col text--center"},(0,r.kt)("a",{href:"https://www.youtube.com/watch?v=1tcygkq52tU"},(0,r.kt)("img",{src:"https://img.youtube.com/vi/1tcygkq52tU/0.jpg",width:"350",style:{borderRadius:10,border:"1px solid slategrey"}})),(0,r.kt)("p",null,(0,r.kt)("a",{href:"https://www.youtube.com/watch?v=1tcygkq52tU"},"Proxy Accounts Tutorial")))),(0,r.kt)("admonition",{title:"Know how to check the calls and pallets accessible by proxies",type:"tip"},(0,r.kt)("p",{parentName:"admonition"},"For the latest information on the calls and pallets that can be fully accessed by proxies, check the\n",(0,r.kt)("a",{parentName:"p",href:"https://github.com/paritytech/polkadot-sdk/blob/153543b0c8c582e73f520e5c08cbe33bddfb5f69/runtime/polkadot/src/lib.rs#L1158"},"source code in the runtime folder"),"\non the ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/paritytech/polkadot-sdk"},"Polkadot repository"))),(0,r.kt)("h2",{id:"creating-proxy-with-polkadot-js"},"Creating Proxy with Polkadot-JS"),(0,r.kt)("p",null,"To create a proxy account with Polkadot-JS read\n",(0,r.kt)("a",{parentName:"p",href:"https://support.polkadot.network/support/solutions/articles/65000182179-how-to-create-a-proxy-account"},"this support article"),"."),(0,r.kt)("h2",{id:"removing-proxy-with-polkadot-js"},"Removing Proxy with Polkadot-JS"),(0,r.kt)("p",null,'Read the section "Removing Proxies" on\n',(0,r.kt)("a",{parentName:"p",href:"https://support.polkadot.network/support/solutions/articles/65000182179-how-to-create-a-proxy-account"},"this support page"),"\nto learn how to remove proxies."),(0,r.kt)("h2",{id:"view-your-proxy-on-polkadot-js"},"View your Proxy on Polkadot-JS"),(0,r.kt)("p",null,"To view your proxy, just go on the ",(0,r.kt)("em",{parentName:"p"},"Accounts")," menu in the Polkadot-JS UI, next to the proxied\naccount you will notice a blue icon. Hover on it, and you will see ",(0,r.kt)("em",{parentName:"p"},"Proxy overview"),". Click on it and\nyou will be presented with a list of all proxies for that account."),(0,r.kt)("p",null,(0,r.kt)("img",{alt:"polkadot_view_proxies",src:o(42273).Z,width:"1842",height:"120"})),(0,r.kt)("p",null,"Additionally, you can head over to the ",(0,r.kt)("em",{parentName:"p"},"Chain State")," tab (underneath the ",(0,r.kt)("em",{parentName:"p"},"Developer")," menu) on\n",(0,r.kt)("a",{parentName:"p",href:"https://polkadot.js.org/apps/?rpc=wss%3A%2F%2Frpc.polkadot.io#/chainstate"},"Polkadot-JS Apps"),". If\nyou've created your proxy on a Polkadot\naccount, it is required to change your network accordingly using the top left navigation button. On\nthis page, the proxy pallet should be selected, returning the announcements and proxies functions.\nThe proxies function will allow you to see your created proxies for either one account or for all\naccounts (using the toggle will enable this). Proxy announcements are what time lock proxies do to\nannounce they are going to conduct an action."),(0,r.kt)("p",null,(0,r.kt)("img",{alt:"polkadot_view_proxies_dev",src:o(28902).Z,width:"1871",height:"820"})),(0,r.kt)("h2",{id:"set-up-and-use-of-time-delayed-proxies-with-polkadot-js"},"Set-up and Use of Time-delayed Proxies with Polkadot-JS"),(0,r.kt)("admonition",{type:"info"},(0,r.kt)("p",{parentName:"admonition"},"See ",(0,r.kt)("a",{parentName:"p",href:"https://youtu.be/3L7Vu2SX0PE"},"this video tutorial")," to learn how you can setup and use\ntime-delayed proxies. The video goes through the example below.")),(0,r.kt)("p",null,"Initially the time time-delayed proxy announces its intended action using the ",(0,r.kt)("inlineCode",{parentName:"p"},"proxy.announce"),"\nextrinsic and will wait for the number of blocks defined in the delay time before executing it. The\nproxy will include the hash of the intended function call in the announcement. Within this time\nwindow, the intended action may be canceled by accounts that control the proxy. This can be done by\nthe proxy itself using the ",(0,r.kt)("inlineCode",{parentName:"p"},"proxy.removeAnnouncement")," extrinsic or by the proxied account using the\nthe ",(0,r.kt)("inlineCode",{parentName:"p"},"proxy.rejectAnnouncement")," extrinsic. Now we can use proxies knowing that any malicious actions\ncan be noticed and reverted within a delay period. After the time-delay, the proxy can use the\n",(0,r.kt)("inlineCode",{parentName:"p"},"proxy.proxyAnnounced")," extrinsic to execute the announced call."),(0,r.kt)("p",null,"Let's take for example the stash account Eleanor setting Bob as a time-delayed staking proxy. In\nthis way, if Bob submits an extrinsic to change the reward destination, such extrinsic can be\nrejected by Eleanor. This implies that Eleanor monitors Bob, and that within the time-delay she can\nspot the announced extrinsic. Eleanor can check all the proxy call announcements made by her\naccount's proxies on-chain. On Polkadot-JS UI, go to Developer > Storage > Proxy > Announcements to\ncheck the hashes for the calls made by the proxy accounts and the block height at which they are\nenabled for execution."),(0,r.kt)("p",null,(0,r.kt)("img",{alt:"time-delayed proxies",src:o(54481).Z,width:"1920",height:"800"})),(0,r.kt)("admonition",{type:"info"},(0,r.kt)("p",{parentName:"admonition"},"If you try to use ",(0,r.kt)("inlineCode",{parentName:"p"},"proxy.proxyAnnounced"),' to execute the call within the time-delay window you will\nget an error "Proxy unannounced" since the announcement will be done after the time delay. Also note\nthat regular ',(0,r.kt)("inlineCode",{parentName:"p"},"proxy.proxy")," calls do not work with time-delayed proxies, you need to announce the\ncall first and then execute the announced call on a separate transaction.")),(0,r.kt)("h2",{id:"proxy-calls"},"Proxy calls"),(0,r.kt)("p",null,"Proxy calls are used by proxies to call proxied accounts. These calls are important for example in\nthe case of ",(0,r.kt)("em",{parentName:"p"},"pure")," proxies, as any attempt to sign transactions with a ",(0,r.kt)("em",{parentName:"p"},"pure")," proxy will fail. For\nmore details see the ",(0,r.kt)("a",{parentName:"p",href:"/docs/learn-proxies-pure"},"dedicated section about pure proxies"),"."),(0,r.kt)("h3",{id:"nested-proxy-calls"},"Nested Proxy Calls"),(0,r.kt)("p",null,"As the term suggests, nested proxy calls are proxy calls within proxy calls. Such calls are needed\nif there are proxied accounts that are proxies themselves. In the example diagram below, Alice has a\nstash account that has a ",(0,r.kt)("em",{parentName:"p"},"staking")," proxy account, P-C. P-C is a ",(0,r.kt)("em",{parentName:"p"},"pure")," proxy, a proxied account\noriginally spawned by Charly that is now an ",(0,r.kt)("em",{parentName:"p"},"any")," proxy of P-C and signs everything on its behalf."),(0,r.kt)("p",null,(0,r.kt)("img",{alt:"nested proxy calls",src:o(51050).Z,width:"1920",height:"800"})),(0,r.kt)("p",null,"For example, to bond more funds, Charly needs to submit a ",(0,r.kt)("inlineCode",{parentName:"p"},"prox.proxy")," extrinsic to P-C, which in\nturn submits a ",(0,r.kt)("inlineCode",{parentName:"p"},"proxy.proxy")," extrinsic to Alice including for example a ",(0,r.kt)("inlineCode",{parentName:"p"},"staking.bondExtra"),"\nextrinsic, specifying the number of extra tokens that need to be bounded. If Charly wants to leave,\na new account can take his place as any proxy (before Charly leaves!). There is no need to change\nthe staking proxy account. Also, Alice is the only one who can remove P-C as a staking proxy, and\nP-C can only perform staking-related tasks. For example, P-C cannot send funds out from Alice's\naccount."),(0,r.kt)("p",null,"Proxy calls can be done using the Extrinsic Tab in the Polkadot-JS UI. Nested proxy calls can be\ndone by calling each ",(0,r.kt)("inlineCode",{parentName:"p"},"proxy.proxy")," extrinsic separately, or in some cases by just calling the last\n",(0,r.kt)("inlineCode",{parentName:"p"},"proxy.proxy")," extrinsic. In the diagram above, submitting the proxy call from P-C to Alice will\nautomatically ask for Charly's signature. Thus one proxy call will trigger the second one because\nCharly's is the only ",(0,r.kt)("em",{parentName:"p"},"any")," proxy of P-C, and P-C cannot sign anything. While if we want to use Bob's\naccount we will need to submit all three proxy calls."))}k.isMDXComponent=!0},51050:(e,t,o)=>{"use strict";o.d(t,{Z:()=>a});const a=o.p+"assets/images/nested-proxy-calls-65bdc70624a0b21a087da639743c710d.png"},42273:(e,t,o)=>{"use strict";o.d(t,{Z:()=>a});const a=o.p+"assets/images/polkadot_view_proxies-5c65a3f24dc6902f1734de8887dd5696.png"},28902:(e,t,o)=>{"use strict";o.d(t,{Z:()=>a});const a=o.p+"assets/images/polkadot_view_proxies_dev-c7f33e592f2c37cade0cc3d37e356aef.png"},54481:(e,t,o)=>{"use strict";o.d(t,{Z:()=>a});const a=o.p+"assets/images/time-delayed-proxies-8b85523c3caac25b32d1d884af71c048.png"},46601:()=>{}}]); \ No newline at end of file diff --git a/assets/js/runtime~main.41bbb12e.js b/assets/js/runtime~main.2ca21e3a.js similarity index 98% rename from assets/js/runtime~main.41bbb12e.js rename to assets/js/runtime~main.2ca21e3a.js index aa2c8ca61970..10e40050aaca 100644 --- a/assets/js/runtime~main.41bbb12e.js +++ b/assets/js/runtime~main.2ca21e3a.js @@ -1 +1 @@ -(()=>{"use strict";var e,d,a,f,c={},b={};function r(e){var d=b[e];if(void 0!==d)return d.exports;var a=b[e]={id:e,loaded:!1,exports:{}};return c[e].call(a.exports,a,a.exports,r),a.loaded=!0,a.exports}r.m=c,e=[],r.O=(d,a,f,c)=>{if(!a){var b=1/0;for(i=0;i=c)&&Object.keys(r.O).every((e=>r.O[e](a[o])))?a.splice(o--,1):(t=!1,c0&&e[i-1][2]>c;i--)e[i]=e[i-1];e[i]=[a,f,c]},r.n=e=>{var d=e&&e.__esModule?()=>e.default:()=>e;return r.d(d,{a:d}),d},a=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,r.t=function(e,f){if(1&f&&(e=this(e)),8&f)return e;if("object"==typeof e&&e){if(4&f&&e.__esModule)return e;if(16&f&&"function"==typeof e.then)return e}var c=Object.create(null);r.r(c);var b={};d=d||[null,a({}),a([]),a(a)];for(var t=2&f&&e;"object"==typeof t&&!~d.indexOf(t);t=a(t))Object.getOwnPropertyNames(t).forEach((d=>b[d]=()=>e[d]));return b.default=()=>e,r.d(c,b),c},r.d=(e,d)=>{for(var a in d)r.o(d,a)&&!r.o(e,a)&&Object.defineProperty(e,a,{enumerable:!0,get:d[a]})},r.f={},r.e=e=>Promise.all(Object.keys(r.f).reduce(((d,a)=>(r.f[a](e,d),d)),[])),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",356:"797239df",502:"2d429218",509:"2e0c35d5",537:"3829cf1d",576:"f52abf29",587:"76efc107",609:"d569989b",648:"4403bb94",657:"386bfe51",660:"387813b8",690:"e4ef088f",691:"145746f5",740:"078895e8",810:"23498fd5",948:"d9a69e3a",1062:"f90fa732",1083:"899aadcc",1090:"cfd53ea4",1125:"3184af97",1207:"49ea81bb",1211:"73c3bebc",1213:"25f2bd2a",1239:"f359a251",1288:"fabebe44",1299:"74df6a22",1306:"543c9f0a",1372:"b61f6dc7",1415:"4d76887f",1419:"f750c690",1446:"5136ee31",1451:"f44679e7",1453:"497334c4",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",1759:"e8522a07",1760:"8081c0c6",1774:"9e6341e5",1786:"d9ef69a7",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",2174:"f2b5c614",2194:"6151e7ce",2242:"f3027c84",2248:"da9f79cb",2261:"333929a0",2327:"efba78c5",2354:"493c7fdf",2377:"f9358c97",2399:"8d3a1bf8",2507:"7c78c461",2508:"918b38b6",2552:"863c4753",2581:"967fa6d4",2633:"e2e89062",2635:"0b632434",2664:"9662c81e",2665:"f4130007",2677:"ece9fdae",2683:"943aba4c",2704:"f3bde756",2712:"c2c6a3a6",2749:"b906f375",2754:"78868b16",2758:"9e3f6a8a",2794:"feadf832",2813:"d000eb73",2884:"5d69d9d4",2909:"f4200fe5",2914:"2be0d940",2949:"2ea50c63",2969:"979a04e7",3029:"6544ec02",3066:"af40287e",3091:"b0a48d97",3132:"85afe03a",3262:"8a8a7d05",3274:"41f7224c",3330:"e31fc461",3332:"3497b7c6",3348:"7ccc428f",3356:"f14351c1",3375:"d42819bc",3451:"7c138549",3452:"3d1bf5db",3484:"5c90fc9b",3495:"f861e7c0",3513:"41b7b3e8",3518:"59acd71c",3531:"879e564b",3554:"d5909206",3576:"73d1b372",3599:"21899dd2",3620:"f137ce68",3643:"cb9afd28",3665:"f1585bfb",3667:"b0cbc1d4",3668:"b225a2ce",3669:"dbbd9e76",3757:"bea375d6",3828:"e5615b18",3842:"ff6596ea",3933:"cda87995",3945:"f8518919",3978:"c8dd560b",4004:"ec3b6a32",4097:"eef3f1dd",4105:"702d5d94",4126:"5355b952",4143:"9f804621",4174:"a7c27f4d",4187:"6a04f266",4195:"c4f5d8e4",4220:"437b4e16",4338:"84ede15a",4355:"19ed4d4c",4359:"dc36d550",4363:"f2c21b54",4379:"c662f00a",4385:"e00ac272",4436:"b418feb9",4445:"4d9b9869",4458:"af2ff1b5",4507:"a7b37b86",4537:"1ae2b102",4541:"3e56470e",4566:"694e7470",4620:"48d75399",4634:"54338ffb",4661:"db9d4dae",4666:"f41c4e9d",4672:"43ee4f22",4674:"fea93377",4885:"2462cc91",4909:"f0855ff9",4916:"c1bbdb2a",4933:"08c12c3a",5005:"320c8a05",5011:"7e9389ad",5013:"c41801b5",5049:"e3d2722f",5052:"6116139f",5068:"b7bd3ab3",5084:"196e07e8",5103:"db039c7f",5116:"8d48ec84",5132:"a4c751bb",5157:"d27ae88d",5251:"c78e4f7d",5281:"31bd35e0",5341:"9913464d",5422:"b3719d54",5472:"72b78d4a",5483:"f7acb151",5492:"1882e65d",5548:"d6b0148d",5594:"269bc3bb",5645:"2d34559d",5651:"9e2042f5",5704:"b9b4ec9e",5752:"73a7060c",5806:"a8f54fb1",5821:"571c8793",5933:"e77078a1",5969:"7dcec981",5989:"fbf58567",6060:"556d3f96",6104:"c7c5ba1a",6140:"32e8da05",6220:"d01f45b7",6253:"a29dc56e",6255:"452ad91d",6285:"f10f9928",6294:"bbba852d",6298:"3611be04",6312:"dbc4065c",6325:"3002ebf4",6357:"43cda9e8",6373:"ceaa29cb",6482:"49816380",6579:"b3558274",6585:"13b7bafa",6598:"ca9fe671",6673:"af3013e9",6689:"f2521980",6730:"73617284",6779:"c5d9e474",6812:"5193d8a9",6827:"279fb1d6",6841:"5c6a20c2",6918:"29a046f3",6920:"ccc1222e",6946:"4642ab5c",7022:"543610b9",7051:"240a6b01",7061:"feea648c",7202:"4a8eb552",7211:"f44ed8f8",7270:"90a09ad1",7288:"6f1a81b8",7313:"db3d6c4d",7368:"bb8b1738",7388:"bd701914",7466:"a5b3561d",7518:"7266120e",7540:"a2d5a6d8",7584:"98a431f4",7633:"b940de31",7654:"c07c2447",7683:"cc44e8fd",7714:"591eca19",7738:"113faa87",7778:"41871d53",7799:"8b670b2b",7823:"9e76b49d",7830:"15985664",7837:"0a3f0c9b",7858:"d6a97e7e",7908:"33bbe353",7918:"17896441",7920:"1a4e3797",7932:"26dc7bd1",7940:"ad762f86",7961:"a2800a5b",8034:"fecdcc34",8049:"a87fd2e4",8067:"69b97ecd",8086:"b133b626",8115:"8247eba8",8132:"b0d34550",8138:"694672cd",8139:"386099fc",8158:"dc0f9344",8178:"9a679a70",8191:"f0ff685a",8215:"30d868e8",8236:"ffd76171",8270:"12331e8b",8343:"ad5a1373",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",8901:"b48c599b",8913:"706277b1",8951:"e495ca4d",8956:"2e944e01",8970:"a44b8423",9009:"afddde9d",9023:"c97a416e",9062:"b38833d4",9071:"60738e36",9112:"a4b71220",9217:"64c7e1cc",9226:"2f3b630e",9315:"6d2ffbf3",9323:"131c7f55",9351:"36051dfe",9478:"c7a2145e",9514:"1be78505",9567:"c977dfe8",9596:"390ca211",9626:"32c9742a",9764:"dc776cbc",9771:"89a76fd2",9779:"cd144357",9790:"7ffd66a6",9802:"1e15616a",9806:"51fbc2c9",9817:"14eb3368",9856:"06597bc8",9905:"b0cb055f",9962:"dd2fa029",9977:"3104d5d8",9988:"09dda9ae",9993:"482bfb5c"}[e]||e)+"."+{1:"5563b650",6:"d3b10840",12:"9f327517",43:"6ed5990d",53:"ae15f52b",63:"3da4421b",150:"8caac865",192:"da9e04e3",217:"0102c432",230:"7be1137d",289:"6adb36ed",315:"e1c7c166",356:"220d0258",502:"8957ccb4",509:"1c31983f",537:"0c427b12",576:"f33f5486",587:"7c7a1647",609:"68d23dbf",648:"1982160f",657:"7a85ba0e",660:"23b23550",690:"b7ee2ac4",691:"fe9acfda",740:"fe6b97e6",810:"bbdf17b5",948:"000b418b",1062:"1b3f4042",1083:"98434a72",1090:"432ead1f",1125:"a5050b17",1207:"7916f6ea",1211:"84a813cb",1213:"6182a0a2",1239:"0ca258d5",1288:"4a133ff1",1299:"7dda7011",1306:"efa9e91d",1372:"44b4d9b2",1415:"5d52c06a",1419:"749e21fb",1426:"ad86846c",1446:"2265d608",1451:"d8b23a48",1453:"c7fd8513",1486:"9712076d",1494:"31e0a0f5",1506:"c61263c9",1529:"f19d0841",1585:"e1ec66d3",1598:"c14606e3",1635:"4344e2ee",1678:"6b0f0d25",1686:"ce7ae0b6",1703:"a7850cef",1713:"ee502c47",1723:"71e5f4cd",1748:"23865353",1759:"8754c4e5",1760:"526a2dff",1774:"1c405b46",1786:"b942951f",1825:"23728930",1872:"bb402936",1953:"e4392cf0",1957:"dac895d5",1966:"8193149d",1975:"4b60acbf",1979:"6d282955",2008:"c4929184",2042:"8bcdb8f5",2070:"ff80806a",2117:"8fdf832d",2119:"1b52fa22",2136:"8a33bec7",2169:"6f3bfb43",2174:"b4eb1826",2194:"7cc71020",2242:"62be819f",2248:"3ce931da",2261:"2f74827e",2327:"393fd266",2354:"723de3d5",2377:"1b2524e6",2399:"42d85437",2507:"26692215",2508:"fbf562a7",2552:"6484aed3",2581:"619df153",2633:"abda080c",2635:"830edb6d",2664:"d52d8b8f",2665:"b3e97431",2677:"c8e81209",2683:"891415fc",2704:"c83746c5",2712:"a44e2c30",2749:"e7d5e53a",2754:"b000525e",2758:"a6af0a68",2794:"0f0123ed",2813:"62c26829",2884:"9039bbf0",2909:"b7a3b117",2914:"86b1379a",2949:"7738f0eb",2969:"1ec9198c",3029:"efe4503a",3066:"2d6ba895",3091:"872881f4",3132:"52079c42",3262:"920a917c",3274:"94f077ac",3330:"f8f9d28c",3332:"59059207",3348:"32c50c47",3356:"44e16802",3375:"186f73f5",3451:"ea6a7703",3452:"d18a3afc",3484:"2f90373b",3495:"6382f4fa",3513:"34c56222",3518:"8601616d",3531:"505d5e2c",3554:"6dc12371",3576:"7a6f241f",3599:"d5398d39",3620:"70c09097",3643:"c2dd3728",3665:"fb0ea919",3667:"a758aa8d",3668:"b34aa74c",3669:"ffd12b05",3757:"00a4f022",3828:"d39d947c",3842:"6f03ad6b",3933:"b4da0711",3945:"39609227",3978:"022efc03",4004:"47637506",4097:"80cd7133",4105:"5e24a8e9",4126:"127145f8",4143:"e7e8cc89",4174:"d074f050",4187:"96b9c920",4195:"cfe133f9",4220:"446b5536",4338:"b33aec53",4355:"30ff1600",4359:"c5923bbf",4363:"c101350a",4379:"9cbf1426",4385:"960c00ca",4436:"694a4a50",4445:"8f3d0e24",4458:"ea71f5fb",4507:"9e482a81",4537:"080787ca",4541:"978ae83c",4566:"ab0d60ad",4620:"92196505",4634:"7815e94c",4661:"8b988bf0",4666:"abf3d2b4",4672:"0175aaca",4674:"54af737f",4885:"ccc00357",4909:"3ae4713d",4916:"4b3a7688",4933:"3715dd81",4972:"2c004fcc",5005:"d567e8ec",5011:"469e67df",5013:"109f06f4",5049:"4fc07d07",5052:"2844f9b7",5068:"e3d0ecc4",5084:"26c3888d",5103:"3f268ad3",5116:"606cacfa",5132:"9a303e8e",5157:"3f697f28",5251:"4da5a1cf",5281:"6761b31b",5341:"6a468aaa",5422:"a5cba597",5472:"774516e3",5483:"96c2b56e",5492:"7b10a32b",5548:"f7eecc13",5594:"3f595e2a",5645:"8aa81c9b",5651:"8a76a52f",5704:"70bd0ba6",5752:"0d880dc2",5806:"1b9a2586",5821:"c070cc17",5933:"79294ec8",5969:"d61af9db",5989:"0b1cb12b",6060:"e63c3157",6104:"20ed7575",6140:"45dd5be2",6220:"53ca5510",6253:"50057d87",6255:"8509f60e",6285:"78ce35a2",6294:"b077023f",6298:"56d411dd",6312:"da0c23f7",6316:"24db8bc9",6325:"676f44c8",6357:"4fb9d9ea",6373:"b8a24443",6482:"502a0b67",6495:"93b21474",6579:"0a500dc3",6585:"2f1b2c7e",6598:"4350b7cd",6673:"4c461033",6689:"4e7a2a8b",6730:"51915769",6779:"407834dd",6812:"1d1abd61",6827:"b0d27a42",6841:"32a50fa8",6918:"61dac2e1",6920:"f9f50142",6945:"96d36007",6946:"92f77118",7022:"fea426f7",7051:"db5e2280",7061:"dd334eb5",7202:"901aed29",7211:"81eed936",7270:"cb231451",7288:"e109fcf4",7313:"ec5e7fed",7368:"4aaf52b8",7388:"2ec93c74",7466:"6c38d255",7518:"0b210bc0",7540:"9bb29901",7584:"75defa39",7633:"521ae57e",7654:"9453e233",7683:"2d51b550",7714:"4d67463d",7724:"2906ce0b",7738:"3524d0b4",7778:"8da5b4da",7799:"b308c638",7823:"12af6f15",7830:"a2703576",7837:"d3f6c850",7858:"f9862ed2",7908:"3c96efa3",7918:"916bc4d8",7920:"16d7152d",7932:"92bc3bec",7940:"6aaed113",7961:"f5159cb6",8034:"dca0d1af",8049:"54678671",8067:"0606a87b",8086:"e5b42fd0",8115:"2ebb714e",8132:"7bb8f424",8138:"43973274",8139:"e6e58a57",8158:"bb13e2eb",8178:"62f5ed0b",8191:"82d11cad",8215:"775d309b",8236:"2798771b",8270:"4e1881d4",8343:"2290a31c",8355:"85743f7e",8361:"74bdcabf",8444:"b4852ff5",8609:"2fde4e45",8648:"39950abe",8702:"4e669de9",8757:"4f1ee155",8791:"47405197",8831:"d0fa10f7",8842:"afbf5b86",8855:"142c7fbf",8860:"91b3db71",8866:"4bdda915",8876:"a30609d2",8894:"ba661129",8901:"cc3ae736",8913:"95810b09",8951:"e9b45337",8956:"df7dec1a",8970:"2ffda527",9009:"d20693f7",9023:"44d59de8",9062:"67e8d92e",9071:"9e701ff9",9112:"38b794db",9217:"4b3d9e10",9226:"0060c0ae",9315:"d5006aa3",9323:"9d2f6e08",9351:"1de7a366",9478:"ce7ecbd2",9487:"48bf43fe",9514:"693800c6",9567:"64ea8b3b",9596:"5b750b89",9626:"b43c6d01",9764:"f44c5e05",9771:"be039c22",9779:"e397e514",9790:"eca8e014",9802:"11684b0f",9806:"c3977137",9817:"5ba13cdf",9856:"99a149db",9905:"3e1ce1bd",9962:"a3138a8e",9977:"f5ab6a05",9988:"abbafc27",9993:"7bf6c4e1"}[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,d)=>Object.prototype.hasOwnProperty.call(e,d),f={},r.l=(e,d,a,c)=>{if(f[e])f[e].push(d);else{var b,t;if(void 0!==a)for(var o=document.getElementsByTagName("script"),n=0;n{b.onerror=b.onload=null,clearTimeout(u);var c=f[e];if(delete f[e],b.parentNode&&b.parentNode.removeChild(b),c&&c.forEach((e=>e(a))),d)return d(a)},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",49816380:"6482",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","797239df":"356","2d429218":"502","2e0c35d5":"509","3829cf1d":"537",f52abf29:"576","76efc107":"587",d569989b:"609","4403bb94":"648","386bfe51":"657","387813b8":"660",e4ef088f:"690","145746f5":"691","078895e8":"740","23498fd5":"810",d9a69e3a:"948",f90fa732:"1062","899aadcc":"1083",cfd53ea4:"1090","3184af97":"1125","49ea81bb":"1207","73c3bebc":"1211","25f2bd2a":"1213",f359a251:"1239",fabebe44:"1288","74df6a22":"1299","543c9f0a":"1306",b61f6dc7:"1372","4d76887f":"1415",f750c690:"1419","5136ee31":"1446",f44679e7:"1451","497334c4":"1453","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",e8522a07:"1759","8081c0c6":"1760","9e6341e5":"1774",d9ef69a7:"1786","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",f2b5c614:"2174","6151e7ce":"2194",f3027c84:"2242",da9f79cb:"2248","333929a0":"2261",efba78c5:"2327","493c7fdf":"2354",f9358c97:"2377","8d3a1bf8":"2399","7c78c461":"2507","918b38b6":"2508","863c4753":"2552","967fa6d4":"2581",e2e89062:"2633","0b632434":"2635","9662c81e":"2664",f4130007:"2665",ece9fdae:"2677","943aba4c":"2683",f3bde756:"2704",c2c6a3a6:"2712",b906f375:"2749","78868b16":"2754","9e3f6a8a":"2758",feadf832:"2794",d000eb73:"2813","5d69d9d4":"2884",f4200fe5:"2909","2be0d940":"2914","2ea50c63":"2949","979a04e7":"2969","6544ec02":"3029",af40287e:"3066",b0a48d97:"3091","85afe03a":"3132","8a8a7d05":"3262","41f7224c":"3274",e31fc461:"3330","3497b7c6":"3332","7ccc428f":"3348",f14351c1:"3356",d42819bc:"3375","7c138549":"3451","3d1bf5db":"3452","5c90fc9b":"3484",f861e7c0:"3495","41b7b3e8":"3513","59acd71c":"3518","879e564b":"3531",d5909206:"3554","73d1b372":"3576","21899dd2":"3599",f137ce68:"3620",cb9afd28:"3643",f1585bfb:"3665",b0cbc1d4:"3667",b225a2ce:"3668",dbbd9e76:"3669",bea375d6:"3757",e5615b18:"3828",ff6596ea:"3842",cda87995:"3933",f8518919:"3945",c8dd560b:"3978",ec3b6a32:"4004",eef3f1dd:"4097","702d5d94":"4105","5355b952":"4126","9f804621":"4143",a7c27f4d:"4174","6a04f266":"4187",c4f5d8e4:"4195","437b4e16":"4220","84ede15a":"4338","19ed4d4c":"4355",dc36d550:"4359",f2c21b54:"4363",c662f00a:"4379",e00ac272:"4385",b418feb9:"4436","4d9b9869":"4445",af2ff1b5:"4458",a7b37b86:"4507","1ae2b102":"4537","3e56470e":"4541","694e7470":"4566","48d75399":"4620","54338ffb":"4634",db9d4dae:"4661",f41c4e9d:"4666","43ee4f22":"4672",fea93377:"4674","2462cc91":"4885",f0855ff9:"4909",c1bbdb2a:"4916","08c12c3a":"4933","320c8a05":"5005","7e9389ad":"5011",c41801b5:"5013",e3d2722f:"5049","6116139f":"5052",b7bd3ab3:"5068","196e07e8":"5084",db039c7f:"5103","8d48ec84":"5116",a4c751bb:"5132",d27ae88d:"5157",c78e4f7d:"5251","31bd35e0":"5281","9913464d":"5341",b3719d54:"5422","72b78d4a":"5472",f7acb151:"5483","1882e65d":"5492",d6b0148d:"5548","269bc3bb":"5594","2d34559d":"5645","9e2042f5":"5651",b9b4ec9e:"5704","73a7060c":"5752",a8f54fb1:"5806","571c8793":"5821",e77078a1:"5933","7dcec981":"5969",fbf58567:"5989","556d3f96":"6060",c7c5ba1a:"6104","32e8da05":"6140",d01f45b7:"6220",a29dc56e:"6253","452ad91d":"6255",f10f9928:"6285",bbba852d:"6294","3611be04":"6298",dbc4065c:"6312","3002ebf4":"6325","43cda9e8":"6357",ceaa29cb:"6373",b3558274:"6579","13b7bafa":"6585",ca9fe671:"6598",af3013e9:"6673",f2521980:"6689",c5d9e474:"6779","5193d8a9":"6812","279fb1d6":"6827","5c6a20c2":"6841","29a046f3":"6918",ccc1222e:"6920","4642ab5c":"6946","543610b9":"7022","240a6b01":"7051",feea648c:"7061","4a8eb552":"7202",f44ed8f8:"7211","90a09ad1":"7270","6f1a81b8":"7288",db3d6c4d:"7313",bb8b1738:"7368",bd701914:"7388",a5b3561d:"7466","7266120e":"7518",a2d5a6d8:"7540","98a431f4":"7584",b940de31:"7633",c07c2447:"7654",cc44e8fd:"7683","591eca19":"7714","113faa87":"7738","41871d53":"7778","8b670b2b":"7799","9e76b49d":"7823","0a3f0c9b":"7837",d6a97e7e:"7858","33bbe353":"7908","1a4e3797":"7920","26dc7bd1":"7932",ad762f86:"7940",a2800a5b:"7961",fecdcc34:"8034",a87fd2e4:"8049","69b97ecd":"8067",b133b626:"8086","8247eba8":"8115",b0d34550:"8132","694672cd":"8138","386099fc":"8139",dc0f9344:"8158","9a679a70":"8178",f0ff685a:"8191","30d868e8":"8215",ffd76171:"8236","12331e8b":"8270",ad5a1373:"8343",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",b48c599b:"8901","706277b1":"8913",e495ca4d:"8951","2e944e01":"8956",a44b8423:"8970",afddde9d:"9009",c97a416e:"9023",b38833d4:"9062","60738e36":"9071",a4b71220:"9112","64c7e1cc":"9217","2f3b630e":"9226","6d2ffbf3":"9315","131c7f55":"9323","36051dfe":"9351",c7a2145e:"9478","1be78505":"9514",c977dfe8:"9567","390ca211":"9596","32c9742a":"9626",dc776cbc:"9764","89a76fd2":"9771",cd144357:"9779","7ffd66a6":"9790","1e15616a":"9802","51fbc2c9":"9806","14eb3368":"9817","06597bc8":"9856",b0cb055f:"9905",dd2fa029:"9962","3104d5d8":"9977","09dda9ae":"9988","482bfb5c":"9993"}[e]||e,r.p+r.u(e)},(()=>{var e={1303:0,532:0};r.f.j=(d,a)=>{var f=r.o(e,d)?e[d]:void 0;if(0!==f)if(f)a.push(f[2]);else if(/^(1303|532)$/.test(d))e[d]=0;else{var c=new Promise(((a,c)=>f=e[d]=[a,c]));a.push(f[2]=c);var b=r.p+r.u(d),t=new Error;r.l(b,(a=>{if(r.o(e,d)&&(0!==(f=e[d])&&(e[d]=void 0),f)){var c=a&&("load"===a.type?"missing":a.type),b=a&&a.target&&a.target.src;t.message="Loading chunk "+d+" failed.\n("+c+": "+b+")",t.name="ChunkLoadError",t.type=c,t.request=b,f[1](t)}}),"chunk-"+d,d)}},r.O.j=d=>0===e[d];var d=(d,a)=>{var f,c,[b,t,o]=a,n=0;if(b.some((d=>0!==e[d]))){for(f in t)r.o(t,f)&&(r.m[f]=t[f]);if(o)var i=o(r)}for(d&&d(a);n{"use strict";var e,d,a,f,c={},b={};function r(e){var d=b[e];if(void 0!==d)return d.exports;var a=b[e]={id:e,loaded:!1,exports:{}};return c[e].call(a.exports,a,a.exports,r),a.loaded=!0,a.exports}r.m=c,e=[],r.O=(d,a,f,c)=>{if(!a){var b=1/0;for(i=0;i=c)&&Object.keys(r.O).every((e=>r.O[e](a[o])))?a.splice(o--,1):(t=!1,c0&&e[i-1][2]>c;i--)e[i]=e[i-1];e[i]=[a,f,c]},r.n=e=>{var d=e&&e.__esModule?()=>e.default:()=>e;return r.d(d,{a:d}),d},a=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,r.t=function(e,f){if(1&f&&(e=this(e)),8&f)return e;if("object"==typeof e&&e){if(4&f&&e.__esModule)return e;if(16&f&&"function"==typeof e.then)return e}var c=Object.create(null);r.r(c);var b={};d=d||[null,a({}),a([]),a(a)];for(var t=2&f&&e;"object"==typeof t&&!~d.indexOf(t);t=a(t))Object.getOwnPropertyNames(t).forEach((d=>b[d]=()=>e[d]));return b.default=()=>e,r.d(c,b),c},r.d=(e,d)=>{for(var a in d)r.o(d,a)&&!r.o(e,a)&&Object.defineProperty(e,a,{enumerable:!0,get:d[a]})},r.f={},r.e=e=>Promise.all(Object.keys(r.f).reduce(((d,a)=>(r.f[a](e,d),d)),[])),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",356:"797239df",502:"2d429218",509:"2e0c35d5",537:"3829cf1d",576:"f52abf29",587:"76efc107",609:"d569989b",648:"4403bb94",657:"386bfe51",660:"387813b8",690:"e4ef088f",691:"145746f5",740:"078895e8",810:"23498fd5",948:"d9a69e3a",1062:"f90fa732",1083:"899aadcc",1090:"cfd53ea4",1125:"3184af97",1207:"49ea81bb",1211:"73c3bebc",1213:"25f2bd2a",1239:"f359a251",1288:"fabebe44",1299:"74df6a22",1306:"543c9f0a",1372:"b61f6dc7",1415:"4d76887f",1419:"f750c690",1446:"5136ee31",1451:"f44679e7",1453:"497334c4",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",1759:"e8522a07",1760:"8081c0c6",1774:"9e6341e5",1786:"d9ef69a7",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",2174:"f2b5c614",2194:"6151e7ce",2242:"f3027c84",2248:"da9f79cb",2261:"333929a0",2327:"efba78c5",2354:"493c7fdf",2377:"f9358c97",2399:"8d3a1bf8",2507:"7c78c461",2508:"918b38b6",2552:"863c4753",2581:"967fa6d4",2633:"e2e89062",2635:"0b632434",2664:"9662c81e",2665:"f4130007",2677:"ece9fdae",2683:"943aba4c",2704:"f3bde756",2712:"c2c6a3a6",2749:"b906f375",2754:"78868b16",2758:"9e3f6a8a",2794:"feadf832",2813:"d000eb73",2884:"5d69d9d4",2909:"f4200fe5",2914:"2be0d940",2949:"2ea50c63",2969:"979a04e7",3029:"6544ec02",3066:"af40287e",3091:"b0a48d97",3132:"85afe03a",3262:"8a8a7d05",3274:"41f7224c",3330:"e31fc461",3332:"3497b7c6",3348:"7ccc428f",3356:"f14351c1",3375:"d42819bc",3451:"7c138549",3452:"3d1bf5db",3484:"5c90fc9b",3495:"f861e7c0",3513:"41b7b3e8",3518:"59acd71c",3531:"879e564b",3554:"d5909206",3576:"73d1b372",3599:"21899dd2",3620:"f137ce68",3643:"cb9afd28",3665:"f1585bfb",3667:"b0cbc1d4",3668:"b225a2ce",3669:"dbbd9e76",3757:"bea375d6",3828:"e5615b18",3842:"ff6596ea",3933:"cda87995",3945:"f8518919",3978:"c8dd560b",4004:"ec3b6a32",4097:"eef3f1dd",4105:"702d5d94",4126:"5355b952",4143:"9f804621",4174:"a7c27f4d",4187:"6a04f266",4195:"c4f5d8e4",4220:"437b4e16",4338:"84ede15a",4355:"19ed4d4c",4359:"dc36d550",4363:"f2c21b54",4379:"c662f00a",4385:"e00ac272",4436:"b418feb9",4445:"4d9b9869",4458:"af2ff1b5",4507:"a7b37b86",4537:"1ae2b102",4541:"3e56470e",4566:"694e7470",4620:"48d75399",4634:"54338ffb",4661:"db9d4dae",4666:"f41c4e9d",4672:"43ee4f22",4674:"fea93377",4885:"2462cc91",4909:"f0855ff9",4916:"c1bbdb2a",4933:"08c12c3a",5005:"320c8a05",5011:"7e9389ad",5013:"c41801b5",5049:"e3d2722f",5052:"6116139f",5068:"b7bd3ab3",5084:"196e07e8",5103:"db039c7f",5116:"8d48ec84",5132:"a4c751bb",5157:"d27ae88d",5251:"c78e4f7d",5281:"31bd35e0",5341:"9913464d",5422:"b3719d54",5472:"72b78d4a",5483:"f7acb151",5492:"1882e65d",5548:"d6b0148d",5594:"269bc3bb",5645:"2d34559d",5651:"9e2042f5",5704:"b9b4ec9e",5752:"73a7060c",5806:"a8f54fb1",5821:"571c8793",5933:"e77078a1",5969:"7dcec981",5989:"fbf58567",6060:"556d3f96",6104:"c7c5ba1a",6140:"32e8da05",6220:"d01f45b7",6253:"a29dc56e",6255:"452ad91d",6285:"f10f9928",6294:"bbba852d",6298:"3611be04",6312:"dbc4065c",6325:"3002ebf4",6357:"43cda9e8",6373:"ceaa29cb",6482:"49816380",6579:"b3558274",6585:"13b7bafa",6598:"ca9fe671",6673:"af3013e9",6689:"f2521980",6730:"73617284",6779:"c5d9e474",6812:"5193d8a9",6827:"279fb1d6",6841:"5c6a20c2",6918:"29a046f3",6920:"ccc1222e",6946:"4642ab5c",7022:"543610b9",7051:"240a6b01",7061:"feea648c",7202:"4a8eb552",7211:"f44ed8f8",7270:"90a09ad1",7288:"6f1a81b8",7313:"db3d6c4d",7368:"bb8b1738",7388:"bd701914",7466:"a5b3561d",7518:"7266120e",7540:"a2d5a6d8",7584:"98a431f4",7633:"b940de31",7654:"c07c2447",7683:"cc44e8fd",7714:"591eca19",7738:"113faa87",7778:"41871d53",7799:"8b670b2b",7823:"9e76b49d",7830:"15985664",7837:"0a3f0c9b",7858:"d6a97e7e",7908:"33bbe353",7918:"17896441",7920:"1a4e3797",7932:"26dc7bd1",7940:"ad762f86",7961:"a2800a5b",8034:"fecdcc34",8049:"a87fd2e4",8067:"69b97ecd",8086:"b133b626",8115:"8247eba8",8132:"b0d34550",8138:"694672cd",8139:"386099fc",8158:"dc0f9344",8178:"9a679a70",8191:"f0ff685a",8215:"30d868e8",8236:"ffd76171",8270:"12331e8b",8343:"ad5a1373",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",8901:"b48c599b",8913:"706277b1",8951:"e495ca4d",8956:"2e944e01",8970:"a44b8423",9009:"afddde9d",9023:"c97a416e",9062:"b38833d4",9071:"60738e36",9112:"a4b71220",9217:"64c7e1cc",9226:"2f3b630e",9315:"6d2ffbf3",9323:"131c7f55",9351:"36051dfe",9478:"c7a2145e",9514:"1be78505",9567:"c977dfe8",9596:"390ca211",9626:"32c9742a",9764:"dc776cbc",9771:"89a76fd2",9779:"cd144357",9790:"7ffd66a6",9802:"1e15616a",9806:"51fbc2c9",9817:"14eb3368",9856:"06597bc8",9905:"b0cb055f",9962:"dd2fa029",9977:"3104d5d8",9988:"09dda9ae",9993:"482bfb5c"}[e]||e)+"."+{1:"5563b650",6:"d3b10840",12:"9f327517",43:"6ed5990d",53:"ae15f52b",63:"3da4421b",150:"8caac865",192:"da9e04e3",217:"0102c432",230:"7be1137d",289:"6adb36ed",315:"e1c7c166",356:"220d0258",502:"8957ccb4",509:"1c31983f",537:"0c427b12",576:"f33f5486",587:"7c7a1647",609:"68d23dbf",648:"1982160f",657:"7a85ba0e",660:"23b23550",690:"b7ee2ac4",691:"fe9acfda",740:"fe6b97e6",810:"bbdf17b5",948:"000b418b",1062:"1b3f4042",1083:"98434a72",1090:"432ead1f",1125:"a5050b17",1207:"7916f6ea",1211:"84a813cb",1213:"6182a0a2",1239:"0ca258d5",1288:"4a133ff1",1299:"7dda7011",1306:"efa9e91d",1372:"44b4d9b2",1415:"5d52c06a",1419:"749e21fb",1426:"ad86846c",1446:"2265d608",1451:"d8b23a48",1453:"c7fd8513",1486:"9712076d",1494:"31e0a0f5",1506:"c61263c9",1529:"f19d0841",1585:"e1ec66d3",1598:"c14606e3",1635:"4344e2ee",1678:"6b0f0d25",1686:"ce7ae0b6",1703:"a7850cef",1713:"ee502c47",1723:"71e5f4cd",1748:"23865353",1759:"8754c4e5",1760:"526a2dff",1774:"1c405b46",1786:"b942951f",1825:"23728930",1872:"bb402936",1953:"e4392cf0",1957:"dac895d5",1966:"8193149d",1975:"4b60acbf",1979:"6d282955",2008:"c4929184",2042:"8bcdb8f5",2070:"ff80806a",2117:"8fdf832d",2119:"1b52fa22",2136:"8a33bec7",2169:"6f3bfb43",2174:"b4eb1826",2194:"7cc71020",2242:"62be819f",2248:"3ce931da",2261:"2f74827e",2327:"393fd266",2354:"723de3d5",2377:"1b2524e6",2399:"42d85437",2507:"26692215",2508:"fbf562a7",2552:"6484aed3",2581:"cf5d8ad0",2633:"abda080c",2635:"830edb6d",2664:"d52d8b8f",2665:"b3e97431",2677:"c8e81209",2683:"891415fc",2704:"c83746c5",2712:"a44e2c30",2749:"e7d5e53a",2754:"b000525e",2758:"a6af0a68",2794:"0f0123ed",2813:"62c26829",2884:"9039bbf0",2909:"b7a3b117",2914:"86b1379a",2949:"7738f0eb",2969:"1ec9198c",3029:"efe4503a",3066:"2d6ba895",3091:"872881f4",3132:"52079c42",3262:"920a917c",3274:"94f077ac",3330:"f8f9d28c",3332:"59059207",3348:"32c50c47",3356:"44e16802",3375:"186f73f5",3451:"ea6a7703",3452:"d18a3afc",3484:"2f90373b",3495:"6382f4fa",3513:"34c56222",3518:"8601616d",3531:"505d5e2c",3554:"6dc12371",3576:"7a6f241f",3599:"d5398d39",3620:"70c09097",3643:"c2dd3728",3665:"fb0ea919",3667:"a758aa8d",3668:"b34aa74c",3669:"ffd12b05",3757:"00a4f022",3828:"d39d947c",3842:"6f03ad6b",3933:"b4da0711",3945:"39609227",3978:"022efc03",4004:"47637506",4097:"80cd7133",4105:"5e24a8e9",4126:"127145f8",4143:"e7e8cc89",4174:"d074f050",4187:"96b9c920",4195:"cfe133f9",4220:"446b5536",4338:"b33aec53",4355:"30ff1600",4359:"c5923bbf",4363:"c101350a",4379:"9cbf1426",4385:"960c00ca",4436:"694a4a50",4445:"8f3d0e24",4458:"ea71f5fb",4507:"9e482a81",4537:"080787ca",4541:"978ae83c",4566:"ab0d60ad",4620:"92196505",4634:"7815e94c",4661:"8b988bf0",4666:"abf3d2b4",4672:"0175aaca",4674:"54af737f",4885:"ccc00357",4909:"3ae4713d",4916:"4b3a7688",4933:"3715dd81",4972:"2c004fcc",5005:"d567e8ec",5011:"469e67df",5013:"109f06f4",5049:"4fc07d07",5052:"2844f9b7",5068:"e3d0ecc4",5084:"26c3888d",5103:"3f268ad3",5116:"606cacfa",5132:"9a303e8e",5157:"3f697f28",5251:"4da5a1cf",5281:"6761b31b",5341:"6a468aaa",5422:"a5cba597",5472:"774516e3",5483:"96c2b56e",5492:"7b10a32b",5548:"f7eecc13",5594:"3f595e2a",5645:"8aa81c9b",5651:"8a76a52f",5704:"70bd0ba6",5752:"0d880dc2",5806:"1b9a2586",5821:"c070cc17",5933:"79294ec8",5969:"d61af9db",5989:"0b1cb12b",6060:"e63c3157",6104:"20ed7575",6140:"45dd5be2",6220:"53ca5510",6253:"50057d87",6255:"8509f60e",6285:"78ce35a2",6294:"b077023f",6298:"56d411dd",6312:"da0c23f7",6316:"24db8bc9",6325:"676f44c8",6357:"4fb9d9ea",6373:"b8a24443",6482:"502a0b67",6495:"93b21474",6579:"0a500dc3",6585:"2f1b2c7e",6598:"4350b7cd",6673:"4c461033",6689:"4e7a2a8b",6730:"51915769",6779:"407834dd",6812:"1d1abd61",6827:"b0d27a42",6841:"32a50fa8",6918:"61dac2e1",6920:"f9f50142",6945:"96d36007",6946:"92f77118",7022:"fea426f7",7051:"db5e2280",7061:"dd334eb5",7202:"901aed29",7211:"81eed936",7270:"cb231451",7288:"e109fcf4",7313:"ec5e7fed",7368:"4aaf52b8",7388:"2ec93c74",7466:"6c38d255",7518:"0b210bc0",7540:"9bb29901",7584:"75defa39",7633:"521ae57e",7654:"9453e233",7683:"2d51b550",7714:"4d67463d",7724:"2906ce0b",7738:"3524d0b4",7778:"8da5b4da",7799:"b308c638",7823:"12af6f15",7830:"a2703576",7837:"d3f6c850",7858:"f9862ed2",7908:"3c96efa3",7918:"916bc4d8",7920:"16d7152d",7932:"92bc3bec",7940:"6aaed113",7961:"f5159cb6",8034:"dca0d1af",8049:"54678671",8067:"0606a87b",8086:"e5b42fd0",8115:"2ebb714e",8132:"7bb8f424",8138:"43973274",8139:"e6e58a57",8158:"bb13e2eb",8178:"62f5ed0b",8191:"3776c227",8215:"775d309b",8236:"2798771b",8270:"4e1881d4",8343:"2290a31c",8355:"85743f7e",8361:"74bdcabf",8444:"b4852ff5",8609:"59c52957",8648:"39950abe",8702:"4e669de9",8757:"4f1ee155",8791:"47405197",8831:"d0fa10f7",8842:"afbf5b86",8855:"142c7fbf",8860:"91b3db71",8866:"4bdda915",8876:"a30609d2",8894:"ba661129",8901:"cc3ae736",8913:"95810b09",8951:"e9b45337",8956:"df7dec1a",8970:"2ffda527",9009:"d20693f7",9023:"44d59de8",9062:"67e8d92e",9071:"9e701ff9",9112:"38b794db",9217:"4b3d9e10",9226:"0060c0ae",9315:"d5006aa3",9323:"9d2f6e08",9351:"1de7a366",9478:"ce7ecbd2",9487:"48bf43fe",9514:"693800c6",9567:"64ea8b3b",9596:"5b750b89",9626:"b43c6d01",9764:"f44c5e05",9771:"be039c22",9779:"e397e514",9790:"eca8e014",9802:"11684b0f",9806:"c3977137",9817:"5ba13cdf",9856:"99a149db",9905:"3e1ce1bd",9962:"a3138a8e",9977:"f5ab6a05",9988:"abbafc27",9993:"7bf6c4e1"}[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,d)=>Object.prototype.hasOwnProperty.call(e,d),f={},r.l=(e,d,a,c)=>{if(f[e])f[e].push(d);else{var b,t;if(void 0!==a)for(var o=document.getElementsByTagName("script"),n=0;n{b.onerror=b.onload=null,clearTimeout(u);var c=f[e];if(delete f[e],b.parentNode&&b.parentNode.removeChild(b),c&&c.forEach((e=>e(a))),d)return d(a)},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",49816380:"6482",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","797239df":"356","2d429218":"502","2e0c35d5":"509","3829cf1d":"537",f52abf29:"576","76efc107":"587",d569989b:"609","4403bb94":"648","386bfe51":"657","387813b8":"660",e4ef088f:"690","145746f5":"691","078895e8":"740","23498fd5":"810",d9a69e3a:"948",f90fa732:"1062","899aadcc":"1083",cfd53ea4:"1090","3184af97":"1125","49ea81bb":"1207","73c3bebc":"1211","25f2bd2a":"1213",f359a251:"1239",fabebe44:"1288","74df6a22":"1299","543c9f0a":"1306",b61f6dc7:"1372","4d76887f":"1415",f750c690:"1419","5136ee31":"1446",f44679e7:"1451","497334c4":"1453","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",e8522a07:"1759","8081c0c6":"1760","9e6341e5":"1774",d9ef69a7:"1786","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",f2b5c614:"2174","6151e7ce":"2194",f3027c84:"2242",da9f79cb:"2248","333929a0":"2261",efba78c5:"2327","493c7fdf":"2354",f9358c97:"2377","8d3a1bf8":"2399","7c78c461":"2507","918b38b6":"2508","863c4753":"2552","967fa6d4":"2581",e2e89062:"2633","0b632434":"2635","9662c81e":"2664",f4130007:"2665",ece9fdae:"2677","943aba4c":"2683",f3bde756:"2704",c2c6a3a6:"2712",b906f375:"2749","78868b16":"2754","9e3f6a8a":"2758",feadf832:"2794",d000eb73:"2813","5d69d9d4":"2884",f4200fe5:"2909","2be0d940":"2914","2ea50c63":"2949","979a04e7":"2969","6544ec02":"3029",af40287e:"3066",b0a48d97:"3091","85afe03a":"3132","8a8a7d05":"3262","41f7224c":"3274",e31fc461:"3330","3497b7c6":"3332","7ccc428f":"3348",f14351c1:"3356",d42819bc:"3375","7c138549":"3451","3d1bf5db":"3452","5c90fc9b":"3484",f861e7c0:"3495","41b7b3e8":"3513","59acd71c":"3518","879e564b":"3531",d5909206:"3554","73d1b372":"3576","21899dd2":"3599",f137ce68:"3620",cb9afd28:"3643",f1585bfb:"3665",b0cbc1d4:"3667",b225a2ce:"3668",dbbd9e76:"3669",bea375d6:"3757",e5615b18:"3828",ff6596ea:"3842",cda87995:"3933",f8518919:"3945",c8dd560b:"3978",ec3b6a32:"4004",eef3f1dd:"4097","702d5d94":"4105","5355b952":"4126","9f804621":"4143",a7c27f4d:"4174","6a04f266":"4187",c4f5d8e4:"4195","437b4e16":"4220","84ede15a":"4338","19ed4d4c":"4355",dc36d550:"4359",f2c21b54:"4363",c662f00a:"4379",e00ac272:"4385",b418feb9:"4436","4d9b9869":"4445",af2ff1b5:"4458",a7b37b86:"4507","1ae2b102":"4537","3e56470e":"4541","694e7470":"4566","48d75399":"4620","54338ffb":"4634",db9d4dae:"4661",f41c4e9d:"4666","43ee4f22":"4672",fea93377:"4674","2462cc91":"4885",f0855ff9:"4909",c1bbdb2a:"4916","08c12c3a":"4933","320c8a05":"5005","7e9389ad":"5011",c41801b5:"5013",e3d2722f:"5049","6116139f":"5052",b7bd3ab3:"5068","196e07e8":"5084",db039c7f:"5103","8d48ec84":"5116",a4c751bb:"5132",d27ae88d:"5157",c78e4f7d:"5251","31bd35e0":"5281","9913464d":"5341",b3719d54:"5422","72b78d4a":"5472",f7acb151:"5483","1882e65d":"5492",d6b0148d:"5548","269bc3bb":"5594","2d34559d":"5645","9e2042f5":"5651",b9b4ec9e:"5704","73a7060c":"5752",a8f54fb1:"5806","571c8793":"5821",e77078a1:"5933","7dcec981":"5969",fbf58567:"5989","556d3f96":"6060",c7c5ba1a:"6104","32e8da05":"6140",d01f45b7:"6220",a29dc56e:"6253","452ad91d":"6255",f10f9928:"6285",bbba852d:"6294","3611be04":"6298",dbc4065c:"6312","3002ebf4":"6325","43cda9e8":"6357",ceaa29cb:"6373",b3558274:"6579","13b7bafa":"6585",ca9fe671:"6598",af3013e9:"6673",f2521980:"6689",c5d9e474:"6779","5193d8a9":"6812","279fb1d6":"6827","5c6a20c2":"6841","29a046f3":"6918",ccc1222e:"6920","4642ab5c":"6946","543610b9":"7022","240a6b01":"7051",feea648c:"7061","4a8eb552":"7202",f44ed8f8:"7211","90a09ad1":"7270","6f1a81b8":"7288",db3d6c4d:"7313",bb8b1738:"7368",bd701914:"7388",a5b3561d:"7466","7266120e":"7518",a2d5a6d8:"7540","98a431f4":"7584",b940de31:"7633",c07c2447:"7654",cc44e8fd:"7683","591eca19":"7714","113faa87":"7738","41871d53":"7778","8b670b2b":"7799","9e76b49d":"7823","0a3f0c9b":"7837",d6a97e7e:"7858","33bbe353":"7908","1a4e3797":"7920","26dc7bd1":"7932",ad762f86:"7940",a2800a5b:"7961",fecdcc34:"8034",a87fd2e4:"8049","69b97ecd":"8067",b133b626:"8086","8247eba8":"8115",b0d34550:"8132","694672cd":"8138","386099fc":"8139",dc0f9344:"8158","9a679a70":"8178",f0ff685a:"8191","30d868e8":"8215",ffd76171:"8236","12331e8b":"8270",ad5a1373:"8343",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",b48c599b:"8901","706277b1":"8913",e495ca4d:"8951","2e944e01":"8956",a44b8423:"8970",afddde9d:"9009",c97a416e:"9023",b38833d4:"9062","60738e36":"9071",a4b71220:"9112","64c7e1cc":"9217","2f3b630e":"9226","6d2ffbf3":"9315","131c7f55":"9323","36051dfe":"9351",c7a2145e:"9478","1be78505":"9514",c977dfe8:"9567","390ca211":"9596","32c9742a":"9626",dc776cbc:"9764","89a76fd2":"9771",cd144357:"9779","7ffd66a6":"9790","1e15616a":"9802","51fbc2c9":"9806","14eb3368":"9817","06597bc8":"9856",b0cb055f:"9905",dd2fa029:"9962","3104d5d8":"9977","09dda9ae":"9988","482bfb5c":"9993"}[e]||e,r.p+r.u(e)},(()=>{var e={1303:0,532:0};r.f.j=(d,a)=>{var f=r.o(e,d)?e[d]:void 0;if(0!==f)if(f)a.push(f[2]);else if(/^(1303|532)$/.test(d))e[d]=0;else{var c=new Promise(((a,c)=>f=e[d]=[a,c]));a.push(f[2]=c);var b=r.p+r.u(d),t=new Error;r.l(b,(a=>{if(r.o(e,d)&&(0!==(f=e[d])&&(e[d]=void 0),f)){var c=a&&("load"===a.type?"missing":a.type),b=a&&a.target&&a.target.src;t.message="Loading chunk "+d+" failed.\n("+c+": "+b+")",t.name="ChunkLoadError",t.type=c,t.request=b,f[1](t)}}),"chunk-"+d,d)}},r.O.j=d=>0===e[d];var d=(d,a)=>{var f,c,[b,t,o]=a,n=0;if(b.some((d=>0!==e[d]))){for(f in t)r.o(t,f)&&(r.m[f]=t[f]);if(o)var i=o(r)}for(d&&d(a);n - + @@ -37,7 +37,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.html b/docs/ambassadors.html index 0120c605b646..a2b27a4e1bb1 100644 --- a/docs/ambassadors.html +++ b/docs/ambassadors.html @@ -19,7 +19,7 @@ - + @@ -28,7 +28,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.html b/docs/apps-index.html index c32524536bb9..7d07bb0e6896 100644 --- a/docs/apps-index.html +++ b/docs/apps-index.html @@ -19,13 +19,13 @@ - + - + \ No newline at end of file diff --git a/docs/bug-bounty.html b/docs/bug-bounty.html index 47c641baccb4..fc44599ee8f6 100644 --- a/docs/bug-bounty.html +++ b/docs/bug-bounty.html @@ -19,7 +19,7 @@ - + @@ -43,7 +43,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-archive-index.html b/docs/build-archive-index.html index f3cf33b75280..4c188d00c07c 100644 --- a/docs/build-archive-index.html +++ b/docs/build-archive-index.html @@ -19,13 +19,13 @@ - + - + \ No newline at end of file diff --git a/docs/build-client-index.html b/docs/build-client-index.html index 4a71679969df..117bca24d45b 100644 --- a/docs/build-client-index.html +++ b/docs/build-client-index.html @@ -19,13 +19,13 @@ - + - + \ No newline at end of file diff --git a/docs/build-client-side.html b/docs/build-client-side.html index c2d339399f26..efc6f2e6193c 100644 --- a/docs/build-client-side.html +++ b/docs/build-client-side.html @@ -19,7 +19,7 @@ - + @@ -72,7 +72,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.html b/docs/build-dapp.html index 590a50e910e0..9b34130c2d03 100644 --- a/docs/build-dapp.html +++ b/docs/build-dapp.html @@ -19,7 +19,7 @@ - + @@ -34,7 +34,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.html b/docs/build-data.html index e06f5b51470c..ba5adb57c941 100644 --- a/docs/build-data.html +++ b/docs/build-data.html @@ -19,7 +19,7 @@ - + @@ -50,7 +50,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.html b/docs/build-guide.html index a860cb5f51d5..957044481d29 100644 --- a/docs/build-guide.html +++ b/docs/build-guide.html @@ -19,7 +19,7 @@ - + @@ -131,7 +131,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.html b/docs/build-guides-coretime-start.html index 27885ac8dd16..4f0c2bc88dfe 100644 --- a/docs/build-guides-coretime-start.html +++ b/docs/build-guides-coretime-start.html @@ -19,7 +19,7 @@ - + @@ -49,7 +49,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.html b/docs/build-guides-coretime-troubleshoot.html index 5abb7df49415..eecbbd65c095 100644 --- a/docs/build-guides-coretime-troubleshoot.html +++ b/docs/build-guides-coretime-troubleshoot.html @@ -19,7 +19,7 @@ - + @@ -42,7 +42,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.html b/docs/build-guides-install-deps.html index f9253e3686c8..f3010be86be9 100644 --- a/docs/build-guides-install-deps.html +++ b/docs/build-guides-install-deps.html @@ -19,7 +19,7 @@ - + @@ -78,7 +78,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.html b/docs/build-guides-template-basic.html index 8377fcb2c39e..5ac384705087 100644 --- a/docs/build-guides-template-basic.html +++ b/docs/build-guides-template-basic.html @@ -19,7 +19,7 @@ - + @@ -82,7 +82,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.html b/docs/build-hackathon.html index 17917f25746d..78345b6ae686 100644 --- a/docs/build-hackathon.html +++ b/docs/build-hackathon.html @@ -19,7 +19,7 @@ - + @@ -46,7 +46,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.html b/docs/build-hrmp-channels.html index 224b6525177f..ce3642550618 100644 --- a/docs/build-hrmp-channels.html +++ b/docs/build-hrmp-channels.html @@ -19,7 +19,7 @@ - + @@ -62,7 +62,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.html b/docs/build-index.html index 6181dad7b904..bf213766df89 100644 --- a/docs/build-index.html +++ b/docs/build-index.html @@ -19,7 +19,7 @@ - + @@ -39,7 +39,7 @@ are building.

    Grants

    • Grants - Information regarding grants and funding sources available in the Polkadot 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.html b/docs/build-integrate-assets.html index c893a18e71cb..36c156c3bfc7 100644 --- a/docs/build-integrate-assets.html +++ b/docs/build-integrate-assets.html @@ -19,7 +19,7 @@ - + @@ -137,7 +137,7 @@ 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.html b/docs/build-integration.html index f2dc40834f90..a38a8e0b8475 100644 --- a/docs/build-integration.html +++ b/docs/build-integration.html @@ -19,7 +19,7 @@ - + @@ -42,7 +42,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.html b/docs/build-light-clients.html index abcd8eba9724..92a83fe19503 100644 --- a/docs/build-light-clients.html +++ b/docs/build-light-clients.html @@ -19,7 +19,7 @@ - + @@ -54,7 +54,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.html b/docs/build-network-overview.html index adba7bd7796c..2818f739a9af 100644 --- a/docs/build-network-overview.html +++ b/docs/build-network-overview.html @@ -19,7 +19,7 @@ - + @@ -42,7 +42,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.html b/docs/build-node-interaction.html index 6ff0a8b6bac4..b47ab8bebce5 100644 --- a/docs/build-node-interaction.html +++ b/docs/build-node-interaction.html @@ -19,7 +19,7 @@ - + @@ -57,7 +57,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.html b/docs/build-node-management.html index e5c8df245311..6a5348c58605 100644 --- a/docs/build-node-management.html +++ b/docs/build-node-management.html @@ -19,7 +19,7 @@ - + @@ -67,7 +67,7 @@ has a monitor node metrics tutorial which uses this endpoint.

    - + \ No newline at end of file diff --git a/docs/build-open-source.html b/docs/build-open-source.html index 09590a8494ae..b457121d0b61 100644 --- a/docs/build-open-source.html +++ b/docs/build-open-source.html @@ -19,7 +19,7 @@ - + @@ -34,7 +34,7 @@ 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.

    - + \ No newline at end of file diff --git a/docs/build-oracle.html b/docs/build-oracle.html index d0e3a49cbb7e..db4a6df48fac 100644 --- a/docs/build-oracle.html +++ b/docs/build-oracle.html @@ -19,7 +19,7 @@ - + @@ -49,7 +49,7 @@ 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.html b/docs/build-pdk.html index 4b9b237c5a8a..3970adedf089 100644 --- a/docs/build-pdk.html +++ b/docs/build-pdk.html @@ -19,7 +19,7 @@ - + @@ -182,7 +182,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.html b/docs/build-protocol-index.html index 94aecc76240d..0f4547845143 100644 --- a/docs/build-protocol-index.html +++ b/docs/build-protocol-index.html @@ -19,13 +19,13 @@ - + - + \ No newline at end of file diff --git a/docs/build-protocol-info.html b/docs/build-protocol-info.html index 0320d10427a0..7af4ce7195f0 100644 --- a/docs/build-protocol-info.html +++ b/docs/build-protocol-info.html @@ -19,7 +19,7 @@ - + @@ -127,7 +127,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.html b/docs/build-smart-contracts.html index c5d2f36f99f1..976f915b856e 100644 --- a/docs/build-smart-contracts.html +++ b/docs/build-smart-contracts.html @@ -19,7 +19,7 @@ - + @@ -148,7 +148,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.html b/docs/build-storage.html index de7af285d001..8385d8f338c5 100644 --- a/docs/build-storage.html +++ b/docs/build-storage.html @@ -19,7 +19,7 @@ - + @@ -59,7 +59,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.html b/docs/build-tools-index.html index 0dc446ce9d82..7dc7996cee14 100644 --- a/docs/build-tools-index.html +++ b/docs/build-tools-index.html @@ -19,7 +19,7 @@ - + @@ -115,7 +115,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.html b/docs/build-transaction-construction.html index fe1bdd40b7d3..ab0a88f61deb 100644 --- a/docs/build-transaction-construction.html +++ b/docs/build-transaction-construction.html @@ -19,7 +19,7 @@ - + @@ -54,7 +54,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.html b/docs/community-index.html index 30ed8f0de6c5..be3e0cab74c0 100644 --- a/docs/community-index.html +++ b/docs/community-index.html @@ -19,13 +19,13 @@ - + - + \ No newline at end of file diff --git a/docs/community.html b/docs/community.html index 4dd52cff4b49..622e89d8cd57 100644 --- a/docs/community.html +++ b/docs/community.html @@ -19,7 +19,7 @@ - + @@ -65,7 +65,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.html b/docs/contributing.html index f1101c3d3683..e0f0e502dba9 100644 --- a/docs/contributing.html +++ b/docs/contributing.html @@ -19,7 +19,7 @@ - + @@ -51,7 +51,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.html b/docs/contributors.html index 5b07e747c154..1eb4f6b15224 100644 --- a/docs/contributors.html +++ b/docs/contributors.html @@ -19,7 +19,7 @@ - + @@ -95,7 +95,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.html b/docs/dashboards-index.html index 3c6df35a8a52..6ab9188cec87 100644 --- a/docs/dashboards-index.html +++ b/docs/dashboards-index.html @@ -19,13 +19,13 @@ - + - + \ No newline at end of file diff --git a/docs/decentralized-futures.html b/docs/decentralized-futures.html index 9e633d238c59..21d685e84503 100644 --- a/docs/decentralized-futures.html +++ b/docs/decentralized-futures.html @@ -19,7 +19,7 @@ - + @@ -49,7 +49,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.html b/docs/decentralized-voices.html index c497a7961d32..6b82457941f7 100644 --- a/docs/decentralized-voices.html +++ b/docs/decentralized-voices.html @@ -19,7 +19,7 @@ - + @@ -56,7 +56,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.html b/docs/dev-heroes.html index ce38af3d51fa..edc4c4556e0c 100644 --- a/docs/dev-heroes.html +++ b/docs/dev-heroes.html @@ -19,7 +19,7 @@ - + @@ -40,7 +40,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.html b/docs/explore-index.html index 10d74d75a5bd..d2d79df02d45 100644 --- a/docs/explore-index.html +++ b/docs/explore-index.html @@ -19,13 +19,13 @@ - + - + \ No newline at end of file diff --git a/docs/faq.html b/docs/faq.html index c96fcf124520..cab733ef32c3 100644 --- a/docs/faq.html +++ b/docs/faq.html @@ -19,7 +19,7 @@ - + @@ -203,7 +203,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.html b/docs/general-index.html index a8340cbad70b..9e54d6e34d18 100644 --- a/docs/general-index.html +++ b/docs/general-index.html @@ -19,13 +19,13 @@ - + - + \ No newline at end of file diff --git a/docs/general/dune-analytics.html b/docs/general/dune-analytics.html index 48ac8b0ec408..d220860b205b 100644 --- a/docs/general/dune-analytics.html +++ b/docs/general/dune-analytics.html @@ -19,13 +19,13 @@ - + - + \ No newline at end of file diff --git a/docs/general/dune-analytics/acala-dashboards.html b/docs/general/dune-analytics/acala-dashboards.html index 1d39ffadc9df..40441b0bb5e9 100644 --- a/docs/general/dune-analytics/acala-dashboards.html +++ b/docs/general/dune-analytics/acala-dashboards.html @@ -19,7 +19,7 @@ - + @@ -32,7 +32,7 @@ queries. You can use the following DuneSQL queries as examples:

    Acala List of Assets
    WITH
    decimals_for_each_symbol AS (
    SELECT
    symbol,
    MAX(decimals) AS decimals
    FROM
    acala.transfers
    WHERE
    symbol IS NOT NULL
    GROUP BY
    symbol
    )
    SELECT
    b.asset,
    b.symbol,
    d.decimals
    FROM
    acala.balances b
    LEFT JOIN decimals_for_each_symbol d ON b.symbol = d.symbol
    GROUP BY
    b.asset,
    b.symbol,
    d.decimals
    ORDER BY
    SUM(b.free + b.reserved + b.misc_frozen + b.frozen) DESC

    Query result:

    DuneSQL Referece

    For more information on DuneSQL, please refer to the DuneSQL Cheatsheet and DuneSQL Official Documentation.

    - + \ No newline at end of file diff --git a/docs/general/dune-analytics/assethub-dashboards.html b/docs/general/dune-analytics/assethub-dashboards.html index 7629e2cb0b00..0f80b36636fd 100644 --- a/docs/general/dune-analytics/assethub-dashboards.html +++ b/docs/general/dune-analytics/assethub-dashboards.html @@ -19,7 +19,7 @@ - + @@ -32,7 +32,7 @@ queries. You can use the following DuneSQL queries as examples:

    Sum of USDC in Polkadot Parachains
    SELECT
    *
    FROM
    "query_3526956(asset_id='1984')" -- AssetHub Sum of Stablecoin on Each Chain by Time
    WHERE
    not chain_name = ''

    Query result:

    Visualized result:

    DuneSQL Referece

    For more information on DuneSQL, please refer to the DuneSQL Cheatsheet and DuneSQL Official Documentation.

    - + \ No newline at end of file diff --git a/docs/general/dune-analytics/astar-dashboards.html b/docs/general/dune-analytics/astar-dashboards.html index 2556859b6b79..fd435946b2be 100644 --- a/docs/general/dune-analytics/astar-dashboards.html +++ b/docs/general/dune-analytics/astar-dashboards.html @@ -19,7 +19,7 @@ - + @@ -33,7 +33,7 @@ queries. You can use the following DuneSQL queries as examples:

    Astar EVM Executed
    SELECT
    block_number, extrinsic_id, event_id, extrinsic_hash, section, method,
    json_extract_scalar(data, '$[0]') as tx_from,
    json_extract_scalar(data, '$[1]') as tx_to,
    json_extract_scalar(data, '$[2]') as tx_hash,
    json_extract(data, '$[3]') as tx_success
    FROM
    astar.events
    WHERE
    block_time >= TIMESTAMP '2024-02-13 00:00:00' and (section = 'ethereum' and method = 'Executed')
    limit 10000;

    Query result:

    DuneSQL Referece

    For more information on DuneSQL, please refer to the DuneSQL Cheatsheet and DuneSQL Official Documentation.

    - + \ No newline at end of file diff --git a/docs/general/dune-analytics/bifrost-dashboards.html b/docs/general/dune-analytics/bifrost-dashboards.html index e79bed773d5f..40646cde64bd 100644 --- a/docs/general/dune-analytics/bifrost-dashboards.html +++ b/docs/general/dune-analytics/bifrost-dashboards.html @@ -19,7 +19,7 @@ - + @@ -37,7 +37,7 @@ maintain precision.

    Query result:

    DuneSQL Reference

    For more information on DuneSQL, please refer to the DuneSQL Cheatsheet and DuneSQL Official Documentation.

    - + \ No newline at end of file diff --git a/docs/general/dune-analytics/bridgehub-dashboards.html b/docs/general/dune-analytics/bridgehub-dashboards.html index 195be6424979..3d8d85abad09 100644 --- a/docs/general/dune-analytics/bridgehub-dashboards.html +++ b/docs/general/dune-analytics/bridgehub-dashboards.html @@ -19,7 +19,7 @@ - + @@ -34,7 +34,7 @@ queries. You can use the following DuneSQL queries as examples:

    Bridgehub and Kusama Message Trends
    WITH
    transactions AS (
    SELECT
    CASE
    WHEN ROW_NUMBER() OVER (
    PARTITION BY
    "from",
    "to",
    "send_time"
    ORDER BY
    "send_time"
    ) % 2 = 1 THEN "from"
    ELSE "to"
    END AS direction,
    date_trunc('month', "send_time") as month
    FROM
    query_3816910
    ),
    polkadot_to_kusama AS (
    SELECT
    month,
    COUNT(*) as count_polkadot_to_kusama
    FROM
    transactions
    WHERE
    direction = 'polkadot'
    GROUP BY
    month
    ),
    kusama_to_polkadot AS (
    SELECT
    month,
    COUNT(*) as count_kusama_to_polkadot
    FROM
    transactions
    WHERE
    direction = 'kusama'
    GROUP BY
    month
    ),
    all_polkadot_to_kusama AS (
    SELECT
    'for_join' as "for_join",
    COUNT(*) as total_count_polkadot_to_kusama
    FROM
    transactions
    WHERE
    direction = 'polkadot'
    ),
    all_kusama_to_polkadot AS (
    SELECT
    'for_join' as "for_join",
    COUNT(*) as total_count_kusama_to_polkadot
    FROM
    transactions
    WHERE
    direction = 'kusama'
    ),
    monthly_result as (
    SELECT
    coalesce(
    polkadot_to_kusama.month,
    kusama_to_polkadot.month
    ) as month,
    coalesce(count_polkadot_to_kusama, 0) as count_polkadot_to_kusama,
    coalesce(count_kusama_to_polkadot, 0) as count_kusama_to_polkadot,
    'for_join' as "for_join"
    FROM
    polkadot_to_kusama
    FULL OUTER JOIN kusama_to_polkadot ON polkadot_to_kusama.month = kusama_to_polkadot.month
    ORDER BY
    month
    )
    SELECT
    monthly_result.month,
    monthly_result.count_polkadot_to_kusama,
    monthly_result.count_kusama_to_polkadot,
    all_polkadot_to_kusama.total_count_polkadot_to_kusama,
    all_kusama_to_polkadot.total_count_kusama_to_polkadot
    FROM
    monthly_result
    LEFT JOIN all_polkadot_to_kusama on monthly_result.for_join = all_polkadot_to_kusama.for_join
    LEFT JOIN all_kusama_to_polkadot on monthly_result.for_join = all_kusama_to_polkadot.for_join

    Query result:

    DuneSQL Reference

    For more information on DuneSQL, please refer to the DuneSQL Cheatsheet and DuneSQL Official Documentation.

    - + \ No newline at end of file diff --git a/docs/general/dune-analytics/centrifuge-dashboards.html b/docs/general/dune-analytics/centrifuge-dashboards.html index 3d3ca0eada0b..e4029240bc77 100644 --- a/docs/general/dune-analytics/centrifuge-dashboards.html +++ b/docs/general/dune-analytics/centrifuge-dashboards.html @@ -19,7 +19,7 @@ - + @@ -46,7 +46,7 @@ maintain precision.

    Query result:

    DuneSQL Reference

    For more information on DuneSQL, please refer to the DuneSQL Cheatsheet and DuneSQL Official Documentation.

    - + \ No newline at end of file diff --git a/docs/general/dune-analytics/collectives-dashboards.html b/docs/general/dune-analytics/collectives-dashboards.html index 62e6eb17cef8..0a0a962a1713 100644 --- a/docs/general/dune-analytics/collectives-dashboards.html +++ b/docs/general/dune-analytics/collectives-dashboards.html @@ -19,7 +19,7 @@ - + @@ -34,7 +34,7 @@ materialized queries. You can use the following DuneSQL queries as examples:

    Collectives Referenda Types
    WITH types AS (
    SELECT
    block_time,
    JSON_EXTRACT_SCALAR(params, '$.proposal.lookup.hash') AS lookup,
    JSON_EXTRACT_SCALAR(params, '$.proposal_origin.fellowshipOrigins') AS fellowshipOrigins
    FROM
    collectives.extrinsics
    WHERE
    section = 'fellowshipReferenda'
    AND method = 'submit'
    AND JSON_EXTRACT_SCALAR(params, '$.proposal.lookup.hash') IS NOT NULL
    )
    SELECT
    JSON_EXTRACT_SCALAR(data, '$[0]') AS r_id,
    JSON_EXTRACT_SCALAR(data, '$[2].lookup.hash') AS lookup,
    COALESCE(types.fellowshipOrigins, 'Fellows') AS types
    FROM
    collectives.events
    LEFT JOIN types ON JSON_EXTRACT_SCALAR(data, '$[2].lookup.hash') = types.lookup
    WHERE
    method = 'Submitted'
    AND JSON_EXTRACT_SCALAR(data, '$[2].lookup.hash') IS NOT NULL;

    Query result:

    DuneSQL Referece

    For more information on DuneSQL, please refer to the DuneSQL Cheatsheet and DuneSQL Official Documentation.

    - + \ No newline at end of file diff --git a/docs/general/dune-analytics/coretime-dashboards.html b/docs/general/dune-analytics/coretime-dashboards.html index fb3bcabac20f..2eeba3e4f3b8 100644 --- a/docs/general/dune-analytics/coretime-dashboards.html +++ b/docs/general/dune-analytics/coretime-dashboards.html @@ -19,7 +19,7 @@ - + @@ -33,7 +33,7 @@ queries. You can use the following DuneSQL queries as examples:

    Kusama Coretime Core Statistics
    WITH
    core_sta as (
    SELECT
    block_time,
    get_href (
    'https://nodle.subscan.io/extrinsic/' || cast(extrinsic_id as VARCHAR),
    extrinsic_id
    ) as extrinsics_url,
    extrinsic_id,
    CAST(JSON_EXTRACT_SCALAR(data, '$[0]') AS BIGINT) as sale_start,
    CAST(JSON_EXTRACT_SCALAR(data, '$[1]') AS BIGINT) as leadin_length,
    CAST(JSON_EXTRACT_SCALAR(data, '$[2]') AS BIGINT) / pow(10, 12) as start_price,
    CAST(JSON_EXTRACT_SCALAR(data, '$[3]') AS BIGINT) / pow(10, 12) as regular_price,
    CAST(JSON_EXTRACT_SCALAR(data, '$[4]') AS BIGINT) as region_begin,
    CAST(JSON_EXTRACT_SCALAR(data, '$[5]') AS BIGINT) as region_end,
    CAST(JSON_EXTRACT_SCALAR(data, '$[6]') AS BIGINT) as ideal_cores_sold,
    CAST(JSON_EXTRACT_SCALAR(data, '$[7]') AS BIGINT) as cores_offered,
    CAST(
    ROW_NUMBER() OVER (
    ORDER BY
    block_time ASC
    ) AS BIGINT
    ) AS sale_round
    FROM
    coretime_kusama.events
    WHERE
    section = 'broker'
    AND method = 'SaleInitialized'
    )
    SELECT
    *,
    get_href (
    'https://dune.com/substrate/kusama-coretime-sales-history?sale_round=' || cast(sale_round as VARCHAR),
    cast(sale_round as VARCHAR)
    ) as sale_round_url
    FROM
    core_sta
    ORDER BY
    block_time DESC

    Query result:

    DuneSQL Referece

    For more information on DuneSQL, please refer to the DuneSQL Cheatsheet and DuneSQL Official Documentation.

    - + \ No newline at end of file diff --git a/docs/general/dune-analytics/energywebx-dashboards.html b/docs/general/dune-analytics/energywebx-dashboards.html index 7d7d00aee7a7..d8719c4b25a6 100644 --- a/docs/general/dune-analytics/energywebx-dashboards.html +++ b/docs/general/dune-analytics/energywebx-dashboards.html @@ -19,7 +19,7 @@ - + @@ -32,7 +32,7 @@ queries. You can use the following DuneSQL queries as examples:

    EnergyWebX Token Lifted & Lowered
    WITH
    lift AS (
    SELECT
    date_trunc('day', block_time) AS day,
    SUM(
    CAST(json_extract_scalar(data, '$[1]') AS double) / POWER(10, 18)
    ) AS amount,
    'AVTLifted' AS method
    FROM
    energywebx.events
    WHERE
    method = 'AVTLifted'
    GROUP BY
    date_trunc('day', block_time)
    ),
    lower AS (
    SELECT
    date_trunc('day', block_time) AS day,
    SUM(
    CAST(json_extract_scalar(data, '$[2]') AS double) / POWER(10, 18)
    ) AS amount,
    'AVTLowered' AS method
    FROM
    energywebx.events
    WHERE
    method = 'AvtLowered'
    GROUP BY
    date_trunc('day', block_time)
    )
    SELECT
    *
    FROM
    lift
    UNION ALL
    SELECT
    *
    FROM
    lower;

    Query result:

    DuneSQL Referece

    For more information on DuneSQL, please refer to the DuneSQL Cheatsheet and DuneSQL Official Documentation.

    - + \ No newline at end of file diff --git a/docs/general/dune-analytics/frequency-dashboards.html b/docs/general/dune-analytics/frequency-dashboards.html index b75e852358bc..7c8d291d3346 100644 --- a/docs/general/dune-analytics/frequency-dashboards.html +++ b/docs/general/dune-analytics/frequency-dashboards.html @@ -19,7 +19,7 @@ - + @@ -35,7 +35,7 @@ queries. You can use the following DuneSQL queries as examples:

    Frequency Extrinsics by Day
    SELECT
    DATE_TRUNC('day', block_time) AS day,
    section || '_' || method AS section_method,
    COUNT(*) AS cnt
    FROM
    frequency.extrinsics
    WHERE
    section || '_' || method IN (
    SELECT section_method
    FROM unnest(SPLIT('{{section_method}}', ',')) AS c(section_method)
    )
    GROUP BY
    DATE_TRUNC('day', block_time),
    section || '_' || method;

    Query result:

    DuneSQL Referece

    For more information on DuneSQL, please refer to the DuneSQL Cheatsheet and DuneSQL Official Documentation.

    - + \ No newline at end of file diff --git a/docs/general/dune-analytics/hydration-dashboards.html b/docs/general/dune-analytics/hydration-dashboards.html index 31972e6e9f1c..c0632820fa2d 100644 --- a/docs/general/dune-analytics/hydration-dashboards.html +++ b/docs/general/dune-analytics/hydration-dashboards.html @@ -19,7 +19,7 @@ - + @@ -46,7 +46,7 @@ and still maintain precision.

    Query result:

    DuneSQL Reference

    For more information on DuneSQL, please refer to the DuneSQL Cheatsheet and DuneSQL Official Documentation.

    - + \ No newline at end of file diff --git a/docs/general/dune-analytics/interlay-dashboards.html b/docs/general/dune-analytics/interlay-dashboards.html index 8aa33739eecf..2d8670a21eb9 100644 --- a/docs/general/dune-analytics/interlay-dashboards.html +++ b/docs/general/dune-analytics/interlay-dashboards.html @@ -19,7 +19,7 @@ - + @@ -46,7 +46,7 @@ and still maintain precision.

    Query result:

    DuneSQL Reference

    For more information on DuneSQL, please refer to the DuneSQL Cheatsheet and DuneSQL Official Documentation.

    - + \ No newline at end of file diff --git a/docs/general/dune-analytics/invarch-dashboards.html b/docs/general/dune-analytics/invarch-dashboards.html index 367fbec3f6dc..a618cebd386d 100644 --- a/docs/general/dune-analytics/invarch-dashboards.html +++ b/docs/general/dune-analytics/invarch-dashboards.html @@ -19,7 +19,7 @@ - + @@ -32,7 +32,7 @@ queries. You can use the following DuneSQL queries as examples:

    InvArch Cumulative Activated Acounts by Day
    WITH accounts_first_active AS (
    SELECT
    address_ss58,
    MIN(date_trunc('day', ts)) AS first_active_date
    FROM
    invarch.balances
    WHERE
    (free + reserved + misc_frozen + frozen) > 0
    GROUP BY
    address_ss58
    )
    SELECT
    first_active_date AS date,
    SUM(COUNT(DISTINCT address_ss58)) OVER (
    ORDER BY
    DATE(first_active_date)
    ) AS cumulative_accounts
    FROM
    accounts_first_active
    GROUP BY
    first_active_date
    ORDER BY
    first_active_date DESC;

    Query result:

    DuneSQL Referece

    For more information on DuneSQL, please refer to the DuneSQL Cheatsheet and DuneSQL Official Documentation.

    - + \ No newline at end of file diff --git a/docs/general/dune-analytics/litentry-dashboards.html b/docs/general/dune-analytics/litentry-dashboards.html index 9649ff3b36ed..accc4fc75780 100644 --- a/docs/general/dune-analytics/litentry-dashboards.html +++ b/docs/general/dune-analytics/litentry-dashboards.html @@ -19,7 +19,7 @@ - + @@ -34,7 +34,7 @@ queries. You can use the following DuneSQL queries as examples:

    Litentry LIT Token Sent To Ethereum
    SELECT DISTINCT
    block_time,
    extrinsic_id,
    get_href(
    'https://litentry.statescan.io/#/extrinsics/' || extrinsic_id,
    extrinsic_id
    ) AS extrinsic_id_url,
    JSON_VALUE(data, 'strict $[0]') AS dest_id,
    JSON_VALUE(data, 'strict $[1]') AS nonce,
    JSON_VALUE(data, 'strict $[2]') AS source_id,
    IF(
    JSON_VALUE(data, 'strict $[3]') LIKE '0x%',
    bytearray_to_int256(JSON_VALUE(data, 'strict $[3]')) / POW(10, 12),
    CAST(JSON_VALUE(data, 'strict $[3]') AS int256) / POW(10, 12)
    ) AS amount,
    JSON_VALUE(data, 'strict $[4]') AS recipient,
    get_href(
    'https://etherscan.io/address/' || JSON_VALUE(data, 'strict $[4]'),
    CONCAT(
    SUBSTR(JSON_VALUE(data, 'strict $[4]'), 1, 4),
    '...',
    SUBSTR(
    JSON_VALUE(data, 'strict $[4]'),
    LENGTH(JSON_VALUE(data, 'strict $[4]')) - 3
    )
    )
    ) AS recipient_url
    FROM
    litentry.events
    WHERE
    section = 'chainBridge'
    AND method = 'FungibleTransfer'
    ORDER BY
    block_time DESC;

    Query result:

    DuneSQL Reference

    For more information on DuneSQL, please refer to the DuneSQL Cheatsheet and DuneSQL Official Documentation.

    - + \ No newline at end of file diff --git a/docs/general/dune-analytics/manta-dashboards.html b/docs/general/dune-analytics/manta-dashboards.html index e40e64626ee7..2196fbca60e9 100644 --- a/docs/general/dune-analytics/manta-dashboards.html +++ b/docs/general/dune-analytics/manta-dashboards.html @@ -19,7 +19,7 @@ - + @@ -32,7 +32,7 @@ queries. You can use the following DuneSQL queries as examples:

    Manta to Moonbeam XTokens Transfer
    SELECT
    DATE_TRUNC('day', block_time) AS day,
    SUM(
    CAST(json_extract_scalar(params, '$.amount') AS DOUBLE) / POWER(10, 18)
    ) AS amount,
    'Manta to Moonbeam' AS section
    FROM
    manta.extrinsics
    WHERE
    section = 'xTokens'
    AND method = 'transfer'
    AND json_extract_scalar(params, '$.dest.v3.interior.x2[0].parachain') = '2004'
    GROUP BY
    DATE_TRUNC('day', block_time)
    ORDER BY
    day DESC;

    Query result:

    DuneSQL Referece

    For more information on DuneSQL, please refer to the DuneSQL Cheatsheet and DuneSQL Official Documentation.

    - + \ No newline at end of file diff --git a/docs/general/dune-analytics/moonbeam-dashboards.html b/docs/general/dune-analytics/moonbeam-dashboards.html index 46e18bd881a7..fa87e0b07bf0 100644 --- a/docs/general/dune-analytics/moonbeam-dashboards.html +++ b/docs/general/dune-analytics/moonbeam-dashboards.html @@ -19,7 +19,7 @@ - + @@ -33,7 +33,7 @@ queries. You can use the following DuneSQL queries as examples:

    Moonbeam Referenda Result
    SELECT DISTINCT
    CAST(JSON_EXTRACT_SCALAR(data, '$[0]') AS INTEGER) AS referenda_id,
    get_href(
    'https://moonbeam.subscan.io/referenda_v2/' || CAST(JSON_EXTRACT_SCALAR(data, '$[0]') AS VARCHAR),
    CAST(JSON_EXTRACT_SCALAR(data, '$[0]') AS VARCHAR)
    ) AS referenda_id_url,
    varbinary_to_uint256(
    from_hex(SUBSTR(JSON_EXTRACT_SCALAR(data, '$[1].ayes'), 3))
    ) / POW(10, 18) AS aye_total,
    varbinary_to_uint256(
    from_hex(SUBSTR(JSON_EXTRACT_SCALAR(data, '$[1].nays'), 3))
    ) / POW(10, 18) AS nay_total,
    varbinary_to_uint256(
    from_hex(SUBSTR(JSON_EXTRACT_SCALAR(data, '$[1].support'), 3))
    ) / POW(10, 18) AS support,
    method AS result
    FROM
    moonbeam.events
    WHERE
    section = 'referenda'
    AND (
    method = 'Confirmed'
    OR method = 'Rejected'
    OR method = 'Cancelled'
    OR method = 'TimedOut'
    )
    ORDER BY
    referenda_id DESC;

    Query result:

    DuneSQL Referece

    For more information on DuneSQL, please refer to the DuneSQL Cheatsheet and DuneSQL Official Documentation.

    - + \ No newline at end of file diff --git a/docs/general/dune-analytics/neuroweb-dashboards.html b/docs/general/dune-analytics/neuroweb-dashboards.html index 811bec756743..34dca4c9c300 100644 --- a/docs/general/dune-analytics/neuroweb-dashboards.html +++ b/docs/general/dune-analytics/neuroweb-dashboards.html @@ -19,7 +19,7 @@ - + @@ -34,7 +34,7 @@ queries. You can use the following DuneSQL queries as examples:

    Neuroweb Knowledge Asset Distribution
    SELECT DISTINCT
    get_href(
    'https://dkg.origintrail.io/profile?wallet=' || CAST(To AS VARCHAR),
    CONCAT(
    SUBSTR(To, 1, 4),
    '...',
    SUBSTR(To, LENGTH(To) - 3)
    )
    ) AS Holder_URL,
    CONCAT(
    SUBSTR(To, 1, 4),
    '...',
    SUBSTR(To, LENGTH(To) - 3)
    ) AS Holder,
    COUNT("Token ID") AS "# of Tokens"
    FROM
    query_3695045
    GROUP BY
    To
    ORDER BY
    "# of Tokens" DESC;

    Query result:

    DuneSQL Referece

    For more information on DuneSQL, please refer to the DuneSQL Cheatsheet and DuneSQL Official Documentation.

    - + \ No newline at end of file diff --git a/docs/general/dune-analytics/nodle-dashboards.html b/docs/general/dune-analytics/nodle-dashboards.html index 0b63723f1dfb..b2e97fea14ef 100644 --- a/docs/general/dune-analytics/nodle-dashboards.html +++ b/docs/general/dune-analytics/nodle-dashboards.html @@ -19,7 +19,7 @@ - + @@ -33,7 +33,7 @@ queries. You can use the following DuneSQL queries as examples:

    Nodle Mint Uniques
    SELECT DISTINCT
    block_time,
    JSON_EXTRACT_SCALAR(call_args, '$.owner.id') AS owner,
    JSON_EXTRACT(call_args, '$.collection') AS collection,
    JSON_EXTRACT(call_args, '$.item') AS item
    FROM
    nodle.calls
    WHERE
    (call_section = 'nodleUniques' OR call_section = 'uniques')
    AND call_method = 'mint'
    AND extrinsic_id NOT IN (
    SELECT
    extrinsic_id
    FROM
    nodle.events
    WHERE
    method = 'ExtrinsicFailed'
    );

    Query result:

    DuneSQL Referece

    For more information on DuneSQL, please refer to the DuneSQL Cheatsheet and DuneSQL Official Documentation.

    - + \ No newline at end of file diff --git a/docs/general/dune-analytics/parachain-dashboards.html b/docs/general/dune-analytics/parachain-dashboards.html index 0ee0a8618b2b..56682014bf84 100644 --- a/docs/general/dune-analytics/parachain-dashboards.html +++ b/docs/general/dune-analytics/parachain-dashboards.html @@ -19,13 +19,13 @@ - +

    Parachain Dashboards

    In-depth analysis dashboards for each specific parachain within the Polkadot ecosystem.

    - + \ No newline at end of file diff --git a/docs/general/dune-analytics/pendulum-dashboards.html b/docs/general/dune-analytics/pendulum-dashboards.html index ee9856bebf1e..b348c8f71456 100644 --- a/docs/general/dune-analytics/pendulum-dashboards.html +++ b/docs/general/dune-analytics/pendulum-dashboards.html @@ -19,7 +19,7 @@ - + @@ -33,7 +33,7 @@ queries. You can use the following DuneSQL queries as examples:

    Pendulum Spacewalk Transactions by Month
    SELECT
    DATE_TRUNC('month', block_time) AS month,
    SUM(amount) AS amount,
    COUNT(*) AS count,
    token_name
    FROM
    query_3821151 -- Pendulum Spacewalk Transactions
    GROUP BY
    DATE_TRUNC('month', block_time),
    token_name;

    Query result:

    DuneSQL Referece

    For more information on DuneSQL, please refer to the DuneSQL Cheatsheet and DuneSQL Official Documentation.

    - + \ No newline at end of file diff --git a/docs/general/dune-analytics/people-dashboards.html b/docs/general/dune-analytics/people-dashboards.html index 1638c203c385..4c036fb72964 100644 --- a/docs/general/dune-analytics/people-dashboards.html +++ b/docs/general/dune-analytics/people-dashboards.html @@ -19,7 +19,7 @@ - + @@ -32,7 +32,7 @@ queries. You can use the following DuneSQL queries as examples:

    Kusama People Chain - Identity History Sample
    SELECT
    block_time,
    extrinsic_id,
    signer_ss58,
    signer_pub_key,
    CAST(
    from_utf8(
    from_hex(JSON_EXTRACT_SCALAR(call_args, '$.info.display.raw'))
    ) AS VARCHAR
    ) AS name,
    CAST(
    from_utf8(
    from_hex(JSON_EXTRACT_SCALAR(call_args, '$.info.email.raw'))
    ) AS VARCHAR
    ) AS email
    FROM
    people_kusama.calls
    WHERE
    call_section = 'identity'
    AND call_method = 'setIdentity';

    Query result:

    DuneSQL Referece

    For more information on DuneSQL, please refer to the DuneSQL Cheatsheet and DuneSQL Official Documentation.

    - + \ No newline at end of file diff --git a/docs/general/dune-analytics/phala-dashboards.html b/docs/general/dune-analytics/phala-dashboards.html index abbd2888cb7e..807c1f05055b 100644 --- a/docs/general/dune-analytics/phala-dashboards.html +++ b/docs/general/dune-analytics/phala-dashboards.html @@ -19,7 +19,7 @@ - + @@ -32,7 +32,7 @@ queries. You can use the following DuneSQL queries as examples:

    Phala Computation
    SELECT
    chain,
    circulation,
    sygma_bridge,
    reward,
    COALESCE(total_issuance, total_supply) AS total_issuance,
    total_value,
    idle_worker_count,
    daily_rewards,
    average_apr,
    budget_per_share,
    delegator_count
    FROM
    dune.phala_network.dataset_phala_computation;

    Query result:

    Visualizations using the query result:

    DuneSQL Referece

    For more information on DuneSQL, please refer to the DuneSQL Cheatsheet and DuneSQL Official Documentation.

    - + \ No newline at end of file diff --git a/docs/general/dune-analytics/polimec-dashboards.html b/docs/general/dune-analytics/polimec-dashboards.html index c0aa0270cab5..557ed08788f2 100644 --- a/docs/general/dune-analytics/polimec-dashboards.html +++ b/docs/general/dune-analytics/polimec-dashboards.html @@ -19,7 +19,7 @@ - + @@ -31,7 +31,7 @@ queries. You can use the following DuneSQL queries as examples:

    Polimec Latest Reward Distribution
    WITH latest_round AS (
    SELECT
    MAX(CAST(JSON_EXTRACT_SCALAR(data, '$[0]') AS BIGINT)) AS start_block
    FROM
    polimec.events
    WHERE
    section = 'parachainStaking'
    AND method = 'NewRound'
    ),
    summed AS (
    SELECT
    MAX(block_time) AS latest_time,
    JSON_EXTRACT_SCALAR(JSON_PARSE(data), '$[0]') AS delegator,
    SUM(
    CAST(JSON_EXTRACT_SCALAR(data, '$[1]') AS BIGINT) / POW(10, 10)
    ) AS reward
    FROM
    polimec.events
    WHERE
    section = 'parachainStaking'
    AND method = 'Rewarded'
    AND CAST(block_number AS BIGINT) >= (
    SELECT
    start_block
    FROM
    latest_round
    )
    GROUP BY
    JSON_EXTRACT_SCALAR(JSON_PARSE(data), '$[0]')
    )
    SELECT
    latest_time,
    delegator,
    get_href(
    'https://explorer.polimec.org/polimec/account/' || delegator,
    CONCAT(
    SUBSTR(delegator, 1, 4),
    '...',
    SUBSTR(delegator, LENGTH(delegator) - 3)
    )
    ) AS delegator_url,
    reward
    FROM
    summed
    ORDER BY
    reward DESC;

    Query result:

    DuneSQL Referece

    For more information on DuneSQL, please refer to the DuneSQL Cheatsheet and DuneSQL Official Documentation.

    - + \ No newline at end of file diff --git a/docs/general/dune-analytics/polkadex-dashboards.html b/docs/general/dune-analytics/polkadex-dashboards.html index 2b0070b64fd5..6d9f331b583f 100644 --- a/docs/general/dune-analytics/polkadex-dashboards.html +++ b/docs/general/dune-analytics/polkadex-dashboards.html @@ -19,7 +19,7 @@ - + @@ -33,7 +33,7 @@ queries. You can use the following DuneSQL queries as examples:

    Polkadot BridgeHub Outbound Msg Sent To Ethereum
    SELECT
    DATE_TRUNC('day', block_time) AS day,
    COUNT(method) AS cnt
    FROM
    polkadex.events
    WHERE
    method = 'TransferredMultiAssets'
    GROUP BY
    DATE_TRUNC('day', block_time);

    Query result:

    DuneSQL Reference

    For more information on DuneSQL, please refer to the DuneSQL Cheatsheet and DuneSQL Official Documentation.

    - + \ No newline at end of file diff --git a/docs/general/dune-analytics/polkadot-dashboards-governance.html b/docs/general/dune-analytics/polkadot-dashboards-governance.html index 63258ea26173..47b2809182fe 100644 --- a/docs/general/dune-analytics/polkadot-dashboards-governance.html +++ b/docs/general/dune-analytics/polkadot-dashboards-governance.html @@ -19,7 +19,7 @@ - + @@ -35,7 +35,7 @@ Visit our dashboard on Dune to use the referendum_id parameter for more in-depth analysis. For more information, please visit the Dune documentation on parameters.

    Voting Power Analysis

    • Voting Power Daily Accumulation

    • Aye vs Nay

    Vote Analysis

    • Aye Votes Analysis

    • Nay Votes Analysis

    • Abstain Votes Analysis

    Voter Insights

    • First Time Voter Analysis

    • Voter Conviction Adjustment

    • Awakened Voters

    - + \ No newline at end of file diff --git a/docs/general/dune-analytics/polkadot-dashboards-network.html b/docs/general/dune-analytics/polkadot-dashboards-network.html index 54e0abca8e6a..b8502cf10025 100644 --- a/docs/general/dune-analytics/polkadot-dashboards-network.html +++ b/docs/general/dune-analytics/polkadot-dashboards-network.html @@ -19,7 +19,7 @@ - + @@ -43,7 +43,7 @@ stake concentration by showing the difference between the highest and lowest stakes as a percentage of the total stake, offering insights into the network's staking dynamics and the level of decentralization.

    - + \ No newline at end of file diff --git a/docs/general/dune-analytics/polkadot-dashboards-overview.html b/docs/general/dune-analytics/polkadot-dashboards-overview.html index fd571a3e2ee4..a6eeffa71579 100644 --- a/docs/general/dune-analytics/polkadot-dashboards-overview.html +++ b/docs/general/dune-analytics/polkadot-dashboards-overview.html @@ -19,7 +19,7 @@ - + @@ -68,7 +68,7 @@ queries. You can use the following DuneSQL queries as examples:

    Polkadot Staking APR (Normalized)
    SELECT
    AVG(validator_normalized_staking_apr) AS staking_apr,
    era,
    DATE_FORMAT(ts, '%Y-%m-%d') AS era_ts
    FROM
    dune.substrate.result_polkadot_validators
    WHERE
    validator_is_active = TRUE
    AND validator_commission <> 1
    GROUP BY
    era,
    ts
    HAVING
    AVG(validator_normalized_staking_apr) > 0
    ORDER BY
    era DESC;

    Query result:

    Visualized result:

    DuneSQL Reference

    For more information on DuneSQL, please refer to the DuneSQL Cheatsheet and DuneSQL Official Documentation.

    - + \ No newline at end of file diff --git a/docs/general/dune-analytics/polkadot-dashboards-staking.html b/docs/general/dune-analytics/polkadot-dashboards-staking.html index 840a3db6c55a..d51aa0a1138b 100644 --- a/docs/general/dune-analytics/polkadot-dashboards-staking.html +++ b/docs/general/dune-analytics/polkadot-dashboards-staking.html @@ -19,7 +19,7 @@ - + @@ -55,7 +55,7 @@ Visit our dashboard on Dune to use the user_ss58 parameter for more in-depth analysis. For more information, please visit the Dune documentation on parameters.

    - + \ No newline at end of file diff --git a/docs/general/dune-analytics/polkadot-dashboards.html b/docs/general/dune-analytics/polkadot-dashboards.html index cd63c37f44d0..0aaac0b267e3 100644 --- a/docs/general/dune-analytics/polkadot-dashboards.html +++ b/docs/general/dune-analytics/polkadot-dashboards.html @@ -19,13 +19,13 @@ - + - + \ No newline at end of file diff --git a/docs/general/dune-analytics/polkadot-dashboards/polkadot-dot-ordinals.html b/docs/general/dune-analytics/polkadot-dashboards/polkadot-dot-ordinals.html index d0ed39ac3ae3..92e94ef20c8b 100644 --- a/docs/general/dune-analytics/polkadot-dashboards/polkadot-dot-ordinals.html +++ b/docs/general/dune-analytics/polkadot-dashboards/polkadot-dot-ordinals.html @@ -19,13 +19,13 @@ - + - + \ No newline at end of file diff --git a/docs/general/dune-analytics/polkadot-dashboards/polkadot-governance-dashboard.html b/docs/general/dune-analytics/polkadot-dashboards/polkadot-governance-dashboard.html index 634a9b1b4d26..5cae9ca57ead 100644 --- a/docs/general/dune-analytics/polkadot-dashboards/polkadot-governance-dashboard.html +++ b/docs/general/dune-analytics/polkadot-dashboards/polkadot-governance-dashboard.html @@ -19,7 +19,7 @@ - + @@ -81,7 +81,7 @@ voting conviction, using interactive elements that link to external references for detailed blockchain data. This allows for an in-depth look at the re-emergence of major stakeholders in the decision-making process.

    - + \ No newline at end of file diff --git a/docs/general/dune-analytics/polkadot-dashboards/polkadot-opengov-referenda-home.html b/docs/general/dune-analytics/polkadot-dashboards/polkadot-opengov-referenda-home.html index cba58a490a47..2b871d56cabc 100644 --- a/docs/general/dune-analytics/polkadot-dashboards/polkadot-opengov-referenda-home.html +++ b/docs/general/dune-analytics/polkadot-dashboards/polkadot-opengov-referenda-home.html @@ -19,7 +19,7 @@ - + @@ -29,7 +29,7 @@ Polkassembly.

    If you want to see more details of each referendum, please check Polkadot Opengov - Referendum Voting Analysis.

    Authored by @ colorfulnotion

    Controversial Referenda

    Select those referenda with approval ratings ranging from 0.2 to 0.8, and consider them as controversial referenda.

    - + \ No newline at end of file diff --git a/docs/general/dune-analytics/polkadot-dashboards/polkadot-opengov-referendum-voting-analysis.html b/docs/general/dune-analytics/polkadot-dashboards/polkadot-opengov-referendum-voting-analysis.html index 497aa65ec332..1847f98d3d9c 100644 --- a/docs/general/dune-analytics/polkadot-dashboards/polkadot-opengov-referendum-voting-analysis.html +++ b/docs/general/dune-analytics/polkadot-dashboards/polkadot-opengov-referendum-voting-analysis.html @@ -19,7 +19,7 @@ - + @@ -35,7 +35,7 @@ how voter convictions shift across referenda.

    Methodology

    Calculates each voter's previous average conviction, compares it to their current conviction in the referendum, and categorizes the change as Increase 🔼, Maintain 🔁, or Decrease 🔽. Finally, it provides counts and percentages for each category

    Awakened Voters

    Enumerate the "Aye" and "Nay" voters who have not voted in the last 90 days

    - + \ No newline at end of file diff --git a/docs/general/dune-analytics/polkadot-dashboards/polkadot-staking-dashboard-nomination-pool.html b/docs/general/dune-analytics/polkadot-dashboards/polkadot-staking-dashboard-nomination-pool.html index db5a1914f937..05fa5c437f89 100644 --- a/docs/general/dune-analytics/polkadot-dashboards/polkadot-staking-dashboard-nomination-pool.html +++ b/docs/general/dune-analytics/polkadot-dashboards/polkadot-staking-dashboard-nomination-pool.html @@ -19,7 +19,7 @@ - + @@ -27,7 +27,7 @@

    Polkadot Staking Dashboard (Nomination Pool)

    View On Dune: Polkadot Staking Dashboard

    We're using default parameters for all of the following parameterized charts. Visit our dashboard on Dune to use the pool_id parameter and analyze a specific referendum.

    For a _specific nomination pool id, this dashbaord shows:

    • Pool Members
    • Historical APY, Daily Pool Rewards & Fees

    Raw data is presented at the bottom.

    Source Table: polkadot.stakings , MaterializedView: dune.substrate.result_polkadot_nominationpools

    Go back to Polkadot Staking Home

    - + \ No newline at end of file diff --git a/docs/general/dune-analytics/polkadot-dashboards/polkadot-staking-dashboard-nominators.html b/docs/general/dune-analytics/polkadot-dashboards/polkadot-staking-dashboard-nominators.html index 3b16b7007a18..25c27a48e90d 100644 --- a/docs/general/dune-analytics/polkadot-dashboards/polkadot-staking-dashboard-nominators.html +++ b/docs/general/dune-analytics/polkadot-dashboards/polkadot-staking-dashboard-nominators.html @@ -19,7 +19,7 @@ - + @@ -27,7 +27,7 @@

    Polkadot Staking Dashboard (Nominators)

    View On Dune: Polkadot Staking Dashboard

    We're using default parameters for all of the following parameterized charts. Visit our dashboard on Dune to use the nominator_ss58 parameter and analyze a specific referendum.

    For a specific nominator, this dashboard shows:

    • Nominator Staking Rewards
    • Nominator Shares
    • Delegated Amount
    • Nominator Staking Rewards Raw Data

    Source Table: polkadot.stakings , MaterializedView: dune.substrate.result_polkadot_nominators

    Go back to Polkadot Staking Home

    - + \ No newline at end of file diff --git a/docs/general/dune-analytics/polkadot-dashboards/polkadot-staking-dashboard-pool-member.html b/docs/general/dune-analytics/polkadot-dashboards/polkadot-staking-dashboard-pool-member.html index 063bc03caa3d..4f90fedef45e 100644 --- a/docs/general/dune-analytics/polkadot-dashboards/polkadot-staking-dashboard-pool-member.html +++ b/docs/general/dune-analytics/polkadot-dashboards/polkadot-staking-dashboard-pool-member.html @@ -19,7 +19,7 @@ - + @@ -27,7 +27,7 @@

    Polkadot Staking Dashboard (Pool Member)

    View On Dune: Polkadot Staking Dashboard

    We're using default parameters for all of the following parameterized charts. Visit our dashboard on Dune to use the user_ss58 parameter and analyze a specific referendum.

    For a specific nomination pool member

    This dashboard shows raw data of member activity within the pool

    Member Pool Fee: 365 * member_staking_rewards / member_bonded

    Source Table: polkadot.stakings , MaterializedView: dune.substrate.result_polkadot_poolmembers

    Go back to Polkadot Staking Home

    - + \ No newline at end of file diff --git a/docs/general/dune-analytics/polkadot-dashboards/polkadot-staking-dashboard-validators.html b/docs/general/dune-analytics/polkadot-dashboards/polkadot-staking-dashboard-validators.html index 4849049bdd29..3af214097253 100644 --- a/docs/general/dune-analytics/polkadot-dashboards/polkadot-staking-dashboard-validators.html +++ b/docs/general/dune-analytics/polkadot-dashboards/polkadot-staking-dashboard-validators.html @@ -19,7 +19,7 @@ - + @@ -31,7 +31,7 @@ commission) / validator_total_stake. This metric nomoralized the reward rate across active validator sets

    Source Table: polkadot.stakings , MaterializedView: dune.substrate.result_polkadot_validators

    Go back to Polkadot Staking Home

    - + \ No newline at end of file diff --git a/docs/general/dune-analytics/polkadot-dashboards/polkadot-staking-dashboard.html b/docs/general/dune-analytics/polkadot-dashboards/polkadot-staking-dashboard.html index 0cdfbc240818..c15600ac2e81 100644 --- a/docs/general/dune-analytics/polkadot-dashboards/polkadot-staking-dashboard.html +++ b/docs/general/dune-analytics/polkadot-dashboards/polkadot-staking-dashboard.html @@ -19,7 +19,7 @@ - + @@ -41,7 +41,7 @@ dune.substrate.result_polkadot_nominationpools (MetVeiw)
  • Pool Members - dune.substrate.result_polkadot_poolmembers (MetVeiw)
  • On-Chain Identities - dune.substrate.result_polkadot_identity (MetVeiw)
  • Github repo: substrate-etl

    - + \ No newline at end of file diff --git a/docs/general/dune-analytics/snowbridge-dashboards.html b/docs/general/dune-analytics/snowbridge-dashboards.html index 096630225882..f69d251442a7 100644 --- a/docs/general/dune-analytics/snowbridge-dashboards.html +++ b/docs/general/dune-analytics/snowbridge-dashboards.html @@ -19,7 +19,7 @@ - + @@ -34,7 +34,7 @@ queries. You can use the following DuneSQL queries as examples:

    Polkadot BridgeHub Outbound Msg Sent To Ethereum
    SELECT DISTINCT
    block_time,
    block_number,
    block_hash,
    extrinsic_id,
    extrinsic_hash,
    event_id,
    section,
    method,
    CAST(JSON_VALUE(data, 'strict $[0]') AS VARCHAR) AS message_id,
    CAST(JSON_VALUE(data, 'strict $[1]') AS uint256) AS nonce
    FROM
    bridgehub.events
    WHERE
    section = 'ethereumOutboundQueue'
    AND method = 'MessageAccepted';

    Query result:

    DuneSQL Reference

    For more information on DuneSQL, please refer to the DuneSQL Cheatsheet and DuneSQL Official Documentation.

    - + \ No newline at end of file diff --git a/docs/general/dune-analytics/stellaswap-dashboards.html b/docs/general/dune-analytics/stellaswap-dashboards.html index 530b9753b354..f03f883445b6 100644 --- a/docs/general/dune-analytics/stellaswap-dashboards.html +++ b/docs/general/dune-analytics/stellaswap-dashboards.html @@ -19,7 +19,7 @@ - + @@ -45,7 +45,7 @@ calculated.

    Query result:

    DuneSQL Reference

    For more information on DuneSQL, please refer to the DuneSQL Cheatsheet and DuneSQL Official Documentation.

    - + \ No newline at end of file diff --git a/docs/general/dune-analytics/unique-dashboards.html b/docs/general/dune-analytics/unique-dashboards.html index c4d2603a14e8..812e144ccd71 100644 --- a/docs/general/dune-analytics/unique-dashboards.html +++ b/docs/general/dune-analytics/unique-dashboards.html @@ -19,7 +19,7 @@ - + @@ -34,7 +34,7 @@ queries. You can use the following DuneSQL queries as examples:

    Unique Top Collections by Total Sales Amount
    SELECT
    collection_id_with_dashboard_url,
    token_prefix,
    SUM(for_price) AS total_amount
    FROM
    dune.substrate.result_unique_nft_transaction_info
    GROUP BY
    collection_id_with_dashboard_url,
    token_prefix
    ORDER BY
    SUM(for_price) DESC;

    Query result:

    DuneSQL Referece

    For more information on DuneSQL, please refer to the DuneSQL Cheatsheet and DuneSQL Official Documentation.

    - + \ No newline at end of file diff --git a/docs/general/dunesql-cheatsheet.html b/docs/general/dunesql-cheatsheet.html index bf34004c34f5..9ce18a51d6fc 100644 --- a/docs/general/dunesql-cheatsheet.html +++ b/docs/general/dunesql-cheatsheet.html @@ -19,7 +19,7 @@ - + @@ -29,7 +29,7 @@ versions of SQL. Below is a comparison table of common features between DuneSQL and Google BigQuery SQL.

    DuneSQL Reference

    For more information on DuneSQL, please refer to the DuneSQL documentation.

    Problem TypeBigQueryDuneSQL(V2)Description
    JSON Reading MethodJSON_EXTRACT_SCALAR(call_args, "$.remark")JSON_EXTRACT_SCALAR(JSON_PARSE(call_args), '$.remark')In DuneSQL, JSON_PARSE is needed to split the JSON if it is initially not in JSON format but is transformed into a JSON string.
    JSON array to SQL arrayJSON_EXTRACT_ARRAY(JSON_EXTRACT(pv, '$.others'))cast(json_extract(pv, '$.others') as array<json>)BigQuery uses a function for this conversion, while DuneSQL utilizes casting and supports the JSON data type.
    HEX to UTF8SAFE_CONVERT_BYTES_TO_STRING(FROM_HEX(SUBSTR(hex_encode, 3)))FROM_UTF8(from_hex(SUBSTR(hex_encode, 3)))In DuneSQL, the SAFE_CONVERT_BYTES_TO_STRING is not required.
    Time SeriesTIMESTAMP_TRUNC(block_time, DAY) >= TIMESTAMP("2023-12-01")block_time >= date('2023-12-01')Time conversion in DuneSQL is simpler, involving direct usage of variable operator date(value).
    Data Type Conversion (FLOAT64 to DOUBLE)CAST(JSON_EXTRACT_SCALAR(nominationpools_rewardpools, '$.lastRecordedRewardCounter') AS FLOAT64)CAST(JSON_EXTRACT_SCALAR(nominationpools_rewardpools, '$.lastRecordedRewardCounter')BigQuery refers to the data format as FLOAT64, while in DuneSQL, it is termed DOUBLE.
    Handling Null ValuesIFNULL(prev_member_bonded, 0)COALESCE(prev_member_bonded, 0)In DuneSQL, BigQuery's IFNULL is equivalent to COALESCE.
    Calculating Local Time and Subtracting DaysTIMESTAMP_TRUNC(ts, DAY) >= TIMESTAMP(DATE_SUB(CURRENT_DATE(), INTERVAL 30 DAY))ts >= date(current_date - interval '30' day)In BigQuery, operations on dates require functions, but DuneSQL allows direct use of + and -.
    Using Hyperlinks in TablesSELECT concat(concat(concat("<a href='https://analytics.polkaholic.io/superset/dashboard/77/?account=", address_ss58), "'>"), if(address_name is null, concat(address_ss58, '</a>'), concat(address_name, '</a>')))CONCAT('<a target="_new" href="https://analytics.polkaholic.io/superset/dashboard/77/?account=', address_ss58, '">', address_ss58 ,'</a>') AS address_ss58DuneSQL enables string concatenation using CONCAT, making it straightforward compared to the multiple concat functions required in BigQuery.
    - + \ No newline at end of file diff --git a/docs/general/onboarding-status-and-key-dashboards.html b/docs/general/onboarding-status-and-key-dashboards.html index b45bd517af1b..550e1069c413 100644 --- a/docs/general/onboarding-status-and-key-dashboards.html +++ b/docs/general/onboarding-status-and-key-dashboards.html @@ -19,7 +19,7 @@ - + @@ -30,7 +30,7 @@ powerful Dune Integration.

    The data must flow. As dashboard catalysts, we are looking forward to seeing more impressive dashboards developed by the community, leveraging this rich dataset to unlock new possibilities and insights.

    - + \ No newline at end of file diff --git a/docs/general/polkadot-ecosystem-overview.html b/docs/general/polkadot-ecosystem-overview.html index d8c447fecf62..433b4b123101 100644 --- a/docs/general/polkadot-ecosystem-overview.html +++ b/docs/general/polkadot-ecosystem-overview.html @@ -19,7 +19,7 @@ - + @@ -33,7 +33,7 @@ Asset Hub Dashboards
  • For Polkadot relay-chain treasury, visit Polkadot Dashboards Governance
  • For Polkadot staking, visit Polkadot Dashboards Staking
  • For NFTs, visit Unique Dashboards
  • Activities Metrics

    Polkadot Treasury Flow

    Polkadot Network & Security

    XCM Metrics

    - + \ No newline at end of file diff --git a/docs/general/project-dashboards.html b/docs/general/project-dashboards.html index 52ace1658e48..97bff394e717 100644 --- a/docs/general/project-dashboards.html +++ b/docs/general/project-dashboards.html @@ -19,7 +19,7 @@ - + @@ -33,7 +33,7 @@ goal is set up the JAM DUNA as a Wyoming DUNA in July 2024. Wyoming DUNAs provide significant legal advantages over DAOs, requiring a minimum 100 members.
  • DED: DED is a memecoin project originated in the DOT community and developed by the DED Foundation
  • - + \ No newline at end of file diff --git a/docs/getting-started.html b/docs/getting-started.html index 49dda0db8c37..108b73babd99 100644 --- a/docs/getting-started.html +++ b/docs/getting-started.html @@ -19,7 +19,7 @@ - + @@ -112,7 +112,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.html b/docs/glossary.html index 57d3e63e42e0..330db5ae9d53 100644 --- a/docs/glossary.html +++ b/docs/glossary.html @@ -19,7 +19,7 @@ - + @@ -289,7 +289,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.html b/docs/governance-apps.html index af0f88dbb094..dc269de36510 100644 --- a/docs/governance-apps.html +++ b/docs/governance-apps.html @@ -19,7 +19,7 @@ - + @@ -53,7 +53,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.html b/docs/grants.html index f33c2c589300..16ea4d0b1a20 100644 --- a/docs/grants.html +++ b/docs/grants.html @@ -19,7 +19,7 @@ - + @@ -41,7 +41,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.html b/docs/how-to-dyor.html index 28759f8558cc..08f2d3a09325 100644 --- a/docs/how-to-dyor.html +++ b/docs/how-to-dyor.html @@ -19,7 +19,7 @@ - + @@ -217,7 +217,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.html b/docs/kusama-adversarial-cheatsheet.html index c5bcbd7f4cae..ffaf21f94f4f 100644 --- a/docs/kusama-adversarial-cheatsheet.html +++ b/docs/kusama-adversarial-cheatsheet.html @@ -19,14 +19,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.html b/docs/kusama-bug-bounty.html index 3545a9cb313b..7dbaa8e53875 100644 --- a/docs/kusama-bug-bounty.html +++ b/docs/kusama-bug-bounty.html @@ -19,7 +19,7 @@ - + @@ -44,7 +44,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-coc.html b/docs/kusama-coc.html index 0236633ddc82..596bd0a5fa24 100644 --- a/docs/kusama-coc.html +++ b/docs/kusama-coc.html @@ -19,7 +19,7 @@ - + @@ -42,7 +42,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.html b/docs/kusama-community.html index 3b5f91288e7f..7d9b0fe7a495 100644 --- a/docs/kusama-community.html +++ b/docs/kusama-community.html @@ -19,7 +19,7 @@ - + @@ -42,7 +42,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.html b/docs/kusama-getting-started.html index 4f6729166cce..0060e47ba1b3 100644 --- a/docs/kusama-getting-started.html +++ b/docs/kusama-getting-started.html @@ -19,7 +19,7 @@ - + @@ -55,7 +55,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.html b/docs/kusama-index.html index 7d5e83cb74d3..4473fbcc55fe 100644 --- a/docs/kusama-index.html +++ b/docs/kusama-index.html @@ -19,7 +19,7 @@ - + @@ -27,7 +27,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.html b/docs/kusama-parameters.html index f388c65b8d32..c2482f7d6af3 100644 --- a/docs/kusama-parameters.html +++ b/docs/kusama-parameters.html @@ -19,7 +19,7 @@ - + @@ -38,7 +38,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.html b/docs/kusama-social-recovery.html index 4b0be5cf8836..3e74dc8251bf 100644 --- a/docs/kusama-social-recovery.html +++ b/docs/kusama-social-recovery.html @@ -19,7 +19,7 @@ - + @@ -65,7 +65,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.html b/docs/kusama-timeline.html index b26cf022fa98..4575addd6228 100644 --- a/docs/kusama-timeline.html +++ b/docs/kusama-timeline.html @@ -19,7 +19,7 @@ - + @@ -57,7 +57,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.html b/docs/learn-DOT.html index e3f524288a84..b8396e16ff23 100644 --- a/docs/learn-DOT.html +++ b/docs/learn-DOT.html @@ -19,7 +19,7 @@ - + @@ -85,7 +85,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.html b/docs/learn-account-abstraction.html index dd9da0e175fb..9c7ab4cb898d 100644 --- a/docs/learn-account-abstraction.html +++ b/docs/learn-account-abstraction.html @@ -19,7 +19,7 @@ - + @@ -89,7 +89,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.html b/docs/learn-account-advanced.html index 7ea8bbec998e..632d701b3f5c 100644 --- a/docs/learn-account-advanced.html +++ b/docs/learn-account-advanced.html @@ -19,7 +19,7 @@ - + @@ -204,7 +204,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.html b/docs/learn-account-balances.html index bc92823e48bf..623e81291831 100644 --- a/docs/learn-account-balances.html +++ b/docs/learn-account-balances.html @@ -19,7 +19,7 @@ - + @@ -101,7 +101,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.html b/docs/learn-account-multisig.html index 00d1729cb58e..1e176d0e9ed4 100644 --- a/docs/learn-account-multisig.html +++ b/docs/learn-account-multisig.html @@ -19,7 +19,7 @@ - + @@ -44,7 +44,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.html b/docs/learn-accounts.html index 92c74aeb1d94..7e673273836b 100644 --- a/docs/learn-accounts.html +++ b/docs/learn-accounts.html @@ -19,7 +19,7 @@ - + @@ -93,7 +93,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.html b/docs/learn-advanced-index.html index 5bc98a98883d..df1e1bce0e50 100644 --- a/docs/learn-advanced-index.html +++ b/docs/learn-advanced-index.html @@ -19,13 +19,13 @@ - + - + \ No newline at end of file diff --git a/docs/learn-agile-coretime-index.html b/docs/learn-agile-coretime-index.html index 95d192f5f3c3..a9a36a31327e 100644 --- a/docs/learn-agile-coretime-index.html +++ b/docs/learn-agile-coretime-index.html @@ -19,13 +19,13 @@ - + - + \ No newline at end of file diff --git a/docs/learn-agile-coretime.html b/docs/learn-agile-coretime.html index 05de23230d09..8952bb8109da 100644 --- a/docs/learn-agile-coretime.html +++ b/docs/learn-agile-coretime.html @@ -19,7 +19,7 @@ - + @@ -210,7 +210,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.html b/docs/learn-architecture.html index 32410e7d5936..7332c2ad95c0 100644 --- a/docs/learn-architecture.html +++ b/docs/learn-architecture.html @@ -19,7 +19,7 @@ - + @@ -84,7 +84,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.html b/docs/learn-archive.html index 401f72b763c4..f5cbb2408484 100644 --- a/docs/learn-archive.html +++ b/docs/learn-archive.html @@ -19,14 +19,14 @@ - + - + \ No newline at end of file diff --git a/docs/learn-asset-conversion-assethub.html b/docs/learn-asset-conversion-assethub.html index e3f62906f9cc..ffb4c3f71750 100644 --- a/docs/learn-asset-conversion-assethub.html +++ b/docs/learn-asset-conversion-assethub.html @@ -19,7 +19,7 @@ - + @@ -60,7 +60,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.html b/docs/learn-assets-index.html index a0d8500f71f5..fbebb8193734 100644 --- a/docs/learn-assets-index.html +++ b/docs/learn-assets-index.html @@ -19,13 +19,13 @@ - + - + \ No newline at end of file diff --git a/docs/learn-assets.html b/docs/learn-assets.html index 8a37b9c205de..d705f66ea9eb 100644 --- a/docs/learn-assets.html +++ b/docs/learn-assets.html @@ -19,7 +19,7 @@ - + @@ -125,7 +125,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.html b/docs/learn-async-backing.html index 4379865adc6e..525209effeb1 100644 --- a/docs/learn-async-backing.html +++ b/docs/learn-async-backing.html @@ -19,7 +19,7 @@ - + @@ -156,7 +156,7 @@ Synchronous and Asynchronous Backing - + \ No newline at end of file diff --git a/docs/learn-auction.html b/docs/learn-auction.html index 1493700656b1..c4459dbaeb61 100644 --- a/docs/learn-auction.html +++ b/docs/learn-auction.html @@ -19,7 +19,7 @@ - + @@ -141,7 +141,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.html b/docs/learn-basics-index.html index 4e36272fa365..813156a2a560 100644 --- a/docs/learn-basics-index.html +++ b/docs/learn-basics-index.html @@ -19,13 +19,13 @@ - + - + \ No newline at end of file diff --git a/docs/learn-bridge-hub.html b/docs/learn-bridge-hub.html index 616acdfdfe27..ecf03cd6c175 100644 --- a/docs/learn-bridge-hub.html +++ b/docs/learn-bridge-hub.html @@ -19,7 +19,7 @@ - + @@ -64,7 +64,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.html b/docs/learn-bridges.html index 749c730c1d89..4ae3702fcb57 100644 --- a/docs/learn-bridges.html +++ b/docs/learn-bridges.html @@ -19,7 +19,7 @@ - + @@ -88,7 +88,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.html b/docs/learn-collator.html index e11542d1648e..99e9dcd4f18f 100644 --- a/docs/learn-collator.html +++ b/docs/learn-collator.html @@ -19,7 +19,7 @@ - + @@ -69,7 +69,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.html b/docs/learn-comparisons-avalanche.html index 9a98fd5e6198..8b15b978f1e5 100644 --- a/docs/learn-comparisons-avalanche.html +++ b/docs/learn-comparisons-avalanche.html @@ -19,7 +19,7 @@ - + @@ -113,7 +113,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.html b/docs/learn-comparisons-cosmos.html index efce4df5e5ce..dd513649d902 100644 --- a/docs/learn-comparisons-cosmos.html +++ b/docs/learn-comparisons-cosmos.html @@ -19,7 +19,7 @@ - + @@ -130,7 +130,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.html b/docs/learn-comparisons-ethereum-2.html index bd11cd67730c..b9552994066d 100644 --- a/docs/learn-comparisons-ethereum-2.html +++ b/docs/learn-comparisons-ethereum-2.html @@ -19,7 +19,7 @@ - + @@ -155,7 +155,7 @@ enacted autonomously via forkless upgrades.
  • Validator selection mechanisms differ as Polkadot can provide strong availability and validity guarantees with fewer validators per protocol.
  • - + \ No newline at end of file diff --git a/docs/learn-comparisons-index.html b/docs/learn-comparisons-index.html index 5fee0c5d95d6..0488e220cd7e 100644 --- a/docs/learn-comparisons-index.html +++ b/docs/learn-comparisons-index.html @@ -19,13 +19,13 @@ - + - + \ No newline at end of file diff --git a/docs/learn-comparisons-kusama.html b/docs/learn-comparisons-kusama.html index b746373eca39..d8f627d63078 100644 --- a/docs/learn-comparisons-kusama.html +++ b/docs/learn-comparisons-kusama.html @@ -19,7 +19,7 @@ - + @@ -76,7 +76,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.html b/docs/learn-comparisons-rollups.html index 5bacb7dbe36c..70ea194522c6 100644 --- a/docs/learn-comparisons-rollups.html +++ b/docs/learn-comparisons-rollups.html @@ -19,7 +19,7 @@ - + @@ -94,7 +94,7 @@ transition data.

    Despite these drawbacks, Polkadot 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.html b/docs/learn-comparisons.html index 27ae583dfcec..66abc0af414f 100644 --- a/docs/learn-comparisons.html +++ b/docs/learn-comparisons.html @@ -19,7 +19,7 @@ - + @@ -61,7 +61,7 @@ Chain, and as the number of validators in the active set on Polkadot are increased, more parachains can be supported.

    - + \ No newline at end of file diff --git a/docs/learn-components-index.html b/docs/learn-components-index.html index e74297ee1750..9921905cfb85 100644 --- a/docs/learn-components-index.html +++ b/docs/learn-components-index.html @@ -19,13 +19,13 @@ - + - + \ No newline at end of file diff --git a/docs/learn-consensus.html b/docs/learn-consensus.html index c88f39baf472..38a154efc4cf 100644 --- a/docs/learn-consensus.html +++ b/docs/learn-consensus.html @@ -19,7 +19,7 @@ - + @@ -141,7 +141,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.html b/docs/learn-crowdloans.html index fdf84cde01e7..63f3810432db 100644 --- a/docs/learn-crowdloans.html +++ b/docs/learn-crowdloans.html @@ -19,7 +19,7 @@ - + @@ -94,7 +94,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.html b/docs/learn-cryptography.html index 80580a7edbec..4f42e6ff7099 100644 --- a/docs/learn-cryptography.html +++ b/docs/learn-cryptography.html @@ -19,7 +19,7 @@ - + @@ -175,7 +175,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.html b/docs/learn-dot-ksm-bridge.html index 72613814714f..929505e7f47a 100644 --- a/docs/learn-dot-ksm-bridge.html +++ b/docs/learn-dot-ksm-bridge.html @@ -19,7 +19,7 @@ - + @@ -58,7 +58,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.html b/docs/learn-elastic-scaling.html index 8b09af6b18a5..da861f27cc20 100644 --- a/docs/learn-elastic-scaling.html +++ b/docs/learn-elastic-scaling.html @@ -19,7 +19,7 @@ - + @@ -59,7 +59,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.html b/docs/learn-future-implementations-index.html index 0dd038940b53..34c7720667d6 100644 --- a/docs/learn-future-implementations-index.html +++ b/docs/learn-future-implementations-index.html @@ -19,13 +19,13 @@ - + - + \ No newline at end of file diff --git a/docs/learn-guides-accounts-multisig.html b/docs/learn-guides-accounts-multisig.html index 23e384c402a0..d2c575221a33 100644 --- a/docs/learn-guides-accounts-multisig.html +++ b/docs/learn-guides-accounts-multisig.html @@ -19,7 +19,7 @@ - + @@ -35,7 +35,8 @@ Polkadot-JS UI.

    You can create a multisig account directly on the Accounts Tab of the Polkadot-JS UI, and use this account to send funds. See this support article -for more information.

    Multisig Transactions with Extrinsic Tab

    There are three types of actions you can take with a multisig account:

    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.html b/docs/learn-guides-assets-ledger.html index 8724569ba278..bd581abcfc4e 100644 --- a/docs/learn-guides-assets-ledger.html +++ b/docs/learn-guides-assets-ledger.html @@ -19,7 +19,7 @@ - + @@ -98,7 +98,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.html b/docs/learn-guides-assets.html index 21121789da83..53953ea68c8f 100644 --- a/docs/learn-guides-assets.html +++ b/docs/learn-guides-assets.html @@ -19,7 +19,7 @@ - + @@ -28,7 +28,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.html b/docs/learn-guides-bounties.html index 9fa7999a533c..cbf50d057882 100644 --- a/docs/learn-guides-bounties.html +++ b/docs/learn-guides-bounties.html @@ -19,7 +19,7 @@ - + @@ -33,7 +33,7 @@ them and voting on them.

    Submit a Bounty Proposal

    Step-by-step written tutorial

    See this written tutorial to learn more about how to submit a bounty proposal.

    See the video tutorial below to learn how you can create a bounty and submit it for approval through -an OpenGov referendum.

    When you add a bounty, this will show as "proposed" in the main +an OpenGov referendum.

    When you add a bounty, this will show as "proposed" in the main Bounties page. Once the community approves your bounty proposal as an OpenGov referendum, the bounty will show as "funded" at the end of the spending period on the main @@ -78,8 +78,8 @@ -day 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.

    - +anyone can initiate the claim on behalf of the beneficiary.

    + \ No newline at end of file diff --git a/docs/learn-guides-bridges.html b/docs/learn-guides-bridges.html index 1fbb71072af3..f7eacc26aa7c 100644 --- a/docs/learn-guides-bridges.html +++ b/docs/learn-guides-bridges.html @@ -19,7 +19,7 @@ - + @@ -28,7 +28,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-claims.html b/docs/learn-guides-claims.html index 03b7543e4ba2..c7e63be9b512 100644 --- a/docs/learn-guides-claims.html +++ b/docs/learn-guides-claims.html @@ -19,7 +19,7 @@ - + @@ -64,7 +64,7 @@ Polkadot network such as governance and staking.

    Verifying your Claim

    After you make an on-chain claim for DOT, your Your account balance should be updated immediately.

    - + \ No newline at end of file diff --git a/docs/learn-guides-coretime-marketplaces.html b/docs/learn-guides-coretime-marketplaces.html index ad3748eaa663..69d69ffbacbf 100644 --- a/docs/learn-guides-coretime-marketplaces.html +++ b/docs/learn-guides-coretime-marketplaces.html @@ -19,7 +19,7 @@ - + @@ -38,7 +38,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.html b/docs/learn-guides-coretime-parachains.html index 4519f4c8d89b..50619cecf327 100644 --- a/docs/learn-guides-coretime-parachains.html +++ b/docs/learn-guides-coretime-parachains.html @@ -19,7 +19,7 @@ - + @@ -77,7 +77,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.html b/docs/learn-guides-dot-ksm-bridge.html index 1537d587bb79..e066ea2d09fc 100644 --- a/docs/learn-guides-dot-ksm-bridge.html +++ b/docs/learn-guides-dot-ksm-bridge.html @@ -19,7 +19,7 @@ - + @@ -80,7 +80,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.html b/docs/learn-guides-identity.html index 7e2592492169..56de693cc18e 100644 --- a/docs/learn-guides-identity.html +++ b/docs/learn-guides-identity.html @@ -19,7 +19,7 @@ - + @@ -88,7 +88,7 @@ OpenGov, then wait for people to vote on it. For best results, write a post about your identity and intentions beforehand, and once the proposal is in the queue ask people to endorse it so that it gets ahead in the referendum queue.

    - + \ No newline at end of file diff --git a/docs/learn-guides-ledger.html b/docs/learn-guides-ledger.html index 70fe8937fe40..e953fe5b401e 100644 --- a/docs/learn-guides-ledger.html +++ b/docs/learn-guides-ledger.html @@ -19,7 +19,7 @@ - + @@ -82,7 +82,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.html b/docs/learn-guides-nominator.html index 06bd951b85c7..92dad7fb3e96 100644 --- a/docs/learn-guides-nominator.html +++ b/docs/learn-guides-nominator.html @@ -19,7 +19,7 @@ - + @@ -90,7 +90,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.html b/docs/learn-guides-polkadot-opengov.html index 49fa083b53ea..18f05dd01a74 100644 --- a/docs/learn-guides-polkadot-opengov.html +++ b/docs/learn-guides-polkadot-opengov.html @@ -19,7 +19,7 @@ - + @@ -159,7 +159,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.html b/docs/learn-guides-staking-pools.html index f01fc2c7687f..28150b493137 100644 --- a/docs/learn-guides-staking-pools.html +++ b/docs/learn-guides-staking-pools.html @@ -19,7 +19,7 @@ - + @@ -66,7 +66,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.html b/docs/learn-guides-staking.html index e94adcd7b984..302282898b3a 100644 --- a/docs/learn-guides-staking.html +++ b/docs/learn-guides-staking.html @@ -19,7 +19,7 @@ - + @@ -28,7 +28,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.html b/docs/learn-guides-transfers.html index 929e8ce02528..e4c57d1f40d9 100644 --- a/docs/learn-guides-transfers.html +++ b/docs/learn-guides-transfers.html @@ -19,7 +19,7 @@ - + @@ -126,7 +126,7 @@ probably not the reason for your tokens having existing references.

    Existing Non-Native Assets

    Currently, Polkadot 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.html b/docs/learn-guides-treasury.html index 5fea1c785160..d2d248eb4aba 100644 --- a/docs/learn-guides-treasury.html +++ b/docs/learn-guides-treasury.html @@ -19,7 +19,7 @@ - + @@ -132,7 +132,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.html b/docs/learn-guides-vault.html index 752453e250a0..dffe095cae38 100644 --- a/docs/learn-guides-vault.html +++ b/docs/learn-guides-vault.html @@ -19,7 +19,7 @@ - + @@ -86,7 +86,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.html b/docs/learn-hyperbridge.html index 97ee89b0d4fe..7f876523ff0d 100644 --- a/docs/learn-hyperbridge.html +++ b/docs/learn-hyperbridge.html @@ -19,7 +19,7 @@ - + @@ -89,7 +89,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.html b/docs/learn-identity.html index dfa5dc52465c..5a070be793c1 100644 --- a/docs/learn-identity.html +++ b/docs/learn-identity.html @@ -19,7 +19,7 @@ - + @@ -76,7 +76,7 @@ is required for every sub-account.


    Polkadot-JS Guides

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

    - + \ No newline at end of file diff --git a/docs/learn-implementations.html b/docs/learn-implementations.html index 1ee38d8eb55c..a05e96b27940 100644 --- a/docs/learn-implementations.html +++ b/docs/learn-implementations.html @@ -19,7 +19,7 @@ - + @@ -57,7 +57,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.html b/docs/learn-index.html index 4c3fb46b20d6..578f0858eeb6 100644 --- a/docs/learn-index.html +++ b/docs/learn-index.html @@ -19,13 +19,13 @@ - + - + \ No newline at end of file diff --git a/docs/learn-inflation.html b/docs/learn-inflation.html index 0fc971c8675f..7c19fd94838f 100644 --- a/docs/learn-inflation.html +++ b/docs/learn-inflation.html @@ -19,7 +19,7 @@ - + @@ -77,7 +77,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.html b/docs/learn-jam-chain.html index 339e2de7397d..05fc88524185 100644 --- a/docs/learn-jam-chain.html +++ b/docs/learn-jam-chain.html @@ -19,7 +19,7 @@ - + @@ -229,7 +229,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.html b/docs/learn-jam-faq.html index 3845dfe4e966..a09de481289b 100644 --- a/docs/learn-jam-faq.html +++ b/docs/learn-jam-faq.html @@ -19,7 +19,7 @@ - + @@ -90,7 +90,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-jam.html b/docs/learn-jam.html index d1b26a37a043..9a353221fd6a 100644 --- a/docs/learn-jam.html +++ b/docs/learn-jam.html @@ -19,13 +19,13 @@ - + - + \ No newline at end of file diff --git a/docs/learn-nft-pallets.html b/docs/learn-nft-pallets.html index 1dd321dde912..e10a4a226269 100644 --- a/docs/learn-nft-pallets.html +++ b/docs/learn-nft-pallets.html @@ -19,7 +19,7 @@ - + @@ -118,7 +118,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.html b/docs/learn-nft-projects.html index dab502c8f977..cb1d0635627a 100644 --- a/docs/learn-nft-projects.html +++ b/docs/learn-nft-projects.html @@ -19,7 +19,7 @@ - + @@ -101,7 +101,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.html b/docs/learn-nft.html index f83908930e9c..5bece9703291 100644 --- a/docs/learn-nft.html +++ b/docs/learn-nft.html @@ -19,7 +19,7 @@ - + @@ -64,7 +64,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.html b/docs/learn-nomination-pools.html index 42f74273f715..86bddba01fcc 100644 --- a/docs/learn-nomination-pools.html +++ b/docs/learn-nomination-pools.html @@ -19,7 +19,7 @@ - + @@ -191,7 +191,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.html b/docs/learn-nominator.html index e85b745715e3..2aebec9e4294 100644 --- a/docs/learn-nominator.html +++ b/docs/learn-nominator.html @@ -19,7 +19,7 @@ - + @@ -240,7 +240,7 @@ Polkadot JS Apps > Network > Staking > Targets page.

    Minimum Active Nomination

    Guides

    - + \ No newline at end of file diff --git a/docs/learn-offenses.html b/docs/learn-offenses.html index 82d8ca234c8a..8595508433e2 100644 --- a/docs/learn-offenses.html +++ b/docs/learn-offenses.html @@ -19,7 +19,7 @@ - + @@ -120,7 +120,7 @@ DoS (Denial of Service) attacks. The consequences of closing channels may vary. In general, performing validator tasks under reduced reputation will be harder, resulting in lower validator rewards.

    - + \ No newline at end of file diff --git a/docs/learn-parachains-faq.html b/docs/learn-parachains-faq.html index 7f8491c09ad8..5c08ba348272 100644 --- a/docs/learn-parachains-faq.html +++ b/docs/learn-parachains-faq.html @@ -19,7 +19,7 @@ - + @@ -110,7 +110,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.html b/docs/learn-parachains-index.html index 30209229ed99..cc9b4e09bf05 100644 --- a/docs/learn-parachains-index.html +++ b/docs/learn-parachains-index.html @@ -19,13 +19,13 @@ - + - + \ No newline at end of file diff --git a/docs/learn-parachains-protocol.html b/docs/learn-parachains-protocol.html index 7458f6776b96..112eeb18c8f7 100644 --- a/docs/learn-parachains-protocol.html +++ b/docs/learn-parachains-protocol.html @@ -19,7 +19,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.html b/docs/learn-parachains.html index 39056eaf3d7b..37954259b2cc 100644 --- a/docs/learn-parachains.html +++ b/docs/learn-parachains.html @@ -19,7 +19,7 @@ - + @@ -219,7 +219,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.html b/docs/learn-participants-index.html index 5209377b8824..4e72e5b6798c 100644 --- a/docs/learn-participants-index.html +++ b/docs/learn-participants-index.html @@ -19,13 +19,13 @@ - + - + \ No newline at end of file diff --git a/docs/learn-phragmen.html b/docs/learn-phragmen.html index f30f9f6947f4..d53bbbb092eb 100644 --- a/docs/learn-phragmen.html +++ b/docs/learn-phragmen.html @@ -19,7 +19,7 @@ - + @@ -268,7 +268,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.html b/docs/learn-polkadot-host.html index f894c67f045e..8662ba3e09d1 100644 --- a/docs/learn-polkadot-host.html +++ b/docs/learn-polkadot-host.html @@ -19,7 +19,7 @@ - + @@ -45,7 +45,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.html b/docs/learn-polkadot-js-guides.html index efc46bcf0a7a..ed5e5fed853f 100644 --- a/docs/learn-polkadot-js-guides.html +++ b/docs/learn-polkadot-js-guides.html @@ -19,7 +19,7 @@ - + @@ -32,7 +32,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.html b/docs/learn-polkadot-opengov-index.html index 58a22fa6e5e9..e7291e6377f0 100644 --- a/docs/learn-polkadot-opengov-index.html +++ b/docs/learn-polkadot-opengov-index.html @@ -19,13 +19,13 @@ - + - + \ No newline at end of file diff --git a/docs/learn-polkadot-opengov-origins.html b/docs/learn-polkadot-opengov-origins.html index 2df208dc6e71..1dd70e618502 100644 --- a/docs/learn-polkadot-opengov-origins.html +++ b/docs/learn-polkadot-opengov-origins.html @@ -19,7 +19,7 @@ - + @@ -94,7 +94,7 @@

    Big Spender

    Origin able to spend up to 1000000 DOT from the treasury at once.

    - + \ No newline at end of file diff --git a/docs/learn-polkadot-opengov-treasury.html b/docs/learn-polkadot-opengov-treasury.html index 1e25ec58afba..36dbd49a1cb4 100644 --- a/docs/learn-polkadot-opengov-treasury.html +++ b/docs/learn-polkadot-opengov-treasury.html @@ -19,7 +19,7 @@ - + @@ -109,7 +109,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.html b/docs/learn-polkadot-opengov.html index 24106b3a9e81..ae411bbdc631 100644 --- a/docs/learn-polkadot-opengov.html +++ b/docs/learn-polkadot-opengov.html @@ -19,7 +19,7 @@ - + @@ -292,7 +292,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.html b/docs/learn-polkadot-technical-fellowship.html index c506e380eca9..3b45a181a735 100644 --- a/docs/learn-polkadot-technical-fellowship.html +++ b/docs/learn-polkadot-technical-fellowship.html @@ -19,7 +19,7 @@ - + @@ -79,7 +79,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.html b/docs/learn-polkadotjs.html index 37a525fff5d0..7926f0bcc64e 100644 --- a/docs/learn-polkadotjs.html +++ b/docs/learn-polkadotjs.html @@ -19,7 +19,7 @@ - + @@ -28,7 +28,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.html b/docs/learn-proxies-pure.html index 065e911b8645..f3bf53129930 100644 --- a/docs/learn-proxies-pure.html +++ b/docs/learn-proxies-pure.html @@ -19,7 +19,7 @@ - + @@ -64,7 +64,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.html b/docs/learn-proxies.html index 268477427bd6..3f6557ce371c 100644 --- a/docs/learn-proxies.html +++ b/docs/learn-proxies.html @@ -19,7 +19,7 @@ - + @@ -100,7 +100,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.html b/docs/learn-runtime-upgrades.html index 153203c20dd0..9cb1092ecfc6 100644 --- a/docs/learn-runtime-upgrades.html +++ b/docs/learn-runtime-upgrades.html @@ -19,7 +19,7 @@ - + @@ -95,7 +95,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-safrole.html b/docs/learn-safrole.html index 4be37dfbc922..6e7a169a4455 100644 --- a/docs/learn-safrole.html +++ b/docs/learn-safrole.html @@ -19,7 +19,7 @@ - + @@ -40,7 +40,7 @@ SAFROLE prevents forks can be found in Section 4.3, 4.8, and 6 of the JAM Graypaper.

    Resources

    - + \ No newline at end of file diff --git a/docs/learn-scams.html b/docs/learn-scams.html index dcd901db1de3..d9c671051e37 100644 --- a/docs/learn-scams.html +++ b/docs/learn-scams.html @@ -19,7 +19,7 @@ - + @@ -88,7 +88,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.html b/docs/learn-spree.html index 35fc631fc2f7..60707c0f2abc 100644 --- a/docs/learn-spree.html +++ b/docs/learn-spree.html @@ -19,7 +19,7 @@ - + @@ -78,7 +78,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.html b/docs/learn-staking-advanced.html index d22ae64fffeb..4df1837bdd8f 100644 --- a/docs/learn-staking-advanced.html +++ b/docs/learn-staking-advanced.html @@ -19,7 +19,7 @@ - + @@ -254,7 +254,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.html b/docs/learn-staking-index.html index 69097ac0d080..2c65493b826f 100644 --- a/docs/learn-staking-index.html +++ b/docs/learn-staking-index.html @@ -19,13 +19,13 @@ - + - + \ No newline at end of file diff --git a/docs/learn-staking.html b/docs/learn-staking.html index 212d095dbc73..34e7e0b7ab02 100644 --- a/docs/learn-staking.html +++ b/docs/learn-staking.html @@ -19,7 +19,7 @@ - + @@ -320,7 +320,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.html b/docs/learn-system-chains.html index baaa4578f056..f21644c909be 100644 --- a/docs/learn-system-chains.html +++ b/docs/learn-system-chains.html @@ -19,7 +19,7 @@ - + @@ -87,7 +87,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.html b/docs/learn-teleport.html index 8f91c4584ad1..654981bb6846 100644 --- a/docs/learn-teleport.html +++ b/docs/learn-teleport.html @@ -19,7 +19,7 @@ - + @@ -48,7 +48,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.html b/docs/learn-transaction-fees.html index 7ae167ff4a0c..98e114178cbb 100644 --- a/docs/learn-transaction-fees.html +++ b/docs/learn-transaction-fees.html @@ -19,7 +19,7 @@ - + @@ -99,7 +99,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.html b/docs/learn-transactions.html index 6b54051e257d..90b624bf3fed 100644 --- a/docs/learn-transactions.html +++ b/docs/learn-transactions.html @@ -19,7 +19,7 @@ - + @@ -96,7 +96,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.html b/docs/learn-validator.html index 00a5814e3ca6..1f27dbee1ebc 100644 --- a/docs/learn-validator.html +++ b/docs/learn-validator.html @@ -19,7 +19,7 @@ - + @@ -94,7 +94,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.html b/docs/learn-video-tutorials.html index 861b66f2dd39..fb7c673ed975 100644 --- a/docs/learn-video-tutorials.html +++ b/docs/learn-video-tutorials.html @@ -19,7 +19,7 @@ - + @@ -27,7 +27,7 @@ - + \ No newline at end of file diff --git a/docs/learn-wasm.html b/docs/learn-wasm.html index 61616530cdac..ac97f9fdf172 100644 --- a/docs/learn-wasm.html +++ b/docs/learn-wasm.html @@ -19,7 +19,7 @@ - + @@ -35,7 +35,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.html b/docs/learn-xcm-index.html index 871a072b4db9..a666593598d9 100644 --- a/docs/learn-xcm-index.html +++ b/docs/learn-xcm-index.html @@ -19,13 +19,13 @@ - + - + \ No newline at end of file diff --git a/docs/learn-xcm-instructions.html b/docs/learn-xcm-instructions.html index cd814c6f24f4..022d34d165c7 100644 --- a/docs/learn-xcm-instructions.html +++ b/docs/learn-xcm-instructions.html @@ -19,7 +19,7 @@ - + @@ -37,7 +37,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.html b/docs/learn-xcm-pallet.html index c62627c23a38..3b49eccee21b 100644 --- a/docs/learn-xcm-pallet.html +++ b/docs/learn-xcm-pallet.html @@ -19,7 +19,7 @@ - + @@ -87,7 +87,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.html b/docs/learn-xcm-transport.html index 4df711a9c25f..9942d9c8f688 100644 --- a/docs/learn-xcm-transport.html +++ b/docs/learn-xcm-transport.html @@ -19,7 +19,7 @@ - + @@ -69,7 +69,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.html b/docs/learn-xcm-usecases.html index e3741787828e..9cc5a69afb61 100644 --- a/docs/learn-xcm-usecases.html +++ b/docs/learn-xcm-usecases.html @@ -19,7 +19,7 @@ - + @@ -46,7 +46,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.html b/docs/learn-xcm.html index d969580733c4..c1b77188fccf 100644 --- a/docs/learn-xcm.html +++ b/docs/learn-xcm.html @@ -19,7 +19,7 @@ - + @@ -92,7 +92,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.html b/docs/learn-xcvm.html index 0cab251f0887..482a05958b00 100644 --- a/docs/learn-xcvm.html +++ b/docs/learn-xcvm.html @@ -19,7 +19,7 @@ - + @@ -111,7 +111,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.html b/docs/learn/learn-controller.html index 430298a267f3..6433c6305106 100644 --- a/docs/learn/learn-controller.html +++ b/docs/learn/learn-controller.html @@ -19,7 +19,7 @@ - + @@ -41,7 +41,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.html b/docs/learn/learn-governance.html index 43f78314b08e..61be6a190229 100644 --- a/docs/learn/learn-governance.html +++ b/docs/learn/learn-governance.html @@ -19,7 +19,7 @@ - + @@ -242,7 +242,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.html b/docs/learn/learn-launch.html index ae5807f3f5fc..a83073f12670 100644 --- a/docs/learn/learn-launch.html +++ b/docs/learn/learn-launch.html @@ -19,7 +19,7 @@ - + @@ -46,7 +46,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.html b/docs/learn/learn-redenomination.html index 167bcd362c36..0605b7e3211c 100644 --- a/docs/learn/learn-redenomination.html +++ b/docs/learn/learn-redenomination.html @@ -19,7 +19,7 @@ - + @@ -84,7 +84,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.html b/docs/learn/learn-treasury.html index 1b1884d28a5a..cb9c16e77b56 100644 --- a/docs/learn/learn-treasury.html +++ b/docs/learn/learn-treasury.html @@ -19,7 +19,7 @@ - + @@ -161,7 +161,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.html b/docs/learn/xcm.html index f9b7f4135eea..b9c0f2cb2e53 100644 --- a/docs/learn/xcm.html +++ b/docs/learn/xcm.html @@ -19,13 +19,13 @@ - + - + \ No newline at end of file diff --git a/docs/learn/xcm/config-deep-dive.html b/docs/learn/xcm/config-deep-dive.html index d5a75275fa23..45137b04c60a 100644 --- a/docs/learn/xcm/config-deep-dive.html +++ b/docs/learn/xcm/config-deep-dive.html @@ -19,7 +19,7 @@ - + @@ -132,7 +132,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.html b/docs/learn/xcm/fundamentals-fees.html index 3a6bb1029374..a609332763ae 100644 --- a/docs/learn/xcm/fundamentals-fees.html +++ b/docs/learn/xcm/fundamentals-fees.html @@ -19,7 +19,7 @@ - + @@ -56,7 +56,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.html b/docs/learn/xcm/fundamentals-multiasset.html index 72b29c90d308..150414d86fb2 100644 --- a/docs/learn/xcm/fundamentals-multiasset.html +++ b/docs/learn/xcm/fundamentals-multiasset.html @@ -19,7 +19,7 @@ - + @@ -56,7 +56,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.html b/docs/learn/xcm/fundamentals-summary.html index 7fdf8847b7ae..de8c5b056eda 100644 --- a/docs/learn/xcm/fundamentals-summary.html +++ b/docs/learn/xcm/fundamentals-summary.html @@ -19,14 +19,14 @@ - + - + \ No newline at end of file diff --git a/docs/learn/xcm/fundamentals-xcvm.html b/docs/learn/xcm/fundamentals-xcvm.html index edbcccbae71b..e12fbe098d45 100644 --- a/docs/learn/xcm/fundamentals-xcvm.html +++ b/docs/learn/xcm/fundamentals-xcvm.html @@ -19,13 +19,13 @@ - + - + \ No newline at end of file diff --git a/docs/learn/xcm/fundamentals.html b/docs/learn/xcm/fundamentals.html index fd97e898797e..0eda625d055d 100644 --- a/docs/learn/xcm/fundamentals.html +++ b/docs/learn/xcm/fundamentals.html @@ -19,13 +19,13 @@ - + - + \ No newline at end of file diff --git a/docs/learn/xcm/fundamentals/multilocation-example.html b/docs/learn/xcm/fundamentals/multilocation-example.html index 99791dd54d19..02b3aec74de2 100644 --- a/docs/learn/xcm/fundamentals/multilocation-example.html +++ b/docs/learn/xcm/fundamentals/multilocation-example.html @@ -19,14 +19,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.html b/docs/learn/xcm/fundamentals/multilocation-junctions.html index cf0b944fab26..47a1f20968f2 100644 --- a/docs/learn/xcm/fundamentals/multilocation-junctions.html +++ b/docs/learn/xcm/fundamentals/multilocation-junctions.html @@ -19,7 +19,7 @@ - + @@ -59,7 +59,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.html b/docs/learn/xcm/fundamentals/multilocation-summary.html index edba03a1e8fc..c67566ce8428 100644 --- a/docs/learn/xcm/fundamentals/multilocation-summary.html +++ b/docs/learn/xcm/fundamentals/multilocation-summary.html @@ -19,7 +19,7 @@ - + @@ -54,7 +54,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.html b/docs/learn/xcm/fundamentals/multilocation.html index 070374d3d550..e163cb9d7671 100644 --- a/docs/learn/xcm/fundamentals/multilocation.html +++ b/docs/learn/xcm/fundamentals/multilocation.html @@ -19,13 +19,13 @@ - + - + \ No newline at end of file diff --git a/docs/learn/xcm/introduction.html b/docs/learn/xcm/introduction.html index 27aa22f1155f..cad635f10dce 100644 --- a/docs/learn/xcm/introduction.html +++ b/docs/learn/xcm/introduction.html @@ -19,7 +19,7 @@ - + @@ -35,7 +35,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.html b/docs/learn/xcm/journey-assets.html index 1d03698fe52e..20dd362f1cec 100644 --- a/docs/learn/xcm/journey-assets.html +++ b/docs/learn/xcm/journey-assets.html @@ -19,7 +19,7 @@ - + @@ -42,7 +42,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.html b/docs/learn/xcm/journey-channels.html index 5129e83481c7..bbe1bccd53a3 100644 --- a/docs/learn/xcm/journey-channels.html +++ b/docs/learn/xcm/journey-channels.html @@ -19,7 +19,7 @@ - + @@ -51,7 +51,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.html b/docs/learn/xcm/journey-expectations.html index 201ef960f571..43e050e6b66c 100644 --- a/docs/learn/xcm/journey-expectations.html +++ b/docs/learn/xcm/journey-expectations.html @@ -19,7 +19,7 @@ - + @@ -44,7 +44,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.html b/docs/learn/xcm/journey-fees.html index d6fd775cbacb..a9d65ff8f1f0 100644 --- a/docs/learn/xcm/journey-fees.html +++ b/docs/learn/xcm/journey-fees.html @@ -19,7 +19,7 @@ - + @@ -62,7 +62,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.html b/docs/learn/xcm/journey-holding.html index 2e9d152946e4..6f3ab74dd0ed 100644 --- a/docs/learn/xcm/journey-holding.html +++ b/docs/learn/xcm/journey-holding.html @@ -19,7 +19,7 @@ - + @@ -47,7 +47,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.html b/docs/learn/xcm/journey-locks.html index dabb1f1a1903..4ca929bfb7eb 100644 --- a/docs/learn/xcm/journey-locks.html +++ b/docs/learn/xcm/journey-locks.html @@ -19,7 +19,7 @@ - + @@ -55,7 +55,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.html b/docs/learn/xcm/journey-origin.html index 9537df75d150..7dc00b201fc0 100644 --- a/docs/learn/xcm/journey-origin.html +++ b/docs/learn/xcm/journey-origin.html @@ -19,7 +19,7 @@ - + @@ -47,7 +47,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.html b/docs/learn/xcm/journey-queries.html index 1f992b5fbf9b..76a0758b6673 100644 --- a/docs/learn/xcm/journey-queries.html +++ b/docs/learn/xcm/journey-queries.html @@ -19,7 +19,7 @@ - + @@ -51,7 +51,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.html b/docs/learn/xcm/journey-register.html index b44aab6067c0..daef183bac41 100644 --- a/docs/learn/xcm/journey-register.html +++ b/docs/learn/xcm/journey-register.html @@ -19,7 +19,7 @@ - + @@ -33,7 +33,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.html b/docs/learn/xcm/journey-summary.html index 6576abbc4d61..a2a5c84ff779 100644 --- a/docs/learn/xcm/journey-summary.html +++ b/docs/learn/xcm/journey-summary.html @@ -19,7 +19,7 @@ - + @@ -27,7 +27,7 @@ - + \ No newline at end of file diff --git a/docs/learn/xcm/journey-transact.html b/docs/learn/xcm/journey-transact.html index ba3ef7e8f6fb..e5f4c899cceb 100644 --- a/docs/learn/xcm/journey-transact.html +++ b/docs/learn/xcm/journey-transact.html @@ -19,7 +19,7 @@ - + @@ -50,7 +50,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.html b/docs/learn/xcm/journey-version.html index d4a4a927bdc0..97cce93cf639 100644 --- a/docs/learn/xcm/journey-version.html +++ b/docs/learn/xcm/journey-version.html @@ -19,7 +19,7 @@ - + @@ -35,7 +35,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.html b/docs/learn/xcm/journey.html index a7f89b9f2f76..17f9ec053357 100644 --- a/docs/learn/xcm/journey.html +++ b/docs/learn/xcm/journey.html @@ -19,13 +19,13 @@ - +
    - + \ No newline at end of file diff --git a/docs/learn/xcm/journey/transfers-reserve.html b/docs/learn/xcm/journey/transfers-reserve.html index 5912447ea480..4169e0c6ad18 100644 --- a/docs/learn/xcm/journey/transfers-reserve.html +++ b/docs/learn/xcm/journey/transfers-reserve.html @@ -19,7 +19,7 @@ - + @@ -73,7 +73,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.html b/docs/learn/xcm/journey/transfers-summary.html index b5ef0a082c46..6f852edabc71 100644 --- a/docs/learn/xcm/journey/transfers-summary.html +++ b/docs/learn/xcm/journey/transfers-summary.html @@ -19,7 +19,7 @@ - + @@ -42,7 +42,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.html b/docs/learn/xcm/journey/transfers-teleport.html index 3a3995a0064f..8144b481dc64 100644 --- a/docs/learn/xcm/journey/transfers-teleport.html +++ b/docs/learn/xcm/journey/transfers-teleport.html @@ -19,7 +19,7 @@ - + @@ -61,7 +61,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.html b/docs/learn/xcm/journey/transfers.html index 4e6d266cf01e..ddca2c0744f5 100644 --- a/docs/learn/xcm/journey/transfers.html +++ b/docs/learn/xcm/journey/transfers.html @@ -19,13 +19,13 @@ - + - + \ No newline at end of file diff --git a/docs/learn/xcm/overview-architecture.html b/docs/learn/xcm/overview-architecture.html index 25d22e73f146..fa3383782ce7 100644 --- a/docs/learn/xcm/overview-architecture.html +++ b/docs/learn/xcm/overview-architecture.html @@ -19,7 +19,7 @@ - + @@ -49,7 +49,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.html b/docs/learn/xcm/overview-format.html index 72aa37d5eb9c..ffa0ea5f5ce0 100644 --- a/docs/learn/xcm/overview-format.html +++ b/docs/learn/xcm/overview-format.html @@ -19,7 +19,7 @@ - + @@ -38,7 +38,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.html b/docs/learn/xcm/overview-intro.html index 577235379ba0..7be6b8e2db4d 100644 --- a/docs/learn/xcm/overview-intro.html +++ b/docs/learn/xcm/overview-intro.html @@ -19,7 +19,7 @@ - + @@ -41,7 +41,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.html b/docs/learn/xcm/overview-summary.html index 65fce95c882e..c5e57dd9fef1 100644 --- a/docs/learn/xcm/overview-summary.html +++ b/docs/learn/xcm/overview-summary.html @@ -19,7 +19,7 @@ - + @@ -32,7 +32,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.html b/docs/learn/xcm/overview-xcvm.html index 0fc5ee0ee1cf..6c99d83022ca 100644 --- a/docs/learn/xcm/overview-xcvm.html +++ b/docs/learn/xcm/overview-xcvm.html @@ -19,7 +19,7 @@ - + @@ -41,7 +41,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.html b/docs/learn/xcm/overview.html index 1f163a36df9d..9c0197ba7c82 100644 --- a/docs/learn/xcm/overview.html +++ b/docs/learn/xcm/overview.html @@ -19,13 +19,13 @@ - + - + \ No newline at end of file diff --git a/docs/learn/xcm/quickstart-first-look.html b/docs/learn/xcm/quickstart-first-look.html index e86a416f6f2f..0a43df8f18b7 100644 --- a/docs/learn/xcm/quickstart-first-look.html +++ b/docs/learn/xcm/quickstart-first-look.html @@ -19,7 +19,7 @@ - + @@ -51,7 +51,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.html b/docs/learn/xcm/quickstart-simulator.html index 3e8b5935394a..d1220cc7026d 100644 --- a/docs/learn/xcm/quickstart-simulator.html +++ b/docs/learn/xcm/quickstart-simulator.html @@ -19,7 +19,7 @@ - + @@ -31,7 +31,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.html b/docs/learn/xcm/quickstart-summary.html index 9c5f43bf1414..3e15657b4189 100644 --- a/docs/learn/xcm/quickstart-summary.html +++ b/docs/learn/xcm/quickstart-summary.html @@ -19,7 +19,7 @@ - + @@ -29,7 +29,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.html b/docs/learn/xcm/quickstart.html index a8aa254552a3..51ef7cc2c7a7 100644 --- a/docs/learn/xcm/quickstart.html +++ b/docs/learn/xcm/quickstart.html @@ -19,13 +19,13 @@ - + - + \ No newline at end of file diff --git a/docs/learn/xcm/reference-glossary.html b/docs/learn/xcm/reference-glossary.html index 331005d55cf4..db8ceef43403 100644 --- a/docs/learn/xcm/reference-glossary.html +++ b/docs/learn/xcm/reference-glossary.html @@ -19,7 +19,7 @@ - + @@ -44,7 +44,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.html b/docs/learn/xcm/reference-xcvm-registers.html index 85dc68ab7520..b2cbdfc3b829 100644 --- a/docs/learn/xcm/reference-xcvm-registers.html +++ b/docs/learn/xcm/reference-xcvm-registers.html @@ -19,7 +19,7 @@ - + @@ -27,7 +27,7 @@
    - + \ No newline at end of file diff --git a/docs/learn/xcm/references.html b/docs/learn/xcm/references.html index 2b2bea037fa1..4c75b66fc279 100644 --- a/docs/learn/xcm/references.html +++ b/docs/learn/xcm/references.html @@ -19,13 +19,13 @@ - + - + \ No newline at end of file diff --git a/docs/learn/xcm/testing.html b/docs/learn/xcm/testing.html index 80679a752f01..317a31244b51 100644 --- a/docs/learn/xcm/testing.html +++ b/docs/learn/xcm/testing.html @@ -19,7 +19,7 @@ - + @@ -40,7 +40,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.html b/docs/ledger.html index b982de9f0779..6dd5b9cf1e71 100644 --- a/docs/ledger.html +++ b/docs/ledger.html @@ -19,7 +19,7 @@ - + @@ -90,7 +90,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.html b/docs/maintain-archive.html index 68b118fc7677..0915a3e81806 100644 --- a/docs/maintain-archive.html +++ b/docs/maintain-archive.html @@ -19,14 +19,14 @@ - + - + \ No newline at end of file diff --git a/docs/maintain-bootnode.html b/docs/maintain-bootnode.html index 9891a0ebad1c..59383b6a035f 100644 --- a/docs/maintain-bootnode.html +++ b/docs/maintain-bootnode.html @@ -19,7 +19,7 @@ - + @@ -41,7 +41,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-collator-index.html b/docs/maintain-collator-index.html index 7abc71163fcc..98a0ba094f27 100644 --- a/docs/maintain-collator-index.html +++ b/docs/maintain-collator-index.html @@ -19,13 +19,13 @@ - + - + \ No newline at end of file diff --git a/docs/maintain-endpoints.html b/docs/maintain-endpoints.html index 774c5f9b399f..674891b2a954 100644 --- a/docs/maintain-endpoints.html +++ b/docs/maintain-endpoints.html @@ -19,7 +19,7 @@ - + @@ -36,7 +36,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.html b/docs/maintain-errors.html index dea0045704c1..bdd21fb8a19b 100644 --- a/docs/maintain-errors.html +++ b/docs/maintain-errors.html @@ -19,7 +19,7 @@ - + @@ -51,7 +51,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.html b/docs/maintain-guides-async-backing.html index 673277ef0a18..e87df9d95740 100644 --- a/docs/maintain-guides-async-backing.html +++ b/docs/maintain-guides-async-backing.html @@ -19,7 +19,7 @@ - + @@ -91,7 +91,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-how-to-chill.html b/docs/maintain-guides-how-to-chill.html index e4063010bbd4..8f3671a42e6c 100644 --- a/docs/maintain-guides-how-to-chill.html +++ b/docs/maintain-guides-how-to-chill.html @@ -19,7 +19,7 @@ - + @@ -69,7 +69,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.html b/docs/maintain-guides-how-to-monitor-your-node.html index 0352d1000d95..c44aa302cc55 100644 --- a/docs/maintain-guides-how-to-monitor-your-node.html +++ b/docs/maintain-guides-how-to-monitor-your-node.html @@ -19,7 +19,7 @@ - + @@ -83,7 +83,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.html b/docs/maintain-guides-how-to-stop-validating.html index 15b6d2dd7446..940491e56610 100644 --- a/docs/maintain-guides-how-to-stop-validating.html +++ b/docs/maintain-guides-how-to-stop-validating.html @@ -19,7 +19,7 @@ - + @@ -40,7 +40,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.html b/docs/maintain-guides-how-to-systemd.html index 7de9af7057e4..a358dc4aa2e8 100644 --- a/docs/maintain-guides-how-to-systemd.html +++ b/docs/maintain-guides-how-to-systemd.html @@ -19,7 +19,7 @@ - + @@ -33,7 +33,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.html b/docs/maintain-guides-how-to-upgrade.html index 1629bbc501a1..dac326707a23 100644 --- a/docs/maintain-guides-how-to-upgrade.html +++ b/docs/maintain-guides-how-to-upgrade.html @@ -19,7 +19,7 @@ - + @@ -50,7 +50,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.html b/docs/maintain-guides-how-to-validate-kusama.html index 81a2c7fb7206..0561b4fc95fa 100644 --- a/docs/maintain-guides-how-to-validate-kusama.html +++ b/docs/maintain-guides-how-to-validate-kusama.html @@ -19,7 +19,7 @@ - + @@ -68,7 +68,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.html b/docs/maintain-guides-how-to-validate-polkadot.html index e198d6441da7..48e9f0408cb2 100644 --- a/docs/maintain-guides-how-to-validate-polkadot.html +++ b/docs/maintain-guides-how-to-validate-polkadot.html @@ -19,7 +19,7 @@ - + @@ -262,7 +262,7 @@ 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.

    - + \ No newline at end of file diff --git a/docs/maintain-guides-secure-validator.html b/docs/maintain-guides-secure-validator.html index 8f249cff7319..d1cbeb06f44e 100644 --- a/docs/maintain-guides-secure-validator.html +++ b/docs/maintain-guides-secure-validator.html @@ -19,7 +19,7 @@ - + @@ -68,7 +68,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.html b/docs/maintain-guides-society-kusama.html index 61a1afeb89d1..cf5d5b662470 100644 --- a/docs/maintain-guides-society-kusama.html +++ b/docs/maintain-guides-society-kusama.html @@ -19,7 +19,7 @@ - + @@ -93,7 +93,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.html b/docs/maintain-guides-validator-community.html index fe10d32225a3..ec4678a7e17e 100644 --- a/docs/maintain-guides-validator-community.html +++ b/docs/maintain-guides-validator-community.html @@ -19,7 +19,7 @@ - + @@ -164,7 +164,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.html b/docs/maintain-guides-validator-payout.html index 3fa39109d367..2c3ce81d1846 100644 --- a/docs/maintain-guides-validator-payout.html +++ b/docs/maintain-guides-validator-payout.html @@ -19,7 +19,7 @@ - + @@ -91,7 +91,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.html b/docs/maintain-index.html index 74455458b827..051f10784102 100644 --- a/docs/maintain-index.html +++ b/docs/maintain-index.html @@ -19,7 +19,7 @@ - + @@ -29,7 +29,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.html b/docs/maintain-networks.html index 1fce362ae122..9d70045a426d 100644 --- a/docs/maintain-networks.html +++ b/docs/maintain-networks.html @@ -19,7 +19,7 @@ - + @@ -54,7 +54,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-node-index.html b/docs/maintain-node-index.html index 6f95c513390d..59413e79adf7 100644 --- a/docs/maintain-node-index.html +++ b/docs/maintain-node-index.html @@ -19,13 +19,13 @@ - + - + \ No newline at end of file diff --git a/docs/maintain-polkadot-parameters.html b/docs/maintain-polkadot-parameters.html index 9a6cb2dbc39b..62da34e607a1 100644 --- a/docs/maintain-polkadot-parameters.html +++ b/docs/maintain-polkadot-parameters.html @@ -19,7 +19,7 @@ - + @@ -39,7 +39,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.html b/docs/maintain-rpc.html index 68b9ef2bacf4..7d3850c01f72 100644 --- a/docs/maintain-rpc.html +++ b/docs/maintain-rpc.html @@ -19,7 +19,7 @@ - + @@ -54,7 +54,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.html b/docs/maintain-sync.html index f5529f034cbb..52acc56193bb 100644 --- a/docs/maintain-sync.html +++ b/docs/maintain-sync.html @@ -19,7 +19,7 @@ - + @@ -90,7 +90,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-validator-index.html b/docs/maintain-validator-index.html index baaf019285e9..a6ac29cba142 100644 --- a/docs/maintain-validator-index.html +++ b/docs/maintain-validator-index.html @@ -19,13 +19,13 @@ - + - + \ No newline at end of file diff --git a/docs/maintain-wss.html b/docs/maintain-wss.html index 9f9ec8a337e8..3de8289b7e10 100644 --- a/docs/maintain-wss.html +++ b/docs/maintain-wss.html @@ -19,7 +19,7 @@ - + @@ -43,7 +43,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.html b/docs/maintain/maintain-guides-democracy.html index 7727e4436e58..bc11cdcfa244 100644 --- a/docs/maintain/maintain-guides-democracy.html +++ b/docs/maintain/maintain-guides-democracy.html @@ -19,7 +19,7 @@ - + @@ -157,7 +157,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.html b/docs/maintain/maintain-guides-how-to-join-council.html index 18852b1ce970..8ebd3c062949 100644 --- a/docs/maintain/maintain-guides-how-to-join-council.html +++ b/docs/maintain/maintain-guides-how-to-join-council.html @@ -19,7 +19,7 @@ - + @@ -44,7 +44,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.html b/docs/maintain/maintain-guides-how-to-vote-councillor.html index 3d0f50ea735c..c1793f9a51a6 100644 --- a/docs/maintain/maintain-guides-how-to-vote-councillor.html +++ b/docs/maintain/maintain-guides-how-to-vote-councillor.html @@ -19,7 +19,7 @@ - + @@ -47,7 +47,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.html b/docs/metadata.html index 475a0fd28e34..63ba5e5c6fbf 100644 --- a/docs/metadata.html +++ b/docs/metadata.html @@ -19,7 +19,7 @@ - + @@ -29,7 +29,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.html b/docs/multisig-apps.html index 20ef54b327f9..4cbc95274b93 100644 --- a/docs/multisig-apps.html +++ b/docs/multisig-apps.html @@ -19,7 +19,7 @@ - + @@ -71,7 +71,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.html b/docs/parachains-apps.html index 00300ce95ce7..cd5ca77be38f 100644 --- a/docs/parachains-apps.html +++ b/docs/parachains-apps.html @@ -19,7 +19,7 @@ - + @@ -98,7 +98,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/parity-data-dashboards.html b/docs/parity-data-dashboards.html index 3ec354b4fd3d..be3ba9fc53b9 100644 --- a/docs/parity-data-dashboards.html +++ b/docs/parity-data-dashboards.html @@ -19,7 +19,7 @@ - + @@ -55,7 +55,7 @@ history and is continuously expanding.

    DotLake Batch Architecture

    DotLake Batch Architecture

    Real-Time Architecture

    Real-Time Architecture

    Support: Data Requests, Collaborations, Parachain Onboarding etc.

    The Parity Data Team is very eager to collaborate with the Ecosystem. If you have any questions, data requests that you need help with, interest in partnerships or you are a Parachain team and want your chain onboarded to the platform - please get in contact with data-team@parity.io.

    - + \ No newline at end of file diff --git a/docs/polkadot-direction.html b/docs/polkadot-direction.html index 6569676cda30..ebbbc0f1e180 100644 --- a/docs/polkadot-direction.html +++ b/docs/polkadot-direction.html @@ -19,7 +19,7 @@ - + @@ -140,7 +140,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.html b/docs/polkadot-v1.html index 2b34142d2593..79036ed4161e 100644 --- a/docs/polkadot-v1.html +++ b/docs/polkadot-v1.html @@ -19,7 +19,7 @@ - + @@ -109,7 +109,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.html b/docs/polkadot-vault.html index a6acc59d6b2b..30b5fc41d627 100644 --- a/docs/polkadot-vault.html +++ b/docs/polkadot-vault.html @@ -19,7 +19,7 @@ - + @@ -86,7 +86,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.html b/docs/polkadot-vision-index.html index c03a0c497fc4..9c7722a68e87 100644 --- a/docs/polkadot-vision-index.html +++ b/docs/polkadot-vision-index.html @@ -19,13 +19,13 @@ - + - + \ No newline at end of file diff --git a/docs/polkadotjs-ui.html b/docs/polkadotjs-ui.html index 755a33efa051..5a537460e13c 100644 --- a/docs/polkadotjs-ui.html +++ b/docs/polkadotjs-ui.html @@ -19,7 +19,7 @@ - + @@ -74,7 +74,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.html b/docs/polkadotjs.html index 3cb368e78da2..3197167e3287 100644 --- a/docs/polkadotjs.html +++ b/docs/polkadotjs.html @@ -19,7 +19,7 @@ - + @@ -97,7 +97,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.html b/docs/programs-index.html index f015b915be8b..754058636550 100644 --- a/docs/programs-index.html +++ b/docs/programs-index.html @@ -19,13 +19,13 @@ - + - + \ No newline at end of file diff --git a/docs/research.html b/docs/research.html index cc0c842e1924..b2bde441fa52 100644 --- a/docs/research.html +++ b/docs/research.html @@ -19,7 +19,7 @@ - + @@ -54,7 +54,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.html b/docs/staking-apps.html index ee2601fe09d9..193f04144acd 100644 --- a/docs/staking-apps.html +++ b/docs/staking-apps.html @@ -19,7 +19,7 @@ - + @@ -51,7 +51,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.html b/docs/staking-dashboard.html index fa4a90c25423..a9ea54b7bda1 100644 --- a/docs/staking-dashboard.html +++ b/docs/staking-dashboard.html @@ -19,7 +19,7 @@ - + @@ -160,7 +160,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.html b/docs/start-building.html index a2e0ba23ecd8..f5633f1397cc 100644 --- a/docs/start-building.html +++ b/docs/start-building.html @@ -19,7 +19,7 @@ - + @@ -52,7 +52,7 @@ this Medium article and the original Polkadot Forum post.

    - + \ No newline at end of file diff --git a/docs/stay-safe-index.html b/docs/stay-safe-index.html index 0a5ef465b4ee..744a301c5d43 100644 --- a/docs/stay-safe-index.html +++ b/docs/stay-safe-index.html @@ -19,13 +19,13 @@ - + - + \ No newline at end of file diff --git a/docs/thousand-contributors.html b/docs/thousand-contributors.html index e93f602be59c..8aec76b2a25b 100644 --- a/docs/thousand-contributors.html +++ b/docs/thousand-contributors.html @@ -19,7 +19,7 @@ - + @@ -35,7 +35,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.html b/docs/thousand-validators.html index daec81feeb6e..9a5664d4d272 100644 --- a/docs/thousand-validators.html +++ b/docs/thousand-validators.html @@ -19,7 +19,7 @@ - + @@ -87,7 +87,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
    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.html b/docs/transaction-attacks.html index c8bae29c2ffe..493718b51db1 100644 --- a/docs/transaction-attacks.html +++ b/docs/transaction-attacks.html @@ -19,7 +19,7 @@ - + @@ -66,7 +66,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.html b/docs/wallets-and-extensions.html index bf7d9dd5c8e4..851210514d92 100644 --- a/docs/wallets-and-extensions.html +++ b/docs/wallets-and-extensions.html @@ -19,7 +19,7 @@ - + @@ -100,7 +100,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.html b/docs/wallets-index.html index 422e715dbbf1..d45d3f8f7c09 100644 --- a/docs/wallets-index.html +++ b/docs/wallets-index.html @@ -19,13 +19,13 @@ - + - + \ No newline at end of file diff --git a/docs/web3-and-polkadot.html b/docs/web3-and-polkadot.html index cd5e2650eb40..323a3f6a3fe6 100644 --- a/docs/web3-and-polkadot.html +++ b/docs/web3-and-polkadot.html @@ -19,7 +19,7 @@ - + @@ -154,7 +154,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 7d71b08d7d5e..1ee2c6537d00 100644 --- a/index.html +++ b/index.html @@ -19,13 +19,13 @@ - +

    Learn about Polkadot’s canary network Kusama

    Kusama is Polkadot’s “canary network”, a scalable, multi-chain network for radical innovation and early stage Polkadot deployments. For developers, Kusama is a proving ground for all things Polkadot I.e runtime upgrades, on-chain governance, parachains, etc.

    language

    Help improve this wiki

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

    - + \ No newline at end of file diff --git a/search.html b/search.html index e55f19f714eb..b138ba74f2d1 100644 --- a/search.html +++ b/search.html @@ -19,13 +19,13 @@ - + - + \ No newline at end of file