You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

10565 lines
127 KiB

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>JSDoc: Class: Chain</title>
<script src="scripts/prettify/prettify.js"> </script>
<script src="scripts/prettify/lang-css.js"> </script>
<!--[if lt IE 9]>
<script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
<![endif]-->
<link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
<link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
</head>
<body>
<div id="main">
<h1 class="page-title">Class: Chain</h1>
<section>
<header>
<h2>
<span class="ancestors"><a href="module-blockchain.html">blockchain</a>.</span>Chain</h2>
</header>
<article>
<div class="container-overview">
<h4 class="name" id="Chain"><span class="type-signature"></span>new Chain<span class="signature">(options)</span><span class="type-signature"></span></h4>
<div class="description">
<p>Represents a blockchain.</p>
</div>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>options</code></td>
<td class="type">
<span class="param-type">Object</span>
</td>
<td class="description last">
<h6>Properties</h6>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th>Attributes</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>name</code></td>
<td class="type">
<span class="param-type">String</span>
</td>
<td class="attributes">
&lt;nullable><br>
</td>
<td class="description last"><p>Database name.</p></td>
</tr>
<tr>
<td class="name"><code>location</code></td>
<td class="type">
<span class="param-type">String</span>
</td>
<td class="attributes">
&lt;nullable><br>
</td>
<td class="description last"><p>Database file location.</p></td>
</tr>
<tr>
<td class="name"><code>db</code></td>
<td class="type">
<span class="param-type">String</span>
</td>
<td class="attributes">
&lt;nullable><br>
</td>
<td class="description last"><p>Database backend (<code>&quot;leveldb&quot;</code> by default).</p></td>
</tr>
<tr>
<td class="name"><code>orphanLimit</code></td>
<td class="type">
<span class="param-type">Number</span>
</td>
<td class="attributes">
&lt;nullable><br>
</td>
<td class="description last"></td>
</tr>
<tr>
<td class="name"><code>spv</code></td>
<td class="type">
<span class="param-type">Boolean</span>
</td>
<td class="attributes">
&lt;nullable><br>
</td>
<td class="description last"></td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
<h5 class="subsection-title">Properties:</h5>
<table class="props">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th>Attributes</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>loaded</code></td>
<td class="type">
<span class="param-type">Boolean</span>
</td>
<td class="attributes">
</td>
<td class="description last"></td>
</tr>
<tr>
<td class="name"><code>db</code></td>
<td class="type">
<span class="param-type"><a href="ChainDB.html">ChainDB</a></span>
</td>
<td class="attributes">
</td>
<td class="description last"><p>Note that Chain <code>options</code> will be passed
to the instantiated ChainDB.</p></td>
</tr>
<tr>
<td class="name"><code>total</code></td>
<td class="type">
<span class="param-type">Number</span>
</td>
<td class="attributes">
</td>
<td class="description last"></td>
</tr>
<tr>
<td class="name"><code>locker</code></td>
<td class="type">
<span class="param-type">Lock</span>
</td>
<td class="attributes">
</td>
<td class="description last"></td>
</tr>
<tr>
<td class="name"><code>invalid</code></td>
<td class="type">
<span class="param-type">Object</span>
</td>
<td class="attributes">
</td>
<td class="description last"></td>
</tr>
<tr>
<td class="name"><code>tip</code></td>
<td class="type">
<span class="param-type">ChainEntry</span>
</td>
<td class="attributes">
&lt;nullable><br>
</td>
<td class="description last"></td>
</tr>
<tr>
<td class="name"><code>height</code></td>
<td class="type">
<span class="param-type">Number</span>
</td>
<td class="attributes">
</td>
<td class="description last"></td>
</tr>
<tr>
<td class="name"><code>state</code></td>
<td class="type">
<span class="param-type">DeploymentState</span>
</td>
<td class="attributes">
</td>
<td class="description last"></td>
</tr>
<tr>
<td class="name"><code>orphan</code></td>
<td class="type">
<span class="param-type">Object</span>
</td>
<td class="attributes">
</td>
<td class="description last"><p>Orphan map.</p></td>
</tr>
</tbody>
</table>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="blockchain_chain.js.html">blockchain/chain.js</a>, <a href="blockchain_chain.js.html#line64">line 64</a>
</li></ul></dd>
</dl>
<h5>Fires:</h5>
<ul>
<li>Chain#event:open</li>
<li>Chain#event:error</li>
<li>Chain#event:block</li>
<li>Chain#event:competitor</li>
<li>Chain#event:resolved</li>
<li>Chain#event:checkpoint</li>
<li>Chain#event:fork</li>
<li>Chain#event:reorganize</li>
<li>Chain#event:invalid</li>
<li>Chain#event:exists</li>
<li>Chain#event:purge</li>
<li>Chain#event:connect</li>
<li>Chain#event:reconnect</li>
<li>Chain#event:disconnect</li>
</ul>
</div>
<h3 class="subsection-title">Methods</h3>
<h4 class="name" id="_add"><span class="type-signature">(private) </span>_add<span class="signature">(block)</span><span class="type-signature"> &rarr; {Promise}</span></h4>
<div class="description">
<p>Add a block to the chain without a lock.</p>
</div>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>block</code></td>
<td class="type">
<span class="param-type"><a href="Block.html">Block</a></span>
</td>
<td class="description last"></td>
</tr>
</tbody>
</table>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="blockchain_chain.js.html">blockchain/chain.js</a>, <a href="blockchain_chain.js.html#line1155">line 1155</a>
</li></ul></dd>
</dl>
<h5>Returns:</h5>
<dl>
<dt>
Type
</dt>
<dd>
<span class="param-type">Promise</span>
</dd>
</dl>
<h4 class="name" id="_getLocator"><span class="type-signature">(private) </span>_getLocator<span class="signature">(start)</span><span class="type-signature"> &rarr; {Promise}</span></h4>
<div class="description">
<p>Calculate chain locator without a lock.</p>
</div>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>start</code></td>
<td class="type">
<span class="param-type"><a href="global.html#Hash">Hash</a></span>
</td>
<td class="description last"></td>
</tr>
</tbody>
</table>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="blockchain_chain.js.html">blockchain/chain.js</a>, <a href="blockchain_chain.js.html#line1751">line 1751</a>
</li></ul></dd>
</dl>
<h5>Returns:</h5>
<dl>
<dt>
Type
</dt>
<dd>
<span class="param-type">Promise</span>
</dd>
</dl>
<h4 class="name" id="_init"><span class="type-signature">(private) </span>_init<span class="signature">()</span><span class="type-signature"></span></h4>
<div class="description">
<p>Initialize the chain.</p>
</div>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="blockchain_chain.js.html">blockchain/chain.js</a>, <a href="blockchain_chain.js.html#line103">line 103</a>
</li></ul></dd>
</dl>
<h4 class="name" id="_replay"><span class="type-signature">(private) </span>_replay<span class="signature">(block)</span><span class="type-signature"> &rarr; {Promise}</span></h4>
<div class="description">
<p>Reset the chain without a lock.</p>
</div>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>block</code></td>
<td class="type">
<span class="param-type"><a href="global.html#Hash">Hash</a></span>
|
<span class="param-type">Number</span>
</td>
<td class="description last"><p>hash/height</p></td>
</tr>
</tbody>
</table>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="blockchain_chain.js.html">blockchain/chain.js</a>, <a href="blockchain_chain.js.html#line1062">line 1062</a>
</li></ul></dd>
</dl>
<h5>Returns:</h5>
<dl>
<dt>
Type
</dt>
<dd>
<span class="param-type">Promise</span>
</dd>
</dl>
<h4 class="name" id="_reset"><span class="type-signature">(private) </span>_reset<span class="signature">(block)</span><span class="type-signature"> &rarr; {Promise}</span></h4>
<div class="description">
<p>Reset the chain to the desired block without a lock.</p>
</div>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>block</code></td>
<td class="type">
<span class="param-type"><a href="global.html#Hash">Hash</a></span>
|
<span class="param-type">Number</span>
</td>
<td class="description last"></td>
</tr>
</tbody>
</table>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="blockchain_chain.js.html">blockchain/chain.js</a>, <a href="blockchain_chain.js.html#line1011">line 1011</a>
</li></ul></dd>
</dl>
<h5>Returns:</h5>
<dl>
<dt>
Type
</dt>
<dd>
<span class="param-type">Promise</span>
</dd>
</dl>
<h4 class="name" id="_resetTime"><span class="type-signature">(private) </span>_resetTime<span class="signature">(ts)</span><span class="type-signature"> &rarr; {Promise}</span></h4>
<div class="description">
<p>Reset the chain to the desired timestamp without a lock.</p>
</div>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>ts</code></td>
<td class="type">
<span class="param-type">Number</span>
</td>
<td class="description last"><p>Timestamp.</p></td>
</tr>
</tbody>
</table>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="blockchain_chain.js.html">blockchain/chain.js</a>, <a href="blockchain_chain.js.html#line1121">line 1121</a>
</li></ul></dd>
</dl>
<h5>Returns:</h5>
<dl>
<dt>
Type
</dt>
<dd>
<span class="param-type">Promise</span>
</dd>
</dl>
<h4 class="name" id="add"><span class="type-signature"></span>add<span class="signature">(block)</span><span class="type-signature"> &rarr; {Promise}</span></h4>
<div class="description">
<p>Add a block to the chain, perform all necessary verification.</p>
</div>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>block</code></td>
<td class="type">
<span class="param-type"><a href="Block.html">Block</a></span>
</td>
<td class="description last"></td>
</tr>
</tbody>
</table>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="blockchain_chain.js.html">blockchain/chain.js</a>, <a href="blockchain_chain.js.html#line1137">line 1137</a>
</li></ul></dd>
</dl>
<h5>Returns:</h5>
<dl>
<dt>
Type
</dt>
<dd>
<span class="param-type">Promise</span>
</dd>
</dl>
<h4 class="name" id="checkHeight"><span class="type-signature">(private) </span>checkHeight<span class="signature">(hash)</span><span class="type-signature"> &rarr; {Number}</span></h4>
<div class="description">
<p>Get the cached height for a hash if present.</p>
</div>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>hash</code></td>
<td class="type">
<span class="param-type"><a href="global.html#Hash">Hash</a></span>
</td>
<td class="description last"></td>
</tr>
</tbody>
</table>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="blockchain_chain.js.html">blockchain/chain.js</a>, <a href="blockchain_chain.js.html#line675">line 675</a>
</li></ul></dd>
</dl>
<h5>Returns:</h5>
<dl>
<dt>
Type
</dt>
<dd>
<span class="param-type">Number</span>
</dd>
</dl>
<h4 class="name" id="computeBlockVersion"><span class="type-signature"></span>computeBlockVersion<span class="signature">(prev)</span><span class="type-signature"> &rarr; {Promise}</span></h4>
<div class="description">
<p>Compute the version for a new block (BIP9: versionbits).</p>
</div>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>prev</code></td>
<td class="type">
<span class="param-type">ChainEntry</span>
</td>
<td class="description last"><p>Previous chain entry (usually the tip).</p></td>
</tr>
</tbody>
</table>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="blockchain_chain.js.html">blockchain/chain.js</a>, <a href="blockchain_chain.js.html#line2127">line 2127</a>
</li></ul></dd>
<dt class="tag-see">See:</dt>
<dd class="tag-see">
<ul>
<li><a href="https://github.com/bitcoin/bips/blob/master/bip-0009.mediawiki">https://github.com/bitcoin/bips/blob/master/bip-0009.mediawiki</a></li>
</ul>
</dd>
</dl>
<h5>Returns:</h5>
<div class="param-desc">
<ul>
<li>Returns Number.</li>
</ul>
</div>
<dl>
<dt>
Type
</dt>
<dd>
<span class="param-type">Promise</span>
</dd>
</dl>
<h4 class="name" id="disconnect"><span class="type-signature"></span>disconnect<span class="signature">(entry)</span><span class="type-signature"> &rarr; {Promise}</span></h4>
<div class="description">
<p>Disconnect an entry from the chain (updates the tip).</p>
</div>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>entry</code></td>
<td class="type">
<span class="param-type">ChainEntry</span>
</td>
<td class="description last"></td>
</tr>
</tbody>
</table>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="blockchain_chain.js.html">blockchain/chain.js</a>, <a href="blockchain_chain.js.html#line817">line 817</a>
</li></ul></dd>
</dl>
<h5>Returns:</h5>
<dl>
<dt>
Type
</dt>
<dd>
<span class="param-type">Promise</span>
</dd>
</dl>
<h4 class="name" id="findFork"><span class="type-signature">(private) </span>findFork<span class="signature">(fork, longer)</span><span class="type-signature"> &rarr; {Promise}</span></h4>
<div class="description">
<p>Find the block at which a fork ocurred.</p>
</div>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>fork</code></td>
<td class="type">
<span class="param-type">ChainEntry</span>
</td>
<td class="description last"><p>The current chain.</p></td>
</tr>
<tr>
<td class="name"><code>longer</code></td>
<td class="type">
<span class="param-type">ChainEntry</span>
</td>
<td class="description last"><p>The competing chain.</p></td>
</tr>
</tbody>
</table>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="blockchain_chain.js.html">blockchain/chain.js</a>, <a href="blockchain_chain.js.html#line693">line 693</a>
</li></ul></dd>
</dl>
<h5>Returns:</h5>
<dl>
<dt>
Type
</dt>
<dd>
<span class="param-type">Promise</span>
</dd>
</dl>
<h4 class="name" id="findLocator"><span class="type-signature"></span>findLocator<span class="signature">(locator)</span><span class="type-signature"> &rarr; {Promise}</span></h4>
<div class="description">
<p>Find a locator. Analagous to bitcoind's <code>FindForkInGlobalIndex()</code>.</p>
</div>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>locator</code></td>
<td class="type">
<span class="param-type">Array:<a href="global.html"></a>.&lt;<a href="global.html#Hash">Hash</a>:<a href="global.html"></a>></span>
</td>
<td class="description last"><p>Hashes.</p></td>
</tr>
</tbody>
</table>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="blockchain_chain.js.html">blockchain/chain.js</a>, <a href="blockchain_chain.js.html#line1973">line 1973</a>
</li></ul></dd>
</dl>
<h5>Returns:</h5>
<div class="param-desc">
<ul>
<li>Returns <a href="global.html#Hash">Hash</a> (the
hash of the latest known block).</li>
</ul>
</div>
<dl>
<dt>
Type
</dt>
<dd>
<span class="param-type">Promise</span>
</dd>
</dl>
<h4 class="name" id="finish"><span class="type-signature">(private) </span>finish<span class="signature">(block, entry)</span><span class="type-signature"></span></h4>
<div class="description">
<p>Calculate the time difference from
start time and log block.</p>
</div>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>block</code></td>
<td class="type">
<span class="param-type"><a href="Block.html">Block</a></span>
</td>
<td class="description last"></td>
</tr>
<tr>
<td class="name"><code>entry</code></td>
<td class="type">
<span class="param-type">ChainEntry</span>
</td>
<td class="description last"></td>
</tr>
</tbody>
</table>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="blockchain_chain.js.html">blockchain/chain.js</a>, <a href="blockchain_chain.js.html#line1321">line 1321</a>
</li></ul></dd>
</dl>
<h4 class="name" id="getCoinView"><span class="type-signature"></span>getCoinView<span class="signature">(tx)</span><span class="type-signature"> &rarr; {Promise}</span></h4>
<div class="description">
<p>Get coin viewpoint.</p>
</div>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>tx</code></td>
<td class="type">
<span class="param-type">TX</span>
</td>
<td class="description last"></td>
</tr>
</tbody>
</table>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="blockchain_chain.js.html">blockchain/chain.js</a>, <a href="blockchain_chain.js.html#line1657">line 1657</a>
</li></ul></dd>
</dl>
<h5>Returns:</h5>
<div class="param-desc">
<ul>
<li>Returns CoinView.</li>
</ul>
</div>
<dl>
<dt>
Type
</dt>
<dd>
<span class="param-type">Promise</span>
</dd>
</dl>
<h4 class="name" id="getCurrentTarget"><span class="type-signature"></span>getCurrentTarget<span class="signature">()</span><span class="type-signature"> &rarr; {Promise}</span></h4>
<div class="description">
<p>Calculate the next target based on the chain tip.</p>
</div>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="blockchain_chain.js.html">blockchain/chain.js</a>, <a href="blockchain_chain.js.html#line1860">line 1860</a>
</li></ul></dd>
</dl>
<h5>Returns:</h5>
<div class="param-desc">
<ul>
<li>returns Number
(target is in compact/mantissa form).</li>
</ul>
</div>
<dl>
<dt>
Type
</dt>
<dd>
<span class="param-type">Promise</span>
</dd>
</dl>
<h4 class="name" id="getDeployments"><span class="type-signature"></span>getDeployments<span class="signature">(block, prev)</span><span class="type-signature"> &rarr; {Promise}</span></h4>
<div class="description">
<p>Check all deployments on a chain, ranging from p2sh to segwit.</p>
</div>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>block</code></td>
<td class="type">
<span class="param-type"><a href="Block.html">Block</a></span>
</td>
<td class="description last"></td>
</tr>
<tr>
<td class="name"><code>prev</code></td>
<td class="type">
<span class="param-type">ChainEntry</span>
</td>
<td class="description last"></td>
</tr>
</tbody>
</table>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="blockchain_chain.js.html">blockchain/chain.js</a>, <a href="blockchain_chain.js.html#line419">line 419</a>
</li></ul></dd>
</dl>
<h5>Returns:</h5>
<div class="param-desc">
<ul>
<li>Returns [VerifyError, DeploymentState].</li>
</ul>
</div>
<dl>
<dt>
Type
</dt>
<dd>
<span class="param-type">Promise</span>
</dd>
</dl>
<h4 class="name" id="getDeploymentState"><span class="type-signature">(private) </span>getDeploymentState<span class="signature">()</span><span class="type-signature"> &rarr; {Promise}</span></h4>
<div class="description">
<p>Get the current deployment state of the chain. Called on load.</p>
</div>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="blockchain_chain.js.html">blockchain/chain.js</a>, <a href="blockchain_chain.js.html#line2154">line 2154</a>
</li></ul></dd>
</dl>
<h5>Returns:</h5>
<div class="param-desc">
<ul>
<li>Returns DeploymentState.</li>
</ul>
</div>
<dl>
<dt>
Type
</dt>
<dd>
<span class="param-type">Promise</span>
</dd>
</dl>
<h4 class="name" id="getEntry"><span class="type-signature"></span>getEntry<span class="signature">(hash/height)</span><span class="type-signature"> &rarr; {Promise}</span></h4>
<div class="description">
<p>Find the corresponding block entry by hash or height.</p>
</div>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>hash/height</code></td>
<td class="type">
<span class="param-type"><a href="global.html#Hash">Hash</a></span>
|
<span class="param-type">Number</span>
</td>
<td class="description last"></td>
</tr>
</tbody>
</table>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="blockchain_chain.js.html">blockchain/chain.js</a>, <a href="blockchain_chain.js.html#line1606">line 1606</a>
</li></ul></dd>
</dl>
<h5>Returns:</h5>
<div class="param-desc">
<ul>
<li>Returns ChainEntry.</li>
</ul>
</div>
<dl>
<dt>
Type
</dt>
<dd>
<span class="param-type">Promise</span>
</dd>
</dl>
<h4 class="name" id="getLocator"><span class="type-signature"></span>getLocator<span class="signature">(start)</span><span class="type-signature"> &rarr; {Promise}</span></h4>
<div class="description">
<p>Calculate chain locator (an array of hashes).</p>
</div>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>start</code></td>
<td class="type">
<span class="param-type"><a href="global.html#Hash">Hash</a></span>
</td>
<td class="description last"><p>Height or hash to treat as the tip.
The current tip will be used if not present. Note that this can be a
non-existent hash, which is useful for headers-first locators.</p></td>
</tr>
</tbody>
</table>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="blockchain_chain.js.html">blockchain/chain.js</a>, <a href="blockchain_chain.js.html#line1734">line 1734</a>
</li></ul></dd>
</dl>
<h5>Returns:</h5>
<div class="param-desc">
<ul>
<li>Returns <a href="global.html#Hash">Hash</a>[].</li>
</ul>
</div>
<dl>
<dt>
Type
</dt>
<dd>
<span class="param-type">Promise</span>
</dd>
</dl>
<h4 class="name" id="getLocks"><span class="type-signature"></span>getLocks<span class="signature">(prev, tx, view, flags)</span><span class="type-signature"> &rarr; {Promise}</span></h4>
<div class="description">
<p>Get the necessary minimum time and height sequence locks for a transaction.</p>
</div>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>prev</code></td>
<td class="type">
<span class="param-type">ChainEntry</span>
</td>
<td class="description last"></td>
</tr>
<tr>
<td class="name"><code>tx</code></td>
<td class="type">
<span class="param-type">TX</span>
</td>
<td class="description last"></td>
</tr>
<tr>
<td class="name"><code>view</code></td>
<td class="type">
<span class="param-type">CoinView</span>
</td>
<td class="description last"></td>
</tr>
<tr>
<td class="name"><code>flags</code></td>
<td class="type">
<span class="param-type"><a href="global.html#LockFlags">LockFlags</a></span>
</td>
<td class="description last"></td>
</tr>
</tbody>
</table>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="blockchain_chain.js.html">blockchain/chain.js</a>, <a href="blockchain_chain.js.html#line2205">line 2205</a>
</li></ul></dd>
</dl>
<h5>Returns:</h5>
<div class="param-desc">
<p>[Error, Number(minTime), Number(minHeight)].</p>
</div>
<dl>
<dt>
Type
</dt>
<dd>
<span class="param-type">Promise</span>
</dd>
</dl>
<h4 class="name" id="getOrphan"><span class="type-signature"></span>getOrphan<span class="signature">(hash)</span><span class="type-signature"> &rarr; {<a href="Block.html">Block</a>}</span></h4>
<div class="description">
<p>Get an orphan block.</p>
</div>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>hash</code></td>
<td class="type">
<span class="param-type"><a href="global.html#Hash">Hash</a></span>
</td>
<td class="description last"></td>
</tr>
</tbody>
</table>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="blockchain_chain.js.html">blockchain/chain.js</a>, <a href="blockchain_chain.js.html#line1626">line 1626</a>
</li></ul></dd>
</dl>
<h5>Returns:</h5>
<dl>
<dt>
Type
</dt>
<dd>
<span class="param-type"><a href="Block.html">Block</a></span>
</dd>
</dl>
<h4 class="name" id="getOrphanRoot"><span class="type-signature"></span>getOrphanRoot<span class="signature">(hash)</span><span class="type-signature"> &rarr; {<a href="global.html#Hash">Hash</a>}</span></h4>
<div class="description">
<p>Calculate the orphan root of the hash (if it is an orphan).</p>
</div>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>hash</code></td>
<td class="type">
<span class="param-type"><a href="global.html#Hash">Hash</a></span>
</td>
<td class="description last"></td>
</tr>
</tbody>
</table>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="blockchain_chain.js.html">blockchain/chain.js</a>, <a href="blockchain_chain.js.html#line1812">line 1812</a>
</li></ul></dd>
</dl>
<h5>Returns:</h5>
<dl>
<dt>
Type
</dt>
<dd>
<span class="param-type"><a href="global.html#Hash">Hash</a></span>
</dd>
</dl>
<h4 class="name" id="getProgress"><span class="type-signature"></span>getProgress<span class="signature">()</span><span class="type-signature"> &rarr; {Number}</span></h4>
<div class="description">
<p>Get the fill percentage.</p>
</div>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="blockchain_chain.js.html">blockchain/chain.js</a>, <a href="blockchain_chain.js.html#line1718">line 1718</a>
</li></ul></dd>
</dl>
<h5>Returns:</h5>
<div class="param-desc">
<p>percent - Ranges from 0.0 to 1.0.</p>
</div>
<dl>
<dt>
Type
</dt>
<dd>
<span class="param-type">Number</span>
</dd>
</dl>
<h4 class="name" id="getProofTime"><span class="type-signature"></span>getProofTime<span class="signature">(to, from)</span><span class="type-signature"> &rarr; {Number}</span></h4>
<div class="description">
<p>Calculate the time difference (in seconds)
between two blocks by examining chainworks.</p>
</div>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>to</code></td>
<td class="type">
<span class="param-type">ChainEntry</span>
</td>
<td class="description last"></td>
</tr>
<tr>
<td class="name"><code>from</code></td>
<td class="type">
<span class="param-type">ChainEntry</span>
</td>
<td class="description last"></td>
</tr>
</tbody>
</table>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="blockchain_chain.js.html">blockchain/chain.js</a>, <a href="blockchain_chain.js.html#line1833">line 1833</a>
</li></ul></dd>
</dl>
<h5>Returns:</h5>
<dl>
<dt>
Type
</dt>
<dd>
<span class="param-type">Number</span>
</dd>
</dl>
<h4 class="name" id="getState"><span class="type-signature"></span>getState<span class="signature">(prev, id)</span><span class="type-signature"> &rarr; {Promise}</span></h4>
<div class="description">
<p>Get chain entry state for a deployment (BIP9: versionbits).</p>
</div>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>prev</code></td>
<td class="type">
<span class="param-type">ChainEntry</span>
</td>
<td class="description last"><p>Previous chain entry.</p></td>
</tr>
<tr>
<td class="name"><code>id</code></td>
<td class="type">
<span class="param-type">String</span>
</td>
<td class="description last"><p>Deployment id.</p></td>
</tr>
</tbody>
</table>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="blockchain_chain.js.html">blockchain/chain.js</a>, <a href="blockchain_chain.js.html#line2012">line 2012</a>
</li></ul></dd>
<dt class="tag-see">See:</dt>
<dd class="tag-see">
<ul>
<li><a href="https://github.com/bitcoin/bips/blob/master/bip-0009.mediawiki">https://github.com/bitcoin/bips/blob/master/bip-0009.mediawiki</a></li>
</ul>
</dd>
</dl>
<h5>Returns:</h5>
<div class="param-desc">
<ul>
<li>Returns Number.</li>
</ul>
</div>
<dl>
<dt>
Type
</dt>
<dd>
<span class="param-type">Promise</span>
</dd>
</dl>
<h5>Example</h5>
<pre class="prettyprint"><code>yield chain.getState(tip, deployments.segwit);</code></pre>
<h4 class="name" id="getTarget"><span class="type-signature"></span>getTarget<span class="signature">(block, prev, ancestors)</span><span class="type-signature"> &rarr; {Promise}</span></h4>
<div class="description">
<p>Calculate the target synchronously. <em>Must</em>
have ancestors pre-allocated.</p>
</div>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>block</code></td>
<td class="type">
<span class="param-type"><a href="Block.html">Block</a></span>
</td>
<td class="description last"><p>Current block.</p></td>
</tr>
<tr>
<td class="name"><code>prev</code></td>
<td class="type">
<span class="param-type">ChainEntry</span>
</td>
<td class="description last"><p>Previous entry.</p></td>
</tr>
<tr>
<td class="name"><code>ancestors</code></td>
<td class="type">
<span class="param-type">Array:<a href="global.html"></a>.&lt;ChainEntry:<a href="global.html"></a>></span>
</td>
<td class="description last"></td>
</tr>
</tbody>
</table>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="blockchain_chain.js.html">blockchain/chain.js</a>, <a href="blockchain_chain.js.html#line1897">line 1897</a>
</li></ul></dd>
</dl>
<h5>Returns:</h5>
<div class="param-desc">
<ul>
<li>returns Number
(target is in compact/mantissa form).</li>
</ul>
</div>
<dl>
<dt>
Type
</dt>
<dd>
<span class="param-type">Promise</span>
</dd>
</dl>
<h4 class="name" id="getTargetAsync"><span class="type-signature"></span>getTargetAsync<span class="signature">(prev)</span><span class="type-signature"> &rarr; {Promise}</span></h4>
<div class="description">
<p>Calculate the target based on the passed-in chain entry.</p>
</div>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>prev</code></td>
<td class="type">
<span class="param-type">ChainEntry</span>
</td>
<td class="description last"><p>Previous entry.</p></td>
</tr>
<tr>
<td class="name"><code></code></td>
<td class="type">
<span class="param-type"><a href="Block.html">Block</a></span>
</td>
<td class="description last"><p>Current block.</p></td>
</tr>
</tbody>
</table>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="blockchain_chain.js.html">blockchain/chain.js</a>, <a href="blockchain_chain.js.html#line1873">line 1873</a>
</li></ul></dd>
</dl>
<h5>Returns:</h5>
<div class="param-desc">
<ul>
<li>returns Number
(target is in compact/mantissa form).</li>
</ul>
</div>
<dl>
<dt>
Type
</dt>
<dd>
<span class="param-type">Promise</span>
</dd>
</dl>
<h4 class="name" id="has"><span class="type-signature"></span>has<span class="signature">(hash)</span><span class="type-signature"> &rarr; {Promise}</span></h4>
<div class="description">
<p>Test the chain to see if it contains
a block, or has recently seen a block.</p>
</div>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>hash</code></td>
<td class="type">
<span class="param-type"><a href="global.html#Hash">Hash</a></span>
</td>
<td class="description last"></td>
</tr>
</tbody>
</table>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="blockchain_chain.js.html">blockchain/chain.js</a>, <a href="blockchain_chain.js.html#line1587">line 1587</a>
</li></ul></dd>
</dl>
<h5>Returns:</h5>
<div class="param-desc">
<ul>
<li>Returns Boolean.</li>
</ul>
</div>
<dl>
<dt>
Type
</dt>
<dd>
<span class="param-type">Promise</span>
</dd>
</dl>
<h4 class="name" id="hasChainwork"><span class="type-signature"></span>hasChainwork<span class="signature">()</span><span class="type-signature"> &rarr; {Boolean}</span></h4>
<div class="description">
<p>Test the chain to see if it has the
minimum required chainwork for the
network.</p>
</div>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="blockchain_chain.js.html">blockchain/chain.js</a>, <a href="blockchain_chain.js.html#line1709">line 1709</a>
</li></ul></dd>
</dl>
<h5>Returns:</h5>
<dl>
<dt>
Type
</dt>
<dd>
<span class="param-type">Boolean</span>
</dd>
</dl>
<h4 class="name" id="hasEntry"><span class="type-signature"></span>hasEntry<span class="signature">(hash)</span><span class="type-signature"> &rarr; {Promise}</span></h4>
<div class="description">
<p>Test the chain to see if it contains a block.</p>
</div>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>hash</code></td>
<td class="type">
<span class="param-type"><a href="global.html#Hash">Hash</a></span>
</td>
<td class="description last"></td>
</tr>
</tbody>
</table>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="blockchain_chain.js.html">blockchain/chain.js</a>, <a href="blockchain_chain.js.html#line1616">line 1616</a>
</li></ul></dd>
</dl>
<h5>Returns:</h5>
<div class="param-desc">
<ul>
<li>Returns Boolean.</li>
</ul>
</div>
<dl>
<dt>
Type
</dt>
<dd>
<span class="param-type">Promise</span>
</dd>
</dl>
<h4 class="name" id="hasInvalid"><span class="type-signature">(private) </span>hasInvalid<span class="signature">(hash, block)</span><span class="type-signature"> &rarr; {Boolean}</span></h4>
<div class="description">
<p>Test whether an invalid block hash has been seen.</p>
</div>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>hash</code></td>
<td class="type">
<span class="param-type"><a href="global.html#Hash">Hash</a></span>
</td>
<td class="description last"></td>
</tr>
<tr>
<td class="name"><code>block</code></td>
<td class="type">
<span class="param-type"><a href="Block.html">Block</a></span>
</td>
<td class="description last"></td>
</tr>
</tbody>
</table>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="blockchain_chain.js.html">blockchain/chain.js</a>, <a href="blockchain_chain.js.html#line1547">line 1547</a>
</li></ul></dd>
</dl>
<h5>Returns:</h5>
<dl>
<dt>
Type
</dt>
<dd>
<span class="param-type">Boolean</span>
</dd>
</dl>
<h4 class="name" id="hasOrphan"><span class="type-signature"></span>hasOrphan<span class="signature">(hash)</span><span class="type-signature"> &rarr; {Promise}</span></h4>
<div class="description">
<p>Test the chain to see if it contains an orphan.</p>
</div>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>hash</code></td>
<td class="type">
<span class="param-type"><a href="global.html#Hash">Hash</a></span>
</td>
<td class="description last"></td>
</tr>
</tbody>
</table>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="blockchain_chain.js.html">blockchain/chain.js</a>, <a href="blockchain_chain.js.html#line1636">line 1636</a>
</li></ul></dd>
</dl>
<h5>Returns:</h5>
<div class="param-desc">
<ul>
<li>Returns Boolean.</li>
</ul>
</div>
<dl>
<dt>
Type
</dt>
<dd>
<span class="param-type">Promise</span>
</dd>
</dl>
<h4 class="name" id="hasPending"><span class="type-signature"></span>hasPending<span class="signature">(hash)</span><span class="type-signature"> &rarr; {Promise}</span></h4>
<div class="description">
<p>Test the chain to see if it contains a pending block in its queue.</p>
</div>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>hash</code></td>
<td class="type">
<span class="param-type"><a href="global.html#Hash">Hash</a></span>
</td>
<td class="description last"></td>
</tr>
</tbody>
</table>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="blockchain_chain.js.html">blockchain/chain.js</a>, <a href="blockchain_chain.js.html#line1646">line 1646</a>
</li></ul></dd>
</dl>
<h5>Returns:</h5>
<div class="param-desc">
<ul>
<li>Returns Boolean.</li>
</ul>
</div>
<dl>
<dt>
Type
</dt>
<dd>
<span class="param-type">Promise</span>
</dd>
</dl>
<h4 class="name" id="isActive"><span class="type-signature"></span>isActive<span class="signature">(prev, id)</span><span class="type-signature"> &rarr; {Promise}</span></h4>
<div class="description">
<p>Check whether a versionbits deployment is active (BIP9: versionbits).</p>
</div>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>prev</code></td>
<td class="type">
<span class="param-type">ChainEntry</span>
</td>
<td class="description last"><p>Previous chain entry.</p></td>
</tr>
<tr>
<td class="name"><code>id</code></td>
<td class="type">
<span class="param-type">String</span>
</td>
<td class="description last"><p>Deployment id.</p></td>
</tr>
</tbody>
</table>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="blockchain_chain.js.html">blockchain/chain.js</a>, <a href="blockchain_chain.js.html#line1996">line 1996</a>
</li></ul></dd>
<dt class="tag-see">See:</dt>
<dd class="tag-see">
<ul>
<li><a href="https://github.com/bitcoin/bips/blob/master/bip-0009.mediawiki">https://github.com/bitcoin/bips/blob/master/bip-0009.mediawiki</a></li>
</ul>
</dd>
</dl>
<h5>Returns:</h5>
<div class="param-desc">
<ul>
<li>Returns Number.</li>
</ul>
</div>
<dl>
<dt>
Type
</dt>
<dd>
<span class="param-type">Promise</span>
</dd>
</dl>
<h5>Example</h5>
<pre class="prettyprint"><code>yield chain.isActive(tip, deployments.segwit);</code></pre>
<h4 class="name" id="isFull"><span class="type-signature"></span>isFull<span class="signature">()</span><span class="type-signature"> &rarr; {Boolean}</span></h4>
<div class="description">
<p>Test the chain to see if it is synced.</p>
</div>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="blockchain_chain.js.html">blockchain/chain.js</a>, <a href="blockchain_chain.js.html#line1671">line 1671</a>
</li></ul></dd>
</dl>
<h5>Returns:</h5>
<dl>
<dt>
Type
</dt>
<dd>
<span class="param-type">Boolean</span>
</dd>
</dl>
<h4 class="name" id="isGenesis"><span class="type-signature"></span>isGenesis<span class="signature">(block)</span><span class="type-signature"> &rarr; {Boolean}</span></h4>
<div class="description">
<p>Test whether a block is the genesis block.</p>
</div>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>block</code></td>
<td class="type">
<span class="param-type"><a href="Block.html">Block</a></span>
</td>
<td class="description last"></td>
</tr>
</tbody>
</table>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="blockchain_chain.js.html">blockchain/chain.js</a>, <a href="blockchain_chain.js.html#line251">line 251</a>
</li></ul></dd>
</dl>
<h5>Returns:</h5>
<dl>
<dt>
Type
</dt>
<dd>
<span class="param-type">Boolean</span>
</dd>
</dl>
<h4 class="name" id="isSlow"><span class="type-signature">(private) </span>isSlow<span class="signature">()</span><span class="type-signature"> &rarr; {Boolean}</span></h4>
<div class="description">
<p>Test whether the chain has reached its slow height.</p>
</div>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="blockchain_chain.js.html">blockchain/chain.js</a>, <a href="blockchain_chain.js.html#line1294">line 1294</a>
</li></ul></dd>
</dl>
<h5>Returns:</h5>
<dl>
<dt>
Type
</dt>
<dd>
<span class="param-type">Boolean</span>
</dd>
</dl>
<h4 class="name" id="mark"><span class="type-signature">(private) </span>mark<span class="signature">()</span><span class="type-signature"></span></h4>
<div class="description">
<p>Mark the start time for block processing.</p>
</div>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="blockchain_chain.js.html">blockchain/chain.js</a>, <a href="blockchain_chain.js.html#line1309">line 1309</a>
</li></ul></dd>
</dl>
<h4 class="name" id="maybeSync"><span class="type-signature">(private) </span>maybeSync<span class="signature">()</span><span class="type-signature"></span></h4>
<div class="description">
<p>Potentially emit a <code>full</code> event.</p>
</div>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="blockchain_chain.js.html">blockchain/chain.js</a>, <a href="blockchain_chain.js.html#line1680">line 1680</a>
</li></ul></dd>
</dl>
<h4 class="name" id="pruneOrphans"><span class="type-signature"></span>pruneOrphans<span class="signature">()</span><span class="type-signature"></span></h4>
<div class="description">
<p>Prune orphans, only keep the orphan with the highest
coinbase height (likely to be the peer's tip).</p>
</div>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="blockchain_chain.js.html">blockchain/chain.js</a>, <a href="blockchain_chain.js.html#line1486">line 1486</a>
</li></ul></dd>
</dl>
<h4 class="name" id="purgeOrphans"><span class="type-signature"></span>purgeOrphans<span class="signature">()</span><span class="type-signature"></span></h4>
<div class="description">
<p>Purge any waiting orphans.</p>
</div>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="blockchain_chain.js.html">blockchain/chain.js</a>, <a href="blockchain_chain.js.html#line1466">line 1466</a>
</li></ul></dd>
</dl>
<h4 class="name" id="reconnect"><span class="type-signature"></span>reconnect<span class="signature">(entry)</span><span class="type-signature"> &rarr; {Promise}</span></h4>
<div class="description">
<p>Reconnect an entry to the chain (updates the tip).
This will do contextual-verification on the block
(necessary because we cannot validate the inputs
in alternate chains when they come in).</p>
</div>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>entry</code></td>
<td class="type">
<span class="param-type">ChainEntry</span>
</td>
<td class="description last"></td>
</tr>
</tbody>
</table>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="blockchain_chain.js.html">blockchain/chain.js</a>, <a href="blockchain_chain.js.html#line849">line 849</a>
</li></ul></dd>
</dl>
<h5>Returns:</h5>
<dl>
<dt>
Type
</dt>
<dd>
<span class="param-type">Promise</span>
</dd>
</dl>
<h4 class="name" id="removeInvalid"><span class="type-signature">(private) </span>removeInvalid<span class="signature">(hash)</span><span class="type-signature"></span></h4>
<div class="description">
<p>Forget an invalid block hash.</p>
</div>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>hash</code></td>
<td class="type">
<span class="param-type"><a href="global.html#Hash">Hash</a></span>
</td>
<td class="description last"></td>
</tr>
</tbody>
</table>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="blockchain_chain.js.html">blockchain/chain.js</a>, <a href="blockchain_chain.js.html#line1575">line 1575</a>
</li></ul></dd>
</dl>
<h4 class="name" id="reorganize"><span class="type-signature">(private) </span>reorganize<span class="signature">(competitor, block)</span><span class="type-signature"> &rarr; {Promise}</span></h4>
<div class="description">
<p>Reorganize the blockchain (connect and disconnect inputs).
Called when a competing chain with a higher chainwork
is received.</p>
</div>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>competitor</code></td>
<td class="type">
<span class="param-type">ChainEntry</span>
</td>
<td class="description last"><p>The competing chain's tip.</p></td>
</tr>
<tr>
<td class="name"><code>block</code></td>
<td class="type">
<span class="param-type"><a href="Block.html">Block</a></span>
</td>
<td class="description last"><p>The being being added.</p></td>
</tr>
</tbody>
</table>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="blockchain_chain.js.html">blockchain/chain.js</a>, <a href="blockchain_chain.js.html#line724">line 724</a>
</li></ul></dd>
</dl>
<h5>Returns:</h5>
<dl>
<dt>
Type
</dt>
<dd>
<span class="param-type">Promise</span>
</dd>
</dl>
<h4 class="name" id="reorganizeSPV"><span class="type-signature">(private) </span>reorganizeSPV<span class="signature">(competitor, block)</span><span class="type-signature"> &rarr; {Promise}</span></h4>
<div class="description">
<p>Reorganize the blockchain for SPV. This
will reset the chain to the fork block.</p>
</div>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>competitor</code></td>
<td class="type">
<span class="param-type">ChainEntry</span>
</td>
<td class="description last"><p>The competing chain's tip.</p></td>
</tr>
<tr>
<td class="name"><code>block</code></td>
<td class="type">
<span class="param-type"><a href="Block.html">Block</a></span>
</td>
<td class="description last"><p>The being being added.</p></td>
</tr>
</tbody>
</table>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="blockchain_chain.js.html">blockchain/chain.js</a>, <a href="blockchain_chain.js.html#line776">line 776</a>
</li></ul></dd>
</dl>
<h5>Returns:</h5>
<dl>
<dt>
Type
</dt>
<dd>
<span class="param-type">Promise</span>
</dd>
</dl>
<h4 class="name" id="replay"><span class="type-signature"></span>replay<span class="signature">(block)</span><span class="type-signature"> &rarr; {Promise}</span></h4>
<div class="description">
<p>Reset the chain to a height or hash. Useful for replaying
the blockchain download for SPV.</p>
</div>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>block</code></td>
<td class="type">
<span class="param-type"><a href="global.html#Hash">Hash</a></span>
|
<span class="param-type">Number</span>
</td>
<td class="description last"><p>hash/height</p></td>
</tr>
</tbody>
</table>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="blockchain_chain.js.html">blockchain/chain.js</a>, <a href="blockchain_chain.js.html#line1045">line 1045</a>
</li></ul></dd>
</dl>
<h5>Returns:</h5>
<dl>
<dt>
Type
</dt>
<dd>
<span class="param-type">Promise</span>
</dd>
</dl>
<h4 class="name" id="reset"><span class="type-signature"></span>reset<span class="signature">(block)</span><span class="type-signature"> &rarr; {Promise}</span></h4>
<div class="description">
<p>Reset the chain to the desired block. This
is useful for replaying the blockchain download
for SPV.</p>
</div>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>block</code></td>
<td class="type">
<span class="param-type"><a href="global.html#Hash">Hash</a></span>
|
<span class="param-type">Number</span>
</td>
<td class="description last"></td>
</tr>
</tbody>
</table>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="blockchain_chain.js.html">blockchain/chain.js</a>, <a href="blockchain_chain.js.html#line994">line 994</a>
</li></ul></dd>
</dl>
<h5>Returns:</h5>
<dl>
<dt>
Type
</dt>
<dd>
<span class="param-type">Promise</span>
</dd>
</dl>
<h4 class="name" id="resetTime"><span class="type-signature"></span>resetTime<span class="signature">(ts)</span><span class="type-signature"> &rarr; {Promise}</span></h4>
<div class="description">
<p>Reset the chain to the desired timestamp (within 2
hours). This is useful for replaying the blockchain
download for SPV.</p>
</div>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>ts</code></td>
<td class="type">
<span class="param-type">Number</span>
</td>
<td class="description last"><p>Timestamp.</p></td>
</tr>
</tbody>
</table>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="blockchain_chain.js.html">blockchain/chain.js</a>, <a href="blockchain_chain.js.html#line1104">line 1104</a>
</li></ul></dd>
</dl>
<h5>Returns:</h5>
<dl>
<dt>
Type
</dt>
<dd>
<span class="param-type">Promise</span>
</dd>
</dl>
<h4 class="name" id="resolveOrphan"><span class="type-signature">(private) </span>resolveOrphan<span class="signature">(hash)</span><span class="type-signature"> &rarr; {<a href="Block.html">Block</a>}</span></h4>
<div class="description">
<p>Resolve an orphan.</p>
</div>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>hash</code></td>
<td class="type">
<span class="param-type"><a href="global.html#Hash">Hash</a></span>
</td>
<td class="description last"><p>Previous block hash.</p></td>
</tr>
</tbody>
</table>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="blockchain_chain.js.html">blockchain/chain.js</a>, <a href="blockchain_chain.js.html#line1447">line 1447</a>
</li></ul></dd>
</dl>
<h5>Returns:</h5>
<dl>
<dt>
Type
</dt>
<dd>
<span class="param-type"><a href="Block.html">Block</a></span>
</dd>
</dl>
<h4 class="name" id="retarget"><span class="type-signature"></span>retarget<span class="signature">(prev, first)</span><span class="type-signature"> &rarr; {Number}</span></h4>
<div class="description">
<p>Retarget. This is called when the chain height
hits a retarget diff interval.</p>
</div>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>prev</code></td>
<td class="type">
<span class="param-type">ChainEntry</span>
</td>
<td class="description last"><p>Previous entry.</p></td>
</tr>
<tr>
<td class="name"><code>first</code></td>
<td class="type">
<span class="param-type">ChainEntry</span>
</td>
<td class="description last"><p>Chain entry from 2 weeks prior.</p></td>
</tr>
</tbody>
</table>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="blockchain_chain.js.html">blockchain/chain.js</a>, <a href="blockchain_chain.js.html#line1939">line 1939</a>
</li></ul></dd>
</dl>
<h5>Returns:</h5>
<div class="param-desc">
<p>target - Target in compact/mantissa form.</p>
</div>
<dl>
<dt>
Type
</dt>
<dd>
<span class="param-type">Number</span>
</dd>
</dl>
<h4 class="name" id="saveAlternate"><span class="type-signature">(private) </span>saveAlternate<span class="signature">(entry, block, prev)</span><span class="type-signature"> &rarr; {Promise}</span></h4>
<div class="description">
<p>Save block on an alternate chain.</p>
</div>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>entry</code></td>
<td class="type">
<span class="param-type">ChainEntry</span>
</td>
<td class="description last"></td>
</tr>
<tr>
<td class="name"><code>block</code></td>
<td class="type">
<span class="param-type"><a href="Block.html">Block</a></span>
</td>
<td class="description last"></td>
</tr>
<tr>
<td class="name"><code>prev</code></td>
<td class="type">
<span class="param-type">ChainEntry</span>
</td>
<td class="description last"></td>
</tr>
</tbody>
</table>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="blockchain_chain.js.html">blockchain/chain.js</a>, <a href="blockchain_chain.js.html#line958">line 958</a>
</li></ul></dd>
</dl>
<h5>Returns:</h5>
<dl>
<dt>
Type
</dt>
<dd>
<span class="param-type">Promise</span>
</dd>
</dl>
<h4 class="name" id="scan"><span class="type-signature"></span>scan<span class="signature">(start, filter, iter)</span><span class="type-signature"> &rarr; {Promise}</span></h4>
<div class="description">
<p>Scan the blockchain for transactions containing specified address hashes.</p>
</div>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>start</code></td>
<td class="type">
<span class="param-type"><a href="global.html#Hash">Hash</a></span>
</td>
<td class="description last"><p>Block hash to start at.</p></td>
</tr>
<tr>
<td class="name"><code>filter</code></td>
<td class="type">
<span class="param-type">Bloom</span>
</td>
<td class="description last"><p>Bloom filter containing tx and address hashes.</p></td>
</tr>
<tr>
<td class="name"><code>iter</code></td>
<td class="type">
<span class="param-type">function</span>
</td>
<td class="description last"><p>Iterator.</p></td>
</tr>
</tbody>
</table>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="blockchain_chain.js.html">blockchain/chain.js</a>, <a href="blockchain_chain.js.html#line1086">line 1086</a>
</li></ul></dd>
</dl>
<h5>Returns:</h5>
<dl>
<dt>
Type
</dt>
<dd>
<span class="param-type">Promise</span>
</dd>
</dl>
<h4 class="name" id="seenOrphan"><span class="type-signature">(private) </span>seenOrphan<span class="signature">(block)</span><span class="type-signature"> &rarr; {Boolean}</span></h4>
<div class="description">
<p>Verify we do not already have an orphan.
Throw if there is an orphan fork.</p>
</div>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>block</code></td>
<td class="type">
<span class="param-type"><a href="Block.html">Block</a></span>
</td>
<td class="description last"></td>
</tr>
</tbody>
</table>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="blockchain_chain.js.html">blockchain/chain.js</a>, <a href="blockchain_chain.js.html#line1398">line 1398</a>
</li></ul></dd>
</dl>
<h5>Throws:</h5>
<div class="param-desc">
<span class="param-type">VerifyError</span>
</div>
<h5>Returns:</h5>
<dl>
<dt>
Type
</dt>
<dd>
<span class="param-type">Boolean</span>
</dd>
</dl>
<h4 class="name" id="setBestChain"><span class="type-signature">(private) </span>setBestChain<span class="signature">(entry, block, prev)</span><span class="type-signature"> &rarr; {Promise}</span></h4>
<div class="description">
<p>Set the best chain. This is called on every valid block
that comes in. It may add and connect the block (main chain),
save the block without connection (alternate chain), or
reorganize the chain (a higher fork).</p>
</div>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>entry</code></td>
<td class="type">
<span class="param-type">ChainEntry</span>
</td>
<td class="description last"></td>
</tr>
<tr>
<td class="name"><code>block</code></td>
<td class="type">
<span class="param-type"><a href="Block.html">Block</a></span>
</td>
<td class="description last"></td>
</tr>
<tr>
<td class="name"><code>prev</code></td>
<td class="type">
<span class="param-type">ChainEntry</span>
</td>
<td class="description last"></td>
</tr>
</tbody>
</table>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="blockchain_chain.js.html">blockchain/chain.js</a>, <a href="blockchain_chain.js.html#line897">line 897</a>
</li></ul></dd>
</dl>
<h5>Returns:</h5>
<dl>
<dt>
Type
</dt>
<dd>
<span class="param-type">Promise</span>
</dd>
</dl>
<h4 class="name" id="setDeploymentState"><span class="type-signature"></span>setDeploymentState<span class="signature">(state)</span><span class="type-signature"></span></h4>
<div class="description">
<p>Set a new deployment state.</p>
</div>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>state</code></td>
<td class="type">
<span class="param-type">DeploymentState</span>
</td>
<td class="description last"></td>
</tr>
</tbody>
</table>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="blockchain_chain.js.html">blockchain/chain.js</a>, <a href="blockchain_chain.js.html#line488">line 488</a>
</li></ul></dd>
</dl>
<h4 class="name" id="setInvalid"><span class="type-signature">(private) </span>setInvalid<span class="signature">(hash)</span><span class="type-signature"></span></h4>
<div class="description">
<p>Mark a block as invalid.</p>
</div>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>hash</code></td>
<td class="type">
<span class="param-type"><a href="global.html#Hash">Hash</a></span>
</td>
<td class="description last"></td>
</tr>
</tbody>
</table>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="blockchain_chain.js.html">blockchain/chain.js</a>, <a href="blockchain_chain.js.html#line1565">line 1565</a>
</li></ul></dd>
</dl>
<h4 class="name" id="storeOrphan"><span class="type-signature">(private) </span>storeOrphan<span class="signature">(block)</span><span class="type-signature"></span></h4>
<div class="description">
<p>Store an orphan.</p>
</div>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>block</code></td>
<td class="type">
<span class="param-type"><a href="Block.html">Block</a></span>
</td>
<td class="description last"></td>
</tr>
</tbody>
</table>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="blockchain_chain.js.html">blockchain/chain.js</a>, <a href="blockchain_chain.js.html#line1428">line 1428</a>
</li></ul></dd>
</dl>
<h4 class="name" id="verify"><span class="type-signature">(private) </span>verify<span class="signature">(block, prev)</span><span class="type-signature"> &rarr; {Promise}</span></h4>
<div class="description">
<p>Contextual verification for a block, including
version deployments (IsSuperMajority), versionbits,
coinbase height, finality checks.</p>
</div>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>block</code></td>
<td class="type">
<span class="param-type"><a href="Block.html">Block</a></span>
</td>
<td class="description last"></td>
</tr>
<tr>
<td class="name"><code>prev</code></td>
<td class="type">
<span class="param-type">ChainEntry</span>
</td>
<td class="description last"></td>
</tr>
</tbody>
</table>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="blockchain_chain.js.html">blockchain/chain.js</a>, <a href="blockchain_chain.js.html#line266">line 266</a>
</li></ul></dd>
</dl>
<h5>Returns:</h5>
<div class="param-desc">
<ul>
<li>Returns DeploymentState.</li>
</ul>
</div>
<dl>
<dt>
Type
</dt>
<dd>
<span class="param-type">Promise</span>
</dd>
</dl>
<h4 class="name" id="verifyCheckpoint"><span class="type-signature">(private) </span>verifyCheckpoint<span class="signature">(prev, hash)</span><span class="type-signature"> &rarr; {Boolean}</span></h4>
<div class="description">
<p>Verify a block hash and height against the checkpoints.</p>
</div>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>prev</code></td>
<td class="type">
<span class="param-type">ChainEntry</span>
</td>
<td class="description last"></td>
</tr>
<tr>
<td class="name"><code>hash</code></td>
<td class="type">
<span class="param-type"><a href="global.html#Hash">Hash</a></span>
</td>
<td class="description last"></td>
</tr>
</tbody>
</table>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="blockchain_chain.js.html">blockchain/chain.js</a>, <a href="blockchain_chain.js.html#line1359">line 1359</a>
</li></ul></dd>
</dl>
<h5>Returns:</h5>
<dl>
<dt>
Type
</dt>
<dd>
<span class="param-type">Boolean</span>
</dd>
</dl>
<h4 class="name" id="verifyContext"><span class="type-signature">(private) </span>verifyContext<span class="signature">(block, prev)</span><span class="type-signature"> &rarr; {Promise}</span></h4>
<div class="description">
<p>Perform all necessary contextual verification on a block.</p>
</div>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>block</code></td>
<td class="type">
<span class="param-type"><a href="Block.html">Block</a></span>
</td>
<td class="description last"></td>
</tr>
<tr>
<td class="name"><code>prev</code></td>
<td class="type">
<span class="param-type">ChainEntry</span>
</td>
<td class="description last"></td>
</tr>
</tbody>
</table>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="blockchain_chain.js.html">blockchain/chain.js</a>, <a href="blockchain_chain.js.html#line230">line 230</a>
</li></ul></dd>
</dl>
<h5>Returns:</h5>
<div class="param-desc">
<ul>
<li>Returns ContextResult.</li>
</ul>
</div>
<dl>
<dt>
Type
</dt>
<dd>
<span class="param-type">Promise</span>
</dd>
</dl>
<h4 class="name" id="verifyDuplicates"><span class="type-signature">(private) </span>verifyDuplicates<span class="signature">(block, prev)</span><span class="type-signature"> &rarr; {Promise}</span></h4>
<div class="description">
<p>Determine whether to check block for duplicate txids in blockchain
history (BIP30). If we're on a chain that has bip34 activated, we
can skip this.</p>
</div>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>block</code></td>
<td class="type">
<span class="param-type"><a href="Block.html">Block</a></span>
</td>
<td class="description last"></td>
</tr>
<tr>
<td class="name"><code>prev</code></td>
<td class="type">
<span class="param-type">ChainEntry</span>
</td>
<td class="description last"></td>
</tr>
</tbody>
</table>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="blockchain_chain.js.html">blockchain/chain.js</a>, <a href="blockchain_chain.js.html#line522">line 522</a>
</li></ul></dd>
<dt class="tag-see">See:</dt>
<dd class="tag-see">
<ul>
<li><a href="https://github.com/bitcoin/bips/blob/master/bip-0030.mediawiki">https://github.com/bitcoin/bips/blob/master/bip-0030.mediawiki</a></li>
</ul>
</dd>
</dl>
<h5>Returns:</h5>
<dl>
<dt>
Type
</dt>
<dd>
<span class="param-type">Promise</span>
</dd>
</dl>
<h4 class="name" id="verifyFinal"><span class="type-signature"></span>verifyFinal<span class="signature">(prev, tx, flags)</span><span class="type-signature"> &rarr; {Promise}</span></h4>
<div class="description">
<p>Check transaction finality, taking into account MEDIAN_TIME_PAST
if it is present in the lock flags.</p>
</div>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>prev</code></td>
<td class="type">
<span class="param-type">ChainEntry</span>
</td>
<td class="description last"><p>Previous chain entry.</p></td>
</tr>
<tr>
<td class="name"><code>tx</code></td>
<td class="type">
<span class="param-type">TX</span>
</td>
<td class="description last"></td>
</tr>
<tr>
<td class="name"><code>flags</code></td>
<td class="type">
<span class="param-type"><a href="global.html#LockFlags">LockFlags</a></span>
</td>
<td class="description last"></td>
</tr>
</tbody>
</table>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="blockchain_chain.js.html">blockchain/chain.js</a>, <a href="blockchain_chain.js.html#line2178">line 2178</a>
</li></ul></dd>
</dl>
<h5>Returns:</h5>
<div class="param-desc">
<ul>
<li>Returns Boolean.</li>
</ul>
</div>
<dl>
<dt>
Type
</dt>
<dd>
<span class="param-type">Promise</span>
</dd>
</dl>
<h4 class="name" id="verifyInputs"><span class="type-signature">(private) </span>verifyInputs<span class="signature">(block, prev, state)</span><span class="type-signature"> &rarr; {Promise}</span></h4>
<div class="description">
<p>Check block transactions for all things pertaining
to inputs. This function is important because it is
what actually fills the coins into the block. This
function will check the block reward, the sigops,
the tx values, and execute and verify the scripts (it
will attempt to do this on the worker pool). If
<code>checkpoints</code> is enabled, it will skip verification
for historical data.</p>
</div>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>block</code></td>
<td class="type">
<span class="param-type"><a href="Block.html">Block</a></span>
</td>
<td class="description last"></td>
</tr>
<tr>
<td class="name"><code>prev</code></td>
<td class="type">
<span class="param-type">ChainEntry</span>
</td>
<td class="description last"></td>
</tr>
<tr>
<td class="name"><code>state</code></td>
<td class="type">
<span class="param-type">DeploymentState</span>
</td>
<td class="description last"></td>
</tr>
</tbody>
</table>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="blockchain_chain.js.html">blockchain/chain.js</a>, <a href="blockchain_chain.js.html#line573">line 573</a>
</li></ul></dd>
<dt class="tag-see">See:</dt>
<dd class="tag-see">
<ul>
<li>TX#checkInputs</li>
</ul>
</dd>
</dl>
<h5>Returns:</h5>
<div class="param-desc">
<ul>
<li>Returns CoinView.</li>
</ul>
</div>
<dl>
<dt>
Type
</dt>
<dd>
<span class="param-type">Promise</span>
</dd>
</dl>
<h4 class="name" id="verifyLocks"><span class="type-signature"></span>verifyLocks<span class="signature">(prev, tx, view, flags)</span><span class="type-signature"> &rarr; {Promise}</span></h4>
<div class="description">
<p>Verify sequence locks.</p>
</div>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>prev</code></td>
<td class="type">
<span class="param-type">ChainEntry</span>
</td>
<td class="description last"></td>
</tr>
<tr>
<td class="name"><code>tx</code></td>
<td class="type">
<span class="param-type">TX</span>
</td>
<td class="description last"></td>
</tr>
<tr>
<td class="name"><code>view</code></td>
<td class="type">
<span class="param-type">CoinView</span>
</td>
<td class="description last"></td>
</tr>
<tr>
<td class="name"><code>flags</code></td>
<td class="type">
<span class="param-type"><a href="global.html#LockFlags">LockFlags</a></span>
</td>
<td class="description last"></td>
</tr>
</tbody>
</table>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="blockchain_chain.js.html">blockchain/chain.js</a>, <a href="blockchain_chain.js.html#line2258">line 2258</a>
</li></ul></dd>
</dl>
<h5>Returns:</h5>
<div class="param-desc">
<ul>
<li>Returns Boolean.</li>
</ul>
</div>
<dl>
<dt>
Type
</dt>
<dd>
<span class="param-type">Promise</span>
</dd>
</dl>
</article>
</section>
</div>
<nav>
<h2><a href="index.html">Home</a></h2><h3>Modules</h3><ul><li><a href="module-bcoin.html">bcoin</a></li><li><a href="module-bip70.html">bip70</a></li><li><a href="module-bip70_pk.html">bip70/pk</a></li><li><a href="module-bip70_x509.html">bip70/x509</a></li><li><a href="module-blockchain.html">blockchain</a></li><li><a href="module-blockchain_common.html">blockchain/common</a></li><li><a href="module-btc.html">btc</a></li><li><a href="module-coins.html">coins</a></li><li><a href="module-crypto.html">crypto</a></li><li><a href="module-crypto_chachapoly.html">crypto/chachapoly</a></li><li><a href="module-crypto_ec.html">crypto/ec</a></li><li><a href="module-crypto_pk.html">crypto/pk</a></li><li><a href="module-crypto_schnorr.html">crypto/schnorr</a></li><li><a href="module-crypto_siphash.html">crypto/siphash</a></li><li><a href="module-db.html">db</a></li><li><a href="module-hd.html">hd</a></li><li><a href="module-http.html">http</a></li><li><a href="module-mempool.html">mempool</a></li><li><a href="module-mining.html">mining</a></li><li><a href="module-net.html">net</a></li><li><a href="module-net_bip152.html">net/bip152</a></li><li><a href="module-net_common.html">net/common</a></li><li><a href="module-net_dns.html">net/dns</a></li><li><a href="module-net_packets.html">net/packets</a></li><li><a href="module-net_socks.html">net/socks</a></li><li><a href="module-net_tcp.html">net/tcp</a></li><li><a href="module-node.html">node</a></li><li><a href="module-node_config.html">node/config</a></li><li><a href="module-primitives.html">primitives</a></li><li><a href="module-protocol.html">protocol</a></li><li><a href="module-protocol_consensus.html">protocol/consensus</a></li><li><a href="module-protocol_errors.html">protocol/errors</a></li><li><a href="module-protocol_networks.html">protocol/networks</a></li><li><a href="module-protocol_policy.html">protocol/policy</a></li><li><a href="module-script.html">script</a></li><li><a href="module-script_common.html">script/common</a></li><li><a href="module-utils.html">utils</a></li><li><a href="module-utils_asn1.html">utils/asn1</a></li><li><a href="module-utils_base32.html">utils/base32</a></li><li><a href="module-utils_base58.html">utils/base58</a></li><li><a href="module-utils_co.html">utils/co</a></li><li><a href="module-utils_encoding.html">utils/encoding</a></li><li><a href="module-utils_ip.html">utils/ip</a></li><li><a href="module-utils_pem.html">utils/pem</a></li><li><a href="module-utils_protobuf.html">utils/protobuf</a></li><li><a href="module-utils_util.html">utils/util</a></li><li><a href="module-wallet.html">wallet</a></li><li><a href="module-wallet_common.html">wallet/common</a></li><li><a href="module-wallet_records.html">wallet/records</a></li><li><a href="module-workers.html">workers</a></li><li><a href="module-workers_jobs.html">workers/jobs</a></li><li><a href="module-workers_packets.html">workers/packets</a></li></ul><h3>Classes</h3><ul><li><a href="Environment.html">Environment</a></li><li><a href="module-bip70.Payment.html">Payment</a></li><li><a href="module-bip70.PaymentACK.html">PaymentACK</a></li><li><a href="module-bip70.PaymentDetails.html">PaymentDetails</a></li><li><a href="module-bip70.PaymentRequest.html">PaymentRequest</a></li><li><a href="module-blockchain.Chain.html">Chain</a></li><li><a href="module-blockchain.ChainDB.html">ChainDB</a></li><li><a href="module-blockchain.ChainEntry.html">ChainEntry</a></li><li><a href="module-blockchain.ChainFlags.html">ChainFlags</a></li><li><a href="module-blockchain.ChainOptions.html">ChainOptions</a></li><li><a href="module-blockchain.ChainState.html">ChainState</a></li><li><a href="module-blockchain.DeploymentState.html">DeploymentState</a></li><li><a href="module-blockchain.StateCache.html">StateCache</a></li><li><a href="module-btc.Amount.html">Amount</a></li><li><a href="module-btc.URI.html">URI</a></li><li><a href="module-coins.CoinEntry.html">CoinEntry</a></li><li><a href="module-coins.Coins.html">Coins</a></li><li><a href="module-coins.CoinView.html">CoinView</a></li><li><a href="module-coins.UndoCoin.html">UndoCoin</a></li><li><a href="module-coins.UndoCoins.html">UndoCoins</a></li><li><a href="module-crypto_aes.AESCipher.html">AESCipher</a></li><li><a href="module-crypto_aes.AESDecipher.html">AESDecipher</a></li><li><a href="module-crypto_aes.AESKey.html">AESKey</a></li><li><a href="module-crypto_chachapoly.AEAD.html">AEAD</a></li><li><a href="module-crypto_chachapoly.ChaCha20.html">ChaCha20</a></li><li><a href="module-crypto_chachapoly.Poly1305.html">Poly1305</a></li><li><a href="module-crypto_sha256.SHA256.html">SHA256</a></li><li><a href="module-crypto_sha256.SHA256Hmac.html">SHA256Hmac</a></li><li><a href="module-db.LowlevelUp.html">LowlevelUp</a></li><li><a href="module-db.RBT.html">RBT</a></li><li><a href="module-hd.Mnemonic.html">Mnemonic</a></li><li><a href="module-hd.PrivateKey.html">PrivateKey</a></li><li><a href="module-hd.PublicKey.html">PublicKey</a></li><li><a href="module-http.Base.html">Base</a></li><li><a href="module-http.Client.html">Client</a></li><li><a href="module-http.HTTPBaseOptions.html">HTTPBaseOptions</a></li><li><a href="module-http.HTTPOptions.html">HTTPOptions</a></li><li><a href="module-http.Request.html">Request</a></li><li><a href="module-http.RPC.html">RPC</a></li><li><a href="module-http.RPCClient.html">RPCClient</a></li><li><a href="module-http.Server.html">Server</a></li><li><a href="module-http.Wallet.html">Wallet</a></li><li><a href="module-mempool.ConfirmStats.html">ConfirmStats</a></li><li><a href="module-mempool.Mempool.html">Mempool</a></li><li><a href="module-mempool.MempoolEntry.html">MempoolEntry</a></li><li><a href="module-mempool.MempoolOptions.html">MempoolOptions</a></li><li><a href="module-mempool.PolicyEstimator.html">PolicyEstimator</a></li><li><a href="module-mining.BlockEntry.html">BlockEntry</a></li><li><a href="module-mining.Miner.html">Miner</a></li><li><a href="module-mining.MinerBlock.html">MinerBlock</a></li><li><a href="module-mining.MinerOptions.html">MinerOptions</a></li><li><a href="module-net.AuthDB.html">AuthDB</a></li><li><a href="module-net.BIP150.html">BIP150</a></li><li><a href="module-net.BIP151.html">BIP151</a></li><li><a href="module-net.BIP151Stream.html">BIP151Stream</a></li><li><a href="module-net.BroadcastItem.html">BroadcastItem</a></li><li><a href="module-net.Framer.html">Framer</a></li><li><a href="module-net.HostEntry.html">HostEntry</a></li><li><a href="module-net.HostList.html">HostList</a></li><li><a href="module-net.Parser.html">Parser</a></li><li><a href="module-net.Peer.html">Peer</a></li><li><a href="module-net.PeerList.html">PeerList</a></li><li><a href="module-net.PeerOptions.html">PeerOptions</a></li><li><a href="module-net.Pool.html">Pool</a></li><li><a href="module-net.PoolOptions.html">PoolOptions</a></li><li><a href="module-net_bip152-CompactBlock.html">CompactBlock</a></li><li><a href="module-net_bip152-PrefilledTX.html">PrefilledTX</a></li><li><a href="module-net_bip152-TXRequest.html">TXRequest</a></li><li><a href="module-net_bip152-TXResponse.html">TXResponse</a></li><li><a href="module-net_packets-AddrPacket.html">AddrPacket</a></li><li><a href="module-net_packets-AuthChallengePacket.html">AuthChallengePacket</a></li><li><a href="module-net_packets-AuthProposePacket.html">AuthProposePacket</a></li><li><a href="module-net_packets-AuthReplyPacket.html">AuthReplyPacket</a></li><li><a href="module-net_packets-BlockPacket.html">BlockPacket</a></li><li><a href="module-net_packets-BlockTxnPacket.html">BlockTxnPacket</a></li><li><a href="module-net_packets-CmpctBlockPacket.html">CmpctBlockPacket</a></li><li><a href="module-net_packets-EncackPacket.html">EncackPacket</a></li><li><a href="module-net_packets-EncinitPacket.html">EncinitPacket</a></li><li><a href="module-net_packets-FeeFilterPacket.html">FeeFilterPacket</a></li><li><a href="module-net_packets-FilterAddPacket.html">FilterAddPacket</a></li><li><a href="module-net_packets-FilterClearPacket.html">FilterClearPacket</a></li><li><a href="module-net_packets-FilterLoadPacket.html">FilterLoadPacket</a></li><li><a href="module-net_packets-GetAddrPacket.html">GetAddrPacket</a></li><li><a href="module-net_packets-GetBlocksPacket.html">GetBlocksPacket</a></li><li><a href="module-net_packets-GetBlockTxnPacket.html">GetBlockTxnPacket</a></li><li><a href="module-net_packets-GetDataPacket.html">GetDataPacket</a></li><li><a href="module-net_packets-GetHeadersPacket.html">GetHeadersPacket</a></li><li><a href="module-net_packets-HeadersPacket.html">HeadersPacket</a></li><li><a href="module-net_packets-InvPacket.html">InvPacket</a></li><li><a href="module-net_packets-MempoolPacket.html">MempoolPacket</a></li><li><a href="module-net_packets-MerkleBlockPacket.html">MerkleBlockPacket</a></li><li><a href="module-net_packets-NotFoundPacket.html">NotFoundPacket</a></li><li><a href="module-net_packets-Packet.html">Packet</a></li><li><a href="module-net_packets-PingPacket.html">PingPacket</a></li><li><a href="module-net_packets-PongPacket.html">PongPacket</a></li><li><a href="module-net_packets-RejectPacket.html">RejectPacket</a></li><li><a href="module-net_packets-SendCmpctPacket.html">SendCmpctPacket</a></li><li><a href="module-net_packets-SendHeadersPacket.html">SendHeadersPacket</a></li><li><a href="module-net_packets-TXPacket.html">TXPacket</a></li><li><a href="module-net_packets-UnknownPacket.html">UnknownPacket</a></li><li><a href="module-net_packets-VerackPacket.html">VerackPacket</a></li><li><a href="module-net_packets-VersionPacket.html">VersionPacket</a></li><li><a href="module-net_socks-Proxy.html">Proxy</a></li><li><a href="module-net_socks-SOCKS.html">SOCKS</a></li><li><a href="module-node.FullNode.html">FullNode</a></li><li><a href="module-node.Logger.html">Logger</a></li><li><a href="module-node.Node.html">Node</a></li><li><a href="module-node.NodeClient.html">NodeClient</a></li><li><a href="module-node.SPVNode.html">SPVNode</a></li><li><a href="module-primitives.AbstractBlock.html">AbstractBlock</a></li><li><a href="module-primitives.Address.html">Address</a></li><li><a href="module-primitives.Block.html">Block</a></li><li><a href="module-primitives.Coin.html">Coin</a></li><li><a href="module-primitives.CoinSelector.html">CoinSelector</a></li><li><a href="module-primitives.Headers.html">Headers</a></li><li><a href="module-primitives.Input.html">Input</a></li><li><a href="module-primitives.InvItem.html">InvItem</a></li><li><a href="module-primitives.KeyRing.html">KeyRing</a></li><li><a href="module-primitives.MemBlock.html">MemBlock</a></li><li><a href="module-primitives.MerkleBlock.html">MerkleBlock</a></li><li><a href="module-primitives.MTX.html">MTX</a></li><li><a href="module-primitives.NetAddress.html">NetAddress</a></li><li><a href="module-primitives.Outpoint.html">Outpoint</a></li><li><a href="module-primitives.Output.html">Output</a></li><li><a href="module-primitives.TX.html">TX</a></li><li><a href="module-primitives.TXMeta.html">TXMeta</a></li><li><a href="module-protocol.Network.html">Network</a></li><li><a href="module-protocol.TimeData.html">TimeData</a></li><li><a href="module-protocol_errors-VerifyError.html">VerifyError</a></li><li><a href="module-protocol_errors-VerifyResult.html">VerifyResult</a></li><li><a href="module-script.Opcode.html">Opcode</a></li><li><a href="module-script.Program.html">Program</a></li><li><a href="module-script.Script.html">Script</a></li><li><a href="module-script.ScriptError.html">ScriptError</a></li><li><a href="module-script.SigCache.html">SigCache</a></li><li><a href="module-script.Stack.html">Stack</a></li><li><a href="module-script.Witness.html">Witness</a></li><li><a href="module-utils.AsyncEmitter.html">AsyncEmitter</a></li><li><a href="module-utils.AsyncObject.html">AsyncObject</a></li><li><a href="module-utils.Bloom.html">Bloom</a></li><li><a href="module-utils.BufferReader.html">BufferReader</a></li><li><a href="module-utils.BufferWriter.html">BufferWriter</a></li><li><a href="module-utils.List.html">List</a></li><li><a href="module-utils.ListItem.html">ListItem</a></li><li><a href="module-utils.Lock.html">Lock</a></li><li><a href="module-utils.LRU.html">LRU</a></li><li><a href="module-utils.LRUBatch.html">LRUBatch</a></li><li><a href="module-utils.LRUItem.html">LRUItem</a></li><li><a href="module-utils.LRUOp.html">LRUOp</a></li><li><a href="module-utils.Map.html">Map</a></li><li><a href="module-utils.MappedLock.html">MappedLock</a></li><li><a href="module-utils.RollingFilter.html">RollingFilter</a></li><li><a href="module-utils.StaticWriter.html">StaticWriter</a></li><li><a href="module-utils_ip.Address.html">Address</a></li><li><a href="module-utils_protobuf-ProtoReader.html">ProtoReader</a></li><li><a href="module-utils_protobuf-ProtoWriter.html">ProtoWriter</a></li><li><a href="module-wallet.Account.html">Account</a></li><li><a href="module-wallet.Balance.html">Balance</a></li><li><a href="module-wallet.BlockRecord.html">BlockRecord</a></li><li><a href="module-wallet.ChainState.html">ChainState</a></li><li><a href="module-wallet.Credit.html">Credit</a></li><li><a href="module-wallet.Details.html">Details</a></li><li><a href="module-wallet.DetailsMember.html">DetailsMember</a></li><li><a href="module-wallet.MasterKey.html">MasterKey</a></li><li><a href="module-wallet.Path.html">Path</a></li><li><a href="module-wallet.TXDB.html">TXDB</a></li><li><a href="module-wallet.Wallet.html">Wallet</a></li><li><a href="module-wallet.WalletClient.html">WalletClient</a></li><li><a href="module-wallet.WalletDB.html">WalletDB</a></li><li><a href="module-wallet.WalletKey.html">WalletKey</a></li><li><a href="module-wallet.WalletOptions.html">WalletOptions</a></li><li><a href="module-wallet_records-BlockMapRecord.html">BlockMapRecord</a></li><li><a href="module-wallet_records-BlockMeta.html">BlockMeta</a></li><li><a href="module-wallet_records-ChainState.html">ChainState</a></li><li><a href="module-wallet_records-OutpointMapRecord.html">OutpointMapRecord</a></li><li><a href="module-wallet_records-PathMapRecord.html">PathMapRecord</a></li><li><a href="module-wallet_records-TXMapRecord.html">TXMapRecord</a></li><li><a href="module-wallet_records-TXRecord.html">TXRecord</a></li><li><a href="module-workers.Framer.html">Framer</a></li><li><a href="module-workers.Master.html">Master</a></li><li><a href="module-workers.Parser.html">Parser</a></li><li><a href="module-workers.ParserClient.html">ParserClient</a></li><li><a href="module-workers.Worker.html">Worker</a></li><li><a href="module-workers.WorkerPool.html">WorkerPool</a></li><li><a href="module-workers_packets-ECSignPacket.html">ECSignPacket</a></li><li><a href="module-workers_packets-ECSignResultPacket.html">ECSignResultPacket</a></li><li><a href="module-workers_packets-ECVerifyPacket.html">ECVerifyPacket</a></li><li><a href="module-workers_packets-ECVerifyResultPacket.html">ECVerifyResultPacket</a></li><li><a href="module-workers_packets-ErrorPacket.html">ErrorPacket</a></li><li><a href="module-workers_packets-ErrorResultPacket.html">ErrorResultPacket</a></li><li><a href="module-workers_packets-EventPacket.html">EventPacket</a></li><li><a href="module-workers_packets-LogPacket.html">LogPacket</a></li><li><a href="module-workers_packets-MinePacket.html">MinePacket</a></li><li><a href="module-workers_packets-MineResultPacket.html">MineResultPacket</a></li><li><a href="module-workers_packets-Packet.html">Packet</a></li><li><a href="module-workers_packets-ScryptPacket.html">ScryptPacket</a></li><li><a href="module-workers_packets-ScryptResultPacket.html">ScryptResultPacket</a></li><li><a href="module-workers_packets-SignInputPacket.html">SignInputPacket</a></li><li><a href="module-workers_packets-SignInputResultPacket.html">SignInputResultPacket</a></li><li><a href="module-workers_packets-SignPacket.html">SignPacket</a></li><li><a href="module-workers_packets-SignResultPacket.html">SignResultPacket</a></li><li><a href="module-workers_packets-VerifyInputPacket.html">VerifyInputPacket</a></li><li><a href="module-workers_packets-VerifyInputResultPacket.html">VerifyInputResultPacket</a></li><li><a href="module-workers_packets-VerifyPacket.html">VerifyPacket</a></li><li><a href="module-workers_packets-VerifyResultPacket.html">VerifyResultPacket</a></li></ul><h3>Namespaces</h3><ul><li><a href="module-crypto_pk.ecdsa.html">ecdsa</a></li><li><a href="module-crypto_pk.rsa.html">rsa</a></li></ul><h3>Global</h3><ul><li><a href="global.html"></a></li><li><a href="global.html#DoubleMap">DoubleMap</a></li><li><a href="global.html#StatEntry">StatEntry</a></li></ul>
</nav>
<br class="clear">
<footer>
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.4.0</a> on Fri Feb 10 2017 09:40:24 GMT-0800 (PST)
</footer>
<script> prettyPrint(); </script>
<script src="scripts/linenumber.js"> </script>
</body>
</html>