This repository has been archived by the owner on Jan 1, 2023. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathpath---api-2-usage-examples-26a026f5d3a9fc00feda.js
1 lines (1 loc) · 27.9 KB
/
path---api-2-usage-examples-26a026f5d3a9fc00feda.js
1
webpackJsonp([0x79052985df57],{425:function(n,s){n.exports={data:{postBySlug:{html:'<h1 id="usage-examples"><a href="#usage-examples" aria-hidden="true" class="anchor"><svg aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"></path></svg></a>Usage examples</h1>\n<p>It is recommended to have a single file exporting the API class instance, to be able to reuse the same instance throughout your application.</p>\n<div class="gatsby-highlight">\n <pre class="language-javascript"><code class="language-javascript"><span class="token comment">// api.js</span>\n<span class="token keyword">import</span> Api <span class="token keyword">from</span> <span class="token string">\'@rgbk/api\'</span>\n\n<span class="token keyword">export</span> <span class="token keyword">default</span> <span class="token keyword">new</span> <span class="token class-name">Api</span><span class="token punctuation">(</span><span class="token punctuation">)</span></code></pre>\n </div>\n<h2 id="working-with-pools"><a href="#working-with-pools" aria-hidden="true" class="anchor"><svg aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"></path></svg></a>Working with pools</h2>\n<h3 id="creating-a-pool"><a href="#creating-a-pool" aria-hidden="true" class="anchor"><svg aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"></path></svg></a>Creating a pool</h3>\n<div class="gatsby-highlight">\n <pre class="language-javascript"><code class="language-javascript"><span class="token keyword">import</span> api <span class="token keyword">from</span> <span class="token string">\'./api.js\'</span>\n<span class="token keyword">import</span> <span class="token punctuation">{</span> BigNumber <span class="token punctuation">}</span> <span class="token keyword">from</span> <span class="token string">\'bignumber.js\'</span>\n\n<span class="token keyword">const</span> createDrago <span class="token operator">=</span> <span class="token keyword">async</span> <span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token operator">=></span> <span class="token punctuation">{</span>\n <span class="token keyword">await</span> api<span class="token punctuation">.</span><span class="token function">init</span><span class="token punctuation">(</span><span class="token punctuation">)</span>\n\n <span class="token keyword">const</span> accounts <span class="token operator">=</span> <span class="token keyword">await</span> api<span class="token punctuation">.</span>web3<span class="token punctuation">.</span>eth<span class="token punctuation">.</span><span class="token function">getAccounts</span><span class="token punctuation">(</span><span class="token punctuation">)</span>\n <span class="token keyword">const</span> <span class="token punctuation">{</span> DragoFactory <span class="token punctuation">}</span> <span class="token operator">=</span> api<span class="token punctuation">.</span>contract\n <span class="token keyword">const</span> dragoFactory <span class="token operator">=</span> <span class="token keyword">await</span> DragoFactory<span class="token punctuation">.</span><span class="token function">createAndValidate</span><span class="token punctuation">(</span>\n api<span class="token punctuation">.</span>web3<span class="token punctuation">,</span>\n DragoFactory<span class="token punctuation">.</span>address\n <span class="token punctuation">)</span>\n <span class="token keyword">const</span> txOptions <span class="token operator">=</span> <span class="token punctuation">{</span> <span class="token keyword">from</span><span class="token punctuation">:</span> accounts<span class="token punctuation">[</span><span class="token number">0</span><span class="token punctuation">]</span> <span class="token punctuation">}</span>\n <span class="token keyword">const</span> gasPrice <span class="token operator">=</span> <span class="token keyword">await</span> api<span class="token punctuation">.</span>web3<span class="token punctuation">.</span>eth<span class="token punctuation">.</span><span class="token function">getGasPrice</span><span class="token punctuation">(</span><span class="token punctuation">)</span>\n\n <span class="token keyword">const</span> txObject <span class="token operator">=</span> <span class="token keyword">await</span> dragoFactory<span class="token punctuation">.</span><span class="token function">createDrago</span><span class="token punctuation">(</span><span class="token string">\'New Drago\'</span><span class="token punctuation">,</span> <span class="token string">\'DRG\'</span><span class="token punctuation">)</span>\n <span class="token keyword">const</span> gasEstimate <span class="token operator">=</span> <span class="token keyword">await</span> txObject<span class="token punctuation">.</span><span class="token function">estimateGas</span><span class="token punctuation">(</span>txOptions<span class="token punctuation">)</span>\n\n <span class="token comment">// this will open the transaction window on metamask</span>\n <span class="token keyword">const</span> receipt <span class="token operator">=</span> <span class="token keyword">await</span> txObject<span class="token punctuation">.</span><span class="token function">send</span><span class="token punctuation">(</span><span class="token punctuation">{</span>\n <span class="token operator">...</span>txOptions<span class="token punctuation">,</span>\n gas<span class="token punctuation">:</span> <span class="token keyword">new</span> <span class="token class-name">BigNumber</span><span class="token punctuation">(</span>gasEstimate<span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token function">times</span><span class="token punctuation">(</span><span class="token number">1.2</span><span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token function">toFixed</span><span class="token punctuation">(</span><span class="token number">0</span><span class="token punctuation">)</span><span class="token punctuation">,</span>\n gasPrice\n <span class="token punctuation">}</span><span class="token punctuation">)</span>\n\n <span class="token keyword">const</span> dragoAddress <span class="token operator">=</span> receipt<span class="token punctuation">.</span>events<span class="token punctuation">.</span>DragoCreated<span class="token punctuation">.</span>returnValues<span class="token punctuation">.</span>drago\n <span class="token keyword">return</span> dragoAddress\n<span class="token punctuation">}</span></code></pre>\n </div>\n<ul>\n<li>\n<p>instantiate <code class="language-text">DragoFactory</code> contract to create a new pool. The pool must have a 3 digit symbol and a name (if the name already exists the contract will throw an error).</p>\n</li>\n<li>\n<p>the gasPrice and gas amount can be calculated using web3\'s methods. It is always best to add something to the gas amount, as it can be imprecise.</p>\n</li>\n<li>\n<p>always use libraries such as <a href="https://github.com/MikeMcl/bignumber.js/">BigNumber.js</a> when working with numbers, to avoid imprecisions.</p>\n</li>\n<li>\n<p>Only the Drago name must be unique, the symbol doesn\'t.</p>\n</li>\n</ul>\n<h3 id="buying-pool-shares"><a href="#buying-pool-shares" aria-hidden="true" class="anchor"><svg aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"></path></svg></a>Buying pool shares</h3>\n<div class="gatsby-highlight">\n <pre class="language-javascript"><code class="language-javascript"><span class="token keyword">const</span> buyDragoShares <span class="token operator">=</span> <span class="token keyword">async</span> <span class="token punctuation">(</span>api<span class="token punctuation">,</span> dragoAddress<span class="token punctuation">,</span> accountAddress<span class="token punctuation">)</span> <span class="token operator">=></span> <span class="token punctuation">{</span>\n <span class="token keyword">const</span> <span class="token punctuation">{</span> Drago <span class="token punctuation">}</span> <span class="token operator">=</span> api<span class="token punctuation">.</span>contract\n <span class="token keyword">const</span> drago <span class="token operator">=</span> <span class="token keyword">await</span> Drago<span class="token punctuation">.</span><span class="token function">createAndValidate</span><span class="token punctuation">(</span>api<span class="token punctuation">.</span>web3<span class="token punctuation">,</span> dragoAddress<span class="token punctuation">)</span>\n <span class="token keyword">const</span> txObject <span class="token operator">=</span> <span class="token keyword">await</span> drago<span class="token punctuation">.</span><span class="token function">buyDrago</span><span class="token punctuation">(</span><span class="token punctuation">)</span>\n <span class="token keyword">const</span> gasPrice <span class="token operator">=</span> <span class="token keyword">await</span> api<span class="token punctuation">.</span>web3<span class="token punctuation">.</span>eth<span class="token punctuation">.</span><span class="token function">getGasPrice</span><span class="token punctuation">(</span><span class="token punctuation">)</span>\n <span class="token keyword">const</span> txOptions <span class="token operator">=</span> <span class="token punctuation">{</span> <span class="token keyword">from</span><span class="token punctuation">:</span> accountAddress<span class="token punctuation">,</span> value<span class="token punctuation">:</span> api<span class="token punctuation">.</span>web3<span class="token punctuation">.</span>utils<span class="token punctuation">.</span><span class="token function">toWei</span><span class="token punctuation">(</span><span class="token string">\'3\'</span><span class="token punctuation">)</span> <span class="token punctuation">}</span>\n <span class="token keyword">const</span> gasEstimate <span class="token operator">=</span> <span class="token keyword">await</span> txObject<span class="token punctuation">.</span><span class="token function">estimateGas</span><span class="token punctuation">(</span>txOptions<span class="token punctuation">)</span>\n\n <span class="token keyword">return</span> txObject<span class="token punctuation">.</span><span class="token function">send</span><span class="token punctuation">(</span><span class="token punctuation">{</span>\n <span class="token operator">...</span>txOptions<span class="token punctuation">,</span>\n gas<span class="token punctuation">:</span> <span class="token keyword">new</span> <span class="token class-name">BigNumber</span><span class="token punctuation">(</span>gasEstimate<span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token function">times</span><span class="token punctuation">(</span><span class="token number">1.2</span><span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token function">toFixed</span><span class="token punctuation">(</span><span class="token number">0</span><span class="token punctuation">)</span><span class="token punctuation">,</span>\n gasPrice\n <span class="token punctuation">}</span><span class="token punctuation">)</span>\n<span class="token punctuation">}</span></code></pre>\n </div>\n<ul>\n<li>default buy price for a share is 1 ETH</li>\n<li>the amount that the user wants to spend to buy shares must be expressed in Wei</li>\n</ul>\n<h3 id="selling-pool-shares"><a href="#selling-pool-shares" aria-hidden="true" class="anchor"><svg aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"></path></svg></a>Selling pool shares</h3>\n<div class="gatsby-highlight">\n <pre class="language-javascript"><code class="language-javascript"><span class="token keyword">const</span> sellDragoShares <span class="token operator">=</span> <span class="token keyword">async</span> <span class="token punctuation">(</span>api<span class="token punctuation">,</span> dragoAddress<span class="token punctuation">,</span> accountAddress<span class="token punctuation">)</span> <span class="token operator">=></span> <span class="token punctuation">{</span>\n <span class="token keyword">const</span> <span class="token punctuation">{</span> Drago <span class="token punctuation">}</span> <span class="token operator">=</span> api<span class="token punctuation">.</span>contract\n <span class="token keyword">const</span> drago <span class="token operator">=</span> <span class="token keyword">await</span> Drago<span class="token punctuation">.</span><span class="token function">createAndValidate</span><span class="token punctuation">(</span>api<span class="token punctuation">.</span>web3<span class="token punctuation">,</span> dragoAddress<span class="token punctuation">)</span>\n <span class="token keyword">const</span> sellAmount <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">BigNumber</span><span class="token punctuation">(</span><span class="token string">\'2\'</span><span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token function">times</span><span class="token punctuation">(</span><span class="token number">1e6</span><span class="token punctuation">)</span>\n <span class="token keyword">const</span> txObject <span class="token operator">=</span> <span class="token keyword">await</span> drago<span class="token punctuation">.</span><span class="token function">sellDrago</span><span class="token punctuation">(</span>sellAmount<span class="token punctuation">)</span>\n <span class="token keyword">const</span> gasPrice <span class="token operator">=</span> <span class="token keyword">await</span> api<span class="token punctuation">.</span>web3<span class="token punctuation">.</span>eth<span class="token punctuation">.</span><span class="token function">getGasPrice</span><span class="token punctuation">(</span><span class="token punctuation">)</span>\n <span class="token keyword">const</span> txOptions <span class="token operator">=</span> <span class="token punctuation">{</span> <span class="token keyword">from</span><span class="token punctuation">:</span> accountAddress <span class="token punctuation">}</span>\n <span class="token keyword">const</span> gasEstimate <span class="token operator">=</span> <span class="token keyword">await</span> txObject<span class="token punctuation">.</span><span class="token function">estimateGas</span><span class="token punctuation">(</span>txOptions<span class="token punctuation">)</span>\n\n <span class="token keyword">return</span> txObject<span class="token punctuation">.</span><span class="token function">send</span><span class="token punctuation">(</span><span class="token punctuation">{</span>\n <span class="token operator">...</span>txOptions<span class="token punctuation">,</span>\n gas<span class="token punctuation">:</span> <span class="token keyword">new</span> <span class="token class-name">BigNumber</span><span class="token punctuation">(</span>gasEstimate<span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token function">times</span><span class="token punctuation">(</span><span class="token number">1.2</span><span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token function">toFixed</span><span class="token punctuation">(</span><span class="token number">0</span><span class="token punctuation">)</span><span class="token punctuation">,</span>\n gasPrice\n <span class="token punctuation">}</span><span class="token punctuation">)</span>\n<span class="token punctuation">}</span></code></pre>\n </div>\n<ul>\n<li>the pool has 6 decimals, so the amount of shares to be sold needs to be multiplied by <code class="language-text">1e6</code></li>\n</ul>\n<h3 id="setting-pool-prices"><a href="#setting-pool-prices" aria-hidden="true" class="anchor"><svg aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"></path></svg></a>Setting pool prices</h3>\n<div class="gatsby-highlight">\n <pre class="language-javascript"><code class="language-javascript"><span class="token keyword">const</span> setDragoPrices <span class="token operator">=</span> <span class="token keyword">async</span> <span class="token punctuation">(</span>api<span class="token punctuation">,</span> dragoAddress<span class="token punctuation">,</span> accountAddress<span class="token punctuation">)</span> <span class="token operator">=></span> <span class="token punctuation">{</span>\n <span class="token keyword">const</span> <span class="token punctuation">{</span> Drago <span class="token punctuation">}</span> <span class="token operator">=</span> api<span class="token punctuation">.</span>contract\n <span class="token keyword">const</span> drago <span class="token operator">=</span> <span class="token keyword">await</span> Drago<span class="token punctuation">.</span><span class="token function">createAndValidate</span><span class="token punctuation">(</span>api<span class="token punctuation">.</span>web3<span class="token punctuation">,</span> dragoAddress<span class="token punctuation">)</span>\n <span class="token keyword">const</span> txOptions <span class="token operator">=</span> <span class="token punctuation">{</span> <span class="token keyword">from</span><span class="token punctuation">:</span> accountAddress <span class="token punctuation">}</span>\n <span class="token keyword">const</span> buyPrice <span class="token operator">=</span> api<span class="token punctuation">.</span>web3<span class="token punctuation">.</span>utils<span class="token punctuation">.</span><span class="token function">toWei</span><span class="token punctuation">(</span><span class="token string">\'0.50\'</span><span class="token punctuation">)</span>\n <span class="token keyword">const</span> sellPrice <span class="token operator">=</span> api<span class="token punctuation">.</span>web3<span class="token punctuation">.</span>utils<span class="token punctuation">.</span><span class="token function">toWei</span><span class="token punctuation">(</span><span class="token string">\'0.49\'</span><span class="token punctuation">)</span>\n\n <span class="token keyword">const</span> txObject <span class="token operator">=</span> <span class="token keyword">await</span> drago<span class="token punctuation">.</span><span class="token function">setPrices</span><span class="token punctuation">(</span>\n sellPrice<span class="token punctuation">,</span>\n buyPrice<span class="token punctuation">,</span>\n <span class="token number">1</span><span class="token punctuation">,</span>\n api<span class="token punctuation">.</span>web3<span class="token punctuation">.</span>utils<span class="token punctuation">.</span><span class="token function">fromAscii</span><span class="token punctuation">(</span><span class="token string">\'random\'</span><span class="token punctuation">)</span><span class="token punctuation">,</span>\n api<span class="token punctuation">.</span>web3<span class="token punctuation">.</span>utils<span class="token punctuation">.</span><span class="token function">fromAscii</span><span class="token punctuation">(</span><span class="token string">\'random\'</span><span class="token punctuation">)</span>\n <span class="token punctuation">)</span>\n\n <span class="token keyword">const</span> gasEstimate <span class="token operator">=</span> <span class="token keyword">await</span> txObject<span class="token punctuation">.</span><span class="token function">estimateGas</span><span class="token punctuation">(</span>txOptions<span class="token punctuation">)</span>\n <span class="token keyword">await</span> txObject<span class="token punctuation">.</span><span class="token function">send</span><span class="token punctuation">(</span><span class="token punctuation">{</span>\n <span class="token operator">...</span>txOptions<span class="token punctuation">,</span>\n gas<span class="token punctuation">:</span> <span class="token keyword">new</span> <span class="token class-name">BigNumber</span><span class="token punctuation">(</span>gasEstimate<span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token function">times</span><span class="token punctuation">(</span><span class="token number">1.2</span><span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token function">toFixed</span><span class="token punctuation">(</span><span class="token number">0</span><span class="token punctuation">)</span><span class="token punctuation">,</span>\n gasPrice\n <span class="token punctuation">}</span><span class="token punctuation">)</span>\n<span class="token punctuation">}</span></code></pre>\n </div>\n<ul>\n<li>the new <strong>buyPrice</strong> must always be higher than the new <strong>sellPrice</strong></li>\n<li>currently the last 3 parameters of the <code class="language-text">setPrices</code> method are unused, they have been predisposed to easily upgrade the contract in the future and have an approved fronted platform check that the value is correct.</li>\n</ul>\n<h3 id="setting-the-transaction-fee"><a href="#setting-the-transaction-fee" aria-hidden="true" class="anchor"><svg aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"></path></svg></a>Setting the transaction fee</h3>\n<div class="gatsby-highlight">\n <pre class="language-javascript"><code class="language-javascript"><span class="token keyword">const</span> setDragoFee <span class="token operator">=</span> <span class="token keyword">async</span> <span class="token punctuation">(</span>api<span class="token punctuation">,</span> dragoAddress<span class="token punctuation">,</span> accountAddress<span class="token punctuation">)</span> <span class="token operator">=></span> <span class="token punctuation">{</span>\n <span class="token keyword">const</span> <span class="token punctuation">{</span> Drago <span class="token punctuation">}</span> <span class="token operator">=</span> api<span class="token punctuation">.</span>contract\n <span class="token keyword">const</span> drago <span class="token operator">=</span> <span class="token keyword">await</span> Drago<span class="token punctuation">.</span><span class="token function">createAndValidate</span><span class="token punctuation">(</span>api<span class="token punctuation">.</span>web3<span class="token punctuation">,</span> dragoAddress<span class="token punctuation">)</span>\n <span class="token keyword">const</span> txOptions <span class="token operator">=</span> <span class="token punctuation">{</span> <span class="token keyword">from</span><span class="token punctuation">:</span> accountAddress <span class="token punctuation">}</span>\n <span class="token comment">// transaction fee in basis points</span>\n <span class="token keyword">const</span> transactionFee <span class="token operator">=</span> <span class="token string">\'50\'</span>\n <span class="token keyword">const</span> txObject <span class="token operator">=</span> <span class="token keyword">await</span> drago<span class="token punctuation">.</span><span class="token function">setTransactionFee</span><span class="token punctuation">(</span>transactionFee<span class="token punctuation">)</span>\n <span class="token keyword">const</span> gasPrice <span class="token operator">=</span> <span class="token keyword">await</span> api<span class="token punctuation">.</span>web3<span class="token punctuation">.</span>eth<span class="token punctuation">.</span><span class="token function">getGasPrice</span><span class="token punctuation">(</span><span class="token punctuation">)</span>\n <span class="token keyword">const</span> gasEstimate <span class="token operator">=</span> <span class="token keyword">await</span> txObject<span class="token punctuation">.</span><span class="token function">estimateGas</span><span class="token punctuation">(</span>txOptions<span class="token punctuation">)</span>\n\n <span class="token keyword">await</span> txObject<span class="token punctuation">.</span><span class="token function">send</span><span class="token punctuation">(</span><span class="token punctuation">{</span>\n <span class="token operator">...</span>txOptions<span class="token punctuation">,</span>\n gas<span class="token punctuation">:</span> <span class="token keyword">new</span> <span class="token class-name">BigNumber</span><span class="token punctuation">(</span>gasEstimate<span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token function">times</span><span class="token punctuation">(</span><span class="token number">1.2</span><span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token function">toFixed</span><span class="token punctuation">(</span><span class="token number">0</span><span class="token punctuation">)</span><span class="token punctuation">,</span>\n gasPrice\n <span class="token punctuation">}</span><span class="token punctuation">)</span>\n<span class="token punctuation">}</span></code></pre>\n </div>\n<ul>\n<li>the transactionFee is in <strong>basis points</strong>, where each basis point represents 0.01%. The maximum value is <strong>100</strong> as the transaction fee cannot be higher than 1%.</li>\n<li>by default, the transaction fee is 0 when a new pool is created</li>\n<li>20% of the transaction fee goes to the DAO, while the rest is for the pool\'s wizard</li>\n</ul>'}},pathContext:{slug:"/api/2.usage_examples",category:"guides"}}}});