nkn-sdk
Version:
NKN client and wallet SDK
1,655 lines (997 loc) • 260 kB
HTML
<!doctype html>
<html lang="en">
<head>
<meta charset='utf-8'>
<title>nkn-sdk 1.3.6 | Documentation</title>
<meta name='description' content='NKN client and wallet SDK'>
<meta name='viewport' content='width=device-width,initial-scale=1'>
<link href='assets/bass.css' rel='stylesheet'>
<link href='assets/style.css' rel='stylesheet'>
<link href='assets/github.css' rel='stylesheet'>
<link href='assets/split.css' rel='stylesheet'>
</head>
<body class='documentation m0'>
<div class='flex'>
<div id='split-left' class='overflow-auto fs0 height-viewport-100'>
<div class='py1 px2'>
<h3 class='mb0 no-anchor'>nkn-sdk</h3>
<div class='mb1'><code>1.3.6</code></div>
<input
placeholder='Filter'
id='filter-input'
class='col12 block input'
spellcheck='false'
autocapitalize='off'
autocorrect='off'
type='text' />
<div id='toc'>
<ul class='list-reset h5 py1-ul'>
<li><a
href='#client'
class=" toggle-sibling">
Client
<span class='icon'>▸</span>
</a>
<div class='toggle-target display-none'>
<ul class='list-reset py1-ul pl1'>
<li class='h5'><span>Instance members</span></li>
<li><a
href='#clientaddr'
class='regular pre-open'>
#addr
</a></li>
<li><a
href='#clientclose'
class='regular pre-open'>
#close
</a></li>
<li><a
href='#clientdeletename'
class='regular pre-open'>
#deleteName
</a></li>
<li><a
href='#clientgetbalance'
class='regular pre-open'>
#getBalance
</a></li>
<li><a
href='#clientgetlatestblock'
class='regular pre-open'>
#getLatestBlock
</a></li>
<li><a
href='#clientgetnonce'
class='regular pre-open'>
#getNonce
</a></li>
<li><a
href='#clientgetpublickey'
class='regular pre-open'>
#getPublicKey
</a></li>
<li><a
href='#clientgetregistrant'
class='regular pre-open'>
#getRegistrant
</a></li>
<li><a
href='#clientgetseed'
class='regular pre-open'>
#getSeed
</a></li>
<li><a
href='#clientgetsubscribers'
class='regular pre-open'>
#getSubscribers
</a></li>
<li><a
href='#clientgetsubscriberscount'
class='regular pre-open'>
#getSubscribersCount
</a></li>
<li><a
href='#clientgetsubscription'
class='regular pre-open'>
#getSubscription
</a></li>
<li><a
href='#clientidentifier'
class='regular pre-open'>
#identifier
</a></li>
<li><a
href='#clientisclosed'
class='regular pre-open'>
#isClosed
</a></li>
<li><a
href='#clientisfailed'
class='regular pre-open'>
#isFailed
</a></li>
<li><a
href='#clientisready'
class='regular pre-open'>
#isReady
</a></li>
<li><a
href='#clienton'
class='regular pre-open'>
#on
</a></li>
<li><a
href='#clientonconnect'
class='regular pre-open'>
#onConnect
</a></li>
<li><a
href='#clientonconnectfailed'
class='regular pre-open'>
#onConnectFailed
</a></li>
<li><a
href='#clientonmessage'
class='regular pre-open'>
#onMessage
</a></li>
<li><a
href='#clientonwserror'
class='regular pre-open'>
#onWsError
</a></li>
<li><a
href='#clientpeer'
class='regular pre-open'>
#peer
</a></li>
<li><a
href='#clientpublish'
class='regular pre-open'>
#publish
</a></li>
<li><a
href='#clientregistername'
class='regular pre-open'>
#registerName
</a></li>
<li><a
href='#clientsend'
class='regular pre-open'>
#send
</a></li>
<li><a
href='#clientsendtransaction'
class='regular pre-open'>
#sendTransaction
</a></li>
<li><a
href='#clientsubscribe'
class='regular pre-open'>
#subscribe
</a></li>
<li><a
href='#clienttransfername'
class='regular pre-open'>
#transferName
</a></li>
<li><a
href='#clienttransferto'
class='regular pre-open'>
#transferTo
</a></li>
<li><a
href='#clientunsubscribe'
class='regular pre-open'>
#unsubscribe
</a></li>
</ul>
</div>
</li>
<li><a
href='#multiclient'
class=" toggle-sibling">
MultiClient
<span class='icon'>▸</span>
</a>
<div class='toggle-target display-none'>
<ul class='list-reset py1-ul pl1'>
<li class='h5'><span>Instance members</span></li>
<li><a
href='#multiclientaddr'
class='regular pre-open'>
#addr
</a></li>
<li><a
href='#multiclientclients'
class='regular pre-open'>
#clients
</a></li>
<li><a
href='#multiclientclose'
class='regular pre-open'>
#close
</a></li>
<li><a
href='#multiclientdefaultclient'
class='regular pre-open'>
#defaultClient
</a></li>
<li><a
href='#multiclientdeletename'
class='regular pre-open'>
#deleteName
</a></li>
<li><a
href='#multiclientdial'
class='regular pre-open'>
#dial
</a></li>
<li><a
href='#multiclientgetbalance'
class='regular pre-open'>
#getBalance
</a></li>
<li><a
href='#multiclientgetlatestblock'
class='regular pre-open'>
#getLatestBlock
</a></li>
<li><a
href='#multiclientgetnonce'
class='regular pre-open'>
#getNonce
</a></li>
<li><a
href='#multiclientgetpublickey'
class='regular pre-open'>
#getPublicKey
</a></li>
<li><a
href='#multiclientgetregistrant'
class='regular pre-open'>
#getRegistrant
</a></li>
<li><a
href='#multiclientgetseed'
class='regular pre-open'>
#getSeed
</a></li>
<li><a
href='#multiclientgetsubscribers'
class='regular pre-open'>
#getSubscribers
</a></li>
<li><a
href='#multiclientgetsubscriberscount'
class='regular pre-open'>
#getSubscribersCount
</a></li>
<li><a
href='#multiclientgetsubscription'
class='regular pre-open'>
#getSubscription
</a></li>
<li><a
href='#multiclientidentifier'
class='regular pre-open'>
#identifier
</a></li>
<li><a
href='#multiclientisclosed'
class='regular pre-open'>
#isClosed
</a></li>
<li><a
href='#multiclientisfailed'
class='regular pre-open'>
#isFailed
</a></li>
<li><a
href='#multiclientisready'
class='regular pre-open'>
#isReady
</a></li>
<li><a
href='#multiclientlisten'
class='regular pre-open'>
#listen
</a></li>
<li><a
href='#multiclienton'
class='regular pre-open'>
#on
</a></li>
<li><a
href='#multiclientonconnect'
class='regular pre-open'>
#onConnect
</a></li>
<li><a
href='#multiclientonconnectfailed'
class='regular pre-open'>
#onConnectFailed
</a></li>
<li><a
href='#multiclientonmessage'
class='regular pre-open'>
#onMessage
</a></li>
<li><a
href='#multiclientonsession'
class='regular pre-open'>
#onSession
</a></li>
<li><a
href='#multiclientonwserror'
class='regular pre-open'>
#onWsError
</a></li>
<li><a
href='#multiclientpublish'
class='regular pre-open'>
#publish
</a></li>
<li><a
href='#multiclientreadyclientids'
class='regular pre-open'>
#readyClientIDs
</a></li>
<li><a
href='#multiclientregistername'
class='regular pre-open'>
#registerName
</a></li>
<li><a
href='#multiclientsend'
class='regular pre-open'>
#send
</a></li>
<li><a
href='#multiclientsendtransaction'
class='regular pre-open'>
#sendTransaction
</a></li>
<li><a
href='#multiclientsendwithclient'
class='regular pre-open'>
#sendWithClient
</a></li>
<li><a
href='#multiclientsubscribe'
class='regular pre-open'>
#subscribe
</a></li>
<li><a
href='#multiclienttransfername'
class='regular pre-open'>
#transferName
</a></li>
<li><a
href='#multiclienttransferto'
class='regular pre-open'>
#transferTo
</a></li>
<li><a
href='#multiclientunsubscribe'
class='regular pre-open'>
#unsubscribe
</a></li>
</ul>
</div>
</li>
<li><a
href='#wallet'
class=" toggle-sibling">
Wallet
<span class='icon'>▸</span>
</a>
<div class='toggle-target display-none'>
<ul class='list-reset py1-ul pl1'>
<li class='h5'><span>Static members</span></li>
<li><a
href='#walletfromjson'
class='regular pre-open'>
.fromJSON
</a></li>
<li><a
href='#walletgetbalance'
class='regular pre-open'>
.getBalance
</a></li>
<li><a
href='#walletgetlatestblock'
class='regular pre-open'>
.getLatestBlock
</a></li>
<li><a
href='#walletgetnonce'
class='regular pre-open'>
.getNonce
</a></li>
<li><a
href='#walletgetregistrant'
class='regular pre-open'>
.getRegistrant
</a></li>
<li><a
href='#walletgetsubscribers'
class='regular pre-open'>
.getSubscribers
</a></li>
<li><a
href='#walletgetsubscriberscount'
class='regular pre-open'>
.getSubscribersCount
</a></li>
<li><a
href='#walletgetsubscription'
class='regular pre-open'>
.getSubscription
</a></li>
<li><a
href='#walletpublickeytoaddress'
class='regular pre-open'>
.publicKeyToAddress
</a></li>
<li><a
href='#walletsendtransaction'
class='regular pre-open'>
.sendTransaction
</a></li>
<li><a
href='#walletverifyaddress'
class='regular pre-open'>
.verifyAddress
</a></li>
</ul>
<ul class='list-reset py1-ul pl1'>
<li class='h5'><span>Instance members</span></li>
<li><a
href='#walletaddress'
class='regular pre-open'>
#address
</a></li>
<li><a
href='#walletcreateorupdatenanopay'
class='regular pre-open'>
#createOrUpdateNanoPay
</a></li>
<li><a
href='#walletdeletename'
class='regular pre-open'>
#deleteName
</a></li>
<li><a
href='#walletgetbalance'
class='regular pre-open'>
#getBalance
</a></li>
<li><a
href='#walletgetlatestblock'
class='regular pre-open'>
#getLatestBlock
</a></li>
<li><a
href='#walletgetnonce'
class='regular pre-open'>
#getNonce
</a></li>
<li><a
href='#walletgetpublickey'
class='regular pre-open'>
#getPublicKey
</a></li>
<li><a
href='#walletgetregistrant'
class='regular pre-open'>
#getRegistrant
</a></li>
<li><a
href='#walletgetseed'
class='regular pre-open'>
#getSeed
</a></li>
<li><a
href='#walletgetsubscribers'
class='regular pre-open'>
#getSubscribers
</a></li>
<li><a
href='#walletgetsubscriberscount'
class='regular pre-open'>
#getSubscribersCount
</a></li>
<li><a
href='#walletgetsubscription'
class='regular pre-open'>
#getSubscription
</a></li>
<li><a
href='#walletregistername'
class='regular pre-open'>
#registerName
</a></li>
<li><a
href='#walletsendtransaction'
class='regular pre-open'>
#sendTransaction
</a></li>
<li><a
href='#walletsubscribe'
class='regular pre-open'>
#subscribe
</a></li>
<li><a
href='#wallettojson'
class='regular pre-open'>
#toJSON
</a></li>
<li><a
href='#wallettransfername'
class='regular pre-open'>
#transferName
</a></li>
<li><a
href='#wallettransferto'
class='regular pre-open'>
#transferTo
</a></li>
<li><a
href='#walletunsubscribe'
class='regular pre-open'>
#unsubscribe
</a></li>
<li><a
href='#walletverifypassword'
class='regular pre-open'>
#verifyPassword
</a></li>
<li><a
href='#walletversion'
class='regular pre-open'>
#version
</a></li>
</ul>
</div>
</li>
<li><a
href='#amount'
class="">
Amount
</a>
</li>
<li><a
href='#connectfailedhandler'
class="">
ConnectFailedHandler
</a>
</li>
<li><a
href='#connecthandler'
class="">
ConnectHandler
</a>
</li>
<li><a
href='#createtransactionoptions'
class="">
CreateTransactionOptions
</a>
</li>
<li><a
href='#destination'
class="">
Destination
</a>
</li>
<li><a
href='#dialoptions'
class="">
DialOptions
</a>
</li>
<li><a
href='#message'
class="">
Message
</a>
</li>
<li><a
href='#messagedata'
class="">
MessageData
</a>
</li>
<li><a
href='#messagehandler'
class="">
MessageHandler
</a>
</li>
<li><a
href='#publishoptions'
class="">
PublishOptions
</a>
</li>
<li><a
href='#replydata'
class="">
ReplyData
</a>
</li>
<li><a
href='#sendoptions'
class="">
SendOptions
</a>
</li>
<li><a
href='#sessionhandler'
class="">
SessionHandler
</a>
</li>
<li><a
href='#transactionoptions'
class="">
TransactionOptions
</a>
</li>
<li><a
href='#txnorhash'
class="">
TxnOrHash
</a>
</li>
<li><a
href='#wserrorhandler'
class="">
WsErrorHandler
</a>
</li>
</ul>
</div>
<div class='mt1 h6 quiet'>
<a href='https://documentation.js.org/reading-documentation.html'>Need help reading this?</a>
</div>
</div>
</div>
<div id='split-right' class='relative overflow-auto height-viewport-100'>
<section class='p2 mb2 clearfix bg-white minishadow'>
<div class='clearfix'>
<h3 class='fl m0' id='client'>
Client
</h3>
</div>
<p>NKN client that sends data to and receives data from other NKN clients.
Typically you might want to use <a href="#multiclient">MultiClient</a> for better
reliability and lower latency.</p>
<div class='pre p1 fill-light mt0'>new Client(options: <a href="https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object">Object</a>)</div>
<div class='py1 quiet mt1 prose-big'>Parameters</div>
<div class='prose'>
<div class='space-bottom0'>
<div>
<span class='code bold'>options</span> <code class='quiet'>(<a href="https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object">Object</a>
= <code>{}</code>)</code>
Client configuration
</div>
<table class='mt1 mb2 fixed-table h5 col-12'>
<colgroup>
<col width='30%' />
<col width='70%' />
</colgroup>
<thead>
<tr class='bold fill-light'>
<th>Name</th>
<th>Description</th>
</tr>
</thead>
<tbody class='mt1'>
<tr>
<td class='break-word'><span class='code bold'>options.seed</span> <code class='quiet'><a href="https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String">string</a></code>
(default <code>undefined</code>)
</td>
<td class='break-word'><span>Secret seed (64 hex characters). If empty, a random seed will be used.
</span></td>
</tr>
<tr>
<td class='break-word'><span class='code bold'>options.identifier</span> <code class='quiet'><a href="https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String">string</a></code>
(default <code>undefined</code>)
</td>
<td class='break-word'><span>Identifier used to differentiate multiple clients sharing the same secret seed.
</span></td>
</tr>
<tr>
<td class='break-word'><span class='code bold'>options.reconnectIntervalMin</span> <code class='quiet'><a href="https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number">number</a></code>
(default <code>1000</code>)
</td>
<td class='break-word'><span>Minimal reconnect interval in ms.
</span></td>
</tr>
<tr>
<td class='break-word'><span class='code bold'>options.reconnectIntervalMax</span> <code class='quiet'><a href="https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number">number</a></code>
(default <code>64000</code>)
</td>
<td class='break-word'><span>Maximal reconnect interval in ms.
</span></td>
</tr>
<tr>
<td class='break-word'><span class='code bold'>options.responseTimeout</span> <code class='quiet'><a href="https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number">number</a></code>
(default <code>5000</code>)
</td>
<td class='break-word'><span>Message response timeout in ms. Zero disables timeout.
</span></td>
</tr>
<tr>
<td class='break-word'><span class='code bold'>options.connectTimeout</span> <code class='quiet'><a href="https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number">number</a></code>
(default <code>10000</code>)
</td>
<td class='break-word'><span>Websocket/webrtc connect timeout in ms. Zero disables timeout.
</span></td>
</tr>
<tr>
<td class='break-word'><span class='code bold'>options.msgHoldingSeconds</span> <code class='quiet'><a href="https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number">number</a></code>
(default <code>0</code>)
</td>
<td class='break-word'><span>Maximal message holding time in second. Message might be cached and held by node up to this duration if destination client is not online. Zero disables cache.
</span></td>
</tr>
<tr>
<td class='break-word'><span class='code bold'>options.encrypt</span> <code class='quiet'><a href="https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Boolean">boolean</a></code>
(default <code>true</code>)
</td>
<td class='break-word'><span>Whether to end to end encrypt message.
</span></td>
</tr>
<tr>
<td class='break-word'><span class='code bold'>options.rpcServerAddr</span> <code class='quiet'><a href="https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String">string</a></code>
(default <code>'https://mainnet-rpc-node-0001.nkn.org/mainnet/api/wallet'</code>)
</td>
<td class='break-word'><span>RPC server address used to join the network.
</span></td>
</tr>
<tr>
<td class='break-word'><span class='code bold'>options.webrtc</span> <code class='quiet'><a href="https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Boolean">boolean</a></code>
(default <code>undefined</code>)
</td>
<td class='break-word'><span>Force to use/not use web rtc if defined. By default, webrtc is used only in https location when tls is undefined.
</span></td>
</tr>
<tr>
<td class='break-word'><span class='code bold'>options.tls</span> <code class='quiet'><a href="https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Boolean">boolean</a></code>
(default <code>undefined</code>)
</td>
<td class='break-word'><span>Force to use ws or wss if defined. This option is only used when webrtc is not used. Default is true in https location, otherwise false.
</span></td>
</tr>
<tr>
<td class='break-word'><span class='code bold'>options.stunServerAddr</span> <code class='quiet'>(<a href="https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String">string</a> | <a href="https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array">Array</a><<a href="https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String">string</a>>)</code>
(default <code>["stun:stun.l.google.com:19302","stun:stun.cloudflare.com:3478","stun:stunserver.stunprotocol.org:3478"]</code>)
</td>
<td class='break-word'><span>Stun server address for webrtc.
</span></td>
</tr>
<tr>
<td class='break-word'><span class='code bold'>options.worker</span> <code class='quiet'>(<a href="https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Boolean">boolean</a> | <a href="https://developer.mozilla.org/docs/Web/JavaScript/Reference/Statements/function">function</a>)</code>
(default <code>false</code>)
</td>
<td class='break-word'><span>Whether to use web workers (if available) to compute signatures. Can also be a function that returns web worker. Typically you only need to set it to a function if you import nkn-sdk as a module and are NOT using browserify or webpack worker-loader to bundle js file. The worker file is located at
<code>lib/worker/webpack.worker.js</code>
.
</span></td>
</tr>
</tbody>
</table>
</div>
</div>
<div class='py1 quiet mt1 prose-big'>Instance Members</div>
<div class="clearfix">
<div class='border-bottom' id='clientaddr'>
<div class="clearfix small pointer toggle-sibling">
<div class="py1 contain">
<a class='icon pin-right py1 dark-link caret-right'>▸</a>
<span class='code strong strong truncate'>addr</span>
</div>
</div>
<div class="clearfix display-none toggle-target">
<section class='p2 mb2 clearfix bg-white minishadow'>
<p>Client address, which will be <code>identifier.pubicKeyHex</code> if <code>identifier</code> is not empty, otherwise just <code>pubicKeyHex</code>.</p>
<div class='pre p1 fill-light mt0'>addr</div>
<p>
Type:
<a href="https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String">string</a>
</p>
</section>
</div>
</div>
<div class='border-bottom' id='clientclose'>
<div class="clearfix small pointer toggle-sibling">
<div class="py1 contain">
<a class='icon pin-right py1 dark-link caret-right'>▸</a>
<span class='code strong strong truncate'>close()</span>
</div>
</div>
<div class="clearfix display-none toggle-target">
<section class='p2 mb2 clearfix bg-white minishadow'>
<p>Close the client.</p>
<div class='pre p1 fill-light mt0'>close()</div>
</section>
</div>
</div>
<div class='border-bottom' id='clientdeletename'>
<div class="clearfix small pointer toggle-sibling">
<div class="py1 contain">
<a class='icon pin-right py1 dark-link caret-right'>▸</a>
<span class='code strong strong truncate'>deleteName(name, options)</span>
</div>
</div>
<div class="clearfix display-none toggle-target">
<section class='p2 mb2 clearfix bg-white minishadow'>
<p>Same as <a href="#walletdeletename">wallet.deleteName</a>, but using this
client's connected node as rpcServerAddr, followed by this client's
rpcServerAddr if failed.</p>
<div class='pre p1 fill-light mt0'>deleteName(name: <a href="https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String">string</a>, options: <a href="#transactionoptions">TransactionOptions</a>): <a href="https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Promise">Promise</a><<a href="#txnorhash">TxnOrHash</a>></div>
<div class='py1 quiet mt1 prose-big'>Parameters</div>
<div class='prose'>
<div class='space-bottom0'>
<div>
<span class='code bold'>name</span> <code class='quiet'>(<a href="https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String">string</a>)</code>
</div>
</div>
<div class='space-bottom0'>
<div>
<span class='code bold'>options</span> <code class='quiet'>(<a href="#transactionoptions">TransactionOptions</a>
= <code>{}</code>)</code>
</div>
</div>
</div>
<div class='py1 quiet mt1 prose-big'>Returns</div>
<code><a href="https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Promise">Promise</a><<a href="#txnorhash">TxnOrHash</a>></code>
</section>
</div>
</div>
<div class='border-bottom' id='clientgetbalance'>
<div class="clearfix small pointer toggle-sibling">
<div class="py1 contain">
<a class='icon pin-right py1 dark-link caret-right'>▸</a>
<span class='code strong strong truncate'>getBalance(address)</span>
</div>
</div>
<div class="clearfix display-none toggle-target">
<section class='p2 mb2 clearfix bg-white minishadow'>
<p>Same as <a href="#walletgetbalance">Wallet.getBalance</a>, but using this
client's connected node as rpcServerAddr, followed by this client's
rpcServerAddr if failed.</p>
<div class='pre p1 fill-light mt0'>getBalance(address: <a href="https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String">string</a>?): <a href="https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Promise">Promise</a><common.Amount></div>
<div class='py1 quiet mt1 prose-big'>Parameters</div>
<div class='prose'>
<div class='space-bottom0'>
<div>
<span class='code bold'>address</span> <code class='quiet'>(<a href="https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String">string</a>?)</code>
</div>
</div>
</div>
<div class='py1 quiet mt1 prose-big'>Returns</div>
<code><a href="https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Promise">Promise</a><common.Amount></code>
</section>
</div>
</div>
<div class='border-bottom' id='clientgetlatestblock'>
<div class="clearfix small pointer toggle-sibling">
<div class="py1 contain">
<a class='icon pin-right py1 dark-link caret-right'>▸</a>
<span class='code strong strong truncate'>getLatestBlock()</span>
</div>
</div>
<div class="clearfix display-none toggle-target">
<section class='p2 mb2 clearfix bg-white minishadow'>
<p>Same as <a href="#walletgetlatestblock">Wallet.getLatestBlock</a>, but using this
client's connected node as rpcServerAddr, followed by this client's
rpcServerAddr if failed.</p>
<div class='pre p1 fill-light mt0'>getLatestBlock(): <a href="https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Promise">Promise</a><{height: <a href="https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number">number</a>, hash: <a href="https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String">string</a>}></div>
<div class='py1 quiet mt1 prose-big'>Returns</div>
<code><a href="https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Promise">Promise</a><{height: <a href="https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number">number</a>, hash: <a href="https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String">string</a>}></code>
</section>
</div>
</div>
<div class='border-bottom' id='clientgetnonce'>
<div class="clearfix small pointer toggle-sibling">
<div class="py1 contain">
<a class='icon pin-right py1 dark-link caret-right'>▸</a>
<span class='code strong strong truncate'>getNonce(address, options)</span>
</div>
</div>
<div class="clearfix display-none toggle-target">
<section class='p2 mb2 clearfix bg-white minishadow'>
<p>Same as <a href="#walletgetnonce">Wallet.getNonce</a>, but using this
client's connected node as rpcServerAddr, followed by this client's
rpcServerAddr if failed.</p>
<div class='pre p1 fill-light mt0'>getNonce(address: <a href="https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String">string</a>?, options: {txPool: <a href="https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Boolean">boolean</a>}): <a href="https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Promise">Promise</a><<a href="https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number">number</a>></div>
<div class='py1 quiet mt1 prose-big'>Parameters</div>
<div class='prose'>
<div class='space-bottom0'>
<div>
<span class='code bold'>address</span> <code class='quiet'>(<a href="https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String">string</a>?)</code>
</div>
</div>
<div class='space-bottom0'>
<div>
<span class='code bold'>options</span> <code class='quiet'>({txPool: <a href="https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Boolean">boolean</a>}
= <code>{}</code>)</code>
</div>
</div>
</div>
<div class='py1 quiet mt1 prose-big'>Returns</div>
<code><a href="https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Promise">Promise</a><<a href="https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number">number</a>></code>
</section>
</div>
</div>
<div class='border-bottom' id='clientgetpublickey'>
<div class="clearfix small pointer toggle-sibling">
<div class="py1 contain">
<a class='icon pin-right py1 dark-link caret-right'>▸</a>
<span class='code strong strong truncate'>getPublicKey()</span>
</div>
</div>
<div class="clearfix display-none toggle-target">
<section class='p2 mb2 clearfix bg-white minishadow'>
<p>Get the public key of the client.</p>
<div class='pre p1 fill-light mt0'>getPublicKey(): <a href="https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String">string</a></div>
<div class='py1 quiet mt1 prose-big'>Returns</div>
<code><a href="https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String">string</a></code>:
Public key as hex string.
</section>
</div>
</div>
<div class='border-bottom' id='clientgetregistrant'>
<div class="clearfix small pointer toggle-sibling">
<div class="py1 contain">
<a class='icon pin-right py1 dark-link caret-right'>▸</a>
<span class='code strong strong truncate'>getRegistrant(name)</span>
</div>
</div>
<div class="clearfix display-none toggle-target">
<section class='p2 mb2 clearfix bg-white minishadow'>
<p>Same as <a href="#walletgetregistrant">Wallet.getRegistrant</a>, but using this
client's connected node as rpcServerAddr, followed by this client's
rpcServerAddr if failed.</p>
<div class='pre p1 fill-light mt0'>getRegistrant(name: <a href="https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String">string</a>): <a href="https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Promise">Promise</a><{registrant: <a href="https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String">string</a>, expiresAt: <a href="https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number">number</a>}></div>
<div class='py1 quiet mt1 prose-big'>Parameters</div>
<div class='prose'>
<div class='space-bottom0'>
<div>
<span class='code bold'>name</span> <code class='quiet'>(<a href="https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String">string</a>)</code>
</div>
</div>
</div>
<div class='py1 quiet mt1 prose-big'>Returns</div>
<code><a href="https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Promise">Promise</a><{registrant: <a href="https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String">string</a>, expiresAt: <a href="https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number">number</a>}></code>
</section>
</div>
</div>
<div class='border-bottom' id='clientgetseed'>
<div class="clearfix small pointer toggle-sibling">
<div class="py1 contain">
<a class='icon pin-right py1 dark-link caret-right'>▸</a>
<span class='code strong strong truncate'>getSeed()</span>
</div>
</div>
<div class="clearfix display-none toggle-target">
<section class='p2 mb2 clearfix bg-white minishadow'>
<p>Get the secret seed of the client.</p>
<div class='pre p1 fill-light mt0'>getSeed(): <a href="https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String">string</a></div>
<div class='py1 quiet mt1 prose-big'>Returns</div>
<code><a href="https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String">string</a></code>:
Secret seed as hex string.
</section>
</div>
</div>
<div class='border-bottom' id='clientgetsubscribers'>
<div class="clearfix small pointer toggle-sibling">
<div class="py1 contain">
<a class='icon pin-right py1 dark-link caret-right'>▸</a>
<span class='code strong strong truncate'>getSubscribers(topic, options)</span>
</div>
</div>