UNPKG

@swipewallet/venus-js

Version:

A JavaScript SDK for Ethereum and the Venus Protocol.

333 lines (327 loc) 17 kB
<!doctype html> <html class="default no-js"> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <title>&quot;gov&quot; | Venus.js - v0.0.4</title> <meta name="description" content="Documentation for Venus.js - v0.0.4"> <meta name="viewport" content="width=device-width, initial-scale=1"> <link rel="stylesheet" href="../assets/css/main.css"> </head> <body> <header> <div class="tsd-page-toolbar"> <div class="container"> <div class="table-wrap"> <div class="table-cell" id="tsd-search" data-index="../assets/js/search.json" data-base=".."> <div class="field"> <label for="tsd-search-field" class="tsd-widget search no-caption">Search</label> <input id="tsd-search-field" type="text" /> </div> <ul class="results"> <li class="state loading">Preparing search index...</li> <li class="state failure">The search index is not available</li> </ul> <a href="../index.html" class="title">Venus.js - v0.0.4</a> </div> <div class="table-cell" id="tsd-widgets"> <div id="tsd-filter"> <a href="#" class="tsd-widget options no-caption" data-toggle="options">Options</a> <div class="tsd-filter-group"> <div class="tsd-select" id="tsd-filter-visibility"> <span class="tsd-select-label">All</span> <ul class="tsd-select-list"> <li data-value="public">Public</li> <li data-value="protected">Public/Protected</li> <li data-value="private" class="selected">All</li> </ul> </div> <input type="checkbox" id="tsd-filter-inherited" checked /> <label class="tsd-widget" for="tsd-filter-inherited">Inherited</label> <input type="checkbox" id="tsd-filter-only-exported" /> <label class="tsd-widget" for="tsd-filter-only-exported">Only exported</label> </div> </div> <a href="#" class="tsd-widget menu no-caption" data-toggle="menu">Menu</a> </div> </div> </div> </div> <div class="tsd-page-title"> <div class="container"> <ul class="tsd-breadcrumb"> <li> <a href="../globals.html">Globals</a> </li> <li> <a href="_gov_.html">&quot;gov&quot;</a> </li> </ul> <h1>Module &quot;gov&quot;</h1> </div> </div> </header> <div class="container container-main"> <div class="row"> <div class="col-8 col-content"> <section class="tsd-panel-group tsd-index-group"> <h2>Index</h2> <section class="tsd-panel tsd-index-panel"> <div class="tsd-index-content"> <section class="tsd-index-section "> <h3>Functions</h3> <ul class="tsd-index-list"> <li class="tsd-kind-function tsd-parent-kind-module"><a href="_gov_.html#castvote" class="tsd-kind-icon">cast<wbr>Vote</a></li> <li class="tsd-kind-function tsd-parent-kind-module"><a href="_gov_.html#castvotebysig" class="tsd-kind-icon">cast<wbr>Vote<wbr>BySig</a></li> <li class="tsd-kind-function tsd-parent-kind-module"><a href="_gov_.html#createvotesignature" class="tsd-kind-icon">create<wbr>Vote<wbr>Signature</a></li> </ul> </section> </div> </section> </section> <section class="tsd-panel-group tsd-member-group "> <h2>Functions</h2> <section class="tsd-panel tsd-member tsd-kind-function tsd-parent-kind-module"> <a name="castvote" class="tsd-anchor"></a> <h3>cast<wbr>Vote</h3> <ul class="tsd-signatures tsd-kind-function tsd-parent-kind-module"> <li class="tsd-signature tsd-kind-icon">cast<wbr>Vote<span class="tsd-signature-symbol">(</span>proposalId<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span>, support<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">boolean</span>, options<span class="tsd-signature-symbol">?: </span><span class="tsd-signature-type">CallOptions</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">TrxResponse</span><span class="tsd-signature-symbol">&gt;</span></li> </ul> <ul class="tsd-descriptions"> <li class="tsd-description"> <aside class="tsd-sources"> <ul> <li>Defined in <a href="https://github.com/VenusProtocol/venus-js/blob/f412301/src/gov.ts#L43">gov.ts:43</a></li> </ul> </aside> <div class="tsd-comment tsd-typography"> <div class="lead"> <p>Submit a vote on a Venus Governance proposal.</p> </div> <dl class="tsd-comment-tags"> <dt>example</dt> <dd><pre><code><span class="hljs-keyword">const</span> venus = <span class="hljs-keyword">new</span> Venus(<span class="hljs-built_in">window</span>.ethereum); (<span class="hljs-keyword">async</span> <span class="hljs-function"><span class="hljs-keyword">function</span>(<span class="hljs-params"></span>) </span>{ <span class="hljs-keyword">const</span> castVoteTx = <span class="hljs-keyword">await</span> venus.castVote(<span class="hljs-number">12</span>, <span class="hljs-literal">true</span>); <span class="hljs-built_in">console</span>.log(<span class="hljs-string">&#x27;Ethers.js transaction object&#x27;</span>, castVoteTx); })().catch(<span class="hljs-built_in">console</span>.error);</code></pre> </dd> </dl> </div> <h4 class="tsd-parameters-title">Parameters</h4> <ul class="tsd-parameters"> <li> <h5>proposalId: <span class="tsd-signature-type">number</span></h5> <div class="tsd-comment tsd-typography"> <p>The ID of the proposal to vote on. This is an auto-incrementing integer in the Governor Alpha contract.</p> </div> </li> <li> <h5>support: <span class="tsd-signature-type">boolean</span></h5> <div class="tsd-comment tsd-typography"> <p>A boolean of true for &#39;yes&#39; or false for &#39;no&#39; on the proposal vote.</p> </div> </li> <li> <h5><span class="tsd-flag ts-flagDefault value">Default value</span> options: <span class="tsd-signature-type">CallOptions</span><span class="tsd-signature-symbol"> = {}</span></h5> </li> </ul> <h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">TrxResponse</span><span class="tsd-signature-symbol">&gt;</span></h4> <p>Returns an Ethers.js transaction object of the vote transaction.</p> </li> </ul> </section> <section class="tsd-panel tsd-member tsd-kind-function tsd-parent-kind-module"> <a name="castvotebysig" class="tsd-anchor"></a> <h3>cast<wbr>Vote<wbr>BySig</h3> <ul class="tsd-signatures tsd-kind-function tsd-parent-kind-module"> <li class="tsd-signature tsd-kind-icon">cast<wbr>Vote<wbr>BySig<span class="tsd-signature-symbol">(</span>proposalId<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span>, support<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">boolean</span>, signature<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Signature</span>, options<span class="tsd-signature-symbol">?: </span><span class="tsd-signature-type">CallOptions</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">TrxResponse</span><span class="tsd-signature-symbol">&gt;</span></li> </ul> <ul class="tsd-descriptions"> <li class="tsd-description"> <aside class="tsd-sources"> <ul> <li>Defined in <a href="https://github.com/VenusProtocol/venus-js/blob/f412301/src/gov.ts#L103">gov.ts:103</a></li> </ul> </aside> <div class="tsd-comment tsd-typography"> <div class="lead"> <p>Submit a vote on a Venus Governance proposal using an EIP-712 signature.</p> </div> <dl class="tsd-comment-tags"> <dt>example</dt> <dd><pre><code><span class="hljs-keyword">const</span> venus = <span class="hljs-keyword">new</span> Venus(<span class="hljs-built_in">window</span>.ethereum); (<span class="hljs-keyword">async</span> <span class="hljs-function"><span class="hljs-keyword">function</span>(<span class="hljs-params"></span>) </span>{ <span class="hljs-keyword">const</span> castVoteTx = <span class="hljs-keyword">await</span> venus.castVoteBySig( <span class="hljs-number">12</span>, <span class="hljs-literal">true</span>, { <span class="hljs-attr">v</span>: <span class="hljs-string">&#x27;0x1b&#x27;</span>, <span class="hljs-attr">r</span>: <span class="hljs-string">&#x27;0x130dbcd2faca07424c033b4479687cc1deeb65f08509e3ab397988cc4c6f2e78&#x27;</span>, <span class="hljs-attr">s</span>: <span class="hljs-string">&#x27;0x1debcb8250262f23906b1177161f0c7c9aa3641e6bff5b6f5c88a6bb78d5d8cd&#x27;</span> } ); <span class="hljs-built_in">console</span>.log(<span class="hljs-string">&#x27;Ethers.js transaction object&#x27;</span>, castVoteTx); })().catch(<span class="hljs-built_in">console</span>.error);</code></pre> </dd> </dl> </div> <h4 class="tsd-parameters-title">Parameters</h4> <ul class="tsd-parameters"> <li> <h5>proposalId: <span class="tsd-signature-type">number</span></h5> <div class="tsd-comment tsd-typography"> <p>The ID of the proposal to vote on. This is an auto-incrementing integer in the Governor Alpha contract.</p> </div> </li> <li> <h5>support: <span class="tsd-signature-type">boolean</span></h5> <div class="tsd-comment tsd-typography"> <p>A boolean of true for &#39;yes&#39; or false for &#39;no&#39; on the proposal vote.</p> </div> </li> <li> <h5>signature: <span class="tsd-signature-type">Signature</span></h5> <div class="tsd-comment tsd-typography"> <p>An object that contains the v, r, and, s values of an EIP-712 signature.</p> </div> </li> <li> <h5><span class="tsd-flag ts-flagDefault value">Default value</span> options: <span class="tsd-signature-type">CallOptions</span><span class="tsd-signature-symbol"> = {}</span></h5> </li> </ul> <h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">TrxResponse</span><span class="tsd-signature-symbol">&gt;</span></h4> <p>Returns an Ethers.js transaction object of the vote transaction.</p> </li> </ul> </section> <section class="tsd-panel tsd-member tsd-kind-function tsd-parent-kind-module"> <a name="createvotesignature" class="tsd-anchor"></a> <h3>create<wbr>Vote<wbr>Signature</h3> <ul class="tsd-signatures tsd-kind-function tsd-parent-kind-module"> <li class="tsd-signature tsd-kind-icon">create<wbr>Vote<wbr>Signature<span class="tsd-signature-symbol">(</span>proposalId<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span>, support<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">boolean</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">Signature</span><span class="tsd-signature-symbol">&gt;</span></li> </ul> <ul class="tsd-descriptions"> <li class="tsd-description"> <aside class="tsd-sources"> <ul> <li>Defined in <a href="https://github.com/VenusProtocol/venus-js/blob/f412301/src/gov.ts#L172">gov.ts:172</a></li> </ul> </aside> <div class="tsd-comment tsd-typography"> <div class="lead"> <p>Create a vote signature for a Venus Governance proposal using EIP-712. This can be used to create an &#39;empty ballot&#39; without burning gas. The signature can then be sent to someone else to post to the blockchain. The recipient can post one signature using the <code>castVoteBySig</code> method.</p> </div> <dl class="tsd-comment-tags"> <dt>example</dt> <dd><pre><code><span class="hljs-keyword">const</span> venus = <span class="hljs-keyword">new</span> Venus(<span class="hljs-built_in">window</span>.ethereum); (<span class="hljs-keyword">async</span> () =&gt; { <span class="hljs-keyword">const</span> voteForSignature = <span class="hljs-keyword">await</span> venus.createVoteSignature(<span class="hljs-number">20</span>, <span class="hljs-literal">true</span>); <span class="hljs-built_in">console</span>.log(<span class="hljs-string">&#x27;voteForSignature&#x27;</span>, voteForSignature); <span class="hljs-keyword">const</span> voteAgainstSignature = <span class="hljs-keyword">await</span> venus.createVoteSignature(<span class="hljs-number">20</span>, <span class="hljs-literal">false</span>); <span class="hljs-built_in">console</span>.log(<span class="hljs-string">&#x27;voteAgainstSignature&#x27;</span>, voteAgainstSignature); })().<span class="hljs-keyword">catch</span>(<span class="hljs-built_in">console</span>.error);</code></pre> </dd> </dl> </div> <h4 class="tsd-parameters-title">Parameters</h4> <ul class="tsd-parameters"> <li> <h5>proposalId: <span class="tsd-signature-type">number</span></h5> <div class="tsd-comment tsd-typography"> <p>The ID of the proposal to vote on. This is an auto-incrementing integer in the Governor Alpha contract.</p> </div> </li> <li> <h5>support: <span class="tsd-signature-type">boolean</span></h5> <div class="tsd-comment tsd-typography"> <p>A boolean of true for &#39;yes&#39; or false for &#39;no&#39; on the proposal vote. To create an &#39;empty ballot&#39; call this method twice using <code>true</code> and then <code>false</code> for this parameter.</p> </div> </li> </ul> <h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">Signature</span><span class="tsd-signature-symbol">&gt;</span></h4> <p>Returns an object that contains the <code>v</code>, <code>r</code>, and <code>s</code> components of an Ethereum signature as hexadecimal strings.</p> </li> </ul> </section> </section> </div> <div class="col-4 col-menu menu-sticky-wrap menu-highlight"> <nav class="tsd-navigation primary"> <ul> <li class="globals "> <a href="../globals.html"><em>Globals</em></a> </li> <li class=" tsd-kind-module"> <a href="_api_.html">&quot;api&quot;</a> </li> <li class=" tsd-kind-module"> <a href="_comp_.html">&quot;comp&quot;</a> </li> <li class=" tsd-kind-module"> <a href="_comptroller_.html">&quot;comptroller&quot;</a> </li> <li class=" tsd-kind-module"> <a href="_eth_.html">&quot;eth&quot;</a> </li> <li class="current tsd-kind-module"> <a href="_gov_.html">&quot;gov&quot;</a> </li> <li class=" tsd-kind-module"> <a href="_index_.html">&quot;index&quot;</a> </li> <li class=" tsd-kind-module"> <a href="_pricefeed_.html">&quot;price<wbr>Feed&quot;</a> </li> <li class=" tsd-kind-module"> <a href="_util_.html">&quot;util&quot;</a> </li> <li class=" tsd-kind-module"> <a href="_vtoken_.html">&quot;v<wbr>Token&quot;</a> </li> </ul> </nav> <nav class="tsd-navigation secondary menu-sticky"> <ul class="before-current"> <li class=" tsd-kind-function tsd-parent-kind-module"> <a href="_gov_.html#castvote" class="tsd-kind-icon">cast<wbr>Vote</a> </li> <li class=" tsd-kind-function tsd-parent-kind-module"> <a href="_gov_.html#castvotebysig" class="tsd-kind-icon">cast<wbr>Vote<wbr>BySig</a> </li> <li class=" tsd-kind-function tsd-parent-kind-module"> <a href="_gov_.html#createvotesignature" class="tsd-kind-icon">create<wbr>Vote<wbr>Signature</a> </li> </ul> </nav> </div> </div> </div> <footer> <div class="container"> <h2>Legend</h2> <div class="tsd-legend-group"> <ul class="tsd-legend"> <li class="tsd-kind-function"><span class="tsd-kind-icon">Function</span></li> </ul> </div> </div> </footer> <div class="overlay"></div> <script src="../assets/js/main.js"></script> </body> </html>