Files
2017-09-15 13:47:36 +02:00

501 lines
38 KiB
HTML

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>web3 &#8212; web3.js 1.0.0 documentation</title>
<link rel="stylesheet" href="_static/classic.css" type="text/css" />
<link rel="stylesheet" href="_static/pygments.css" type="text/css" />
<script type="text/javascript">
var DOCUMENTATION_OPTIONS = {
URL_ROOT: './',
VERSION: '1.0.0',
COLLAPSE_INDEX: false,
FILE_SUFFIX: '.html',
HAS_SOURCE: true
};
</script>
<script type="text/javascript" src="_static/jquery.js"></script>
<script type="text/javascript" src="_static/underscore.js"></script>
<script type="text/javascript" src="_static/doctools.js"></script>
<link rel="index" title="Index" href="genindex.html" />
<link rel="search" title="Search" href="search.html" />
<link rel="top" title="web3.js 1.0.0 documentation" href="index.html" />
<link rel="next" title="web3.eth" href="web3-eth.html" />
<link rel="prev" title="Glossary" href="glossary.html" />
</head>
<body role="document">
<div class="related" role="navigation" aria-label="related navigation">
<h3>Navigation</h3>
<ul>
<li class="right" style="margin-right: 10px">
<a href="genindex.html" title="General Index"
accesskey="I">index</a></li>
<li class="right" >
<a href="web3-eth.html" title="web3.eth"
accesskey="N">next</a> |</li>
<li class="right" >
<a href="glossary.html" title="Glossary"
accesskey="P">previous</a> |</li>
<li class="nav-item nav-item-0"><a href="index.html">web3.js 1.0.0 documentation</a> &#187;</li>
</ul>
</div>
<div class="document">
<div class="documentwrapper">
<div class="bodywrapper">
<div class="body" role="main">
<div class="admonition note">
<p class="first admonition-title">Note</p>
<p class="last">This documentation is work in progress and web3.js 1.0 is not yet released! You can find the current documentation for web3 0.x.x at <a class="reference external" href="https://github.com/ethereum/wiki/wiki/JavaScript-API">github.com/ethereum/wiki/wiki/JavaScript-API</a>.</p>
</div>
<div class="section" id="web3">
<h1>web3<a class="headerlink" href="#web3" title="Permalink to this headline"></a></h1>
<p>The web3.js object is an umbrella package to house all ethereum related modules.</p>
<div class="highlight-javascript"><div class="highlight"><pre><span></span><span class="kd">var</span> <span class="nx">Web3</span> <span class="o">=</span> <span class="nx">require</span><span class="p">(</span><span class="s1">&#39;web3&#39;</span><span class="p">);</span>
<span class="o">&gt;</span> <span class="nx">Web3</span><span class="p">.</span><span class="nx">utils</span>
<span class="o">&gt;</span> <span class="nx">Web3</span><span class="p">.</span><span class="nx">version</span>
<span class="o">&gt;</span> <span class="nx">Web3</span><span class="p">.</span><span class="nx">modules</span>
<span class="c1">// &quot;Web3.providers.givenProvider&quot; will be set if in an Ethereum supported browser.</span>
<span class="kd">var</span> <span class="nx">web3</span> <span class="o">=</span> <span class="k">new</span> <span class="nx">Web3</span><span class="p">(</span><span class="nx">Web3</span><span class="p">.</span><span class="nx">givenProvider</span> <span class="o">||</span> <span class="s1">&#39;ws://some.local-or-remote.node:8546&#39;</span><span class="p">);</span>
<span class="o">&gt;</span> <span class="nx">web3</span><span class="p">.</span><span class="nx">eth</span>
<span class="o">&gt;</span> <span class="nx">web3</span><span class="p">.</span><span class="nx">shh</span>
<span class="o">&gt;</span> <span class="nx">web3</span><span class="p">.</span><span class="nx">bzz</span>
<span class="o">&gt;</span> <span class="nx">web3</span><span class="p">.</span><span class="nx">utils</span>
<span class="o">&gt;</span> <span class="nx">web3</span><span class="p">.</span><span class="nx">version</span>
</pre></div>
</div>
<hr class="docutils" />
<div class="section" id="version">
<h2>version<a class="headerlink" href="#version" title="Permalink to this headline"></a></h2>
<div class="highlight-javascript"><div class="highlight"><pre><span></span><span class="nx">Web3</span><span class="p">.</span><span class="nx">version</span>
<span class="nx">web3</span><span class="p">.</span><span class="nx">version</span>
</pre></div>
</div>
<p>Contains the version of the <code class="docutils literal"><span class="pre">web3</span></code> container object.</p>
<div class="section" id="returns">
<h3>Returns<a class="headerlink" href="#returns" title="Permalink to this headline"></a></h3>
<p><code class="docutils literal"><span class="pre">String</span></code>: The current version.</p>
</div>
<div class="section" id="example">
<h3>Example<a class="headerlink" href="#example" title="Permalink to this headline"></a></h3>
<div class="highlight-javascript"><div class="highlight"><pre><span></span><span class="nx">web3</span><span class="p">.</span><span class="nx">version</span><span class="p">;</span>
<span class="o">&gt;</span> <span class="s2">&quot;1.0.0&quot;</span>
</pre></div>
</div>
</div>
</div>
<hr class="docutils" />
<div class="section" id="modules">
<h2>modules<a class="headerlink" href="#modules" title="Permalink to this headline"></a></h2>
<div class="highlight-javascript"><div class="highlight"><pre><span></span><span class="nx">Web3</span><span class="p">.</span><span class="nx">modules</span>
<span class="nx">web3</span><span class="p">.</span><span class="nx">modules</span>
</pre></div>
</div>
<p>Will return an object with the classes of all major sub modules, to be able to instantiate them manually.</p>
<div class="section" id="id1">
<h3>Returns<a class="headerlink" href="#id1" title="Permalink to this headline"></a></h3>
<dl class="docutils">
<dt><code class="docutils literal"><span class="pre">Object</span></code>: A list of modules:</dt>
<dd><ul class="first last simple">
<li><code class="docutils literal"><span class="pre">Eth</span></code> - <code class="docutils literal"><span class="pre">Function</span></code>: the Eth module for interacting with the ethereum network see <a class="reference internal" href="web3-eth.html#eth"><span class="std std-ref">web3.eth</span></a> for more.</li>
<li><code class="docutils literal"><span class="pre">Net</span></code> - <code class="docutils literal"><span class="pre">Function</span></code>: the Net module for interacting with network properties see <a class="reference internal" href="web3-eth-net.html#eth-net"><span class="std std-ref">web3.eth.net</span></a> for more.</li>
<li><code class="docutils literal"><span class="pre">Personal</span></code> - <code class="docutils literal"><span class="pre">Function</span></code>: the Personal module for interacting with the ethereum accounts see <span class="xref std std-ref">web3.eth.personal</span> for more.</li>
<li><code class="docutils literal"><span class="pre">Shh</span></code> - <code class="docutils literal"><span class="pre">Function</span></code>: the Shh module for interacting with the whisper protocol see <a class="reference internal" href="web3-shh.html#shh"><span class="std std-ref">web3.shh</span></a> for more.</li>
<li><code class="docutils literal"><span class="pre">Bzz</span></code> - <code class="docutils literal"><span class="pre">Function</span></code>: the Bzz module for interacting with the swarm network see <a class="reference internal" href="web3-bzz.html#bzz"><span class="std std-ref">web3.bzz</span></a> for more.</li>
</ul>
</dd>
</dl>
</div>
<div class="section" id="id2">
<h3>Example<a class="headerlink" href="#id2" title="Permalink to this headline"></a></h3>
<div class="highlight-javascript"><div class="highlight"><pre><span></span><span class="nx">web3</span><span class="p">.</span><span class="nx">modules</span>
<span class="o">&gt;</span> <span class="p">{</span>
<span class="nx">Eth</span><span class="o">:</span> <span class="nx">Eth</span> <span class="kd">function</span><span class="p">(</span><span class="nx">provider</span><span class="p">),</span>
<span class="nx">Net</span><span class="o">:</span> <span class="nx">Net</span> <span class="kd">function</span><span class="p">(</span><span class="nx">provider</span><span class="p">),</span>
<span class="nx">Personal</span><span class="o">:</span> <span class="nx">Personal</span> <span class="kd">function</span><span class="p">(</span><span class="nx">provider</span><span class="p">),</span>
<span class="nx">Shh</span><span class="o">:</span> <span class="nx">Shh</span> <span class="kd">function</span><span class="p">(</span><span class="nx">provider</span><span class="p">),</span>
<span class="nx">Bzz</span><span class="o">:</span> <span class="nx">Bzz</span> <span class="kd">function</span><span class="p">(</span><span class="nx">provider</span><span class="p">),</span>
<span class="p">}</span>
</pre></div>
</div>
</div>
</div>
<hr class="docutils" />
<div class="section" id="utils">
<h2>utils<a class="headerlink" href="#utils" title="Permalink to this headline"></a></h2>
<div class="highlight-javascript"><div class="highlight"><pre><span></span><span class="nx">Web3</span><span class="p">.</span><span class="nx">utils</span>
<span class="nx">web3</span><span class="p">.</span><span class="nx">utils</span>
</pre></div>
</div>
<p>Utility functions are also exposes on the <code class="docutils literal"><span class="pre">Web3</span></code> class object directly.</p>
<p>See <a class="reference internal" href="web3-utils.html#utils"><span class="std std-ref">web3.utils</span></a> for more.</p>
</div>
<hr class="docutils" />
<div class="section" id="setprovider">
<h2>setProvider<a class="headerlink" href="#setprovider" title="Permalink to this headline"></a></h2>
<div class="highlight-javascript"><div class="highlight"><pre><span></span><span class="nx">web3</span><span class="p">.</span><span class="nx">setProvider</span><span class="p">(</span><span class="nx">myProvider</span><span class="p">)</span>
<span class="nx">web3</span><span class="p">.</span><span class="nx">eth</span><span class="p">.</span><span class="nx">setProvider</span><span class="p">(</span><span class="nx">myProvider</span><span class="p">)</span>
<span class="nx">web3</span><span class="p">.</span><span class="nx">shh</span><span class="p">.</span><span class="nx">setProvider</span><span class="p">(</span><span class="nx">myProvider</span><span class="p">)</span>
<span class="nx">web3</span><span class="p">.</span><span class="nx">bzz</span><span class="p">.</span><span class="nx">setProvider</span><span class="p">(</span><span class="nx">myProvider</span><span class="p">)</span>
<span class="p">...</span>
</pre></div>
</div>
<p>Will change the provider for its module.</p>
<div class="admonition note">
<p class="first admonition-title">Note</p>
<p class="last">When called on the umbrella package <code class="docutils literal"><span class="pre">web3</span></code> it will also set the provider for all sub modules <code class="docutils literal"><span class="pre">web3.eth</span></code>, <code class="docutils literal"><span class="pre">web3.shh</span></code>, etc EXCEPT <code class="docutils literal"><span class="pre">web3.bzz</span></code> which needs a separate provider at all times.</p>
</div>
<div class="section" id="parameters">
<h3>Parameters<a class="headerlink" href="#parameters" title="Permalink to this headline"></a></h3>
<ol class="arabic simple">
<li><code class="docutils literal"><span class="pre">Object</span></code> - <code class="docutils literal"><span class="pre">myProvider</span></code>: <span class="xref std std-ref">a valid provider</span>.</li>
</ol>
</div>
<div class="section" id="id3">
<h3>Returns<a class="headerlink" href="#id3" title="Permalink to this headline"></a></h3>
<p><code class="docutils literal"><span class="pre">Boolean</span></code></p>
</div>
<div class="section" id="id4">
<h3>Example<a class="headerlink" href="#id4" title="Permalink to this headline"></a></h3>
<div class="highlight-javascript"><div class="highlight"><pre><span></span><span class="kd">var</span> <span class="nx">Web3</span> <span class="o">=</span> <span class="nx">require</span><span class="p">(</span><span class="s1">&#39;web3&#39;</span><span class="p">);</span>
<span class="kd">var</span> <span class="nx">web3</span> <span class="o">=</span> <span class="k">new</span> <span class="nx">Web3</span><span class="p">(</span><span class="s1">&#39;http://localhost:8545&#39;</span><span class="p">);</span>
<span class="c1">// or</span>
<span class="kd">var</span> <span class="nx">web3</span> <span class="o">=</span> <span class="k">new</span> <span class="nx">Web3</span><span class="p">(</span><span class="k">new</span> <span class="nx">Web3</span><span class="p">.</span><span class="nx">providers</span><span class="p">.</span><span class="nx">HttpProvider</span><span class="p">(</span><span class="s1">&#39;http://localhost:8545&#39;</span><span class="p">));</span>
<span class="c1">// change provider</span>
<span class="nx">web3</span><span class="p">.</span><span class="nx">setProvider</span><span class="p">(</span><span class="s1">&#39;ws://localhost:8546&#39;</span><span class="p">);</span>
<span class="c1">// or</span>
<span class="nx">web3</span><span class="p">.</span><span class="nx">setProvider</span><span class="p">(</span><span class="k">new</span> <span class="nx">Web3</span><span class="p">.</span><span class="nx">providers</span><span class="p">.</span><span class="nx">WebsocketProvider</span><span class="p">(</span><span class="s1">&#39;ws://localhost:8546&#39;</span><span class="p">));</span>
<span class="c1">// Using the IPC provider in node.js</span>
<span class="kd">var</span> <span class="nx">net</span> <span class="o">=</span> <span class="nx">require</span><span class="p">(</span><span class="s1">&#39;net&#39;</span><span class="p">);</span>
<span class="kd">var</span> <span class="nx">web3</span> <span class="o">=</span> <span class="k">new</span> <span class="nx">Web3</span><span class="p">(</span><span class="s1">&#39;/Users/myuser/Library/Ethereum/geth.ipc&#39;</span><span class="p">,</span> <span class="nx">net</span><span class="p">);</span> <span class="c1">// mac os path</span>
<span class="c1">// or</span>
<span class="kd">var</span> <span class="nx">web3</span> <span class="o">=</span> <span class="k">new</span> <span class="nx">Web3</span><span class="p">(</span><span class="k">new</span> <span class="nx">Web3</span><span class="p">.</span><span class="nx">providers</span><span class="p">.</span><span class="nx">IpcProvider</span><span class="p">(</span><span class="s1">&#39;/Users/myuser/Library/Ethereum/geth.ipc&#39;</span><span class="p">,</span> <span class="nx">net</span><span class="p">));</span> <span class="c1">// mac os path</span>
<span class="c1">// on windows the path is: &quot;\\\\.\\pipe\\geth.ipc&quot;</span>
<span class="c1">// on linux the path is: &quot;/users/myuser/.ethereum/geth.ipc&quot;</span>
</pre></div>
</div>
</div>
</div>
<hr class="docutils" />
<div class="section" id="providers">
<h2>providers<a class="headerlink" href="#providers" title="Permalink to this headline"></a></h2>
<div class="highlight-javascript"><div class="highlight"><pre><span></span><span class="nx">web3</span><span class="p">.</span><span class="nx">providers</span>
<span class="nx">web3</span><span class="p">.</span><span class="nx">eth</span><span class="p">.</span><span class="nx">providers</span>
<span class="nx">web3</span><span class="p">.</span><span class="nx">shh</span><span class="p">.</span><span class="nx">providers</span>
<span class="nx">web3</span><span class="p">.</span><span class="nx">bzz</span><span class="p">.</span><span class="nx">providers</span>
<span class="p">...</span>
</pre></div>
</div>
<p>Contains the current available <span class="xref std std-ref">providers</span>.</p>
<div class="section" id="value">
<h3>Value<a class="headerlink" href="#value" title="Permalink to this headline"></a></h3>
<p><code class="docutils literal"><span class="pre">Object</span></code> with the following providers:</p>
<blockquote>
<div><ul class="simple">
<li><code class="docutils literal"><span class="pre">Object</span></code> - <code class="docutils literal"><span class="pre">HttpProvider</span></code>: The HTTP provider is <strong>deprecated</strong>, as it won&#8217;t work for subscriptions.</li>
<li><code class="docutils literal"><span class="pre">Object</span></code> - <code class="docutils literal"><span class="pre">WebsocketProvider</span></code>: The Websocket provider is the standard for usage in legacy browsers.</li>
<li><code class="docutils literal"><span class="pre">Object</span></code> - <code class="docutils literal"><span class="pre">IpcProvider</span></code>: The IPC provider is used node.js dapps when running a local node. Gives the most secure connection.</li>
</ul>
</div></blockquote>
</div>
<div class="section" id="id5">
<h3>Example<a class="headerlink" href="#id5" title="Permalink to this headline"></a></h3>
<div class="highlight-javascript"><div class="highlight"><pre><span></span><span class="kd">var</span> <span class="nx">Web3</span> <span class="o">=</span> <span class="nx">require</span><span class="p">(</span><span class="s1">&#39;web3&#39;</span><span class="p">);</span>
<span class="c1">// use the given Provider, e.g in Mist, or instantiate a new websocket provider</span>
<span class="kd">var</span> <span class="nx">web3</span> <span class="o">=</span> <span class="k">new</span> <span class="nx">Web3</span><span class="p">(</span><span class="nx">Web3</span><span class="p">.</span><span class="nx">givenProvider</span> <span class="o">||</span> <span class="s1">&#39;ws://remotenode.com:8546&#39;</span><span class="p">);</span>
<span class="c1">// or</span>
<span class="kd">var</span> <span class="nx">web3</span> <span class="o">=</span> <span class="k">new</span> <span class="nx">Web3</span><span class="p">(</span><span class="nx">Web3</span><span class="p">.</span><span class="nx">givenProvider</span> <span class="o">||</span> <span class="k">new</span> <span class="nx">Web3</span><span class="p">.</span><span class="nx">providers</span><span class="p">.</span><span class="nx">WebsocketProvider</span><span class="p">(</span><span class="s1">&#39;ws://remotenode.com:8546&#39;</span><span class="p">));</span>
<span class="c1">// Using the IPC provider in node.js</span>
<span class="kd">var</span> <span class="nx">net</span> <span class="o">=</span> <span class="nx">require</span><span class="p">(</span><span class="s1">&#39;net&#39;</span><span class="p">);</span>
<span class="kd">var</span> <span class="nx">web3</span> <span class="o">=</span> <span class="k">new</span> <span class="nx">Web3</span><span class="p">(</span><span class="s1">&#39;/Users/myuser/Library/Ethereum/geth.ipc&#39;</span><span class="p">,</span> <span class="nx">net</span><span class="p">);</span> <span class="c1">// mac os path</span>
<span class="c1">// or</span>
<span class="kd">var</span> <span class="nx">web3</span> <span class="o">=</span> <span class="k">new</span> <span class="nx">Web3</span><span class="p">(</span><span class="k">new</span> <span class="nx">Web3</span><span class="p">.</span><span class="nx">providers</span><span class="p">.</span><span class="nx">IpcProvider</span><span class="p">(</span><span class="s1">&#39;/Users/myuser/Library/Ethereum/geth.ipc&#39;</span><span class="p">,</span> <span class="nx">net</span><span class="p">));</span> <span class="c1">// mac os path</span>
<span class="c1">// on windows the path is: &quot;\\\\.\\pipe\\geth.ipc&quot;</span>
<span class="c1">// on linux the path is: &quot;/users/myuser/.ethereum/geth.ipc&quot;</span>
</pre></div>
</div>
</div>
</div>
<hr class="docutils" />
<div class="section" id="givenprovider">
<h2>givenProvider<a class="headerlink" href="#givenprovider" title="Permalink to this headline"></a></h2>
<div class="highlight-javascript"><div class="highlight"><pre><span></span><span class="nx">web3</span><span class="p">.</span><span class="nx">givenProvider</span>
<span class="nx">web3</span><span class="p">.</span><span class="nx">eth</span><span class="p">.</span><span class="nx">givenProvider</span>
<span class="nx">web3</span><span class="p">.</span><span class="nx">shh</span><span class="p">.</span><span class="nx">givenProvider</span>
<span class="nx">web3</span><span class="p">.</span><span class="nx">bzz</span><span class="p">.</span><span class="nx">givenProvider</span>
<span class="p">...</span>
</pre></div>
</div>
<p>When using web3.js in an Ethereum compatible browser, it will set with the current native provider by that browser.
Will return the given provider by the (browser) environment, otherwise <code class="docutils literal"><span class="pre">null</span></code>.</p>
<div class="section" id="id6">
<h3>Returns<a class="headerlink" href="#id6" title="Permalink to this headline"></a></h3>
<p><code class="docutils literal"><span class="pre">Object</span></code>: The given provider set or <code class="docutils literal"><span class="pre">null</span></code>;</p>
</div>
<div class="section" id="id7">
<h3>Example<a class="headerlink" href="#id7" title="Permalink to this headline"></a></h3>
</div>
</div>
<hr class="docutils" />
<div class="section" id="currentprovider">
<h2>currentProvider<a class="headerlink" href="#currentprovider" title="Permalink to this headline"></a></h2>
<div class="highlight-javascript"><div class="highlight"><pre><span></span><span class="nx">web3</span><span class="p">.</span><span class="nx">currentProvider</span>
<span class="nx">web3</span><span class="p">.</span><span class="nx">eth</span><span class="p">.</span><span class="nx">currentProvider</span>
<span class="nx">web3</span><span class="p">.</span><span class="nx">shh</span><span class="p">.</span><span class="nx">currentProvider</span>
<span class="nx">web3</span><span class="p">.</span><span class="nx">bzz</span><span class="p">.</span><span class="nx">currentProvider</span>
<span class="p">...</span>
</pre></div>
</div>
<p>Will return the current provider, otherwise <code class="docutils literal"><span class="pre">null</span></code>.</p>
<div class="section" id="id8">
<h3>Returns<a class="headerlink" href="#id8" title="Permalink to this headline"></a></h3>
<p><code class="docutils literal"><span class="pre">Object</span></code>: The current provider set or <code class="docutils literal"><span class="pre">null</span></code>;</p>
</div>
<div class="section" id="id9">
<h3>Example<a class="headerlink" href="#id9" title="Permalink to this headline"></a></h3>
</div>
</div>
<hr class="docutils" />
<div class="section" id="batchrequest">
<h2>BatchRequest<a class="headerlink" href="#batchrequest" title="Permalink to this headline"></a></h2>
<div class="highlight-javascript"><div class="highlight"><pre><span></span><span class="k">new</span> <span class="nx">web3</span><span class="p">.</span><span class="nx">BatchRequest</span><span class="p">()</span>
<span class="k">new</span> <span class="nx">web3</span><span class="p">.</span><span class="nx">eth</span><span class="p">.</span><span class="nx">BatchRequest</span><span class="p">()</span>
<span class="k">new</span> <span class="nx">web3</span><span class="p">.</span><span class="nx">shh</span><span class="p">.</span><span class="nx">BatchRequest</span><span class="p">()</span>
<span class="k">new</span> <span class="nx">web3</span><span class="p">.</span><span class="nx">bzz</span><span class="p">.</span><span class="nx">BatchRequest</span><span class="p">()</span>
</pre></div>
</div>
<p>Class to create and execute batch requests.</p>
<div class="section" id="id10">
<h3>Parameters<a class="headerlink" href="#id10" title="Permalink to this headline"></a></h3>
<p>none</p>
</div>
<div class="section" id="id11">
<h3>Returns<a class="headerlink" href="#id11" title="Permalink to this headline"></a></h3>
<p><code class="docutils literal"><span class="pre">Object</span></code>: With the following methods:</p>
<blockquote>
<div><ul class="simple">
<li><code class="docutils literal"><span class="pre">add(request)</span></code>: To add a request object to the batch call.</li>
<li><code class="docutils literal"><span class="pre">execute()</span></code>: Will execute the batch request.</li>
</ul>
</div></blockquote>
</div>
<div class="section" id="id12">
<h3>Example<a class="headerlink" href="#id12" title="Permalink to this headline"></a></h3>
<div class="highlight-javascript"><div class="highlight"><pre><span></span><span class="kd">var</span> <span class="nx">contract</span> <span class="o">=</span> <span class="k">new</span> <span class="nx">web3</span><span class="p">.</span><span class="nx">eth</span><span class="p">.</span><span class="nx">Contract</span><span class="p">(</span><span class="nx">abi</span><span class="p">,</span> <span class="nx">address</span><span class="p">);</span>
<span class="kd">var</span> <span class="nx">batch</span> <span class="o">=</span> <span class="k">new</span> <span class="nx">web3</span><span class="p">.</span><span class="nx">BatchRequest</span><span class="p">();</span>
<span class="nx">batch</span><span class="p">.</span><span class="nx">add</span><span class="p">(</span><span class="nx">web3</span><span class="p">.</span><span class="nx">eth</span><span class="p">.</span><span class="nx">getBalance</span><span class="p">.</span><span class="nx">request</span><span class="p">(</span><span class="s1">&#39;0x0000000000000000000000000000000000000000&#39;</span><span class="p">,</span> <span class="s1">&#39;latest&#39;</span><span class="p">,</span> <span class="nx">callback</span><span class="p">));</span>
<span class="nx">batch</span><span class="p">.</span><span class="nx">add</span><span class="p">(</span><span class="nx">contract</span><span class="p">.</span><span class="nx">methods</span><span class="p">.</span><span class="nx">balance</span><span class="p">(</span><span class="nx">address</span><span class="p">).</span><span class="nx">call</span><span class="p">.</span><span class="nx">request</span><span class="p">({</span><span class="nx">from</span><span class="o">:</span> <span class="s1">&#39;0x0000000000000000000000000000000000000000&#39;</span><span class="p">},</span> <span class="nx">callback2</span><span class="p">));</span>
<span class="nx">batch</span><span class="p">.</span><span class="nx">execute</span><span class="p">();</span>
</pre></div>
</div>
</div>
</div>
<hr class="docutils" />
<div class="section" id="extend">
<h2>extend<a class="headerlink" href="#extend" title="Permalink to this headline"></a></h2>
<div class="highlight-javascript"><div class="highlight"><pre><span></span><span class="nx">web3</span><span class="p">.</span><span class="nx">extend</span><span class="p">(</span><span class="nx">methods</span><span class="p">)</span>
<span class="nx">web3</span><span class="p">.</span><span class="nx">eth</span><span class="p">.</span><span class="nx">extend</span><span class="p">(</span><span class="nx">methods</span><span class="p">)</span>
<span class="nx">web3</span><span class="p">.</span><span class="nx">shh</span><span class="p">.</span><span class="nx">extend</span><span class="p">(</span><span class="nx">methods</span><span class="p">)</span>
<span class="nx">web3</span><span class="p">.</span><span class="nx">bzz</span><span class="p">.</span><span class="nx">extend</span><span class="p">(</span><span class="nx">methods</span><span class="p">)</span>
<span class="p">...</span>
</pre></div>
</div>
<p>Allows extending the web3 modules.</p>
<div class="admonition note">
<p class="first admonition-title">Note</p>
<p class="last">You also have <code class="docutils literal"><span class="pre">*.extend.formatters</span></code> as additional formatter functions to be used for in and output formatting. Please see the <a class="reference external" href="https://github.com/ethereum/web3.js/blob/master/packages/web3-core-helpers/src/formatters.js">source file</a> for function details.</p>
</div>
<div class="section" id="id13">
<h3>Parameters<a class="headerlink" href="#id13" title="Permalink to this headline"></a></h3>
<ol class="arabic">
<li><dl class="first docutils">
<dt><code class="docutils literal"><span class="pre">methods</span></code> - <code class="docutils literal"><span class="pre">Object</span></code>: Extension object with array of methods description objects as follows:</dt>
<dd><ul class="first last">
<li><p class="first"><code class="docutils literal"><span class="pre">property</span></code> - <code class="docutils literal"><span class="pre">String</span></code>: (optional) The name of the property to add to the module. If no property is set it will be added to the module directly.</p>
</li>
<li><dl class="first docutils">
<dt><code class="docutils literal"><span class="pre">methods</span></code> - <code class="docutils literal"><span class="pre">Array</span></code>: The array of method descriptions:</dt>
<dd><ul class="first last simple">
<li><code class="docutils literal"><span class="pre">name</span></code> - <code class="docutils literal"><span class="pre">String</span></code>: Name of the method to add.</li>
<li><code class="docutils literal"><span class="pre">call</span></code> - <code class="docutils literal"><span class="pre">String</span></code>: The RPC method name.</li>
<li><code class="docutils literal"><span class="pre">params</span></code> - <code class="docutils literal"><span class="pre">Number</span></code>: (optional) The number of parameters for that function. Default 0.</li>
<li><code class="docutils literal"><span class="pre">inputFormatter</span></code> - <code class="docutils literal"><span class="pre">Array</span></code>: (optional) Array of inputformatter functions. Each array item responds to a function parameter, so if you want some parameters not to be formatted, add a <code class="docutils literal"><span class="pre">null</span></code> instead.</li>
<li><code class="docutils literal"><span class="pre">outputFormatter</span> <span class="pre">-</span> <span class="pre">``Function</span></code>: (optional) Can be used to format the output of the method.</li>
</ul>
</dd>
</dl>
</li>
</ul>
</dd>
</dl>
</li>
</ol>
</div>
<div class="section" id="id14">
<h3>Returns<a class="headerlink" href="#id14" title="Permalink to this headline"></a></h3>
<p><code class="docutils literal"><span class="pre">Object</span></code>: The extended module.</p>
</div>
<div class="section" id="id15">
<h3>Example<a class="headerlink" href="#id15" title="Permalink to this headline"></a></h3>
<div class="highlight-javascript"><div class="highlight"><pre><span></span><span class="nx">web3</span><span class="p">.</span><span class="nx">extend</span><span class="p">({</span>
<span class="nx">property</span><span class="o">:</span> <span class="s1">&#39;myModule&#39;</span><span class="p">,</span>
<span class="nx">methods</span><span class="o">:</span> <span class="p">[{</span>
<span class="nx">name</span><span class="o">:</span> <span class="s1">&#39;getBalance&#39;</span><span class="p">,</span>
<span class="nx">call</span><span class="o">:</span> <span class="s1">&#39;eth_getBalance&#39;</span><span class="p">,</span>
<span class="nx">params</span><span class="o">:</span> <span class="mi">2</span><span class="p">,</span>
<span class="nx">inputFormatter</span><span class="o">:</span> <span class="p">[</span><span class="nx">web3</span><span class="p">.</span><span class="nx">extend</span><span class="p">.</span><span class="nx">formatters</span><span class="p">.</span><span class="nx">inputAddressFormatter</span><span class="p">,</span> <span class="nx">web3</span><span class="p">.</span><span class="nx">extend</span><span class="p">.</span><span class="nx">formatters</span><span class="p">.</span><span class="nx">inputDefaultBlockNumberFormatter</span><span class="p">],</span>
<span class="nx">outputFormatter</span><span class="o">:</span> <span class="nx">web3</span><span class="p">.</span><span class="nx">utils</span><span class="p">.</span><span class="nx">hexToNumberString</span>
<span class="p">},{</span>
<span class="nx">name</span><span class="o">:</span> <span class="s1">&#39;getGasPriceSuperFunction&#39;</span><span class="p">,</span>
<span class="nx">call</span><span class="o">:</span> <span class="s1">&#39;eth_gasPriceSuper&#39;</span><span class="p">,</span>
<span class="nx">params</span><span class="o">:</span> <span class="mi">2</span><span class="p">,</span>
<span class="nx">inputFormatter</span><span class="o">:</span> <span class="p">[</span><span class="kc">null</span><span class="p">,</span> <span class="nx">web3</span><span class="p">.</span><span class="nx">utils</span><span class="p">.</span><span class="nx">numberToHex</span><span class="p">]</span>
<span class="p">}]</span>
<span class="p">});</span>
<span class="nx">web3</span><span class="p">.</span><span class="nx">extend</span><span class="p">({</span>
<span class="nx">methods</span><span class="o">:</span> <span class="p">[{</span>
<span class="nx">name</span><span class="o">:</span> <span class="s1">&#39;directCall&#39;</span><span class="p">,</span>
<span class="nx">call</span><span class="o">:</span> <span class="s1">&#39;eth_callForFun&#39;</span><span class="p">,</span>
<span class="p">}]</span>
<span class="p">});</span>
<span class="nx">console</span><span class="p">.</span><span class="nx">log</span><span class="p">(</span><span class="nx">web3</span><span class="p">);</span>
<span class="o">&gt;</span> <span class="nx">Web3</span> <span class="p">{</span>
<span class="nx">myModule</span><span class="o">:</span> <span class="p">{</span>
<span class="nx">getBalance</span><span class="o">:</span> <span class="kd">function</span><span class="p">(){},</span>
<span class="nx">getGasPriceSuperFunction</span><span class="o">:</span> <span class="kd">function</span><span class="p">(){}</span>
<span class="p">},</span>
<span class="nx">directCall</span><span class="o">:</span> <span class="kd">function</span><span class="p">(){},</span>
<span class="nx">eth</span><span class="o">:</span> <span class="nx">Eth</span> <span class="p">{...},</span>
<span class="nx">bzz</span><span class="o">:</span> <span class="nx">Bzz</span> <span class="p">{...},</span>
<span class="p">...</span>
<span class="p">}</span>
</pre></div>
</div>
<hr class="docutils" />
<hr class="docutils" />
</div>
</div>
</div>
</div>
</div>
</div>
<div class="sphinxsidebar" role="navigation" aria-label="main navigation">
<div class="sphinxsidebarwrapper">
<h3><a href="index.html">Table Of Contents</a></h3>
<ul>
<li><a class="reference internal" href="#">web3</a><ul>
<li><a class="reference internal" href="#version">version</a><ul>
<li><a class="reference internal" href="#returns">Returns</a></li>
<li><a class="reference internal" href="#example">Example</a></li>
</ul>
</li>
<li><a class="reference internal" href="#modules">modules</a><ul>
<li><a class="reference internal" href="#id1">Returns</a></li>
<li><a class="reference internal" href="#id2">Example</a></li>
</ul>
</li>
<li><a class="reference internal" href="#utils">utils</a></li>
<li><a class="reference internal" href="#setprovider">setProvider</a><ul>
<li><a class="reference internal" href="#parameters">Parameters</a></li>
<li><a class="reference internal" href="#id3">Returns</a></li>
<li><a class="reference internal" href="#id4">Example</a></li>
</ul>
</li>
<li><a class="reference internal" href="#providers">providers</a><ul>
<li><a class="reference internal" href="#value">Value</a></li>
<li><a class="reference internal" href="#id5">Example</a></li>
</ul>
</li>
<li><a class="reference internal" href="#givenprovider">givenProvider</a><ul>
<li><a class="reference internal" href="#id6">Returns</a></li>
<li><a class="reference internal" href="#id7">Example</a></li>
</ul>
</li>
<li><a class="reference internal" href="#currentprovider">currentProvider</a><ul>
<li><a class="reference internal" href="#id8">Returns</a></li>
<li><a class="reference internal" href="#id9">Example</a></li>
</ul>
</li>
<li><a class="reference internal" href="#batchrequest">BatchRequest</a><ul>
<li><a class="reference internal" href="#id10">Parameters</a></li>
<li><a class="reference internal" href="#id11">Returns</a></li>
<li><a class="reference internal" href="#id12">Example</a></li>
</ul>
</li>
<li><a class="reference internal" href="#extend">extend</a><ul>
<li><a class="reference internal" href="#id13">Parameters</a></li>
<li><a class="reference internal" href="#id14">Returns</a></li>
<li><a class="reference internal" href="#id15">Example</a></li>
</ul>
</li>
</ul>
</li>
</ul>
<h4>Previous topic</h4>
<p class="topless"><a href="glossary.html"
title="previous chapter">Glossary</a></p>
<h4>Next topic</h4>
<p class="topless"><a href="web3-eth.html"
title="next chapter">web3.eth</a></p>
<div role="note" aria-label="source link">
<h3>This Page</h3>
<ul class="this-page-menu">
<li><a href="_sources/web3.txt"
rel="nofollow">Show Source</a></li>
</ul>
</div>
<div id="searchbox" style="display: none" role="search">
<h3>Quick search</h3>
<form class="search" action="search.html" method="get">
<div><input type="text" name="q" /></div>
<div><input type="submit" value="Go" /></div>
<input type="hidden" name="check_keywords" value="yes" />
<input type="hidden" name="area" value="default" />
</form>
</div>
<script type="text/javascript">$('#searchbox').show(0);</script>
</div>
</div>
<div class="clearer"></div>
</div>
<div class="related" role="navigation" aria-label="related navigation">
<h3>Navigation</h3>
<ul>
<li class="right" style="margin-right: 10px">
<a href="genindex.html" title="General Index"
>index</a></li>
<li class="right" >
<a href="web3-eth.html" title="web3.eth"
>next</a> |</li>
<li class="right" >
<a href="glossary.html" title="Glossary"
>previous</a> |</li>
<li class="nav-item nav-item-0"><a href="index.html">web3.js 1.0.0 documentation</a> &#187;</li>
</ul>
</div>
<div class="footer" role="contentinfo">
&#169; Copyright 2016, Ethereum.
Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.4.8.
</div>
</body>
</html>