diff --git a/404.html b/404.html index 4e9eaf8f4..1582b8db5 100644 --- a/404.html +++ b/404.html @@ -12,13 +12,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.

Resources

Guides
Soon

Tutorials
Soon

Copyright © 2024 Vocdoni, Inc. All rights reserved.
- - + + \ No newline at end of file diff --git a/assets/js/11d03c56.60dd7047.js b/assets/js/11d03c56.60dd7047.js deleted file mode 100644 index fd4a2e8dc..000000000 --- a/assets/js/11d03c56.60dd7047.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkdemo=self.webpackChunkdemo||[]).push([[8759],{3905:(e,t,n)=>{n.d(t,{Zo:()=>u,kt:()=>d});var a=n(67294);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function r(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function i(e){for(var t=1;t=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var l=a.createContext({}),c=function(e){var t=a.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},u=function(e){var t=c(e.components);return a.createElement(l.Provider,{value:t},e.children)},p={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},m=a.forwardRef((function(e,t){var n=e.components,o=e.mdxType,r=e.originalType,l=e.parentName,u=s(e,["components","mdxType","originalType","parentName"]),m=c(n),d=o,h=m["".concat(l,".").concat(d)]||m[d]||p[d]||r;return n?a.createElement(h,i(i({ref:t},u),{},{components:n})):a.createElement(h,i({ref:t},u))}));function d(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var r=n.length,i=new Array(r);i[0]=m;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s.mdxType="string"==typeof e?e:o,i[1]=s;for(var c=2;c{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>p,frontMatter:()=>r,metadata:()=>s,toc:()=>c});var a=n(87462),o=(n(67294),n(3905));const r={},i="On-Chain Census Anonymity",s={unversionedId:"protocol/anonymity/on-chain",id:"protocol/anonymity/on-chain",title:"On-Chain Census Anonymity",description:"On-chain cenuses derive their contents from a public set of holders of a given token (or set of tokens) on the Ethereum blockchain. This information is turned into a census by generating a Merkle Proof on that set of data. This Merkle Proof is similar to that used for a typical off-chain tree census, and the same sort of ZK Census Proof can be used to compute voter validation anonymously.",source:"@site/docs/protocol/anonymity/on-chain.md",sourceDirName:"protocol/anonymity",slug:"/protocol/anonymity/on-chain",permalink:"/protocol/anonymity/on-chain",draft:!1,tags:[],version:"current",frontMatter:{},sidebar:"defaultSidebar",previous:{title:"CSP Blind Signatures",permalink:"/protocol/anonymity/blind-signatures"},next:{title:"Off-Chain Tree ZK Census Proof",permalink:"/protocol/anonymity/zk-census-proof"}},l={},c=[{value:"Rounding Censuses",id:"rounding-censuses",level:2},{value:"Basic Steps",id:"basic-steps",level:3},{value:"Results Accuracy",id:"results-accuracy",level:2},{value:"Anonymity Level",id:"anonymity-level",level:2}],u={toc:c};function p(e){let{components:t,...n}=e;return(0,o.kt)("wrapper",(0,a.Z)({},u,n,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("h1",{id:"on-chain-census-anonymity"},"On-Chain Census Anonymity"),(0,o.kt)("p",null,"On-chain cenuses derive their contents from a public set of holders of a given token (or set of tokens) on the Ethereum blockchain. This information is turned into a census by generating a Merkle Proof on that set of data. This Merkle Proof is similar to that used for a typical off-chain tree census, and the same sort of ",(0,o.kt)("a",{parentName:"p",href:"/protocol/anonymity/zk-census-proof"},"ZK Census Proof")," can be used to compute voter validation anonymously."),(0,o.kt)("p",null,"Unfortunately a zero-knowledge census itself is not enough to anonymize an on-chain election, because voters are weighted according to their unique token balances, making them easy to identify as the weight of a vote can be correlated with an address. We address this problem by rounding voter weights in order to hide unique token balances."),(0,o.kt)("h2",{id:"rounding-censuses"},"Rounding Censuses"),(0,o.kt)("p",null,"To ensure that the balances of token-based censuses remain private, we must alter them in some way. However, any change must meet two requirements:"),(0,o.kt)("ol",null,(0,o.kt)("li",{parentName:"ol"},(0,o.kt)("p",{parentName:"li"},"The resulting balance must be less than or equal to the original one.")),(0,o.kt)("li",{parentName:"ol"},(0,o.kt)("p",{parentName:"li"},"The resulting balance should stay as close to the original as possible."))),(0,o.kt)("p",null,"Our algorithm rounds balances to a nearby value, forming groups of equal rounded balance of a least some ",(0,o.kt)("inlineCode",{parentName:"p"},"privacyThreshold")," in size (minimum 3). This process obscures individual holder's balances. The algorithm optimizes the number of members in a group, taking in account the difference between balances, to reduce accuracy loss."),(0,o.kt)("h3",{id:"basic-steps"},"Basic Steps"),(0,o.kt)("ol",null,(0,o.kt)("li",{parentName:"ol"},(0,o.kt)("p",{parentName:"li"},"Identify and exclude outliers: Participants balances are analyzed to detect outliers using z-score algorithm.")),(0,o.kt)("li",{parentName:"ol"},(0,o.kt)("p",{parentName:"li"},"Forming groups: Participants are initially grouped based on the privacy threshold. A group can extend to include participants with identical balances or with balances differences falling below the groupBalanceDiff criteria.")),(0,o.kt)("li",{parentName:"ol"},(0,o.kt)("p",{parentName:"li"},"Balancing groups: For each group, we adjust the balances, rounding them down to the smallest amount within the group to obscure individual values.")),(0,o.kt)("li",{parentName:"ol"},(0,o.kt)("p",{parentName:"li"},"Accuracy loop: The algorithm tries to find the highest accuracy possible while maintaining a minimum privacy threshold. It starts with the minimum privacy threshold and increases it by a small amount until the accuracy is maximized."))),(0,o.kt)("h2",{id:"results-accuracy"},"Results Accuracy"),(0,o.kt)("p",null,"Because voter weights are rounded, there is a chance for the accuracy of elections to be affected."),(0,o.kt)("p",null,"To measure accuracy, we compare the total of the adjusted balances from the census against the sum of the original balances, incorporating outliers into both calculations for consistency."),(0,o.kt)("p",null,"Our tests covered censuses involving 21 different tokens, showcasing various holder counts and token formats, including ERC20, ERC721, and POAP. This comprehensive testing ensures our approach is robust across different Web3 assets."),(0,o.kt)("p",null,(0,o.kt)("img",{parentName:"p",src:"https://blog.vocdoni.io/_next/image?url=https%3A%2F%2Fstorage.googleapis.com%2Fpapyrus_images%2F1b54084ccc29b051ca00d4d31c02328c.png&w=1920&q=75",alt:"accuracy-testing"})),(0,o.kt)("p",null,"Evidently, accuracy cannot be maintained under all possible conditions. We've established parameter settings that generally perform well across various token types and distributions, and under these conditions we consider accuracy levels to be sufficient. "),(0,o.kt)("h2",{id:"anonymity-level"},"Anonymity Level"),(0,o.kt)("p",null,"This scheme for token-based census anonymity is not as absolutely anonymous as a zk-merkle-proof. There are potential vulnerabilities to specific attacks. "),(0,o.kt)("p",null,"For example, acquiring a certain amount of a token to manipulate the algorithm into grouping an address with others could theoretically expose that address. However, such strategies are impractical and unlikely to significantly impact election outcomes. This type of attack also requires an analysis of balance distributions, complicating its execution."))}p.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/11d03c56.ec0c844c.js b/assets/js/11d03c56.ec0c844c.js new file mode 100644 index 000000000..5794f5757 --- /dev/null +++ b/assets/js/11d03c56.ec0c844c.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdemo=self.webpackChunkdemo||[]).push([[8759],{3905:(e,t,n)=>{n.d(t,{Zo:()=>u,kt:()=>h});var o=n(67294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function r(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function i(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(o=0;o=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var l=o.createContext({}),c=function(e){var t=o.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},u=function(e){var t=c(e.components);return o.createElement(l.Provider,{value:t},e.children)},p={inlineCode:"code",wrapper:function(e){var t=e.children;return o.createElement(o.Fragment,{},t)}},m=o.forwardRef((function(e,t){var n=e.components,a=e.mdxType,r=e.originalType,l=e.parentName,u=s(e,["components","mdxType","originalType","parentName"]),m=c(n),h=a,d=m["".concat(l,".").concat(h)]||m[h]||p[h]||r;return n?o.createElement(d,i(i({ref:t},u),{},{components:n})):o.createElement(d,i({ref:t},u))}));function h(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var r=n.length,i=new Array(r);i[0]=m;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s.mdxType="string"==typeof e?e:a,i[1]=s;for(var c=2;c{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>p,frontMatter:()=>r,metadata:()=>s,toc:()=>c});var o=n(87462),a=(n(67294),n(3905));const r={},i="On-Chain Census Anonymity",s={unversionedId:"protocol/anonymity/on-chain",id:"protocol/anonymity/on-chain",title:"On-Chain Census Anonymity",description:"On-chain cenuses created with the Census3 Service derive their contents from a public set of holders of a given token (or set of tokens) on the Ethereum blockchain. This information is turned into a census by generating a Merkle Proof on that set of data. This Merkle Proof is similar to that used for a typical off-chain tree census, and the same sort of ZK Census Proof can be used to compute voter validation anonymously.",source:"@site/docs/protocol/anonymity/on-chain.md",sourceDirName:"protocol/anonymity",slug:"/protocol/anonymity/on-chain",permalink:"/protocol/anonymity/on-chain",draft:!1,tags:[],version:"current",frontMatter:{},sidebar:"defaultSidebar",previous:{title:"CSP Blind Signatures",permalink:"/protocol/anonymity/blind-signatures"},next:{title:"Off-Chain Tree ZK Census Proof",permalink:"/protocol/anonymity/zk-census-proof"}},l={},c=[{value:"Rounding Censuses",id:"rounding-censuses",level:2},{value:"Basic Steps",id:"basic-steps",level:3},{value:"Results Accuracy",id:"results-accuracy",level:2},{value:"Anonymity Level",id:"anonymity-level",level:2}],u={toc:c};function p(e){let{components:t,...n}=e;return(0,a.kt)("wrapper",(0,o.Z)({},u,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h1",{id:"on-chain-census-anonymity"},"On-Chain Census Anonymity"),(0,a.kt)("p",null,"On-chain cenuses created with the Census3 Service derive their contents from a public set of holders of a given token (or set of tokens) on the Ethereum blockchain. This information is turned into a census by generating a Merkle Proof on that set of data. This Merkle Proof is similar to that used for a typical off-chain tree census, and the same sort of ",(0,a.kt)("a",{parentName:"p",href:"/protocol/anonymity/zk-census-proof"},"ZK Census Proof")," can be used to compute voter validation anonymously."),(0,a.kt)("p",null,"Unfortunately a zero-knowledge census itself is not enough to anonymize an on-chain election, because voters are weighted according to their unique token balances, making them easy to identify as the weight of a vote can be correlated with an address. We address this problem by rounding voter weights in order to hide unique token balances."),(0,a.kt)("admonition",{title:"ethereum storage proofs",type:"warning"},(0,a.kt)("p",{parentName:"admonition"},"On-chain censuses created manually with ",(0,a.kt)("a",{parentName:"p",href:"/protocol/census/on-chain#erc-20-token-storage-proofs"},"Ethereum Storage Proofs")," cannot be anonymized")),(0,a.kt)("h2",{id:"rounding-censuses"},"Rounding Censuses"),(0,a.kt)("p",null,"To ensure that the balances of token-based censuses remain private, we must alter them in some way. However, any change must meet two requirements:"),(0,a.kt)("ol",null,(0,a.kt)("li",{parentName:"ol"},(0,a.kt)("p",{parentName:"li"},"The resulting balance must be less than or equal to the original one.")),(0,a.kt)("li",{parentName:"ol"},(0,a.kt)("p",{parentName:"li"},"The resulting balance should stay as close to the original as possible."))),(0,a.kt)("p",null,"Our algorithm rounds balances to a nearby value, forming groups of equal rounded balance of a least some ",(0,a.kt)("inlineCode",{parentName:"p"},"privacyThreshold")," in size (minimum 3). This process obscures individual holder's balances. The algorithm optimizes the number of members in a group, taking in account the difference between balances, to reduce accuracy loss."),(0,a.kt)("h3",{id:"basic-steps"},"Basic Steps"),(0,a.kt)("ol",null,(0,a.kt)("li",{parentName:"ol"},(0,a.kt)("p",{parentName:"li"},"Identify and exclude outliers: Participants balances are analyzed to detect outliers using z-score algorithm.")),(0,a.kt)("li",{parentName:"ol"},(0,a.kt)("p",{parentName:"li"},"Forming groups: Participants are initially grouped based on the privacy threshold. A group can extend to include participants with identical balances or with balances differences falling below the groupBalanceDiff criteria.")),(0,a.kt)("li",{parentName:"ol"},(0,a.kt)("p",{parentName:"li"},"Balancing groups: For each group, we adjust the balances, rounding them down to the smallest amount within the group to obscure individual values.")),(0,a.kt)("li",{parentName:"ol"},(0,a.kt)("p",{parentName:"li"},"Accuracy loop: The algorithm tries to find the highest accuracy possible while maintaining a minimum privacy threshold. It starts with the minimum privacy threshold and increases it by a small amount until the accuracy is maximized."))),(0,a.kt)("h2",{id:"results-accuracy"},"Results Accuracy"),(0,a.kt)("p",null,"Because voter weights are rounded, there is a chance for the accuracy of elections to be affected."),(0,a.kt)("p",null,"To measure accuracy, we compare the total of the adjusted balances from the census against the sum of the original balances, incorporating outliers into both calculations for consistency."),(0,a.kt)("p",null,"Our tests covered censuses involving 21 different tokens, showcasing various holder counts and token formats, including ERC20, ERC721, and POAP. This comprehensive testing ensures our approach is robust across different Web3 assets."),(0,a.kt)("p",null,(0,a.kt)("img",{parentName:"p",src:"https://blog.vocdoni.io/_next/image?url=https%3A%2F%2Fstorage.googleapis.com%2Fpapyrus_images%2F1b54084ccc29b051ca00d4d31c02328c.png&w=1920&q=75",alt:"accuracy-testing"})),(0,a.kt)("p",null,"Evidently, accuracy cannot be maintained under all possible conditions. We've established parameter settings that generally perform well across various token types and distributions, and under these conditions we consider accuracy levels to be sufficient. "),(0,a.kt)("h2",{id:"anonymity-level"},"Anonymity Level"),(0,a.kt)("p",null,"This scheme for token-based census anonymity is not as absolutely anonymous as a zk-merkle-proof. The parameter settings are important- a ",(0,a.kt)("inlineCode",{parentName:"p"},"privacyThreshold")," that is too small could result in a rounded group of voters who all vote for the same result, effectively de-anonymizing every member of the group. If this threshold is too high, however, accuracy is lost."),(0,a.kt)("p",null,"There are also potential vulnerabilities to specific attacks. For example, acquiring a certain amount of a token to manipulate the algorithm into grouping an address with others could theoretically expose that address. However, such strategies are impractical and unlikely to significantly impact election outcomes. This type of attack also requires an analysis of balance distributions, complicating its execution."))}p.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/1d5be7b1.dc680d4c.js b/assets/js/1d5be7b1.dc680d4c.js new file mode 100644 index 000000000..90270c9aa --- /dev/null +++ b/assets/js/1d5be7b1.dc680d4c.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdemo=self.webpackChunkdemo||[]).push([[2428],{3905:(e,t,o)=>{o.d(t,{Zo:()=>l,kt:()=>p});var n=o(67294);function r(e,t,o){return t in e?Object.defineProperty(e,t,{value:o,enumerable:!0,configurable:!0,writable:!0}):e[t]=o,e}function a(e,t){var o=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),o.push.apply(o,n)}return o}function s(e){for(var t=1;t=0||(r[o]=e[o]);return r}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,o)&&(r[o]=e[o])}return r}var c=n.createContext({}),h=function(e){var t=n.useContext(c),o=t;return e&&(o="function"==typeof e?e(t):s(s({},t),e)),o},l=function(e){var t=h(e.components);return n.createElement(c.Provider,{value:t},e.children)},u={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var o=e.components,r=e.mdxType,a=e.originalType,c=e.parentName,l=i(e,["components","mdxType","originalType","parentName"]),d=h(o),p=r,f=d["".concat(c,".").concat(p)]||d[p]||u[p]||a;return o?n.createElement(f,s(s({ref:t},l),{},{components:o})):n.createElement(f,s({ref:t},l))}));function p(e,t){var o=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var a=o.length,s=new Array(a);s[0]=d;var i={};for(var c in t)hasOwnProperty.call(t,c)&&(i[c]=t[c]);i.originalType=e,i.mdxType="string"==typeof e?e:r,s[1]=i;for(var h=2;h{o.r(t),o.d(t,{assets:()=>c,contentTitle:()=>s,default:()=>u,frontMatter:()=>a,metadata:()=>i,toc:()=>h});var n=o(87462),r=(o(67294),o(3905));const a={},s="On-Chain Census",i={unversionedId:"protocol/census/on-chain/on-chain",id:"protocol/census/on-chain/on-chain",title:"On-Chain Census",description:"An on-chain census is one which is dependent on the status of the Ethereum blockchain at a given point in time. This census type enables the set of eligible voters to be derived from the token holder balances for some ERC-20 Ethereum token, weighted according to token balances. The ideal use-case for such a census is an organization whose members are represented as holders of some token, such as a DAO.",source:"@site/docs/protocol/census/on-chain/on-chain.md",sourceDirName:"protocol/census/on-chain",slug:"/protocol/census/on-chain/",permalink:"/protocol/census/on-chain/",draft:!1,tags:[],version:"current",frontMatter:{},sidebar:"defaultSidebar",previous:{title:"Off-Chain Tree Census",permalink:"/protocol/census/off-chain-tree"},next:{title:"Census3 Service",permalink:"/protocol/census/on-chain/census3"}},c={},h=[{value:"Census3 Service",id:"census3-service",level:2},{value:"ERC-20 Token Storage Proofs",id:"erc-20-token-storage-proofs",level:2},{value:"Storage Tries",id:"storage-tries",level:3},{value:"Token Registration",id:"token-registration",level:3},{value:"Election creation",id:"election-creation",level:3},{value:"Voting",id:"voting",level:3}],l={toc:h};function u(e){let{components:t,...o}=e;return(0,r.kt)("wrapper",(0,n.Z)({},l,o,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",{id:"on-chain-census"},"On-Chain Census"),(0,r.kt)("p",null,"An on-chain census is one which is dependent on the status of the Ethereum blockchain at a given point in time. This census type enables the set of eligible voters to be derived from the token holder balances for some ERC-20 Ethereum token, weighted according to token balances. The ideal use-case for such a census is an organization whose members are represented as holders of some token, such as a ",(0,r.kt)("a",{parentName:"p",href:"https://en.wikipedia.org/wiki/Decentralized_autonomous_organization"},"DAO"),"."),(0,r.kt)("p",null,"There are two ways with Vocdoni to create an on-chain census: Ethereum Storage Proofs and the Census3 service. Ethereum Storage Proofs is the legacy method which requires a higher setup cost and more manual work by integrators. The Census3 Service provided by Vocdoni abstracts this complexity away and exposes an API to create and access token-holder censuses. "),(0,r.kt)("h2",{id:"census3-service"},"Census3 Service"),(0,r.kt)("p",null,"The Census3 Service is an API service which provides an easy way to create censuses for elections with holders of a single token or a combination of them. This is a wrapper of the on-chain census design and enables integrators to use on-chain censuses without manually registering tokens or generating storage proofs."),(0,r.kt)("p",null,"The Census3 Service is documented in-depth ",(0,r.kt)("a",{parentName:"p",href:"/protocol/census/on-chain/census3"},"here"),"."),(0,r.kt)("h2",{id:"erc-20-token-storage-proofs"},"ERC-20 Token Storage Proofs"),(0,r.kt)("p",null,"An Ethereum Storage Proof is a way to create an on-chain census without the use of the Census3 Service. This approach uses a Token Storage Proof Smart Contract to generate a proof of a given token's holders which can then be used directly as a census."),(0,r.kt)("p",null,"Anyone can permissionlessly register a token to the Storage Proof Smart Contract, incurring some gas cost. Then any holder of the token can create a voting process for that token and set the proper census origin value to signal the use of an on-chain census. The Census Merkle Root is the Ethereum Root Hash at a given block height, and any user can request a Merkle Proof that their address holds tokens on the target ERC20 smart contract. They can then provide this proof to vote on processes for the entity representing that token address. Weighted processes enable users to employ a voting power that is proportionate to the number of tokens they hold."),(0,r.kt)("h3",{id:"storage-tries"},"Storage Tries"),(0,r.kt)("p",null,"Each Ethereum account has its own Storage Trie, which is where all of the contract data lives for that account. A 256-bit hash of the storage trie\u2019s root node is stored as the storageRoot value in the global Ethereum state trie. In the context of storage proofs, we are concerned with ERC-20 Token Smart Contract accounts, whose Storage Tries contain the list of token balances of each token holder. "),(0,r.kt)("p",null,"A storage proof is a Merkle Proof computed on this storage trie. For the scope of this proposal, the storage proof allows anyone to demonstrate the balance of a token holder for a given ERC-20 token, at a specific State Root Hash (Ethereum block). In other words, we can cheaply generate a proof of any user's balance of a token, and this proof can be used in a Vocdoni voting census. "),(0,r.kt)("h3",{id:"token-registration"},"Token Registration"),(0,r.kt)("p",null,"Before starting an election, the target token needs to be registered to the Token StorageProof Smart Contract. Any token holder can register the token by providing a valid storage proof."),(0,r.kt)("p",null,"In order to create a storage proof, on a mapping-based ERC20 contract, the ",(0,r.kt)("inlineCode",{parentName:"p"},"index slot")," must be found. This depends on the contract implementation and refers to the storage layout of the Ethereum EVM. Most of the ",(0,r.kt)("inlineCode",{parentName:"p"},"index slots")," are between 1 and 10. "),(0,r.kt)("p",null,"The user registering a new token must first try to find the index slot. To this aim, a web-frontend and a typescript library will be available. Once the index slot is found, the user must send a transaction to the Token StorageProof SC indicating the ",(0,r.kt)("inlineCode",{parentName:"p"},"index slot")," and providing the Merkle proof that demonstrates the index slot and their possession of the token. "),(0,r.kt)("h3",{id:"election-creation"},"Election creation"),(0,r.kt)("p",null,"When a token holder wants to create a process with an on-chain census origin, they must send a transaction to the Vocdoni Smart Contract with the election process details, including the token contract address for which the process is being created.\nThe Smart Contract will check if the sender holds some minimum threshold tokens on the ERC20 contract address. "),(0,r.kt)("h3",{id:"voting"},"Voting"),(0,r.kt)("p",null,"In order to cast a vote, each user needs to fetch their Census Merkle Proof. The client connects to a Web3 endpoint and uses the RPC call ",(0,r.kt)("inlineCode",{parentName:"p"},"eth_getProof")," to retrieve this proof."),(0,r.kt)("p",null,"Once the user decides to cast a vote, a package will be forged containing the census proof, vote choice (represented as an array of integers) and signature (using Metamask)."),(0,r.kt)("p",null,"The transaction of sending a vote is as follows:"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-json"},'{\n "eth_getProof": { \n "type":"vote",\n "processId": "0x47384...",\n "weight": "0x123",\n "proof": "MerkleProof",\n "votePackage": "base64encoded vote package",\n "signature": "signature performed with the privkey that computes the address"\n }\n}\n')),(0,r.kt)("p",null,"The vote will be considered valid only if the signature computes an Ethereum address for which\xa0the provided Merkle proof and its weight (balance) is valid for the census root hash (Ethereum storage root) at the height of the process start block."),(0,r.kt)("p",null,"The storage proofs contract acts as a registry which allows token holders to prove that they held funds at a given point in time and therefore are eligible voters for a process."))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/427be892.3b003ef4.js b/assets/js/427be892.201b1acd.js similarity index 62% rename from assets/js/427be892.3b003ef4.js rename to assets/js/427be892.201b1acd.js index e5b19c38b..57157c41a 100644 --- a/assets/js/427be892.3b003ef4.js +++ b/assets/js/427be892.201b1acd.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdemo=self.webpackChunkdemo||[]).push([[8913],{3905:(e,t,a)=>{a.d(t,{Zo:()=>p,kt:()=>u});var o=a(67294);function r(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function n(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,o)}return a}function c(e){for(var t=1;t=0||(r[a]=e[a]);return r}(e,t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);for(o=0;o=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(r[a]=e[a])}return r}var i=o.createContext({}),l=function(e){var t=o.useContext(i),a=t;return e&&(a="function"==typeof e?e(t):c(c({},t),e)),a},p=function(e){var t=l(e.components);return o.createElement(i.Provider,{value:t},e.children)},d={inlineCode:"code",wrapper:function(e){var t=e.children;return o.createElement(o.Fragment,{},t)}},m=o.forwardRef((function(e,t){var a=e.components,r=e.mdxType,n=e.originalType,i=e.parentName,p=s(e,["components","mdxType","originalType","parentName"]),m=l(a),u=r,h=m["".concat(i,".").concat(u)]||m[u]||d[u]||n;return a?o.createElement(h,c(c({ref:t},p),{},{components:a})):o.createElement(h,c({ref:t},p))}));function u(e,t){var a=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var n=a.length,c=new Array(n);c[0]=m;var s={};for(var i in t)hasOwnProperty.call(t,i)&&(s[i]=t[i]);s.originalType=e,s.mdxType="string"==typeof e?e:r,c[1]=s;for(var l=2;l{a.r(t),a.d(t,{assets:()=>i,contentTitle:()=>c,default:()=>d,frontMatter:()=>n,metadata:()=>s,toc:()=>l});var o=a(87462),r=(a(67294),a(3905));const n={},c="Data Schemes",s={unversionedId:"protocol/data-schemes/data-schemes",id:"protocol/data-schemes/data-schemes",title:"Data Schemes",description:"When it comes to voting processes, there are two main types of data storage at the protocol-level: protocol-level data stored on the Vochain and readable metadata like election descriptions stored on IPFS.",source:"@site/docs/protocol/data-schemes/data-schemes.md",sourceDirName:"protocol/data-schemes",slug:"/protocol/data-schemes/",permalink:"/protocol/data-schemes/",draft:!1,tags:[],version:"current",frontMatter:{},sidebar:"defaultSidebar",previous:{title:"On-Chain Census",permalink:"/protocol/census/on-chain"},next:{title:"Election Metadata",permalink:"/protocol/data-schemes/election"}},i={},l=[{value:"Protocol Data",id:"protocol-data",level:2},{value:"Metadata",id:"metadata",level:2}],p={toc:l};function d(e){let{components:t,...a}=e;return(0,r.kt)("wrapper",(0,o.Z)({},p,a,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",{id:"data-schemes"},"Data Schemes"),(0,r.kt)("p",null,"When it comes to voting processes, there are two main types of data storage at the protocol-level: protocol-level data stored ",(0,r.kt)("strong",{parentName:"p"},"on the ",(0,r.kt)("a",{parentName:"strong",href:"/protocol#11-the-blockchain"},"Vochain"))," and readable metadata like election descriptions stored on ",(0,r.kt)("strong",{parentName:"p"},(0,r.kt)("a",{parentName:"strong",href:"/protocol#13-distributed-storage"},"IPFS")),". "),(0,r.kt)("h2",{id:"protocol-data"},"Protocol Data"),(0,r.kt)("p",null,"Protocol data is data that is published directly to the blockchain and determines how election, votes, and organizations behave. Much of the protocol data is defined by Protobuf-encoded packages sent in blockchain transactions. "),(0,r.kt)("h2",{id:"metadata"},"Metadata"),(0,r.kt)("p",null,"Metadata is typically human-readable data that is important but does not ",(0,r.kt)("strong",{parentName:"p"},(0,r.kt)("em",{parentName:"strong"},"define"))," how an election behaves at a protocol level. Metadata is represented as a JSON file that conforms to a specific schema. This data is typically retrieved using a P2P storage system like IPFS, with an immutable URI and hash of that data stored on the blockchain to ensure it cannot be tampered with."))}d.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdemo=self.webpackChunkdemo||[]).push([[8913],{3905:(e,t,a)=>{a.d(t,{Zo:()=>p,kt:()=>u});var o=a(67294);function r(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function n(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,o)}return a}function c(e){for(var t=1;t=0||(r[a]=e[a]);return r}(e,t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);for(o=0;o=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(r[a]=e[a])}return r}var i=o.createContext({}),l=function(e){var t=o.useContext(i),a=t;return e&&(a="function"==typeof e?e(t):c(c({},t),e)),a},p=function(e){var t=l(e.components);return o.createElement(i.Provider,{value:t},e.children)},d={inlineCode:"code",wrapper:function(e){var t=e.children;return o.createElement(o.Fragment,{},t)}},m=o.forwardRef((function(e,t){var a=e.components,r=e.mdxType,n=e.originalType,i=e.parentName,p=s(e,["components","mdxType","originalType","parentName"]),m=l(a),u=r,h=m["".concat(i,".").concat(u)]||m[u]||d[u]||n;return a?o.createElement(h,c(c({ref:t},p),{},{components:a})):o.createElement(h,c({ref:t},p))}));function u(e,t){var a=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var n=a.length,c=new Array(n);c[0]=m;var s={};for(var i in t)hasOwnProperty.call(t,i)&&(s[i]=t[i]);s.originalType=e,s.mdxType="string"==typeof e?e:r,c[1]=s;for(var l=2;l{a.r(t),a.d(t,{assets:()=>i,contentTitle:()=>c,default:()=>d,frontMatter:()=>n,metadata:()=>s,toc:()=>l});var o=a(87462),r=(a(67294),a(3905));const n={},c="Data Schemes",s={unversionedId:"protocol/data-schemes/data-schemes",id:"protocol/data-schemes/data-schemes",title:"Data Schemes",description:"When it comes to voting processes, there are two main types of data storage at the protocol-level: protocol-level data stored on the Vochain and readable metadata like election descriptions stored on IPFS.",source:"@site/docs/protocol/data-schemes/data-schemes.md",sourceDirName:"protocol/data-schemes",slug:"/protocol/data-schemes/",permalink:"/protocol/data-schemes/",draft:!1,tags:[],version:"current",frontMatter:{},sidebar:"defaultSidebar",previous:{title:"Census3 Service",permalink:"/protocol/census/on-chain/census3"},next:{title:"Election Metadata",permalink:"/protocol/data-schemes/election"}},i={},l=[{value:"Protocol Data",id:"protocol-data",level:2},{value:"Metadata",id:"metadata",level:2}],p={toc:l};function d(e){let{components:t,...a}=e;return(0,r.kt)("wrapper",(0,o.Z)({},p,a,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",{id:"data-schemes"},"Data Schemes"),(0,r.kt)("p",null,"When it comes to voting processes, there are two main types of data storage at the protocol-level: protocol-level data stored ",(0,r.kt)("strong",{parentName:"p"},"on the ",(0,r.kt)("a",{parentName:"strong",href:"/protocol#11-the-blockchain"},"Vochain"))," and readable metadata like election descriptions stored on ",(0,r.kt)("strong",{parentName:"p"},(0,r.kt)("a",{parentName:"strong",href:"/protocol#13-distributed-storage"},"IPFS")),". "),(0,r.kt)("h2",{id:"protocol-data"},"Protocol Data"),(0,r.kt)("p",null,"Protocol data is data that is published directly to the blockchain and determines how election, votes, and organizations behave. Much of the protocol data is defined by Protobuf-encoded packages sent in blockchain transactions. "),(0,r.kt)("h2",{id:"metadata"},"Metadata"),(0,r.kt)("p",null,"Metadata is typically human-readable data that is important but does not ",(0,r.kt)("strong",{parentName:"p"},(0,r.kt)("em",{parentName:"strong"},"define"))," how an election behaves at a protocol level. Metadata is represented as a JSON file that conforms to a specific schema. This data is typically retrieved using a P2P storage system like IPFS, with an immutable URI and hash of that data stored on the blockchain to ensure it cannot be tampered with."))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/5a8bd590.925093b5.js b/assets/js/5a8bd590.925093b5.js deleted file mode 100644 index bc6bbb72a..000000000 --- a/assets/js/5a8bd590.925093b5.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkdemo=self.webpackChunkdemo||[]).push([[9090],{3905:(e,t,o)=>{o.d(t,{Zo:()=>h,kt:()=>u});var n=o(67294);function r(e,t,o){return t in e?Object.defineProperty(e,t,{value:o,enumerable:!0,configurable:!0,writable:!0}):e[t]=o,e}function a(e,t){var o=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),o.push.apply(o,n)}return o}function s(e){for(var t=1;t=0||(r[o]=e[o]);return r}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,o)&&(r[o]=e[o])}return r}var c=n.createContext({}),l=function(e){var t=n.useContext(c),o=t;return e&&(o="function"==typeof e?e(t):s(s({},t),e)),o},h=function(e){var t=l(e.components);return n.createElement(c.Provider,{value:t},e.children)},p={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var o=e.components,r=e.mdxType,a=e.originalType,c=e.parentName,h=i(e,["components","mdxType","originalType","parentName"]),d=l(o),u=r,f=d["".concat(c,".").concat(u)]||d[u]||p[u]||a;return o?n.createElement(f,s(s({ref:t},h),{},{components:o})):n.createElement(f,s({ref:t},h))}));function u(e,t){var o=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var a=o.length,s=new Array(a);s[0]=d;var i={};for(var c in t)hasOwnProperty.call(t,c)&&(i[c]=t[c]);i.originalType=e,i.mdxType="string"==typeof e?e:r,s[1]=i;for(var l=2;l{o.r(t),o.d(t,{assets:()=>c,contentTitle:()=>s,default:()=>p,frontMatter:()=>a,metadata:()=>i,toc:()=>l});var n=o(87462),r=(o(67294),o(3905));const a={},s="On-Chain Census",i={unversionedId:"protocol/census/on-chain",id:"protocol/census/on-chain",title:"On-Chain Census",description:"There are two types of census origins: Those who depend on a list of public keys maintained off-chain and those dependent on the status of the Ethereum blockchain at a given point in time.",source:"@site/docs/protocol/census/on-chain.md",sourceDirName:"protocol/census",slug:"/protocol/census/on-chain",permalink:"/protocol/census/on-chain",draft:!1,tags:[],version:"current",frontMatter:{},sidebar:"defaultSidebar",previous:{title:"Off-Chain Tree Census",permalink:"/protocol/census/off-chain-tree"},next:{title:"Data Schemes",permalink:"/protocol/data-schemes/"}},c={},l=[{value:"ERC-20 Token Storage Proofs",id:"erc-20-token-storage-proofs",level:3},{value:"Token Registration",id:"token-registration",level:3},{value:"Election creation",id:"election-creation",level:3},{value:"Voting",id:"voting",level:3}],h={toc:l};function p(e){let{components:t,...o}=e;return(0,r.kt)("wrapper",(0,n.Z)({},h,o,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",{id:"on-chain-census"},"On-Chain Census"),(0,r.kt)("p",null,"There are two types of census origins: Those who depend on a list of public keys maintained off-chain and those dependent on the status of the Ethereum blockchain at a given point in time."),(0,r.kt)("p",null,"The second case, referred to as an on-chain census, enables the weighted set of eligible voters for a process to be derived from the token holder balances for some ERC-20 Ethereum token. This is possible through the use of Ethereum Storage Proofs."),(0,r.kt)("admonition",{title:"census3",type:"tip"},(0,r.kt)("p",{parentName:"admonition"},"This page describes how the token-based census works at a low-level. In order to facilitate the usage of token-based censuses, we provide the ",(0,r.kt)("a",{parentName:"p",href:"/sdk/integration-details/census-types/on-chain"},"Census3")," service. The Census3 Service is an API service which provides an easy way to create censuses for elections with holders of a single token or a combination of them. This is a wrapper of the on-chain census design and enables integrators to use on-chain censuses without manually registering tokens or generating storage proofs.")),(0,r.kt)("h3",{id:"erc-20-token-storage-proofs"},"ERC-20 Token Storage Proofs"),(0,r.kt)("p",null,"Each Ethereum account has its own Storage Trie, which is where all of the contract data lives for that account. A 256-bit hash of the storage trie\u2019s root node is stored as the storageRoot value in the global Ethereum state trie. In the context of storage proofs, we are concerned with ERC-20 Token Smart Contract accounts, whose Storage Tries contain the list of token balances of each token holder. "),(0,r.kt)("p",null,"A storage proof is a Merkle Proof computed on this storage trie. For the scope of this proposal, the storage proof allows anyone to demonstrate the balance of a token holder for a given ERC-20 token, at a specific State Root Hash (Ethereum block). In other words, we can cheaply generate a proof of any user's balance of a token, and this proof can be used in a Vocdoni voting census. "),(0,r.kt)("h3",{id:"token-registration"},"Token Registration"),(0,r.kt)("p",null,"Before starting an election, the target token needs to be registered to the Token StorageProof Smart Contract. Any token holder can register the token by providing a valid storage proof."),(0,r.kt)("p",null,"In order to create a storage proof, on a mapping-based ERC20 contract, the ",(0,r.kt)("inlineCode",{parentName:"p"},"index slot")," must be found. This depends on the contract implementation and refers to the storage layout of the Ethereum EVM. Most of the ",(0,r.kt)("inlineCode",{parentName:"p"},"index slots")," are between 1 and 10. "),(0,r.kt)("p",null,"The user registering a new token must first try to find the index slot. To this aim, a web-frontend and a typescript library will be available. Once the index slot is found, the user must send a transaction to the Token StorageProof SC indicating the ",(0,r.kt)("inlineCode",{parentName:"p"},"index slot")," and providing the Merkle proof that demonstrates the index slot and their possession of the token. "),(0,r.kt)("h3",{id:"election-creation"},"Election creation"),(0,r.kt)("p",null,"When a token holder wants to create a process with an on-chain census origin, they must send a transaction to the Vocdoni Smart Contract with the election process details, including the token contract address for which the process is being created.\nThe Smart Contract will check if the sender holds some minimum threshold tokens on the ERC20 contract address. "),(0,r.kt)("h3",{id:"voting"},"Voting"),(0,r.kt)("p",null,"In order to cast a vote, each user needs to fetch their Census Merkle Proof. The client connects to a Web3 endpoint and uses the RPC call ",(0,r.kt)("inlineCode",{parentName:"p"},"eth_getProof")," to retrieve this proof."),(0,r.kt)("p",null,"Once the user decides to cast a vote, a package will be forged containing the census proof, vote choice (represented as an array of integers) and signature (using Metamask)."),(0,r.kt)("p",null,"The transaction of sending a vote is as follows:"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-json"},'{\n "eth_getProof": { \n "type":"vote",\n "processId": "0x47384...",\n "weight": "0x123",\n "proof": "MerkleProof",\n "votePackage": "base64encoded vote package",\n "signature": "signature performed with the privkey that computes the address"\n }\n}\n')),(0,r.kt)("p",null,"The vote will be considered valid only if the signature computes an Ethereum address for which\xa0the provided Merkle proof and its weight (balance) is valid for the census root hash (Ethereum storage root) at the height of the process start block."),(0,r.kt)("p",null,"The storage proofs contract acts as a registry which allows token holders to prove that they held funds at a given point in time and therefore are eligible voters for a process."))}p.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/8d8eb18d.0c8db86a.js b/assets/js/8d8eb18d.0c8db86a.js new file mode 100644 index 000000000..2b4401020 --- /dev/null +++ b/assets/js/8d8eb18d.0c8db86a.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdemo=self.webpackChunkdemo||[]).push([[5487],{3905:(e,t,n)=>{n.d(t,{Zo:()=>u,kt:()=>f});var r=n(67294);function s(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function a(e){for(var t=1;t=0||(s[n]=e[n]);return s}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(s[n]=e[n])}return s}var c=r.createContext({}),l=function(e){var t=r.useContext(c),n=t;return e&&(n="function"==typeof e?e(t):a(a({},t),e)),n},u=function(e){var t=l(e.components);return r.createElement(c.Provider,{value:t},e.children)},p={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},h=r.forwardRef((function(e,t){var n=e.components,s=e.mdxType,o=e.originalType,c=e.parentName,u=i(e,["components","mdxType","originalType","parentName"]),h=l(n),f=s,d=h["".concat(c,".").concat(f)]||h[f]||p[f]||o;return n?r.createElement(d,a(a({ref:t},u),{},{components:n})):r.createElement(d,a({ref:t},u))}));function f(e,t){var n=arguments,s=t&&t.mdxType;if("string"==typeof e||s){var o=n.length,a=new Array(o);a[0]=h;var i={};for(var c in t)hasOwnProperty.call(t,c)&&(i[c]=t[c]);i.originalType=e,i.mdxType="string"==typeof e?e:s,a[1]=i;for(var l=2;l{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>a,default:()=>p,frontMatter:()=>o,metadata:()=>i,toc:()=>l});var r=n(87462),s=(n(67294),n(3905));const o={},a="The Census",i={unversionedId:"protocol/census/census",id:"protocol/census/census",title:"The Census",description:"In Vocdoni, a census of identities can be represented in one of three ways. For Ethereum-based processes, in which eligible voters are represented by Ethereum addresses holding a specific token, an on-chain] (ERC-20) census is used. In cases where a central authority wants to manually validate each voter at the time of voting, [off-chain credential service provider is used. For all other voting processes (organizations that are not represented as DAOs), an off-chain tree census is used.",source:"@site/docs/protocol/census/census.md",sourceDirName:"protocol/census",slug:"/protocol/census/",permalink:"/protocol/census/",draft:!1,tags:[],version:"current",frontMatter:{},sidebar:"defaultSidebar",previous:{title:"Ballot Protocol",permalink:"/protocol/ballot-protocol"},next:{title:"Off-Chain CSP Census",permalink:"/protocol/census/off-chain-csp"}},c={},l=[{value:"On-Chain Based Census (Ethereum ERC-20)",id:"on-chain-based-census-ethereum-erc-20",level:2},{value:"Off-Chain CSP Based Census (Credential Service Provider)",id:"off-chain-csp-based-census-credential-service-provider",level:2},{value:"Off-Chain Tree Based Census (Merkle Tree)",id:"off-chain-tree-based-census-merkle-tree",level:2}],u={toc:l};function p(e){let{components:t,...n}=e;return(0,s.kt)("wrapper",(0,r.Z)({},u,n,{components:t,mdxType:"MDXLayout"}),(0,s.kt)("h1",{id:"the-census"},"The Census"),(0,s.kt)("p",null,"In Vocdoni, a census of identities can be represented in one of three ways. For Ethereum-based processes, in which eligible voters are represented by Ethereum addresses holding a specific token, an ",(0,s.kt)("a",{parentName:"p",href:"/protocol/census/on-chain"},"on-chain")," (ERC-20) census is used. In cases where a central authority wants to manually validate each voter at the time of voting, ",(0,s.kt)("a",{parentName:"p",href:"/protocol/census/off-chain-csp"},"off-chain credential service provider")," is used. For all other voting processes (organizations that are not represented as DAOs), an ",(0,s.kt)("a",{parentName:"p",href:"/protocol/census/off-chain-tree"},"off-chain tree")," census is used. "),(0,s.kt)("admonition",{type:"tip"},(0,s.kt)("p",{parentName:"admonition"},"Between the three of these census methods, an incredible range of use-cases and third-party integrations for voter eligibility management is possible. Furthermore, the flexibility of the voting protocol is designed to allow more census types to be easily added in the future.")),(0,s.kt)("p",null,"When a voting process is created, the Census Origin is set to signify which type of census the process should expect to use. "),(0,s.kt)("h2",{id:"on-chain-based-census-ethereum-erc-20"},"On-Chain Based Census (Ethereum ERC-20)"),(0,s.kt)("p",null,"On-chain census allow the set of eligible voters to be expressed as a weighted census of holders of a specific token on an Ethereum blockchain. This type of census is useful for organizations whose members are represented as token-holders. This is possible with either Ethereum Storage Proofs or the Census3 Service (only the Census3 Service is supported by the Vocdoni SDK). "),(0,s.kt)("p",null,"Technical details for on-chain censuses can be found at ",(0,s.kt)("a",{parentName:"p",href:"/protocol/census/on-chain"},"On-Chain Census"),"."),(0,s.kt)("h2",{id:"off-chain-csp-based-census-credential-service-provider"},"Off-Chain CSP Based Census (Credential Service Provider)"),(0,s.kt)("p",null,"In order to support frequent modifications to the census of an ongoing process and to bring more flexibility to the Vocdoni stack, a census based on Credential Service Providers (CSP) or Certificate Authorities (CAs) is implemented. This method allows organizations to set up a centralized authority that provides credentials to each voter, one-by-one, based on any arbitrary criteria decided by the organization. "),(0,s.kt)("p",null,"Technical details for off-chain CSP census can be found at ",(0,s.kt)("a",{parentName:"p",href:"/protocol/census/off-chain-csp"},"Off-Chain CSP Census"),"."),(0,s.kt)("h2",{id:"off-chain-tree-based-census-merkle-tree"},"Off-Chain Tree Based Census (Merkle Tree)"),(0,s.kt)("p",null,"An off-chain tree census allows organizations to centrally manage the set of members who can vote on any given process. Organizations can generate the Census Merkle Tree itself with the help of the Census Service, but they are responsible for manually generating a list of voters. ",(0,s.kt)("a",{parentName:"p",href:"https://vocdoni.app"},"Vocdoni.app")," currently provides a CSV-based census mechanism."),(0,s.kt)("p",null,"Technical details for off-chain tree census can be found at ",(0,s.kt)("a",{parentName:"p",href:"/protocol/census/off-chain-tree"},"Off-Chain Tree Census"),"."))}p.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/8d8eb18d.8db1d4c9.js b/assets/js/8d8eb18d.8db1d4c9.js deleted file mode 100644 index aa5d07d23..000000000 --- a/assets/js/8d8eb18d.8db1d4c9.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkdemo=self.webpackChunkdemo||[]).push([[5487],{3905:(e,t,n)=>{n.d(t,{Zo:()=>u,kt:()=>d});var r=n(67294);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function s(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function a(e){for(var t=1;t=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var c=r.createContext({}),l=function(e){var t=r.useContext(c),n=t;return e&&(n="function"==typeof e?e(t):a(a({},t),e)),n},u=function(e){var t=l(e.components);return r.createElement(c.Provider,{value:t},e.children)},h={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},p=r.forwardRef((function(e,t){var n=e.components,o=e.mdxType,s=e.originalType,c=e.parentName,u=i(e,["components","mdxType","originalType","parentName"]),p=l(n),d=o,f=p["".concat(c,".").concat(d)]||p[d]||h[d]||s;return n?r.createElement(f,a(a({ref:t},u),{},{components:n})):r.createElement(f,a({ref:t},u))}));function d(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var s=n.length,a=new Array(s);a[0]=p;var i={};for(var c in t)hasOwnProperty.call(t,c)&&(i[c]=t[c]);i.originalType=e,i.mdxType="string"==typeof e?e:o,a[1]=i;for(var l=2;l{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>a,default:()=>h,frontMatter:()=>s,metadata:()=>i,toc:()=>l});var r=n(87462),o=(n(67294),n(3905));const s={},a="The Census",i={unversionedId:"protocol/census/census",id:"protocol/census/census",title:"The Census",description:"In Vocdoni, a census of identities can be represented in one of three ways. For Ethereum-based processes, in which eligible voters are represented by Ethereum addresses holding a specific token, an on-chain] (ERC-20) census is used. In cases where a central authority wants to manually validate each voter at the time of voting, [off-chain credential service provider is used. For all other voting processes (organizations that are not represented as DAOs), an off-chain tree census is used.",source:"@site/docs/protocol/census/census.md",sourceDirName:"protocol/census",slug:"/protocol/census/",permalink:"/protocol/census/",draft:!1,tags:[],version:"current",frontMatter:{},sidebar:"defaultSidebar",previous:{title:"Ballot Protocol",permalink:"/protocol/ballot-protocol"},next:{title:"Off-Chain CSP Census",permalink:"/protocol/census/off-chain-csp"}},c={},l=[{value:"On-Chain Based Census (Ethereum ERC-20)",id:"on-chain-based-census-ethereum-erc-20",level:2},{value:"Off-Chain CSP Based Census (Credential Service Provider)",id:"off-chain-csp-based-census-credential-service-provider",level:2},{value:"Off-Chain Tree Based Census (Merkle Tree)",id:"off-chain-tree-based-census-merkle-tree",level:2}],u={toc:l};function h(e){let{components:t,...n}=e;return(0,o.kt)("wrapper",(0,r.Z)({},u,n,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("h1",{id:"the-census"},"The Census"),(0,o.kt)("p",null,"In Vocdoni, a census of identities can be represented in one of three ways. For Ethereum-based processes, in which eligible voters are represented by Ethereum addresses holding a specific token, an ",(0,o.kt)("a",{parentName:"p",href:"/protocol/census/on-chain"},"on-chain")," (ERC-20) census is used. In cases where a central authority wants to manually validate each voter at the time of voting, ",(0,o.kt)("a",{parentName:"p",href:"/protocol/census/off-chain-csp"},"off-chain credential service provider")," is used. For all other voting processes (organizations that are not represented as DAOs), an ",(0,o.kt)("a",{parentName:"p",href:"/protocol/census/off-chain-tree"},"off-chain tree")," census is used. "),(0,o.kt)("admonition",{type:"tip"},(0,o.kt)("p",{parentName:"admonition"},"Between the three of these census methods, an incredible range of use-cases and third-party integrations for voter eligibility management is possible. Furthermore, the flexibility of the voting protocol is designed to allow more census types to be easily added in the future.")),(0,o.kt)("p",null,"When a voting process is created, the Census Origin is set to signify which type of census the process should expect to use. "),(0,o.kt)("h2",{id:"on-chain-based-census-ethereum-erc-20"},"On-Chain Based Census (Ethereum ERC-20)"),(0,o.kt)("p",null,"On-chain census allow the set of eligible voters to be expressed as a weighted census of holders of a specific token on Ethereum. There is only one entity per Ethereum token, where the address of that entity is the contract address of the given token. "),(0,o.kt)("p",null,"To this end, Ethereum Storage Proofs are used. "),(0,o.kt)("p",null,"Anyone can permissionlessly register a token to the Storage Proof Smart Contract, incurring some gas cost. Then any holder of the token can create a voting process for that token and set the proper census origin value to signal the use of an on-chain census. The Census Merkle Root is the Ethereum Root Hash at a given block height, and any user can request a Merkle Proof that their address holds tokens on the target ERC20 smart contract. They can then provide this proof to vote on processes for the entity representing that token address. Weighted processes enable users to employ a voting power that is proportionate to the number of tokens they hold."),(0,o.kt)("p",null,"Technical details for on-chain census can be found at ",(0,o.kt)("a",{parentName:"p",href:"/protocol/census/on-chain"},"On-Chain Census"),"."),(0,o.kt)("h2",{id:"off-chain-csp-based-census-credential-service-provider"},"Off-Chain CSP Based Census (Credential Service Provider)"),(0,o.kt)("p",null,"In order to support frequent modifications to the census of an ongoing process and to bring more flexibility to the Vocdoni stack, a census based on Credential Service Providers (CSP) or Certificate Authorities (CAs) is implemented. This method allows organizations to set up a centralized authority that provides credentials to each voter, one-by-one, based on any arbitrary criteria decided by the organization. "),(0,o.kt)("p",null,"Technical details for off-chain CSP census can be found at ",(0,o.kt)("a",{parentName:"p",href:"/protocol/census/off-chain-csp"},"Off-Chain CSP Census"),"."),(0,o.kt)("h2",{id:"off-chain-tree-based-census-merkle-tree"},"Off-Chain Tree Based Census (Merkle Tree)"),(0,o.kt)("p",null,"An off-chain tree census allows organizations to centrally manage the set of members who can vote on any given process. Organizations can generate the Census Merkle Tree itself with the help of the Census Service, but they are responsible for manually generating a list of voters. ",(0,o.kt)("a",{parentName:"p",href:"https://vocdoni.app"},"Vocdoni.app")," currently provides a CSV-based census mechanism."),(0,o.kt)("p",null,"Technical details for off-chain tree census can be found at ",(0,o.kt)("a",{parentName:"p",href:"/protocol/census/off-chain-tree"},"Off-Chain Tree Census"),"."))}h.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/935f2afb.82666c71.js b/assets/js/935f2afb.82666c71.js new file mode 100644 index 000000000..44d521ac4 --- /dev/null +++ b/assets/js/935f2afb.82666c71.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdemo=self.webpackChunkdemo||[]).push([[53],{1109:e=>{e.exports=JSON.parse('{"pluginId":"default","version":"current","label":"Next","banner":null,"badge":false,"noIndex":false,"className":"docs-version-current","isLast":true,"docsSidebars":{"defaultSidebar":[{"type":"link","label":"Getting Started","href":"/intro","docId":"intro"},{"type":"category","label":"Vocdoni Protocol","collapsible":true,"collapsed":true,"items":[{"type":"category","label":"Anonymous Voting","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"CSP Blind Signatures","href":"/protocol/anonymity/blind-signatures","docId":"protocol/anonymity/blind-signatures"},{"type":"link","label":"On-Chain Census Anonymity","href":"/protocol/anonymity/on-chain","docId":"protocol/anonymity/on-chain"},{"type":"link","label":"Off-Chain Tree ZK Census Proof","href":"/protocol/anonymity/zk-census-proof","docId":"protocol/anonymity/zk-census-proof"}],"href":"/protocol/anonymity/"},{"type":"link","label":"Ballot Protocol","href":"/protocol/ballot-protocol","docId":"protocol/ballot-protocol"},{"type":"category","label":"The Census","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Off-Chain CSP Census","href":"/protocol/census/off-chain-csp","docId":"protocol/census/off-chain-csp"},{"type":"link","label":"Off-Chain Tree Census","href":"/protocol/census/off-chain-tree","docId":"protocol/census/off-chain-tree"},{"type":"category","label":"On-Chain Census","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Census3 Service","href":"/protocol/census/on-chain/census3","docId":"protocol/census/on-chain/census3"}],"href":"/protocol/census/on-chain/"}],"href":"/protocol/census/"},{"type":"category","label":"Data Schemes","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Election Metadata","href":"/protocol/data-schemes/election","docId":"protocol/data-schemes/election"},{"type":"link","label":"Organization Metadata","href":"/protocol/data-schemes/organization","docId":"protocol/data-schemes/organization"},{"type":"link","label":"Vote Data","href":"/protocol/data-schemes/vote","docId":"protocol/data-schemes/vote"}],"href":"/protocol/data-schemes/"}],"href":"/protocol/"},{"type":"category","label":"Vocdoni SDK","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"SDK Tutorial","href":"/sdk/tutorial","docId":"sdk/tutorial"},{"type":"category","label":"Integration Details","collapsible":true,"collapsed":true,"items":[{"type":"category","label":"Census Types","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Off-chain Credential Service Provider","href":"/sdk/integration-details/census-types/off-chain-csp","docId":"sdk/integration-details/census-types/off-chain-csp"},{"type":"link","label":"Off-chain Merkle Tree","href":"/sdk/integration-details/census-types/off-chain-tree","docId":"sdk/integration-details/census-types/off-chain-tree"},{"type":"category","label":"On-chain Token-Based Census","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Complex Census","href":"/sdk/integration-details/census-types/on-chain/complex-census","docId":"sdk/integration-details/census-types/on-chain/complex-census"}],"href":"/sdk/integration-details/census-types/on-chain/"}],"href":"/sdk/integration-details/census-types/"},{"type":"link","label":"Vocdoni Tokens","href":"/sdk/integration-details/vocdoni-tokens","docId":"sdk/integration-details/vocdoni-tokens"},{"type":"category","label":"Voting Types","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Single Choice Voting","href":"/sdk/integration-details/voting-types/single-choice","docId":"sdk/integration-details/voting-types/single-choice"},{"type":"link","label":"Ranked Voting","href":"/sdk/integration-details/voting-types/ranked","docId":"sdk/integration-details/voting-types/ranked"},{"type":"link","label":"Approval Voting (Multiple Choice)","href":"/sdk/integration-details/voting-types/approval","docId":"sdk/integration-details/voting-types/approval"},{"type":"link","label":"Weighted voting","href":"/sdk/integration-details/voting-types/weighted","docId":"sdk/integration-details/voting-types/weighted"},{"type":"link","label":"Quadratic voting","href":"/sdk/integration-details/voting-types/quadratic","docId":"sdk/integration-details/voting-types/quadratic"}],"href":"/sdk/integration-details/voting-types/"}],"href":"/sdk/integration-details/"},{"type":"category","label":"Reference","collapsible":true,"collapsed":true,"items":[{"type":"category","label":"Classes","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Account","href":"/sdk/reference/classes/Account","docId":"sdk/reference/classes/Account"},{"type":"link","label":"AccountAPI","href":"/sdk/reference/classes/AccountAPI","docId":"sdk/reference/classes/AccountAPI"},{"type":"link","label":"AccountService","href":"/sdk/reference/classes/AccountService","docId":"sdk/reference/classes/AccountService"},{"type":"link","label":"AnonymousService","href":"/sdk/reference/classes/AnonymousService","docId":"sdk/reference/classes/AnonymousService"},{"type":"link","label":"AnonymousVote","href":"/sdk/reference/classes/AnonymousVote","docId":"sdk/reference/classes/AnonymousVote"},{"type":"link","label":"ApprovalElection","href":"/sdk/reference/classes/ApprovalElection","docId":"sdk/reference/classes/ApprovalElection"},{"type":"link","label":"ArchivedElection","href":"/sdk/reference/classes/ArchivedElection","docId":"sdk/reference/classes/ArchivedElection"},{"type":"link","label":"BudgetElection","href":"/sdk/reference/classes/BudgetElection","docId":"sdk/reference/classes/BudgetElection"},{"type":"link","label":"Census","href":"/sdk/reference/classes/Census","docId":"sdk/reference/classes/Census"},{"type":"link","label":"Census3CensusAPI","href":"/sdk/reference/classes/Census3CensusAPI","docId":"sdk/reference/classes/Census3CensusAPI"},{"type":"link","label":"Census3ServiceAPI","href":"/sdk/reference/classes/Census3ServiceAPI","docId":"sdk/reference/classes/Census3ServiceAPI"},{"type":"link","label":"Census3StrategyAPI","href":"/sdk/reference/classes/Census3StrategyAPI","docId":"sdk/reference/classes/Census3StrategyAPI"},{"type":"link","label":"Census3TokenAPI","href":"/sdk/reference/classes/Census3TokenAPI","docId":"sdk/reference/classes/Census3TokenAPI"},{"type":"link","label":"CensusAPI","href":"/sdk/reference/classes/CensusAPI","docId":"sdk/reference/classes/CensusAPI"},{"type":"link","label":"CensusService","href":"/sdk/reference/classes/CensusService","docId":"sdk/reference/classes/CensusService"},{"type":"link","label":"ChainAPI","href":"/sdk/reference/classes/ChainAPI","docId":"sdk/reference/classes/ChainAPI"},{"type":"link","label":"ChainService","href":"/sdk/reference/classes/ChainService","docId":"sdk/reference/classes/ChainService"},{"type":"link","label":"CspCensus","href":"/sdk/reference/classes/CspCensus","docId":"sdk/reference/classes/CspCensus"},{"type":"link","label":"CspService","href":"/sdk/reference/classes/CspService","docId":"sdk/reference/classes/CspService"},{"type":"link","label":"CspVote","href":"/sdk/reference/classes/CspVote","docId":"sdk/reference/classes/CspVote"},{"type":"link","label":"Election","href":"/sdk/reference/classes/Election","docId":"sdk/reference/classes/Election"},{"type":"link","label":"ElectionAPI","href":"/sdk/reference/classes/ElectionAPI","docId":"sdk/reference/classes/ElectionAPI"},{"type":"link","label":"ElectionService","href":"/sdk/reference/classes/ElectionService","docId":"sdk/reference/classes/ElectionService"},{"type":"link","label":"FaucetAPI","href":"/sdk/reference/classes/FaucetAPI","docId":"sdk/reference/classes/FaucetAPI"},{"type":"link","label":"FaucetService","href":"/sdk/reference/classes/FaucetService","docId":"sdk/reference/classes/FaucetService"},{"type":"link","label":"FileAPI","href":"/sdk/reference/classes/FileAPI","docId":"sdk/reference/classes/FileAPI"},{"type":"link","label":"FileService","href":"/sdk/reference/classes/FileService","docId":"sdk/reference/classes/FileService"},{"type":"link","label":"InvalidElection","href":"/sdk/reference/classes/InvalidElection","docId":"sdk/reference/classes/InvalidElection"},{"type":"link","label":"MultiChoiceElection","href":"/sdk/reference/classes/MultiChoiceElection","docId":"sdk/reference/classes/MultiChoiceElection"},{"type":"link","label":"OffchainCensus","href":"/sdk/reference/classes/OffchainCensus","docId":"sdk/reference/classes/OffchainCensus"},{"type":"link","label":"PlainCensus","href":"/sdk/reference/classes/PlainCensus","docId":"sdk/reference/classes/PlainCensus"},{"type":"link","label":"PublishedCensus","href":"/sdk/reference/classes/PublishedCensus","docId":"sdk/reference/classes/PublishedCensus"},{"type":"link","label":"PublishedElection","href":"/sdk/reference/classes/PublishedElection","docId":"sdk/reference/classes/PublishedElection"},{"type":"link","label":"Service","href":"/sdk/reference/classes/Service","docId":"sdk/reference/classes/Service"},{"type":"link","label":"TokenCensus","href":"/sdk/reference/classes/TokenCensus","docId":"sdk/reference/classes/TokenCensus"},{"type":"link","label":"UnpublishedElection","href":"/sdk/reference/classes/UnpublishedElection","docId":"sdk/reference/classes/UnpublishedElection"},{"type":"link","label":"VocdoniCensus3Client","href":"/sdk/reference/classes/VocdoniCensus3Client","docId":"sdk/reference/classes/VocdoniCensus3Client"},{"type":"link","label":"VocdoniSDKClient","href":"/sdk/reference/classes/VocdoniSDKClient","docId":"sdk/reference/classes/VocdoniSDKClient"},{"type":"link","label":"Vote","href":"/sdk/reference/classes/Vote","docId":"sdk/reference/classes/Vote"},{"type":"link","label":"VoteAPI","href":"/sdk/reference/classes/VoteAPI","docId":"sdk/reference/classes/VoteAPI"},{"type":"link","label":"VoteService","href":"/sdk/reference/classes/VoteService","docId":"sdk/reference/classes/VoteService"},{"type":"link","label":"WalletAPI","href":"/sdk/reference/classes/WalletAPI","docId":"sdk/reference/classes/WalletAPI"},{"type":"link","label":"WeightedCensus","href":"/sdk/reference/classes/WeightedCensus","docId":"sdk/reference/classes/WeightedCensus"}]},{"type":"category","label":"Enums","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"CensusOrigin","href":"/sdk/reference/enums/CensusOrigin","docId":"sdk/reference/enums/CensusOrigin"},{"type":"link","label":"CensusType","href":"/sdk/reference/enums/CensusType","docId":"sdk/reference/enums/CensusType"},{"type":"link","label":"CensusTypeEnum","href":"/sdk/reference/enums/CensusTypeEnum","docId":"sdk/reference/enums/CensusTypeEnum"},{"type":"link","label":"CspProofType","href":"/sdk/reference/enums/CspProofType","docId":"sdk/reference/enums/CspProofType"},{"type":"link","label":"ElectionCreationSteps","href":"/sdk/reference/enums/ElectionCreationSteps","docId":"sdk/reference/enums/ElectionCreationSteps"},{"type":"link","label":"ElectionResultsTypeNames","href":"/sdk/reference/enums/ElectionResultsTypeNames","docId":"sdk/reference/enums/ElectionResultsTypeNames"},{"type":"link","label":"ElectionStatus","href":"/sdk/reference/enums/ElectionStatus","docId":"sdk/reference/enums/ElectionStatus"},{"type":"link","label":"ElectionStatusReady","href":"/sdk/reference/enums/ElectionStatusReady","docId":"sdk/reference/enums/ElectionStatusReady"},{"type":"link","label":"EnvOptions","href":"/sdk/reference/enums/EnvOptions","docId":"sdk/reference/enums/EnvOptions"},{"type":"link","label":"TransactionType","href":"/sdk/reference/enums/TransactionType","docId":"sdk/reference/enums/TransactionType"},{"type":"link","label":"TxType","href":"/sdk/reference/enums/TxType","docId":"sdk/reference/enums/TxType"},{"type":"link","label":"VoteSteps","href":"/sdk/reference/enums/VoteSteps","docId":"sdk/reference/enums/VoteSteps"}]},{"type":"category","label":"Interfaces","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"AccountMetadata","href":"/sdk/reference/interfaces/AccountMetadata","docId":"sdk/reference/interfaces/AccountMetadata"},{"type":"link","label":"AdminTx","href":"/sdk/reference/interfaces/AdminTx","docId":"sdk/reference/interfaces/AdminTx"},{"type":"link","label":"CircuitInputs","href":"/sdk/reference/interfaces/CircuitInputs","docId":"sdk/reference/interfaces/CircuitInputs"},{"type":"link","label":"CollectFaucetTx","href":"/sdk/reference/interfaces/CollectFaucetTx","docId":"sdk/reference/interfaces/CollectFaucetTx"},{"type":"link","label":"ElectionMetadata","href":"/sdk/reference/interfaces/ElectionMetadata","docId":"sdk/reference/interfaces/ElectionMetadata"},{"type":"link","label":"FetchElectionsParameters","href":"/sdk/reference/interfaces/FetchElectionsParameters","docId":"sdk/reference/interfaces/FetchElectionsParameters"},{"type":"link","label":"IAccount","href":"/sdk/reference/interfaces/IAccount","docId":"sdk/reference/interfaces/IAccount"},{"type":"link","label":"IAccountTransfersCountResponse","href":"/sdk/reference/interfaces/IAccountTransfersCountResponse","docId":"sdk/reference/interfaces/IAccountTransfersCountResponse"},{"type":"link","label":"IAccountsCountResponse","href":"/sdk/reference/interfaces/IAccountsCountResponse","docId":"sdk/reference/interfaces/IAccountsCountResponse"},{"type":"link","label":"IAccountsListResponse","href":"/sdk/reference/interfaces/IAccountsListResponse","docId":"sdk/reference/interfaces/IAccountsListResponse"},{"type":"link","label":"IApprovalElectionParameters","href":"/sdk/reference/interfaces/IApprovalElectionParameters","docId":"sdk/reference/interfaces/IApprovalElectionParameters"},{"type":"link","label":"IBlockTransactionsResponse","href":"/sdk/reference/interfaces/IBlockTransactionsResponse","docId":"sdk/reference/interfaces/IBlockTransactionsResponse"},{"type":"link","label":"IBudgetElectionParametersInfo","href":"/sdk/reference/interfaces/IBudgetElectionParametersInfo","docId":"sdk/reference/interfaces/IBudgetElectionParametersInfo"},{"type":"link","label":"IBudgetElectionParametersWithBudget","href":"/sdk/reference/interfaces/IBudgetElectionParametersWithBudget","docId":"sdk/reference/interfaces/IBudgetElectionParametersWithBudget"},{"type":"link","label":"IBudgetElectionParametersWithCensusWeight","href":"/sdk/reference/interfaces/IBudgetElectionParametersWithCensusWeight","docId":"sdk/reference/interfaces/IBudgetElectionParametersWithCensusWeight"},{"type":"link","label":"ICensus","href":"/sdk/reference/interfaces/ICensus","docId":"sdk/reference/interfaces/ICensus"},{"type":"link","label":"ICensus3CensusListResponse","href":"/sdk/reference/interfaces/ICensus3CensusListResponse","docId":"sdk/reference/interfaces/ICensus3CensusListResponse"},{"type":"link","label":"ICensus3CensusQueueResponse","href":"/sdk/reference/interfaces/ICensus3CensusQueueResponse","docId":"sdk/reference/interfaces/ICensus3CensusQueueResponse"},{"type":"link","label":"ICensus3CensusResponse","href":"/sdk/reference/interfaces/ICensus3CensusResponse","docId":"sdk/reference/interfaces/ICensus3CensusResponse"},{"type":"link","label":"ICensus3ServiceInfoResponse","href":"/sdk/reference/interfaces/ICensus3ServiceInfoResponse","docId":"sdk/reference/interfaces/ICensus3ServiceInfoResponse"},{"type":"link","label":"ICensus3StrategiesListResponse","href":"/sdk/reference/interfaces/ICensus3StrategiesListResponse","docId":"sdk/reference/interfaces/ICensus3StrategiesListResponse"},{"type":"link","label":"ICensus3StrategiesListResponsePaginated","href":"/sdk/reference/interfaces/ICensus3StrategiesListResponsePaginated","docId":"sdk/reference/interfaces/ICensus3StrategiesListResponsePaginated"},{"type":"link","label":"ICensus3StrategiesOperator","href":"/sdk/reference/interfaces/ICensus3StrategiesOperator","docId":"sdk/reference/interfaces/ICensus3StrategiesOperator"},{"type":"link","label":"ICensus3StrategiesOperatorsResponse","href":"/sdk/reference/interfaces/ICensus3StrategiesOperatorsResponse","docId":"sdk/reference/interfaces/ICensus3StrategiesOperatorsResponse"},{"type":"link","label":"ICensus3StrategyCreateResponse","href":"/sdk/reference/interfaces/ICensus3StrategyCreateResponse","docId":"sdk/reference/interfaces/ICensus3StrategyCreateResponse"},{"type":"link","label":"ICensus3StrategyEstimationQueueResponse","href":"/sdk/reference/interfaces/ICensus3StrategyEstimationQueueResponse","docId":"sdk/reference/interfaces/ICensus3StrategyEstimationQueueResponse"},{"type":"link","label":"ICensus3StrategyHoldersResponse","href":"/sdk/reference/interfaces/ICensus3StrategyHoldersResponse","docId":"sdk/reference/interfaces/ICensus3StrategyHoldersResponse"},{"type":"link","label":"ICensus3StrategyHoldersResponsePaginated","href":"/sdk/reference/interfaces/ICensus3StrategyHoldersResponsePaginated","docId":"sdk/reference/interfaces/ICensus3StrategyHoldersResponsePaginated"},{"type":"link","label":"ICensus3StrategyImportQueueResponse","href":"/sdk/reference/interfaces/ICensus3StrategyImportQueueResponse","docId":"sdk/reference/interfaces/ICensus3StrategyImportQueueResponse"},{"type":"link","label":"ICensus3StrategyToken","href":"/sdk/reference/interfaces/ICensus3StrategyToken","docId":"sdk/reference/interfaces/ICensus3StrategyToken"},{"type":"link","label":"ICensus3SupportedChain","href":"/sdk/reference/interfaces/ICensus3SupportedChain","docId":"sdk/reference/interfaces/ICensus3SupportedChain"},{"type":"link","label":"ICensus3TokenHolderResponse","href":"/sdk/reference/interfaces/ICensus3TokenHolderResponse","docId":"sdk/reference/interfaces/ICensus3TokenHolderResponse"},{"type":"link","label":"ICensus3TokenListResponse","href":"/sdk/reference/interfaces/ICensus3TokenListResponse","docId":"sdk/reference/interfaces/ICensus3TokenListResponse"},{"type":"link","label":"ICensus3TokenListResponsePaginated","href":"/sdk/reference/interfaces/ICensus3TokenListResponsePaginated","docId":"sdk/reference/interfaces/ICensus3TokenListResponsePaginated"},{"type":"link","label":"ICensus3TokenTypesResponse","href":"/sdk/reference/interfaces/ICensus3TokenTypesResponse","docId":"sdk/reference/interfaces/ICensus3TokenTypesResponse"},{"type":"link","label":"ICensus3ValidatePredicateChild","href":"/sdk/reference/interfaces/ICensus3ValidatePredicateChild","docId":"sdk/reference/interfaces/ICensus3ValidatePredicateChild"},{"type":"link","label":"ICensus3ValidatePredicateResponse","href":"/sdk/reference/interfaces/ICensus3ValidatePredicateResponse","docId":"sdk/reference/interfaces/ICensus3ValidatePredicateResponse"},{"type":"link","label":"ICensus3ValidatePredicateToken","href":"/sdk/reference/interfaces/ICensus3ValidatePredicateToken","docId":"sdk/reference/interfaces/ICensus3ValidatePredicateToken"},{"type":"link","label":"ICensusExportResponse","href":"/sdk/reference/interfaces/ICensusExportResponse","docId":"sdk/reference/interfaces/ICensusExportResponse"},{"type":"link","label":"ICensusImportResponse","href":"/sdk/reference/interfaces/ICensusImportResponse","docId":"sdk/reference/interfaces/ICensusImportResponse"},{"type":"link","label":"ICensusParticipant","href":"/sdk/reference/interfaces/ICensusParticipant","docId":"sdk/reference/interfaces/ICensusParticipant"},{"type":"link","label":"ICensusProofResponse","href":"/sdk/reference/interfaces/ICensusProofResponse","docId":"sdk/reference/interfaces/ICensusProofResponse"},{"type":"link","label":"ICensusPublishResponse","href":"/sdk/reference/interfaces/ICensusPublishResponse","docId":"sdk/reference/interfaces/ICensusPublishResponse"},{"type":"link","label":"IChainBlockInfoResponse","href":"/sdk/reference/interfaces/IChainBlockInfoResponse","docId":"sdk/reference/interfaces/IChainBlockInfoResponse"},{"type":"link","label":"IChainGetCircuitResponse","href":"/sdk/reference/interfaces/IChainGetCircuitResponse","docId":"sdk/reference/interfaces/IChainGetCircuitResponse"},{"type":"link","label":"IChainGetCostsResponse","href":"/sdk/reference/interfaces/IChainGetCostsResponse","docId":"sdk/reference/interfaces/IChainGetCostsResponse"},{"type":"link","label":"IChainGetInfoResponse","href":"/sdk/reference/interfaces/IChainGetInfoResponse","docId":"sdk/reference/interfaces/IChainGetInfoResponse"},{"type":"link","label":"IChainOrganizationCountResponse","href":"/sdk/reference/interfaces/IChainOrganizationCountResponse","docId":"sdk/reference/interfaces/IChainOrganizationCountResponse"},{"type":"link","label":"IChainOrganizationListResponse","href":"/sdk/reference/interfaces/IChainOrganizationListResponse","docId":"sdk/reference/interfaces/IChainOrganizationListResponse"},{"type":"link","label":"IChainOrganizationResponse","href":"/sdk/reference/interfaces/IChainOrganizationResponse","docId":"sdk/reference/interfaces/IChainOrganizationResponse"},{"type":"link","label":"IChainSubmitTxResponse","href":"/sdk/reference/interfaces/IChainSubmitTxResponse","docId":"sdk/reference/interfaces/IChainSubmitTxResponse"},{"type":"link","label":"IChainTxCountResponse","href":"/sdk/reference/interfaces/IChainTxCountResponse","docId":"sdk/reference/interfaces/IChainTxCountResponse"},{"type":"link","label":"IChainTxListResponse","href":"/sdk/reference/interfaces/IChainTxListResponse","docId":"sdk/reference/interfaces/IChainTxListResponse"},{"type":"link","label":"IChainTxReference","href":"/sdk/reference/interfaces/IChainTxReference","docId":"sdk/reference/interfaces/IChainTxReference"},{"type":"link","label":"IChainValidator","href":"/sdk/reference/interfaces/IChainValidator","docId":"sdk/reference/interfaces/IChainValidator"},{"type":"link","label":"IChainValidatorsListResponse","href":"/sdk/reference/interfaces/IChainValidatorsListResponse","docId":"sdk/reference/interfaces/IChainValidatorsListResponse"},{"type":"link","label":"IChoice","href":"/sdk/reference/interfaces/IChoice","docId":"sdk/reference/interfaces/IChoice"},{"type":"link","label":"IElectionCreateResponse","href":"/sdk/reference/interfaces/IElectionCreateResponse","docId":"sdk/reference/interfaces/IElectionCreateResponse"},{"type":"link","label":"IElectionInfoResponse","href":"/sdk/reference/interfaces/IElectionInfoResponse","docId":"sdk/reference/interfaces/IElectionInfoResponse"},{"type":"link","label":"IElectionKeysResponse","href":"/sdk/reference/interfaces/IElectionKeysResponse","docId":"sdk/reference/interfaces/IElectionKeysResponse"},{"type":"link","label":"IElectionListFilter","href":"/sdk/reference/interfaces/IElectionListFilter","docId":"sdk/reference/interfaces/IElectionListFilter"},{"type":"link","label":"IElectionListResponse","href":"/sdk/reference/interfaces/IElectionListResponse","docId":"sdk/reference/interfaces/IElectionListResponse"},{"type":"link","label":"IElectionMode","href":"/sdk/reference/interfaces/IElectionMode","docId":"sdk/reference/interfaces/IElectionMode"},{"type":"link","label":"IElectionNextIdResponse","href":"/sdk/reference/interfaces/IElectionNextIdResponse","docId":"sdk/reference/interfaces/IElectionNextIdResponse"},{"type":"link","label":"IElectionParameters","href":"/sdk/reference/interfaces/IElectionParameters","docId":"sdk/reference/interfaces/IElectionParameters"},{"type":"link","label":"IElectionSummary","href":"/sdk/reference/interfaces/IElectionSummary","docId":"sdk/reference/interfaces/IElectionSummary"},{"type":"link","label":"IElectionType","href":"/sdk/reference/interfaces/IElectionType","docId":"sdk/reference/interfaces/IElectionType"},{"type":"link","label":"IElectionVote","href":"/sdk/reference/interfaces/IElectionVote","docId":"sdk/reference/interfaces/IElectionVote"},{"type":"link","label":"IElectionVoteListResponse","href":"/sdk/reference/interfaces/IElectionVoteListResponse","docId":"sdk/reference/interfaces/IElectionVoteListResponse"},{"type":"link","label":"IEncryptionKey","href":"/sdk/reference/interfaces/IEncryptionKey","docId":"sdk/reference/interfaces/IEncryptionKey"},{"type":"link","label":"IInvalidElectionParameters","href":"/sdk/reference/interfaces/IInvalidElectionParameters","docId":"sdk/reference/interfaces/IInvalidElectionParameters"},{"type":"link","label":"IMultiChoiceElectionParameters","href":"/sdk/reference/interfaces/IMultiChoiceElectionParameters","docId":"sdk/reference/interfaces/IMultiChoiceElectionParameters"},{"type":"link","label":"IPublishedElectionParameters","href":"/sdk/reference/interfaces/IPublishedElectionParameters","docId":"sdk/reference/interfaces/IPublishedElectionParameters"},{"type":"link","label":"IQuestion","href":"/sdk/reference/interfaces/IQuestion","docId":"sdk/reference/interfaces/IQuestion"},{"type":"link","label":"ITallyMode","href":"/sdk/reference/interfaces/ITallyMode","docId":"sdk/reference/interfaces/ITallyMode"},{"type":"link","label":"IVoteInfoResponse","href":"/sdk/reference/interfaces/IVoteInfoResponse","docId":"sdk/reference/interfaces/IVoteInfoResponse"},{"type":"link","label":"IVoteMode","href":"/sdk/reference/interfaces/IVoteMode","docId":"sdk/reference/interfaces/IVoteMode"},{"type":"link","label":"IVoteSubmitResponse","href":"/sdk/reference/interfaces/IVoteSubmitResponse","docId":"sdk/reference/interfaces/IVoteSubmitResponse"},{"type":"link","label":"IVoteType","href":"/sdk/reference/interfaces/IVoteType","docId":"sdk/reference/interfaces/IVoteType"},{"type":"link","label":"MintTokensTx","href":"/sdk/reference/interfaces/MintTokensTx","docId":"sdk/reference/interfaces/MintTokensTx"},{"type":"link","label":"NewProcessTx","href":"/sdk/reference/interfaces/NewProcessTx","docId":"sdk/reference/interfaces/NewProcessTx"},{"type":"link","label":"Process","href":"/sdk/reference/interfaces/Process","docId":"sdk/reference/interfaces/Process"},{"type":"link","label":"Proof","href":"/sdk/reference/interfaces/Proof","docId":"sdk/reference/interfaces/Proof"},{"type":"link","label":"RegisterKeyTx","href":"/sdk/reference/interfaces/RegisterKeyTx","docId":"sdk/reference/interfaces/RegisterKeyTx"},{"type":"link","label":"SendTokensTx","href":"/sdk/reference/interfaces/SendTokensTx","docId":"sdk/reference/interfaces/SendTokensTx"},{"type":"link","label":"ServiceProperties","href":"/sdk/reference/interfaces/ServiceProperties","docId":"sdk/reference/interfaces/ServiceProperties"},{"type":"link","label":"SetAccountTx","href":"/sdk/reference/interfaces/SetAccountTx","docId":"sdk/reference/interfaces/SetAccountTx"},{"type":"link","label":"SetProcessTx","href":"/sdk/reference/interfaces/SetProcessTx","docId":"sdk/reference/interfaces/SetProcessTx"},{"type":"link","label":"SetTransactionCostsTx","href":"/sdk/reference/interfaces/SetTransactionCostsTx","docId":"sdk/reference/interfaces/SetTransactionCostsTx"},{"type":"link","label":"Tx","href":"/sdk/reference/interfaces/Tx","docId":"sdk/reference/interfaces/Tx"},{"type":"link","label":"VoteEnvelope","href":"/sdk/reference/interfaces/VoteEnvelope","docId":"sdk/reference/interfaces/VoteEnvelope"}]},{"type":"link","label":"Modules","href":"/sdk/reference/modules","docId":"sdk/reference/modules"},{"type":"link","label":"Changelog","href":"/sdk/reference/changelog","docId":"sdk/reference/changelog"}]}],"href":"/sdk/"},{"type":"category","label":"UI Components","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Organization components","href":"/ui-components/Organization","docId":"ui-components/Organization"},{"type":"link","label":"Election components","href":"/ui-components/Election","docId":"ui-components/Election"}],"href":"/ui-components/"},{"type":"category","label":"Vocdoni API","items":[{"type":"category","label":"Chain","items":[{"type":"link","label":"Estimate block to date","href":"/vocdoni-api/estimate-block-to-date","className":"api-method get","docId":"vocdoni-api/estimate-block-to-date"},{"type":"link","label":"Get block (by hash)","href":"/vocdoni-api/get-block-by-hash","className":"api-method get","docId":"vocdoni-api/get-block-by-hash"},{"type":"link","label":"Get block (by height)","href":"/vocdoni-api/get-block-by-height","className":"api-method get","docId":"vocdoni-api/get-block-by-height"},{"type":"link","label":"Transactions in a block","href":"/vocdoni-api/transactions-in-a-block","className":"api-method get","docId":"vocdoni-api/transactions-in-a-block"},{"type":"link","label":"Estimate date to block","href":"/vocdoni-api/estimate-date-to-block","className":"api-method get","docId":"vocdoni-api/estimate-date-to-block"},{"type":"link","label":"Vochain information","href":"/vocdoni-api/vochain-information","className":"api-method get","docId":"vocdoni-api/vochain-information"},{"type":"link","label":"Circuit info","href":"/vocdoni-api/circuit-info","className":"api-method get","docId":"vocdoni-api/circuit-info"},{"type":"link","label":"Price factors information","href":"/vocdoni-api/price-factors-information","className":"api-method get","docId":"vocdoni-api/price-factors-information"},{"type":"link","label":"Count organizations","href":"/vocdoni-api/count-organizations","className":"api-method get","docId":"vocdoni-api/count-organizations"},{"type":"link","label":"List organizations (filtered)","href":"/vocdoni-api/list-organizations-filtered","className":"api-method post","docId":"vocdoni-api/list-organizations-filtered"},{"type":"link","label":"List organizations","href":"/vocdoni-api/list-organizations","className":"api-method get","docId":"vocdoni-api/list-organizations"},{"type":"link","label":"Submit transaction","href":"/vocdoni-api/submit-transaction","className":"api-method post","docId":"vocdoni-api/submit-transaction"},{"type":"link","label":"Transaction costs","href":"/vocdoni-api/transaction-costs","className":"api-method get","docId":"vocdoni-api/transaction-costs"},{"type":"link","label":"Transactions count","href":"/vocdoni-api/transactions-count","className":"api-method get","docId":"vocdoni-api/transactions-count"},{"type":"link","label":"List Transactions","href":"/vocdoni-api/list-transactions","className":"api-method get","docId":"vocdoni-api/list-transactions"},{"type":"link","label":"Transaction by index","href":"/vocdoni-api/transaction-by-index","className":"api-method get","docId":"vocdoni-api/transaction-by-index"},{"type":"link","label":"Transaction by hash","href":"/vocdoni-api/transaction-by-hash","className":"api-method get","docId":"vocdoni-api/transaction-by-hash"},{"type":"link","label":"Transaction by block height and index","href":"/vocdoni-api/transaction-by-block-height-and-index","className":"api-method get","docId":"vocdoni-api/transaction-by-block-height-and-index"},{"type":"link","label":"List validators","href":"/vocdoni-api/list-validators","className":"api-method get","docId":"vocdoni-api/list-validators"}],"collapsed":true,"collapsible":true,"href":"/vocdoni-api/chain"},{"type":"category","label":"Accounts","items":[{"type":"link","label":"Set account","href":"/vocdoni-api/set-account","className":"api-method post","docId":"vocdoni-api/set-account"},{"type":"link","label":"Total number of accounts","href":"/vocdoni-api/total-number-of-accounts","className":"api-method get","docId":"vocdoni-api/total-number-of-accounts"},{"type":"link","label":"List of the existing accounts","href":"/vocdoni-api/list-of-the-existing-accounts","className":"api-method get","docId":"vocdoni-api/list-of-the-existing-accounts"},{"type":"link","label":"List account token fees","href":"/vocdoni-api/list-account-token-fees","className":"api-method get","docId":"vocdoni-api/list-account-token-fees"},{"type":"link","label":"Total number of sent and received transactions","href":"/vocdoni-api/total-number-of-sent-and-received-transactions","className":"api-method get","docId":"vocdoni-api/total-number-of-sent-and-received-transactions"},{"type":"link","label":"List account received and sent token transfers","href":"/vocdoni-api/list-account-received-and-sent-token-transfers","className":"api-method get","docId":"vocdoni-api/list-account-received-and-sent-token-transfers"},{"type":"link","label":"Get account","href":"/vocdoni-api/get-account","className":"api-method get","docId":"vocdoni-api/get-account"},{"type":"link","label":"Get account","href":"/vocdoni-api/get-account","className":"api-method get","docId":"vocdoni-api/get-account"},{"type":"link","label":"Count organization elections","href":"/vocdoni-api/count-organization-elections","className":"api-method get","docId":"vocdoni-api/count-organization-elections"},{"type":"link","label":"List organization elections","href":"/vocdoni-api/list-organization-elections","className":"api-method get","docId":"vocdoni-api/list-organization-elections"},{"type":"link","label":"List organization elections by status","href":"/vocdoni-api/list-organization-elections-by-status","className":"api-method get","docId":"vocdoni-api/list-organization-elections-by-status"},{"type":"link","label":"List all token fees","href":"/vocdoni-api/list-all-token-fees","className":"api-method get","docId":"vocdoni-api/list-all-token-fees"},{"type":"link","label":"List all token fees by reference","href":"/vocdoni-api/list-all-token-fees-by-reference","className":"api-method get","docId":"vocdoni-api/list-all-token-fees-by-reference"},{"type":"link","label":"List all token fees by type","href":"/vocdoni-api/list-all-token-fees-by-type","className":"api-method get","docId":"vocdoni-api/list-all-token-fees-by-type"}],"collapsed":true,"collapsible":true,"href":"/vocdoni-api/accounts"},{"type":"category","label":"Elections","items":[{"type":"link","label":"Create election","href":"/vocdoni-api/create-election","className":"api-method post","docId":"vocdoni-api/create-election"},{"type":"link","label":"List elections (filtered)","href":"/vocdoni-api/list-elections-filtered","className":"api-method post","docId":"vocdoni-api/list-elections-filtered"},{"type":"link","label":"Get next election ID","href":"/vocdoni-api/get-next-election-id","className":"api-method post","docId":"vocdoni-api/get-next-election-id"},{"type":"link","label":"List elections","href":"/vocdoni-api/list-elections","className":"api-method get","docId":"vocdoni-api/list-elections"},{"type":"link","label":"Compute election price","href":"/vocdoni-api/compute-election-price","className":"api-method post","docId":"vocdoni-api/compute-election-price"},{"type":"link","label":"Election information","href":"/vocdoni-api/election-information","className":"api-method get","docId":"vocdoni-api/election-information"},{"type":"link","label":"List encryption keys","href":"/vocdoni-api/list-encryption-keys","className":"api-method get","docId":"vocdoni-api/list-encryption-keys"},{"type":"link","label":"Election results","href":"/vocdoni-api/election-results","className":"api-method get","docId":"vocdoni-api/election-results"},{"type":"link","label":"Count election votes","href":"/vocdoni-api/count-election-votes","className":"api-method get","docId":"vocdoni-api/count-election-votes"},{"type":"link","label":"List election votes","href":"/vocdoni-api/list-election-votes","className":"api-method get","docId":"vocdoni-api/list-election-votes"},{"type":"link","label":"Compute IPFS CIDv1 of file","href":"/vocdoni-api/compute-ipfs-ci-dv-1-of-file","className":"api-method post","docId":"vocdoni-api/compute-ipfs-ci-dv-1-of-file"}],"collapsed":true,"collapsible":true,"href":"/vocdoni-api/elections"},{"type":"category","label":"Censuses","items":[{"type":"link","label":"Export census database","href":"/vocdoni-api/export-census-database","className":"api-method get","docId":"vocdoni-api/export-census-database"},{"type":"link","label":"Import census database","href":"/vocdoni-api/import-census-database","className":"api-method post","docId":"vocdoni-api/import-census-database"},{"type":"link","label":"List all census references","href":"/vocdoni-api/list-all-census-references","className":"api-method get","docId":"vocdoni-api/list-all-census-references"},{"type":"link","label":"Delete census","href":"/vocdoni-api/delete-census","className":"api-method delete","docId":"vocdoni-api/delete-census"},{"type":"link","label":"Export census","href":"/vocdoni-api/export-census","className":"api-method get","docId":"vocdoni-api/export-census"},{"type":"link","label":"Import census","href":"/vocdoni-api/import-census","className":"api-method post","docId":"vocdoni-api/import-census"},{"type":"link","label":"Add participants to census","href":"/vocdoni-api/add-participants-to-census","className":"api-method post","docId":"vocdoni-api/add-participants-to-census"},{"type":"link","label":"Prove key to census","href":"/vocdoni-api/prove-key-to-census","className":"api-method get","docId":"vocdoni-api/prove-key-to-census"},{"type":"link","label":"Publish census","href":"/vocdoni-api/publish-census","className":"api-method post","docId":"vocdoni-api/publish-census"},{"type":"link","label":"Publish census at root","href":"/vocdoni-api/publish-census-at-root","className":"api-method post","docId":"vocdoni-api/publish-census-at-root"},{"type":"link","label":"Census Merkle Root","href":"/vocdoni-api/census-merkle-root","className":"api-method get","docId":"vocdoni-api/census-merkle-root"},{"type":"link","label":"Census size","href":"/vocdoni-api/census-size","className":"api-method get","docId":"vocdoni-api/census-size"},{"type":"link","label":"Get type of census","href":"/vocdoni-api/get-type-of-census","className":"api-method get","docId":"vocdoni-api/get-type-of-census"},{"type":"link","label":"Verify merkle proof","href":"/vocdoni-api/verify-merkle-proof","className":"api-method post","docId":"vocdoni-api/verify-merkle-proof"},{"type":"link","label":"Census total weight","href":"/vocdoni-api/census-total-weight","className":"api-method get","docId":"vocdoni-api/census-total-weight"},{"type":"link","label":"Create a new census","href":"/vocdoni-api/create-a-new-census","className":"api-method post","docId":"vocdoni-api/create-a-new-census"}],"collapsed":true,"collapsible":true,"href":"/vocdoni-api/censuses"},{"type":"category","label":"Votes","items":[{"type":"link","label":"Submit a vote","href":"/vocdoni-api/submit-a-vote","className":"api-method post","docId":"vocdoni-api/submit-a-vote"},{"type":"link","label":"Verify vote","href":"/vocdoni-api/verify-vote","className":"api-method get","docId":"vocdoni-api/verify-vote"},{"type":"link","label":"Get vote","href":"/vocdoni-api/get-vote","className":"api-method get","docId":"vocdoni-api/get-vote"}],"collapsed":true,"collapsible":true,"href":"/vocdoni-api/votes"},{"type":"category","label":"Wallet","items":[{"type":"link","label":"Add account","href":"/vocdoni-api/add-account","className":"api-method post","docId":"vocdoni-api/add-account"},{"type":"link","label":"Set wallet account","href":"/vocdoni-api/set-wallet-account","className":"api-method get","docId":"vocdoni-api/set-wallet-account"},{"type":"link","label":"Create election for wallet","href":"/vocdoni-api/create-election-for-wallet","className":"api-method post","docId":"vocdoni-api/create-election-for-wallet"},{"type":"link","label":"Transfer tokens","href":"/vocdoni-api/transfer-tokens","className":"api-method get","docId":"vocdoni-api/transfer-tokens"}],"collapsed":true,"collapsible":true,"href":"/vocdoni-api/wallet"},{"type":"category","label":"SIK","items":[{"type":"link","label":"List of valid SIK roots","href":"/vocdoni-api/list-of-valid-sik-roots","className":"api-method get","docId":"vocdoni-api/list-of-valid-sik-roots"},{"type":"link","label":"List of valid SIK roots","href":"/vocdoni-api/list-of-valid-sik-roots","className":"api-method get","docId":"vocdoni-api/list-of-valid-sik-roots"},{"type":"link","label":"Returns if the address provided has a valid SIK","href":"/vocdoni-api/returns-if-the-address-provided-has-a-valid-sik","className":"api-method get","docId":"vocdoni-api/returns-if-the-address-provided-has-a-valid-sik"}],"collapsed":true,"collapsible":true,"href":"/vocdoni-api/sik"},{"type":"category","label":"Indexer","items":[{"type":"link","label":"Exports the indexer database","href":"/vocdoni-api/exports-the-indexer-database","className":"api-method get","docId":"vocdoni-api/exports-the-indexer-database"}],"collapsed":true,"collapsible":true}],"collapsed":true,"collapsible":true,"href":"/vocdoni-api/vocdoni-api"}]},"docs":{"intro":{"id":"intro","title":"Getting Started","description":"Vocdoni is the most open, secure, and universally verifiable voting protocol, used by hundreds of organizations worldwide. The core of our stack is a powerful decentralized backend, including blockchain, P2P gateway, and distributed file storage components.","sidebar":"defaultSidebar"},"protocol/anonymity/anonymity":{"id":"protocol/anonymity/anonymity","title":"Anonymous Voting","description":"- Anonymous voting is a type of voting process where the users can vote without revealing their identity, by proving that they are accepted as valid voters. Currently we have 2 types of anonymous voting schemes:","sidebar":"defaultSidebar"},"protocol/anonymity/blind-signatures":{"id":"protocol/anonymity/blind-signatures","title":"CSP Blind Signatures","description":"The current approach by Vocdoni regarding determining the eligibility of a potential voter is to use a Census Merkle Tree. All voter public keys must be known in advance and aggregated together into a hash tree to compute a Merkle root. Then each voter needs to fetch their own Merkle proof to demonstrate their eligibility on a public ledger. The Merkle proof can be anonymized using a zk-SNARK so that the public ledger will verify the SNARK proof instead.","sidebar":"defaultSidebar"},"protocol/anonymity/on-chain":{"id":"protocol/anonymity/on-chain","title":"On-Chain Census Anonymity","description":"On-chain cenuses created with the Census3 Service derive their contents from a public set of holders of a given token (or set of tokens) on the Ethereum blockchain. This information is turned into a census by generating a Merkle Proof on that set of data. This Merkle Proof is similar to that used for a typical off-chain tree census, and the same sort of ZK Census Proof can be used to compute voter validation anonymously.","sidebar":"defaultSidebar"},"protocol/anonymity/zk-census-proof":{"id":"protocol/anonymity/zk-census-proof","title":"Off-Chain Tree ZK Census Proof","description":"This document is divided in two sections:","sidebar":"defaultSidebar"},"protocol/ballot-protocol":{"id":"protocol/ballot-protocol","title":"Ballot Protocol","description":"Ballot protocol","sidebar":"defaultSidebar"},"protocol/census/census":{"id":"protocol/census/census","title":"The Census","description":"In Vocdoni, a census of identities can be represented in one of three ways. For Ethereum-based processes, in which eligible voters are represented by Ethereum addresses holding a specific token, an on-chain] (ERC-20) census is used. In cases where a central authority wants to manually validate each voter at the time of voting, [off-chain credential service provider is used. For all other voting processes (organizations that are not represented as DAOs), an off-chain tree census is used.","sidebar":"defaultSidebar"},"protocol/census/off-chain-csp":{"id":"protocol/census/off-chain-csp","title":"Off-Chain CSP Census","description":"A census approach based on Credential Service Providers (CSPs) allows organizations to validate users manually and based off of any arbitrary criteria. Rather than a static census published before-hand, CSP census allows each user to be evaluated for voting eligibility individually, throughout the duration of the voting process.","sidebar":"defaultSidebar"},"protocol/census/off-chain-tree":{"id":"protocol/census/off-chain-tree","title":"Off-Chain Tree Census","description":"The census itself is represented as a binary Merkle Tree, where the leaves of the tree contain the public keys of all eligible voters, hashed.","sidebar":"defaultSidebar"},"protocol/census/on-chain/census3":{"id":"protocol/census/on-chain/census3","title":"Census3 Service","description":"The Census3 Service is an API service which provides an easy way to create censuses for elections with holders of a single token or a combination of them. This is a wrapper of the on-chain census design and enables integrators to use on-chain censuses without manually registering tokens or generating storage proofs.","sidebar":"defaultSidebar"},"protocol/census/on-chain/on-chain":{"id":"protocol/census/on-chain/on-chain","title":"On-Chain Census","description":"An on-chain census is one which is dependent on the status of the Ethereum blockchain at a given point in time. This census type enables the set of eligible voters to be derived from the token holder balances for some ERC-20 Ethereum token, weighted according to token balances. The ideal use-case for such a census is an organization whose members are represented as holders of some token, such as a DAO.","sidebar":"defaultSidebar"},"protocol/data-schemes/data-schemes":{"id":"protocol/data-schemes/data-schemes","title":"Data Schemes","description":"When it comes to voting processes, there are two main types of data storage at the protocol-level: protocol-level data stored on the Vochain and readable metadata like election descriptions stored on IPFS.","sidebar":"defaultSidebar"},"protocol/data-schemes/election":{"id":"protocol/data-schemes/election","title":"Election Metadata","description":"Election metadata provides the human-readable data associated with an election.","sidebar":"defaultSidebar"},"protocol/data-schemes/organization":{"id":"protocol/data-schemes/organization","title":"Organization Metadata","description":"The metadata of an organization provides human readable content, featuring names, descriptions, images, the list of available processes and more.","sidebar":"defaultSidebar"},"protocol/data-schemes/vote":{"id":"protocol/data-schemes/vote","title":"Vote Data","description":"Vote Envelope","sidebar":"defaultSidebar"},"protocol/index":{"id":"protocol/index","title":"Vocdoni Protocol","description":"1. Introduction","sidebar":"defaultSidebar"},"sdk/index":{"id":"sdk/index","title":"Vocdoni SDK","description":"The Vocdoni SDK is a convenient way to interact with the Vocdoni Protocol through the API, allowing anyone to create, manage and participate in voting processes and collective decision-making. The SDK is the primary mode by which developers should interface with Vocdoni - if you think the SDK is missing functionality you need, please get in touch.","sidebar":"defaultSidebar"},"sdk/integration-details/census-types/census-types":{"id":"sdk/integration-details/census-types/census-types","title":"Census Types","description":"A census is a list of voters who are eligible to vote in a given election. There are multiple ways to define a census with Vocdoni, each with different privacy and verifiability considerations. The census types are defined and documented at a protocol level and include on-chain, off-chain Merkle tree, and off-chain Credential Service Provider.","sidebar":"defaultSidebar"},"sdk/integration-details/census-types/off-chain-csp":{"id":"sdk/integration-details/census-types/off-chain-csp","title":"Off-chain Credential Service Provider","description":"A Credential Service Provider is an external component that serves as a validator for the identities of voters. An example of this could be a service set up by a municipal government that validates if a given voter is registered, or a forum that validates if a given voter has an active account. With this type of census, voters show proof of registry and receive a cryptographic package from the CSP allowing them to cast a vote.","sidebar":"defaultSidebar"},"sdk/integration-details/census-types/off-chain-tree":{"id":"sdk/integration-details/census-types/off-chain-tree","title":"Off-chain Merkle Tree","description":"This is the most basic census type, is the default when creating an election, and is the one used in the SDK tutorial. In this scheme, the census is essentially a basic list of voter, with some behind-the-scenes cryptography. With an off-train tree census, voters are added as wallet addresses using census.add().","sidebar":"defaultSidebar"},"sdk/integration-details/census-types/on-chain/complex-census":{"id":"sdk/integration-details/census-types/on-chain/complex-census","title":"Complex Census","description":"The census3 service makes it easy to create a census based off of the balance holders of a token taken to represent an organization. It is possible, however, to create a token-based census with more complex logic, incorporating balance information from multiple tokens at once.","sidebar":"defaultSidebar"},"sdk/integration-details/census-types/on-chain/on-chain":{"id":"sdk/integration-details/census-types/on-chain/on-chain","title":"On-chain Token-Based Census","description":"An on-chain census is one whose voters are defined by holding tokens on the Ethereum blockchain. Currently the following token types are supported:","sidebar":"defaultSidebar"},"sdk/integration-details/integration-details":{"id":"sdk/integration-details/integration-details","title":"Integration Details","description":"The tutorial covers the basics, but here are some details you\'ll need to consider when integrating the Vocdoni SDK into your application.","sidebar":"defaultSidebar"},"sdk/integration-details/vocdoni-tokens":{"id":"sdk/integration-details/vocdoni-tokens","title":"Vocdoni Tokens","description":"Behind-the-scenes, Vocdoni is powered by a custom blockchain. This component provides universal verifiability, but it also introduces some complexity. In order to distribute workload and verify transactions, our blockchain uses a digital \\"currency\\" of Vocdoni tokens that have no real-world value but help with load-balancing and spam reduction. Actions that update data on the blockchain, such as creating an election, incur a \\"cost.\\" Integrators are responsible for ensuring that accounts creating elections have a sufficient balance of tokens.","sidebar":"defaultSidebar"},"sdk/integration-details/voting-types/approval":{"id":"sdk/integration-details/voting-types/approval","title":"Approval Voting (Multiple Choice)","description":"An election with Approval voting is a voting system where voters are allowed to indicate their support for multiple","sidebar":"defaultSidebar"},"sdk/integration-details/voting-types/quadratic":{"id":"sdk/integration-details/voting-types/quadratic","title":"Quadratic voting","description":"Quadratic voting is a voting mechanism that allows individuals to express their preferences on different issues with","sidebar":"defaultSidebar"},"sdk/integration-details/voting-types/ranked":{"id":"sdk/integration-details/voting-types/ranked","title":"Ranked Voting","description":"Ranked voting, also known as preferential voting or ranked-choice voting (RCV), is an electoral system where voters rank","sidebar":"defaultSidebar"},"sdk/integration-details/voting-types/single-choice":{"id":"sdk/integration-details/voting-types/single-choice","title":"Single Choice Voting","description":"An election with a single-choice result, also known as First-past-the-post voting (FPTP or FPP) or informally called","sidebar":"defaultSidebar"},"sdk/integration-details/voting-types/voting-types":{"id":"sdk/integration-details/voting-types/voting-types","title":"Voting Types","description":"In this section, we will provide a brief overview of the different types of voting supported by the Vocdoni protocol and","sidebar":"defaultSidebar"},"sdk/integration-details/voting-types/weighted":{"id":"sdk/integration-details/voting-types/weighted","title":"Weighted voting","description":"Weighted voting is a voting system where each voter is assigned a specific weight or value that reflects their relative influence or importance in the decision-making process.","sidebar":"defaultSidebar"},"sdk/reference/changelog":{"id":"sdk/reference/changelog","title":"Changelog","description":"All notable changes to this project will be documented in this file.","sidebar":"defaultSidebar"},"sdk/reference/classes/Account":{"id":"sdk/reference/classes/Account","title":"Account","description":"@vocdoni/sdk / Exports / Account","sidebar":"defaultSidebar"},"sdk/reference/classes/AccountAPI":{"id":"sdk/reference/classes/AccountAPI","title":"AccountAPI","description":"@vocdoni/sdk / Exports / AccountAPI","sidebar":"defaultSidebar"},"sdk/reference/classes/AccountService":{"id":"sdk/reference/classes/AccountService","title":"AccountService","description":"@vocdoni/sdk / Exports / AccountService","sidebar":"defaultSidebar"},"sdk/reference/classes/AnonymousService":{"id":"sdk/reference/classes/AnonymousService","title":"AnonymousService","description":"@vocdoni/sdk / Exports / AnonymousService","sidebar":"defaultSidebar"},"sdk/reference/classes/AnonymousVote":{"id":"sdk/reference/classes/AnonymousVote","title":"AnonymousVote","description":"@vocdoni/sdk / Exports / AnonymousVote","sidebar":"defaultSidebar"},"sdk/reference/classes/ApprovalElection":{"id":"sdk/reference/classes/ApprovalElection","title":"ApprovalElection","description":"@vocdoni/sdk / Exports / ApprovalElection","sidebar":"defaultSidebar"},"sdk/reference/classes/ArchivedElection":{"id":"sdk/reference/classes/ArchivedElection","title":"ArchivedElection","description":"@vocdoni/sdk / Exports / ArchivedElection","sidebar":"defaultSidebar"},"sdk/reference/classes/BudgetElection":{"id":"sdk/reference/classes/BudgetElection","title":"BudgetElection","description":"@vocdoni/sdk / Exports / BudgetElection","sidebar":"defaultSidebar"},"sdk/reference/classes/Census":{"id":"sdk/reference/classes/Census","title":"Census","description":"@vocdoni/sdk / Exports / Census","sidebar":"defaultSidebar"},"sdk/reference/classes/Census3CensusAPI":{"id":"sdk/reference/classes/Census3CensusAPI","title":"Census3CensusAPI","description":"@vocdoni/sdk / Exports / Census3CensusAPI","sidebar":"defaultSidebar"},"sdk/reference/classes/Census3ServiceAPI":{"id":"sdk/reference/classes/Census3ServiceAPI","title":"Census3ServiceAPI","description":"@vocdoni/sdk / Exports / Census3ServiceAPI","sidebar":"defaultSidebar"},"sdk/reference/classes/Census3StrategyAPI":{"id":"sdk/reference/classes/Census3StrategyAPI","title":"Census3StrategyAPI","description":"@vocdoni/sdk / Exports / Census3StrategyAPI","sidebar":"defaultSidebar"},"sdk/reference/classes/Census3TokenAPI":{"id":"sdk/reference/classes/Census3TokenAPI","title":"Census3TokenAPI","description":"@vocdoni/sdk / Exports / Census3TokenAPI","sidebar":"defaultSidebar"},"sdk/reference/classes/CensusAPI":{"id":"sdk/reference/classes/CensusAPI","title":"CensusAPI","description":"@vocdoni/sdk / Exports / CensusAPI","sidebar":"defaultSidebar"},"sdk/reference/classes/CensusService":{"id":"sdk/reference/classes/CensusService","title":"CensusService","description":"@vocdoni/sdk / Exports / CensusService","sidebar":"defaultSidebar"},"sdk/reference/classes/ChainAPI":{"id":"sdk/reference/classes/ChainAPI","title":"ChainAPI","description":"@vocdoni/sdk / Exports / ChainAPI","sidebar":"defaultSidebar"},"sdk/reference/classes/ChainService":{"id":"sdk/reference/classes/ChainService","title":"ChainService","description":"@vocdoni/sdk / Exports / ChainService","sidebar":"defaultSidebar"},"sdk/reference/classes/CspCensus":{"id":"sdk/reference/classes/CspCensus","title":"CspCensus","description":"@vocdoni/sdk / Exports / CspCensus","sidebar":"defaultSidebar"},"sdk/reference/classes/CspService":{"id":"sdk/reference/classes/CspService","title":"CspService","description":"@vocdoni/sdk / Exports / CspService","sidebar":"defaultSidebar"},"sdk/reference/classes/CspVote":{"id":"sdk/reference/classes/CspVote","title":"CspVote","description":"@vocdoni/sdk / Exports / CspVote","sidebar":"defaultSidebar"},"sdk/reference/classes/Election":{"id":"sdk/reference/classes/Election","title":"Election","description":"@vocdoni/sdk / Exports / Election","sidebar":"defaultSidebar"},"sdk/reference/classes/ElectionAPI":{"id":"sdk/reference/classes/ElectionAPI","title":"ElectionAPI","description":"@vocdoni/sdk / Exports / ElectionAPI","sidebar":"defaultSidebar"},"sdk/reference/classes/ElectionService":{"id":"sdk/reference/classes/ElectionService","title":"ElectionService","description":"@vocdoni/sdk / Exports / ElectionService","sidebar":"defaultSidebar"},"sdk/reference/classes/FaucetAPI":{"id":"sdk/reference/classes/FaucetAPI","title":"FaucetAPI","description":"@vocdoni/sdk / Exports / FaucetAPI","sidebar":"defaultSidebar"},"sdk/reference/classes/FaucetService":{"id":"sdk/reference/classes/FaucetService","title":"FaucetService","description":"@vocdoni/sdk / Exports / FaucetService","sidebar":"defaultSidebar"},"sdk/reference/classes/FileAPI":{"id":"sdk/reference/classes/FileAPI","title":"FileAPI","description":"@vocdoni/sdk / Exports / FileAPI","sidebar":"defaultSidebar"},"sdk/reference/classes/FileService":{"id":"sdk/reference/classes/FileService","title":"FileService","description":"@vocdoni/sdk / Exports / FileService","sidebar":"defaultSidebar"},"sdk/reference/classes/InvalidElection":{"id":"sdk/reference/classes/InvalidElection","title":"InvalidElection","description":"@vocdoni/sdk / Exports / InvalidElection","sidebar":"defaultSidebar"},"sdk/reference/classes/MultiChoiceElection":{"id":"sdk/reference/classes/MultiChoiceElection","title":"MultiChoiceElection","description":"@vocdoni/sdk / Exports / MultiChoiceElection","sidebar":"defaultSidebar"},"sdk/reference/classes/OffchainCensus":{"id":"sdk/reference/classes/OffchainCensus","title":"OffchainCensus","description":"@vocdoni/sdk / Exports / OffchainCensus","sidebar":"defaultSidebar"},"sdk/reference/classes/PlainCensus":{"id":"sdk/reference/classes/PlainCensus","title":"PlainCensus","description":"@vocdoni/sdk / Exports / PlainCensus","sidebar":"defaultSidebar"},"sdk/reference/classes/PublishedCensus":{"id":"sdk/reference/classes/PublishedCensus","title":"PublishedCensus","description":"@vocdoni/sdk / Exports / PublishedCensus","sidebar":"defaultSidebar"},"sdk/reference/classes/PublishedElection":{"id":"sdk/reference/classes/PublishedElection","title":"PublishedElection","description":"@vocdoni/sdk / Exports / PublishedElection","sidebar":"defaultSidebar"},"sdk/reference/classes/Service":{"id":"sdk/reference/classes/Service","title":"Service","description":"@vocdoni/sdk / Exports / Service","sidebar":"defaultSidebar"},"sdk/reference/classes/TokenCensus":{"id":"sdk/reference/classes/TokenCensus","title":"TokenCensus","description":"@vocdoni/sdk / Exports / TokenCensus","sidebar":"defaultSidebar"},"sdk/reference/classes/UnpublishedElection":{"id":"sdk/reference/classes/UnpublishedElection","title":"UnpublishedElection","description":"@vocdoni/sdk / Exports / UnpublishedElection","sidebar":"defaultSidebar"},"sdk/reference/classes/VocdoniCensus3Client":{"id":"sdk/reference/classes/VocdoniCensus3Client","title":"VocdoniCensus3Client","description":"@vocdoni/sdk / Exports / VocdoniCensus3Client","sidebar":"defaultSidebar"},"sdk/reference/classes/VocdoniSDKClient":{"id":"sdk/reference/classes/VocdoniSDKClient","title":"VocdoniSDKClient","description":"@vocdoni/sdk / Exports / VocdoniSDKClient","sidebar":"defaultSidebar"},"sdk/reference/classes/Vote":{"id":"sdk/reference/classes/Vote","title":"Vote","description":"@vocdoni/sdk / Exports / Vote","sidebar":"defaultSidebar"},"sdk/reference/classes/VoteAPI":{"id":"sdk/reference/classes/VoteAPI","title":"VoteAPI","description":"@vocdoni/sdk / Exports / VoteAPI","sidebar":"defaultSidebar"},"sdk/reference/classes/VoteService":{"id":"sdk/reference/classes/VoteService","title":"VoteService","description":"@vocdoni/sdk / Exports / VoteService","sidebar":"defaultSidebar"},"sdk/reference/classes/WalletAPI":{"id":"sdk/reference/classes/WalletAPI","title":"WalletAPI","description":"@vocdoni/sdk / Exports / WalletAPI","sidebar":"defaultSidebar"},"sdk/reference/classes/WeightedCensus":{"id":"sdk/reference/classes/WeightedCensus","title":"WeightedCensus","description":"@vocdoni/sdk / Exports / WeightedCensus","sidebar":"defaultSidebar"},"sdk/reference/enums/CensusOrigin":{"id":"sdk/reference/enums/CensusOrigin","title":"CensusOrigin","description":"@vocdoni/sdk / Exports / CensusOrigin","sidebar":"defaultSidebar"},"sdk/reference/enums/CensusType":{"id":"sdk/reference/enums/CensusType","title":"CensusType","description":"@vocdoni/sdk / Exports / CensusType","sidebar":"defaultSidebar"},"sdk/reference/enums/CensusTypeEnum":{"id":"sdk/reference/enums/CensusTypeEnum","title":"CensusTypeEnum","description":"@vocdoni/sdk / Exports / CensusTypeEnum","sidebar":"defaultSidebar"},"sdk/reference/enums/CspProofType":{"id":"sdk/reference/enums/CspProofType","title":"CspProofType","description":"@vocdoni/sdk / Exports / CspProofType","sidebar":"defaultSidebar"},"sdk/reference/enums/ElectionCreationSteps":{"id":"sdk/reference/enums/ElectionCreationSteps","title":"ElectionCreationSteps","description":"@vocdoni/sdk / Exports / ElectionCreationSteps","sidebar":"defaultSidebar"},"sdk/reference/enums/ElectionResultsTypeNames":{"id":"sdk/reference/enums/ElectionResultsTypeNames","title":"ElectionResultsTypeNames","description":"@vocdoni/sdk / Exports / ElectionResultsTypeNames","sidebar":"defaultSidebar"},"sdk/reference/enums/ElectionStatus":{"id":"sdk/reference/enums/ElectionStatus","title":"ElectionStatus","description":"@vocdoni/sdk / Exports / ElectionStatus","sidebar":"defaultSidebar"},"sdk/reference/enums/ElectionStatusReady":{"id":"sdk/reference/enums/ElectionStatusReady","title":"ElectionStatusReady","description":"@vocdoni/sdk / Exports / ElectionStatusReady","sidebar":"defaultSidebar"},"sdk/reference/enums/EnvOptions":{"id":"sdk/reference/enums/EnvOptions","title":"EnvOptions","description":"@vocdoni/sdk / Exports / EnvOptions","sidebar":"defaultSidebar"},"sdk/reference/enums/TransactionType":{"id":"sdk/reference/enums/TransactionType","title":"TransactionType","description":"@vocdoni/sdk / Exports / TransactionType","sidebar":"defaultSidebar"},"sdk/reference/enums/TxType":{"id":"sdk/reference/enums/TxType","title":"TxType","description":"@vocdoni/sdk / Exports / TxType","sidebar":"defaultSidebar"},"sdk/reference/enums/VoteSteps":{"id":"sdk/reference/enums/VoteSteps","title":"VoteSteps","description":"@vocdoni/sdk / Exports / VoteSteps","sidebar":"defaultSidebar"},"sdk/reference/interfaces/AccountMetadata":{"id":"sdk/reference/interfaces/AccountMetadata","title":"AccountMetadata","description":"@vocdoni/sdk / Exports / AccountMetadata","sidebar":"defaultSidebar"},"sdk/reference/interfaces/AdminTx":{"id":"sdk/reference/interfaces/AdminTx","title":"AdminTx","description":"@vocdoni/sdk / Exports / AdminTx","sidebar":"defaultSidebar"},"sdk/reference/interfaces/CircuitInputs":{"id":"sdk/reference/interfaces/CircuitInputs","title":"CircuitInputs","description":"@vocdoni/sdk / Exports / CircuitInputs","sidebar":"defaultSidebar"},"sdk/reference/interfaces/CollectFaucetTx":{"id":"sdk/reference/interfaces/CollectFaucetTx","title":"CollectFaucetTx","description":"@vocdoni/sdk / Exports / CollectFaucetTx","sidebar":"defaultSidebar"},"sdk/reference/interfaces/ElectionMetadata":{"id":"sdk/reference/interfaces/ElectionMetadata","title":"ElectionMetadata","description":"@vocdoni/sdk / Exports / ElectionMetadata","sidebar":"defaultSidebar"},"sdk/reference/interfaces/FetchElectionsParameters":{"id":"sdk/reference/interfaces/FetchElectionsParameters","title":"FetchElectionsParameters","description":"@vocdoni/sdk / Exports / FetchElectionsParameters","sidebar":"defaultSidebar"},"sdk/reference/interfaces/IAccount":{"id":"sdk/reference/interfaces/IAccount","title":"IAccount","description":"@vocdoni/sdk / Exports / IAccount","sidebar":"defaultSidebar"},"sdk/reference/interfaces/IAccountsCountResponse":{"id":"sdk/reference/interfaces/IAccountsCountResponse","title":"IAccountsCountResponse","description":"@vocdoni/sdk / Exports / IAccountsCountResponse","sidebar":"defaultSidebar"},"sdk/reference/interfaces/IAccountsListResponse":{"id":"sdk/reference/interfaces/IAccountsListResponse","title":"IAccountsListResponse","description":"@vocdoni/sdk / Exports / IAccountsListResponse","sidebar":"defaultSidebar"},"sdk/reference/interfaces/IAccountTransfersCountResponse":{"id":"sdk/reference/interfaces/IAccountTransfersCountResponse","title":"IAccountTransfersCountResponse","description":"@vocdoni/sdk / Exports / IAccountTransfersCountResponse","sidebar":"defaultSidebar"},"sdk/reference/interfaces/IApprovalElectionParameters":{"id":"sdk/reference/interfaces/IApprovalElectionParameters","title":"IApprovalElectionParameters","description":"@vocdoni/sdk / Exports / IApprovalElectionParameters","sidebar":"defaultSidebar"},"sdk/reference/interfaces/IBlockTransactionsResponse":{"id":"sdk/reference/interfaces/IBlockTransactionsResponse","title":"IBlockTransactionsResponse","description":"@vocdoni/sdk / Exports / IBlockTransactionsResponse","sidebar":"defaultSidebar"},"sdk/reference/interfaces/IBudgetElectionParametersInfo":{"id":"sdk/reference/interfaces/IBudgetElectionParametersInfo","title":"IBudgetElectionParametersInfo","description":"@vocdoni/sdk / Exports / IBudgetElectionParametersInfo","sidebar":"defaultSidebar"},"sdk/reference/interfaces/IBudgetElectionParametersWithBudget":{"id":"sdk/reference/interfaces/IBudgetElectionParametersWithBudget","title":"IBudgetElectionParametersWithBudget","description":"@vocdoni/sdk / Exports / IBudgetElectionParametersWithBudget","sidebar":"defaultSidebar"},"sdk/reference/interfaces/IBudgetElectionParametersWithCensusWeight":{"id":"sdk/reference/interfaces/IBudgetElectionParametersWithCensusWeight","title":"IBudgetElectionParametersWithCensusWeight","description":"@vocdoni/sdk / Exports / IBudgetElectionParametersWithCensusWeight","sidebar":"defaultSidebar"},"sdk/reference/interfaces/ICensus":{"id":"sdk/reference/interfaces/ICensus","title":"ICensus","description":"@vocdoni/sdk / Exports / ICensus","sidebar":"defaultSidebar"},"sdk/reference/interfaces/ICensus3CensusListResponse":{"id":"sdk/reference/interfaces/ICensus3CensusListResponse","title":"ICensus3CensusListResponse","description":"@vocdoni/sdk / Exports / ICensus3CensusListResponse","sidebar":"defaultSidebar"},"sdk/reference/interfaces/ICensus3CensusQueueResponse":{"id":"sdk/reference/interfaces/ICensus3CensusQueueResponse","title":"ICensus3CensusQueueResponse","description":"@vocdoni/sdk / Exports / ICensus3CensusQueueResponse","sidebar":"defaultSidebar"},"sdk/reference/interfaces/ICensus3CensusResponse":{"id":"sdk/reference/interfaces/ICensus3CensusResponse","title":"ICensus3CensusResponse","description":"@vocdoni/sdk / Exports / ICensus3CensusResponse","sidebar":"defaultSidebar"},"sdk/reference/interfaces/ICensus3ServiceInfoResponse":{"id":"sdk/reference/interfaces/ICensus3ServiceInfoResponse","title":"ICensus3ServiceInfoResponse","description":"@vocdoni/sdk / Exports / ICensus3ServiceInfoResponse","sidebar":"defaultSidebar"},"sdk/reference/interfaces/ICensus3StrategiesListResponse":{"id":"sdk/reference/interfaces/ICensus3StrategiesListResponse","title":"ICensus3StrategiesListResponse","description":"@vocdoni/sdk / Exports / ICensus3StrategiesListResponse","sidebar":"defaultSidebar"},"sdk/reference/interfaces/ICensus3StrategiesListResponsePaginated":{"id":"sdk/reference/interfaces/ICensus3StrategiesListResponsePaginated","title":"ICensus3StrategiesListResponsePaginated","description":"@vocdoni/sdk / Exports / ICensus3StrategiesListResponsePaginated","sidebar":"defaultSidebar"},"sdk/reference/interfaces/ICensus3StrategiesOperator":{"id":"sdk/reference/interfaces/ICensus3StrategiesOperator","title":"ICensus3StrategiesOperator","description":"@vocdoni/sdk / Exports / ICensus3StrategiesOperator","sidebar":"defaultSidebar"},"sdk/reference/interfaces/ICensus3StrategiesOperatorsResponse":{"id":"sdk/reference/interfaces/ICensus3StrategiesOperatorsResponse","title":"ICensus3StrategiesOperatorsResponse","description":"@vocdoni/sdk / Exports / ICensus3StrategiesOperatorsResponse","sidebar":"defaultSidebar"},"sdk/reference/interfaces/ICensus3StrategyCreateResponse":{"id":"sdk/reference/interfaces/ICensus3StrategyCreateResponse","title":"ICensus3StrategyCreateResponse","description":"@vocdoni/sdk / Exports / ICensus3StrategyCreateResponse","sidebar":"defaultSidebar"},"sdk/reference/interfaces/ICensus3StrategyEstimationQueueResponse":{"id":"sdk/reference/interfaces/ICensus3StrategyEstimationQueueResponse","title":"ICensus3StrategyEstimationQueueResponse","description":"@vocdoni/sdk / Exports / ICensus3StrategyEstimationQueueResponse","sidebar":"defaultSidebar"},"sdk/reference/interfaces/ICensus3StrategyHoldersResponse":{"id":"sdk/reference/interfaces/ICensus3StrategyHoldersResponse","title":"ICensus3StrategyHoldersResponse","description":"@vocdoni/sdk / Exports / ICensus3StrategyHoldersResponse","sidebar":"defaultSidebar"},"sdk/reference/interfaces/ICensus3StrategyHoldersResponsePaginated":{"id":"sdk/reference/interfaces/ICensus3StrategyHoldersResponsePaginated","title":"ICensus3StrategyHoldersResponsePaginated","description":"@vocdoni/sdk / Exports / ICensus3StrategyHoldersResponsePaginated","sidebar":"defaultSidebar"},"sdk/reference/interfaces/ICensus3StrategyImportQueueResponse":{"id":"sdk/reference/interfaces/ICensus3StrategyImportQueueResponse","title":"ICensus3StrategyImportQueueResponse","description":"@vocdoni/sdk / Exports / ICensus3StrategyImportQueueResponse","sidebar":"defaultSidebar"},"sdk/reference/interfaces/ICensus3StrategyToken":{"id":"sdk/reference/interfaces/ICensus3StrategyToken","title":"ICensus3StrategyToken","description":"@vocdoni/sdk / Exports / ICensus3StrategyToken","sidebar":"defaultSidebar"},"sdk/reference/interfaces/ICensus3SupportedChain":{"id":"sdk/reference/interfaces/ICensus3SupportedChain","title":"ICensus3SupportedChain","description":"@vocdoni/sdk / Exports / ICensus3SupportedChain","sidebar":"defaultSidebar"},"sdk/reference/interfaces/ICensus3TokenHolderResponse":{"id":"sdk/reference/interfaces/ICensus3TokenHolderResponse","title":"ICensus3TokenHolderResponse","description":"@vocdoni/sdk / Exports / ICensus3TokenHolderResponse","sidebar":"defaultSidebar"},"sdk/reference/interfaces/ICensus3TokenListResponse":{"id":"sdk/reference/interfaces/ICensus3TokenListResponse","title":"ICensus3TokenListResponse","description":"@vocdoni/sdk / Exports / ICensus3TokenListResponse","sidebar":"defaultSidebar"},"sdk/reference/interfaces/ICensus3TokenListResponsePaginated":{"id":"sdk/reference/interfaces/ICensus3TokenListResponsePaginated","title":"ICensus3TokenListResponsePaginated","description":"@vocdoni/sdk / Exports / ICensus3TokenListResponsePaginated","sidebar":"defaultSidebar"},"sdk/reference/interfaces/ICensus3TokenTypesResponse":{"id":"sdk/reference/interfaces/ICensus3TokenTypesResponse","title":"ICensus3TokenTypesResponse","description":"@vocdoni/sdk / Exports / ICensus3TokenTypesResponse","sidebar":"defaultSidebar"},"sdk/reference/interfaces/ICensus3ValidatePredicateChild":{"id":"sdk/reference/interfaces/ICensus3ValidatePredicateChild","title":"ICensus3ValidatePredicateChild","description":"@vocdoni/sdk / Exports / ICensus3ValidatePredicateChild","sidebar":"defaultSidebar"},"sdk/reference/interfaces/ICensus3ValidatePredicateResponse":{"id":"sdk/reference/interfaces/ICensus3ValidatePredicateResponse","title":"ICensus3ValidatePredicateResponse","description":"@vocdoni/sdk / Exports / ICensus3ValidatePredicateResponse","sidebar":"defaultSidebar"},"sdk/reference/interfaces/ICensus3ValidatePredicateToken":{"id":"sdk/reference/interfaces/ICensus3ValidatePredicateToken","title":"ICensus3ValidatePredicateToken","description":"@vocdoni/sdk / Exports / ICensus3ValidatePredicateToken","sidebar":"defaultSidebar"},"sdk/reference/interfaces/ICensusExportResponse":{"id":"sdk/reference/interfaces/ICensusExportResponse","title":"ICensusExportResponse","description":"@vocdoni/sdk / Exports / ICensusExportResponse","sidebar":"defaultSidebar"},"sdk/reference/interfaces/ICensusImportResponse":{"id":"sdk/reference/interfaces/ICensusImportResponse","title":"ICensusImportResponse","description":"@vocdoni/sdk / Exports / ICensusImportResponse","sidebar":"defaultSidebar"},"sdk/reference/interfaces/ICensusParticipant":{"id":"sdk/reference/interfaces/ICensusParticipant","title":"ICensusParticipant","description":"@vocdoni/sdk / Exports / ICensusParticipant","sidebar":"defaultSidebar"},"sdk/reference/interfaces/ICensusProofResponse":{"id":"sdk/reference/interfaces/ICensusProofResponse","title":"ICensusProofResponse","description":"@vocdoni/sdk / Exports / ICensusProofResponse","sidebar":"defaultSidebar"},"sdk/reference/interfaces/ICensusPublishResponse":{"id":"sdk/reference/interfaces/ICensusPublishResponse","title":"ICensusPublishResponse","description":"@vocdoni/sdk / Exports / ICensusPublishResponse","sidebar":"defaultSidebar"},"sdk/reference/interfaces/IChainBlockInfoResponse":{"id":"sdk/reference/interfaces/IChainBlockInfoResponse","title":"IChainBlockInfoResponse","description":"@vocdoni/sdk / Exports / IChainBlockInfoResponse","sidebar":"defaultSidebar"},"sdk/reference/interfaces/IChainGetCircuitResponse":{"id":"sdk/reference/interfaces/IChainGetCircuitResponse","title":"IChainGetCircuitResponse","description":"@vocdoni/sdk / Exports / IChainGetCircuitResponse","sidebar":"defaultSidebar"},"sdk/reference/interfaces/IChainGetCostsResponse":{"id":"sdk/reference/interfaces/IChainGetCostsResponse","title":"IChainGetCostsResponse","description":"@vocdoni/sdk / Exports / IChainGetCostsResponse","sidebar":"defaultSidebar"},"sdk/reference/interfaces/IChainGetInfoResponse":{"id":"sdk/reference/interfaces/IChainGetInfoResponse","title":"IChainGetInfoResponse","description":"@vocdoni/sdk / Exports / IChainGetInfoResponse","sidebar":"defaultSidebar"},"sdk/reference/interfaces/IChainOrganizationCountResponse":{"id":"sdk/reference/interfaces/IChainOrganizationCountResponse","title":"IChainOrganizationCountResponse","description":"@vocdoni/sdk / Exports / IChainOrganizationCountResponse","sidebar":"defaultSidebar"},"sdk/reference/interfaces/IChainOrganizationListResponse":{"id":"sdk/reference/interfaces/IChainOrganizationListResponse","title":"IChainOrganizationListResponse","description":"@vocdoni/sdk / Exports / IChainOrganizationListResponse","sidebar":"defaultSidebar"},"sdk/reference/interfaces/IChainOrganizationResponse":{"id":"sdk/reference/interfaces/IChainOrganizationResponse","title":"IChainOrganizationResponse","description":"@vocdoni/sdk / Exports / IChainOrganizationResponse","sidebar":"defaultSidebar"},"sdk/reference/interfaces/IChainSubmitTxResponse":{"id":"sdk/reference/interfaces/IChainSubmitTxResponse","title":"IChainSubmitTxResponse","description":"@vocdoni/sdk / Exports / IChainSubmitTxResponse","sidebar":"defaultSidebar"},"sdk/reference/interfaces/IChainTxCountResponse":{"id":"sdk/reference/interfaces/IChainTxCountResponse","title":"IChainTxCountResponse","description":"@vocdoni/sdk / Exports / IChainTxCountResponse","sidebar":"defaultSidebar"},"sdk/reference/interfaces/IChainTxListResponse":{"id":"sdk/reference/interfaces/IChainTxListResponse","title":"IChainTxListResponse","description":"@vocdoni/sdk / Exports / IChainTxListResponse","sidebar":"defaultSidebar"},"sdk/reference/interfaces/IChainTxReference":{"id":"sdk/reference/interfaces/IChainTxReference","title":"IChainTxReference","description":"@vocdoni/sdk / Exports / IChainTxReference","sidebar":"defaultSidebar"},"sdk/reference/interfaces/IChainValidator":{"id":"sdk/reference/interfaces/IChainValidator","title":"IChainValidator","description":"@vocdoni/sdk / Exports / IChainValidator","sidebar":"defaultSidebar"},"sdk/reference/interfaces/IChainValidatorsListResponse":{"id":"sdk/reference/interfaces/IChainValidatorsListResponse","title":"IChainValidatorsListResponse","description":"@vocdoni/sdk / Exports / IChainValidatorsListResponse","sidebar":"defaultSidebar"},"sdk/reference/interfaces/IChoice":{"id":"sdk/reference/interfaces/IChoice","title":"IChoice","description":"@vocdoni/sdk / Exports / IChoice","sidebar":"defaultSidebar"},"sdk/reference/interfaces/IElectionCreateResponse":{"id":"sdk/reference/interfaces/IElectionCreateResponse","title":"IElectionCreateResponse","description":"@vocdoni/sdk / Exports / IElectionCreateResponse","sidebar":"defaultSidebar"},"sdk/reference/interfaces/IElectionInfoResponse":{"id":"sdk/reference/interfaces/IElectionInfoResponse","title":"IElectionInfoResponse","description":"@vocdoni/sdk / Exports / IElectionInfoResponse","sidebar":"defaultSidebar"},"sdk/reference/interfaces/IElectionKeysResponse":{"id":"sdk/reference/interfaces/IElectionKeysResponse","title":"IElectionKeysResponse","description":"@vocdoni/sdk / Exports / IElectionKeysResponse","sidebar":"defaultSidebar"},"sdk/reference/interfaces/IElectionListFilter":{"id":"sdk/reference/interfaces/IElectionListFilter","title":"IElectionListFilter","description":"@vocdoni/sdk / Exports / IElectionListFilter","sidebar":"defaultSidebar"},"sdk/reference/interfaces/IElectionListResponse":{"id":"sdk/reference/interfaces/IElectionListResponse","title":"IElectionListResponse","description":"@vocdoni/sdk / Exports / IElectionListResponse","sidebar":"defaultSidebar"},"sdk/reference/interfaces/IElectionMode":{"id":"sdk/reference/interfaces/IElectionMode","title":"IElectionMode","description":"@vocdoni/sdk / Exports / IElectionMode","sidebar":"defaultSidebar"},"sdk/reference/interfaces/IElectionNextIdResponse":{"id":"sdk/reference/interfaces/IElectionNextIdResponse","title":"IElectionNextIdResponse","description":"@vocdoni/sdk / Exports / IElectionNextIdResponse","sidebar":"defaultSidebar"},"sdk/reference/interfaces/IElectionParameters":{"id":"sdk/reference/interfaces/IElectionParameters","title":"IElectionParameters","description":"@vocdoni/sdk / Exports / IElectionParameters","sidebar":"defaultSidebar"},"sdk/reference/interfaces/IElectionSummary":{"id":"sdk/reference/interfaces/IElectionSummary","title":"IElectionSummary","description":"@vocdoni/sdk / Exports / IElectionSummary","sidebar":"defaultSidebar"},"sdk/reference/interfaces/IElectionType":{"id":"sdk/reference/interfaces/IElectionType","title":"IElectionType","description":"@vocdoni/sdk / Exports / IElectionType","sidebar":"defaultSidebar"},"sdk/reference/interfaces/IElectionVote":{"id":"sdk/reference/interfaces/IElectionVote","title":"IElectionVote","description":"@vocdoni/sdk / Exports / IElectionVote","sidebar":"defaultSidebar"},"sdk/reference/interfaces/IElectionVoteListResponse":{"id":"sdk/reference/interfaces/IElectionVoteListResponse","title":"IElectionVoteListResponse","description":"@vocdoni/sdk / Exports / IElectionVoteListResponse","sidebar":"defaultSidebar"},"sdk/reference/interfaces/IEncryptionKey":{"id":"sdk/reference/interfaces/IEncryptionKey","title":"IEncryptionKey","description":"@vocdoni/sdk / Exports / IEncryptionKey","sidebar":"defaultSidebar"},"sdk/reference/interfaces/IInvalidElectionParameters":{"id":"sdk/reference/interfaces/IInvalidElectionParameters","title":"IInvalidElectionParameters","description":"@vocdoni/sdk / Exports / IInvalidElectionParameters","sidebar":"defaultSidebar"},"sdk/reference/interfaces/IMultiChoiceElectionParameters":{"id":"sdk/reference/interfaces/IMultiChoiceElectionParameters","title":"IMultiChoiceElectionParameters","description":"@vocdoni/sdk / Exports / IMultiChoiceElectionParameters","sidebar":"defaultSidebar"},"sdk/reference/interfaces/IPublishedElectionParameters":{"id":"sdk/reference/interfaces/IPublishedElectionParameters","title":"IPublishedElectionParameters","description":"@vocdoni/sdk / Exports / IPublishedElectionParameters","sidebar":"defaultSidebar"},"sdk/reference/interfaces/IQuestion":{"id":"sdk/reference/interfaces/IQuestion","title":"IQuestion","description":"@vocdoni/sdk / Exports / IQuestion","sidebar":"defaultSidebar"},"sdk/reference/interfaces/ITallyMode":{"id":"sdk/reference/interfaces/ITallyMode","title":"ITallyMode","description":"@vocdoni/sdk / Exports / ITallyMode","sidebar":"defaultSidebar"},"sdk/reference/interfaces/IVoteInfoResponse":{"id":"sdk/reference/interfaces/IVoteInfoResponse","title":"IVoteInfoResponse","description":"@vocdoni/sdk / Exports / IVoteInfoResponse","sidebar":"defaultSidebar"},"sdk/reference/interfaces/IVoteMode":{"id":"sdk/reference/interfaces/IVoteMode","title":"IVoteMode","description":"@vocdoni/sdk / Exports / IVoteMode","sidebar":"defaultSidebar"},"sdk/reference/interfaces/IVoteSubmitResponse":{"id":"sdk/reference/interfaces/IVoteSubmitResponse","title":"IVoteSubmitResponse","description":"@vocdoni/sdk / Exports / IVoteSubmitResponse","sidebar":"defaultSidebar"},"sdk/reference/interfaces/IVoteType":{"id":"sdk/reference/interfaces/IVoteType","title":"IVoteType","description":"@vocdoni/sdk / Exports / IVoteType","sidebar":"defaultSidebar"},"sdk/reference/interfaces/MintTokensTx":{"id":"sdk/reference/interfaces/MintTokensTx","title":"MintTokensTx","description":"@vocdoni/sdk / Exports / MintTokensTx","sidebar":"defaultSidebar"},"sdk/reference/interfaces/NewProcessTx":{"id":"sdk/reference/interfaces/NewProcessTx","title":"NewProcessTx","description":"@vocdoni/sdk / Exports / NewProcessTx","sidebar":"defaultSidebar"},"sdk/reference/interfaces/Process":{"id":"sdk/reference/interfaces/Process","title":"Process","description":"@vocdoni/sdk / Exports / Process","sidebar":"defaultSidebar"},"sdk/reference/interfaces/Proof":{"id":"sdk/reference/interfaces/Proof","title":"Proof","description":"@vocdoni/sdk / Exports / Proof","sidebar":"defaultSidebar"},"sdk/reference/interfaces/RegisterKeyTx":{"id":"sdk/reference/interfaces/RegisterKeyTx","title":"RegisterKeyTx","description":"@vocdoni/sdk / Exports / RegisterKeyTx","sidebar":"defaultSidebar"},"sdk/reference/interfaces/SendTokensTx":{"id":"sdk/reference/interfaces/SendTokensTx","title":"SendTokensTx","description":"@vocdoni/sdk / Exports / SendTokensTx","sidebar":"defaultSidebar"},"sdk/reference/interfaces/ServiceProperties":{"id":"sdk/reference/interfaces/ServiceProperties","title":"ServiceProperties","description":"@vocdoni/sdk / Exports / ServiceProperties","sidebar":"defaultSidebar"},"sdk/reference/interfaces/SetAccountTx":{"id":"sdk/reference/interfaces/SetAccountTx","title":"SetAccountTx","description":"@vocdoni/sdk / Exports / SetAccountTx","sidebar":"defaultSidebar"},"sdk/reference/interfaces/SetProcessTx":{"id":"sdk/reference/interfaces/SetProcessTx","title":"SetProcessTx","description":"@vocdoni/sdk / Exports / SetProcessTx","sidebar":"defaultSidebar"},"sdk/reference/interfaces/SetTransactionCostsTx":{"id":"sdk/reference/interfaces/SetTransactionCostsTx","title":"SetTransactionCostsTx","description":"@vocdoni/sdk / Exports / SetTransactionCostsTx","sidebar":"defaultSidebar"},"sdk/reference/interfaces/Tx":{"id":"sdk/reference/interfaces/Tx","title":"Tx","description":"@vocdoni/sdk / Exports / Tx","sidebar":"defaultSidebar"},"sdk/reference/interfaces/VoteEnvelope":{"id":"sdk/reference/interfaces/VoteEnvelope","title":"VoteEnvelope","description":"@vocdoni/sdk / Exports / VoteEnvelope","sidebar":"defaultSidebar"},"sdk/reference/modules":{"id":"sdk/reference/modules","title":"modules","description":"@vocdoni/sdk / Exports","sidebar":"defaultSidebar"},"sdk/tutorial":{"id":"sdk/tutorial","title":"SDK Tutorial","description":"This tutorial will show you how to get your environment set up, start using the SDK, and create and vote in an election. We will be using typescript.","sidebar":"defaultSidebar"},"ui-components/Election":{"id":"ui-components/Election","title":"Election components","description":"Vocdoni Chakra components for Elections","sidebar":"defaultSidebar"},"ui-components/index":{"id":"ui-components/index","title":"UI Components","description":"Vocdoni Chakra components","sidebar":"defaultSidebar"},"ui-components/Organization":{"id":"ui-components/Organization","title":"Organization components","description":"Vocdoni Chakra components for Organizations","sidebar":"defaultSidebar"},"vocdoni-api/accounts":{"id":"vocdoni-api/accounts","title":"Accounts","description":"Accounts","sidebar":"defaultSidebar"},"vocdoni-api/add-account":{"id":"vocdoni-api/add-account","title":"Add account","description":"Add a new account to the local store. It returns a token used to manage this account on the future.","sidebar":"defaultSidebar"},"vocdoni-api/add-participants-to-census":{"id":"vocdoni-api/add-participants-to-census","title":"Add participants to census","description":"Add list of public key/address with its weight to an unpublished census and returns the resulting","sidebar":"defaultSidebar"},"vocdoni-api/census-merkle-root":{"id":"vocdoni-api/census-merkle-root","title":"Census Merkle Root","description":"Get census [Merkle Tree root](https://docs.vocdoni.io/architecture/census/off-chain-tree.html) hash, used to identify the census at specific snapshot.\\n\\n- Bearer token not required","sidebar":"defaultSidebar"},"vocdoni-api/census-size":{"id":"vocdoni-api/census-size","title":"Census size","description":"Total number of keys added to the census. Size as integer","sidebar":"defaultSidebar"},"vocdoni-api/census-total-weight":{"id":"vocdoni-api/census-total-weight","title":"Census total weight","description":"It sums all weights added to the census. Weight is a stringified bigInt","sidebar":"defaultSidebar"},"vocdoni-api/censuses":{"id":"vocdoni-api/censuses","title":"Censuses","description":"Censuses","sidebar":"defaultSidebar"},"vocdoni-api/chain":{"id":"vocdoni-api/chain","title":"Chain","description":"Chain","sidebar":"defaultSidebar"},"vocdoni-api/circuit-info":{"id":"vocdoni-api/circuit-info","title":"Circuit info","description":"Returns the circuit configuration according to the current circuit","sidebar":"defaultSidebar"},"vocdoni-api/compute-election-price":{"id":"vocdoni-api/compute-election-price","title":"Compute election price","description":"Helper endpoint to get the election price.","sidebar":"defaultSidebar"},"vocdoni-api/compute-ipfs-ci-dv-1-of-file":{"id":"vocdoni-api/compute-ipfs-ci-dv-1-of-file","title":"Compute IPFS CIDv1 of file","description":"Helper endpoint to get the IPFS CIDv1 hash of a file","sidebar":"defaultSidebar"},"vocdoni-api/count-election-votes":{"id":"vocdoni-api/count-election-votes","title":"Count election votes","description":"Get the number of votes for an election","sidebar":"defaultSidebar"},"vocdoni-api/count-organization-elections":{"id":"vocdoni-api/count-organization-elections","title":"Count organization elections","description":"Returns the number of elections for an organization","sidebar":"defaultSidebar"},"vocdoni-api/count-organizations":{"id":"vocdoni-api/count-organizations","title":"Count organizations","description":"Return the number of organizations","sidebar":"defaultSidebar"},"vocdoni-api/create-a-new-census":{"id":"vocdoni-api/create-a-new-census","title":"Create a new census","description":"Create a new census on the backend side. The census is still unpublished until [publish](publish-census) is called.","sidebar":"defaultSidebar"},"vocdoni-api/create-election":{"id":"vocdoni-api/create-election","title":"Create election","description":"It creates an election on the Vochain.","sidebar":"defaultSidebar"},"vocdoni-api/create-election-for-wallet":{"id":"vocdoni-api/create-election-for-wallet","title":"Create election for wallet","description":"Creates an election. Requires the bearer token of the account you want to create the election.","sidebar":"defaultSidebar"},"vocdoni-api/delete-census":{"id":"vocdoni-api/delete-census","title":"Delete census","description":"Delete unpublished census (not on the storage yet). See [publish census](census-publish)\\n","sidebar":"defaultSidebar"},"vocdoni-api/election-information":{"id":"vocdoni-api/election-information","title":"Election information","description":"Get full election information","sidebar":"defaultSidebar"},"vocdoni-api/election-results":{"id":"vocdoni-api/election-results","title":"Election results","description":"Returns a given election consensus results and useful information about the results. Results represented with BigInt strings.","sidebar":"defaultSidebar"},"vocdoni-api/elections":{"id":"vocdoni-api/elections","title":"Elections","description":"Elections","sidebar":"defaultSidebar"},"vocdoni-api/estimate-block-to-date":{"id":"vocdoni-api/estimate-block-to-date","title":"Estimate block to date","description":"Returns the estimated timestamp for the block height provided","sidebar":"defaultSidebar"},"vocdoni-api/estimate-date-to-block":{"id":"vocdoni-api/estimate-date-to-block","title":"Estimate date to block","description":"Returns the estimated block height for the timestamp provided","sidebar":"defaultSidebar"},"vocdoni-api/export-census":{"id":"vocdoni-api/export-census","title":"Export census","description":"Export census to JSON format. Requires Bearer token","sidebar":"defaultSidebar"},"vocdoni-api/export-census-database":{"id":"vocdoni-api/export-census-database","title":"Export census database","description":"Export the whole census database to a JSON file. Requires Admin Bearer token.","sidebar":"defaultSidebar"},"vocdoni-api/exports-the-indexer-database":{"id":"vocdoni-api/exports-the-indexer-database","title":"Exports the indexer database","description":"Exports the indexer SQL database in raw format","sidebar":"defaultSidebar"},"vocdoni-api/get-account":{"id":"vocdoni-api/get-account","title":"Get account","description":"Get account information by its address or public key. The `infoURI` parameter contain where account metadata is uploaded (like avatar, name...). It return also an already parsed \'metadata\' object from this infoUri.","sidebar":"defaultSidebar"},"vocdoni-api/get-block-by-hash":{"id":"vocdoni-api/get-block-by-hash","title":"Get block (by hash)","description":"Returns the block from the given hash","sidebar":"defaultSidebar"},"vocdoni-api/get-block-by-height":{"id":"vocdoni-api/get-block-by-height","title":"Get block (by height)","description":"Returns the full block information at the given height","sidebar":"defaultSidebar"},"vocdoni-api/get-next-election-id":{"id":"vocdoni-api/get-next-election-id","title":"Get next election ID","description":"nextElectionIDHandler","sidebar":"defaultSidebar"},"vocdoni-api/get-type-of-census":{"id":"vocdoni-api/get-type-of-census","title":"Get type of census","description":"Get the census type","sidebar":"defaultSidebar"},"vocdoni-api/get-vote":{"id":"vocdoni-api/get-vote","title":"Get vote","description":"Get the content of an existing Vote. If is an encrypted election it return the `encryptionKeys` indexes and the package will be codified.","sidebar":"defaultSidebar"},"vocdoni-api/import-census":{"id":"vocdoni-api/import-census","title":"Import census","description":"Import census from JSON previously exported using [`/censuses/{censusId}/export`](census-export). Requires Bearer token","sidebar":"defaultSidebar"},"vocdoni-api/import-census-database":{"id":"vocdoni-api/import-census-database","title":"Import census database","description":"Import the whole census database from a JSON file.","sidebar":"defaultSidebar"},"vocdoni-api/list-account-received-and-sent-token-transfers":{"id":"vocdoni-api/list-account-received-and-sent-token-transfers","title":"List account received and sent token transfers","description":"Returns the token transfers for an account. A transfer is a token transference from one account to other (excepting the burn address).","sidebar":"defaultSidebar"},"vocdoni-api/list-account-token-fees":{"id":"vocdoni-api/list-account-token-fees","title":"List account token fees","description":"Returns the token fees for an account. A spending is an amount of tokens burnt from one account for executing transactions.","sidebar":"defaultSidebar"},"vocdoni-api/list-all-census-references":{"id":"vocdoni-api/list-all-census-references","title":"List all census references","description":"List all census references. Requires Admin Bearer token.","sidebar":"defaultSidebar"},"vocdoni-api/list-all-token-fees":{"id":"vocdoni-api/list-all-token-fees","title":"List all token fees","description":"Returns the token fees list ordered by date. A spending is an amount of tokens burnt from one account for executing transactions.","sidebar":"defaultSidebar"},"vocdoni-api/list-all-token-fees-by-reference":{"id":"vocdoni-api/list-all-token-fees-by-reference","title":"List all token fees by reference","description":"Returns the token fees list filtered by reference and ordered by date. A spending is an amount of tokens burnt from one account for executing transactions.","sidebar":"defaultSidebar"},"vocdoni-api/list-all-token-fees-by-type":{"id":"vocdoni-api/list-all-token-fees-by-type","title":"List all token fees by type","description":"Returns the token fees list filtered by type and ordered by date. A spending is an amount of tokens burnt from one account for executing transactions.","sidebar":"defaultSidebar"},"vocdoni-api/list-election-votes":{"id":"vocdoni-api/list-election-votes","title":"List election votes","description":"Returns the list of voteIDs for an election (paginated)","sidebar":"defaultSidebar"},"vocdoni-api/list-elections":{"id":"vocdoni-api/list-elections","title":"List elections","description":"Get a list of elections summaries.","sidebar":"defaultSidebar"},"vocdoni-api/list-elections-filtered":{"id":"vocdoni-api/list-elections-filtered","title":"List elections (filtered)","description":"Return a filtered elections list, the available filters have to be sent on the request body. Available are:","sidebar":"defaultSidebar"},"vocdoni-api/list-encryption-keys":{"id":"vocdoni-api/list-encryption-keys","title":"List encryption keys","description":"Returns the list of public/private encryption keys","sidebar":"defaultSidebar"},"vocdoni-api/list-of-the-existing-accounts":{"id":"vocdoni-api/list-of-the-existing-accounts","title":"List of the existing accounts","description":"Returns information (address, balance and nonce) of the existing accounts","sidebar":"defaultSidebar"},"vocdoni-api/list-of-valid-sik-roots":{"id":"vocdoni-api/list-of-valid-sik-roots","title":"List of valid SIK roots","description":"Returns the list of currently valid roots of the merkle tree where the vochain account SIK\'s are stored.","sidebar":"defaultSidebar"},"vocdoni-api/list-organization-elections":{"id":"vocdoni-api/list-organization-elections","title":"List organization elections","description":"List the elections of an organization","sidebar":"defaultSidebar"},"vocdoni-api/list-organization-elections-by-status":{"id":"vocdoni-api/list-organization-elections-by-status","title":"List organization elections by status","description":"List the elections of an organization by status","sidebar":"defaultSidebar"},"vocdoni-api/list-organizations":{"id":"vocdoni-api/list-organizations","title":"List organizations","description":"An **Organizations** is an account with `infoUri` that contains organization associated metadata.","sidebar":"defaultSidebar"},"vocdoni-api/list-organizations-filtered":{"id":"vocdoni-api/list-organizations-filtered","title":"List organizations (filtered)","description":"Returns a list of organizations filtered by its partial id, paginated by the given page","sidebar":"defaultSidebar"},"vocdoni-api/list-transactions":{"id":"vocdoni-api/list-transactions","title":"List Transactions","description":"To get full transaction information use [/chain/transaction/{blockHeight}/{txIndex}](transaction-by-block-index).\\nWhere transactionIndex is the index of the transaction on the containing block.","sidebar":"defaultSidebar"},"vocdoni-api/list-validators":{"id":"vocdoni-api/list-validators","title":"List validators","description":"Returns the list of validators","sidebar":"defaultSidebar"},"vocdoni-api/price-factors-information":{"id":"vocdoni-api/price-factors-information","title":"Price factors information","description":"Package electionprice provides a mechanism for calculating the price of an election based on its characteristics.","sidebar":"defaultSidebar"},"vocdoni-api/prove-key-to-census":{"id":"vocdoni-api/prove-key-to-census","title":"Prove key to census","description":"Prove the key and weight belong to the census root hash.","sidebar":"defaultSidebar"},"vocdoni-api/publish-census":{"id":"vocdoni-api/publish-census","title":"Publish census","description":"Register a census to the storage (IPFS in our case). After this, the census can\'t be edited.","sidebar":"defaultSidebar"},"vocdoni-api/publish-census-at-root":{"id":"vocdoni-api/publish-census-at-root","title":"Publish census at root","description":"Register a census to the storage (IPFS in our case). After this, the census can\'t be edited.","sidebar":"defaultSidebar"},"vocdoni-api/returns-if-the-address-provided-has-a-valid-sik":{"id":"vocdoni-api/returns-if-the-address-provided-has-a-valid-sik","title":"Returns if the address provided has a valid SIK","description":"Returns if the address provided, associated to an a registered account or not, has a valid SIK already registered or not.","sidebar":"defaultSidebar"},"vocdoni-api/set-account":{"id":"vocdoni-api/set-account","title":"Set account","description":"It register an account to the blockchain including IPFS metadata upload.","sidebar":"defaultSidebar"},"vocdoni-api/set-wallet-account":{"id":"vocdoni-api/set-wallet-account","title":"Set wallet account","description":"Set a new account. Needed the bearer token associated the account.","sidebar":"defaultSidebar"},"vocdoni-api/sik":{"id":"vocdoni-api/sik","title":"SIK","description":"SIK","sidebar":"defaultSidebar"},"vocdoni-api/submit-a-vote":{"id":"vocdoni-api/submit-a-vote","title":"Submit a vote","description":"Submit a vote using a protobuf signed transaction. The corresponding result are the vote id and transaction hash where the vote is registered.","sidebar":"defaultSidebar"},"vocdoni-api/submit-transaction":{"id":"vocdoni-api/submit-transaction","title":"Submit transaction","description":"It submit a transaction. Depending of transaction type will return different kinds of responses:","sidebar":"defaultSidebar"},"vocdoni-api/total-number-of-accounts":{"id":"vocdoni-api/total-number-of-accounts","title":"Total number of accounts","description":"Returns the count of total number of existing accounts","sidebar":"defaultSidebar"},"vocdoni-api/total-number-of-sent-and-received-transactions":{"id":"vocdoni-api/total-number-of-sent-and-received-transactions","title":"Total number of sent and received transactions","description":"Returns the count of total number of sent and received transactions for an account. A transaction is a token transfer from one account to another existing account","sidebar":"defaultSidebar"},"vocdoni-api/transaction-by-block-height-and-index":{"id":"vocdoni-api/transaction-by-block-height-and-index","title":"Transaction by block height and index","description":"Get transaction full information by block height and index. It returns JSON transaction protobuf encoded. Depending of transaction type will return different types of objects. Current transaction types can be found calling `/chain/transactions/cost`","sidebar":"defaultSidebar"},"vocdoni-api/transaction-by-hash":{"id":"vocdoni-api/transaction-by-hash","title":"Transaction by hash","description":"Using transaction hash it return the `block` and `index` containing that contains the transaction. After, you could use this `block` and `index` to retrieve transaction full info using [transaction by block and index](transaction-by-block-index)","sidebar":"defaultSidebar"},"vocdoni-api/transaction-by-index":{"id":"vocdoni-api/transaction-by-index","title":"Transaction by index","description":"Get transaction by its index. This is not transaction reference (hash), and neither the block height and block index. The transaction index is an incremental counter for each transaction. You could use the transaction `block` and `index` to retrieve full info using [transaction by block and index](transaction-by-block-index).","sidebar":"defaultSidebar"},"vocdoni-api/transaction-costs":{"id":"vocdoni-api/transaction-costs","title":"Transaction costs","description":"Returns the list of transactions and its cost","sidebar":"defaultSidebar"},"vocdoni-api/transactions-count":{"id":"vocdoni-api/transactions-count","title":"Transactions count","description":"Returns the number of transactions","sidebar":"defaultSidebar"},"vocdoni-api/transactions-in-a-block":{"id":"vocdoni-api/transactions-in-a-block","title":"Transactions in a block","description":"Given a block returns the list of transactions for that block","sidebar":"defaultSidebar"},"vocdoni-api/transfer-tokens":{"id":"vocdoni-api/transfer-tokens","title":"Transfer tokens","description":"Transfer balance to another account. Needed the bearer token associated the account.","sidebar":"defaultSidebar"},"vocdoni-api/verify-merkle-proof":{"id":"vocdoni-api/verify-merkle-proof","title":"Verify merkle proof","description":"Verify that a previously obtained Merkle proof for a key, acquired via [/censuses/{censusId}/proof/{publicKey}](prove-key-to-census) is still correct.","sidebar":"defaultSidebar"},"vocdoni-api/verify-vote":{"id":"vocdoni-api/verify-vote","title":"Verify vote","description":"Check if vote is registered on the blockchain on specific election. Just return Ok status code","sidebar":"defaultSidebar"},"vocdoni-api/vocdoni-api":{"id":"vocdoni-api/vocdoni-api","title":"Vocdoni API","description":"The Vocdoni API is a REST API that substitutes the previous RPCs in order to make it easier for developers/integrators to build on top of the voting protocol. This API facilitates creating votings using Vocdoni, without the hassle of learning a complex blockchain platform, allowing to perform all the features that enable the voting protocol such as creating an account, entity, voting process, census & vote, abstracting as much as possible the complexity and offering simple and straightforward methods to perform those actions.","sidebar":"defaultSidebar"},"vocdoni-api/vochain-information":{"id":"vocdoni-api/vochain-information","title":"Vochain information","description":"Return basic Vocdoni Blockchain (Vochain) information like blockTime, chainId, current height...","sidebar":"defaultSidebar"},"vocdoni-api/votes":{"id":"vocdoni-api/votes","title":"Votes","description":"Votes","sidebar":"defaultSidebar"},"vocdoni-api/wallet":{"id":"vocdoni-api/wallet","title":"Wallet","description":"Wallet","sidebar":"defaultSidebar"}}}')}}]); \ No newline at end of file diff --git a/assets/js/935f2afb.fcc23445.js b/assets/js/935f2afb.fcc23445.js deleted file mode 100644 index a30630370..000000000 --- a/assets/js/935f2afb.fcc23445.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkdemo=self.webpackChunkdemo||[]).push([[53],{1109:e=>{e.exports=JSON.parse('{"pluginId":"default","version":"current","label":"Next","banner":null,"badge":false,"noIndex":false,"className":"docs-version-current","isLast":true,"docsSidebars":{"defaultSidebar":[{"type":"link","label":"Getting Started","href":"/intro","docId":"intro"},{"type":"category","label":"Vocdoni Protocol","collapsible":true,"collapsed":true,"items":[{"type":"category","label":"Anonymous Voting","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"CSP Blind Signatures","href":"/protocol/anonymity/blind-signatures","docId":"protocol/anonymity/blind-signatures"},{"type":"link","label":"On-Chain Census Anonymity","href":"/protocol/anonymity/on-chain","docId":"protocol/anonymity/on-chain"},{"type":"link","label":"Off-Chain Tree ZK Census Proof","href":"/protocol/anonymity/zk-census-proof","docId":"protocol/anonymity/zk-census-proof"}],"href":"/protocol/anonymity/"},{"type":"link","label":"Ballot Protocol","href":"/protocol/ballot-protocol","docId":"protocol/ballot-protocol"},{"type":"category","label":"The Census","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Off-Chain CSP Census","href":"/protocol/census/off-chain-csp","docId":"protocol/census/off-chain-csp"},{"type":"link","label":"Off-Chain Tree Census","href":"/protocol/census/off-chain-tree","docId":"protocol/census/off-chain-tree"},{"type":"link","label":"On-Chain Census","href":"/protocol/census/on-chain","docId":"protocol/census/on-chain"}],"href":"/protocol/census/"},{"type":"category","label":"Data Schemes","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Election Metadata","href":"/protocol/data-schemes/election","docId":"protocol/data-schemes/election"},{"type":"link","label":"Organization Metadata","href":"/protocol/data-schemes/organization","docId":"protocol/data-schemes/organization"},{"type":"link","label":"Vote Data","href":"/protocol/data-schemes/vote","docId":"protocol/data-schemes/vote"}],"href":"/protocol/data-schemes/"}],"href":"/protocol/"},{"type":"category","label":"Vocdoni SDK","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"SDK Tutorial","href":"/sdk/tutorial","docId":"sdk/tutorial"},{"type":"category","label":"Integration Details","collapsible":true,"collapsed":true,"items":[{"type":"category","label":"Census Types","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Off-chain Credential Service Provider","href":"/sdk/integration-details/census-types/off-chain-csp","docId":"sdk/integration-details/census-types/off-chain-csp"},{"type":"link","label":"Off-chain Merkle Tree","href":"/sdk/integration-details/census-types/off-chain-tree","docId":"sdk/integration-details/census-types/off-chain-tree"},{"type":"category","label":"On-chain Token-Based Census","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Complex Census","href":"/sdk/integration-details/census-types/on-chain/complex-census","docId":"sdk/integration-details/census-types/on-chain/complex-census"}],"href":"/sdk/integration-details/census-types/on-chain/"}],"href":"/sdk/integration-details/census-types/"},{"type":"link","label":"Vocdoni Tokens","href":"/sdk/integration-details/vocdoni-tokens","docId":"sdk/integration-details/vocdoni-tokens"},{"type":"category","label":"Voting Types","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Single Choice Voting","href":"/sdk/integration-details/voting-types/single-choice","docId":"sdk/integration-details/voting-types/single-choice"},{"type":"link","label":"Ranked Voting","href":"/sdk/integration-details/voting-types/ranked","docId":"sdk/integration-details/voting-types/ranked"},{"type":"link","label":"Approval Voting (Multiple Choice)","href":"/sdk/integration-details/voting-types/approval","docId":"sdk/integration-details/voting-types/approval"},{"type":"link","label":"Weighted voting","href":"/sdk/integration-details/voting-types/weighted","docId":"sdk/integration-details/voting-types/weighted"},{"type":"link","label":"Quadratic voting","href":"/sdk/integration-details/voting-types/quadratic","docId":"sdk/integration-details/voting-types/quadratic"}],"href":"/sdk/integration-details/voting-types/"}],"href":"/sdk/integration-details/"},{"type":"category","label":"Reference","collapsible":true,"collapsed":true,"items":[{"type":"category","label":"Classes","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Account","href":"/sdk/reference/classes/Account","docId":"sdk/reference/classes/Account"},{"type":"link","label":"AccountAPI","href":"/sdk/reference/classes/AccountAPI","docId":"sdk/reference/classes/AccountAPI"},{"type":"link","label":"AccountService","href":"/sdk/reference/classes/AccountService","docId":"sdk/reference/classes/AccountService"},{"type":"link","label":"AnonymousService","href":"/sdk/reference/classes/AnonymousService","docId":"sdk/reference/classes/AnonymousService"},{"type":"link","label":"AnonymousVote","href":"/sdk/reference/classes/AnonymousVote","docId":"sdk/reference/classes/AnonymousVote"},{"type":"link","label":"ApprovalElection","href":"/sdk/reference/classes/ApprovalElection","docId":"sdk/reference/classes/ApprovalElection"},{"type":"link","label":"ArchivedElection","href":"/sdk/reference/classes/ArchivedElection","docId":"sdk/reference/classes/ArchivedElection"},{"type":"link","label":"BudgetElection","href":"/sdk/reference/classes/BudgetElection","docId":"sdk/reference/classes/BudgetElection"},{"type":"link","label":"Census","href":"/sdk/reference/classes/Census","docId":"sdk/reference/classes/Census"},{"type":"link","label":"Census3CensusAPI","href":"/sdk/reference/classes/Census3CensusAPI","docId":"sdk/reference/classes/Census3CensusAPI"},{"type":"link","label":"Census3ServiceAPI","href":"/sdk/reference/classes/Census3ServiceAPI","docId":"sdk/reference/classes/Census3ServiceAPI"},{"type":"link","label":"Census3StrategyAPI","href":"/sdk/reference/classes/Census3StrategyAPI","docId":"sdk/reference/classes/Census3StrategyAPI"},{"type":"link","label":"Census3TokenAPI","href":"/sdk/reference/classes/Census3TokenAPI","docId":"sdk/reference/classes/Census3TokenAPI"},{"type":"link","label":"CensusAPI","href":"/sdk/reference/classes/CensusAPI","docId":"sdk/reference/classes/CensusAPI"},{"type":"link","label":"CensusService","href":"/sdk/reference/classes/CensusService","docId":"sdk/reference/classes/CensusService"},{"type":"link","label":"ChainAPI","href":"/sdk/reference/classes/ChainAPI","docId":"sdk/reference/classes/ChainAPI"},{"type":"link","label":"ChainService","href":"/sdk/reference/classes/ChainService","docId":"sdk/reference/classes/ChainService"},{"type":"link","label":"CspCensus","href":"/sdk/reference/classes/CspCensus","docId":"sdk/reference/classes/CspCensus"},{"type":"link","label":"CspService","href":"/sdk/reference/classes/CspService","docId":"sdk/reference/classes/CspService"},{"type":"link","label":"CspVote","href":"/sdk/reference/classes/CspVote","docId":"sdk/reference/classes/CspVote"},{"type":"link","label":"Election","href":"/sdk/reference/classes/Election","docId":"sdk/reference/classes/Election"},{"type":"link","label":"ElectionAPI","href":"/sdk/reference/classes/ElectionAPI","docId":"sdk/reference/classes/ElectionAPI"},{"type":"link","label":"ElectionService","href":"/sdk/reference/classes/ElectionService","docId":"sdk/reference/classes/ElectionService"},{"type":"link","label":"FaucetAPI","href":"/sdk/reference/classes/FaucetAPI","docId":"sdk/reference/classes/FaucetAPI"},{"type":"link","label":"FaucetService","href":"/sdk/reference/classes/FaucetService","docId":"sdk/reference/classes/FaucetService"},{"type":"link","label":"FileAPI","href":"/sdk/reference/classes/FileAPI","docId":"sdk/reference/classes/FileAPI"},{"type":"link","label":"FileService","href":"/sdk/reference/classes/FileService","docId":"sdk/reference/classes/FileService"},{"type":"link","label":"InvalidElection","href":"/sdk/reference/classes/InvalidElection","docId":"sdk/reference/classes/InvalidElection"},{"type":"link","label":"MultiChoiceElection","href":"/sdk/reference/classes/MultiChoiceElection","docId":"sdk/reference/classes/MultiChoiceElection"},{"type":"link","label":"OffchainCensus","href":"/sdk/reference/classes/OffchainCensus","docId":"sdk/reference/classes/OffchainCensus"},{"type":"link","label":"PlainCensus","href":"/sdk/reference/classes/PlainCensus","docId":"sdk/reference/classes/PlainCensus"},{"type":"link","label":"PublishedCensus","href":"/sdk/reference/classes/PublishedCensus","docId":"sdk/reference/classes/PublishedCensus"},{"type":"link","label":"PublishedElection","href":"/sdk/reference/classes/PublishedElection","docId":"sdk/reference/classes/PublishedElection"},{"type":"link","label":"Service","href":"/sdk/reference/classes/Service","docId":"sdk/reference/classes/Service"},{"type":"link","label":"TokenCensus","href":"/sdk/reference/classes/TokenCensus","docId":"sdk/reference/classes/TokenCensus"},{"type":"link","label":"UnpublishedElection","href":"/sdk/reference/classes/UnpublishedElection","docId":"sdk/reference/classes/UnpublishedElection"},{"type":"link","label":"VocdoniCensus3Client","href":"/sdk/reference/classes/VocdoniCensus3Client","docId":"sdk/reference/classes/VocdoniCensus3Client"},{"type":"link","label":"VocdoniSDKClient","href":"/sdk/reference/classes/VocdoniSDKClient","docId":"sdk/reference/classes/VocdoniSDKClient"},{"type":"link","label":"Vote","href":"/sdk/reference/classes/Vote","docId":"sdk/reference/classes/Vote"},{"type":"link","label":"VoteAPI","href":"/sdk/reference/classes/VoteAPI","docId":"sdk/reference/classes/VoteAPI"},{"type":"link","label":"VoteService","href":"/sdk/reference/classes/VoteService","docId":"sdk/reference/classes/VoteService"},{"type":"link","label":"WalletAPI","href":"/sdk/reference/classes/WalletAPI","docId":"sdk/reference/classes/WalletAPI"},{"type":"link","label":"WeightedCensus","href":"/sdk/reference/classes/WeightedCensus","docId":"sdk/reference/classes/WeightedCensus"}]},{"type":"category","label":"Enums","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"CensusOrigin","href":"/sdk/reference/enums/CensusOrigin","docId":"sdk/reference/enums/CensusOrigin"},{"type":"link","label":"CensusType","href":"/sdk/reference/enums/CensusType","docId":"sdk/reference/enums/CensusType"},{"type":"link","label":"CensusTypeEnum","href":"/sdk/reference/enums/CensusTypeEnum","docId":"sdk/reference/enums/CensusTypeEnum"},{"type":"link","label":"CspProofType","href":"/sdk/reference/enums/CspProofType","docId":"sdk/reference/enums/CspProofType"},{"type":"link","label":"ElectionCreationSteps","href":"/sdk/reference/enums/ElectionCreationSteps","docId":"sdk/reference/enums/ElectionCreationSteps"},{"type":"link","label":"ElectionResultsTypeNames","href":"/sdk/reference/enums/ElectionResultsTypeNames","docId":"sdk/reference/enums/ElectionResultsTypeNames"},{"type":"link","label":"ElectionStatus","href":"/sdk/reference/enums/ElectionStatus","docId":"sdk/reference/enums/ElectionStatus"},{"type":"link","label":"ElectionStatusReady","href":"/sdk/reference/enums/ElectionStatusReady","docId":"sdk/reference/enums/ElectionStatusReady"},{"type":"link","label":"EnvOptions","href":"/sdk/reference/enums/EnvOptions","docId":"sdk/reference/enums/EnvOptions"},{"type":"link","label":"TransactionType","href":"/sdk/reference/enums/TransactionType","docId":"sdk/reference/enums/TransactionType"},{"type":"link","label":"TxType","href":"/sdk/reference/enums/TxType","docId":"sdk/reference/enums/TxType"},{"type":"link","label":"VoteSteps","href":"/sdk/reference/enums/VoteSteps","docId":"sdk/reference/enums/VoteSteps"}]},{"type":"category","label":"Interfaces","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"AccountMetadata","href":"/sdk/reference/interfaces/AccountMetadata","docId":"sdk/reference/interfaces/AccountMetadata"},{"type":"link","label":"AdminTx","href":"/sdk/reference/interfaces/AdminTx","docId":"sdk/reference/interfaces/AdminTx"},{"type":"link","label":"CircuitInputs","href":"/sdk/reference/interfaces/CircuitInputs","docId":"sdk/reference/interfaces/CircuitInputs"},{"type":"link","label":"CollectFaucetTx","href":"/sdk/reference/interfaces/CollectFaucetTx","docId":"sdk/reference/interfaces/CollectFaucetTx"},{"type":"link","label":"ElectionMetadata","href":"/sdk/reference/interfaces/ElectionMetadata","docId":"sdk/reference/interfaces/ElectionMetadata"},{"type":"link","label":"FetchElectionsParameters","href":"/sdk/reference/interfaces/FetchElectionsParameters","docId":"sdk/reference/interfaces/FetchElectionsParameters"},{"type":"link","label":"IAccount","href":"/sdk/reference/interfaces/IAccount","docId":"sdk/reference/interfaces/IAccount"},{"type":"link","label":"IAccountTransfersCountResponse","href":"/sdk/reference/interfaces/IAccountTransfersCountResponse","docId":"sdk/reference/interfaces/IAccountTransfersCountResponse"},{"type":"link","label":"IAccountsCountResponse","href":"/sdk/reference/interfaces/IAccountsCountResponse","docId":"sdk/reference/interfaces/IAccountsCountResponse"},{"type":"link","label":"IAccountsListResponse","href":"/sdk/reference/interfaces/IAccountsListResponse","docId":"sdk/reference/interfaces/IAccountsListResponse"},{"type":"link","label":"IApprovalElectionParameters","href":"/sdk/reference/interfaces/IApprovalElectionParameters","docId":"sdk/reference/interfaces/IApprovalElectionParameters"},{"type":"link","label":"IBlockTransactionsResponse","href":"/sdk/reference/interfaces/IBlockTransactionsResponse","docId":"sdk/reference/interfaces/IBlockTransactionsResponse"},{"type":"link","label":"IBudgetElectionParametersInfo","href":"/sdk/reference/interfaces/IBudgetElectionParametersInfo","docId":"sdk/reference/interfaces/IBudgetElectionParametersInfo"},{"type":"link","label":"IBudgetElectionParametersWithBudget","href":"/sdk/reference/interfaces/IBudgetElectionParametersWithBudget","docId":"sdk/reference/interfaces/IBudgetElectionParametersWithBudget"},{"type":"link","label":"IBudgetElectionParametersWithCensusWeight","href":"/sdk/reference/interfaces/IBudgetElectionParametersWithCensusWeight","docId":"sdk/reference/interfaces/IBudgetElectionParametersWithCensusWeight"},{"type":"link","label":"ICensus","href":"/sdk/reference/interfaces/ICensus","docId":"sdk/reference/interfaces/ICensus"},{"type":"link","label":"ICensus3CensusListResponse","href":"/sdk/reference/interfaces/ICensus3CensusListResponse","docId":"sdk/reference/interfaces/ICensus3CensusListResponse"},{"type":"link","label":"ICensus3CensusQueueResponse","href":"/sdk/reference/interfaces/ICensus3CensusQueueResponse","docId":"sdk/reference/interfaces/ICensus3CensusQueueResponse"},{"type":"link","label":"ICensus3CensusResponse","href":"/sdk/reference/interfaces/ICensus3CensusResponse","docId":"sdk/reference/interfaces/ICensus3CensusResponse"},{"type":"link","label":"ICensus3ServiceInfoResponse","href":"/sdk/reference/interfaces/ICensus3ServiceInfoResponse","docId":"sdk/reference/interfaces/ICensus3ServiceInfoResponse"},{"type":"link","label":"ICensus3StrategiesListResponse","href":"/sdk/reference/interfaces/ICensus3StrategiesListResponse","docId":"sdk/reference/interfaces/ICensus3StrategiesListResponse"},{"type":"link","label":"ICensus3StrategiesListResponsePaginated","href":"/sdk/reference/interfaces/ICensus3StrategiesListResponsePaginated","docId":"sdk/reference/interfaces/ICensus3StrategiesListResponsePaginated"},{"type":"link","label":"ICensus3StrategiesOperator","href":"/sdk/reference/interfaces/ICensus3StrategiesOperator","docId":"sdk/reference/interfaces/ICensus3StrategiesOperator"},{"type":"link","label":"ICensus3StrategiesOperatorsResponse","href":"/sdk/reference/interfaces/ICensus3StrategiesOperatorsResponse","docId":"sdk/reference/interfaces/ICensus3StrategiesOperatorsResponse"},{"type":"link","label":"ICensus3StrategyCreateResponse","href":"/sdk/reference/interfaces/ICensus3StrategyCreateResponse","docId":"sdk/reference/interfaces/ICensus3StrategyCreateResponse"},{"type":"link","label":"ICensus3StrategyEstimationQueueResponse","href":"/sdk/reference/interfaces/ICensus3StrategyEstimationQueueResponse","docId":"sdk/reference/interfaces/ICensus3StrategyEstimationQueueResponse"},{"type":"link","label":"ICensus3StrategyHoldersResponse","href":"/sdk/reference/interfaces/ICensus3StrategyHoldersResponse","docId":"sdk/reference/interfaces/ICensus3StrategyHoldersResponse"},{"type":"link","label":"ICensus3StrategyHoldersResponsePaginated","href":"/sdk/reference/interfaces/ICensus3StrategyHoldersResponsePaginated","docId":"sdk/reference/interfaces/ICensus3StrategyHoldersResponsePaginated"},{"type":"link","label":"ICensus3StrategyImportQueueResponse","href":"/sdk/reference/interfaces/ICensus3StrategyImportQueueResponse","docId":"sdk/reference/interfaces/ICensus3StrategyImportQueueResponse"},{"type":"link","label":"ICensus3StrategyToken","href":"/sdk/reference/interfaces/ICensus3StrategyToken","docId":"sdk/reference/interfaces/ICensus3StrategyToken"},{"type":"link","label":"ICensus3SupportedChain","href":"/sdk/reference/interfaces/ICensus3SupportedChain","docId":"sdk/reference/interfaces/ICensus3SupportedChain"},{"type":"link","label":"ICensus3TokenHolderResponse","href":"/sdk/reference/interfaces/ICensus3TokenHolderResponse","docId":"sdk/reference/interfaces/ICensus3TokenHolderResponse"},{"type":"link","label":"ICensus3TokenListResponse","href":"/sdk/reference/interfaces/ICensus3TokenListResponse","docId":"sdk/reference/interfaces/ICensus3TokenListResponse"},{"type":"link","label":"ICensus3TokenListResponsePaginated","href":"/sdk/reference/interfaces/ICensus3TokenListResponsePaginated","docId":"sdk/reference/interfaces/ICensus3TokenListResponsePaginated"},{"type":"link","label":"ICensus3TokenTypesResponse","href":"/sdk/reference/interfaces/ICensus3TokenTypesResponse","docId":"sdk/reference/interfaces/ICensus3TokenTypesResponse"},{"type":"link","label":"ICensus3ValidatePredicateChild","href":"/sdk/reference/interfaces/ICensus3ValidatePredicateChild","docId":"sdk/reference/interfaces/ICensus3ValidatePredicateChild"},{"type":"link","label":"ICensus3ValidatePredicateResponse","href":"/sdk/reference/interfaces/ICensus3ValidatePredicateResponse","docId":"sdk/reference/interfaces/ICensus3ValidatePredicateResponse"},{"type":"link","label":"ICensus3ValidatePredicateToken","href":"/sdk/reference/interfaces/ICensus3ValidatePredicateToken","docId":"sdk/reference/interfaces/ICensus3ValidatePredicateToken"},{"type":"link","label":"ICensusExportResponse","href":"/sdk/reference/interfaces/ICensusExportResponse","docId":"sdk/reference/interfaces/ICensusExportResponse"},{"type":"link","label":"ICensusImportResponse","href":"/sdk/reference/interfaces/ICensusImportResponse","docId":"sdk/reference/interfaces/ICensusImportResponse"},{"type":"link","label":"ICensusParticipant","href":"/sdk/reference/interfaces/ICensusParticipant","docId":"sdk/reference/interfaces/ICensusParticipant"},{"type":"link","label":"ICensusProofResponse","href":"/sdk/reference/interfaces/ICensusProofResponse","docId":"sdk/reference/interfaces/ICensusProofResponse"},{"type":"link","label":"ICensusPublishResponse","href":"/sdk/reference/interfaces/ICensusPublishResponse","docId":"sdk/reference/interfaces/ICensusPublishResponse"},{"type":"link","label":"IChainBlockInfoResponse","href":"/sdk/reference/interfaces/IChainBlockInfoResponse","docId":"sdk/reference/interfaces/IChainBlockInfoResponse"},{"type":"link","label":"IChainGetCircuitResponse","href":"/sdk/reference/interfaces/IChainGetCircuitResponse","docId":"sdk/reference/interfaces/IChainGetCircuitResponse"},{"type":"link","label":"IChainGetCostsResponse","href":"/sdk/reference/interfaces/IChainGetCostsResponse","docId":"sdk/reference/interfaces/IChainGetCostsResponse"},{"type":"link","label":"IChainGetInfoResponse","href":"/sdk/reference/interfaces/IChainGetInfoResponse","docId":"sdk/reference/interfaces/IChainGetInfoResponse"},{"type":"link","label":"IChainOrganizationCountResponse","href":"/sdk/reference/interfaces/IChainOrganizationCountResponse","docId":"sdk/reference/interfaces/IChainOrganizationCountResponse"},{"type":"link","label":"IChainOrganizationListResponse","href":"/sdk/reference/interfaces/IChainOrganizationListResponse","docId":"sdk/reference/interfaces/IChainOrganizationListResponse"},{"type":"link","label":"IChainOrganizationResponse","href":"/sdk/reference/interfaces/IChainOrganizationResponse","docId":"sdk/reference/interfaces/IChainOrganizationResponse"},{"type":"link","label":"IChainSubmitTxResponse","href":"/sdk/reference/interfaces/IChainSubmitTxResponse","docId":"sdk/reference/interfaces/IChainSubmitTxResponse"},{"type":"link","label":"IChainTxCountResponse","href":"/sdk/reference/interfaces/IChainTxCountResponse","docId":"sdk/reference/interfaces/IChainTxCountResponse"},{"type":"link","label":"IChainTxListResponse","href":"/sdk/reference/interfaces/IChainTxListResponse","docId":"sdk/reference/interfaces/IChainTxListResponse"},{"type":"link","label":"IChainTxReference","href":"/sdk/reference/interfaces/IChainTxReference","docId":"sdk/reference/interfaces/IChainTxReference"},{"type":"link","label":"IChainValidator","href":"/sdk/reference/interfaces/IChainValidator","docId":"sdk/reference/interfaces/IChainValidator"},{"type":"link","label":"IChainValidatorsListResponse","href":"/sdk/reference/interfaces/IChainValidatorsListResponse","docId":"sdk/reference/interfaces/IChainValidatorsListResponse"},{"type":"link","label":"IChoice","href":"/sdk/reference/interfaces/IChoice","docId":"sdk/reference/interfaces/IChoice"},{"type":"link","label":"IElectionCreateResponse","href":"/sdk/reference/interfaces/IElectionCreateResponse","docId":"sdk/reference/interfaces/IElectionCreateResponse"},{"type":"link","label":"IElectionInfoResponse","href":"/sdk/reference/interfaces/IElectionInfoResponse","docId":"sdk/reference/interfaces/IElectionInfoResponse"},{"type":"link","label":"IElectionKeysResponse","href":"/sdk/reference/interfaces/IElectionKeysResponse","docId":"sdk/reference/interfaces/IElectionKeysResponse"},{"type":"link","label":"IElectionListFilter","href":"/sdk/reference/interfaces/IElectionListFilter","docId":"sdk/reference/interfaces/IElectionListFilter"},{"type":"link","label":"IElectionListResponse","href":"/sdk/reference/interfaces/IElectionListResponse","docId":"sdk/reference/interfaces/IElectionListResponse"},{"type":"link","label":"IElectionMode","href":"/sdk/reference/interfaces/IElectionMode","docId":"sdk/reference/interfaces/IElectionMode"},{"type":"link","label":"IElectionNextIdResponse","href":"/sdk/reference/interfaces/IElectionNextIdResponse","docId":"sdk/reference/interfaces/IElectionNextIdResponse"},{"type":"link","label":"IElectionParameters","href":"/sdk/reference/interfaces/IElectionParameters","docId":"sdk/reference/interfaces/IElectionParameters"},{"type":"link","label":"IElectionSummary","href":"/sdk/reference/interfaces/IElectionSummary","docId":"sdk/reference/interfaces/IElectionSummary"},{"type":"link","label":"IElectionType","href":"/sdk/reference/interfaces/IElectionType","docId":"sdk/reference/interfaces/IElectionType"},{"type":"link","label":"IElectionVote","href":"/sdk/reference/interfaces/IElectionVote","docId":"sdk/reference/interfaces/IElectionVote"},{"type":"link","label":"IElectionVoteListResponse","href":"/sdk/reference/interfaces/IElectionVoteListResponse","docId":"sdk/reference/interfaces/IElectionVoteListResponse"},{"type":"link","label":"IEncryptionKey","href":"/sdk/reference/interfaces/IEncryptionKey","docId":"sdk/reference/interfaces/IEncryptionKey"},{"type":"link","label":"IInvalidElectionParameters","href":"/sdk/reference/interfaces/IInvalidElectionParameters","docId":"sdk/reference/interfaces/IInvalidElectionParameters"},{"type":"link","label":"IMultiChoiceElectionParameters","href":"/sdk/reference/interfaces/IMultiChoiceElectionParameters","docId":"sdk/reference/interfaces/IMultiChoiceElectionParameters"},{"type":"link","label":"IPublishedElectionParameters","href":"/sdk/reference/interfaces/IPublishedElectionParameters","docId":"sdk/reference/interfaces/IPublishedElectionParameters"},{"type":"link","label":"IQuestion","href":"/sdk/reference/interfaces/IQuestion","docId":"sdk/reference/interfaces/IQuestion"},{"type":"link","label":"ITallyMode","href":"/sdk/reference/interfaces/ITallyMode","docId":"sdk/reference/interfaces/ITallyMode"},{"type":"link","label":"IVoteInfoResponse","href":"/sdk/reference/interfaces/IVoteInfoResponse","docId":"sdk/reference/interfaces/IVoteInfoResponse"},{"type":"link","label":"IVoteMode","href":"/sdk/reference/interfaces/IVoteMode","docId":"sdk/reference/interfaces/IVoteMode"},{"type":"link","label":"IVoteSubmitResponse","href":"/sdk/reference/interfaces/IVoteSubmitResponse","docId":"sdk/reference/interfaces/IVoteSubmitResponse"},{"type":"link","label":"IVoteType","href":"/sdk/reference/interfaces/IVoteType","docId":"sdk/reference/interfaces/IVoteType"},{"type":"link","label":"MintTokensTx","href":"/sdk/reference/interfaces/MintTokensTx","docId":"sdk/reference/interfaces/MintTokensTx"},{"type":"link","label":"NewProcessTx","href":"/sdk/reference/interfaces/NewProcessTx","docId":"sdk/reference/interfaces/NewProcessTx"},{"type":"link","label":"Process","href":"/sdk/reference/interfaces/Process","docId":"sdk/reference/interfaces/Process"},{"type":"link","label":"Proof","href":"/sdk/reference/interfaces/Proof","docId":"sdk/reference/interfaces/Proof"},{"type":"link","label":"RegisterKeyTx","href":"/sdk/reference/interfaces/RegisterKeyTx","docId":"sdk/reference/interfaces/RegisterKeyTx"},{"type":"link","label":"SendTokensTx","href":"/sdk/reference/interfaces/SendTokensTx","docId":"sdk/reference/interfaces/SendTokensTx"},{"type":"link","label":"ServiceProperties","href":"/sdk/reference/interfaces/ServiceProperties","docId":"sdk/reference/interfaces/ServiceProperties"},{"type":"link","label":"SetAccountTx","href":"/sdk/reference/interfaces/SetAccountTx","docId":"sdk/reference/interfaces/SetAccountTx"},{"type":"link","label":"SetProcessTx","href":"/sdk/reference/interfaces/SetProcessTx","docId":"sdk/reference/interfaces/SetProcessTx"},{"type":"link","label":"SetTransactionCostsTx","href":"/sdk/reference/interfaces/SetTransactionCostsTx","docId":"sdk/reference/interfaces/SetTransactionCostsTx"},{"type":"link","label":"Tx","href":"/sdk/reference/interfaces/Tx","docId":"sdk/reference/interfaces/Tx"},{"type":"link","label":"VoteEnvelope","href":"/sdk/reference/interfaces/VoteEnvelope","docId":"sdk/reference/interfaces/VoteEnvelope"}]},{"type":"link","label":"Modules","href":"/sdk/reference/modules","docId":"sdk/reference/modules"},{"type":"link","label":"Changelog","href":"/sdk/reference/changelog","docId":"sdk/reference/changelog"}]}],"href":"/sdk/"},{"type":"category","label":"UI Components","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Organization components","href":"/ui-components/Organization","docId":"ui-components/Organization"},{"type":"link","label":"Election components","href":"/ui-components/Election","docId":"ui-components/Election"}],"href":"/ui-components/"},{"type":"category","label":"Vocdoni API","items":[{"type":"category","label":"Chain","items":[{"type":"link","label":"Estimate block to date","href":"/vocdoni-api/estimate-block-to-date","className":"api-method get","docId":"vocdoni-api/estimate-block-to-date"},{"type":"link","label":"Get block (by hash)","href":"/vocdoni-api/get-block-by-hash","className":"api-method get","docId":"vocdoni-api/get-block-by-hash"},{"type":"link","label":"Get block (by height)","href":"/vocdoni-api/get-block-by-height","className":"api-method get","docId":"vocdoni-api/get-block-by-height"},{"type":"link","label":"Transactions in a block","href":"/vocdoni-api/transactions-in-a-block","className":"api-method get","docId":"vocdoni-api/transactions-in-a-block"},{"type":"link","label":"Estimate date to block","href":"/vocdoni-api/estimate-date-to-block","className":"api-method get","docId":"vocdoni-api/estimate-date-to-block"},{"type":"link","label":"Vochain information","href":"/vocdoni-api/vochain-information","className":"api-method get","docId":"vocdoni-api/vochain-information"},{"type":"link","label":"Circuit info","href":"/vocdoni-api/circuit-info","className":"api-method get","docId":"vocdoni-api/circuit-info"},{"type":"link","label":"Price factors information","href":"/vocdoni-api/price-factors-information","className":"api-method get","docId":"vocdoni-api/price-factors-information"},{"type":"link","label":"Count organizations","href":"/vocdoni-api/count-organizations","className":"api-method get","docId":"vocdoni-api/count-organizations"},{"type":"link","label":"List organizations (filtered)","href":"/vocdoni-api/list-organizations-filtered","className":"api-method post","docId":"vocdoni-api/list-organizations-filtered"},{"type":"link","label":"List organizations","href":"/vocdoni-api/list-organizations","className":"api-method get","docId":"vocdoni-api/list-organizations"},{"type":"link","label":"Submit transaction","href":"/vocdoni-api/submit-transaction","className":"api-method post","docId":"vocdoni-api/submit-transaction"},{"type":"link","label":"Transaction costs","href":"/vocdoni-api/transaction-costs","className":"api-method get","docId":"vocdoni-api/transaction-costs"},{"type":"link","label":"Transactions count","href":"/vocdoni-api/transactions-count","className":"api-method get","docId":"vocdoni-api/transactions-count"},{"type":"link","label":"List Transactions","href":"/vocdoni-api/list-transactions","className":"api-method get","docId":"vocdoni-api/list-transactions"},{"type":"link","label":"Transaction by index","href":"/vocdoni-api/transaction-by-index","className":"api-method get","docId":"vocdoni-api/transaction-by-index"},{"type":"link","label":"Transaction by hash","href":"/vocdoni-api/transaction-by-hash","className":"api-method get","docId":"vocdoni-api/transaction-by-hash"},{"type":"link","label":"Transaction by block height and index","href":"/vocdoni-api/transaction-by-block-height-and-index","className":"api-method get","docId":"vocdoni-api/transaction-by-block-height-and-index"},{"type":"link","label":"List validators","href":"/vocdoni-api/list-validators","className":"api-method get","docId":"vocdoni-api/list-validators"}],"collapsed":true,"collapsible":true,"href":"/vocdoni-api/chain"},{"type":"category","label":"Accounts","items":[{"type":"link","label":"Set account","href":"/vocdoni-api/set-account","className":"api-method post","docId":"vocdoni-api/set-account"},{"type":"link","label":"Total number of accounts","href":"/vocdoni-api/total-number-of-accounts","className":"api-method get","docId":"vocdoni-api/total-number-of-accounts"},{"type":"link","label":"List of the existing accounts","href":"/vocdoni-api/list-of-the-existing-accounts","className":"api-method get","docId":"vocdoni-api/list-of-the-existing-accounts"},{"type":"link","label":"List account token fees","href":"/vocdoni-api/list-account-token-fees","className":"api-method get","docId":"vocdoni-api/list-account-token-fees"},{"type":"link","label":"Total number of sent and received transactions","href":"/vocdoni-api/total-number-of-sent-and-received-transactions","className":"api-method get","docId":"vocdoni-api/total-number-of-sent-and-received-transactions"},{"type":"link","label":"List account received and sent token transfers","href":"/vocdoni-api/list-account-received-and-sent-token-transfers","className":"api-method get","docId":"vocdoni-api/list-account-received-and-sent-token-transfers"},{"type":"link","label":"Get account","href":"/vocdoni-api/get-account","className":"api-method get","docId":"vocdoni-api/get-account"},{"type":"link","label":"Get account","href":"/vocdoni-api/get-account","className":"api-method get","docId":"vocdoni-api/get-account"},{"type":"link","label":"Count organization elections","href":"/vocdoni-api/count-organization-elections","className":"api-method get","docId":"vocdoni-api/count-organization-elections"},{"type":"link","label":"List organization elections","href":"/vocdoni-api/list-organization-elections","className":"api-method get","docId":"vocdoni-api/list-organization-elections"},{"type":"link","label":"List organization elections by status","href":"/vocdoni-api/list-organization-elections-by-status","className":"api-method get","docId":"vocdoni-api/list-organization-elections-by-status"},{"type":"link","label":"List all token fees","href":"/vocdoni-api/list-all-token-fees","className":"api-method get","docId":"vocdoni-api/list-all-token-fees"},{"type":"link","label":"List all token fees by reference","href":"/vocdoni-api/list-all-token-fees-by-reference","className":"api-method get","docId":"vocdoni-api/list-all-token-fees-by-reference"},{"type":"link","label":"List all token fees by type","href":"/vocdoni-api/list-all-token-fees-by-type","className":"api-method get","docId":"vocdoni-api/list-all-token-fees-by-type"}],"collapsed":true,"collapsible":true,"href":"/vocdoni-api/accounts"},{"type":"category","label":"Elections","items":[{"type":"link","label":"Create election","href":"/vocdoni-api/create-election","className":"api-method post","docId":"vocdoni-api/create-election"},{"type":"link","label":"List elections (filtered)","href":"/vocdoni-api/list-elections-filtered","className":"api-method post","docId":"vocdoni-api/list-elections-filtered"},{"type":"link","label":"Get next election ID","href":"/vocdoni-api/get-next-election-id","className":"api-method post","docId":"vocdoni-api/get-next-election-id"},{"type":"link","label":"List elections","href":"/vocdoni-api/list-elections","className":"api-method get","docId":"vocdoni-api/list-elections"},{"type":"link","label":"Compute election price","href":"/vocdoni-api/compute-election-price","className":"api-method post","docId":"vocdoni-api/compute-election-price"},{"type":"link","label":"Election information","href":"/vocdoni-api/election-information","className":"api-method get","docId":"vocdoni-api/election-information"},{"type":"link","label":"List encryption keys","href":"/vocdoni-api/list-encryption-keys","className":"api-method get","docId":"vocdoni-api/list-encryption-keys"},{"type":"link","label":"Election results","href":"/vocdoni-api/election-results","className":"api-method get","docId":"vocdoni-api/election-results"},{"type":"link","label":"Count election votes","href":"/vocdoni-api/count-election-votes","className":"api-method get","docId":"vocdoni-api/count-election-votes"},{"type":"link","label":"List election votes","href":"/vocdoni-api/list-election-votes","className":"api-method get","docId":"vocdoni-api/list-election-votes"},{"type":"link","label":"Compute IPFS CIDv1 of file","href":"/vocdoni-api/compute-ipfs-ci-dv-1-of-file","className":"api-method post","docId":"vocdoni-api/compute-ipfs-ci-dv-1-of-file"}],"collapsed":true,"collapsible":true,"href":"/vocdoni-api/elections"},{"type":"category","label":"Censuses","items":[{"type":"link","label":"Export census database","href":"/vocdoni-api/export-census-database","className":"api-method get","docId":"vocdoni-api/export-census-database"},{"type":"link","label":"Import census database","href":"/vocdoni-api/import-census-database","className":"api-method post","docId":"vocdoni-api/import-census-database"},{"type":"link","label":"List all census references","href":"/vocdoni-api/list-all-census-references","className":"api-method get","docId":"vocdoni-api/list-all-census-references"},{"type":"link","label":"Delete census","href":"/vocdoni-api/delete-census","className":"api-method delete","docId":"vocdoni-api/delete-census"},{"type":"link","label":"Export census","href":"/vocdoni-api/export-census","className":"api-method get","docId":"vocdoni-api/export-census"},{"type":"link","label":"Import census","href":"/vocdoni-api/import-census","className":"api-method post","docId":"vocdoni-api/import-census"},{"type":"link","label":"Add participants to census","href":"/vocdoni-api/add-participants-to-census","className":"api-method post","docId":"vocdoni-api/add-participants-to-census"},{"type":"link","label":"Prove key to census","href":"/vocdoni-api/prove-key-to-census","className":"api-method get","docId":"vocdoni-api/prove-key-to-census"},{"type":"link","label":"Publish census","href":"/vocdoni-api/publish-census","className":"api-method post","docId":"vocdoni-api/publish-census"},{"type":"link","label":"Publish census at root","href":"/vocdoni-api/publish-census-at-root","className":"api-method post","docId":"vocdoni-api/publish-census-at-root"},{"type":"link","label":"Census Merkle Root","href":"/vocdoni-api/census-merkle-root","className":"api-method get","docId":"vocdoni-api/census-merkle-root"},{"type":"link","label":"Census size","href":"/vocdoni-api/census-size","className":"api-method get","docId":"vocdoni-api/census-size"},{"type":"link","label":"Get type of census","href":"/vocdoni-api/get-type-of-census","className":"api-method get","docId":"vocdoni-api/get-type-of-census"},{"type":"link","label":"Verify merkle proof","href":"/vocdoni-api/verify-merkle-proof","className":"api-method post","docId":"vocdoni-api/verify-merkle-proof"},{"type":"link","label":"Census total weight","href":"/vocdoni-api/census-total-weight","className":"api-method get","docId":"vocdoni-api/census-total-weight"},{"type":"link","label":"Create a new census","href":"/vocdoni-api/create-a-new-census","className":"api-method post","docId":"vocdoni-api/create-a-new-census"}],"collapsed":true,"collapsible":true,"href":"/vocdoni-api/censuses"},{"type":"category","label":"Votes","items":[{"type":"link","label":"Submit a vote","href":"/vocdoni-api/submit-a-vote","className":"api-method post","docId":"vocdoni-api/submit-a-vote"},{"type":"link","label":"Verify vote","href":"/vocdoni-api/verify-vote","className":"api-method get","docId":"vocdoni-api/verify-vote"},{"type":"link","label":"Get vote","href":"/vocdoni-api/get-vote","className":"api-method get","docId":"vocdoni-api/get-vote"}],"collapsed":true,"collapsible":true,"href":"/vocdoni-api/votes"},{"type":"category","label":"Wallet","items":[{"type":"link","label":"Add account","href":"/vocdoni-api/add-account","className":"api-method post","docId":"vocdoni-api/add-account"},{"type":"link","label":"Set wallet account","href":"/vocdoni-api/set-wallet-account","className":"api-method get","docId":"vocdoni-api/set-wallet-account"},{"type":"link","label":"Create election for wallet","href":"/vocdoni-api/create-election-for-wallet","className":"api-method post","docId":"vocdoni-api/create-election-for-wallet"},{"type":"link","label":"Transfer tokens","href":"/vocdoni-api/transfer-tokens","className":"api-method get","docId":"vocdoni-api/transfer-tokens"}],"collapsed":true,"collapsible":true,"href":"/vocdoni-api/wallet"},{"type":"category","label":"SIK","items":[{"type":"link","label":"List of valid SIK roots","href":"/vocdoni-api/list-of-valid-sik-roots","className":"api-method get","docId":"vocdoni-api/list-of-valid-sik-roots"},{"type":"link","label":"List of valid SIK roots","href":"/vocdoni-api/list-of-valid-sik-roots","className":"api-method get","docId":"vocdoni-api/list-of-valid-sik-roots"},{"type":"link","label":"Returns if the address provided has a valid SIK","href":"/vocdoni-api/returns-if-the-address-provided-has-a-valid-sik","className":"api-method get","docId":"vocdoni-api/returns-if-the-address-provided-has-a-valid-sik"}],"collapsed":true,"collapsible":true,"href":"/vocdoni-api/sik"},{"type":"category","label":"Indexer","items":[{"type":"link","label":"Exports the indexer database","href":"/vocdoni-api/exports-the-indexer-database","className":"api-method get","docId":"vocdoni-api/exports-the-indexer-database"}],"collapsed":true,"collapsible":true}],"collapsed":true,"collapsible":true,"href":"/vocdoni-api/vocdoni-api"}]},"docs":{"intro":{"id":"intro","title":"Getting Started","description":"Vocdoni is the most open, secure, and universally verifiable voting protocol, used by hundreds of organizations worldwide. The core of our stack is a powerful decentralized backend, including blockchain, P2P gateway, and distributed file storage components.","sidebar":"defaultSidebar"},"protocol/anonymity/anonymity":{"id":"protocol/anonymity/anonymity","title":"Anonymous Voting","description":"- Anonymous voting is a type of voting process where the users can vote without revealing their identity, by proving that they are accepted as valid voters. Currently we have 2 types of anonymous voting schemes:","sidebar":"defaultSidebar"},"protocol/anonymity/blind-signatures":{"id":"protocol/anonymity/blind-signatures","title":"CSP Blind Signatures","description":"The current approach by Vocdoni regarding determining the eligibility of a potential voter is to use a Census Merkle Tree. All voter public keys must be known in advance and aggregated together into a hash tree to compute a Merkle root. Then each voter needs to fetch their own Merkle proof to demonstrate their eligibility on a public ledger. The Merkle proof can be anonymized using a zk-SNARK so that the public ledger will verify the SNARK proof instead.","sidebar":"defaultSidebar"},"protocol/anonymity/on-chain":{"id":"protocol/anonymity/on-chain","title":"On-Chain Census Anonymity","description":"On-chain cenuses derive their contents from a public set of holders of a given token (or set of tokens) on the Ethereum blockchain. This information is turned into a census by generating a Merkle Proof on that set of data. This Merkle Proof is similar to that used for a typical off-chain tree census, and the same sort of ZK Census Proof can be used to compute voter validation anonymously.","sidebar":"defaultSidebar"},"protocol/anonymity/zk-census-proof":{"id":"protocol/anonymity/zk-census-proof","title":"Off-Chain Tree ZK Census Proof","description":"This document is divided in two sections:","sidebar":"defaultSidebar"},"protocol/ballot-protocol":{"id":"protocol/ballot-protocol","title":"Ballot Protocol","description":"Ballot protocol","sidebar":"defaultSidebar"},"protocol/census/census":{"id":"protocol/census/census","title":"The Census","description":"In Vocdoni, a census of identities can be represented in one of three ways. For Ethereum-based processes, in which eligible voters are represented by Ethereum addresses holding a specific token, an on-chain] (ERC-20) census is used. In cases where a central authority wants to manually validate each voter at the time of voting, [off-chain credential service provider is used. For all other voting processes (organizations that are not represented as DAOs), an off-chain tree census is used.","sidebar":"defaultSidebar"},"protocol/census/off-chain-csp":{"id":"protocol/census/off-chain-csp","title":"Off-Chain CSP Census","description":"A census approach based on Credential Service Providers (CSPs) allows organizations to validate users manually and based off of any arbitrary criteria. Rather than a static census published before-hand, CSP census allows each user to be evaluated for voting eligibility individually, throughout the duration of the voting process.","sidebar":"defaultSidebar"},"protocol/census/off-chain-tree":{"id":"protocol/census/off-chain-tree","title":"Off-Chain Tree Census","description":"The census itself is represented as a binary Merkle Tree, where the leaves of the tree contain the public keys of all eligible voters, hashed.","sidebar":"defaultSidebar"},"protocol/census/on-chain":{"id":"protocol/census/on-chain","title":"On-Chain Census","description":"There are two types of census origins: Those who depend on a list of public keys maintained off-chain and those dependent on the status of the Ethereum blockchain at a given point in time.","sidebar":"defaultSidebar"},"protocol/data-schemes/data-schemes":{"id":"protocol/data-schemes/data-schemes","title":"Data Schemes","description":"When it comes to voting processes, there are two main types of data storage at the protocol-level: protocol-level data stored on the Vochain and readable metadata like election descriptions stored on IPFS.","sidebar":"defaultSidebar"},"protocol/data-schemes/election":{"id":"protocol/data-schemes/election","title":"Election Metadata","description":"Election metadata provides the human-readable data associated with an election.","sidebar":"defaultSidebar"},"protocol/data-schemes/organization":{"id":"protocol/data-schemes/organization","title":"Organization Metadata","description":"The metadata of an organization provides human readable content, featuring names, descriptions, images, the list of available processes and more.","sidebar":"defaultSidebar"},"protocol/data-schemes/vote":{"id":"protocol/data-schemes/vote","title":"Vote Data","description":"Vote Envelope","sidebar":"defaultSidebar"},"protocol/index":{"id":"protocol/index","title":"Vocdoni Protocol","description":"1. Introduction","sidebar":"defaultSidebar"},"sdk/index":{"id":"sdk/index","title":"Vocdoni SDK","description":"The Vocdoni SDK is a convenient way to interact with the Vocdoni Protocol through the API, allowing anyone to create, manage and participate in voting processes and collective decision-making. The SDK is the primary mode by which developers should interface with Vocdoni - if you think the SDK is missing functionality you need, please get in touch.","sidebar":"defaultSidebar"},"sdk/integration-details/census-types/census-types":{"id":"sdk/integration-details/census-types/census-types","title":"Census Types","description":"A census is a list of voters who are eligible to vote in a given election. There are multiple ways to define a census with Vocdoni, each with different privacy and verifiability considerations. The census types are defined at a protocol level and include on-chain, off-chain Merkle tree, and off-chain Credential Service Provider.","sidebar":"defaultSidebar"},"sdk/integration-details/census-types/off-chain-csp":{"id":"sdk/integration-details/census-types/off-chain-csp","title":"Off-chain Credential Service Provider","description":"A Credential Service Provider is an external component that serves as a validator for the identities of voters. An example of this could be a service set up by a municipal government that validates if a given voter is registered, or a forum that validates if a given voter has an active account. With this type of census, voters show proof of registry and receive a cryptographic package from the CSP allowing them to cast a vote.","sidebar":"defaultSidebar"},"sdk/integration-details/census-types/off-chain-tree":{"id":"sdk/integration-details/census-types/off-chain-tree","title":"Off-chain Merkle Tree","description":"This is the most basic census type, is the default when creating an election, and is the one used in the SDK tutorial. In this scheme, the census is essentially a basic list of voter, with some behind-the-scenes cryptography. With an off-train tree census, voters are added as wallet addresses using census.add().","sidebar":"defaultSidebar"},"sdk/integration-details/census-types/on-chain/complex-census":{"id":"sdk/integration-details/census-types/on-chain/complex-census","title":"Complex Census","description":"The census3 service makes it easy to create a census based off of the balance holders of a token taken to represent an organization. It is possible, however, to create a token-based census with more complex logic, incorporating balance information from multiple tokens at once.","sidebar":"defaultSidebar"},"sdk/integration-details/census-types/on-chain/on-chain":{"id":"sdk/integration-details/census-types/on-chain/on-chain","title":"On-chain Token-Based Census","description":"An on-chain census is one whose voters are defined by holding tokens on the Ethereum blockchain. Currently the following token types are supported:","sidebar":"defaultSidebar"},"sdk/integration-details/integration-details":{"id":"sdk/integration-details/integration-details","title":"Integration Details","description":"The tutorial covers the basics, but here are some details you\'ll need to consider when integrating the Vocdoni SDK into your application.","sidebar":"defaultSidebar"},"sdk/integration-details/vocdoni-tokens":{"id":"sdk/integration-details/vocdoni-tokens","title":"Vocdoni Tokens","description":"Behind-the-scenes, Vocdoni is powered by a custom blockchain. This component provides universal verifiability, but it also introduces some complexity. In order to distribute workload and verify transactions, our blockchain uses a digital \\"currency\\" of Vocdoni tokens that have no real-world value but help with load-balancing and spam reduction. Actions that update data on the blockchain, such as creating an election, incur a \\"cost.\\" Integrators are responsible for ensuring that accounts creating elections have a sufficient balance of tokens.","sidebar":"defaultSidebar"},"sdk/integration-details/voting-types/approval":{"id":"sdk/integration-details/voting-types/approval","title":"Approval Voting (Multiple Choice)","description":"An election with Approval voting is a voting system where voters are allowed to indicate their support for multiple","sidebar":"defaultSidebar"},"sdk/integration-details/voting-types/quadratic":{"id":"sdk/integration-details/voting-types/quadratic","title":"Quadratic voting","description":"Quadratic voting is a voting mechanism that allows individuals to express their preferences on different issues with","sidebar":"defaultSidebar"},"sdk/integration-details/voting-types/ranked":{"id":"sdk/integration-details/voting-types/ranked","title":"Ranked Voting","description":"Ranked voting, also known as preferential voting or ranked-choice voting (RCV), is an electoral system where voters rank","sidebar":"defaultSidebar"},"sdk/integration-details/voting-types/single-choice":{"id":"sdk/integration-details/voting-types/single-choice","title":"Single Choice Voting","description":"An election with a single-choice result, also known as First-past-the-post voting (FPTP or FPP) or informally called","sidebar":"defaultSidebar"},"sdk/integration-details/voting-types/voting-types":{"id":"sdk/integration-details/voting-types/voting-types","title":"Voting Types","description":"In this section, we will provide a brief overview of the different types of voting supported by the Vocdoni protocol and","sidebar":"defaultSidebar"},"sdk/integration-details/voting-types/weighted":{"id":"sdk/integration-details/voting-types/weighted","title":"Weighted voting","description":"Weighted voting is a voting system where each voter is assigned a specific weight or value that reflects their relative influence or importance in the decision-making process.","sidebar":"defaultSidebar"},"sdk/reference/changelog":{"id":"sdk/reference/changelog","title":"Changelog","description":"All notable changes to this project will be documented in this file.","sidebar":"defaultSidebar"},"sdk/reference/classes/Account":{"id":"sdk/reference/classes/Account","title":"Account","description":"@vocdoni/sdk / Exports / Account","sidebar":"defaultSidebar"},"sdk/reference/classes/AccountAPI":{"id":"sdk/reference/classes/AccountAPI","title":"AccountAPI","description":"@vocdoni/sdk / Exports / AccountAPI","sidebar":"defaultSidebar"},"sdk/reference/classes/AccountService":{"id":"sdk/reference/classes/AccountService","title":"AccountService","description":"@vocdoni/sdk / Exports / AccountService","sidebar":"defaultSidebar"},"sdk/reference/classes/AnonymousService":{"id":"sdk/reference/classes/AnonymousService","title":"AnonymousService","description":"@vocdoni/sdk / Exports / AnonymousService","sidebar":"defaultSidebar"},"sdk/reference/classes/AnonymousVote":{"id":"sdk/reference/classes/AnonymousVote","title":"AnonymousVote","description":"@vocdoni/sdk / Exports / AnonymousVote","sidebar":"defaultSidebar"},"sdk/reference/classes/ApprovalElection":{"id":"sdk/reference/classes/ApprovalElection","title":"ApprovalElection","description":"@vocdoni/sdk / Exports / ApprovalElection","sidebar":"defaultSidebar"},"sdk/reference/classes/ArchivedElection":{"id":"sdk/reference/classes/ArchivedElection","title":"ArchivedElection","description":"@vocdoni/sdk / Exports / ArchivedElection","sidebar":"defaultSidebar"},"sdk/reference/classes/BudgetElection":{"id":"sdk/reference/classes/BudgetElection","title":"BudgetElection","description":"@vocdoni/sdk / Exports / BudgetElection","sidebar":"defaultSidebar"},"sdk/reference/classes/Census":{"id":"sdk/reference/classes/Census","title":"Census","description":"@vocdoni/sdk / Exports / Census","sidebar":"defaultSidebar"},"sdk/reference/classes/Census3CensusAPI":{"id":"sdk/reference/classes/Census3CensusAPI","title":"Census3CensusAPI","description":"@vocdoni/sdk / Exports / Census3CensusAPI","sidebar":"defaultSidebar"},"sdk/reference/classes/Census3ServiceAPI":{"id":"sdk/reference/classes/Census3ServiceAPI","title":"Census3ServiceAPI","description":"@vocdoni/sdk / Exports / Census3ServiceAPI","sidebar":"defaultSidebar"},"sdk/reference/classes/Census3StrategyAPI":{"id":"sdk/reference/classes/Census3StrategyAPI","title":"Census3StrategyAPI","description":"@vocdoni/sdk / Exports / Census3StrategyAPI","sidebar":"defaultSidebar"},"sdk/reference/classes/Census3TokenAPI":{"id":"sdk/reference/classes/Census3TokenAPI","title":"Census3TokenAPI","description":"@vocdoni/sdk / Exports / Census3TokenAPI","sidebar":"defaultSidebar"},"sdk/reference/classes/CensusAPI":{"id":"sdk/reference/classes/CensusAPI","title":"CensusAPI","description":"@vocdoni/sdk / Exports / CensusAPI","sidebar":"defaultSidebar"},"sdk/reference/classes/CensusService":{"id":"sdk/reference/classes/CensusService","title":"CensusService","description":"@vocdoni/sdk / Exports / CensusService","sidebar":"defaultSidebar"},"sdk/reference/classes/ChainAPI":{"id":"sdk/reference/classes/ChainAPI","title":"ChainAPI","description":"@vocdoni/sdk / Exports / ChainAPI","sidebar":"defaultSidebar"},"sdk/reference/classes/ChainService":{"id":"sdk/reference/classes/ChainService","title":"ChainService","description":"@vocdoni/sdk / Exports / ChainService","sidebar":"defaultSidebar"},"sdk/reference/classes/CspCensus":{"id":"sdk/reference/classes/CspCensus","title":"CspCensus","description":"@vocdoni/sdk / Exports / CspCensus","sidebar":"defaultSidebar"},"sdk/reference/classes/CspService":{"id":"sdk/reference/classes/CspService","title":"CspService","description":"@vocdoni/sdk / Exports / CspService","sidebar":"defaultSidebar"},"sdk/reference/classes/CspVote":{"id":"sdk/reference/classes/CspVote","title":"CspVote","description":"@vocdoni/sdk / Exports / CspVote","sidebar":"defaultSidebar"},"sdk/reference/classes/Election":{"id":"sdk/reference/classes/Election","title":"Election","description":"@vocdoni/sdk / Exports / Election","sidebar":"defaultSidebar"},"sdk/reference/classes/ElectionAPI":{"id":"sdk/reference/classes/ElectionAPI","title":"ElectionAPI","description":"@vocdoni/sdk / Exports / ElectionAPI","sidebar":"defaultSidebar"},"sdk/reference/classes/ElectionService":{"id":"sdk/reference/classes/ElectionService","title":"ElectionService","description":"@vocdoni/sdk / Exports / ElectionService","sidebar":"defaultSidebar"},"sdk/reference/classes/FaucetAPI":{"id":"sdk/reference/classes/FaucetAPI","title":"FaucetAPI","description":"@vocdoni/sdk / Exports / FaucetAPI","sidebar":"defaultSidebar"},"sdk/reference/classes/FaucetService":{"id":"sdk/reference/classes/FaucetService","title":"FaucetService","description":"@vocdoni/sdk / Exports / FaucetService","sidebar":"defaultSidebar"},"sdk/reference/classes/FileAPI":{"id":"sdk/reference/classes/FileAPI","title":"FileAPI","description":"@vocdoni/sdk / Exports / FileAPI","sidebar":"defaultSidebar"},"sdk/reference/classes/FileService":{"id":"sdk/reference/classes/FileService","title":"FileService","description":"@vocdoni/sdk / Exports / FileService","sidebar":"defaultSidebar"},"sdk/reference/classes/InvalidElection":{"id":"sdk/reference/classes/InvalidElection","title":"InvalidElection","description":"@vocdoni/sdk / Exports / InvalidElection","sidebar":"defaultSidebar"},"sdk/reference/classes/MultiChoiceElection":{"id":"sdk/reference/classes/MultiChoiceElection","title":"MultiChoiceElection","description":"@vocdoni/sdk / Exports / MultiChoiceElection","sidebar":"defaultSidebar"},"sdk/reference/classes/OffchainCensus":{"id":"sdk/reference/classes/OffchainCensus","title":"OffchainCensus","description":"@vocdoni/sdk / Exports / OffchainCensus","sidebar":"defaultSidebar"},"sdk/reference/classes/PlainCensus":{"id":"sdk/reference/classes/PlainCensus","title":"PlainCensus","description":"@vocdoni/sdk / Exports / PlainCensus","sidebar":"defaultSidebar"},"sdk/reference/classes/PublishedCensus":{"id":"sdk/reference/classes/PublishedCensus","title":"PublishedCensus","description":"@vocdoni/sdk / Exports / PublishedCensus","sidebar":"defaultSidebar"},"sdk/reference/classes/PublishedElection":{"id":"sdk/reference/classes/PublishedElection","title":"PublishedElection","description":"@vocdoni/sdk / Exports / PublishedElection","sidebar":"defaultSidebar"},"sdk/reference/classes/Service":{"id":"sdk/reference/classes/Service","title":"Service","description":"@vocdoni/sdk / Exports / Service","sidebar":"defaultSidebar"},"sdk/reference/classes/TokenCensus":{"id":"sdk/reference/classes/TokenCensus","title":"TokenCensus","description":"@vocdoni/sdk / Exports / TokenCensus","sidebar":"defaultSidebar"},"sdk/reference/classes/UnpublishedElection":{"id":"sdk/reference/classes/UnpublishedElection","title":"UnpublishedElection","description":"@vocdoni/sdk / Exports / UnpublishedElection","sidebar":"defaultSidebar"},"sdk/reference/classes/VocdoniCensus3Client":{"id":"sdk/reference/classes/VocdoniCensus3Client","title":"VocdoniCensus3Client","description":"@vocdoni/sdk / Exports / VocdoniCensus3Client","sidebar":"defaultSidebar"},"sdk/reference/classes/VocdoniSDKClient":{"id":"sdk/reference/classes/VocdoniSDKClient","title":"VocdoniSDKClient","description":"@vocdoni/sdk / Exports / VocdoniSDKClient","sidebar":"defaultSidebar"},"sdk/reference/classes/Vote":{"id":"sdk/reference/classes/Vote","title":"Vote","description":"@vocdoni/sdk / Exports / Vote","sidebar":"defaultSidebar"},"sdk/reference/classes/VoteAPI":{"id":"sdk/reference/classes/VoteAPI","title":"VoteAPI","description":"@vocdoni/sdk / Exports / VoteAPI","sidebar":"defaultSidebar"},"sdk/reference/classes/VoteService":{"id":"sdk/reference/classes/VoteService","title":"VoteService","description":"@vocdoni/sdk / Exports / VoteService","sidebar":"defaultSidebar"},"sdk/reference/classes/WalletAPI":{"id":"sdk/reference/classes/WalletAPI","title":"WalletAPI","description":"@vocdoni/sdk / Exports / WalletAPI","sidebar":"defaultSidebar"},"sdk/reference/classes/WeightedCensus":{"id":"sdk/reference/classes/WeightedCensus","title":"WeightedCensus","description":"@vocdoni/sdk / Exports / WeightedCensus","sidebar":"defaultSidebar"},"sdk/reference/enums/CensusOrigin":{"id":"sdk/reference/enums/CensusOrigin","title":"CensusOrigin","description":"@vocdoni/sdk / Exports / CensusOrigin","sidebar":"defaultSidebar"},"sdk/reference/enums/CensusType":{"id":"sdk/reference/enums/CensusType","title":"CensusType","description":"@vocdoni/sdk / Exports / CensusType","sidebar":"defaultSidebar"},"sdk/reference/enums/CensusTypeEnum":{"id":"sdk/reference/enums/CensusTypeEnum","title":"CensusTypeEnum","description":"@vocdoni/sdk / Exports / CensusTypeEnum","sidebar":"defaultSidebar"},"sdk/reference/enums/CspProofType":{"id":"sdk/reference/enums/CspProofType","title":"CspProofType","description":"@vocdoni/sdk / Exports / CspProofType","sidebar":"defaultSidebar"},"sdk/reference/enums/ElectionCreationSteps":{"id":"sdk/reference/enums/ElectionCreationSteps","title":"ElectionCreationSteps","description":"@vocdoni/sdk / Exports / ElectionCreationSteps","sidebar":"defaultSidebar"},"sdk/reference/enums/ElectionResultsTypeNames":{"id":"sdk/reference/enums/ElectionResultsTypeNames","title":"ElectionResultsTypeNames","description":"@vocdoni/sdk / Exports / ElectionResultsTypeNames","sidebar":"defaultSidebar"},"sdk/reference/enums/ElectionStatus":{"id":"sdk/reference/enums/ElectionStatus","title":"ElectionStatus","description":"@vocdoni/sdk / Exports / ElectionStatus","sidebar":"defaultSidebar"},"sdk/reference/enums/ElectionStatusReady":{"id":"sdk/reference/enums/ElectionStatusReady","title":"ElectionStatusReady","description":"@vocdoni/sdk / Exports / ElectionStatusReady","sidebar":"defaultSidebar"},"sdk/reference/enums/EnvOptions":{"id":"sdk/reference/enums/EnvOptions","title":"EnvOptions","description":"@vocdoni/sdk / Exports / EnvOptions","sidebar":"defaultSidebar"},"sdk/reference/enums/TransactionType":{"id":"sdk/reference/enums/TransactionType","title":"TransactionType","description":"@vocdoni/sdk / Exports / TransactionType","sidebar":"defaultSidebar"},"sdk/reference/enums/TxType":{"id":"sdk/reference/enums/TxType","title":"TxType","description":"@vocdoni/sdk / Exports / TxType","sidebar":"defaultSidebar"},"sdk/reference/enums/VoteSteps":{"id":"sdk/reference/enums/VoteSteps","title":"VoteSteps","description":"@vocdoni/sdk / Exports / VoteSteps","sidebar":"defaultSidebar"},"sdk/reference/interfaces/AccountMetadata":{"id":"sdk/reference/interfaces/AccountMetadata","title":"AccountMetadata","description":"@vocdoni/sdk / Exports / AccountMetadata","sidebar":"defaultSidebar"},"sdk/reference/interfaces/AdminTx":{"id":"sdk/reference/interfaces/AdminTx","title":"AdminTx","description":"@vocdoni/sdk / Exports / AdminTx","sidebar":"defaultSidebar"},"sdk/reference/interfaces/CircuitInputs":{"id":"sdk/reference/interfaces/CircuitInputs","title":"CircuitInputs","description":"@vocdoni/sdk / Exports / CircuitInputs","sidebar":"defaultSidebar"},"sdk/reference/interfaces/CollectFaucetTx":{"id":"sdk/reference/interfaces/CollectFaucetTx","title":"CollectFaucetTx","description":"@vocdoni/sdk / Exports / CollectFaucetTx","sidebar":"defaultSidebar"},"sdk/reference/interfaces/ElectionMetadata":{"id":"sdk/reference/interfaces/ElectionMetadata","title":"ElectionMetadata","description":"@vocdoni/sdk / Exports / ElectionMetadata","sidebar":"defaultSidebar"},"sdk/reference/interfaces/FetchElectionsParameters":{"id":"sdk/reference/interfaces/FetchElectionsParameters","title":"FetchElectionsParameters","description":"@vocdoni/sdk / Exports / FetchElectionsParameters","sidebar":"defaultSidebar"},"sdk/reference/interfaces/IAccount":{"id":"sdk/reference/interfaces/IAccount","title":"IAccount","description":"@vocdoni/sdk / Exports / IAccount","sidebar":"defaultSidebar"},"sdk/reference/interfaces/IAccountsCountResponse":{"id":"sdk/reference/interfaces/IAccountsCountResponse","title":"IAccountsCountResponse","description":"@vocdoni/sdk / Exports / IAccountsCountResponse","sidebar":"defaultSidebar"},"sdk/reference/interfaces/IAccountsListResponse":{"id":"sdk/reference/interfaces/IAccountsListResponse","title":"IAccountsListResponse","description":"@vocdoni/sdk / Exports / IAccountsListResponse","sidebar":"defaultSidebar"},"sdk/reference/interfaces/IAccountTransfersCountResponse":{"id":"sdk/reference/interfaces/IAccountTransfersCountResponse","title":"IAccountTransfersCountResponse","description":"@vocdoni/sdk / Exports / IAccountTransfersCountResponse","sidebar":"defaultSidebar"},"sdk/reference/interfaces/IApprovalElectionParameters":{"id":"sdk/reference/interfaces/IApprovalElectionParameters","title":"IApprovalElectionParameters","description":"@vocdoni/sdk / Exports / IApprovalElectionParameters","sidebar":"defaultSidebar"},"sdk/reference/interfaces/IBlockTransactionsResponse":{"id":"sdk/reference/interfaces/IBlockTransactionsResponse","title":"IBlockTransactionsResponse","description":"@vocdoni/sdk / Exports / IBlockTransactionsResponse","sidebar":"defaultSidebar"},"sdk/reference/interfaces/IBudgetElectionParametersInfo":{"id":"sdk/reference/interfaces/IBudgetElectionParametersInfo","title":"IBudgetElectionParametersInfo","description":"@vocdoni/sdk / Exports / IBudgetElectionParametersInfo","sidebar":"defaultSidebar"},"sdk/reference/interfaces/IBudgetElectionParametersWithBudget":{"id":"sdk/reference/interfaces/IBudgetElectionParametersWithBudget","title":"IBudgetElectionParametersWithBudget","description":"@vocdoni/sdk / Exports / IBudgetElectionParametersWithBudget","sidebar":"defaultSidebar"},"sdk/reference/interfaces/IBudgetElectionParametersWithCensusWeight":{"id":"sdk/reference/interfaces/IBudgetElectionParametersWithCensusWeight","title":"IBudgetElectionParametersWithCensusWeight","description":"@vocdoni/sdk / Exports / IBudgetElectionParametersWithCensusWeight","sidebar":"defaultSidebar"},"sdk/reference/interfaces/ICensus":{"id":"sdk/reference/interfaces/ICensus","title":"ICensus","description":"@vocdoni/sdk / Exports / ICensus","sidebar":"defaultSidebar"},"sdk/reference/interfaces/ICensus3CensusListResponse":{"id":"sdk/reference/interfaces/ICensus3CensusListResponse","title":"ICensus3CensusListResponse","description":"@vocdoni/sdk / Exports / ICensus3CensusListResponse","sidebar":"defaultSidebar"},"sdk/reference/interfaces/ICensus3CensusQueueResponse":{"id":"sdk/reference/interfaces/ICensus3CensusQueueResponse","title":"ICensus3CensusQueueResponse","description":"@vocdoni/sdk / Exports / ICensus3CensusQueueResponse","sidebar":"defaultSidebar"},"sdk/reference/interfaces/ICensus3CensusResponse":{"id":"sdk/reference/interfaces/ICensus3CensusResponse","title":"ICensus3CensusResponse","description":"@vocdoni/sdk / Exports / ICensus3CensusResponse","sidebar":"defaultSidebar"},"sdk/reference/interfaces/ICensus3ServiceInfoResponse":{"id":"sdk/reference/interfaces/ICensus3ServiceInfoResponse","title":"ICensus3ServiceInfoResponse","description":"@vocdoni/sdk / Exports / ICensus3ServiceInfoResponse","sidebar":"defaultSidebar"},"sdk/reference/interfaces/ICensus3StrategiesListResponse":{"id":"sdk/reference/interfaces/ICensus3StrategiesListResponse","title":"ICensus3StrategiesListResponse","description":"@vocdoni/sdk / Exports / ICensus3StrategiesListResponse","sidebar":"defaultSidebar"},"sdk/reference/interfaces/ICensus3StrategiesListResponsePaginated":{"id":"sdk/reference/interfaces/ICensus3StrategiesListResponsePaginated","title":"ICensus3StrategiesListResponsePaginated","description":"@vocdoni/sdk / Exports / ICensus3StrategiesListResponsePaginated","sidebar":"defaultSidebar"},"sdk/reference/interfaces/ICensus3StrategiesOperator":{"id":"sdk/reference/interfaces/ICensus3StrategiesOperator","title":"ICensus3StrategiesOperator","description":"@vocdoni/sdk / Exports / ICensus3StrategiesOperator","sidebar":"defaultSidebar"},"sdk/reference/interfaces/ICensus3StrategiesOperatorsResponse":{"id":"sdk/reference/interfaces/ICensus3StrategiesOperatorsResponse","title":"ICensus3StrategiesOperatorsResponse","description":"@vocdoni/sdk / Exports / ICensus3StrategiesOperatorsResponse","sidebar":"defaultSidebar"},"sdk/reference/interfaces/ICensus3StrategyCreateResponse":{"id":"sdk/reference/interfaces/ICensus3StrategyCreateResponse","title":"ICensus3StrategyCreateResponse","description":"@vocdoni/sdk / Exports / ICensus3StrategyCreateResponse","sidebar":"defaultSidebar"},"sdk/reference/interfaces/ICensus3StrategyEstimationQueueResponse":{"id":"sdk/reference/interfaces/ICensus3StrategyEstimationQueueResponse","title":"ICensus3StrategyEstimationQueueResponse","description":"@vocdoni/sdk / Exports / ICensus3StrategyEstimationQueueResponse","sidebar":"defaultSidebar"},"sdk/reference/interfaces/ICensus3StrategyHoldersResponse":{"id":"sdk/reference/interfaces/ICensus3StrategyHoldersResponse","title":"ICensus3StrategyHoldersResponse","description":"@vocdoni/sdk / Exports / ICensus3StrategyHoldersResponse","sidebar":"defaultSidebar"},"sdk/reference/interfaces/ICensus3StrategyHoldersResponsePaginated":{"id":"sdk/reference/interfaces/ICensus3StrategyHoldersResponsePaginated","title":"ICensus3StrategyHoldersResponsePaginated","description":"@vocdoni/sdk / Exports / ICensus3StrategyHoldersResponsePaginated","sidebar":"defaultSidebar"},"sdk/reference/interfaces/ICensus3StrategyImportQueueResponse":{"id":"sdk/reference/interfaces/ICensus3StrategyImportQueueResponse","title":"ICensus3StrategyImportQueueResponse","description":"@vocdoni/sdk / Exports / ICensus3StrategyImportQueueResponse","sidebar":"defaultSidebar"},"sdk/reference/interfaces/ICensus3StrategyToken":{"id":"sdk/reference/interfaces/ICensus3StrategyToken","title":"ICensus3StrategyToken","description":"@vocdoni/sdk / Exports / ICensus3StrategyToken","sidebar":"defaultSidebar"},"sdk/reference/interfaces/ICensus3SupportedChain":{"id":"sdk/reference/interfaces/ICensus3SupportedChain","title":"ICensus3SupportedChain","description":"@vocdoni/sdk / Exports / ICensus3SupportedChain","sidebar":"defaultSidebar"},"sdk/reference/interfaces/ICensus3TokenHolderResponse":{"id":"sdk/reference/interfaces/ICensus3TokenHolderResponse","title":"ICensus3TokenHolderResponse","description":"@vocdoni/sdk / Exports / ICensus3TokenHolderResponse","sidebar":"defaultSidebar"},"sdk/reference/interfaces/ICensus3TokenListResponse":{"id":"sdk/reference/interfaces/ICensus3TokenListResponse","title":"ICensus3TokenListResponse","description":"@vocdoni/sdk / Exports / ICensus3TokenListResponse","sidebar":"defaultSidebar"},"sdk/reference/interfaces/ICensus3TokenListResponsePaginated":{"id":"sdk/reference/interfaces/ICensus3TokenListResponsePaginated","title":"ICensus3TokenListResponsePaginated","description":"@vocdoni/sdk / Exports / ICensus3TokenListResponsePaginated","sidebar":"defaultSidebar"},"sdk/reference/interfaces/ICensus3TokenTypesResponse":{"id":"sdk/reference/interfaces/ICensus3TokenTypesResponse","title":"ICensus3TokenTypesResponse","description":"@vocdoni/sdk / Exports / ICensus3TokenTypesResponse","sidebar":"defaultSidebar"},"sdk/reference/interfaces/ICensus3ValidatePredicateChild":{"id":"sdk/reference/interfaces/ICensus3ValidatePredicateChild","title":"ICensus3ValidatePredicateChild","description":"@vocdoni/sdk / Exports / ICensus3ValidatePredicateChild","sidebar":"defaultSidebar"},"sdk/reference/interfaces/ICensus3ValidatePredicateResponse":{"id":"sdk/reference/interfaces/ICensus3ValidatePredicateResponse","title":"ICensus3ValidatePredicateResponse","description":"@vocdoni/sdk / Exports / ICensus3ValidatePredicateResponse","sidebar":"defaultSidebar"},"sdk/reference/interfaces/ICensus3ValidatePredicateToken":{"id":"sdk/reference/interfaces/ICensus3ValidatePredicateToken","title":"ICensus3ValidatePredicateToken","description":"@vocdoni/sdk / Exports / ICensus3ValidatePredicateToken","sidebar":"defaultSidebar"},"sdk/reference/interfaces/ICensusExportResponse":{"id":"sdk/reference/interfaces/ICensusExportResponse","title":"ICensusExportResponse","description":"@vocdoni/sdk / Exports / ICensusExportResponse","sidebar":"defaultSidebar"},"sdk/reference/interfaces/ICensusImportResponse":{"id":"sdk/reference/interfaces/ICensusImportResponse","title":"ICensusImportResponse","description":"@vocdoni/sdk / Exports / ICensusImportResponse","sidebar":"defaultSidebar"},"sdk/reference/interfaces/ICensusParticipant":{"id":"sdk/reference/interfaces/ICensusParticipant","title":"ICensusParticipant","description":"@vocdoni/sdk / Exports / ICensusParticipant","sidebar":"defaultSidebar"},"sdk/reference/interfaces/ICensusProofResponse":{"id":"sdk/reference/interfaces/ICensusProofResponse","title":"ICensusProofResponse","description":"@vocdoni/sdk / Exports / ICensusProofResponse","sidebar":"defaultSidebar"},"sdk/reference/interfaces/ICensusPublishResponse":{"id":"sdk/reference/interfaces/ICensusPublishResponse","title":"ICensusPublishResponse","description":"@vocdoni/sdk / Exports / ICensusPublishResponse","sidebar":"defaultSidebar"},"sdk/reference/interfaces/IChainBlockInfoResponse":{"id":"sdk/reference/interfaces/IChainBlockInfoResponse","title":"IChainBlockInfoResponse","description":"@vocdoni/sdk / Exports / IChainBlockInfoResponse","sidebar":"defaultSidebar"},"sdk/reference/interfaces/IChainGetCircuitResponse":{"id":"sdk/reference/interfaces/IChainGetCircuitResponse","title":"IChainGetCircuitResponse","description":"@vocdoni/sdk / Exports / IChainGetCircuitResponse","sidebar":"defaultSidebar"},"sdk/reference/interfaces/IChainGetCostsResponse":{"id":"sdk/reference/interfaces/IChainGetCostsResponse","title":"IChainGetCostsResponse","description":"@vocdoni/sdk / Exports / IChainGetCostsResponse","sidebar":"defaultSidebar"},"sdk/reference/interfaces/IChainGetInfoResponse":{"id":"sdk/reference/interfaces/IChainGetInfoResponse","title":"IChainGetInfoResponse","description":"@vocdoni/sdk / Exports / IChainGetInfoResponse","sidebar":"defaultSidebar"},"sdk/reference/interfaces/IChainOrganizationCountResponse":{"id":"sdk/reference/interfaces/IChainOrganizationCountResponse","title":"IChainOrganizationCountResponse","description":"@vocdoni/sdk / Exports / IChainOrganizationCountResponse","sidebar":"defaultSidebar"},"sdk/reference/interfaces/IChainOrganizationListResponse":{"id":"sdk/reference/interfaces/IChainOrganizationListResponse","title":"IChainOrganizationListResponse","description":"@vocdoni/sdk / Exports / IChainOrganizationListResponse","sidebar":"defaultSidebar"},"sdk/reference/interfaces/IChainOrganizationResponse":{"id":"sdk/reference/interfaces/IChainOrganizationResponse","title":"IChainOrganizationResponse","description":"@vocdoni/sdk / Exports / IChainOrganizationResponse","sidebar":"defaultSidebar"},"sdk/reference/interfaces/IChainSubmitTxResponse":{"id":"sdk/reference/interfaces/IChainSubmitTxResponse","title":"IChainSubmitTxResponse","description":"@vocdoni/sdk / Exports / IChainSubmitTxResponse","sidebar":"defaultSidebar"},"sdk/reference/interfaces/IChainTxCountResponse":{"id":"sdk/reference/interfaces/IChainTxCountResponse","title":"IChainTxCountResponse","description":"@vocdoni/sdk / Exports / IChainTxCountResponse","sidebar":"defaultSidebar"},"sdk/reference/interfaces/IChainTxListResponse":{"id":"sdk/reference/interfaces/IChainTxListResponse","title":"IChainTxListResponse","description":"@vocdoni/sdk / Exports / IChainTxListResponse","sidebar":"defaultSidebar"},"sdk/reference/interfaces/IChainTxReference":{"id":"sdk/reference/interfaces/IChainTxReference","title":"IChainTxReference","description":"@vocdoni/sdk / Exports / IChainTxReference","sidebar":"defaultSidebar"},"sdk/reference/interfaces/IChainValidator":{"id":"sdk/reference/interfaces/IChainValidator","title":"IChainValidator","description":"@vocdoni/sdk / Exports / IChainValidator","sidebar":"defaultSidebar"},"sdk/reference/interfaces/IChainValidatorsListResponse":{"id":"sdk/reference/interfaces/IChainValidatorsListResponse","title":"IChainValidatorsListResponse","description":"@vocdoni/sdk / Exports / IChainValidatorsListResponse","sidebar":"defaultSidebar"},"sdk/reference/interfaces/IChoice":{"id":"sdk/reference/interfaces/IChoice","title":"IChoice","description":"@vocdoni/sdk / Exports / IChoice","sidebar":"defaultSidebar"},"sdk/reference/interfaces/IElectionCreateResponse":{"id":"sdk/reference/interfaces/IElectionCreateResponse","title":"IElectionCreateResponse","description":"@vocdoni/sdk / Exports / IElectionCreateResponse","sidebar":"defaultSidebar"},"sdk/reference/interfaces/IElectionInfoResponse":{"id":"sdk/reference/interfaces/IElectionInfoResponse","title":"IElectionInfoResponse","description":"@vocdoni/sdk / Exports / IElectionInfoResponse","sidebar":"defaultSidebar"},"sdk/reference/interfaces/IElectionKeysResponse":{"id":"sdk/reference/interfaces/IElectionKeysResponse","title":"IElectionKeysResponse","description":"@vocdoni/sdk / Exports / IElectionKeysResponse","sidebar":"defaultSidebar"},"sdk/reference/interfaces/IElectionListFilter":{"id":"sdk/reference/interfaces/IElectionListFilter","title":"IElectionListFilter","description":"@vocdoni/sdk / Exports / IElectionListFilter","sidebar":"defaultSidebar"},"sdk/reference/interfaces/IElectionListResponse":{"id":"sdk/reference/interfaces/IElectionListResponse","title":"IElectionListResponse","description":"@vocdoni/sdk / Exports / IElectionListResponse","sidebar":"defaultSidebar"},"sdk/reference/interfaces/IElectionMode":{"id":"sdk/reference/interfaces/IElectionMode","title":"IElectionMode","description":"@vocdoni/sdk / Exports / IElectionMode","sidebar":"defaultSidebar"},"sdk/reference/interfaces/IElectionNextIdResponse":{"id":"sdk/reference/interfaces/IElectionNextIdResponse","title":"IElectionNextIdResponse","description":"@vocdoni/sdk / Exports / IElectionNextIdResponse","sidebar":"defaultSidebar"},"sdk/reference/interfaces/IElectionParameters":{"id":"sdk/reference/interfaces/IElectionParameters","title":"IElectionParameters","description":"@vocdoni/sdk / Exports / IElectionParameters","sidebar":"defaultSidebar"},"sdk/reference/interfaces/IElectionSummary":{"id":"sdk/reference/interfaces/IElectionSummary","title":"IElectionSummary","description":"@vocdoni/sdk / Exports / IElectionSummary","sidebar":"defaultSidebar"},"sdk/reference/interfaces/IElectionType":{"id":"sdk/reference/interfaces/IElectionType","title":"IElectionType","description":"@vocdoni/sdk / Exports / IElectionType","sidebar":"defaultSidebar"},"sdk/reference/interfaces/IElectionVote":{"id":"sdk/reference/interfaces/IElectionVote","title":"IElectionVote","description":"@vocdoni/sdk / Exports / IElectionVote","sidebar":"defaultSidebar"},"sdk/reference/interfaces/IElectionVoteListResponse":{"id":"sdk/reference/interfaces/IElectionVoteListResponse","title":"IElectionVoteListResponse","description":"@vocdoni/sdk / Exports / IElectionVoteListResponse","sidebar":"defaultSidebar"},"sdk/reference/interfaces/IEncryptionKey":{"id":"sdk/reference/interfaces/IEncryptionKey","title":"IEncryptionKey","description":"@vocdoni/sdk / Exports / IEncryptionKey","sidebar":"defaultSidebar"},"sdk/reference/interfaces/IInvalidElectionParameters":{"id":"sdk/reference/interfaces/IInvalidElectionParameters","title":"IInvalidElectionParameters","description":"@vocdoni/sdk / Exports / IInvalidElectionParameters","sidebar":"defaultSidebar"},"sdk/reference/interfaces/IMultiChoiceElectionParameters":{"id":"sdk/reference/interfaces/IMultiChoiceElectionParameters","title":"IMultiChoiceElectionParameters","description":"@vocdoni/sdk / Exports / IMultiChoiceElectionParameters","sidebar":"defaultSidebar"},"sdk/reference/interfaces/IPublishedElectionParameters":{"id":"sdk/reference/interfaces/IPublishedElectionParameters","title":"IPublishedElectionParameters","description":"@vocdoni/sdk / Exports / IPublishedElectionParameters","sidebar":"defaultSidebar"},"sdk/reference/interfaces/IQuestion":{"id":"sdk/reference/interfaces/IQuestion","title":"IQuestion","description":"@vocdoni/sdk / Exports / IQuestion","sidebar":"defaultSidebar"},"sdk/reference/interfaces/ITallyMode":{"id":"sdk/reference/interfaces/ITallyMode","title":"ITallyMode","description":"@vocdoni/sdk / Exports / ITallyMode","sidebar":"defaultSidebar"},"sdk/reference/interfaces/IVoteInfoResponse":{"id":"sdk/reference/interfaces/IVoteInfoResponse","title":"IVoteInfoResponse","description":"@vocdoni/sdk / Exports / IVoteInfoResponse","sidebar":"defaultSidebar"},"sdk/reference/interfaces/IVoteMode":{"id":"sdk/reference/interfaces/IVoteMode","title":"IVoteMode","description":"@vocdoni/sdk / Exports / IVoteMode","sidebar":"defaultSidebar"},"sdk/reference/interfaces/IVoteSubmitResponse":{"id":"sdk/reference/interfaces/IVoteSubmitResponse","title":"IVoteSubmitResponse","description":"@vocdoni/sdk / Exports / IVoteSubmitResponse","sidebar":"defaultSidebar"},"sdk/reference/interfaces/IVoteType":{"id":"sdk/reference/interfaces/IVoteType","title":"IVoteType","description":"@vocdoni/sdk / Exports / IVoteType","sidebar":"defaultSidebar"},"sdk/reference/interfaces/MintTokensTx":{"id":"sdk/reference/interfaces/MintTokensTx","title":"MintTokensTx","description":"@vocdoni/sdk / Exports / MintTokensTx","sidebar":"defaultSidebar"},"sdk/reference/interfaces/NewProcessTx":{"id":"sdk/reference/interfaces/NewProcessTx","title":"NewProcessTx","description":"@vocdoni/sdk / Exports / NewProcessTx","sidebar":"defaultSidebar"},"sdk/reference/interfaces/Process":{"id":"sdk/reference/interfaces/Process","title":"Process","description":"@vocdoni/sdk / Exports / Process","sidebar":"defaultSidebar"},"sdk/reference/interfaces/Proof":{"id":"sdk/reference/interfaces/Proof","title":"Proof","description":"@vocdoni/sdk / Exports / Proof","sidebar":"defaultSidebar"},"sdk/reference/interfaces/RegisterKeyTx":{"id":"sdk/reference/interfaces/RegisterKeyTx","title":"RegisterKeyTx","description":"@vocdoni/sdk / Exports / RegisterKeyTx","sidebar":"defaultSidebar"},"sdk/reference/interfaces/SendTokensTx":{"id":"sdk/reference/interfaces/SendTokensTx","title":"SendTokensTx","description":"@vocdoni/sdk / Exports / SendTokensTx","sidebar":"defaultSidebar"},"sdk/reference/interfaces/ServiceProperties":{"id":"sdk/reference/interfaces/ServiceProperties","title":"ServiceProperties","description":"@vocdoni/sdk / Exports / ServiceProperties","sidebar":"defaultSidebar"},"sdk/reference/interfaces/SetAccountTx":{"id":"sdk/reference/interfaces/SetAccountTx","title":"SetAccountTx","description":"@vocdoni/sdk / Exports / SetAccountTx","sidebar":"defaultSidebar"},"sdk/reference/interfaces/SetProcessTx":{"id":"sdk/reference/interfaces/SetProcessTx","title":"SetProcessTx","description":"@vocdoni/sdk / Exports / SetProcessTx","sidebar":"defaultSidebar"},"sdk/reference/interfaces/SetTransactionCostsTx":{"id":"sdk/reference/interfaces/SetTransactionCostsTx","title":"SetTransactionCostsTx","description":"@vocdoni/sdk / Exports / SetTransactionCostsTx","sidebar":"defaultSidebar"},"sdk/reference/interfaces/Tx":{"id":"sdk/reference/interfaces/Tx","title":"Tx","description":"@vocdoni/sdk / Exports / Tx","sidebar":"defaultSidebar"},"sdk/reference/interfaces/VoteEnvelope":{"id":"sdk/reference/interfaces/VoteEnvelope","title":"VoteEnvelope","description":"@vocdoni/sdk / Exports / VoteEnvelope","sidebar":"defaultSidebar"},"sdk/reference/modules":{"id":"sdk/reference/modules","title":"modules","description":"@vocdoni/sdk / Exports","sidebar":"defaultSidebar"},"sdk/tutorial":{"id":"sdk/tutorial","title":"SDK Tutorial","description":"This tutorial will show you how to get your environment set up, start using the SDK, and create and vote in an election. We will be using typescript.","sidebar":"defaultSidebar"},"ui-components/Election":{"id":"ui-components/Election","title":"Election components","description":"Vocdoni Chakra components for Elections","sidebar":"defaultSidebar"},"ui-components/index":{"id":"ui-components/index","title":"UI Components","description":"Vocdoni Chakra components","sidebar":"defaultSidebar"},"ui-components/Organization":{"id":"ui-components/Organization","title":"Organization components","description":"Vocdoni Chakra components for Organizations","sidebar":"defaultSidebar"},"vocdoni-api/accounts":{"id":"vocdoni-api/accounts","title":"Accounts","description":"Accounts","sidebar":"defaultSidebar"},"vocdoni-api/add-account":{"id":"vocdoni-api/add-account","title":"Add account","description":"Add a new account to the local store. It returns a token used to manage this account on the future.","sidebar":"defaultSidebar"},"vocdoni-api/add-participants-to-census":{"id":"vocdoni-api/add-participants-to-census","title":"Add participants to census","description":"Add list of public key/address with its weight to an unpublished census and returns the resulting","sidebar":"defaultSidebar"},"vocdoni-api/census-merkle-root":{"id":"vocdoni-api/census-merkle-root","title":"Census Merkle Root","description":"Get census [Merkle Tree root](https://docs.vocdoni.io/architecture/census/off-chain-tree.html) hash, used to identify the census at specific snapshot.\\n\\n- Bearer token not required","sidebar":"defaultSidebar"},"vocdoni-api/census-size":{"id":"vocdoni-api/census-size","title":"Census size","description":"Total number of keys added to the census. Size as integer","sidebar":"defaultSidebar"},"vocdoni-api/census-total-weight":{"id":"vocdoni-api/census-total-weight","title":"Census total weight","description":"It sums all weights added to the census. Weight is a stringified bigInt","sidebar":"defaultSidebar"},"vocdoni-api/censuses":{"id":"vocdoni-api/censuses","title":"Censuses","description":"Censuses","sidebar":"defaultSidebar"},"vocdoni-api/chain":{"id":"vocdoni-api/chain","title":"Chain","description":"Chain","sidebar":"defaultSidebar"},"vocdoni-api/circuit-info":{"id":"vocdoni-api/circuit-info","title":"Circuit info","description":"Returns the circuit configuration according to the current circuit","sidebar":"defaultSidebar"},"vocdoni-api/compute-election-price":{"id":"vocdoni-api/compute-election-price","title":"Compute election price","description":"Helper endpoint to get the election price.","sidebar":"defaultSidebar"},"vocdoni-api/compute-ipfs-ci-dv-1-of-file":{"id":"vocdoni-api/compute-ipfs-ci-dv-1-of-file","title":"Compute IPFS CIDv1 of file","description":"Helper endpoint to get the IPFS CIDv1 hash of a file","sidebar":"defaultSidebar"},"vocdoni-api/count-election-votes":{"id":"vocdoni-api/count-election-votes","title":"Count election votes","description":"Get the number of votes for an election","sidebar":"defaultSidebar"},"vocdoni-api/count-organization-elections":{"id":"vocdoni-api/count-organization-elections","title":"Count organization elections","description":"Returns the number of elections for an organization","sidebar":"defaultSidebar"},"vocdoni-api/count-organizations":{"id":"vocdoni-api/count-organizations","title":"Count organizations","description":"Return the number of organizations","sidebar":"defaultSidebar"},"vocdoni-api/create-a-new-census":{"id":"vocdoni-api/create-a-new-census","title":"Create a new census","description":"Create a new census on the backend side. The census is still unpublished until [publish](publish-census) is called.","sidebar":"defaultSidebar"},"vocdoni-api/create-election":{"id":"vocdoni-api/create-election","title":"Create election","description":"It creates an election on the Vochain.","sidebar":"defaultSidebar"},"vocdoni-api/create-election-for-wallet":{"id":"vocdoni-api/create-election-for-wallet","title":"Create election for wallet","description":"Creates an election. Requires the bearer token of the account you want to create the election.","sidebar":"defaultSidebar"},"vocdoni-api/delete-census":{"id":"vocdoni-api/delete-census","title":"Delete census","description":"Delete unpublished census (not on the storage yet). See [publish census](census-publish)\\n","sidebar":"defaultSidebar"},"vocdoni-api/election-information":{"id":"vocdoni-api/election-information","title":"Election information","description":"Get full election information","sidebar":"defaultSidebar"},"vocdoni-api/election-results":{"id":"vocdoni-api/election-results","title":"Election results","description":"Returns a given election consensus results and useful information about the results. Results represented with BigInt strings.","sidebar":"defaultSidebar"},"vocdoni-api/elections":{"id":"vocdoni-api/elections","title":"Elections","description":"Elections","sidebar":"defaultSidebar"},"vocdoni-api/estimate-block-to-date":{"id":"vocdoni-api/estimate-block-to-date","title":"Estimate block to date","description":"Returns the estimated timestamp for the block height provided","sidebar":"defaultSidebar"},"vocdoni-api/estimate-date-to-block":{"id":"vocdoni-api/estimate-date-to-block","title":"Estimate date to block","description":"Returns the estimated block height for the timestamp provided","sidebar":"defaultSidebar"},"vocdoni-api/export-census":{"id":"vocdoni-api/export-census","title":"Export census","description":"Export census to JSON format. Requires Bearer token","sidebar":"defaultSidebar"},"vocdoni-api/export-census-database":{"id":"vocdoni-api/export-census-database","title":"Export census database","description":"Export the whole census database to a JSON file. Requires Admin Bearer token.","sidebar":"defaultSidebar"},"vocdoni-api/exports-the-indexer-database":{"id":"vocdoni-api/exports-the-indexer-database","title":"Exports the indexer database","description":"Exports the indexer SQL database in raw format","sidebar":"defaultSidebar"},"vocdoni-api/get-account":{"id":"vocdoni-api/get-account","title":"Get account","description":"Get account information by its address or public key. The `infoURI` parameter contain where account metadata is uploaded (like avatar, name...). It return also an already parsed \'metadata\' object from this infoUri.","sidebar":"defaultSidebar"},"vocdoni-api/get-block-by-hash":{"id":"vocdoni-api/get-block-by-hash","title":"Get block (by hash)","description":"Returns the block from the given hash","sidebar":"defaultSidebar"},"vocdoni-api/get-block-by-height":{"id":"vocdoni-api/get-block-by-height","title":"Get block (by height)","description":"Returns the full block information at the given height","sidebar":"defaultSidebar"},"vocdoni-api/get-next-election-id":{"id":"vocdoni-api/get-next-election-id","title":"Get next election ID","description":"nextElectionIDHandler","sidebar":"defaultSidebar"},"vocdoni-api/get-type-of-census":{"id":"vocdoni-api/get-type-of-census","title":"Get type of census","description":"Get the census type","sidebar":"defaultSidebar"},"vocdoni-api/get-vote":{"id":"vocdoni-api/get-vote","title":"Get vote","description":"Get the content of an existing Vote. If is an encrypted election it return the `encryptionKeys` indexes and the package will be codified.","sidebar":"defaultSidebar"},"vocdoni-api/import-census":{"id":"vocdoni-api/import-census","title":"Import census","description":"Import census from JSON previously exported using [`/censuses/{censusId}/export`](census-export). Requires Bearer token","sidebar":"defaultSidebar"},"vocdoni-api/import-census-database":{"id":"vocdoni-api/import-census-database","title":"Import census database","description":"Import the whole census database from a JSON file.","sidebar":"defaultSidebar"},"vocdoni-api/list-account-received-and-sent-token-transfers":{"id":"vocdoni-api/list-account-received-and-sent-token-transfers","title":"List account received and sent token transfers","description":"Returns the token transfers for an account. A transfer is a token transference from one account to other (excepting the burn address).","sidebar":"defaultSidebar"},"vocdoni-api/list-account-token-fees":{"id":"vocdoni-api/list-account-token-fees","title":"List account token fees","description":"Returns the token fees for an account. A spending is an amount of tokens burnt from one account for executing transactions.","sidebar":"defaultSidebar"},"vocdoni-api/list-all-census-references":{"id":"vocdoni-api/list-all-census-references","title":"List all census references","description":"List all census references. Requires Admin Bearer token.","sidebar":"defaultSidebar"},"vocdoni-api/list-all-token-fees":{"id":"vocdoni-api/list-all-token-fees","title":"List all token fees","description":"Returns the token fees list ordered by date. A spending is an amount of tokens burnt from one account for executing transactions.","sidebar":"defaultSidebar"},"vocdoni-api/list-all-token-fees-by-reference":{"id":"vocdoni-api/list-all-token-fees-by-reference","title":"List all token fees by reference","description":"Returns the token fees list filtered by reference and ordered by date. A spending is an amount of tokens burnt from one account for executing transactions.","sidebar":"defaultSidebar"},"vocdoni-api/list-all-token-fees-by-type":{"id":"vocdoni-api/list-all-token-fees-by-type","title":"List all token fees by type","description":"Returns the token fees list filtered by type and ordered by date. A spending is an amount of tokens burnt from one account for executing transactions.","sidebar":"defaultSidebar"},"vocdoni-api/list-election-votes":{"id":"vocdoni-api/list-election-votes","title":"List election votes","description":"Returns the list of voteIDs for an election (paginated)","sidebar":"defaultSidebar"},"vocdoni-api/list-elections":{"id":"vocdoni-api/list-elections","title":"List elections","description":"Get a list of elections summaries.","sidebar":"defaultSidebar"},"vocdoni-api/list-elections-filtered":{"id":"vocdoni-api/list-elections-filtered","title":"List elections (filtered)","description":"Return a filtered elections list, the available filters have to be sent on the request body. Available are:","sidebar":"defaultSidebar"},"vocdoni-api/list-encryption-keys":{"id":"vocdoni-api/list-encryption-keys","title":"List encryption keys","description":"Returns the list of public/private encryption keys","sidebar":"defaultSidebar"},"vocdoni-api/list-of-the-existing-accounts":{"id":"vocdoni-api/list-of-the-existing-accounts","title":"List of the existing accounts","description":"Returns information (address, balance and nonce) of the existing accounts","sidebar":"defaultSidebar"},"vocdoni-api/list-of-valid-sik-roots":{"id":"vocdoni-api/list-of-valid-sik-roots","title":"List of valid SIK roots","description":"Returns the list of currently valid roots of the merkle tree where the vochain account SIK\'s are stored.","sidebar":"defaultSidebar"},"vocdoni-api/list-organization-elections":{"id":"vocdoni-api/list-organization-elections","title":"List organization elections","description":"List the elections of an organization","sidebar":"defaultSidebar"},"vocdoni-api/list-organization-elections-by-status":{"id":"vocdoni-api/list-organization-elections-by-status","title":"List organization elections by status","description":"List the elections of an organization by status","sidebar":"defaultSidebar"},"vocdoni-api/list-organizations":{"id":"vocdoni-api/list-organizations","title":"List organizations","description":"An **Organizations** is an account with `infoUri` that contains organization associated metadata.","sidebar":"defaultSidebar"},"vocdoni-api/list-organizations-filtered":{"id":"vocdoni-api/list-organizations-filtered","title":"List organizations (filtered)","description":"Returns a list of organizations filtered by its partial id, paginated by the given page","sidebar":"defaultSidebar"},"vocdoni-api/list-transactions":{"id":"vocdoni-api/list-transactions","title":"List Transactions","description":"To get full transaction information use [/chain/transaction/{blockHeight}/{txIndex}](transaction-by-block-index).\\nWhere transactionIndex is the index of the transaction on the containing block.","sidebar":"defaultSidebar"},"vocdoni-api/list-validators":{"id":"vocdoni-api/list-validators","title":"List validators","description":"Returns the list of validators","sidebar":"defaultSidebar"},"vocdoni-api/price-factors-information":{"id":"vocdoni-api/price-factors-information","title":"Price factors information","description":"Package electionprice provides a mechanism for calculating the price of an election based on its characteristics.","sidebar":"defaultSidebar"},"vocdoni-api/prove-key-to-census":{"id":"vocdoni-api/prove-key-to-census","title":"Prove key to census","description":"Prove the key and weight belong to the census root hash.","sidebar":"defaultSidebar"},"vocdoni-api/publish-census":{"id":"vocdoni-api/publish-census","title":"Publish census","description":"Register a census to the storage (IPFS in our case). After this, the census can\'t be edited.","sidebar":"defaultSidebar"},"vocdoni-api/publish-census-at-root":{"id":"vocdoni-api/publish-census-at-root","title":"Publish census at root","description":"Register a census to the storage (IPFS in our case). After this, the census can\'t be edited.","sidebar":"defaultSidebar"},"vocdoni-api/returns-if-the-address-provided-has-a-valid-sik":{"id":"vocdoni-api/returns-if-the-address-provided-has-a-valid-sik","title":"Returns if the address provided has a valid SIK","description":"Returns if the address provided, associated to an a registered account or not, has a valid SIK already registered or not.","sidebar":"defaultSidebar"},"vocdoni-api/set-account":{"id":"vocdoni-api/set-account","title":"Set account","description":"It register an account to the blockchain including IPFS metadata upload.","sidebar":"defaultSidebar"},"vocdoni-api/set-wallet-account":{"id":"vocdoni-api/set-wallet-account","title":"Set wallet account","description":"Set a new account. Needed the bearer token associated the account.","sidebar":"defaultSidebar"},"vocdoni-api/sik":{"id":"vocdoni-api/sik","title":"SIK","description":"SIK","sidebar":"defaultSidebar"},"vocdoni-api/submit-a-vote":{"id":"vocdoni-api/submit-a-vote","title":"Submit a vote","description":"Submit a vote using a protobuf signed transaction. The corresponding result are the vote id and transaction hash where the vote is registered.","sidebar":"defaultSidebar"},"vocdoni-api/submit-transaction":{"id":"vocdoni-api/submit-transaction","title":"Submit transaction","description":"It submit a transaction. Depending of transaction type will return different kinds of responses:","sidebar":"defaultSidebar"},"vocdoni-api/total-number-of-accounts":{"id":"vocdoni-api/total-number-of-accounts","title":"Total number of accounts","description":"Returns the count of total number of existing accounts","sidebar":"defaultSidebar"},"vocdoni-api/total-number-of-sent-and-received-transactions":{"id":"vocdoni-api/total-number-of-sent-and-received-transactions","title":"Total number of sent and received transactions","description":"Returns the count of total number of sent and received transactions for an account. A transaction is a token transfer from one account to another existing account","sidebar":"defaultSidebar"},"vocdoni-api/transaction-by-block-height-and-index":{"id":"vocdoni-api/transaction-by-block-height-and-index","title":"Transaction by block height and index","description":"Get transaction full information by block height and index. It returns JSON transaction protobuf encoded. Depending of transaction type will return different types of objects. Current transaction types can be found calling `/chain/transactions/cost`","sidebar":"defaultSidebar"},"vocdoni-api/transaction-by-hash":{"id":"vocdoni-api/transaction-by-hash","title":"Transaction by hash","description":"Using transaction hash it return the `block` and `index` containing that contains the transaction. After, you could use this `block` and `index` to retrieve transaction full info using [transaction by block and index](transaction-by-block-index)","sidebar":"defaultSidebar"},"vocdoni-api/transaction-by-index":{"id":"vocdoni-api/transaction-by-index","title":"Transaction by index","description":"Get transaction by its index. This is not transaction reference (hash), and neither the block height and block index. The transaction index is an incremental counter for each transaction. You could use the transaction `block` and `index` to retrieve full info using [transaction by block and index](transaction-by-block-index).","sidebar":"defaultSidebar"},"vocdoni-api/transaction-costs":{"id":"vocdoni-api/transaction-costs","title":"Transaction costs","description":"Returns the list of transactions and its cost","sidebar":"defaultSidebar"},"vocdoni-api/transactions-count":{"id":"vocdoni-api/transactions-count","title":"Transactions count","description":"Returns the number of transactions","sidebar":"defaultSidebar"},"vocdoni-api/transactions-in-a-block":{"id":"vocdoni-api/transactions-in-a-block","title":"Transactions in a block","description":"Given a block returns the list of transactions for that block","sidebar":"defaultSidebar"},"vocdoni-api/transfer-tokens":{"id":"vocdoni-api/transfer-tokens","title":"Transfer tokens","description":"Transfer balance to another account. Needed the bearer token associated the account.","sidebar":"defaultSidebar"},"vocdoni-api/verify-merkle-proof":{"id":"vocdoni-api/verify-merkle-proof","title":"Verify merkle proof","description":"Verify that a previously obtained Merkle proof for a key, acquired via [/censuses/{censusId}/proof/{publicKey}](prove-key-to-census) is still correct.","sidebar":"defaultSidebar"},"vocdoni-api/verify-vote":{"id":"vocdoni-api/verify-vote","title":"Verify vote","description":"Check if vote is registered on the blockchain on specific election. Just return Ok status code","sidebar":"defaultSidebar"},"vocdoni-api/vocdoni-api":{"id":"vocdoni-api/vocdoni-api","title":"Vocdoni API","description":"The Vocdoni API is a REST API that substitutes the previous RPCs in order to make it easier for developers/integrators to build on top of the voting protocol. This API facilitates creating votings using Vocdoni, without the hassle of learning a complex blockchain platform, allowing to perform all the features that enable the voting protocol such as creating an account, entity, voting process, census & vote, abstracting as much as possible the complexity and offering simple and straightforward methods to perform those actions.","sidebar":"defaultSidebar"},"vocdoni-api/vochain-information":{"id":"vocdoni-api/vochain-information","title":"Vochain information","description":"Return basic Vocdoni Blockchain (Vochain) information like blockTime, chainId, current height...","sidebar":"defaultSidebar"},"vocdoni-api/votes":{"id":"vocdoni-api/votes","title":"Votes","description":"Votes","sidebar":"defaultSidebar"},"vocdoni-api/wallet":{"id":"vocdoni-api/wallet","title":"Wallet","description":"Wallet","sidebar":"defaultSidebar"}}}')}}]); \ No newline at end of file diff --git a/assets/js/a7c28e13.40fad2a9.js b/assets/js/a7c28e13.40fad2a9.js new file mode 100644 index 000000000..8ab0d5256 --- /dev/null +++ b/assets/js/a7c28e13.40fad2a9.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdemo=self.webpackChunkdemo||[]).push([[7862],{3905:(e,t,n)=>{n.d(t,{Zo:()=>d,kt:()=>k});var a=n(67294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function s(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var o=a.createContext({}),p=function(e){var t=a.useContext(o),n=t;return e&&(n="function"==typeof e?e(t):s(s({},t),e)),n},d=function(e){var t=p(e.components);return a.createElement(o.Provider,{value:t},e.children)},c={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},u=a.forwardRef((function(e,t){var n=e.components,r=e.mdxType,i=e.originalType,o=e.parentName,d=l(e,["components","mdxType","originalType","parentName"]),u=p(n),k=r,m=u["".concat(o,".").concat(k)]||u[k]||c[k]||i;return n?a.createElement(m,s(s({ref:t},d),{},{components:n})):a.createElement(m,s({ref:t},d))}));function k(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var i=n.length,s=new Array(i);s[0]=u;var l={};for(var o in t)hasOwnProperty.call(t,o)&&(l[o]=t[o]);l.originalType=e,l.mdxType="string"==typeof e?e:r,s[1]=l;for(var p=2;p{n.r(t),n.d(t,{assets:()=>o,contentTitle:()=>s,default:()=>c,frontMatter:()=>i,metadata:()=>l,toc:()=>p});var a=n(87462),r=(n(67294),n(3905));const i={},s="Census Types",l={unversionedId:"sdk/integration-details/census-types/census-types",id:"sdk/integration-details/census-types/census-types",title:"Census Types",description:"A census is a list of voters who are eligible to vote in a given election. There are multiple ways to define a census with Vocdoni, each with different privacy and verifiability considerations. The census types are defined and documented at a protocol level and include on-chain, off-chain Merkle tree, and off-chain Credential Service Provider.",source:"@site/docs/sdk/integration-details/census-types/census-types.md",sourceDirName:"sdk/integration-details/census-types",slug:"/sdk/integration-details/census-types/",permalink:"/sdk/integration-details/census-types/",draft:!1,tags:[],version:"current",frontMatter:{},sidebar:"defaultSidebar",previous:{title:"Integration Details",permalink:"/sdk/integration-details/"},next:{title:"Off-chain Credential Service Provider",permalink:"/sdk/integration-details/census-types/off-chain-csp"}},o={},p=[],d={toc:p};function c(e){let{components:t,...n}=e;return(0,r.kt)("wrapper",(0,a.Z)({},d,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",{id:"census-types"},"Census Types"),(0,r.kt)("p",null,"A census is a list of voters who are eligible to vote in a given election. There are multiple ways to define a census with Vocdoni, each with different privacy and verifiability considerations. The census types are defined and ",(0,r.kt)("a",{parentName:"p",href:"/protocol/census"},"documented")," at a protocol level and include ",(0,r.kt)("a",{parentName:"p",href:"/sdk/integration-details/census-types/on-chain"},"on-chain"),", ",(0,r.kt)("a",{parentName:"p",href:"/sdk/integration-details/census-types/off-chain-tree"},"off-chain Merkle tree"),", and ",(0,r.kt)("a",{parentName:"p",href:"/sdk/integration-details/census-types/off-chain-csp"},"off-chain Credential Service Provider"),". "),(0,r.kt)("p",null,"The census type is selected from the SDK by using a ",(0,r.kt)("a",{parentName:"p",href:"/sdk/reference/classes/Census"},(0,r.kt)("inlineCode",{parentName:"a"},"census"))," of that type when creating an election. The SDK ",(0,r.kt)("a",{parentName:"p",href:"/sdk/reference/classes/Census#hierarchy"},"census types")," correspond to the three protocol-level census types according to the following table:"),(0,r.kt)("table",null,(0,r.kt)("thead",{parentName:"table"},(0,r.kt)("tr",{parentName:"thead"},(0,r.kt)("th",{parentName:"tr",align:null},"SDK Census Type"),(0,r.kt)("th",{parentName:"tr",align:null},"Protocol Type"),(0,r.kt)("th",{parentName:"tr",align:null},"weighted"),(0,r.kt)("th",{parentName:"tr",align:null},"anonymous"),(0,r.kt)("th",{parentName:"tr",align:null},(0,r.kt)("a",{parentName:"th",href:"/sdk/reference/enums/CensusType"},(0,r.kt)("inlineCode",{parentName:"a"},"CensusType"))),(0,r.kt)("th",{parentName:"tr",align:null}))),(0,r.kt)("tbody",{parentName:"table"},(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("a",{parentName:"td",href:"/sdk/reference/classes/CSPCensus"},(0,r.kt)("inlineCode",{parentName:"a"},"CSPCensus"))),(0,r.kt)("td",{parentName:"tr",align:null},"Off-chain CSP"),(0,r.kt)("td",{parentName:"tr",align:null},"no"),(0,r.kt)("td",{parentName:"tr",align:null},"optional"),(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("inlineCode",{parentName:"td"},"CSP")),(0,r.kt)("td",{parentName:"tr",align:null})),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("a",{parentName:"td",href:"/sdk/reference/classes/PublishedCensus"},(0,r.kt)("inlineCode",{parentName:"a"},"PublishedCensus"))," -> ",(0,r.kt)("a",{parentName:"td",href:"/sdk/reference/classes/TokenCensus"},(0,r.kt)("inlineCode",{parentName:"a"},"TokenCensus"))),(0,r.kt)("td",{parentName:"tr",align:null},"On-chain"),(0,r.kt)("td",{parentName:"tr",align:null},"yes"),(0,r.kt)("td",{parentName:"tr",align:null},"no"),(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("inlineCode",{parentName:"td"},"WEIGHTED")),(0,r.kt)("td",{parentName:"tr",align:null})),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("a",{parentName:"td",href:"/sdk/reference/classes/PublishedCensus"},(0,r.kt)("inlineCode",{parentName:"a"},"PublishedCensus"))," -> ",(0,r.kt)("a",{parentName:"td",href:"/sdk/reference/classes/TokenCensus"},(0,r.kt)("inlineCode",{parentName:"a"},"TokenCensus"))),(0,r.kt)("td",{parentName:"tr",align:null},"On-chain"),(0,r.kt)("td",{parentName:"tr",align:null},"yes"),(0,r.kt)("td",{parentName:"tr",align:null},"yes"),(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("inlineCode",{parentName:"td"},"ANONYMOUS")),(0,r.kt)("td",{parentName:"tr",align:null})),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("a",{parentName:"td",href:"/sdk/reference/classes/OffchainCensus"},(0,r.kt)("inlineCode",{parentName:"a"},"OffchainCensus"))," -> ",(0,r.kt)("a",{parentName:"td",href:"/sdk/reference/classes/PlainCensus"},(0,r.kt)("inlineCode",{parentName:"a"},"PlainCensus"))),(0,r.kt)("td",{parentName:"tr",align:null},"Off-chain tree"),(0,r.kt)("td",{parentName:"tr",align:null},"no"),(0,r.kt)("td",{parentName:"tr",align:null},"no"),(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("inlineCode",{parentName:"td"},"WEIGHTED")),(0,r.kt)("td",{parentName:"tr",align:null})),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("a",{parentName:"td",href:"/sdk/reference/classes/OffchainCensus"},(0,r.kt)("inlineCode",{parentName:"a"},"OffchainCensus"))," -> ",(0,r.kt)("a",{parentName:"td",href:"/sdk/reference/classes/PlainCensus"},(0,r.kt)("inlineCode",{parentName:"a"},"PlainCensus"))),(0,r.kt)("td",{parentName:"tr",align:null},"Off-chain tree"),(0,r.kt)("td",{parentName:"tr",align:null},"no"),(0,r.kt)("td",{parentName:"tr",align:null},"yes"),(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("inlineCode",{parentName:"td"},"WEIGHTED")),(0,r.kt)("td",{parentName:"tr",align:null})),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("a",{parentName:"td",href:"/sdk/reference/classes/OffchainCensus"},(0,r.kt)("inlineCode",{parentName:"a"},"OffchainCensus"))," -> ",(0,r.kt)("a",{parentName:"td",href:"/sdk/reference/classes/WeightedCensus"},(0,r.kt)("inlineCode",{parentName:"a"},"WeightedCensus"))),(0,r.kt)("td",{parentName:"tr",align:null},"Off-chain tree"),(0,r.kt)("td",{parentName:"tr",align:null},"yes"),(0,r.kt)("td",{parentName:"tr",align:null},"no"),(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("inlineCode",{parentName:"td"},"ANONYMOUS")),(0,r.kt)("td",{parentName:"tr",align:null})),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("a",{parentName:"td",href:"/sdk/reference/classes/OffchainCensus"},(0,r.kt)("inlineCode",{parentName:"a"},"OffchainCensus"))," -> ",(0,r.kt)("a",{parentName:"td",href:"/sdk/reference/classes/WeightedCensus"},(0,r.kt)("inlineCode",{parentName:"a"},"WeightedCensus"))),(0,r.kt)("td",{parentName:"tr",align:null},"Off-chain tree"),(0,r.kt)("td",{parentName:"tr",align:null},"yes"),(0,r.kt)("td",{parentName:"tr",align:null},"yes"),(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("inlineCode",{parentName:"td"},"ANONYMOUS")),(0,r.kt)("td",{parentName:"tr",align:null})))),(0,r.kt)("admonition",{type:"note"},(0,r.kt)("p",{parentName:"admonition"},"A weighted census is one where some voters' votes have more power than others, set by a ",(0,r.kt)("inlineCode",{parentName:"p"},"weight")," value. ",(0,r.kt)("inlineCode",{parentName:"p"},"PlainCensus")," is described by a ",(0,r.kt)("inlineCode",{parentName:"p"},"WEIGHTED")," ",(0,r.kt)("inlineCode",{parentName:"p"},"CensusType")," because it technically is a weighted census, with every weight set to ",(0,r.kt)("inlineCode",{parentName:"p"},"1"),".")))}c.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/a7c28e13.efafb069.js b/assets/js/a7c28e13.efafb069.js deleted file mode 100644 index 8a004f5b4..000000000 --- a/assets/js/a7c28e13.efafb069.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkdemo=self.webpackChunkdemo||[]).push([[7862],{3905:(e,t,n)=>{n.d(t,{Zo:()=>d,kt:()=>k});var a=n(67294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function s(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var o=a.createContext({}),p=function(e){var t=a.useContext(o),n=t;return e&&(n="function"==typeof e?e(t):s(s({},t),e)),n},d=function(e){var t=p(e.components);return a.createElement(o.Provider,{value:t},e.children)},c={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},u=a.forwardRef((function(e,t){var n=e.components,r=e.mdxType,i=e.originalType,o=e.parentName,d=l(e,["components","mdxType","originalType","parentName"]),u=p(n),k=r,m=u["".concat(o,".").concat(k)]||u[k]||c[k]||i;return n?a.createElement(m,s(s({ref:t},d),{},{components:n})):a.createElement(m,s({ref:t},d))}));function k(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var i=n.length,s=new Array(i);s[0]=u;var l={};for(var o in t)hasOwnProperty.call(t,o)&&(l[o]=t[o]);l.originalType=e,l.mdxType="string"==typeof e?e:r,s[1]=l;for(var p=2;p{n.r(t),n.d(t,{assets:()=>o,contentTitle:()=>s,default:()=>c,frontMatter:()=>i,metadata:()=>l,toc:()=>p});var a=n(87462),r=(n(67294),n(3905));const i={},s="Census Types",l={unversionedId:"sdk/integration-details/census-types/census-types",id:"sdk/integration-details/census-types/census-types",title:"Census Types",description:"A census is a list of voters who are eligible to vote in a given election. There are multiple ways to define a census with Vocdoni, each with different privacy and verifiability considerations. The census types are defined at a protocol level and include on-chain, off-chain Merkle tree, and off-chain Credential Service Provider.",source:"@site/docs/sdk/integration-details/census-types/census-types.md",sourceDirName:"sdk/integration-details/census-types",slug:"/sdk/integration-details/census-types/",permalink:"/sdk/integration-details/census-types/",draft:!1,tags:[],version:"current",frontMatter:{},sidebar:"defaultSidebar",previous:{title:"Integration Details",permalink:"/sdk/integration-details/"},next:{title:"Off-chain Credential Service Provider",permalink:"/sdk/integration-details/census-types/off-chain-csp"}},o={},p=[],d={toc:p};function c(e){let{components:t,...n}=e;return(0,r.kt)("wrapper",(0,a.Z)({},d,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",{id:"census-types"},"Census Types"),(0,r.kt)("p",null,"A census is a list of voters who are eligible to vote in a given election. There are multiple ways to define a census with Vocdoni, each with different privacy and verifiability considerations. The ",(0,r.kt)("a",{parentName:"p",href:"/protocol/census"},"census types")," are defined at a protocol level and include ",(0,r.kt)("a",{parentName:"p",href:"/sdk/integration-details/census-types/on-chain"},"on-chain"),", ",(0,r.kt)("a",{parentName:"p",href:"/sdk/integration-details/census-types/off-chain-tree"},"off-chain Merkle tree"),", and ",(0,r.kt)("a",{parentName:"p",href:"/sdk/integration-details/census-types/off-chain-csp"},"off-chain Credential Service Provider"),". "),(0,r.kt)("p",null,"The census type is selected from the SDK by using a ",(0,r.kt)("a",{parentName:"p",href:"/sdk/reference/classes/Census"},(0,r.kt)("inlineCode",{parentName:"a"},"census"))," of that type when creating an election. The SDK ",(0,r.kt)("a",{parentName:"p",href:"/sdk/reference/classes/Census#hierarchy"},"census types")," correspond to the three protocol-level census types according to the following table:"),(0,r.kt)("table",null,(0,r.kt)("thead",{parentName:"table"},(0,r.kt)("tr",{parentName:"thead"},(0,r.kt)("th",{parentName:"tr",align:null},"SDK Census Type"),(0,r.kt)("th",{parentName:"tr",align:null},"Protocol Type"),(0,r.kt)("th",{parentName:"tr",align:null},"weighted"),(0,r.kt)("th",{parentName:"tr",align:null},"anonymous"),(0,r.kt)("th",{parentName:"tr",align:null},(0,r.kt)("a",{parentName:"th",href:"/sdk/reference/enums/CensusType"},(0,r.kt)("inlineCode",{parentName:"a"},"CensusType"))),(0,r.kt)("th",{parentName:"tr",align:null}))),(0,r.kt)("tbody",{parentName:"table"},(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("a",{parentName:"td",href:"/sdk/reference/classes/CSPCensus"},(0,r.kt)("inlineCode",{parentName:"a"},"CSPCensus"))),(0,r.kt)("td",{parentName:"tr",align:null},"Off-chain CSP"),(0,r.kt)("td",{parentName:"tr",align:null},"no"),(0,r.kt)("td",{parentName:"tr",align:null},"optional"),(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("inlineCode",{parentName:"td"},"CSP")),(0,r.kt)("td",{parentName:"tr",align:null})),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("a",{parentName:"td",href:"/sdk/reference/classes/PublishedCensus"},(0,r.kt)("inlineCode",{parentName:"a"},"PublishedCensus"))," -> ",(0,r.kt)("a",{parentName:"td",href:"/sdk/reference/classes/TokenCensus"},(0,r.kt)("inlineCode",{parentName:"a"},"TokenCensus"))),(0,r.kt)("td",{parentName:"tr",align:null},"On-chain"),(0,r.kt)("td",{parentName:"tr",align:null},"yes"),(0,r.kt)("td",{parentName:"tr",align:null},"no"),(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("inlineCode",{parentName:"td"},"WEIGHTED")),(0,r.kt)("td",{parentName:"tr",align:null})),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("a",{parentName:"td",href:"/sdk/reference/classes/PublishedCensus"},(0,r.kt)("inlineCode",{parentName:"a"},"PublishedCensus"))," -> ",(0,r.kt)("a",{parentName:"td",href:"/sdk/reference/classes/TokenCensus"},(0,r.kt)("inlineCode",{parentName:"a"},"TokenCensus"))),(0,r.kt)("td",{parentName:"tr",align:null},"On-chain"),(0,r.kt)("td",{parentName:"tr",align:null},"yes"),(0,r.kt)("td",{parentName:"tr",align:null},"yes"),(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("inlineCode",{parentName:"td"},"ANONYMOUS")),(0,r.kt)("td",{parentName:"tr",align:null})),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("a",{parentName:"td",href:"/sdk/reference/classes/OffchainCensus"},(0,r.kt)("inlineCode",{parentName:"a"},"OffchainCensus"))," -> ",(0,r.kt)("a",{parentName:"td",href:"/sdk/reference/classes/PlainCensus"},(0,r.kt)("inlineCode",{parentName:"a"},"PlainCensus"))),(0,r.kt)("td",{parentName:"tr",align:null},"Off-chain tree"),(0,r.kt)("td",{parentName:"tr",align:null},"no"),(0,r.kt)("td",{parentName:"tr",align:null},"no"),(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("inlineCode",{parentName:"td"},"WEIGHTED")),(0,r.kt)("td",{parentName:"tr",align:null})),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("a",{parentName:"td",href:"/sdk/reference/classes/OffchainCensus"},(0,r.kt)("inlineCode",{parentName:"a"},"OffchainCensus"))," -> ",(0,r.kt)("a",{parentName:"td",href:"/sdk/reference/classes/PlainCensus"},(0,r.kt)("inlineCode",{parentName:"a"},"PlainCensus"))),(0,r.kt)("td",{parentName:"tr",align:null},"Off-chain tree"),(0,r.kt)("td",{parentName:"tr",align:null},"no"),(0,r.kt)("td",{parentName:"tr",align:null},"yes"),(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("inlineCode",{parentName:"td"},"WEIGHTED")),(0,r.kt)("td",{parentName:"tr",align:null})),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("a",{parentName:"td",href:"/sdk/reference/classes/OffchainCensus"},(0,r.kt)("inlineCode",{parentName:"a"},"OffchainCensus"))," -> ",(0,r.kt)("a",{parentName:"td",href:"/sdk/reference/classes/WeightedCensus"},(0,r.kt)("inlineCode",{parentName:"a"},"WeightedCensus"))),(0,r.kt)("td",{parentName:"tr",align:null},"Off-chain tree"),(0,r.kt)("td",{parentName:"tr",align:null},"yes"),(0,r.kt)("td",{parentName:"tr",align:null},"no"),(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("inlineCode",{parentName:"td"},"ANONYMOUS")),(0,r.kt)("td",{parentName:"tr",align:null})),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("a",{parentName:"td",href:"/sdk/reference/classes/OffchainCensus"},(0,r.kt)("inlineCode",{parentName:"a"},"OffchainCensus"))," -> ",(0,r.kt)("a",{parentName:"td",href:"/sdk/reference/classes/WeightedCensus"},(0,r.kt)("inlineCode",{parentName:"a"},"WeightedCensus"))),(0,r.kt)("td",{parentName:"tr",align:null},"Off-chain tree"),(0,r.kt)("td",{parentName:"tr",align:null},"yes"),(0,r.kt)("td",{parentName:"tr",align:null},"yes"),(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("inlineCode",{parentName:"td"},"ANONYMOUS")),(0,r.kt)("td",{parentName:"tr",align:null})))),(0,r.kt)("admonition",{type:"note"},(0,r.kt)("p",{parentName:"admonition"},"A weighted census is one where some voters' votes have more power than others, set by a ",(0,r.kt)("inlineCode",{parentName:"p"},"weight")," value. ",(0,r.kt)("inlineCode",{parentName:"p"},"PlainCensus")," is described by a ",(0,r.kt)("inlineCode",{parentName:"p"},"WEIGHTED")," ",(0,r.kt)("inlineCode",{parentName:"p"},"CensusType")," because it technically is a weighted census, with every weight set to ",(0,r.kt)("inlineCode",{parentName:"p"},"1"),".")))}c.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/aa9e799f.5fdc864b.js b/assets/js/aa9e799f.5fdc864b.js new file mode 100644 index 000000000..bc9a6c4a9 --- /dev/null +++ b/assets/js/aa9e799f.5fdc864b.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdemo=self.webpackChunkdemo||[]).push([[4183],{3905:(e,t,n)=>{n.d(t,{Zo:()=>u,kt:()=>h});var a=n(67294);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function s(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function r(e){for(var t=1;t=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var l=a.createContext({}),c=function(e){var t=a.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):r(r({},t),e)),n},u=function(e){var t=c(e.components);return a.createElement(l.Provider,{value:t},e.children)},p={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},d=a.forwardRef((function(e,t){var n=e.components,o=e.mdxType,s=e.originalType,l=e.parentName,u=i(e,["components","mdxType","originalType","parentName"]),d=c(n),h=o,k=d["".concat(l,".").concat(h)]||d[h]||p[h]||s;return n?a.createElement(k,r(r({ref:t},u),{},{components:n})):a.createElement(k,r({ref:t},u))}));function h(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var s=n.length,r=new Array(s);r[0]=d;var i={};for(var l in t)hasOwnProperty.call(t,l)&&(i[l]=t[l]);i.originalType=e,i.mdxType="string"==typeof e?e:o,r[1]=i;for(var c=2;c{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>r,default:()=>p,frontMatter:()=>s,metadata:()=>i,toc:()=>c});var a=n(87462),o=(n(67294),n(3905));const s={},r="On-chain Token-Based Census",i={unversionedId:"sdk/integration-details/census-types/on-chain/on-chain",id:"sdk/integration-details/census-types/on-chain/on-chain",title:"On-chain Token-Based Census",description:"An on-chain census is one whose voters are defined by holding tokens on the Ethereum blockchain. Currently the following token types are supported:",source:"@site/docs/sdk/integration-details/census-types/on-chain/on-chain.md",sourceDirName:"sdk/integration-details/census-types/on-chain",slug:"/sdk/integration-details/census-types/on-chain/",permalink:"/sdk/integration-details/census-types/on-chain/",draft:!1,tags:[],version:"current",frontMatter:{},sidebar:"defaultSidebar",previous:{title:"Off-chain Merkle Tree",permalink:"/sdk/integration-details/census-types/off-chain-tree"},next:{title:"Complex Census",permalink:"/sdk/integration-details/census-types/on-chain/complex-census"}},l={},c=[{value:"Tutorial",id:"tutorial",level:2},{value:"Setup",id:"setup",level:3},{value:"Creating a Token",id:"creating-a-token",level:4},{value:"Registering Your Token",id:"registering-your-token",level:4},{value:"Creating the Census",id:"creating-the-census",level:3},{value:"Complex Census",id:"complex-census",level:4},{value:"Election & Voting",id:"election--voting",level:3},{value:"Anonymity",id:"anonymity",level:2}],u={toc:c};function p(e){let{components:t,...n}=e;return(0,o.kt)("wrapper",(0,a.Z)({},u,n,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("h1",{id:"on-chain-token-based-census"},"On-chain Token-Based Census"),(0,o.kt)("p",null,"An on-chain census is one whose voters are defined by holding tokens on the Ethereum blockchain. Currently the following token types are supported:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"ERC20"),(0,o.kt)("li",{parentName:"ul"},"ERC721"),(0,o.kt)("li",{parentName:"ul"},"ERC777"),(0,o.kt)("li",{parentName:"ul"},"POAP"),(0,o.kt)("li",{parentName:"ul"},"Gitcoin Passport Score"),(0,o.kt)("li",{parentName:"ul"},"Gitcoin Passport Shields (coming soon)"),(0,o.kt)("li",{parentName:"ul"},"ERC1155 (coming soon)")),(0,o.kt)("admonition",{title:"token selection",type:"warning"},(0,o.kt)("p",{parentName:"admonition"},"While all of the above token types are supported, the recommended use-case for a token-based census is a custom token created specifically to govern an organization. It is theoretically possible to create a census with a popular token such as ETH, but the number of token-holders and frequency of transactions for such a token make census generation impractical. ")),(0,o.kt)("p",null,"This census type is supported by our ",(0,o.kt)("a",{parentName:"p",href:"/protocol/census/on-chain/census3"},"Census3")," service which serves as a bridge between Ethereum and clients, collecting token-holder data and generating census trees."),(0,o.kt)("h2",{id:"tutorial"},"Tutorial"),(0,o.kt)("p",null,"You can check out a full working example of this tutorial ",(0,o.kt)("a",{parentName:"p",href:"https://github.com/vocdoni/vocdoni-sdk/tree/examples/token-based/examples/token-based"},"here")),(0,o.kt)("p",null,"The on-chain census requires some extra setup, as censuses depend on indexing token balances from a public blockchain. Luckily the SDK provides a client to the Census3 service which keeps track of token balances and translates blockchain data to a straightforward census of voters. This tutorial explains how to set up your environment and use the ",(0,o.kt)("a",{parentName:"p",href:"/sdk/reference/classes/vocdonicensus3client"},"VocdoniCensus3Client"),"."),(0,o.kt)("h3",{id:"setup"},"Setup"),(0,o.kt)("p",null,"The first consideration when setting up an on-chain census is which token you will use to validate voters. This section will explain how to create a token for testing and register that token to the census3 service."),(0,o.kt)("h4",{id:"creating-a-token"},"Creating a Token"),(0,o.kt)("admonition",{title:"existing token",type:"tip"},(0,o.kt)("p",{parentName:"admonition"},"If you already have a token that represents your organization, feel free to skip this step and register your token with the census3 service.")),(0,o.kt)("p",null,"The easiest way to start using and testing the census3 service is to create a testing token on a testnet (a blockchain network built for testing integrations, where tokens have no real value). We will use a free service to generate a token on the ",(0,o.kt)("a",{parentName:"p",href:"https://www.alchemy.com/overviews/sepolia-testnet"},"Sepolia")," testnet. Before you can generate a token, however, there are two steps:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"Make sure you have a wallet such as ",(0,o.kt)("a",{parentName:"li",href:"https://metamask.io/"},"Metamask")," and an account to use for testing. "),(0,o.kt)("li",{parentName:"ul"},"Request some Sepolia ETH from the ",(0,o.kt)("a",{parentName:"li",href:"https://www.alchemy.com/faucets/ethereum-sepolia"},"Sepolia faucet"),'. You need testnet Ethereum to "pay" for transactions on Sepolia. ')),(0,o.kt)("p",null,"You can use ",(0,o.kt)("a",{parentName:"p",href:"https://coinfactory.app/generator/erc20/standard-token"},"Coin Factory"),' to create a standard token. For testing purposes the name, symbol, and initial supply of the token do not matter. After pressing "create token" and signing with you metamask account, make sure to open the token\'s etherscan page and copy its address.'),(0,o.kt)("h4",{id:"registering-your-token"},"Registering Your Token"),(0,o.kt)("p",null,"With a token created, you now need to register this token to the census3 service. You can set up a fresh Vocdoni SDK environment as described in the ",(0,o.kt)("a",{parentName:"p",href:"/sdk/tutorial"},"tutorial"),"."),(0,o.kt)("p",null,"For the sake of testing, let's simply hard-code some information about the token we want to use. We need the address of the token you just published as well as the public Chain ID for the testnet (or mainnet) you are using. Sepolia's chainID is ",(0,o.kt)("inlineCode",{parentName:"p"},"11155111"),". We also need the token type, which in this case is ",(0,o.kt)("inlineCode",{parentName:"p"},"erc20"),". "),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-ts"},"const myToken = {\n address: '0x...',\n chainID: 11155111,\n type: 'erc20',\n};\n")),(0,o.kt)("p",null,"In addition to creating a normal VocdoniSDKClient, you also need a ",(0,o.kt)("a",{parentName:"p",href:"/sdk/reference/classes/vocdonicensus3client"},(0,o.kt)("inlineCode",{parentName:"a"},"VocdoniCensus3Client")),". Use the same environment as you would for the standard SDK client, in this case Staging for a stable testing environment."),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-ts"},"const census3client = new VocdoniCensus3Client({ env: EnvOptions.STG });\n")),(0,o.kt)("p",null,"Make sure the Sepolia network is supported by the census3 service with ",(0,o.kt)("a",{parentName:"p",href:"/sdk/reference/classes/vocdonicensus3client#getsupportedchains"},(0,o.kt)("inlineCode",{parentName:"a"},"getSupportedChains")),". Sepolia should always be supported, but if it is not, you need to create a token on a chain that is."),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-ts"},"let chains = await census3Client.getSupportedChains();\nlet supportsChain = false;\nfor (let chain of chains) {\n if (chain.chainID == myToken.chainID) {\n supportsChain = true;\n }\n}\n")),(0,o.kt)("p",null,"Similarly, before registering the token, you can double-check whether it already is supported with ",(0,o.kt)("a",{parentName:"p",href:"/sdk/reference/classes/vocdonicensus3client#getsupportedtokens"},(0,o.kt)("inlineCode",{parentName:"a"},"getSupportedTokens")),". Here we convert our target token address to lowercase because it is represented by a case-insensitive hex-string. If the token is already supported (not possible if the token is brand-new), you can skip the next step."),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-ts"},"let tokens = await census3Client.getSupportedTokens();\nlet supportsToken = false;\nfor (let token of tokens) {\n if (token.ID.toLowerCase() === myToken.address.toLowerCase()) {\n supportsToken = true;\n }\n}\n")),(0,o.kt)("p",null,"Now we can register the token. "),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-ts"},"await census3Client.createToken(myToken.address, myToken.type, myToken.chainID);\n")),(0,o.kt)("admonition",{title:"warning",type:"warning"},(0,o.kt)("p",{parentName:"admonition"},"The ",(0,o.kt)("a",{parentName:"p",href:"/sdk/reference/classes/vocdonicensus3client#createtoken"},(0,o.kt)("inlineCode",{parentName:"a"},"createToken"))," function asks the census3 service to add the token to its registry, but this does not mean the token is ready to use.")),(0,o.kt)("p",null,"Now that the token is registered, we can request the token info from the census3 service. Before using this token to create a census or getting information about the number of token-holders, however, we need to wait for the census3 service to peruse the blockchain and index the entire history of the token. Even with a brand new token this can take some time in the range of 30 minutes. ",(0,o.kt)("inlineCode",{parentName:"p"},"info.status")," reports whether the token has synced and the syncing progress percentage."),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-ts"},"let status = (await census3Client.getToken(myToken.address, myToken.chainID)).status;\nif (!status.synced) {\n console.log('Token %s is syncing. Progress %d%. Try again later.', myToken.address, status.progress);\n return;\n}\n")),(0,o.kt)("h3",{id:"creating-the-census"},"Creating the Census"),(0,o.kt)("p",null,"Once a token has been registered and is synced, the steps above never have to be performed again. Simple censuses can be created with ",(0,o.kt)("inlineCode",{parentName:"p"},"createTokenCensus"),": this creates the 'default' census, in which every token-holder has a weighted vote according to their token balance. "),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-ts"},"const census = await census3Client.createTokenCensus(myToken.address, myToken.chainID);\n")),(0,o.kt)("h4",{id:"complex-census"},"Complex Census"),(0,o.kt)("p",null,"It is possible to create a census with more complex inclusion criteria, such as holders of two different tokens. In order to do this, each token must individually be supported by the census3 service.\nThe first step is to create a 'strategy' with ",(0,o.kt)("inlineCode",{parentName:"p"},"census3Client.createStrategy"),". This strategy ID is then passed to ",(0,o.kt)("inlineCode",{parentName:"p"},"census3Client.createCensus")," to generate the census itself.\n",(0,o.kt)("inlineCode",{parentName:"p"},"createStrategy")," takes a ",(0,o.kt)("inlineCode",{parentName:"p"},"predicate")," string which defines the logical operations representing inclusion criteria for the census strategy."),(0,o.kt)("p",null,"For a detailed guide on creating complex on-chain censuses, check out ",(0,o.kt)("a",{parentName:"p",href:"on-chain/complex-census"},"Complex Census")),(0,o.kt)("h3",{id:"election--voting"},"Election & Voting"),(0,o.kt)("p",null,"Once a census has been created, the entire process is identical to the off-chain tree census process."),(0,o.kt)("ol",null,(0,o.kt)("li",{parentName:"ol"},"Create account"),(0,o.kt)("li",{parentName:"ol"},"Create election"),(0,o.kt)("li",{parentName:"ol"},"Publish election & wait for it to be posted"),(0,o.kt)("li",{parentName:"ol"},"Cast votes"),(0,o.kt)("li",{parentName:"ol"},"Count votes")),(0,o.kt)("p",null,"The one difference here is how voter wallets are accessed. Because we are using a token-based census, voters are expected to have custody of their private keys. In a web application, you would need to ask users to connect with a wallet provider (like Metamask) to provide the public key associated with their token-holder account and to sign their vote transaction. You can see how we implemented this in our ",(0,o.kt)("a",{parentName:"p",href:"https://github.com/vocdoni/vocdoni-sdk/blob/0a4464c9440d96d7cc5b3ac5e81e9350794660d7/examples/vite-react-app/src/containers/App.tsx#L185"},"vite-react example"),". "),(0,o.kt)("p",null,"For the purposes of this tutorial, we can just manually import the private key of the ",(0,o.kt)("strong",{parentName:"p"},"testing-only")," wallet we used to generate the token initially. You could also make other testing wallets and send some of your testing token to them so you can use multiple voters with different weights."),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-ts"},"// Private-keys copied from your wallet provider. NEVER do this with an account you use to hold real funds.\nconst voters = ['...', '...'];\nfor (const voter of voters) {\n const wallet = new Wallet(voter);\n const client = new VocdoniSDKClient({ env: EnvOptions.STG, wallet: wallet, electionId: electionId });\n ...\n // Create the vote and cast is as you would with an off-chain census\n")),(0,o.kt)("h2",{id:"anonymity"},"Anonymity"),(0,o.kt)("p",null,"Anonymity may seem impossible for token-based censuses, as votes are weighted based on public token balance values. However, we have been able to design a sufficiently-anonymous approach by rounding token values, which you can read about on our ",(0,o.kt)("a",{parentName:"p",href:"https://blog.vocdoni.io/anonymous-voting-token-based"},"blog"),". This form of anonymity has some drawbacks and theoretical weaknesses that users should be aware of, but it provides a strong layer of anonymity under the right conditions. "),(0,o.kt)("p",null,"All you need to do to create an anonymous token-based census is to set the ",(0,o.kt)("inlineCode",{parentName:"p"},"anonymous")," parameter to ",(0,o.kt)("inlineCode",{parentName:"p"},"true"),":"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-ts"},"const census = await census3Client.createTokenCensus(myToken.address, myToken.chainID, true);\n")),(0,o.kt)("p",null,"You can then use this census with an anonymous election:"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-ts"},"electionType: { anonymous: true },\n")),(0,o.kt)("p",null,"Voting proceeds as normal and the anonymity is applied."))}p.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/aa9e799f.61d22874.js b/assets/js/aa9e799f.61d22874.js deleted file mode 100644 index 0ccbfbccd..000000000 --- a/assets/js/aa9e799f.61d22874.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkdemo=self.webpackChunkdemo||[]).push([[4183],{3905:(e,t,n)=>{n.d(t,{Zo:()=>u,kt:()=>h});var a=n(67294);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function s(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function r(e){for(var t=1;t=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var l=a.createContext({}),c=function(e){var t=a.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):r(r({},t),e)),n},u=function(e){var t=c(e.components);return a.createElement(l.Provider,{value:t},e.children)},p={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},d=a.forwardRef((function(e,t){var n=e.components,o=e.mdxType,s=e.originalType,l=e.parentName,u=i(e,["components","mdxType","originalType","parentName"]),d=c(n),h=o,k=d["".concat(l,".").concat(h)]||d[h]||p[h]||s;return n?a.createElement(k,r(r({ref:t},u),{},{components:n})):a.createElement(k,r({ref:t},u))}));function h(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var s=n.length,r=new Array(s);r[0]=d;var i={};for(var l in t)hasOwnProperty.call(t,l)&&(i[l]=t[l]);i.originalType=e,i.mdxType="string"==typeof e?e:o,r[1]=i;for(var c=2;c{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>r,default:()=>p,frontMatter:()=>s,metadata:()=>i,toc:()=>c});var a=n(87462),o=(n(67294),n(3905));const s={},r="On-chain Token-Based Census",i={unversionedId:"sdk/integration-details/census-types/on-chain/on-chain",id:"sdk/integration-details/census-types/on-chain/on-chain",title:"On-chain Token-Based Census",description:"An on-chain census is one whose voters are defined by holding tokens on the Ethereum blockchain. Currently the following token types are supported:",source:"@site/docs/sdk/integration-details/census-types/on-chain/on-chain.md",sourceDirName:"sdk/integration-details/census-types/on-chain",slug:"/sdk/integration-details/census-types/on-chain/",permalink:"/sdk/integration-details/census-types/on-chain/",draft:!1,tags:[],version:"current",frontMatter:{},sidebar:"defaultSidebar",previous:{title:"Off-chain Merkle Tree",permalink:"/sdk/integration-details/census-types/off-chain-tree"},next:{title:"Complex Census",permalink:"/sdk/integration-details/census-types/on-chain/complex-census"}},l={},c=[{value:"Tutorial",id:"tutorial",level:2},{value:"Setup",id:"setup",level:3},{value:"Creating a Token",id:"creating-a-token",level:4},{value:"Registering Your Token",id:"registering-your-token",level:4},{value:"Creating the Census",id:"creating-the-census",level:3},{value:"Complex Census",id:"complex-census",level:4},{value:"Election & Voting",id:"election--voting",level:3},{value:"Anonymity",id:"anonymity",level:2}],u={toc:c};function p(e){let{components:t,...n}=e;return(0,o.kt)("wrapper",(0,a.Z)({},u,n,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("h1",{id:"on-chain-token-based-census"},"On-chain Token-Based Census"),(0,o.kt)("p",null,"An on-chain census is one whose voters are defined by holding tokens on the Ethereum blockchain. Currently the following token types are supported:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"ERC20"),(0,o.kt)("li",{parentName:"ul"},"ERC721"),(0,o.kt)("li",{parentName:"ul"},"ERC777"),(0,o.kt)("li",{parentName:"ul"},"POAP"),(0,o.kt)("li",{parentName:"ul"},"Gitcoin Passport Score"),(0,o.kt)("li",{parentName:"ul"},"Gitcoin Passport Shields (coming soon)"),(0,o.kt)("li",{parentName:"ul"},"ERC1155 (coming soon)")),(0,o.kt)("admonition",{title:"token selection",type:"warning"},(0,o.kt)("p",{parentName:"admonition"},"While all of the above token types are supported, the recommended use-case for a token-based census is a custom token created specifically to govern an organization. It is theoretically possible to create a census with a popular token such as ETH, but the number of token-holders and frequency of transactions for such a token make census generation impractical. ")),(0,o.kt)("p",null,"This census type is supported by our ",(0,o.kt)("a",{parentName:"p",href:"https://github.com/vocdoni/census3"},"Census3")," service which serves as a bridge between Ethereum and clients, collecting token-holder data and generating census trees."),(0,o.kt)("h2",{id:"tutorial"},"Tutorial"),(0,o.kt)("p",null,"You can check out a full working example of this tutorial ",(0,o.kt)("a",{parentName:"p",href:"https://github.com/vocdoni/vocdoni-sdk/tree/examples/token-based/examples/token-based"},"here")),(0,o.kt)("p",null,"The on-chain census requires some extra setup, as censuses depend on indexing token balances from a public blockchain. Luckily the SDK provides a client to the Census3 service which keeps track of token balances and translates blockchain data to a straightforward census of voters. This tutorial explains how to set up your environment and use the ",(0,o.kt)("a",{parentName:"p",href:"/sdk/reference/classes/vocdonicensus3client"},"VocdoniCensus3Client"),"."),(0,o.kt)("h3",{id:"setup"},"Setup"),(0,o.kt)("p",null,"The first consideration when setting up an on-chain census is which token you will use to validate voters. This section will explain how to create a token for testing and register that token to the census3 service."),(0,o.kt)("h4",{id:"creating-a-token"},"Creating a Token"),(0,o.kt)("admonition",{title:"existing token",type:"tip"},(0,o.kt)("p",{parentName:"admonition"},"If you already have a token that represents your organization, feel free to skip this step and register your token with the census3 service.")),(0,o.kt)("p",null,"The easiest way to start using and testing the census3 service is to create a testing token on a testnet (a blockchain network built for testing integrations, where tokens have no real value). We will use a free service to generate a token on the ",(0,o.kt)("a",{parentName:"p",href:"https://www.alchemy.com/overviews/sepolia-testnet"},"Sepolia")," testnet. Before you can generate a token, however, there are two steps:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"Make sure you have a wallet such as ",(0,o.kt)("a",{parentName:"li",href:"https://metamask.io/"},"Metamask")," and an account to use for testing. "),(0,o.kt)("li",{parentName:"ul"},"Request some Sepolia ETH from the ",(0,o.kt)("a",{parentName:"li",href:"https://www.alchemy.com/faucets/ethereum-sepolia"},"Sepolia faucet"),'. You need testnet Ethereum to "pay" for transactions on Sepolia. ')),(0,o.kt)("p",null,"You can use ",(0,o.kt)("a",{parentName:"p",href:"https://coinfactory.app/generator/erc20/standard-token"},"Coin Factory"),' to create a standard token. For testing purposes the name, symbol, and initial supply of the token do not matter. After pressing "create token" and signing with you metamask account, make sure to open the token\'s etherscan page and copy its address.'),(0,o.kt)("h4",{id:"registering-your-token"},"Registering Your Token"),(0,o.kt)("p",null,"With a token created, you now need to register this token to the census3 service. You can set up a fresh Vocdoni SDK environment as described in the ",(0,o.kt)("a",{parentName:"p",href:"/sdk/tutorial"},"tutorial"),"."),(0,o.kt)("p",null,"For the sake of testing, let's simply hard-code some information about the token we want to use. We need the address of the token you just published as well as the public Chain ID for the testnet (or mainnet) you are using. Sepolia's chainID is ",(0,o.kt)("inlineCode",{parentName:"p"},"11155111"),". We also need the token type, which in this case is ",(0,o.kt)("inlineCode",{parentName:"p"},"erc20"),". "),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-ts"},"const myToken = {\n address: '0x...',\n chainID: 11155111,\n type: 'erc20',\n};\n")),(0,o.kt)("p",null,"In addition to creating a normal VocdoniSDKClient, you also need a ",(0,o.kt)("a",{parentName:"p",href:"/sdk/reference/classes/vocdonicensus3client"},(0,o.kt)("inlineCode",{parentName:"a"},"VocdoniCensus3Client")),". Use the same environment as you would for the standard SDK client, in this case Staging for a stable testing environment."),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-ts"},"const census3client = new VocdoniCensus3Client({ env: EnvOptions.STG });\n")),(0,o.kt)("p",null,"Make sure the Sepolia network is supported by the census3 service with ",(0,o.kt)("a",{parentName:"p",href:"/sdk/reference/classes/vocdonicensus3client#getsupportedchains"},(0,o.kt)("inlineCode",{parentName:"a"},"getSupportedChains")),". Sepolia should always be supported, but if it is not, you need to create a token on a chain that is."),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-ts"},"let chains = await census3Client.getSupportedChains();\nlet supportsChain = false;\nfor (let chain of chains) {\n if (chain.chainID == myToken.chainID) {\n supportsChain = true;\n }\n}\n")),(0,o.kt)("p",null,"Similarly, before registering the token, you can double-check whether it already is supported with ",(0,o.kt)("a",{parentName:"p",href:"/sdk/reference/classes/vocdonicensus3client#getsupportedtokens"},(0,o.kt)("inlineCode",{parentName:"a"},"getSupportedTokens")),". Here we convert our target token address to lowercase because it is represented by a case-insensitive hex-string. If the token is already supported (not possible if the token is brand-new), you can skip the next step."),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-ts"},"let tokens = await census3Client.getSupportedTokens();\nlet supportsToken = false;\nfor (let token of tokens) {\n if (token.ID.toLowerCase() === myToken.address.toLowerCase()) {\n supportsToken = true;\n }\n}\n")),(0,o.kt)("p",null,"Now we can register the token. "),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-ts"},"await census3Client.createToken(myToken.address, myToken.type, myToken.chainID);\n")),(0,o.kt)("admonition",{title:"warning",type:"warning"},(0,o.kt)("p",{parentName:"admonition"},"The ",(0,o.kt)("a",{parentName:"p",href:"/sdk/reference/classes/vocdonicensus3client#createtoken"},(0,o.kt)("inlineCode",{parentName:"a"},"createToken"))," function asks the census3 service to add the token to its registry, but this does not mean the token is ready to use.")),(0,o.kt)("p",null,"Now that the token is registered, we can request the token info from the census3 service. Before using this token to create a census or getting information about the number of token-holders, however, we need to wait for the census3 service to peruse the blockchain and index the entire history of the token. Even with a brand new token this can take some time in the range of 30 minutes. ",(0,o.kt)("inlineCode",{parentName:"p"},"info.status")," reports whether the token has synced and the syncing progress percentage."),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-ts"},"let status = (await census3Client.getToken(myToken.address, myToken.chainID)).status;\nif (!status.synced) {\n console.log('Token %s is syncing. Progress %d%. Try again later.', myToken.address, status.progress);\n return;\n}\n")),(0,o.kt)("h3",{id:"creating-the-census"},"Creating the Census"),(0,o.kt)("p",null,"Once a token has been registered and is synced, the steps above never have to be performed again. Simple censuses can be created with ",(0,o.kt)("inlineCode",{parentName:"p"},"createTokenCensus"),": this creates the 'default' census, in which every token-holder has a weighted vote according to their token balance. "),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-ts"},"const census = await census3Client.createTokenCensus(myToken.address, myToken.chainID);\n")),(0,o.kt)("h4",{id:"complex-census"},"Complex Census"),(0,o.kt)("p",null,"It is possible to create a census with more complex inclusion criteria, such as holders of two different tokens. In order to do this, each token must individually be supported by the census3 service.\nThe first step is to create a 'strategy' with ",(0,o.kt)("inlineCode",{parentName:"p"},"census3Client.createStrategy"),". This strategy ID is then passed to ",(0,o.kt)("inlineCode",{parentName:"p"},"census3Client.createCensus")," to generate the census itself.\n",(0,o.kt)("inlineCode",{parentName:"p"},"createStrategy")," takes a ",(0,o.kt)("inlineCode",{parentName:"p"},"predicate")," string which defines the logical operations representing inclusion criteria for the census strategy."),(0,o.kt)("p",null,"For a detailed guide on creating complex on-chain censuses, check out ",(0,o.kt)("a",{parentName:"p",href:"on-chain/complex-census"},"Complex Census")),(0,o.kt)("h3",{id:"election--voting"},"Election & Voting"),(0,o.kt)("p",null,"Once a census has been created, the entire process is identical to the off-chain tree census process."),(0,o.kt)("ol",null,(0,o.kt)("li",{parentName:"ol"},"Create account"),(0,o.kt)("li",{parentName:"ol"},"Create election"),(0,o.kt)("li",{parentName:"ol"},"Publish election & wait for it to be posted"),(0,o.kt)("li",{parentName:"ol"},"Cast votes"),(0,o.kt)("li",{parentName:"ol"},"Count votes")),(0,o.kt)("p",null,"The one difference here is how voter wallets are accessed. Because we are using a token-based census, voters are expected to have custody of their private keys. In a web application, you would need to ask users to connect with a wallet provider (like Metamask) to provide the public key associated with their token-holder account and to sign their vote transaction. You can see how we implemented this in our ",(0,o.kt)("a",{parentName:"p",href:"https://github.com/vocdoni/vocdoni-sdk/blob/0a4464c9440d96d7cc5b3ac5e81e9350794660d7/examples/vite-react-app/src/containers/App.tsx#L185"},"vite-react example"),". "),(0,o.kt)("p",null,"For the purposes of this tutorial, we can just manually import the private key of the ",(0,o.kt)("strong",{parentName:"p"},"testing-only")," wallet we used to generate the token initially. You could also make other testing wallets and send some of your testing token to them so you can use multiple voters with different weights."),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-ts"},"// Private-keys copied from your wallet provider. NEVER do this with an account you use to hold real funds.\nconst voters = ['...', '...'];\nfor (const voter of voters) {\n const wallet = new Wallet(voter);\n const client = new VocdoniSDKClient({ env: EnvOptions.STG, wallet: wallet, electionId: electionId });\n ...\n // Create the vote and cast is as you would with an off-chain census\n")),(0,o.kt)("h2",{id:"anonymity"},"Anonymity"),(0,o.kt)("p",null,"Anonymity may seem impossible for token-based censuses, as votes are weighted based on public token balance values. However, we have been able to design a sufficiently-anonymous approach by rounding token values, which you can read about on our ",(0,o.kt)("a",{parentName:"p",href:"https://blog.vocdoni.io/anonymous-voting-token-based"},"blog"),". This form of anonymity has some drawbacks and theoretical weaknesses that users should be aware of, but it provides a strong layer of anonymity under the right conditions. "),(0,o.kt)("p",null,"All you need to do to create an anonymous token-based census is to set the ",(0,o.kt)("inlineCode",{parentName:"p"},"anonymous")," parameter to ",(0,o.kt)("inlineCode",{parentName:"p"},"true"),":"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-ts"},"const census = await census3Client.createTokenCensus(myToken.address, myToken.chainID, true);\n")),(0,o.kt)("p",null,"You can then use this census with an anonymous election:"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-ts"},"electionType: { anonymous: true },\n")),(0,o.kt)("p",null,"Voting proceeds as normal and the anonymity is applied."))}p.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/b212ee85.b8670774.js b/assets/js/b212ee85.b8670774.js new file mode 100644 index 000000000..d9b657948 --- /dev/null +++ b/assets/js/b212ee85.b8670774.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdemo=self.webpackChunkdemo||[]).push([[9232],{3905:(e,t,n)=>{n.d(t,{Zo:()=>p,kt:()=>N});var a=n(67294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function l(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function i(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var d=a.createContext({}),s=function(e){var t=a.useContext(d),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},p=function(e){var t=s(e.components);return a.createElement(d.Provider,{value:t},e.children)},k={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},m=a.forwardRef((function(e,t){var n=e.components,r=e.mdxType,l=e.originalType,d=e.parentName,p=o(e,["components","mdxType","originalType","parentName"]),m=s(n),N=r,g=m["".concat(d,".").concat(N)]||m[N]||k[N]||l;return n?a.createElement(g,i(i({ref:t},p),{},{components:n})):a.createElement(g,i({ref:t},p))}));function N(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var l=n.length,i=new Array(l);i[0]=m;var o={};for(var d in t)hasOwnProperty.call(t,d)&&(o[d]=t[d]);o.originalType=e,o.mdxType="string"==typeof e?e:r,i[1]=o;for(var s=2;s{n.r(t),n.d(t,{assets:()=>d,contentTitle:()=>i,default:()=>k,frontMatter:()=>l,metadata:()=>o,toc:()=>s});var a=n(87462),r=(n(67294),n(3905));const l={},i="Census3 Service",o={unversionedId:"protocol/census/on-chain/census3",id:"protocol/census/on-chain/census3",title:"Census3 Service",description:"The Census3 Service is an API service which provides an easy way to create censuses for elections with holders of a single token or a combination of them. This is a wrapper of the on-chain census design and enables integrators to use on-chain censuses without manually registering tokens or generating storage proofs.",source:"@site/docs/protocol/census/on-chain/census3.md",sourceDirName:"protocol/census/on-chain",slug:"/protocol/census/on-chain/census3",permalink:"/protocol/census/on-chain/census3",draft:!1,tags:[],version:"current",frontMatter:{},sidebar:"defaultSidebar",previous:{title:"On-Chain Census",permalink:"/protocol/census/on-chain/"},next:{title:"Data Schemes",permalink:"/protocol/data-schemes/"}},d={},s=[{value:"Using the Census3 Service",id:"using-the-census3-service",level:2},{value:"Registering a token",id:"registering-a-token",level:3},{value:"Creating a strategy",id:"creating-a-strategy",level:3},{value:"Predicates",id:"predicates",level:4},{value:"Operators",id:"operators",level:4},{value:"Generating a census",id:"generating-a-census",level:3},{value:"API Defintion",id:"api-defintion",level:2},{value:"API Info",id:"api-info",level:3},{value:"GET /info",id:"get-info",level:4},{value:"Tokens",id:"tokens",level:3},{value:"GET /tokens",id:"get-tokens",level:4},{value:"GET /tokens/types",id:"get-tokenstypes",level:4},{value:"POST /tokens",id:"post-tokens",level:4},{value:"GET /tokens/{tokenID}?chainID={chainID}&externalID={externalID}",id:"get-tokenstokenidchainidchainidexternalidexternalid",level:4},{value:"GET /tokens/{tokenID}/holders/{holderID}?chainID={chainID}&externalID={externalID}",id:"get-tokenstokenidholdersholderidchainidchainidexternalidexternalid",level:4},{value:"Strategies",id:"strategies",level:3},{value:"GET /strategies",id:"get-strategies",level:4},{value:"POST /strategies",id:"post-strategies",level:4},{value:"POST /strategies/import/{cid}",id:"post-strategiesimportcid",level:4},{value:"GET /strategies/import/queue/{queueID}",id:"get-strategiesimportqueuequeueid",level:4},{value:"GET /strategies/{strategyID}",id:"get-strategiesstrategyid",level:4},{value:"GET /strategies/{strategyID}/estimation?anonymous={true|false}",id:"get-strategiesstrategyidestimationanonymoustruefalse",level:4},{value:"GET /strategies/{strategyID}/estimation/queue/{queueID}",id:"get-strategiesstrategyidestimationqueuequeueid",level:4},{value:"GET /strategies/{strategyID}/holders",id:"get-strategiesstrategyidholders",level:4},{value:"GET /strategies/token/{tokenID}?chainID={chainID}&externalID={externalID}",id:"get-strategiestokentokenidchainidchainidexternalidexternalid",level:4},{value:"POST /strategies/predicate/validate",id:"post-strategiespredicatevalidate",level:4},{value:"GET /strategies/predicate/operators",id:"get-strategiespredicateoperators",level:4},{value:"Censuses",id:"censuses",level:3},{value:"POST /censuses",id:"post-censuses",level:4},{value:"GET /censuses/{censusID}",id:"get-censusescensusid",level:4},{value:"GET /censuses/queue/{queueID}",id:"get-censusesqueuequeueid",level:4},{value:"GET /censuses/strategy/{strategyID}",id:"get-censusesstrategystrategyid",level:4}],p={toc:s};function k(e){let{components:t,...n}=e;return(0,r.kt)("wrapper",(0,a.Z)({},p,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",{id:"census3-service"},"Census3 Service"),(0,r.kt)("p",null,"The Census3 Service is an API service which provides an easy way to create censuses for elections with holders of a single token or a combination of them. This is a wrapper of the on-chain census design and enables integrators to use on-chain censuses without manually registering tokens or generating storage proofs."),(0,r.kt)("admonition",{title:"census3",type:"tip"},(0,r.kt)("p",{parentName:"admonition"},"This section only describes how the Census3 service works. In order to use this service, we recommend using the Vocdoni SDK ",(0,r.kt)("a",{parentName:"p",href:"/sdk/reference/classes/vocdonisdkclient"},"Census3 client"),". The details for using the census3 client are documented ",(0,r.kt)("a",{parentName:"p",href:"/sdk/integration-details/census-types/on-chain"},"here"),".")),(0,r.kt)("p",null,"The service creates a list of token-holder addresses and balances for every registered token. It does this by regularly scanning Ethereum-based networks and analyzing all transactions. In order to generate a census, the service uses token-holder data to create a Merkle Tree with the relation ",(0,r.kt)("inlineCode",{parentName:"p"},"HolderAddress"),"->",(0,r.kt)("inlineCode",{parentName:"p"},"Balance"),". This Merkle tree represents a census identically to an ",(0,r.kt)("a",{parentName:"p",href:"/protocol/census/off-chain-tree"},"off-chain merkle tree census"),", with those those holders as the set of voters and their balances as vote weights."),(0,r.kt)("h2",{id:"using-the-census3-service"},"Using the Census3 Service"),(0,r.kt)("p",null,"There are three main steps in using the Census3 Service: registering a token, creating a strategy, and generating a census."),(0,r.kt)("h3",{id:"registering-a-token"},"Registering a token"),(0,r.kt)("p",null,"Before a token can be used to create a census, it must be registered. A user requests that the service register a given token, and the service then begins to scan the target Ethereum network for transactions, building an index of that token. This may take some time."),(0,r.kt)("p",null,"The service suports the following token types:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"ERC20"),(0,r.kt)("li",{parentName:"ul"},"ERC721"),(0,r.kt)("li",{parentName:"ul"},"ERC777"),(0,r.kt)("li",{parentName:"ul"},"POAP"),(0,r.kt)("li",{parentName:"ul"},"Gitcoin Passport Score"),(0,r.kt)("li",{parentName:"ul"},"Gitcoin Passport Shields (",(0,r.kt)("em",{parentName:"li"},"coming soon"),")"),(0,r.kt)("li",{parentName:"ul"},"ERC1155 (",(0,r.kt)("em",{parentName:"li"},"coming soon"),")")),(0,r.kt)("admonition",{title:"token selection",type:"warning"},(0,r.kt)("p",{parentName:"admonition"},"While all of the above token types are supported, the recommended use-case for a token-based census is a custom token created specifically to govern an organization. It is theoretically possible to create a census with a popular token such as ETH, but it would be infeasible for the Census3 service to keep an updated index of all Ethereum transactions.")),(0,r.kt)("h3",{id:"creating-a-strategy"},"Creating a strategy"),(0,r.kt)("p",null,'A strategy is the logic behind building a single Merkle Tree from the set of holders of a token. The most basic strategy is "everyone who holds token X", but there can be more restrictions such as "everyone who holds more than 900 of token X", or complex statements like "everyone who holds token X AND token Y or Z". '),(0,r.kt)("h4",{id:"predicates"},"Predicates"),(0,r.kt)("p",null,'Strategies are defined by statements called "predicates." A predicate is comprised of:'),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"A operator, which is a function associated with a tag (e.g. ",(0,r.kt)("inlineCode",{parentName:"li"},"AND"),") that is used to combine token holders and define how to combine them."),(0,r.kt)("li",{parentName:"ul"},"Token symbols (e.g. ",(0,r.kt)("inlineCode",{parentName:"li"},"BTC"),"), that identify the token holders to combine.\nPredicates are structured by the following format: ",(0,r.kt)("inlineCode",{parentName:"li"}," "),", e.g. ",(0,r.kt)("inlineCode",{parentName:"li"},"BTC OR ETH"),". The syntax also support groups of operators, e.g. ",(0,r.kt)("inlineCode",{parentName:"li"},"USDC AND (ETH OR (BTC AND DAI))"))),(0,r.kt)("h4",{id:"operators"},"Operators"),(0,r.kt)("p",null,"Each of the operators uses a different logical strategy for combining token holder balances to create a weighted census:"),(0,r.kt)("table",null,(0,r.kt)("thead",{parentName:"table"},(0,r.kt)("tr",{parentName:"thead"},(0,r.kt)("th",{parentName:"tr",align:"left"},"Operator"),(0,r.kt)("th",{parentName:"tr",align:"left"},"Powerup"),(0,r.kt)("th",{parentName:"tr",align:"left"},"Usage"),(0,r.kt)("th",{parentName:"tr",align:"left"},"Description"))),(0,r.kt)("tbody",{parentName:"table"},(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"left"},(0,r.kt)("inlineCode",{parentName:"td"},"AND")),(0,r.kt)("td",{parentName:"tr",align:"left"}),(0,r.kt)("td",{parentName:"tr",align:"left"},(0,r.kt)("inlineCode",{parentName:"td"},"AND")),(0,r.kt)("td",{parentName:"tr",align:"left"},"Holders of both tokens, with a fixed weight of 1.")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"left"},(0,r.kt)("inlineCode",{parentName:"td"},"OR")),(0,r.kt)("td",{parentName:"tr",align:"left"}),(0,r.kt)("td",{parentName:"tr",align:"left"},(0,r.kt)("inlineCode",{parentName:"td"},"OR"),"\xa0"),(0,r.kt)("td",{parentName:"tr",align:"left"},"Holders of either or both tokens, with fixed weight of 1.")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"left"},(0,r.kt)("inlineCode",{parentName:"td"},"AND")),(0,r.kt)("td",{parentName:"tr",align:"left"},(0,r.kt)("inlineCode",{parentName:"td"},"sum")),(0,r.kt)("td",{parentName:"tr",align:"left"},(0,r.kt)("inlineCode",{parentName:"td"},"AND:sum")),(0,r.kt)("td",{parentName:"tr",align:"left"},"Holders of both tokens, with a weight adding the token balances.")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"left"},(0,r.kt)("inlineCode",{parentName:"td"},"AND")),(0,r.kt)("td",{parentName:"tr",align:"left"},(0,r.kt)("inlineCode",{parentName:"td"},"mul")),(0,r.kt)("td",{parentName:"tr",align:"left"},(0,r.kt)("inlineCode",{parentName:"td"},"AND:mul")),(0,r.kt)("td",{parentName:"tr",align:"left"},"Holders of both tokens, with a weight multiplying the token balances.")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"left"},(0,r.kt)("inlineCode",{parentName:"td"},"OR")),(0,r.kt)("td",{parentName:"tr",align:"left"},(0,r.kt)("inlineCode",{parentName:"td"},"sum")),(0,r.kt)("td",{parentName:"tr",align:"left"},(0,r.kt)("inlineCode",{parentName:"td"},"OR:sum")),(0,r.kt)("td",{parentName:"tr",align:"left"},"Holders of either or both tokens, with a weight adding the token balances.")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"left"},(0,r.kt)("inlineCode",{parentName:"td"},"OR")),(0,r.kt)("td",{parentName:"tr",align:"left"},(0,r.kt)("inlineCode",{parentName:"td"},"mul")),(0,r.kt)("td",{parentName:"tr",align:"left"},(0,r.kt)("inlineCode",{parentName:"td"},"OR:mul")),(0,r.kt)("td",{parentName:"tr",align:"left"},"Holders of either or both tokens, with a weight multiplying the token balances if both are non-zero, or equaling the balance that is non-zero.")))),(0,r.kt)("h3",{id:"generating-a-census"},"Generating a census"),(0,r.kt)("p",null,"A census is created from a given strategy and a registered token (or tokens) pertaining to that strategy. The service scans its index of token-holder data to accumulate a set of token holders and balance values and creates a Merkle tree to serve as the census. In the case of an anonymous census, there is one extra step called ",(0,r.kt)("a",{parentName:"p",href:"/protocol/anonymity/on-chain"},"rounding"),"."),(0,r.kt)("p",null,"Some details about the census:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"The censuses are published on ",(0,r.kt)("a",{parentName:"li",href:"https://ipfs.tech/"},"IPFS")," after their creation. "),(0,r.kt)("li",{parentName:"ul"},"Census3 uses ",(0,r.kt)("a",{parentName:"li",href:"go.vocdoni.io/dvote/tree/arbo"},"go.vocdoni.io/dvote/tree/arbo")," to build the census merkle trees."),(0,r.kt)("li",{parentName:"ul"},"The censuses can be created with the holders of just one token or a combination of tokens, using ",(0,r.kt)("strong",{parentName:"li"},"complex strategies"),"."),(0,r.kt)("li",{parentName:"ul"},"The censuses are ",(0,r.kt)("em",{parentName:"li"},"zk-friendly")," and can also be used for anonymous voting.")),(0,r.kt)("hr",null),(0,r.kt)("h2",{id:"api-defintion"},"API Defintion"),(0,r.kt)("p",null,"The Census3 Service provides a REST API with all of the above functionality.\nThere is an ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/vocdoni/census3/blob/main/example.sh"},"example bash script")," that shows the basic usage of this API."),(0,r.kt)("p",null,"The service should be available at the following URLs, depending on the environment:"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-ts"},"dev: 'https://census3-dev.vocdoni.net/api',\nstg: 'https://census3-stg.vocdoni.net/api',\nprod: 'https://census3.vocdoni.io/api',\n")),(0,r.kt)("p",null,"Endpoints:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"#api-info"},"API info")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"#tokens"},"Tokens")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"#strategies"},"Strategies")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"#censuses"},"Censuses"))),(0,r.kt)("hr",null),(0,r.kt)("h3",{id:"api-info"},"API Info"),(0,r.kt)("h4",{id:"get-info"},"GET ",(0,r.kt)("inlineCode",{parentName:"h4"},"/info")),(0,r.kt)("p",null,"Show information about the API service."),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"\ud83d\udce5 response:")),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-json"},'{\n "supportedChains": [\n {\n "chainID": 5,\n "shortName": "gor",\n "name": "Goerli"\n },\n {\n "chainID": 137,\n "shortName": "matic",\n "name": "Polygon Mainnet"\n },\n {\n "chainID": 80001,\n "shortName": "maticmum",\n "name": "Mumbai"\n },\n {\n "chainID": 1,\n "shortName": "eth",\n "name": "Ethereum Mainnet"\n }\n ]\n}\n')),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"\u26a0\ufe0f errors:")),(0,r.kt)("table",null,(0,r.kt)("thead",{parentName:"table"},(0,r.kt)("tr",{parentName:"thead"},(0,r.kt)("th",{parentName:"tr",align:"center"},"HTTP Status"),(0,r.kt)("th",{parentName:"tr",align:"left"},"Message"),(0,r.kt)("th",{parentName:"tr",align:"center"},"Internal error"))),(0,r.kt)("tbody",{parentName:"table"},(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"center"},"500"),(0,r.kt)("td",{parentName:"tr",align:"left"},(0,r.kt)("inlineCode",{parentName:"td"},"error encoding API info")),(0,r.kt)("td",{parentName:"tr",align:"center"},"5023")))),(0,r.kt)("hr",null),(0,r.kt)("h3",{id:"tokens"},"Tokens"),(0,r.kt)("h4",{id:"get-tokens"},"GET ",(0,r.kt)("inlineCode",{parentName:"h4"},"/tokens")),(0,r.kt)("p",null,"List of already added tokens."),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"Pagination URL params")),(0,r.kt)("table",null,(0,r.kt)("thead",{parentName:"table"},(0,r.kt)("tr",{parentName:"thead"},(0,r.kt)("th",{parentName:"tr",align:"left"},"URL key"),(0,r.kt)("th",{parentName:"tr",align:"left"},"Description"),(0,r.kt)("th",{parentName:"tr",align:"left"},"Example"))),(0,r.kt)("tbody",{parentName:"table"},(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"left"},(0,r.kt)("inlineCode",{parentName:"td"},"pageSize")),(0,r.kt)("td",{parentName:"tr",align:"left"},"(optional) Defines the number of results per page. By default, ",(0,r.kt)("inlineCode",{parentName:"td"},"100"),"."),(0,r.kt)("td",{parentName:"tr",align:"left"},(0,r.kt)("inlineCode",{parentName:"td"},"?pageSize=2"))),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"left"},(0,r.kt)("inlineCode",{parentName:"td"},"nextCursor")),(0,r.kt)("td",{parentName:"tr",align:"left"},"(optional) When is defined, it is used to get the page results, going forward. By default, ",(0,r.kt)("inlineCode",{parentName:"td"},'""'),"."),(0,r.kt)("td",{parentName:"tr",align:"left"},(0,r.kt)("inlineCode",{parentName:"td"},"?nextCursor=0x1234"))),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"left"},(0,r.kt)("inlineCode",{parentName:"td"},"prevCursor")),(0,r.kt)("td",{parentName:"tr",align:"left"},"(optional) When is defined, it is used to get the page results, going backwards. By default, ",(0,r.kt)("inlineCode",{parentName:"td"},'""'),"."),(0,r.kt)("td",{parentName:"tr",align:"left"},(0,r.kt)("inlineCode",{parentName:"td"},"?prevCursor=0x1234"))))),(0,r.kt)("p",null,"The maximus default page size is 10, but if you provide a page size of ",(0,r.kt)("inlineCode",{parentName:"p"},"-1"),", the endpoint will return all the results, and it does not require to be paginated."),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"\ud83d\udce5 response:")),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-json"},'{\n "tokens": [\n {\n "ID": "0x1324",\n "type": "erc20",\n "decimals": 18,\n "startBlock": 123456,\n "symbol": "$",\n "totalSupply": "21323",\n "name": "Amazing token",\n "synced": true|false,\n "defaultStrategy": 1,\n "tags": "testTag1,testTag2",\n "chainID": 1,\n "externalID": "",\n "chainAddress": "eth:0x1234",\n "iconURI": "http://...png"\n }\n ],\n "pagination": {\n "nextCursor": "",\n "prevCursor": "0x1234",\n "pageSize": 10\n }\n}\n')),(0,r.kt)("blockquote",null,(0,r.kt)("p",{parentName:"blockquote"},"If ",(0,r.kt)("inlineCode",{parentName:"p"},"tags")," is empty, it will be ommited.")),(0,r.kt)("blockquote",null,(0,r.kt)("p",{parentName:"blockquote"},"If ",(0,r.kt)("inlineCode",{parentName:"p"},"externalID")," is empty, it will be ommited.")),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"\u26a0\ufe0f errors:")),(0,r.kt)("table",null,(0,r.kt)("thead",{parentName:"table"},(0,r.kt)("tr",{parentName:"thead"},(0,r.kt)("th",{parentName:"tr",align:"center"},"HTTP Status"),(0,r.kt)("th",{parentName:"tr",align:"left"},"Message"),(0,r.kt)("th",{parentName:"tr",align:"center"},"Internal error"))),(0,r.kt)("tbody",{parentName:"table"},(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"center"},"204"),(0,r.kt)("td",{parentName:"tr",align:"left"},(0,r.kt)("inlineCode",{parentName:"td"},"no tokens found")),(0,r.kt)("td",{parentName:"tr",align:"center"},"4007")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"center"},"400"),(0,r.kt)("td",{parentName:"tr",align:"left"},(0,r.kt)("inlineCode",{parentName:"td"},"malformed pagination params")),(0,r.kt)("td",{parentName:"tr",align:"center"},"4022")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"center"},"500"),(0,r.kt)("td",{parentName:"tr",align:"left"},(0,r.kt)("inlineCode",{parentName:"td"},"error getting tokens information")),(0,r.kt)("td",{parentName:"tr",align:"center"},"5005")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"center"},"500"),(0,r.kt)("td",{parentName:"tr",align:"left"},(0,r.kt)("inlineCode",{parentName:"td"},"error encoding tokens")),(0,r.kt)("td",{parentName:"tr",align:"center"},"5011")))),(0,r.kt)("h4",{id:"get-tokenstypes"},"GET ",(0,r.kt)("inlineCode",{parentName:"h4"},"/tokens/types")),(0,r.kt)("p",null,"List the supported token types."),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"\ud83d\udce5 response:")),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-json"},'{\n "supportedTypes": [\n "erc20", \n "erc721", \n "erc777", \n "erc1155", \n "nation3", \n "wANT", \n "poap"\n ]\n}\n')),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"\u26a0\ufe0f errors: ")),(0,r.kt)("table",null,(0,r.kt)("thead",{parentName:"table"},(0,r.kt)("tr",{parentName:"thead"},(0,r.kt)("th",{parentName:"tr",align:"center"},"HTTP Status"),(0,r.kt)("th",{parentName:"tr",align:"left"},"Message"),(0,r.kt)("th",{parentName:"tr",align:"center"},"Internal error"))),(0,r.kt)("tbody",{parentName:"table"},(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"center"},"500"),(0,r.kt)("td",{parentName:"tr",align:"left"},(0,r.kt)("inlineCode",{parentName:"td"},"error encoding supported tokens types")),(0,r.kt)("td",{parentName:"tr",align:"center"},"5012")))),(0,r.kt)("h4",{id:"post-tokens"},"POST ",(0,r.kt)("inlineCode",{parentName:"h4"},"/tokens")),(0,r.kt)("p",null,"Creates a new token in the database to be scanned. It gets the token information from the provider associated to the token type defined. If the creation success the token will be scanned in the next scanner iteration. The scan process status can be checked getting the token information."),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"Important"),": When a token is created, the API also creates a simple strategy with just the holders of that token, which is assigned to it as ",(0,r.kt)("inlineCode",{parentName:"p"},"defaultStrategy"),"."),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"\ud83d\udce4 request:")),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-json"},'{\n "ID": "0x1234",\n "type": "erc20|erc721|erc777|erc1155|nation3|wANT|poap",\n "tags": "testTag1,testTag2",\n "chainID": 1,\n "externalID": "" // id for external holders providers\n}\n')),(0,r.kt)("blockquote",null,(0,r.kt)("p",{parentName:"blockquote"},(0,r.kt)("inlineCode",{parentName:"p"},"tags")," attribute is ",(0,r.kt)("em",{parentName:"p"},"optional"),".")),(0,r.kt)("blockquote",null,(0,r.kt)("p",{parentName:"blockquote"},(0,r.kt)("inlineCode",{parentName:"p"},"externalID")," URL parameter is ",(0,r.kt)("em",{parentName:"p"},"optional")," by default, but required for external provided tokens like POAPs.")),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"\u26a0\ufe0f errors:")),(0,r.kt)("table",null,(0,r.kt)("thead",{parentName:"table"},(0,r.kt)("tr",{parentName:"thead"},(0,r.kt)("th",{parentName:"tr",align:"center"},"\xa0HTTP Status"),(0,r.kt)("th",{parentName:"tr",align:"left"},"Message"),(0,r.kt)("th",{parentName:"tr",align:"center"},"Internal error"))),(0,r.kt)("tbody",{parentName:"table"},(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"center"},"400"),(0,r.kt)("td",{parentName:"tr",align:"left"},(0,r.kt)("inlineCode",{parentName:"td"},"malformed token information")),(0,r.kt)("td",{parentName:"tr",align:"center"},"4000")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"center"},"409"),(0,r.kt)("td",{parentName:"tr",align:"left"},(0,r.kt)("inlineCode",{parentName:"td"},"token already created")),(0,r.kt)("td",{parentName:"tr",align:"center"},"4009")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"center"},"400"),(0,r.kt)("td",{parentName:"tr",align:"left"},(0,r.kt)("inlineCode",{parentName:"td"},"chain ID provided not supported")),(0,r.kt)("td",{parentName:"tr",align:"center"},"4013")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"center"},"500"),(0,r.kt)("td",{parentName:"tr",align:"left"},(0,r.kt)("inlineCode",{parentName:"td"},"the token cannot be created")),(0,r.kt)("td",{parentName:"tr",align:"center"},"5000")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"center"},"500"),(0,r.kt)("td",{parentName:"tr",align:"left"},(0,r.kt)("inlineCode",{parentName:"td"},"error getting token information")),(0,r.kt)("td",{parentName:"tr",align:"center"},"5004")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"center"},"500"),(0,r.kt)("td",{parentName:"tr",align:"left"},(0,r.kt)("inlineCode",{parentName:"td"},"error initialising web3 client")),(0,r.kt)("td",{parentName:"tr",align:"center"},"5019")))),(0,r.kt)("h4",{id:"get-tokenstokenidchainidchainidexternalidexternalid"},"GET ",(0,r.kt)("inlineCode",{parentName:"h4"},"/tokens/{tokenID}?chainID={chainID}&externalID={externalID}")),(0,r.kt)("p",null,"Returns the information about the token referenced by the provided ID and chain ID, the external ID is optional."),(0,r.kt)("blockquote",null,(0,r.kt)("p",{parentName:"blockquote"},(0,r.kt)("inlineCode",{parentName:"p"},"chainID")," URL parameter is ",(0,r.kt)("em",{parentName:"p"},"mandatory"),".")),(0,r.kt)("blockquote",null,(0,r.kt)("p",{parentName:"blockquote"},(0,r.kt)("inlineCode",{parentName:"p"},"externalID")," URL parameter is ",(0,r.kt)("em",{parentName:"p"},"optional")," by default, but required for external provided tokens like POAPs.")),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"\ud83d\udce5 response:")),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-json"},'{\n "ID": "0x1324",\n "type": "erc20",\n "size": 120,\n "decimals": 18,\n "startBlock": 123456,\n "symbol": "$",\n "totalSupply": "21323",\n "name": "Amazing token",\n "status": {\n "atBlock": 12345,\n "synced": true|false,\n "progress": 87\n },\n "defaultStrategy": 1,\n "tags": "testTag1,testTag2",\n "chainID": 1,\n "externalID": "",\n "chainAddress": "eth:0x1234",\n "iconURI": "http://...png"\n}\n')),(0,r.kt)("blockquote",null,(0,r.kt)("p",{parentName:"blockquote"},"If ",(0,r.kt)("inlineCode",{parentName:"p"},"tags")," is empty, it will be ommited.")),(0,r.kt)("blockquote",null,(0,r.kt)("p",{parentName:"blockquote"},"If ",(0,r.kt)("inlineCode",{parentName:"p"},"externalID")," is empty, it will be ommited.")),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"\u26a0\ufe0f errors:")),(0,r.kt)("table",null,(0,r.kt)("thead",{parentName:"table"},(0,r.kt)("tr",{parentName:"thead"},(0,r.kt)("th",{parentName:"tr",align:"center"},"HTTP Status"),(0,r.kt)("th",{parentName:"tr",align:"left"},"Message"),(0,r.kt)("th",{parentName:"tr",align:"center"},"Internal error"))),(0,r.kt)("tbody",{parentName:"table"},(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"center"},"400"),(0,r.kt)("td",{parentName:"tr",align:"left"},(0,r.kt)("inlineCode",{parentName:"td"},"malformed token information")),(0,r.kt)("td",{parentName:"tr",align:"center"},"4001")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"center"},"400"),(0,r.kt)("td",{parentName:"tr",align:"left"},(0,r.kt)("inlineCode",{parentName:"td"},"malformed chain ID")),(0,r.kt)("td",{parentName:"tr",align:"center"},"4018")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"center"},"404"),(0,r.kt)("td",{parentName:"tr",align:"left"},(0,r.kt)("inlineCode",{parentName:"td"},"no token found")),(0,r.kt)("td",{parentName:"tr",align:"center"},"4003")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"center"},"500"),(0,r.kt)("td",{parentName:"tr",align:"left"},(0,r.kt)("inlineCode",{parentName:"td"},"error getting token information")),(0,r.kt)("td",{parentName:"tr",align:"center"},"5004")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"center"},"500"),(0,r.kt)("td",{parentName:"tr",align:"left"},(0,r.kt)("inlineCode",{parentName:"td"},"error encoding token")),(0,r.kt)("td",{parentName:"tr",align:"center"},"5010")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"center"},"500"),(0,r.kt)("td",{parentName:"tr",align:"left"},(0,r.kt)("inlineCode",{parentName:"td"},"chain ID provided not supported")),(0,r.kt)("td",{parentName:"tr",align:"center"},"5013")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"center"},"500"),(0,r.kt)("td",{parentName:"tr",align:"left"},(0,r.kt)("inlineCode",{parentName:"td"},"error initialising web3 client")),(0,r.kt)("td",{parentName:"tr",align:"center"},"5019")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"center"},"500"),(0,r.kt)("td",{parentName:"tr",align:"left"},(0,r.kt)("inlineCode",{parentName:"td"},"error getting number of token holders")),(0,r.kt)("td",{parentName:"tr",align:"center"},"5020")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"center"},"500"),(0,r.kt)("td",{parentName:"tr",align:"left"},(0,r.kt)("inlineCode",{parentName:"td"},"error getting last block number from web3 endpoint")),(0,r.kt)("td",{parentName:"tr",align:"center"},"5021")))),(0,r.kt)("h4",{id:"get-tokenstokenidholdersholderidchainidchainidexternalidexternalid"},"GET ",(0,r.kt)("inlineCode",{parentName:"h4"},"/tokens/{tokenID}/holders/{holderID}?chainID={chainID}&externalID={externalID}")),(0,r.kt)("p",null,"Returns the holder balance if the holder ID is already registered in the database as a holder of the token ID and chain ID provided, the external ID is optional."),(0,r.kt)("blockquote",null,(0,r.kt)("p",{parentName:"blockquote"},(0,r.kt)("inlineCode",{parentName:"p"},"chainID")," URL parameter is ",(0,r.kt)("em",{parentName:"p"},"mandatory"),".")),(0,r.kt)("blockquote",null,(0,r.kt)("p",{parentName:"blockquote"},(0,r.kt)("inlineCode",{parentName:"p"},"externalID")," URL parameter is ",(0,r.kt)("em",{parentName:"p"},"optional")," by default, but required for external provided tokens like POAPs.")),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"\ud83d\udce5 response:")),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-json"},'{\n "balance": "1234567890"\n}\n')),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"\u26a0\ufe0f errors:")),(0,r.kt)("table",null,(0,r.kt)("thead",{parentName:"table"},(0,r.kt)("tr",{parentName:"thead"},(0,r.kt)("th",{parentName:"tr",align:"center"},"HTTP Status"),(0,r.kt)("th",{parentName:"tr",align:"left"},"Message"),(0,r.kt)("th",{parentName:"tr",align:"center"},"Internal error"))),(0,r.kt)("tbody",{parentName:"table"},(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"center"},"400"),(0,r.kt)("td",{parentName:"tr",align:"left"},(0,r.kt)("inlineCode",{parentName:"td"},"malformed token information")),(0,r.kt)("td",{parentName:"tr",align:"center"},"4001")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"center"},"400"),(0,r.kt)("td",{parentName:"tr",align:"left"},(0,r.kt)("inlineCode",{parentName:"td"},"malformed chain ID")),(0,r.kt)("td",{parentName:"tr",align:"center"},"4018")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"center"},"404"),(0,r.kt)("td",{parentName:"tr",align:"left"},(0,r.kt)("inlineCode",{parentName:"td"},"no token found")),(0,r.kt)("td",{parentName:"tr",align:"center"},"4003")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"center"},"404"),(0,r.kt)("td",{parentName:"tr",align:"left"},(0,r.kt)("inlineCode",{parentName:"td"},"token holder not found for the token provided")),(0,r.kt)("td",{parentName:"tr",align:"center"},"4023")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"center"},"500"),(0,r.kt)("td",{parentName:"tr",align:"left"},(0,r.kt)("inlineCode",{parentName:"td"},"error getting token holders")),(0,r.kt)("td",{parentName:"tr",align:"center"},"5006")))),(0,r.kt)("hr",null),(0,r.kt)("h3",{id:"strategies"},"Strategies"),(0,r.kt)("h4",{id:"get-strategies"},"GET ",(0,r.kt)("inlineCode",{parentName:"h4"},"/strategies")),(0,r.kt)("p",null,"Returns the ID's list of the strategies registered."),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"Pagination URL params")),(0,r.kt)("table",null,(0,r.kt)("thead",{parentName:"table"},(0,r.kt)("tr",{parentName:"thead"},(0,r.kt)("th",{parentName:"tr",align:"left"},"URL key"),(0,r.kt)("th",{parentName:"tr",align:"left"},"Description"),(0,r.kt)("th",{parentName:"tr",align:"left"},"Example"))),(0,r.kt)("tbody",{parentName:"table"},(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"left"},(0,r.kt)("inlineCode",{parentName:"td"},"pageSize")),(0,r.kt)("td",{parentName:"tr",align:"left"},"(optional) Defines the number of results per page. By default, ",(0,r.kt)("inlineCode",{parentName:"td"},"100"),"."),(0,r.kt)("td",{parentName:"tr",align:"left"},(0,r.kt)("inlineCode",{parentName:"td"},"?pageSize=2"))),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"left"},(0,r.kt)("inlineCode",{parentName:"td"},"nextCursor")),(0,r.kt)("td",{parentName:"tr",align:"left"},"(optional) When is defined, it is used to get the page results, going forward. By default, ",(0,r.kt)("inlineCode",{parentName:"td"},'""'),"."),(0,r.kt)("td",{parentName:"tr",align:"left"},(0,r.kt)("inlineCode",{parentName:"td"},"?nextCursor=3"))),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"left"},(0,r.kt)("inlineCode",{parentName:"td"},"prevCursor")),(0,r.kt)("td",{parentName:"tr",align:"left"},"(optional) When is defined, it is used to get the page results, going backwards. By default, ",(0,r.kt)("inlineCode",{parentName:"td"},'""'),"."),(0,r.kt)("td",{parentName:"tr",align:"left"},(0,r.kt)("inlineCode",{parentName:"td"},"?prevCursor=1"))))),(0,r.kt)("p",null,"The maximus default page size is 10, but if you provide a page size of ",(0,r.kt)("inlineCode",{parentName:"p"},"-1"),", the endpoint will return all the results, and it does not require to be paginated"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"\ud83d\udce5 response:")),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-json"},'{\n "strategies": [\n {\n "ID": 1,\n "alias": "default MON strategy",\n "predicate": "MON",\n "uri": "ipfs://...",\n "tokens": {\n "MON": {\n "ID": "0x1234",\n "chainID": 5,\n "chainAddress": "gor:0x1234",\n "externalID": "mon_id_on_external_holder_provider"\n }\n }\n },\n {\n "ID": 2,\n "alias": "default ANT strategy",\n "predicate": "ANT",\n "uri": "ipfs://...",\n "tokens": {\n "ANT": {\n "ID": "0x1234",\n "chainID": 1,\n "chainAddress": "eth:0x1234" \n }\n }\n },\n {\n "ID": 3,\n "alias": "default USDC strategy",\n "predicate": "USDC",\n "uri": "ipfs://...",\n "tokens": {\n "USDC": {\n "ID": "0x1234",\n "chainID": 1,\n "chainAddress": "eth:0x1234"\n }\n }\n },\n {\n "ID": 4,\n "alias": "strategy_alias",\n "predicate": "MON AND (ANT OR USDC)",\n "uri": "ipfs://...",\n "tokens": {\n "MON": {\n "ID": "0x1234",\n "chainID": 5,\n "chainAddress": "gor:0x1234",\n "externalID": "mon_id_on_external_holder_provider"\n },\n "ANT": {\n "ID": "0x1234",\n "chainID": 1,\n "chainAddress": "eth:0x1234",\n "minBalance": "1"\n },\n "USDC": {\n "ID": "0x1234",\n "chainID": 1,\n "chainAddress": "eth:0x1234"\n }\n }\n }\n ],\n "pagination": {\n "nextCursor": "",\n "prevCursor": "1",\n "pageSize": 10\n }\n}\n')),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"\u26a0\ufe0f errors:")),(0,r.kt)("table",null,(0,r.kt)("thead",{parentName:"table"},(0,r.kt)("tr",{parentName:"thead"},(0,r.kt)("th",{parentName:"tr",align:"center"},"HTTP Status"),(0,r.kt)("th",{parentName:"tr",align:"left"},"Message"),(0,r.kt)("th",{parentName:"tr",align:"center"},"Internal error"))),(0,r.kt)("tbody",{parentName:"table"},(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"center"},"204"),(0,r.kt)("td",{parentName:"tr",align:"left"},(0,r.kt)("inlineCode",{parentName:"td"},"-")),(0,r.kt)("td",{parentName:"tr",align:"center"},"4008")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"center"},"400"),(0,r.kt)("td",{parentName:"tr",align:"left"},(0,r.kt)("inlineCode",{parentName:"td"},"malformed pagination params")),(0,r.kt)("td",{parentName:"tr",align:"center"},"4022")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"center"},"500"),(0,r.kt)("td",{parentName:"tr",align:"left"},(0,r.kt)("inlineCode",{parentName:"td"},"error getting strategies information")),(0,r.kt)("td",{parentName:"tr",align:"center"},"5008")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"center"},"500"),(0,r.kt)("td",{parentName:"tr",align:"left"},(0,r.kt)("inlineCode",{parentName:"td"},"error encoding strategies")),(0,r.kt)("td",{parentName:"tr",align:"center"},"5016")))),(0,r.kt)("h4",{id:"post-strategies"},"POST ",(0,r.kt)("inlineCode",{parentName:"h4"},"/strategies")),(0,r.kt)("p",null,"Stores a new strategy based on the defined combination of tokens provided, these tokens must be registered previously."),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"\ud83d\udce4 request:")),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-json"},' {\n "alias": "test_strategy",\n "predicate": "(wANT OR ANT) AND USDC",\n "tokens": {\n "wANT": {\n "ID": "0x1324",\n "chainID": 1,\n "minBalance": "10000"\n },\n "ANT": {\n "ID": "0x1324",\n "chainID": 5,\n },\n "USDC": {\n "ID": "0x1324",\n "chainID": 1,\n "minBalance": "50"\n },\n }\n }\n')),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"\ud83d\udce5 response:")),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-json"},'{\n "strategyID": 1\n}\n')),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"\u26a0\ufe0f errors:")),(0,r.kt)("table",null,(0,r.kt)("thead",{parentName:"table"},(0,r.kt)("tr",{parentName:"thead"},(0,r.kt)("th",{parentName:"tr",align:"center"},"HTTP Status"),(0,r.kt)("th",{parentName:"tr",align:"left"},"Message"),(0,r.kt)("th",{parentName:"tr",align:"center"},"Internal error"))),(0,r.kt)("tbody",{parentName:"table"},(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"center"},"404"),(0,r.kt)("td",{parentName:"tr",align:"left"},(0,r.kt)("inlineCode",{parentName:"td"},"no token found")),(0,r.kt)("td",{parentName:"tr",align:"center"},"4003")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"center"},"400"),(0,r.kt)("td",{parentName:"tr",align:"left"},(0,r.kt)("inlineCode",{parentName:"td"},"malformed strategy provided")),(0,r.kt)("td",{parentName:"tr",align:"center"},"4014")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"center"},"400"),(0,r.kt)("td",{parentName:"tr",align:"left"},(0,r.kt)("inlineCode",{parentName:"td"},"the predicate provided is not valid")),(0,r.kt)("td",{parentName:"tr",align:"center"},"4015")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"center"},"400"),(0,r.kt)("td",{parentName:"tr",align:"left"},(0,r.kt)("inlineCode",{parentName:"td"},"the predicate includes tokens that are not included in the request")),(0,r.kt)("td",{parentName:"tr",align:"center"},"4016")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"center"},"500"),(0,r.kt)("td",{parentName:"tr",align:"left"},(0,r.kt)("inlineCode",{parentName:"td"},"error encoding strategy info")),(0,r.kt)("td",{parentName:"tr",align:"center"},"5015")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"center"},"500"),(0,r.kt)("td",{parentName:"tr",align:"left"},(0,r.kt)("inlineCode",{parentName:"td"},"error creating strategy")),(0,r.kt)("td",{parentName:"tr",align:"center"},"5025")))),(0,r.kt)("h4",{id:"post-strategiesimportcid"},"POST ",(0,r.kt)("inlineCode",{parentName:"h4"},"/strategies/import/{cid}")),(0,r.kt)("p",null,"Imports a strategy from IPFS downloading it with the ",(0,r.kt)("inlineCode",{parentName:"p"},"cid")," provided in background. The strategy import will fail if the strategy tokens are not previously created in the database."),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"\ud83d\udce5 response:")),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-json"},'{\n "queueID": "0123456789abcdef0123456789abcdef01234567"\n}\n')),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"\u26a0\ufe0f errors:")),(0,r.kt)("table",null,(0,r.kt)("thead",{parentName:"table"},(0,r.kt)("tr",{parentName:"thead"},(0,r.kt)("th",{parentName:"tr",align:"center"},"HTTP Status"),(0,r.kt)("th",{parentName:"tr",align:"left"},"Message"),(0,r.kt)("th",{parentName:"tr",align:"center"},"Internal error"))),(0,r.kt)("tbody",{parentName:"table"},(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"center"},"400"),(0,r.kt)("td",{parentName:"tr",align:"left"},(0,r.kt)("inlineCode",{parentName:"td"},"malformed strategy provided")),(0,r.kt)("td",{parentName:"tr",align:"center"},"4014")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"center"},"500"),(0,r.kt)("td",{parentName:"tr",align:"left"},(0,r.kt)("inlineCode",{parentName:"td"},"error encoding strategy info")),(0,r.kt)("td",{parentName:"tr",align:"center"},"5015")))),(0,r.kt)("h4",{id:"get-strategiesimportqueuequeueid"},"GET ",(0,r.kt)("inlineCode",{parentName:"h4"},"/strategies/import/queue/{queueID}")),(0,r.kt)("p",null,"Returns the information of the strategy that are in the creation queue."),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"\ud83d\udce5 response:")),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-json"},'{\n "done": true,\n "error": {\n "code": 0,\n "error": "error message or null"\n },\n "progress": 0,\n "data": { /* */ }\n}\n')),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"\u26a0\ufe0f errors:")),(0,r.kt)("table",null,(0,r.kt)("thead",{parentName:"table"},(0,r.kt)("tr",{parentName:"thead"},(0,r.kt)("th",{parentName:"tr",align:"center"},"HTTP Status"),(0,r.kt)("th",{parentName:"tr",align:"left"},"Message"),(0,r.kt)("th",{parentName:"tr",align:"center"},"Internal error"))),(0,r.kt)("tbody",{parentName:"table"},(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"center"},"404"),(0,r.kt)("td",{parentName:"tr",align:"left"},(0,r.kt)("inlineCode",{parentName:"td"},"strategy not found")),(0,r.kt)("td",{parentName:"tr",align:"center"},"4006")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"center"},"400"),(0,r.kt)("td",{parentName:"tr",align:"left"},(0,r.kt)("inlineCode",{parentName:"td"},"malformed queue ID")),(0,r.kt)("td",{parentName:"tr",align:"center"},"4011")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"center"},"500"),(0,r.kt)("td",{parentName:"tr",align:"left"},(0,r.kt)("inlineCode",{parentName:"td"},"error getting strategy information")),(0,r.kt)("td",{parentName:"tr",align:"center"},"5009")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"center"},"500"),(0,r.kt)("td",{parentName:"tr",align:"left"},(0,r.kt)("inlineCode",{parentName:"td"},"error encoding queue item")),(0,r.kt)("td",{parentName:"tr",align:"center"},"5022")))),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"\u26a0\ufe0f possible error values inside the body:")),(0,r.kt)("small",null,"The request could response `OK 200` and at the same time includes an error because it is an error of the enqueued process and not of the request processing)."),(0,r.kt)("h4",{id:"get-strategiesstrategyid"},"GET ",(0,r.kt)("inlineCode",{parentName:"h4"},"/strategies/{strategyID}")),(0,r.kt)("p",null,"Returns the information of the strategy related to the provided ID."),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"\ud83d\udce5 response:")),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-json"},'{\n "ID": 4,\n "alias": "strategy_alias",\n "predicate": "MON AND (ANT OR USDC)",\n "uri": "ipfs://...",\n "tokens": {\n "MON": {\n "ID": "0x1234",\n "chainID": 5,\n "chainAddress": "gor:0x1234",\n "externalID": "mon_id_on_external_holder_provider"\n },\n "ANT": {\n "ID": "0x1234",\n "chainID": 1,\n "chainAddress": "eth:0x1234",\n "minBalance": "1"\n },\n "USDC": {\n "ID": "0x1234",\n "chainID": 1,\n "chainAddress": "eth:0x1234"\n }\n }\n}\n')),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"\u26a0\ufe0f errors:")),(0,r.kt)("table",null,(0,r.kt)("thead",{parentName:"table"},(0,r.kt)("tr",{parentName:"thead"},(0,r.kt)("th",{parentName:"tr",align:"center"},"HTTP Status"),(0,r.kt)("th",{parentName:"tr",align:"left"},"Message"),(0,r.kt)("th",{parentName:"tr",align:"center"},"Internal error"))),(0,r.kt)("tbody",{parentName:"table"},(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"center"},"400"),(0,r.kt)("td",{parentName:"tr",align:"left"},(0,r.kt)("inlineCode",{parentName:"td"},"malformed strategy ID, it must be an integer")),(0,r.kt)("td",{parentName:"tr",align:"center"},"4002")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"center"},"404"),(0,r.kt)("td",{parentName:"tr",align:"left"},(0,r.kt)("inlineCode",{parentName:"td"},"no strategy found with the ID provided")),(0,r.kt)("td",{parentName:"tr",align:"center"},"4005")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"center"},"500"),(0,r.kt)("td",{parentName:"tr",align:"left"},(0,r.kt)("inlineCode",{parentName:"td"},"error getting tokens information")),(0,r.kt)("td",{parentName:"tr",align:"center"},"5005")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"center"},"500"),(0,r.kt)("td",{parentName:"tr",align:"left"},(0,r.kt)("inlineCode",{parentName:"td"},"error getting strategy information")),(0,r.kt)("td",{parentName:"tr",align:"center"},"5007")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"center"},"500"),(0,r.kt)("td",{parentName:"tr",align:"left"},(0,r.kt)("inlineCode",{parentName:"td"},"error encoding strategy info")),(0,r.kt)("td",{parentName:"tr",align:"center"},"5015")))),(0,r.kt)("h4",{id:"get-strategiesstrategyidestimationanonymoustruefalse"},"GET ",(0,r.kt)("inlineCode",{parentName:"h4"},"/strategies/{strategyID}/estimation?anonymous={true|false}")),(0,r.kt)("p",null,"Enqueue the estimation of size and time (in milliseconds) to create the census generated for the provided strategy. It also calculates the accuracy of the resulting census, it could be different to 100% if the census will be anonymous."),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"\ud83d\udce5 response:")),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-json"},'{\n "queueID": "0123456789abcdef0123456789abcdef01234567",\n}\n')),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"\u26a0\ufe0f errors:")),(0,r.kt)("table",null,(0,r.kt)("thead",{parentName:"table"},(0,r.kt)("tr",{parentName:"thead"},(0,r.kt)("th",{parentName:"tr",align:"center"},"HTTP Status"),(0,r.kt)("th",{parentName:"tr",align:"left"},"Message"),(0,r.kt)("th",{parentName:"tr",align:"center"},"Internal error"))),(0,r.kt)("tbody",{parentName:"table"},(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"center"},"400"),(0,r.kt)("td",{parentName:"tr",align:"left"},(0,r.kt)("inlineCode",{parentName:"td"},"malformed strategy ID, it must be an integer")),(0,r.kt)("td",{parentName:"tr",align:"center"},"4002")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"center"},"500"),(0,r.kt)("td",{parentName:"tr",align:"left"},(0,r.kt)("inlineCode",{parentName:"td"},"error encoding strategy info")),(0,r.kt)("td",{parentName:"tr",align:"center"},"5015")))),(0,r.kt)("h4",{id:"get-strategiesstrategyidestimationqueuequeueid"},"GET ",(0,r.kt)("inlineCode",{parentName:"h4"},"/strategies/{strategyID}/estimation/queue/{queueID}")),(0,r.kt)("p",null,"Returns the estimation of size and time (in milliseconds) to create the census generated for the strategy related to the queue ID."),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"\ud83d\udce5 response:")),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-json"},'{\n "done": true,\n "error": {\n "code": 0,\n "error": "error message or null"\n },\n "progress": 50,\n "data": {\n "size": 15000,\n "timeToCreateCensus": 10900,\n "accuracy": 100.0,\n }\n}\n')),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"\u26a0\ufe0f errors:")),(0,r.kt)("table",null,(0,r.kt)("thead",{parentName:"table"},(0,r.kt)("tr",{parentName:"thead"},(0,r.kt)("th",{parentName:"tr",align:"center"},"HTTP Status"),(0,r.kt)("th",{parentName:"tr",align:"left"},"Message"),(0,r.kt)("th",{parentName:"tr",align:"center"},"Internal error"))),(0,r.kt)("tbody",{parentName:"table"},(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"center"},"404"),(0,r.kt)("td",{parentName:"tr",align:"left"},(0,r.kt)("inlineCode",{parentName:"td"},"no strategy found with the ID provided")),(0,r.kt)("td",{parentName:"tr",align:"center"},"4005")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"center"},"400"),(0,r.kt)("td",{parentName:"tr",align:"left"},(0,r.kt)("inlineCode",{parentName:"td"},"malformed queue ID")),(0,r.kt)("td",{parentName:"tr",align:"center"},"4020")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"center"},"500"),(0,r.kt)("td",{parentName:"tr",align:"left"},(0,r.kt)("inlineCode",{parentName:"td"},"error encoding queue item")),(0,r.kt)("td",{parentName:"tr",align:"center"},"5022")))),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"\u26a0\ufe0f possible error values inside the body:")),(0,r.kt)("small",null,"The request could response `OK 200` and at the same time includes an error because it is an error of the enqueued process and not of the request processing)."),(0,r.kt)("table",null,(0,r.kt)("thead",{parentName:"table"},(0,r.kt)("tr",{parentName:"thead"},(0,r.kt)("th",{parentName:"tr",align:"center"},"HTTP Status"),(0,r.kt)("th",{parentName:"tr",align:"left"},"Message"),(0,r.kt)("th",{parentName:"tr",align:"center"},"Internal error"))),(0,r.kt)("tbody",{parentName:"table"},(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"center"},"404"),(0,r.kt)("td",{parentName:"tr",align:"left"},(0,r.kt)("inlineCode",{parentName:"td"},"no strategy found with the ID provided")),(0,r.kt)("td",{parentName:"tr",align:"center"},"4005")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"center"},"400"),(0,r.kt)("td",{parentName:"tr",align:"left"},(0,r.kt)("inlineCode",{parentName:"td"},"the predicate provided is not valid")),(0,r.kt)("td",{parentName:"tr",align:"center"},"4015")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"center"},"204"),(0,r.kt)("td",{parentName:"tr",align:"left"},(0,r.kt)("inlineCode",{parentName:"td"},"strategy has not registered holders")),(0,r.kt)("td",{parentName:"tr",align:"center"},"4017")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"center"},"500"),(0,r.kt)("td",{parentName:"tr",align:"left"},(0,r.kt)("inlineCode",{parentName:"td"},"error getting strategy information")),(0,r.kt)("td",{parentName:"tr",align:"center"},"5007")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"center"},"500"),(0,r.kt)("td",{parentName:"tr",align:"left"},(0,r.kt)("inlineCode",{parentName:"td"},"error evaluating strategy predicate")),(0,r.kt)("td",{parentName:"tr",align:"center"},"5026")))),(0,r.kt)("h4",{id:"get-strategiesstrategyidholders"},"GET ",(0,r.kt)("inlineCode",{parentName:"h4"},"/strategies/{strategyID}/holders")),(0,r.kt)("p",null,"Returns the list of holders with their balances for a strategy. This endpoint only works with single token strategies like default ones."),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"Pagination URL params")),(0,r.kt)("table",null,(0,r.kt)("thead",{parentName:"table"},(0,r.kt)("tr",{parentName:"thead"},(0,r.kt)("th",{parentName:"tr",align:"left"},"URL key"),(0,r.kt)("th",{parentName:"tr",align:"left"},"Description"),(0,r.kt)("th",{parentName:"tr",align:"left"},"Example"))),(0,r.kt)("tbody",{parentName:"table"},(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"left"},(0,r.kt)("inlineCode",{parentName:"td"},"pageSize")),(0,r.kt)("td",{parentName:"tr",align:"left"},"(optional) Defines the number of results per page. By default, ",(0,r.kt)("inlineCode",{parentName:"td"},"1000"),"."),(0,r.kt)("td",{parentName:"tr",align:"left"},(0,r.kt)("inlineCode",{parentName:"td"},"?pageSize=2"))),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"left"},(0,r.kt)("inlineCode",{parentName:"td"},"nextCursor")),(0,r.kt)("td",{parentName:"tr",align:"left"},"(optional) When is defined, it is used to get the page results, going forward. By default, ",(0,r.kt)("inlineCode",{parentName:"td"},'""'),"."),(0,r.kt)("td",{parentName:"tr",align:"left"},(0,r.kt)("inlineCode",{parentName:"td"},"?nextCursor=0x1234"))),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"left"},(0,r.kt)("inlineCode",{parentName:"td"},"prevCursor")),(0,r.kt)("td",{parentName:"tr",align:"left"},"(optional) When is defined, it is used to get the page results, going backwards. By default, ",(0,r.kt)("inlineCode",{parentName:"td"},'""'),"."),(0,r.kt)("td",{parentName:"tr",align:"left"},(0,r.kt)("inlineCode",{parentName:"td"},"?prevCursor=0x1234"))))),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"\ud83d\udce5 response:")),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-json"},'{\n "holders": {\n "0x1": "1",\n "0x2": "2",\n "0x3": "3",\n "0x4": "4",\n "0x...": "1000",\n },\n "pagination": {\n "nextCursor": "0x5",\n "prevCursor": "0x1",\n "pageSize": 5\n }\n}\n')),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"\u26a0\ufe0f errors:")),(0,r.kt)("table",null,(0,r.kt)("thead",{parentName:"table"},(0,r.kt)("tr",{parentName:"thead"},(0,r.kt)("th",{parentName:"tr",align:"center"},"HTTP Status"),(0,r.kt)("th",{parentName:"tr",align:"left"},"Message"),(0,r.kt)("th",{parentName:"tr",align:"center"},"Internal error"))),(0,r.kt)("tbody",{parentName:"table"},(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"center"},"400"),(0,r.kt)("td",{parentName:"tr",align:"left"},(0,r.kt)("inlineCode",{parentName:"td"},"malformed strategy ID, it must be an integer")),(0,r.kt)("td",{parentName:"tr",align:"center"},"4002")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"center"},"404"),(0,r.kt)("td",{parentName:"tr",align:"left"},(0,r.kt)("inlineCode",{parentName:"td"},"no token holders found")),(0,r.kt)("td",{parentName:"tr",align:"center"},"4004")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"center"},"404"),(0,r.kt)("td",{parentName:"tr",align:"left"},(0,r.kt)("inlineCode",{parentName:"td"},"no strategy found with the ID provided")),(0,r.kt)("td",{parentName:"tr",align:"center"},"4005")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"center"},"400"),(0,r.kt)("td",{parentName:"tr",align:"left"},(0,r.kt)("inlineCode",{parentName:"td"},"malformed pagination params")),(0,r.kt)("td",{parentName:"tr",align:"center"},"4022")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"center"},"500"),(0,r.kt)("td",{parentName:"tr",align:"left"},(0,r.kt)("inlineCode",{parentName:"td"},"error encoding token holders")),(0,r.kt)("td",{parentName:"tr",align:"center"},"5013")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"center"},"500"),(0,r.kt)("td",{parentName:"tr",align:"left"},(0,r.kt)("inlineCode",{parentName:"td"},"error getting strategy holders")),(0,r.kt)("td",{parentName:"tr",align:"center"},"5030")))),(0,r.kt)("h4",{id:"get-strategiestokentokenidchainidchainidexternalidexternalid"},"GET ",(0,r.kt)("inlineCode",{parentName:"h4"},"/strategies/token/{tokenID}?chainID={chainID}&externalID={externalID}")),(0,r.kt)("p",null,"Returns strategies registered that includes the token provided for the chain also provided, the external token id is an optional parameter."),(0,r.kt)("blockquote",null,(0,r.kt)("p",{parentName:"blockquote"},(0,r.kt)("inlineCode",{parentName:"p"},"externalID")," URL parameter is ",(0,r.kt)("em",{parentName:"p"},"optional")," by default, but required for external provided tokens like POAPs.")),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"\ud83d\udce5 response:")),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-json"},'{\n "strategies": [\n {\n "ID": 1,\n "alias": "default MON strategy",\n "predicate": "MON",\n "tokens": {\n "MON": {\n "ID": "0x1234",\n "chainID": 5,\n "chainAddress": "gor:0x1234"\n }\n }\n },\n {\n "ID": 4,\n "alias": "strategy_alias",\n "predicate": "MON AND (ANT OR USDC)",\n "tokens": {\n "MON": {\n "ID": "0x1234",\n "chainID": 5,\n "chainAddress": "gor:0x1234",\n "externalID": "mon_id_on_external_holder_provider"\n },\n "ANT": {\n "ID": "0x1234",\n "chainID": 1,\n "chainAddress": "eth:0x1234",\n "minBalance": "1"\n },\n "USDC": {\n "ID": "0x1234",\n "chainID": 1,\n "chainAddress": "eth:0x1234"\n }\n }\n }\n ]\n}\n')),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"\u26a0\ufe0f errors:")),(0,r.kt)("table",null,(0,r.kt)("thead",{parentName:"table"},(0,r.kt)("tr",{parentName:"thead"},(0,r.kt)("th",{parentName:"tr",align:"center"},"HTTP Status"),(0,r.kt)("th",{parentName:"tr",align:"left"},"Message"),(0,r.kt)("th",{parentName:"tr",align:"center"},"Internal error"))),(0,r.kt)("tbody",{parentName:"table"},(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"center"},"204"),(0,r.kt)("td",{parentName:"tr",align:"left"},(0,r.kt)("inlineCode",{parentName:"td"},"-")),(0,r.kt)("td",{parentName:"tr",align:"center"},"4008")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"center"},"500"),(0,r.kt)("td",{parentName:"tr",align:"left"},(0,r.kt)("inlineCode",{parentName:"td"},"error getting strategies information")),(0,r.kt)("td",{parentName:"tr",align:"center"},"5008")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"center"},"500"),(0,r.kt)("td",{parentName:"tr",align:"left"},(0,r.kt)("inlineCode",{parentName:"td"},"error encoding strategies")),(0,r.kt)("td",{parentName:"tr",align:"center"},"5016")))),(0,r.kt)("h4",{id:"post-strategiespredicatevalidate"},"POST ",(0,r.kt)("inlineCode",{parentName:"h4"},"/strategies/predicate/validate")),(0,r.kt)("p",null,"Returns if the provided strategy predicate is valid and well-formatted. If the predicate is valid the handler returns a parsed version of the predicate as a JSON."),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"\ud83d\udce4 request:")),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-json"},'{\n "predicate": "DAI AND (ANT OR ETH)"\n}\n')),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"\ud83d\udce5 response:")),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-json"},'{\n "result": {\n "childs": {\n "operator": "AND",\n "tokens": [\n {\n "literal": "DAI"\n },\n {\n "childs": {\n "operator": "OR",\n "tokens": [\n {\n "literal": "ANT"\n },\n {\n "literal": "ETH"\n }\n ]\n }\n }\n ]\n }\n }\n}\n')),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"\u26a0\ufe0f errors:")),(0,r.kt)("table",null,(0,r.kt)("thead",{parentName:"table"},(0,r.kt)("tr",{parentName:"thead"},(0,r.kt)("th",{parentName:"tr",align:"center"},"HTTP Status"),(0,r.kt)("th",{parentName:"tr",align:"left"},"Message"),(0,r.kt)("th",{parentName:"tr",align:"center"},"Internal error"))),(0,r.kt)("tbody",{parentName:"table"},(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"center"},"400"),(0,r.kt)("td",{parentName:"tr",align:"left"},(0,r.kt)("inlineCode",{parentName:"td"},"malformed strategy provided")),(0,r.kt)("td",{parentName:"tr",align:"center"},"4014")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"center"},"400"),(0,r.kt)("td",{parentName:"tr",align:"left"},(0,r.kt)("inlineCode",{parentName:"td"},"the predicate provided is not valid")),(0,r.kt)("td",{parentName:"tr",align:"center"},"4015")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"center"},"500"),(0,r.kt)("td",{parentName:"tr",align:"left"},(0,r.kt)("inlineCode",{parentName:"td"},"error encoding validated strategy predicate")),(0,r.kt)("td",{parentName:"tr",align:"center"},"5024")))),(0,r.kt)("h4",{id:"get-strategiespredicateoperators"},"GET ",(0,r.kt)("inlineCode",{parentName:"h4"},"/strategies/predicate/operators")),(0,r.kt)("p",null,"Returns the list of supported operators to build strategy predicates."),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"\ud83d\udce5 response:")),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-json"},'{\n "operators": [\n {\n "description": "logical operator that returns the common token holders between symbols with fixed balance to 1",\n "tag": "AND"\n },\n {\n "description": "logical operator that returns the token holders of both symbols with fixed balance to 1",\n "tag": "OR"\n }\n ]\n}\n')),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"\u26a0\ufe0f errors:")),(0,r.kt)("table",null,(0,r.kt)("thead",{parentName:"table"},(0,r.kt)("tr",{parentName:"thead"},(0,r.kt)("th",{parentName:"tr",align:"center"},"HTTP Status"),(0,r.kt)("th",{parentName:"tr",align:"left"},"Message"),(0,r.kt)("th",{parentName:"tr",align:"center"},"Internal error"))),(0,r.kt)("tbody",{parentName:"table"},(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"center"},"500"),(0,r.kt)("td",{parentName:"tr",align:"left"},(0,r.kt)("inlineCode",{parentName:"td"},"error encoding supported strategy predicate operators")),(0,r.kt)("td",{parentName:"tr",align:"center"},"5027")))),(0,r.kt)("hr",null),(0,r.kt)("h3",{id:"censuses"},"Censuses"),(0,r.kt)("h4",{id:"post-censuses"},"POST ",(0,r.kt)("inlineCode",{parentName:"h4"},"/censuses")),(0,r.kt)("p",null,"Request the creation of a new census with the strategy provided and returns the census ID."),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"\ud83d\udce4 request:")),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-json"},'{\n "strategyID": 1,\n "anonymous": false\n}\n')),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"\ud83d\udce5 response:")),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-json"},'{\n "queueID": "0123456789abcdef0123456789abcdef01234567"\n}\n')),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"\u26a0\ufe0f errors :")),(0,r.kt)("table",null,(0,r.kt)("thead",{parentName:"table"},(0,r.kt)("tr",{parentName:"thead"},(0,r.kt)("th",{parentName:"tr",align:"center"},"HTTP Status"),(0,r.kt)("th",{parentName:"tr",align:"left"},"Message"),(0,r.kt)("th",{parentName:"tr",align:"center"},"Internal error"))),(0,r.kt)("tbody",{parentName:"table"},(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"center"},"400"),(0,r.kt)("td",{parentName:"tr",align:"left"},(0,r.kt)("inlineCode",{parentName:"td"},"malformed strategy ID, it must be an integer")),(0,r.kt)("td",{parentName:"tr",align:"center"},"4002")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"center"},"500"),(0,r.kt)("td",{parentName:"tr",align:"left"},(0,r.kt)("inlineCode",{parentName:"td"},"error encoding census")),(0,r.kt)("td",{parentName:"tr",align:"center"},"5017")))),(0,r.kt)("h4",{id:"get-censusescensusid"},"GET ",(0,r.kt)("inlineCode",{parentName:"h4"},"/censuses/{censusID}")),(0,r.kt)("p",null,"Returns the information of the snapshots related to the provided ID."),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"\ud83d\udce5 response:")),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-json"},'{ \n "ID": 2,\n "strategyID": 1,\n "merkleRoot": "e3cb8941e25dcdb36fc21acbe5f6c5a42e0d4f89839ae94952f0ebbd9acd04ac",\n "uri": "ipfs://Qma....",\n "size": 1000,\n "weight": "200000000000000000000",\n "anonymous": true,\n "accuracy": 100.0\n}\n')),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"\u26a0\ufe0f errors:")),(0,r.kt)("table",null,(0,r.kt)("thead",{parentName:"table"},(0,r.kt)("tr",{parentName:"thead"},(0,r.kt)("th",{parentName:"tr",align:"center"},"HTTP Status"),(0,r.kt)("th",{parentName:"tr",align:"left"},"Message"),(0,r.kt)("th",{parentName:"tr",align:"center"},"Internal error"))),(0,r.kt)("tbody",{parentName:"table"},(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"center"},"400"),(0,r.kt)("td",{parentName:"tr",align:"left"},(0,r.kt)("inlineCode",{parentName:"td"},"malformed census ID, it must be a integer")),(0,r.kt)("td",{parentName:"tr",align:"center"},"4001")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"center"},"404"),(0,r.kt)("td",{parentName:"tr",align:"left"},(0,r.kt)("inlineCode",{parentName:"td"},"census not found")),(0,r.kt)("td",{parentName:"tr",align:"center"},"4006")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"center"},"500"),(0,r.kt)("td",{parentName:"tr",align:"left"},(0,r.kt)("inlineCode",{parentName:"td"},"error getting census information")),(0,r.kt)("td",{parentName:"tr",align:"center"},"5009")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"center"},"500"),(0,r.kt)("td",{parentName:"tr",align:"left"},(0,r.kt)("inlineCode",{parentName:"td"},"error encoding census")),(0,r.kt)("td",{parentName:"tr",align:"center"},"5017")))),(0,r.kt)("h4",{id:"get-censusesqueuequeueid"},"GET ",(0,r.kt)("inlineCode",{parentName:"h4"},"/censuses/queue/{queueID}")),(0,r.kt)("p",null,"Returns the information of the census that are in the creation queue."),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"\ud83d\udce5 response:")),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-json"},'{\n "done": true,\n "error": {\n "code": 0,\n "error": "error message or null"\n },\n "progress": 100,\n "data": { /* */ }\n}\n')),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"\u26a0\ufe0f errors:")),(0,r.kt)("table",null,(0,r.kt)("thead",{parentName:"table"},(0,r.kt)("tr",{parentName:"thead"},(0,r.kt)("th",{parentName:"tr",align:"center"},"HTTP Status"),(0,r.kt)("th",{parentName:"tr",align:"left"},"Message"),(0,r.kt)("th",{parentName:"tr",align:"center"},"Internal error"))),(0,r.kt)("tbody",{parentName:"table"},(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"center"},"404"),(0,r.kt)("td",{parentName:"tr",align:"left"},(0,r.kt)("inlineCode",{parentName:"td"},"census not found")),(0,r.kt)("td",{parentName:"tr",align:"center"},"4006")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"center"},"400"),(0,r.kt)("td",{parentName:"tr",align:"left"},(0,r.kt)("inlineCode",{parentName:"td"},"malformed queue ID")),(0,r.kt)("td",{parentName:"tr",align:"center"},"4011")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"center"},"500"),(0,r.kt)("td",{parentName:"tr",align:"left"},(0,r.kt)("inlineCode",{parentName:"td"},"error getting census information")),(0,r.kt)("td",{parentName:"tr",align:"center"},"5009")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"center"},"500"),(0,r.kt)("td",{parentName:"tr",align:"left"},(0,r.kt)("inlineCode",{parentName:"td"},"error encoding queue item")),(0,r.kt)("td",{parentName:"tr",align:"center"},"5022")))),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"\u26a0\ufe0f possible error values inside the body:")),(0,r.kt)("small",null,"The request could response `OK 200` and at the same time includes an error because it is an error of the enqueued process and not of the request processing)."),(0,r.kt)("table",null,(0,r.kt)("thead",{parentName:"table"},(0,r.kt)("tr",{parentName:"thead"},(0,r.kt)("th",{parentName:"tr",align:"center"},"HTTP Status"),(0,r.kt)("th",{parentName:"tr",align:"left"},"Message"),(0,r.kt)("th",{parentName:"tr",align:"center"},"Internal error"))),(0,r.kt)("tbody",{parentName:"table"},(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"center"},"404"),(0,r.kt)("td",{parentName:"tr",align:"left"},(0,r.kt)("inlineCode",{parentName:"td"},"no token holders found")),(0,r.kt)("td",{parentName:"tr",align:"center"},"4004")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"center"},"404"),(0,r.kt)("td",{parentName:"tr",align:"left"},(0,r.kt)("inlineCode",{parentName:"td"},"no strategy found with the ID provided")),(0,r.kt)("td",{parentName:"tr",align:"center"},"4005")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"center"},"400"),(0,r.kt)("td",{parentName:"tr",align:"left"},(0,r.kt)("inlineCode",{parentName:"td"},"no tokens found for the strategy provided")),(0,r.kt)("td",{parentName:"tr",align:"center"},"4010")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"center"},"409"),(0,r.kt)("td",{parentName:"tr",align:"left"},(0,r.kt)("inlineCode",{parentName:"td"},"census already exists")),(0,r.kt)("td",{parentName:"tr",align:"center"},"4012")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"center"},"400"),(0,r.kt)("td",{parentName:"tr",align:"left"},(0,r.kt)("inlineCode",{parentName:"td"},"the predicate provided is not valid")),(0,r.kt)("td",{parentName:"tr",align:"center"},"4015")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"center"},"204"),(0,r.kt)("td",{parentName:"tr",align:"left"},(0,r.kt)("inlineCode",{parentName:"td"},"strategy has not registered holders")),(0,r.kt)("td",{parentName:"tr",align:"center"},"4017")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"center"},"500"),(0,r.kt)("td",{parentName:"tr",align:"left"},(0,r.kt)("inlineCode",{parentName:"td"},"error creating the census tree on the census database")),(0,r.kt)("td",{parentName:"tr",align:"center"},"5001")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"center"},"500"),(0,r.kt)("td",{parentName:"tr",align:"left"},(0,r.kt)("inlineCode",{parentName:"td"},"error evaluating strategy predicate")),(0,r.kt)("td",{parentName:"tr",align:"center"},"5026")))),(0,r.kt)("h4",{id:"get-censusesstrategystrategyid"},"GET ",(0,r.kt)("inlineCode",{parentName:"h4"},"/censuses/strategy/{strategyID}")),(0,r.kt)("p",null,"Returns a list of censuses previously created for the strategy provided."),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"\ud83d\udce5 response:")),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-json"},'{\n "censuses": [ \n { \n "ID": 1,\n "strategyID": 1,\n "merkleRoot": "e3cb8941e25dcdb36fc21acbe5f6c5a42e0d4f89839ae94952f0ebbd9acd04ac",\n "uri": "ipfs://Qma....",\n "size": 1000,\n "weight": "200000000000000000000",\n "anonymous": true,\n "accuracy": 100.0\n }\n ]\n}\n')),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"\u26a0\ufe0f errors:")),(0,r.kt)("table",null,(0,r.kt)("thead",{parentName:"table"},(0,r.kt)("tr",{parentName:"thead"},(0,r.kt)("th",{parentName:"tr",align:"center"},"HTTP Status"),(0,r.kt)("th",{parentName:"tr",align:"left"},"Message"),(0,r.kt)("th",{parentName:"tr",align:"center"},"Internal error"))),(0,r.kt)("tbody",{parentName:"table"},(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"center"},"204"),(0,r.kt)("td",{parentName:"tr",align:"left"},(0,r.kt)("inlineCode",{parentName:"td"},"-")),(0,r.kt)("td",{parentName:"tr",align:"center"},"4007")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"center"},"400"),(0,r.kt)("td",{parentName:"tr",align:"left"},(0,r.kt)("inlineCode",{parentName:"td"},"malformed census ID, it must be a integer")),(0,r.kt)("td",{parentName:"tr",align:"center"},"4001")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"center"},"404"),(0,r.kt)("td",{parentName:"tr",align:"left"},(0,r.kt)("inlineCode",{parentName:"td"},"census not found")),(0,r.kt)("td",{parentName:"tr",align:"center"},"4006")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"center"},"500"),(0,r.kt)("td",{parentName:"tr",align:"left"},(0,r.kt)("inlineCode",{parentName:"td"},"error getting census information")),(0,r.kt)("td",{parentName:"tr",align:"center"},"5009")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"center"},"500"),(0,r.kt)("td",{parentName:"tr",align:"left"},(0,r.kt)("inlineCode",{parentName:"td"},"error encoding censuses")),(0,r.kt)("td",{parentName:"tr",align:"center"},"5018")))))}k.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/dcb8c93b.5fc165f9.js b/assets/js/dcb8c93b.5fc165f9.js new file mode 100644 index 000000000..e94e5530c --- /dev/null +++ b/assets/js/dcb8c93b.5fc165f9.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdemo=self.webpackChunkdemo||[]).push([[8048],{3905:(e,t,n)=>{n.d(t,{Zo:()=>c,kt:()=>f});var r=n(67294);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var l=r.createContext({}),h=function(e){var t=r.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},c=function(e){var t=h(e.components);return r.createElement(l.Provider,{value:t},e.children)},p={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},u=r.forwardRef((function(e,t){var n=e.components,o=e.mdxType,a=e.originalType,l=e.parentName,c=s(e,["components","mdxType","originalType","parentName"]),u=h(n),f=o,d=u["".concat(l,".").concat(f)]||u[f]||p[f]||a;return n?r.createElement(d,i(i({ref:t},c),{},{components:n})):r.createElement(d,i({ref:t},c))}));function f(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=n.length,i=new Array(a);i[0]=u;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s.mdxType="string"==typeof e?e:o,i[1]=s;for(var h=2;h{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>p,frontMatter:()=>a,metadata:()=>s,toc:()=>h});var r=n(87462),o=(n(67294),n(3905));const a={},i="Off-Chain Tree Census",s={unversionedId:"protocol/census/off-chain-tree",id:"protocol/census/off-chain-tree",title:"Off-Chain Tree Census",description:"The census itself is represented as a binary Merkle Tree, where the leaves of the tree contain the public keys of all eligible voters, hashed.",source:"@site/docs/protocol/census/off-chain-tree.md",sourceDirName:"protocol/census",slug:"/protocol/census/off-chain-tree",permalink:"/protocol/census/off-chain-tree",draft:!1,tags:[],version:"current",frontMatter:{},sidebar:"defaultSidebar",previous:{title:"Off-Chain CSP Census",permalink:"/protocol/census/off-chain-csp"},next:{title:"On-Chain Census",permalink:"/protocol/census/on-chain/"}},l={},h=[{value:"Creating & publishing the census",id:"creating--publishing-the-census",level:3},{value:"Accessing the census",id:"accessing-the-census",level:3}],c={toc:h};function p(e){let{components:t,...n}=e;return(0,o.kt)("wrapper",(0,r.Z)({},c,n,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("h1",{id:"off-chain-tree-census"},"Off-Chain Tree Census"),(0,o.kt)("p",null,"The census itself is represented as a binary ",(0,o.kt)("a",{parentName:"p",href:"https://en.wikipedia.org/wiki/Merkle_tree"},"Merkle Tree"),", where the leaves of the tree contain the public keys of all eligible voters, hashed. "),(0,o.kt)("mermaid",{value:"graph TD;\nstyle Root fill:#EBAE9A,stroke:#333,stroke-width:2px\n\nRoot--\x3eH1\nRoot--\x3eH2\nH1--\x3eH3\nH1--\x3eH4\nH2--\x3eH5\nH2--\x3eH6\nH3-.->HashPubKey1\nH4-.->Empty\nH5-.->HashPubKey2\nH6-.->HashPubKey3"}),(0,o.kt)("p",null,"A Merkle Tree can efficiently prove that a leaf belongs to the tree. For a tree of size ",(0,o.kt)("inlineCode",{parentName:"p"},"N")," elements, only ",(0,o.kt)("inlineCode",{parentName:"p"},"log(N)")," elements are needed to generate a proof. A tree with 1 million leaves, for example, would only need 20 hashes to prove the inclusion of any one leaf. "),(0,o.kt)("p",null,"The tree structure is made of nodes. Terminal nodes contain the actual values; every other node contains the hash of its two children. If a leaf is updated, all its parent nodes are affected."),(0,o.kt)("p",null,"A ",(0,o.kt)("strong",{parentName:"p"},"prover")," is able to prove the inclusion of any leaf of the Merkle Tree to a ",(0,o.kt)("strong",{parentName:"p"},"verifier"),":"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"The ",(0,o.kt)("strong",{parentName:"li"},"verifier")," only needs to know the Root Hash"),(0,o.kt)("li",{parentName:"ul"},"The ",(0,o.kt)("strong",{parentName:"li"},"prover")," only needs to provide the Leaf and its Sibling, as well as the sibling of each of its ancestors (hence, ",(0,o.kt)("inlineCode",{parentName:"li"},"log(N)")," elements).")),(0,o.kt)("p",null,"This means that, in the case of our example Voting Merkle Tree, the owner of PubKey1 only needs ",(0,o.kt)("inlineCode",{parentName:"p"},"HashPubKey1 + H4 + H2")," (highlighted in green on the graph below) to prove that their key is part of the Merkle Tree, and therefore that their public key is in the voter census. "),(0,o.kt)("mermaid",{value:"graph TD\nHP1{{HashPubKey1}}\nHP2{{H2}}\nHP4{{H4}}\n\nstyle Root fill:#EBAE9A,stroke:#333,stroke-width:2px\nstyle HP1 fill:#98fb98,stroke:#333,stroke-width:2px\nstyle HP2 fill:#98fb98,stroke:#333,stroke-width:2px\nstyle HP4 fill:#98fb98,stroke:#333,stroke-width:2px\n\nRoot--\x3eH1\nRoot--\x3eHP2\nH1--\x3eH3\nH1--\x3eHP4\nHP2--\x3eH5\nHP2--\x3eH6\nH3-.->HP1\nHP4-.->Empty\nH5-.->HashPubKey2\nH6-.->HashPubKey3"}),(0,o.kt)("p",null,"To verify this proof, the verifier simply computes ",(0,o.kt)("inlineCode",{parentName:"p"},"hash( hash( hash(HashPubKey1) + H4 ) + H2 )")," and compares this result with the known Root hash of the Merkle Tree."),(0,o.kt)("p",null,"This Merkle Proof design allows voters to prove census inclusion without knowing any other voters' keys, and with a computation time that is logarithmically proportionate to the census size. "),(0,o.kt)("p",null,"Vocdoni stores a hash of public keys instead of public keys themselves to provide an additional privacy layer when publishing the census."),(0,o.kt)("h3",{id:"creating--publishing-the-census"},"Creating & publishing the census"),(0,o.kt)("p",null,"Any organization which does not wish to use the ",(0,o.kt)("a",{parentName:"p",href:"on-chain"},"on-chain census mechanism")," is required to generate and publish a census Merkle Tree in order to host a voting process on the Voting Blockchain. The method for managing and filtering users and generating the Merkle Tree, however, is up to integrators of the Voting Protocol. The census module is further documented on the census integration page."),(0,o.kt)("h3",{id:"accessing-the-census"},"Accessing the census"),(0,o.kt)("p",null,"The Gateways deployed by Vocdoni and third parties constantly monitor the Process Smart Contract. Upon identifying a new process, they will fetch and import that process' Census Merkle Tree. At this point, users can use any available Gateway to check whether they are eligible for voting and then fetch their Merkle Proof (this as well may be handled by the client implementation)"),(0,o.kt)("p",null,"Users with a valid Merkle Proof can efficiently show that their key belongs to a large census by providing a very small fraction of the whole tree."))}p.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/dcb8c93b.db3cfbb1.js b/assets/js/dcb8c93b.db3cfbb1.js deleted file mode 100644 index f5a2f8b7e..000000000 --- a/assets/js/dcb8c93b.db3cfbb1.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkdemo=self.webpackChunkdemo||[]).push([[8048],{3905:(e,t,n)=>{n.d(t,{Zo:()=>c,kt:()=>f});var r=n(67294);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var l=r.createContext({}),h=function(e){var t=r.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},c=function(e){var t=h(e.components);return r.createElement(l.Provider,{value:t},e.children)},p={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},u=r.forwardRef((function(e,t){var n=e.components,o=e.mdxType,a=e.originalType,l=e.parentName,c=s(e,["components","mdxType","originalType","parentName"]),u=h(n),f=o,d=u["".concat(l,".").concat(f)]||u[f]||p[f]||a;return n?r.createElement(d,i(i({ref:t},c),{},{components:n})):r.createElement(d,i({ref:t},c))}));function f(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=n.length,i=new Array(a);i[0]=u;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s.mdxType="string"==typeof e?e:o,i[1]=s;for(var h=2;h{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>p,frontMatter:()=>a,metadata:()=>s,toc:()=>h});var r=n(87462),o=(n(67294),n(3905));const a={},i="Off-Chain Tree Census",s={unversionedId:"protocol/census/off-chain-tree",id:"protocol/census/off-chain-tree",title:"Off-Chain Tree Census",description:"The census itself is represented as a binary Merkle Tree, where the leaves of the tree contain the public keys of all eligible voters, hashed.",source:"@site/docs/protocol/census/off-chain-tree.md",sourceDirName:"protocol/census",slug:"/protocol/census/off-chain-tree",permalink:"/protocol/census/off-chain-tree",draft:!1,tags:[],version:"current",frontMatter:{},sidebar:"defaultSidebar",previous:{title:"Off-Chain CSP Census",permalink:"/protocol/census/off-chain-csp"},next:{title:"On-Chain Census",permalink:"/protocol/census/on-chain"}},l={},h=[{value:"Creating & publishing the census",id:"creating--publishing-the-census",level:3},{value:"Accessing the census",id:"accessing-the-census",level:3}],c={toc:h};function p(e){let{components:t,...n}=e;return(0,o.kt)("wrapper",(0,r.Z)({},c,n,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("h1",{id:"off-chain-tree-census"},"Off-Chain Tree Census"),(0,o.kt)("p",null,"The census itself is represented as a binary ",(0,o.kt)("a",{parentName:"p",href:"https://en.wikipedia.org/wiki/Merkle_tree"},"Merkle Tree"),", where the leaves of the tree contain the public keys of all eligible voters, hashed. "),(0,o.kt)("mermaid",{value:"graph TD;\nstyle Root fill:#EBAE9A,stroke:#333,stroke-width:2px\n\nRoot--\x3eH1\nRoot--\x3eH2\nH1--\x3eH3\nH1--\x3eH4\nH2--\x3eH5\nH2--\x3eH6\nH3-.->HashPubKey1\nH4-.->Empty\nH5-.->HashPubKey2\nH6-.->HashPubKey3"}),(0,o.kt)("p",null,"A Merkle Tree can efficiently prove that a leaf belongs to the tree. For a tree of size ",(0,o.kt)("inlineCode",{parentName:"p"},"N")," elements, only ",(0,o.kt)("inlineCode",{parentName:"p"},"log(N)")," elements are needed to generate a proof. A tree with 1 million leaves, for example, would only need 20 hashes to prove the inclusion of any one leaf. "),(0,o.kt)("p",null,"The tree structure is made of nodes. Terminal nodes contain the actual values; every other node contains the hash of its two children. If a leaf is updated, all its parent nodes are affected."),(0,o.kt)("p",null,"A ",(0,o.kt)("strong",{parentName:"p"},"prover")," is able to prove the inclusion of any leaf of the Merkle Tree to a ",(0,o.kt)("strong",{parentName:"p"},"verifier"),":"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"The ",(0,o.kt)("strong",{parentName:"li"},"verifier")," only needs to know the Root Hash"),(0,o.kt)("li",{parentName:"ul"},"The ",(0,o.kt)("strong",{parentName:"li"},"prover")," only needs to provide the Leaf and its Sibling, as well as the sibling of each of its ancestors (hence, ",(0,o.kt)("inlineCode",{parentName:"li"},"log(N)")," elements).")),(0,o.kt)("p",null,"This means that, in the case of our example Voting Merkle Tree, the owner of PubKey1 only needs ",(0,o.kt)("inlineCode",{parentName:"p"},"HashPubKey1 + H4 + H2")," (highlighted in green on the graph below) to prove that their key is part of the Merkle Tree, and therefore that their public key is in the voter census. "),(0,o.kt)("mermaid",{value:"graph TD\nHP1{{HashPubKey1}}\nHP2{{H2}}\nHP4{{H4}}\n\nstyle Root fill:#EBAE9A,stroke:#333,stroke-width:2px\nstyle HP1 fill:#98fb98,stroke:#333,stroke-width:2px\nstyle HP2 fill:#98fb98,stroke:#333,stroke-width:2px\nstyle HP4 fill:#98fb98,stroke:#333,stroke-width:2px\n\nRoot--\x3eH1\nRoot--\x3eHP2\nH1--\x3eH3\nH1--\x3eHP4\nHP2--\x3eH5\nHP2--\x3eH6\nH3-.->HP1\nHP4-.->Empty\nH5-.->HashPubKey2\nH6-.->HashPubKey3"}),(0,o.kt)("p",null,"To verify this proof, the verifier simply computes ",(0,o.kt)("inlineCode",{parentName:"p"},"hash( hash( hash(HashPubKey1) + H4 ) + H2 )")," and compares this result with the known Root hash of the Merkle Tree."),(0,o.kt)("p",null,"This Merkle Proof design allows voters to prove census inclusion without knowing any other voters' keys, and with a computation time that is logarithmically proportionate to the census size. "),(0,o.kt)("p",null,"Vocdoni stores a hash of public keys instead of public keys themselves to provide an additional privacy layer when publishing the census."),(0,o.kt)("h3",{id:"creating--publishing-the-census"},"Creating & publishing the census"),(0,o.kt)("p",null,"Any organization which does not wish to use the ",(0,o.kt)("a",{parentName:"p",href:"on-chain"},"on-chain census mechanism")," is required to generate and publish a census Merkle Tree in order to host a voting process on the Voting Blockchain. The method for managing and filtering users and generating the Merkle Tree, however, is up to integrators of the Voting Protocol. The census module is further documented on the census integration page."),(0,o.kt)("h3",{id:"accessing-the-census"},"Accessing the census"),(0,o.kt)("p",null,"The Gateways deployed by Vocdoni and third parties constantly monitor the Process Smart Contract. Upon identifying a new process, they will fetch and import that process' Census Merkle Tree. At this point, users can use any available Gateway to check whether they are eligible for voting and then fetch their Merkle Proof (this as well may be handled by the client implementation)"),(0,o.kt)("p",null,"Users with a valid Merkle Proof can efficiently show that their key belongs to a large census by providing a very small fraction of the whole tree."))}p.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/e24c431f.70c28301.js b/assets/js/e24c431f.70c28301.js new file mode 100644 index 000000000..2e8224051 --- /dev/null +++ b/assets/js/e24c431f.70c28301.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdemo=self.webpackChunkdemo||[]).push([[2872],{3905:(e,t,n)=>{n.d(t,{Zo:()=>u,kt:()=>h});var a=n(67294);function s(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function r(e){for(var t=1;t=0||(s[n]=e[n]);return s}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(s[n]=e[n])}return s}var l=a.createContext({}),c=function(e){var t=a.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):r(r({},t),e)),n},u=function(e){var t=c(e.components);return a.createElement(l.Provider,{value:t},e.children)},p={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},d=a.forwardRef((function(e,t){var n=e.components,s=e.mdxType,o=e.originalType,l=e.parentName,u=i(e,["components","mdxType","originalType","parentName"]),d=c(n),h=s,m=d["".concat(l,".").concat(h)]||d[h]||p[h]||o;return n?a.createElement(m,r(r({ref:t},u),{},{components:n})):a.createElement(m,r({ref:t},u))}));function h(e,t){var n=arguments,s=t&&t.mdxType;if("string"==typeof e||s){var o=n.length,r=new Array(o);r[0]=d;var i={};for(var l in t)hasOwnProperty.call(t,l)&&(i[l]=t[l]);i.originalType=e,i.mdxType="string"==typeof e?e:s,r[1]=i;for(var c=2;c{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>r,default:()=>p,frontMatter:()=>o,metadata:()=>i,toc:()=>c});var a=n(87462),s=(n(67294),n(3905));const o={},r="Complex Census",i={unversionedId:"sdk/integration-details/census-types/on-chain/complex-census",id:"sdk/integration-details/census-types/on-chain/complex-census",title:"Complex Census",description:"The census3 service makes it easy to create a census based off of the balance holders of a token taken to represent an organization. It is possible, however, to create a token-based census with more complex logic, incorporating balance information from multiple tokens at once.",source:"@site/docs/sdk/integration-details/census-types/on-chain/complex-census.md",sourceDirName:"sdk/integration-details/census-types/on-chain",slug:"/sdk/integration-details/census-types/on-chain/complex-census",permalink:"/sdk/integration-details/census-types/on-chain/complex-census",draft:!1,tags:[],version:"current",frontMatter:{},sidebar:"defaultSidebar",previous:{title:"On-chain Token-Based Census",permalink:"/sdk/integration-details/census-types/on-chain/"},next:{title:"Vocdoni Tokens",permalink:"/sdk/integration-details/vocdoni-tokens"}},l={},c=[{value:"Strategies",id:"strategies",level:2},{value:"Predicates",id:"predicates",level:2},{value:"Creating a Census",id:"creating-a-census",level:2}],u={toc:c};function p(e){let{components:t,...n}=e;return(0,s.kt)("wrapper",(0,a.Z)({},u,n,{components:t,mdxType:"MDXLayout"}),(0,s.kt)("h1",{id:"complex-census"},"Complex Census"),(0,s.kt)("p",null,"The census3 service makes it easy to create a census based off of the balance holders of a token taken to represent an organization. It is possible, however, to create a token-based census with more complex logic, incorporating balance information from multiple tokens at once."),(0,s.kt)("h2",{id:"strategies"},"Strategies"),(0,s.kt)("p",null,"The logic that defines inclusion in a token-based census is called a 'strategy.' For the basic token-holder use case, the strategy is defined solely by that token. ",(0,s.kt)("inlineCode",{parentName:"p"},"createTokenCensus")," chooses the default strategy for that token, so for a basic token-based census you don't need to worry about strategies at all."),(0,s.kt)("p",null,'More complex strategies exist, however, such as "holders of both ',(0,s.kt)("inlineCode",{parentName:"p"},"VOC1")," token AND ",(0,s.kt)("inlineCode",{parentName:"p"},"VOC2"),' token."'),(0,s.kt)("p",null,"Just like checking for supported tokens, you can see a list of the strategies supported by the census3 service:"),(0,s.kt)("pre",null,(0,s.kt)("code",{parentName:"pre",className:"language-ts"},"const strategies = await census3Client.getStrategies();\nconsole.log(JSON.stringify(strategies, null, 4));\n")),(0,s.kt)("p",null,"This will print a long list of strategies. Some of them will be basic strategies for a single token:"),(0,s.kt)("pre",null,(0,s.kt)("code",{parentName:"pre",className:"language-bash"},'...\n {\n "ID": 72,\n "alias": "Default strategy for token VOC3TEST",\n "predicate": "VOC3TEST",\n "uri": "ipfs://bafybeih7rmjsdzqjr6pyjv46jo4kjpl3qfv2yufpdxzmcw2j63z47u6czy",\n "tokens": {\n "VOC3TEST": {\n "ID": "0x9286d95DB5a59306113028EF0BA85bF7068A199F",\n "chainID": 11155111,\n "minBalance": "1",\n "chainAddress": "sep:0x9286d95DB5a59306113028EF0BA85bF7068A199F"\n }\n }\n },\n...\n')),(0,s.kt)("p",null,"Some, on the other hand, will be more complex strategies involving multiple tokens:"),(0,s.kt)("pre",null,(0,s.kt)("code",{parentName:"pre",className:"language-bash"},'...\n {\n "ID": 103,\n "alias": "gitcoin_onvote_1711040172449",\n "predicate": "GPS AND:mul (GPS:Discord OR GPS:Github)",\n "uri": "ipfs://bafybeidopynxc746oorzkh7yvhomcw56w72aaw3klqce4gkjcczc7ry3uu",\n "tokens": {\n "GPS": {\n "ID": "0x000000000000000000000000000000000000006C",\n "chainID": 1,\n "minBalance": "16",\n "chainAddress": "eth:0x000000000000000000000000000000000000006C"\n },\n "GPS:Discord": {\n "ID": "0x000000000000000000000000000000000000006C",\n "chainID": 1,\n "minBalance": "1",\n "chainAddress": "eth:0x000000000000000000000000000000000000006C",\n "externalID": "Discord"\n },\n "GPS:Github": {\n "ID": "0x000000000000000000000000000000000000006C",\n "chainID": 1,\n "minBalance": "1",\n "chainAddress": "eth:0x000000000000000000000000000000000000006C",\n "externalID": "Github"\n }\n }\n },\n...\n')),(0,s.kt)("h2",{id:"predicates"},"Predicates"),(0,s.kt)("p",null,"As you can see, there are two main differences between the simple and complex strategies: the ",(0,s.kt)("inlineCode",{parentName:"p"},"predicate")," and the ",(0,s.kt)("inlineCode",{parentName:"p"},"tokens"),". "),(0,s.kt)("p",null,"Predicates are logical operators that define how strategies create a census. There are currently two logical operators (",(0,s.kt)("inlineCode",{parentName:"p"},"AND")," and ",(0,s.kt)("inlineCode",{parentName:"p"},"OR"),"), each with two additional 'powerups' (",(0,s.kt)("inlineCode",{parentName:"p"},"sum")," and ",(0,s.kt)("inlineCode",{parentName:"p"},"mul"),")."),(0,s.kt)("p",null,"The predicate syntax and available operators are documented in-depth at ",(0,s.kt)("a",{parentName:"p",href:"/protocol/census/on-chain/census3#creating-a-strategy"},"Creating a Strategy"),"."),(0,s.kt)("p",null,"You can also query the census3 service for a list of available operators:"),(0,s.kt)("pre",null,(0,s.kt)("code",{parentName:"pre",className:"language-ts"},"const operators = await census3Client.getSupportedOperators();\nconsole.log(operators);\n")),(0,s.kt)("pre",null,(0,s.kt)("code",{parentName:"pre",className:"language-bash"},"[\n {\n description: 'AND logical operator that returns the common token holders between symbols with fixed balance to 1',\n tag: 'AND'\n },\n {\n description: 'AND:sum logical operator that returns the common token holders between symbols with the sum of their balances on both tokens',\n tag: 'AND:sum'\n },\n {\n description: 'AND:mul logical operator that returns the common token holders between symbols with the multiplication of their balances on both tokens',\n tag: 'AND:mul'\n },\n {\n description: 'OR logical operator that returns the token holders of both symbols with fixed balance to 1',\n tag: 'OR'\n },\n {\n description: 'OR:sum logical operator that returns the token holders of both symbols with the sum of their balances on both tokens',\n tag: 'OR:sum'\n },\n {\n description: 'OR:mul logical operator that returns the token holders of both symbols with the multiplication of their balances on both tokens',\n tag: 'OR:mul'\n }\n]\n")),(0,s.kt)("p",null,"As seen in the strategy example above, you can combine operators to create complex predicates with many tokens: "),(0,s.kt)("pre",null,(0,s.kt)("code",{parentName:"pre",className:"language-json"},'"predicate": "GPS AND:mul (GPS:Discord OR GPS:Github)"\n')),(0,s.kt)("h2",{id:"creating-a-census"},"Creating a Census"),(0,s.kt)("p",null,"The first step in creating a complex census is to create the strategy itself. You can write a predicate with the operators defined above and use the predicate with ",(0,s.kt)("a",{parentName:"p",href:"/sdk/reference/classes/vocdonicensus3client#createstrategy"},(0,s.kt)("inlineCode",{parentName:"a"},"createStrategy()")),". The only requirement is that you include a list of the necessary tokens used by this predicate, including the token ",(0,s.kt)("inlineCode",{parentName:"p"},"ID")," (address), ",(0,s.kt)("inlineCode",{parentName:"p"},"chainID"),", and optionally the ",(0,s.kt)("inlineCode",{parentName:"p"},"minBalance")," (the minimum necessary balance to include a token-holder in a census)."),(0,s.kt)("pre",null,(0,s.kt)("code",{parentName:"pre",className:"language-ts"},"const strategyID = await census3Client.createStrategy('voc_test_strategy', 'VOC3TEST AND VOC3TEST3', {\n VOC3TEST: {\n ID: '0x9286d95DB5a59306113028EF0BA85bF7068A199F',\n chainID: 11155111,\n minBalance: '1',\n },\n VOC3TEST3: {\n ID: '0x61353Bc49B062EEe99F4768225f4e4f0df5DB1b9',\n chainID: 11155111,\n minBalance: '1',\n },\n});\n")),(0,s.kt)("p",null,"This API call, if successful, returns the ID of the newly-created strategy. You can also use ",(0,s.kt)("inlineCode",{parentName:"p"},"getStrategies()")," again to make sure the strategy is supported. This ID is needed to create the census based off of the strategy:"),(0,s.kt)("pre",null,(0,s.kt)("code",{parentName:"pre",className:"language-ts"},"const censusInfo = await census3Client.createCensus(strategyID);\n")),(0,s.kt)("p",null,"This returns a set of information about the census but cannot be used to directly create an election. To do this, just manually create a ",(0,s.kt)("inlineCode",{parentName:"p"},"PublishedCensus"),"."),(0,s.kt)("pre",null,(0,s.kt)("code",{parentName:"pre",className:"language-ts"},"const census = new PublishedCensus(\n censusInfo.merkleRoot,\n censusInfo.uri,\n censusInfo.anonymous ? CensusType.ANONYMOUS : CensusType.WEIGHTED,\n censusInfo.size,\n BigInt(censusInfo.weight)\n);\n")),(0,s.kt)("p",null,"This census can be used to create an election just like any other. In this case, the census would represent all token-holders of the ",(0,s.kt)("inlineCode",{parentName:"p"},"VOC3TEST")," and ",(0,s.kt)("inlineCode",{parentName:"p"},"VOC3TEST3")," tokens, all with a weight of 1."))}p.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/e24c431f.777baed9.js b/assets/js/e24c431f.777baed9.js deleted file mode 100644 index aee80802e..000000000 --- a/assets/js/e24c431f.777baed9.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkdemo=self.webpackChunkdemo||[]).push([[2872],{3905:(e,t,n)=>{n.d(t,{Zo:()=>p,kt:()=>m});var a=n(67294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function s(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var l=a.createContext({}),c=function(e){var t=a.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):s(s({},t),e)),n},p=function(e){var t=c(e.components);return a.createElement(l.Provider,{value:t},e.children)},d={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},u=a.forwardRef((function(e,t){var n=e.components,r=e.mdxType,o=e.originalType,l=e.parentName,p=i(e,["components","mdxType","originalType","parentName"]),u=c(n),m=r,h=u["".concat(l,".").concat(m)]||u[m]||d[m]||o;return n?a.createElement(h,s(s({ref:t},p),{},{components:n})):a.createElement(h,s({ref:t},p))}));function m(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var o=n.length,s=new Array(o);s[0]=u;var i={};for(var l in t)hasOwnProperty.call(t,l)&&(i[l]=t[l]);i.originalType=e,i.mdxType="string"==typeof e?e:r,s[1]=i;for(var c=2;c{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>s,default:()=>d,frontMatter:()=>o,metadata:()=>i,toc:()=>c});var a=n(87462),r=(n(67294),n(3905));const o={},s="Complex Census",i={unversionedId:"sdk/integration-details/census-types/on-chain/complex-census",id:"sdk/integration-details/census-types/on-chain/complex-census",title:"Complex Census",description:"The census3 service makes it easy to create a census based off of the balance holders of a token taken to represent an organization. It is possible, however, to create a token-based census with more complex logic, incorporating balance information from multiple tokens at once.",source:"@site/docs/sdk/integration-details/census-types/on-chain/complex-census.md",sourceDirName:"sdk/integration-details/census-types/on-chain",slug:"/sdk/integration-details/census-types/on-chain/complex-census",permalink:"/sdk/integration-details/census-types/on-chain/complex-census",draft:!1,tags:[],version:"current",frontMatter:{},sidebar:"defaultSidebar",previous:{title:"On-chain Token-Based Census",permalink:"/sdk/integration-details/census-types/on-chain/"},next:{title:"Vocdoni Tokens",permalink:"/sdk/integration-details/vocdoni-tokens"}},l={},c=[{value:"Strategies",id:"strategies",level:2},{value:"Predicates",id:"predicates",level:2},{value:"Creating a Census",id:"creating-a-census",level:2}],p={toc:c};function d(e){let{components:t,...n}=e;return(0,r.kt)("wrapper",(0,a.Z)({},p,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",{id:"complex-census"},"Complex Census"),(0,r.kt)("p",null,"The census3 service makes it easy to create a census based off of the balance holders of a token taken to represent an organization. It is possible, however, to create a token-based census with more complex logic, incorporating balance information from multiple tokens at once."),(0,r.kt)("h2",{id:"strategies"},"Strategies"),(0,r.kt)("p",null,"The logic that defines inclusion in a token-based census is called a 'strategy.' For the basic token-holder use case, the strategy is defined solely by that token. ",(0,r.kt)("inlineCode",{parentName:"p"},"createTokenCensus")," chooses the default strategy for that token, so for a basic token-based census you don't need to worry about strategies at all."),(0,r.kt)("p",null,'More complex strategies exist, however, such as "holders of both ',(0,r.kt)("inlineCode",{parentName:"p"},"VOC1")," token AND ",(0,r.kt)("inlineCode",{parentName:"p"},"VOC2"),' token."'),(0,r.kt)("p",null,"Just like checking for supported tokens, you can see a list of the strategies supported by the census3 service:"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-ts"},"const strategies = await census3Client.getStrategies();\nconsole.log(JSON.stringify(strategies, null, 4));\n")),(0,r.kt)("p",null,"This will print a long list of strategies. Some of them will be basic strategies for a single token:"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-bash"},'...\n {\n "ID": 72,\n "alias": "Default strategy for token VOC3TEST",\n "predicate": "VOC3TEST",\n "uri": "ipfs://bafybeih7rmjsdzqjr6pyjv46jo4kjpl3qfv2yufpdxzmcw2j63z47u6czy",\n "tokens": {\n "VOC3TEST": {\n "ID": "0x9286d95DB5a59306113028EF0BA85bF7068A199F",\n "chainID": 11155111,\n "minBalance": "1",\n "chainAddress": "sep:0x9286d95DB5a59306113028EF0BA85bF7068A199F"\n }\n }\n },\n...\n')),(0,r.kt)("p",null,"Some, on the other hand, will be more complex strategies involving multiple tokens:"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-bash"},'...\n {\n "ID": 103,\n "alias": "gitcoin_onvote_1711040172449",\n "predicate": "GPS AND:mul (GPS:Discord OR GPS:Github)",\n "uri": "ipfs://bafybeidopynxc746oorzkh7yvhomcw56w72aaw3klqce4gkjcczc7ry3uu",\n "tokens": {\n "GPS": {\n "ID": "0x000000000000000000000000000000000000006C",\n "chainID": 1,\n "minBalance": "16",\n "chainAddress": "eth:0x000000000000000000000000000000000000006C"\n },\n "GPS:Discord": {\n "ID": "0x000000000000000000000000000000000000006C",\n "chainID": 1,\n "minBalance": "1",\n "chainAddress": "eth:0x000000000000000000000000000000000000006C",\n "externalID": "Discord"\n },\n "GPS:Github": {\n "ID": "0x000000000000000000000000000000000000006C",\n "chainID": 1,\n "minBalance": "1",\n "chainAddress": "eth:0x000000000000000000000000000000000000006C",\n "externalID": "Github"\n }\n }\n },\n...\n')),(0,r.kt)("h2",{id:"predicates"},"Predicates"),(0,r.kt)("p",null,"As you can see, there are two main differences between the simple and complex strategies: the ",(0,r.kt)("inlineCode",{parentName:"p"},"predicate")," and the ",(0,r.kt)("inlineCode",{parentName:"p"},"tokens"),". "),(0,r.kt)("p",null,"Predicates are logical operators that define how strategies create a census. There are currently two logical operators (",(0,r.kt)("inlineCode",{parentName:"p"},"AND")," and ",(0,r.kt)("inlineCode",{parentName:"p"},"OR"),"), each with two additional 'powerups' (",(0,r.kt)("inlineCode",{parentName:"p"},"sum")," and ",(0,r.kt)("inlineCode",{parentName:"p"},"mul"),")."),(0,r.kt)("p",null,"Each of the operators uses a different logical strategy for combining token holder balances to create a weighted census:"),(0,r.kt)("table",null,(0,r.kt)("thead",{parentName:"table"},(0,r.kt)("tr",{parentName:"thead"},(0,r.kt)("th",{parentName:"tr",align:"left"},"Operator"),(0,r.kt)("th",{parentName:"tr",align:"left"},"Powerup"),(0,r.kt)("th",{parentName:"tr",align:"left"},"Usage"),(0,r.kt)("th",{parentName:"tr",align:"left"},"Description"))),(0,r.kt)("tbody",{parentName:"table"},(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"left"},(0,r.kt)("inlineCode",{parentName:"td"},"AND")),(0,r.kt)("td",{parentName:"tr",align:"left"}),(0,r.kt)("td",{parentName:"tr",align:"left"},(0,r.kt)("inlineCode",{parentName:"td"},"AND")),(0,r.kt)("td",{parentName:"tr",align:"left"},"Holders of both tokens, with a fixed weight of 1.")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"left"},(0,r.kt)("inlineCode",{parentName:"td"},"OR")),(0,r.kt)("td",{parentName:"tr",align:"left"}),(0,r.kt)("td",{parentName:"tr",align:"left"},(0,r.kt)("inlineCode",{parentName:"td"},"OR"),"\xa0"),(0,r.kt)("td",{parentName:"tr",align:"left"},"Holders of either or both tokens, with fixed weight of 1.")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"left"},(0,r.kt)("inlineCode",{parentName:"td"},"AND")),(0,r.kt)("td",{parentName:"tr",align:"left"},(0,r.kt)("inlineCode",{parentName:"td"},"sum")),(0,r.kt)("td",{parentName:"tr",align:"left"},(0,r.kt)("inlineCode",{parentName:"td"},"AND:sum")),(0,r.kt)("td",{parentName:"tr",align:"left"},"Holders of both tokens, with a weight adding the token balances.")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"left"},(0,r.kt)("inlineCode",{parentName:"td"},"AND")),(0,r.kt)("td",{parentName:"tr",align:"left"},(0,r.kt)("inlineCode",{parentName:"td"},"mul")),(0,r.kt)("td",{parentName:"tr",align:"left"},(0,r.kt)("inlineCode",{parentName:"td"},"AND:mul")),(0,r.kt)("td",{parentName:"tr",align:"left"},"Holders of both tokens, with a weight multiplying the token balances.")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"left"},(0,r.kt)("inlineCode",{parentName:"td"},"OR")),(0,r.kt)("td",{parentName:"tr",align:"left"},(0,r.kt)("inlineCode",{parentName:"td"},"sum")),(0,r.kt)("td",{parentName:"tr",align:"left"},(0,r.kt)("inlineCode",{parentName:"td"},"OR:sum")),(0,r.kt)("td",{parentName:"tr",align:"left"},"Holders of either or both tokens, with a weight adding the token balances.")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"left"},(0,r.kt)("inlineCode",{parentName:"td"},"OR")),(0,r.kt)("td",{parentName:"tr",align:"left"},(0,r.kt)("inlineCode",{parentName:"td"},"mul")),(0,r.kt)("td",{parentName:"tr",align:"left"},(0,r.kt)("inlineCode",{parentName:"td"},"OR:mul")),(0,r.kt)("td",{parentName:"tr",align:"left"},"Holders of either or both tokens, with a weight multiplying the token balances if both are non-zero, or equaling the balance that is non-zero.")))),(0,r.kt)("p",null,"You can also query the census3 service for a list of available operators:"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-ts"},"const operators = await census3Client.getSupportedOperators();\nconsole.log(operators);\n")),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-bash"},"[\n {\n description: 'AND logical operator that returns the common token holders between symbols with fixed balance to 1',\n tag: 'AND'\n },\n {\n description: 'AND:sum logical operator that returns the common token holders between symbols with the sum of their balances on both tokens',\n tag: 'AND:sum'\n },\n {\n description: 'AND:mul logical operator that returns the common token holders between symbols with the multiplication of their balances on both tokens',\n tag: 'AND:mul'\n },\n {\n description: 'OR logical operator that returns the token holders of both symbols with fixed balance to 1',\n tag: 'OR'\n },\n {\n description: 'OR:sum logical operator that returns the token holders of both symbols with the sum of their balances on both tokens',\n tag: 'OR:sum'\n },\n {\n description: 'OR:mul logical operator that returns the token holders of both symbols with the multiplication of their balances on both tokens',\n tag: 'OR:mul'\n }\n]\n")),(0,r.kt)("p",null,"As seen in the strategy example above, you can combine operators to create complex predicates with many tokens: "),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-json"},'"predicate": "GPS AND:mul (GPS:Discord OR GPS:Github)"\n')),(0,r.kt)("h2",{id:"creating-a-census"},"Creating a Census"),(0,r.kt)("p",null,"The first step in creating a complex census is to create the strategy itself. You can write a predicate with the operators defined above and use the predicate with ",(0,r.kt)("a",{parentName:"p",href:"/sdk/reference/classes/vocdonicensus3client#createstrategy"},(0,r.kt)("inlineCode",{parentName:"a"},"createStrategy()")),". The only requirement is that you include a list of the necessary tokens used by this predicate, including the token ",(0,r.kt)("inlineCode",{parentName:"p"},"ID")," (address), ",(0,r.kt)("inlineCode",{parentName:"p"},"chainID"),", and optionally the ",(0,r.kt)("inlineCode",{parentName:"p"},"minBalance")," (the minimum necessary balance to include a token-holder in a census)."),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-ts"},"const strategyID = await census3Client.createStrategy('voc_test_strategy', 'VOC3TEST AND VOC3TEST3', {\n VOC3TEST: {\n ID: '0x9286d95DB5a59306113028EF0BA85bF7068A199F',\n chainID: 11155111,\n minBalance: '1',\n },\n VOC3TEST3: {\n ID: '0x61353Bc49B062EEe99F4768225f4e4f0df5DB1b9',\n chainID: 11155111,\n minBalance: '1',\n },\n});\n")),(0,r.kt)("p",null,"This API call, if successful, returns the ID of the newly-created strategy. You can also use ",(0,r.kt)("inlineCode",{parentName:"p"},"getStrategies()")," again to make sure the strategy is supported. This ID is needed to create the census based off of the strategy:"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-ts"},"const censusInfo = await census3Client.createCensus(strategyID);\n")),(0,r.kt)("p",null,"This returns a set of information about the census but cannot be used to directly create an election. To do this, just manually create a ",(0,r.kt)("inlineCode",{parentName:"p"},"PublishedCensus"),"."),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-ts"},"const census = new PublishedCensus(\n censusInfo.merkleRoot,\n censusInfo.uri,\n censusInfo.anonymous ? CensusType.ANONYMOUS : CensusType.WEIGHTED,\n censusInfo.size,\n BigInt(censusInfo.weight)\n);\n")),(0,r.kt)("p",null,"This census can be used to create an election just like any other. In this case, the census would represent all token-holders of the ",(0,r.kt)("inlineCode",{parentName:"p"},"VOC3TEST")," and ",(0,r.kt)("inlineCode",{parentName:"p"},"VOC3TEST3")," tokens, all with a weight of 1."))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/main.fd075239.js b/assets/js/main.4634d37c.js similarity index 69% rename from assets/js/main.fd075239.js rename to assets/js/main.4634d37c.js index 805a3ba1f..ccfd5c95a 100644 --- a/assets/js/main.fd075239.js +++ b/assets/js/main.4634d37c.js @@ -1,8 +1,8 @@ -/*! For license information please see main.fd075239.js.LICENSE.txt */ -(self.webpackChunkdemo=self.webpackChunkdemo||[]).push([[179],{20830:(e,t,n)=>{"use strict";n.d(t,{W:()=>a});var r=n(67294);function a(){return r.createElement("svg",{width:"20",height:"20",className:"DocSearch-Search-Icon",viewBox:"0 0 20 20"},r.createElement("path",{d:"M14.386 14.386l4.0877 4.0877-4.0877-4.0877c-2.9418 2.9419-7.7115 2.9419-10.6533 0-2.9419-2.9418-2.9419-7.7115 0-10.6533 2.9418-2.9419 7.7115-2.9419 10.6533 0 2.9419 2.9418 2.9419 7.7115 0 10.6533z",stroke:"currentColor",fill:"none",fillRule:"evenodd",strokeLinecap:"round",strokeLinejoin:"round"}))}},723:(e,t,n)=>{"use strict";n.d(t,{Z:()=>p});var r=n(67294),a=n(87462),i=n(68356),o=n.n(i),s=n(16887);const c={"0032f96f":[()=>n.e(100).then(n.bind(n,71659)),"@site/docs/sdk/reference/enums/EnvOptions.md",71659],"00ff508f":[()=>n.e(6811).then(n.bind(n,49589)),"@site/docs/protocol/data-schemes/vote.md",49589],"0128e05f":[()=>n.e(2636).then(n.bind(n,58146)),"@site/docs/sdk/reference/classes/FileAPI.md",58146],"01f4109f":[()=>Promise.all([n.e(532),n.e(2284),n.e(9052),n.e(6057),n.e(6882),n.e(6781)]).then(n.bind(n,84522)),"@site/docs/vocdoni-api/list-account-received-and-sent-token-transfers.api.mdx",84522],"03c6674d":[()=>n.e(4720).then(n.bind(n,56675)),"@site/docs/sdk/reference/classes/MultiChoiceElection.md",56675],"03d8c746":[()=>n.e(9967).then(n.bind(n,69109)),"@site/docs/sdk/reference/classes/FileService.md",69109],"080a9ee7":[()=>n.e(3913).then(n.bind(n,62998)),"@site/docs/sdk/reference/enums/CensusTypeEnum.md",62998],"08636a24":[()=>n.e(374).then(n.bind(n,21054)),"@site/docs/sdk/reference/classes/ElectionService.md",21054],"09cca914":[()=>n.e(9410).then(n.bind(n,94455)),"@site/docs/sdk/reference/interfaces/ITallyMode.md",94455],"0a3f3d31":[()=>Promise.all([n.e(532),n.e(2284),n.e(9052),n.e(6057),n.e(6882),n.e(5122)]).then(n.bind(n,61890)),"@site/docs/vocdoni-api/list-election-votes.api.mdx",61890],"0bcfcae9":[()=>n.e(6891).then(n.bind(n,36502)),"@site/docs/sdk/reference/classes/Election.md",36502],"0e384e19":[()=>n.e(9671).then(n.bind(n,59881)),"@site/docs/intro.md",59881],"0f556ffa":[()=>n.e(2467).then(n.bind(n,8207)),"@site/docs/sdk/reference/interfaces/ICensus3TokenTypesResponse.md",8207],"0fa69d70":[()=>n.e(1371).then(n.bind(n,13302)),"@site/docs/sdk/reference/interfaces/ICensusPublishResponse.md",13302],"0fc92a72":[()=>n.e(5253).then(n.bind(n,27084)),"@site/docs/sdk/reference/interfaces/ICensus3ValidatePredicateChild.md",27084],"109756a8":[()=>n.e(2870).then(n.bind(n,88064)),"@site/docs/sdk/reference/classes/ApprovalElection.md",88064],"10dce6d4":[()=>n.e(7493).then(n.bind(n,71333)),"@site/docs/sdk/reference/interfaces/IAccountsListResponse.md",71333],"11667d91":[()=>n.e(1425).then(n.bind(n,50052)),"@site/docs/sdk/reference/interfaces/IMultiChoiceElectionParameters.md",50052],"11d03c56":[()=>n.e(8759).then(n.bind(n,78989)),"@site/docs/protocol/anonymity/on-chain.md",78989],"123fab3b":[()=>Promise.all([n.e(532),n.e(2284),n.e(1739)]).then(n.bind(n,9003)),"@site/docs/vocdoni-api/votes.tag.mdx",9003],"134f4ebc":[()=>Promise.all([n.e(532),n.e(2284),n.e(9052),n.e(6057),n.e(6882),n.e(738)]).then(n.bind(n,6002)),"@site/docs/vocdoni-api/set-wallet-account.api.mdx",6002],"13df6360":[()=>Promise.all([n.e(532),n.e(2284),n.e(9052),n.e(6057),n.e(6882),n.e(6499)]).then(n.bind(n,11349)),"@site/docs/vocdoni-api/price-factors-information.api.mdx",11349],"15bb616c":[()=>n.e(830).then(n.bind(n,92234)),"@site/docs/protocol/data-schemes/election.md",92234],"16c4bb07":[()=>n.e(7533).then(n.bind(n,21852)),"@site/docs/sdk/reference/interfaces/ICensus3StrategyHoldersResponse.md",21852],"16e8ae75":[()=>n.e(6418).then(n.bind(n,61593)),"@site/docs/sdk/reference/interfaces/IElectionListFilter.md",61593],"1821d9d7":[()=>n.e(1510).then(n.bind(n,3253)),"@site/docs/sdk/reference/interfaces/ICensus3StrategyEstimationQueueResponse.md",3253],"1a4e3797":[()=>Promise.all([n.e(532),n.e(7920)]).then(n.bind(n,39172)),"@theme/SearchPage",39172],"1be78505":[()=>Promise.all([n.e(532),n.e(9514)]).then(n.bind(n,40683)),"@theme/DocPage",40683],"1c3bce93":[()=>n.e(1414).then(n.bind(n,89396)),"@site/docs/sdk/reference/classes/PublishedCensus.md",89396],"1cd58b57":[()=>Promise.all([n.e(532),n.e(2284),n.e(9052),n.e(6057),n.e(6882),n.e(8545)]).then(n.bind(n,9594)),"@site/docs/vocdoni-api/import-census-database.api.mdx",9594],"1df93b7f":[()=>Promise.all([n.e(532),n.e(2284),n.e(9052),n.e(3750),n.e(3237)]).then(n.bind(n,39884)),"@site/src/pages/index.tsx",39884],"1e6527e1":[()=>n.e(4719).then(n.bind(n,7490)),"@site/docs/sdk/reference/interfaces/Tx.md",7490],"1e8e5e9a":[()=>n.e(4881).then(n.bind(n,94067)),"@site/docs/sdk/reference/classes/ElectionAPI.md",94067],"1ed63671":[()=>n.e(7998).then(n.bind(n,92064)),"@site/docs/sdk/reference/enums/TransactionType.md",92064],"1edcfddb":[()=>n.e(5288).then(n.bind(n,88593)),"@site/docs/sdk/reference/interfaces/ServiceProperties.md",88593],22155637:[()=>Promise.all([n.e(532),n.e(2284),n.e(9052),n.e(6057),n.e(6882),n.e(5268)]).then(n.bind(n,95321)),"@site/docs/vocdoni-api/list-validators.api.mdx",95321],"2340828a":[()=>n.e(4376).then(n.bind(n,20137)),"@site/docs/sdk/reference/classes/FaucetService.md",20137],"23e9e137":[()=>n.e(8016).then(n.bind(n,59841)),"@site/docs/sdk/reference/interfaces/ICensusExportResponse.md",59841],"24ee6be4":[()=>n.e(5326).then(n.bind(n,72109)),"@site/docs/sdk/reference/interfaces/ICensusParticipant.md",72109],"260b3d09":[()=>n.e(5214).then(n.bind(n,8077)),"@site/docs/sdk/reference/classes/Service.md",8077],"2730d8e4":[()=>n.e(8597).then(n.bind(n,81169)),"@site/docs/sdk/reference/interfaces/SetProcessTx.md",81169],29694922:[()=>n.e(6178).then(n.bind(n,89571)),"@site/docs/ui-components/02-Organization.mdx",89571],"29c8ca5d":[()=>n.e(4463).then(n.bind(n,84677)),"@site/docs/sdk/reference/classes/VoteAPI.md",84677],"2dbb09aa":[()=>Promise.all([n.e(532),n.e(2284),n.e(9052),n.e(6057),n.e(6882),n.e(5378)]).then(n.bind(n,14010)),"@site/docs/vocdoni-api/count-election-votes.api.mdx",14010],"2eb5a7fb":[()=>Promise.all([n.e(532),n.e(2284),n.e(9052),n.e(6057),n.e(6882),n.e(2360)]).then(n.bind(n,17728)),"@site/docs/vocdoni-api/census-merkle-root.api.mdx",17728],"2f59b2ef":[()=>n.e(274).then(n.bind(n,14386)),"@site/docs/sdk/reference/interfaces/ICensus3ValidatePredicateResponse.md",14386],"335f69d6":[()=>Promise.all([n.e(532),n.e(2284),n.e(9052),n.e(6057),n.e(6882),n.e(4540)]).then(n.bind(n,37888)),"@site/docs/vocdoni-api/census-total-weight.api.mdx",37888],"377fc202":[()=>n.e(3516).then(n.bind(n,40552)),"@site/docs/sdk/reference/classes/AccountService.md",40552],"388546f3":[()=>Promise.all([n.e(532),n.e(2284),n.e(8999)]).then(n.bind(n,31545)),"@site/docs/vocdoni-api/elections.tag.mdx",31545],"3930cc8a":[()=>Promise.all([n.e(532),n.e(2284),n.e(3168)]).then(n.bind(n,99098)),"@site/docs/vocdoni-api/sik.tag.mdx",99098],"39a96d3a":[()=>n.e(306).then(n.bind(n,66038)),"@site/docs/sdk/reference/interfaces/ElectionMetadata.md",66038],"3aefc2b6":[()=>n.e(3868).then(n.bind(n,43924)),"@site/docs/sdk/reference/classes/TokenCensus.md",43924],"3b56eb8e":[()=>Promise.all([n.e(532),n.e(2284),n.e(9052),n.e(6057),n.e(6882),n.e(5978)]).then(n.bind(n,20863)),"@site/docs/vocdoni-api/create-a-new-census.api.mdx",20863],"3b8a1714":[()=>Promise.all([n.e(532),n.e(2284),n.e(9052),n.e(6057),n.e(6882),n.e(8740)]).then(n.bind(n,42045)),"@site/docs/vocdoni-api/create-election-for-wallet.api.mdx",42045],"3c152c78":[()=>n.e(3625).then(n.bind(n,30194)),"@site/docs/sdk/reference/interfaces/ICensus3ValidatePredicateToken.md",30194],"3da0b0fe":[()=>Promise.all([n.e(532),n.e(2284),n.e(656)]).then(n.bind(n,47215)),"@site/docs/vocdoni-api/accounts.tag.mdx",47215],"3fa72254":[()=>n.e(9217).then(n.bind(n,3553)),"@site/docs/sdk/reference/interfaces/IChainOrganizationResponse.md",3553],"404eb028":[()=>n.e(2827).then(n.bind(n,14196)),"@site/docs/sdk/integration-details/voting-types/quadratic.md",14196],"427be892":[()=>n.e(8913).then(n.bind(n,28068)),"@site/docs/protocol/data-schemes/data-schemes.md",28068],"437ed742":[()=>Promise.all([n.e(532),n.e(2284),n.e(9052),n.e(6057),n.e(6882),n.e(3796)]).then(n.bind(n,7786)),"@site/docs/vocdoni-api/transaction-by-hash.api.mdx",7786],"445f6f2d":[()=>n.e(7456).then(n.bind(n,67006)),"@site/docs/sdk/reference/interfaces/SetAccountTx.md",67006],"467b2519":[()=>n.e(3158).then(n.bind(n,33391)),"@site/docs/sdk/reference/classes/CensusAPI.md",33391],"46b36dc0":[()=>n.e(3082).then(n.bind(n,6815)),"@site/docs/sdk/integration-details/voting-types/weighted.md",6815],"47d20a96":[()=>Promise.all([n.e(532),n.e(2284),n.e(9052),n.e(6057),n.e(6882),n.e(1591)]).then(n.bind(n,53190)),"@site/docs/vocdoni-api/compute-ipfs-ci-dv-1-of-file.api.mdx",53190],"47d37469":[()=>Promise.all([n.e(532),n.e(2284),n.e(9052),n.e(6057),n.e(6882),n.e(4013)]).then(n.bind(n,44768)),"@site/docs/vocdoni-api/census-size.api.mdx",44768],"491af8ad":[()=>n.e(135).then(n.bind(n,13471)),"@site/docs/sdk/reference/interfaces/IVoteMode.md",13471],"49b14676":[()=>n.e(7583).then(n.bind(n,43127)),"@site/docs/sdk/reference/classes/CspService.md",43127],"4a1ec646":[()=>n.e(5909).then(n.bind(n,23218)),"@site/docs/sdk/integration-details/census-types/off-chain-csp.md",23218],"4adb919a":[()=>n.e(8033).then(n.bind(n,89541)),"@site/docs/sdk/reference/enums/TxType.md",89541],"4b742bf9":[()=>n.e(5882).then(n.bind(n,94266)),"@site/docs/sdk/reference/interfaces/VoteEnvelope.md",94266],"4bef2fb3":[()=>n.e(5277).then(n.bind(n,19662)),"@site/docs/sdk/reference/interfaces/IVoteInfoResponse.md",19662],"4c5e977b":[()=>Promise.all([n.e(532),n.e(2284),n.e(9052),n.e(6057),n.e(3849),n.e(1893)]).then(n.bind(n,46261)),"@theme/ApiItem",46261],"4d61d27d":[()=>n.e(4253).then(n.bind(n,18672)),"@site/docs/sdk/reference/interfaces/ICensus3ServiceInfoResponse.md",18672],"4d66e9ad":[()=>Promise.all([n.e(532),n.e(2284),n.e(9052),n.e(6057),n.e(6882),n.e(9202)]).then(n.bind(n,24401)),"@site/docs/vocdoni-api/delete-census.api.mdx",24401],"4e2de210":[()=>Promise.all([n.e(532),n.e(2284),n.e(9052),n.e(6057),n.e(6882),n.e(9057)]).then(n.bind(n,13366)),"@site/docs/vocdoni-api/create-election.api.mdx",13366],"4f32f676":[()=>n.e(1187).then(n.bind(n,27888)),"@site/docs/protocol/ballot-protocol.md",27888],"4f61726b":[()=>n.e(8882).then(n.bind(n,65124)),"@site/docs/sdk/integration-details/vocdoni-tokens.md",65124],"5125b704":[()=>n.e(1205).then(n.bind(n,72906)),"@site/docs/sdk/reference/interfaces/MintTokensTx.md",72906],"515de0d7":[()=>n.e(7136).then(n.bind(n,65073)),"@site/docs/sdk/reference/interfaces/CollectFaucetTx.md",65073],"518b90c0":[()=>n.e(7037).then(n.bind(n,21993)),"@site/docs/protocol/data-schemes/organization.md",21993],"5344dd0e":[()=>n.e(4519).then(n.bind(n,12726)),"@site/docs/sdk/reference/interfaces/IChainOrganizationListResponse.md",12726],"5383e2bf":[()=>n.e(2323).then(n.bind(n,11550)),"@site/docs/sdk/reference/interfaces/SendTokensTx.md",11550],"545dbd82":[()=>n.e(8119).then(n.bind(n,23087)),"@site/docs/sdk/reference/classes/Census.md",23087],"54a4f78f":[()=>Promise.all([n.e(532),n.e(2284),n.e(9052),n.e(6057),n.e(6882),n.e(2116)]).then(n.bind(n,20249)),"@site/docs/vocdoni-api/submit-a-vote.api.mdx",20249],"54bc495f":[()=>n.e(3706).then(n.bind(n,22110)),"@site/docs/sdk/integration-details/voting-types/single-choice.md",22110],"5708b463":[()=>n.e(5861).then(n.bind(n,97041)),"@site/docs/sdk/reference/interfaces/IChainGetCircuitResponse.md",97041],57136864:[()=>Promise.all([n.e(532),n.e(2284),n.e(9052),n.e(6057),n.e(6882),n.e(2192)]).then(n.bind(n,24856)),"@site/docs/vocdoni-api/transactions-count.api.mdx",24856],"576aa68d":[()=>Promise.all([n.e(532),n.e(2284),n.e(9052),n.e(6057),n.e(6882),n.e(891)]).then(n.bind(n,32133)),"@site/docs/vocdoni-api/add-participants-to-census.api.mdx",32133],"5945b6f4":[()=>n.e(689).then(n.t.bind(n,83769,19)),"/home/runner/work/developer-portal/developer-portal/.docusaurus/docusaurus-plugin-content-docs/default/plugin-route-context-module-100.json",83769],"5954c450":[()=>Promise.all([n.e(532),n.e(2284),n.e(9052),n.e(6057),n.e(6882),n.e(4539)]).then(n.bind(n,51077)),"@site/docs/vocdoni-api/get-vote.api.mdx",51077],"5977a97c":[()=>n.e(9209).then(n.bind(n,8970)),"@site/docs/sdk/reference/interfaces/ICensus3CensusQueueResponse.md",8970],"59d5b983":[()=>n.e(1557).then(n.bind(n,23791)),"@site/docs/sdk/reference/classes/Account.md",23791],"59e232ee":[()=>Promise.all([n.e(532),n.e(2284),n.e(9052),n.e(6057),n.e(6882),n.e(6204)]).then(n.bind(n,50443)),"@site/docs/vocdoni-api/total-number-of-accounts.api.mdx",50443],"5a8bd590":[()=>n.e(9090).then(n.bind(n,38385)),"@site/docs/protocol/census/on-chain.md",38385],"5c4d0554":[()=>n.e(3204).then(n.bind(n,67221)),"@site/docs/ui-components/03-Election.mdx",67221],"5c98d4ea":[()=>n.e(4182).then(n.bind(n,60218)),"@site/docs/sdk/reference/interfaces/IVoteType.md",60218],"5ddc4d53":[()=>n.e(6990).then(n.bind(n,72552)),"@site/docs/sdk/reference/classes/FaucetAPI.md",72552],"5e9f5e1a":[()=>Promise.resolve().then(n.bind(n,36809)),"@generated/docusaurus.config",36809],"5f8415ed":[()=>n.e(9347).then(n.bind(n,76123)),"@site/docs/protocol/anonymity/anonymity.md",76123],"63e7154e":[()=>Promise.all([n.e(532),n.e(2284),n.e(9052),n.e(6057),n.e(6882),n.e(2609)]).then(n.bind(n,47852)),"@site/docs/vocdoni-api/list-organizations-filtered.api.mdx",47852],"64aa0b9a":[()=>n.e(3038).then(n.bind(n,73543)),"@site/docs/sdk/reference/interfaces/IChainGetCostsResponse.md",73543],"64c2e320":[()=>n.e(4246).then(n.bind(n,35534)),"@site/docs/sdk/reference/classes/AnonymousService.md",35534],"65d7ebf2":[()=>n.e(3802).then(n.bind(n,76482)),"@site/docs/sdk/reference/interfaces/ICensus3TokenListResponse.md",76482],"65e31fed":[()=>n.e(1871).then(n.t.bind(n,15745,19)),"/home/runner/work/developer-portal/developer-portal/.docusaurus/docusaurus-plugin-content-pages/default/plugin-route-context-module-100.json",15745],"6a011cfc":[()=>Promise.all([n.e(532),n.e(2284),n.e(9052),n.e(6057),n.e(6882),n.e(6956)]).then(n.bind(n,35091)),"@site/docs/vocdoni-api/list-all-census-references.api.mdx",35091],"6a02f24e":[()=>n.e(5596).then(n.bind(n,85509)),"@site/docs/sdk/reference/interfaces/IChainTxCountResponse.md",85509],"6aeb5732":[()=>Promise.all([n.e(532),n.e(2284),n.e(9052),n.e(6057),n.e(6882),n.e(2277)]).then(n.bind(n,69102)),"@site/docs/vocdoni-api/total-number-of-sent-and-received-transactions.api.mdx",69102],"6b41ffc9":[()=>Promise.all([n.e(532),n.e(2284),n.e(9052),n.e(6057),n.e(6882),n.e(6563)]).then(n.bind(n,14701)),"@site/docs/vocdoni-api/compute-election-price.api.mdx",14701],"6b697fd9":[()=>Promise.all([n.e(532),n.e(2284),n.e(9052),n.e(6057),n.e(6882),n.e(7813)]).then(n.bind(n,82643)),"@site/docs/vocdoni-api/submit-transaction.api.mdx",82643],"6b74149a":[()=>n.e(9470).then(n.bind(n,47527)),"@site/docs/sdk/reference/interfaces/Process.md",47527],"6b798853":[()=>n.e(8168).then(n.bind(n,38382)),"@site/docs/sdk/reference/interfaces/ICensus3StrategyHoldersResponsePaginated.md",38382],"6bf5cd43":[()=>n.e(6906).then(n.bind(n,81311)),"@site/docs/sdk/reference/interfaces/IElectionCreateResponse.md",81311],"6d3dfbcd":[()=>n.e(7082).then(n.bind(n,29021)),"@site/docs/sdk/reference/interfaces/IChainGetInfoResponse.md",29021],"705711d3":[()=>n.e(8883).then(n.bind(n,85533)),"@site/docs/sdk/reference/interfaces/IAccountTransfersCountResponse.md",85533],"70e3ad0d":[()=>n.e(8930).then(n.bind(n,18157)),"@site/docs/sdk/reference/interfaces/IChainSubmitTxResponse.md",18157],"71f8faad":[()=>Promise.all([n.e(532),n.e(2284),n.e(9052),n.e(6057),n.e(6882),n.e(1655)]).then(n.bind(n,9242)),"@site/docs/vocdoni-api/election-information.api.mdx",9242],"725284f7":[()=>n.e(9942).then(n.bind(n,27947)),"@site/docs/sdk/reference/interfaces/FetchElectionsParameters.md",27947],"7365c198":[()=>Promise.all([n.e(532),n.e(2284),n.e(9052),n.e(6057),n.e(6882),n.e(2079)]).then(n.bind(n,10797)),"@site/docs/vocdoni-api/transaction-by-index.api.mdx",10797],"74b5ba26":[()=>n.e(3773).then(n.bind(n,55317)),"@site/docs/protocol/anonymity/blind-signatures.md",55317],"7644a8b6":[()=>n.e(5421).then(n.bind(n,52077)),"@site/docs/sdk/reference/interfaces/IElectionListResponse.md",52077],"783013b2":[()=>n.e(7374).then(n.bind(n,46269)),"@site/docs/sdk/reference/classes/CensusService.md",46269],"787465aa":[()=>n.e(7673).then(n.bind(n,96659)),"@site/docs/sdk/reference/classes/AccountAPI.md",96659],"78bbaf06":[()=>n.e(5995).then(n.bind(n,66512)),"@site/docs/sdk/integration-details/voting-types/voting-types.md",66512],"79e28b2f":[()=>Promise.all([n.e(532),n.e(2284),n.e(9052),n.e(6057),n.e(6882),n.e(9184)]).then(n.bind(n,1903)),"@site/docs/vocdoni-api/count-organizations.api.mdx",1903],"7acd0d27":[()=>n.e(522).then(n.bind(n,84546)),"@site/docs/sdk/reference/interfaces/CircuitInputs.md",84546],"7b4f5a52":[()=>Promise.all([n.e(532),n.e(2284),n.e(9052),n.e(6057),n.e(6882),n.e(8389)]).then(n.bind(n,1175)),"@site/docs/vocdoni-api/transaction-by-block-height-and-index.api.mdx",1175],"7c0d6738":[()=>n.e(1573).then(n.bind(n,40202)),"@site/docs/sdk/reference/classes/Census3StrategyAPI.md",40202],"7ccdd76e":[()=>Promise.all([n.e(532),n.e(2284),n.e(9052),n.e(6057),n.e(6882),n.e(2956)]).then(n.bind(n,77437)),"@site/docs/vocdoni-api/publish-census.api.mdx",77437],"80975cc5":[()=>n.e(8004).then(n.t.bind(n,7085,19)),"/home/runner/work/developer-portal/developer-portal/.docusaurus/docusaurus-theme-search-algolia/default/plugin-route-context-module-100.json",7085],"835897f5":[()=>n.e(3227).then(n.bind(n,8223)),"@site/docs/sdk/integration-details/voting-types/ranked.md",8223],"87d0da39":[()=>n.e(1719).then(n.bind(n,82595)),"@site/docs/sdk/reference/modules.md",82595],"8a23d602":[()=>Promise.all([n.e(532),n.e(2284),n.e(9052),n.e(6057),n.e(6882),n.e(2551)]).then(n.bind(n,47241)),"@site/docs/vocdoni-api/export-census-database.api.mdx",47241],"8a92166d":[()=>n.e(6689).then(n.bind(n,61287)),"@site/docs/sdk/reference/interfaces/IEncryptionKey.md",61287],"8b196d05":[()=>n.e(1806).then(n.bind(n,90210)),"@site/docs/sdk/reference/interfaces/ICensus3CensusResponse.md",90210],"8b5652a7":[()=>Promise.all([n.e(532),n.e(2284),n.e(9052),n.e(6057),n.e(6882),n.e(2184)]).then(n.bind(n,40765)),"@site/docs/vocdoni-api/list-of-valid-sik-roots.api.mdx",40765],"8d68bc4a":[()=>Promise.all([n.e(532),n.e(2284),n.e(9052),n.e(6057),n.e(6882),n.e(8976)]).then(n.bind(n,65697)),"@site/docs/vocdoni-api/transaction-costs.api.mdx",65697],"8d8eb18d":[()=>n.e(5487).then(n.bind(n,24288)),"@site/docs/protocol/census/census.md",24288],"8e01bad3":[()=>Promise.all([n.e(532),n.e(2284),n.e(9052),n.e(6057),n.e(6882),n.e(6135)]).then(n.bind(n,24895)),"@site/docs/vocdoni-api/election-results.api.mdx",24895],"8ec8cf1f":[()=>n.e(8399).then(n.bind(n,6274)),"@site/docs/sdk/reference/interfaces/ICensusImportResponse.md",6274],"8ed7db60":[()=>n.e(2931).then(n.bind(n,39979)),"@site/docs/sdk/reference/interfaces/NewProcessTx.md",39979],"900ced3f":[()=>Promise.all([n.e(532),n.e(2284),n.e(9052),n.e(6057),n.e(6882),n.e(5469)]).then(n.bind(n,57285)),"@site/docs/vocdoni-api/get-next-election-id.api.mdx",57285],"9029ef47":[()=>n.e(1126).then(n.bind(n,61400)),"@site/docs/sdk/reference/interfaces/IElectionKeysResponse.md",61400],92348782:[()=>n.e(9940).then(n.bind(n,52437)),"@site/docs/sdk/reference/interfaces/ICensus3TokenListResponsePaginated.md",52437],"925c0bed":[()=>Promise.all([n.e(532),n.e(2284),n.e(9052),n.e(6057),n.e(6882),n.e(6354)]).then(n.bind(n,41216)),"@site/docs/vocdoni-api/publish-census-at-root.api.mdx",41216],"935f2afb":[()=>n.e(53).then(n.t.bind(n,1109,19)),"~docs/default/version-current-metadata-prop-751.json",1109],93908748:[()=>n.e(4805).then(n.bind(n,20951)),"@site/docs/sdk/reference/interfaces/ICensus3TokenHolderResponse.md",20951],"94050a54":[()=>n.e(8180).then(n.bind(n,18967)),"@site/docs/sdk/reference/interfaces/ICensus3StrategiesOperatorsResponse.md",18967],"945f0be5":[()=>n.e(5104).then(n.bind(n,57462)),"@site/docs/sdk/reference/classes/Census3TokenAPI.md",57462],"9611c1ba":[()=>n.e(6567).then(n.bind(n,36543)),"@site/docs/sdk/reference/enums/ElectionResultsTypeNames.md",36543],"9728e091":[()=>n.e(5470).then(n.bind(n,30775)),"@site/docs/sdk/integration-details/census-types/off-chain-tree.md",30775],"999cbc12":[()=>n.e(2600).then(n.bind(n,93106)),"@site/docs/sdk/reference/interfaces/IElectionVote.md",93106],"99a9ad46":[()=>Promise.all([n.e(532),n.e(2284),n.e(9052),n.e(6057),n.e(6882),n.e(1290)]).then(n.bind(n,3762)),"@site/docs/vocdoni-api/verify-merkle-proof.api.mdx",3762],"99ffa32d":[()=>Promise.all([n.e(532),n.e(2284),n.e(9052),n.e(6057),n.e(6882),n.e(5698)]).then(n.bind(n,69667)),"@site/docs/vocdoni-api/verify-vote.api.mdx",69667],"9e4ccdce":[()=>Promise.all([n.e(532),n.e(2284),n.e(9052),n.e(6057),n.e(6882),n.e(9128)]).then(n.bind(n,18918)),"@site/docs/vocdoni-api/estimate-block-to-date.api.mdx",18918],"9ea3e4a5":[()=>Promise.all([n.e(532),n.e(2284),n.e(9052),n.e(6057),n.e(6882),n.e(4820)]).then(n.bind(n,94369)),"@site/docs/vocdoni-api/export-census.api.mdx",94369],"9f384d53":[()=>n.e(5058).then(n.bind(n,56697)),"@site/docs/sdk/reference/interfaces/IChainValidator.md",56697],"9f9eec24":[()=>n.e(1094).then(n.bind(n,55218)),"@site/docs/sdk/reference/interfaces/IChainValidatorsListResponse.md",55218],a21738db:[()=>n.e(3334).then(n.bind(n,90591)),"@site/docs/protocol/index.md",90591],a217fb3c:[()=>n.e(6386).then(n.bind(n,15079)),"@site/docs/sdk/reference/classes/WeightedCensus.md",15079],a2cbb706:[()=>n.e(1966).then(n.bind(n,5130)),"@site/docs/sdk/reference/classes/ChainService.md",5130],a674c74b:[()=>n.e(6412).then(n.bind(n,22006)),"@site/docs/sdk/reference/classes/PlainCensus.md",22006],a7835d3e:[()=>n.e(6723).then(n.bind(n,46887)),"@site/docs/sdk/reference/classes/AnonymousVote.md",46887],a7c28e13:[()=>n.e(7862).then(n.bind(n,51659)),"@site/docs/sdk/integration-details/census-types/census-types.md",51659],a87232fc:[()=>n.e(7347).then(n.bind(n,43556)),"@site/docs/sdk/reference/interfaces/ICensus3SupportedChain.md",43556],aa9e799f:[()=>n.e(4183).then(n.bind(n,95618)),"@site/docs/sdk/integration-details/census-types/on-chain/on-chain.md",95618],aab6ad66:[()=>n.e(260).then(n.bind(n,9034)),"@site/docs/sdk/reference/classes/ArchivedElection.md",9034],ac57e32f:[()=>n.e(848).then(n.bind(n,25280)),"@site/docs/sdk/reference/enums/CspProofType.md",25280],ace89945:[()=>n.e(7612).then(n.bind(n,45613)),"@site/docs/sdk/reference/interfaces/IAccount.md",45613],ad99c2e7:[()=>n.e(4600).then(n.bind(n,28794)),"@site/docs/sdk/reference/interfaces/AdminTx.md",28794],ae74964d:[()=>n.e(297).then(n.bind(n,887)),"@site/docs/sdk/reference/classes/CspVote.md",887],ae785ce1:[()=>n.e(3496).then(n.bind(n,85877)),"@site/docs/sdk/reference/interfaces/IPublishedElectionParameters.md",85877],af3402af:[()=>Promise.all([n.e(532),n.e(2284),n.e(9052),n.e(6057),n.e(6882),n.e(6425)]).then(n.bind(n,23761)),"@site/docs/vocdoni-api/circuit-info.api.mdx",23761],af55f10e:[()=>n.e(5580).then(n.bind(n,26224)),"@site/docs/sdk/reference/classes/VocdoniCensus3Client.md",26224],af663d33:[()=>n.e(4721).then(n.bind(n,14063)),"@site/docs/sdk/reference/interfaces/IAccountsCountResponse.md",14063],b0b03425:[()=>Promise.all([n.e(532),n.e(2284),n.e(3023)]).then(n.bind(n,40062)),"@site/docs/vocdoni-api/chain.tag.mdx",40062],b0d01e95:[()=>n.e(1968).then(n.bind(n,29542)),"@site/docs/sdk/reference/interfaces/IElectionInfoResponse.md",29542],b16aadd2:[()=>n.e(7055).then(n.bind(n,23237)),"@site/docs/sdk/01-tutorial.md",23237],b2b5a0c0:[()=>n.e(1270).then(n.bind(n,90002)),"@site/docs/sdk/reference/interfaces/IChainOrganizationCountResponse.md",90002],b3153972:[()=>n.e(7631).then(n.bind(n,28493)),"@site/docs/sdk/reference/interfaces/ICensus3StrategiesListResponse.md",28493],b491e6b8:[()=>n.e(2859).then(n.bind(n,77122)),"@site/docs/sdk/reference/interfaces/IChoice.md",77122],b5881b04:[()=>n.e(9589).then(n.bind(n,27382)),"@site/docs/sdk/reference/interfaces/IElectionMode.md",27382],b7cc9ed0:[()=>n.e(9097).then(n.bind(n,31233)),"@site/docs/sdk/reference/enums/ElectionStatus.md",31233],b7def961:[()=>n.e(1011).then(n.bind(n,96350)),"@site/docs/sdk/integration-details/integration-details.md",96350],b80cad64:[()=>n.e(8149).then(n.bind(n,38254)),"@site/docs/sdk/reference/interfaces/IBlockTransactionsResponse.md",38254],b83e4bd7:[()=>n.e(9229).then(n.bind(n,14484)),"@site/docs/sdk/reference/interfaces/IVoteSubmitResponse.md",14484],b862b811:[()=>n.e(9756).then(n.bind(n,7453)),"@site/docs/sdk/reference/interfaces/ICensus3StrategiesListResponsePaginated.md",7453],b8b370b8:[()=>Promise.all([n.e(532),n.e(2284),n.e(9052),n.e(6057),n.e(6882),n.e(7592)]).then(n.bind(n,56721)),"@site/docs/vocdoni-api/list-account-token-fees.api.mdx",56721],bddc6002:[()=>Promise.all([n.e(532),n.e(2284),n.e(9052),n.e(6057),n.e(6882),n.e(47)]).then(n.bind(n,53982)),"@site/docs/vocdoni-api/transactions-in-a-block.api.mdx",53982],bec6d9ae:[()=>n.e(211).then(n.bind(n,64793)),"@site/docs/sdk/reference/interfaces/AccountMetadata.md",64793],bfbab14f:[()=>Promise.all([n.e(532),n.e(2284),n.e(9052),n.e(6057),n.e(6882),n.e(7799)]).then(n.bind(n,52438)),"@site/docs/vocdoni-api/prove-key-to-census.api.mdx",52438],c121c8d5:[()=>n.e(3195).then(n.bind(n,73535)),"@site/docs/sdk/reference/interfaces/Proof.md",73535],c12940ed:[()=>Promise.all([n.e(532),n.e(2284),n.e(9052),n.e(6057),n.e(6882),n.e(182)]).then(n.bind(n,46275)),"@site/docs/vocdoni-api/list-encryption-keys.api.mdx",46275],c2c73492:[()=>n.e(1865).then(n.bind(n,20788)),"@site/docs/sdk/reference/interfaces/IElectionVoteListResponse.md",20788],c4573554:[()=>Promise.all([n.e(532),n.e(2284),n.e(9052),n.e(6057),n.e(6882),n.e(4259)]).then(n.bind(n,15980)),"@site/docs/vocdoni-api/list-organization-elections.api.mdx",15980],c5434c58:[()=>n.e(7694).then(n.bind(n,19216)),"@site/docs/sdk/reference/interfaces/RegisterKeyTx.md",19216],c626f2cc:[()=>n.e(422).then(n.bind(n,41300)),"@site/docs/sdk/reference/classes/VocdoniSDKClient.md",41300],c84aae18:[()=>n.e(4324).then(n.bind(n,13083)),"@site/docs/sdk/reference/classes/BudgetElection.md",13083],c87cc133:[()=>n.e(4674).then(n.bind(n,33392)),"@site/docs/sdk/reference/classes/Census3ServiceAPI.md",33392],c8cd88a5:[()=>Promise.all([n.e(532),n.e(1597)]).then(n.bind(n,51910)),"@site/docs/vocdoni-api/vocdoni-api.info.mdx",51910],caece487:[()=>n.e(8161).then(n.bind(n,72227)),"@site/docs/sdk/reference/interfaces/SetTransactionCostsTx.md",72227],cce83bc5:[()=>n.e(6686).then(n.bind(n,49466)),"@site/docs/sdk/reference/interfaces/IElectionSummary.md",49466],d234883f:[()=>n.e(8277).then(n.bind(n,19574)),"@site/docs/protocol/anonymity/zk-census-proof.md",19574],d250e750:[()=>n.e(5677).then(n.bind(n,96405)),"@site/docs/sdk/reference/interfaces/IQuestion.md",96405],d28adde9:[()=>n.e(4201).then(n.bind(n,92701)),"@site/docs/sdk/reference/interfaces/ICensus.md",92701],d2ab4b32:[()=>n.e(1935).then(n.bind(n,86894)),"@site/docs/sdk/reference/enums/ElectionCreationSteps.md",86894],d46fdf20:[()=>n.e(3044).then(n.bind(n,11260)),"@site/docs/sdk/reference/interfaces/IBudgetElectionParametersInfo.md",11260],d4ce7faf:[()=>n.e(3754).then(n.bind(n,49993)),"@site/docs/sdk/reference/classes/PublishedElection.md",49993],d4d2d783:[()=>Promise.all([n.e(532),n.e(2284),n.e(9052),n.e(6057),n.e(6882),n.e(7071)]).then(n.bind(n,48652)),"@site/docs/vocdoni-api/get-block-by-hash.api.mdx",48652],d5851cb1:[()=>n.e(3013).then(n.bind(n,39768)),"@site/docs/sdk/reference/interfaces/ICensusProofResponse.md",39768],d6b477f2:[()=>n.e(1378).then(n.bind(n,16193)),"@site/docs/sdk/reference/interfaces/IElectionParameters.md",16193],d6e648af:[()=>Promise.all([n.e(532),n.e(2284),n.e(9052),n.e(6057),n.e(6882),n.e(3086)]).then(n.bind(n,76676)),"@site/docs/vocdoni-api/transfer-tokens.api.mdx",76676],d71b54cc:[()=>Promise.all([n.e(532),n.e(2284),n.e(9052),n.e(6057),n.e(6882),n.e(1786)]).then(n.bind(n,71824)),"@site/docs/vocdoni-api/get-type-of-census.api.mdx",71824],d79e07b2:[()=>n.e(1054).then(n.bind(n,79581)),"@site/docs/sdk/reference/interfaces/ICensus3StrategyToken.md",79581],d7d13fd1:[()=>n.e(2005).then(n.bind(n,56065)),"@site/docs/sdk/reference/interfaces/IBudgetElectionParametersWithCensusWeight.md",56065],d8c91af8:[()=>Promise.all([n.e(532),n.e(2284),n.e(9052),n.e(6057),n.e(6882),n.e(1528)]).then(n.bind(n,76382)),"@site/docs/vocdoni-api/returns-if-the-address-provided-has-a-valid-sik.api.mdx",76382],d8c992a6:[()=>n.e(2175).then(n.bind(n,87512)),"@site/docs/sdk/reference/interfaces/ICensus3CensusListResponse.md",87512],d94ccd67:[()=>n.e(67).then(n.bind(n,11021)),"@site/docs/sdk/reference/classes/ChainAPI.md",11021],d95cd4ff:[()=>n.e(4019).then(n.bind(n,44474)),"@site/docs/sdk/integration-details/voting-types/approval.md",44474],d970501b:[()=>n.e(1357).then(n.bind(n,73846)),"@site/docs/sdk/reference/interfaces/IInvalidElectionParameters.md",73846],d9f2d88a:[()=>Promise.all([n.e(532),n.e(2284),n.e(9052),n.e(6057),n.e(6882),n.e(6142)]).then(n.bind(n,88773)),"@site/docs/vocdoni-api/list-of-the-existing-accounts.api.mdx",88773],dae27e03:[()=>n.e(1738).then(n.bind(n,10146)),"@site/docs/sdk/reference/interfaces/IChainTxReference.md",10146],db5a5176:[()=>n.e(1173).then(n.bind(n,79677)),"@site/docs/sdk/reference/classes/OffchainCensus.md",79677],dcb8c93b:[()=>n.e(8048).then(n.bind(n,38059)),"@site/docs/protocol/census/off-chain-tree.md",38059],ddb99459:[()=>n.e(9379).then(n.bind(n,72221)),"@site/docs/sdk/reference/interfaces/IApprovalElectionParameters.md",72221],dded7333:[()=>n.e(2329).then(n.bind(n,96274)),"@site/docs/sdk/reference/classes/UnpublishedElection.md",96274],de66f94a:[()=>n.e(2691).then(n.bind(n,1306)),"@site/docs/sdk/reference/interfaces/ICensus3StrategyCreateResponse.md",1306],df5c78e6:[()=>Promise.all([n.e(532),n.e(2284),n.e(173)]).then(n.bind(n,96072)),"@site/docs/vocdoni-api/wallet.tag.mdx",96072],dfccb580:[()=>Promise.all([n.e(532),n.e(2284),n.e(9052),n.e(6057),n.e(6882),n.e(1142)]).then(n.bind(n,20597)),"@site/docs/vocdoni-api/vochain-information.api.mdx",20597],dffc9575:[()=>n.e(6873).then(n.bind(n,97971)),"@site/docs/sdk/reference/interfaces/IChainTxListResponse.md",97971],e0557e97:[()=>n.e(9203).then(n.bind(n,57047)),"@site/docs/sdk/index.md",57047],e07651bc:[()=>Promise.all([n.e(532),n.e(2284),n.e(9052),n.e(6057),n.e(6882),n.e(1084)]).then(n.bind(n,77257)),"@site/docs/vocdoni-api/list-transactions.api.mdx",77257],e1594dfa:[()=>n.e(8257).then(n.bind(n,48021)),"@site/docs/sdk/reference/interfaces/IElectionNextIdResponse.md",48021],e20b99b5:[()=>Promise.all([n.e(532),n.e(2284),n.e(9052),n.e(6057),n.e(6882),n.e(6220)]).then(n.bind(n,21848)),"@site/docs/vocdoni-api/get-block-by-height.api.mdx",21848],e24c431f:[()=>n.e(2872).then(n.bind(n,67864)),"@site/docs/sdk/integration-details/census-types/on-chain/complex-census.md",67864],e3461e1c:[()=>n.e(9849).then(n.bind(n,81870)),"@site/docs/sdk/reference/classes/CspCensus.md",81870],e6e6cd34:[()=>Promise.all([n.e(532),n.e(2284),n.e(9052),n.e(6057),n.e(6882),n.e(469)]).then(n.bind(n,9373)),"@site/docs/vocdoni-api/list-organization-elections-by-status.api.mdx",9373],e7df0fec:[()=>n.e(248).then(n.bind(n,74554)),"@site/docs/sdk/reference/interfaces/ICensus3StrategyImportQueueResponse.md",74554],e7ebf400:[()=>n.e(2226).then(n.bind(n,95909)),"@site/docs/ui-components/index.md",95909],e964279c:[()=>Promise.all([n.e(532),n.e(2284),n.e(9052),n.e(6057),n.e(6882),n.e(9875)]).then(n.bind(n,95845)),"@site/docs/vocdoni-api/list-elections.api.mdx",95845],e9c5307c:[()=>Promise.all([n.e(532),n.e(2284),n.e(2470)]).then(n.bind(n,84416)),"@site/docs/vocdoni-api/censuses.tag.mdx",84416],ea27d690:[()=>n.e(4108).then(n.bind(n,52653)),"@site/docs/sdk/reference/interfaces/IChainBlockInfoResponse.md",52653],ea74a8a9:[()=>n.e(2832).then(n.bind(n,21047)),"@site/docs/sdk/reference/interfaces/ICensus3StrategiesOperator.md",21047],ec0516f7:[()=>n.e(2050).then(n.bind(n,14510)),"@site/docs/sdk/reference/classes/Vote.md",14510],ed25d525:[()=>Promise.all([n.e(532),n.e(2284),n.e(9052),n.e(6057),n.e(6882),n.e(5347)]).then(n.bind(n,7615)),"@site/docs/vocdoni-api/get-account.api.mdx",7615],ed5700b4:[()=>Promise.all([n.e(532),n.e(2284),n.e(9052),n.e(6057),n.e(6882),n.e(8493)]).then(n.bind(n,2364)),"@site/docs/vocdoni-api/count-organization-elections.api.mdx",2364],ed887fb8:[()=>Promise.all([n.e(532),n.e(2284),n.e(9052),n.e(6057),n.e(6882),n.e(7165)]).then(n.bind(n,43970)),"@site/docs/vocdoni-api/set-account.api.mdx",43970],ee2798c9:[()=>n.e(4635).then(n.bind(n,98272)),"@site/docs/sdk/reference/enums/VoteSteps.md",98272],efcaecf7:[()=>Promise.all([n.e(532),n.e(2284),n.e(9052),n.e(6057),n.e(6882),n.e(4792)]).then(n.bind(n,19243)),"@site/docs/vocdoni-api/list-organizations.api.mdx",19243],effdce5d:[()=>n.e(6483).then(n.bind(n,16938)),"@site/docs/sdk/reference/classes/InvalidElection.md",16938],f116289e:[()=>n.e(6349).then(n.bind(n,5431)),"@site/docs/sdk/reference/interfaces/IBudgetElectionParametersWithBudget.md",5431],f50a63d5:[()=>Promise.all([n.e(532),n.e(2284),n.e(9052),n.e(6057),n.e(6882),n.e(3987)]).then(n.bind(n,85089)),"@site/docs/vocdoni-api/list-elections-filtered.api.mdx",85089],f601f941:[()=>Promise.all([n.e(532),n.e(2284),n.e(9052),n.e(6057),n.e(6882),n.e(3665)]).then(n.bind(n,59872)),"@site/docs/vocdoni-api/list-all-token-fees-by-reference.api.mdx",59872],f64e1fa2:[()=>Promise.all([n.e(532),n.e(2284),n.e(9052),n.e(6057),n.e(6882),n.e(1317)]).then(n.bind(n,54975)),"@site/docs/vocdoni-api/list-all-token-fees.api.mdx",54975],f77e462c:[()=>n.e(2975).then(n.bind(n,59186)),"@site/docs/sdk/reference/enums/CensusType.md",59186],f8d5f1d3:[()=>Promise.all([n.e(532),n.e(2284),n.e(9052),n.e(6057),n.e(6882),n.e(8756)]).then(n.bind(n,284)),"@site/docs/vocdoni-api/estimate-date-to-block.api.mdx",284],f9b740ff:[()=>n.e(4243).then(n.bind(n,86548)),"@site/docs/sdk/reference/enums/ElectionStatusReady.md",86548],fbd96b78:[()=>n.e(2367).then(n.bind(n,41263)),"@site/docs/protocol/census/off-chain-csp.md",41263],fc158ac8:[()=>Promise.all([n.e(532),n.e(2284),n.e(9052),n.e(6057),n.e(6882),n.e(5642)]).then(n.bind(n,41937)),"@site/docs/vocdoni-api/list-all-token-fees-by-type.api.mdx",41937],fc1a6383:[()=>n.e(5220).then(n.bind(n,92751)),"@site/docs/sdk/reference/interfaces/IElectionType.md",92751],fc441bf1:[()=>n.e(9192).then(n.bind(n,90821)),"@site/docs/sdk/reference/enums/CensusOrigin.md",90821],fcca6750:[()=>Promise.all([n.e(532),n.e(2284),n.e(9052),n.e(6057),n.e(6882),n.e(5913)]).then(n.bind(n,55364)),"@site/docs/vocdoni-api/exports-the-indexer-database.api.mdx",55364],fd8596db:[()=>Promise.all([n.e(532),n.e(2284),n.e(9052),n.e(6057),n.e(6882),n.e(1117)]).then(n.bind(n,19227)),"@site/docs/vocdoni-api/add-account.api.mdx",19227],fe008fee:[()=>n.e(2733).then(n.bind(n,38222)),"@site/docs/sdk/reference/classes/Census3CensusAPI.md",38222],fe83dea5:[()=>Promise.all([n.e(532),n.e(2284),n.e(9052),n.e(6057),n.e(6882),n.e(8253)]).then(n.bind(n,12592)),"@site/docs/vocdoni-api/import-census.api.mdx",12592],fe9260cd:[()=>n.e(1132).then(n.bind(n,50031)),"@site/docs/sdk/reference/changelog.md",50031],ff7cb792:[()=>n.e(2241).then(n.bind(n,61292)),"@site/docs/sdk/reference/classes/WalletAPI.md",61292],ffeeb722:[()=>n.e(992).then(n.bind(n,94100)),"@site/docs/sdk/reference/classes/VoteService.md",94100]};function l(e){let{error:t,retry:n,pastDelay:a}=e;return t?r.createElement("div",{style:{textAlign:"center",color:"#fff",backgroundColor:"#fa383e",borderColor:"#fa383e",borderStyle:"solid",borderRadius:"0.25rem",borderWidth:"1px",boxSizing:"border-box",display:"block",padding:"1rem",flex:"0 0 50%",marginLeft:"25%",marginRight:"25%",marginTop:"5rem",maxWidth:"50%",width:"100%"}},r.createElement("p",null,String(t)),r.createElement("div",null,r.createElement("button",{type:"button",onClick:n},"Retry"))):a?r.createElement("div",{style:{display:"flex",justifyContent:"center",alignItems:"center",height:"100vh"}},r.createElement("svg",{id:"loader",style:{width:128,height:110,position:"absolute",top:"calc(100vh - 64%)"},viewBox:"0 0 45 45",xmlns:"http://www.w3.org/2000/svg",stroke:"#61dafb"},r.createElement("g",{fill:"none",fillRule:"evenodd",transform:"translate(1 1)",strokeWidth:"2"},r.createElement("circle",{cx:"22",cy:"22",r:"6",strokeOpacity:"0"},r.createElement("animate",{attributeName:"r",begin:"1.5s",dur:"3s",values:"6;22",calcMode:"linear",repeatCount:"indefinite"}),r.createElement("animate",{attributeName:"stroke-opacity",begin:"1.5s",dur:"3s",values:"1;0",calcMode:"linear",repeatCount:"indefinite"}),r.createElement("animate",{attributeName:"stroke-width",begin:"1.5s",dur:"3s",values:"2;0",calcMode:"linear",repeatCount:"indefinite"})),r.createElement("circle",{cx:"22",cy:"22",r:"6",strokeOpacity:"0"},r.createElement("animate",{attributeName:"r",begin:"3s",dur:"3s",values:"6;22",calcMode:"linear",repeatCount:"indefinite"}),r.createElement("animate",{attributeName:"stroke-opacity",begin:"3s",dur:"3s",values:"1;0",calcMode:"linear",repeatCount:"indefinite"}),r.createElement("animate",{attributeName:"stroke-width",begin:"3s",dur:"3s",values:"2;0",calcMode:"linear",repeatCount:"indefinite"})),r.createElement("circle",{cx:"22",cy:"22",r:"8"},r.createElement("animate",{attributeName:"r",begin:"0s",dur:"1.5s",values:"6;1;2;3;4;5;6",calcMode:"linear",repeatCount:"indefinite"}))))):null}var d=n(99670),u=n(30226);function f(e,t){if("*"===e)return o()({loading:l,loader:()=>n.e(4972).then(n.bind(n,4972)),modules:["@theme/NotFound"],webpack:()=>[4972],render(e,t){const n=e.default;return r.createElement(u.z,{value:{plugin:{name:"native",id:"default"}}},r.createElement(n,t))}});const i=s[`${e}-${t}`],f={},p=[],m=[],h=(0,d.Z)(i);return Object.entries(h).forEach((e=>{let[t,n]=e;const r=c[n];r&&(f[t]=r[0],p.push(r[1]),m.push(r[2]))})),o().Map({loading:l,loader:f,modules:p,webpack:()=>m,render(t,n){const o=JSON.parse(JSON.stringify(i));Object.entries(t).forEach((t=>{let[n,r]=t;const a=r.default;if(!a)throw new Error(`The page component at ${e} doesn't have a default export. This makes it impossible to render anything. Consider default-exporting a React component.`);"object"!=typeof a&&"function"!=typeof a||Object.keys(r).filter((e=>"default"!==e)).forEach((e=>{a[e]=r[e]}));let i=o;const s=n.split(".");s.slice(0,-1).forEach((e=>{i=i[e]})),i[s[s.length-1]]=a}));const s=o.__comp;delete o.__comp;const c=o.__context;return delete o.__context,r.createElement(u.z,{value:c},r.createElement(s,(0,a.Z)({},o,n)))}})}const p=[{path:"/search",component:f("/search","171"),exact:!0},{path:"/",component:f("/","70b"),exact:!0},{path:"/",component:f("/","dd7"),routes:[{path:"/intro",component:f("/intro","9e0"),exact:!0,sidebar:"defaultSidebar"},{path:"/protocol",component:f("/protocol","4f3"),exact:!0,sidebar:"defaultSidebar"},{path:"/protocol/anonymity",component:f("/protocol/anonymity","286"),exact:!0,sidebar:"defaultSidebar"},{path:"/protocol/anonymity/blind-signatures",component:f("/protocol/anonymity/blind-signatures","6c6"),exact:!0,sidebar:"defaultSidebar"},{path:"/protocol/anonymity/on-chain",component:f("/protocol/anonymity/on-chain","746"),exact:!0,sidebar:"defaultSidebar"},{path:"/protocol/anonymity/zk-census-proof",component:f("/protocol/anonymity/zk-census-proof","0dd"),exact:!0,sidebar:"defaultSidebar"},{path:"/protocol/ballot-protocol",component:f("/protocol/ballot-protocol","9e7"),exact:!0,sidebar:"defaultSidebar"},{path:"/protocol/census",component:f("/protocol/census","f2b"),exact:!0,sidebar:"defaultSidebar"},{path:"/protocol/census/off-chain-csp",component:f("/protocol/census/off-chain-csp","cab"),exact:!0,sidebar:"defaultSidebar"},{path:"/protocol/census/off-chain-tree",component:f("/protocol/census/off-chain-tree","add"),exact:!0,sidebar:"defaultSidebar"},{path:"/protocol/census/on-chain",component:f("/protocol/census/on-chain","06d"),exact:!0,sidebar:"defaultSidebar"},{path:"/protocol/data-schemes",component:f("/protocol/data-schemes","684"),exact:!0,sidebar:"defaultSidebar"},{path:"/protocol/data-schemes/election",component:f("/protocol/data-schemes/election","8b1"),exact:!0,sidebar:"defaultSidebar"},{path:"/protocol/data-schemes/organization",component:f("/protocol/data-schemes/organization","38b"),exact:!0,sidebar:"defaultSidebar"},{path:"/protocol/data-schemes/vote",component:f("/protocol/data-schemes/vote","252"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk",component:f("/sdk","857"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/integration-details",component:f("/sdk/integration-details","e26"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/integration-details/census-types",component:f("/sdk/integration-details/census-types","bf5"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/integration-details/census-types/off-chain-csp",component:f("/sdk/integration-details/census-types/off-chain-csp","3b8"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/integration-details/census-types/off-chain-tree",component:f("/sdk/integration-details/census-types/off-chain-tree","a5e"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/integration-details/census-types/on-chain",component:f("/sdk/integration-details/census-types/on-chain","5e4"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/integration-details/census-types/on-chain/complex-census",component:f("/sdk/integration-details/census-types/on-chain/complex-census","dee"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/integration-details/vocdoni-tokens",component:f("/sdk/integration-details/vocdoni-tokens","806"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/integration-details/voting-types",component:f("/sdk/integration-details/voting-types","ffb"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/integration-details/voting-types/approval",component:f("/sdk/integration-details/voting-types/approval","7cd"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/integration-details/voting-types/quadratic",component:f("/sdk/integration-details/voting-types/quadratic","6e8"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/integration-details/voting-types/ranked",component:f("/sdk/integration-details/voting-types/ranked","639"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/integration-details/voting-types/single-choice",component:f("/sdk/integration-details/voting-types/single-choice","60e"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/integration-details/voting-types/weighted",component:f("/sdk/integration-details/voting-types/weighted","3e1"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/reference/changelog",component:f("/sdk/reference/changelog","092"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/reference/classes/Account",component:f("/sdk/reference/classes/Account","4b7"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/reference/classes/AccountAPI",component:f("/sdk/reference/classes/AccountAPI","c96"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/reference/classes/AccountService",component:f("/sdk/reference/classes/AccountService","3d2"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/reference/classes/AnonymousService",component:f("/sdk/reference/classes/AnonymousService","459"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/reference/classes/AnonymousVote",component:f("/sdk/reference/classes/AnonymousVote","873"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/reference/classes/ApprovalElection",component:f("/sdk/reference/classes/ApprovalElection","f04"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/reference/classes/ArchivedElection",component:f("/sdk/reference/classes/ArchivedElection","00d"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/reference/classes/BudgetElection",component:f("/sdk/reference/classes/BudgetElection","0b6"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/reference/classes/Census",component:f("/sdk/reference/classes/Census","a71"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/reference/classes/Census3CensusAPI",component:f("/sdk/reference/classes/Census3CensusAPI","c3a"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/reference/classes/Census3ServiceAPI",component:f("/sdk/reference/classes/Census3ServiceAPI","7b6"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/reference/classes/Census3StrategyAPI",component:f("/sdk/reference/classes/Census3StrategyAPI","056"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/reference/classes/Census3TokenAPI",component:f("/sdk/reference/classes/Census3TokenAPI","a0e"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/reference/classes/CensusAPI",component:f("/sdk/reference/classes/CensusAPI","1e8"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/reference/classes/CensusService",component:f("/sdk/reference/classes/CensusService","5f2"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/reference/classes/ChainAPI",component:f("/sdk/reference/classes/ChainAPI","08b"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/reference/classes/ChainService",component:f("/sdk/reference/classes/ChainService","424"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/reference/classes/CspCensus",component:f("/sdk/reference/classes/CspCensus","66e"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/reference/classes/CspService",component:f("/sdk/reference/classes/CspService","3dc"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/reference/classes/CspVote",component:f("/sdk/reference/classes/CspVote","c3c"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/reference/classes/Election",component:f("/sdk/reference/classes/Election","c48"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/reference/classes/ElectionAPI",component:f("/sdk/reference/classes/ElectionAPI","441"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/reference/classes/ElectionService",component:f("/sdk/reference/classes/ElectionService","533"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/reference/classes/FaucetAPI",component:f("/sdk/reference/classes/FaucetAPI","420"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/reference/classes/FaucetService",component:f("/sdk/reference/classes/FaucetService","32f"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/reference/classes/FileAPI",component:f("/sdk/reference/classes/FileAPI","f1e"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/reference/classes/FileService",component:f("/sdk/reference/classes/FileService","93c"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/reference/classes/InvalidElection",component:f("/sdk/reference/classes/InvalidElection","9cf"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/reference/classes/MultiChoiceElection",component:f("/sdk/reference/classes/MultiChoiceElection","0b1"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/reference/classes/OffchainCensus",component:f("/sdk/reference/classes/OffchainCensus","d39"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/reference/classes/PlainCensus",component:f("/sdk/reference/classes/PlainCensus","858"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/reference/classes/PublishedCensus",component:f("/sdk/reference/classes/PublishedCensus","902"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/reference/classes/PublishedElection",component:f("/sdk/reference/classes/PublishedElection","f5c"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/reference/classes/Service",component:f("/sdk/reference/classes/Service","6cc"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/reference/classes/TokenCensus",component:f("/sdk/reference/classes/TokenCensus","27f"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/reference/classes/UnpublishedElection",component:f("/sdk/reference/classes/UnpublishedElection","664"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/reference/classes/VocdoniCensus3Client",component:f("/sdk/reference/classes/VocdoniCensus3Client","be3"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/reference/classes/VocdoniSDKClient",component:f("/sdk/reference/classes/VocdoniSDKClient","5c3"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/reference/classes/Vote",component:f("/sdk/reference/classes/Vote","9e7"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/reference/classes/VoteAPI",component:f("/sdk/reference/classes/VoteAPI","649"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/reference/classes/VoteService",component:f("/sdk/reference/classes/VoteService","dea"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/reference/classes/WalletAPI",component:f("/sdk/reference/classes/WalletAPI","448"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/reference/classes/WeightedCensus",component:f("/sdk/reference/classes/WeightedCensus","746"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/reference/enums/CensusOrigin",component:f("/sdk/reference/enums/CensusOrigin","58f"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/reference/enums/CensusType",component:f("/sdk/reference/enums/CensusType","e40"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/reference/enums/CensusTypeEnum",component:f("/sdk/reference/enums/CensusTypeEnum","1e7"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/reference/enums/CspProofType",component:f("/sdk/reference/enums/CspProofType","163"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/reference/enums/ElectionCreationSteps",component:f("/sdk/reference/enums/ElectionCreationSteps","b5f"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/reference/enums/ElectionResultsTypeNames",component:f("/sdk/reference/enums/ElectionResultsTypeNames","852"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/reference/enums/ElectionStatus",component:f("/sdk/reference/enums/ElectionStatus","db7"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/reference/enums/ElectionStatusReady",component:f("/sdk/reference/enums/ElectionStatusReady","d13"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/reference/enums/EnvOptions",component:f("/sdk/reference/enums/EnvOptions","81f"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/reference/enums/TransactionType",component:f("/sdk/reference/enums/TransactionType","bf2"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/reference/enums/TxType",component:f("/sdk/reference/enums/TxType","c44"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/reference/enums/VoteSteps",component:f("/sdk/reference/enums/VoteSteps","36c"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/reference/interfaces/AccountMetadata",component:f("/sdk/reference/interfaces/AccountMetadata","eca"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/reference/interfaces/AdminTx",component:f("/sdk/reference/interfaces/AdminTx","fc2"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/reference/interfaces/CircuitInputs",component:f("/sdk/reference/interfaces/CircuitInputs","823"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/reference/interfaces/CollectFaucetTx",component:f("/sdk/reference/interfaces/CollectFaucetTx","7d0"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/reference/interfaces/ElectionMetadata",component:f("/sdk/reference/interfaces/ElectionMetadata","5c6"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/reference/interfaces/FetchElectionsParameters",component:f("/sdk/reference/interfaces/FetchElectionsParameters","30b"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/reference/interfaces/IAccount",component:f("/sdk/reference/interfaces/IAccount","a20"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/reference/interfaces/IAccountsCountResponse",component:f("/sdk/reference/interfaces/IAccountsCountResponse","d77"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/reference/interfaces/IAccountsListResponse",component:f("/sdk/reference/interfaces/IAccountsListResponse","2ef"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/reference/interfaces/IAccountTransfersCountResponse",component:f("/sdk/reference/interfaces/IAccountTransfersCountResponse","236"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/reference/interfaces/IApprovalElectionParameters",component:f("/sdk/reference/interfaces/IApprovalElectionParameters","73c"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/reference/interfaces/IBlockTransactionsResponse",component:f("/sdk/reference/interfaces/IBlockTransactionsResponse","c5b"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/reference/interfaces/IBudgetElectionParametersInfo",component:f("/sdk/reference/interfaces/IBudgetElectionParametersInfo","6d4"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/reference/interfaces/IBudgetElectionParametersWithBudget",component:f("/sdk/reference/interfaces/IBudgetElectionParametersWithBudget","c2f"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/reference/interfaces/IBudgetElectionParametersWithCensusWeight",component:f("/sdk/reference/interfaces/IBudgetElectionParametersWithCensusWeight","1a7"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/reference/interfaces/ICensus",component:f("/sdk/reference/interfaces/ICensus","565"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/reference/interfaces/ICensus3CensusListResponse",component:f("/sdk/reference/interfaces/ICensus3CensusListResponse","e3e"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/reference/interfaces/ICensus3CensusQueueResponse",component:f("/sdk/reference/interfaces/ICensus3CensusQueueResponse","858"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/reference/interfaces/ICensus3CensusResponse",component:f("/sdk/reference/interfaces/ICensus3CensusResponse","4be"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/reference/interfaces/ICensus3ServiceInfoResponse",component:f("/sdk/reference/interfaces/ICensus3ServiceInfoResponse","b0b"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/reference/interfaces/ICensus3StrategiesListResponse",component:f("/sdk/reference/interfaces/ICensus3StrategiesListResponse","f71"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/reference/interfaces/ICensus3StrategiesListResponsePaginated",component:f("/sdk/reference/interfaces/ICensus3StrategiesListResponsePaginated","ba4"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/reference/interfaces/ICensus3StrategiesOperator",component:f("/sdk/reference/interfaces/ICensus3StrategiesOperator","661"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/reference/interfaces/ICensus3StrategiesOperatorsResponse",component:f("/sdk/reference/interfaces/ICensus3StrategiesOperatorsResponse","a61"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/reference/interfaces/ICensus3StrategyCreateResponse",component:f("/sdk/reference/interfaces/ICensus3StrategyCreateResponse","0ec"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/reference/interfaces/ICensus3StrategyEstimationQueueResponse",component:f("/sdk/reference/interfaces/ICensus3StrategyEstimationQueueResponse","e02"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/reference/interfaces/ICensus3StrategyHoldersResponse",component:f("/sdk/reference/interfaces/ICensus3StrategyHoldersResponse","445"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/reference/interfaces/ICensus3StrategyHoldersResponsePaginated",component:f("/sdk/reference/interfaces/ICensus3StrategyHoldersResponsePaginated","240"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/reference/interfaces/ICensus3StrategyImportQueueResponse",component:f("/sdk/reference/interfaces/ICensus3StrategyImportQueueResponse","197"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/reference/interfaces/ICensus3StrategyToken",component:f("/sdk/reference/interfaces/ICensus3StrategyToken","844"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/reference/interfaces/ICensus3SupportedChain",component:f("/sdk/reference/interfaces/ICensus3SupportedChain","cbd"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/reference/interfaces/ICensus3TokenHolderResponse",component:f("/sdk/reference/interfaces/ICensus3TokenHolderResponse","c9f"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/reference/interfaces/ICensus3TokenListResponse",component:f("/sdk/reference/interfaces/ICensus3TokenListResponse","5af"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/reference/interfaces/ICensus3TokenListResponsePaginated",component:f("/sdk/reference/interfaces/ICensus3TokenListResponsePaginated","b69"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/reference/interfaces/ICensus3TokenTypesResponse",component:f("/sdk/reference/interfaces/ICensus3TokenTypesResponse","13c"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/reference/interfaces/ICensus3ValidatePredicateChild",component:f("/sdk/reference/interfaces/ICensus3ValidatePredicateChild","ed2"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/reference/interfaces/ICensus3ValidatePredicateResponse",component:f("/sdk/reference/interfaces/ICensus3ValidatePredicateResponse","d24"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/reference/interfaces/ICensus3ValidatePredicateToken",component:f("/sdk/reference/interfaces/ICensus3ValidatePredicateToken","4cd"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/reference/interfaces/ICensusExportResponse",component:f("/sdk/reference/interfaces/ICensusExportResponse","a9a"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/reference/interfaces/ICensusImportResponse",component:f("/sdk/reference/interfaces/ICensusImportResponse","77c"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/reference/interfaces/ICensusParticipant",component:f("/sdk/reference/interfaces/ICensusParticipant","9b0"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/reference/interfaces/ICensusProofResponse",component:f("/sdk/reference/interfaces/ICensusProofResponse","dfb"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/reference/interfaces/ICensusPublishResponse",component:f("/sdk/reference/interfaces/ICensusPublishResponse","3a7"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/reference/interfaces/IChainBlockInfoResponse",component:f("/sdk/reference/interfaces/IChainBlockInfoResponse","bfc"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/reference/interfaces/IChainGetCircuitResponse",component:f("/sdk/reference/interfaces/IChainGetCircuitResponse","dfd"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/reference/interfaces/IChainGetCostsResponse",component:f("/sdk/reference/interfaces/IChainGetCostsResponse","9b1"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/reference/interfaces/IChainGetInfoResponse",component:f("/sdk/reference/interfaces/IChainGetInfoResponse","1cd"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/reference/interfaces/IChainOrganizationCountResponse",component:f("/sdk/reference/interfaces/IChainOrganizationCountResponse","53f"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/reference/interfaces/IChainOrganizationListResponse",component:f("/sdk/reference/interfaces/IChainOrganizationListResponse","e0c"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/reference/interfaces/IChainOrganizationResponse",component:f("/sdk/reference/interfaces/IChainOrganizationResponse","663"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/reference/interfaces/IChainSubmitTxResponse",component:f("/sdk/reference/interfaces/IChainSubmitTxResponse","cfa"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/reference/interfaces/IChainTxCountResponse",component:f("/sdk/reference/interfaces/IChainTxCountResponse","526"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/reference/interfaces/IChainTxListResponse",component:f("/sdk/reference/interfaces/IChainTxListResponse","c57"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/reference/interfaces/IChainTxReference",component:f("/sdk/reference/interfaces/IChainTxReference","804"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/reference/interfaces/IChainValidator",component:f("/sdk/reference/interfaces/IChainValidator","932"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/reference/interfaces/IChainValidatorsListResponse",component:f("/sdk/reference/interfaces/IChainValidatorsListResponse","bdb"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/reference/interfaces/IChoice",component:f("/sdk/reference/interfaces/IChoice","21d"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/reference/interfaces/IElectionCreateResponse",component:f("/sdk/reference/interfaces/IElectionCreateResponse","f95"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/reference/interfaces/IElectionInfoResponse",component:f("/sdk/reference/interfaces/IElectionInfoResponse","bcf"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/reference/interfaces/IElectionKeysResponse",component:f("/sdk/reference/interfaces/IElectionKeysResponse","db8"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/reference/interfaces/IElectionListFilter",component:f("/sdk/reference/interfaces/IElectionListFilter","f8b"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/reference/interfaces/IElectionListResponse",component:f("/sdk/reference/interfaces/IElectionListResponse","acd"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/reference/interfaces/IElectionMode",component:f("/sdk/reference/interfaces/IElectionMode","fbb"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/reference/interfaces/IElectionNextIdResponse",component:f("/sdk/reference/interfaces/IElectionNextIdResponse","107"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/reference/interfaces/IElectionParameters",component:f("/sdk/reference/interfaces/IElectionParameters","077"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/reference/interfaces/IElectionSummary",component:f("/sdk/reference/interfaces/IElectionSummary","cc4"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/reference/interfaces/IElectionType",component:f("/sdk/reference/interfaces/IElectionType","77e"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/reference/interfaces/IElectionVote",component:f("/sdk/reference/interfaces/IElectionVote","0c5"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/reference/interfaces/IElectionVoteListResponse",component:f("/sdk/reference/interfaces/IElectionVoteListResponse","300"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/reference/interfaces/IEncryptionKey",component:f("/sdk/reference/interfaces/IEncryptionKey","4e6"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/reference/interfaces/IInvalidElectionParameters",component:f("/sdk/reference/interfaces/IInvalidElectionParameters","861"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/reference/interfaces/IMultiChoiceElectionParameters",component:f("/sdk/reference/interfaces/IMultiChoiceElectionParameters","b37"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/reference/interfaces/IPublishedElectionParameters",component:f("/sdk/reference/interfaces/IPublishedElectionParameters","a41"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/reference/interfaces/IQuestion",component:f("/sdk/reference/interfaces/IQuestion","8bd"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/reference/interfaces/ITallyMode",component:f("/sdk/reference/interfaces/ITallyMode","2fd"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/reference/interfaces/IVoteInfoResponse",component:f("/sdk/reference/interfaces/IVoteInfoResponse","d2d"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/reference/interfaces/IVoteMode",component:f("/sdk/reference/interfaces/IVoteMode","f25"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/reference/interfaces/IVoteSubmitResponse",component:f("/sdk/reference/interfaces/IVoteSubmitResponse","db7"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/reference/interfaces/IVoteType",component:f("/sdk/reference/interfaces/IVoteType","7bb"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/reference/interfaces/MintTokensTx",component:f("/sdk/reference/interfaces/MintTokensTx","2f2"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/reference/interfaces/NewProcessTx",component:f("/sdk/reference/interfaces/NewProcessTx","4ae"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/reference/interfaces/Process",component:f("/sdk/reference/interfaces/Process","0e8"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/reference/interfaces/Proof",component:f("/sdk/reference/interfaces/Proof","b2c"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/reference/interfaces/RegisterKeyTx",component:f("/sdk/reference/interfaces/RegisterKeyTx","ad2"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/reference/interfaces/SendTokensTx",component:f("/sdk/reference/interfaces/SendTokensTx","5ac"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/reference/interfaces/ServiceProperties",component:f("/sdk/reference/interfaces/ServiceProperties","05a"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/reference/interfaces/SetAccountTx",component:f("/sdk/reference/interfaces/SetAccountTx","8bd"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/reference/interfaces/SetProcessTx",component:f("/sdk/reference/interfaces/SetProcessTx","2cc"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/reference/interfaces/SetTransactionCostsTx",component:f("/sdk/reference/interfaces/SetTransactionCostsTx","3e1"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/reference/interfaces/Tx",component:f("/sdk/reference/interfaces/Tx","bdf"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/reference/interfaces/VoteEnvelope",component:f("/sdk/reference/interfaces/VoteEnvelope","a38"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/reference/modules",component:f("/sdk/reference/modules","89f"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/tutorial",component:f("/sdk/tutorial","0b4"),exact:!0,sidebar:"defaultSidebar"},{path:"/ui-components",component:f("/ui-components","0d2"),exact:!0,sidebar:"defaultSidebar"},{path:"/ui-components/Election",component:f("/ui-components/Election","34a"),exact:!0,sidebar:"defaultSidebar"},{path:"/ui-components/Organization",component:f("/ui-components/Organization","cc6"),exact:!0,sidebar:"defaultSidebar"},{path:"/vocdoni-api/accounts",component:f("/vocdoni-api/accounts","2d1"),exact:!0,sidebar:"defaultSidebar"},{path:"/vocdoni-api/add-account",component:f("/vocdoni-api/add-account","3a5"),exact:!0,sidebar:"defaultSidebar"},{path:"/vocdoni-api/add-participants-to-census",component:f("/vocdoni-api/add-participants-to-census","9e3"),exact:!0,sidebar:"defaultSidebar"},{path:"/vocdoni-api/census-merkle-root",component:f("/vocdoni-api/census-merkle-root","863"),exact:!0,sidebar:"defaultSidebar"},{path:"/vocdoni-api/census-size",component:f("/vocdoni-api/census-size","2da"),exact:!0,sidebar:"defaultSidebar"},{path:"/vocdoni-api/census-total-weight",component:f("/vocdoni-api/census-total-weight","0da"),exact:!0,sidebar:"defaultSidebar"},{path:"/vocdoni-api/censuses",component:f("/vocdoni-api/censuses","23b"),exact:!0,sidebar:"defaultSidebar"},{path:"/vocdoni-api/chain",component:f("/vocdoni-api/chain","179"),exact:!0,sidebar:"defaultSidebar"},{path:"/vocdoni-api/circuit-info",component:f("/vocdoni-api/circuit-info","b04"),exact:!0,sidebar:"defaultSidebar"},{path:"/vocdoni-api/compute-election-price",component:f("/vocdoni-api/compute-election-price","2b3"),exact:!0,sidebar:"defaultSidebar"},{path:"/vocdoni-api/compute-ipfs-ci-dv-1-of-file",component:f("/vocdoni-api/compute-ipfs-ci-dv-1-of-file","77c"),exact:!0,sidebar:"defaultSidebar"},{path:"/vocdoni-api/count-election-votes",component:f("/vocdoni-api/count-election-votes","47e"),exact:!0,sidebar:"defaultSidebar"},{path:"/vocdoni-api/count-organization-elections",component:f("/vocdoni-api/count-organization-elections","e48"),exact:!0,sidebar:"defaultSidebar"},{path:"/vocdoni-api/count-organizations",component:f("/vocdoni-api/count-organizations","e64"),exact:!0,sidebar:"defaultSidebar"},{path:"/vocdoni-api/create-a-new-census",component:f("/vocdoni-api/create-a-new-census","3dd"),exact:!0,sidebar:"defaultSidebar"},{path:"/vocdoni-api/create-election",component:f("/vocdoni-api/create-election","af1"),exact:!0,sidebar:"defaultSidebar"},{path:"/vocdoni-api/create-election-for-wallet",component:f("/vocdoni-api/create-election-for-wallet","350"),exact:!0,sidebar:"defaultSidebar"},{path:"/vocdoni-api/delete-census",component:f("/vocdoni-api/delete-census","6fa"),exact:!0,sidebar:"defaultSidebar"},{path:"/vocdoni-api/election-information",component:f("/vocdoni-api/election-information","45d"),exact:!0,sidebar:"defaultSidebar"},{path:"/vocdoni-api/election-results",component:f("/vocdoni-api/election-results","fef"),exact:!0,sidebar:"defaultSidebar"},{path:"/vocdoni-api/elections",component:f("/vocdoni-api/elections","35c"),exact:!0,sidebar:"defaultSidebar"},{path:"/vocdoni-api/estimate-block-to-date",component:f("/vocdoni-api/estimate-block-to-date","de0"),exact:!0,sidebar:"defaultSidebar"},{path:"/vocdoni-api/estimate-date-to-block",component:f("/vocdoni-api/estimate-date-to-block","a33"),exact:!0,sidebar:"defaultSidebar"},{path:"/vocdoni-api/export-census",component:f("/vocdoni-api/export-census","5de"),exact:!0,sidebar:"defaultSidebar"},{path:"/vocdoni-api/export-census-database",component:f("/vocdoni-api/export-census-database","755"),exact:!0,sidebar:"defaultSidebar"},{path:"/vocdoni-api/exports-the-indexer-database",component:f("/vocdoni-api/exports-the-indexer-database","b29"),exact:!0,sidebar:"defaultSidebar"},{path:"/vocdoni-api/get-account",component:f("/vocdoni-api/get-account","358"),exact:!0,sidebar:"defaultSidebar"},{path:"/vocdoni-api/get-block-by-hash",component:f("/vocdoni-api/get-block-by-hash","e3b"),exact:!0,sidebar:"defaultSidebar"},{path:"/vocdoni-api/get-block-by-height",component:f("/vocdoni-api/get-block-by-height","196"),exact:!0,sidebar:"defaultSidebar"},{path:"/vocdoni-api/get-next-election-id",component:f("/vocdoni-api/get-next-election-id","486"),exact:!0,sidebar:"defaultSidebar"},{path:"/vocdoni-api/get-type-of-census",component:f("/vocdoni-api/get-type-of-census","e28"),exact:!0,sidebar:"defaultSidebar"},{path:"/vocdoni-api/get-vote",component:f("/vocdoni-api/get-vote","f8b"),exact:!0,sidebar:"defaultSidebar"},{path:"/vocdoni-api/import-census",component:f("/vocdoni-api/import-census","f56"),exact:!0,sidebar:"defaultSidebar"},{path:"/vocdoni-api/import-census-database",component:f("/vocdoni-api/import-census-database","e4d"),exact:!0,sidebar:"defaultSidebar"},{path:"/vocdoni-api/list-account-received-and-sent-token-transfers",component:f("/vocdoni-api/list-account-received-and-sent-token-transfers","ec6"),exact:!0,sidebar:"defaultSidebar"},{path:"/vocdoni-api/list-account-token-fees",component:f("/vocdoni-api/list-account-token-fees","218"),exact:!0,sidebar:"defaultSidebar"},{path:"/vocdoni-api/list-all-census-references",component:f("/vocdoni-api/list-all-census-references","f26"),exact:!0,sidebar:"defaultSidebar"},{path:"/vocdoni-api/list-all-token-fees",component:f("/vocdoni-api/list-all-token-fees","c3b"),exact:!0,sidebar:"defaultSidebar"},{path:"/vocdoni-api/list-all-token-fees-by-reference",component:f("/vocdoni-api/list-all-token-fees-by-reference","c03"),exact:!0,sidebar:"defaultSidebar"},{path:"/vocdoni-api/list-all-token-fees-by-type",component:f("/vocdoni-api/list-all-token-fees-by-type","e34"),exact:!0,sidebar:"defaultSidebar"},{path:"/vocdoni-api/list-election-votes",component:f("/vocdoni-api/list-election-votes","7df"),exact:!0,sidebar:"defaultSidebar"},{path:"/vocdoni-api/list-elections",component:f("/vocdoni-api/list-elections","a7c"),exact:!0,sidebar:"defaultSidebar"},{path:"/vocdoni-api/list-elections-filtered",component:f("/vocdoni-api/list-elections-filtered","70c"),exact:!0,sidebar:"defaultSidebar"},{path:"/vocdoni-api/list-encryption-keys",component:f("/vocdoni-api/list-encryption-keys","b8d"),exact:!0,sidebar:"defaultSidebar"},{path:"/vocdoni-api/list-of-the-existing-accounts",component:f("/vocdoni-api/list-of-the-existing-accounts","a3d"),exact:!0,sidebar:"defaultSidebar"},{path:"/vocdoni-api/list-of-valid-sik-roots",component:f("/vocdoni-api/list-of-valid-sik-roots","c85"),exact:!0,sidebar:"defaultSidebar"},{path:"/vocdoni-api/list-organization-elections",component:f("/vocdoni-api/list-organization-elections","ce8"),exact:!0,sidebar:"defaultSidebar"},{path:"/vocdoni-api/list-organization-elections-by-status",component:f("/vocdoni-api/list-organization-elections-by-status","6f8"),exact:!0,sidebar:"defaultSidebar"},{path:"/vocdoni-api/list-organizations",component:f("/vocdoni-api/list-organizations","8b0"),exact:!0,sidebar:"defaultSidebar"},{path:"/vocdoni-api/list-organizations-filtered",component:f("/vocdoni-api/list-organizations-filtered","554"),exact:!0,sidebar:"defaultSidebar"},{path:"/vocdoni-api/list-transactions",component:f("/vocdoni-api/list-transactions","541"),exact:!0,sidebar:"defaultSidebar"},{path:"/vocdoni-api/list-validators",component:f("/vocdoni-api/list-validators","66d"),exact:!0,sidebar:"defaultSidebar"},{path:"/vocdoni-api/price-factors-information",component:f("/vocdoni-api/price-factors-information","093"),exact:!0,sidebar:"defaultSidebar"},{path:"/vocdoni-api/prove-key-to-census",component:f("/vocdoni-api/prove-key-to-census","af9"),exact:!0,sidebar:"defaultSidebar"},{path:"/vocdoni-api/publish-census",component:f("/vocdoni-api/publish-census","a10"),exact:!0,sidebar:"defaultSidebar"},{path:"/vocdoni-api/publish-census-at-root",component:f("/vocdoni-api/publish-census-at-root","4fb"),exact:!0,sidebar:"defaultSidebar"},{path:"/vocdoni-api/returns-if-the-address-provided-has-a-valid-sik",component:f("/vocdoni-api/returns-if-the-address-provided-has-a-valid-sik","1e5"),exact:!0,sidebar:"defaultSidebar"},{path:"/vocdoni-api/set-account",component:f("/vocdoni-api/set-account","df9"),exact:!0,sidebar:"defaultSidebar"},{path:"/vocdoni-api/set-wallet-account",component:f("/vocdoni-api/set-wallet-account","97c"),exact:!0,sidebar:"defaultSidebar"},{path:"/vocdoni-api/sik",component:f("/vocdoni-api/sik","f12"),exact:!0,sidebar:"defaultSidebar"},{path:"/vocdoni-api/submit-a-vote",component:f("/vocdoni-api/submit-a-vote","8a0"),exact:!0,sidebar:"defaultSidebar"},{path:"/vocdoni-api/submit-transaction",component:f("/vocdoni-api/submit-transaction","6cd"),exact:!0,sidebar:"defaultSidebar"},{path:"/vocdoni-api/total-number-of-accounts",component:f("/vocdoni-api/total-number-of-accounts","cfa"),exact:!0,sidebar:"defaultSidebar"},{path:"/vocdoni-api/total-number-of-sent-and-received-transactions",component:f("/vocdoni-api/total-number-of-sent-and-received-transactions","118"),exact:!0,sidebar:"defaultSidebar"},{path:"/vocdoni-api/transaction-by-block-height-and-index",component:f("/vocdoni-api/transaction-by-block-height-and-index","b15"),exact:!0,sidebar:"defaultSidebar"},{path:"/vocdoni-api/transaction-by-hash",component:f("/vocdoni-api/transaction-by-hash","0d9"),exact:!0,sidebar:"defaultSidebar"},{path:"/vocdoni-api/transaction-by-index",component:f("/vocdoni-api/transaction-by-index","ddf"),exact:!0,sidebar:"defaultSidebar"},{path:"/vocdoni-api/transaction-costs",component:f("/vocdoni-api/transaction-costs","99d"),exact:!0,sidebar:"defaultSidebar"},{path:"/vocdoni-api/transactions-count",component:f("/vocdoni-api/transactions-count","2b2"),exact:!0,sidebar:"defaultSidebar"},{path:"/vocdoni-api/transactions-in-a-block",component:f("/vocdoni-api/transactions-in-a-block","9d9"),exact:!0,sidebar:"defaultSidebar"},{path:"/vocdoni-api/transfer-tokens",component:f("/vocdoni-api/transfer-tokens","ebf"),exact:!0,sidebar:"defaultSidebar"},{path:"/vocdoni-api/verify-merkle-proof",component:f("/vocdoni-api/verify-merkle-proof","642"),exact:!0,sidebar:"defaultSidebar"},{path:"/vocdoni-api/verify-vote",component:f("/vocdoni-api/verify-vote","d94"),exact:!0,sidebar:"defaultSidebar"},{path:"/vocdoni-api/vocdoni-api",component:f("/vocdoni-api/vocdoni-api","2b0"),exact:!0,sidebar:"defaultSidebar"},{path:"/vocdoni-api/vochain-information",component:f("/vocdoni-api/vochain-information","9f5"),exact:!0,sidebar:"defaultSidebar"},{path:"/vocdoni-api/votes",component:f("/vocdoni-api/votes","541"),exact:!0,sidebar:"defaultSidebar"},{path:"/vocdoni-api/wallet",component:f("/vocdoni-api/wallet","c13"),exact:!0,sidebar:"defaultSidebar"}]},{path:"*",component:f("*")}]},98934:(e,t,n)=>{"use strict";n.d(t,{_:()=>a,t:()=>i});var r=n(67294);const a=r.createContext(!1);function i(e){let{children:t}=e;const[n,i]=(0,r.useState)(!1);return(0,r.useEffect)((()=>{i(!0)}),[]),r.createElement(a.Provider,{value:n},t)}},49383:(e,t,n)=>{"use strict";var r=n(67294),a=n(73935),i=n(73727),o=n(70405),s=n(10412);const c=[n(32497),n(3310),n(18320),n(52295),n(93524),n(79362),n(87406),n(86199),n(56748)];var l=n(723),d=n(16550),u=n(18790);function f(e){let{children:t}=e;return r.createElement(r.Fragment,null,t)}var p=n(87462),m=n(35742),h=n(52263),b=n(44996),g=n(86668),v=n(10833),y=n(94711),k=n(19727),S=n(43320),w=n(90197);function E(){const{i18n:{defaultLocale:e,localeConfigs:t}}=(0,h.Z)(),n=(0,y.l)();return r.createElement(m.Z,null,Object.entries(t).map((e=>{let[t,{htmlLang:a}]=e;return r.createElement("link",{key:t,rel:"alternate",href:n.createUrl({locale:t,fullyQualified:!0}),hrefLang:a})})),r.createElement("link",{rel:"alternate",href:n.createUrl({locale:e,fullyQualified:!0}),hrefLang:"x-default"}))}function x(e){let{permalink:t}=e;const{siteConfig:{url:n}}=(0,h.Z)(),a=function(){const{siteConfig:{url:e}}=(0,h.Z)(),{pathname:t}=(0,d.TH)();return e+(0,b.Z)(t)}(),i=t?`${n}${t}`:a;return r.createElement(m.Z,null,r.createElement("meta",{property:"og:url",content:i}),r.createElement("link",{rel:"canonical",href:i}))}function C(){const{i18n:{currentLocale:e}}=(0,h.Z)(),{metadata:t,image:n}=(0,g.L)();return r.createElement(r.Fragment,null,r.createElement(m.Z,null,r.createElement("meta",{name:"twitter:card",content:"summary_large_image"}),r.createElement("body",{className:k.h})),n&&r.createElement(v.d,{image:n}),r.createElement(x,null),r.createElement(E,null),r.createElement(w.Z,{tag:S.HX,locale:e}),r.createElement(m.Z,null,t.map(((e,t)=>r.createElement("meta",(0,p.Z)({key:t},e))))))}const _=new Map;function I(e){if(_.has(e.pathname))return{...e,pathname:_.get(e.pathname)};if((0,u.f)(l.Z,e.pathname).some((e=>{let{route:t}=e;return!0===t.exact})))return _.set(e.pathname,e.pathname),e;const t=e.pathname.trim().replace(/(?:\/index)?\.html$/,"")||"/";return _.set(e.pathname,t),{...e,pathname:t}}var T=n(98934),P=n(58940);function A(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r(t.default?.[e]??t[e])?.(...n)));return()=>a.forEach((e=>e?.()))}const R=function(e){let{children:t,location:n,previousLocation:a}=e;return(0,r.useLayoutEffect)((()=>{a!==n&&(a&&function(e){const{hash:t}=e;if(t){const e=decodeURIComponent(t.substring(1));document.getElementById(e)?.scrollIntoView()}else window.scrollTo(0,0)}(n),A("onRouteDidUpdate",{previousLocation:a,location:n}))}),[a,n]),t};function L(e){const t=Array.from(new Set([e,decodeURI(e)])).map((e=>(0,u.f)(l.Z,e))).flat();return Promise.all(t.map((e=>e.route.component.preload?.())))}class O extends r.Component{constructor(e){super(e),this.previousLocation=void 0,this.routeUpdateCleanupCb=void 0,this.previousLocation=null,this.routeUpdateCleanupCb=s.Z.canUseDOM?A("onRouteUpdate",{previousLocation:null,location:this.props.location}):()=>{},this.state={nextRouteHasLoaded:!0}}shouldComponentUpdate(e,t){if(e.location===this.props.location)return t.nextRouteHasLoaded;const n=e.location;return this.previousLocation=this.props.location,this.setState({nextRouteHasLoaded:!1}),this.routeUpdateCleanupCb=A("onRouteUpdate",{previousLocation:this.previousLocation,location:n}),L(n.pathname).then((()=>{this.routeUpdateCleanupCb(),this.setState({nextRouteHasLoaded:!0})})).catch((e=>{console.warn(e),window.location.reload()})),!1}render(){const{children:e,location:t}=this.props;return r.createElement(R,{previousLocation:this.previousLocation,location:t},r.createElement(d.AW,{location:t,render:()=>e}))}}const N=O,M="docusaurus-base-url-issue-banner-container",D="docusaurus-base-url-issue-banner-suggestion-container",z="__DOCUSAURUS_INSERT_BASEURL_BANNER";function F(e){return`\nwindow['${z}'] = true;\n\ndocument.addEventListener('DOMContentLoaded', maybeInsertBanner);\n\nfunction maybeInsertBanner() {\n var shouldInsert = window['${z}'];\n shouldInsert && insertBanner();\n}\n\nfunction insertBanner() {\n var bannerContainer = document.getElementById('${M}');\n if (!bannerContainer) {\n return;\n }\n var bannerHtml = ${JSON.stringify(function(e){return`\n
\n

Your Docusaurus site did not load properly.

\n

A very common reason is a wrong site baseUrl configuration.

\n

Current configured baseUrl = ${e} ${"/"===e?" (default value)":""}

\n

We suggest trying baseUrl =

\n
\n`}(e)).replace(/{window[z]=!1}),[]),r.createElement(r.Fragment,null,!s.Z.canUseDOM&&r.createElement(m.Z,null,r.createElement("script",null,F(e))),r.createElement("div",{id:M}))}function $(){const{siteConfig:{baseUrl:e,baseUrlIssueBanner:t}}=(0,h.Z)(),{pathname:n}=(0,d.TH)();return t&&n===e?r.createElement(B,null):null}function U(){const{siteConfig:{favicon:e,title:t,noIndex:n},i18n:{currentLocale:a,localeConfigs:i}}=(0,h.Z)(),o=(0,b.Z)(e),{htmlLang:s,direction:c}=i[a];return r.createElement(m.Z,null,r.createElement("html",{lang:s,dir:c}),r.createElement("title",null,t),r.createElement("meta",{property:"og:title",content:t}),r.createElement("meta",{name:"viewport",content:"width=device-width, initial-scale=1.0"}),n&&r.createElement("meta",{name:"robots",content:"noindex, nofollow"}),e&&r.createElement("link",{rel:"icon",href:o}))}var j=n(44763);function V(){const e=(0,u.H)(l.Z),t=(0,d.TH)();return r.createElement(j.Z,null,r.createElement(P.M,null,r.createElement(T.t,null,r.createElement(f,null,r.createElement(U,null),r.createElement(C,null),r.createElement($,null),r.createElement(N,{location:I(t)},e)))))}var Z=n(16887);const H=function(e){try{return document.createElement("link").relList.supports(e)}catch{return!1}}("prefetch")?function(e){return new Promise(((t,n)=>{if("undefined"==typeof document)return void n();const r=document.createElement("link");r.setAttribute("rel","prefetch"),r.setAttribute("href",e),r.onload=()=>t(),r.onerror=()=>n();(document.getElementsByTagName("head")[0]??document.getElementsByName("script")[0]?.parentNode)?.appendChild(r)}))}:function(e){return new Promise(((t,n)=>{const r=new XMLHttpRequest;r.open("GET",e,!0),r.withCredentials=!0,r.onload=()=>{200===r.status?t():n()},r.send(null)}))};var W=n(99670);const G=new Set,q=new Set,K=()=>navigator.connection?.effectiveType.includes("2g")||navigator.connection?.saveData,Y={prefetch(e){if(!(e=>!K()&&!q.has(e)&&!G.has(e))(e))return!1;G.add(e);const t=(0,u.f)(l.Z,e).flatMap((e=>{return t=e.route.path,Object.entries(Z).filter((e=>{let[n]=e;return n.replace(/-[^-]+$/,"")===t})).flatMap((e=>{let[,t]=e;return Object.values((0,W.Z)(t))}));var t}));return Promise.all(t.map((e=>{const t=n.gca(e);return t&&!t.includes("undefined")?H(t).catch((()=>{})):Promise.resolve()})))},preload:e=>!!(e=>!K()&&!q.has(e))(e)&&(q.add(e),L(e))},Q=Object.freeze(Y);if(s.Z.canUseDOM){window.docusaurus=Q;const e=a.hydrate;L(window.location.pathname).then((()=>{e(r.createElement(o.B6,null,r.createElement(i.VK,null,r.createElement(V,null))),document.getElementById("__docusaurus"))}))}},58940:(e,t,n)=>{"use strict";n.d(t,{_:()=>d,M:()=>u});var r=n(67294),a=n(36809);const i=JSON.parse('{"docusaurus-plugin-content-docs":{"default":{"path":"/","versions":[{"name":"current","label":"Next","isLast":true,"path":"/","mainDocId":"intro","docs":[{"id":"intro","path":"/intro","sidebar":"defaultSidebar"},{"id":"protocol/anonymity/anonymity","path":"/protocol/anonymity/","sidebar":"defaultSidebar"},{"id":"protocol/anonymity/blind-signatures","path":"/protocol/anonymity/blind-signatures","sidebar":"defaultSidebar"},{"id":"protocol/anonymity/on-chain","path":"/protocol/anonymity/on-chain","sidebar":"defaultSidebar"},{"id":"protocol/anonymity/zk-census-proof","path":"/protocol/anonymity/zk-census-proof","sidebar":"defaultSidebar"},{"id":"protocol/ballot-protocol","path":"/protocol/ballot-protocol","sidebar":"defaultSidebar"},{"id":"protocol/census/census","path":"/protocol/census/","sidebar":"defaultSidebar"},{"id":"protocol/census/off-chain-csp","path":"/protocol/census/off-chain-csp","sidebar":"defaultSidebar"},{"id":"protocol/census/off-chain-tree","path":"/protocol/census/off-chain-tree","sidebar":"defaultSidebar"},{"id":"protocol/census/on-chain","path":"/protocol/census/on-chain","sidebar":"defaultSidebar"},{"id":"protocol/data-schemes/data-schemes","path":"/protocol/data-schemes/","sidebar":"defaultSidebar"},{"id":"protocol/data-schemes/election","path":"/protocol/data-schemes/election","sidebar":"defaultSidebar"},{"id":"protocol/data-schemes/organization","path":"/protocol/data-schemes/organization","sidebar":"defaultSidebar"},{"id":"protocol/data-schemes/vote","path":"/protocol/data-schemes/vote","sidebar":"defaultSidebar"},{"id":"protocol/index","path":"/protocol/","sidebar":"defaultSidebar"},{"id":"sdk/index","path":"/sdk/","sidebar":"defaultSidebar"},{"id":"sdk/integration-details/census-types/census-types","path":"/sdk/integration-details/census-types/","sidebar":"defaultSidebar"},{"id":"sdk/integration-details/census-types/off-chain-csp","path":"/sdk/integration-details/census-types/off-chain-csp","sidebar":"defaultSidebar"},{"id":"sdk/integration-details/census-types/off-chain-tree","path":"/sdk/integration-details/census-types/off-chain-tree","sidebar":"defaultSidebar"},{"id":"sdk/integration-details/census-types/on-chain/complex-census","path":"/sdk/integration-details/census-types/on-chain/complex-census","sidebar":"defaultSidebar"},{"id":"sdk/integration-details/census-types/on-chain/on-chain","path":"/sdk/integration-details/census-types/on-chain/","sidebar":"defaultSidebar"},{"id":"sdk/integration-details/integration-details","path":"/sdk/integration-details/","sidebar":"defaultSidebar"},{"id":"sdk/integration-details/vocdoni-tokens","path":"/sdk/integration-details/vocdoni-tokens","sidebar":"defaultSidebar"},{"id":"sdk/integration-details/voting-types/approval","path":"/sdk/integration-details/voting-types/approval","sidebar":"defaultSidebar"},{"id":"sdk/integration-details/voting-types/quadratic","path":"/sdk/integration-details/voting-types/quadratic","sidebar":"defaultSidebar"},{"id":"sdk/integration-details/voting-types/ranked","path":"/sdk/integration-details/voting-types/ranked","sidebar":"defaultSidebar"},{"id":"sdk/integration-details/voting-types/single-choice","path":"/sdk/integration-details/voting-types/single-choice","sidebar":"defaultSidebar"},{"id":"sdk/integration-details/voting-types/voting-types","path":"/sdk/integration-details/voting-types/","sidebar":"defaultSidebar"},{"id":"sdk/integration-details/voting-types/weighted","path":"/sdk/integration-details/voting-types/weighted","sidebar":"defaultSidebar"},{"id":"sdk/reference/changelog","path":"/sdk/reference/changelog","sidebar":"defaultSidebar"},{"id":"sdk/reference/classes/Account","path":"/sdk/reference/classes/Account","sidebar":"defaultSidebar"},{"id":"sdk/reference/classes/AccountAPI","path":"/sdk/reference/classes/AccountAPI","sidebar":"defaultSidebar"},{"id":"sdk/reference/classes/AccountService","path":"/sdk/reference/classes/AccountService","sidebar":"defaultSidebar"},{"id":"sdk/reference/classes/AnonymousService","path":"/sdk/reference/classes/AnonymousService","sidebar":"defaultSidebar"},{"id":"sdk/reference/classes/AnonymousVote","path":"/sdk/reference/classes/AnonymousVote","sidebar":"defaultSidebar"},{"id":"sdk/reference/classes/ApprovalElection","path":"/sdk/reference/classes/ApprovalElection","sidebar":"defaultSidebar"},{"id":"sdk/reference/classes/ArchivedElection","path":"/sdk/reference/classes/ArchivedElection","sidebar":"defaultSidebar"},{"id":"sdk/reference/classes/BudgetElection","path":"/sdk/reference/classes/BudgetElection","sidebar":"defaultSidebar"},{"id":"sdk/reference/classes/Census","path":"/sdk/reference/classes/Census","sidebar":"defaultSidebar"},{"id":"sdk/reference/classes/Census3CensusAPI","path":"/sdk/reference/classes/Census3CensusAPI","sidebar":"defaultSidebar"},{"id":"sdk/reference/classes/Census3ServiceAPI","path":"/sdk/reference/classes/Census3ServiceAPI","sidebar":"defaultSidebar"},{"id":"sdk/reference/classes/Census3StrategyAPI","path":"/sdk/reference/classes/Census3StrategyAPI","sidebar":"defaultSidebar"},{"id":"sdk/reference/classes/Census3TokenAPI","path":"/sdk/reference/classes/Census3TokenAPI","sidebar":"defaultSidebar"},{"id":"sdk/reference/classes/CensusAPI","path":"/sdk/reference/classes/CensusAPI","sidebar":"defaultSidebar"},{"id":"sdk/reference/classes/CensusService","path":"/sdk/reference/classes/CensusService","sidebar":"defaultSidebar"},{"id":"sdk/reference/classes/ChainAPI","path":"/sdk/reference/classes/ChainAPI","sidebar":"defaultSidebar"},{"id":"sdk/reference/classes/ChainService","path":"/sdk/reference/classes/ChainService","sidebar":"defaultSidebar"},{"id":"sdk/reference/classes/CspCensus","path":"/sdk/reference/classes/CspCensus","sidebar":"defaultSidebar"},{"id":"sdk/reference/classes/CspService","path":"/sdk/reference/classes/CspService","sidebar":"defaultSidebar"},{"id":"sdk/reference/classes/CspVote","path":"/sdk/reference/classes/CspVote","sidebar":"defaultSidebar"},{"id":"sdk/reference/classes/Election","path":"/sdk/reference/classes/Election","sidebar":"defaultSidebar"},{"id":"sdk/reference/classes/ElectionAPI","path":"/sdk/reference/classes/ElectionAPI","sidebar":"defaultSidebar"},{"id":"sdk/reference/classes/ElectionService","path":"/sdk/reference/classes/ElectionService","sidebar":"defaultSidebar"},{"id":"sdk/reference/classes/FaucetAPI","path":"/sdk/reference/classes/FaucetAPI","sidebar":"defaultSidebar"},{"id":"sdk/reference/classes/FaucetService","path":"/sdk/reference/classes/FaucetService","sidebar":"defaultSidebar"},{"id":"sdk/reference/classes/FileAPI","path":"/sdk/reference/classes/FileAPI","sidebar":"defaultSidebar"},{"id":"sdk/reference/classes/FileService","path":"/sdk/reference/classes/FileService","sidebar":"defaultSidebar"},{"id":"sdk/reference/classes/InvalidElection","path":"/sdk/reference/classes/InvalidElection","sidebar":"defaultSidebar"},{"id":"sdk/reference/classes/MultiChoiceElection","path":"/sdk/reference/classes/MultiChoiceElection","sidebar":"defaultSidebar"},{"id":"sdk/reference/classes/OffchainCensus","path":"/sdk/reference/classes/OffchainCensus","sidebar":"defaultSidebar"},{"id":"sdk/reference/classes/PlainCensus","path":"/sdk/reference/classes/PlainCensus","sidebar":"defaultSidebar"},{"id":"sdk/reference/classes/PublishedCensus","path":"/sdk/reference/classes/PublishedCensus","sidebar":"defaultSidebar"},{"id":"sdk/reference/classes/PublishedElection","path":"/sdk/reference/classes/PublishedElection","sidebar":"defaultSidebar"},{"id":"sdk/reference/classes/Service","path":"/sdk/reference/classes/Service","sidebar":"defaultSidebar"},{"id":"sdk/reference/classes/TokenCensus","path":"/sdk/reference/classes/TokenCensus","sidebar":"defaultSidebar"},{"id":"sdk/reference/classes/UnpublishedElection","path":"/sdk/reference/classes/UnpublishedElection","sidebar":"defaultSidebar"},{"id":"sdk/reference/classes/VocdoniCensus3Client","path":"/sdk/reference/classes/VocdoniCensus3Client","sidebar":"defaultSidebar"},{"id":"sdk/reference/classes/VocdoniSDKClient","path":"/sdk/reference/classes/VocdoniSDKClient","sidebar":"defaultSidebar"},{"id":"sdk/reference/classes/Vote","path":"/sdk/reference/classes/Vote","sidebar":"defaultSidebar"},{"id":"sdk/reference/classes/VoteAPI","path":"/sdk/reference/classes/VoteAPI","sidebar":"defaultSidebar"},{"id":"sdk/reference/classes/VoteService","path":"/sdk/reference/classes/VoteService","sidebar":"defaultSidebar"},{"id":"sdk/reference/classes/WalletAPI","path":"/sdk/reference/classes/WalletAPI","sidebar":"defaultSidebar"},{"id":"sdk/reference/classes/WeightedCensus","path":"/sdk/reference/classes/WeightedCensus","sidebar":"defaultSidebar"},{"id":"sdk/reference/enums/CensusOrigin","path":"/sdk/reference/enums/CensusOrigin","sidebar":"defaultSidebar"},{"id":"sdk/reference/enums/CensusType","path":"/sdk/reference/enums/CensusType","sidebar":"defaultSidebar"},{"id":"sdk/reference/enums/CensusTypeEnum","path":"/sdk/reference/enums/CensusTypeEnum","sidebar":"defaultSidebar"},{"id":"sdk/reference/enums/CspProofType","path":"/sdk/reference/enums/CspProofType","sidebar":"defaultSidebar"},{"id":"sdk/reference/enums/ElectionCreationSteps","path":"/sdk/reference/enums/ElectionCreationSteps","sidebar":"defaultSidebar"},{"id":"sdk/reference/enums/ElectionResultsTypeNames","path":"/sdk/reference/enums/ElectionResultsTypeNames","sidebar":"defaultSidebar"},{"id":"sdk/reference/enums/ElectionStatus","path":"/sdk/reference/enums/ElectionStatus","sidebar":"defaultSidebar"},{"id":"sdk/reference/enums/ElectionStatusReady","path":"/sdk/reference/enums/ElectionStatusReady","sidebar":"defaultSidebar"},{"id":"sdk/reference/enums/EnvOptions","path":"/sdk/reference/enums/EnvOptions","sidebar":"defaultSidebar"},{"id":"sdk/reference/enums/TransactionType","path":"/sdk/reference/enums/TransactionType","sidebar":"defaultSidebar"},{"id":"sdk/reference/enums/TxType","path":"/sdk/reference/enums/TxType","sidebar":"defaultSidebar"},{"id":"sdk/reference/enums/VoteSteps","path":"/sdk/reference/enums/VoteSteps","sidebar":"defaultSidebar"},{"id":"sdk/reference/interfaces/AccountMetadata","path":"/sdk/reference/interfaces/AccountMetadata","sidebar":"defaultSidebar"},{"id":"sdk/reference/interfaces/AdminTx","path":"/sdk/reference/interfaces/AdminTx","sidebar":"defaultSidebar"},{"id":"sdk/reference/interfaces/CircuitInputs","path":"/sdk/reference/interfaces/CircuitInputs","sidebar":"defaultSidebar"},{"id":"sdk/reference/interfaces/CollectFaucetTx","path":"/sdk/reference/interfaces/CollectFaucetTx","sidebar":"defaultSidebar"},{"id":"sdk/reference/interfaces/ElectionMetadata","path":"/sdk/reference/interfaces/ElectionMetadata","sidebar":"defaultSidebar"},{"id":"sdk/reference/interfaces/FetchElectionsParameters","path":"/sdk/reference/interfaces/FetchElectionsParameters","sidebar":"defaultSidebar"},{"id":"sdk/reference/interfaces/IAccount","path":"/sdk/reference/interfaces/IAccount","sidebar":"defaultSidebar"},{"id":"sdk/reference/interfaces/IAccountsCountResponse","path":"/sdk/reference/interfaces/IAccountsCountResponse","sidebar":"defaultSidebar"},{"id":"sdk/reference/interfaces/IAccountsListResponse","path":"/sdk/reference/interfaces/IAccountsListResponse","sidebar":"defaultSidebar"},{"id":"sdk/reference/interfaces/IAccountTransfersCountResponse","path":"/sdk/reference/interfaces/IAccountTransfersCountResponse","sidebar":"defaultSidebar"},{"id":"sdk/reference/interfaces/IApprovalElectionParameters","path":"/sdk/reference/interfaces/IApprovalElectionParameters","sidebar":"defaultSidebar"},{"id":"sdk/reference/interfaces/IBlockTransactionsResponse","path":"/sdk/reference/interfaces/IBlockTransactionsResponse","sidebar":"defaultSidebar"},{"id":"sdk/reference/interfaces/IBudgetElectionParametersInfo","path":"/sdk/reference/interfaces/IBudgetElectionParametersInfo","sidebar":"defaultSidebar"},{"id":"sdk/reference/interfaces/IBudgetElectionParametersWithBudget","path":"/sdk/reference/interfaces/IBudgetElectionParametersWithBudget","sidebar":"defaultSidebar"},{"id":"sdk/reference/interfaces/IBudgetElectionParametersWithCensusWeight","path":"/sdk/reference/interfaces/IBudgetElectionParametersWithCensusWeight","sidebar":"defaultSidebar"},{"id":"sdk/reference/interfaces/ICensus","path":"/sdk/reference/interfaces/ICensus","sidebar":"defaultSidebar"},{"id":"sdk/reference/interfaces/ICensus3CensusListResponse","path":"/sdk/reference/interfaces/ICensus3CensusListResponse","sidebar":"defaultSidebar"},{"id":"sdk/reference/interfaces/ICensus3CensusQueueResponse","path":"/sdk/reference/interfaces/ICensus3CensusQueueResponse","sidebar":"defaultSidebar"},{"id":"sdk/reference/interfaces/ICensus3CensusResponse","path":"/sdk/reference/interfaces/ICensus3CensusResponse","sidebar":"defaultSidebar"},{"id":"sdk/reference/interfaces/ICensus3ServiceInfoResponse","path":"/sdk/reference/interfaces/ICensus3ServiceInfoResponse","sidebar":"defaultSidebar"},{"id":"sdk/reference/interfaces/ICensus3StrategiesListResponse","path":"/sdk/reference/interfaces/ICensus3StrategiesListResponse","sidebar":"defaultSidebar"},{"id":"sdk/reference/interfaces/ICensus3StrategiesListResponsePaginated","path":"/sdk/reference/interfaces/ICensus3StrategiesListResponsePaginated","sidebar":"defaultSidebar"},{"id":"sdk/reference/interfaces/ICensus3StrategiesOperator","path":"/sdk/reference/interfaces/ICensus3StrategiesOperator","sidebar":"defaultSidebar"},{"id":"sdk/reference/interfaces/ICensus3StrategiesOperatorsResponse","path":"/sdk/reference/interfaces/ICensus3StrategiesOperatorsResponse","sidebar":"defaultSidebar"},{"id":"sdk/reference/interfaces/ICensus3StrategyCreateResponse","path":"/sdk/reference/interfaces/ICensus3StrategyCreateResponse","sidebar":"defaultSidebar"},{"id":"sdk/reference/interfaces/ICensus3StrategyEstimationQueueResponse","path":"/sdk/reference/interfaces/ICensus3StrategyEstimationQueueResponse","sidebar":"defaultSidebar"},{"id":"sdk/reference/interfaces/ICensus3StrategyHoldersResponse","path":"/sdk/reference/interfaces/ICensus3StrategyHoldersResponse","sidebar":"defaultSidebar"},{"id":"sdk/reference/interfaces/ICensus3StrategyHoldersResponsePaginated","path":"/sdk/reference/interfaces/ICensus3StrategyHoldersResponsePaginated","sidebar":"defaultSidebar"},{"id":"sdk/reference/interfaces/ICensus3StrategyImportQueueResponse","path":"/sdk/reference/interfaces/ICensus3StrategyImportQueueResponse","sidebar":"defaultSidebar"},{"id":"sdk/reference/interfaces/ICensus3StrategyToken","path":"/sdk/reference/interfaces/ICensus3StrategyToken","sidebar":"defaultSidebar"},{"id":"sdk/reference/interfaces/ICensus3SupportedChain","path":"/sdk/reference/interfaces/ICensus3SupportedChain","sidebar":"defaultSidebar"},{"id":"sdk/reference/interfaces/ICensus3TokenHolderResponse","path":"/sdk/reference/interfaces/ICensus3TokenHolderResponse","sidebar":"defaultSidebar"},{"id":"sdk/reference/interfaces/ICensus3TokenListResponse","path":"/sdk/reference/interfaces/ICensus3TokenListResponse","sidebar":"defaultSidebar"},{"id":"sdk/reference/interfaces/ICensus3TokenListResponsePaginated","path":"/sdk/reference/interfaces/ICensus3TokenListResponsePaginated","sidebar":"defaultSidebar"},{"id":"sdk/reference/interfaces/ICensus3TokenTypesResponse","path":"/sdk/reference/interfaces/ICensus3TokenTypesResponse","sidebar":"defaultSidebar"},{"id":"sdk/reference/interfaces/ICensus3ValidatePredicateChild","path":"/sdk/reference/interfaces/ICensus3ValidatePredicateChild","sidebar":"defaultSidebar"},{"id":"sdk/reference/interfaces/ICensus3ValidatePredicateResponse","path":"/sdk/reference/interfaces/ICensus3ValidatePredicateResponse","sidebar":"defaultSidebar"},{"id":"sdk/reference/interfaces/ICensus3ValidatePredicateToken","path":"/sdk/reference/interfaces/ICensus3ValidatePredicateToken","sidebar":"defaultSidebar"},{"id":"sdk/reference/interfaces/ICensusExportResponse","path":"/sdk/reference/interfaces/ICensusExportResponse","sidebar":"defaultSidebar"},{"id":"sdk/reference/interfaces/ICensusImportResponse","path":"/sdk/reference/interfaces/ICensusImportResponse","sidebar":"defaultSidebar"},{"id":"sdk/reference/interfaces/ICensusParticipant","path":"/sdk/reference/interfaces/ICensusParticipant","sidebar":"defaultSidebar"},{"id":"sdk/reference/interfaces/ICensusProofResponse","path":"/sdk/reference/interfaces/ICensusProofResponse","sidebar":"defaultSidebar"},{"id":"sdk/reference/interfaces/ICensusPublishResponse","path":"/sdk/reference/interfaces/ICensusPublishResponse","sidebar":"defaultSidebar"},{"id":"sdk/reference/interfaces/IChainBlockInfoResponse","path":"/sdk/reference/interfaces/IChainBlockInfoResponse","sidebar":"defaultSidebar"},{"id":"sdk/reference/interfaces/IChainGetCircuitResponse","path":"/sdk/reference/interfaces/IChainGetCircuitResponse","sidebar":"defaultSidebar"},{"id":"sdk/reference/interfaces/IChainGetCostsResponse","path":"/sdk/reference/interfaces/IChainGetCostsResponse","sidebar":"defaultSidebar"},{"id":"sdk/reference/interfaces/IChainGetInfoResponse","path":"/sdk/reference/interfaces/IChainGetInfoResponse","sidebar":"defaultSidebar"},{"id":"sdk/reference/interfaces/IChainOrganizationCountResponse","path":"/sdk/reference/interfaces/IChainOrganizationCountResponse","sidebar":"defaultSidebar"},{"id":"sdk/reference/interfaces/IChainOrganizationListResponse","path":"/sdk/reference/interfaces/IChainOrganizationListResponse","sidebar":"defaultSidebar"},{"id":"sdk/reference/interfaces/IChainOrganizationResponse","path":"/sdk/reference/interfaces/IChainOrganizationResponse","sidebar":"defaultSidebar"},{"id":"sdk/reference/interfaces/IChainSubmitTxResponse","path":"/sdk/reference/interfaces/IChainSubmitTxResponse","sidebar":"defaultSidebar"},{"id":"sdk/reference/interfaces/IChainTxCountResponse","path":"/sdk/reference/interfaces/IChainTxCountResponse","sidebar":"defaultSidebar"},{"id":"sdk/reference/interfaces/IChainTxListResponse","path":"/sdk/reference/interfaces/IChainTxListResponse","sidebar":"defaultSidebar"},{"id":"sdk/reference/interfaces/IChainTxReference","path":"/sdk/reference/interfaces/IChainTxReference","sidebar":"defaultSidebar"},{"id":"sdk/reference/interfaces/IChainValidator","path":"/sdk/reference/interfaces/IChainValidator","sidebar":"defaultSidebar"},{"id":"sdk/reference/interfaces/IChainValidatorsListResponse","path":"/sdk/reference/interfaces/IChainValidatorsListResponse","sidebar":"defaultSidebar"},{"id":"sdk/reference/interfaces/IChoice","path":"/sdk/reference/interfaces/IChoice","sidebar":"defaultSidebar"},{"id":"sdk/reference/interfaces/IElectionCreateResponse","path":"/sdk/reference/interfaces/IElectionCreateResponse","sidebar":"defaultSidebar"},{"id":"sdk/reference/interfaces/IElectionInfoResponse","path":"/sdk/reference/interfaces/IElectionInfoResponse","sidebar":"defaultSidebar"},{"id":"sdk/reference/interfaces/IElectionKeysResponse","path":"/sdk/reference/interfaces/IElectionKeysResponse","sidebar":"defaultSidebar"},{"id":"sdk/reference/interfaces/IElectionListFilter","path":"/sdk/reference/interfaces/IElectionListFilter","sidebar":"defaultSidebar"},{"id":"sdk/reference/interfaces/IElectionListResponse","path":"/sdk/reference/interfaces/IElectionListResponse","sidebar":"defaultSidebar"},{"id":"sdk/reference/interfaces/IElectionMode","path":"/sdk/reference/interfaces/IElectionMode","sidebar":"defaultSidebar"},{"id":"sdk/reference/interfaces/IElectionNextIdResponse","path":"/sdk/reference/interfaces/IElectionNextIdResponse","sidebar":"defaultSidebar"},{"id":"sdk/reference/interfaces/IElectionParameters","path":"/sdk/reference/interfaces/IElectionParameters","sidebar":"defaultSidebar"},{"id":"sdk/reference/interfaces/IElectionSummary","path":"/sdk/reference/interfaces/IElectionSummary","sidebar":"defaultSidebar"},{"id":"sdk/reference/interfaces/IElectionType","path":"/sdk/reference/interfaces/IElectionType","sidebar":"defaultSidebar"},{"id":"sdk/reference/interfaces/IElectionVote","path":"/sdk/reference/interfaces/IElectionVote","sidebar":"defaultSidebar"},{"id":"sdk/reference/interfaces/IElectionVoteListResponse","path":"/sdk/reference/interfaces/IElectionVoteListResponse","sidebar":"defaultSidebar"},{"id":"sdk/reference/interfaces/IEncryptionKey","path":"/sdk/reference/interfaces/IEncryptionKey","sidebar":"defaultSidebar"},{"id":"sdk/reference/interfaces/IInvalidElectionParameters","path":"/sdk/reference/interfaces/IInvalidElectionParameters","sidebar":"defaultSidebar"},{"id":"sdk/reference/interfaces/IMultiChoiceElectionParameters","path":"/sdk/reference/interfaces/IMultiChoiceElectionParameters","sidebar":"defaultSidebar"},{"id":"sdk/reference/interfaces/IPublishedElectionParameters","path":"/sdk/reference/interfaces/IPublishedElectionParameters","sidebar":"defaultSidebar"},{"id":"sdk/reference/interfaces/IQuestion","path":"/sdk/reference/interfaces/IQuestion","sidebar":"defaultSidebar"},{"id":"sdk/reference/interfaces/ITallyMode","path":"/sdk/reference/interfaces/ITallyMode","sidebar":"defaultSidebar"},{"id":"sdk/reference/interfaces/IVoteInfoResponse","path":"/sdk/reference/interfaces/IVoteInfoResponse","sidebar":"defaultSidebar"},{"id":"sdk/reference/interfaces/IVoteMode","path":"/sdk/reference/interfaces/IVoteMode","sidebar":"defaultSidebar"},{"id":"sdk/reference/interfaces/IVoteSubmitResponse","path":"/sdk/reference/interfaces/IVoteSubmitResponse","sidebar":"defaultSidebar"},{"id":"sdk/reference/interfaces/IVoteType","path":"/sdk/reference/interfaces/IVoteType","sidebar":"defaultSidebar"},{"id":"sdk/reference/interfaces/MintTokensTx","path":"/sdk/reference/interfaces/MintTokensTx","sidebar":"defaultSidebar"},{"id":"sdk/reference/interfaces/NewProcessTx","path":"/sdk/reference/interfaces/NewProcessTx","sidebar":"defaultSidebar"},{"id":"sdk/reference/interfaces/Process","path":"/sdk/reference/interfaces/Process","sidebar":"defaultSidebar"},{"id":"sdk/reference/interfaces/Proof","path":"/sdk/reference/interfaces/Proof","sidebar":"defaultSidebar"},{"id":"sdk/reference/interfaces/RegisterKeyTx","path":"/sdk/reference/interfaces/RegisterKeyTx","sidebar":"defaultSidebar"},{"id":"sdk/reference/interfaces/SendTokensTx","path":"/sdk/reference/interfaces/SendTokensTx","sidebar":"defaultSidebar"},{"id":"sdk/reference/interfaces/ServiceProperties","path":"/sdk/reference/interfaces/ServiceProperties","sidebar":"defaultSidebar"},{"id":"sdk/reference/interfaces/SetAccountTx","path":"/sdk/reference/interfaces/SetAccountTx","sidebar":"defaultSidebar"},{"id":"sdk/reference/interfaces/SetProcessTx","path":"/sdk/reference/interfaces/SetProcessTx","sidebar":"defaultSidebar"},{"id":"sdk/reference/interfaces/SetTransactionCostsTx","path":"/sdk/reference/interfaces/SetTransactionCostsTx","sidebar":"defaultSidebar"},{"id":"sdk/reference/interfaces/Tx","path":"/sdk/reference/interfaces/Tx","sidebar":"defaultSidebar"},{"id":"sdk/reference/interfaces/VoteEnvelope","path":"/sdk/reference/interfaces/VoteEnvelope","sidebar":"defaultSidebar"},{"id":"sdk/reference/modules","path":"/sdk/reference/modules","sidebar":"defaultSidebar"},{"id":"sdk/tutorial","path":"/sdk/tutorial","sidebar":"defaultSidebar"},{"id":"ui-components/Election","path":"/ui-components/Election","sidebar":"defaultSidebar"},{"id":"ui-components/index","path":"/ui-components/","sidebar":"defaultSidebar"},{"id":"ui-components/Organization","path":"/ui-components/Organization","sidebar":"defaultSidebar"},{"id":"vocdoni-api/accounts","path":"/vocdoni-api/accounts","sidebar":"defaultSidebar"},{"id":"vocdoni-api/add-account","path":"/vocdoni-api/add-account","sidebar":"defaultSidebar"},{"id":"vocdoni-api/add-participants-to-census","path":"/vocdoni-api/add-participants-to-census","sidebar":"defaultSidebar"},{"id":"vocdoni-api/census-merkle-root","path":"/vocdoni-api/census-merkle-root","sidebar":"defaultSidebar"},{"id":"vocdoni-api/census-size","path":"/vocdoni-api/census-size","sidebar":"defaultSidebar"},{"id":"vocdoni-api/census-total-weight","path":"/vocdoni-api/census-total-weight","sidebar":"defaultSidebar"},{"id":"vocdoni-api/censuses","path":"/vocdoni-api/censuses","sidebar":"defaultSidebar"},{"id":"vocdoni-api/chain","path":"/vocdoni-api/chain","sidebar":"defaultSidebar"},{"id":"vocdoni-api/circuit-info","path":"/vocdoni-api/circuit-info","sidebar":"defaultSidebar"},{"id":"vocdoni-api/compute-election-price","path":"/vocdoni-api/compute-election-price","sidebar":"defaultSidebar"},{"id":"vocdoni-api/compute-ipfs-ci-dv-1-of-file","path":"/vocdoni-api/compute-ipfs-ci-dv-1-of-file","sidebar":"defaultSidebar"},{"id":"vocdoni-api/count-election-votes","path":"/vocdoni-api/count-election-votes","sidebar":"defaultSidebar"},{"id":"vocdoni-api/count-organization-elections","path":"/vocdoni-api/count-organization-elections","sidebar":"defaultSidebar"},{"id":"vocdoni-api/count-organizations","path":"/vocdoni-api/count-organizations","sidebar":"defaultSidebar"},{"id":"vocdoni-api/create-a-new-census","path":"/vocdoni-api/create-a-new-census","sidebar":"defaultSidebar"},{"id":"vocdoni-api/create-election","path":"/vocdoni-api/create-election","sidebar":"defaultSidebar"},{"id":"vocdoni-api/create-election-for-wallet","path":"/vocdoni-api/create-election-for-wallet","sidebar":"defaultSidebar"},{"id":"vocdoni-api/delete-census","path":"/vocdoni-api/delete-census","sidebar":"defaultSidebar"},{"id":"vocdoni-api/election-information","path":"/vocdoni-api/election-information","sidebar":"defaultSidebar"},{"id":"vocdoni-api/election-results","path":"/vocdoni-api/election-results","sidebar":"defaultSidebar"},{"id":"vocdoni-api/elections","path":"/vocdoni-api/elections","sidebar":"defaultSidebar"},{"id":"vocdoni-api/estimate-block-to-date","path":"/vocdoni-api/estimate-block-to-date","sidebar":"defaultSidebar"},{"id":"vocdoni-api/estimate-date-to-block","path":"/vocdoni-api/estimate-date-to-block","sidebar":"defaultSidebar"},{"id":"vocdoni-api/export-census","path":"/vocdoni-api/export-census","sidebar":"defaultSidebar"},{"id":"vocdoni-api/export-census-database","path":"/vocdoni-api/export-census-database","sidebar":"defaultSidebar"},{"id":"vocdoni-api/exports-the-indexer-database","path":"/vocdoni-api/exports-the-indexer-database","sidebar":"defaultSidebar"},{"id":"vocdoni-api/get-account","path":"/vocdoni-api/get-account","sidebar":"defaultSidebar"},{"id":"vocdoni-api/get-block-by-hash","path":"/vocdoni-api/get-block-by-hash","sidebar":"defaultSidebar"},{"id":"vocdoni-api/get-block-by-height","path":"/vocdoni-api/get-block-by-height","sidebar":"defaultSidebar"},{"id":"vocdoni-api/get-next-election-id","path":"/vocdoni-api/get-next-election-id","sidebar":"defaultSidebar"},{"id":"vocdoni-api/get-type-of-census","path":"/vocdoni-api/get-type-of-census","sidebar":"defaultSidebar"},{"id":"vocdoni-api/get-vote","path":"/vocdoni-api/get-vote","sidebar":"defaultSidebar"},{"id":"vocdoni-api/import-census","path":"/vocdoni-api/import-census","sidebar":"defaultSidebar"},{"id":"vocdoni-api/import-census-database","path":"/vocdoni-api/import-census-database","sidebar":"defaultSidebar"},{"id":"vocdoni-api/list-account-received-and-sent-token-transfers","path":"/vocdoni-api/list-account-received-and-sent-token-transfers","sidebar":"defaultSidebar"},{"id":"vocdoni-api/list-account-token-fees","path":"/vocdoni-api/list-account-token-fees","sidebar":"defaultSidebar"},{"id":"vocdoni-api/list-all-census-references","path":"/vocdoni-api/list-all-census-references","sidebar":"defaultSidebar"},{"id":"vocdoni-api/list-all-token-fees","path":"/vocdoni-api/list-all-token-fees","sidebar":"defaultSidebar"},{"id":"vocdoni-api/list-all-token-fees-by-reference","path":"/vocdoni-api/list-all-token-fees-by-reference","sidebar":"defaultSidebar"},{"id":"vocdoni-api/list-all-token-fees-by-type","path":"/vocdoni-api/list-all-token-fees-by-type","sidebar":"defaultSidebar"},{"id":"vocdoni-api/list-election-votes","path":"/vocdoni-api/list-election-votes","sidebar":"defaultSidebar"},{"id":"vocdoni-api/list-elections","path":"/vocdoni-api/list-elections","sidebar":"defaultSidebar"},{"id":"vocdoni-api/list-elections-filtered","path":"/vocdoni-api/list-elections-filtered","sidebar":"defaultSidebar"},{"id":"vocdoni-api/list-encryption-keys","path":"/vocdoni-api/list-encryption-keys","sidebar":"defaultSidebar"},{"id":"vocdoni-api/list-of-the-existing-accounts","path":"/vocdoni-api/list-of-the-existing-accounts","sidebar":"defaultSidebar"},{"id":"vocdoni-api/list-of-valid-sik-roots","path":"/vocdoni-api/list-of-valid-sik-roots","sidebar":"defaultSidebar"},{"id":"vocdoni-api/list-organization-elections","path":"/vocdoni-api/list-organization-elections","sidebar":"defaultSidebar"},{"id":"vocdoni-api/list-organization-elections-by-status","path":"/vocdoni-api/list-organization-elections-by-status","sidebar":"defaultSidebar"},{"id":"vocdoni-api/list-organizations","path":"/vocdoni-api/list-organizations","sidebar":"defaultSidebar"},{"id":"vocdoni-api/list-organizations-filtered","path":"/vocdoni-api/list-organizations-filtered","sidebar":"defaultSidebar"},{"id":"vocdoni-api/list-transactions","path":"/vocdoni-api/list-transactions","sidebar":"defaultSidebar"},{"id":"vocdoni-api/list-validators","path":"/vocdoni-api/list-validators","sidebar":"defaultSidebar"},{"id":"vocdoni-api/price-factors-information","path":"/vocdoni-api/price-factors-information","sidebar":"defaultSidebar"},{"id":"vocdoni-api/prove-key-to-census","path":"/vocdoni-api/prove-key-to-census","sidebar":"defaultSidebar"},{"id":"vocdoni-api/publish-census","path":"/vocdoni-api/publish-census","sidebar":"defaultSidebar"},{"id":"vocdoni-api/publish-census-at-root","path":"/vocdoni-api/publish-census-at-root","sidebar":"defaultSidebar"},{"id":"vocdoni-api/returns-if-the-address-provided-has-a-valid-sik","path":"/vocdoni-api/returns-if-the-address-provided-has-a-valid-sik","sidebar":"defaultSidebar"},{"id":"vocdoni-api/set-account","path":"/vocdoni-api/set-account","sidebar":"defaultSidebar"},{"id":"vocdoni-api/set-wallet-account","path":"/vocdoni-api/set-wallet-account","sidebar":"defaultSidebar"},{"id":"vocdoni-api/sik","path":"/vocdoni-api/sik","sidebar":"defaultSidebar"},{"id":"vocdoni-api/submit-a-vote","path":"/vocdoni-api/submit-a-vote","sidebar":"defaultSidebar"},{"id":"vocdoni-api/submit-transaction","path":"/vocdoni-api/submit-transaction","sidebar":"defaultSidebar"},{"id":"vocdoni-api/total-number-of-accounts","path":"/vocdoni-api/total-number-of-accounts","sidebar":"defaultSidebar"},{"id":"vocdoni-api/total-number-of-sent-and-received-transactions","path":"/vocdoni-api/total-number-of-sent-and-received-transactions","sidebar":"defaultSidebar"},{"id":"vocdoni-api/transaction-by-block-height-and-index","path":"/vocdoni-api/transaction-by-block-height-and-index","sidebar":"defaultSidebar"},{"id":"vocdoni-api/transaction-by-hash","path":"/vocdoni-api/transaction-by-hash","sidebar":"defaultSidebar"},{"id":"vocdoni-api/transaction-by-index","path":"/vocdoni-api/transaction-by-index","sidebar":"defaultSidebar"},{"id":"vocdoni-api/transaction-costs","path":"/vocdoni-api/transaction-costs","sidebar":"defaultSidebar"},{"id":"vocdoni-api/transactions-count","path":"/vocdoni-api/transactions-count","sidebar":"defaultSidebar"},{"id":"vocdoni-api/transactions-in-a-block","path":"/vocdoni-api/transactions-in-a-block","sidebar":"defaultSidebar"},{"id":"vocdoni-api/transfer-tokens","path":"/vocdoni-api/transfer-tokens","sidebar":"defaultSidebar"},{"id":"vocdoni-api/verify-merkle-proof","path":"/vocdoni-api/verify-merkle-proof","sidebar":"defaultSidebar"},{"id":"vocdoni-api/verify-vote","path":"/vocdoni-api/verify-vote","sidebar":"defaultSidebar"},{"id":"vocdoni-api/vocdoni-api","path":"/vocdoni-api/vocdoni-api","sidebar":"defaultSidebar"},{"id":"vocdoni-api/vochain-information","path":"/vocdoni-api/vochain-information","sidebar":"defaultSidebar"},{"id":"vocdoni-api/votes","path":"/vocdoni-api/votes","sidebar":"defaultSidebar"},{"id":"vocdoni-api/wallet","path":"/vocdoni-api/wallet","sidebar":"defaultSidebar"}],"draftIds":[],"sidebars":{"defaultSidebar":{"link":{"path":"/intro","label":"intro"}}}}],"breadcrumbs":true}}}'),o=JSON.parse('{"defaultLocale":"en","locales":["en"],"path":"i18n","currentLocale":"en","localeConfigs":{"en":{"label":"En","direction":"ltr","htmlLang":"en","calendar":"gregory","path":"en"}}}');var s=n(57529);const c=JSON.parse('{"docusaurusVersion":"2.2.0","siteVersion":"1.4.1","pluginVersions":{"docusaurus-plugin-content-docs":{"type":"package","name":"@docusaurus/plugin-content-docs","version":"2.2.0"},"docusaurus-plugin-content-pages":{"type":"package","name":"@docusaurus/plugin-content-pages","version":"2.2.0"},"docusaurus-plugin-sitemap":{"type":"package","name":"@docusaurus/plugin-sitemap","version":"2.2.0"},"docusaurus-theme-classic":{"type":"package","name":"@docusaurus/theme-classic","version":"2.2.0"},"docusaurus-theme-search-algolia":{"type":"package","name":"@docusaurus/theme-search-algolia","version":"2.2.0"},"docusaurus-plugin-openapi-docs":{"type":"package","name":"docusaurus-plugin-openapi-docs","version":"1.5.0"},"docusaurus-tailwindcss":{"type":"local"},"docusaurus-theme-live-codeblock":{"type":"package","name":"@docusaurus/theme-live-codeblock","version":"2.2.0"},"docusaurus-theme-openapi":{"type":"package","name":"docusaurus-theme-openapi-docs","version":"1.5.0"},"docusaurus-theme-mermaid":{"type":"package","name":"@docusaurus/theme-mermaid","version":"2.2.0"}}}'),l={siteConfig:a.default,siteMetadata:c,globalData:i,i18n:o,codeTranslations:s},d=r.createContext(l);function u(e){let{children:t}=e;return r.createElement(d.Provider,{value:l},t)}},44763:(e,t,n)=>{"use strict";n.d(t,{Z:()=>d});var r=n(67294),a=n(10412),i=n(35742),o=n(78193);function s(e){let{error:t,tryAgain:n}=e;return r.createElement("div",{style:{display:"flex",flexDirection:"column",justifyContent:"center",alignItems:"center",height:"50vh",width:"100%",fontSize:"20px"}},r.createElement("h1",null,"This page crashed."),r.createElement("p",null,t.message),r.createElement("button",{type:"button",onClick:n},"Try again"))}function c(e){let{error:t,tryAgain:n}=e;return r.createElement(d,{fallback:()=>r.createElement(s,{error:t,tryAgain:n})},r.createElement(i.Z,null,r.createElement("title",null,"Page Error")),r.createElement(o.Z,null,r.createElement(s,{error:t,tryAgain:n})))}const l=e=>r.createElement(c,e);class d extends r.Component{constructor(e){super(e),this.state={error:null}}componentDidCatch(e){a.Z.canUseDOM&&this.setState({error:e})}render(){const{children:e}=this.props,{error:t}=this.state;if(t){const e={error:t,tryAgain:()=>this.setState({error:null})};return(this.props.fallback??l)(e)}return e??null}}},10412:(e,t,n)=>{"use strict";n.d(t,{Z:()=>a});const r="undefined"!=typeof window&&"document"in window&&"createElement"in window.document,a={canUseDOM:r,canUseEventListeners:r&&("addEventListener"in window||"attachEvent"in window),canUseIntersectionObserver:r&&"IntersectionObserver"in window,canUseViewport:r&&"screen"in window}},35742:(e,t,n)=>{"use strict";n.d(t,{Z:()=>i});var r=n(67294),a=n(70405);function i(e){return r.createElement(a.ql,e)}},39960:(e,t,n)=>{"use strict";n.d(t,{Z:()=>p});var r=n(87462),a=n(67294),i=n(73727),o=n(18780),s=n(52263),c=n(13919),l=n(10412);const d=a.createContext({collectLink:()=>{}});var u=n(44996);function f(e,t){let{isNavLink:n,to:f,href:p,activeClassName:m,isActive:h,"data-noBrokenLinkCheck":b,autoAddBaseUrl:g=!0,...v}=e;const{siteConfig:{trailingSlash:y,baseUrl:k}}=(0,s.Z)(),{withBaseUrl:S}=(0,u.C)(),w=(0,a.useContext)(d),E=(0,a.useRef)(null);(0,a.useImperativeHandle)(t,(()=>E.current));const x=f||p;const C=(0,c.Z)(x),_=x?.replace("pathname://","");let I=void 0!==_?(T=_,g&&(e=>e.startsWith("/"))(T)?S(T):T):void 0;var T;I&&C&&(I=(0,o.applyTrailingSlash)(I,{trailingSlash:y,baseUrl:k}));const P=(0,a.useRef)(!1),A=n?i.OL:i.rU,R=l.Z.canUseIntersectionObserver,L=(0,a.useRef)(),O=()=>{P.current||null==I||(window.docusaurus.preload(I),P.current=!0)};(0,a.useEffect)((()=>(!R&&C&&null!=I&&window.docusaurus.prefetch(I),()=>{R&&L.current&&L.current.disconnect()})),[L,I,R,C]);const N=I?.startsWith("#")??!1,M=!I||!C||N;return M||b||w.collectLink(I),M?a.createElement("a",(0,r.Z)({ref:E,href:I},x&&!C&&{target:"_blank",rel:"noopener noreferrer"},v)):a.createElement(A,(0,r.Z)({},v,{onMouseEnter:O,onTouchStart:O,innerRef:e=>{E.current=e,R&&e&&C&&(L.current=new window.IntersectionObserver((t=>{t.forEach((t=>{e===t.target&&(t.isIntersecting||t.intersectionRatio>0)&&(L.current.unobserve(e),L.current.disconnect(),null!=I&&window.docusaurus.prefetch(I))}))})),L.current.observe(e))},to:I},n&&{isActive:h,activeClassName:m}))}const p=a.forwardRef(f)},95999:(e,t,n)=>{"use strict";n.d(t,{Z:()=>c,I:()=>s});var r=n(67294);function a(e,t){const n=e.split(/(\{\w+\})/).map(((e,n)=>{if(n%2==1){const n=t?.[e.slice(1,-1)];if(void 0!==n)return n}return e}));return n.some((e=>(0,r.isValidElement)(e)))?n.map(((e,t)=>(0,r.isValidElement)(e)?r.cloneElement(e,{key:t}):e)).filter((e=>""!==e)):n.join("")}var i=n(57529);function o(e){let{id:t,message:n}=e;if(void 0===t&&void 0===n)throw new Error("Docusaurus translation declarations must have at least a translation id or a default translation message");return i[t??n]??n??t}function s(e,t){let{message:n,id:r}=e;return a(o({message:n,id:r}),t)}function c(e){let{children:t,id:n,values:i}=e;if(t&&"string"!=typeof t)throw console.warn("Illegal children",t),new Error("The Docusaurus component only accept simple string values");const s=o({message:t,id:n});return r.createElement(r.Fragment,null,a(s,i))}},29935:(e,t,n)=>{"use strict";n.d(t,{m:()=>r});const r="default"},13919:(e,t,n)=>{"use strict";function r(e){return/^(?:\w*:|\/\/)/.test(e)}function a(e){return void 0!==e&&!r(e)}n.d(t,{Z:()=>a,b:()=>r})},44996:(e,t,n)=>{"use strict";n.d(t,{C:()=>i,Z:()=>o});var r=n(52263),a=n(13919);function i(){const{siteConfig:{baseUrl:e,url:t}}=(0,r.Z)();return{withBaseUrl:(n,r)=>function(e,t,n,r){let{forcePrependBaseUrl:i=!1,absolute:o=!1}=void 0===r?{}:r;if(!n||n.startsWith("#")||(0,a.b)(n))return n;if(i)return t+n.replace(/^\//,"");if(n===t.replace(/\/$/,""))return t;const s=n.startsWith(t)?n:t+n.replace(/^\//,"");return o?e+s:s}(t,e,n,r)}}function o(e,t){void 0===t&&(t={});const{withBaseUrl:n}=i();return n(e,t)}},52263:(e,t,n)=>{"use strict";n.d(t,{Z:()=>i});var r=n(67294),a=n(58940);function i(){return(0,r.useContext)(a._)}},72389:(e,t,n)=>{"use strict";n.d(t,{Z:()=>i});var r=n(67294),a=n(98934);function i(){return(0,r.useContext)(a._)}},99670:(e,t,n)=>{"use strict";n.d(t,{Z:()=>r});function r(e){const t={};return function e(n,r){Object.entries(n).forEach((n=>{let[a,i]=n;const o=r?`${r}.${a}`:a;var s;"object"==typeof(s=i)&&s&&Object.keys(s).length>0?e(i,o):t[o]=i}))}(e),t}},30226:(e,t,n)=>{"use strict";n.d(t,{_:()=>a,z:()=>i});var r=n(67294);const a=r.createContext(null);function i(e){let{children:t,value:n}=e;const i=r.useContext(a),o=(0,r.useMemo)((()=>function(e){let{parent:t,value:n}=e;if(!t){if(!n)throw new Error("Unexpected: no Docusaurus route context found");if(!("plugin"in n))throw new Error("Unexpected: Docusaurus topmost route context has no `plugin` attribute");return n}const r={...t.data,...n?.data};return{plugin:t.plugin,data:r}}({parent:i,value:n})),[i,n]);return r.createElement(a.Provider,{value:o},t)}},80143:(e,t,n)=>{"use strict";n.d(t,{Iw:()=>g,gA:()=>p,WS:()=>m,_r:()=>u,Jo:()=>v,zh:()=>f,yW:()=>b,gB:()=>h});var r=n(16550),a=n(52263),i=n(29935);function o(e,t){void 0===t&&(t={});const n=function(){const{globalData:e}=(0,a.Z)();return e}()[e];if(!n&&t.failfast)throw new Error(`Docusaurus plugin global data not found for "${e}" plugin.`);return n}const s=e=>e.versions.find((e=>e.isLast));function c(e,t){const n=s(e);return[...e.versions.filter((e=>e!==n)),n].find((e=>!!(0,r.LX)(t,{path:e.path,exact:!1,strict:!1})))}function l(e,t){const n=c(e,t),a=n?.docs.find((e=>!!(0,r.LX)(t,{path:e.path,exact:!0,strict:!1})));return{activeVersion:n,activeDoc:a,alternateDocVersions:a?function(t){const n={};return e.versions.forEach((e=>{e.docs.forEach((r=>{r.id===t&&(n[e.name]=r)}))})),n}(a.id):{}}}const d={},u=()=>o("docusaurus-plugin-content-docs")??d,f=e=>function(e,t,n){void 0===t&&(t=i.m),void 0===n&&(n={});const r=o(e)?.[t];if(!r&&n.failfast)throw new Error(`Docusaurus plugin global data not found for "${e}" plugin with id "${t}".`);return r}("docusaurus-plugin-content-docs",e,{failfast:!0});function p(e){void 0===e&&(e={});const t=u(),{pathname:n}=(0,r.TH)();return function(e,t,n){void 0===n&&(n={});const a=Object.entries(e).sort(((e,t)=>t[1].path.localeCompare(e[1].path))).find((e=>{let[,n]=e;return!!(0,r.LX)(t,{path:n.path,exact:!1,strict:!1})})),i=a?{pluginId:a[0],pluginData:a[1]}:void 0;if(!i&&n.failfast)throw new Error(`Can't find active docs plugin for "${t}" pathname, while it was expected to be found. Maybe you tried to use a docs feature that can only be used on a docs-related page? Existing docs plugin paths are: ${Object.values(e).map((e=>e.path)).join(", ")}`);return i}(t,n,e)}function m(e){void 0===e&&(e={});const t=p(e),{pathname:n}=(0,r.TH)();if(!t)return;return{activePlugin:t,activeVersion:c(t.pluginData,n)}}function h(e){return f(e).versions}function b(e){const t=f(e);return s(t)}function g(e){const t=f(e),{pathname:n}=(0,r.TH)();return l(t,n)}function v(e){const t=f(e),{pathname:n}=(0,r.TH)();return function(e,t){const n=s(e);return{latestDocSuggestion:l(e,t).alternateDocVersions[n.name],latestVersionSuggestion:n}}(t,n)}},18320:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>i});var r=n(74865),a=n.n(r);a().configure({showSpinner:!1});const i={onRouteUpdate(e){let{location:t,previousLocation:n}=e;if(n&&t.pathname!==n.pathname){const e=window.setTimeout((()=>{a().start()}),200);return()=>window.clearTimeout(e)}},onRouteDidUpdate(){a().done()}}},3310:(e,t,n)=>{"use strict";n.r(t);var r=n(87410),a=n(36809);!function(e){const{themeConfig:{prism:t}}=a.default,{additionalLanguages:r}=t;globalThis.Prism=e,r.forEach((e=>{n(99768)(`./prism-${e}`)})),delete globalThis.Prism}(r.Z)},78193:(e,t,n)=>{"use strict";n.d(t,{Z:()=>nn});var r=n(67294),a=n(86010),i=n(44763),o=n(10833),s=n(55225),c=n(35281),l=n(19727);const d="skipToContent_fXgn";function u(){return r.createElement(s.l,{className:d})}var f=n(86668),p=n(59689),m=n(87462),h=n(95999);function b(e){let{width:t=21,height:n=21,color:a="currentColor",strokeWidth:i=1.2,className:o,...s}=e;return r.createElement("svg",(0,m.Z)({viewBox:"0 0 15 15",width:t,height:n},s),r.createElement("g",{stroke:a,strokeWidth:i},r.createElement("path",{d:"M.75.75l13.5 13.5M14.25.75L.75 14.25"})))}const g="closeButton_CVFx";function v(e){return r.createElement("button",(0,m.Z)({type:"button","aria-label":(0,h.I)({id:"theme.AnnouncementBar.closeButtonAriaLabel",message:"Close",description:"The ARIA label for close button of announcement bar"})},e,{className:(0,a.Z)("clean-btn close",g,e.className)}),r.createElement(b,{width:14,height:14,strokeWidth:3.1}))}const y="content_knG7";function k(e){const{announcementBar:t}=(0,f.L)(),{content:n}=t;return r.createElement("div",(0,m.Z)({},e,{className:(0,a.Z)(y,e.className),dangerouslySetInnerHTML:{__html:n}}))}const S="announcementBar_mb4j",w="announcementBarPlaceholder_vyr4",E="announcementBarClose_gvF7",x="announcementBarContent_xLdY";function C(){const{announcementBar:e}=(0,f.L)(),{isActive:t,close:n}=(0,p.nT)();if(!t)return null;const{backgroundColor:a,textColor:i,isCloseable:o}=e;return r.createElement("div",{className:S,style:{backgroundColor:a,color:i},role:"banner"},o&&r.createElement("div",{className:w}),r.createElement(k,{className:x}),o&&r.createElement(v,{onClick:n,className:E}))}var _=n(93163),I=n(99445),T=n(69800),P=n(76857);function A(e){let{header:t,primaryMenu:n,secondaryMenu:i}=e;const{shown:o}=(0,P.Y)();return r.createElement("div",{className:"navbar-sidebar"},t,r.createElement("div",{className:(0,a.Z)("navbar-sidebar__items",{"navbar-sidebar__items--show-secondary":o})},r.createElement("div",{className:"navbar-sidebar__item menu"},n),r.createElement("div",{className:"navbar-sidebar__item menu"},i)))}var R=n(92949),L=n(72389);function O(e){return r.createElement("svg",(0,m.Z)({viewBox:"0 0 24 24",width:24,height:24},e),r.createElement("path",{fill:"currentColor",d:"M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"}))}function N(e){return r.createElement("svg",(0,m.Z)({viewBox:"0 0 24 24",width:24,height:24},e),r.createElement("path",{fill:"currentColor",d:"M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"}))}const M={toggle:"toggle_vylO",toggleButton:"toggleButton_gllP",darkToggleIcon:"darkToggleIcon_wfgR",lightToggleIcon:"lightToggleIcon_pyhR",toggleButtonDisabled:"toggleButtonDisabled_aARS"};function D(e){let{className:t,value:n,onChange:i}=e;const o=(0,L.Z)(),s=(0,h.I)({message:"Switch between dark and light mode (currently {mode})",id:"theme.colorToggle.ariaLabel",description:"The ARIA label for the navbar color mode toggle"},{mode:"dark"===n?(0,h.I)({message:"dark mode",id:"theme.colorToggle.ariaLabel.mode.dark",description:"The name for the dark color mode"}):(0,h.I)({message:"light mode",id:"theme.colorToggle.ariaLabel.mode.light",description:"The name for the light color mode"})});return r.createElement("div",{className:(0,a.Z)(M.toggle,t)},r.createElement("button",{className:(0,a.Z)("clean-btn",M.toggleButton,!o&&M.toggleButtonDisabled),type:"button",onClick:()=>i("dark"===n?"light":"dark"),disabled:!o,title:s,"aria-label":s,"aria-live":"polite"},r.createElement(O,{className:(0,a.Z)(M.toggleIcon,M.lightToggleIcon)}),r.createElement(N,{className:(0,a.Z)(M.toggleIcon,M.darkToggleIcon)})))}const z=r.memo(D);function F(e){let{className:t}=e;const n=(0,f.L)().colorMode.disableSwitch,{colorMode:a,setColorMode:i}=(0,R.I)();return n?null:r.createElement(z,{className:t,value:a,onChange:i})}var B=n(21327);function $(){return r.createElement(B.Z,{className:"navbar__brand",imageClassName:"navbar__logo",titleClassName:"navbar__title text--truncate"})}function U(){const e=(0,_.e)();return r.createElement("button",{type:"button","aria-label":(0,h.I)({id:"theme.docs.sidebar.closeSidebarButtonAriaLabel",message:"Close navigation bar",description:"The ARIA label for close button of mobile sidebar"}),className:"clean-btn navbar-sidebar__close",onClick:()=>e.toggle()},r.createElement(b,{color:"var(--ifm-color-emphasis-600)"}))}function j(){return r.createElement("div",{className:"navbar-sidebar__brand"},r.createElement($,null),r.createElement(F,{className:"margin-right--md"}),r.createElement(U,null))}var V=n(39960),Z=n(44996),H=n(13919),W=n(98022),G=n(19548);function q(e){let{activeBasePath:t,activeBaseRegex:n,to:a,href:i,label:o,html:s,isDropdownLink:c,prependBaseUrlToHref:l,...d}=e;const u=(0,Z.Z)(a),f=(0,Z.Z)(t),p=(0,Z.Z)(i,{forcePrependBaseUrl:!0}),h=o&&i&&!(0,H.Z)(i),b=s?{dangerouslySetInnerHTML:{__html:s}}:{children:r.createElement(r.Fragment,null,o,h&&r.createElement(G.Z,c&&{width:12,height:12}))};return i?r.createElement(V.Z,(0,m.Z)({href:l?p:i},d,b)):r.createElement(V.Z,(0,m.Z)({to:u,isNavLink:!0},(t||n)&&{isActive:(e,t)=>n?(0,W.F)(n,t.pathname):t.pathname.startsWith(f)},d,b))}function K(e){let{className:t,isDropdownItem:n=!1,...i}=e;const o=r.createElement(q,(0,m.Z)({className:(0,a.Z)(n?"dropdown__link":"navbar__item navbar__link",t),isDropdownLink:n},i));return n?r.createElement("li",null,o):o}function Y(e){let{className:t,isDropdownItem:n,...i}=e;return r.createElement("li",{className:"menu__list-item"},r.createElement(q,(0,m.Z)({className:(0,a.Z)("menu__link",t)},i)))}function Q(e){let{mobile:t=!1,position:n,...a}=e;const i=t?Y:K;return r.createElement(i,(0,m.Z)({},a,{activeClassName:a.activeClassName??(t?"menu__link--active":"navbar__link--active")}))}var X=n(86043),J=n(48596),ee=n(51753);function te(e,t){return e.some((e=>function(e,t){return!!(0,J.Mg)(e.to,t)||!!(0,W.F)(e.activeBaseRegex,t)||!(!e.activeBasePath||!t.startsWith(e.activeBasePath))}(e,t)))}function ne(e){let{items:t,position:n,className:i,onClick:o,...s}=e;const c=(0,r.useRef)(null),[l,d]=(0,r.useState)(!1);return(0,r.useEffect)((()=>{const e=e=>{c.current&&!c.current.contains(e.target)&&d(!1)};return document.addEventListener("mousedown",e),document.addEventListener("touchstart",e),()=>{document.removeEventListener("mousedown",e),document.removeEventListener("touchstart",e)}}),[c]),r.createElement("div",{ref:c,className:(0,a.Z)("navbar__item","dropdown","dropdown--hoverable",{"dropdown--right":"right"===n,"dropdown--show":l})},r.createElement(q,(0,m.Z)({"aria-haspopup":"true","aria-expanded":l,role:"button",href:s.to?void 0:"#",className:(0,a.Z)("navbar__link",i)},s,{onClick:s.to?void 0:e=>e.preventDefault(),onKeyDown:e=>{"Enter"===e.key&&(e.preventDefault(),d(!l))}}),s.children??s.label),r.createElement("ul",{className:"dropdown__menu"},t.map(((e,n)=>r.createElement(De,(0,m.Z)({isDropdownItem:!0,onKeyDown:e=>{if(n===t.length-1&&"Tab"===e.key){e.preventDefault(),d(!1);const t=c.current.nextElementSibling;if(t){(t instanceof HTMLAnchorElement?t:t.querySelector("a")).focus()}}},activeClassName:"dropdown__link--active"},e,{key:n}))))))}function re(e){let{items:t,className:n,position:i,onClick:o,...s}=e;const c=(0,ee.b)(),l=te(t,c),{collapsed:d,toggleCollapsed:u,setCollapsed:f}=(0,X.u)({initialState:()=>!l});return(0,r.useEffect)((()=>{l&&f(!l)}),[c,l,f]),r.createElement("li",{className:(0,a.Z)("menu__list-item",{"menu__list-item--collapsed":d})},r.createElement(q,(0,m.Z)({role:"button",className:(0,a.Z)("menu__link menu__link--sublist menu__link--sublist-caret",n)},s,{onClick:e=>{e.preventDefault(),u()}}),s.children??s.label),r.createElement(X.z,{lazy:!0,as:"ul",className:"menu__list",collapsed:d},t.map(((e,t)=>r.createElement(De,(0,m.Z)({mobile:!0,isDropdownItem:!0,onClick:o,activeClassName:"menu__link--active"},e,{key:t}))))))}function ae(e){let{mobile:t=!1,...n}=e;const a=t?re:ne;return r.createElement(a,n)}var ie=n(52263),oe=n(94711),se=n(16550);function ce(e){let{width:t=20,height:n=20,...a}=e;return r.createElement("svg",(0,m.Z)({viewBox:"0 0 24 24",width:t,height:n,"aria-hidden":!0},a),r.createElement("path",{fill:"currentColor",d:"M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z"}))}const le="iconLanguage_nlXk";var de=n(73935),ue=n(35742),fe=n(66177);function pe(){return r.createElement("svg",{width:"15",height:"15",className:"DocSearch-Control-Key-Icon"},r.createElement("path",{d:"M4.505 4.496h2M5.505 5.496v5M8.216 4.496l.055 5.993M10 7.5c.333.333.5.667.5 1v2M12.326 4.5v5.996M8.384 4.496c1.674 0 2.116 0 2.116 1.5s-.442 1.5-2.116 1.5M3.205 9.303c-.09.448-.277 1.21-1.241 1.203C1 10.5.5 9.513.5 8V7c0-1.57.5-2.5 1.464-2.494.964.006 1.134.598 1.24 1.342M12.553 10.5h1.953",strokeWidth:"1.2",stroke:"currentColor",fill:"none",strokeLinecap:"square"}))}var me=n(20830),he=["translations"];function be(){return be=Object.assign||function(e){for(var t=1;te.length)&&(t=e.length);for(var n=0,r=new Array(t);n=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var ke="Ctrl";var Se=r.forwardRef((function(e,t){var n=e.translations,a=void 0===n?{}:n,i=ye(e,he),o=a.buttonText,s=void 0===o?"Search":o,c=a.buttonAriaLabel,l=void 0===c?"Search":c,d=ge((0,r.useState)(null),2),u=d[0],f=d[1];return(0,r.useEffect)((function(){"undefined"!=typeof navigator&&(/(Mac|iPhone|iPod|iPad)/i.test(navigator.platform)?f("\u2318"):f(ke))}),[]),r.createElement("button",be({type:"button",className:"DocSearch DocSearch-Button","aria-label":l},i,{ref:t}),r.createElement("span",{className:"DocSearch-Button-Container"},r.createElement(me.W,null),r.createElement("span",{className:"DocSearch-Button-Placeholder"},s)),r.createElement("span",{className:"DocSearch-Button-Keys"},null!==u&&r.createElement(r.Fragment,null,r.createElement("kbd",{className:"DocSearch-Button-Key"},u===ke?r.createElement(pe,null):u),r.createElement("kbd",{className:"DocSearch-Button-Key"},"K"))))})),we=n(43320);const Ee={button:{buttonText:(0,h.I)({id:"theme.SearchBar.label",message:"Search",description:"The ARIA label and placeholder for search button"}),buttonAriaLabel:(0,h.I)({id:"theme.SearchBar.label",message:"Search",description:"The ARIA label and placeholder for search button"})},modal:{searchBox:{resetButtonTitle:(0,h.I)({id:"theme.SearchModal.searchBox.resetButtonTitle",message:"Clear the query",description:"The label and ARIA label for search box reset button"}),resetButtonAriaLabel:(0,h.I)({id:"theme.SearchModal.searchBox.resetButtonTitle",message:"Clear the query",description:"The label and ARIA label for search box reset button"}),cancelButtonText:(0,h.I)({id:"theme.SearchModal.searchBox.cancelButtonText",message:"Cancel",description:"The label and ARIA label for search box cancel button"}),cancelButtonAriaLabel:(0,h.I)({id:"theme.SearchModal.searchBox.cancelButtonText",message:"Cancel",description:"The label and ARIA label for search box cancel button"})},startScreen:{recentSearchesTitle:(0,h.I)({id:"theme.SearchModal.startScreen.recentSearchesTitle",message:"Recent",description:"The title for recent searches"}),noRecentSearchesText:(0,h.I)({id:"theme.SearchModal.startScreen.noRecentSearchesText",message:"No recent searches",description:"The text when no recent searches"}),saveRecentSearchButtonTitle:(0,h.I)({id:"theme.SearchModal.startScreen.saveRecentSearchButtonTitle",message:"Save this search",description:"The label for save recent search button"}),removeRecentSearchButtonTitle:(0,h.I)({id:"theme.SearchModal.startScreen.removeRecentSearchButtonTitle",message:"Remove this search from history",description:"The label for remove recent search button"}),favoriteSearchesTitle:(0,h.I)({id:"theme.SearchModal.startScreen.favoriteSearchesTitle",message:"Favorite",description:"The title for favorite searches"}),removeFavoriteSearchButtonTitle:(0,h.I)({id:"theme.SearchModal.startScreen.removeFavoriteSearchButtonTitle",message:"Remove this search from favorites",description:"The label for remove favorite search button"})},errorScreen:{titleText:(0,h.I)({id:"theme.SearchModal.errorScreen.titleText",message:"Unable to fetch results",description:"The title for error screen of search modal"}),helpText:(0,h.I)({id:"theme.SearchModal.errorScreen.helpText",message:"You might want to check your network connection.",description:"The help text for error screen of search modal"})},footer:{selectText:(0,h.I)({id:"theme.SearchModal.footer.selectText",message:"to select",description:"The explanatory text of the action for the enter key"}),selectKeyAriaLabel:(0,h.I)({id:"theme.SearchModal.footer.selectKeyAriaLabel",message:"Enter key",description:"The ARIA label for the Enter key button that makes the selection"}),navigateText:(0,h.I)({id:"theme.SearchModal.footer.navigateText",message:"to navigate",description:"The explanatory text of the action for the Arrow up and Arrow down key"}),navigateUpKeyAriaLabel:(0,h.I)({id:"theme.SearchModal.footer.navigateUpKeyAriaLabel",message:"Arrow up",description:"The ARIA label for the Arrow up key button that makes the navigation"}),navigateDownKeyAriaLabel:(0,h.I)({id:"theme.SearchModal.footer.navigateDownKeyAriaLabel",message:"Arrow down",description:"The ARIA label for the Arrow down key button that makes the navigation"}),closeText:(0,h.I)({id:"theme.SearchModal.footer.closeText",message:"to close",description:"The explanatory text of the action for Escape key"}),closeKeyAriaLabel:(0,h.I)({id:"theme.SearchModal.footer.closeKeyAriaLabel",message:"Escape key",description:"The ARIA label for the Escape key button that close the modal"}),searchByText:(0,h.I)({id:"theme.SearchModal.footer.searchByText",message:"Search by",description:"The text explain that the search is making by Algolia"})},noResultsScreen:{noResultsText:(0,h.I)({id:"theme.SearchModal.noResultsScreen.noResultsText",message:"No results for",description:"The text explains that there are no results for the following search"}),suggestedQueryText:(0,h.I)({id:"theme.SearchModal.noResultsScreen.suggestedQueryText",message:"Try searching for",description:"The text for the suggested query when no results are found for the following search"}),reportMissingResultsText:(0,h.I)({id:"theme.SearchModal.noResultsScreen.reportMissingResultsText",message:"Believe this query should return results?",description:"The text for the question where the user thinks there are missing results"}),reportMissingResultsLinkText:(0,h.I)({id:"theme.SearchModal.noResultsScreen.reportMissingResultsLinkText",message:"Let us know.",description:"The text for the link to report missing results"})}},placeholder:(0,h.I)({id:"theme.SearchModal.placeholder",message:"Search docs",description:"The placeholder of the input of the DocSearch pop-up modal"})};let xe=null;function Ce(e){let{hit:t,children:n}=e;return r.createElement(V.Z,{to:t.url},n)}function _e(e){let{state:t,onClose:n}=e;const{generateSearchPageLink:a}=(0,fe.O)();return r.createElement(V.Z,{to:a(t.query),onClick:n},r.createElement(h.Z,{id:"theme.SearchBar.seeAll",values:{count:t.context.nbHits}},"See all {count} results"))}function Ie(e){let{contextualSearch:t,externalUrlRegex:a,...i}=e;const{siteMetadata:o}=(0,ie.Z)(),s=function(){const{locale:e,tags:t}=(0,we._q)();return[`language:${e}`,t.map((e=>`docusaurus_tag:${e}`))]}(),c=i.searchParameters?.facetFilters??[],l=t?function(e,t){const n=e=>"string"==typeof e?[e]:e;return[...n(e),...n(t)]}(s,c):c,d={...i.searchParameters,facetFilters:l},{withBaseUrl:u}=(0,Z.C)(),f=(0,se.k6)(),p=(0,r.useRef)(null),h=(0,r.useRef)(null),[b,g]=(0,r.useState)(!1),[v,y]=(0,r.useState)(void 0),k=(0,r.useCallback)((()=>xe?Promise.resolve():Promise.all([n.e(6780).then(n.bind(n,76780)),Promise.all([n.e(532),n.e(6945)]).then(n.bind(n,46945)),Promise.all([n.e(532),n.e(8894)]).then(n.bind(n,18894))]).then((e=>{let[{DocSearchModal:t}]=e;xe=t}))),[]),S=(0,r.useCallback)((()=>{k().then((()=>{p.current=document.createElement("div"),document.body.insertBefore(p.current,document.body.firstChild),g(!0)}))}),[k,g]),w=(0,r.useCallback)((()=>{g(!1),p.current?.remove()}),[g]),E=(0,r.useCallback)((e=>{k().then((()=>{g(!0),y(e.key)}))}),[k,g,y]),x=(0,r.useRef)({navigate(e){let{itemUrl:t}=e;(0,W.F)(a,t)?window.location.href=t:f.push(t)}}).current,C=(0,r.useRef)((e=>e.map((e=>{if((0,W.F)(a,e.url))return e;const t=new URL(e.url);return{...e,url:u(`${t.pathname}${t.hash}`)}})))).current,_=(0,r.useMemo)((()=>e=>r.createElement(_e,(0,m.Z)({},e,{onClose:w}))),[w]),I=(0,r.useCallback)((e=>(e.addAlgoliaAgent("docusaurus",o.docusaurusVersion),e)),[o.docusaurusVersion]);return function(e){var t=e.isOpen,n=e.onOpen,a=e.onClose,i=e.onInput,o=e.searchButtonRef;r.useEffect((function(){function e(e){(27===e.keyCode&&t||"k"===e.key.toLowerCase()&&(e.metaKey||e.ctrlKey)||!function(e){var t=e.target,n=t.tagName;return t.isContentEditable||"INPUT"===n||"SELECT"===n||"TEXTAREA"===n}(e)&&"/"===e.key&&!t)&&(e.preventDefault(),t?a():document.body.classList.contains("DocSearch--active")||document.body.classList.contains("DocSearch--active")||n()),o&&o.current===document.activeElement&&i&&/[a-zA-Z0-9]/.test(String.fromCharCode(e.keyCode))&&i(e)}return window.addEventListener("keydown",e),function(){window.removeEventListener("keydown",e)}}),[t,n,a,i,o])}({isOpen:b,onOpen:S,onClose:w,onInput:E,searchButtonRef:h}),r.createElement(r.Fragment,null,r.createElement(ue.Z,null,r.createElement("link",{rel:"preconnect",href:`https://${i.appId}-dsn.algolia.net`,crossOrigin:"anonymous"})),r.createElement(Se,{onTouchStart:k,onFocus:k,onMouseOver:k,onClick:S,ref:h,translations:Ee.button}),b&&xe&&p.current&&(0,de.createPortal)(r.createElement(xe,(0,m.Z)({onClose:w,initialScrollY:window.scrollY,initialQuery:v,navigator:x,transformItems:C,hitComponent:Ce,transformSearchClient:I},i.searchPagePath&&{resultsFooterComponent:_},i,{searchParameters:d,placeholder:Ee.placeholder,translations:Ee.modal})),p.current))}function Te(){const{siteConfig:e}=(0,ie.Z)();return r.createElement(Ie,e.themeConfig.algolia)}const Pe="searchBox_ZlJk";function Ae(e){let{children:t,className:n}=e;return r.createElement("div",{className:(0,a.Z)(n,Pe)},t)}var Re=n(80143),Le=n(53438);var Oe=n(60373);const Ne=e=>e.docs.find((t=>t.id===e.mainDocId));const Me={default:Q,localeDropdown:function(e){let{mobile:t,dropdownItemsBefore:n,dropdownItemsAfter:a,...i}=e;const{i18n:{currentLocale:o,locales:s,localeConfigs:c}}=(0,ie.Z)(),l=(0,oe.l)(),{search:d,hash:u}=(0,se.TH)(),f=[...n,...s.map((e=>{const n=`${`pathname://${l.createUrl({locale:e,fullyQualified:!1})}`}${d}${u}`;return{label:c[e].label,lang:c[e].htmlLang,to:n,target:"_self",autoAddBaseUrl:!1,className:e===o?t?"menu__link--active":"dropdown__link--active":""}})),...a],p=t?(0,h.I)({message:"Languages",id:"theme.navbar.mobileLanguageDropdown.label",description:"The label for the mobile language switcher dropdown"}):c[o].label;return r.createElement(ae,(0,m.Z)({},i,{mobile:t,label:r.createElement(r.Fragment,null,r.createElement(ce,{className:le}),p),items:f}))},search:function(e){let{mobile:t,className:n}=e;return t?null:r.createElement(Ae,{className:n},r.createElement(Te,null))},dropdown:ae,html:function(e){let{value:t,className:n,mobile:i=!1,isDropdownItem:o=!1}=e;const s=o?"li":"div";return r.createElement(s,{className:(0,a.Z)({navbar__item:!i&&!o,"menu__list-item":i},n),dangerouslySetInnerHTML:{__html:t}})},doc:function(e){let{docId:t,label:n,docsPluginId:a,...i}=e;const{activeDoc:o}=(0,Re.Iw)(a),s=(0,Le.vY)(t,a);return null===s?null:r.createElement(Q,(0,m.Z)({exact:!0},i,{isActive:()=>o?.path===s.path||!!o?.sidebar&&o.sidebar===s.sidebar,label:n??s.id,to:s.path}))},docSidebar:function(e){let{sidebarId:t,label:n,docsPluginId:a,...i}=e;const{activeDoc:o}=(0,Re.Iw)(a),s=(0,Le.oz)(t,a).link;if(!s)throw new Error(`DocSidebarNavbarItem: Sidebar with ID "${t}" doesn't have anything to be linked to.`);return r.createElement(Q,(0,m.Z)({exact:!0},i,{isActive:()=>o?.sidebar===t,label:n??s.label,to:s.path}))},docsVersion:function(e){let{label:t,to:n,docsPluginId:a,...i}=e;const o=(0,Le.lO)(a)[0],s=t??o.label,c=n??(e=>e.docs.find((t=>t.id===e.mainDocId)))(o).path;return r.createElement(Q,(0,m.Z)({},i,{label:s,to:c}))},docsVersionDropdown:function(e){let{mobile:t,docsPluginId:n,dropdownActiveClassDisabled:a,dropdownItemsBefore:i,dropdownItemsAfter:o,...s}=e;const{search:c,hash:l}=(0,se.TH)(),d=(0,Re.Iw)(n),u=(0,Re.gB)(n),{savePreferredVersionName:f}=(0,Oe.J)(n),p=[...i,...u.map((e=>{const t=d.alternateDocVersions[e.name]??Ne(e);return{label:e.label,to:`${t.path}${c}${l}`,isActive:()=>e===d.activeVersion,onClick:()=>f(e.name)}})),...o],b=(0,Le.lO)(n)[0],g=t&&p.length>1?(0,h.I)({id:"theme.navbar.mobileVersionsDropdown.label",message:"Versions",description:"The label for the navbar versions dropdown on mobile view"}):b.label,v=t&&p.length>1?void 0:Ne(b).path;return p.length<=1?r.createElement(Q,(0,m.Z)({},s,{mobile:t,label:g,to:v,isActive:a?()=>!1:void 0})):r.createElement(ae,(0,m.Z)({},s,{mobile:t,label:g,to:v,items:p,isActive:a?()=>!1:void 0}))}};function De(e){let{type:t,...n}=e;const a=function(e,t){return e&&"default"!==e?e:"items"in t?"dropdown":"default"}(t,n),i=Me[a];if(!i)throw new Error(`No NavbarItem component found for type "${t}".`);return r.createElement(i,n)}function ze(){const e=(0,_.e)(),t=(0,f.L)().navbar.items;return r.createElement("ul",{className:"menu__list"},t.map(((t,n)=>r.createElement(De,(0,m.Z)({mobile:!0},t,{onClick:()=>e.toggle(),key:n})))))}function Fe(e){return r.createElement("button",(0,m.Z)({},e,{type:"button",className:"clean-btn navbar-sidebar__back"}),r.createElement(h.Z,{id:"theme.navbar.mobileSidebarSecondaryMenu.backButtonLabel",description:"The label of the back button to return to main menu, inside the mobile navbar sidebar secondary menu (notably used to display the docs sidebar)"},"\u2190 Back to main menu"))}function Be(){const e=0===(0,f.L)().navbar.items.length,t=(0,P.Y)();return r.createElement(r.Fragment,null,!e&&r.createElement(Fe,{onClick:()=>t.hide()}),t.content)}function $e(){const e=(0,_.e)();return(0,T.N)(e.shown),e.shouldRender?r.createElement(A,{header:r.createElement(j,null),primaryMenu:r.createElement(ze,null),secondaryMenu:r.createElement(Be,null)}):null}const Ue="navbarHideable_m1mJ",je="navbarHidden_jGov";function Ve(e){return r.createElement("div",(0,m.Z)({role:"presentation"},e,{className:(0,a.Z)("navbar-sidebar__backdrop",e.className)}))}function Ze(e){let{children:t}=e;const{navbar:{hideOnScroll:n,style:i}}=(0,f.L)(),o=(0,_.e)(),{navbarRef:s,isNavbarVisible:c}=(0,I.c)(n);return r.createElement("nav",{ref:s,className:(0,a.Z)("navbar","navbar--fixed-top",n&&[Ue,!c&&je],{"navbar--dark":"dark"===i,"navbar--primary":"primary"===i,"navbar-sidebar--show":o.shown})},t,r.createElement(Ve,{onClick:o.toggle}),r.createElement($e,null))}var He=n(58978);function We(e){let{width:t=30,height:n=30,className:a,...i}=e;return r.createElement("svg",(0,m.Z)({className:a,width:t,height:n,viewBox:"0 0 30 30","aria-hidden":"true"},i),r.createElement("path",{stroke:"currentColor",strokeLinecap:"round",strokeMiterlimit:"10",strokeWidth:"2",d:"M4 7h22M4 15h22M4 23h22"}))}function Ge(){const{toggle:e,shown:t}=(0,_.e)();return r.createElement("button",{onClick:e,"aria-label":(0,h.I)({id:"theme.docs.sidebar.toggleSidebarButtonAriaLabel",message:"Toggle navigation bar",description:"The ARIA label for hamburger menu button of mobile navigation"}),"aria-expanded":t,className:"navbar__toggle clean-btn",type:"button"},r.createElement(We,null))}const qe="colorModeToggle_x44X";var Ke=n(14141);function Ye(e){let{items:t,isMobile:n}=e;const[a,i]=function(e){function t(e){return e.href?.length>0??!1}return[e.filter((e=>!t(e))),e.filter(t)]}(t);return r.createElement(r.Fragment,null,a.map(((e,t)=>r.createElement(De,(0,m.Z)({},e,{key:t})))),!n&&r.createElement(Qe,null),i.map(((e,t)=>r.createElement(De,(0,m.Z)({},e,{key:t})))))}const Qe=Ke.ZP.div` +/*! For license information please see main.4634d37c.js.LICENSE.txt */ +(self.webpackChunkdemo=self.webpackChunkdemo||[]).push([[179],{20830:(e,t,n)=>{"use strict";n.d(t,{W:()=>a});var r=n(67294);function a(){return r.createElement("svg",{width:"20",height:"20",className:"DocSearch-Search-Icon",viewBox:"0 0 20 20"},r.createElement("path",{d:"M14.386 14.386l4.0877 4.0877-4.0877-4.0877c-2.9418 2.9419-7.7115 2.9419-10.6533 0-2.9419-2.9418-2.9419-7.7115 0-10.6533 2.9418-2.9419 7.7115-2.9419 10.6533 0 2.9419 2.9418 2.9419 7.7115 0 10.6533z",stroke:"currentColor",fill:"none",fillRule:"evenodd",strokeLinecap:"round",strokeLinejoin:"round"}))}},723:(e,t,n)=>{"use strict";n.d(t,{Z:()=>p});var r=n(67294),a=n(87462),i=n(68356),o=n.n(i),s=n(16887);const c={"0032f96f":[()=>n.e(100).then(n.bind(n,71659)),"@site/docs/sdk/reference/enums/EnvOptions.md",71659],"00ff508f":[()=>n.e(6811).then(n.bind(n,49589)),"@site/docs/protocol/data-schemes/vote.md",49589],"0128e05f":[()=>n.e(2636).then(n.bind(n,58146)),"@site/docs/sdk/reference/classes/FileAPI.md",58146],"01f4109f":[()=>Promise.all([n.e(532),n.e(2284),n.e(9052),n.e(6057),n.e(6882),n.e(6781)]).then(n.bind(n,84522)),"@site/docs/vocdoni-api/list-account-received-and-sent-token-transfers.api.mdx",84522],"03c6674d":[()=>n.e(4720).then(n.bind(n,56675)),"@site/docs/sdk/reference/classes/MultiChoiceElection.md",56675],"03d8c746":[()=>n.e(9967).then(n.bind(n,69109)),"@site/docs/sdk/reference/classes/FileService.md",69109],"080a9ee7":[()=>n.e(3913).then(n.bind(n,62998)),"@site/docs/sdk/reference/enums/CensusTypeEnum.md",62998],"08636a24":[()=>n.e(374).then(n.bind(n,21054)),"@site/docs/sdk/reference/classes/ElectionService.md",21054],"09cca914":[()=>n.e(9410).then(n.bind(n,94455)),"@site/docs/sdk/reference/interfaces/ITallyMode.md",94455],"0a3f3d31":[()=>Promise.all([n.e(532),n.e(2284),n.e(9052),n.e(6057),n.e(6882),n.e(5122)]).then(n.bind(n,61890)),"@site/docs/vocdoni-api/list-election-votes.api.mdx",61890],"0bcfcae9":[()=>n.e(6891).then(n.bind(n,36502)),"@site/docs/sdk/reference/classes/Election.md",36502],"0e384e19":[()=>n.e(9671).then(n.bind(n,59881)),"@site/docs/intro.md",59881],"0f556ffa":[()=>n.e(2467).then(n.bind(n,8207)),"@site/docs/sdk/reference/interfaces/ICensus3TokenTypesResponse.md",8207],"0fa69d70":[()=>n.e(1371).then(n.bind(n,13302)),"@site/docs/sdk/reference/interfaces/ICensusPublishResponse.md",13302],"0fc92a72":[()=>n.e(5253).then(n.bind(n,27084)),"@site/docs/sdk/reference/interfaces/ICensus3ValidatePredicateChild.md",27084],"109756a8":[()=>n.e(2870).then(n.bind(n,88064)),"@site/docs/sdk/reference/classes/ApprovalElection.md",88064],"10dce6d4":[()=>n.e(7493).then(n.bind(n,71333)),"@site/docs/sdk/reference/interfaces/IAccountsListResponse.md",71333],"11667d91":[()=>n.e(1425).then(n.bind(n,50052)),"@site/docs/sdk/reference/interfaces/IMultiChoiceElectionParameters.md",50052],"11d03c56":[()=>n.e(8759).then(n.bind(n,78989)),"@site/docs/protocol/anonymity/on-chain.md",78989],"123fab3b":[()=>Promise.all([n.e(532),n.e(2284),n.e(1739)]).then(n.bind(n,9003)),"@site/docs/vocdoni-api/votes.tag.mdx",9003],"134f4ebc":[()=>Promise.all([n.e(532),n.e(2284),n.e(9052),n.e(6057),n.e(6882),n.e(738)]).then(n.bind(n,6002)),"@site/docs/vocdoni-api/set-wallet-account.api.mdx",6002],"13df6360":[()=>Promise.all([n.e(532),n.e(2284),n.e(9052),n.e(6057),n.e(6882),n.e(6499)]).then(n.bind(n,11349)),"@site/docs/vocdoni-api/price-factors-information.api.mdx",11349],"15bb616c":[()=>n.e(830).then(n.bind(n,92234)),"@site/docs/protocol/data-schemes/election.md",92234],"16c4bb07":[()=>n.e(7533).then(n.bind(n,21852)),"@site/docs/sdk/reference/interfaces/ICensus3StrategyHoldersResponse.md",21852],"16e8ae75":[()=>n.e(6418).then(n.bind(n,61593)),"@site/docs/sdk/reference/interfaces/IElectionListFilter.md",61593],"1821d9d7":[()=>n.e(1510).then(n.bind(n,3253)),"@site/docs/sdk/reference/interfaces/ICensus3StrategyEstimationQueueResponse.md",3253],"1a4e3797":[()=>Promise.all([n.e(532),n.e(7920)]).then(n.bind(n,39172)),"@theme/SearchPage",39172],"1be78505":[()=>Promise.all([n.e(532),n.e(9514)]).then(n.bind(n,40683)),"@theme/DocPage",40683],"1c3bce93":[()=>n.e(1414).then(n.bind(n,89396)),"@site/docs/sdk/reference/classes/PublishedCensus.md",89396],"1cd58b57":[()=>Promise.all([n.e(532),n.e(2284),n.e(9052),n.e(6057),n.e(6882),n.e(8545)]).then(n.bind(n,9594)),"@site/docs/vocdoni-api/import-census-database.api.mdx",9594],"1d5be7b1":[()=>n.e(2428).then(n.bind(n,49986)),"@site/docs/protocol/census/on-chain/on-chain.md",49986],"1df93b7f":[()=>Promise.all([n.e(532),n.e(2284),n.e(9052),n.e(3750),n.e(3237)]).then(n.bind(n,39884)),"@site/src/pages/index.tsx",39884],"1e6527e1":[()=>n.e(4719).then(n.bind(n,7490)),"@site/docs/sdk/reference/interfaces/Tx.md",7490],"1e8e5e9a":[()=>n.e(4881).then(n.bind(n,94067)),"@site/docs/sdk/reference/classes/ElectionAPI.md",94067],"1ed63671":[()=>n.e(7998).then(n.bind(n,92064)),"@site/docs/sdk/reference/enums/TransactionType.md",92064],"1edcfddb":[()=>n.e(5288).then(n.bind(n,88593)),"@site/docs/sdk/reference/interfaces/ServiceProperties.md",88593],22155637:[()=>Promise.all([n.e(532),n.e(2284),n.e(9052),n.e(6057),n.e(6882),n.e(5268)]).then(n.bind(n,95321)),"@site/docs/vocdoni-api/list-validators.api.mdx",95321],"2340828a":[()=>n.e(4376).then(n.bind(n,20137)),"@site/docs/sdk/reference/classes/FaucetService.md",20137],"23e9e137":[()=>n.e(8016).then(n.bind(n,59841)),"@site/docs/sdk/reference/interfaces/ICensusExportResponse.md",59841],"24ee6be4":[()=>n.e(5326).then(n.bind(n,72109)),"@site/docs/sdk/reference/interfaces/ICensusParticipant.md",72109],"260b3d09":[()=>n.e(5214).then(n.bind(n,8077)),"@site/docs/sdk/reference/classes/Service.md",8077],"2730d8e4":[()=>n.e(8597).then(n.bind(n,81169)),"@site/docs/sdk/reference/interfaces/SetProcessTx.md",81169],29694922:[()=>n.e(6178).then(n.bind(n,89571)),"@site/docs/ui-components/02-Organization.mdx",89571],"29c8ca5d":[()=>n.e(4463).then(n.bind(n,84677)),"@site/docs/sdk/reference/classes/VoteAPI.md",84677],"2dbb09aa":[()=>Promise.all([n.e(532),n.e(2284),n.e(9052),n.e(6057),n.e(6882),n.e(5378)]).then(n.bind(n,14010)),"@site/docs/vocdoni-api/count-election-votes.api.mdx",14010],"2eb5a7fb":[()=>Promise.all([n.e(532),n.e(2284),n.e(9052),n.e(6057),n.e(6882),n.e(2360)]).then(n.bind(n,17728)),"@site/docs/vocdoni-api/census-merkle-root.api.mdx",17728],"2f59b2ef":[()=>n.e(274).then(n.bind(n,14386)),"@site/docs/sdk/reference/interfaces/ICensus3ValidatePredicateResponse.md",14386],"335f69d6":[()=>Promise.all([n.e(532),n.e(2284),n.e(9052),n.e(6057),n.e(6882),n.e(4540)]).then(n.bind(n,37888)),"@site/docs/vocdoni-api/census-total-weight.api.mdx",37888],"377fc202":[()=>n.e(3516).then(n.bind(n,40552)),"@site/docs/sdk/reference/classes/AccountService.md",40552],"388546f3":[()=>Promise.all([n.e(532),n.e(2284),n.e(8999)]).then(n.bind(n,31545)),"@site/docs/vocdoni-api/elections.tag.mdx",31545],"3930cc8a":[()=>Promise.all([n.e(532),n.e(2284),n.e(3168)]).then(n.bind(n,99098)),"@site/docs/vocdoni-api/sik.tag.mdx",99098],"39a96d3a":[()=>n.e(306).then(n.bind(n,66038)),"@site/docs/sdk/reference/interfaces/ElectionMetadata.md",66038],"3aefc2b6":[()=>n.e(3868).then(n.bind(n,43924)),"@site/docs/sdk/reference/classes/TokenCensus.md",43924],"3b56eb8e":[()=>Promise.all([n.e(532),n.e(2284),n.e(9052),n.e(6057),n.e(6882),n.e(5978)]).then(n.bind(n,20863)),"@site/docs/vocdoni-api/create-a-new-census.api.mdx",20863],"3b8a1714":[()=>Promise.all([n.e(532),n.e(2284),n.e(9052),n.e(6057),n.e(6882),n.e(8740)]).then(n.bind(n,42045)),"@site/docs/vocdoni-api/create-election-for-wallet.api.mdx",42045],"3c152c78":[()=>n.e(3625).then(n.bind(n,30194)),"@site/docs/sdk/reference/interfaces/ICensus3ValidatePredicateToken.md",30194],"3da0b0fe":[()=>Promise.all([n.e(532),n.e(2284),n.e(656)]).then(n.bind(n,47215)),"@site/docs/vocdoni-api/accounts.tag.mdx",47215],"3fa72254":[()=>n.e(9217).then(n.bind(n,3553)),"@site/docs/sdk/reference/interfaces/IChainOrganizationResponse.md",3553],"404eb028":[()=>n.e(2827).then(n.bind(n,14196)),"@site/docs/sdk/integration-details/voting-types/quadratic.md",14196],"427be892":[()=>n.e(8913).then(n.bind(n,28068)),"@site/docs/protocol/data-schemes/data-schemes.md",28068],"437ed742":[()=>Promise.all([n.e(532),n.e(2284),n.e(9052),n.e(6057),n.e(6882),n.e(3796)]).then(n.bind(n,7786)),"@site/docs/vocdoni-api/transaction-by-hash.api.mdx",7786],"445f6f2d":[()=>n.e(7456).then(n.bind(n,67006)),"@site/docs/sdk/reference/interfaces/SetAccountTx.md",67006],"467b2519":[()=>n.e(3158).then(n.bind(n,33391)),"@site/docs/sdk/reference/classes/CensusAPI.md",33391],"46b36dc0":[()=>n.e(3082).then(n.bind(n,6815)),"@site/docs/sdk/integration-details/voting-types/weighted.md",6815],"47d20a96":[()=>Promise.all([n.e(532),n.e(2284),n.e(9052),n.e(6057),n.e(6882),n.e(1591)]).then(n.bind(n,53190)),"@site/docs/vocdoni-api/compute-ipfs-ci-dv-1-of-file.api.mdx",53190],"47d37469":[()=>Promise.all([n.e(532),n.e(2284),n.e(9052),n.e(6057),n.e(6882),n.e(4013)]).then(n.bind(n,44768)),"@site/docs/vocdoni-api/census-size.api.mdx",44768],"491af8ad":[()=>n.e(135).then(n.bind(n,13471)),"@site/docs/sdk/reference/interfaces/IVoteMode.md",13471],"49b14676":[()=>n.e(7583).then(n.bind(n,43127)),"@site/docs/sdk/reference/classes/CspService.md",43127],"4a1ec646":[()=>n.e(5909).then(n.bind(n,23218)),"@site/docs/sdk/integration-details/census-types/off-chain-csp.md",23218],"4adb919a":[()=>n.e(8033).then(n.bind(n,89541)),"@site/docs/sdk/reference/enums/TxType.md",89541],"4b742bf9":[()=>n.e(5882).then(n.bind(n,94266)),"@site/docs/sdk/reference/interfaces/VoteEnvelope.md",94266],"4bef2fb3":[()=>n.e(5277).then(n.bind(n,19662)),"@site/docs/sdk/reference/interfaces/IVoteInfoResponse.md",19662],"4c5e977b":[()=>Promise.all([n.e(532),n.e(2284),n.e(9052),n.e(6057),n.e(3849),n.e(1893)]).then(n.bind(n,46261)),"@theme/ApiItem",46261],"4d61d27d":[()=>n.e(4253).then(n.bind(n,18672)),"@site/docs/sdk/reference/interfaces/ICensus3ServiceInfoResponse.md",18672],"4d66e9ad":[()=>Promise.all([n.e(532),n.e(2284),n.e(9052),n.e(6057),n.e(6882),n.e(9202)]).then(n.bind(n,24401)),"@site/docs/vocdoni-api/delete-census.api.mdx",24401],"4e2de210":[()=>Promise.all([n.e(532),n.e(2284),n.e(9052),n.e(6057),n.e(6882),n.e(9057)]).then(n.bind(n,13366)),"@site/docs/vocdoni-api/create-election.api.mdx",13366],"4f32f676":[()=>n.e(1187).then(n.bind(n,27888)),"@site/docs/protocol/ballot-protocol.md",27888],"4f61726b":[()=>n.e(8882).then(n.bind(n,65124)),"@site/docs/sdk/integration-details/vocdoni-tokens.md",65124],"5125b704":[()=>n.e(1205).then(n.bind(n,72906)),"@site/docs/sdk/reference/interfaces/MintTokensTx.md",72906],"515de0d7":[()=>n.e(7136).then(n.bind(n,65073)),"@site/docs/sdk/reference/interfaces/CollectFaucetTx.md",65073],"518b90c0":[()=>n.e(7037).then(n.bind(n,21993)),"@site/docs/protocol/data-schemes/organization.md",21993],"5344dd0e":[()=>n.e(4519).then(n.bind(n,12726)),"@site/docs/sdk/reference/interfaces/IChainOrganizationListResponse.md",12726],"5383e2bf":[()=>n.e(2323).then(n.bind(n,11550)),"@site/docs/sdk/reference/interfaces/SendTokensTx.md",11550],"545dbd82":[()=>n.e(8119).then(n.bind(n,23087)),"@site/docs/sdk/reference/classes/Census.md",23087],"54a4f78f":[()=>Promise.all([n.e(532),n.e(2284),n.e(9052),n.e(6057),n.e(6882),n.e(2116)]).then(n.bind(n,20249)),"@site/docs/vocdoni-api/submit-a-vote.api.mdx",20249],"54bc495f":[()=>n.e(3706).then(n.bind(n,22110)),"@site/docs/sdk/integration-details/voting-types/single-choice.md",22110],"5708b463":[()=>n.e(5861).then(n.bind(n,97041)),"@site/docs/sdk/reference/interfaces/IChainGetCircuitResponse.md",97041],57136864:[()=>Promise.all([n.e(532),n.e(2284),n.e(9052),n.e(6057),n.e(6882),n.e(2192)]).then(n.bind(n,24856)),"@site/docs/vocdoni-api/transactions-count.api.mdx",24856],"576aa68d":[()=>Promise.all([n.e(532),n.e(2284),n.e(9052),n.e(6057),n.e(6882),n.e(891)]).then(n.bind(n,32133)),"@site/docs/vocdoni-api/add-participants-to-census.api.mdx",32133],"5945b6f4":[()=>n.e(689).then(n.t.bind(n,83769,19)),"/home/runner/work/developer-portal/developer-portal/.docusaurus/docusaurus-plugin-content-docs/default/plugin-route-context-module-100.json",83769],"5954c450":[()=>Promise.all([n.e(532),n.e(2284),n.e(9052),n.e(6057),n.e(6882),n.e(4539)]).then(n.bind(n,51077)),"@site/docs/vocdoni-api/get-vote.api.mdx",51077],"5977a97c":[()=>n.e(9209).then(n.bind(n,8970)),"@site/docs/sdk/reference/interfaces/ICensus3CensusQueueResponse.md",8970],"59d5b983":[()=>n.e(1557).then(n.bind(n,23791)),"@site/docs/sdk/reference/classes/Account.md",23791],"59e232ee":[()=>Promise.all([n.e(532),n.e(2284),n.e(9052),n.e(6057),n.e(6882),n.e(6204)]).then(n.bind(n,50443)),"@site/docs/vocdoni-api/total-number-of-accounts.api.mdx",50443],"5c4d0554":[()=>n.e(3204).then(n.bind(n,67221)),"@site/docs/ui-components/03-Election.mdx",67221],"5c98d4ea":[()=>n.e(4182).then(n.bind(n,60218)),"@site/docs/sdk/reference/interfaces/IVoteType.md",60218],"5ddc4d53":[()=>n.e(6990).then(n.bind(n,72552)),"@site/docs/sdk/reference/classes/FaucetAPI.md",72552],"5e9f5e1a":[()=>Promise.resolve().then(n.bind(n,36809)),"@generated/docusaurus.config",36809],"5f8415ed":[()=>n.e(9347).then(n.bind(n,76123)),"@site/docs/protocol/anonymity/anonymity.md",76123],"63e7154e":[()=>Promise.all([n.e(532),n.e(2284),n.e(9052),n.e(6057),n.e(6882),n.e(2609)]).then(n.bind(n,47852)),"@site/docs/vocdoni-api/list-organizations-filtered.api.mdx",47852],"64aa0b9a":[()=>n.e(3038).then(n.bind(n,73543)),"@site/docs/sdk/reference/interfaces/IChainGetCostsResponse.md",73543],"64c2e320":[()=>n.e(4246).then(n.bind(n,35534)),"@site/docs/sdk/reference/classes/AnonymousService.md",35534],"65d7ebf2":[()=>n.e(3802).then(n.bind(n,76482)),"@site/docs/sdk/reference/interfaces/ICensus3TokenListResponse.md",76482],"65e31fed":[()=>n.e(1871).then(n.t.bind(n,15745,19)),"/home/runner/work/developer-portal/developer-portal/.docusaurus/docusaurus-plugin-content-pages/default/plugin-route-context-module-100.json",15745],"6a011cfc":[()=>Promise.all([n.e(532),n.e(2284),n.e(9052),n.e(6057),n.e(6882),n.e(6956)]).then(n.bind(n,35091)),"@site/docs/vocdoni-api/list-all-census-references.api.mdx",35091],"6a02f24e":[()=>n.e(5596).then(n.bind(n,85509)),"@site/docs/sdk/reference/interfaces/IChainTxCountResponse.md",85509],"6aeb5732":[()=>Promise.all([n.e(532),n.e(2284),n.e(9052),n.e(6057),n.e(6882),n.e(2277)]).then(n.bind(n,69102)),"@site/docs/vocdoni-api/total-number-of-sent-and-received-transactions.api.mdx",69102],"6b41ffc9":[()=>Promise.all([n.e(532),n.e(2284),n.e(9052),n.e(6057),n.e(6882),n.e(6563)]).then(n.bind(n,14701)),"@site/docs/vocdoni-api/compute-election-price.api.mdx",14701],"6b697fd9":[()=>Promise.all([n.e(532),n.e(2284),n.e(9052),n.e(6057),n.e(6882),n.e(7813)]).then(n.bind(n,82643)),"@site/docs/vocdoni-api/submit-transaction.api.mdx",82643],"6b74149a":[()=>n.e(9470).then(n.bind(n,47527)),"@site/docs/sdk/reference/interfaces/Process.md",47527],"6b798853":[()=>n.e(8168).then(n.bind(n,38382)),"@site/docs/sdk/reference/interfaces/ICensus3StrategyHoldersResponsePaginated.md",38382],"6bf5cd43":[()=>n.e(6906).then(n.bind(n,81311)),"@site/docs/sdk/reference/interfaces/IElectionCreateResponse.md",81311],"6d3dfbcd":[()=>n.e(7082).then(n.bind(n,29021)),"@site/docs/sdk/reference/interfaces/IChainGetInfoResponse.md",29021],"705711d3":[()=>n.e(8883).then(n.bind(n,85533)),"@site/docs/sdk/reference/interfaces/IAccountTransfersCountResponse.md",85533],"70e3ad0d":[()=>n.e(8930).then(n.bind(n,18157)),"@site/docs/sdk/reference/interfaces/IChainSubmitTxResponse.md",18157],"71f8faad":[()=>Promise.all([n.e(532),n.e(2284),n.e(9052),n.e(6057),n.e(6882),n.e(1655)]).then(n.bind(n,9242)),"@site/docs/vocdoni-api/election-information.api.mdx",9242],"725284f7":[()=>n.e(9942).then(n.bind(n,27947)),"@site/docs/sdk/reference/interfaces/FetchElectionsParameters.md",27947],"7365c198":[()=>Promise.all([n.e(532),n.e(2284),n.e(9052),n.e(6057),n.e(6882),n.e(2079)]).then(n.bind(n,10797)),"@site/docs/vocdoni-api/transaction-by-index.api.mdx",10797],"74b5ba26":[()=>n.e(3773).then(n.bind(n,55317)),"@site/docs/protocol/anonymity/blind-signatures.md",55317],"7644a8b6":[()=>n.e(5421).then(n.bind(n,52077)),"@site/docs/sdk/reference/interfaces/IElectionListResponse.md",52077],"783013b2":[()=>n.e(7374).then(n.bind(n,46269)),"@site/docs/sdk/reference/classes/CensusService.md",46269],"787465aa":[()=>n.e(7673).then(n.bind(n,96659)),"@site/docs/sdk/reference/classes/AccountAPI.md",96659],"78bbaf06":[()=>n.e(5995).then(n.bind(n,66512)),"@site/docs/sdk/integration-details/voting-types/voting-types.md",66512],"79e28b2f":[()=>Promise.all([n.e(532),n.e(2284),n.e(9052),n.e(6057),n.e(6882),n.e(9184)]).then(n.bind(n,1903)),"@site/docs/vocdoni-api/count-organizations.api.mdx",1903],"7acd0d27":[()=>n.e(522).then(n.bind(n,84546)),"@site/docs/sdk/reference/interfaces/CircuitInputs.md",84546],"7b4f5a52":[()=>Promise.all([n.e(532),n.e(2284),n.e(9052),n.e(6057),n.e(6882),n.e(8389)]).then(n.bind(n,1175)),"@site/docs/vocdoni-api/transaction-by-block-height-and-index.api.mdx",1175],"7c0d6738":[()=>n.e(1573).then(n.bind(n,40202)),"@site/docs/sdk/reference/classes/Census3StrategyAPI.md",40202],"7ccdd76e":[()=>Promise.all([n.e(532),n.e(2284),n.e(9052),n.e(6057),n.e(6882),n.e(2956)]).then(n.bind(n,77437)),"@site/docs/vocdoni-api/publish-census.api.mdx",77437],"80975cc5":[()=>n.e(8004).then(n.t.bind(n,7085,19)),"/home/runner/work/developer-portal/developer-portal/.docusaurus/docusaurus-theme-search-algolia/default/plugin-route-context-module-100.json",7085],"835897f5":[()=>n.e(3227).then(n.bind(n,8223)),"@site/docs/sdk/integration-details/voting-types/ranked.md",8223],"87d0da39":[()=>n.e(1719).then(n.bind(n,82595)),"@site/docs/sdk/reference/modules.md",82595],"8a23d602":[()=>Promise.all([n.e(532),n.e(2284),n.e(9052),n.e(6057),n.e(6882),n.e(2551)]).then(n.bind(n,47241)),"@site/docs/vocdoni-api/export-census-database.api.mdx",47241],"8a92166d":[()=>n.e(6689).then(n.bind(n,61287)),"@site/docs/sdk/reference/interfaces/IEncryptionKey.md",61287],"8b196d05":[()=>n.e(1806).then(n.bind(n,90210)),"@site/docs/sdk/reference/interfaces/ICensus3CensusResponse.md",90210],"8b5652a7":[()=>Promise.all([n.e(532),n.e(2284),n.e(9052),n.e(6057),n.e(6882),n.e(2184)]).then(n.bind(n,40765)),"@site/docs/vocdoni-api/list-of-valid-sik-roots.api.mdx",40765],"8d68bc4a":[()=>Promise.all([n.e(532),n.e(2284),n.e(9052),n.e(6057),n.e(6882),n.e(8976)]).then(n.bind(n,65697)),"@site/docs/vocdoni-api/transaction-costs.api.mdx",65697],"8d8eb18d":[()=>n.e(5487).then(n.bind(n,24288)),"@site/docs/protocol/census/census.md",24288],"8e01bad3":[()=>Promise.all([n.e(532),n.e(2284),n.e(9052),n.e(6057),n.e(6882),n.e(6135)]).then(n.bind(n,24895)),"@site/docs/vocdoni-api/election-results.api.mdx",24895],"8ec8cf1f":[()=>n.e(8399).then(n.bind(n,6274)),"@site/docs/sdk/reference/interfaces/ICensusImportResponse.md",6274],"8ed7db60":[()=>n.e(2931).then(n.bind(n,39979)),"@site/docs/sdk/reference/interfaces/NewProcessTx.md",39979],"900ced3f":[()=>Promise.all([n.e(532),n.e(2284),n.e(9052),n.e(6057),n.e(6882),n.e(5469)]).then(n.bind(n,57285)),"@site/docs/vocdoni-api/get-next-election-id.api.mdx",57285],"9029ef47":[()=>n.e(1126).then(n.bind(n,61400)),"@site/docs/sdk/reference/interfaces/IElectionKeysResponse.md",61400],92348782:[()=>n.e(9940).then(n.bind(n,52437)),"@site/docs/sdk/reference/interfaces/ICensus3TokenListResponsePaginated.md",52437],"925c0bed":[()=>Promise.all([n.e(532),n.e(2284),n.e(9052),n.e(6057),n.e(6882),n.e(6354)]).then(n.bind(n,41216)),"@site/docs/vocdoni-api/publish-census-at-root.api.mdx",41216],"935f2afb":[()=>n.e(53).then(n.t.bind(n,1109,19)),"~docs/default/version-current-metadata-prop-751.json",1109],93908748:[()=>n.e(4805).then(n.bind(n,20951)),"@site/docs/sdk/reference/interfaces/ICensus3TokenHolderResponse.md",20951],"94050a54":[()=>n.e(8180).then(n.bind(n,18967)),"@site/docs/sdk/reference/interfaces/ICensus3StrategiesOperatorsResponse.md",18967],"945f0be5":[()=>n.e(5104).then(n.bind(n,57462)),"@site/docs/sdk/reference/classes/Census3TokenAPI.md",57462],"9611c1ba":[()=>n.e(6567).then(n.bind(n,36543)),"@site/docs/sdk/reference/enums/ElectionResultsTypeNames.md",36543],"9728e091":[()=>n.e(5470).then(n.bind(n,30775)),"@site/docs/sdk/integration-details/census-types/off-chain-tree.md",30775],"999cbc12":[()=>n.e(2600).then(n.bind(n,93106)),"@site/docs/sdk/reference/interfaces/IElectionVote.md",93106],"99a9ad46":[()=>Promise.all([n.e(532),n.e(2284),n.e(9052),n.e(6057),n.e(6882),n.e(1290)]).then(n.bind(n,3762)),"@site/docs/vocdoni-api/verify-merkle-proof.api.mdx",3762],"99ffa32d":[()=>Promise.all([n.e(532),n.e(2284),n.e(9052),n.e(6057),n.e(6882),n.e(5698)]).then(n.bind(n,69667)),"@site/docs/vocdoni-api/verify-vote.api.mdx",69667],"9e4ccdce":[()=>Promise.all([n.e(532),n.e(2284),n.e(9052),n.e(6057),n.e(6882),n.e(9128)]).then(n.bind(n,18918)),"@site/docs/vocdoni-api/estimate-block-to-date.api.mdx",18918],"9ea3e4a5":[()=>Promise.all([n.e(532),n.e(2284),n.e(9052),n.e(6057),n.e(6882),n.e(4820)]).then(n.bind(n,94369)),"@site/docs/vocdoni-api/export-census.api.mdx",94369],"9f384d53":[()=>n.e(5058).then(n.bind(n,56697)),"@site/docs/sdk/reference/interfaces/IChainValidator.md",56697],"9f9eec24":[()=>n.e(1094).then(n.bind(n,55218)),"@site/docs/sdk/reference/interfaces/IChainValidatorsListResponse.md",55218],a21738db:[()=>n.e(3334).then(n.bind(n,90591)),"@site/docs/protocol/index.md",90591],a217fb3c:[()=>n.e(6386).then(n.bind(n,15079)),"@site/docs/sdk/reference/classes/WeightedCensus.md",15079],a2cbb706:[()=>n.e(1966).then(n.bind(n,5130)),"@site/docs/sdk/reference/classes/ChainService.md",5130],a674c74b:[()=>n.e(6412).then(n.bind(n,22006)),"@site/docs/sdk/reference/classes/PlainCensus.md",22006],a7835d3e:[()=>n.e(6723).then(n.bind(n,46887)),"@site/docs/sdk/reference/classes/AnonymousVote.md",46887],a7c28e13:[()=>n.e(7862).then(n.bind(n,51659)),"@site/docs/sdk/integration-details/census-types/census-types.md",51659],a87232fc:[()=>n.e(7347).then(n.bind(n,43556)),"@site/docs/sdk/reference/interfaces/ICensus3SupportedChain.md",43556],aa9e799f:[()=>n.e(4183).then(n.bind(n,95618)),"@site/docs/sdk/integration-details/census-types/on-chain/on-chain.md",95618],aab6ad66:[()=>n.e(260).then(n.bind(n,9034)),"@site/docs/sdk/reference/classes/ArchivedElection.md",9034],ac57e32f:[()=>n.e(848).then(n.bind(n,25280)),"@site/docs/sdk/reference/enums/CspProofType.md",25280],ace89945:[()=>n.e(7612).then(n.bind(n,45613)),"@site/docs/sdk/reference/interfaces/IAccount.md",45613],ad99c2e7:[()=>n.e(4600).then(n.bind(n,28794)),"@site/docs/sdk/reference/interfaces/AdminTx.md",28794],ae74964d:[()=>n.e(297).then(n.bind(n,887)),"@site/docs/sdk/reference/classes/CspVote.md",887],ae785ce1:[()=>n.e(3496).then(n.bind(n,85877)),"@site/docs/sdk/reference/interfaces/IPublishedElectionParameters.md",85877],af3402af:[()=>Promise.all([n.e(532),n.e(2284),n.e(9052),n.e(6057),n.e(6882),n.e(6425)]).then(n.bind(n,23761)),"@site/docs/vocdoni-api/circuit-info.api.mdx",23761],af55f10e:[()=>n.e(5580).then(n.bind(n,26224)),"@site/docs/sdk/reference/classes/VocdoniCensus3Client.md",26224],af663d33:[()=>n.e(4721).then(n.bind(n,14063)),"@site/docs/sdk/reference/interfaces/IAccountsCountResponse.md",14063],b0b03425:[()=>Promise.all([n.e(532),n.e(2284),n.e(3023)]).then(n.bind(n,40062)),"@site/docs/vocdoni-api/chain.tag.mdx",40062],b0d01e95:[()=>n.e(1968).then(n.bind(n,29542)),"@site/docs/sdk/reference/interfaces/IElectionInfoResponse.md",29542],b16aadd2:[()=>n.e(7055).then(n.bind(n,23237)),"@site/docs/sdk/01-tutorial.md",23237],b212ee85:[()=>n.e(9232).then(n.bind(n,66962)),"@site/docs/protocol/census/on-chain/census3.md",66962],b2b5a0c0:[()=>n.e(1270).then(n.bind(n,90002)),"@site/docs/sdk/reference/interfaces/IChainOrganizationCountResponse.md",90002],b3153972:[()=>n.e(7631).then(n.bind(n,28493)),"@site/docs/sdk/reference/interfaces/ICensus3StrategiesListResponse.md",28493],b491e6b8:[()=>n.e(2859).then(n.bind(n,77122)),"@site/docs/sdk/reference/interfaces/IChoice.md",77122],b5881b04:[()=>n.e(9589).then(n.bind(n,27382)),"@site/docs/sdk/reference/interfaces/IElectionMode.md",27382],b7cc9ed0:[()=>n.e(9097).then(n.bind(n,31233)),"@site/docs/sdk/reference/enums/ElectionStatus.md",31233],b7def961:[()=>n.e(1011).then(n.bind(n,96350)),"@site/docs/sdk/integration-details/integration-details.md",96350],b80cad64:[()=>n.e(8149).then(n.bind(n,38254)),"@site/docs/sdk/reference/interfaces/IBlockTransactionsResponse.md",38254],b83e4bd7:[()=>n.e(9229).then(n.bind(n,14484)),"@site/docs/sdk/reference/interfaces/IVoteSubmitResponse.md",14484],b862b811:[()=>n.e(9756).then(n.bind(n,7453)),"@site/docs/sdk/reference/interfaces/ICensus3StrategiesListResponsePaginated.md",7453],b8b370b8:[()=>Promise.all([n.e(532),n.e(2284),n.e(9052),n.e(6057),n.e(6882),n.e(7592)]).then(n.bind(n,56721)),"@site/docs/vocdoni-api/list-account-token-fees.api.mdx",56721],bddc6002:[()=>Promise.all([n.e(532),n.e(2284),n.e(9052),n.e(6057),n.e(6882),n.e(47)]).then(n.bind(n,53982)),"@site/docs/vocdoni-api/transactions-in-a-block.api.mdx",53982],bec6d9ae:[()=>n.e(211).then(n.bind(n,64793)),"@site/docs/sdk/reference/interfaces/AccountMetadata.md",64793],bfbab14f:[()=>Promise.all([n.e(532),n.e(2284),n.e(9052),n.e(6057),n.e(6882),n.e(7799)]).then(n.bind(n,52438)),"@site/docs/vocdoni-api/prove-key-to-census.api.mdx",52438],c121c8d5:[()=>n.e(3195).then(n.bind(n,73535)),"@site/docs/sdk/reference/interfaces/Proof.md",73535],c12940ed:[()=>Promise.all([n.e(532),n.e(2284),n.e(9052),n.e(6057),n.e(6882),n.e(182)]).then(n.bind(n,46275)),"@site/docs/vocdoni-api/list-encryption-keys.api.mdx",46275],c2c73492:[()=>n.e(1865).then(n.bind(n,20788)),"@site/docs/sdk/reference/interfaces/IElectionVoteListResponse.md",20788],c4573554:[()=>Promise.all([n.e(532),n.e(2284),n.e(9052),n.e(6057),n.e(6882),n.e(4259)]).then(n.bind(n,15980)),"@site/docs/vocdoni-api/list-organization-elections.api.mdx",15980],c5434c58:[()=>n.e(7694).then(n.bind(n,19216)),"@site/docs/sdk/reference/interfaces/RegisterKeyTx.md",19216],c626f2cc:[()=>n.e(422).then(n.bind(n,41300)),"@site/docs/sdk/reference/classes/VocdoniSDKClient.md",41300],c84aae18:[()=>n.e(4324).then(n.bind(n,13083)),"@site/docs/sdk/reference/classes/BudgetElection.md",13083],c87cc133:[()=>n.e(4674).then(n.bind(n,33392)),"@site/docs/sdk/reference/classes/Census3ServiceAPI.md",33392],c8cd88a5:[()=>Promise.all([n.e(532),n.e(1597)]).then(n.bind(n,51910)),"@site/docs/vocdoni-api/vocdoni-api.info.mdx",51910],caece487:[()=>n.e(8161).then(n.bind(n,72227)),"@site/docs/sdk/reference/interfaces/SetTransactionCostsTx.md",72227],cce83bc5:[()=>n.e(6686).then(n.bind(n,49466)),"@site/docs/sdk/reference/interfaces/IElectionSummary.md",49466],d234883f:[()=>n.e(8277).then(n.bind(n,19574)),"@site/docs/protocol/anonymity/zk-census-proof.md",19574],d250e750:[()=>n.e(5677).then(n.bind(n,96405)),"@site/docs/sdk/reference/interfaces/IQuestion.md",96405],d28adde9:[()=>n.e(4201).then(n.bind(n,92701)),"@site/docs/sdk/reference/interfaces/ICensus.md",92701],d2ab4b32:[()=>n.e(1935).then(n.bind(n,86894)),"@site/docs/sdk/reference/enums/ElectionCreationSteps.md",86894],d46fdf20:[()=>n.e(3044).then(n.bind(n,11260)),"@site/docs/sdk/reference/interfaces/IBudgetElectionParametersInfo.md",11260],d4ce7faf:[()=>n.e(3754).then(n.bind(n,49993)),"@site/docs/sdk/reference/classes/PublishedElection.md",49993],d4d2d783:[()=>Promise.all([n.e(532),n.e(2284),n.e(9052),n.e(6057),n.e(6882),n.e(7071)]).then(n.bind(n,48652)),"@site/docs/vocdoni-api/get-block-by-hash.api.mdx",48652],d5851cb1:[()=>n.e(3013).then(n.bind(n,39768)),"@site/docs/sdk/reference/interfaces/ICensusProofResponse.md",39768],d6b477f2:[()=>n.e(1378).then(n.bind(n,16193)),"@site/docs/sdk/reference/interfaces/IElectionParameters.md",16193],d6e648af:[()=>Promise.all([n.e(532),n.e(2284),n.e(9052),n.e(6057),n.e(6882),n.e(3086)]).then(n.bind(n,76676)),"@site/docs/vocdoni-api/transfer-tokens.api.mdx",76676],d71b54cc:[()=>Promise.all([n.e(532),n.e(2284),n.e(9052),n.e(6057),n.e(6882),n.e(1786)]).then(n.bind(n,71824)),"@site/docs/vocdoni-api/get-type-of-census.api.mdx",71824],d79e07b2:[()=>n.e(1054).then(n.bind(n,79581)),"@site/docs/sdk/reference/interfaces/ICensus3StrategyToken.md",79581],d7d13fd1:[()=>n.e(2005).then(n.bind(n,56065)),"@site/docs/sdk/reference/interfaces/IBudgetElectionParametersWithCensusWeight.md",56065],d8c91af8:[()=>Promise.all([n.e(532),n.e(2284),n.e(9052),n.e(6057),n.e(6882),n.e(1528)]).then(n.bind(n,76382)),"@site/docs/vocdoni-api/returns-if-the-address-provided-has-a-valid-sik.api.mdx",76382],d8c992a6:[()=>n.e(2175).then(n.bind(n,87512)),"@site/docs/sdk/reference/interfaces/ICensus3CensusListResponse.md",87512],d94ccd67:[()=>n.e(67).then(n.bind(n,11021)),"@site/docs/sdk/reference/classes/ChainAPI.md",11021],d95cd4ff:[()=>n.e(4019).then(n.bind(n,44474)),"@site/docs/sdk/integration-details/voting-types/approval.md",44474],d970501b:[()=>n.e(1357).then(n.bind(n,73846)),"@site/docs/sdk/reference/interfaces/IInvalidElectionParameters.md",73846],d9f2d88a:[()=>Promise.all([n.e(532),n.e(2284),n.e(9052),n.e(6057),n.e(6882),n.e(6142)]).then(n.bind(n,88773)),"@site/docs/vocdoni-api/list-of-the-existing-accounts.api.mdx",88773],dae27e03:[()=>n.e(1738).then(n.bind(n,10146)),"@site/docs/sdk/reference/interfaces/IChainTxReference.md",10146],db5a5176:[()=>n.e(1173).then(n.bind(n,79677)),"@site/docs/sdk/reference/classes/OffchainCensus.md",79677],dcb8c93b:[()=>n.e(8048).then(n.bind(n,38059)),"@site/docs/protocol/census/off-chain-tree.md",38059],ddb99459:[()=>n.e(9379).then(n.bind(n,72221)),"@site/docs/sdk/reference/interfaces/IApprovalElectionParameters.md",72221],dded7333:[()=>n.e(2329).then(n.bind(n,96274)),"@site/docs/sdk/reference/classes/UnpublishedElection.md",96274],de66f94a:[()=>n.e(2691).then(n.bind(n,1306)),"@site/docs/sdk/reference/interfaces/ICensus3StrategyCreateResponse.md",1306],df5c78e6:[()=>Promise.all([n.e(532),n.e(2284),n.e(173)]).then(n.bind(n,96072)),"@site/docs/vocdoni-api/wallet.tag.mdx",96072],dfccb580:[()=>Promise.all([n.e(532),n.e(2284),n.e(9052),n.e(6057),n.e(6882),n.e(1142)]).then(n.bind(n,20597)),"@site/docs/vocdoni-api/vochain-information.api.mdx",20597],dffc9575:[()=>n.e(6873).then(n.bind(n,97971)),"@site/docs/sdk/reference/interfaces/IChainTxListResponse.md",97971],e0557e97:[()=>n.e(9203).then(n.bind(n,57047)),"@site/docs/sdk/index.md",57047],e07651bc:[()=>Promise.all([n.e(532),n.e(2284),n.e(9052),n.e(6057),n.e(6882),n.e(1084)]).then(n.bind(n,77257)),"@site/docs/vocdoni-api/list-transactions.api.mdx",77257],e1594dfa:[()=>n.e(8257).then(n.bind(n,48021)),"@site/docs/sdk/reference/interfaces/IElectionNextIdResponse.md",48021],e20b99b5:[()=>Promise.all([n.e(532),n.e(2284),n.e(9052),n.e(6057),n.e(6882),n.e(6220)]).then(n.bind(n,21848)),"@site/docs/vocdoni-api/get-block-by-height.api.mdx",21848],e24c431f:[()=>n.e(2872).then(n.bind(n,67864)),"@site/docs/sdk/integration-details/census-types/on-chain/complex-census.md",67864],e3461e1c:[()=>n.e(9849).then(n.bind(n,81870)),"@site/docs/sdk/reference/classes/CspCensus.md",81870],e6e6cd34:[()=>Promise.all([n.e(532),n.e(2284),n.e(9052),n.e(6057),n.e(6882),n.e(469)]).then(n.bind(n,9373)),"@site/docs/vocdoni-api/list-organization-elections-by-status.api.mdx",9373],e7df0fec:[()=>n.e(248).then(n.bind(n,74554)),"@site/docs/sdk/reference/interfaces/ICensus3StrategyImportQueueResponse.md",74554],e7ebf400:[()=>n.e(2226).then(n.bind(n,95909)),"@site/docs/ui-components/index.md",95909],e964279c:[()=>Promise.all([n.e(532),n.e(2284),n.e(9052),n.e(6057),n.e(6882),n.e(9875)]).then(n.bind(n,95845)),"@site/docs/vocdoni-api/list-elections.api.mdx",95845],e9c5307c:[()=>Promise.all([n.e(532),n.e(2284),n.e(2470)]).then(n.bind(n,84416)),"@site/docs/vocdoni-api/censuses.tag.mdx",84416],ea27d690:[()=>n.e(4108).then(n.bind(n,52653)),"@site/docs/sdk/reference/interfaces/IChainBlockInfoResponse.md",52653],ea74a8a9:[()=>n.e(2832).then(n.bind(n,21047)),"@site/docs/sdk/reference/interfaces/ICensus3StrategiesOperator.md",21047],ec0516f7:[()=>n.e(2050).then(n.bind(n,14510)),"@site/docs/sdk/reference/classes/Vote.md",14510],ed25d525:[()=>Promise.all([n.e(532),n.e(2284),n.e(9052),n.e(6057),n.e(6882),n.e(5347)]).then(n.bind(n,7615)),"@site/docs/vocdoni-api/get-account.api.mdx",7615],ed5700b4:[()=>Promise.all([n.e(532),n.e(2284),n.e(9052),n.e(6057),n.e(6882),n.e(8493)]).then(n.bind(n,2364)),"@site/docs/vocdoni-api/count-organization-elections.api.mdx",2364],ed887fb8:[()=>Promise.all([n.e(532),n.e(2284),n.e(9052),n.e(6057),n.e(6882),n.e(7165)]).then(n.bind(n,43970)),"@site/docs/vocdoni-api/set-account.api.mdx",43970],ee2798c9:[()=>n.e(4635).then(n.bind(n,98272)),"@site/docs/sdk/reference/enums/VoteSteps.md",98272],efcaecf7:[()=>Promise.all([n.e(532),n.e(2284),n.e(9052),n.e(6057),n.e(6882),n.e(4792)]).then(n.bind(n,19243)),"@site/docs/vocdoni-api/list-organizations.api.mdx",19243],effdce5d:[()=>n.e(6483).then(n.bind(n,16938)),"@site/docs/sdk/reference/classes/InvalidElection.md",16938],f116289e:[()=>n.e(6349).then(n.bind(n,5431)),"@site/docs/sdk/reference/interfaces/IBudgetElectionParametersWithBudget.md",5431],f50a63d5:[()=>Promise.all([n.e(532),n.e(2284),n.e(9052),n.e(6057),n.e(6882),n.e(3987)]).then(n.bind(n,85089)),"@site/docs/vocdoni-api/list-elections-filtered.api.mdx",85089],f601f941:[()=>Promise.all([n.e(532),n.e(2284),n.e(9052),n.e(6057),n.e(6882),n.e(3665)]).then(n.bind(n,59872)),"@site/docs/vocdoni-api/list-all-token-fees-by-reference.api.mdx",59872],f64e1fa2:[()=>Promise.all([n.e(532),n.e(2284),n.e(9052),n.e(6057),n.e(6882),n.e(1317)]).then(n.bind(n,54975)),"@site/docs/vocdoni-api/list-all-token-fees.api.mdx",54975],f77e462c:[()=>n.e(2975).then(n.bind(n,59186)),"@site/docs/sdk/reference/enums/CensusType.md",59186],f8d5f1d3:[()=>Promise.all([n.e(532),n.e(2284),n.e(9052),n.e(6057),n.e(6882),n.e(8756)]).then(n.bind(n,284)),"@site/docs/vocdoni-api/estimate-date-to-block.api.mdx",284],f9b740ff:[()=>n.e(4243).then(n.bind(n,86548)),"@site/docs/sdk/reference/enums/ElectionStatusReady.md",86548],fbd96b78:[()=>n.e(2367).then(n.bind(n,41263)),"@site/docs/protocol/census/off-chain-csp.md",41263],fc158ac8:[()=>Promise.all([n.e(532),n.e(2284),n.e(9052),n.e(6057),n.e(6882),n.e(5642)]).then(n.bind(n,41937)),"@site/docs/vocdoni-api/list-all-token-fees-by-type.api.mdx",41937],fc1a6383:[()=>n.e(5220).then(n.bind(n,92751)),"@site/docs/sdk/reference/interfaces/IElectionType.md",92751],fc441bf1:[()=>n.e(9192).then(n.bind(n,90821)),"@site/docs/sdk/reference/enums/CensusOrigin.md",90821],fcca6750:[()=>Promise.all([n.e(532),n.e(2284),n.e(9052),n.e(6057),n.e(6882),n.e(5913)]).then(n.bind(n,55364)),"@site/docs/vocdoni-api/exports-the-indexer-database.api.mdx",55364],fd8596db:[()=>Promise.all([n.e(532),n.e(2284),n.e(9052),n.e(6057),n.e(6882),n.e(1117)]).then(n.bind(n,19227)),"@site/docs/vocdoni-api/add-account.api.mdx",19227],fe008fee:[()=>n.e(2733).then(n.bind(n,38222)),"@site/docs/sdk/reference/classes/Census3CensusAPI.md",38222],fe83dea5:[()=>Promise.all([n.e(532),n.e(2284),n.e(9052),n.e(6057),n.e(6882),n.e(8253)]).then(n.bind(n,12592)),"@site/docs/vocdoni-api/import-census.api.mdx",12592],fe9260cd:[()=>n.e(1132).then(n.bind(n,50031)),"@site/docs/sdk/reference/changelog.md",50031],ff7cb792:[()=>n.e(2241).then(n.bind(n,61292)),"@site/docs/sdk/reference/classes/WalletAPI.md",61292],ffeeb722:[()=>n.e(992).then(n.bind(n,94100)),"@site/docs/sdk/reference/classes/VoteService.md",94100]};function l(e){let{error:t,retry:n,pastDelay:a}=e;return t?r.createElement("div",{style:{textAlign:"center",color:"#fff",backgroundColor:"#fa383e",borderColor:"#fa383e",borderStyle:"solid",borderRadius:"0.25rem",borderWidth:"1px",boxSizing:"border-box",display:"block",padding:"1rem",flex:"0 0 50%",marginLeft:"25%",marginRight:"25%",marginTop:"5rem",maxWidth:"50%",width:"100%"}},r.createElement("p",null,String(t)),r.createElement("div",null,r.createElement("button",{type:"button",onClick:n},"Retry"))):a?r.createElement("div",{style:{display:"flex",justifyContent:"center",alignItems:"center",height:"100vh"}},r.createElement("svg",{id:"loader",style:{width:128,height:110,position:"absolute",top:"calc(100vh - 64%)"},viewBox:"0 0 45 45",xmlns:"http://www.w3.org/2000/svg",stroke:"#61dafb"},r.createElement("g",{fill:"none",fillRule:"evenodd",transform:"translate(1 1)",strokeWidth:"2"},r.createElement("circle",{cx:"22",cy:"22",r:"6",strokeOpacity:"0"},r.createElement("animate",{attributeName:"r",begin:"1.5s",dur:"3s",values:"6;22",calcMode:"linear",repeatCount:"indefinite"}),r.createElement("animate",{attributeName:"stroke-opacity",begin:"1.5s",dur:"3s",values:"1;0",calcMode:"linear",repeatCount:"indefinite"}),r.createElement("animate",{attributeName:"stroke-width",begin:"1.5s",dur:"3s",values:"2;0",calcMode:"linear",repeatCount:"indefinite"})),r.createElement("circle",{cx:"22",cy:"22",r:"6",strokeOpacity:"0"},r.createElement("animate",{attributeName:"r",begin:"3s",dur:"3s",values:"6;22",calcMode:"linear",repeatCount:"indefinite"}),r.createElement("animate",{attributeName:"stroke-opacity",begin:"3s",dur:"3s",values:"1;0",calcMode:"linear",repeatCount:"indefinite"}),r.createElement("animate",{attributeName:"stroke-width",begin:"3s",dur:"3s",values:"2;0",calcMode:"linear",repeatCount:"indefinite"})),r.createElement("circle",{cx:"22",cy:"22",r:"8"},r.createElement("animate",{attributeName:"r",begin:"0s",dur:"1.5s",values:"6;1;2;3;4;5;6",calcMode:"linear",repeatCount:"indefinite"}))))):null}var d=n(99670),u=n(30226);function f(e,t){if("*"===e)return o()({loading:l,loader:()=>n.e(4972).then(n.bind(n,4972)),modules:["@theme/NotFound"],webpack:()=>[4972],render(e,t){const n=e.default;return r.createElement(u.z,{value:{plugin:{name:"native",id:"default"}}},r.createElement(n,t))}});const i=s[`${e}-${t}`],f={},p=[],m=[],h=(0,d.Z)(i);return Object.entries(h).forEach((e=>{let[t,n]=e;const r=c[n];r&&(f[t]=r[0],p.push(r[1]),m.push(r[2]))})),o().Map({loading:l,loader:f,modules:p,webpack:()=>m,render(t,n){const o=JSON.parse(JSON.stringify(i));Object.entries(t).forEach((t=>{let[n,r]=t;const a=r.default;if(!a)throw new Error(`The page component at ${e} doesn't have a default export. This makes it impossible to render anything. Consider default-exporting a React component.`);"object"!=typeof a&&"function"!=typeof a||Object.keys(r).filter((e=>"default"!==e)).forEach((e=>{a[e]=r[e]}));let i=o;const s=n.split(".");s.slice(0,-1).forEach((e=>{i=i[e]})),i[s[s.length-1]]=a}));const s=o.__comp;delete o.__comp;const c=o.__context;return delete o.__context,r.createElement(u.z,{value:c},r.createElement(s,(0,a.Z)({},o,n)))}})}const p=[{path:"/search",component:f("/search","171"),exact:!0},{path:"/",component:f("/","70b"),exact:!0},{path:"/",component:f("/","49b"),routes:[{path:"/intro",component:f("/intro","9e0"),exact:!0,sidebar:"defaultSidebar"},{path:"/protocol",component:f("/protocol","4f3"),exact:!0,sidebar:"defaultSidebar"},{path:"/protocol/anonymity",component:f("/protocol/anonymity","286"),exact:!0,sidebar:"defaultSidebar"},{path:"/protocol/anonymity/blind-signatures",component:f("/protocol/anonymity/blind-signatures","6c6"),exact:!0,sidebar:"defaultSidebar"},{path:"/protocol/anonymity/on-chain",component:f("/protocol/anonymity/on-chain","746"),exact:!0,sidebar:"defaultSidebar"},{path:"/protocol/anonymity/zk-census-proof",component:f("/protocol/anonymity/zk-census-proof","0dd"),exact:!0,sidebar:"defaultSidebar"},{path:"/protocol/ballot-protocol",component:f("/protocol/ballot-protocol","9e7"),exact:!0,sidebar:"defaultSidebar"},{path:"/protocol/census",component:f("/protocol/census","f2b"),exact:!0,sidebar:"defaultSidebar"},{path:"/protocol/census/off-chain-csp",component:f("/protocol/census/off-chain-csp","cab"),exact:!0,sidebar:"defaultSidebar"},{path:"/protocol/census/off-chain-tree",component:f("/protocol/census/off-chain-tree","add"),exact:!0,sidebar:"defaultSidebar"},{path:"/protocol/census/on-chain",component:f("/protocol/census/on-chain","a41"),exact:!0,sidebar:"defaultSidebar"},{path:"/protocol/census/on-chain/census3",component:f("/protocol/census/on-chain/census3","3c0"),exact:!0,sidebar:"defaultSidebar"},{path:"/protocol/data-schemes",component:f("/protocol/data-schemes","684"),exact:!0,sidebar:"defaultSidebar"},{path:"/protocol/data-schemes/election",component:f("/protocol/data-schemes/election","8b1"),exact:!0,sidebar:"defaultSidebar"},{path:"/protocol/data-schemes/organization",component:f("/protocol/data-schemes/organization","38b"),exact:!0,sidebar:"defaultSidebar"},{path:"/protocol/data-schemes/vote",component:f("/protocol/data-schemes/vote","252"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk",component:f("/sdk","857"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/integration-details",component:f("/sdk/integration-details","e26"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/integration-details/census-types",component:f("/sdk/integration-details/census-types","bf5"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/integration-details/census-types/off-chain-csp",component:f("/sdk/integration-details/census-types/off-chain-csp","3b8"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/integration-details/census-types/off-chain-tree",component:f("/sdk/integration-details/census-types/off-chain-tree","a5e"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/integration-details/census-types/on-chain",component:f("/sdk/integration-details/census-types/on-chain","5e4"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/integration-details/census-types/on-chain/complex-census",component:f("/sdk/integration-details/census-types/on-chain/complex-census","dee"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/integration-details/vocdoni-tokens",component:f("/sdk/integration-details/vocdoni-tokens","806"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/integration-details/voting-types",component:f("/sdk/integration-details/voting-types","ffb"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/integration-details/voting-types/approval",component:f("/sdk/integration-details/voting-types/approval","7cd"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/integration-details/voting-types/quadratic",component:f("/sdk/integration-details/voting-types/quadratic","6e8"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/integration-details/voting-types/ranked",component:f("/sdk/integration-details/voting-types/ranked","639"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/integration-details/voting-types/single-choice",component:f("/sdk/integration-details/voting-types/single-choice","60e"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/integration-details/voting-types/weighted",component:f("/sdk/integration-details/voting-types/weighted","3e1"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/reference/changelog",component:f("/sdk/reference/changelog","092"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/reference/classes/Account",component:f("/sdk/reference/classes/Account","4b7"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/reference/classes/AccountAPI",component:f("/sdk/reference/classes/AccountAPI","c96"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/reference/classes/AccountService",component:f("/sdk/reference/classes/AccountService","3d2"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/reference/classes/AnonymousService",component:f("/sdk/reference/classes/AnonymousService","459"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/reference/classes/AnonymousVote",component:f("/sdk/reference/classes/AnonymousVote","873"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/reference/classes/ApprovalElection",component:f("/sdk/reference/classes/ApprovalElection","f04"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/reference/classes/ArchivedElection",component:f("/sdk/reference/classes/ArchivedElection","00d"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/reference/classes/BudgetElection",component:f("/sdk/reference/classes/BudgetElection","0b6"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/reference/classes/Census",component:f("/sdk/reference/classes/Census","a71"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/reference/classes/Census3CensusAPI",component:f("/sdk/reference/classes/Census3CensusAPI","c3a"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/reference/classes/Census3ServiceAPI",component:f("/sdk/reference/classes/Census3ServiceAPI","7b6"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/reference/classes/Census3StrategyAPI",component:f("/sdk/reference/classes/Census3StrategyAPI","056"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/reference/classes/Census3TokenAPI",component:f("/sdk/reference/classes/Census3TokenAPI","a0e"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/reference/classes/CensusAPI",component:f("/sdk/reference/classes/CensusAPI","1e8"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/reference/classes/CensusService",component:f("/sdk/reference/classes/CensusService","5f2"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/reference/classes/ChainAPI",component:f("/sdk/reference/classes/ChainAPI","08b"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/reference/classes/ChainService",component:f("/sdk/reference/classes/ChainService","424"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/reference/classes/CspCensus",component:f("/sdk/reference/classes/CspCensus","66e"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/reference/classes/CspService",component:f("/sdk/reference/classes/CspService","3dc"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/reference/classes/CspVote",component:f("/sdk/reference/classes/CspVote","c3c"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/reference/classes/Election",component:f("/sdk/reference/classes/Election","c48"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/reference/classes/ElectionAPI",component:f("/sdk/reference/classes/ElectionAPI","441"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/reference/classes/ElectionService",component:f("/sdk/reference/classes/ElectionService","533"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/reference/classes/FaucetAPI",component:f("/sdk/reference/classes/FaucetAPI","420"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/reference/classes/FaucetService",component:f("/sdk/reference/classes/FaucetService","32f"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/reference/classes/FileAPI",component:f("/sdk/reference/classes/FileAPI","f1e"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/reference/classes/FileService",component:f("/sdk/reference/classes/FileService","93c"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/reference/classes/InvalidElection",component:f("/sdk/reference/classes/InvalidElection","9cf"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/reference/classes/MultiChoiceElection",component:f("/sdk/reference/classes/MultiChoiceElection","0b1"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/reference/classes/OffchainCensus",component:f("/sdk/reference/classes/OffchainCensus","d39"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/reference/classes/PlainCensus",component:f("/sdk/reference/classes/PlainCensus","858"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/reference/classes/PublishedCensus",component:f("/sdk/reference/classes/PublishedCensus","902"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/reference/classes/PublishedElection",component:f("/sdk/reference/classes/PublishedElection","f5c"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/reference/classes/Service",component:f("/sdk/reference/classes/Service","6cc"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/reference/classes/TokenCensus",component:f("/sdk/reference/classes/TokenCensus","27f"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/reference/classes/UnpublishedElection",component:f("/sdk/reference/classes/UnpublishedElection","664"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/reference/classes/VocdoniCensus3Client",component:f("/sdk/reference/classes/VocdoniCensus3Client","be3"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/reference/classes/VocdoniSDKClient",component:f("/sdk/reference/classes/VocdoniSDKClient","5c3"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/reference/classes/Vote",component:f("/sdk/reference/classes/Vote","9e7"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/reference/classes/VoteAPI",component:f("/sdk/reference/classes/VoteAPI","649"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/reference/classes/VoteService",component:f("/sdk/reference/classes/VoteService","dea"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/reference/classes/WalletAPI",component:f("/sdk/reference/classes/WalletAPI","448"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/reference/classes/WeightedCensus",component:f("/sdk/reference/classes/WeightedCensus","746"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/reference/enums/CensusOrigin",component:f("/sdk/reference/enums/CensusOrigin","58f"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/reference/enums/CensusType",component:f("/sdk/reference/enums/CensusType","e40"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/reference/enums/CensusTypeEnum",component:f("/sdk/reference/enums/CensusTypeEnum","1e7"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/reference/enums/CspProofType",component:f("/sdk/reference/enums/CspProofType","163"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/reference/enums/ElectionCreationSteps",component:f("/sdk/reference/enums/ElectionCreationSteps","b5f"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/reference/enums/ElectionResultsTypeNames",component:f("/sdk/reference/enums/ElectionResultsTypeNames","852"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/reference/enums/ElectionStatus",component:f("/sdk/reference/enums/ElectionStatus","db7"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/reference/enums/ElectionStatusReady",component:f("/sdk/reference/enums/ElectionStatusReady","d13"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/reference/enums/EnvOptions",component:f("/sdk/reference/enums/EnvOptions","81f"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/reference/enums/TransactionType",component:f("/sdk/reference/enums/TransactionType","bf2"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/reference/enums/TxType",component:f("/sdk/reference/enums/TxType","c44"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/reference/enums/VoteSteps",component:f("/sdk/reference/enums/VoteSteps","36c"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/reference/interfaces/AccountMetadata",component:f("/sdk/reference/interfaces/AccountMetadata","eca"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/reference/interfaces/AdminTx",component:f("/sdk/reference/interfaces/AdminTx","fc2"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/reference/interfaces/CircuitInputs",component:f("/sdk/reference/interfaces/CircuitInputs","823"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/reference/interfaces/CollectFaucetTx",component:f("/sdk/reference/interfaces/CollectFaucetTx","7d0"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/reference/interfaces/ElectionMetadata",component:f("/sdk/reference/interfaces/ElectionMetadata","5c6"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/reference/interfaces/FetchElectionsParameters",component:f("/sdk/reference/interfaces/FetchElectionsParameters","30b"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/reference/interfaces/IAccount",component:f("/sdk/reference/interfaces/IAccount","a20"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/reference/interfaces/IAccountsCountResponse",component:f("/sdk/reference/interfaces/IAccountsCountResponse","d77"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/reference/interfaces/IAccountsListResponse",component:f("/sdk/reference/interfaces/IAccountsListResponse","2ef"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/reference/interfaces/IAccountTransfersCountResponse",component:f("/sdk/reference/interfaces/IAccountTransfersCountResponse","236"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/reference/interfaces/IApprovalElectionParameters",component:f("/sdk/reference/interfaces/IApprovalElectionParameters","73c"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/reference/interfaces/IBlockTransactionsResponse",component:f("/sdk/reference/interfaces/IBlockTransactionsResponse","c5b"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/reference/interfaces/IBudgetElectionParametersInfo",component:f("/sdk/reference/interfaces/IBudgetElectionParametersInfo","6d4"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/reference/interfaces/IBudgetElectionParametersWithBudget",component:f("/sdk/reference/interfaces/IBudgetElectionParametersWithBudget","c2f"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/reference/interfaces/IBudgetElectionParametersWithCensusWeight",component:f("/sdk/reference/interfaces/IBudgetElectionParametersWithCensusWeight","1a7"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/reference/interfaces/ICensus",component:f("/sdk/reference/interfaces/ICensus","565"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/reference/interfaces/ICensus3CensusListResponse",component:f("/sdk/reference/interfaces/ICensus3CensusListResponse","e3e"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/reference/interfaces/ICensus3CensusQueueResponse",component:f("/sdk/reference/interfaces/ICensus3CensusQueueResponse","858"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/reference/interfaces/ICensus3CensusResponse",component:f("/sdk/reference/interfaces/ICensus3CensusResponse","4be"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/reference/interfaces/ICensus3ServiceInfoResponse",component:f("/sdk/reference/interfaces/ICensus3ServiceInfoResponse","b0b"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/reference/interfaces/ICensus3StrategiesListResponse",component:f("/sdk/reference/interfaces/ICensus3StrategiesListResponse","f71"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/reference/interfaces/ICensus3StrategiesListResponsePaginated",component:f("/sdk/reference/interfaces/ICensus3StrategiesListResponsePaginated","ba4"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/reference/interfaces/ICensus3StrategiesOperator",component:f("/sdk/reference/interfaces/ICensus3StrategiesOperator","661"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/reference/interfaces/ICensus3StrategiesOperatorsResponse",component:f("/sdk/reference/interfaces/ICensus3StrategiesOperatorsResponse","a61"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/reference/interfaces/ICensus3StrategyCreateResponse",component:f("/sdk/reference/interfaces/ICensus3StrategyCreateResponse","0ec"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/reference/interfaces/ICensus3StrategyEstimationQueueResponse",component:f("/sdk/reference/interfaces/ICensus3StrategyEstimationQueueResponse","e02"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/reference/interfaces/ICensus3StrategyHoldersResponse",component:f("/sdk/reference/interfaces/ICensus3StrategyHoldersResponse","445"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/reference/interfaces/ICensus3StrategyHoldersResponsePaginated",component:f("/sdk/reference/interfaces/ICensus3StrategyHoldersResponsePaginated","240"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/reference/interfaces/ICensus3StrategyImportQueueResponse",component:f("/sdk/reference/interfaces/ICensus3StrategyImportQueueResponse","197"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/reference/interfaces/ICensus3StrategyToken",component:f("/sdk/reference/interfaces/ICensus3StrategyToken","844"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/reference/interfaces/ICensus3SupportedChain",component:f("/sdk/reference/interfaces/ICensus3SupportedChain","cbd"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/reference/interfaces/ICensus3TokenHolderResponse",component:f("/sdk/reference/interfaces/ICensus3TokenHolderResponse","c9f"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/reference/interfaces/ICensus3TokenListResponse",component:f("/sdk/reference/interfaces/ICensus3TokenListResponse","5af"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/reference/interfaces/ICensus3TokenListResponsePaginated",component:f("/sdk/reference/interfaces/ICensus3TokenListResponsePaginated","b69"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/reference/interfaces/ICensus3TokenTypesResponse",component:f("/sdk/reference/interfaces/ICensus3TokenTypesResponse","13c"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/reference/interfaces/ICensus3ValidatePredicateChild",component:f("/sdk/reference/interfaces/ICensus3ValidatePredicateChild","ed2"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/reference/interfaces/ICensus3ValidatePredicateResponse",component:f("/sdk/reference/interfaces/ICensus3ValidatePredicateResponse","d24"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/reference/interfaces/ICensus3ValidatePredicateToken",component:f("/sdk/reference/interfaces/ICensus3ValidatePredicateToken","4cd"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/reference/interfaces/ICensusExportResponse",component:f("/sdk/reference/interfaces/ICensusExportResponse","a9a"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/reference/interfaces/ICensusImportResponse",component:f("/sdk/reference/interfaces/ICensusImportResponse","77c"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/reference/interfaces/ICensusParticipant",component:f("/sdk/reference/interfaces/ICensusParticipant","9b0"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/reference/interfaces/ICensusProofResponse",component:f("/sdk/reference/interfaces/ICensusProofResponse","dfb"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/reference/interfaces/ICensusPublishResponse",component:f("/sdk/reference/interfaces/ICensusPublishResponse","3a7"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/reference/interfaces/IChainBlockInfoResponse",component:f("/sdk/reference/interfaces/IChainBlockInfoResponse","bfc"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/reference/interfaces/IChainGetCircuitResponse",component:f("/sdk/reference/interfaces/IChainGetCircuitResponse","dfd"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/reference/interfaces/IChainGetCostsResponse",component:f("/sdk/reference/interfaces/IChainGetCostsResponse","9b1"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/reference/interfaces/IChainGetInfoResponse",component:f("/sdk/reference/interfaces/IChainGetInfoResponse","1cd"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/reference/interfaces/IChainOrganizationCountResponse",component:f("/sdk/reference/interfaces/IChainOrganizationCountResponse","53f"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/reference/interfaces/IChainOrganizationListResponse",component:f("/sdk/reference/interfaces/IChainOrganizationListResponse","e0c"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/reference/interfaces/IChainOrganizationResponse",component:f("/sdk/reference/interfaces/IChainOrganizationResponse","663"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/reference/interfaces/IChainSubmitTxResponse",component:f("/sdk/reference/interfaces/IChainSubmitTxResponse","cfa"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/reference/interfaces/IChainTxCountResponse",component:f("/sdk/reference/interfaces/IChainTxCountResponse","526"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/reference/interfaces/IChainTxListResponse",component:f("/sdk/reference/interfaces/IChainTxListResponse","c57"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/reference/interfaces/IChainTxReference",component:f("/sdk/reference/interfaces/IChainTxReference","804"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/reference/interfaces/IChainValidator",component:f("/sdk/reference/interfaces/IChainValidator","932"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/reference/interfaces/IChainValidatorsListResponse",component:f("/sdk/reference/interfaces/IChainValidatorsListResponse","bdb"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/reference/interfaces/IChoice",component:f("/sdk/reference/interfaces/IChoice","21d"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/reference/interfaces/IElectionCreateResponse",component:f("/sdk/reference/interfaces/IElectionCreateResponse","f95"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/reference/interfaces/IElectionInfoResponse",component:f("/sdk/reference/interfaces/IElectionInfoResponse","bcf"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/reference/interfaces/IElectionKeysResponse",component:f("/sdk/reference/interfaces/IElectionKeysResponse","db8"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/reference/interfaces/IElectionListFilter",component:f("/sdk/reference/interfaces/IElectionListFilter","f8b"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/reference/interfaces/IElectionListResponse",component:f("/sdk/reference/interfaces/IElectionListResponse","acd"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/reference/interfaces/IElectionMode",component:f("/sdk/reference/interfaces/IElectionMode","fbb"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/reference/interfaces/IElectionNextIdResponse",component:f("/sdk/reference/interfaces/IElectionNextIdResponse","107"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/reference/interfaces/IElectionParameters",component:f("/sdk/reference/interfaces/IElectionParameters","077"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/reference/interfaces/IElectionSummary",component:f("/sdk/reference/interfaces/IElectionSummary","cc4"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/reference/interfaces/IElectionType",component:f("/sdk/reference/interfaces/IElectionType","77e"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/reference/interfaces/IElectionVote",component:f("/sdk/reference/interfaces/IElectionVote","0c5"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/reference/interfaces/IElectionVoteListResponse",component:f("/sdk/reference/interfaces/IElectionVoteListResponse","300"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/reference/interfaces/IEncryptionKey",component:f("/sdk/reference/interfaces/IEncryptionKey","4e6"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/reference/interfaces/IInvalidElectionParameters",component:f("/sdk/reference/interfaces/IInvalidElectionParameters","861"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/reference/interfaces/IMultiChoiceElectionParameters",component:f("/sdk/reference/interfaces/IMultiChoiceElectionParameters","b37"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/reference/interfaces/IPublishedElectionParameters",component:f("/sdk/reference/interfaces/IPublishedElectionParameters","a41"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/reference/interfaces/IQuestion",component:f("/sdk/reference/interfaces/IQuestion","8bd"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/reference/interfaces/ITallyMode",component:f("/sdk/reference/interfaces/ITallyMode","2fd"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/reference/interfaces/IVoteInfoResponse",component:f("/sdk/reference/interfaces/IVoteInfoResponse","d2d"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/reference/interfaces/IVoteMode",component:f("/sdk/reference/interfaces/IVoteMode","f25"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/reference/interfaces/IVoteSubmitResponse",component:f("/sdk/reference/interfaces/IVoteSubmitResponse","db7"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/reference/interfaces/IVoteType",component:f("/sdk/reference/interfaces/IVoteType","7bb"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/reference/interfaces/MintTokensTx",component:f("/sdk/reference/interfaces/MintTokensTx","2f2"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/reference/interfaces/NewProcessTx",component:f("/sdk/reference/interfaces/NewProcessTx","4ae"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/reference/interfaces/Process",component:f("/sdk/reference/interfaces/Process","0e8"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/reference/interfaces/Proof",component:f("/sdk/reference/interfaces/Proof","b2c"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/reference/interfaces/RegisterKeyTx",component:f("/sdk/reference/interfaces/RegisterKeyTx","ad2"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/reference/interfaces/SendTokensTx",component:f("/sdk/reference/interfaces/SendTokensTx","5ac"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/reference/interfaces/ServiceProperties",component:f("/sdk/reference/interfaces/ServiceProperties","05a"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/reference/interfaces/SetAccountTx",component:f("/sdk/reference/interfaces/SetAccountTx","8bd"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/reference/interfaces/SetProcessTx",component:f("/sdk/reference/interfaces/SetProcessTx","2cc"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/reference/interfaces/SetTransactionCostsTx",component:f("/sdk/reference/interfaces/SetTransactionCostsTx","3e1"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/reference/interfaces/Tx",component:f("/sdk/reference/interfaces/Tx","bdf"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/reference/interfaces/VoteEnvelope",component:f("/sdk/reference/interfaces/VoteEnvelope","a38"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/reference/modules",component:f("/sdk/reference/modules","89f"),exact:!0,sidebar:"defaultSidebar"},{path:"/sdk/tutorial",component:f("/sdk/tutorial","0b4"),exact:!0,sidebar:"defaultSidebar"},{path:"/ui-components",component:f("/ui-components","0d2"),exact:!0,sidebar:"defaultSidebar"},{path:"/ui-components/Election",component:f("/ui-components/Election","34a"),exact:!0,sidebar:"defaultSidebar"},{path:"/ui-components/Organization",component:f("/ui-components/Organization","cc6"),exact:!0,sidebar:"defaultSidebar"},{path:"/vocdoni-api/accounts",component:f("/vocdoni-api/accounts","2d1"),exact:!0,sidebar:"defaultSidebar"},{path:"/vocdoni-api/add-account",component:f("/vocdoni-api/add-account","3a5"),exact:!0,sidebar:"defaultSidebar"},{path:"/vocdoni-api/add-participants-to-census",component:f("/vocdoni-api/add-participants-to-census","9e3"),exact:!0,sidebar:"defaultSidebar"},{path:"/vocdoni-api/census-merkle-root",component:f("/vocdoni-api/census-merkle-root","863"),exact:!0,sidebar:"defaultSidebar"},{path:"/vocdoni-api/census-size",component:f("/vocdoni-api/census-size","2da"),exact:!0,sidebar:"defaultSidebar"},{path:"/vocdoni-api/census-total-weight",component:f("/vocdoni-api/census-total-weight","0da"),exact:!0,sidebar:"defaultSidebar"},{path:"/vocdoni-api/censuses",component:f("/vocdoni-api/censuses","23b"),exact:!0,sidebar:"defaultSidebar"},{path:"/vocdoni-api/chain",component:f("/vocdoni-api/chain","179"),exact:!0,sidebar:"defaultSidebar"},{path:"/vocdoni-api/circuit-info",component:f("/vocdoni-api/circuit-info","b04"),exact:!0,sidebar:"defaultSidebar"},{path:"/vocdoni-api/compute-election-price",component:f("/vocdoni-api/compute-election-price","2b3"),exact:!0,sidebar:"defaultSidebar"},{path:"/vocdoni-api/compute-ipfs-ci-dv-1-of-file",component:f("/vocdoni-api/compute-ipfs-ci-dv-1-of-file","77c"),exact:!0,sidebar:"defaultSidebar"},{path:"/vocdoni-api/count-election-votes",component:f("/vocdoni-api/count-election-votes","47e"),exact:!0,sidebar:"defaultSidebar"},{path:"/vocdoni-api/count-organization-elections",component:f("/vocdoni-api/count-organization-elections","e48"),exact:!0,sidebar:"defaultSidebar"},{path:"/vocdoni-api/count-organizations",component:f("/vocdoni-api/count-organizations","e64"),exact:!0,sidebar:"defaultSidebar"},{path:"/vocdoni-api/create-a-new-census",component:f("/vocdoni-api/create-a-new-census","3dd"),exact:!0,sidebar:"defaultSidebar"},{path:"/vocdoni-api/create-election",component:f("/vocdoni-api/create-election","af1"),exact:!0,sidebar:"defaultSidebar"},{path:"/vocdoni-api/create-election-for-wallet",component:f("/vocdoni-api/create-election-for-wallet","350"),exact:!0,sidebar:"defaultSidebar"},{path:"/vocdoni-api/delete-census",component:f("/vocdoni-api/delete-census","6fa"),exact:!0,sidebar:"defaultSidebar"},{path:"/vocdoni-api/election-information",component:f("/vocdoni-api/election-information","45d"),exact:!0,sidebar:"defaultSidebar"},{path:"/vocdoni-api/election-results",component:f("/vocdoni-api/election-results","fef"),exact:!0,sidebar:"defaultSidebar"},{path:"/vocdoni-api/elections",component:f("/vocdoni-api/elections","35c"),exact:!0,sidebar:"defaultSidebar"},{path:"/vocdoni-api/estimate-block-to-date",component:f("/vocdoni-api/estimate-block-to-date","de0"),exact:!0,sidebar:"defaultSidebar"},{path:"/vocdoni-api/estimate-date-to-block",component:f("/vocdoni-api/estimate-date-to-block","a33"),exact:!0,sidebar:"defaultSidebar"},{path:"/vocdoni-api/export-census",component:f("/vocdoni-api/export-census","5de"),exact:!0,sidebar:"defaultSidebar"},{path:"/vocdoni-api/export-census-database",component:f("/vocdoni-api/export-census-database","755"),exact:!0,sidebar:"defaultSidebar"},{path:"/vocdoni-api/exports-the-indexer-database",component:f("/vocdoni-api/exports-the-indexer-database","b29"),exact:!0,sidebar:"defaultSidebar"},{path:"/vocdoni-api/get-account",component:f("/vocdoni-api/get-account","358"),exact:!0,sidebar:"defaultSidebar"},{path:"/vocdoni-api/get-block-by-hash",component:f("/vocdoni-api/get-block-by-hash","e3b"),exact:!0,sidebar:"defaultSidebar"},{path:"/vocdoni-api/get-block-by-height",component:f("/vocdoni-api/get-block-by-height","196"),exact:!0,sidebar:"defaultSidebar"},{path:"/vocdoni-api/get-next-election-id",component:f("/vocdoni-api/get-next-election-id","486"),exact:!0,sidebar:"defaultSidebar"},{path:"/vocdoni-api/get-type-of-census",component:f("/vocdoni-api/get-type-of-census","e28"),exact:!0,sidebar:"defaultSidebar"},{path:"/vocdoni-api/get-vote",component:f("/vocdoni-api/get-vote","f8b"),exact:!0,sidebar:"defaultSidebar"},{path:"/vocdoni-api/import-census",component:f("/vocdoni-api/import-census","f56"),exact:!0,sidebar:"defaultSidebar"},{path:"/vocdoni-api/import-census-database",component:f("/vocdoni-api/import-census-database","e4d"),exact:!0,sidebar:"defaultSidebar"},{path:"/vocdoni-api/list-account-received-and-sent-token-transfers",component:f("/vocdoni-api/list-account-received-and-sent-token-transfers","ec6"),exact:!0,sidebar:"defaultSidebar"},{path:"/vocdoni-api/list-account-token-fees",component:f("/vocdoni-api/list-account-token-fees","218"),exact:!0,sidebar:"defaultSidebar"},{path:"/vocdoni-api/list-all-census-references",component:f("/vocdoni-api/list-all-census-references","f26"),exact:!0,sidebar:"defaultSidebar"},{path:"/vocdoni-api/list-all-token-fees",component:f("/vocdoni-api/list-all-token-fees","c3b"),exact:!0,sidebar:"defaultSidebar"},{path:"/vocdoni-api/list-all-token-fees-by-reference",component:f("/vocdoni-api/list-all-token-fees-by-reference","c03"),exact:!0,sidebar:"defaultSidebar"},{path:"/vocdoni-api/list-all-token-fees-by-type",component:f("/vocdoni-api/list-all-token-fees-by-type","e34"),exact:!0,sidebar:"defaultSidebar"},{path:"/vocdoni-api/list-election-votes",component:f("/vocdoni-api/list-election-votes","7df"),exact:!0,sidebar:"defaultSidebar"},{path:"/vocdoni-api/list-elections",component:f("/vocdoni-api/list-elections","a7c"),exact:!0,sidebar:"defaultSidebar"},{path:"/vocdoni-api/list-elections-filtered",component:f("/vocdoni-api/list-elections-filtered","70c"),exact:!0,sidebar:"defaultSidebar"},{path:"/vocdoni-api/list-encryption-keys",component:f("/vocdoni-api/list-encryption-keys","b8d"),exact:!0,sidebar:"defaultSidebar"},{path:"/vocdoni-api/list-of-the-existing-accounts",component:f("/vocdoni-api/list-of-the-existing-accounts","a3d"),exact:!0,sidebar:"defaultSidebar"},{path:"/vocdoni-api/list-of-valid-sik-roots",component:f("/vocdoni-api/list-of-valid-sik-roots","c85"),exact:!0,sidebar:"defaultSidebar"},{path:"/vocdoni-api/list-organization-elections",component:f("/vocdoni-api/list-organization-elections","ce8"),exact:!0,sidebar:"defaultSidebar"},{path:"/vocdoni-api/list-organization-elections-by-status",component:f("/vocdoni-api/list-organization-elections-by-status","6f8"),exact:!0,sidebar:"defaultSidebar"},{path:"/vocdoni-api/list-organizations",component:f("/vocdoni-api/list-organizations","8b0"),exact:!0,sidebar:"defaultSidebar"},{path:"/vocdoni-api/list-organizations-filtered",component:f("/vocdoni-api/list-organizations-filtered","554"),exact:!0,sidebar:"defaultSidebar"},{path:"/vocdoni-api/list-transactions",component:f("/vocdoni-api/list-transactions","541"),exact:!0,sidebar:"defaultSidebar"},{path:"/vocdoni-api/list-validators",component:f("/vocdoni-api/list-validators","66d"),exact:!0,sidebar:"defaultSidebar"},{path:"/vocdoni-api/price-factors-information",component:f("/vocdoni-api/price-factors-information","093"),exact:!0,sidebar:"defaultSidebar"},{path:"/vocdoni-api/prove-key-to-census",component:f("/vocdoni-api/prove-key-to-census","af9"),exact:!0,sidebar:"defaultSidebar"},{path:"/vocdoni-api/publish-census",component:f("/vocdoni-api/publish-census","a10"),exact:!0,sidebar:"defaultSidebar"},{path:"/vocdoni-api/publish-census-at-root",component:f("/vocdoni-api/publish-census-at-root","4fb"),exact:!0,sidebar:"defaultSidebar"},{path:"/vocdoni-api/returns-if-the-address-provided-has-a-valid-sik",component:f("/vocdoni-api/returns-if-the-address-provided-has-a-valid-sik","1e5"),exact:!0,sidebar:"defaultSidebar"},{path:"/vocdoni-api/set-account",component:f("/vocdoni-api/set-account","df9"),exact:!0,sidebar:"defaultSidebar"},{path:"/vocdoni-api/set-wallet-account",component:f("/vocdoni-api/set-wallet-account","97c"),exact:!0,sidebar:"defaultSidebar"},{path:"/vocdoni-api/sik",component:f("/vocdoni-api/sik","f12"),exact:!0,sidebar:"defaultSidebar"},{path:"/vocdoni-api/submit-a-vote",component:f("/vocdoni-api/submit-a-vote","8a0"),exact:!0,sidebar:"defaultSidebar"},{path:"/vocdoni-api/submit-transaction",component:f("/vocdoni-api/submit-transaction","6cd"),exact:!0,sidebar:"defaultSidebar"},{path:"/vocdoni-api/total-number-of-accounts",component:f("/vocdoni-api/total-number-of-accounts","cfa"),exact:!0,sidebar:"defaultSidebar"},{path:"/vocdoni-api/total-number-of-sent-and-received-transactions",component:f("/vocdoni-api/total-number-of-sent-and-received-transactions","118"),exact:!0,sidebar:"defaultSidebar"},{path:"/vocdoni-api/transaction-by-block-height-and-index",component:f("/vocdoni-api/transaction-by-block-height-and-index","b15"),exact:!0,sidebar:"defaultSidebar"},{path:"/vocdoni-api/transaction-by-hash",component:f("/vocdoni-api/transaction-by-hash","0d9"),exact:!0,sidebar:"defaultSidebar"},{path:"/vocdoni-api/transaction-by-index",component:f("/vocdoni-api/transaction-by-index","ddf"),exact:!0,sidebar:"defaultSidebar"},{path:"/vocdoni-api/transaction-costs",component:f("/vocdoni-api/transaction-costs","99d"),exact:!0,sidebar:"defaultSidebar"},{path:"/vocdoni-api/transactions-count",component:f("/vocdoni-api/transactions-count","2b2"),exact:!0,sidebar:"defaultSidebar"},{path:"/vocdoni-api/transactions-in-a-block",component:f("/vocdoni-api/transactions-in-a-block","9d9"),exact:!0,sidebar:"defaultSidebar"},{path:"/vocdoni-api/transfer-tokens",component:f("/vocdoni-api/transfer-tokens","ebf"),exact:!0,sidebar:"defaultSidebar"},{path:"/vocdoni-api/verify-merkle-proof",component:f("/vocdoni-api/verify-merkle-proof","642"),exact:!0,sidebar:"defaultSidebar"},{path:"/vocdoni-api/verify-vote",component:f("/vocdoni-api/verify-vote","d94"),exact:!0,sidebar:"defaultSidebar"},{path:"/vocdoni-api/vocdoni-api",component:f("/vocdoni-api/vocdoni-api","2b0"),exact:!0,sidebar:"defaultSidebar"},{path:"/vocdoni-api/vochain-information",component:f("/vocdoni-api/vochain-information","9f5"),exact:!0,sidebar:"defaultSidebar"},{path:"/vocdoni-api/votes",component:f("/vocdoni-api/votes","541"),exact:!0,sidebar:"defaultSidebar"},{path:"/vocdoni-api/wallet",component:f("/vocdoni-api/wallet","c13"),exact:!0,sidebar:"defaultSidebar"}]},{path:"*",component:f("*")}]},98934:(e,t,n)=>{"use strict";n.d(t,{_:()=>a,t:()=>i});var r=n(67294);const a=r.createContext(!1);function i(e){let{children:t}=e;const[n,i]=(0,r.useState)(!1);return(0,r.useEffect)((()=>{i(!0)}),[]),r.createElement(a.Provider,{value:n},t)}},49383:(e,t,n)=>{"use strict";var r=n(67294),a=n(73935),i=n(73727),o=n(70405),s=n(10412);const c=[n(32497),n(3310),n(18320),n(52295),n(93524),n(79362),n(87406),n(86199),n(56748)];var l=n(723),d=n(16550),u=n(18790);function f(e){let{children:t}=e;return r.createElement(r.Fragment,null,t)}var p=n(87462),m=n(35742),h=n(52263),b=n(44996),g=n(86668),v=n(10833),y=n(94711),k=n(19727),S=n(43320),w=n(90197);function E(){const{i18n:{defaultLocale:e,localeConfigs:t}}=(0,h.Z)(),n=(0,y.l)();return r.createElement(m.Z,null,Object.entries(t).map((e=>{let[t,{htmlLang:a}]=e;return r.createElement("link",{key:t,rel:"alternate",href:n.createUrl({locale:t,fullyQualified:!0}),hrefLang:a})})),r.createElement("link",{rel:"alternate",href:n.createUrl({locale:e,fullyQualified:!0}),hrefLang:"x-default"}))}function x(e){let{permalink:t}=e;const{siteConfig:{url:n}}=(0,h.Z)(),a=function(){const{siteConfig:{url:e}}=(0,h.Z)(),{pathname:t}=(0,d.TH)();return e+(0,b.Z)(t)}(),i=t?`${n}${t}`:a;return r.createElement(m.Z,null,r.createElement("meta",{property:"og:url",content:i}),r.createElement("link",{rel:"canonical",href:i}))}function C(){const{i18n:{currentLocale:e}}=(0,h.Z)(),{metadata:t,image:n}=(0,g.L)();return r.createElement(r.Fragment,null,r.createElement(m.Z,null,r.createElement("meta",{name:"twitter:card",content:"summary_large_image"}),r.createElement("body",{className:k.h})),n&&r.createElement(v.d,{image:n}),r.createElement(x,null),r.createElement(E,null),r.createElement(w.Z,{tag:S.HX,locale:e}),r.createElement(m.Z,null,t.map(((e,t)=>r.createElement("meta",(0,p.Z)({key:t},e))))))}const _=new Map;function I(e){if(_.has(e.pathname))return{...e,pathname:_.get(e.pathname)};if((0,u.f)(l.Z,e.pathname).some((e=>{let{route:t}=e;return!0===t.exact})))return _.set(e.pathname,e.pathname),e;const t=e.pathname.trim().replace(/(?:\/index)?\.html$/,"")||"/";return _.set(e.pathname,t),{...e,pathname:t}}var T=n(98934),P=n(58940);function A(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r(t.default?.[e]??t[e])?.(...n)));return()=>a.forEach((e=>e?.()))}const R=function(e){let{children:t,location:n,previousLocation:a}=e;return(0,r.useLayoutEffect)((()=>{a!==n&&(a&&function(e){const{hash:t}=e;if(t){const e=decodeURIComponent(t.substring(1));document.getElementById(e)?.scrollIntoView()}else window.scrollTo(0,0)}(n),A("onRouteDidUpdate",{previousLocation:a,location:n}))}),[a,n]),t};function L(e){const t=Array.from(new Set([e,decodeURI(e)])).map((e=>(0,u.f)(l.Z,e))).flat();return Promise.all(t.map((e=>e.route.component.preload?.())))}class O extends r.Component{constructor(e){super(e),this.previousLocation=void 0,this.routeUpdateCleanupCb=void 0,this.previousLocation=null,this.routeUpdateCleanupCb=s.Z.canUseDOM?A("onRouteUpdate",{previousLocation:null,location:this.props.location}):()=>{},this.state={nextRouteHasLoaded:!0}}shouldComponentUpdate(e,t){if(e.location===this.props.location)return t.nextRouteHasLoaded;const n=e.location;return this.previousLocation=this.props.location,this.setState({nextRouteHasLoaded:!1}),this.routeUpdateCleanupCb=A("onRouteUpdate",{previousLocation:this.previousLocation,location:n}),L(n.pathname).then((()=>{this.routeUpdateCleanupCb(),this.setState({nextRouteHasLoaded:!0})})).catch((e=>{console.warn(e),window.location.reload()})),!1}render(){const{children:e,location:t}=this.props;return r.createElement(R,{previousLocation:this.previousLocation,location:t},r.createElement(d.AW,{location:t,render:()=>e}))}}const N=O,M="docusaurus-base-url-issue-banner-container",D="docusaurus-base-url-issue-banner-suggestion-container",z="__DOCUSAURUS_INSERT_BASEURL_BANNER";function F(e){return`\nwindow['${z}'] = true;\n\ndocument.addEventListener('DOMContentLoaded', maybeInsertBanner);\n\nfunction maybeInsertBanner() {\n var shouldInsert = window['${z}'];\n shouldInsert && insertBanner();\n}\n\nfunction insertBanner() {\n var bannerContainer = document.getElementById('${M}');\n if (!bannerContainer) {\n return;\n }\n var bannerHtml = ${JSON.stringify(function(e){return`\n
\n

Your Docusaurus site did not load properly.

\n

A very common reason is a wrong site baseUrl configuration.

\n

Current configured baseUrl = ${e} ${"/"===e?" (default value)":""}

\n

We suggest trying baseUrl =

\n
\n`}(e)).replace(/{window[z]=!1}),[]),r.createElement(r.Fragment,null,!s.Z.canUseDOM&&r.createElement(m.Z,null,r.createElement("script",null,F(e))),r.createElement("div",{id:M}))}function $(){const{siteConfig:{baseUrl:e,baseUrlIssueBanner:t}}=(0,h.Z)(),{pathname:n}=(0,d.TH)();return t&&n===e?r.createElement(B,null):null}function U(){const{siteConfig:{favicon:e,title:t,noIndex:n},i18n:{currentLocale:a,localeConfigs:i}}=(0,h.Z)(),o=(0,b.Z)(e),{htmlLang:s,direction:c}=i[a];return r.createElement(m.Z,null,r.createElement("html",{lang:s,dir:c}),r.createElement("title",null,t),r.createElement("meta",{property:"og:title",content:t}),r.createElement("meta",{name:"viewport",content:"width=device-width, initial-scale=1.0"}),n&&r.createElement("meta",{name:"robots",content:"noindex, nofollow"}),e&&r.createElement("link",{rel:"icon",href:o}))}var j=n(44763);function V(){const e=(0,u.H)(l.Z),t=(0,d.TH)();return r.createElement(j.Z,null,r.createElement(P.M,null,r.createElement(T.t,null,r.createElement(f,null,r.createElement(U,null),r.createElement(C,null),r.createElement($,null),r.createElement(N,{location:I(t)},e)))))}var Z=n(16887);const H=function(e){try{return document.createElement("link").relList.supports(e)}catch{return!1}}("prefetch")?function(e){return new Promise(((t,n)=>{if("undefined"==typeof document)return void n();const r=document.createElement("link");r.setAttribute("rel","prefetch"),r.setAttribute("href",e),r.onload=()=>t(),r.onerror=()=>n();(document.getElementsByTagName("head")[0]??document.getElementsByName("script")[0]?.parentNode)?.appendChild(r)}))}:function(e){return new Promise(((t,n)=>{const r=new XMLHttpRequest;r.open("GET",e,!0),r.withCredentials=!0,r.onload=()=>{200===r.status?t():n()},r.send(null)}))};var W=n(99670);const G=new Set,q=new Set,K=()=>navigator.connection?.effectiveType.includes("2g")||navigator.connection?.saveData,Y={prefetch(e){if(!(e=>!K()&&!q.has(e)&&!G.has(e))(e))return!1;G.add(e);const t=(0,u.f)(l.Z,e).flatMap((e=>{return t=e.route.path,Object.entries(Z).filter((e=>{let[n]=e;return n.replace(/-[^-]+$/,"")===t})).flatMap((e=>{let[,t]=e;return Object.values((0,W.Z)(t))}));var t}));return Promise.all(t.map((e=>{const t=n.gca(e);return t&&!t.includes("undefined")?H(t).catch((()=>{})):Promise.resolve()})))},preload:e=>!!(e=>!K()&&!q.has(e))(e)&&(q.add(e),L(e))},Q=Object.freeze(Y);if(s.Z.canUseDOM){window.docusaurus=Q;const e=a.hydrate;L(window.location.pathname).then((()=>{e(r.createElement(o.B6,null,r.createElement(i.VK,null,r.createElement(V,null))),document.getElementById("__docusaurus"))}))}},58940:(e,t,n)=>{"use strict";n.d(t,{_:()=>d,M:()=>u});var r=n(67294),a=n(36809);const i=JSON.parse('{"docusaurus-plugin-content-docs":{"default":{"path":"/","versions":[{"name":"current","label":"Next","isLast":true,"path":"/","mainDocId":"intro","docs":[{"id":"intro","path":"/intro","sidebar":"defaultSidebar"},{"id":"protocol/anonymity/anonymity","path":"/protocol/anonymity/","sidebar":"defaultSidebar"},{"id":"protocol/anonymity/blind-signatures","path":"/protocol/anonymity/blind-signatures","sidebar":"defaultSidebar"},{"id":"protocol/anonymity/on-chain","path":"/protocol/anonymity/on-chain","sidebar":"defaultSidebar"},{"id":"protocol/anonymity/zk-census-proof","path":"/protocol/anonymity/zk-census-proof","sidebar":"defaultSidebar"},{"id":"protocol/ballot-protocol","path":"/protocol/ballot-protocol","sidebar":"defaultSidebar"},{"id":"protocol/census/census","path":"/protocol/census/","sidebar":"defaultSidebar"},{"id":"protocol/census/off-chain-csp","path":"/protocol/census/off-chain-csp","sidebar":"defaultSidebar"},{"id":"protocol/census/off-chain-tree","path":"/protocol/census/off-chain-tree","sidebar":"defaultSidebar"},{"id":"protocol/census/on-chain/census3","path":"/protocol/census/on-chain/census3","sidebar":"defaultSidebar"},{"id":"protocol/census/on-chain/on-chain","path":"/protocol/census/on-chain/","sidebar":"defaultSidebar"},{"id":"protocol/data-schemes/data-schemes","path":"/protocol/data-schemes/","sidebar":"defaultSidebar"},{"id":"protocol/data-schemes/election","path":"/protocol/data-schemes/election","sidebar":"defaultSidebar"},{"id":"protocol/data-schemes/organization","path":"/protocol/data-schemes/organization","sidebar":"defaultSidebar"},{"id":"protocol/data-schemes/vote","path":"/protocol/data-schemes/vote","sidebar":"defaultSidebar"},{"id":"protocol/index","path":"/protocol/","sidebar":"defaultSidebar"},{"id":"sdk/index","path":"/sdk/","sidebar":"defaultSidebar"},{"id":"sdk/integration-details/census-types/census-types","path":"/sdk/integration-details/census-types/","sidebar":"defaultSidebar"},{"id":"sdk/integration-details/census-types/off-chain-csp","path":"/sdk/integration-details/census-types/off-chain-csp","sidebar":"defaultSidebar"},{"id":"sdk/integration-details/census-types/off-chain-tree","path":"/sdk/integration-details/census-types/off-chain-tree","sidebar":"defaultSidebar"},{"id":"sdk/integration-details/census-types/on-chain/complex-census","path":"/sdk/integration-details/census-types/on-chain/complex-census","sidebar":"defaultSidebar"},{"id":"sdk/integration-details/census-types/on-chain/on-chain","path":"/sdk/integration-details/census-types/on-chain/","sidebar":"defaultSidebar"},{"id":"sdk/integration-details/integration-details","path":"/sdk/integration-details/","sidebar":"defaultSidebar"},{"id":"sdk/integration-details/vocdoni-tokens","path":"/sdk/integration-details/vocdoni-tokens","sidebar":"defaultSidebar"},{"id":"sdk/integration-details/voting-types/approval","path":"/sdk/integration-details/voting-types/approval","sidebar":"defaultSidebar"},{"id":"sdk/integration-details/voting-types/quadratic","path":"/sdk/integration-details/voting-types/quadratic","sidebar":"defaultSidebar"},{"id":"sdk/integration-details/voting-types/ranked","path":"/sdk/integration-details/voting-types/ranked","sidebar":"defaultSidebar"},{"id":"sdk/integration-details/voting-types/single-choice","path":"/sdk/integration-details/voting-types/single-choice","sidebar":"defaultSidebar"},{"id":"sdk/integration-details/voting-types/voting-types","path":"/sdk/integration-details/voting-types/","sidebar":"defaultSidebar"},{"id":"sdk/integration-details/voting-types/weighted","path":"/sdk/integration-details/voting-types/weighted","sidebar":"defaultSidebar"},{"id":"sdk/reference/changelog","path":"/sdk/reference/changelog","sidebar":"defaultSidebar"},{"id":"sdk/reference/classes/Account","path":"/sdk/reference/classes/Account","sidebar":"defaultSidebar"},{"id":"sdk/reference/classes/AccountAPI","path":"/sdk/reference/classes/AccountAPI","sidebar":"defaultSidebar"},{"id":"sdk/reference/classes/AccountService","path":"/sdk/reference/classes/AccountService","sidebar":"defaultSidebar"},{"id":"sdk/reference/classes/AnonymousService","path":"/sdk/reference/classes/AnonymousService","sidebar":"defaultSidebar"},{"id":"sdk/reference/classes/AnonymousVote","path":"/sdk/reference/classes/AnonymousVote","sidebar":"defaultSidebar"},{"id":"sdk/reference/classes/ApprovalElection","path":"/sdk/reference/classes/ApprovalElection","sidebar":"defaultSidebar"},{"id":"sdk/reference/classes/ArchivedElection","path":"/sdk/reference/classes/ArchivedElection","sidebar":"defaultSidebar"},{"id":"sdk/reference/classes/BudgetElection","path":"/sdk/reference/classes/BudgetElection","sidebar":"defaultSidebar"},{"id":"sdk/reference/classes/Census","path":"/sdk/reference/classes/Census","sidebar":"defaultSidebar"},{"id":"sdk/reference/classes/Census3CensusAPI","path":"/sdk/reference/classes/Census3CensusAPI","sidebar":"defaultSidebar"},{"id":"sdk/reference/classes/Census3ServiceAPI","path":"/sdk/reference/classes/Census3ServiceAPI","sidebar":"defaultSidebar"},{"id":"sdk/reference/classes/Census3StrategyAPI","path":"/sdk/reference/classes/Census3StrategyAPI","sidebar":"defaultSidebar"},{"id":"sdk/reference/classes/Census3TokenAPI","path":"/sdk/reference/classes/Census3TokenAPI","sidebar":"defaultSidebar"},{"id":"sdk/reference/classes/CensusAPI","path":"/sdk/reference/classes/CensusAPI","sidebar":"defaultSidebar"},{"id":"sdk/reference/classes/CensusService","path":"/sdk/reference/classes/CensusService","sidebar":"defaultSidebar"},{"id":"sdk/reference/classes/ChainAPI","path":"/sdk/reference/classes/ChainAPI","sidebar":"defaultSidebar"},{"id":"sdk/reference/classes/ChainService","path":"/sdk/reference/classes/ChainService","sidebar":"defaultSidebar"},{"id":"sdk/reference/classes/CspCensus","path":"/sdk/reference/classes/CspCensus","sidebar":"defaultSidebar"},{"id":"sdk/reference/classes/CspService","path":"/sdk/reference/classes/CspService","sidebar":"defaultSidebar"},{"id":"sdk/reference/classes/CspVote","path":"/sdk/reference/classes/CspVote","sidebar":"defaultSidebar"},{"id":"sdk/reference/classes/Election","path":"/sdk/reference/classes/Election","sidebar":"defaultSidebar"},{"id":"sdk/reference/classes/ElectionAPI","path":"/sdk/reference/classes/ElectionAPI","sidebar":"defaultSidebar"},{"id":"sdk/reference/classes/ElectionService","path":"/sdk/reference/classes/ElectionService","sidebar":"defaultSidebar"},{"id":"sdk/reference/classes/FaucetAPI","path":"/sdk/reference/classes/FaucetAPI","sidebar":"defaultSidebar"},{"id":"sdk/reference/classes/FaucetService","path":"/sdk/reference/classes/FaucetService","sidebar":"defaultSidebar"},{"id":"sdk/reference/classes/FileAPI","path":"/sdk/reference/classes/FileAPI","sidebar":"defaultSidebar"},{"id":"sdk/reference/classes/FileService","path":"/sdk/reference/classes/FileService","sidebar":"defaultSidebar"},{"id":"sdk/reference/classes/InvalidElection","path":"/sdk/reference/classes/InvalidElection","sidebar":"defaultSidebar"},{"id":"sdk/reference/classes/MultiChoiceElection","path":"/sdk/reference/classes/MultiChoiceElection","sidebar":"defaultSidebar"},{"id":"sdk/reference/classes/OffchainCensus","path":"/sdk/reference/classes/OffchainCensus","sidebar":"defaultSidebar"},{"id":"sdk/reference/classes/PlainCensus","path":"/sdk/reference/classes/PlainCensus","sidebar":"defaultSidebar"},{"id":"sdk/reference/classes/PublishedCensus","path":"/sdk/reference/classes/PublishedCensus","sidebar":"defaultSidebar"},{"id":"sdk/reference/classes/PublishedElection","path":"/sdk/reference/classes/PublishedElection","sidebar":"defaultSidebar"},{"id":"sdk/reference/classes/Service","path":"/sdk/reference/classes/Service","sidebar":"defaultSidebar"},{"id":"sdk/reference/classes/TokenCensus","path":"/sdk/reference/classes/TokenCensus","sidebar":"defaultSidebar"},{"id":"sdk/reference/classes/UnpublishedElection","path":"/sdk/reference/classes/UnpublishedElection","sidebar":"defaultSidebar"},{"id":"sdk/reference/classes/VocdoniCensus3Client","path":"/sdk/reference/classes/VocdoniCensus3Client","sidebar":"defaultSidebar"},{"id":"sdk/reference/classes/VocdoniSDKClient","path":"/sdk/reference/classes/VocdoniSDKClient","sidebar":"defaultSidebar"},{"id":"sdk/reference/classes/Vote","path":"/sdk/reference/classes/Vote","sidebar":"defaultSidebar"},{"id":"sdk/reference/classes/VoteAPI","path":"/sdk/reference/classes/VoteAPI","sidebar":"defaultSidebar"},{"id":"sdk/reference/classes/VoteService","path":"/sdk/reference/classes/VoteService","sidebar":"defaultSidebar"},{"id":"sdk/reference/classes/WalletAPI","path":"/sdk/reference/classes/WalletAPI","sidebar":"defaultSidebar"},{"id":"sdk/reference/classes/WeightedCensus","path":"/sdk/reference/classes/WeightedCensus","sidebar":"defaultSidebar"},{"id":"sdk/reference/enums/CensusOrigin","path":"/sdk/reference/enums/CensusOrigin","sidebar":"defaultSidebar"},{"id":"sdk/reference/enums/CensusType","path":"/sdk/reference/enums/CensusType","sidebar":"defaultSidebar"},{"id":"sdk/reference/enums/CensusTypeEnum","path":"/sdk/reference/enums/CensusTypeEnum","sidebar":"defaultSidebar"},{"id":"sdk/reference/enums/CspProofType","path":"/sdk/reference/enums/CspProofType","sidebar":"defaultSidebar"},{"id":"sdk/reference/enums/ElectionCreationSteps","path":"/sdk/reference/enums/ElectionCreationSteps","sidebar":"defaultSidebar"},{"id":"sdk/reference/enums/ElectionResultsTypeNames","path":"/sdk/reference/enums/ElectionResultsTypeNames","sidebar":"defaultSidebar"},{"id":"sdk/reference/enums/ElectionStatus","path":"/sdk/reference/enums/ElectionStatus","sidebar":"defaultSidebar"},{"id":"sdk/reference/enums/ElectionStatusReady","path":"/sdk/reference/enums/ElectionStatusReady","sidebar":"defaultSidebar"},{"id":"sdk/reference/enums/EnvOptions","path":"/sdk/reference/enums/EnvOptions","sidebar":"defaultSidebar"},{"id":"sdk/reference/enums/TransactionType","path":"/sdk/reference/enums/TransactionType","sidebar":"defaultSidebar"},{"id":"sdk/reference/enums/TxType","path":"/sdk/reference/enums/TxType","sidebar":"defaultSidebar"},{"id":"sdk/reference/enums/VoteSteps","path":"/sdk/reference/enums/VoteSteps","sidebar":"defaultSidebar"},{"id":"sdk/reference/interfaces/AccountMetadata","path":"/sdk/reference/interfaces/AccountMetadata","sidebar":"defaultSidebar"},{"id":"sdk/reference/interfaces/AdminTx","path":"/sdk/reference/interfaces/AdminTx","sidebar":"defaultSidebar"},{"id":"sdk/reference/interfaces/CircuitInputs","path":"/sdk/reference/interfaces/CircuitInputs","sidebar":"defaultSidebar"},{"id":"sdk/reference/interfaces/CollectFaucetTx","path":"/sdk/reference/interfaces/CollectFaucetTx","sidebar":"defaultSidebar"},{"id":"sdk/reference/interfaces/ElectionMetadata","path":"/sdk/reference/interfaces/ElectionMetadata","sidebar":"defaultSidebar"},{"id":"sdk/reference/interfaces/FetchElectionsParameters","path":"/sdk/reference/interfaces/FetchElectionsParameters","sidebar":"defaultSidebar"},{"id":"sdk/reference/interfaces/IAccount","path":"/sdk/reference/interfaces/IAccount","sidebar":"defaultSidebar"},{"id":"sdk/reference/interfaces/IAccountsCountResponse","path":"/sdk/reference/interfaces/IAccountsCountResponse","sidebar":"defaultSidebar"},{"id":"sdk/reference/interfaces/IAccountsListResponse","path":"/sdk/reference/interfaces/IAccountsListResponse","sidebar":"defaultSidebar"},{"id":"sdk/reference/interfaces/IAccountTransfersCountResponse","path":"/sdk/reference/interfaces/IAccountTransfersCountResponse","sidebar":"defaultSidebar"},{"id":"sdk/reference/interfaces/IApprovalElectionParameters","path":"/sdk/reference/interfaces/IApprovalElectionParameters","sidebar":"defaultSidebar"},{"id":"sdk/reference/interfaces/IBlockTransactionsResponse","path":"/sdk/reference/interfaces/IBlockTransactionsResponse","sidebar":"defaultSidebar"},{"id":"sdk/reference/interfaces/IBudgetElectionParametersInfo","path":"/sdk/reference/interfaces/IBudgetElectionParametersInfo","sidebar":"defaultSidebar"},{"id":"sdk/reference/interfaces/IBudgetElectionParametersWithBudget","path":"/sdk/reference/interfaces/IBudgetElectionParametersWithBudget","sidebar":"defaultSidebar"},{"id":"sdk/reference/interfaces/IBudgetElectionParametersWithCensusWeight","path":"/sdk/reference/interfaces/IBudgetElectionParametersWithCensusWeight","sidebar":"defaultSidebar"},{"id":"sdk/reference/interfaces/ICensus","path":"/sdk/reference/interfaces/ICensus","sidebar":"defaultSidebar"},{"id":"sdk/reference/interfaces/ICensus3CensusListResponse","path":"/sdk/reference/interfaces/ICensus3CensusListResponse","sidebar":"defaultSidebar"},{"id":"sdk/reference/interfaces/ICensus3CensusQueueResponse","path":"/sdk/reference/interfaces/ICensus3CensusQueueResponse","sidebar":"defaultSidebar"},{"id":"sdk/reference/interfaces/ICensus3CensusResponse","path":"/sdk/reference/interfaces/ICensus3CensusResponse","sidebar":"defaultSidebar"},{"id":"sdk/reference/interfaces/ICensus3ServiceInfoResponse","path":"/sdk/reference/interfaces/ICensus3ServiceInfoResponse","sidebar":"defaultSidebar"},{"id":"sdk/reference/interfaces/ICensus3StrategiesListResponse","path":"/sdk/reference/interfaces/ICensus3StrategiesListResponse","sidebar":"defaultSidebar"},{"id":"sdk/reference/interfaces/ICensus3StrategiesListResponsePaginated","path":"/sdk/reference/interfaces/ICensus3StrategiesListResponsePaginated","sidebar":"defaultSidebar"},{"id":"sdk/reference/interfaces/ICensus3StrategiesOperator","path":"/sdk/reference/interfaces/ICensus3StrategiesOperator","sidebar":"defaultSidebar"},{"id":"sdk/reference/interfaces/ICensus3StrategiesOperatorsResponse","path":"/sdk/reference/interfaces/ICensus3StrategiesOperatorsResponse","sidebar":"defaultSidebar"},{"id":"sdk/reference/interfaces/ICensus3StrategyCreateResponse","path":"/sdk/reference/interfaces/ICensus3StrategyCreateResponse","sidebar":"defaultSidebar"},{"id":"sdk/reference/interfaces/ICensus3StrategyEstimationQueueResponse","path":"/sdk/reference/interfaces/ICensus3StrategyEstimationQueueResponse","sidebar":"defaultSidebar"},{"id":"sdk/reference/interfaces/ICensus3StrategyHoldersResponse","path":"/sdk/reference/interfaces/ICensus3StrategyHoldersResponse","sidebar":"defaultSidebar"},{"id":"sdk/reference/interfaces/ICensus3StrategyHoldersResponsePaginated","path":"/sdk/reference/interfaces/ICensus3StrategyHoldersResponsePaginated","sidebar":"defaultSidebar"},{"id":"sdk/reference/interfaces/ICensus3StrategyImportQueueResponse","path":"/sdk/reference/interfaces/ICensus3StrategyImportQueueResponse","sidebar":"defaultSidebar"},{"id":"sdk/reference/interfaces/ICensus3StrategyToken","path":"/sdk/reference/interfaces/ICensus3StrategyToken","sidebar":"defaultSidebar"},{"id":"sdk/reference/interfaces/ICensus3SupportedChain","path":"/sdk/reference/interfaces/ICensus3SupportedChain","sidebar":"defaultSidebar"},{"id":"sdk/reference/interfaces/ICensus3TokenHolderResponse","path":"/sdk/reference/interfaces/ICensus3TokenHolderResponse","sidebar":"defaultSidebar"},{"id":"sdk/reference/interfaces/ICensus3TokenListResponse","path":"/sdk/reference/interfaces/ICensus3TokenListResponse","sidebar":"defaultSidebar"},{"id":"sdk/reference/interfaces/ICensus3TokenListResponsePaginated","path":"/sdk/reference/interfaces/ICensus3TokenListResponsePaginated","sidebar":"defaultSidebar"},{"id":"sdk/reference/interfaces/ICensus3TokenTypesResponse","path":"/sdk/reference/interfaces/ICensus3TokenTypesResponse","sidebar":"defaultSidebar"},{"id":"sdk/reference/interfaces/ICensus3ValidatePredicateChild","path":"/sdk/reference/interfaces/ICensus3ValidatePredicateChild","sidebar":"defaultSidebar"},{"id":"sdk/reference/interfaces/ICensus3ValidatePredicateResponse","path":"/sdk/reference/interfaces/ICensus3ValidatePredicateResponse","sidebar":"defaultSidebar"},{"id":"sdk/reference/interfaces/ICensus3ValidatePredicateToken","path":"/sdk/reference/interfaces/ICensus3ValidatePredicateToken","sidebar":"defaultSidebar"},{"id":"sdk/reference/interfaces/ICensusExportResponse","path":"/sdk/reference/interfaces/ICensusExportResponse","sidebar":"defaultSidebar"},{"id":"sdk/reference/interfaces/ICensusImportResponse","path":"/sdk/reference/interfaces/ICensusImportResponse","sidebar":"defaultSidebar"},{"id":"sdk/reference/interfaces/ICensusParticipant","path":"/sdk/reference/interfaces/ICensusParticipant","sidebar":"defaultSidebar"},{"id":"sdk/reference/interfaces/ICensusProofResponse","path":"/sdk/reference/interfaces/ICensusProofResponse","sidebar":"defaultSidebar"},{"id":"sdk/reference/interfaces/ICensusPublishResponse","path":"/sdk/reference/interfaces/ICensusPublishResponse","sidebar":"defaultSidebar"},{"id":"sdk/reference/interfaces/IChainBlockInfoResponse","path":"/sdk/reference/interfaces/IChainBlockInfoResponse","sidebar":"defaultSidebar"},{"id":"sdk/reference/interfaces/IChainGetCircuitResponse","path":"/sdk/reference/interfaces/IChainGetCircuitResponse","sidebar":"defaultSidebar"},{"id":"sdk/reference/interfaces/IChainGetCostsResponse","path":"/sdk/reference/interfaces/IChainGetCostsResponse","sidebar":"defaultSidebar"},{"id":"sdk/reference/interfaces/IChainGetInfoResponse","path":"/sdk/reference/interfaces/IChainGetInfoResponse","sidebar":"defaultSidebar"},{"id":"sdk/reference/interfaces/IChainOrganizationCountResponse","path":"/sdk/reference/interfaces/IChainOrganizationCountResponse","sidebar":"defaultSidebar"},{"id":"sdk/reference/interfaces/IChainOrganizationListResponse","path":"/sdk/reference/interfaces/IChainOrganizationListResponse","sidebar":"defaultSidebar"},{"id":"sdk/reference/interfaces/IChainOrganizationResponse","path":"/sdk/reference/interfaces/IChainOrganizationResponse","sidebar":"defaultSidebar"},{"id":"sdk/reference/interfaces/IChainSubmitTxResponse","path":"/sdk/reference/interfaces/IChainSubmitTxResponse","sidebar":"defaultSidebar"},{"id":"sdk/reference/interfaces/IChainTxCountResponse","path":"/sdk/reference/interfaces/IChainTxCountResponse","sidebar":"defaultSidebar"},{"id":"sdk/reference/interfaces/IChainTxListResponse","path":"/sdk/reference/interfaces/IChainTxListResponse","sidebar":"defaultSidebar"},{"id":"sdk/reference/interfaces/IChainTxReference","path":"/sdk/reference/interfaces/IChainTxReference","sidebar":"defaultSidebar"},{"id":"sdk/reference/interfaces/IChainValidator","path":"/sdk/reference/interfaces/IChainValidator","sidebar":"defaultSidebar"},{"id":"sdk/reference/interfaces/IChainValidatorsListResponse","path":"/sdk/reference/interfaces/IChainValidatorsListResponse","sidebar":"defaultSidebar"},{"id":"sdk/reference/interfaces/IChoice","path":"/sdk/reference/interfaces/IChoice","sidebar":"defaultSidebar"},{"id":"sdk/reference/interfaces/IElectionCreateResponse","path":"/sdk/reference/interfaces/IElectionCreateResponse","sidebar":"defaultSidebar"},{"id":"sdk/reference/interfaces/IElectionInfoResponse","path":"/sdk/reference/interfaces/IElectionInfoResponse","sidebar":"defaultSidebar"},{"id":"sdk/reference/interfaces/IElectionKeysResponse","path":"/sdk/reference/interfaces/IElectionKeysResponse","sidebar":"defaultSidebar"},{"id":"sdk/reference/interfaces/IElectionListFilter","path":"/sdk/reference/interfaces/IElectionListFilter","sidebar":"defaultSidebar"},{"id":"sdk/reference/interfaces/IElectionListResponse","path":"/sdk/reference/interfaces/IElectionListResponse","sidebar":"defaultSidebar"},{"id":"sdk/reference/interfaces/IElectionMode","path":"/sdk/reference/interfaces/IElectionMode","sidebar":"defaultSidebar"},{"id":"sdk/reference/interfaces/IElectionNextIdResponse","path":"/sdk/reference/interfaces/IElectionNextIdResponse","sidebar":"defaultSidebar"},{"id":"sdk/reference/interfaces/IElectionParameters","path":"/sdk/reference/interfaces/IElectionParameters","sidebar":"defaultSidebar"},{"id":"sdk/reference/interfaces/IElectionSummary","path":"/sdk/reference/interfaces/IElectionSummary","sidebar":"defaultSidebar"},{"id":"sdk/reference/interfaces/IElectionType","path":"/sdk/reference/interfaces/IElectionType","sidebar":"defaultSidebar"},{"id":"sdk/reference/interfaces/IElectionVote","path":"/sdk/reference/interfaces/IElectionVote","sidebar":"defaultSidebar"},{"id":"sdk/reference/interfaces/IElectionVoteListResponse","path":"/sdk/reference/interfaces/IElectionVoteListResponse","sidebar":"defaultSidebar"},{"id":"sdk/reference/interfaces/IEncryptionKey","path":"/sdk/reference/interfaces/IEncryptionKey","sidebar":"defaultSidebar"},{"id":"sdk/reference/interfaces/IInvalidElectionParameters","path":"/sdk/reference/interfaces/IInvalidElectionParameters","sidebar":"defaultSidebar"},{"id":"sdk/reference/interfaces/IMultiChoiceElectionParameters","path":"/sdk/reference/interfaces/IMultiChoiceElectionParameters","sidebar":"defaultSidebar"},{"id":"sdk/reference/interfaces/IPublishedElectionParameters","path":"/sdk/reference/interfaces/IPublishedElectionParameters","sidebar":"defaultSidebar"},{"id":"sdk/reference/interfaces/IQuestion","path":"/sdk/reference/interfaces/IQuestion","sidebar":"defaultSidebar"},{"id":"sdk/reference/interfaces/ITallyMode","path":"/sdk/reference/interfaces/ITallyMode","sidebar":"defaultSidebar"},{"id":"sdk/reference/interfaces/IVoteInfoResponse","path":"/sdk/reference/interfaces/IVoteInfoResponse","sidebar":"defaultSidebar"},{"id":"sdk/reference/interfaces/IVoteMode","path":"/sdk/reference/interfaces/IVoteMode","sidebar":"defaultSidebar"},{"id":"sdk/reference/interfaces/IVoteSubmitResponse","path":"/sdk/reference/interfaces/IVoteSubmitResponse","sidebar":"defaultSidebar"},{"id":"sdk/reference/interfaces/IVoteType","path":"/sdk/reference/interfaces/IVoteType","sidebar":"defaultSidebar"},{"id":"sdk/reference/interfaces/MintTokensTx","path":"/sdk/reference/interfaces/MintTokensTx","sidebar":"defaultSidebar"},{"id":"sdk/reference/interfaces/NewProcessTx","path":"/sdk/reference/interfaces/NewProcessTx","sidebar":"defaultSidebar"},{"id":"sdk/reference/interfaces/Process","path":"/sdk/reference/interfaces/Process","sidebar":"defaultSidebar"},{"id":"sdk/reference/interfaces/Proof","path":"/sdk/reference/interfaces/Proof","sidebar":"defaultSidebar"},{"id":"sdk/reference/interfaces/RegisterKeyTx","path":"/sdk/reference/interfaces/RegisterKeyTx","sidebar":"defaultSidebar"},{"id":"sdk/reference/interfaces/SendTokensTx","path":"/sdk/reference/interfaces/SendTokensTx","sidebar":"defaultSidebar"},{"id":"sdk/reference/interfaces/ServiceProperties","path":"/sdk/reference/interfaces/ServiceProperties","sidebar":"defaultSidebar"},{"id":"sdk/reference/interfaces/SetAccountTx","path":"/sdk/reference/interfaces/SetAccountTx","sidebar":"defaultSidebar"},{"id":"sdk/reference/interfaces/SetProcessTx","path":"/sdk/reference/interfaces/SetProcessTx","sidebar":"defaultSidebar"},{"id":"sdk/reference/interfaces/SetTransactionCostsTx","path":"/sdk/reference/interfaces/SetTransactionCostsTx","sidebar":"defaultSidebar"},{"id":"sdk/reference/interfaces/Tx","path":"/sdk/reference/interfaces/Tx","sidebar":"defaultSidebar"},{"id":"sdk/reference/interfaces/VoteEnvelope","path":"/sdk/reference/interfaces/VoteEnvelope","sidebar":"defaultSidebar"},{"id":"sdk/reference/modules","path":"/sdk/reference/modules","sidebar":"defaultSidebar"},{"id":"sdk/tutorial","path":"/sdk/tutorial","sidebar":"defaultSidebar"},{"id":"ui-components/Election","path":"/ui-components/Election","sidebar":"defaultSidebar"},{"id":"ui-components/index","path":"/ui-components/","sidebar":"defaultSidebar"},{"id":"ui-components/Organization","path":"/ui-components/Organization","sidebar":"defaultSidebar"},{"id":"vocdoni-api/accounts","path":"/vocdoni-api/accounts","sidebar":"defaultSidebar"},{"id":"vocdoni-api/add-account","path":"/vocdoni-api/add-account","sidebar":"defaultSidebar"},{"id":"vocdoni-api/add-participants-to-census","path":"/vocdoni-api/add-participants-to-census","sidebar":"defaultSidebar"},{"id":"vocdoni-api/census-merkle-root","path":"/vocdoni-api/census-merkle-root","sidebar":"defaultSidebar"},{"id":"vocdoni-api/census-size","path":"/vocdoni-api/census-size","sidebar":"defaultSidebar"},{"id":"vocdoni-api/census-total-weight","path":"/vocdoni-api/census-total-weight","sidebar":"defaultSidebar"},{"id":"vocdoni-api/censuses","path":"/vocdoni-api/censuses","sidebar":"defaultSidebar"},{"id":"vocdoni-api/chain","path":"/vocdoni-api/chain","sidebar":"defaultSidebar"},{"id":"vocdoni-api/circuit-info","path":"/vocdoni-api/circuit-info","sidebar":"defaultSidebar"},{"id":"vocdoni-api/compute-election-price","path":"/vocdoni-api/compute-election-price","sidebar":"defaultSidebar"},{"id":"vocdoni-api/compute-ipfs-ci-dv-1-of-file","path":"/vocdoni-api/compute-ipfs-ci-dv-1-of-file","sidebar":"defaultSidebar"},{"id":"vocdoni-api/count-election-votes","path":"/vocdoni-api/count-election-votes","sidebar":"defaultSidebar"},{"id":"vocdoni-api/count-organization-elections","path":"/vocdoni-api/count-organization-elections","sidebar":"defaultSidebar"},{"id":"vocdoni-api/count-organizations","path":"/vocdoni-api/count-organizations","sidebar":"defaultSidebar"},{"id":"vocdoni-api/create-a-new-census","path":"/vocdoni-api/create-a-new-census","sidebar":"defaultSidebar"},{"id":"vocdoni-api/create-election","path":"/vocdoni-api/create-election","sidebar":"defaultSidebar"},{"id":"vocdoni-api/create-election-for-wallet","path":"/vocdoni-api/create-election-for-wallet","sidebar":"defaultSidebar"},{"id":"vocdoni-api/delete-census","path":"/vocdoni-api/delete-census","sidebar":"defaultSidebar"},{"id":"vocdoni-api/election-information","path":"/vocdoni-api/election-information","sidebar":"defaultSidebar"},{"id":"vocdoni-api/election-results","path":"/vocdoni-api/election-results","sidebar":"defaultSidebar"},{"id":"vocdoni-api/elections","path":"/vocdoni-api/elections","sidebar":"defaultSidebar"},{"id":"vocdoni-api/estimate-block-to-date","path":"/vocdoni-api/estimate-block-to-date","sidebar":"defaultSidebar"},{"id":"vocdoni-api/estimate-date-to-block","path":"/vocdoni-api/estimate-date-to-block","sidebar":"defaultSidebar"},{"id":"vocdoni-api/export-census","path":"/vocdoni-api/export-census","sidebar":"defaultSidebar"},{"id":"vocdoni-api/export-census-database","path":"/vocdoni-api/export-census-database","sidebar":"defaultSidebar"},{"id":"vocdoni-api/exports-the-indexer-database","path":"/vocdoni-api/exports-the-indexer-database","sidebar":"defaultSidebar"},{"id":"vocdoni-api/get-account","path":"/vocdoni-api/get-account","sidebar":"defaultSidebar"},{"id":"vocdoni-api/get-block-by-hash","path":"/vocdoni-api/get-block-by-hash","sidebar":"defaultSidebar"},{"id":"vocdoni-api/get-block-by-height","path":"/vocdoni-api/get-block-by-height","sidebar":"defaultSidebar"},{"id":"vocdoni-api/get-next-election-id","path":"/vocdoni-api/get-next-election-id","sidebar":"defaultSidebar"},{"id":"vocdoni-api/get-type-of-census","path":"/vocdoni-api/get-type-of-census","sidebar":"defaultSidebar"},{"id":"vocdoni-api/get-vote","path":"/vocdoni-api/get-vote","sidebar":"defaultSidebar"},{"id":"vocdoni-api/import-census","path":"/vocdoni-api/import-census","sidebar":"defaultSidebar"},{"id":"vocdoni-api/import-census-database","path":"/vocdoni-api/import-census-database","sidebar":"defaultSidebar"},{"id":"vocdoni-api/list-account-received-and-sent-token-transfers","path":"/vocdoni-api/list-account-received-and-sent-token-transfers","sidebar":"defaultSidebar"},{"id":"vocdoni-api/list-account-token-fees","path":"/vocdoni-api/list-account-token-fees","sidebar":"defaultSidebar"},{"id":"vocdoni-api/list-all-census-references","path":"/vocdoni-api/list-all-census-references","sidebar":"defaultSidebar"},{"id":"vocdoni-api/list-all-token-fees","path":"/vocdoni-api/list-all-token-fees","sidebar":"defaultSidebar"},{"id":"vocdoni-api/list-all-token-fees-by-reference","path":"/vocdoni-api/list-all-token-fees-by-reference","sidebar":"defaultSidebar"},{"id":"vocdoni-api/list-all-token-fees-by-type","path":"/vocdoni-api/list-all-token-fees-by-type","sidebar":"defaultSidebar"},{"id":"vocdoni-api/list-election-votes","path":"/vocdoni-api/list-election-votes","sidebar":"defaultSidebar"},{"id":"vocdoni-api/list-elections","path":"/vocdoni-api/list-elections","sidebar":"defaultSidebar"},{"id":"vocdoni-api/list-elections-filtered","path":"/vocdoni-api/list-elections-filtered","sidebar":"defaultSidebar"},{"id":"vocdoni-api/list-encryption-keys","path":"/vocdoni-api/list-encryption-keys","sidebar":"defaultSidebar"},{"id":"vocdoni-api/list-of-the-existing-accounts","path":"/vocdoni-api/list-of-the-existing-accounts","sidebar":"defaultSidebar"},{"id":"vocdoni-api/list-of-valid-sik-roots","path":"/vocdoni-api/list-of-valid-sik-roots","sidebar":"defaultSidebar"},{"id":"vocdoni-api/list-organization-elections","path":"/vocdoni-api/list-organization-elections","sidebar":"defaultSidebar"},{"id":"vocdoni-api/list-organization-elections-by-status","path":"/vocdoni-api/list-organization-elections-by-status","sidebar":"defaultSidebar"},{"id":"vocdoni-api/list-organizations","path":"/vocdoni-api/list-organizations","sidebar":"defaultSidebar"},{"id":"vocdoni-api/list-organizations-filtered","path":"/vocdoni-api/list-organizations-filtered","sidebar":"defaultSidebar"},{"id":"vocdoni-api/list-transactions","path":"/vocdoni-api/list-transactions","sidebar":"defaultSidebar"},{"id":"vocdoni-api/list-validators","path":"/vocdoni-api/list-validators","sidebar":"defaultSidebar"},{"id":"vocdoni-api/price-factors-information","path":"/vocdoni-api/price-factors-information","sidebar":"defaultSidebar"},{"id":"vocdoni-api/prove-key-to-census","path":"/vocdoni-api/prove-key-to-census","sidebar":"defaultSidebar"},{"id":"vocdoni-api/publish-census","path":"/vocdoni-api/publish-census","sidebar":"defaultSidebar"},{"id":"vocdoni-api/publish-census-at-root","path":"/vocdoni-api/publish-census-at-root","sidebar":"defaultSidebar"},{"id":"vocdoni-api/returns-if-the-address-provided-has-a-valid-sik","path":"/vocdoni-api/returns-if-the-address-provided-has-a-valid-sik","sidebar":"defaultSidebar"},{"id":"vocdoni-api/set-account","path":"/vocdoni-api/set-account","sidebar":"defaultSidebar"},{"id":"vocdoni-api/set-wallet-account","path":"/vocdoni-api/set-wallet-account","sidebar":"defaultSidebar"},{"id":"vocdoni-api/sik","path":"/vocdoni-api/sik","sidebar":"defaultSidebar"},{"id":"vocdoni-api/submit-a-vote","path":"/vocdoni-api/submit-a-vote","sidebar":"defaultSidebar"},{"id":"vocdoni-api/submit-transaction","path":"/vocdoni-api/submit-transaction","sidebar":"defaultSidebar"},{"id":"vocdoni-api/total-number-of-accounts","path":"/vocdoni-api/total-number-of-accounts","sidebar":"defaultSidebar"},{"id":"vocdoni-api/total-number-of-sent-and-received-transactions","path":"/vocdoni-api/total-number-of-sent-and-received-transactions","sidebar":"defaultSidebar"},{"id":"vocdoni-api/transaction-by-block-height-and-index","path":"/vocdoni-api/transaction-by-block-height-and-index","sidebar":"defaultSidebar"},{"id":"vocdoni-api/transaction-by-hash","path":"/vocdoni-api/transaction-by-hash","sidebar":"defaultSidebar"},{"id":"vocdoni-api/transaction-by-index","path":"/vocdoni-api/transaction-by-index","sidebar":"defaultSidebar"},{"id":"vocdoni-api/transaction-costs","path":"/vocdoni-api/transaction-costs","sidebar":"defaultSidebar"},{"id":"vocdoni-api/transactions-count","path":"/vocdoni-api/transactions-count","sidebar":"defaultSidebar"},{"id":"vocdoni-api/transactions-in-a-block","path":"/vocdoni-api/transactions-in-a-block","sidebar":"defaultSidebar"},{"id":"vocdoni-api/transfer-tokens","path":"/vocdoni-api/transfer-tokens","sidebar":"defaultSidebar"},{"id":"vocdoni-api/verify-merkle-proof","path":"/vocdoni-api/verify-merkle-proof","sidebar":"defaultSidebar"},{"id":"vocdoni-api/verify-vote","path":"/vocdoni-api/verify-vote","sidebar":"defaultSidebar"},{"id":"vocdoni-api/vocdoni-api","path":"/vocdoni-api/vocdoni-api","sidebar":"defaultSidebar"},{"id":"vocdoni-api/vochain-information","path":"/vocdoni-api/vochain-information","sidebar":"defaultSidebar"},{"id":"vocdoni-api/votes","path":"/vocdoni-api/votes","sidebar":"defaultSidebar"},{"id":"vocdoni-api/wallet","path":"/vocdoni-api/wallet","sidebar":"defaultSidebar"}],"draftIds":[],"sidebars":{"defaultSidebar":{"link":{"path":"/intro","label":"intro"}}}}],"breadcrumbs":true}}}'),o=JSON.parse('{"defaultLocale":"en","locales":["en"],"path":"i18n","currentLocale":"en","localeConfigs":{"en":{"label":"En","direction":"ltr","htmlLang":"en","calendar":"gregory","path":"en"}}}');var s=n(57529);const c=JSON.parse('{"docusaurusVersion":"2.2.0","siteVersion":"1.4.1","pluginVersions":{"docusaurus-plugin-content-docs":{"type":"package","name":"@docusaurus/plugin-content-docs","version":"2.2.0"},"docusaurus-plugin-content-pages":{"type":"package","name":"@docusaurus/plugin-content-pages","version":"2.2.0"},"docusaurus-plugin-sitemap":{"type":"package","name":"@docusaurus/plugin-sitemap","version":"2.2.0"},"docusaurus-theme-classic":{"type":"package","name":"@docusaurus/theme-classic","version":"2.2.0"},"docusaurus-theme-search-algolia":{"type":"package","name":"@docusaurus/theme-search-algolia","version":"2.2.0"},"docusaurus-plugin-openapi-docs":{"type":"package","name":"docusaurus-plugin-openapi-docs","version":"1.5.0"},"docusaurus-tailwindcss":{"type":"local"},"docusaurus-theme-live-codeblock":{"type":"package","name":"@docusaurus/theme-live-codeblock","version":"2.2.0"},"docusaurus-theme-openapi":{"type":"package","name":"docusaurus-theme-openapi-docs","version":"1.5.0"},"docusaurus-theme-mermaid":{"type":"package","name":"@docusaurus/theme-mermaid","version":"2.2.0"}}}'),l={siteConfig:a.default,siteMetadata:c,globalData:i,i18n:o,codeTranslations:s},d=r.createContext(l);function u(e){let{children:t}=e;return r.createElement(d.Provider,{value:l},t)}},44763:(e,t,n)=>{"use strict";n.d(t,{Z:()=>d});var r=n(67294),a=n(10412),i=n(35742),o=n(78193);function s(e){let{error:t,tryAgain:n}=e;return r.createElement("div",{style:{display:"flex",flexDirection:"column",justifyContent:"center",alignItems:"center",height:"50vh",width:"100%",fontSize:"20px"}},r.createElement("h1",null,"This page crashed."),r.createElement("p",null,t.message),r.createElement("button",{type:"button",onClick:n},"Try again"))}function c(e){let{error:t,tryAgain:n}=e;return r.createElement(d,{fallback:()=>r.createElement(s,{error:t,tryAgain:n})},r.createElement(i.Z,null,r.createElement("title",null,"Page Error")),r.createElement(o.Z,null,r.createElement(s,{error:t,tryAgain:n})))}const l=e=>r.createElement(c,e);class d extends r.Component{constructor(e){super(e),this.state={error:null}}componentDidCatch(e){a.Z.canUseDOM&&this.setState({error:e})}render(){const{children:e}=this.props,{error:t}=this.state;if(t){const e={error:t,tryAgain:()=>this.setState({error:null})};return(this.props.fallback??l)(e)}return e??null}}},10412:(e,t,n)=>{"use strict";n.d(t,{Z:()=>a});const r="undefined"!=typeof window&&"document"in window&&"createElement"in window.document,a={canUseDOM:r,canUseEventListeners:r&&("addEventListener"in window||"attachEvent"in window),canUseIntersectionObserver:r&&"IntersectionObserver"in window,canUseViewport:r&&"screen"in window}},35742:(e,t,n)=>{"use strict";n.d(t,{Z:()=>i});var r=n(67294),a=n(70405);function i(e){return r.createElement(a.ql,e)}},39960:(e,t,n)=>{"use strict";n.d(t,{Z:()=>p});var r=n(87462),a=n(67294),i=n(73727),o=n(18780),s=n(52263),c=n(13919),l=n(10412);const d=a.createContext({collectLink:()=>{}});var u=n(44996);function f(e,t){let{isNavLink:n,to:f,href:p,activeClassName:m,isActive:h,"data-noBrokenLinkCheck":b,autoAddBaseUrl:g=!0,...v}=e;const{siteConfig:{trailingSlash:y,baseUrl:k}}=(0,s.Z)(),{withBaseUrl:S}=(0,u.C)(),w=(0,a.useContext)(d),E=(0,a.useRef)(null);(0,a.useImperativeHandle)(t,(()=>E.current));const x=f||p;const C=(0,c.Z)(x),_=x?.replace("pathname://","");let I=void 0!==_?(T=_,g&&(e=>e.startsWith("/"))(T)?S(T):T):void 0;var T;I&&C&&(I=(0,o.applyTrailingSlash)(I,{trailingSlash:y,baseUrl:k}));const P=(0,a.useRef)(!1),A=n?i.OL:i.rU,R=l.Z.canUseIntersectionObserver,L=(0,a.useRef)(),O=()=>{P.current||null==I||(window.docusaurus.preload(I),P.current=!0)};(0,a.useEffect)((()=>(!R&&C&&null!=I&&window.docusaurus.prefetch(I),()=>{R&&L.current&&L.current.disconnect()})),[L,I,R,C]);const N=I?.startsWith("#")??!1,M=!I||!C||N;return M||b||w.collectLink(I),M?a.createElement("a",(0,r.Z)({ref:E,href:I},x&&!C&&{target:"_blank",rel:"noopener noreferrer"},v)):a.createElement(A,(0,r.Z)({},v,{onMouseEnter:O,onTouchStart:O,innerRef:e=>{E.current=e,R&&e&&C&&(L.current=new window.IntersectionObserver((t=>{t.forEach((t=>{e===t.target&&(t.isIntersecting||t.intersectionRatio>0)&&(L.current.unobserve(e),L.current.disconnect(),null!=I&&window.docusaurus.prefetch(I))}))})),L.current.observe(e))},to:I},n&&{isActive:h,activeClassName:m}))}const p=a.forwardRef(f)},95999:(e,t,n)=>{"use strict";n.d(t,{Z:()=>c,I:()=>s});var r=n(67294);function a(e,t){const n=e.split(/(\{\w+\})/).map(((e,n)=>{if(n%2==1){const n=t?.[e.slice(1,-1)];if(void 0!==n)return n}return e}));return n.some((e=>(0,r.isValidElement)(e)))?n.map(((e,t)=>(0,r.isValidElement)(e)?r.cloneElement(e,{key:t}):e)).filter((e=>""!==e)):n.join("")}var i=n(57529);function o(e){let{id:t,message:n}=e;if(void 0===t&&void 0===n)throw new Error("Docusaurus translation declarations must have at least a translation id or a default translation message");return i[t??n]??n??t}function s(e,t){let{message:n,id:r}=e;return a(o({message:n,id:r}),t)}function c(e){let{children:t,id:n,values:i}=e;if(t&&"string"!=typeof t)throw console.warn("Illegal children",t),new Error("The Docusaurus component only accept simple string values");const s=o({message:t,id:n});return r.createElement(r.Fragment,null,a(s,i))}},29935:(e,t,n)=>{"use strict";n.d(t,{m:()=>r});const r="default"},13919:(e,t,n)=>{"use strict";function r(e){return/^(?:\w*:|\/\/)/.test(e)}function a(e){return void 0!==e&&!r(e)}n.d(t,{Z:()=>a,b:()=>r})},44996:(e,t,n)=>{"use strict";n.d(t,{C:()=>i,Z:()=>o});var r=n(52263),a=n(13919);function i(){const{siteConfig:{baseUrl:e,url:t}}=(0,r.Z)();return{withBaseUrl:(n,r)=>function(e,t,n,r){let{forcePrependBaseUrl:i=!1,absolute:o=!1}=void 0===r?{}:r;if(!n||n.startsWith("#")||(0,a.b)(n))return n;if(i)return t+n.replace(/^\//,"");if(n===t.replace(/\/$/,""))return t;const s=n.startsWith(t)?n:t+n.replace(/^\//,"");return o?e+s:s}(t,e,n,r)}}function o(e,t){void 0===t&&(t={});const{withBaseUrl:n}=i();return n(e,t)}},52263:(e,t,n)=>{"use strict";n.d(t,{Z:()=>i});var r=n(67294),a=n(58940);function i(){return(0,r.useContext)(a._)}},72389:(e,t,n)=>{"use strict";n.d(t,{Z:()=>i});var r=n(67294),a=n(98934);function i(){return(0,r.useContext)(a._)}},99670:(e,t,n)=>{"use strict";n.d(t,{Z:()=>r});function r(e){const t={};return function e(n,r){Object.entries(n).forEach((n=>{let[a,i]=n;const o=r?`${r}.${a}`:a;var s;"object"==typeof(s=i)&&s&&Object.keys(s).length>0?e(i,o):t[o]=i}))}(e),t}},30226:(e,t,n)=>{"use strict";n.d(t,{_:()=>a,z:()=>i});var r=n(67294);const a=r.createContext(null);function i(e){let{children:t,value:n}=e;const i=r.useContext(a),o=(0,r.useMemo)((()=>function(e){let{parent:t,value:n}=e;if(!t){if(!n)throw new Error("Unexpected: no Docusaurus route context found");if(!("plugin"in n))throw new Error("Unexpected: Docusaurus topmost route context has no `plugin` attribute");return n}const r={...t.data,...n?.data};return{plugin:t.plugin,data:r}}({parent:i,value:n})),[i,n]);return r.createElement(a.Provider,{value:o},t)}},80143:(e,t,n)=>{"use strict";n.d(t,{Iw:()=>g,gA:()=>p,WS:()=>m,_r:()=>u,Jo:()=>v,zh:()=>f,yW:()=>b,gB:()=>h});var r=n(16550),a=n(52263),i=n(29935);function o(e,t){void 0===t&&(t={});const n=function(){const{globalData:e}=(0,a.Z)();return e}()[e];if(!n&&t.failfast)throw new Error(`Docusaurus plugin global data not found for "${e}" plugin.`);return n}const s=e=>e.versions.find((e=>e.isLast));function c(e,t){const n=s(e);return[...e.versions.filter((e=>e!==n)),n].find((e=>!!(0,r.LX)(t,{path:e.path,exact:!1,strict:!1})))}function l(e,t){const n=c(e,t),a=n?.docs.find((e=>!!(0,r.LX)(t,{path:e.path,exact:!0,strict:!1})));return{activeVersion:n,activeDoc:a,alternateDocVersions:a?function(t){const n={};return e.versions.forEach((e=>{e.docs.forEach((r=>{r.id===t&&(n[e.name]=r)}))})),n}(a.id):{}}}const d={},u=()=>o("docusaurus-plugin-content-docs")??d,f=e=>function(e,t,n){void 0===t&&(t=i.m),void 0===n&&(n={});const r=o(e)?.[t];if(!r&&n.failfast)throw new Error(`Docusaurus plugin global data not found for "${e}" plugin with id "${t}".`);return r}("docusaurus-plugin-content-docs",e,{failfast:!0});function p(e){void 0===e&&(e={});const t=u(),{pathname:n}=(0,r.TH)();return function(e,t,n){void 0===n&&(n={});const a=Object.entries(e).sort(((e,t)=>t[1].path.localeCompare(e[1].path))).find((e=>{let[,n]=e;return!!(0,r.LX)(t,{path:n.path,exact:!1,strict:!1})})),i=a?{pluginId:a[0],pluginData:a[1]}:void 0;if(!i&&n.failfast)throw new Error(`Can't find active docs plugin for "${t}" pathname, while it was expected to be found. Maybe you tried to use a docs feature that can only be used on a docs-related page? Existing docs plugin paths are: ${Object.values(e).map((e=>e.path)).join(", ")}`);return i}(t,n,e)}function m(e){void 0===e&&(e={});const t=p(e),{pathname:n}=(0,r.TH)();if(!t)return;return{activePlugin:t,activeVersion:c(t.pluginData,n)}}function h(e){return f(e).versions}function b(e){const t=f(e);return s(t)}function g(e){const t=f(e),{pathname:n}=(0,r.TH)();return l(t,n)}function v(e){const t=f(e),{pathname:n}=(0,r.TH)();return function(e,t){const n=s(e);return{latestDocSuggestion:l(e,t).alternateDocVersions[n.name],latestVersionSuggestion:n}}(t,n)}},18320:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>i});var r=n(74865),a=n.n(r);a().configure({showSpinner:!1});const i={onRouteUpdate(e){let{location:t,previousLocation:n}=e;if(n&&t.pathname!==n.pathname){const e=window.setTimeout((()=>{a().start()}),200);return()=>window.clearTimeout(e)}},onRouteDidUpdate(){a().done()}}},3310:(e,t,n)=>{"use strict";n.r(t);var r=n(87410),a=n(36809);!function(e){const{themeConfig:{prism:t}}=a.default,{additionalLanguages:r}=t;globalThis.Prism=e,r.forEach((e=>{n(99768)(`./prism-${e}`)})),delete globalThis.Prism}(r.Z)},78193:(e,t,n)=>{"use strict";n.d(t,{Z:()=>nn});var r=n(67294),a=n(86010),i=n(44763),o=n(10833),s=n(55225),c=n(35281),l=n(19727);const d="skipToContent_fXgn";function u(){return r.createElement(s.l,{className:d})}var f=n(86668),p=n(59689),m=n(87462),h=n(95999);function b(e){let{width:t=21,height:n=21,color:a="currentColor",strokeWidth:i=1.2,className:o,...s}=e;return r.createElement("svg",(0,m.Z)({viewBox:"0 0 15 15",width:t,height:n},s),r.createElement("g",{stroke:a,strokeWidth:i},r.createElement("path",{d:"M.75.75l13.5 13.5M14.25.75L.75 14.25"})))}const g="closeButton_CVFx";function v(e){return r.createElement("button",(0,m.Z)({type:"button","aria-label":(0,h.I)({id:"theme.AnnouncementBar.closeButtonAriaLabel",message:"Close",description:"The ARIA label for close button of announcement bar"})},e,{className:(0,a.Z)("clean-btn close",g,e.className)}),r.createElement(b,{width:14,height:14,strokeWidth:3.1}))}const y="content_knG7";function k(e){const{announcementBar:t}=(0,f.L)(),{content:n}=t;return r.createElement("div",(0,m.Z)({},e,{className:(0,a.Z)(y,e.className),dangerouslySetInnerHTML:{__html:n}}))}const S="announcementBar_mb4j",w="announcementBarPlaceholder_vyr4",E="announcementBarClose_gvF7",x="announcementBarContent_xLdY";function C(){const{announcementBar:e}=(0,f.L)(),{isActive:t,close:n}=(0,p.nT)();if(!t)return null;const{backgroundColor:a,textColor:i,isCloseable:o}=e;return r.createElement("div",{className:S,style:{backgroundColor:a,color:i},role:"banner"},o&&r.createElement("div",{className:w}),r.createElement(k,{className:x}),o&&r.createElement(v,{onClick:n,className:E}))}var _=n(93163),I=n(99445),T=n(69800),P=n(76857);function A(e){let{header:t,primaryMenu:n,secondaryMenu:i}=e;const{shown:o}=(0,P.Y)();return r.createElement("div",{className:"navbar-sidebar"},t,r.createElement("div",{className:(0,a.Z)("navbar-sidebar__items",{"navbar-sidebar__items--show-secondary":o})},r.createElement("div",{className:"navbar-sidebar__item menu"},n),r.createElement("div",{className:"navbar-sidebar__item menu"},i)))}var R=n(92949),L=n(72389);function O(e){return r.createElement("svg",(0,m.Z)({viewBox:"0 0 24 24",width:24,height:24},e),r.createElement("path",{fill:"currentColor",d:"M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"}))}function N(e){return r.createElement("svg",(0,m.Z)({viewBox:"0 0 24 24",width:24,height:24},e),r.createElement("path",{fill:"currentColor",d:"M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"}))}const M={toggle:"toggle_vylO",toggleButton:"toggleButton_gllP",darkToggleIcon:"darkToggleIcon_wfgR",lightToggleIcon:"lightToggleIcon_pyhR",toggleButtonDisabled:"toggleButtonDisabled_aARS"};function D(e){let{className:t,value:n,onChange:i}=e;const o=(0,L.Z)(),s=(0,h.I)({message:"Switch between dark and light mode (currently {mode})",id:"theme.colorToggle.ariaLabel",description:"The ARIA label for the navbar color mode toggle"},{mode:"dark"===n?(0,h.I)({message:"dark mode",id:"theme.colorToggle.ariaLabel.mode.dark",description:"The name for the dark color mode"}):(0,h.I)({message:"light mode",id:"theme.colorToggle.ariaLabel.mode.light",description:"The name for the light color mode"})});return r.createElement("div",{className:(0,a.Z)(M.toggle,t)},r.createElement("button",{className:(0,a.Z)("clean-btn",M.toggleButton,!o&&M.toggleButtonDisabled),type:"button",onClick:()=>i("dark"===n?"light":"dark"),disabled:!o,title:s,"aria-label":s,"aria-live":"polite"},r.createElement(O,{className:(0,a.Z)(M.toggleIcon,M.lightToggleIcon)}),r.createElement(N,{className:(0,a.Z)(M.toggleIcon,M.darkToggleIcon)})))}const z=r.memo(D);function F(e){let{className:t}=e;const n=(0,f.L)().colorMode.disableSwitch,{colorMode:a,setColorMode:i}=(0,R.I)();return n?null:r.createElement(z,{className:t,value:a,onChange:i})}var B=n(21327);function $(){return r.createElement(B.Z,{className:"navbar__brand",imageClassName:"navbar__logo",titleClassName:"navbar__title text--truncate"})}function U(){const e=(0,_.e)();return r.createElement("button",{type:"button","aria-label":(0,h.I)({id:"theme.docs.sidebar.closeSidebarButtonAriaLabel",message:"Close navigation bar",description:"The ARIA label for close button of mobile sidebar"}),className:"clean-btn navbar-sidebar__close",onClick:()=>e.toggle()},r.createElement(b,{color:"var(--ifm-color-emphasis-600)"}))}function j(){return r.createElement("div",{className:"navbar-sidebar__brand"},r.createElement($,null),r.createElement(F,{className:"margin-right--md"}),r.createElement(U,null))}var V=n(39960),Z=n(44996),H=n(13919),W=n(98022),G=n(19548);function q(e){let{activeBasePath:t,activeBaseRegex:n,to:a,href:i,label:o,html:s,isDropdownLink:c,prependBaseUrlToHref:l,...d}=e;const u=(0,Z.Z)(a),f=(0,Z.Z)(t),p=(0,Z.Z)(i,{forcePrependBaseUrl:!0}),h=o&&i&&!(0,H.Z)(i),b=s?{dangerouslySetInnerHTML:{__html:s}}:{children:r.createElement(r.Fragment,null,o,h&&r.createElement(G.Z,c&&{width:12,height:12}))};return i?r.createElement(V.Z,(0,m.Z)({href:l?p:i},d,b)):r.createElement(V.Z,(0,m.Z)({to:u,isNavLink:!0},(t||n)&&{isActive:(e,t)=>n?(0,W.F)(n,t.pathname):t.pathname.startsWith(f)},d,b))}function K(e){let{className:t,isDropdownItem:n=!1,...i}=e;const o=r.createElement(q,(0,m.Z)({className:(0,a.Z)(n?"dropdown__link":"navbar__item navbar__link",t),isDropdownLink:n},i));return n?r.createElement("li",null,o):o}function Y(e){let{className:t,isDropdownItem:n,...i}=e;return r.createElement("li",{className:"menu__list-item"},r.createElement(q,(0,m.Z)({className:(0,a.Z)("menu__link",t)},i)))}function Q(e){let{mobile:t=!1,position:n,...a}=e;const i=t?Y:K;return r.createElement(i,(0,m.Z)({},a,{activeClassName:a.activeClassName??(t?"menu__link--active":"navbar__link--active")}))}var X=n(86043),J=n(48596),ee=n(51753);function te(e,t){return e.some((e=>function(e,t){return!!(0,J.Mg)(e.to,t)||!!(0,W.F)(e.activeBaseRegex,t)||!(!e.activeBasePath||!t.startsWith(e.activeBasePath))}(e,t)))}function ne(e){let{items:t,position:n,className:i,onClick:o,...s}=e;const c=(0,r.useRef)(null),[l,d]=(0,r.useState)(!1);return(0,r.useEffect)((()=>{const e=e=>{c.current&&!c.current.contains(e.target)&&d(!1)};return document.addEventListener("mousedown",e),document.addEventListener("touchstart",e),()=>{document.removeEventListener("mousedown",e),document.removeEventListener("touchstart",e)}}),[c]),r.createElement("div",{ref:c,className:(0,a.Z)("navbar__item","dropdown","dropdown--hoverable",{"dropdown--right":"right"===n,"dropdown--show":l})},r.createElement(q,(0,m.Z)({"aria-haspopup":"true","aria-expanded":l,role:"button",href:s.to?void 0:"#",className:(0,a.Z)("navbar__link",i)},s,{onClick:s.to?void 0:e=>e.preventDefault(),onKeyDown:e=>{"Enter"===e.key&&(e.preventDefault(),d(!l))}}),s.children??s.label),r.createElement("ul",{className:"dropdown__menu"},t.map(((e,n)=>r.createElement(De,(0,m.Z)({isDropdownItem:!0,onKeyDown:e=>{if(n===t.length-1&&"Tab"===e.key){e.preventDefault(),d(!1);const t=c.current.nextElementSibling;if(t){(t instanceof HTMLAnchorElement?t:t.querySelector("a")).focus()}}},activeClassName:"dropdown__link--active"},e,{key:n}))))))}function re(e){let{items:t,className:n,position:i,onClick:o,...s}=e;const c=(0,ee.b)(),l=te(t,c),{collapsed:d,toggleCollapsed:u,setCollapsed:f}=(0,X.u)({initialState:()=>!l});return(0,r.useEffect)((()=>{l&&f(!l)}),[c,l,f]),r.createElement("li",{className:(0,a.Z)("menu__list-item",{"menu__list-item--collapsed":d})},r.createElement(q,(0,m.Z)({role:"button",className:(0,a.Z)("menu__link menu__link--sublist menu__link--sublist-caret",n)},s,{onClick:e=>{e.preventDefault(),u()}}),s.children??s.label),r.createElement(X.z,{lazy:!0,as:"ul",className:"menu__list",collapsed:d},t.map(((e,t)=>r.createElement(De,(0,m.Z)({mobile:!0,isDropdownItem:!0,onClick:o,activeClassName:"menu__link--active"},e,{key:t}))))))}function ae(e){let{mobile:t=!1,...n}=e;const a=t?re:ne;return r.createElement(a,n)}var ie=n(52263),oe=n(94711),se=n(16550);function ce(e){let{width:t=20,height:n=20,...a}=e;return r.createElement("svg",(0,m.Z)({viewBox:"0 0 24 24",width:t,height:n,"aria-hidden":!0},a),r.createElement("path",{fill:"currentColor",d:"M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z"}))}const le="iconLanguage_nlXk";var de=n(73935),ue=n(35742),fe=n(66177);function pe(){return r.createElement("svg",{width:"15",height:"15",className:"DocSearch-Control-Key-Icon"},r.createElement("path",{d:"M4.505 4.496h2M5.505 5.496v5M8.216 4.496l.055 5.993M10 7.5c.333.333.5.667.5 1v2M12.326 4.5v5.996M8.384 4.496c1.674 0 2.116 0 2.116 1.5s-.442 1.5-2.116 1.5M3.205 9.303c-.09.448-.277 1.21-1.241 1.203C1 10.5.5 9.513.5 8V7c0-1.57.5-2.5 1.464-2.494.964.006 1.134.598 1.24 1.342M12.553 10.5h1.953",strokeWidth:"1.2",stroke:"currentColor",fill:"none",strokeLinecap:"square"}))}var me=n(20830),he=["translations"];function be(){return be=Object.assign||function(e){for(var t=1;te.length)&&(t=e.length);for(var n=0,r=new Array(t);n=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var ke="Ctrl";var Se=r.forwardRef((function(e,t){var n=e.translations,a=void 0===n?{}:n,i=ye(e,he),o=a.buttonText,s=void 0===o?"Search":o,c=a.buttonAriaLabel,l=void 0===c?"Search":c,d=ge((0,r.useState)(null),2),u=d[0],f=d[1];return(0,r.useEffect)((function(){"undefined"!=typeof navigator&&(/(Mac|iPhone|iPod|iPad)/i.test(navigator.platform)?f("\u2318"):f(ke))}),[]),r.createElement("button",be({type:"button",className:"DocSearch DocSearch-Button","aria-label":l},i,{ref:t}),r.createElement("span",{className:"DocSearch-Button-Container"},r.createElement(me.W,null),r.createElement("span",{className:"DocSearch-Button-Placeholder"},s)),r.createElement("span",{className:"DocSearch-Button-Keys"},null!==u&&r.createElement(r.Fragment,null,r.createElement("kbd",{className:"DocSearch-Button-Key"},u===ke?r.createElement(pe,null):u),r.createElement("kbd",{className:"DocSearch-Button-Key"},"K"))))})),we=n(43320);const Ee={button:{buttonText:(0,h.I)({id:"theme.SearchBar.label",message:"Search",description:"The ARIA label and placeholder for search button"}),buttonAriaLabel:(0,h.I)({id:"theme.SearchBar.label",message:"Search",description:"The ARIA label and placeholder for search button"})},modal:{searchBox:{resetButtonTitle:(0,h.I)({id:"theme.SearchModal.searchBox.resetButtonTitle",message:"Clear the query",description:"The label and ARIA label for search box reset button"}),resetButtonAriaLabel:(0,h.I)({id:"theme.SearchModal.searchBox.resetButtonTitle",message:"Clear the query",description:"The label and ARIA label for search box reset button"}),cancelButtonText:(0,h.I)({id:"theme.SearchModal.searchBox.cancelButtonText",message:"Cancel",description:"The label and ARIA label for search box cancel button"}),cancelButtonAriaLabel:(0,h.I)({id:"theme.SearchModal.searchBox.cancelButtonText",message:"Cancel",description:"The label and ARIA label for search box cancel button"})},startScreen:{recentSearchesTitle:(0,h.I)({id:"theme.SearchModal.startScreen.recentSearchesTitle",message:"Recent",description:"The title for recent searches"}),noRecentSearchesText:(0,h.I)({id:"theme.SearchModal.startScreen.noRecentSearchesText",message:"No recent searches",description:"The text when no recent searches"}),saveRecentSearchButtonTitle:(0,h.I)({id:"theme.SearchModal.startScreen.saveRecentSearchButtonTitle",message:"Save this search",description:"The label for save recent search button"}),removeRecentSearchButtonTitle:(0,h.I)({id:"theme.SearchModal.startScreen.removeRecentSearchButtonTitle",message:"Remove this search from history",description:"The label for remove recent search button"}),favoriteSearchesTitle:(0,h.I)({id:"theme.SearchModal.startScreen.favoriteSearchesTitle",message:"Favorite",description:"The title for favorite searches"}),removeFavoriteSearchButtonTitle:(0,h.I)({id:"theme.SearchModal.startScreen.removeFavoriteSearchButtonTitle",message:"Remove this search from favorites",description:"The label for remove favorite search button"})},errorScreen:{titleText:(0,h.I)({id:"theme.SearchModal.errorScreen.titleText",message:"Unable to fetch results",description:"The title for error screen of search modal"}),helpText:(0,h.I)({id:"theme.SearchModal.errorScreen.helpText",message:"You might want to check your network connection.",description:"The help text for error screen of search modal"})},footer:{selectText:(0,h.I)({id:"theme.SearchModal.footer.selectText",message:"to select",description:"The explanatory text of the action for the enter key"}),selectKeyAriaLabel:(0,h.I)({id:"theme.SearchModal.footer.selectKeyAriaLabel",message:"Enter key",description:"The ARIA label for the Enter key button that makes the selection"}),navigateText:(0,h.I)({id:"theme.SearchModal.footer.navigateText",message:"to navigate",description:"The explanatory text of the action for the Arrow up and Arrow down key"}),navigateUpKeyAriaLabel:(0,h.I)({id:"theme.SearchModal.footer.navigateUpKeyAriaLabel",message:"Arrow up",description:"The ARIA label for the Arrow up key button that makes the navigation"}),navigateDownKeyAriaLabel:(0,h.I)({id:"theme.SearchModal.footer.navigateDownKeyAriaLabel",message:"Arrow down",description:"The ARIA label for the Arrow down key button that makes the navigation"}),closeText:(0,h.I)({id:"theme.SearchModal.footer.closeText",message:"to close",description:"The explanatory text of the action for Escape key"}),closeKeyAriaLabel:(0,h.I)({id:"theme.SearchModal.footer.closeKeyAriaLabel",message:"Escape key",description:"The ARIA label for the Escape key button that close the modal"}),searchByText:(0,h.I)({id:"theme.SearchModal.footer.searchByText",message:"Search by",description:"The text explain that the search is making by Algolia"})},noResultsScreen:{noResultsText:(0,h.I)({id:"theme.SearchModal.noResultsScreen.noResultsText",message:"No results for",description:"The text explains that there are no results for the following search"}),suggestedQueryText:(0,h.I)({id:"theme.SearchModal.noResultsScreen.suggestedQueryText",message:"Try searching for",description:"The text for the suggested query when no results are found for the following search"}),reportMissingResultsText:(0,h.I)({id:"theme.SearchModal.noResultsScreen.reportMissingResultsText",message:"Believe this query should return results?",description:"The text for the question where the user thinks there are missing results"}),reportMissingResultsLinkText:(0,h.I)({id:"theme.SearchModal.noResultsScreen.reportMissingResultsLinkText",message:"Let us know.",description:"The text for the link to report missing results"})}},placeholder:(0,h.I)({id:"theme.SearchModal.placeholder",message:"Search docs",description:"The placeholder of the input of the DocSearch pop-up modal"})};let xe=null;function Ce(e){let{hit:t,children:n}=e;return r.createElement(V.Z,{to:t.url},n)}function _e(e){let{state:t,onClose:n}=e;const{generateSearchPageLink:a}=(0,fe.O)();return r.createElement(V.Z,{to:a(t.query),onClick:n},r.createElement(h.Z,{id:"theme.SearchBar.seeAll",values:{count:t.context.nbHits}},"See all {count} results"))}function Ie(e){let{contextualSearch:t,externalUrlRegex:a,...i}=e;const{siteMetadata:o}=(0,ie.Z)(),s=function(){const{locale:e,tags:t}=(0,we._q)();return[`language:${e}`,t.map((e=>`docusaurus_tag:${e}`))]}(),c=i.searchParameters?.facetFilters??[],l=t?function(e,t){const n=e=>"string"==typeof e?[e]:e;return[...n(e),...n(t)]}(s,c):c,d={...i.searchParameters,facetFilters:l},{withBaseUrl:u}=(0,Z.C)(),f=(0,se.k6)(),p=(0,r.useRef)(null),h=(0,r.useRef)(null),[b,g]=(0,r.useState)(!1),[v,y]=(0,r.useState)(void 0),k=(0,r.useCallback)((()=>xe?Promise.resolve():Promise.all([n.e(6780).then(n.bind(n,76780)),Promise.all([n.e(532),n.e(6945)]).then(n.bind(n,46945)),Promise.all([n.e(532),n.e(8894)]).then(n.bind(n,18894))]).then((e=>{let[{DocSearchModal:t}]=e;xe=t}))),[]),S=(0,r.useCallback)((()=>{k().then((()=>{p.current=document.createElement("div"),document.body.insertBefore(p.current,document.body.firstChild),g(!0)}))}),[k,g]),w=(0,r.useCallback)((()=>{g(!1),p.current?.remove()}),[g]),E=(0,r.useCallback)((e=>{k().then((()=>{g(!0),y(e.key)}))}),[k,g,y]),x=(0,r.useRef)({navigate(e){let{itemUrl:t}=e;(0,W.F)(a,t)?window.location.href=t:f.push(t)}}).current,C=(0,r.useRef)((e=>e.map((e=>{if((0,W.F)(a,e.url))return e;const t=new URL(e.url);return{...e,url:u(`${t.pathname}${t.hash}`)}})))).current,_=(0,r.useMemo)((()=>e=>r.createElement(_e,(0,m.Z)({},e,{onClose:w}))),[w]),I=(0,r.useCallback)((e=>(e.addAlgoliaAgent("docusaurus",o.docusaurusVersion),e)),[o.docusaurusVersion]);return function(e){var t=e.isOpen,n=e.onOpen,a=e.onClose,i=e.onInput,o=e.searchButtonRef;r.useEffect((function(){function e(e){(27===e.keyCode&&t||"k"===e.key.toLowerCase()&&(e.metaKey||e.ctrlKey)||!function(e){var t=e.target,n=t.tagName;return t.isContentEditable||"INPUT"===n||"SELECT"===n||"TEXTAREA"===n}(e)&&"/"===e.key&&!t)&&(e.preventDefault(),t?a():document.body.classList.contains("DocSearch--active")||document.body.classList.contains("DocSearch--active")||n()),o&&o.current===document.activeElement&&i&&/[a-zA-Z0-9]/.test(String.fromCharCode(e.keyCode))&&i(e)}return window.addEventListener("keydown",e),function(){window.removeEventListener("keydown",e)}}),[t,n,a,i,o])}({isOpen:b,onOpen:S,onClose:w,onInput:E,searchButtonRef:h}),r.createElement(r.Fragment,null,r.createElement(ue.Z,null,r.createElement("link",{rel:"preconnect",href:`https://${i.appId}-dsn.algolia.net`,crossOrigin:"anonymous"})),r.createElement(Se,{onTouchStart:k,onFocus:k,onMouseOver:k,onClick:S,ref:h,translations:Ee.button}),b&&xe&&p.current&&(0,de.createPortal)(r.createElement(xe,(0,m.Z)({onClose:w,initialScrollY:window.scrollY,initialQuery:v,navigator:x,transformItems:C,hitComponent:Ce,transformSearchClient:I},i.searchPagePath&&{resultsFooterComponent:_},i,{searchParameters:d,placeholder:Ee.placeholder,translations:Ee.modal})),p.current))}function Te(){const{siteConfig:e}=(0,ie.Z)();return r.createElement(Ie,e.themeConfig.algolia)}const Pe="searchBox_ZlJk";function Ae(e){let{children:t,className:n}=e;return r.createElement("div",{className:(0,a.Z)(n,Pe)},t)}var Re=n(80143),Le=n(53438);var Oe=n(60373);const Ne=e=>e.docs.find((t=>t.id===e.mainDocId));const Me={default:Q,localeDropdown:function(e){let{mobile:t,dropdownItemsBefore:n,dropdownItemsAfter:a,...i}=e;const{i18n:{currentLocale:o,locales:s,localeConfigs:c}}=(0,ie.Z)(),l=(0,oe.l)(),{search:d,hash:u}=(0,se.TH)(),f=[...n,...s.map((e=>{const n=`${`pathname://${l.createUrl({locale:e,fullyQualified:!1})}`}${d}${u}`;return{label:c[e].label,lang:c[e].htmlLang,to:n,target:"_self",autoAddBaseUrl:!1,className:e===o?t?"menu__link--active":"dropdown__link--active":""}})),...a],p=t?(0,h.I)({message:"Languages",id:"theme.navbar.mobileLanguageDropdown.label",description:"The label for the mobile language switcher dropdown"}):c[o].label;return r.createElement(ae,(0,m.Z)({},i,{mobile:t,label:r.createElement(r.Fragment,null,r.createElement(ce,{className:le}),p),items:f}))},search:function(e){let{mobile:t,className:n}=e;return t?null:r.createElement(Ae,{className:n},r.createElement(Te,null))},dropdown:ae,html:function(e){let{value:t,className:n,mobile:i=!1,isDropdownItem:o=!1}=e;const s=o?"li":"div";return r.createElement(s,{className:(0,a.Z)({navbar__item:!i&&!o,"menu__list-item":i},n),dangerouslySetInnerHTML:{__html:t}})},doc:function(e){let{docId:t,label:n,docsPluginId:a,...i}=e;const{activeDoc:o}=(0,Re.Iw)(a),s=(0,Le.vY)(t,a);return null===s?null:r.createElement(Q,(0,m.Z)({exact:!0},i,{isActive:()=>o?.path===s.path||!!o?.sidebar&&o.sidebar===s.sidebar,label:n??s.id,to:s.path}))},docSidebar:function(e){let{sidebarId:t,label:n,docsPluginId:a,...i}=e;const{activeDoc:o}=(0,Re.Iw)(a),s=(0,Le.oz)(t,a).link;if(!s)throw new Error(`DocSidebarNavbarItem: Sidebar with ID "${t}" doesn't have anything to be linked to.`);return r.createElement(Q,(0,m.Z)({exact:!0},i,{isActive:()=>o?.sidebar===t,label:n??s.label,to:s.path}))},docsVersion:function(e){let{label:t,to:n,docsPluginId:a,...i}=e;const o=(0,Le.lO)(a)[0],s=t??o.label,c=n??(e=>e.docs.find((t=>t.id===e.mainDocId)))(o).path;return r.createElement(Q,(0,m.Z)({},i,{label:s,to:c}))},docsVersionDropdown:function(e){let{mobile:t,docsPluginId:n,dropdownActiveClassDisabled:a,dropdownItemsBefore:i,dropdownItemsAfter:o,...s}=e;const{search:c,hash:l}=(0,se.TH)(),d=(0,Re.Iw)(n),u=(0,Re.gB)(n),{savePreferredVersionName:f}=(0,Oe.J)(n),p=[...i,...u.map((e=>{const t=d.alternateDocVersions[e.name]??Ne(e);return{label:e.label,to:`${t.path}${c}${l}`,isActive:()=>e===d.activeVersion,onClick:()=>f(e.name)}})),...o],b=(0,Le.lO)(n)[0],g=t&&p.length>1?(0,h.I)({id:"theme.navbar.mobileVersionsDropdown.label",message:"Versions",description:"The label for the navbar versions dropdown on mobile view"}):b.label,v=t&&p.length>1?void 0:Ne(b).path;return p.length<=1?r.createElement(Q,(0,m.Z)({},s,{mobile:t,label:g,to:v,isActive:a?()=>!1:void 0})):r.createElement(ae,(0,m.Z)({},s,{mobile:t,label:g,to:v,items:p,isActive:a?()=>!1:void 0}))}};function De(e){let{type:t,...n}=e;const a=function(e,t){return e&&"default"!==e?e:"items"in t?"dropdown":"default"}(t,n),i=Me[a];if(!i)throw new Error(`No NavbarItem component found for type "${t}".`);return r.createElement(i,n)}function ze(){const e=(0,_.e)(),t=(0,f.L)().navbar.items;return r.createElement("ul",{className:"menu__list"},t.map(((t,n)=>r.createElement(De,(0,m.Z)({mobile:!0},t,{onClick:()=>e.toggle(),key:n})))))}function Fe(e){return r.createElement("button",(0,m.Z)({},e,{type:"button",className:"clean-btn navbar-sidebar__back"}),r.createElement(h.Z,{id:"theme.navbar.mobileSidebarSecondaryMenu.backButtonLabel",description:"The label of the back button to return to main menu, inside the mobile navbar sidebar secondary menu (notably used to display the docs sidebar)"},"\u2190 Back to main menu"))}function Be(){const e=0===(0,f.L)().navbar.items.length,t=(0,P.Y)();return r.createElement(r.Fragment,null,!e&&r.createElement(Fe,{onClick:()=>t.hide()}),t.content)}function $e(){const e=(0,_.e)();return(0,T.N)(e.shown),e.shouldRender?r.createElement(A,{header:r.createElement(j,null),primaryMenu:r.createElement(ze,null),secondaryMenu:r.createElement(Be,null)}):null}const Ue="navbarHideable_m1mJ",je="navbarHidden_jGov";function Ve(e){return r.createElement("div",(0,m.Z)({role:"presentation"},e,{className:(0,a.Z)("navbar-sidebar__backdrop",e.className)}))}function Ze(e){let{children:t}=e;const{navbar:{hideOnScroll:n,style:i}}=(0,f.L)(),o=(0,_.e)(),{navbarRef:s,isNavbarVisible:c}=(0,I.c)(n);return r.createElement("nav",{ref:s,className:(0,a.Z)("navbar","navbar--fixed-top",n&&[Ue,!c&&je],{"navbar--dark":"dark"===i,"navbar--primary":"primary"===i,"navbar-sidebar--show":o.shown})},t,r.createElement(Ve,{onClick:o.toggle}),r.createElement($e,null))}var He=n(58978);function We(e){let{width:t=30,height:n=30,className:a,...i}=e;return r.createElement("svg",(0,m.Z)({className:a,width:t,height:n,viewBox:"0 0 30 30","aria-hidden":"true"},i),r.createElement("path",{stroke:"currentColor",strokeLinecap:"round",strokeMiterlimit:"10",strokeWidth:"2",d:"M4 7h22M4 15h22M4 23h22"}))}function Ge(){const{toggle:e,shown:t}=(0,_.e)();return r.createElement("button",{onClick:e,"aria-label":(0,h.I)({id:"theme.docs.sidebar.toggleSidebarButtonAriaLabel",message:"Toggle navigation bar",description:"The ARIA label for hamburger menu button of mobile navigation"}),"aria-expanded":t,className:"navbar__toggle clean-btn",type:"button"},r.createElement(We,null))}const qe="colorModeToggle_x44X";var Ke=n(14141);function Ye(e){let{items:t,isMobile:n}=e;const[a,i]=function(e){function t(e){return e.href?.length>0??!1}return[e.filter((e=>!t(e))),e.filter(t)]}(t);return r.createElement(r.Fragment,null,a.map(((e,t)=>r.createElement(De,(0,m.Z)({},e,{key:t})))),!n&&r.createElement(Qe,null),i.map(((e,t)=>r.createElement(De,(0,m.Z)({},e,{key:t})))))}const Qe=Ke.ZP.div` width: 1px; height: 80%; background-color: black; `;function Xe(e){let{items:t}=e;return r.createElement(r.Fragment,null,t.map(((e,t)=>r.createElement(De,(0,m.Z)({},e,{key:t})))))}function Je(e){let{left:t,center:n,right:a}=e;return r.createElement("div",{className:"navbar__inner"},r.createElement("div",{className:"navbar__items"},t),r.createElement("div",{className:"navbar__items navbar__items--center"},n),r.createElement("div",{className:"navbar__items navbar__items--right"},a))}function et(){const e=(0,_.e)(),t=(0,f.L)().navbar.items,[n,a]=(0,He.A)(t),i=t.find((e=>"search"===e.type));return r.createElement(Je,{left:r.createElement(r.Fragment,null,!e.disabled&&r.createElement(Ge,null),r.createElement($,null)),center:r.createElement(r.Fragment,null,r.createElement(Ye,{items:n,isMobile:e.shouldRender})),right:r.createElement(r.Fragment,null,!i&&r.createElement(Ae,null,r.createElement(Te,null)),r.createElement(Xe,{items:a}),r.createElement(F,{className:qe}))})}function tt(){return r.createElement(Ze,null,r.createElement(et,null))}var nt=n(42489);function rt(e){let{item:t}=e;const{to:n,href:a,label:i,prependBaseUrlToHref:o,...s}=t,c=(0,Z.Z)(n),l=(0,Z.Z)(a,{forcePrependBaseUrl:!0});return r.createElement(V.Z,(0,m.Z)({className:"footer__link-item"},a?{href:o?l:a}:{to:c},s),i,a&&!(0,H.Z)(a)&&r.createElement(G.Z,null))}function at(e){let{item:t}=e;return t.html?r.createElement("li",{className:"footer__item",dangerouslySetInnerHTML:{__html:t.html}}):r.createElement("li",{key:t.href??t.to,className:"footer__item"},r.createElement(rt,{item:t}))}function it(e){let{column:t}=e;return r.createElement("div",{className:"col footer__col"},r.createElement("div",{className:"footer__title"},t.title),r.createElement("ul",{className:"footer__items clean-list"},t.items.map(((e,t)=>r.createElement(at,{key:t,item:e})))))}function ot(e){let{columns:t}=e;return r.createElement("div",{className:"row footer__links"},t.map(((e,t)=>r.createElement(it,{key:t,column:e}))))}function st(){return r.createElement("span",{className:"footer__link-separator"},"\xb7")}function ct(e){let{item:t}=e;return t.html?r.createElement("span",{className:"footer__link-item",dangerouslySetInnerHTML:{__html:t.html}}):r.createElement(rt,{item:t})}function lt(e){let{links:t}=e;return r.createElement("div",{className:"footer__links text--center"},r.createElement("div",{className:"footer__links"},t.map(((e,n)=>r.createElement(r.Fragment,{key:n},r.createElement(ct,{item:e}),t.length!==n+1&&r.createElement(st,null))))))}function dt(e){let{links:t}=e;return(0,nt.a)(t)?r.createElement(ot,{columns:t}):r.createElement(lt,{links:t})}var ut=n(50941);const ft="footerLogoLink_BH7S";function pt(e){let{logo:t}=e;const{withBaseUrl:n}=(0,Z.C)(),i={light:n(t.src),dark:n(t.srcDark??t.src)};return r.createElement(ut.Z,{className:(0,a.Z)("footer__logo",t.className),alt:t.alt,sources:i,width:t.width,height:t.height,style:t.style})}function mt(e){let{logo:t}=e;return t.href?r.createElement(V.Z,{href:t.href,className:ft,target:t.target},r.createElement(pt,{logo:t})):r.createElement(pt,{logo:t})}function ht(e){let{copyright:t}=e;return r.createElement("div",{className:"footer__copyright",dangerouslySetInnerHTML:{__html:t}})}var bt,gt;function vt(){return vt=Object.assign?Object.assign.bind():function(e){for(var t=1;t{let{title:t,titleId:n,...a}=e;return r.createElement("svg",vt({width:170,height:64,viewBox:"0 0 170 64",fill:"none",xmlns:"http://www.w3.org/2000/svg","aria-labelledby":n},a),t?r.createElement("title",{id:n},t):null,bt||(bt=r.createElement("path",{d:"M86.658 0h3.686v13.151h7.469v3.3H86.658V0ZM98.633 10.307c0-3.473 2.021-6.363 6.013-6.363 3.756 0 5.87 2.653 5.87 5.989v1.339h-8.195c.022 1.431.753 2.444 2.396 2.444 1.339 0 1.926-.657 2.137-1.22h3.499c-.329 2.206-2.279 4.156-5.636 4.156-3.876-.003-6.084-2.822-6.084-6.345Zm8.197-1.314c-.071-1.173-.752-2.089-2.173-2.089-1.551 0-2.232.916-2.303 2.089h4.476ZM113.568 12.515V7.233h-1.985V4.156h2.173V.94h3.452v3.216h2.936v3.077h-2.936v4.413c0 1.152.491 1.646 1.572 1.646h1.41v3.159h-2.491c-2.857 0-4.131-1.703-4.131-3.936ZM122.175 2.887V0h3.664v2.887l-.611 3.689h-2.444l-.609-3.689ZM127.355 12.282h3.615c0 .681.543 1.358 1.833 1.358s1.736-.47 1.736-.891c0-.543-.4-.799-1.244-.964l-1.809-.35c-1.972-.378-3.756-1.389-3.756-3.852 0-1.996 1.76-3.642 5.049-3.642 3.194 0 5.119 1.833 5.119 4.11h-3.568c.021-.563-.4-1.266-1.63-1.266-.894 0-1.431.374-1.431.844s.328.728.915.845l2.347.445c1.879.353 3.639 1.223 3.639 3.803 0 2.537-2.254 3.922-5.375 3.922-3.83.005-5.37-1.85-5.44-4.362ZM90.38 36.278h-.093l-.375 1.173h-3.243V20.07h3.618v6.271h.092c.59-.706 1.526-1.385 3.26-1.385 3.101 0 4.978 2.675 4.978 6.34 0 3.663-1.877 6.363-4.979 6.363-1.733-.006-2.67-.687-3.259-1.38Zm4.578-4.978c0-1.714-.586-3.17-2.417-3.17-1.83 0-2.415 1.445-2.415 3.159 0 1.714.636 3.194 2.42 3.194 1.785 0 2.412-1.48 2.412-3.194v.01ZM100.385 33.238v-8.08H104v6.953c0 1.407.635 2.255 2.067 2.255 1.293 0 2.232-.916 2.232-2.396v-6.812h3.615V37.44h-3.24l-.271-1.173h-.093c-.682.798-1.763 1.385-3.36 1.385-2.735 0-4.565-1.714-4.565-4.414ZM113.864 20.041h3.852v3.662h-3.852V20.04Zm.117 5.117h3.615V37.44h-3.615V25.158ZM119.709 20.063h3.618v17.383h-3.618V20.063ZM124.853 31.289c0-3.664 1.88-6.34 4.979-6.34 1.738 0 2.675.68 3.259 1.386h.092v-6.272h3.618v17.383h-3.24l-.378-1.173h-.092c-.589.703-1.526 1.385-3.259 1.385-3.099-.006-4.979-2.681-4.979-6.37Zm8.502 0c0-1.714-.587-3.17-2.42-3.17-1.834 0-2.418 1.456-2.418 3.17 0 1.713.633 3.194 2.418 3.194 1.784 0 2.42-1.48 2.42-3.194ZM85.928 52.259c0-3.713 2.172-6.342 6.083-6.342 3.64 0 5.52 2.208 5.682 5.049h-3.64c-.116-1.087-.868-1.88-2.042-1.88-1.526 0-2.395.965-2.395 3.173s.869 3.191 2.395 3.191a1.982 1.982 0 0 0 2.043-1.877h3.64c-.164 2.841-2.021 5.05-5.59 5.05-3.922 0-6.176-2.633-6.176-6.364ZM99.453 41.034h3.618v6.268h.095c.679-.798 1.76-1.385 3.357-1.385 2.716 0 4.555 1.692 4.555 4.416v8.078h-3.615v-6.95c0-1.41-.636-2.258-2.067-2.258-1.293 0-2.325.918-2.325 2.396v6.812h-3.618V41.034ZM112.604 54.771c0-2.279 1.551-3.78 4.932-3.78h2.629v-.658c0-.847-.543-1.504-1.876-1.504-1.127 0-1.785.61-1.785 1.358h-3.384c0-2.304 1.668-4.275 5.286-4.275 3.356 0 5.377 1.855 5.377 4.416v8.077h-3.237l-.272-1.105h-.095c-.682.777-1.76 1.317-3.289 1.317-2.759.006-4.286-1.662-4.286-3.846Zm7.561-.839v-.516h-2.335c-1.149 0-1.668.516-1.668 1.173 0 .706.565 1.223 1.646 1.223 1.488-.009 2.357-.878 2.357-1.88ZM125.896 46.129h3.241l.271 1.173h.093c.681-.798 1.762-1.385 3.359-1.385 2.716 0 4.555 1.714 4.555 4.416v8.077H133.8v-6.95c0-1.41-.636-2.257-2.067-2.257-1.293 0-2.232.918-2.232 2.396v6.811h-3.605V46.13ZM139.305 59.467h3.531c.095.815.918 1.431 2.045 1.431 1.597 0 2.393-.844 2.393-1.947v-1.717h-.092c-.587.707-1.527 1.388-3.26 1.388-3.099 0-4.978-2.678-4.978-6.342 0-3.663 1.879-6.363 4.978-6.363 1.739 0 2.678.681 3.26 1.385h.092l.378-1.173h3.24v12.868c0 3.077-2.583 5.003-6.011 5.003-3.3 0-5.505-1.763-5.576-4.533Zm8.148-7.187c0-1.713-.633-3.194-2.42-3.194s-2.417 1.48-2.417 3.194.587 3.17 2.417 3.17c1.831 0 2.42-1.456 2.42-3.17ZM152.432 52.28c0-3.473 2.018-6.363 6.01-6.363 3.759 0 5.872 2.653 5.872 5.975v1.339h-8.188c.024 1.431.752 2.444 2.395 2.444 1.339 0 1.926-.657 2.138-1.222h3.498c-.329 2.208-2.276 4.158-5.636 4.158-3.881.011-6.089-2.808-6.089-6.33Zm8.194-1.314c-.071-1.173-.75-2.092-2.173-2.092-1.548 0-2.23.919-2.3 2.092h4.473ZM165.841 54.747h3.864v3.664h-3.851l-.013-3.664ZM34.135 41.327 0 21.617v17.07l34.135 19.707 34.137-19.707v-17.07l-34.137 19.71Z",fill:"#000"})),gt||(gt=r.createElement("path",{d:"M41.87 0 24.803 9.854v17.07l17.067-9.857V0Z",fill:"#000"})))};var kt,St,wt,Et;function xt(){return xt=Object.assign?Object.assign.bind():function(e){for(var t=1;t{let{title:t,titleId:n,...a}=e;return r.createElement("svg",xt({width:741,height:240,viewBox:"0 0 741 240",fill:"none",xmlns:"http://www.w3.org/2000/svg","aria-labelledby":n},a),t?r.createElement("title",{id:n},t):null,kt||(kt=r.createElement("rect",{x:8,y:2,width:725,height:224,rx:50,fill:"#3164FA"})),St||(St=r.createElement("path",{d:"M487.792 106c11.115 0 18.097 3.146 24.711 8.791l-7.165 8.606c-4.961-4.257-9.922-6.848-18.006-6.848-11.758 0-20.853 10.365-20.853 22.765l.006.771c.252 13.026 8.915 22.549 21.858 22.549 6.155 0 11.575-1.944 15.525-4.905v-12.03l10.932-9.994v27.206c-6.431 5.46-15.433 10.087-26.824 10.087-20.119 0-33.347-14.436-33.347-33.314l.005-.775c.293-17.88 13.894-32.909 33.158-32.909Zm72.752 0c19.75 0 33.53 15.084 33.53 33.314l-.005.769c-.296 17.882-14.171 32.915-33.709 32.915-19.751 0-33.53-15.084-33.53-33.314l.005-.769c.296-17.882 14.171-32.915 33.709-32.915Zm-284.778.648 28.294 65.24-11.502-.001-22.212-51.636-22.049 51.636-11.297.001 28.294-65.24h10.472Zm145.733 0 28.294 65.24-11.502-.001-22.212-51.636-22.049 51.636-11.297.001 28.294-65.24h10.472Zm195.24.462 34.449 44.789V107.11h11.115v64.778h-9.462l-35.459-46.085v46.085h-11.116V107.11h10.473Zm-56.379 9.439c-12.769 0-21.68 10.18-21.68 22.765l.006.739c.26 12.334 9.186 22.396 21.858 22.396 12.769 0 21.68-10.18 21.68-22.765l-.006-.739c-.26-12.334-9.186-22.396-21.858-22.396ZM346.406 106c8.1 0 14.451 2.446 18.593 6.584 3.405 3.669 5.338 8.466 5.338 14.204l-.002.539c-.133 10.374-6.171 16.703-14.698 19.414l-.579.177 17.396 24.927h-13.438l-15.831-22.952-8.31-.002 5.831-10.253 4.872.002c7.916 0 13.018-4.042 13.246-10.547l.008-.458-.002-.439c-.113-6.986-4.976-10.661-13.344-10.661h-16.475l-.002 20.354-.009-.001v14.684l.009-.005.002 20.278H317.69V106h28.716Z",fill:"#fff"})),wt||(wt=r.createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"m110.424 45.777-6.942-7.366c12.003-1.547 43.674.436 74.334 20.741.398 2.804.313 5.6.313 5.6l2.259 1.223.013.02.004-.03.046.029c1.268 2.176 2.548 5.42 3.367 9.238.99 4.62 1.272 9.937.118 15.023-1.163 5.124-3.371 9.353-5.533 12.446-1.597 2.286-3.12 3.884-4.121 4.759-3.916.082-11.207 2.709-13.292 11.817-6.28 3.594-16.14 7.187-29.164 7.187-12.441 0-25.132-3.603-34.671-10.581-9.502-6.949-15.883-17.236-15.883-30.78 0-10.773 4.828-19.188 10.951-25.377 6.144-6.21 14.541-11.24 19.412-12.91l-1.211-1.04Zm53.801 17.672c-2.414 2.631-4.671 3.893-5.315 4.236-14.095-3.138-19.173-10.768-19.173-10.768 13.295-.086 25.294 3.223 34.074 8.82 0 0-4.753-1.61-9.586-2.288Z",fill:"#fff"})),Et||(Et=r.createElement("path",{d:"M103.285 47.814C73.065 53.9 50 81.114 50 114.02 50 155.624 85.123 190 128.449 190c32.353 0 59.284-19.806 73.365-46.304-18.727 4.447-41.086-3.459-41.229-20.742-6.741 3.47-16.448 6.55-28.759 6.55-12.975 0-26.32-3.748-36.463-11.166-10.18-7.446-17.127-18.6-17.127-33.234 0-11.77 5.297-20.914 11.83-27.518 3.78-3.784 8.962-7.376 13.219-9.772ZM186.786 74.594a41.013 41.013 0 0 0-1.528-5.359c8.124 6.079 14.451 14.374 13.924 25.932-.76 16.648-10.803 23.198-17.233 24.289 3.086-5.185.514-8.46-.515-9.552-.5-.531-1.534-1.425-3.308-1.983a34.685 34.685 0 0 0 2.765-3.477c2.342-3.352 4.739-7.938 6.005-13.515 1.275-5.615.95-11.393-.11-16.335ZM244.38 79h3.552v-8.787h6.341c.459 0 1.24-.034 1.886-.136 4.08-.646 6.137-3.74 6.137-7.717 0-3.96-2.04-7.072-6.137-7.7a13.267 13.267 0 0 0-1.886-.136h-9.893V79Zm3.552-12.153v-8.975h6.205c.442 0 1.036.034 1.546.17 2.176.51 2.992 2.516 2.992 4.318 0 1.801-.816 3.807-2.992 4.334-.51.119-1.104.153-1.546.153h-6.205ZM279.989 79.51c7.326 0 11.558-5.184 11.558-12.748 0-7.564-4.232-12.748-11.558-12.748-7.343 0-11.576 5.184-11.576 12.748 0 7.564 4.233 12.748 11.576 12.748Zm-7.802-12.748c.017-5.61 2.6-9.417 7.802-9.366 5.201.034 7.785 3.757 7.785 9.366 0 5.61-2.584 9.417-7.785 9.366-5.202-.034-7.819-3.757-7.802-9.366ZM303.172 79h3.536l5.252-18.306L317.212 79h3.536l7.122-24.476h-3.739l-5.151 18.51-5.15-18.51-3.74.017-5.15 18.493-5.15-18.51h-3.723L303.172 79ZM334.801 79h15.638v-3.348h-12.085v-7.564H348.4v-3.349h-10.046v-6.867h12.085v-3.348h-15.638V79ZM358.601 79h3.553v-8.787h6.493L372.913 79h4.063l-4.624-9.484c2.771-1.207 4.165-3.893 4.165-7.156 0-3.96-2.04-7.072-6.137-7.7a13.257 13.257 0 0 0-1.886-.136h-9.893V79Zm3.553-12.153v-8.975h6.204c.442 0 1.037.034 1.546.17 2.176.51 2.992 2.516 2.992 4.318 0 1.801-.816 3.807-2.992 4.334-.509.119-1.104.153-1.546.153h-6.204ZM384.791 79h15.638v-3.348h-12.086v-7.564h10.046v-3.349h-10.046v-6.867h12.086v-3.348h-15.638V79ZM408.59 79h7.666c.442 0 1.904 0 3.043-.153 5.745-.73 8.805-5.847 8.805-12.085s-3.06-11.355-8.805-12.085c-1.139-.153-2.601-.153-3.043-.153h-7.666V79Zm3.638-3.382V57.906h4.028c.748 0 1.972.017 2.788.17 3.672.68 5.286 4.386 5.286 8.686 0 4.198-1.546 7.972-5.286 8.686-.816.153-2.006.17-2.788.17h-4.028ZM447.027 79h10.538c4.658 0 7.326-2.821 7.326-7.139 0-2.6-1.326-4.759-3.756-5.796 1.615-.935 2.6-2.72 2.6-4.963 0-3.332-2.413-6.578-7.088-6.578h-9.62V79Zm3.603-3.382v-7.751h6.612c2.448 0 4.012 1.7 4.012 3.926 0 2.38-1.802 3.825-4.233 3.825h-6.391Zm0-11.1v-6.646h5.966c2.125 0 3.502 1.36 3.502 3.264 0 2.142-1.53 3.382-3.502 3.382h-5.966ZM477.222 79h3.604V68.887l8.278-14.363h-4.148l-5.932 10.283-5.932-10.283h-4.148l8.278 14.363V79Z",fill:"#fff"})))},_t=[{title:"Company",links:[{title:"About",href:"https://docs.vocdoni.io/about-us/vision.html"},{title:"How we work",href:"https://docs.vocdoni.io/about-us/how-we-work.html"},{title:"Blog",href:"https://blog.vocdoni.io/vocdoni/"}]},{title:"Developer",links:[{title:"Developer Portal",href:"https://developer.vocdoni.io/"},{title:"Vocdoni API",href:"https://vocdoni.io/api"},{title:"Vocdoni APP",href:"https://vocdoni.app/"}]},{title:"Resources",links:[{title:"Guides",href:"#",soon:!0},{title:"Tutorials",href:"#",soon:!0}]},{title:"Contact",links:[{title:"info@vocdoni.io",href:"mailto:info@vocdoni.io"}]}],It=e=>{let{children:t}=e;return r.createElement(Nt,null,r.createElement("div",null,t),r.createElement(Mt,null,"Soon"))},Tt=e=>{let{title:t,links:n}=e;return r.createElement(At,null,r.createElement("h4",null,t),r.createElement("div",null,n.map(((e,t)=>r.createElement("div",{key:t},e.soon?r.createElement(It,null,e.title):r.createElement(Ot,{href:e.href},e.title),r.createElement("br",null))))))},Pt=()=>r.createElement(Lt,null,r.createElement(Rt,null,r.createElement(yt,null),r.createElement(Ct,{height:"93px",width:"130px"})),_t.map(((e,t)=>r.createElement(Tt,{key:t,title:e.title,links:e.links})))),At=Ke.ZP.div.attrs({className:"flex flex-col align-center gap-2 "})``,Rt=(0,Ke.ZP)(At).attrs({className:"gap-1 justify-center items-center"})``,Lt=Ke.ZP.div.attrs({className:"flex flex-wrap justify-between my-6 py-8 px-8 md:px-4 gap-8"})``,Ot=Ke.ZP.a.attrs({className:"text-sm text-black"})``,Nt=Ke.ZP.div.attrs({className:"text-sm text-gray-600 cursor-wait flex"})``,Mt=Ke.ZP.div.attrs({className:"-mt-1 ml-1 text-gray-600 text-xs"})``;var Dt=n(88357);function zt(e){return(0,Dt.w_)({tag:"svg",attr:{viewBox:"0 0 24 24"},child:[{tag:"g",attr:{},child:[{tag:"path",attr:{fill:"none",d:"M0 0h24v24H0z"}},{tag:"path",attr:{fillRule:"nonzero",d:"M10.076 11c.6 0 1.086.45 1.075 1 0 .55-.474 1-1.075 1C9.486 13 9 12.55 9 12s.475-1 1.076-1zm3.848 0c.601 0 1.076.45 1.076 1s-.475 1-1.076 1c-.59 0-1.075-.45-1.075-1s.474-1 1.075-1zm4.967-9C20.054 2 21 2.966 21 4.163V23l-2.211-1.995-1.245-1.176-1.317-1.25.546 1.943H5.109C3.946 20.522 3 19.556 3 18.359V4.163C3 2.966 3.946 2 5.109 2H18.89zm-3.97 13.713c2.273-.073 3.148-1.596 3.148-1.596 0-3.381-1.482-6.122-1.482-6.122-1.48-1.133-2.89-1.102-2.89-1.102l-.144.168c1.749.546 2.561 1.334 2.561 1.334a8.263 8.263 0 0 0-3.096-1.008 8.527 8.527 0 0 0-2.077.02c-.062 0-.114.011-.175.021-.36.032-1.235.168-2.335.662-.38.178-.607.305-.607.305s.854-.83 2.705-1.376l-.103-.126s-1.409-.031-2.89 1.103c0 0-1.481 2.74-1.481 6.121 0 0 .864 1.522 3.137 1.596 0 0 .38-.472.69-.871-1.307-.4-1.8-1.24-1.8-1.24s.102.074.287.179c.01.01.02.021.041.031.031.022.062.032.093.053.257.147.514.262.75.357.422.168.926.336 1.513.452a7.06 7.06 0 0 0 2.664.01 6.666 6.666 0 0 0 1.491-.451c.36-.137.761-.337 1.183-.62 0 0-.514.861-1.862 1.25.309.399.68.85.68.85z"}}]}]})(e)}function Ft(e){return(0,Dt.w_)({tag:"svg",attr:{viewBox:"0 0 24 24"},child:[{tag:"g",attr:{},child:[{tag:"path",attr:{fill:"none",d:"M0 0h24v24H0z"}},{tag:"path",attr:{d:"M22.162 5.656a8.384 8.384 0 0 1-2.402.658A4.196 4.196 0 0 0 21.6 4c-.82.488-1.719.83-2.656 1.015a4.182 4.182 0 0 0-7.126 3.814 11.874 11.874 0 0 1-8.62-4.37 4.168 4.168 0 0 0-.566 2.103c0 1.45.738 2.731 1.86 3.481a4.168 4.168 0 0 1-1.894-.523v.052a4.185 4.185 0 0 0 3.355 4.101 4.21 4.21 0 0 1-1.89.072A4.185 4.185 0 0 0 7.97 16.65a8.394 8.394 0 0 1-6.191 1.732 11.83 11.83 0 0 0 6.41 1.88c7.693 0 11.9-6.373 11.9-11.9 0-.18-.005-.362-.013-.54a8.496 8.496 0 0 0 2.087-2.165z"}}]}]})(e)}const Bt=(new Date).getFullYear(),$t=()=>r.createElement(Ut,null,r.createElement("div",null,"Copyright \xa9 ",Bt," Vocdoni, Inc. All rights reserved."),r.createElement(jt,null,r.createElement(zt,{href:"https://t.co/1JrIv5eVPF",size:"1.75em"}),r.createElement(Ft,{href:"https://twitter.com/vocdoni",size:"1.75em"}))),Ut=Ke.ZP.div.attrs({className:"pt-5 pb-3 px-3 text-xs text-monospace items-center content-center flex sm:flex-row justify-between flex-col"})` `,jt=Ke.ZP.div.attrs({className:"flex gap-3 flex-row"})` -`,Vt=()=>r.createElement(Ht,null,r.createElement(Pt,null),r.createElement(Zt,null),r.createElement($t,null)),Zt=Ke.ZP.div.attrs({className:"border-b w-full border-black"})``,Ht=Ke.ZP.div.attrs({className:"bg-white md:px-10"})``;function Wt(e){let{style:t,links:n,logo:a,copyright:i}=e;return r.createElement(Vt,null)}function Gt(){const{footer:e}=(0,f.L)();if(!e)return null;const{copyright:t,links:n,logo:a,style:i}=e;return r.createElement(Wt,{style:i,links:n&&n.length>0&&r.createElement(dt,{links:n}),logo:a&&r.createElement(mt,{logo:a}),copyright:t&&r.createElement(ht,{copyright:t})})}const qt=r.memo(Gt);var Kt=n(902),Yt=n(7094),Qt=n(12466);const Xt=(0,Kt.Qc)([R.S,p.pl,Yt.z,Qt.OC,Oe.L5,o.VC,He.V]);function Jt(e){let{children:t}=e;return r.createElement(Xt,null,t)}function en(e){let{error:t,tryAgain:n}=e;return r.createElement("main",{className:"container margin-vert--xl"},r.createElement("div",{className:"row"},r.createElement("div",{className:"col col--6 col--offset-3"},r.createElement("h1",{className:"hero__title"},r.createElement(h.Z,{id:"theme.ErrorPageContent.title",description:"The title of the fallback page when the page crashed"},"This page crashed.")),r.createElement("p",null,t.message),r.createElement("div",null,r.createElement("button",{type:"button",onClick:n},r.createElement(h.Z,{id:"theme.ErrorPageContent.tryAgain",description:"The label of the button to try again when the page crashed"},"Try again"))))))}const tn="mainWrapper_z2l0";function nn(e){const{children:t,noFooter:n,wrapperClassName:d,title:f,description:p}=e;return(0,l.t)(),r.createElement(Jt,null,r.createElement(o.d,{title:f,description:p}),r.createElement(u,null),r.createElement(C,null),r.createElement(tt,null),r.createElement("div",{id:s.u,className:(0,a.Z)(c.k.wrapper.main,tn,d)},r.createElement(i.Z,{fallback:e=>r.createElement(en,e)},t)),!n&&r.createElement(qt,null))}},21327:(e,t,n)=>{"use strict";n.d(t,{Z:()=>u});var r=n(87462),a=n(67294),i=n(39960),o=n(44996),s=n(52263),c=n(86668),l=n(50941);function d(e){let{logo:t,alt:n,imageClassName:r}=e;const i={light:(0,o.Z)(t.src),dark:(0,o.Z)(t.srcDark||t.src)},s=a.createElement(l.Z,{className:t.className,sources:i,height:t.height,width:t.width,alt:n,style:t.style});return r?a.createElement("div",{className:r},s):s}function u(e){const{siteConfig:{title:t}}=(0,s.Z)(),{navbar:{title:n,logo:l}}=(0,c.L)(),{imageClassName:u,titleClassName:f,...p}=e,m=(0,o.Z)(l?.href||"/"),h=n?"":t,b=l?.alt??h;return a.createElement(i.Z,(0,r.Z)({to:m},p,l?.target&&{target:l.target}),l&&a.createElement(d,{logo:l,alt:b,imageClassName:u}),null!=n&&a.createElement("b",{className:f},n))}},90197:(e,t,n)=>{"use strict";n.d(t,{Z:()=>i});var r=n(67294),a=n(35742);function i(e){let{locale:t,version:n,tag:i}=e;const o=t;return r.createElement(a.Z,null,t&&r.createElement("meta",{name:"docusaurus_locale",content:t}),n&&r.createElement("meta",{name:"docusaurus_version",content:n}),i&&r.createElement("meta",{name:"docusaurus_tag",content:i}),o&&r.createElement("meta",{name:"docsearch:language",content:o}),n&&r.createElement("meta",{name:"docsearch:version",content:n}),i&&r.createElement("meta",{name:"docsearch:docusaurus_tag",content:i}))}},50941:(e,t,n)=>{"use strict";n.d(t,{Z:()=>l});var r=n(87462),a=n(67294),i=n(86010),o=n(72389),s=n(92949);const c={themedImage:"themedImage_ToTc","themedImage--light":"themedImage--light_HNdA","themedImage--dark":"themedImage--dark_i4oU"};function l(e){const t=(0,o.Z)(),{colorMode:n}=(0,s.I)(),{sources:l,className:d,alt:u,...f}=e,p=t?"dark"===n?["dark"]:["light"]:["light","dark"];return a.createElement(a.Fragment,null,p.map((e=>a.createElement("img",(0,r.Z)({key:e,src:l[e],alt:u,className:(0,i.Z)(c.themedImage,c[`themedImage--${e}`],d)},f)))))}},86043:(e,t,n)=>{"use strict";n.d(t,{u:()=>o,z:()=>m});var r=n(87462),a=n(67294),i=n(10412);function o(e){let{initialState:t}=e;const[n,r]=(0,a.useState)(t??!1),i=(0,a.useCallback)((()=>{r((e=>!e))}),[]);return{collapsed:n,setCollapsed:r,toggleCollapsed:i}}const s={display:"none",overflow:"hidden",height:"0px"},c={display:"block",overflow:"visible",height:"auto"};function l(e,t){const n=t?s:c;e.style.display=n.display,e.style.overflow=n.overflow,e.style.height=n.height}function d(e){let{collapsibleRef:t,collapsed:n,animation:r}=e;const i=(0,a.useRef)(!1);(0,a.useEffect)((()=>{const e=t.current;function a(){const t=e.scrollHeight,n=r?.duration??function(e){const t=e/36;return Math.round(10*(4+15*t**.25+t/5))}(t);return{transition:`height ${n}ms ${r?.easing??"ease-in-out"}`,height:`${t}px`}}function o(){const t=a();e.style.transition=t.transition,e.style.height=t.height}if(!i.current)return l(e,n),void(i.current=!0);return e.style.willChange="height",function(){const t=requestAnimationFrame((()=>{n?(o(),requestAnimationFrame((()=>{e.style.height=s.height,e.style.overflow=s.overflow}))):(e.style.display="block",requestAnimationFrame((()=>{o()})))}));return()=>cancelAnimationFrame(t)}()}),[t,n,r])}function u(e){if(!i.Z.canUseDOM)return e?s:c}function f(e){let{as:t="div",collapsed:n,children:r,animation:i,onCollapseTransitionEnd:o,className:s,disableSSRStyle:c}=e;const f=(0,a.useRef)(null);return d({collapsibleRef:f,collapsed:n,animation:i}),a.createElement(t,{ref:f,style:c?void 0:u(n),onTransitionEnd:e=>{"height"===e.propertyName&&(l(f.current,n),o?.(n))},className:s},r)}function p(e){let{collapsed:t,...n}=e;const[i,o]=(0,a.useState)(!t),[s,c]=(0,a.useState)(t);return(0,a.useLayoutEffect)((()=>{t||o(!0)}),[t]),(0,a.useLayoutEffect)((()=>{i&&c(t)}),[i,t]),i?a.createElement(f,(0,r.Z)({},n,{collapsed:s})):null}function m(e){let{lazy:t,...n}=e;const r=t?p:f;return a.createElement(r,n)}},59689:(e,t,n)=>{"use strict";n.d(t,{nT:()=>m,pl:()=>p});var r=n(67294),a=n(72389),i=n(50012),o=n(902),s=n(86668);const c=(0,i.W)("docusaurus.announcement.dismiss"),l=(0,i.W)("docusaurus.announcement.id"),d=()=>"true"===c.get(),u=e=>c.set(String(e)),f=r.createContext(null);function p(e){let{children:t}=e;const n=function(){const{announcementBar:e}=(0,s.L)(),t=(0,a.Z)(),[n,i]=(0,r.useState)((()=>!!t&&d()));(0,r.useEffect)((()=>{i(d())}),[]);const o=(0,r.useCallback)((()=>{u(!0),i(!0)}),[]);return(0,r.useEffect)((()=>{if(!e)return;const{id:t}=e;let n=l.get();"annoucement-bar"===n&&(n="announcement-bar");const r=t!==n;l.set(t),r&&u(!1),!r&&d()||i(!1)}),[e]),(0,r.useMemo)((()=>({isActive:!!e&&!n,close:o})),[e,n,o])}();return r.createElement(f.Provider,{value:n},t)}function m(){const e=(0,r.useContext)(f);if(!e)throw new o.i6("AnnouncementBarProvider");return e}},92949:(e,t,n)=>{"use strict";n.d(t,{I:()=>b,S:()=>h});var r=n(67294),a=n(10412),i=n(902),o=n(50012),s=n(86668);const c=r.createContext(void 0),l="theme",d=(0,o.W)(l),u="light",f="dark",p=e=>e===f?f:u;function m(){const{colorMode:{defaultMode:e,disableSwitch:t,respectPrefersColorScheme:n}}=(0,s.L)(),[i,o]=(0,r.useState)((e=>a.Z.canUseDOM?p(document.documentElement.getAttribute("data-theme")):p(e))(e));(0,r.useEffect)((()=>{t&&d.del()}),[t]);const c=(0,r.useCallback)((function(t,r){void 0===r&&(r={});const{persist:a=!0}=r;t?(o(t),a&&(e=>{d.set(p(e))})(t)):(o(n?window.matchMedia("(prefers-color-scheme: dark)").matches?f:u:e),d.del())}),[n,e]);(0,r.useEffect)((()=>{document.documentElement.setAttribute("data-theme",p(i))}),[i]),(0,r.useEffect)((()=>{if(t)return;const e=e=>{if(e.key!==l)return;const t=d.get();null!==t&&c(p(t))};return window.addEventListener("storage",e),()=>window.removeEventListener("storage",e)}),[t,c]);const m=(0,r.useRef)(!1);return(0,r.useEffect)((()=>{if(t&&!n)return;const e=window.matchMedia("(prefers-color-scheme: dark)"),r=()=>{window.matchMedia("print").matches||m.current?m.current=window.matchMedia("print").matches:c(null)};return e.addListener(r),()=>e.removeListener(r)}),[c,t,n]),(0,r.useMemo)((()=>({colorMode:i,setColorMode:c,get isDarkTheme(){return i===f},setLightTheme(){c(u)},setDarkTheme(){c(f)}})),[i,c])}function h(e){let{children:t}=e;const n=m();return r.createElement(c.Provider,{value:n},t)}function b(){const e=(0,r.useContext)(c);if(null==e)throw new i.i6("ColorModeProvider","Please see https://docusaurus.io/docs/api/themes/configuration#use-color-mode.");return e}},60373:(e,t,n)=>{"use strict";n.d(t,{J:()=>y,L5:()=>g,Oh:()=>k});var r=n(67294),a=n(80143),i=n(29935),o=n(86668),s=n(53438),c=n(902),l=n(50012);const d=e=>`docs-preferred-version-${e}`,u=(e,t,n)=>{(0,l.W)(d(e),{persistence:t}).set(n)},f=(e,t)=>(0,l.W)(d(e),{persistence:t}).get(),p=(e,t)=>{(0,l.W)(d(e),{persistence:t}).del()};const m=r.createContext(null);function h(){const e=(0,a._r)(),t=(0,o.L)().docs.versionPersistence,n=(0,r.useMemo)((()=>Object.keys(e)),[e]),[i,s]=(0,r.useState)((()=>(e=>Object.fromEntries(e.map((e=>[e,{preferredVersionName:null}]))))(n)));(0,r.useEffect)((()=>{s(function(e){let{pluginIds:t,versionPersistence:n,allDocsData:r}=e;function a(e){const t=f(e,n);return r[e].versions.some((e=>e.name===t))?{preferredVersionName:t}:(p(e,n),{preferredVersionName:null})}return Object.fromEntries(t.map((e=>[e,a(e)])))}({allDocsData:e,versionPersistence:t,pluginIds:n}))}),[e,t,n]);return[i,(0,r.useMemo)((()=>({savePreferredVersion:function(e,n){u(e,t,n),s((t=>({...t,[e]:{preferredVersionName:n}})))}})),[t])]}function b(e){let{children:t}=e;const n=h();return r.createElement(m.Provider,{value:n},t)}function g(e){let{children:t}=e;return s.cE?r.createElement(b,null,t):r.createElement(r.Fragment,null,t)}function v(){const e=(0,r.useContext)(m);if(!e)throw new c.i6("DocsPreferredVersionContextProvider");return e}function y(e){void 0===e&&(e=i.m);const t=(0,a.zh)(e),[n,o]=v(),{preferredVersionName:s}=n[e];return{preferredVersion:t.versions.find((e=>e.name===s))??null,savePreferredVersionName:(0,r.useCallback)((t=>{o.savePreferredVersion(e,t)}),[o,e])}}function k(){const e=(0,a._r)(),[t]=v();function n(n){const r=e[n],{preferredVersionName:a}=t[n];return r.versions.find((e=>e.name===a))??null}const r=Object.keys(e);return Object.fromEntries(r.map((e=>[e,n(e)])))}},1116:(e,t,n)=>{"use strict";n.d(t,{V:()=>c,b:()=>s});var r=n(67294),a=n(902);const i=Symbol("EmptyContext"),o=r.createContext(i);function s(e){let{children:t,name:n,items:a}=e;const i=(0,r.useMemo)((()=>n&&a?{name:n,items:a}:null),[n,a]);return r.createElement(o.Provider,{value:i},t)}function c(){const e=(0,r.useContext)(o);if(e===i)throw new a.i6("DocsSidebarProvider");return e}},74477:(e,t,n)=>{"use strict";n.d(t,{E:()=>s,q:()=>o});var r=n(67294),a=n(902);const i=r.createContext(null);function o(e){let{children:t,version:n}=e;return r.createElement(i.Provider,{value:n},t)}function s(){const e=(0,r.useContext)(i);if(null===e)throw new a.i6("DocsVersionProvider");return e}},93163:(e,t,n)=>{"use strict";n.d(t,{M:()=>u,e:()=>f});var r=n(67294),a=n(13102),i=n(87524),o=n(91980),s=n(86668),c=n(902);const l=r.createContext(void 0);function d(){const e=function(){const e=(0,a.HY)(),{items:t}=(0,s.L)().navbar;return 0===t.length&&!e.component}(),t=(0,i.i)(),n=!e&&"mobile"===t,[c,l]=(0,r.useState)(!1);(0,o.R)((()=>{if(c)return l(!1),!1}));const d=(0,r.useCallback)((()=>{l((e=>!e))}),[]);return(0,r.useEffect)((()=>{"desktop"===t&&l(!1)}),[t]),(0,r.useMemo)((()=>({disabled:e,shouldRender:n,toggle:d,shown:c})),[e,n,d,c])}function u(e){let{children:t}=e;const n=d();return r.createElement(l.Provider,{value:n},t)}function f(){const e=r.useContext(l);if(void 0===e)throw new c.i6("NavbarMobileSidebarProvider");return e}},13102:(e,t,n)=>{"use strict";n.d(t,{HY:()=>s,Zo:()=>c,n2:()=>o});var r=n(67294),a=n(902);const i=r.createContext(null);function o(e){let{children:t}=e;const n=(0,r.useState)({component:null,props:null});return r.createElement(i.Provider,{value:n},t)}function s(){const e=(0,r.useContext)(i);if(!e)throw new a.i6("NavbarSecondaryMenuContentProvider");return e[0]}function c(e){let{component:t,props:n}=e;const o=(0,r.useContext)(i);if(!o)throw new a.i6("NavbarSecondaryMenuContentProvider");const[,s]=o,c=(0,a.Ql)(n);return(0,r.useEffect)((()=>{s({component:t,props:c})}),[s,t,c]),(0,r.useEffect)((()=>()=>s({component:null,props:null})),[s]),null}},76857:(e,t,n)=>{"use strict";n.d(t,{P:()=>c,Y:()=>d});var r=n(67294),a=n(902),i=n(93163),o=n(13102);const s=r.createContext(null);function c(e){let{children:t}=e;const n=function(){const e=(0,i.e)(),t=(0,o.HY)(),[n,s]=(0,r.useState)(!1),c=null!==t.component,l=(0,a.D9)(c);return(0,r.useEffect)((()=>{c&&!l&&s(!0)}),[c,l]),(0,r.useEffect)((()=>{c?e.shown||s(!0):s(!1)}),[e.shown,c]),(0,r.useMemo)((()=>[n,s]),[n])}();return r.createElement(s.Provider,{value:n},t)}function l(e){if(e.component){const t=e.component;return r.createElement(t,e.props)}}function d(){const e=(0,r.useContext)(s);if(!e)throw new a.i6("NavbarSecondaryMenuDisplayProvider");const[t,n]=e,i=(0,r.useCallback)((()=>n(!1)),[n]),c=(0,o.HY)();return(0,r.useMemo)((()=>({shown:t,hide:i,content:l(c)})),[i,c,t])}},7094:(e,t,n)=>{"use strict";n.d(t,{U:()=>l,z:()=>c});var r=n(67294),a=n(50012),i=n(902);const o="docusaurus.tab.",s=r.createContext(void 0);function c(e){let{children:t}=e;const n=function(){const[e,t]=(0,r.useState)({}),n=(0,r.useCallback)(((e,t)=>{(0,a.W)(`docusaurus.tab.${e}`).set(t)}),[]);(0,r.useEffect)((()=>{try{const e={};(0,a._)().forEach((t=>{if(t.startsWith(o)){const n=t.substring(o.length);e[n]=(0,a.W)(t).get()}})),t(e)}catch(e){console.error(e)}}),[]);const i=(0,r.useCallback)(((e,r)=>{t((t=>({...t,[e]:r}))),n(e,r)}),[n]);return(0,r.useMemo)((()=>({tabGroupChoices:e,setTabGroupChoices:i})),[e,i])}();return r.createElement(s.Provider,{value:n},t)}function l(){const e=(0,r.useContext)(s);if(null==e)throw new i.i6("TabGroupChoiceProvider");return e}},99445:(e,t,n)=>{"use strict";n.d(t,{c:()=>o});var r=n(67294),a=n(85936),i=n(12466);function o(e){const[t,n]=(0,r.useState)(e),o=(0,r.useRef)(!1),s=(0,r.useRef)(0),c=(0,r.useCallback)((e=>{null!==e&&(s.current=e.getBoundingClientRect().height)}),[]);return(0,i.RF)(((t,r)=>{let{scrollY:a}=t;if(!e)return;if(a=i?n(!1):a+l{if(!e)return;const r=t.location.hash;if(r?document.getElementById(r.substring(1)):void 0)return o.current=!0,void n(!1);n(!0)})),{navbarRef:c,isNavbarVisible:t}}},19727:(e,t,n)=>{"use strict";n.d(t,{h:()=>a,t:()=>i});var r=n(67294);const a="navigation-with-keyboard";function i(){(0,r.useEffect)((()=>{function e(e){"keydown"===e.type&&"Tab"===e.key&&document.body.classList.add(a),"mousedown"===e.type&&document.body.classList.remove(a)}return document.addEventListener("keydown",e),document.addEventListener("mousedown",e),()=>{document.body.classList.remove(a),document.removeEventListener("keydown",e),document.removeEventListener("mousedown",e)}}),[])}},69800:(e,t,n)=>{"use strict";n.d(t,{N:()=>a});var r=n(67294);function a(e){void 0===e&&(e=!0),(0,r.useEffect)((()=>(document.body.style.overflow=e?"hidden":"visible",()=>{document.body.style.overflow="visible"})),[e])}},66177:(e,t,n)=>{"use strict";n.d(t,{O:()=>s});var r=n(67294),a=n(16550),i=n(52263);const o="q";function s(){const e=(0,a.k6)(),{siteConfig:{baseUrl:t}}=(0,i.Z)(),[n,s]=(0,r.useState)("");(0,r.useEffect)((()=>{const e=new URLSearchParams(window.location.search).get(o)??"";s(e)}),[]);return{searchQuery:n,setSearchQuery:(0,r.useCallback)((t=>{const n=new URLSearchParams(window.location.search);t?n.set(o,t):n.delete(o),e.replace({search:n.toString()}),s(t)}),[e]),generateSearchPageLink:(0,r.useCallback)((e=>`${t}search?q=${encodeURIComponent(e)}`),[t])}}},87524:(e,t,n)=>{"use strict";n.d(t,{i:()=>l});var r=n(67294),a=n(10412);const i="desktop",o="mobile",s="ssr";function c(){return a.Z.canUseDOM?window.innerWidth>996?i:o:s}function l(){const[e,t]=(0,r.useState)((()=>c()));return(0,r.useEffect)((()=>{function e(){t(c())}return window.addEventListener("resize",e),()=>{window.removeEventListener("resize",e),clearTimeout(undefined)}}),[]),e}},35281:(e,t,n)=>{"use strict";n.d(t,{k:()=>r});const r={page:{blogListPage:"blog-list-page",blogPostPage:"blog-post-page",blogTagsListPage:"blog-tags-list-page",blogTagPostListPage:"blog-tags-post-list-page",docsDocPage:"docs-doc-page",docsTagsListPage:"docs-tags-list-page",docsTagDocListPage:"docs-tags-doc-list-page",mdxPage:"mdx-page"},wrapper:{main:"main-wrapper",blogPages:"blog-wrapper",docsPages:"docs-wrapper",mdxPages:"mdx-wrapper"},common:{editThisPage:"theme-edit-this-page",lastUpdated:"theme-last-updated",backToTopButton:"theme-back-to-top-button",codeBlock:"theme-code-block",admonition:"theme-admonition",admonitionType:e=>`theme-admonition-${e}`},layout:{},docs:{docVersionBanner:"theme-doc-version-banner",docVersionBadge:"theme-doc-version-badge",docBreadcrumbs:"theme-doc-breadcrumbs",docMarkdown:"theme-doc-markdown",docTocMobile:"theme-doc-toc-mobile",docTocDesktop:"theme-doc-toc-desktop",docFooter:"theme-doc-footer",docFooterTagsRow:"theme-doc-footer-tags-row",docFooterEditMetaRow:"theme-doc-footer-edit-meta-row",docSidebarContainer:"theme-doc-sidebar-container",docSidebarMenu:"theme-doc-sidebar-menu",docSidebarItemCategory:"theme-doc-sidebar-item-category",docSidebarItemLink:"theme-doc-sidebar-item-link",docSidebarItemCategoryLevel:e=>`theme-doc-sidebar-item-category-level-${e}`,docSidebarItemLinkLevel:e=>`theme-doc-sidebar-item-link-level-${e}`},blog:{}}},53438:(e,t,n)=>{"use strict";n.d(t,{MN:()=>C,Wl:()=>h,_F:()=>v,cE:()=>f,em:()=>m,hI:()=>x,jA:()=>b,lO:()=>S,oz:()=>w,s1:()=>k,vY:()=>E,xz:()=>p});var r=n(67294),a=n(16550),i=n(18790),o=n(80143),s=n(60373),c=n(74477),l=n(1116),d=n(67392),u=n(48596);const f=!!o._r;function p(e){const t=(0,c.E)();if(!e)return;const n=t.docs[e];if(!n)throw new Error(`no version doc found by id=${e}`);return n}function m(e,t){for(const n of e)if("category"===n.type){if(t(n))return n;const e=m(n.items,t);if(e)return e}}function h(e){if(e.href)return e.href;for(const t of e.items){if("link"===t.type)return t.href;if("category"===t.type){const e=h(t);if(e)return e}}}function b(){const{pathname:e}=(0,a.TH)(),t=(0,l.V)();if(!t)throw new Error("Unexpected: cant find current sidebar in context");const n=y({sidebarItems:t.items,pathname:e,onlyCategories:!0}).slice(-1)[0];if(!n)throw new Error(`${e} is not associated with a category. useCurrentSidebarCategory() should only be used on category index pages.`);return n}const g=(e,t)=>void 0!==e&&(0,u.Mg)(e,t);function v(e,t){return"link"===e.type?g(e.href,t):"category"===e.type&&(g(e.href,t)||((e,t)=>e.some((e=>v(e,t))))(e.items,t))}function y(e){let{sidebarItems:t,pathname:n,onlyCategories:r=!1}=e;const a=[];return function e(t){for(const i of t)if("category"===i.type&&((0,u.Mg)(i.href,n)||e(i.items))||"link"===i.type&&(0,u.Mg)(i.href,n)){return r&&"category"!==i.type||a.unshift(i),!0}return!1}(t),a}function k(){const e=(0,l.V)(),{pathname:t}=(0,a.TH)(),n=(0,o.gA)()?.pluginData.breadcrumbs;return!1!==n&&e?y({sidebarItems:e.items,pathname:t}):null}function S(e){const{activeVersion:t}=(0,o.Iw)(e),{preferredVersion:n}=(0,s.J)(e),a=(0,o.yW)(e);return(0,r.useMemo)((()=>(0,d.j)([t,n,a].filter(Boolean))),[t,n,a])}function w(e,t){const n=S(t);return(0,r.useMemo)((()=>{const t=n.flatMap((e=>e.sidebars?Object.entries(e.sidebars):[])),r=t.find((t=>t[0]===e));if(!r)throw new Error(`Can't find any sidebar with id "${e}" in version${n.length>1?"s":""} ${n.map((e=>e.name)).join(", ")}".\n Available sidebar ids are:\n - ${Object.keys(t).join("\n- ")}`);return r[1]}),[e,n])}function E(e,t){const n=S(t);return(0,r.useMemo)((()=>{const t=n.flatMap((e=>e.docs)),r=t.find((t=>t.id===e));if(!r){if(n.flatMap((e=>e.draftIds)).includes(e))return null;throw new Error(`DocNavbarItem: couldn't find any doc with id "${e}" in version${n.length>1?"s":""} ${n.map((e=>e.name)).join(", ")}".\nAvailable doc ids are:\n- ${(0,d.j)(t.map((e=>e.id))).join("\n- ")}`)}return r}),[e,n])}function x(e){let{route:t,versionMetadata:n}=e;const r=(0,a.TH)(),o=t.routes,s=o.find((e=>(0,a.LX)(r.pathname,e)));if(!s)return null;const c=s.sidebar,l=c?n.docsSidebars[c]:void 0;return{docElement:(0,i.H)(o),sidebarName:c,sidebarItems:l}}function C(e){return e.filter((e=>"category"!==e.type||!!h(e)))}},42489:(e,t,n)=>{"use strict";function r(e){return"title"in e[0]}n.d(t,{a:()=>r})},82128:(e,t,n)=>{"use strict";n.d(t,{p:()=>a});var r=n(52263);function a(e){const{siteConfig:t}=(0,r.Z)(),{title:n,titleDelimiter:a}=t;return e?.trim().length?`${e.trim()} ${a} ${n}`:n}},91980:(e,t,n)=>{"use strict";n.d(t,{R:()=>o});var r=n(67294),a=n(16550),i=n(902);function o(e){!function(e){const t=(0,a.k6)(),n=(0,i.zX)(e);(0,r.useEffect)((()=>t.block(((e,t)=>n(e,t)))),[t,n])}(((t,n)=>{if("POP"===n)return e(t,n)}))}},67392:(e,t,n)=>{"use strict";function r(e,t){return void 0===t&&(t=(e,t)=>e===t),e.filter(((n,r)=>e.findIndex((e=>t(e,n)))!==r))}function a(e){return Array.from(new Set(e))}n.d(t,{j:()=>a,l:()=>r})},10833:(e,t,n)=>{"use strict";n.d(t,{FG:()=>f,d:()=>d,VC:()=>p});var r=n(67294),a=n(86010),i=n(35742),o=n(30226);function s(){const e=r.useContext(o._);if(!e)throw new Error("Unexpected: no Docusaurus route context found");return e}var c=n(44996),l=n(82128);function d(e){let{title:t,description:n,keywords:a,image:o,children:s}=e;const d=(0,l.p)(t),{withBaseUrl:u}=(0,c.C)(),f=o?u(o,{absolute:!0}):void 0;return r.createElement(i.Z,null,t&&r.createElement("title",null,d),t&&r.createElement("meta",{property:"og:title",content:d}),n&&r.createElement("meta",{name:"description",content:n}),n&&r.createElement("meta",{property:"og:description",content:n}),a&&r.createElement("meta",{name:"keywords",content:Array.isArray(a)?a.join(","):a}),f&&r.createElement("meta",{property:"og:image",content:f}),f&&r.createElement("meta",{name:"twitter:image",content:f}),s)}const u=r.createContext(void 0);function f(e){let{className:t,children:n}=e;const o=r.useContext(u),s=(0,a.Z)(o,t);return r.createElement(u.Provider,{value:s},r.createElement(i.Z,null,r.createElement("html",{className:s})),n)}function p(e){let{children:t}=e;const n=s(),i=`plugin-${n.plugin.name.replace(/docusaurus-(?:plugin|theme)-(?:content-)?/gi,"")}`;const o=`plugin-id-${n.plugin.id}`;return r.createElement(f,{className:(0,a.Z)(i,o)},t)}},58978:(e,t,n)=>{"use strict";n.d(t,{A:()=>s,V:()=>c});var r=n(67294),a=n(93163),i=n(13102),o=n(76857);function s(e){function t(e){return"left"===(e.position??"right")}return[e.filter(t),e.filter((e=>!t(e)))]}function c(e){let{children:t}=e;return r.createElement(i.n2,null,r.createElement(a.M,null,r.createElement(o.P,null,t)))}},902:(e,t,n)=>{"use strict";n.d(t,{D9:()=>o,LI:()=>a,Qc:()=>l,Ql:()=>c,i6:()=>s,zX:()=>i});var r=n(67294);const a=n(10412).Z.canUseDOM?r.useLayoutEffect:r.useEffect;function i(e){const t=(0,r.useRef)(e);return a((()=>{t.current=e}),[e]),(0,r.useCallback)((function(){return t.current(...arguments)}),[])}function o(e){const t=(0,r.useRef)();return a((()=>{t.current=e})),t.current}class s extends Error{constructor(e,t){super(),this.name="ReactContextError",this.message=`Hook ${this.stack?.split("\n")[1]?.match(/at (?:\w+\.)?(?\w+)/)?.groups.name??""} is called outside the <${e}>. ${t??""}`}}function c(e){const t=Object.entries(e);return t.sort(((e,t)=>e[0].localeCompare(t[0]))),(0,r.useMemo)((()=>e),t.flat())}function l(e){return t=>{let{children:n}=t;return r.createElement(r.Fragment,null,e.reduceRight(((e,t)=>r.createElement(t,null,e)),n))}}},98022:(e,t,n)=>{"use strict";function r(e,t){return void 0!==e&&void 0!==t&&new RegExp(e,"gi").test(t)}n.d(t,{F:()=>r})},48596:(e,t,n)=>{"use strict";n.d(t,{Mg:()=>o,Ns:()=>s});var r=n(67294),a=n(723),i=n(52263);function o(e,t){const n=e=>(!e||e.endsWith("/")?e:`${e}/`)?.toLowerCase();return n(e)===n(t)}function s(){const{baseUrl:e}=(0,i.Z)().siteConfig;return(0,r.useMemo)((()=>function(e){let{baseUrl:t,routes:n}=e;function r(e){return e.path===t&&!0===e.exact}function a(e){return e.path===t&&!e.exact}return function e(t){if(0===t.length)return;return t.find(r)||e(t.filter(a).flatMap((e=>e.routes??[])))}(n)}({routes:a.Z,baseUrl:e})),[e])}},12466:(e,t,n)=>{"use strict";n.d(t,{Ct:()=>p,OC:()=>c,RF:()=>u,o5:()=>f,sG:()=>l});var r=n(67294),a=n(10412),i=n(72389),o=n(902);const s=r.createContext(void 0);function c(e){let{children:t}=e;const n=function(){const e=(0,r.useRef)(!0);return(0,r.useMemo)((()=>({scrollEventsEnabledRef:e,enableScrollEvents:()=>{e.current=!0},disableScrollEvents:()=>{e.current=!1}})),[])}();return r.createElement(s.Provider,{value:n},t)}function l(){const e=(0,r.useContext)(s);if(null==e)throw new o.i6("ScrollControllerProvider");return e}const d=()=>a.Z.canUseDOM?{scrollX:window.pageXOffset,scrollY:window.pageYOffset}:null;function u(e,t){void 0===t&&(t=[]);const{scrollEventsEnabledRef:n}=l(),a=(0,r.useRef)(d()),i=(0,o.zX)(e);(0,r.useEffect)((()=>{const e=()=>{if(!n.current)return;const e=d();i(e,a.current),a.current=e},t={passive:!0};return e(),window.addEventListener("scroll",e,t),()=>window.removeEventListener("scroll",e,t)}),[i,n,...t])}function f(){const e=l(),t=function(){const e=(0,r.useRef)({elem:null,top:0}),t=(0,r.useCallback)((t=>{e.current={elem:t,top:t.getBoundingClientRect().top}}),[]),n=(0,r.useCallback)((()=>{const{current:{elem:t,top:n}}=e;if(!t)return{restored:!1};const r=t.getBoundingClientRect().top-n;return r&&window.scrollBy({left:0,top:r}),e.current={elem:null,top:0},{restored:0!==r}}),[]);return(0,r.useMemo)((()=>({save:t,restore:n})),[n,t])}(),n=(0,r.useRef)(void 0),a=(0,r.useCallback)((r=>{t.save(r),e.disableScrollEvents(),n.current=()=>{const{restored:r}=t.restore();if(n.current=void 0,r){const t=()=>{e.enableScrollEvents(),window.removeEventListener("scroll",t)};window.addEventListener("scroll",t)}else e.enableScrollEvents()}}),[e,t]);return(0,r.useLayoutEffect)((()=>{n.current?.()})),{blockElementScrollPositionUntilNextRender:a}}function p(){const e=(0,r.useRef)(null),t=(0,i.Z)()&&"smooth"===getComputedStyle(document.documentElement).scrollBehavior;return{startScroll:n=>{e.current=t?function(e){return window.scrollTo({top:e,behavior:"smooth"}),()=>{}}(n):function(e){let t=null;const n=document.documentElement.scrollTop>e;return function r(){const a=document.documentElement.scrollTop;(n&&a>e||!n&&at&&cancelAnimationFrame(t)}(n)},cancelScroll:()=>e.current?.()}}},43320:(e,t,n)=>{"use strict";n.d(t,{HX:()=>o,_q:()=>c,os:()=>s});var r=n(80143),a=n(52263),i=n(60373);const o="default";function s(e,t){return`docs-${e}-${t}`}function c(){const{i18n:e}=(0,a.Z)(),t=(0,r._r)(),n=(0,r.WS)(),c=(0,i.Oh)();const l=[o,...Object.keys(t).map((function(e){const r=n?.activePlugin.pluginId===e?n.activeVersion:void 0,a=c[e],i=t[e].versions.find((e=>e.isLast));return s(e,(r??a??i).name)}))];return{locale:e.currentLocale,tags:l}}},55225:(e,t,n)=>{"use strict";n.d(t,{l:()=>f,u:()=>c});var r=n(87462),a=n(67294),i=n(16550),o=n(95999),s=n(85936);const c="docusaurus_skipToContent_fallback";function l(e){e.setAttribute("tabindex","-1"),e.focus(),e.removeAttribute("tabindex")}function d(){const e=(0,a.useRef)(null),{action:t}=(0,i.k6)(),n=(0,a.useCallback)((e=>{e.preventDefault();const t=document.querySelector("main:first-of-type")??document.getElementById(c);t&&l(t)}),[]);return(0,s.S)((n=>{let{location:r}=n;e.current&&!r.hash&&"PUSH"===t&&l(e.current)})),{containerRef:e,onClick:n}}const u=(0,o.I)({id:"theme.common.skipToMainContent",description:"The skip to content label used for accessibility, allowing to rapidly navigate to main content with keyboard tab/enter navigation",message:"Skip to main content"});function f(e){const t=e.children??u,{containerRef:n,onClick:i}=d();return a.createElement("div",{ref:n,role:"region","aria-label":u},a.createElement("a",(0,r.Z)({},e,{href:`#${c}`,onClick:i}),t))}},50012:(e,t,n)=>{"use strict";n.d(t,{W:()=>s,_:()=>c});const r="localStorage";function a(e){if(void 0===e&&(e=r),"undefined"==typeof window)throw new Error("Browser storage is not available on Node.js/Docusaurus SSR process.");if("none"===e)return null;try{return window[e]}catch(n){return t=n,i||(console.warn("Docusaurus browser storage is not available.\nPossible reasons: running Docusaurus in an iframe, in an incognito browser session, or using too strict browser privacy settings.",t),i=!0),null}var t}let i=!1;const o={get:()=>null,set:()=>{},del:()=>{}};function s(e,t){if("undefined"==typeof window)return function(e){function t(){throw new Error(`Illegal storage API usage for storage key "${e}".\nDocusaurus storage APIs are not supposed to be called on the server-rendering process.\nPlease only call storage APIs in effects and event handlers.`)}return{get:t,set:t,del:t}}(e);const n=a(t?.persistence);return null===n?o:{get:()=>{try{return n.getItem(e)}catch(t){return console.error(`Docusaurus storage error, can't get key=${e}`,t),null}},set:t=>{try{n.setItem(e,t)}catch(r){console.error(`Docusaurus storage error, can't set ${e}=${t}`,r)}},del:()=>{try{n.removeItem(e)}catch(t){console.error(`Docusaurus storage error, can't delete key=${e}`,t)}}}}function c(e){void 0===e&&(e=r);const t=a(e);if(!t)return[];const n=[];for(let r=0;r{"use strict";n.d(t,{l:()=>i});var r=n(52263),a=n(16550);function i(){const{siteConfig:{baseUrl:e,url:t},i18n:{defaultLocale:n,currentLocale:i}}=(0,r.Z)(),{pathname:o}=(0,a.TH)(),s=i===n?e:e.replace(`/${i}/`,"/"),c=o.replace(e,"");return{createUrl:function(e){let{locale:r,fullyQualified:a}=e;return`${a?t:""}${function(e){return e===n?`${s}`:`${s}${e}/`}(r)}${c}`}}}},51753:(e,t,n)=>{"use strict";n.d(t,{b:()=>i});var r=n(16550),a=n(52263);function i(){const{siteConfig:{baseUrl:e}}=(0,a.Z)(),{pathname:t}=(0,r.TH)();return t.replace(e,"/")}},85936:(e,t,n)=>{"use strict";n.d(t,{S:()=>o});var r=n(67294),a=n(16550),i=n(902);function o(e){const t=(0,a.TH)(),n=(0,i.D9)(t),o=(0,i.zX)(e);(0,r.useEffect)((()=>{n&&t!==n&&o({location:t,previousLocation:n})}),[o,t,n])}},86668:(e,t,n)=>{"use strict";n.d(t,{L:()=>a});var r=n(52263);function a(){return(0,r.Z)().siteConfig.themeConfig}},8802:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t){const{trailingSlash:n,baseUrl:r}=t;if(e.startsWith("#"))return e;if(void 0===n)return e;const[a]=e.split(/[#?]/),i="/"===a||a===r?a:(o=a,n?function(e){return e.endsWith("/")?e:`${e}/`}(o):function(e){return e.endsWith("/")?e.slice(0,-1):e}(o));var o;return e.replace(a,i)}},18780:function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.applyTrailingSlash=t.blogPostContainerID=void 0,t.blogPostContainerID="post-content";var a=n(8802);Object.defineProperty(t,"applyTrailingSlash",{enumerable:!0,get:function(){return r(a).default}})},19548:(e,t,n)=>{"use strict";n.d(t,{Z:()=>i});var r=n(67294);const a="iconExternalLink_2l9O";function i(e){let{width:t=13.5,height:n=13.5}=e;return r.createElement("svg",{stroke:"currentColor",fill:"currentColor",strokeWidth:"0","aria-hidden":"true",viewBox:"0 0 15 15",height:n,width:t,xmlns:"http://www.w3.org/2000/svg",className:a},r.createElement("path",{fillRule:"evenodd",d:"M14 2.5a.5.5 0 0 0-.5-.5h-6a.5.5 0 0 0 0 1h4.793L2.146 13.146a.5.5 0 0 0 .708.708L13 3.707V8.5a.5.5 0 0 0 1 0v-6z"}))}},86010:(e,t,n)=>{"use strict";function r(e){var t,n,a="";if("string"==typeof e||"number"==typeof e)a+=e;else if("object"==typeof e)if(Array.isArray(e))for(t=0;ta});const a=function(){for(var e,t,n=0,a="";n{"use strict";n.d(t,{lX:()=>k,q_:()=>_,ob:()=>p,PP:()=>T,Ep:()=>f});var r=n(87462);function a(e){return"/"===e.charAt(0)}function i(e,t){for(var n=t,r=n+1,a=e.length;r=0;f--){var p=o[f];"."===p?i(o,f):".."===p?(i(o,f),u++):u&&(i(o,f),u--)}if(!l)for(;u--;u)o.unshift("..");!l||""===o[0]||o[0]&&a(o[0])||o.unshift("");var m=o.join("/");return n&&"/"!==m.substr(-1)&&(m+="/"),m};var s=n(38776);function c(e){return"/"===e.charAt(0)?e:"/"+e}function l(e){return"/"===e.charAt(0)?e.substr(1):e}function d(e,t){return function(e,t){return 0===e.toLowerCase().indexOf(t.toLowerCase())&&-1!=="/?#".indexOf(e.charAt(t.length))}(e,t)?e.substr(t.length):e}function u(e){return"/"===e.charAt(e.length-1)?e.slice(0,-1):e}function f(e){var t=e.pathname,n=e.search,r=e.hash,a=t||"/";return n&&"?"!==n&&(a+="?"===n.charAt(0)?n:"?"+n),r&&"#"!==r&&(a+="#"===r.charAt(0)?r:"#"+r),a}function p(e,t,n,a){var i;"string"==typeof e?(i=function(e){var t=e||"/",n="",r="",a=t.indexOf("#");-1!==a&&(r=t.substr(a),t=t.substr(0,a));var i=t.indexOf("?");return-1!==i&&(n=t.substr(i),t=t.substr(0,i)),{pathname:t,search:"?"===n?"":n,hash:"#"===r?"":r}}(e),i.state=t):(void 0===(i=(0,r.Z)({},e)).pathname&&(i.pathname=""),i.search?"?"!==i.search.charAt(0)&&(i.search="?"+i.search):i.search="",i.hash?"#"!==i.hash.charAt(0)&&(i.hash="#"+i.hash):i.hash="",void 0!==t&&void 0===i.state&&(i.state=t));try{i.pathname=decodeURI(i.pathname)}catch(s){throw s instanceof URIError?new URIError('Pathname "'+i.pathname+'" could not be decoded. This is likely caused by an invalid percent-encoding.'):s}return n&&(i.key=n),a?i.pathname?"/"!==i.pathname.charAt(0)&&(i.pathname=o(i.pathname,a.pathname)):i.pathname=a.pathname:i.pathname||(i.pathname="/"),i}function m(){var e=null;var t=[];return{setPrompt:function(t){return e=t,function(){e===t&&(e=null)}},confirmTransitionTo:function(t,n,r,a){if(null!=e){var i="function"==typeof e?e(t,n):e;"string"==typeof i?"function"==typeof r?r(i,a):a(!0):a(!1!==i)}else a(!0)},appendListener:function(e){var n=!0;function r(){n&&e.apply(void 0,arguments)}return t.push(r),function(){n=!1,t=t.filter((function(e){return e!==r}))}},notifyListeners:function(){for(var e=arguments.length,n=new Array(e),r=0;rt?n.splice(t,n.length-t,a):n.push(a),u({action:r,location:a,index:t,entries:n})}}))},replace:function(e,t){var r="REPLACE",a=p(e,t,h(),k.location);d.confirmTransitionTo(a,r,n,(function(e){e&&(k.entries[k.index]=a,u({action:r,location:a}))}))},go:y,goBack:function(){y(-1)},goForward:function(){y(1)},canGo:function(e){var t=k.index+e;return t>=0&&t{"use strict";var r=n(59864),a={childContextTypes:!0,contextType:!0,contextTypes:!0,defaultProps:!0,displayName:!0,getDefaultProps:!0,getDerivedStateFromError:!0,getDerivedStateFromProps:!0,mixins:!0,propTypes:!0,type:!0},i={name:!0,length:!0,prototype:!0,caller:!0,callee:!0,arguments:!0,arity:!0},o={$$typeof:!0,compare:!0,defaultProps:!0,displayName:!0,propTypes:!0,type:!0},s={};function c(e){return r.isMemo(e)?o:s[e.$$typeof]||a}s[r.ForwardRef]={$$typeof:!0,render:!0,defaultProps:!0,displayName:!0,propTypes:!0},s[r.Memo]=o;var l=Object.defineProperty,d=Object.getOwnPropertyNames,u=Object.getOwnPropertySymbols,f=Object.getOwnPropertyDescriptor,p=Object.getPrototypeOf,m=Object.prototype;e.exports=function e(t,n,r){if("string"!=typeof n){if(m){var a=p(n);a&&a!==m&&e(t,a,r)}var o=d(n);u&&(o=o.concat(u(n)));for(var s=c(t),h=c(n),b=0;b{"use strict";e.exports=function(e,t,n,r,a,i,o,s){if(!e){var c;if(void 0===t)c=new Error("Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.");else{var l=[n,r,a,i,o,s],d=0;(c=new Error(t.replace(/%s/g,(function(){return l[d++]})))).name="Invariant Violation"}throw c.framesToPop=1,c}}},5826:e=>{e.exports=Array.isArray||function(e){return"[object Array]"==Object.prototype.toString.call(e)}},56748:(e,t,n)=>{"use strict";n.r(t)},32497:(e,t,n)=>{"use strict";n.r(t)},87406:(e,t,n)=>{"use strict";n.r(t)},52295:(e,t,n)=>{"use strict";n.r(t)},86199:(e,t,n)=>{"use strict";n.r(t)},79362:(e,t,n)=>{"use strict";n.r(t)},93524:(e,t,n)=>{"use strict";n.r(t)},74865:function(e,t,n){var r,a;r=function(){var e,t,n={version:"0.2.0"},r=n.settings={minimum:.08,easing:"ease",positionUsing:"",speed:200,trickle:!0,trickleRate:.02,trickleSpeed:800,showSpinner:!0,barSelector:'[role="bar"]',spinnerSelector:'[role="spinner"]',parent:"body",template:'
'};function a(e,t,n){return en?n:e}function i(e){return 100*(-1+e)}function o(e,t,n){var a;return(a="translate3d"===r.positionUsing?{transform:"translate3d("+i(e)+"%,0,0)"}:"translate"===r.positionUsing?{transform:"translate("+i(e)+"%,0)"}:{"margin-left":i(e)+"%"}).transition="all "+t+"ms "+n,a}n.configure=function(e){var t,n;for(t in e)void 0!==(n=e[t])&&e.hasOwnProperty(t)&&(r[t]=n);return this},n.status=null,n.set=function(e){var t=n.isStarted();e=a(e,r.minimum,1),n.status=1===e?null:e;var i=n.render(!t),l=i.querySelector(r.barSelector),d=r.speed,u=r.easing;return i.offsetWidth,s((function(t){""===r.positionUsing&&(r.positionUsing=n.getPositioningCSS()),c(l,o(e,d,u)),1===e?(c(i,{transition:"none",opacity:1}),i.offsetWidth,setTimeout((function(){c(i,{transition:"all "+d+"ms linear",opacity:0}),setTimeout((function(){n.remove(),t()}),d)}),d)):setTimeout(t,d)})),this},n.isStarted=function(){return"number"==typeof n.status},n.start=function(){n.status||n.set(0);var e=function(){setTimeout((function(){n.status&&(n.trickle(),e())}),r.trickleSpeed)};return r.trickle&&e(),this},n.done=function(e){return e||n.status?n.inc(.3+.5*Math.random()).set(1):this},n.inc=function(e){var t=n.status;return t?("number"!=typeof e&&(e=(1-t)*a(Math.random()*t,.1,.95)),t=a(t+e,0,.994),n.set(t)):n.start()},n.trickle=function(){return n.inc(Math.random()*r.trickleRate)},e=0,t=0,n.promise=function(r){return r&&"resolved"!==r.state()?(0===t&&n.start(),e++,t++,r.always((function(){0==--t?(e=0,n.done()):n.set((e-t)/e)})),this):this},n.render=function(e){if(n.isRendered())return document.getElementById("nprogress");d(document.documentElement,"nprogress-busy");var t=document.createElement("div");t.id="nprogress",t.innerHTML=r.template;var a,o=t.querySelector(r.barSelector),s=e?"-100":i(n.status||0),l=document.querySelector(r.parent);return c(o,{transition:"all 0 linear",transform:"translate3d("+s+"%,0,0)"}),r.showSpinner||(a=t.querySelector(r.spinnerSelector))&&p(a),l!=document.body&&d(l,"nprogress-custom-parent"),l.appendChild(t),t},n.remove=function(){u(document.documentElement,"nprogress-busy"),u(document.querySelector(r.parent),"nprogress-custom-parent");var e=document.getElementById("nprogress");e&&p(e)},n.isRendered=function(){return!!document.getElementById("nprogress")},n.getPositioningCSS=function(){var e=document.body.style,t="WebkitTransform"in e?"Webkit":"MozTransform"in e?"Moz":"msTransform"in e?"ms":"OTransform"in e?"O":"";return t+"Perspective"in e?"translate3d":t+"Transform"in e?"translate":"margin"};var s=function(){var e=[];function t(){var n=e.shift();n&&n(t)}return function(n){e.push(n),1==e.length&&t()}}(),c=function(){var e=["Webkit","O","Moz","ms"],t={};function n(e){return e.replace(/^-ms-/,"ms-").replace(/-([\da-z])/gi,(function(e,t){return t.toUpperCase()}))}function r(t){var n=document.body.style;if(t in n)return t;for(var r,a=e.length,i=t.charAt(0).toUpperCase()+t.slice(1);a--;)if((r=e[a]+i)in n)return r;return t}function a(e){return e=n(e),t[e]||(t[e]=r(e))}function i(e,t,n){t=a(t),e.style[t]=n}return function(e,t){var n,r,a=arguments;if(2==a.length)for(n in t)void 0!==(r=t[n])&&t.hasOwnProperty(n)&&i(e,n,r);else i(e,a[1],a[2])}}();function l(e,t){return("string"==typeof e?e:f(e)).indexOf(" "+t+" ")>=0}function d(e,t){var n=f(e),r=n+t;l(n,t)||(e.className=r.substring(1))}function u(e,t){var n,r=f(e);l(e,t)&&(n=r.replace(" "+t+" "," "),e.className=n.substring(1,n.length-1))}function f(e){return(" "+(e.className||"")+" ").replace(/\s+/gi," ")}function p(e){e&&e.parentNode&&e.parentNode.removeChild(e)}return n},void 0===(a="function"==typeof r?r.call(t,n,t,e):r)||(e.exports=a)},87410:(e,t,n)=>{"use strict";n.d(t,{Z:()=>i});var r=function(){var e=/(?:^|\s)lang(?:uage)?-([\w-]+)(?=\s|$)/i,t=0,n={},r={util:{encode:function e(t){return t instanceof a?new a(t.type,e(t.content),t.alias):Array.isArray(t)?t.map(e):t.replace(/&/g,"&").replace(/=u.reach);E+=w.value.length,w=w.next){var x=w.value;if(t.length>e.length)return;if(!(x instanceof a)){var C,_=1;if(v){if(!(C=i(S,E,e,g))||C.index>=e.length)break;var I=C.index,T=C.index+C[0].length,P=E;for(P+=w.value.length;I>=P;)P+=(w=w.next).value.length;if(E=P-=w.value.length,w.value instanceof a)continue;for(var A=w;A!==t.tail&&(Pu.reach&&(u.reach=N);var M=w.prev;if(L&&(M=c(t,M,L),E+=L.length),l(t,M,_),w=c(t,M,new a(f,b?r.tokenize(R,b):R,y,R)),O&&c(t,w,O),_>1){var D={cause:f+","+m,reach:N};o(e,t,n,w.prev,E,D),u&&D.reach>u.reach&&(u.reach=D.reach)}}}}}}function s(){var e={value:null,prev:null,next:null},t={value:null,prev:e,next:null};e.next=t,this.head=e,this.tail=t,this.length=0}function c(e,t,n){var r=t.next,a={value:n,prev:t,next:r};return t.next=a,r.prev=a,e.length++,a}function l(e,t,n){for(var r=t.next,a=0;a"+i.content+""},r}(),a=r;r.default=r,a.languages.markup={comment:{pattern://,greedy:!0},prolog:{pattern:/<\?[\s\S]+?\?>/,greedy:!0},doctype:{pattern:/"'[\]]|"[^"]*"|'[^']*')+(?:\[(?:[^<"'\]]|"[^"]*"|'[^']*'|<(?!!--)|)*\]\s*)?>/i,greedy:!0,inside:{"internal-subset":{pattern:/(^[^\[]*\[)[\s\S]+(?=\]>$)/,lookbehind:!0,greedy:!0,inside:null},string:{pattern:/"[^"]*"|'[^']*'/,greedy:!0},punctuation:/^$|[[\]]/,"doctype-tag":/^DOCTYPE/i,name:/[^\s<>'"]+/}},cdata:{pattern://i,greedy:!0},tag:{pattern:/<\/?(?!\d)[^\s>\/=$<%]+(?:\s(?:\s*[^\s>\/=]+(?:\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))|(?=[\s/>])))+)?\s*\/?>/,greedy:!0,inside:{tag:{pattern:/^<\/?[^\s>\/]+/,inside:{punctuation:/^<\/?/,namespace:/^[^\s>\/:]+:/}},"special-attr":[],"attr-value":{pattern:/=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+)/,inside:{punctuation:[{pattern:/^=/,alias:"attr-equals"},/"|'/]}},punctuation:/\/?>/,"attr-name":{pattern:/[^\s>\/]+/,inside:{namespace:/^[^\s>\/:]+:/}}}},entity:[{pattern:/&[\da-z]{1,8};/i,alias:"named-entity"},/&#x?[\da-f]{1,8};/i]},a.languages.markup.tag.inside["attr-value"].inside.entity=a.languages.markup.entity,a.languages.markup.doctype.inside["internal-subset"].inside=a.languages.markup,a.hooks.add("wrap",(function(e){"entity"===e.type&&(e.attributes.title=e.content.replace(/&/,"&"))})),Object.defineProperty(a.languages.markup.tag,"addInlined",{value:function(e,t){var n={};n["language-"+t]={pattern:/(^$)/i,lookbehind:!0,inside:a.languages[t]},n.cdata=/^$/i;var r={"included-cdata":{pattern://i,inside:n}};r["language-"+t]={pattern:/[\s\S]+/,inside:a.languages[t]};var i={};i[e]={pattern:RegExp(/(<__[^>]*>)(?:))*\]\]>|(?!)/.source.replace(/__/g,(function(){return e})),"i"),lookbehind:!0,greedy:!0,inside:r},a.languages.insertBefore("markup","cdata",i)}}),Object.defineProperty(a.languages.markup.tag,"addAttribute",{value:function(e,t){a.languages.markup.tag.inside["special-attr"].push({pattern:RegExp(/(^|["'\s])/.source+"(?:"+e+")"+/\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))/.source,"i"),lookbehind:!0,inside:{"attr-name":/^[^\s=]+/,"attr-value":{pattern:/=[\s\S]+/,inside:{value:{pattern:/(^=\s*(["']|(?!["'])))\S[\s\S]*(?=\2$)/,lookbehind:!0,alias:[t,"language-"+t],inside:a.languages[t]},punctuation:[{pattern:/^=/,alias:"attr-equals"},/"|'/]}}}})}}),a.languages.html=a.languages.markup,a.languages.mathml=a.languages.markup,a.languages.svg=a.languages.markup,a.languages.xml=a.languages.extend("markup",{}),a.languages.ssml=a.languages.xml,a.languages.atom=a.languages.xml,a.languages.rss=a.languages.xml,function(e){var t="\\b(?:BASH|BASHOPTS|BASH_ALIASES|BASH_ARGC|BASH_ARGV|BASH_CMDS|BASH_COMPLETION_COMPAT_DIR|BASH_LINENO|BASH_REMATCH|BASH_SOURCE|BASH_VERSINFO|BASH_VERSION|COLORTERM|COLUMNS|COMP_WORDBREAKS|DBUS_SESSION_BUS_ADDRESS|DEFAULTS_PATH|DESKTOP_SESSION|DIRSTACK|DISPLAY|EUID|GDMSESSION|GDM_LANG|GNOME_KEYRING_CONTROL|GNOME_KEYRING_PID|GPG_AGENT_INFO|GROUPS|HISTCONTROL|HISTFILE|HISTFILESIZE|HISTSIZE|HOME|HOSTNAME|HOSTTYPE|IFS|INSTANCE|JOB|LANG|LANGUAGE|LC_ADDRESS|LC_ALL|LC_IDENTIFICATION|LC_MEASUREMENT|LC_MONETARY|LC_NAME|LC_NUMERIC|LC_PAPER|LC_TELEPHONE|LC_TIME|LESSCLOSE|LESSOPEN|LINES|LOGNAME|LS_COLORS|MACHTYPE|MAILCHECK|MANDATORY_PATH|NO_AT_BRIDGE|OLDPWD|OPTERR|OPTIND|ORBIT_SOCKETDIR|OSTYPE|PAPERSIZE|PATH|PIPESTATUS|PPID|PS1|PS2|PS3|PS4|PWD|RANDOM|REPLY|SECONDS|SELINUX_INIT|SESSION|SESSIONTYPE|SESSION_MANAGER|SHELL|SHELLOPTS|SHLVL|SSH_AUTH_SOCK|TERM|UID|UPSTART_EVENTS|UPSTART_INSTANCE|UPSTART_JOB|UPSTART_SESSION|USER|WINDOWID|XAUTHORITY|XDG_CONFIG_DIRS|XDG_CURRENT_DESKTOP|XDG_DATA_DIRS|XDG_GREETER_DATA_DIR|XDG_MENU_PREFIX|XDG_RUNTIME_DIR|XDG_SEAT|XDG_SEAT_PATH|XDG_SESSION_DESKTOP|XDG_SESSION_ID|XDG_SESSION_PATH|XDG_SESSION_TYPE|XDG_VTNR|XMODIFIERS)\\b",n={pattern:/(^(["']?)\w+\2)[ \t]+\S.*/,lookbehind:!0,alias:"punctuation",inside:null},r={bash:n,environment:{pattern:RegExp("\\$"+t),alias:"constant"},variable:[{pattern:/\$?\(\([\s\S]+?\)\)/,greedy:!0,inside:{variable:[{pattern:/(^\$\(\([\s\S]+)\)\)/,lookbehind:!0},/^\$\(\(/],number:/\b0x[\dA-Fa-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:[Ee]-?\d+)?/,operator:/--|\+\+|\*\*=?|<<=?|>>=?|&&|\|\||[=!+\-*/%<>^&|]=?|[?~:]/,punctuation:/\(\(?|\)\)?|,|;/}},{pattern:/\$\((?:\([^)]+\)|[^()])+\)|`[^`]+`/,greedy:!0,inside:{variable:/^\$\(|^`|\)$|`$/}},{pattern:/\$\{[^}]+\}/,greedy:!0,inside:{operator:/:[-=?+]?|[!\/]|##?|%%?|\^\^?|,,?/,punctuation:/[\[\]]/,environment:{pattern:RegExp("(\\{)"+t),lookbehind:!0,alias:"constant"}}},/\$(?:\w+|[#?*!@$])/],entity:/\\(?:[abceEfnrtv\\"]|O?[0-7]{1,3}|U[0-9a-fA-F]{8}|u[0-9a-fA-F]{4}|x[0-9a-fA-F]{1,2})/};e.languages.bash={shebang:{pattern:/^#!\s*\/.*/,alias:"important"},comment:{pattern:/(^|[^"{\\$])#.*/,lookbehind:!0},"function-name":[{pattern:/(\bfunction\s+)[\w-]+(?=(?:\s*\(?:\s*\))?\s*\{)/,lookbehind:!0,alias:"function"},{pattern:/\b[\w-]+(?=\s*\(\s*\)\s*\{)/,alias:"function"}],"for-or-select":{pattern:/(\b(?:for|select)\s+)\w+(?=\s+in\s)/,alias:"variable",lookbehind:!0},"assign-left":{pattern:/(^|[\s;|&]|[<>]\()\w+(?=\+?=)/,inside:{environment:{pattern:RegExp("(^|[\\s;|&]|[<>]\\()"+t),lookbehind:!0,alias:"constant"}},alias:"variable",lookbehind:!0},string:[{pattern:/((?:^|[^<])<<-?\s*)(\w+)\s[\s\S]*?(?:\r?\n|\r)\2/,lookbehind:!0,greedy:!0,inside:r},{pattern:/((?:^|[^<])<<-?\s*)(["'])(\w+)\2\s[\s\S]*?(?:\r?\n|\r)\3/,lookbehind:!0,greedy:!0,inside:{bash:n}},{pattern:/(^|[^\\](?:\\\\)*)"(?:\\[\s\S]|\$\([^)]+\)|\$(?!\()|`[^`]+`|[^"\\`$])*"/,lookbehind:!0,greedy:!0,inside:r},{pattern:/(^|[^$\\])'[^']*'/,lookbehind:!0,greedy:!0},{pattern:/\$'(?:[^'\\]|\\[\s\S])*'/,greedy:!0,inside:{entity:r.entity}}],environment:{pattern:RegExp("\\$?"+t),alias:"constant"},variable:r.variable,function:{pattern:/(^|[\s;|&]|[<>]\()(?:add|apropos|apt|apt-cache|apt-get|aptitude|aspell|automysqlbackup|awk|basename|bash|bc|bconsole|bg|bzip2|cal|cat|cfdisk|chgrp|chkconfig|chmod|chown|chroot|cksum|clear|cmp|column|comm|composer|cp|cron|crontab|csplit|curl|cut|date|dc|dd|ddrescue|debootstrap|df|diff|diff3|dig|dir|dircolors|dirname|dirs|dmesg|docker|docker-compose|du|egrep|eject|env|ethtool|expand|expect|expr|fdformat|fdisk|fg|fgrep|file|find|fmt|fold|format|free|fsck|ftp|fuser|gawk|git|gparted|grep|groupadd|groupdel|groupmod|groups|grub-mkconfig|gzip|halt|head|hg|history|host|hostname|htop|iconv|id|ifconfig|ifdown|ifup|import|install|ip|jobs|join|kill|killall|less|link|ln|locate|logname|logrotate|look|lpc|lpr|lprint|lprintd|lprintq|lprm|ls|lsof|lynx|make|man|mc|mdadm|mkconfig|mkdir|mke2fs|mkfifo|mkfs|mkisofs|mknod|mkswap|mmv|more|most|mount|mtools|mtr|mutt|mv|nano|nc|netstat|nice|nl|node|nohup|notify-send|npm|nslookup|op|open|parted|passwd|paste|pathchk|ping|pkill|pnpm|podman|podman-compose|popd|pr|printcap|printenv|ps|pushd|pv|quota|quotacheck|quotactl|ram|rar|rcp|reboot|remsync|rename|renice|rev|rm|rmdir|rpm|rsync|scp|screen|sdiff|sed|sendmail|seq|service|sftp|sh|shellcheck|shuf|shutdown|sleep|slocate|sort|split|ssh|stat|strace|su|sudo|sum|suspend|swapon|sync|tac|tail|tar|tee|time|timeout|top|touch|tr|traceroute|tsort|tty|umount|uname|unexpand|uniq|units|unrar|unshar|unzip|update-grub|uptime|useradd|userdel|usermod|users|uudecode|uuencode|v|vcpkg|vdir|vi|vim|virsh|vmstat|wait|watch|wc|wget|whereis|which|who|whoami|write|xargs|xdg-open|yarn|yes|zenity|zip|zsh|zypper)(?=$|[)\s;|&])/,lookbehind:!0},keyword:{pattern:/(^|[\s;|&]|[<>]\()(?:case|do|done|elif|else|esac|fi|for|function|if|in|select|then|until|while)(?=$|[)\s;|&])/,lookbehind:!0},builtin:{pattern:/(^|[\s;|&]|[<>]\()(?:\.|:|alias|bind|break|builtin|caller|cd|command|continue|declare|echo|enable|eval|exec|exit|export|getopts|hash|help|let|local|logout|mapfile|printf|pwd|read|readarray|readonly|return|set|shift|shopt|source|test|times|trap|type|typeset|ulimit|umask|unalias|unset)(?=$|[)\s;|&])/,lookbehind:!0,alias:"class-name"},boolean:{pattern:/(^|[\s;|&]|[<>]\()(?:false|true)(?=$|[)\s;|&])/,lookbehind:!0},"file-descriptor":{pattern:/\B&\d\b/,alias:"important"},operator:{pattern:/\d?<>|>\||\+=|=[=~]?|!=?|<<[<-]?|[&\d]?>>|\d[<>]&?|[<>][&=]?|&[>&]?|\|[&|]?/,inside:{"file-descriptor":{pattern:/^\d/,alias:"important"}}},punctuation:/\$?\(\(?|\)\)?|\.\.|[{}[\];\\]/,number:{pattern:/(^|\s)(?:[1-9]\d*|0)(?:[.,]\d+)?\b/,lookbehind:!0}},n.inside=e.languages.bash;for(var a=["comment","function-name","for-or-select","assign-left","string","environment","function","keyword","builtin","boolean","file-descriptor","operator","punctuation","number"],i=r.variable[1].inside,o=0;o]=?|[!=]=?=?|--?|\+\+?|&&?|\|\|?|[?*/~^%]/,punctuation:/[{}[\];(),.:]/},a.languages.c=a.languages.extend("clike",{comment:{pattern:/\/\/(?:[^\r\n\\]|\\(?:\r\n?|\n|(?![\r\n])))*|\/\*[\s\S]*?(?:\*\/|$)/,greedy:!0},string:{pattern:/"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"/,greedy:!0},"class-name":{pattern:/(\b(?:enum|struct)\s+(?:__attribute__\s*\(\([\s\S]*?\)\)\s*)?)\w+|\b[a-z]\w*_t\b/,lookbehind:!0},keyword:/\b(?:_Alignas|_Alignof|_Atomic|_Bool|_Complex|_Generic|_Imaginary|_Noreturn|_Static_assert|_Thread_local|__attribute__|asm|auto|break|case|char|const|continue|default|do|double|else|enum|extern|float|for|goto|if|inline|int|long|register|return|short|signed|sizeof|static|struct|switch|typedef|typeof|union|unsigned|void|volatile|while)\b/,function:/\b[a-z_]\w*(?=\s*\()/i,number:/(?:\b0x(?:[\da-f]+(?:\.[\da-f]*)?|\.[\da-f]+)(?:p[+-]?\d+)?|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?)[ful]{0,4}/i,operator:/>>=?|<<=?|->|([-+&|:])\1|[?:~]|[-+*/%&|^!=<>]=?/}),a.languages.insertBefore("c","string",{char:{pattern:/'(?:\\(?:\r\n|[\s\S])|[^'\\\r\n]){0,32}'/,greedy:!0}}),a.languages.insertBefore("c","string",{macro:{pattern:/(^[\t ]*)#\s*[a-z](?:[^\r\n\\/]|\/(?!\*)|\/\*(?:[^*]|\*(?!\/))*\*\/|\\(?:\r\n|[\s\S]))*/im,lookbehind:!0,greedy:!0,alias:"property",inside:{string:[{pattern:/^(#\s*include\s*)<[^>]+>/,lookbehind:!0},a.languages.c.string],char:a.languages.c.char,comment:a.languages.c.comment,"macro-name":[{pattern:/(^#\s*define\s+)\w+\b(?!\()/i,lookbehind:!0},{pattern:/(^#\s*define\s+)\w+\b(?=\()/i,lookbehind:!0,alias:"function"}],directive:{pattern:/^(#\s*)[a-z]+/,lookbehind:!0,alias:"keyword"},"directive-hash":/^#/,punctuation:/##|\\(?=[\r\n])/,expression:{pattern:/\S[\s\S]*/,inside:a.languages.c}}}}),a.languages.insertBefore("c","function",{constant:/\b(?:EOF|NULL|SEEK_CUR|SEEK_END|SEEK_SET|__DATE__|__FILE__|__LINE__|__TIMESTAMP__|__TIME__|__func__|stderr|stdin|stdout)\b/}),delete a.languages.c.boolean,function(e){var t=/\b(?:alignas|alignof|asm|auto|bool|break|case|catch|char|char16_t|char32_t|char8_t|class|co_await|co_return|co_yield|compl|concept|const|const_cast|consteval|constexpr|constinit|continue|decltype|default|delete|do|double|dynamic_cast|else|enum|explicit|export|extern|final|float|for|friend|goto|if|import|inline|int|int16_t|int32_t|int64_t|int8_t|long|module|mutable|namespace|new|noexcept|nullptr|operator|override|private|protected|public|register|reinterpret_cast|requires|return|short|signed|sizeof|static|static_assert|static_cast|struct|switch|template|this|thread_local|throw|try|typedef|typeid|typename|uint16_t|uint32_t|uint64_t|uint8_t|union|unsigned|using|virtual|void|volatile|wchar_t|while)\b/,n=/\b(?!)\w+(?:\s*\.\s*\w+)*\b/.source.replace(//g,(function(){return t.source}));e.languages.cpp=e.languages.extend("c",{"class-name":[{pattern:RegExp(/(\b(?:class|concept|enum|struct|typename)\s+)(?!)\w+/.source.replace(//g,(function(){return t.source}))),lookbehind:!0},/\b[A-Z]\w*(?=\s*::\s*\w+\s*\()/,/\b[A-Z_]\w*(?=\s*::\s*~\w+\s*\()/i,/\b\w+(?=\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>\s*::\s*\w+\s*\()/],keyword:t,number:{pattern:/(?:\b0b[01']+|\b0x(?:[\da-f']+(?:\.[\da-f']*)?|\.[\da-f']+)(?:p[+-]?[\d']+)?|(?:\b[\d']+(?:\.[\d']*)?|\B\.[\d']+)(?:e[+-]?[\d']+)?)[ful]{0,4}/i,greedy:!0},operator:/>>=?|<<=?|->|--|\+\+|&&|\|\||[?:~]|<=>|[-+*/%&|^!=<>]=?|\b(?:and|and_eq|bitand|bitor|not|not_eq|or|or_eq|xor|xor_eq)\b/,boolean:/\b(?:false|true)\b/}),e.languages.insertBefore("cpp","string",{module:{pattern:RegExp(/(\b(?:import|module)\s+)/.source+"(?:"+/"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"|<[^<>\r\n]*>/.source+"|"+/(?:\s*:\s*)?|:\s*/.source.replace(//g,(function(){return n}))+")"),lookbehind:!0,greedy:!0,inside:{string:/^[<"][\s\S]+/,operator:/:/,punctuation:/\./}},"raw-string":{pattern:/R"([^()\\ ]{0,16})\([\s\S]*?\)\1"/,alias:"string",greedy:!0}}),e.languages.insertBefore("cpp","keyword",{"generic-function":{pattern:/\b(?!operator\b)[a-z_]\w*\s*<(?:[^<>]|<[^<>]*>)*>(?=\s*\()/i,inside:{function:/^\w+/,generic:{pattern:/<[\s\S]+/,alias:"class-name",inside:e.languages.cpp}}}}),e.languages.insertBefore("cpp","operator",{"double-colon":{pattern:/::/,alias:"punctuation"}}),e.languages.insertBefore("cpp","class-name",{"base-clause":{pattern:/(\b(?:class|struct)\s+\w+\s*:\s*)[^;{}"'\s]+(?:\s+[^;{}"'\s]+)*(?=\s*[;{])/,lookbehind:!0,greedy:!0,inside:e.languages.extend("cpp",{})}}),e.languages.insertBefore("inside","double-colon",{"class-name":/\b[a-z_]\w*\b(?!\s*::)/i},e.languages.cpp["base-clause"])}(a),function(e){var t=/(?:"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"|'(?:\\(?:\r\n|[\s\S])|[^'\\\r\n])*')/;e.languages.css={comment:/\/\*[\s\S]*?\*\//,atrule:{pattern:/@[\w-](?:[^;{\s]|\s+(?![\s{]))*(?:;|(?=\s*\{))/,inside:{rule:/^@[\w-]+/,"selector-function-argument":{pattern:/(\bselector\s*\(\s*(?![\s)]))(?:[^()\s]|\s+(?![\s)])|\((?:[^()]|\([^()]*\))*\))+(?=\s*\))/,lookbehind:!0,alias:"selector"},keyword:{pattern:/(^|[^\w-])(?:and|not|only|or)(?![\w-])/,lookbehind:!0}}},url:{pattern:RegExp("\\burl\\((?:"+t.source+"|"+/(?:[^\\\r\n()"']|\\[\s\S])*/.source+")\\)","i"),greedy:!0,inside:{function:/^url/i,punctuation:/^\(|\)$/,string:{pattern:RegExp("^"+t.source+"$"),alias:"url"}}},selector:{pattern:RegExp("(^|[{}\\s])[^{}\\s](?:[^{};\"'\\s]|\\s+(?![\\s{])|"+t.source+")*(?=\\s*\\{)"),lookbehind:!0},string:{pattern:t,greedy:!0},property:{pattern:/(^|[^-\w\xA0-\uFFFF])(?!\s)[-_a-z\xA0-\uFFFF](?:(?!\s)[-\w\xA0-\uFFFF])*(?=\s*:)/i,lookbehind:!0},important:/!important\b/i,function:{pattern:/(^|[^-a-z0-9])[-a-z0-9]+(?=\()/i,lookbehind:!0},punctuation:/[(){};:,]/},e.languages.css.atrule.inside.rest=e.languages.css;var n=e.languages.markup;n&&(n.tag.addInlined("style","css"),n.tag.addAttribute("style","css"))}(a),function(e){var t,n=/("|')(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/;e.languages.css.selector={pattern:e.languages.css.selector.pattern,lookbehind:!0,inside:t={"pseudo-element":/:(?:after|before|first-letter|first-line|selection)|::[-\w]+/,"pseudo-class":/:[-\w]+/,class:/\.[-\w]+/,id:/#[-\w]+/,attribute:{pattern:RegExp("\\[(?:[^[\\]\"']|"+n.source+")*\\]"),greedy:!0,inside:{punctuation:/^\[|\]$/,"case-sensitivity":{pattern:/(\s)[si]$/i,lookbehind:!0,alias:"keyword"},namespace:{pattern:/^(\s*)(?:(?!\s)[-*\w\xA0-\uFFFF])*\|(?!=)/,lookbehind:!0,inside:{punctuation:/\|$/}},"attr-name":{pattern:/^(\s*)(?:(?!\s)[-\w\xA0-\uFFFF])+/,lookbehind:!0},"attr-value":[n,{pattern:/(=\s*)(?:(?!\s)[-\w\xA0-\uFFFF])+(?=\s*$)/,lookbehind:!0}],operator:/[|~*^$]?=/}},"n-th":[{pattern:/(\(\s*)[+-]?\d*[\dn](?:\s*[+-]\s*\d+)?(?=\s*\))/,lookbehind:!0,inside:{number:/[\dn]+/,operator:/[+-]/}},{pattern:/(\(\s*)(?:even|odd)(?=\s*\))/i,lookbehind:!0}],combinator:/>|\+|~|\|\|/,punctuation:/[(),]/}},e.languages.css.atrule.inside["selector-function-argument"].inside=t,e.languages.insertBefore("css","property",{variable:{pattern:/(^|[^-\w\xA0-\uFFFF])--(?!\s)[-_a-z\xA0-\uFFFF](?:(?!\s)[-\w\xA0-\uFFFF])*/i,lookbehind:!0}});var r={pattern:/(\b\d+)(?:%|[a-z]+(?![\w-]))/,lookbehind:!0},a={pattern:/(^|[^\w.-])-?(?:\d+(?:\.\d+)?|\.\d+)/,lookbehind:!0};e.languages.insertBefore("css","function",{operator:{pattern:/(\s)[+\-*\/](?=\s)/,lookbehind:!0},hexcode:{pattern:/\B#[\da-f]{3,8}\b/i,alias:"color"},color:[{pattern:/(^|[^\w-])(?:AliceBlue|AntiqueWhite|Aqua|Aquamarine|Azure|Beige|Bisque|Black|BlanchedAlmond|Blue|BlueViolet|Brown|BurlyWood|CadetBlue|Chartreuse|Chocolate|Coral|CornflowerBlue|Cornsilk|Crimson|Cyan|DarkBlue|DarkCyan|DarkGoldenRod|DarkGr[ae]y|DarkGreen|DarkKhaki|DarkMagenta|DarkOliveGreen|DarkOrange|DarkOrchid|DarkRed|DarkSalmon|DarkSeaGreen|DarkSlateBlue|DarkSlateGr[ae]y|DarkTurquoise|DarkViolet|DeepPink|DeepSkyBlue|DimGr[ae]y|DodgerBlue|FireBrick|FloralWhite|ForestGreen|Fuchsia|Gainsboro|GhostWhite|Gold|GoldenRod|Gr[ae]y|Green|GreenYellow|HoneyDew|HotPink|IndianRed|Indigo|Ivory|Khaki|Lavender|LavenderBlush|LawnGreen|LemonChiffon|LightBlue|LightCoral|LightCyan|LightGoldenRodYellow|LightGr[ae]y|LightGreen|LightPink|LightSalmon|LightSeaGreen|LightSkyBlue|LightSlateGr[ae]y|LightSteelBlue|LightYellow|Lime|LimeGreen|Linen|Magenta|Maroon|MediumAquaMarine|MediumBlue|MediumOrchid|MediumPurple|MediumSeaGreen|MediumSlateBlue|MediumSpringGreen|MediumTurquoise|MediumVioletRed|MidnightBlue|MintCream|MistyRose|Moccasin|NavajoWhite|Navy|OldLace|Olive|OliveDrab|Orange|OrangeRed|Orchid|PaleGoldenRod|PaleGreen|PaleTurquoise|PaleVioletRed|PapayaWhip|PeachPuff|Peru|Pink|Plum|PowderBlue|Purple|Red|RosyBrown|RoyalBlue|SaddleBrown|Salmon|SandyBrown|SeaGreen|SeaShell|Sienna|Silver|SkyBlue|SlateBlue|SlateGr[ae]y|Snow|SpringGreen|SteelBlue|Tan|Teal|Thistle|Tomato|Transparent|Turquoise|Violet|Wheat|White|WhiteSmoke|Yellow|YellowGreen)(?![\w-])/i,lookbehind:!0},{pattern:/\b(?:hsl|rgb)\(\s*\d{1,3}\s*,\s*\d{1,3}%?\s*,\s*\d{1,3}%?\s*\)\B|\b(?:hsl|rgb)a\(\s*\d{1,3}\s*,\s*\d{1,3}%?\s*,\s*\d{1,3}%?\s*,\s*(?:0|0?\.\d+|1)\s*\)\B/i,inside:{unit:r,number:a,function:/[\w-]+(?=\()/,punctuation:/[(),]/}}],entity:/\\[\da-f]{1,8}/i,unit:r,number:a})}(a),a.languages.javascript=a.languages.extend("clike",{"class-name":[a.languages.clike["class-name"],{pattern:/(^|[^$\w\xA0-\uFFFF])(?!\s)[_$A-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\.(?:constructor|prototype))/,lookbehind:!0}],keyword:[{pattern:/((?:^|\})\s*)catch\b/,lookbehind:!0},{pattern:/(^|[^.]|\.\.\.\s*)\b(?:as|assert(?=\s*\{)|async(?=\s*(?:function\b|\(|[$\w\xA0-\uFFFF]|$))|await|break|case|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally(?=\s*(?:\{|$))|for|from(?=\s*(?:['"]|$))|function|(?:get|set)(?=\s*(?:[#\[$\w\xA0-\uFFFF]|$))|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)\b/,lookbehind:!0}],function:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*(?:\.\s*(?:apply|bind|call)\s*)?\()/,number:{pattern:RegExp(/(^|[^\w$])/.source+"(?:"+/NaN|Infinity/.source+"|"+/0[bB][01]+(?:_[01]+)*n?/.source+"|"+/0[oO][0-7]+(?:_[0-7]+)*n?/.source+"|"+/0[xX][\dA-Fa-f]+(?:_[\dA-Fa-f]+)*n?/.source+"|"+/\d+(?:_\d+)*n/.source+"|"+/(?:\d+(?:_\d+)*(?:\.(?:\d+(?:_\d+)*)?)?|\.\d+(?:_\d+)*)(?:[Ee][+-]?\d+(?:_\d+)*)?/.source+")"+/(?![\w$])/.source),lookbehind:!0},operator:/--|\+\+|\*\*=?|=>|&&=?|\|\|=?|[!=]==|<<=?|>>>?=?|[-+*/%&|^!=<>]=?|\.{3}|\?\?=?|\?\.?|[~:]/}),a.languages.javascript["class-name"][0].pattern=/(\b(?:class|extends|implements|instanceof|interface|new)\s+)[\w.\\]+/,a.languages.insertBefore("javascript","keyword",{regex:{pattern:/((?:^|[^$\w\xA0-\uFFFF."'\])\s]|\b(?:return|yield))\s*)\/(?:\[(?:[^\]\\\r\n]|\\.)*\]|\\.|[^/\\\[\r\n])+\/[dgimyus]{0,7}(?=(?:\s|\/\*(?:[^*]|\*(?!\/))*\*\/)*(?:$|[\r\n,.;:})\]]|\/\/))/,lookbehind:!0,greedy:!0,inside:{"regex-source":{pattern:/^(\/)[\s\S]+(?=\/[a-z]*$)/,lookbehind:!0,alias:"language-regex",inside:a.languages.regex},"regex-delimiter":/^\/|\/$/,"regex-flags":/^[a-z]+$/}},"function-variable":{pattern:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*[=:]\s*(?:async\s*)?(?:\bfunction\b|(?:\((?:[^()]|\([^()]*\))*\)|(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)\s*=>))/,alias:"function"},parameter:[{pattern:/(function(?:\s+(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)?\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\))/,lookbehind:!0,inside:a.languages.javascript},{pattern:/(^|[^$\w\xA0-\uFFFF])(?!\s)[_$a-z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*=>)/i,lookbehind:!0,inside:a.languages.javascript},{pattern:/(\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*=>)/,lookbehind:!0,inside:a.languages.javascript},{pattern:/((?:\b|\s|^)(?!(?:as|async|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)(?![$\w\xA0-\uFFFF]))(?:(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*\s*)\(\s*|\]\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*\{)/,lookbehind:!0,inside:a.languages.javascript}],constant:/\b[A-Z](?:[A-Z_]|\dx?)*\b/}),a.languages.insertBefore("javascript","string",{hashbang:{pattern:/^#!.*/,greedy:!0,alias:"comment"},"template-string":{pattern:/`(?:\\[\s\S]|\$\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}|(?!\$\{)[^\\`])*`/,greedy:!0,inside:{"template-punctuation":{pattern:/^`|`$/,alias:"string"},interpolation:{pattern:/((?:^|[^\\])(?:\\{2})*)\$\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}/,lookbehind:!0,inside:{"interpolation-punctuation":{pattern:/^\$\{|\}$/,alias:"punctuation"},rest:a.languages.javascript}},string:/[\s\S]+/}},"string-property":{pattern:/((?:^|[,{])[ \t]*)(["'])(?:\\(?:\r\n|[\s\S])|(?!\2)[^\\\r\n])*\2(?=\s*:)/m,lookbehind:!0,greedy:!0,alias:"property"}}),a.languages.insertBefore("javascript","operator",{"literal-property":{pattern:/((?:^|[,{])[ \t]*)(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*:)/m,lookbehind:!0,alias:"property"}}),a.languages.markup&&(a.languages.markup.tag.addInlined("script","javascript"),a.languages.markup.tag.addAttribute(/on(?:abort|blur|change|click|composition(?:end|start|update)|dblclick|error|focus(?:in|out)?|key(?:down|up)|load|mouse(?:down|enter|leave|move|out|over|up)|reset|resize|scroll|select|slotchange|submit|unload|wheel)/.source,"javascript")),a.languages.js=a.languages.javascript,function(e){var t=/#(?!\{).+/,n={pattern:/#\{[^}]+\}/,alias:"variable"};e.languages.coffeescript=e.languages.extend("javascript",{comment:t,string:[{pattern:/'(?:\\[\s\S]|[^\\'])*'/,greedy:!0},{pattern:/"(?:\\[\s\S]|[^\\"])*"/,greedy:!0,inside:{interpolation:n}}],keyword:/\b(?:and|break|by|catch|class|continue|debugger|delete|do|each|else|extend|extends|false|finally|for|if|in|instanceof|is|isnt|let|loop|namespace|new|no|not|null|of|off|on|or|own|return|super|switch|then|this|throw|true|try|typeof|undefined|unless|until|when|while|window|with|yes|yield)\b/,"class-member":{pattern:/@(?!\d)\w+/,alias:"variable"}}),e.languages.insertBefore("coffeescript","comment",{"multiline-comment":{pattern:/###[\s\S]+?###/,alias:"comment"},"block-regex":{pattern:/\/{3}[\s\S]*?\/{3}/,alias:"regex",inside:{comment:t,interpolation:n}}}),e.languages.insertBefore("coffeescript","string",{"inline-javascript":{pattern:/`(?:\\[\s\S]|[^\\`])*`/,inside:{delimiter:{pattern:/^`|`$/,alias:"punctuation"},script:{pattern:/[\s\S]+/,alias:"language-javascript",inside:e.languages.javascript}}},"multiline-string":[{pattern:/'''[\s\S]*?'''/,greedy:!0,alias:"string"},{pattern:/"""[\s\S]*?"""/,greedy:!0,alias:"string",inside:{interpolation:n}}]}),e.languages.insertBefore("coffeescript","keyword",{property:/(?!\d)\w+(?=\s*:(?!:))/}),delete e.languages.coffeescript["template-string"],e.languages.coffee=e.languages.coffeescript}(a),function(e){var t=/[*&][^\s[\]{},]+/,n=/!(?:<[\w\-%#;/?:@&=+$,.!~*'()[\]]+>|(?:[a-zA-Z\d-]*!)?[\w\-%#;/?:@&=+$.~*'()]+)?/,r="(?:"+n.source+"(?:[ \t]+"+t.source+")?|"+t.source+"(?:[ \t]+"+n.source+")?)",a=/(?:[^\s\x00-\x08\x0e-\x1f!"#%&'*,\-:>?@[\]`{|}\x7f-\x84\x86-\x9f\ud800-\udfff\ufffe\uffff]|[?:-])(?:[ \t]*(?:(?![#:])|:))*/.source.replace(//g,(function(){return/[^\s\x00-\x08\x0e-\x1f,[\]{}\x7f-\x84\x86-\x9f\ud800-\udfff\ufffe\uffff]/.source})),i=/"(?:[^"\\\r\n]|\\.)*"|'(?:[^'\\\r\n]|\\.)*'/.source;function o(e,t){t=(t||"").replace(/m/g,"")+"m";var n=/([:\-,[{]\s*(?:\s<>[ \t]+)?)(?:<>)(?=[ \t]*(?:$|,|\]|\}|(?:[\r\n]\s*)?#))/.source.replace(/<>/g,(function(){return r})).replace(/<>/g,(function(){return e}));return RegExp(n,t)}e.languages.yaml={scalar:{pattern:RegExp(/([\-:]\s*(?:\s<>[ \t]+)?[|>])[ \t]*(?:((?:\r?\n|\r)[ \t]+)\S[^\r\n]*(?:\2[^\r\n]+)*)/.source.replace(/<>/g,(function(){return r}))),lookbehind:!0,alias:"string"},comment:/#.*/,key:{pattern:RegExp(/((?:^|[:\-,[{\r\n?])[ \t]*(?:<>[ \t]+)?)<>(?=\s*:\s)/.source.replace(/<>/g,(function(){return r})).replace(/<>/g,(function(){return"(?:"+a+"|"+i+")"}))),lookbehind:!0,greedy:!0,alias:"atrule"},directive:{pattern:/(^[ \t]*)%.+/m,lookbehind:!0,alias:"important"},datetime:{pattern:o(/\d{4}-\d\d?-\d\d?(?:[tT]|[ \t]+)\d\d?:\d{2}:\d{2}(?:\.\d*)?(?:[ \t]*(?:Z|[-+]\d\d?(?::\d{2})?))?|\d{4}-\d{2}-\d{2}|\d\d?:\d{2}(?::\d{2}(?:\.\d*)?)?/.source),lookbehind:!0,alias:"number"},boolean:{pattern:o(/false|true/.source,"i"),lookbehind:!0,alias:"important"},null:{pattern:o(/null|~/.source,"i"),lookbehind:!0,alias:"important"},string:{pattern:o(i),lookbehind:!0,greedy:!0},number:{pattern:o(/[+-]?(?:0x[\da-f]+|0o[0-7]+|(?:\d+(?:\.\d*)?|\.\d+)(?:e[+-]?\d+)?|\.inf|\.nan)/.source,"i"),lookbehind:!0},tag:n,important:t,punctuation:/---|[:[\]{}\-,|>?]|\.\.\./},e.languages.yml=e.languages.yaml}(a),function(e){var t=/(?:\\.|[^\\\n\r]|(?:\n|\r\n?)(?![\r\n]))/.source;function n(e){return e=e.replace(//g,(function(){return t})),RegExp(/((?:^|[^\\])(?:\\{2})*)/.source+"(?:"+e+")")}var r=/(?:\\.|``(?:[^`\r\n]|`(?!`))+``|`[^`\r\n]+`|[^\\|\r\n`])+/.source,a=/\|?__(?:\|__)+\|?(?:(?:\n|\r\n?)|(?![\s\S]))/.source.replace(/__/g,(function(){return r})),i=/\|?[ \t]*:?-{3,}:?[ \t]*(?:\|[ \t]*:?-{3,}:?[ \t]*)+\|?(?:\n|\r\n?)/.source;e.languages.markdown=e.languages.extend("markup",{}),e.languages.insertBefore("markdown","prolog",{"front-matter-block":{pattern:/(^(?:\s*[\r\n])?)---(?!.)[\s\S]*?[\r\n]---(?!.)/,lookbehind:!0,greedy:!0,inside:{punctuation:/^---|---$/,"front-matter":{pattern:/\S+(?:\s+\S+)*/,alias:["yaml","language-yaml"],inside:e.languages.yaml}}},blockquote:{pattern:/^>(?:[\t ]*>)*/m,alias:"punctuation"},table:{pattern:RegExp("^"+a+i+"(?:"+a+")*","m"),inside:{"table-data-rows":{pattern:RegExp("^("+a+i+")(?:"+a+")*$"),lookbehind:!0,inside:{"table-data":{pattern:RegExp(r),inside:e.languages.markdown},punctuation:/\|/}},"table-line":{pattern:RegExp("^("+a+")"+i+"$"),lookbehind:!0,inside:{punctuation:/\||:?-{3,}:?/}},"table-header-row":{pattern:RegExp("^"+a+"$"),inside:{"table-header":{pattern:RegExp(r),alias:"important",inside:e.languages.markdown},punctuation:/\|/}}}},code:[{pattern:/((?:^|\n)[ \t]*\n|(?:^|\r\n?)[ \t]*\r\n?)(?: {4}|\t).+(?:(?:\n|\r\n?)(?: {4}|\t).+)*/,lookbehind:!0,alias:"keyword"},{pattern:/^```[\s\S]*?^```$/m,greedy:!0,inside:{"code-block":{pattern:/^(```.*(?:\n|\r\n?))[\s\S]+?(?=(?:\n|\r\n?)^```$)/m,lookbehind:!0},"code-language":{pattern:/^(```).+/,lookbehind:!0},punctuation:/```/}}],title:[{pattern:/\S.*(?:\n|\r\n?)(?:==+|--+)(?=[ \t]*$)/m,alias:"important",inside:{punctuation:/==+$|--+$/}},{pattern:/(^\s*)#.+/m,lookbehind:!0,alias:"important",inside:{punctuation:/^#+|#+$/}}],hr:{pattern:/(^\s*)([*-])(?:[\t ]*\2){2,}(?=\s*$)/m,lookbehind:!0,alias:"punctuation"},list:{pattern:/(^\s*)(?:[*+-]|\d+\.)(?=[\t ].)/m,lookbehind:!0,alias:"punctuation"},"url-reference":{pattern:/!?\[[^\]]+\]:[\t ]+(?:\S+|<(?:\\.|[^>\\])+>)(?:[\t ]+(?:"(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*'|\((?:\\.|[^)\\])*\)))?/,inside:{variable:{pattern:/^(!?\[)[^\]]+/,lookbehind:!0},string:/(?:"(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*'|\((?:\\.|[^)\\])*\))$/,punctuation:/^[\[\]!:]|[<>]/},alias:"url"},bold:{pattern:n(/\b__(?:(?!_)|_(?:(?!_))+_)+__\b|\*\*(?:(?!\*)|\*(?:(?!\*))+\*)+\*\*/.source),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^..)[\s\S]+(?=..$)/,lookbehind:!0,inside:{}},punctuation:/\*\*|__/}},italic:{pattern:n(/\b_(?:(?!_)|__(?:(?!_))+__)+_\b|\*(?:(?!\*)|\*\*(?:(?!\*))+\*\*)+\*/.source),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^.)[\s\S]+(?=.$)/,lookbehind:!0,inside:{}},punctuation:/[*_]/}},strike:{pattern:n(/(~~?)(?:(?!~))+\2/.source),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^~~?)[\s\S]+(?=\1$)/,lookbehind:!0,inside:{}},punctuation:/~~?/}},"code-snippet":{pattern:/(^|[^\\`])(?:``[^`\r\n]+(?:`[^`\r\n]+)*``(?!`)|`[^`\r\n]+`(?!`))/,lookbehind:!0,greedy:!0,alias:["code","keyword"]},url:{pattern:n(/!?\[(?:(?!\]))+\](?:\([^\s)]+(?:[\t ]+"(?:\\.|[^"\\])*")?\)|[ \t]?\[(?:(?!\]))+\])/.source),lookbehind:!0,greedy:!0,inside:{operator:/^!/,content:{pattern:/(^\[)[^\]]+(?=\])/,lookbehind:!0,inside:{}},variable:{pattern:/(^\][ \t]?\[)[^\]]+(?=\]$)/,lookbehind:!0},url:{pattern:/(^\]\()[^\s)]+/,lookbehind:!0},string:{pattern:/(^[ \t]+)"(?:\\.|[^"\\])*"(?=\)$)/,lookbehind:!0}}}}),["url","bold","italic","strike"].forEach((function(t){["url","bold","italic","strike","code-snippet"].forEach((function(n){t!==n&&(e.languages.markdown[t].inside.content.inside[n]=e.languages.markdown[n])}))})),e.hooks.add("after-tokenize",(function(e){"markdown"!==e.language&&"md"!==e.language||function e(t){if(t&&"string"!=typeof t)for(var n=0,r=t.length;n",quot:'"'},c=String.fromCodePoint||String.fromCharCode;e.languages.md=e.languages.markdown}(a),a.languages.graphql={comment:/#.*/,description:{pattern:/(?:"""(?:[^"]|(?!""")")*"""|"(?:\\.|[^\\"\r\n])*")(?=\s*[a-z_])/i,greedy:!0,alias:"string",inside:{"language-markdown":{pattern:/(^"(?:"")?)(?!\1)[\s\S]+(?=\1$)/,lookbehind:!0,inside:a.languages.markdown}}},string:{pattern:/"""(?:[^"]|(?!""")")*"""|"(?:\\.|[^\\"\r\n])*"/,greedy:!0},number:/(?:\B-|\b)\d+(?:\.\d+)?(?:e[+-]?\d+)?\b/i,boolean:/\b(?:false|true)\b/,variable:/\$[a-z_]\w*/i,directive:{pattern:/@[a-z_]\w*/i,alias:"function"},"attr-name":{pattern:/\b[a-z_]\w*(?=\s*(?:\((?:[^()"]|"(?:\\.|[^\\"\r\n])*")*\))?:)/i,greedy:!0},"atom-input":{pattern:/\b[A-Z]\w*Input\b/,alias:"class-name"},scalar:/\b(?:Boolean|Float|ID|Int|String)\b/,constant:/\b[A-Z][A-Z_\d]*\b/,"class-name":{pattern:/(\b(?:enum|implements|interface|on|scalar|type|union)\s+|&\s*|:\s*|\[)[A-Z_]\w*/,lookbehind:!0},fragment:{pattern:/(\bfragment\s+|\.{3}\s*(?!on\b))[a-zA-Z_]\w*/,lookbehind:!0,alias:"function"},"definition-mutation":{pattern:/(\bmutation\s+)[a-zA-Z_]\w*/,lookbehind:!0,alias:"function"},"definition-query":{pattern:/(\bquery\s+)[a-zA-Z_]\w*/,lookbehind:!0,alias:"function"},keyword:/\b(?:directive|enum|extend|fragment|implements|input|interface|mutation|on|query|repeatable|scalar|schema|subscription|type|union)\b/,operator:/[!=|&]|\.{3}/,"property-query":/\w+(?=\s*\()/,object:/\w+(?=\s*\{)/,punctuation:/[!(){}\[\]:=,]/,property:/\w+/},a.hooks.add("after-tokenize",(function(e){if("graphql"===e.language)for(var t=e.tokens.filter((function(e){return"string"!=typeof e&&"comment"!==e.type&&"scalar"!==e.type})),n=0;n0)){var s=f(/^\{$/,/^\}$/);if(-1===s)continue;for(var c=n;c=0&&p(l,"variable-input")}}}}function d(e){return t[n+e]}function u(e,t){t=t||0;for(var n=0;n?|<|>)?|>[>=]?|\b(?:AND|BETWEEN|DIV|ILIKE|IN|IS|LIKE|NOT|OR|REGEXP|RLIKE|SOUNDS LIKE|XOR)\b/i,punctuation:/[;[\]()`,.]/},function(e){var t=e.languages.javascript["template-string"],n=t.pattern.source,r=t.inside.interpolation,a=r.inside["interpolation-punctuation"],i=r.pattern.source;function o(t,r){if(e.languages[t])return{pattern:RegExp("((?:"+r+")\\s*)"+n),lookbehind:!0,greedy:!0,inside:{"template-punctuation":{pattern:/^`|`$/,alias:"string"},"embedded-code":{pattern:/[\s\S]+/,alias:t}}}}function s(e,t){return"___"+t.toUpperCase()+"_"+e+"___"}function c(t,n,r){var a={code:t,grammar:n,language:r};return e.hooks.run("before-tokenize",a),a.tokens=e.tokenize(a.code,a.grammar),e.hooks.run("after-tokenize",a),a.tokens}function l(t){var n={};n["interpolation-punctuation"]=a;var i=e.tokenize(t,n);if(3===i.length){var o=[1,1];o.push.apply(o,c(i[1],e.languages.javascript,"javascript")),i.splice.apply(i,o)}return new e.Token("interpolation",i,r.alias,t)}function d(t,n,r){var a=e.tokenize(t,{interpolation:{pattern:RegExp(i),lookbehind:!0}}),o=0,d={},u=c(a.map((function(e){if("string"==typeof e)return e;for(var n,a=e.content;-1!==t.indexOf(n=s(o++,r)););return d[n]=a,n})).join(""),n,r),f=Object.keys(d);return o=0,function e(t){for(var n=0;n=f.length)return;var r=t[n];if("string"==typeof r||"string"==typeof r.content){var a=f[o],i="string"==typeof r?r:r.content,s=i.indexOf(a);if(-1!==s){++o;var c=i.substring(0,s),u=l(d[a]),p=i.substring(s+a.length),m=[];if(c&&m.push(c),m.push(u),p){var h=[p];e(h),m.push.apply(m,h)}"string"==typeof r?(t.splice.apply(t,[n,1].concat(m)),n+=m.length-1):r.content=m}}else{var b=r.content;Array.isArray(b)?e(b):e([b])}}}(u),new e.Token(r,u,"language-"+r,t)}e.languages.javascript["template-string"]=[o("css",/\b(?:styled(?:\([^)]*\))?(?:\s*\.\s*\w+(?:\([^)]*\))*)*|css(?:\s*\.\s*(?:global|resolve))?|createGlobalStyle|keyframes)/.source),o("html",/\bhtml|\.\s*(?:inner|outer)HTML\s*\+?=/.source),o("svg",/\bsvg/.source),o("markdown",/\b(?:markdown|md)/.source),o("graphql",/\b(?:gql|graphql(?:\s*\.\s*experimental)?)/.source),o("sql",/\bsql/.source),t].filter(Boolean);var u={javascript:!0,js:!0,typescript:!0,ts:!0,jsx:!0,tsx:!0};function f(e){return"string"==typeof e?e:Array.isArray(e)?e.map(f).join(""):f(e.content)}e.hooks.add("after-tokenize",(function(t){t.language in u&&function t(n){for(var r=0,a=n.length;r]|<(?:[^<>]|<[^<>]*>)*>)*>)?/,lookbehind:!0,greedy:!0,inside:null},builtin:/\b(?:Array|Function|Promise|any|boolean|console|never|number|string|symbol|unknown)\b/}),e.languages.typescript.keyword.push(/\b(?:abstract|declare|is|keyof|readonly|require)\b/,/\b(?:asserts|infer|interface|module|namespace|type)\b(?=\s*(?:[{_$a-zA-Z\xA0-\uFFFF]|$))/,/\btype\b(?=\s*(?:[\{*]|$))/),delete e.languages.typescript.parameter,delete e.languages.typescript["literal-property"];var t=e.languages.extend("typescript",{});delete t["class-name"],e.languages.typescript["class-name"].inside=t,e.languages.insertBefore("typescript","function",{decorator:{pattern:/@[$\w\xA0-\uFFFF]+/,inside:{at:{pattern:/^@/,alias:"operator"},function:/^[\s\S]+/}},"generic-function":{pattern:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>(?=\s*\()/,greedy:!0,inside:{function:/^#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*/,generic:{pattern:/<[\s\S]+/,alias:"class-name",inside:t}}}}),e.languages.ts=e.languages.typescript}(a),function(e){function t(e,t){return RegExp(e.replace(//g,(function(){return/(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*/.source})),t)}e.languages.insertBefore("javascript","function-variable",{"method-variable":{pattern:RegExp("(\\.\\s*)"+e.languages.javascript["function-variable"].pattern.source),lookbehind:!0,alias:["function-variable","method","function","property-access"]}}),e.languages.insertBefore("javascript","function",{method:{pattern:RegExp("(\\.\\s*)"+e.languages.javascript.function.source),lookbehind:!0,alias:["function","property-access"]}}),e.languages.insertBefore("javascript","constant",{"known-class-name":[{pattern:/\b(?:(?:Float(?:32|64)|(?:Int|Uint)(?:8|16|32)|Uint8Clamped)?Array|ArrayBuffer|BigInt|Boolean|DataView|Date|Error|Function|Intl|JSON|(?:Weak)?(?:Map|Set)|Math|Number|Object|Promise|Proxy|Reflect|RegExp|String|Symbol|WebAssembly)\b/,alias:"class-name"},{pattern:/\b(?:[A-Z]\w*)Error\b/,alias:"class-name"}]}),e.languages.insertBefore("javascript","keyword",{imports:{pattern:t(/(\bimport\b\s*)(?:(?:\s*,\s*(?:\*\s*as\s+|\{[^{}]*\}))?|\*\s*as\s+|\{[^{}]*\})(?=\s*\bfrom\b)/.source),lookbehind:!0,inside:e.languages.javascript},exports:{pattern:t(/(\bexport\b\s*)(?:\*(?:\s*as\s+)?(?=\s*\bfrom\b)|\{[^{}]*\})/.source),lookbehind:!0,inside:e.languages.javascript}}),e.languages.javascript.keyword.unshift({pattern:/\b(?:as|default|export|from|import)\b/,alias:"module"},{pattern:/\b(?:await|break|catch|continue|do|else|finally|for|if|return|switch|throw|try|while|yield)\b/,alias:"control-flow"},{pattern:/\bnull\b/,alias:["null","nil"]},{pattern:/\bundefined\b/,alias:"nil"}),e.languages.insertBefore("javascript","operator",{spread:{pattern:/\.{3}/,alias:"operator"},arrow:{pattern:/=>/,alias:"operator"}}),e.languages.insertBefore("javascript","punctuation",{"property-access":{pattern:t(/(\.\s*)#?/.source),lookbehind:!0},"maybe-class-name":{pattern:/(^|[^$\w\xA0-\uFFFF])[A-Z][$\w\xA0-\uFFFF]+/,lookbehind:!0},dom:{pattern:/\b(?:document|(?:local|session)Storage|location|navigator|performance|window)\b/,alias:"variable"},console:{pattern:/\bconsole(?=\s*\.)/,alias:"class-name"}});for(var n=["function","function-variable","method","method-variable","property-access"],r=0;r*\.{3}(?:[^{}]|)*\})/.source;function i(e,t){return e=e.replace(//g,(function(){return n})).replace(//g,(function(){return r})).replace(//g,(function(){return a})),RegExp(e,t)}a=i(a).source,e.languages.jsx=e.languages.extend("markup",t),e.languages.jsx.tag.pattern=i(/<\/?(?:[\w.:-]+(?:+(?:[\w.:$-]+(?:=(?:"(?:\\[\s\S]|[^\\"])*"|'(?:\\[\s\S]|[^\\'])*'|[^\s{'"/>=]+|))?|))**\/?)?>/.source),e.languages.jsx.tag.inside.tag.pattern=/^<\/?[^\s>\/]*/,e.languages.jsx.tag.inside["attr-value"].pattern=/=(?!\{)(?:"(?:\\[\s\S]|[^\\"])*"|'(?:\\[\s\S]|[^\\'])*'|[^\s'">]+)/,e.languages.jsx.tag.inside.tag.inside["class-name"]=/^[A-Z]\w*(?:\.[A-Z]\w*)*$/,e.languages.jsx.tag.inside.comment=t.comment,e.languages.insertBefore("inside","attr-name",{spread:{pattern:i(//.source),inside:e.languages.jsx}},e.languages.jsx.tag),e.languages.insertBefore("inside","special-attr",{script:{pattern:i(/=/.source),alias:"language-javascript",inside:{"script-punctuation":{pattern:/^=(?=\{)/,alias:"punctuation"},rest:e.languages.jsx}}},e.languages.jsx.tag);var o=function(e){return e?"string"==typeof e?e:"string"==typeof e.content?e.content:e.content.map(o).join(""):""},s=function(t){for(var n=[],r=0;r0&&n[n.length-1].tagName===o(a.content[0].content[1])&&n.pop():"/>"===a.content[a.content.length-1].content||n.push({tagName:o(a.content[0].content[1]),openedBraces:0}):n.length>0&&"punctuation"===a.type&&"{"===a.content?n[n.length-1].openedBraces++:n.length>0&&n[n.length-1].openedBraces>0&&"punctuation"===a.type&&"}"===a.content?n[n.length-1].openedBraces--:i=!0),(i||"string"==typeof a)&&n.length>0&&0===n[n.length-1].openedBraces){var c=o(a);r0&&("string"==typeof t[r-1]||"plain-text"===t[r-1].type)&&(c=o(t[r-1])+c,t.splice(r-1,1),r--),t[r]=new e.Token("plain-text",c,null,c)}a.content&&"string"!=typeof a.content&&s(a.content)}};e.hooks.add("after-tokenize",(function(e){"jsx"!==e.language&&"tsx"!==e.language||s(e.tokens)}))}(a),function(e){e.languages.diff={coord:[/^(?:\*{3}|-{3}|\+{3}).*$/m,/^@@.*@@$/m,/^\d.*$/m]};var t={"deleted-sign":"-","deleted-arrow":"<","inserted-sign":"+","inserted-arrow":">",unchanged:" ",diff:"!"};Object.keys(t).forEach((function(n){var r=t[n],a=[];/^\w+$/.test(n)||a.push(/\w+/.exec(n)[0]),"diff"===n&&a.push("bold"),e.languages.diff[n]={pattern:RegExp("^(?:["+r+"].*(?:\r\n?|\n|(?![\\s\\S])))+","m"),alias:a,inside:{line:{pattern:/(.)(?=[\s\S]).*(?:\r\n?|\n)?/,lookbehind:!0},prefix:{pattern:/[\s\S]/,alias:/\w+/.exec(n)[0]}}}})),Object.defineProperty(e.languages.diff,"PREFIXES",{value:t})}(a),a.languages.git={comment:/^#.*/m,deleted:/^[-\u2013].*/m,inserted:/^\+.*/m,string:/("|')(?:\\.|(?!\1)[^\\\r\n])*\1/,command:{pattern:/^.*\$ git .*$/m,inside:{parameter:/\s--?\w+/}},coord:/^@@.*@@$/m,"commit-sha1":/^commit \w{40}$/m},a.languages.go=a.languages.extend("clike",{string:{pattern:/(^|[^\\])"(?:\\.|[^"\\\r\n])*"|`[^`]*`/,lookbehind:!0,greedy:!0},keyword:/\b(?:break|case|chan|const|continue|default|defer|else|fallthrough|for|func|go(?:to)?|if|import|interface|map|package|range|return|select|struct|switch|type|var)\b/,boolean:/\b(?:_|false|iota|nil|true)\b/,number:[/\b0(?:b[01_]+|o[0-7_]+)i?\b/i,/\b0x(?:[a-f\d_]+(?:\.[a-f\d_]*)?|\.[a-f\d_]+)(?:p[+-]?\d+(?:_\d+)*)?i?(?!\w)/i,/(?:\b\d[\d_]*(?:\.[\d_]*)?|\B\.\d[\d_]*)(?:e[+-]?[\d_]+)?i?(?!\w)/i],operator:/[*\/%^!=]=?|\+[=+]?|-[=-]?|\|[=|]?|&(?:=|&|\^=?)?|>(?:>=?|=)?|<(?:<=?|=|-)?|:=|\.\.\./,builtin:/\b(?:append|bool|byte|cap|close|complex|complex(?:64|128)|copy|delete|error|float(?:32|64)|u?int(?:8|16|32|64)?|imag|len|make|new|panic|print(?:ln)?|real|recover|rune|string|uintptr)\b/}),a.languages.insertBefore("go","string",{char:{pattern:/'(?:\\.|[^'\\\r\n]){0,10}'/,greedy:!0}}),delete a.languages.go["class-name"],function(e){function t(e,t){return"___"+e.toUpperCase()+t+"___"}Object.defineProperties(e.languages["markup-templating"]={},{buildPlaceholders:{value:function(n,r,a,i){if(n.language===r){var o=n.tokenStack=[];n.code=n.code.replace(a,(function(e){if("function"==typeof i&&!i(e))return e;for(var a,s=o.length;-1!==n.code.indexOf(a=t(r,s));)++s;return o[s]=e,a})),n.grammar=e.languages.markup}}},tokenizePlaceholders:{value:function(n,r){if(n.language===r&&n.tokenStack){n.grammar=e.languages[r];var a=0,i=Object.keys(n.tokenStack);!function o(s){for(var c=0;c=i.length);c++){var l=s[c];if("string"==typeof l||l.content&&"string"==typeof l.content){var d=i[a],u=n.tokenStack[d],f="string"==typeof l?l:l.content,p=t(r,d),m=f.indexOf(p);if(m>-1){++a;var h=f.substring(0,m),b=new e.Token(r,e.tokenize(u,n.grammar),"language-"+r,u),g=f.substring(m+p.length),v=[];h&&v.push.apply(v,o([h])),v.push(b),g&&v.push.apply(v,o([g])),"string"==typeof l?s.splice.apply(s,[c,1].concat(v)):l.content=v}}else l.content&&o(l.content)}return s}(n.tokens)}}}})}(a),function(e){e.languages.handlebars={comment:/\{\{![\s\S]*?\}\}/,delimiter:{pattern:/^\{\{\{?|\}\}\}?$/,alias:"punctuation"},string:/(["'])(?:\\.|(?!\1)[^\\\r\n])*\1/,number:/\b0x[\dA-Fa-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:[Ee][+-]?\d+)?/,boolean:/\b(?:false|true)\b/,block:{pattern:/^(\s*(?:~\s*)?)[#\/]\S+?(?=\s*(?:~\s*)?$|\s)/,lookbehind:!0,alias:"keyword"},brackets:{pattern:/\[[^\]]+\]/,inside:{punctuation:/\[|\]/,variable:/[\s\S]+/}},punctuation:/[!"#%&':()*+,.\/;<=>@\[\\\]^`{|}~]/,variable:/[^!"#%&'()*+,\/;<=>@\[\\\]^`{|}~\s]+/},e.hooks.add("before-tokenize",(function(t){e.languages["markup-templating"].buildPlaceholders(t,"handlebars",/\{\{\{[\s\S]+?\}\}\}|\{\{[\s\S]+?\}\}/g)})),e.hooks.add("after-tokenize",(function(t){e.languages["markup-templating"].tokenizePlaceholders(t,"handlebars")})),e.languages.hbs=e.languages.handlebars}(a),a.languages.json={property:{pattern:/(^|[^\\])"(?:\\.|[^\\"\r\n])*"(?=\s*:)/,lookbehind:!0,greedy:!0},string:{pattern:/(^|[^\\])"(?:\\.|[^\\"\r\n])*"(?!\s*:)/,lookbehind:!0,greedy:!0},comment:{pattern:/\/\/.*|\/\*[\s\S]*?(?:\*\/|$)/,greedy:!0},number:/-?\b\d+(?:\.\d+)?(?:e[+-]?\d+)?\b/i,punctuation:/[{}[\],]/,operator:/:/,boolean:/\b(?:false|true)\b/,null:{pattern:/\bnull\b/,alias:"keyword"}},a.languages.webmanifest=a.languages.json,a.languages.less=a.languages.extend("css",{comment:[/\/\*[\s\S]*?\*\//,{pattern:/(^|[^\\])\/\/.*/,lookbehind:!0}],atrule:{pattern:/@[\w-](?:\((?:[^(){}]|\([^(){}]*\))*\)|[^(){};\s]|\s+(?!\s))*?(?=\s*\{)/,inside:{punctuation:/[:()]/}},selector:{pattern:/(?:@\{[\w-]+\}|[^{};\s@])(?:@\{[\w-]+\}|\((?:[^(){}]|\([^(){}]*\))*\)|[^(){};@\s]|\s+(?!\s))*?(?=\s*\{)/,inside:{variable:/@+[\w-]+/}},property:/(?:@\{[\w-]+\}|[\w-])+(?:\+_?)?(?=\s*:)/,operator:/[+\-*\/]/}),a.languages.insertBefore("less","property",{variable:[{pattern:/@[\w-]+\s*:/,inside:{punctuation:/:/}},/@@?[\w-]+/],"mixin-usage":{pattern:/([{;]\s*)[.#](?!\d)[\w-].*?(?=[(;])/,lookbehind:!0,alias:"function"}}),a.languages.makefile={comment:{pattern:/(^|[^\\])#(?:\\(?:\r\n|[\s\S])|[^\\\r\n])*/,lookbehind:!0},string:{pattern:/(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0},"builtin-target":{pattern:/\.[A-Z][^:#=\s]+(?=\s*:(?!=))/,alias:"builtin"},target:{pattern:/^(?:[^:=\s]|[ \t]+(?![\s:]))+(?=\s*:(?!=))/m,alias:"symbol",inside:{variable:/\$+(?:(?!\$)[^(){}:#=\s]+|(?=[({]))/}},variable:/\$+(?:(?!\$)[^(){}:#=\s]+|\([@*%<^+?][DF]\)|(?=[({]))/,keyword:/-include\b|\b(?:define|else|endef|endif|export|ifn?def|ifn?eq|include|override|private|sinclude|undefine|unexport|vpath)\b/,function:{pattern:/(\()(?:abspath|addsuffix|and|basename|call|dir|error|eval|file|filter(?:-out)?|findstring|firstword|flavor|foreach|guile|if|info|join|lastword|load|notdir|or|origin|patsubst|realpath|shell|sort|strip|subst|suffix|value|warning|wildcard|word(?:list|s)?)(?=[ \t])/,lookbehind:!0},operator:/(?:::|[?:+!])?=|[|@]/,punctuation:/[:;(){}]/},a.languages.objectivec=a.languages.extend("c",{string:{pattern:/@?"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"/,greedy:!0},keyword:/\b(?:asm|auto|break|case|char|const|continue|default|do|double|else|enum|extern|float|for|goto|if|in|inline|int|long|register|return|self|short|signed|sizeof|static|struct|super|switch|typedef|typeof|union|unsigned|void|volatile|while)\b|(?:@interface|@end|@implementation|@protocol|@class|@public|@protected|@private|@property|@try|@catch|@finally|@throw|@synthesize|@dynamic|@selector)\b/,operator:/-[->]?|\+\+?|!=?|<>?=?|==?|&&?|\|\|?|[~^%?*\/@]/}),delete a.languages.objectivec["class-name"],a.languages.objc=a.languages.objectivec,a.languages.ocaml={comment:{pattern:/\(\*[\s\S]*?\*\)/,greedy:!0},char:{pattern:/'(?:[^\\\r\n']|\\(?:.|[ox]?[0-9a-f]{1,3}))'/i,greedy:!0},string:[{pattern:/"(?:\\(?:[\s\S]|\r\n)|[^\\\r\n"])*"/,greedy:!0},{pattern:/\{([a-z_]*)\|[\s\S]*?\|\1\}/,greedy:!0}],number:[/\b(?:0b[01][01_]*|0o[0-7][0-7_]*)\b/i,/\b0x[a-f0-9][a-f0-9_]*(?:\.[a-f0-9_]*)?(?:p[+-]?\d[\d_]*)?(?!\w)/i,/\b\d[\d_]*(?:\.[\d_]*)?(?:e[+-]?\d[\d_]*)?(?!\w)/i],directive:{pattern:/\B#\w+/,alias:"property"},label:{pattern:/\B~\w+/,alias:"property"},"type-variable":{pattern:/\B'\w+/,alias:"function"},variant:{pattern:/`\w+/,alias:"symbol"},keyword:/\b(?:as|assert|begin|class|constraint|do|done|downto|else|end|exception|external|for|fun|function|functor|if|in|include|inherit|initializer|lazy|let|match|method|module|mutable|new|nonrec|object|of|open|private|rec|sig|struct|then|to|try|type|val|value|virtual|when|where|while|with)\b/,boolean:/\b(?:false|true)\b/,"operator-like-punctuation":{pattern:/\[[<>|]|[>|]\]|\{<|>\}/,alias:"punctuation"},operator:/\.[.~]|:[=>]|[=<>@^|&+\-*\/$%!?~][!$%&*+\-.\/:<=>?@^|~]*|\b(?:and|asr|land|lor|lsl|lsr|lxor|mod|or)\b/,punctuation:/;;|::|[(){}\[\].,:;#]|\b_\b/},a.languages.python={comment:{pattern:/(^|[^\\])#.*/,lookbehind:!0,greedy:!0},"string-interpolation":{pattern:/(?:f|fr|rf)(?:("""|''')[\s\S]*?\1|("|')(?:\\.|(?!\2)[^\\\r\n])*\2)/i,greedy:!0,inside:{interpolation:{pattern:/((?:^|[^{])(?:\{\{)*)\{(?!\{)(?:[^{}]|\{(?!\{)(?:[^{}]|\{(?!\{)(?:[^{}])+\})+\})+\}/,lookbehind:!0,inside:{"format-spec":{pattern:/(:)[^:(){}]+(?=\}$)/,lookbehind:!0},"conversion-option":{pattern:/![sra](?=[:}]$)/,alias:"punctuation"},rest:null}},string:/[\s\S]+/}},"triple-quoted-string":{pattern:/(?:[rub]|br|rb)?("""|''')[\s\S]*?\1/i,greedy:!0,alias:"string"},string:{pattern:/(?:[rub]|br|rb)?("|')(?:\\.|(?!\1)[^\\\r\n])*\1/i,greedy:!0},function:{pattern:/((?:^|\s)def[ \t]+)[a-zA-Z_]\w*(?=\s*\()/g,lookbehind:!0},"class-name":{pattern:/(\bclass\s+)\w+/i,lookbehind:!0},decorator:{pattern:/(^[\t ]*)@\w+(?:\.\w+)*/m,lookbehind:!0,alias:["annotation","punctuation"],inside:{punctuation:/\./}},keyword:/\b(?:_(?=\s*:)|and|as|assert|async|await|break|case|class|continue|def|del|elif|else|except|exec|finally|for|from|global|if|import|in|is|lambda|match|nonlocal|not|or|pass|print|raise|return|try|while|with|yield)\b/,builtin:/\b(?:__import__|abs|all|any|apply|ascii|basestring|bin|bool|buffer|bytearray|bytes|callable|chr|classmethod|cmp|coerce|compile|complex|delattr|dict|dir|divmod|enumerate|eval|execfile|file|filter|float|format|frozenset|getattr|globals|hasattr|hash|help|hex|id|input|int|intern|isinstance|issubclass|iter|len|list|locals|long|map|max|memoryview|min|next|object|oct|open|ord|pow|property|range|raw_input|reduce|reload|repr|reversed|round|set|setattr|slice|sorted|staticmethod|str|sum|super|tuple|type|unichr|unicode|vars|xrange|zip)\b/,boolean:/\b(?:False|None|True)\b/,number:/\b0(?:b(?:_?[01])+|o(?:_?[0-7])+|x(?:_?[a-f0-9])+)\b|(?:\b\d+(?:_\d+)*(?:\.(?:\d+(?:_\d+)*)?)?|\B\.\d+(?:_\d+)*)(?:e[+-]?\d+(?:_\d+)*)?j?(?!\w)/i,operator:/[-+%=]=?|!=|:=|\*\*?=?|\/\/?=?|<[<=>]?|>[=>]?|[&|^~]/,punctuation:/[{}[\];(),.:]/},a.languages.python["string-interpolation"].inside.interpolation.inside.rest=a.languages.python,a.languages.py=a.languages.python,a.languages.reason=a.languages.extend("clike",{string:{pattern:/"(?:\\(?:\r\n|[\s\S])|[^\\\r\n"])*"/,greedy:!0},"class-name":/\b[A-Z]\w*/,keyword:/\b(?:and|as|assert|begin|class|constraint|do|done|downto|else|end|exception|external|for|fun|function|functor|if|in|include|inherit|initializer|lazy|let|method|module|mutable|new|nonrec|object|of|open|or|private|rec|sig|struct|switch|then|to|try|type|val|virtual|when|while|with)\b/,operator:/\.{3}|:[:=]|\|>|->|=(?:==?|>)?|<=?|>=?|[|^?'#!~`]|[+\-*\/]\.?|\b(?:asr|land|lor|lsl|lsr|lxor|mod)\b/}),a.languages.insertBefore("reason","class-name",{char:{pattern:/'(?:\\x[\da-f]{2}|\\o[0-3][0-7][0-7]|\\\d{3}|\\.|[^'\\\r\n])'/,greedy:!0},constructor:/\b[A-Z]\w*\b(?!\s*\.)/,label:{pattern:/\b[a-z]\w*(?=::)/,alias:"symbol"}}),delete a.languages.reason.function,function(e){e.languages.sass=e.languages.extend("css",{comment:{pattern:/^([ \t]*)\/[\/*].*(?:(?:\r?\n|\r)\1[ \t].+)*/m,lookbehind:!0,greedy:!0}}),e.languages.insertBefore("sass","atrule",{"atrule-line":{pattern:/^(?:[ \t]*)[@+=].+/m,greedy:!0,inside:{atrule:/(?:@[\w-]+|[+=])/}}}),delete e.languages.sass.atrule;var t=/\$[-\w]+|#\{\$[-\w]+\}/,n=[/[+*\/%]|[=!]=|<=?|>=?|\b(?:and|not|or)\b/,{pattern:/(\s)-(?=\s)/,lookbehind:!0}];e.languages.insertBefore("sass","property",{"variable-line":{pattern:/^[ \t]*\$.+/m,greedy:!0,inside:{punctuation:/:/,variable:t,operator:n}},"property-line":{pattern:/^[ \t]*(?:[^:\s]+ *:.*|:[^:\s].*)/m,greedy:!0,inside:{property:[/[^:\s]+(?=\s*:)/,{pattern:/(:)[^:\s]+/,lookbehind:!0}],punctuation:/:/,variable:t,operator:n,important:e.languages.sass.important}}}),delete e.languages.sass.property,delete e.languages.sass.important,e.languages.insertBefore("sass","punctuation",{selector:{pattern:/^([ \t]*)\S(?:,[^,\r\n]+|[^,\r\n]*)(?:,[^,\r\n]+)*(?:,(?:\r?\n|\r)\1[ \t]+\S(?:,[^,\r\n]+|[^,\r\n]*)(?:,[^,\r\n]+)*)*/m,lookbehind:!0,greedy:!0}})}(a),a.languages.scss=a.languages.extend("css",{comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|\/\/.*)/,lookbehind:!0},atrule:{pattern:/@[\w-](?:\([^()]+\)|[^()\s]|\s+(?!\s))*?(?=\s+[{;])/,inside:{rule:/@[\w-]+/}},url:/(?:[-a-z]+-)?url(?=\()/i,selector:{pattern:/(?=\S)[^@;{}()]?(?:[^@;{}()\s]|\s+(?!\s)|#\{\$[-\w]+\})+(?=\s*\{(?:\}|\s|[^}][^:{}]*[:{][^}]))/,inside:{parent:{pattern:/&/,alias:"important"},placeholder:/%[-\w]+/,variable:/\$[-\w]+|#\{\$[-\w]+\}/}},property:{pattern:/(?:[-\w]|\$[-\w]|#\{\$[-\w]+\})+(?=\s*:)/,inside:{variable:/\$[-\w]+|#\{\$[-\w]+\}/}}}),a.languages.insertBefore("scss","atrule",{keyword:[/@(?:content|debug|each|else(?: if)?|extend|for|forward|function|if|import|include|mixin|return|use|warn|while)\b/i,{pattern:/( )(?:from|through)(?= )/,lookbehind:!0}]}),a.languages.insertBefore("scss","important",{variable:/\$[-\w]+|#\{\$[-\w]+\}/}),a.languages.insertBefore("scss","function",{"module-modifier":{pattern:/\b(?:as|hide|show|with)\b/i,alias:"keyword"},placeholder:{pattern:/%[-\w]+/,alias:"selector"},statement:{pattern:/\B!(?:default|optional)\b/i,alias:"keyword"},boolean:/\b(?:false|true)\b/,null:{pattern:/\bnull\b/,alias:"keyword"},operator:{pattern:/(\s)(?:[-+*\/%]|[=!]=|<=?|>=?|and|not|or)(?=\s)/,lookbehind:!0}}),a.languages.scss.atrule.inside.rest=a.languages.scss,function(e){var t={pattern:/(\b\d+)(?:%|[a-z]+)/,lookbehind:!0},n={pattern:/(^|[^\w.-])-?(?:\d+(?:\.\d+)?|\.\d+)/,lookbehind:!0},r={comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|\/\/.*)/,lookbehind:!0},url:{pattern:/\burl\((["']?).*?\1\)/i,greedy:!0},string:{pattern:/("|')(?:(?!\1)[^\\\r\n]|\\(?:\r\n|[\s\S]))*\1/,greedy:!0},interpolation:null,func:null,important:/\B!(?:important|optional)\b/i,keyword:{pattern:/(^|\s+)(?:(?:else|for|if|return|unless)(?=\s|$)|@[\w-]+)/,lookbehind:!0},hexcode:/#[\da-f]{3,6}/i,color:[/\b(?:AliceBlue|AntiqueWhite|Aqua|Aquamarine|Azure|Beige|Bisque|Black|BlanchedAlmond|Blue|BlueViolet|Brown|BurlyWood|CadetBlue|Chartreuse|Chocolate|Coral|CornflowerBlue|Cornsilk|Crimson|Cyan|DarkBlue|DarkCyan|DarkGoldenRod|DarkGr[ae]y|DarkGreen|DarkKhaki|DarkMagenta|DarkOliveGreen|DarkOrange|DarkOrchid|DarkRed|DarkSalmon|DarkSeaGreen|DarkSlateBlue|DarkSlateGr[ae]y|DarkTurquoise|DarkViolet|DeepPink|DeepSkyBlue|DimGr[ae]y|DodgerBlue|FireBrick|FloralWhite|ForestGreen|Fuchsia|Gainsboro|GhostWhite|Gold|GoldenRod|Gr[ae]y|Green|GreenYellow|HoneyDew|HotPink|IndianRed|Indigo|Ivory|Khaki|Lavender|LavenderBlush|LawnGreen|LemonChiffon|LightBlue|LightCoral|LightCyan|LightGoldenRodYellow|LightGr[ae]y|LightGreen|LightPink|LightSalmon|LightSeaGreen|LightSkyBlue|LightSlateGr[ae]y|LightSteelBlue|LightYellow|Lime|LimeGreen|Linen|Magenta|Maroon|MediumAquaMarine|MediumBlue|MediumOrchid|MediumPurple|MediumSeaGreen|MediumSlateBlue|MediumSpringGreen|MediumTurquoise|MediumVioletRed|MidnightBlue|MintCream|MistyRose|Moccasin|NavajoWhite|Navy|OldLace|Olive|OliveDrab|Orange|OrangeRed|Orchid|PaleGoldenRod|PaleGreen|PaleTurquoise|PaleVioletRed|PapayaWhip|PeachPuff|Peru|Pink|Plum|PowderBlue|Purple|Red|RosyBrown|RoyalBlue|SaddleBrown|Salmon|SandyBrown|SeaGreen|SeaShell|Sienna|Silver|SkyBlue|SlateBlue|SlateGr[ae]y|Snow|SpringGreen|SteelBlue|Tan|Teal|Thistle|Tomato|Transparent|Turquoise|Violet|Wheat|White|WhiteSmoke|Yellow|YellowGreen)\b/i,{pattern:/\b(?:hsl|rgb)\(\s*\d{1,3}\s*,\s*\d{1,3}%?\s*,\s*\d{1,3}%?\s*\)\B|\b(?:hsl|rgb)a\(\s*\d{1,3}\s*,\s*\d{1,3}%?\s*,\s*\d{1,3}%?\s*,\s*(?:0|0?\.\d+|1)\s*\)\B/i,inside:{unit:t,number:n,function:/[\w-]+(?=\()/,punctuation:/[(),]/}}],entity:/\\[\da-f]{1,8}/i,unit:t,boolean:/\b(?:false|true)\b/,operator:[/~|[+!\/%<>?=]=?|[-:]=|\*[*=]?|\.{2,3}|&&|\|\||\B-\B|\b(?:and|in|is(?: a| defined| not|nt)?|not|or)\b/],number:n,punctuation:/[{}()\[\];:,]/};r.interpolation={pattern:/\{[^\r\n}:]+\}/,alias:"variable",inside:{delimiter:{pattern:/^\{|\}$/,alias:"punctuation"},rest:r}},r.func={pattern:/[\w-]+\([^)]*\).*/,inside:{function:/^[^(]+/,rest:r}},e.languages.stylus={"atrule-declaration":{pattern:/(^[ \t]*)@.+/m,lookbehind:!0,inside:{atrule:/^@[\w-]+/,rest:r}},"variable-declaration":{pattern:/(^[ \t]*)[\w$-]+\s*.?=[ \t]*(?:\{[^{}]*\}|\S.*|$)/m,lookbehind:!0,inside:{variable:/^\S+/,rest:r}},statement:{pattern:/(^[ \t]*)(?:else|for|if|return|unless)[ \t].+/m,lookbehind:!0,inside:{keyword:/^\S+/,rest:r}},"property-declaration":{pattern:/((?:^|\{)([ \t]*))(?:[\w-]|\{[^}\r\n]+\})+(?:\s*:\s*|[ \t]+)(?!\s)[^{\r\n]*(?:;|[^{\r\n,]$(?!(?:\r?\n|\r)(?:\{|\2[ \t])))/m,lookbehind:!0,inside:{property:{pattern:/^[^\s:]+/,inside:{interpolation:r.interpolation}},rest:r}},selector:{pattern:/(^[ \t]*)(?:(?=\S)(?:[^{}\r\n:()]|::?[\w-]+(?:\([^)\r\n]*\)|(?![\w-]))|\{[^}\r\n]+\})+)(?:(?:\r?\n|\r)(?:\1(?:(?=\S)(?:[^{}\r\n:()]|::?[\w-]+(?:\([^)\r\n]*\)|(?![\w-]))|\{[^}\r\n]+\})+)))*(?:,$|\{|(?=(?:\r?\n|\r)(?:\{|\1[ \t])))/m,lookbehind:!0,inside:{interpolation:r.interpolation,comment:r.comment,punctuation:/[{},]/}},func:r.func,string:r.string,comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|\/\/.*)/,lookbehind:!0,greedy:!0},interpolation:r.interpolation,punctuation:/[{}()\[\];:.]/}}(a),function(e){var t=e.util.clone(e.languages.typescript);e.languages.tsx=e.languages.extend("jsx",t),delete e.languages.tsx.parameter,delete e.languages.tsx["literal-property"];var n=e.languages.tsx.tag;n.pattern=RegExp(/(^|[^\w$]|(?=<\/))/.source+"(?:"+n.pattern.source+")",n.pattern.flags),n.lookbehind=!0}(a),a.languages.wasm={comment:[/\(;[\s\S]*?;\)/,{pattern:/;;.*/,greedy:!0}],string:{pattern:/"(?:\\[\s\S]|[^"\\])*"/,greedy:!0},keyword:[{pattern:/\b(?:align|offset)=/,inside:{operator:/=/}},{pattern:/\b(?:(?:f32|f64|i32|i64)(?:\.(?:abs|add|and|ceil|clz|const|convert_[su]\/i(?:32|64)|copysign|ctz|demote\/f64|div(?:_[su])?|eqz?|extend_[su]\/i32|floor|ge(?:_[su])?|gt(?:_[su])?|le(?:_[su])?|load(?:(?:8|16|32)_[su])?|lt(?:_[su])?|max|min|mul|neg?|nearest|or|popcnt|promote\/f32|reinterpret\/[fi](?:32|64)|rem_[su]|rot[lr]|shl|shr_[su]|sqrt|store(?:8|16|32)?|sub|trunc(?:_[su]\/f(?:32|64))?|wrap\/i64|xor))?|memory\.(?:grow|size))\b/,inside:{punctuation:/\./}},/\b(?:anyfunc|block|br(?:_if|_table)?|call(?:_indirect)?|data|drop|elem|else|end|export|func|get_(?:global|local)|global|if|import|local|loop|memory|module|mut|nop|offset|param|result|return|select|set_(?:global|local)|start|table|tee_local|then|type|unreachable)\b/],variable:/\$[\w!#$%&'*+\-./:<=>?@\\^`|~]+/,number:/[+-]?\b(?:\d(?:_?\d)*(?:\.\d(?:_?\d)*)?(?:[eE][+-]?\d(?:_?\d)*)?|0x[\da-fA-F](?:_?[\da-fA-F])*(?:\.[\da-fA-F](?:_?[\da-fA-D])*)?(?:[pP][+-]?\d(?:_?\d)*)?)\b|\binf\b|\bnan(?::0x[\da-fA-F](?:_?[\da-fA-D])*)?\b/,punctuation:/[()]/};const i=a},79016:()=>{!function(e){function t(e,t){return e.replace(/<<(\d+)>>/g,(function(e,n){return"(?:"+t[+n]+")"}))}function n(e,n,r){return RegExp(t(e,n),r||"")}function r(e,t){for(var n=0;n>/g,(function(){return"(?:"+e+")"}));return e.replace(/<>/g,"[^\\s\\S]")}var a="bool byte char decimal double dynamic float int long object sbyte short string uint ulong ushort var void",i="class enum interface record struct",o="add alias and ascending async await by descending from(?=\\s*(?:\\w|$)) get global group into init(?=\\s*;) join let nameof not notnull on or orderby partial remove select set unmanaged value when where with(?=\\s*{)",s="abstract as base break case catch checked const continue default delegate do else event explicit extern finally fixed for foreach goto if implicit in internal is lock namespace new null operator out override params private protected public readonly ref return sealed sizeof stackalloc static switch this throw try typeof unchecked unsafe using virtual volatile while yield";function c(e){return"\\b(?:"+e.trim().replace(/ /g,"|")+")\\b"}var l=c(i),d=RegExp(c(a+" "+i+" "+o+" "+s)),u=c(i+" "+o+" "+s),f=c(a+" "+i+" "+s),p=r(/<(?:[^<>;=+\-*/%&|^]|<>)*>/.source,2),m=r(/\((?:[^()]|<>)*\)/.source,2),h=/@?\b[A-Za-z_]\w*\b/.source,b=t(/<<0>>(?:\s*<<1>>)?/.source,[h,p]),g=t(/(?!<<0>>)<<1>>(?:\s*\.\s*<<1>>)*/.source,[u,b]),v=/\[\s*(?:,\s*)*\]/.source,y=t(/<<0>>(?:\s*(?:\?\s*)?<<1>>)*(?:\s*\?)?/.source,[g,v]),k=t(/[^,()<>[\];=+\-*/%&|^]|<<0>>|<<1>>|<<2>>/.source,[p,m,v]),S=t(/\(<<0>>+(?:,<<0>>+)+\)/.source,[k]),w=t(/(?:<<0>>|<<1>>)(?:\s*(?:\?\s*)?<<2>>)*(?:\s*\?)?/.source,[S,g,v]),E={keyword:d,punctuation:/[<>()?,.:[\]]/},x=/'(?:[^\r\n'\\]|\\.|\\[Uux][\da-fA-F]{1,8})'/.source,C=/"(?:\\.|[^\\"\r\n])*"/.source,_=/@"(?:""|\\[\s\S]|[^\\"])*"(?!")/.source;e.languages.csharp=e.languages.extend("clike",{string:[{pattern:n(/(^|[^$\\])<<0>>/.source,[_]),lookbehind:!0,greedy:!0},{pattern:n(/(^|[^@$\\])<<0>>/.source,[C]),lookbehind:!0,greedy:!0}],"class-name":[{pattern:n(/(\busing\s+static\s+)<<0>>(?=\s*;)/.source,[g]),lookbehind:!0,inside:E},{pattern:n(/(\busing\s+<<0>>\s*=\s*)<<1>>(?=\s*;)/.source,[h,w]),lookbehind:!0,inside:E},{pattern:n(/(\busing\s+)<<0>>(?=\s*=)/.source,[h]),lookbehind:!0},{pattern:n(/(\b<<0>>\s+)<<1>>/.source,[l,b]),lookbehind:!0,inside:E},{pattern:n(/(\bcatch\s*\(\s*)<<0>>/.source,[g]),lookbehind:!0,inside:E},{pattern:n(/(\bwhere\s+)<<0>>/.source,[h]),lookbehind:!0},{pattern:n(/(\b(?:is(?:\s+not)?|as)\s+)<<0>>/.source,[y]),lookbehind:!0,inside:E},{pattern:n(/\b<<0>>(?=\s+(?!<<1>>|with\s*\{)<<2>>(?:\s*[=,;:{)\]]|\s+(?:in|when)\b))/.source,[w,f,h]),inside:E}],keyword:d,number:/(?:\b0(?:x[\da-f_]*[\da-f]|b[01_]*[01])|(?:\B\.\d+(?:_+\d+)*|\b\d+(?:_+\d+)*(?:\.\d+(?:_+\d+)*)?)(?:e[-+]?\d+(?:_+\d+)*)?)(?:[dflmu]|lu|ul)?\b/i,operator:/>>=?|<<=?|[-=]>|([-+&|])\1|~|\?\?=?|[-+*/%&|^!=<>]=?/,punctuation:/\?\.?|::|[{}[\];(),.:]/}),e.languages.insertBefore("csharp","number",{range:{pattern:/\.\./,alias:"operator"}}),e.languages.insertBefore("csharp","punctuation",{"named-parameter":{pattern:n(/([(,]\s*)<<0>>(?=\s*:)/.source,[h]),lookbehind:!0,alias:"punctuation"}}),e.languages.insertBefore("csharp","class-name",{namespace:{pattern:n(/(\b(?:namespace|using)\s+)<<0>>(?:\s*\.\s*<<0>>)*(?=\s*[;{])/.source,[h]),lookbehind:!0,inside:{punctuation:/\./}},"type-expression":{pattern:n(/(\b(?:default|sizeof|typeof)\s*\(\s*(?!\s))(?:[^()\s]|\s(?!\s)|<<0>>)*(?=\s*\))/.source,[m]),lookbehind:!0,alias:"class-name",inside:E},"return-type":{pattern:n(/<<0>>(?=\s+(?:<<1>>\s*(?:=>|[({]|\.\s*this\s*\[)|this\s*\[))/.source,[w,g]),inside:E,alias:"class-name"},"constructor-invocation":{pattern:n(/(\bnew\s+)<<0>>(?=\s*[[({])/.source,[w]),lookbehind:!0,inside:E,alias:"class-name"},"generic-method":{pattern:n(/<<0>>\s*<<1>>(?=\s*\()/.source,[h,p]),inside:{function:n(/^<<0>>/.source,[h]),generic:{pattern:RegExp(p),alias:"class-name",inside:E}}},"type-list":{pattern:n(/\b((?:<<0>>\s+<<1>>|record\s+<<1>>\s*<<5>>|where\s+<<2>>)\s*:\s*)(?:<<3>>|<<4>>|<<1>>\s*<<5>>|<<6>>)(?:\s*,\s*(?:<<3>>|<<4>>|<<6>>))*(?=\s*(?:where|[{;]|=>|$))/.source,[l,b,h,w,d.source,m,/\bnew\s*\(\s*\)/.source]),lookbehind:!0,inside:{"record-arguments":{pattern:n(/(^(?!new\s*\()<<0>>\s*)<<1>>/.source,[b,m]),lookbehind:!0,greedy:!0,inside:e.languages.csharp},keyword:d,"class-name":{pattern:RegExp(w),greedy:!0,inside:E},punctuation:/[,()]/}},preprocessor:{pattern:/(^[\t ]*)#.*/m,lookbehind:!0,alias:"property",inside:{directive:{pattern:/(#)\b(?:define|elif|else|endif|endregion|error|if|line|nullable|pragma|region|undef|warning)\b/,lookbehind:!0,alias:"keyword"}}}});var I=C+"|"+x,T=t(/\/(?![*/])|\/\/[^\r\n]*[\r\n]|\/\*(?:[^*]|\*(?!\/))*\*\/|<<0>>/.source,[I]),P=r(t(/[^"'/()]|<<0>>|\(<>*\)/.source,[T]),2),A=/\b(?:assembly|event|field|method|module|param|property|return|type)\b/.source,R=t(/<<0>>(?:\s*\(<<1>>*\))?/.source,[g,P]);e.languages.insertBefore("csharp","class-name",{attribute:{pattern:n(/((?:^|[^\s\w>)?])\s*\[\s*)(?:<<0>>\s*:\s*)?<<1>>(?:\s*,\s*<<1>>)*(?=\s*\])/.source,[A,R]),lookbehind:!0,greedy:!0,inside:{target:{pattern:n(/^<<0>>(?=\s*:)/.source,[A]),alias:"keyword"},"attribute-arguments":{pattern:n(/\(<<0>>*\)/.source,[P]),inside:e.languages.csharp},"class-name":{pattern:RegExp(g),inside:{punctuation:/\./}},punctuation:/[:,]/}}});var L=/:[^}\r\n]+/.source,O=r(t(/[^"'/()]|<<0>>|\(<>*\)/.source,[T]),2),N=t(/\{(?!\{)(?:(?![}:])<<0>>)*<<1>>?\}/.source,[O,L]),M=r(t(/[^"'/()]|\/(?!\*)|\/\*(?:[^*]|\*(?!\/))*\*\/|<<0>>|\(<>*\)/.source,[I]),2),D=t(/\{(?!\{)(?:(?![}:])<<0>>)*<<1>>?\}/.source,[M,L]);function z(t,r){return{interpolation:{pattern:n(/((?:^|[^{])(?:\{\{)*)<<0>>/.source,[t]),lookbehind:!0,inside:{"format-string":{pattern:n(/(^\{(?:(?![}:])<<0>>)*)<<1>>(?=\}$)/.source,[r,L]),lookbehind:!0,inside:{punctuation:/^:/}},punctuation:/^\{|\}$/,expression:{pattern:/[\s\S]+/,alias:"language-csharp",inside:e.languages.csharp}}},string:/[\s\S]+/}}e.languages.insertBefore("csharp","string",{"interpolation-string":[{pattern:n(/(^|[^\\])(?:\$@|@\$)"(?:""|\\[\s\S]|\{\{|<<0>>|[^\\{"])*"/.source,[N]),lookbehind:!0,greedy:!0,inside:z(N,O)},{pattern:n(/(^|[^@\\])\$"(?:\\.|\{\{|<<0>>|[^\\"{])*"/.source,[D]),lookbehind:!0,greedy:!0,inside:z(D,M)}],char:{pattern:RegExp(x),greedy:!0}}),e.languages.dotnet=e.languages.cs=e.languages.csharp}(Prism)},99945:()=>{!function(e){var t=/\/\*[\s\S]*?\*\/|\/\/.*|#(?!\[).*/,n=[{pattern:/\b(?:false|true)\b/i,alias:"boolean"},{pattern:/(::\s*)\b[a-z_]\w*\b(?!\s*\()/i,greedy:!0,lookbehind:!0},{pattern:/(\b(?:case|const)\s+)\b[a-z_]\w*(?=\s*[;=])/i,greedy:!0,lookbehind:!0},/\b(?:null)\b/i,/\b[A-Z_][A-Z0-9_]*\b(?!\s*\()/],r=/\b0b[01]+(?:_[01]+)*\b|\b0o[0-7]+(?:_[0-7]+)*\b|\b0x[\da-f]+(?:_[\da-f]+)*\b|(?:\b\d+(?:_\d+)*\.?(?:\d+(?:_\d+)*)?|\B\.\d+)(?:e[+-]?\d+)?/i,a=/|\?\?=?|\.{3}|\??->|[!=]=?=?|::|\*\*=?|--|\+\+|&&|\|\||<<|>>|[?~]|[/^|%*&<>.+-]=?/,i=/[{}\[\](),:;]/;e.languages.php={delimiter:{pattern:/\?>$|^<\?(?:php(?=\s)|=)?/i,alias:"important"},comment:t,variable:/\$+(?:\w+\b|(?=\{))/,package:{pattern:/(namespace\s+|use\s+(?:function\s+)?)(?:\\?\b[a-z_]\w*)+\b(?!\\)/i,lookbehind:!0,inside:{punctuation:/\\/}},"class-name-definition":{pattern:/(\b(?:class|enum|interface|trait)\s+)\b[a-z_]\w*(?!\\)\b/i,lookbehind:!0,alias:"class-name"},"function-definition":{pattern:/(\bfunction\s+)[a-z_]\w*(?=\s*\()/i,lookbehind:!0,alias:"function"},keyword:[{pattern:/(\(\s*)\b(?:array|bool|boolean|float|int|integer|object|string)\b(?=\s*\))/i,alias:"type-casting",greedy:!0,lookbehind:!0},{pattern:/([(,?]\s*)\b(?:array(?!\s*\()|bool|callable|(?:false|null)(?=\s*\|)|float|int|iterable|mixed|object|self|static|string)\b(?=\s*\$)/i,alias:"type-hint",greedy:!0,lookbehind:!0},{pattern:/(\)\s*:\s*(?:\?\s*)?)\b(?:array(?!\s*\()|bool|callable|(?:false|null)(?=\s*\|)|float|int|iterable|mixed|never|object|self|static|string|void)\b/i,alias:"return-type",greedy:!0,lookbehind:!0},{pattern:/\b(?:array(?!\s*\()|bool|float|int|iterable|mixed|object|string|void)\b/i,alias:"type-declaration",greedy:!0},{pattern:/(\|\s*)(?:false|null)\b|\b(?:false|null)(?=\s*\|)/i,alias:"type-declaration",greedy:!0,lookbehind:!0},{pattern:/\b(?:parent|self|static)(?=\s*::)/i,alias:"static-context",greedy:!0},{pattern:/(\byield\s+)from\b/i,lookbehind:!0},/\bclass\b/i,{pattern:/((?:^|[^\s>:]|(?:^|[^-])>|(?:^|[^:]):)\s*)\b(?:abstract|and|array|as|break|callable|case|catch|clone|const|continue|declare|default|die|do|echo|else|elseif|empty|enddeclare|endfor|endforeach|endif|endswitch|endwhile|enum|eval|exit|extends|final|finally|fn|for|foreach|function|global|goto|if|implements|include|include_once|instanceof|insteadof|interface|isset|list|match|namespace|never|new|or|parent|print|private|protected|public|readonly|require|require_once|return|self|static|switch|throw|trait|try|unset|use|var|while|xor|yield|__halt_compiler)\b/i,lookbehind:!0}],"argument-name":{pattern:/([(,]\s*)\b[a-z_]\w*(?=\s*:(?!:))/i,lookbehind:!0},"class-name":[{pattern:/(\b(?:extends|implements|instanceof|new(?!\s+self|\s+static))\s+|\bcatch\s*\()\b[a-z_]\w*(?!\\)\b/i,greedy:!0,lookbehind:!0},{pattern:/(\|\s*)\b[a-z_]\w*(?!\\)\b/i,greedy:!0,lookbehind:!0},{pattern:/\b[a-z_]\w*(?!\\)\b(?=\s*\|)/i,greedy:!0},{pattern:/(\|\s*)(?:\\?\b[a-z_]\w*)+\b/i,alias:"class-name-fully-qualified",greedy:!0,lookbehind:!0,inside:{punctuation:/\\/}},{pattern:/(?:\\?\b[a-z_]\w*)+\b(?=\s*\|)/i,alias:"class-name-fully-qualified",greedy:!0,inside:{punctuation:/\\/}},{pattern:/(\b(?:extends|implements|instanceof|new(?!\s+self\b|\s+static\b))\s+|\bcatch\s*\()(?:\\?\b[a-z_]\w*)+\b(?!\\)/i,alias:"class-name-fully-qualified",greedy:!0,lookbehind:!0,inside:{punctuation:/\\/}},{pattern:/\b[a-z_]\w*(?=\s*\$)/i,alias:"type-declaration",greedy:!0},{pattern:/(?:\\?\b[a-z_]\w*)+(?=\s*\$)/i,alias:["class-name-fully-qualified","type-declaration"],greedy:!0,inside:{punctuation:/\\/}},{pattern:/\b[a-z_]\w*(?=\s*::)/i,alias:"static-context",greedy:!0},{pattern:/(?:\\?\b[a-z_]\w*)+(?=\s*::)/i,alias:["class-name-fully-qualified","static-context"],greedy:!0,inside:{punctuation:/\\/}},{pattern:/([(,?]\s*)[a-z_]\w*(?=\s*\$)/i,alias:"type-hint",greedy:!0,lookbehind:!0},{pattern:/([(,?]\s*)(?:\\?\b[a-z_]\w*)+(?=\s*\$)/i,alias:["class-name-fully-qualified","type-hint"],greedy:!0,lookbehind:!0,inside:{punctuation:/\\/}},{pattern:/(\)\s*:\s*(?:\?\s*)?)\b[a-z_]\w*(?!\\)\b/i,alias:"return-type",greedy:!0,lookbehind:!0},{pattern:/(\)\s*:\s*(?:\?\s*)?)(?:\\?\b[a-z_]\w*)+\b(?!\\)/i,alias:["class-name-fully-qualified","return-type"],greedy:!0,lookbehind:!0,inside:{punctuation:/\\/}}],constant:n,function:{pattern:/(^|[^\\\w])\\?[a-z_](?:[\w\\]*\w)?(?=\s*\()/i,lookbehind:!0,inside:{punctuation:/\\/}},property:{pattern:/(->\s*)\w+/,lookbehind:!0},number:r,operator:a,punctuation:i};var o={pattern:/\{\$(?:\{(?:\{[^{}]+\}|[^{}]+)\}|[^{}])+\}|(^|[^\\{])\$+(?:\w+(?:\[[^\r\n\[\]]+\]|->\w+)?)/,lookbehind:!0,inside:e.languages.php},s=[{pattern:/<<<'([^']+)'[\r\n](?:.*[\r\n])*?\1;/,alias:"nowdoc-string",greedy:!0,inside:{delimiter:{pattern:/^<<<'[^']+'|[a-z_]\w*;$/i,alias:"symbol",inside:{punctuation:/^<<<'?|[';]$/}}}},{pattern:/<<<(?:"([^"]+)"[\r\n](?:.*[\r\n])*?\1;|([a-z_]\w*)[\r\n](?:.*[\r\n])*?\2;)/i,alias:"heredoc-string",greedy:!0,inside:{delimiter:{pattern:/^<<<(?:"[^"]+"|[a-z_]\w*)|[a-z_]\w*;$/i,alias:"symbol",inside:{punctuation:/^<<<"?|[";]$/}},interpolation:o}},{pattern:/`(?:\\[\s\S]|[^\\`])*`/,alias:"backtick-quoted-string",greedy:!0},{pattern:/'(?:\\[\s\S]|[^\\'])*'/,alias:"single-quoted-string",greedy:!0},{pattern:/"(?:\\[\s\S]|[^\\"])*"/,alias:"double-quoted-string",greedy:!0,inside:{interpolation:o}}];e.languages.insertBefore("php","variable",{string:s,attribute:{pattern:/#\[(?:[^"'\/#]|\/(?![*/])|\/\/.*$|#(?!\[).*$|\/\*(?:[^*]|\*(?!\/))*\*\/|"(?:\\[\s\S]|[^\\"])*"|'(?:\\[\s\S]|[^\\'])*')+\](?=\s*[a-z$#])/im,greedy:!0,inside:{"attribute-content":{pattern:/^(#\[)[\s\S]+(?=\]$)/,lookbehind:!0,inside:{comment:t,string:s,"attribute-class-name":[{pattern:/([^:]|^)\b[a-z_]\w*(?!\\)\b/i,alias:"class-name",greedy:!0,lookbehind:!0},{pattern:/([^:]|^)(?:\\?\b[a-z_]\w*)+/i,alias:["class-name","class-name-fully-qualified"],greedy:!0,lookbehind:!0,inside:{punctuation:/\\/}}],constant:n,number:r,operator:a,punctuation:i}},delimiter:{pattern:/^#\[|\]$/,alias:"punctuation"}}}}),e.hooks.add("before-tokenize",(function(t){if(/<\?/.test(t.code)){e.languages["markup-templating"].buildPlaceholders(t,"php",/<\?(?:[^"'/#]|\/(?![*/])|("|')(?:\\[\s\S]|(?!\1)[^\\])*\1|(?:\/\/|#(?!\[))(?:[^?\n\r]|\?(?!>))*(?=$|\?>|[\r\n])|#\[|\/\*(?:[^*]|\*(?!\/))*(?:\*\/|$))*?(?:\?>|$)/g)}})),e.hooks.add("after-tokenize",(function(t){e.languages["markup-templating"].tokenizePlaceholders(t,"php")}))}(Prism)},37345:()=>{!function(e){var t=/\b(?:bool|bytes|double|s?fixed(?:32|64)|float|[su]?int(?:32|64)|string)\b/;e.languages.protobuf=e.languages.extend("clike",{"class-name":[{pattern:/(\b(?:enum|extend|message|service)\s+)[A-Za-z_]\w*(?=\s*\{)/,lookbehind:!0},{pattern:/(\b(?:rpc\s+\w+|returns)\s*\(\s*(?:stream\s+)?)\.?[A-Za-z_]\w*(?:\.[A-Za-z_]\w*)*(?=\s*\))/,lookbehind:!0}],keyword:/\b(?:enum|extend|extensions|import|message|oneof|option|optional|package|public|repeated|required|reserved|returns|rpc(?=\s+\w)|service|stream|syntax|to)\b(?!\s*=\s*\d)/,function:/\b[a-z_]\w*(?=\s*\()/i}),e.languages.insertBefore("protobuf","operator",{map:{pattern:/\bmap<\s*[\w.]+\s*,\s*[\w.]+\s*>(?=\s+[a-z_]\w*\s*[=;])/i,alias:"class-name",inside:{punctuation:/[<>.,]/,builtin:t}},builtin:t,"positional-class-name":{pattern:/(?:\b|\B\.)[a-z_]\w*(?:\.[a-z_]\w*)*(?=\s+[a-z_]\w*\s*[=;])/i,alias:"class-name",inside:{punctuation:/\./}},annotation:{pattern:/(\[\s*)[a-z_]\w*(?=\s*=)/i,lookbehind:!0}})}(Prism)},59385:()=>{!function(e){e.languages.ruby=e.languages.extend("clike",{comment:{pattern:/#.*|^=begin\s[\s\S]*?^=end/m,greedy:!0},"class-name":{pattern:/(\b(?:class|module)\s+|\bcatch\s+\()[\w.\\]+|\b[A-Z_]\w*(?=\s*\.\s*new\b)/,lookbehind:!0,inside:{punctuation:/[.\\]/}},keyword:/\b(?:BEGIN|END|alias|and|begin|break|case|class|def|define_method|defined|do|each|else|elsif|end|ensure|extend|for|if|in|include|module|new|next|nil|not|or|prepend|private|protected|public|raise|redo|require|rescue|retry|return|self|super|then|throw|undef|unless|until|when|while|yield)\b/,operator:/\.{2,3}|&\.|===||[!=]?~|(?:&&|\|\||<<|>>|\*\*|[+\-*/%<>!^&|=])=?|[?:]/,punctuation:/[(){}[\].,;]/}),e.languages.insertBefore("ruby","operator",{"double-colon":{pattern:/::/,alias:"punctuation"}});var t={pattern:/((?:^|[^\\])(?:\\{2})*)#\{(?:[^{}]|\{[^{}]*\})*\}/,lookbehind:!0,inside:{content:{pattern:/^(#\{)[\s\S]+(?=\}$)/,lookbehind:!0,inside:e.languages.ruby},delimiter:{pattern:/^#\{|\}$/,alias:"punctuation"}}};delete e.languages.ruby.function;var n="(?:"+[/([^a-zA-Z0-9\s{(\[<=])(?:(?!\1)[^\\]|\\[\s\S])*\1/.source,/\((?:[^()\\]|\\[\s\S]|\((?:[^()\\]|\\[\s\S])*\))*\)/.source,/\{(?:[^{}\\]|\\[\s\S]|\{(?:[^{}\\]|\\[\s\S])*\})*\}/.source,/\[(?:[^\[\]\\]|\\[\s\S]|\[(?:[^\[\]\\]|\\[\s\S])*\])*\]/.source,/<(?:[^<>\\]|\\[\s\S]|<(?:[^<>\\]|\\[\s\S])*>)*>/.source].join("|")+")",r=/(?:"(?:\\.|[^"\\\r\n])*"|(?:\b[a-zA-Z_]\w*|[^\s\0-\x7F]+)[?!]?|\$.)/.source;e.languages.insertBefore("ruby","keyword",{"regex-literal":[{pattern:RegExp(/%r/.source+n+/[egimnosux]{0,6}/.source),greedy:!0,inside:{interpolation:t,regex:/[\s\S]+/}},{pattern:/(^|[^/])\/(?!\/)(?:\[[^\r\n\]]+\]|\\.|[^[/\\\r\n])+\/[egimnosux]{0,6}(?=\s*(?:$|[\r\n,.;})#]))/,lookbehind:!0,greedy:!0,inside:{interpolation:t,regex:/[\s\S]+/}}],variable:/[@$]+[a-zA-Z_]\w*(?:[?!]|\b)/,symbol:[{pattern:RegExp(/(^|[^:]):/.source+r),lookbehind:!0,greedy:!0},{pattern:RegExp(/([\r\n{(,][ \t]*)/.source+r+/(?=:(?!:))/.source),lookbehind:!0,greedy:!0}],"method-definition":{pattern:/(\bdef\s+)\w+(?:\s*\.\s*\w+)?/,lookbehind:!0,inside:{function:/\b\w+$/,keyword:/^self\b/,"class-name":/^\w+/,punctuation:/\./}}}),e.languages.insertBefore("ruby","string",{"string-literal":[{pattern:RegExp(/%[qQiIwWs]?/.source+n),greedy:!0,inside:{interpolation:t,string:/[\s\S]+/}},{pattern:/("|')(?:#\{[^}]+\}|#(?!\{)|\\(?:\r\n|[\s\S])|(?!\1)[^\\#\r\n])*\1/,greedy:!0,inside:{interpolation:t,string:/[\s\S]+/}},{pattern:/<<[-~]?([a-z_]\w*)[\r\n](?:.*[\r\n])*?[\t ]*\1/i,alias:"heredoc-string",greedy:!0,inside:{delimiter:{pattern:/^<<[-~]?[a-z_]\w*|\b[a-z_]\w*$/i,inside:{symbol:/\b\w+/,punctuation:/^<<[-~]?/}},interpolation:t,string:/[\s\S]+/}},{pattern:/<<[-~]?'([a-z_]\w*)'[\r\n](?:.*[\r\n])*?[\t ]*\1/i,alias:"heredoc-string",greedy:!0,inside:{delimiter:{pattern:/^<<[-~]?'[a-z_]\w*'|\b[a-z_]\w*$/i,inside:{symbol:/\b\w+/,punctuation:/^<<[-~]?'|'$/}},string:/[\s\S]+/}}],"command-literal":[{pattern:RegExp(/%x/.source+n),greedy:!0,inside:{interpolation:t,command:{pattern:/[\s\S]+/,alias:"string"}}},{pattern:/`(?:#\{[^}]+\}|#(?!\{)|\\(?:\r\n|[\s\S])|[^\\`#\r\n])*`/,greedy:!0,inside:{interpolation:t,command:{pattern:/[\s\S]+/,alias:"string"}}}]}),delete e.languages.ruby.string,e.languages.insertBefore("ruby","number",{builtin:/\b(?:Array|Bignum|Binding|Class|Continuation|Dir|Exception|FalseClass|File|Fixnum|Float|Hash|IO|Integer|MatchData|Method|Module|NilClass|Numeric|Object|Proc|Range|Regexp|Stat|String|Struct|Symbol|TMS|Thread|ThreadGroup|Time|TrueClass)\b/,constant:/\b[A-Z][A-Z0-9_]*(?:[?!]|\b)/}),e.languages.rb=e.languages.ruby}(Prism)},99768:(e,t,n)=>{var r={"./prism-csharp":79016,"./prism-php":99945,"./prism-protobuf":37345,"./prism-ruby":59385};function a(e){var t=i(e);return n(t)}function i(e){if(!n.o(r,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return r[e]}a.keys=function(){return Object.keys(r)},a.resolve=i,e.exports=a,a.id=99768},34155:e=>{var t,n,r=e.exports={};function a(){throw new Error("setTimeout has not been defined")}function i(){throw new Error("clearTimeout has not been defined")}function o(e){if(t===setTimeout)return setTimeout(e,0);if((t===a||!t)&&setTimeout)return t=setTimeout,setTimeout(e,0);try{return t(e,0)}catch(n){try{return t.call(null,e,0)}catch(n){return t.call(this,e,0)}}}!function(){try{t="function"==typeof setTimeout?setTimeout:a}catch(e){t=a}try{n="function"==typeof clearTimeout?clearTimeout:i}catch(e){n=i}}();var s,c=[],l=!1,d=-1;function u(){l&&s&&(l=!1,s.length?c=s.concat(c):d=-1,c.length&&f())}function f(){if(!l){var e=o(u);l=!0;for(var t=c.length;t;){for(s=c,c=[];++d1)for(var n=1;n{"use strict";var r=n(50414);function a(){}function i(){}i.resetWarningCache=a,e.exports=function(){function e(e,t,n,a,i,o){if(o!==r){var s=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw s.name="Invariant Violation",s}}function t(){return e}e.isRequired=e;var n={array:e,bigint:e,bool:e,func:e,number:e,object:e,string:e,symbol:e,any:e,arrayOf:t,element:e,elementType:e,instanceOf:t,node:e,objectOf:t,oneOf:t,oneOfType:t,shape:t,exact:t,checkPropTypes:i,resetWarningCache:a};return n.PropTypes=n,n}},45697:(e,t,n)=>{e.exports=n(92703)()},50414:e=>{"use strict";e.exports="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"},64448:(e,t,n)=>{"use strict";var r=n(67294),a=n(63840);function i(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,n=1;n