Files
web3.js/docs/_build/html/web3-eth-subscribe.html
T
2019-01-27 16:55:45 +01:00

484 lines
43 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="X-UA-Compatible" content="IE=Edge" />
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>web3.eth.subscribe &#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" id="documentation_options" data-url_root="./" src="_static/documentation_options.js"></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>
<script type="text/javascript" src="_static/language_data.js"></script>
<link rel="index" title="Index" href="genindex.html" />
<link rel="search" title="Search" href="search.html" />
<link rel="next" title="web3.eth.Contract" href="web3-eth-contract.html" />
<link rel="prev" title="web3.eth" href="web3-eth.html" />
</head><body>
<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-contract.html" title="web3.eth.Contract"
accesskey="N">next</a> |</li>
<li class="right" >
<a href="web3-eth.html" title="web3.eth"
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" id="eth-subscribe">
<p class="first admonition-title">Note</p>
<p class="last">This documentation is work in progress and web3.js 1.0 stable 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-eth-subscribe">
<h1>web3.eth.subscribe<a class="headerlink" href="#web3-eth-subscribe" title="Permalink to this headline"></a></h1>
<p>The <code class="docutils literal notranslate"><span class="pre">web3.eth.subscribe</span></code> function lets you subscribe to specific events in the blockchain.</p>
<div class="section" id="subscribe">
<h2>subscribe<a class="headerlink" href="#subscribe" title="Permalink to this headline"></a></h2>
<div class="highlight-javascript notranslate"><div class="highlight"><pre><span></span><span class="nx">web3</span><span class="p">.</span><span class="nx">eth</span><span class="p">.</span><span class="nx">subscribe</span><span class="p">(</span><span class="nx">type</span> <span class="p">[,</span> <span class="nx">options</span><span class="p">]</span> <span class="p">[,</span> <span class="nx">callback</span><span class="p">]);</span>
</pre></div>
</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 notranslate"><span class="pre">String</span></code> - The subscription, you want to subscribe to.</li>
<li><code class="docutils literal notranslate"><span class="pre">Mixed</span></code> - (optional) Optional additional parameters, depending on the subscription type.</li>
<li><code class="docutils literal notranslate"><span class="pre">Function</span></code> - (optional) Optional callback, returns an error object as first parameter and the result as second. Will be called for each incoming subscription, and the subscription itself as 3 parameter.</li>
</ol>
</div>
<div class="section" id="returns">
<span id="eth-subscription-return"></span><h3>Returns<a class="headerlink" href="#returns" title="Permalink to this headline"></a></h3>
<p><code class="docutils literal notranslate"><span class="pre">EventEmitter</span></code> - A Subscription instance</p>
<blockquote>
<div><ul class="simple">
<li><code class="docutils literal notranslate"><span class="pre">subscription.id</span></code>: The subscription id, used to identify and unsubscribing the subscription.</li>
<li><code class="docutils literal notranslate"><span class="pre">subscription.subscribe([callback])</span></code>: Can be used to re-subscribe with the same parameters.</li>
<li><code class="docutils literal notranslate"><span class="pre">subscription.unsubscribe([callback])</span></code>: Unsubscribes the subscription and returns <cite>TRUE</cite> in the callback if successfull.</li>
<li><code class="docutils literal notranslate"><span class="pre">subscription.arguments</span></code>: The subscription arguments, used when re-subscribing.</li>
<li><code class="docutils literal notranslate"><span class="pre">on(&quot;data&quot;)</span></code> returns <code class="docutils literal notranslate"><span class="pre">Object</span></code>: Fires on each incoming log with the log object as argument.</li>
<li><code class="docutils literal notranslate"><span class="pre">on(&quot;changed&quot;)</span></code> returns <code class="docutils literal notranslate"><span class="pre">Object</span></code>: Fires on each log which was removed from the blockchain. The log will have the additional property <code class="docutils literal notranslate"><span class="pre">&quot;removed:</span> <span class="pre">true&quot;</span></code>.</li>
<li><code class="docutils literal notranslate"><span class="pre">on(&quot;error&quot;)</span></code> returns <code class="docutils literal notranslate"><span class="pre">Object</span></code>: Fires when an error in the subscription occurs.</li>
</ul>
</div></blockquote>
</div>
<div class="section" id="notification-returns">
<h3>Notification returns<a class="headerlink" href="#notification-returns" title="Permalink to this headline"></a></h3>
<ul class="simple">
<li><code class="docutils literal notranslate"><span class="pre">any</span></code> - depends on the subscription, see the different subscriptions for more.</li>
</ul>
</div>
<div class="section" id="example">
<h3>Example<a class="headerlink" href="#example" title="Permalink to this headline"></a></h3>
<div class="highlight-javascript notranslate"><div class="highlight"><pre><span></span><span class="kr">const</span> <span class="nx">subscription</span> <span class="o">=</span> <span class="nx">web3</span><span class="p">.</span><span class="nx">eth</span><span class="p">.</span><span class="nx">subscribe</span><span class="p">(</span><span class="s1">&#39;logs&#39;</span><span class="p">,</span> <span class="p">{</span>
<span class="nx">address</span><span class="o">:</span> <span class="s1">&#39;0x123456..&#39;</span><span class="p">,</span>
<span class="nx">topics</span><span class="o">:</span> <span class="p">[</span><span class="s1">&#39;0x12345...&#39;</span><span class="p">]</span>
<span class="p">},</span> <span class="kd">function</span><span class="p">(</span><span class="nx">error</span><span class="p">,</span> <span class="nx">result</span><span class="p">){</span>
<span class="k">if</span> <span class="p">(</span><span class="o">!</span><span class="nx">error</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">result</span><span class="p">);</span>
<span class="p">});</span>
<span class="c1">// unsubscribes the subscription</span>
<span class="nx">subscription</span><span class="p">.</span><span class="nx">unsubscribe</span><span class="p">(</span><span class="kd">function</span><span class="p">(</span><span class="nx">error</span><span class="p">,</span> <span class="nx">success</span><span class="p">){</span>
<span class="k">if</span><span class="p">(</span><span class="nx">success</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="s1">&#39;Successfully unsubscribed!&#39;</span><span class="p">);</span>
<span class="p">});</span>
</pre></div>
</div>
</div>
</div>
<hr class="docutils" />
<div class="section" id="clearsubscriptions">
<h2>clearSubscriptions<a class="headerlink" href="#clearsubscriptions" title="Permalink to this headline"></a></h2>
<div class="highlight-javascript notranslate"><div class="highlight"><pre><span></span><span class="nx">web3</span><span class="p">.</span><span class="nx">eth</span><span class="p">.</span><span class="nx">clearSubscriptions</span><span class="p">()</span>
</pre></div>
</div>
<p>Resets subscriptions.</p>
<div class="admonition note">
<p class="first admonition-title">Note</p>
<p class="last">This will not reset subscriptions from other packages like <code class="docutils literal notranslate"><span class="pre">web3-shh</span></code>.</p>
</div>
<div class="section" id="id1">
<h3>Returns<a class="headerlink" href="#id1" title="Permalink to this headline"></a></h3>
<p><code class="docutils literal notranslate"><span class="pre">Promise&lt;boolean&gt;</span></code></p>
</div>
<div class="section" id="id2">
<h3>Example<a class="headerlink" href="#id2" title="Permalink to this headline"></a></h3>
<div class="highlight-javascript notranslate"><div class="highlight"><pre><span></span><span class="nx">web3</span><span class="p">.</span><span class="nx">eth</span><span class="p">.</span><span class="nx">subscribe</span><span class="p">(</span><span class="s1">&#39;logs&#39;</span><span class="p">,</span> <span class="p">{}</span> <span class="p">,</span><span class="kd">function</span><span class="p">(){</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">eth</span><span class="p">.</span><span class="nx">clearSubscriptions</span><span class="p">();</span>
</pre></div>
</div>
</div>
</div>
<hr class="docutils" />
<div class="section" id="subscribe-pendingtransactions">
<h2>subscribe(“pendingTransactions”)<a class="headerlink" href="#subscribe-pendingtransactions" title="Permalink to this headline"></a></h2>
<div class="highlight-javascript notranslate"><div class="highlight"><pre><span></span><span class="nx">web3</span><span class="p">.</span><span class="nx">eth</span><span class="p">.</span><span class="nx">subscribe</span><span class="p">(</span><span class="s1">&#39;pendingTransactions&#39;</span> <span class="p">[,</span> <span class="nx">callback</span><span class="p">]);</span>
</pre></div>
</div>
<p>Subscribes to incoming pending transactions.</p>
<div class="section" id="id3">
<h3>Parameters<a class="headerlink" href="#id3" title="Permalink to this headline"></a></h3>
<ol class="arabic simple">
<li><code class="docutils literal notranslate"><span class="pre">String</span></code> - <code class="docutils literal notranslate"><span class="pre">&quot;pendingTransactions&quot;</span></code>, the type of the subscription.</li>
<li><code class="docutils literal notranslate"><span class="pre">Function</span></code> - (optional) Optional callback, returns an error object as first parameter and the result as second. Will be called for each incoming subscription.</li>
</ol>
</div>
<div class="section" id="id4">
<h3>Returns<a class="headerlink" href="#id4" title="Permalink to this headline"></a></h3>
<p><code class="docutils literal notranslate"><span class="pre">EventEmitter</span></code>: An <a class="reference internal" href="#eth-subscription-return"><span class="std std-ref">subscription instance</span></a> as an event emitter with the following events:</p>
<ul class="simple">
<li><code class="docutils literal notranslate"><span class="pre">&quot;data&quot;</span></code> returns <code class="docutils literal notranslate"><span class="pre">String</span></code>: Fires on each incoming pending transaction and returns the transaction hash.</li>
<li><code class="docutils literal notranslate"><span class="pre">&quot;error&quot;</span></code> returns <code class="docutils literal notranslate"><span class="pre">Object</span></code>: Fires when an error in the subscription occurs.</li>
</ul>
</div>
<div class="section" id="id5">
<h3>Notification returns<a class="headerlink" href="#id5" title="Permalink to this headline"></a></h3>
<ol class="arabic simple">
<li><code class="docutils literal notranslate"><span class="pre">Object|Null</span></code> - First parameter is an error object if the subscription failed.</li>
<li><code class="docutils literal notranslate"><span class="pre">String</span></code> - Second parameter is the transaction hash.</li>
</ol>
</div>
<div class="section" id="id6">
<h3>Example<a class="headerlink" href="#id6" title="Permalink to this headline"></a></h3>
<div class="highlight-javascript notranslate"><div class="highlight"><pre><span></span><span class="kr">const</span> <span class="nx">subscription</span> <span class="o">=</span> <span class="nx">web3</span><span class="p">.</span><span class="nx">eth</span><span class="p">.</span><span class="nx">subscribe</span><span class="p">(</span><span class="s1">&#39;pendingTransactions&#39;</span><span class="p">,</span> <span class="kd">function</span><span class="p">(</span><span class="nx">error</span><span class="p">,</span> <span class="nx">result</span><span class="p">){</span>
<span class="k">if</span> <span class="p">(</span><span class="o">!</span><span class="nx">error</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">result</span><span class="p">);</span>
<span class="p">})</span>
<span class="p">.</span><span class="nx">on</span><span class="p">(</span><span class="s2">&quot;data&quot;</span><span class="p">,</span> <span class="kd">function</span><span class="p">(</span><span class="nx">transaction</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">transaction</span><span class="p">);</span>
<span class="p">});</span>
<span class="c1">// unsubscribes the subscription</span>
<span class="nx">subscription</span><span class="p">.</span><span class="nx">unsubscribe</span><span class="p">(</span><span class="kd">function</span><span class="p">(</span><span class="nx">error</span><span class="p">,</span> <span class="nx">success</span><span class="p">){</span>
<span class="k">if</span><span class="p">(</span><span class="nx">success</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="s1">&#39;Successfully unsubscribed!&#39;</span><span class="p">);</span>
<span class="p">});</span>
</pre></div>
</div>
</div>
</div>
<hr class="docutils" />
<div class="section" id="subscribe-newblockheaders">
<h2>subscribe(“newBlockHeaders”)<a class="headerlink" href="#subscribe-newblockheaders" title="Permalink to this headline"></a></h2>
<div class="highlight-javascript notranslate"><div class="highlight"><pre><span></span><span class="nx">web3</span><span class="p">.</span><span class="nx">eth</span><span class="p">.</span><span class="nx">subscribe</span><span class="p">(</span><span class="s1">&#39;newBlockHeaders&#39;</span> <span class="p">[,</span> <span class="nx">callback</span><span class="p">]);</span>
</pre></div>
</div>
<p>Subscribes to incoming block headers. This can be used as timer to check for changes on the blockchain.</p>
<div class="section" id="id7">
<h3>Parameters<a class="headerlink" href="#id7" title="Permalink to this headline"></a></h3>
<ol class="arabic simple">
<li><code class="docutils literal notranslate"><span class="pre">String</span></code> - <code class="docutils literal notranslate"><span class="pre">&quot;newBlockHeaders&quot;</span></code>, the type of the subscription.</li>
<li><code class="docutils literal notranslate"><span class="pre">Function</span></code> - (optional) Optional callback, returns an error object as first parameter and the result as second. Will be called for each incoming subscription.</li>
</ol>
</div>
<div class="section" id="id8">
<h3>Returns<a class="headerlink" href="#id8" title="Permalink to this headline"></a></h3>
<p><code class="docutils literal notranslate"><span class="pre">EventEmitter</span></code>: An <a class="reference internal" href="#eth-subscription-return"><span class="std std-ref">subscription instance</span></a> as an event emitter with the following events:</p>
<ul class="simple">
<li><code class="docutils literal notranslate"><span class="pre">&quot;data&quot;</span></code> returns <code class="docutils literal notranslate"><span class="pre">Object</span></code>: Fires on each incoming block header.</li>
<li><code class="docutils literal notranslate"><span class="pre">&quot;error&quot;</span></code> returns <code class="docutils literal notranslate"><span class="pre">Object</span></code>: Fires when an error in the subscription occurs.</li>
</ul>
<p>The structure of a returned block header is as follows:</p>
<blockquote>
<div><ul class="simple">
<li><code class="docutils literal notranslate"><span class="pre">number</span></code> - <code class="docutils literal notranslate"><span class="pre">Number</span></code>: The block number. <code class="docutils literal notranslate"><span class="pre">null</span></code> when its pending block.</li>
<li><code class="docutils literal notranslate"><span class="pre">hash</span></code> 32 Bytes - <code class="docutils literal notranslate"><span class="pre">String</span></code>: Hash of the block. <code class="docutils literal notranslate"><span class="pre">null</span></code> when its pending block.</li>
<li><code class="docutils literal notranslate"><span class="pre">parentHash</span></code> 32 Bytes - <code class="docutils literal notranslate"><span class="pre">String</span></code>: Hash of the parent block.</li>
<li><code class="docutils literal notranslate"><span class="pre">nonce</span></code> 8 Bytes - <code class="docutils literal notranslate"><span class="pre">String</span></code>: Hash of the generated proof-of-work. <code class="docutils literal notranslate"><span class="pre">null</span></code> when its pending block.</li>
<li><code class="docutils literal notranslate"><span class="pre">sha3Uncles</span></code> 32 Bytes - <code class="docutils literal notranslate"><span class="pre">String</span></code>: SHA3 of the uncles data in the block.</li>
<li><code class="docutils literal notranslate"><span class="pre">logsBloom</span></code> 256 Bytes - <code class="docutils literal notranslate"><span class="pre">String</span></code>: The bloom filter for the logs of the block. <code class="docutils literal notranslate"><span class="pre">null</span></code> when its pending block.</li>
<li><code class="docutils literal notranslate"><span class="pre">transactionsRoot</span></code> 32 Bytes - <code class="docutils literal notranslate"><span class="pre">String</span></code>: The root of the transaction trie of the block</li>
<li><code class="docutils literal notranslate"><span class="pre">stateRoot</span></code> 32 Bytes - <code class="docutils literal notranslate"><span class="pre">String</span></code>: The root of the final state trie of the block.</li>
<li><code class="docutils literal notranslate"><span class="pre">receiptsRoot</span></code> 32 Bytes - <code class="docutils literal notranslate"><span class="pre">String</span></code>: Transaction receipts are used to store the state after a transaction has been executed and are kept in an index-keyed trie. The hash of its root is placed in the block header as the receipts root.</li>
<li><code class="docutils literal notranslate"><span class="pre">miner</span></code> - <code class="docutils literal notranslate"><span class="pre">String</span></code>: The address of the beneficiary to whom the mining rewards were given.</li>
<li><code class="docutils literal notranslate"><span class="pre">extraData</span></code> - <code class="docutils literal notranslate"><span class="pre">String</span></code>: The “extra data” field of this block.</li>
<li><code class="docutils literal notranslate"><span class="pre">gasLimit</span></code> - <code class="docutils literal notranslate"><span class="pre">Number</span></code>: The maximum gas allowed in this block.</li>
<li><code class="docutils literal notranslate"><span class="pre">gasUsed</span></code> - <code class="docutils literal notranslate"><span class="pre">Number</span></code>: The total used gas by all transactions in this block. It can be multiplied to <cite>gasPrice</cite> to obtain total amount in wei.</li>
<li><code class="docutils literal notranslate"><span class="pre">timestamp</span></code> - <code class="docutils literal notranslate"><span class="pre">Number</span></code>: The unix timestamp for when the block was collated.</li>
</ul>
</div></blockquote>
</div>
<div class="section" id="id9">
<h3>Notification returns<a class="headerlink" href="#id9" title="Permalink to this headline"></a></h3>
<ol class="arabic simple">
<li><code class="docutils literal notranslate"><span class="pre">Object|Null</span></code> - First parameter is an error object if the subscription failed.</li>
<li><code class="docutils literal notranslate"><span class="pre">Object</span></code> - The block header object like above.</li>
</ol>
</div>
<div class="section" id="id10">
<h3>Example<a class="headerlink" href="#id10" title="Permalink to this headline"></a></h3>
<div class="highlight-javascript notranslate"><div class="highlight"><pre><span></span><span class="kr">const</span> <span class="nx">subscription</span> <span class="o">=</span> <span class="nx">web3</span><span class="p">.</span><span class="nx">eth</span><span class="p">.</span><span class="nx">subscribe</span><span class="p">(</span><span class="s1">&#39;newBlockHeaders&#39;</span><span class="p">,</span> <span class="kd">function</span><span class="p">(</span><span class="nx">error</span><span class="p">,</span> <span class="nx">result</span><span class="p">){</span>
<span class="k">if</span> <span class="p">(</span><span class="o">!</span><span class="nx">error</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">result</span><span class="p">);</span>
<span class="k">return</span><span class="p">;</span>
<span class="p">}</span>
<span class="nx">console</span><span class="p">.</span><span class="nx">error</span><span class="p">(</span><span class="nx">error</span><span class="p">);</span>
<span class="p">})</span>
<span class="p">.</span><span class="nx">on</span><span class="p">(</span><span class="s2">&quot;data&quot;</span><span class="p">,</span> <span class="kd">function</span><span class="p">(</span><span class="nx">blockHeader</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">blockHeader</span><span class="p">);</span>
<span class="p">})</span>
<span class="p">.</span><span class="nx">on</span><span class="p">(</span><span class="s2">&quot;error&quot;</span><span class="p">,</span> <span class="nx">console</span><span class="p">.</span><span class="nx">error</span><span class="p">);</span>
<span class="c1">// unsubscribes the subscription</span>
<span class="nx">subscription</span><span class="p">.</span><span class="nx">unsubscribe</span><span class="p">(</span><span class="kd">function</span><span class="p">(</span><span class="nx">error</span><span class="p">,</span> <span class="nx">success</span><span class="p">){</span>
<span class="k">if</span> <span class="p">(</span><span class="nx">success</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="s1">&#39;Successfully unsubscribed!&#39;</span><span class="p">);</span>
<span class="p">}</span>
<span class="p">});</span>
</pre></div>
</div>
</div>
</div>
<hr class="docutils" />
<div class="section" id="subscribe-syncing">
<h2>subscribe(“syncing”)<a class="headerlink" href="#subscribe-syncing" title="Permalink to this headline"></a></h2>
<div class="highlight-javascript notranslate"><div class="highlight"><pre><span></span><span class="nx">web3</span><span class="p">.</span><span class="nx">eth</span><span class="p">.</span><span class="nx">subscribe</span><span class="p">(</span><span class="s1">&#39;syncing&#39;</span> <span class="p">[,</span> <span class="nx">callback</span><span class="p">]);</span>
</pre></div>
</div>
<p>Subscribe to syncing events. This will return an object when the node is syncing and when its finished syncing will return <code class="docutils literal notranslate"><span class="pre">FALSE</span></code>.</p>
<div class="section" id="id11">
<h3>Parameters<a class="headerlink" href="#id11" title="Permalink to this headline"></a></h3>
<ol class="arabic simple">
<li><code class="docutils literal notranslate"><span class="pre">String</span></code> - <code class="docutils literal notranslate"><span class="pre">&quot;syncing&quot;</span></code>, the type of the subscription.</li>
<li><code class="docutils literal notranslate"><span class="pre">Function</span></code> - (optional) Optional callback, returns an error object as first parameter and the result as second. Will be called for each incoming subscription.</li>
</ol>
</div>
<div class="section" id="id12">
<h3>Returns<a class="headerlink" href="#id12" title="Permalink to this headline"></a></h3>
<p><code class="docutils literal notranslate"><span class="pre">EventEmitter</span></code>: An <a class="reference internal" href="#eth-subscription-return"><span class="std std-ref">subscription instance</span></a> as an event emitter with the following events:</p>
<ul class="simple">
<li><code class="docutils literal notranslate"><span class="pre">&quot;data&quot;</span></code> returns <code class="docutils literal notranslate"><span class="pre">Object</span></code>: Fires on each incoming sync object as argument.</li>
<li><code class="docutils literal notranslate"><span class="pre">&quot;changed&quot;</span></code> returns <code class="docutils literal notranslate"><span class="pre">Object</span></code>: Fires when the synchronisation is started with <code class="docutils literal notranslate"><span class="pre">true</span></code> and when finished with <code class="docutils literal notranslate"><span class="pre">false</span></code>.</li>
<li><code class="docutils literal notranslate"><span class="pre">&quot;error&quot;</span></code> returns <code class="docutils literal notranslate"><span class="pre">Object</span></code>: Fires when an error in the subscription occurs.</li>
</ul>
<p>For the structure of a returned event <code class="docutils literal notranslate"><span class="pre">Object</span></code> see <a class="reference internal" href="web3-eth.html#eth-issyncing-return"><span class="std std-ref">web3.eth.isSyncing return values</span></a>.</p>
</div>
<div class="section" id="id13">
<h3>Notification returns<a class="headerlink" href="#id13" title="Permalink to this headline"></a></h3>
<ol class="arabic simple">
<li><code class="docutils literal notranslate"><span class="pre">Object|Null</span></code> - First parameter is an error object if the subscription failed.</li>
<li><code class="docutils literal notranslate"><span class="pre">Object|Boolean</span></code> - The syncing object, when started it will return <code class="docutils literal notranslate"><span class="pre">true</span></code> once or when finished it will return <cite>false</cite> once.</li>
</ol>
</div>
<div class="section" id="id14">
<h3>Example<a class="headerlink" href="#id14" title="Permalink to this headline"></a></h3>
<div class="highlight-javascript notranslate"><div class="highlight"><pre><span></span><span class="kr">const</span> <span class="nx">subscription</span> <span class="o">=</span> <span class="nx">web3</span><span class="p">.</span><span class="nx">eth</span><span class="p">.</span><span class="nx">subscribe</span><span class="p">(</span><span class="s1">&#39;syncing&#39;</span><span class="p">,</span> <span class="kd">function</span><span class="p">(</span><span class="nx">error</span><span class="p">,</span> <span class="nx">sync</span><span class="p">){</span>
<span class="k">if</span> <span class="p">(</span><span class="o">!</span><span class="nx">error</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">sync</span><span class="p">);</span>
<span class="p">})</span>
<span class="p">.</span><span class="nx">on</span><span class="p">(</span><span class="s2">&quot;data&quot;</span><span class="p">,</span> <span class="kd">function</span><span class="p">(</span><span class="nx">sync</span><span class="p">){</span>
<span class="c1">// show some syncing stats</span>
<span class="p">})</span>
<span class="p">.</span><span class="nx">on</span><span class="p">(</span><span class="s2">&quot;changed&quot;</span><span class="p">,</span> <span class="kd">function</span><span class="p">(</span><span class="nx">isSyncing</span><span class="p">){</span>
<span class="k">if</span><span class="p">(</span><span class="nx">isSyncing</span><span class="p">)</span> <span class="p">{</span>
<span class="c1">// stop app operation</span>
<span class="p">}</span> <span class="k">else</span> <span class="p">{</span>
<span class="c1">// regain app operation</span>
<span class="p">}</span>
<span class="p">});</span>
<span class="c1">// unsubscribes the subscription</span>
<span class="nx">subscription</span><span class="p">.</span><span class="nx">unsubscribe</span><span class="p">(</span><span class="kd">function</span><span class="p">(</span><span class="nx">error</span><span class="p">,</span> <span class="nx">success</span><span class="p">){</span>
<span class="k">if</span><span class="p">(</span><span class="nx">success</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="s1">&#39;Successfully unsubscribed!&#39;</span><span class="p">);</span>
<span class="p">});</span>
</pre></div>
</div>
</div>
</div>
<hr class="docutils" />
<div class="section" id="subscribe-logs">
<h2>subscribe(“logs”)<a class="headerlink" href="#subscribe-logs" title="Permalink to this headline"></a></h2>
<div class="highlight-javascript notranslate"><div class="highlight"><pre><span></span><span class="nx">web3</span><span class="p">.</span><span class="nx">eth</span><span class="p">.</span><span class="nx">subscribe</span><span class="p">(</span><span class="s1">&#39;logs&#39;</span><span class="p">,</span> <span class="nx">options</span> <span class="p">[,</span> <span class="nx">callback</span><span class="p">]);</span>
</pre></div>
</div>
<p>Subscribes to incoming logs, filtered by the given options.</p>
<div class="section" id="id15">
<h3>Parameters<a class="headerlink" href="#id15" title="Permalink to this headline"></a></h3>
<ol class="arabic simple">
<li><code class="docutils literal notranslate"><span class="pre">&quot;logs&quot;</span></code> - <code class="docutils literal notranslate"><span class="pre">String</span></code>, the type of the subscription.</li>
<li><code class="docutils literal notranslate"><span class="pre">Object</span></code> - The subscription options</li>
</ol>
<blockquote>
<div><ul class="simple">
<li><code class="docutils literal notranslate"><span class="pre">fromBlock</span></code> - <code class="docutils literal notranslate"><span class="pre">Number</span></code>: The number of the earliest block. By default <code class="docutils literal notranslate"><span class="pre">null</span></code>.</li>
<li><code class="docutils literal notranslate"><span class="pre">address</span></code> - <code class="docutils literal notranslate"><span class="pre">String|Array</span></code>: An address or a list of addresses to only get logs from particular account(s).</li>
<li><code class="docutils literal notranslate"><span class="pre">topics</span></code> - <code class="docutils literal notranslate"><span class="pre">Array</span></code>: An array of values which must each appear in the log entries. The order is important, if you want to leave topics out use <code class="docutils literal notranslate"><span class="pre">null</span></code>, e.g. <code class="docutils literal notranslate"><span class="pre">[null,</span> <span class="pre">'0x00...']</span></code>. You can also pass another array for each topic with options for that topic e.g. <code class="docutils literal notranslate"><span class="pre">[null,</span> <span class="pre">['option1',</span> <span class="pre">'option2']]</span></code></li>
</ul>
</div></blockquote>
<ol class="arabic simple" start="3">
<li><code class="docutils literal notranslate"><span class="pre">callback</span></code> - <code class="docutils literal notranslate"><span class="pre">Function</span></code>: (optional) Optional callback, returns an error object as first parameter and the result as second. Will be called for each incoming subscription.</li>
</ol>
</div>
<div class="section" id="id16">
<h3>Returns<a class="headerlink" href="#id16" title="Permalink to this headline"></a></h3>
<p><code class="docutils literal notranslate"><span class="pre">EventEmitter</span></code>: An <a class="reference internal" href="#eth-subscription-return"><span class="std std-ref">subscription instance</span></a> as an event emitter with the following events:</p>
<ul class="simple">
<li><code class="docutils literal notranslate"><span class="pre">&quot;data&quot;</span></code> returns <code class="docutils literal notranslate"><span class="pre">Object</span></code>: Fires on each incoming log with the log object as argument.</li>
<li><code class="docutils literal notranslate"><span class="pre">&quot;changed&quot;</span></code> returns <code class="docutils literal notranslate"><span class="pre">Object</span></code>: Fires on each log which was removed from the blockchain. The log will have the additional property <code class="docutils literal notranslate"><span class="pre">&quot;removed:</span> <span class="pre">true&quot;</span></code>.</li>
<li><code class="docutils literal notranslate"><span class="pre">&quot;error&quot;</span></code> returns <code class="docutils literal notranslate"><span class="pre">Object</span></code>: Fires when an error in the subscription occurs.</li>
</ul>
<p>For the structure of a returned event <code class="docutils literal notranslate"><span class="pre">Object</span></code> see <a class="reference internal" href="web3-eth.html#eth-getpastlogs-return"><span class="std std-ref">web3.eth.getPastEvents return values</span></a>.</p>
</div>
<div class="section" id="id17">
<h3>Notification returns<a class="headerlink" href="#id17" title="Permalink to this headline"></a></h3>
<ol class="arabic simple">
<li><code class="docutils literal notranslate"><span class="pre">Object|Null</span></code> - First parameter is an error object if the subscription failed.</li>
<li><code class="docutils literal notranslate"><span class="pre">Object</span></code> - The log object like in <a class="reference internal" href="web3-eth.html#eth-getpastlogs-return"><span class="std std-ref">web3.eth.getPastEvents return values</span></a>.</li>
</ol>
</div>
<div class="section" id="id18">
<h3>Example<a class="headerlink" href="#id18" title="Permalink to this headline"></a></h3>
<div class="highlight-javascript notranslate"><div class="highlight"><pre><span></span><span class="kr">const</span> <span class="nx">subscription</span> <span class="o">=</span> <span class="nx">web3</span><span class="p">.</span><span class="nx">eth</span><span class="p">.</span><span class="nx">subscribe</span><span class="p">(</span><span class="s1">&#39;logs&#39;</span><span class="p">,</span> <span class="p">{</span>
<span class="nx">address</span><span class="o">:</span> <span class="s1">&#39;0x123456..&#39;</span><span class="p">,</span>
<span class="nx">topics</span><span class="o">:</span> <span class="p">[</span><span class="s1">&#39;0x12345...&#39;</span><span class="p">]</span>
<span class="p">},</span> <span class="p">(</span><span class="nx">error</span><span class="p">,</span> <span class="nx">result</span><span class="p">)</span> <span class="p">=&gt;</span> <span class="p">{</span>
<span class="k">if</span> <span class="p">(</span><span class="o">!</span><span class="nx">error</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">result</span><span class="p">);</span>
<span class="p">}</span>
<span class="nx">console</span><span class="p">.</span><span class="nx">error</span><span class="p">(</span><span class="nx">error</span><span class="p">);</span>
<span class="p">})</span>
<span class="p">.</span><span class="nx">on</span><span class="p">(</span><span class="s2">&quot;data&quot;</span><span class="p">,</span> <span class="p">(</span><span class="nx">log</span><span class="p">)</span> <span class="p">=&gt;</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">log</span><span class="p">);</span>
<span class="p">})</span>
<span class="p">.</span><span class="nx">on</span><span class="p">(</span><span class="s2">&quot;changed&quot;</span><span class="p">,</span> <span class="p">(</span><span class="nx">log</span><span class="p">)</span> <span class="p">=&gt;</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">log</span><span class="p">);</span>
<span class="p">});</span>
<span class="c1">// unsubscribes the subscription</span>
<span class="nx">subscription</span><span class="p">.</span><span class="nx">unsubscribe</span><span class="p">((</span><span class="nx">error</span><span class="p">,</span> <span class="nx">success</span><span class="p">)</span> <span class="p">=&gt;</span> <span class="p">{</span>
<span class="k">if</span> <span class="p">(</span><span class="nx">success</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="s1">&#39;Successfully unsubscribed!&#39;</span><span class="p">);</span>
<span class="p">}</span>
<span class="p">});</span>
</pre></div>
</div>
</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.eth.subscribe</a><ul>
<li><a class="reference internal" href="#subscribe">subscribe</a><ul>
<li><a class="reference internal" href="#parameters">Parameters</a></li>
<li><a class="reference internal" href="#returns">Returns</a></li>
<li><a class="reference internal" href="#notification-returns">Notification returns</a></li>
<li><a class="reference internal" href="#example">Example</a></li>
</ul>
</li>
<li><a class="reference internal" href="#clearsubscriptions">clearSubscriptions</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="#subscribe-pendingtransactions">subscribe(“pendingTransactions”)</a><ul>
<li><a class="reference internal" href="#id3">Parameters</a></li>
<li><a class="reference internal" href="#id4">Returns</a></li>
<li><a class="reference internal" href="#id5">Notification returns</a></li>
<li><a class="reference internal" href="#id6">Example</a></li>
</ul>
</li>
<li><a class="reference internal" href="#subscribe-newblockheaders">subscribe(“newBlockHeaders”)</a><ul>
<li><a class="reference internal" href="#id7">Parameters</a></li>
<li><a class="reference internal" href="#id8">Returns</a></li>
<li><a class="reference internal" href="#id9">Notification returns</a></li>
<li><a class="reference internal" href="#id10">Example</a></li>
</ul>
</li>
<li><a class="reference internal" href="#subscribe-syncing">subscribe(“syncing”)</a><ul>
<li><a class="reference internal" href="#id11">Parameters</a></li>
<li><a class="reference internal" href="#id12">Returns</a></li>
<li><a class="reference internal" href="#id13">Notification returns</a></li>
<li><a class="reference internal" href="#id14">Example</a></li>
</ul>
</li>
<li><a class="reference internal" href="#subscribe-logs">subscribe(“logs”)</a><ul>
<li><a class="reference internal" href="#id15">Parameters</a></li>
<li><a class="reference internal" href="#id16">Returns</a></li>
<li><a class="reference internal" href="#id17">Notification returns</a></li>
<li><a class="reference internal" href="#id18">Example</a></li>
</ul>
</li>
</ul>
</li>
</ul>
<h4>Previous topic</h4>
<p class="topless"><a href="web3-eth.html"
title="previous chapter">web3.eth</a></p>
<h4>Next topic</h4>
<p class="topless"><a href="web3-eth-contract.html"
title="next chapter">web3.eth.Contract</a></p>
<div role="note" aria-label="source link">
<h3>This Page</h3>
<ul class="this-page-menu">
<li><a href="_sources/web3-eth-subscribe.rst.txt"
rel="nofollow">Show Source</a></li>
</ul>
</div>
<div id="searchbox" style="display: none" role="search">
<h3>Quick search</h3>
<div class="searchformwrapper">
<form class="search" action="search.html" method="get">
<input type="text" name="q" />
<input type="submit" value="Go" />
<input type="hidden" name="check_keywords" value="yes" />
<input type="hidden" name="area" value="default" />
</form>
</div>
</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-contract.html" title="web3.eth.Contract"
>next</a> |</li>
<li class="right" >
<a href="web3-eth.html" title="web3.eth"
>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.8.3.
</div>
</body>
</html>