UNPKG

@swipewallet/venus-js

Version:

A JavaScript SDK for Ethereum and the Venus Protocol.

419 lines (403 loc) 24 kB
<!doctype html> <html class="default no-js"> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <title>&quot;vToken&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="_vtoken_.html">&quot;vToken&quot;</a> </li> </ul> <h1>Module &quot;vToken&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="_vtoken_.html#borrow" class="tsd-kind-icon">borrow</a></li> <li class="tsd-kind-function tsd-parent-kind-module"><a href="_vtoken_.html#redeem" class="tsd-kind-icon">redeem</a></li> <li class="tsd-kind-function tsd-parent-kind-module"><a href="_vtoken_.html#repayborrow" class="tsd-kind-icon">repay<wbr>Borrow</a></li> <li class="tsd-kind-function tsd-parent-kind-module"><a href="_vtoken_.html#supply" class="tsd-kind-icon">supply</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="borrow" class="tsd-anchor"></a> <h3>borrow</h3> <ul class="tsd-signatures tsd-kind-function tsd-parent-kind-module"> <li class="tsd-signature tsd-kind-icon">borrow<span class="tsd-signature-symbol">(</span>asset<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span>, amount<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">BigNumber</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/vToken.ts#L242">vToken.ts:242</a></li> </ul> </aside> <div class="tsd-comment tsd-typography"> <div class="lead"> <p>Borrows an Binance Smart Chain asset from the Venus Protocol for the user. The user&#39;s address must first have supplied collateral and entered a corresponding market.</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> sxpScaledUp = <span class="hljs-string">&#x27;32000000000000000000&#x27;</span>; <span class="hljs-keyword">const</span> trxOptions = { <span class="hljs-attr">mantissa</span>: <span class="hljs-literal">true</span> }; <span class="hljs-built_in">console</span>.log(<span class="hljs-string">&#x27;Borrowing 32 SXP...&#x27;</span>); <span class="hljs-keyword">const</span> trx = <span class="hljs-keyword">await</span> venus.borrow(Venus.SXP, sxpScaledUp, trxOptions); <span class="hljs-built_in">console</span>.log(<span class="hljs-string">&#x27;Ethers.js transaction object&#x27;</span>, trx); })().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>asset: <span class="tsd-signature-type">string</span></h5> <div class="tsd-comment tsd-typography"> <p>A string of the asset to borrow (must be a supported underlying asset).</p> </div> </li> <li> <h5>amount: <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">BigNumber</span></h5> <div class="tsd-comment tsd-typography"> <p>A string, number, or BigNumber object of the amount of an asset to borrow. Use the <code>mantissa</code> boolean in the <code>options</code> parameter to indicate if this value is scaled up (so there are no decimals) or in its natural scale.</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 borrow transaction.</p> </li> </ul> </section> <section class="tsd-panel tsd-member tsd-kind-function tsd-parent-kind-module"> <a name="redeem" class="tsd-anchor"></a> <h3>redeem</h3> <ul class="tsd-signatures tsd-kind-function tsd-parent-kind-module"> <li class="tsd-signature tsd-kind-icon">redeem<span class="tsd-signature-symbol">(</span>asset<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span>, amount<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">BigNumber</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/vToken.ts#L158">vToken.ts:158</a></li> </ul> </aside> <div class="tsd-comment tsd-typography"> <div class="lead"> <p>Redeems the user&#39;s Binance Smart Chain asset from the Venus Protocol.</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-built_in">console</span>.log(<span class="hljs-string">&#x27;Redeeming SXP...&#x27;</span>); <span class="hljs-keyword">const</span> trx = <span class="hljs-keyword">await</span> venus.redeem(Venus.SXP, <span class="hljs-number">1</span>); <span class="hljs-comment">// also accepts vToken args</span> <span class="hljs-built_in">console</span>.log(<span class="hljs-string">&#x27;Ethers.js transaction object&#x27;</span>, trx); })().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>asset: <span class="tsd-signature-type">string</span></h5> <div class="tsd-comment tsd-typography"> <p>A string of the asset to redeem, or its vToken name.</p> </div> </li> <li> <h5>amount: <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">BigNumber</span></h5> <div class="tsd-comment tsd-typography"> <p>A string, number, or BigNumber object of the amount of an asset to redeem. Use the <code>mantissa</code> boolean in the <code>options</code> parameter to indicate if this value is scaled up (so there are no decimals) or in its natural scale. This can be an amount of vTokens or underlying asset (use the <code>asset</code> parameter to specify).</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 redeem transaction.</p> </li> </ul> </section> <section class="tsd-panel tsd-member tsd-kind-function tsd-parent-kind-module"> <a name="repayborrow" class="tsd-anchor"></a> <h3>repay<wbr>Borrow</h3> <ul class="tsd-signatures tsd-kind-function tsd-parent-kind-module"> <li class="tsd-signature tsd-kind-icon">repay<wbr>Borrow<span class="tsd-signature-symbol">(</span>asset<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span>, amount<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">BigNumber</span>, borrower<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span>, noApprove<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/vToken.ts#L321">vToken.ts:321</a></li> </ul> </aside> <div class="tsd-comment tsd-typography"> <div class="lead"> <p>Repays a borrowed Binance Smart Chain asset for the user or on behalf of another Binance Smart Chain address.</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-built_in">console</span>.log(<span class="hljs-string">&#x27;Repaying SXP borrow...&#x27;</span>); <span class="hljs-keyword">const</span> address = <span class="hljs-literal">null</span>; <span class="hljs-comment">// set this to any address to repayBorrowBehalf</span> <span class="hljs-keyword">const</span> trx = <span class="hljs-keyword">await</span> venus.repayBorrow(Venus.SXP, <span class="hljs-number">32</span>, address); <span class="hljs-built_in">console</span>.log(<span class="hljs-string">&#x27;Ethers.js transaction object&#x27;</span>, trx); })().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>asset: <span class="tsd-signature-type">string</span></h5> <div class="tsd-comment tsd-typography"> <p>A string of the asset that was borrowed (must be a supported underlying asset).</p> </div> </li> <li> <h5>amount: <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">BigNumber</span></h5> <div class="tsd-comment tsd-typography"> <p>A string, number, or BigNumber object of the amount of an asset to borrow. Use the <code>mantissa</code> boolean in the <code>options</code> parameter to indicate if this value is scaled up (so there are no decimals) or in its natural scale.</p> </div> </li> <li> <h5>borrower: <span class="tsd-signature-type">string</span></h5> </li> <li> <h5><span class="tsd-flag ts-flagDefault value">Default value</span> noApprove: <span class="tsd-signature-type">boolean</span><span class="tsd-signature-symbol"> = false</span></h5> <div class="tsd-comment tsd-typography"> <p>Explicitly prevent this method from attempting an ERC-20 <code>approve</code> transaction prior to sending the subsequent repayment transaction.</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 repayBorrow or repayBorrowBehalf transaction.</p> </li> </ul> </section> <section class="tsd-panel tsd-member tsd-kind-function tsd-parent-kind-module"> <a name="supply" class="tsd-anchor"></a> <h3>supply</h3> <ul class="tsd-signatures tsd-kind-function tsd-parent-kind-module"> <li class="tsd-signature tsd-kind-icon">supply<span class="tsd-signature-symbol">(</span>asset<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span>, amount<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">BigNumber</span>, noApprove<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/vToken.ts#L50">vToken.ts:50</a></li> </ul> </aside> <div class="tsd-comment tsd-typography"> <div class="lead"> <p>Supplies the user&#39;s Binance Smart Chain asset to the Venus Protocol.</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-comment">// Ethers.js overrides are an optional 3rd parameter for `supply`</span> <span class="hljs-comment">// const trxOptions = { gasLimit: 250000, mantissa: false };</span> (<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-built_in">console</span>.log(<span class="hljs-string">&#x27;Supplying SXP to the Venus Protocol...&#x27;</span>); <span class="hljs-keyword">const</span> trx = <span class="hljs-keyword">await</span> venus.supply(Venus.SXP, <span class="hljs-number">1</span>); <span class="hljs-built_in">console</span>.log(<span class="hljs-string">&#x27;Ethers.js transaction object&#x27;</span>, trx); })().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>asset: <span class="tsd-signature-type">string</span></h5> <div class="tsd-comment tsd-typography"> <p>A string of the asset to supply.</p> </div> </li> <li> <h5>amount: <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">BigNumber</span></h5> <div class="tsd-comment tsd-typography"> <p>A string, number, or BigNumber object of the amount of an asset to supply. Use the <code>mantissa</code> boolean in the <code>options</code> parameter to indicate if this value is scaled up (so there are no decimals) or in its natural scale.</p> </div> </li> <li> <h5><span class="tsd-flag ts-flagDefault value">Default value</span> noApprove: <span class="tsd-signature-type">boolean</span><span class="tsd-signature-symbol"> = false</span></h5> <div class="tsd-comment tsd-typography"> <p>Explicitly prevent this method from attempting an BEP-20 <code>approve</code> transaction prior to sending the <code>mint</code> transaction.</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 supply transaction.</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=" 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="current 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="_vtoken_.html#borrow" class="tsd-kind-icon">borrow</a> </li> <li class=" tsd-kind-function tsd-parent-kind-module"> <a href="_vtoken_.html#redeem" class="tsd-kind-icon">redeem</a> </li> <li class=" tsd-kind-function tsd-parent-kind-module"> <a href="_vtoken_.html#repayborrow" class="tsd-kind-icon">repay<wbr>Borrow</a> </li> <li class=" tsd-kind-function tsd-parent-kind-module"> <a href="_vtoken_.html#supply" class="tsd-kind-icon">supply</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>