Add documentation to eth modules.

This commit is contained in:
Spencer Ofwiti 2021-05-11 12:05:04 +03:00
parent 8db1343bc5
commit 2bc6dcf033
28 changed files with 1174 additions and 412 deletions

View File

@ -63,9 +63,22 @@
<code>src/app/_eth/accountIndex.ts</code>
</p>
<p class="comment">
<h3>Description</h3>
</p>
<p class="comment">
<p>Provides an instance of the accounts registry contract.
Allows querying of accounts that have been registered as valid accounts in the network.</p>
</p>
<p class="comment">
<h3>Example</h3>
</p>
<div class="io-description">
</div>
<section>
<h3 id="index">Index</h3>
@ -143,12 +156,14 @@
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="10" class="link-to-prism">src/app/_eth/accountIndex.ts:10</a></div>
<div class="io-line">Defined in <a href="" data-line="25" class="link-to-prism">src/app/_eth/accountIndex.ts:25</a></div>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-description"><p>Create a connection to the deployed account registry contract.</p>
</div>
<div>
<b>Parameters :</b>
<table class="params">
@ -157,6 +172,7 @@
<td>Name</td>
<td>Type</td>
<td>Optional</td>
<td>Description</td>
</tr>
</thead>
<tbody>
@ -171,6 +187,12 @@
No
</td>
<td>
<code><ul>
<li>The deployed account registry contract&#39;s address.</li>
</ul>
</code>
</td>
</tr>
<tr>
<td>signerAddress</td>
@ -183,6 +205,12 @@
Yes
</td>
<td>
<code><ul>
<li>The account address of the account that deployed the account registry contract.</li>
</ul>
</code>
</td>
</tr>
</tbody>
</table>
@ -218,10 +246,16 @@
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="10" class="link-to-prism">src/app/_eth/accountIndex.ts:10</a></div>
<div class="io-line">Defined in <a href="" data-line="21" class="link-to-prism">src/app/_eth/accountIndex.ts:21</a></div>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-description"><p>The instance of the account registry contract. </p>
</div>
</td>
</tr>
</tbody>
</table>
@ -245,10 +279,16 @@
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="8" class="link-to-prism">src/app/_eth/accountIndex.ts:8</a></div>
<div class="io-line">Defined in <a href="" data-line="23" class="link-to-prism">src/app/_eth/accountIndex.ts:23</a></div>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-description"><p>The deployed account registry contract&#39;s address. </p>
</div>
</td>
</tr>
</tbody>
</table>
@ -272,10 +312,16 @@
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="9" class="link-to-prism">src/app/_eth/accountIndex.ts:9</a></div>
<div class="io-line">Defined in <a href="" data-line="25" class="link-to-prism">src/app/_eth/accountIndex.ts:25</a></div>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-description"><p>The account address of the account that deployed the account registry contract. </p>
</div>
</td>
</tr>
</tbody>
</table>
@ -311,14 +357,17 @@
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="44"
class="link-to-prism">src/app/_eth/accountIndex.ts:44</a></div>
<div class="io-line">Defined in <a href="" data-line="57"
class="link-to-prism">src/app/_eth/accountIndex.ts:57</a></div>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-description"><p>Registers an account to the accounts registry.
Requires availability of the signer address.</p>
</div>
<div class="io-description">
<b>Parameters :</b>
@ -328,6 +377,7 @@
<td>Name</td>
<td>Type</td>
<td>Optional</td>
<td>Description</td>
</tr>
</thead>
<tbody>
@ -342,18 +392,34 @@
</td>
<td>
<ul>
<li>The account address to be registered to the accounts registry contract.</li>
</ul>
</td>
</tr>
</tbody>
</table>
</div>
<div>
<b>Example :</b>
<div>
<pre class="line-numbers"><code class="language-html">Prints &amp;quot;true&amp;quot; for registration of &amp;#39;0xc0ffee254729296a45a3885639AC7E10F9d54979&amp;#39;:&lt;/p&gt;
&lt;p&gt;```typescript&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;console.log(await addToAccountRegistry(&amp;#39;0xc0ffee254729296a45a3885639AC7E10F9d54979&amp;#39;));&lt;/li&gt;
&lt;li&gt;```&lt;/li&gt;
&lt;/ul&gt;</code></pre>
</div>
</div>
<div class="io-description">
<b>Returns : </b> <code>Promise&lt;boolean&gt;</code>
</div>
<div class="io-description">
<p>true - If registration is successful or account had already been registered.</p>
</div>
</td>
</tr>
@ -384,14 +450,17 @@
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="26"
class="link-to-prism">src/app/_eth/accountIndex.ts:26</a></div>
<div class="io-line">Defined in <a href="" data-line="78"
class="link-to-prism">src/app/_eth/accountIndex.ts:78</a></div>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-description"><p>Checks whether a specific account address has been registered in the accounts registry.
Returns &quot;true&quot; for available and &quot;false&quot; otherwise.</p>
</div>
<div class="io-description">
<b>Parameters :</b>
@ -401,6 +470,7 @@
<td>Name</td>
<td>Type</td>
<td>Optional</td>
<td>Description</td>
</tr>
</thead>
<tbody>
@ -415,18 +485,34 @@
</td>
<td>
<ul>
<li>The account address to be validated.</li>
</ul>
</td>
</tr>
</tbody>
</table>
</div>
<div>
<b>Example :</b>
<div>
<pre class="line-numbers"><code class="language-html">Prints &amp;quot;true&amp;quot; or &amp;quot;false&amp;quot; depending on whether &amp;#39;0xc0ffee254729296a45a3885639AC7E10F9d54979&amp;#39; has been registered:&lt;/p&gt;
&lt;p&gt;```typescript&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;console.log(await haveAccount(&amp;#39;0xc0ffee254729296a45a3885639AC7E10F9d54979&amp;#39;));&lt;/li&gt;
&lt;li&gt;```&lt;/li&gt;
&lt;/ul&gt;</code></pre>
</div>
</div>
<div class="io-description">
<b>Returns : </b> <code>Promise&lt;boolean&gt;</code>
</div>
<div class="io-description">
<p>true - If the address has been registered in the accounts registry.</p>
</div>
</td>
</tr>
@ -457,14 +543,16 @@
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="30"
class="link-to-prism">src/app/_eth/accountIndex.ts:30</a></div>
<div class="io-line">Defined in <a href="" data-line="95"
class="link-to-prism">src/app/_eth/accountIndex.ts:95</a></div>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-description"><p>Returns a specified number of the most recently registered accounts.</p>
</div>
<div class="io-description">
<b>Parameters :</b>
@ -474,6 +562,7 @@
<td>Name</td>
<td>Type</td>
<td>Optional</td>
<td>Description</td>
</tr>
</thead>
<tbody>
@ -488,18 +577,34 @@
</td>
<td>
<ul>
<li>The number of accounts to return from the accounts registry.</li>
</ul>
</td>
</tr>
</tbody>
</table>
</div>
<div>
<b>Example :</b>
<div>
<pre class="line-numbers"><code class="language-html">Prints an array of accounts:&lt;/p&gt;
&lt;p&gt;```typescript&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;console.log(await last(5));&lt;/li&gt;
&lt;li&gt;```&lt;/li&gt;
&lt;/ul&gt;</code></pre>
</div>
</div>
<div class="io-description">
<b>Returns : </b> <code>Promise&lt;Array&lt;string&gt;&gt;</code>
</div>
<div class="io-description">
<p>An array of registered account addresses.</p>
</div>
</td>
</tr>
@ -530,19 +635,36 @@
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="22"
class="link-to-prism">src/app/_eth/accountIndex.ts:22</a></div>
<div class="io-line">Defined in <a href="" data-line="121"
class="link-to-prism">src/app/_eth/accountIndex.ts:121</a></div>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-description"><p>Returns the total number of accounts that have been registered in the network.</p>
</div>
<div>
<b>Example :</b>
<div>
<pre class="line-numbers"><code class="language-html">Prints the total number of registered accounts:&lt;/p&gt;
&lt;p&gt;```typescript&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;console.log(await totalAccounts());&lt;/li&gt;
&lt;li&gt;```&lt;/li&gt;
&lt;/ul&gt;</code></pre>
</div>
</div>
<div class="io-description">
<b>Returns : </b> <code>Promise&lt;number&gt;</code>
</div>
<div class="io-description">
<p>The total number of registered accounts.</p>
</div>
</td>
</tr>
</tbody>
@ -557,17 +679,37 @@
<div class="tab-pane fade tab-source-code" id="c-source">
<pre class="line-numbers compodoc-sourcecode"><code class="language-typescript">import {environment} from &#x27;@src/environments/environment&#x27;;
import Web3 from &#x27;web3&#x27;;
<pre class="line-numbers compodoc-sourcecode"><code class="language-typescript">import Web3 from &#x27;web3&#x27;;
// Application imports
import {environment} from &#x27;@src/environments/environment&#x27;;
/** Fetch the account registry contract&#x27;s ABI. */
const abi: Array&lt;any&gt; &#x3D; require(&#x27;@src/assets/js/block-sync/data/AccountRegistry.json&#x27;);
/** Establish a connection to the blockchain network. */
const web3: Web3 &#x3D; new Web3(environment.web3Provider);
/**
* Provides an instance of the accounts registry contract.
* Allows querying of accounts that have been registered as valid accounts in the network.
*
* @remarks
* This is our interface to the accounts registry contract.
*/
export class AccountIndex {
contractAddress: string;
signerAddress: string;
/** The instance of the account registry contract. */
contract: any;
/** The deployed account registry contract&#x27;s address. */
contractAddress: string;
/** The account address of the account that deployed the account registry contract. */
signerAddress: string;
/**
* Create a connection to the deployed account registry contract.
*
* @param contractAddress - The deployed account registry contract&#x27;s address.
* @param signerAddress - The account address of the account that deployed the account registry contract.
*/
constructor(contractAddress: string, signerAddress?: string) {
this.contractAddress &#x3D; contractAddress;
this.contract &#x3D; new web3.eth.Contract(abi, this.contractAddress);
@ -578,14 +720,58 @@ export class AccountIndex {
}
}
public async totalAccounts(): Promise&lt;number&gt; {
return await this.contract.methods.count().call();
/**
* Registers an account to the accounts registry.
* Requires availability of the signer address.
*
* @async
* @example
* Prints &quot;true&quot; for registration of &#x27;0xc0ffee254729296a45a3885639AC7E10F9d54979&#x27;:
* &#x60;&#x60;&#x60;typescript
* console.log(await addToAccountRegistry(&#x27;0xc0ffee254729296a45a3885639AC7E10F9d54979&#x27;));
* &#x60;&#x60;&#x60;
*
* @param address - The account address to be registered to the accounts registry contract.
* @returns true - If registration is successful or account had already been registered.
*/
public async addToAccountRegistry(address: string): Promise&lt;boolean&gt; {
if (!await this.haveAccount(address)) {
return await this.contract.methods.add(address).send({from: this.signerAddress});
}
return true;
}
/**
* Checks whether a specific account address has been registered in the accounts registry.
* Returns &quot;true&quot; for available and &quot;false&quot; otherwise.
*
* @async
* @example
* Prints &quot;true&quot; or &quot;false&quot; depending on whether &#x27;0xc0ffee254729296a45a3885639AC7E10F9d54979&#x27; has been registered:
* &#x60;&#x60;&#x60;typescript
* console.log(await haveAccount(&#x27;0xc0ffee254729296a45a3885639AC7E10F9d54979&#x27;));
* &#x60;&#x60;&#x60;
*
* @param address - The account address to be validated.
* @returns true - If the address has been registered in the accounts registry.
*/
public async haveAccount(address: string): Promise&lt;boolean&gt; {
return await this.contract.methods.accountIndex(address).call() !&#x3D;&#x3D; 0;
}
/**
* Returns a specified number of the most recently registered accounts.
*
* @async
* @example
* Prints an array of accounts:
* &#x60;&#x60;&#x60;typescript
* console.log(await last(5));
* &#x60;&#x60;&#x60;
*
* @param numberOfAccounts - The number of accounts to return from the accounts registry.
* @returns An array of registered account addresses.
*/
public async last(numberOfAccounts: number): Promise&lt;Array&lt;string&gt;&gt; {
const count: number &#x3D; await this.totalAccounts();
let lowest: number &#x3D; count - numberOfAccounts - 1;
@ -600,11 +786,20 @@ export class AccountIndex {
return accounts;
}
public async addToAccountRegistry(address: string): Promise&lt;boolean&gt; {
if (!await this.haveAccount(address)) {
return await this.contract.methods.add(address).send({from: this.signerAddress});
}
return true;
/**
* Returns the total number of accounts that have been registered in the network.
*
* @async
* @example
* Prints the total number of registered accounts:
* &#x60;&#x60;&#x60;typescript
* console.log(await totalAccounts());
* &#x60;&#x60;&#x60;
*
* @returns The total number of registered accounts.
*/
public async totalAccounts(): Promise&lt;number&gt; {
return await this.contract.methods.count().call();
}
}
</code></pre>

View File

@ -269,6 +269,11 @@ export class GlobalErrorHandler extends ErrorHandler {
}
}
/**
*
* @param errorTraceString
* @private
*/
private isWarning(errorTraceString: string): boolean {
let isWarning: boolean &#x3D; true;
if (errorTraceString.includes(&#x27;/src/app/&#x27;)) {

View File

@ -72,6 +72,11 @@
<code><a href="../interfaces/MutableKeyStore.html" target="_self" >MutableKeyStore</a></code>
</p>
<p class="comment">
<h3>Example</h3>
</p>
<div class="io-description">
</div>
<section>
<h3 id="index">Index</h3>
@ -208,8 +213,8 @@
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="142"
class="link-to-prism">src/app/_pgp/pgp-key-store.ts:142</a></div>
<div class="io-line">Defined in <a href="" data-line="148"
class="link-to-prism">src/app/_pgp/pgp-key-store.ts:148</a></div>
</td>
</tr>
@ -247,8 +252,8 @@
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="66"
class="link-to-prism">src/app/_pgp/pgp-key-store.ts:66</a></div>
<div class="io-line">Defined in <a href="" data-line="72"
class="link-to-prism">src/app/_pgp/pgp-key-store.ts:72</a></div>
</td>
</tr>
@ -286,8 +291,8 @@
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="94"
class="link-to-prism">src/app/_pgp/pgp-key-store.ts:94</a></div>
<div class="io-line">Defined in <a href="" data-line="100"
class="link-to-prism">src/app/_pgp/pgp-key-store.ts:100</a></div>
</td>
</tr>
@ -325,8 +330,8 @@
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="100"
class="link-to-prism">src/app/_pgp/pgp-key-store.ts:100</a></div>
<div class="io-line">Defined in <a href="" data-line="106"
class="link-to-prism">src/app/_pgp/pgp-key-store.ts:106</a></div>
</td>
</tr>
@ -395,8 +400,8 @@
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="109"
class="link-to-prism">src/app/_pgp/pgp-key-store.ts:109</a></div>
<div class="io-line">Defined in <a href="" data-line="115"
class="link-to-prism">src/app/_pgp/pgp-key-store.ts:115</a></div>
</td>
</tr>
@ -465,8 +470,8 @@
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="74"
class="link-to-prism">src/app/_pgp/pgp-key-store.ts:74</a></div>
<div class="io-line">Defined in <a href="" data-line="80"
class="link-to-prism">src/app/_pgp/pgp-key-store.ts:80</a></div>
</td>
</tr>
@ -504,8 +509,8 @@
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="117"
class="link-to-prism">src/app/_pgp/pgp-key-store.ts:117</a></div>
<div class="io-line">Defined in <a href="" data-line="123"
class="link-to-prism">src/app/_pgp/pgp-key-store.ts:123</a></div>
</td>
</tr>
@ -570,8 +575,8 @@
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="104"
class="link-to-prism">src/app/_pgp/pgp-key-store.ts:104</a></div>
<div class="io-line">Defined in <a href="" data-line="110"
class="link-to-prism">src/app/_pgp/pgp-key-store.ts:110</a></div>
</td>
</tr>
@ -609,8 +614,8 @@
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="70"
class="link-to-prism">src/app/_pgp/pgp-key-store.ts:70</a></div>
<div class="io-line">Defined in <a href="" data-line="76"
class="link-to-prism">src/app/_pgp/pgp-key-store.ts:76</a></div>
</td>
</tr>
@ -648,8 +653,8 @@
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="113"
class="link-to-prism">src/app/_pgp/pgp-key-store.ts:113</a></div>
<div class="io-line">Defined in <a href="" data-line="119"
class="link-to-prism">src/app/_pgp/pgp-key-store.ts:119</a></div>
</td>
</tr>
@ -714,8 +719,8 @@
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="121"
class="link-to-prism">src/app/_pgp/pgp-key-store.ts:121</a></div>
<div class="io-line">Defined in <a href="" data-line="127"
class="link-to-prism">src/app/_pgp/pgp-key-store.ts:127</a></div>
</td>
</tr>
@ -780,8 +785,8 @@
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="54"
class="link-to-prism">src/app/_pgp/pgp-key-store.ts:54</a></div>
<div class="io-line">Defined in <a href="" data-line="60"
class="link-to-prism">src/app/_pgp/pgp-key-store.ts:60</a></div>
</td>
</tr>
@ -819,8 +824,8 @@
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="125"
class="link-to-prism">src/app/_pgp/pgp-key-store.ts:125</a></div>
<div class="io-line">Defined in <a href="" data-line="131"
class="link-to-prism">src/app/_pgp/pgp-key-store.ts:131</a></div>
</td>
</tr>
@ -885,8 +890,8 @@
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="62"
class="link-to-prism">src/app/_pgp/pgp-key-store.ts:62</a></div>
<div class="io-line">Defined in <a href="" data-line="68"
class="link-to-prism">src/app/_pgp/pgp-key-store.ts:68</a></div>
</td>
</tr>
@ -924,8 +929,8 @@
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="58"
class="link-to-prism">src/app/_pgp/pgp-key-store.ts:58</a></div>
<div class="io-line">Defined in <a href="" data-line="64"
class="link-to-prism">src/app/_pgp/pgp-key-store.ts:64</a></div>
</td>
</tr>
@ -965,8 +970,8 @@
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="41"
class="link-to-prism">src/app/_pgp/pgp-key-store.ts:41</a></div>
<div class="io-line">Defined in <a href="" data-line="47"
class="link-to-prism">src/app/_pgp/pgp-key-store.ts:47</a></div>
</td>
</tr>
@ -1049,8 +1054,8 @@
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="50"
class="link-to-prism">src/app/_pgp/pgp-key-store.ts:50</a></div>
<div class="io-line">Defined in <a href="" data-line="56"
class="link-to-prism">src/app/_pgp/pgp-key-store.ts:56</a></div>
</td>
</tr>
@ -1119,8 +1124,8 @@
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="46"
class="link-to-prism">src/app/_pgp/pgp-key-store.ts:46</a></div>
<div class="io-line">Defined in <a href="" data-line="52"
class="link-to-prism">src/app/_pgp/pgp-key-store.ts:52</a></div>
</td>
</tr>
@ -1191,8 +1196,8 @@
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="84"
class="link-to-prism">src/app/_pgp/pgp-key-store.ts:84</a></div>
<div class="io-line">Defined in <a href="" data-line="90"
class="link-to-prism">src/app/_pgp/pgp-key-store.ts:90</a></div>
</td>
</tr>
@ -1263,8 +1268,8 @@
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="78"
class="link-to-prism">src/app/_pgp/pgp-key-store.ts:78</a></div>
<div class="io-line">Defined in <a href="" data-line="84"
class="link-to-prism">src/app/_pgp/pgp-key-store.ts:84</a></div>
</td>
</tr>
@ -1331,8 +1336,8 @@
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="36"
class="link-to-prism">src/app/_pgp/pgp-key-store.ts:36</a></div>
<div class="io-line">Defined in <a href="" data-line="42"
class="link-to-prism">src/app/_pgp/pgp-key-store.ts:42</a></div>
</td>
</tr>
@ -1370,8 +1375,8 @@
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="129"
class="link-to-prism">src/app/_pgp/pgp-key-store.ts:129</a></div>
<div class="io-line">Defined in <a href="" data-line="135"
class="link-to-prism">src/app/_pgp/pgp-key-store.ts:135</a></div>
</td>
</tr>
@ -1436,8 +1441,8 @@
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="137"
class="link-to-prism">src/app/_pgp/pgp-key-store.ts:137</a></div>
<div class="io-line">Defined in <a href="" data-line="143"
class="link-to-prism">src/app/_pgp/pgp-key-store.ts:143</a></div>
</td>
</tr>
@ -1506,8 +1511,8 @@
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="133"
class="link-to-prism">src/app/_pgp/pgp-key-store.ts:133</a></div>
<div class="io-line">Defined in <a href="" data-line="139"
class="link-to-prism">src/app/_pgp/pgp-key-store.ts:139</a></div>
</td>
</tr>
@ -1574,8 +1579,8 @@
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="146"
class="link-to-prism">src/app/_pgp/pgp-key-store.ts:146</a></div>
<div class="io-line">Defined in <a href="" data-line="152"
class="link-to-prism">src/app/_pgp/pgp-key-store.ts:152</a></div>
</td>
</tr>
@ -1633,6 +1638,9 @@
import * as openpgp from &#x27;openpgp&#x27;;
const keyring &#x3D; new openpgp.Keyring();
/**
* @extends
*/
interface MutableKeyStore extends KeyStore {
loadKeyring(): void;
importKeyPair(publicKey: any, privateKey: any): Promise&lt;void&gt;;
@ -1661,6 +1669,9 @@ interface MutableKeyStore extends KeyStore {
sign(plainText: string): Promise&lt;any&gt;;
}
/**
* @implements
*/
class MutablePgpKeyStore implements MutableKeyStore{
async loadKeyring(): Promise&lt;void&gt; {

View File

@ -63,9 +63,22 @@
<code>src/app/_eth/token-registry.ts</code>
</p>
<p class="comment">
<h3>Description</h3>
</p>
<p class="comment">
<p>Provides an instance of the token registry contract.
Allows querying of tokens that have been registered as valid tokens in the network.</p>
</p>
<p class="comment">
<h3>Example</h3>
</p>
<div class="io-description">
</div>
<section>
<h3 id="index">Index</h3>
@ -138,12 +151,14 @@
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="10" class="link-to-prism">src/app/_eth/token-registry.ts:10</a></div>
<div class="io-line">Defined in <a href="" data-line="26" class="link-to-prism">src/app/_eth/token-registry.ts:26</a></div>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-description"><p>Create a connection to the deployed token registry contract.</p>
</div>
<div>
<b>Parameters :</b>
<table class="params">
@ -152,6 +167,7 @@
<td>Name</td>
<td>Type</td>
<td>Optional</td>
<td>Description</td>
</tr>
</thead>
<tbody>
@ -166,6 +182,12 @@
No
</td>
<td>
<code><ul>
<li>The deployed token registry contract&#39;s address.</li>
</ul>
</code>
</td>
</tr>
<tr>
<td>signerAddress</td>
@ -178,6 +200,12 @@
Yes
</td>
<td>
<code><ul>
<li>The account address of the account that deployed the token registry contract.</li>
</ul>
</code>
</td>
</tr>
</tbody>
</table>
@ -213,10 +241,16 @@
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="10" class="link-to-prism">src/app/_eth/token-registry.ts:10</a></div>
<div class="io-line">Defined in <a href="" data-line="22" class="link-to-prism">src/app/_eth/token-registry.ts:22</a></div>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-description"><p>The instance of the token registry contract. </p>
</div>
</td>
</tr>
</tbody>
</table>
@ -240,10 +274,16 @@
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="8" class="link-to-prism">src/app/_eth/token-registry.ts:8</a></div>
<div class="io-line">Defined in <a href="" data-line="24" class="link-to-prism">src/app/_eth/token-registry.ts:24</a></div>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-description"><p>The deployed token registry contract&#39;s address. </p>
</div>
</td>
</tr>
</tbody>
</table>
@ -267,10 +307,16 @@
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="9" class="link-to-prism">src/app/_eth/token-registry.ts:9</a></div>
<div class="io-line">Defined in <a href="" data-line="26" class="link-to-prism">src/app/_eth/token-registry.ts:26</a></div>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-description"><p>The account address of the account that deployed the token registry contract. </p>
</div>
</td>
</tr>
</tbody>
</table>
@ -306,14 +352,16 @@
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="30"
class="link-to-prism">src/app/_eth/token-registry.ts:30</a></div>
<div class="io-line">Defined in <a href="" data-line="57"
class="link-to-prism">src/app/_eth/token-registry.ts:57</a></div>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-description"><p>Returns the address of the token with a given identifier.</p>
</div>
<div class="io-description">
<b>Parameters :</b>
@ -323,6 +371,7 @@
<td>Name</td>
<td>Type</td>
<td>Optional</td>
<td>Description</td>
</tr>
</thead>
<tbody>
@ -337,18 +386,34 @@
</td>
<td>
<ul>
<li>The name or identifier of the token to be fetched from the token registry.</li>
</ul>
</td>
</tr>
</tbody>
</table>
</div>
<div>
<b>Example :</b>
<div>
<pre class="line-numbers"><code class="language-html">Prints the address of the token with the identifier &amp;#39;sarafu&amp;#39;:&lt;/p&gt;
&lt;p&gt;```typescript&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;console.log(await addressOf(&amp;#39;sarafu&amp;#39;));&lt;/li&gt;
&lt;li&gt;```&lt;/li&gt;
&lt;/ul&gt;</code></pre>
</div>
</div>
<div class="io-description">
<b>Returns : </b> <code>Promise&lt;string&gt;</code>
</div>
<div class="io-description">
<p>The address of the token assigned the specified identifier in the token registry.</p>
</div>
</td>
</tr>
@ -379,14 +444,16 @@
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="26"
class="link-to-prism">src/app/_eth/token-registry.ts:26</a></div>
<div class="io-line">Defined in <a href="" data-line="75"
class="link-to-prism">src/app/_eth/token-registry.ts:75</a></div>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-description"><p>Returns the address of a token with the given serial in the token registry.</p>
</div>
<div class="io-description">
<b>Parameters :</b>
@ -396,6 +463,7 @@
<td>Name</td>
<td>Type</td>
<td>Optional</td>
<td>Description</td>
</tr>
</thead>
<tbody>
@ -410,18 +478,34 @@
</td>
<td>
<ul>
<li>The serial number of the token to be fetched.</li>
</ul>
</td>
</tr>
</tbody>
</table>
</div>
<div>
<b>Example :</b>
<div>
<pre class="line-numbers"><code class="language-html">Prints the address of the token with the serial &amp;#39;2&amp;#39;:&lt;/p&gt;
&lt;p&gt;```typescript&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;console.log(await entry(2));&lt;/li&gt;
&lt;li&gt;```&lt;/li&gt;
&lt;/ul&gt;</code></pre>
</div>
</div>
<div class="io-description">
<b>Returns : </b> <code>Promise&lt;string&gt;</code>
</div>
<div class="io-description">
<p>The address of the token with the specified serial number.</p>
</div>
</td>
</tr>
@ -452,19 +536,36 @@
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="22"
class="link-to-prism">src/app/_eth/token-registry.ts:22</a></div>
<div class="io-line">Defined in <a href="" data-line="91"
class="link-to-prism">src/app/_eth/token-registry.ts:91</a></div>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-description"><p>Returns the total number of tokens that have been registered in the network.</p>
</div>
<div>
<b>Example :</b>
<div>
<pre class="line-numbers"><code class="language-html">Prints the total number of registered tokens:&lt;/p&gt;
&lt;p&gt;```typescript&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;console.log(await totalTokens());&lt;/li&gt;
&lt;li&gt;```&lt;/li&gt;
&lt;/ul&gt;</code></pre>
</div>
</div>
<div class="io-description">
<b>Returns : </b> <code>Promise&lt;number&gt;</code>
</div>
<div class="io-description">
<p>The total number of registered tokens.</p>
</div>
</td>
</tr>
</tbody>
@ -480,16 +581,37 @@
<div class="tab-pane fade tab-source-code" id="c-source">
<pre class="line-numbers compodoc-sourcecode"><code class="language-typescript">import Web3 from &#x27;web3&#x27;;
// Application imports
import {environment} from &#x27;@src/environments/environment&#x27;;
/** Fetch the token registry contract&#x27;s ABI. */
const abi: Array&lt;any&gt; &#x3D; require(&#x27;@src/assets/js/block-sync/data/TokenUniqueSymbolIndex.json&#x27;);
/** Establish a connection to the blockchain network. */
const web3: Web3 &#x3D; new Web3(environment.web3Provider);
/**
* Provides an instance of the token registry contract.
* Allows querying of tokens that have been registered as valid tokens in the network.
*
* @remarks
* This is our interface to the token registry contract.
*/
export class TokenRegistry {
contractAddress: string;
signerAddress: string;
/** The instance of the token registry contract. */
contract: any;
/** The deployed token registry contract&#x27;s address. */
contractAddress: string;
/** The account address of the account that deployed the token registry contract. */
signerAddress: string;
/**
* Create a connection to the deployed token registry contract.
*
* @param contractAddress - The deployed token registry contract&#x27;s address.
* @param signerAddress - The account address of the account that deployed the token registry contract.
*/
constructor(contractAddress: string, signerAddress?: string) {
this.contractAddress &#x3D; contractAddress;
this.contract &#x3D; new web3.eth.Contract(abi, this.contractAddress);
@ -500,17 +622,55 @@ export class TokenRegistry {
}
}
public async totalTokens(): Promise&lt;number&gt; {
return await this.contract.methods.entryCount().call();
/**
* Returns the address of the token with a given identifier.
*
* @async
* @example
* Prints the address of the token with the identifier &#x27;sarafu&#x27;:
* &#x60;&#x60;&#x60;typescript
* console.log(await addressOf(&#x27;sarafu&#x27;));
* &#x60;&#x60;&#x60;
*
* @param identifier - The name or identifier of the token to be fetched from the token registry.
* @returns The address of the token assigned the specified identifier in the token registry.
*/
public async addressOf(identifier: string): Promise&lt;string&gt; {
const id: string &#x3D; web3.eth.abi.encodeParameter(&#x27;bytes32&#x27;, web3.utils.toHex(identifier));
return await this.contract.methods.addressOf(id).call();
}
/**
* Returns the address of a token with the given serial in the token registry.
*
* @async
* @example
* Prints the address of the token with the serial &#x27;2&#x27;:
* &#x60;&#x60;&#x60;typescript
* console.log(await entry(2));
* &#x60;&#x60;&#x60;
*
* @param serial - The serial number of the token to be fetched.
* @return The address of the token with the specified serial number.
*/
public async entry(serial: number): Promise&lt;string&gt; {
return await this.contract.methods.entry(serial).call();
}
public async addressOf(identifier: string): Promise&lt;string&gt; {
const id: string &#x3D; web3.eth.abi.encodeParameter(&#x27;bytes32&#x27;, web3.utils.toHex(identifier));
return await this.contract.methods.addressOf(id).call();
/**
* Returns the total number of tokens that have been registered in the network.
*
* @async
* @example
* Prints the total number of registered tokens:
* &#x60;&#x60;&#x60;typescript
* console.log(await totalTokens());
* &#x60;&#x60;&#x60;
*
* @returns The total number of registered tokens.
*/
public async totalTokens(): Promise&lt;number&gt; {
return await this.contract.methods.entryCount().call();
}
}
</code></pre>

View File

@ -64,76 +64,76 @@
</tr>
</thead>
<tbody>
<tr class="low">
<tr class="very-good">
<td>
<!-- miscellaneous -->
<a href="./classes/AccountIndex.html">src/app/_eth/accountIndex.ts</a>
</td>
<td>class</td>
<td>AccountIndex</td>
<td align="right" data-sort="0">
<span class="coverage-percent">0 %</span>
<span class="coverage-count">(0/9)</span>
<td align="right" data-sort="100">
<span class="coverage-percent">100 %</span>
<span class="coverage-count">(9/9)</span>
</td>
</tr>
<tr class="low">
<tr class="very-good">
<td>
<!-- miscellaneous -->
<a href="./miscellaneous/variables.html#abi">src/app/_eth/accountIndex.ts</a>
</td>
<td>variable</td>
<td>abi</td>
<td align="right" data-sort="0">
<span class="coverage-percent">0 %</span>
<span class="coverage-count">(0/1)</span>
<td align="right" data-sort="100">
<span class="coverage-percent">100 %</span>
<span class="coverage-count">(1/1)</span>
</td>
</tr>
<tr class="low">
<tr class="very-good">
<td>
<!-- miscellaneous -->
<a href="./miscellaneous/variables.html#web3">src/app/_eth/accountIndex.ts</a>
</td>
<td>variable</td>
<td>web3</td>
<td align="right" data-sort="0">
<span class="coverage-percent">0 %</span>
<span class="coverage-count">(0/1)</span>
<td align="right" data-sort="100">
<span class="coverage-percent">100 %</span>
<span class="coverage-count">(1/1)</span>
</td>
</tr>
<tr class="low">
<tr class="very-good">
<td>
<!-- miscellaneous -->
<a href="./classes/TokenRegistry.html">src/app/_eth/token-registry.ts</a>
</td>
<td>class</td>
<td>TokenRegistry</td>
<td align="right" data-sort="0">
<span class="coverage-percent">0 %</span>
<span class="coverage-count">(0/8)</span>
<td align="right" data-sort="100">
<span class="coverage-percent">100 %</span>
<span class="coverage-count">(8/8)</span>
</td>
</tr>
<tr class="low">
<tr class="very-good">
<td>
<!-- miscellaneous -->
<a href="./miscellaneous/variables.html#abi">src/app/_eth/token-registry.ts</a>
</td>
<td>variable</td>
<td>abi</td>
<td align="right" data-sort="0">
<span class="coverage-percent">0 %</span>
<span class="coverage-count">(0/1)</span>
<td align="right" data-sort="100">
<span class="coverage-percent">100 %</span>
<span class="coverage-count">(1/1)</span>
</td>
</tr>
<tr class="low">
<tr class="very-good">
<td>
<!-- miscellaneous -->
<a href="./miscellaneous/variables.html#web3">src/app/_eth/token-registry.ts</a>
</td>
<td>variable</td>
<td>web3</td>
<td align="right" data-sort="0">
<span class="coverage-percent">0 %</span>
<span class="coverage-count">(0/1)</span>
<td align="right" data-sort="100">
<span class="coverage-percent">100 %</span>
<span class="coverage-count">(1/1)</span>
</td>
</tr>
<tr class="low">

View File

@ -4,6 +4,6 @@
<rect id="svg_2" height="20" width="40" y="0" x="92" stroke-width="1.5" stroke="#d8604b" fill="#d8604b" rx="7" ry="7"/>
<rect id="svg_3" height="20" width="22" y="0" x="92" stroke-width="1.5" stroke="#d8604b" fill="#d8604b"/>
<text xml:space="preserve" text-anchor="start" font-family="Helvetica, Arial, sans-serif" font-size="12" id="svg_4" y="14" x="6" stroke-width="0" stroke="#5d5d5d" fill="#ffffff">documentation</text>
<text xml:space="preserve" text-anchor="middle" font-family="Helvetica, Arial, sans-serif" font-size="12" id="svg_5" y="14" x="112" stroke-width="0" stroke="#5d5d5d" fill="#ffffff" style="text-anchor: middle">0%</text>
<text xml:space="preserve" text-anchor="middle" font-family="Helvetica, Arial, sans-serif" font-size="12" id="svg_5" y="14" x="112" stroke-width="0" stroke="#5d5d5d" fill="#ffffff" style="text-anchor: middle">6%</text>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 893 B

After

Width:  |  Height:  |  Size: 893 B

View File

@ -289,8 +289,8 @@
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="200"
class="link-to-prism">src/app/_services/auth.service.ts:200</a></div>
<div class="io-line">Defined in <a href="" data-line="204"
class="link-to-prism">src/app/_services/auth.service.ts:204</a></div>
</td>
</tr>
@ -330,8 +330,8 @@
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="189"
class="link-to-prism">src/app/_services/auth.service.ts:189</a></div>
<div class="io-line">Defined in <a href="" data-line="193"
class="link-to-prism">src/app/_services/auth.service.ts:193</a></div>
</td>
</tr>
@ -369,8 +369,8 @@
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="183"
class="link-to-prism">src/app/_services/auth.service.ts:183</a></div>
<div class="io-line">Defined in <a href="" data-line="187"
class="link-to-prism">src/app/_services/auth.service.ts:187</a></div>
</td>
</tr>
@ -638,8 +638,8 @@
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="177"
class="link-to-prism">src/app/_services/auth.service.ts:177</a></div>
<div class="io-line">Defined in <a href="" data-line="181"
class="link-to-prism">src/app/_services/auth.service.ts:181</a></div>
</td>
</tr>
@ -749,8 +749,8 @@
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="153"
class="link-to-prism">src/app/_services/auth.service.ts:153</a></div>
<div class="io-line">Defined in <a href="" data-line="157"
class="link-to-prism">src/app/_services/auth.service.ts:157</a></div>
</td>
</tr>
@ -1109,6 +1109,10 @@ export class AuthService {
this.setState(&#x27;Click button to log in with PGP key &#x27; + this.mutableKeyStore.getPrivateKeyId());
}
/**
* @throws
* @param privateKeyArmored
*/
async setKey(privateKeyArmored): Promise&lt;boolean&gt; {
try {
const isValidKeyCheck &#x3D; await this.mutableKeyStore.isValidKey(privateKeyArmored);

View File

@ -278,8 +278,8 @@
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="62"
class="link-to-prism">src/app/_helpers/global-error-handler.ts:62</a></div>
<div class="io-line">Defined in <a href="" data-line="67"
class="link-to-prism">src/app/_helpers/global-error-handler.ts:67</a></div>
</td>
</tr>
@ -502,6 +502,11 @@ export class GlobalErrorHandler extends ErrorHandler {
}
}
/**
*
* @param errorTraceString
* @private
*/
private isWarning(errorTraceString: string): boolean {
let isWarning: boolean &#x3D; true;
if (errorTraceString.includes(&#x27;/src/app/&#x27;)) {

View File

@ -193,8 +193,8 @@
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="30"
class="link-to-prism">src/app/_pgp/pgp-key-store.ts:30</a></div>
<div class="io-line">Defined in <a href="" data-line="33"
class="link-to-prism">src/app/_pgp/pgp-key-store.ts:33</a></div>
</td>
</tr>
@ -232,8 +232,8 @@
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="14"
class="link-to-prism">src/app/_pgp/pgp-key-store.ts:14</a></div>
<div class="io-line">Defined in <a href="" data-line="17"
class="link-to-prism">src/app/_pgp/pgp-key-store.ts:17</a></div>
</td>
</tr>
@ -271,8 +271,8 @@
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="19"
class="link-to-prism">src/app/_pgp/pgp-key-store.ts:19</a></div>
<div class="io-line">Defined in <a href="" data-line="22"
class="link-to-prism">src/app/_pgp/pgp-key-store.ts:22</a></div>
</td>
</tr>
@ -310,8 +310,8 @@
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="20"
class="link-to-prism">src/app/_pgp/pgp-key-store.ts:20</a></div>
<div class="io-line">Defined in <a href="" data-line="23"
class="link-to-prism">src/app/_pgp/pgp-key-store.ts:23</a></div>
</td>
</tr>
@ -380,8 +380,8 @@
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="22"
class="link-to-prism">src/app/_pgp/pgp-key-store.ts:22</a></div>
<div class="io-line">Defined in <a href="" data-line="25"
class="link-to-prism">src/app/_pgp/pgp-key-store.ts:25</a></div>
</td>
</tr>
@ -450,8 +450,8 @@
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="16"
class="link-to-prism">src/app/_pgp/pgp-key-store.ts:16</a></div>
<div class="io-line">Defined in <a href="" data-line="19"
class="link-to-prism">src/app/_pgp/pgp-key-store.ts:19</a></div>
</td>
</tr>
@ -489,8 +489,8 @@
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="24"
class="link-to-prism">src/app/_pgp/pgp-key-store.ts:24</a></div>
<div class="io-line">Defined in <a href="" data-line="27"
class="link-to-prism">src/app/_pgp/pgp-key-store.ts:27</a></div>
</td>
</tr>
@ -559,8 +559,8 @@
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="21"
class="link-to-prism">src/app/_pgp/pgp-key-store.ts:21</a></div>
<div class="io-line">Defined in <a href="" data-line="24"
class="link-to-prism">src/app/_pgp/pgp-key-store.ts:24</a></div>
</td>
</tr>
@ -598,8 +598,8 @@
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="15"
class="link-to-prism">src/app/_pgp/pgp-key-store.ts:15</a></div>
<div class="io-line">Defined in <a href="" data-line="18"
class="link-to-prism">src/app/_pgp/pgp-key-store.ts:18</a></div>
</td>
</tr>
@ -637,8 +637,8 @@
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="23"
class="link-to-prism">src/app/_pgp/pgp-key-store.ts:23</a></div>
<div class="io-line">Defined in <a href="" data-line="26"
class="link-to-prism">src/app/_pgp/pgp-key-store.ts:26</a></div>
</td>
</tr>
@ -707,8 +707,8 @@
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="25"
class="link-to-prism">src/app/_pgp/pgp-key-store.ts:25</a></div>
<div class="io-line">Defined in <a href="" data-line="28"
class="link-to-prism">src/app/_pgp/pgp-key-store.ts:28</a></div>
</td>
</tr>
@ -777,8 +777,8 @@
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="11"
class="link-to-prism">src/app/_pgp/pgp-key-store.ts:11</a></div>
<div class="io-line">Defined in <a href="" data-line="14"
class="link-to-prism">src/app/_pgp/pgp-key-store.ts:14</a></div>
</td>
</tr>
@ -816,8 +816,8 @@
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="26"
class="link-to-prism">src/app/_pgp/pgp-key-store.ts:26</a></div>
<div class="io-line">Defined in <a href="" data-line="29"
class="link-to-prism">src/app/_pgp/pgp-key-store.ts:29</a></div>
</td>
</tr>
@ -886,8 +886,8 @@
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="13"
class="link-to-prism">src/app/_pgp/pgp-key-store.ts:13</a></div>
<div class="io-line">Defined in <a href="" data-line="16"
class="link-to-prism">src/app/_pgp/pgp-key-store.ts:16</a></div>
</td>
</tr>
@ -925,8 +925,8 @@
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="12"
class="link-to-prism">src/app/_pgp/pgp-key-store.ts:12</a></div>
<div class="io-line">Defined in <a href="" data-line="15"
class="link-to-prism">src/app/_pgp/pgp-key-store.ts:15</a></div>
</td>
</tr>
@ -964,8 +964,8 @@
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="8"
class="link-to-prism">src/app/_pgp/pgp-key-store.ts:8</a></div>
<div class="io-line">Defined in <a href="" data-line="11"
class="link-to-prism">src/app/_pgp/pgp-key-store.ts:11</a></div>
</td>
</tr>
@ -1046,8 +1046,8 @@
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="10"
class="link-to-prism">src/app/_pgp/pgp-key-store.ts:10</a></div>
<div class="io-line">Defined in <a href="" data-line="13"
class="link-to-prism">src/app/_pgp/pgp-key-store.ts:13</a></div>
</td>
</tr>
@ -1116,8 +1116,8 @@
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="9"
class="link-to-prism">src/app/_pgp/pgp-key-store.ts:9</a></div>
<div class="io-line">Defined in <a href="" data-line="12"
class="link-to-prism">src/app/_pgp/pgp-key-store.ts:12</a></div>
</td>
</tr>
@ -1186,8 +1186,8 @@
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="18"
class="link-to-prism">src/app/_pgp/pgp-key-store.ts:18</a></div>
<div class="io-line">Defined in <a href="" data-line="21"
class="link-to-prism">src/app/_pgp/pgp-key-store.ts:21</a></div>
</td>
</tr>
@ -1256,8 +1256,8 @@
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="17"
class="link-to-prism">src/app/_pgp/pgp-key-store.ts:17</a></div>
<div class="io-line">Defined in <a href="" data-line="20"
class="link-to-prism">src/app/_pgp/pgp-key-store.ts:20</a></div>
</td>
</tr>
@ -1326,8 +1326,8 @@
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="7"
class="link-to-prism">src/app/_pgp/pgp-key-store.ts:7</a></div>
<div class="io-line">Defined in <a href="" data-line="10"
class="link-to-prism">src/app/_pgp/pgp-key-store.ts:10</a></div>
</td>
</tr>
@ -1365,8 +1365,8 @@
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="27"
class="link-to-prism">src/app/_pgp/pgp-key-store.ts:27</a></div>
<div class="io-line">Defined in <a href="" data-line="30"
class="link-to-prism">src/app/_pgp/pgp-key-store.ts:30</a></div>
</td>
</tr>
@ -1435,8 +1435,8 @@
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="29"
class="link-to-prism">src/app/_pgp/pgp-key-store.ts:29</a></div>
<div class="io-line">Defined in <a href="" data-line="32"
class="link-to-prism">src/app/_pgp/pgp-key-store.ts:32</a></div>
</td>
</tr>
@ -1505,8 +1505,8 @@
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="28"
class="link-to-prism">src/app/_pgp/pgp-key-store.ts:28</a></div>
<div class="io-line">Defined in <a href="" data-line="31"
class="link-to-prism">src/app/_pgp/pgp-key-store.ts:31</a></div>
</td>
</tr>
@ -1575,8 +1575,8 @@
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="31"
class="link-to-prism">src/app/_pgp/pgp-key-store.ts:31</a></div>
<div class="io-line">Defined in <a href="" data-line="34"
class="link-to-prism">src/app/_pgp/pgp-key-store.ts:34</a></div>
</td>
</tr>
@ -1634,6 +1634,9 @@
import * as openpgp from &#x27;openpgp&#x27;;
const keyring &#x3D; new openpgp.Keyring();
/**
* @extends
*/
interface MutableKeyStore extends KeyStore {
loadKeyring(): void;
importKeyPair(publicKey: any, privateKey: any): Promise&lt;void&gt;;
@ -1662,6 +1665,9 @@ interface MutableKeyStore extends KeyStore {
sign(plainText: string): Promise&lt;any&gt;;
}
/**
* @implements
*/
class MutablePgpKeyStore implements MutableKeyStore{
async loadKeyring(): Promise&lt;void&gt; {

File diff suppressed because one or more lines are too long

View File

@ -156,6 +156,12 @@
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-description"><p>Fetch the account registry contract&#39;s ABI. </p>
</div>
</td>
</tr>
</tbody>
</table>
@ -183,6 +189,12 @@
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-description"><p>Establish a connection to the blockchain network. </p>
</div>
</td>
</tr>
</tbody>
</table>
@ -213,6 +225,12 @@
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-description"><p>Fetch the token registry contract&#39;s ABI. </p>
</div>
</td>
</tr>
</tbody>
</table>
@ -240,6 +258,12 @@
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-description"><p>Establish a connection to the blockchain network. </p>
</div>
</td>
</tr>
</tbody>
</table>

View File

@ -69,23 +69,23 @@
<title>cluster_AppModule_providers</title>
<polygon fill="none" stroke="black" points="415,-78 415,-130 1178,-130 1178,-78 415,-78"/>
</g>
<g id="clust4" class="cluster">
<title>cluster_AppModule_imports</title>
<polygon fill="none" stroke="black" points="146,-78 146,-130 407,-130 407,-78 146,-78"/>
</g>
<g id="clust2" class="cluster">
<title>cluster_AppModule_declarations</title>
<polygon fill="none" stroke="black" points="16,-78 16,-130 138,-130 138,-78 16,-78"/>
</g>
<g id="clust6" class="cluster">
<title>cluster_AppModule_bootstrap</title>
<polygon fill="none" stroke="black" points="447,-208 447,-260 571,-260 571,-208 447,-208"/>
</g>
<g id="clust2" class="cluster">
<title>cluster_AppModule_declarations</title>
<polygon fill="none" stroke="black" points="285,-78 285,-130 407,-130 407,-78 285,-78"/>
</g>
<g id="clust4" class="cluster">
<title>cluster_AppModule_imports</title>
<polygon fill="none" stroke="black" points="16,-78 16,-130 277,-130 277,-78 16,-78"/>
</g>
<!-- AppComponent -->
<g id="node1" class="node">
<title>AppComponent</title>
<polygon fill="#ffffb3" stroke="black" points="129.94,-122 24.06,-122 24.06,-86 129.94,-86 129.94,-122"/>
<text text-anchor="middle" x="77" y="-99.8" font-family="Times,serif" font-size="14.00">AppComponent</text>
<polygon fill="#ffffb3" stroke="black" points="398.94,-122 293.06,-122 293.06,-86 398.94,-86 398.94,-122"/>
<text text-anchor="middle" x="346" y="-99.8" font-family="Times,serif" font-size="14.00">AppComponent</text>
</g>
<!-- AppModule -->
<g id="node2" class="node">
@ -96,8 +96,8 @@
<!-- AppComponent&#45;&gt;AppModule -->
<g id="edge1" class="edge">
<title>AppComponent&#45;&gt;AppModule</title>
<path fill="none" stroke="black" d="M77,-122.29C77,-144.21 77,-178 77,-178 77,-178 457.19,-178 457.19,-178"/>
<polygon fill="black" stroke="black" points="457.19,-181.5 467.19,-178 457.19,-174.5 457.19,-181.5"/>
<path fill="none" stroke="black" d="M346,-122.03C346,-138.4 346,-160 346,-160 346,-160 457.02,-160 457.02,-160"/>
<polygon fill="black" stroke="black" points="457.02,-163.5 467.02,-160 457.02,-156.5 457.02,-163.5"/>
</g>
<!-- AppComponent -->
<g id="node5" class="node">
@ -114,26 +114,26 @@
<!-- AppRoutingModule -->
<g id="node3" class="node">
<title>AppRoutingModule</title>
<polygon fill="#8dd3c7" stroke="black" points="399.27,-122 396.27,-126 375.27,-126 372.27,-122 270.73,-122 270.73,-86 399.27,-86 399.27,-122"/>
<text text-anchor="middle" x="335" y="-99.8" font-family="Times,serif" font-size="14.00">AppRoutingModule</text>
<polygon fill="#8dd3c7" stroke="black" points="269.27,-122 266.27,-126 245.27,-126 242.27,-122 140.73,-122 140.73,-86 269.27,-86 269.27,-122"/>
<text text-anchor="middle" x="205" y="-99.8" font-family="Times,serif" font-size="14.00">AppRoutingModule</text>
</g>
<!-- AppRoutingModule&#45;&gt;AppModule -->
<g id="edge2" class="edge">
<title>AppRoutingModule&#45;&gt;AppModule</title>
<path fill="none" stroke="black" d="M335,-122.03C335,-138.4 335,-160 335,-160 335,-160 457.32,-160 457.32,-160"/>
<polygon fill="black" stroke="black" points="457.32,-163.5 467.32,-160 457.32,-156.5 457.32,-163.5"/>
<path fill="none" stroke="black" d="M205,-122.11C205,-141.34 205,-169 205,-169 205,-169 457.05,-169 457.05,-169"/>
<polygon fill="black" stroke="black" points="457.05,-172.5 467.05,-169 457.05,-165.5 457.05,-172.5"/>
</g>
<!-- SharedModule -->
<g id="node4" class="node">
<title>SharedModule</title>
<polygon fill="#8dd3c7" stroke="black" points="252.42,-122 249.42,-126 228.42,-126 225.42,-122 153.58,-122 153.58,-86 252.42,-86 252.42,-122"/>
<text text-anchor="middle" x="203" y="-99.8" font-family="Times,serif" font-size="14.00">SharedModule</text>
<polygon fill="#8dd3c7" stroke="black" points="122.42,-122 119.42,-126 98.42,-126 95.42,-122 23.58,-122 23.58,-86 122.42,-86 122.42,-122"/>
<text text-anchor="middle" x="73" y="-99.8" font-family="Times,serif" font-size="14.00">SharedModule</text>
</g>
<!-- SharedModule&#45;&gt;AppModule -->
<g id="edge3" class="edge">
<title>SharedModule&#45;&gt;AppModule</title>
<path fill="none" stroke="black" d="M203,-122.11C203,-141.34 203,-169 203,-169 203,-169 457.09,-169 457.09,-169"/>
<polygon fill="black" stroke="black" points="457.09,-172.5 467.09,-169 457.09,-165.5 457.09,-172.5"/>
<path fill="none" stroke="black" d="M73,-122.29C73,-144.21 73,-178 73,-178 73,-178 457.19,-178 457.19,-178"/>
<polygon fill="black" stroke="black" points="457.19,-181.5 467.19,-178 457.19,-174.5 457.19,-181.5"/>
</g>
<!-- ErrorInterceptor -->
<g id="node6" class="node">

View File

@ -28,23 +28,23 @@
<title>cluster_AppModule_providers</title>
<polygon fill="none" stroke="black" points="415,-78 415,-130 1178,-130 1178,-78 415,-78"/>
</g>
<g id="clust4" class="cluster">
<title>cluster_AppModule_imports</title>
<polygon fill="none" stroke="black" points="146,-78 146,-130 407,-130 407,-78 146,-78"/>
</g>
<g id="clust2" class="cluster">
<title>cluster_AppModule_declarations</title>
<polygon fill="none" stroke="black" points="16,-78 16,-130 138,-130 138,-78 16,-78"/>
</g>
<g id="clust6" class="cluster">
<title>cluster_AppModule_bootstrap</title>
<polygon fill="none" stroke="black" points="447,-208 447,-260 571,-260 571,-208 447,-208"/>
</g>
<g id="clust2" class="cluster">
<title>cluster_AppModule_declarations</title>
<polygon fill="none" stroke="black" points="285,-78 285,-130 407,-130 407,-78 285,-78"/>
</g>
<g id="clust4" class="cluster">
<title>cluster_AppModule_imports</title>
<polygon fill="none" stroke="black" points="16,-78 16,-130 277,-130 277,-78 16,-78"/>
</g>
<!-- AppComponent -->
<g id="node1" class="node">
<title>AppComponent</title>
<polygon fill="#ffffb3" stroke="black" points="129.94,-122 24.06,-122 24.06,-86 129.94,-86 129.94,-122"/>
<text text-anchor="middle" x="77" y="-99.8" font-family="Times,serif" font-size="14.00">AppComponent</text>
<polygon fill="#ffffb3" stroke="black" points="398.94,-122 293.06,-122 293.06,-86 398.94,-86 398.94,-122"/>
<text text-anchor="middle" x="346" y="-99.8" font-family="Times,serif" font-size="14.00">AppComponent</text>
</g>
<!-- AppModule -->
<g id="node2" class="node">
@ -55,8 +55,8 @@
<!-- AppComponent&#45;&gt;AppModule -->
<g id="edge1" class="edge">
<title>AppComponent&#45;&gt;AppModule</title>
<path fill="none" stroke="black" d="M77,-122.29C77,-144.21 77,-178 77,-178 77,-178 457.19,-178 457.19,-178"/>
<polygon fill="black" stroke="black" points="457.19,-181.5 467.19,-178 457.19,-174.5 457.19,-181.5"/>
<path fill="none" stroke="black" d="M346,-122.03C346,-138.4 346,-160 346,-160 346,-160 457.02,-160 457.02,-160"/>
<polygon fill="black" stroke="black" points="457.02,-163.5 467.02,-160 457.02,-156.5 457.02,-163.5"/>
</g>
<!-- AppComponent -->
<g id="node5" class="node">
@ -73,26 +73,26 @@
<!-- AppRoutingModule -->
<g id="node3" class="node">
<title>AppRoutingModule</title>
<polygon fill="#8dd3c7" stroke="black" points="399.27,-122 396.27,-126 375.27,-126 372.27,-122 270.73,-122 270.73,-86 399.27,-86 399.27,-122"/>
<text text-anchor="middle" x="335" y="-99.8" font-family="Times,serif" font-size="14.00">AppRoutingModule</text>
<polygon fill="#8dd3c7" stroke="black" points="269.27,-122 266.27,-126 245.27,-126 242.27,-122 140.73,-122 140.73,-86 269.27,-86 269.27,-122"/>
<text text-anchor="middle" x="205" y="-99.8" font-family="Times,serif" font-size="14.00">AppRoutingModule</text>
</g>
<!-- AppRoutingModule&#45;&gt;AppModule -->
<g id="edge2" class="edge">
<title>AppRoutingModule&#45;&gt;AppModule</title>
<path fill="none" stroke="black" d="M335,-122.03C335,-138.4 335,-160 335,-160 335,-160 457.32,-160 457.32,-160"/>
<polygon fill="black" stroke="black" points="457.32,-163.5 467.32,-160 457.32,-156.5 457.32,-163.5"/>
<path fill="none" stroke="black" d="M205,-122.11C205,-141.34 205,-169 205,-169 205,-169 457.05,-169 457.05,-169"/>
<polygon fill="black" stroke="black" points="457.05,-172.5 467.05,-169 457.05,-165.5 457.05,-172.5"/>
</g>
<!-- SharedModule -->
<g id="node4" class="node">
<title>SharedModule</title>
<polygon fill="#8dd3c7" stroke="black" points="252.42,-122 249.42,-126 228.42,-126 225.42,-122 153.58,-122 153.58,-86 252.42,-86 252.42,-122"/>
<text text-anchor="middle" x="203" y="-99.8" font-family="Times,serif" font-size="14.00">SharedModule</text>
<polygon fill="#8dd3c7" stroke="black" points="122.42,-122 119.42,-126 98.42,-126 95.42,-122 23.58,-122 23.58,-86 122.42,-86 122.42,-122"/>
<text text-anchor="middle" x="73" y="-99.8" font-family="Times,serif" font-size="14.00">SharedModule</text>
</g>
<!-- SharedModule&#45;&gt;AppModule -->
<g id="edge3" class="edge">
<title>SharedModule&#45;&gt;AppModule</title>
<path fill="none" stroke="black" d="M203,-122.11C203,-141.34 203,-169 203,-169 203,-169 457.09,-169 457.09,-169"/>
<polygon fill="black" stroke="black" points="457.09,-172.5 467.09,-169 457.09,-165.5 457.09,-172.5"/>
<path fill="none" stroke="black" d="M73,-122.29C73,-144.21 73,-178 73,-178 73,-178 457.19,-178 457.19,-178"/>
<polygon fill="black" stroke="black" points="457.19,-181.5 467.19,-178 457.19,-174.5 457.19,-181.5"/>
</g>
<!-- ErrorInterceptor -->
<g id="node6" class="node">

Before

Width:  |  Height:  |  Size: 7.9 KiB

After

Width:  |  Height:  |  Size: 7.9 KiB

View File

@ -65,55 +65,55 @@
<title>cluster_AuthModule</title>
<polygon fill="none" stroke="black" stroke-dasharray="1,5" points="9.5,-70 9.5,-195 486.5,-195 486.5,-70 9.5,-70"/>
</g>
<g id="clust5" class="cluster">
<title>cluster_AuthModule_imports</title>
<polygon fill="none" stroke="black" points="330.5,-78 330.5,-130 478.5,-130 478.5,-78 330.5,-78"/>
</g>
<g id="clust2" class="cluster">
<title>cluster_AuthModule_declarations</title>
<polygon fill="none" stroke="black" points="17.5,-78 17.5,-130 322.5,-130 322.5,-78 17.5,-78"/>
<polygon fill="none" stroke="black" points="173.5,-78 173.5,-130 478.5,-130 478.5,-78 173.5,-78"/>
</g>
<g id="clust5" class="cluster">
<title>cluster_AuthModule_imports</title>
<polygon fill="none" stroke="black" points="17.5,-78 17.5,-130 165.5,-130 165.5,-78 17.5,-78"/>
</g>
<!-- AuthComponent -->
<g id="node1" class="node">
<title>AuthComponent</title>
<polygon fill="#ffffb3" stroke="black" points="314.33,-122 204.67,-122 204.67,-86 314.33,-86 314.33,-122"/>
<text text-anchor="middle" x="259.5" y="-99.8" font-family="Times,serif" font-size="14.00">AuthComponent</text>
<polygon fill="#ffffb3" stroke="black" points="470.33,-122 360.67,-122 360.67,-86 470.33,-86 470.33,-122"/>
<text text-anchor="middle" x="415.5" y="-99.8" font-family="Times,serif" font-size="14.00">AuthComponent</text>
</g>
<!-- AuthModule -->
<g id="node3" class="node">
<title>AuthModule</title>
<polygon fill="#8dd3c7" stroke="black" points="303.05,-187 300.05,-191 279.05,-191 276.05,-187 215.95,-187 215.95,-151 303.05,-151 303.05,-187"/>
<text text-anchor="middle" x="259.5" y="-164.8" font-family="Times,serif" font-size="14.00">AuthModule</text>
<polygon fill="#8dd3c7" stroke="black" points="306.05,-187 303.05,-191 282.05,-191 279.05,-187 218.95,-187 218.95,-151 306.05,-151 306.05,-187"/>
<text text-anchor="middle" x="262.5" y="-164.8" font-family="Times,serif" font-size="14.00">AuthModule</text>
</g>
<!-- AuthComponent&#45;&gt;AuthModule -->
<g id="edge1" class="edge">
<title>AuthComponent&#45;&gt;AuthModule</title>
<path fill="none" stroke="black" d="M259.5,-122.11C259.5,-122.11 259.5,-140.99 259.5,-140.99"/>
<polygon fill="black" stroke="black" points="256,-140.99 259.5,-150.99 263,-140.99 256,-140.99"/>
<path fill="none" stroke="black" d="M415.5,-122.11C415.5,-141.34 415.5,-169 415.5,-169 415.5,-169 316.34,-169 316.34,-169"/>
<polygon fill="black" stroke="black" points="316.34,-165.5 306.34,-169 316.34,-172.5 316.34,-165.5"/>
</g>
<!-- PasswordToggleDirective -->
<g id="node2" class="node">
<title>PasswordToggleDirective</title>
<polygon fill="#ffffb3" stroke="black" points="187.39,-122 25.61,-122 25.61,-86 187.39,-86 187.39,-122"/>
<text text-anchor="middle" x="106.5" y="-99.8" font-family="Times,serif" font-size="14.00">PasswordToggleDirective</text>
<polygon fill="#ffffb3" stroke="black" points="343.39,-122 181.61,-122 181.61,-86 343.39,-86 343.39,-122"/>
<text text-anchor="middle" x="262.5" y="-99.8" font-family="Times,serif" font-size="14.00">PasswordToggleDirective</text>
</g>
<!-- PasswordToggleDirective&#45;&gt;AuthModule -->
<g id="edge2" class="edge">
<title>PasswordToggleDirective&#45;&gt;AuthModule</title>
<path fill="none" stroke="black" d="M106.5,-122.11C106.5,-141.34 106.5,-169 106.5,-169 106.5,-169 205.66,-169 205.66,-169"/>
<polygon fill="black" stroke="black" points="205.66,-172.5 215.66,-169 205.66,-165.5 205.66,-172.5"/>
<path fill="none" stroke="black" d="M262.5,-122.11C262.5,-122.11 262.5,-140.99 262.5,-140.99"/>
<polygon fill="black" stroke="black" points="259,-140.99 262.5,-150.99 266,-140.99 259,-140.99"/>
</g>
<!-- AuthRoutingModule -->
<g id="node4" class="node">
<title>AuthRoutingModule</title>
<polygon fill="#8dd3c7" stroke="black" points="470.67,-122 467.67,-126 446.67,-126 443.67,-122 338.33,-122 338.33,-86 470.67,-86 470.67,-122"/>
<text text-anchor="middle" x="404.5" y="-99.8" font-family="Times,serif" font-size="14.00">AuthRoutingModule</text>
<polygon fill="#8dd3c7" stroke="black" points="157.67,-122 154.67,-126 133.67,-126 130.67,-122 25.33,-122 25.33,-86 157.67,-86 157.67,-122"/>
<text text-anchor="middle" x="91.5" y="-99.8" font-family="Times,serif" font-size="14.00">AuthRoutingModule</text>
</g>
<!-- AuthRoutingModule&#45;&gt;AuthModule -->
<g id="edge3" class="edge">
<title>AuthRoutingModule&#45;&gt;AuthModule</title>
<path fill="none" stroke="black" d="M404.5,-122.11C404.5,-141.34 404.5,-169 404.5,-169 404.5,-169 313.4,-169 313.4,-169"/>
<polygon fill="black" stroke="black" points="313.4,-165.5 303.4,-169 313.4,-172.5 313.4,-165.5"/>
<path fill="none" stroke="black" d="M91.5,-122.11C91.5,-141.34 91.5,-169 91.5,-169 91.5,-169 208.91,-169 208.91,-169"/>
<polygon fill="black" stroke="black" points="208.91,-172.5 218.91,-169 208.91,-165.5 208.91,-172.5"/>
</g>
</g>
</svg>

View File

@ -24,55 +24,55 @@
<title>cluster_AuthModule</title>
<polygon fill="none" stroke="black" stroke-dasharray="1,5" points="9.5,-70 9.5,-195 486.5,-195 486.5,-70 9.5,-70"/>
</g>
<g id="clust5" class="cluster">
<title>cluster_AuthModule_imports</title>
<polygon fill="none" stroke="black" points="330.5,-78 330.5,-130 478.5,-130 478.5,-78 330.5,-78"/>
</g>
<g id="clust2" class="cluster">
<title>cluster_AuthModule_declarations</title>
<polygon fill="none" stroke="black" points="17.5,-78 17.5,-130 322.5,-130 322.5,-78 17.5,-78"/>
<polygon fill="none" stroke="black" points="173.5,-78 173.5,-130 478.5,-130 478.5,-78 173.5,-78"/>
</g>
<g id="clust5" class="cluster">
<title>cluster_AuthModule_imports</title>
<polygon fill="none" stroke="black" points="17.5,-78 17.5,-130 165.5,-130 165.5,-78 17.5,-78"/>
</g>
<!-- AuthComponent -->
<g id="node1" class="node">
<title>AuthComponent</title>
<polygon fill="#ffffb3" stroke="black" points="314.33,-122 204.67,-122 204.67,-86 314.33,-86 314.33,-122"/>
<text text-anchor="middle" x="259.5" y="-99.8" font-family="Times,serif" font-size="14.00">AuthComponent</text>
<polygon fill="#ffffb3" stroke="black" points="470.33,-122 360.67,-122 360.67,-86 470.33,-86 470.33,-122"/>
<text text-anchor="middle" x="415.5" y="-99.8" font-family="Times,serif" font-size="14.00">AuthComponent</text>
</g>
<!-- AuthModule -->
<g id="node3" class="node">
<title>AuthModule</title>
<polygon fill="#8dd3c7" stroke="black" points="303.05,-187 300.05,-191 279.05,-191 276.05,-187 215.95,-187 215.95,-151 303.05,-151 303.05,-187"/>
<text text-anchor="middle" x="259.5" y="-164.8" font-family="Times,serif" font-size="14.00">AuthModule</text>
<polygon fill="#8dd3c7" stroke="black" points="306.05,-187 303.05,-191 282.05,-191 279.05,-187 218.95,-187 218.95,-151 306.05,-151 306.05,-187"/>
<text text-anchor="middle" x="262.5" y="-164.8" font-family="Times,serif" font-size="14.00">AuthModule</text>
</g>
<!-- AuthComponent&#45;&gt;AuthModule -->
<g id="edge1" class="edge">
<title>AuthComponent&#45;&gt;AuthModule</title>
<path fill="none" stroke="black" d="M259.5,-122.11C259.5,-122.11 259.5,-140.99 259.5,-140.99"/>
<polygon fill="black" stroke="black" points="256,-140.99 259.5,-150.99 263,-140.99 256,-140.99"/>
<path fill="none" stroke="black" d="M415.5,-122.11C415.5,-141.34 415.5,-169 415.5,-169 415.5,-169 316.34,-169 316.34,-169"/>
<polygon fill="black" stroke="black" points="316.34,-165.5 306.34,-169 316.34,-172.5 316.34,-165.5"/>
</g>
<!-- PasswordToggleDirective -->
<g id="node2" class="node">
<title>PasswordToggleDirective</title>
<polygon fill="#ffffb3" stroke="black" points="187.39,-122 25.61,-122 25.61,-86 187.39,-86 187.39,-122"/>
<text text-anchor="middle" x="106.5" y="-99.8" font-family="Times,serif" font-size="14.00">PasswordToggleDirective</text>
<polygon fill="#ffffb3" stroke="black" points="343.39,-122 181.61,-122 181.61,-86 343.39,-86 343.39,-122"/>
<text text-anchor="middle" x="262.5" y="-99.8" font-family="Times,serif" font-size="14.00">PasswordToggleDirective</text>
</g>
<!-- PasswordToggleDirective&#45;&gt;AuthModule -->
<g id="edge2" class="edge">
<title>PasswordToggleDirective&#45;&gt;AuthModule</title>
<path fill="none" stroke="black" d="M106.5,-122.11C106.5,-141.34 106.5,-169 106.5,-169 106.5,-169 205.66,-169 205.66,-169"/>
<polygon fill="black" stroke="black" points="205.66,-172.5 215.66,-169 205.66,-165.5 205.66,-172.5"/>
<path fill="none" stroke="black" d="M262.5,-122.11C262.5,-122.11 262.5,-140.99 262.5,-140.99"/>
<polygon fill="black" stroke="black" points="259,-140.99 262.5,-150.99 266,-140.99 259,-140.99"/>
</g>
<!-- AuthRoutingModule -->
<g id="node4" class="node">
<title>AuthRoutingModule</title>
<polygon fill="#8dd3c7" stroke="black" points="470.67,-122 467.67,-126 446.67,-126 443.67,-122 338.33,-122 338.33,-86 470.67,-86 470.67,-122"/>
<text text-anchor="middle" x="404.5" y="-99.8" font-family="Times,serif" font-size="14.00">AuthRoutingModule</text>
<polygon fill="#8dd3c7" stroke="black" points="157.67,-122 154.67,-126 133.67,-126 130.67,-122 25.33,-122 25.33,-86 157.67,-86 157.67,-122"/>
<text text-anchor="middle" x="91.5" y="-99.8" font-family="Times,serif" font-size="14.00">AuthRoutingModule</text>
</g>
<!-- AuthRoutingModule&#45;&gt;AuthModule -->
<g id="edge3" class="edge">
<title>AuthRoutingModule&#45;&gt;AuthModule</title>
<path fill="none" stroke="black" d="M404.5,-122.11C404.5,-141.34 404.5,-169 404.5,-169 404.5,-169 313.4,-169 313.4,-169"/>
<polygon fill="black" stroke="black" points="313.4,-165.5 303.4,-169 313.4,-172.5 313.4,-165.5"/>
<path fill="none" stroke="black" d="M91.5,-122.11C91.5,-141.34 91.5,-169 91.5,-169 91.5,-169 208.91,-169 208.91,-169"/>
<polygon fill="black" stroke="black" points="208.91,-172.5 218.91,-169 208.91,-165.5 208.91,-172.5"/>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 4.6 KiB

After

Width:  |  Height:  |  Size: 4.6 KiB

View File

@ -65,83 +65,83 @@
<title>cluster_TransactionsModule</title>
<polygon fill="none" stroke="black" stroke-dasharray="1,5" points="8,-70 8,-268 714,-268 714,-70 8,-70"/>
</g>
<g id="clust2" class="cluster">
<title>cluster_TransactionsModule_declarations</title>
<polygon fill="none" stroke="black" points="332,-78 332,-130 706,-130 706,-78 332,-78"/>
</g>
<g id="clust5" class="cluster">
<title>cluster_TransactionsModule_imports</title>
<polygon fill="none" stroke="black" points="398,-78 398,-130 706,-130 706,-78 398,-78"/>
<polygon fill="none" stroke="black" points="16,-78 16,-130 324,-130 324,-78 16,-78"/>
</g>
<g id="clust6" class="cluster">
<title>cluster_TransactionsModule_exports</title>
<polygon fill="none" stroke="black" points="288,-208 288,-260 494,-260 494,-208 288,-208"/>
</g>
<g id="clust2" class="cluster">
<title>cluster_TransactionsModule_declarations</title>
<polygon fill="none" stroke="black" points="16,-78 16,-130 390,-130 390,-78 16,-78"/>
<polygon fill="none" stroke="black" points="238,-208 238,-260 444,-260 444,-208 238,-208"/>
</g>
<!-- TransactionDetailsComponent -->
<g id="node1" class="node">
<title>TransactionDetailsComponent</title>
<polygon fill="#ffffb3" stroke="black" points="381.57,-122 194.43,-122 194.43,-86 381.57,-86 381.57,-122"/>
<text text-anchor="middle" x="288" y="-99.8" font-family="Times,serif" font-size="14.00">TransactionDetailsComponent</text>
<polygon fill="#ffffb3" stroke="black" points="697.57,-122 510.43,-122 510.43,-86 697.57,-86 697.57,-122"/>
<text text-anchor="middle" x="604" y="-99.8" font-family="Times,serif" font-size="14.00">TransactionDetailsComponent</text>
</g>
<!-- TransactionsModule -->
<g id="node3" class="node">
<title>TransactionsModule</title>
<polygon fill="#8dd3c7" stroke="black" points="456.58,-187 453.58,-191 432.58,-191 429.58,-187 325.42,-187 325.42,-151 456.58,-151 456.58,-187"/>
<text text-anchor="middle" x="391" y="-164.8" font-family="Times,serif" font-size="14.00">TransactionsModule</text>
<polygon fill="#8dd3c7" stroke="black" points="406.58,-187 403.58,-191 382.58,-191 379.58,-187 275.42,-187 275.42,-151 406.58,-151 406.58,-187"/>
<text text-anchor="middle" x="341" y="-164.8" font-family="Times,serif" font-size="14.00">TransactionsModule</text>
</g>
<!-- TransactionDetailsComponent&#45;&gt;TransactionsModule -->
<g id="edge1" class="edge">
<title>TransactionDetailsComponent&#45;&gt;TransactionsModule</title>
<path fill="none" stroke="black" d="M353.5,-122.11C353.5,-122.11 353.5,-140.99 353.5,-140.99"/>
<polygon fill="black" stroke="black" points="350,-140.99 353.5,-150.99 357,-140.99 350,-140.99"/>
<path fill="none" stroke="black" d="M604,-122.11C604,-141.34 604,-169 604,-169 604,-169 416.69,-169 416.69,-169"/>
<polygon fill="black" stroke="black" points="416.69,-165.5 406.69,-169 416.69,-172.5 416.69,-165.5"/>
</g>
<!-- TransactionsComponent -->
<g id="node2" class="node">
<title>TransactionsComponent</title>
<polygon fill="#ffffb3" stroke="black" points="176.36,-122 23.64,-122 23.64,-86 176.36,-86 176.36,-122"/>
<text text-anchor="middle" x="100" y="-99.8" font-family="Times,serif" font-size="14.00">TransactionsComponent</text>
<polygon fill="#ffffb3" stroke="black" points="492.36,-122 339.64,-122 339.64,-86 492.36,-86 492.36,-122"/>
<text text-anchor="middle" x="416" y="-99.8" font-family="Times,serif" font-size="14.00">TransactionsComponent</text>
</g>
<!-- TransactionsComponent&#45;&gt;TransactionsModule -->
<g id="edge2" class="edge">
<title>TransactionsComponent&#45;&gt;TransactionsModule</title>
<path fill="none" stroke="black" d="M100,-122.11C100,-141.34 100,-169 100,-169 100,-169 315.33,-169 315.33,-169"/>
<polygon fill="black" stroke="black" points="315.33,-172.5 325.33,-169 315.33,-165.5 315.33,-172.5"/>
<path fill="none" stroke="black" d="M373.05,-122.11C373.05,-122.11 373.05,-140.99 373.05,-140.99"/>
<polygon fill="black" stroke="black" points="369.55,-140.99 373.05,-150.99 376.55,-140.99 369.55,-140.99"/>
</g>
<!-- TransactionDetailsComponent -->
<g id="node6" class="node">
<title>TransactionDetailsComponent </title>
<polygon fill="#fb8072" stroke="black" points="486.07,-252 295.93,-252 295.93,-216 486.07,-216 486.07,-252"/>
<text text-anchor="middle" x="391" y="-229.8" font-family="Times,serif" font-size="14.00">TransactionDetailsComponent </text>
<polygon fill="#fb8072" stroke="black" points="436.07,-252 245.93,-252 245.93,-216 436.07,-216 436.07,-252"/>
<text text-anchor="middle" x="341" y="-229.8" font-family="Times,serif" font-size="14.00">TransactionDetailsComponent </text>
</g>
<!-- TransactionsModule&#45;&gt;TransactionDetailsComponent -->
<g id="edge5" class="edge">
<title>TransactionsModule&#45;&gt;TransactionDetailsComponent </title>
<path fill="none" stroke="black" stroke-dasharray="5,2" d="M391,-187.11C391,-187.11 391,-205.99 391,-205.99"/>
<polygon fill="black" stroke="black" points="387.5,-205.99 391,-215.99 394.5,-205.99 387.5,-205.99"/>
<path fill="none" stroke="black" stroke-dasharray="5,2" d="M341,-187.11C341,-187.11 341,-205.99 341,-205.99"/>
<polygon fill="black" stroke="black" points="337.5,-205.99 341,-215.99 344.5,-205.99 337.5,-205.99"/>
</g>
<!-- SharedModule -->
<g id="node4" class="node">
<title>SharedModule</title>
<polygon fill="#8dd3c7" stroke="black" points="698.42,-122 695.42,-126 674.42,-126 671.42,-122 599.58,-122 599.58,-86 698.42,-86 698.42,-122"/>
<text text-anchor="middle" x="649" y="-99.8" font-family="Times,serif" font-size="14.00">SharedModule</text>
<polygon fill="#8dd3c7" stroke="black" points="316.42,-122 313.42,-126 292.42,-126 289.42,-122 217.58,-122 217.58,-86 316.42,-86 316.42,-122"/>
<text text-anchor="middle" x="267" y="-99.8" font-family="Times,serif" font-size="14.00">SharedModule</text>
</g>
<!-- SharedModule&#45;&gt;TransactionsModule -->
<g id="edge3" class="edge">
<title>SharedModule&#45;&gt;TransactionsModule</title>
<path fill="none" stroke="black" d="M649,-122.11C649,-141.34 649,-169 649,-169 649,-169 466.77,-169 466.77,-169"/>
<polygon fill="black" stroke="black" points="466.77,-165.5 456.77,-169 466.77,-172.5 466.77,-165.5"/>
<path fill="none" stroke="black" d="M295.84,-122.11C295.84,-122.11 295.84,-140.99 295.84,-140.99"/>
<polygon fill="black" stroke="black" points="292.34,-140.99 295.84,-150.99 299.34,-140.99 292.34,-140.99"/>
</g>
<!-- TransactionsRoutingModule -->
<g id="node5" class="node">
<title>TransactionsRoutingModule</title>
<polygon fill="#8dd3c7" stroke="black" points="582.2,-122 579.2,-126 558.2,-126 555.2,-122 405.8,-122 405.8,-86 582.2,-86 582.2,-122"/>
<text text-anchor="middle" x="494" y="-99.8" font-family="Times,serif" font-size="14.00">TransactionsRoutingModule</text>
<polygon fill="#8dd3c7" stroke="black" points="200.2,-122 197.2,-126 176.2,-126 173.2,-122 23.8,-122 23.8,-86 200.2,-86 200.2,-122"/>
<text text-anchor="middle" x="112" y="-99.8" font-family="Times,serif" font-size="14.00">TransactionsRoutingModule</text>
</g>
<!-- TransactionsRoutingModule&#45;&gt;TransactionsModule -->
<g id="edge4" class="edge">
<title>TransactionsRoutingModule&#45;&gt;TransactionsModule</title>
<path fill="none" stroke="black" d="M431.22,-122.11C431.22,-122.11 431.22,-140.99 431.22,-140.99"/>
<polygon fill="black" stroke="black" points="427.72,-140.99 431.22,-150.99 434.72,-140.99 427.72,-140.99"/>
<path fill="none" stroke="black" d="M112,-122.11C112,-141.34 112,-169 112,-169 112,-169 265.38,-169 265.38,-169"/>
<polygon fill="black" stroke="black" points="265.38,-172.5 275.38,-169 265.38,-165.5 265.38,-172.5"/>
</g>
</g>
</svg>

View File

@ -24,83 +24,83 @@
<title>cluster_TransactionsModule</title>
<polygon fill="none" stroke="black" stroke-dasharray="1,5" points="8,-70 8,-268 714,-268 714,-70 8,-70"/>
</g>
<g id="clust2" class="cluster">
<title>cluster_TransactionsModule_declarations</title>
<polygon fill="none" stroke="black" points="332,-78 332,-130 706,-130 706,-78 332,-78"/>
</g>
<g id="clust5" class="cluster">
<title>cluster_TransactionsModule_imports</title>
<polygon fill="none" stroke="black" points="398,-78 398,-130 706,-130 706,-78 398,-78"/>
<polygon fill="none" stroke="black" points="16,-78 16,-130 324,-130 324,-78 16,-78"/>
</g>
<g id="clust6" class="cluster">
<title>cluster_TransactionsModule_exports</title>
<polygon fill="none" stroke="black" points="288,-208 288,-260 494,-260 494,-208 288,-208"/>
</g>
<g id="clust2" class="cluster">
<title>cluster_TransactionsModule_declarations</title>
<polygon fill="none" stroke="black" points="16,-78 16,-130 390,-130 390,-78 16,-78"/>
<polygon fill="none" stroke="black" points="238,-208 238,-260 444,-260 444,-208 238,-208"/>
</g>
<!-- TransactionDetailsComponent -->
<g id="node1" class="node">
<title>TransactionDetailsComponent</title>
<polygon fill="#ffffb3" stroke="black" points="381.57,-122 194.43,-122 194.43,-86 381.57,-86 381.57,-122"/>
<text text-anchor="middle" x="288" y="-99.8" font-family="Times,serif" font-size="14.00">TransactionDetailsComponent</text>
<polygon fill="#ffffb3" stroke="black" points="697.57,-122 510.43,-122 510.43,-86 697.57,-86 697.57,-122"/>
<text text-anchor="middle" x="604" y="-99.8" font-family="Times,serif" font-size="14.00">TransactionDetailsComponent</text>
</g>
<!-- TransactionsModule -->
<g id="node3" class="node">
<title>TransactionsModule</title>
<polygon fill="#8dd3c7" stroke="black" points="456.58,-187 453.58,-191 432.58,-191 429.58,-187 325.42,-187 325.42,-151 456.58,-151 456.58,-187"/>
<text text-anchor="middle" x="391" y="-164.8" font-family="Times,serif" font-size="14.00">TransactionsModule</text>
<polygon fill="#8dd3c7" stroke="black" points="406.58,-187 403.58,-191 382.58,-191 379.58,-187 275.42,-187 275.42,-151 406.58,-151 406.58,-187"/>
<text text-anchor="middle" x="341" y="-164.8" font-family="Times,serif" font-size="14.00">TransactionsModule</text>
</g>
<!-- TransactionDetailsComponent&#45;&gt;TransactionsModule -->
<g id="edge1" class="edge">
<title>TransactionDetailsComponent&#45;&gt;TransactionsModule</title>
<path fill="none" stroke="black" d="M353.5,-122.11C353.5,-122.11 353.5,-140.99 353.5,-140.99"/>
<polygon fill="black" stroke="black" points="350,-140.99 353.5,-150.99 357,-140.99 350,-140.99"/>
<path fill="none" stroke="black" d="M604,-122.11C604,-141.34 604,-169 604,-169 604,-169 416.69,-169 416.69,-169"/>
<polygon fill="black" stroke="black" points="416.69,-165.5 406.69,-169 416.69,-172.5 416.69,-165.5"/>
</g>
<!-- TransactionsComponent -->
<g id="node2" class="node">
<title>TransactionsComponent</title>
<polygon fill="#ffffb3" stroke="black" points="176.36,-122 23.64,-122 23.64,-86 176.36,-86 176.36,-122"/>
<text text-anchor="middle" x="100" y="-99.8" font-family="Times,serif" font-size="14.00">TransactionsComponent</text>
<polygon fill="#ffffb3" stroke="black" points="492.36,-122 339.64,-122 339.64,-86 492.36,-86 492.36,-122"/>
<text text-anchor="middle" x="416" y="-99.8" font-family="Times,serif" font-size="14.00">TransactionsComponent</text>
</g>
<!-- TransactionsComponent&#45;&gt;TransactionsModule -->
<g id="edge2" class="edge">
<title>TransactionsComponent&#45;&gt;TransactionsModule</title>
<path fill="none" stroke="black" d="M100,-122.11C100,-141.34 100,-169 100,-169 100,-169 315.33,-169 315.33,-169"/>
<polygon fill="black" stroke="black" points="315.33,-172.5 325.33,-169 315.33,-165.5 315.33,-172.5"/>
<path fill="none" stroke="black" d="M373.05,-122.11C373.05,-122.11 373.05,-140.99 373.05,-140.99"/>
<polygon fill="black" stroke="black" points="369.55,-140.99 373.05,-150.99 376.55,-140.99 369.55,-140.99"/>
</g>
<!-- TransactionDetailsComponent -->
<g id="node6" class="node">
<title>TransactionDetailsComponent </title>
<polygon fill="#fb8072" stroke="black" points="486.07,-252 295.93,-252 295.93,-216 486.07,-216 486.07,-252"/>
<text text-anchor="middle" x="391" y="-229.8" font-family="Times,serif" font-size="14.00">TransactionDetailsComponent </text>
<polygon fill="#fb8072" stroke="black" points="436.07,-252 245.93,-252 245.93,-216 436.07,-216 436.07,-252"/>
<text text-anchor="middle" x="341" y="-229.8" font-family="Times,serif" font-size="14.00">TransactionDetailsComponent </text>
</g>
<!-- TransactionsModule&#45;&gt;TransactionDetailsComponent -->
<g id="edge5" class="edge">
<title>TransactionsModule&#45;&gt;TransactionDetailsComponent </title>
<path fill="none" stroke="black" stroke-dasharray="5,2" d="M391,-187.11C391,-187.11 391,-205.99 391,-205.99"/>
<polygon fill="black" stroke="black" points="387.5,-205.99 391,-215.99 394.5,-205.99 387.5,-205.99"/>
<path fill="none" stroke="black" stroke-dasharray="5,2" d="M341,-187.11C341,-187.11 341,-205.99 341,-205.99"/>
<polygon fill="black" stroke="black" points="337.5,-205.99 341,-215.99 344.5,-205.99 337.5,-205.99"/>
</g>
<!-- SharedModule -->
<g id="node4" class="node">
<title>SharedModule</title>
<polygon fill="#8dd3c7" stroke="black" points="698.42,-122 695.42,-126 674.42,-126 671.42,-122 599.58,-122 599.58,-86 698.42,-86 698.42,-122"/>
<text text-anchor="middle" x="649" y="-99.8" font-family="Times,serif" font-size="14.00">SharedModule</text>
<polygon fill="#8dd3c7" stroke="black" points="316.42,-122 313.42,-126 292.42,-126 289.42,-122 217.58,-122 217.58,-86 316.42,-86 316.42,-122"/>
<text text-anchor="middle" x="267" y="-99.8" font-family="Times,serif" font-size="14.00">SharedModule</text>
</g>
<!-- SharedModule&#45;&gt;TransactionsModule -->
<g id="edge3" class="edge">
<title>SharedModule&#45;&gt;TransactionsModule</title>
<path fill="none" stroke="black" d="M649,-122.11C649,-141.34 649,-169 649,-169 649,-169 466.77,-169 466.77,-169"/>
<polygon fill="black" stroke="black" points="466.77,-165.5 456.77,-169 466.77,-172.5 466.77,-165.5"/>
<path fill="none" stroke="black" d="M295.84,-122.11C295.84,-122.11 295.84,-140.99 295.84,-140.99"/>
<polygon fill="black" stroke="black" points="292.34,-140.99 295.84,-150.99 299.34,-140.99 292.34,-140.99"/>
</g>
<!-- TransactionsRoutingModule -->
<g id="node5" class="node">
<title>TransactionsRoutingModule</title>
<polygon fill="#8dd3c7" stroke="black" points="582.2,-122 579.2,-126 558.2,-126 555.2,-122 405.8,-122 405.8,-86 582.2,-86 582.2,-122"/>
<text text-anchor="middle" x="494" y="-99.8" font-family="Times,serif" font-size="14.00">TransactionsRoutingModule</text>
<polygon fill="#8dd3c7" stroke="black" points="200.2,-122 197.2,-126 176.2,-126 173.2,-122 23.8,-122 23.8,-86 200.2,-86 200.2,-122"/>
<text text-anchor="middle" x="112" y="-99.8" font-family="Times,serif" font-size="14.00">TransactionsRoutingModule</text>
</g>
<!-- TransactionsRoutingModule&#45;&gt;TransactionsModule -->
<g id="edge4" class="edge">
<title>TransactionsRoutingModule&#45;&gt;TransactionsModule</title>
<path fill="none" stroke="black" d="M431.22,-122.11C431.22,-122.11 431.22,-140.99 431.22,-140.99"/>
<polygon fill="black" stroke="black" points="427.72,-140.99 431.22,-150.99 434.72,-140.99 427.72,-140.99"/>
<path fill="none" stroke="black" d="M112,-122.11C112,-141.34 112,-169 112,-169 112,-169 265.38,-169 265.38,-169"/>
<polygon fill="black" stroke="black" points="265.38,-172.5 275.38,-169 265.38,-165.5 265.38,-172.5"/>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 6.3 KiB

After

Width:  |  Height:  |  Size: 6.3 KiB

File diff suppressed because one or more lines are too long

View File

@ -68,6 +68,19 @@
<div class="container container-main">
<div class="row">
<div class="col-8 col-content">
<section class="tsd-panel tsd-comment">
<div class="tsd-comment tsd-typography">
<div class="lead">
<p>Provides an instance of the accounts registry contract.
Allows querying of accounts that have been registered as valid accounts in the network.</p>
</div>
<dl class="tsd-comment-tags">
<dt>remarks</dt>
<dd><p>This is our interface to the accounts registry contract.</p>
</dd>
</dl>
</div>
</section>
<section class="tsd-panel tsd-hierarchy">
<h3>Hierarchy</h3>
<ul class="tsd-hierarchy">
@ -118,16 +131,27 @@
<li class="tsd-description">
<aside class="tsd-sources">
<ul>
<li>Defined in src/app/_eth/accountIndex.ts:10</li>
<li>Defined in src/app/_eth/accountIndex.ts:25</li>
</ul>
</aside>
<div class="tsd-comment tsd-typography">
<div class="lead">
<p>Create a connection to the deployed account registry contract.</p>
</div>
</div>
<h4 class="tsd-parameters-title">Parameters</h4>
<ul class="tsd-parameters">
<li>
<h5>contractAddress: <span class="tsd-signature-type">string</span></h5>
<div class="tsd-comment tsd-typography">
<p>The deployed account registry contract&#39;s address.</p>
</div>
</li>
<li>
<h5><span class="tsd-flag ts-flagOptional">Optional</span> signerAddress: <span class="tsd-signature-type">string</span></h5>
<div class="tsd-comment tsd-typography">
<p>The account address of the account that deployed the account registry contract.</p>
</div>
</li>
</ul>
<h4 class="tsd-returns-title">Returns <a href="app__eth_accountindex.accountindex.html" class="tsd-signature-type" data-tsd-kind="Class">AccountIndex</a></h4>
@ -143,9 +167,14 @@
<div class="tsd-signature tsd-kind-icon">contract<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">any</span></div>
<aside class="tsd-sources">
<ul>
<li>Defined in src/app/_eth/accountIndex.ts:10</li>
<li>Defined in src/app/_eth/accountIndex.ts:21</li>
</ul>
</aside>
<div class="tsd-comment tsd-typography">
<div class="lead">
<p>The instance of the account registry contract.</p>
</div>
</div>
</section>
<section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-class">
<a name="contractaddress" class="tsd-anchor"></a>
@ -153,9 +182,14 @@
<div class="tsd-signature tsd-kind-icon">contract<wbr>Address<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span></div>
<aside class="tsd-sources">
<ul>
<li>Defined in src/app/_eth/accountIndex.ts:8</li>
<li>Defined in src/app/_eth/accountIndex.ts:23</li>
</ul>
</aside>
<div class="tsd-comment tsd-typography">
<div class="lead">
<p>The deployed account registry contract&#39;s address.</p>
</div>
</div>
</section>
<section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-class">
<a name="signeraddress" class="tsd-anchor"></a>
@ -163,9 +197,14 @@
<div class="tsd-signature tsd-kind-icon">signer<wbr>Address<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span></div>
<aside class="tsd-sources">
<ul>
<li>Defined in src/app/_eth/accountIndex.ts:9</li>
<li>Defined in src/app/_eth/accountIndex.ts:25</li>
</ul>
</aside>
<div class="tsd-comment tsd-typography">
<div class="lead">
<p>The account address of the account that deployed the account registry contract.</p>
</div>
</div>
</section>
</section>
<section class="tsd-panel-group tsd-member-group ">
@ -180,16 +219,35 @@
<li class="tsd-description">
<aside class="tsd-sources">
<ul>
<li>Defined in src/app/_eth/accountIndex.ts:44</li>
<li>Defined in src/app/_eth/accountIndex.ts:57</li>
</ul>
</aside>
<div class="tsd-comment tsd-typography">
<div class="lead">
<p>Registers an account to the accounts registry.
Requires availability of the signer address.</p>
</div>
<dl class="tsd-comment-tags">
<dt>async</dt>
<dd></dd>
<dt>example</dt>
<dd><p>Prints &quot;true&quot; for registration of &#39;0xc0ffee254729296a45a3885639AC7E10F9d54979&#39;:</p>
<pre><code class="language-typescript"><span style="color: #001080">console</span><span style="color: #000000">.</span><span style="color: #795E26">log</span><span style="color: #000000">(</span><span style="color: #AF00DB">await</span><span style="color: #000000"> </span><span style="color: #795E26">addToAccountRegistry</span><span style="color: #000000">(</span><span style="color: #A31515">&#039;0xc0ffee254729296a45a3885639AC7E10F9d54979&#039;</span><span style="color: #000000">));</span>
</code></pre>
</dd>
</dl>
</div>
<h4 class="tsd-parameters-title">Parameters</h4>
<ul class="tsd-parameters">
<li>
<h5>address: <span class="tsd-signature-type">string</span></h5>
<div class="tsd-comment tsd-typography">
<p>The account address to be registered to the accounts registry contract.</p>
</div>
</li>
</ul>
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">boolean</span><span class="tsd-signature-symbol">&gt;</span></h4>
<p>true - If registration is successful or account had already been registered.</p>
</li>
</ul>
</section>
@ -203,16 +261,35 @@
<li class="tsd-description">
<aside class="tsd-sources">
<ul>
<li>Defined in src/app/_eth/accountIndex.ts:26</li>
<li>Defined in src/app/_eth/accountIndex.ts:78</li>
</ul>
</aside>
<div class="tsd-comment tsd-typography">
<div class="lead">
<p>Checks whether a specific account address has been registered in the accounts registry.
Returns &quot;true&quot; for available and &quot;false&quot; otherwise.</p>
</div>
<dl class="tsd-comment-tags">
<dt>async</dt>
<dd></dd>
<dt>example</dt>
<dd><p>Prints &quot;true&quot; or &quot;false&quot; depending on whether &#39;0xc0ffee254729296a45a3885639AC7E10F9d54979&#39; has been registered:</p>
<pre><code class="language-typescript"><span style="color: #001080">console</span><span style="color: #000000">.</span><span style="color: #795E26">log</span><span style="color: #000000">(</span><span style="color: #AF00DB">await</span><span style="color: #000000"> </span><span style="color: #795E26">haveAccount</span><span style="color: #000000">(</span><span style="color: #A31515">&#039;0xc0ffee254729296a45a3885639AC7E10F9d54979&#039;</span><span style="color: #000000">));</span>
</code></pre>
</dd>
</dl>
</div>
<h4 class="tsd-parameters-title">Parameters</h4>
<ul class="tsd-parameters">
<li>
<h5>address: <span class="tsd-signature-type">string</span></h5>
<div class="tsd-comment tsd-typography">
<p>The account address to be validated.</p>
</div>
</li>
</ul>
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">boolean</span><span class="tsd-signature-symbol">&gt;</span></h4>
<p>true - If the address has been registered in the accounts registry.</p>
</li>
</ul>
</section>
@ -226,16 +303,34 @@
<li class="tsd-description">
<aside class="tsd-sources">
<ul>
<li>Defined in src/app/_eth/accountIndex.ts:30</li>
<li>Defined in src/app/_eth/accountIndex.ts:95</li>
</ul>
</aside>
<div class="tsd-comment tsd-typography">
<div class="lead">
<p>Returns a specified number of the most recently registered accounts.</p>
</div>
<dl class="tsd-comment-tags">
<dt>async</dt>
<dd></dd>
<dt>example</dt>
<dd><p>Prints an array of accounts:</p>
<pre><code class="language-typescript"><span style="color: #001080">console</span><span style="color: #000000">.</span><span style="color: #795E26">log</span><span style="color: #000000">(</span><span style="color: #AF00DB">await</span><span style="color: #000000"> </span><span style="color: #795E26">last</span><span style="color: #000000">(</span><span style="color: #098658">5</span><span style="color: #000000">));</span>
</code></pre>
</dd>
</dl>
</div>
<h4 class="tsd-parameters-title">Parameters</h4>
<ul class="tsd-parameters">
<li>
<h5>numberOfAccounts: <span class="tsd-signature-type">number</span></h5>
<div class="tsd-comment tsd-typography">
<p>The number of accounts to return from the accounts registry.</p>
</div>
</li>
</ul>
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol">&gt;</span></h4>
<p>An array of registered account addresses.</p>
</li>
</ul>
</section>
@ -249,10 +344,25 @@
<li class="tsd-description">
<aside class="tsd-sources">
<ul>
<li>Defined in src/app/_eth/accountIndex.ts:22</li>
<li>Defined in src/app/_eth/accountIndex.ts:121</li>
</ul>
</aside>
<div class="tsd-comment tsd-typography">
<div class="lead">
<p>Returns the total number of accounts that have been registered in the network.</p>
</div>
<dl class="tsd-comment-tags">
<dt>async</dt>
<dd></dd>
<dt>example</dt>
<dd><p>Prints the total number of registered accounts:</p>
<pre><code class="language-typescript"><span style="color: #001080">console</span><span style="color: #000000">.</span><span style="color: #795E26">log</span><span style="color: #000000">(</span><span style="color: #AF00DB">await</span><span style="color: #000000"> </span><span style="color: #795E26">totalAccounts</span><span style="color: #000000">());</span>
</code></pre>
</dd>
</dl>
</div>
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">&gt;</span></h4>
<p>The total number of registered accounts.</p>
</li>
</ul>
</section>

View File

@ -68,6 +68,19 @@
<div class="container container-main">
<div class="row">
<div class="col-8 col-content">
<section class="tsd-panel tsd-comment">
<div class="tsd-comment tsd-typography">
<div class="lead">
<p>Provides an instance of the token registry contract.
Allows querying of tokens that have been registered as valid tokens in the network.</p>
</div>
<dl class="tsd-comment-tags">
<dt>remarks</dt>
<dd><p>This is our interface to the token registry contract.</p>
</dd>
</dl>
</div>
</section>
<section class="tsd-panel tsd-hierarchy">
<h3>Hierarchy</h3>
<ul class="tsd-hierarchy">
@ -117,16 +130,27 @@
<li class="tsd-description">
<aside class="tsd-sources">
<ul>
<li>Defined in src/app/_eth/token-registry.ts:10</li>
<li>Defined in src/app/_eth/token-registry.ts:26</li>
</ul>
</aside>
<div class="tsd-comment tsd-typography">
<div class="lead">
<p>Create a connection to the deployed token registry contract.</p>
</div>
</div>
<h4 class="tsd-parameters-title">Parameters</h4>
<ul class="tsd-parameters">
<li>
<h5>contractAddress: <span class="tsd-signature-type">string</span></h5>
<div class="tsd-comment tsd-typography">
<p>The deployed token registry contract&#39;s address.</p>
</div>
</li>
<li>
<h5><span class="tsd-flag ts-flagOptional">Optional</span> signerAddress: <span class="tsd-signature-type">string</span></h5>
<div class="tsd-comment tsd-typography">
<p>The account address of the account that deployed the token registry contract.</p>
</div>
</li>
</ul>
<h4 class="tsd-returns-title">Returns <a href="app__eth_token_registry.tokenregistry.html" class="tsd-signature-type" data-tsd-kind="Class">TokenRegistry</a></h4>
@ -142,9 +166,14 @@
<div class="tsd-signature tsd-kind-icon">contract<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">any</span></div>
<aside class="tsd-sources">
<ul>
<li>Defined in src/app/_eth/token-registry.ts:10</li>
<li>Defined in src/app/_eth/token-registry.ts:22</li>
</ul>
</aside>
<div class="tsd-comment tsd-typography">
<div class="lead">
<p>The instance of the token registry contract.</p>
</div>
</div>
</section>
<section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-class">
<a name="contractaddress" class="tsd-anchor"></a>
@ -152,9 +181,14 @@
<div class="tsd-signature tsd-kind-icon">contract<wbr>Address<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span></div>
<aside class="tsd-sources">
<ul>
<li>Defined in src/app/_eth/token-registry.ts:8</li>
<li>Defined in src/app/_eth/token-registry.ts:24</li>
</ul>
</aside>
<div class="tsd-comment tsd-typography">
<div class="lead">
<p>The deployed token registry contract&#39;s address.</p>
</div>
</div>
</section>
<section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-class">
<a name="signeraddress" class="tsd-anchor"></a>
@ -162,9 +196,14 @@
<div class="tsd-signature tsd-kind-icon">signer<wbr>Address<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span></div>
<aside class="tsd-sources">
<ul>
<li>Defined in src/app/_eth/token-registry.ts:9</li>
<li>Defined in src/app/_eth/token-registry.ts:26</li>
</ul>
</aside>
<div class="tsd-comment tsd-typography">
<div class="lead">
<p>The account address of the account that deployed the token registry contract.</p>
</div>
</div>
</section>
</section>
<section class="tsd-panel-group tsd-member-group ">
@ -179,16 +218,34 @@
<li class="tsd-description">
<aside class="tsd-sources">
<ul>
<li>Defined in src/app/_eth/token-registry.ts:30</li>
<li>Defined in src/app/_eth/token-registry.ts:57</li>
</ul>
</aside>
<div class="tsd-comment tsd-typography">
<div class="lead">
<p>Returns the address of the token with a given identifier.</p>
</div>
<dl class="tsd-comment-tags">
<dt>async</dt>
<dd></dd>
<dt>example</dt>
<dd><p>Prints the address of the token with the identifier &#39;sarafu&#39;:</p>
<pre><code class="language-typescript"><span style="color: #001080">console</span><span style="color: #000000">.</span><span style="color: #795E26">log</span><span style="color: #000000">(</span><span style="color: #AF00DB">await</span><span style="color: #000000"> </span><span style="color: #795E26">addressOf</span><span style="color: #000000">(</span><span style="color: #A31515">&#039;sarafu&#039;</span><span style="color: #000000">));</span>
</code></pre>
</dd>
</dl>
</div>
<h4 class="tsd-parameters-title">Parameters</h4>
<ul class="tsd-parameters">
<li>
<h5>identifier: <span class="tsd-signature-type">string</span></h5>
<div class="tsd-comment tsd-typography">
<p>The name or identifier of the token to be fetched from the token registry.</p>
</div>
</li>
</ul>
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">&gt;</span></h4>
<p>The address of the token assigned the specified identifier in the token registry.</p>
</li>
</ul>
</section>
@ -202,16 +259,34 @@
<li class="tsd-description">
<aside class="tsd-sources">
<ul>
<li>Defined in src/app/_eth/token-registry.ts:26</li>
<li>Defined in src/app/_eth/token-registry.ts:75</li>
</ul>
</aside>
<div class="tsd-comment tsd-typography">
<div class="lead">
<p>Returns the address of a token with the given serial in the token registry.</p>
</div>
<dl class="tsd-comment-tags">
<dt>async</dt>
<dd></dd>
<dt>example</dt>
<dd><p>Prints the address of the token with the serial &#39;2&#39;:</p>
<pre><code class="language-typescript"><span style="color: #001080">console</span><span style="color: #000000">.</span><span style="color: #795E26">log</span><span style="color: #000000">(</span><span style="color: #AF00DB">await</span><span style="color: #000000"> </span><span style="color: #795E26">entry</span><span style="color: #000000">(</span><span style="color: #098658">2</span><span style="color: #000000">));</span>
</code></pre>
</dd>
</dl>
</div>
<h4 class="tsd-parameters-title">Parameters</h4>
<ul class="tsd-parameters">
<li>
<h5>serial: <span class="tsd-signature-type">number</span></h5>
<div class="tsd-comment tsd-typography">
<p>The serial number of the token to be fetched.</p>
</div>
</li>
</ul>
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">&gt;</span></h4>
<p>The address of the token with the specified serial number.</p>
</li>
</ul>
</section>
@ -225,10 +300,25 @@
<li class="tsd-description">
<aside class="tsd-sources">
<ul>
<li>Defined in src/app/_eth/token-registry.ts:22</li>
<li>Defined in src/app/_eth/token-registry.ts:91</li>
</ul>
</aside>
<div class="tsd-comment tsd-typography">
<div class="lead">
<p>Returns the total number of tokens that have been registered in the network.</p>
</div>
<dl class="tsd-comment-tags">
<dt>async</dt>
<dd></dd>
<dt>example</dt>
<dd><p>Prints the total number of registered tokens:</p>
<pre><code class="language-typescript"><span style="color: #001080">console</span><span style="color: #000000">.</span><span style="color: #795E26">log</span><span style="color: #000000">(</span><span style="color: #AF00DB">await</span><span style="color: #000000"> </span><span style="color: #795E26">totalTokens</span><span style="color: #000000">());</span>
</code></pre>
</dd>
</dl>
</div>
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">&gt;</span></h4>
<p>The total number of registered tokens.</p>
</li>
</ul>
</section>

View File

@ -187,7 +187,7 @@
<li class="tsd-description">
<aside class="tsd-sources">
<ul>
<li>Defined in src/app/_helpers/global-error-handler.ts:62</li>
<li>Defined in src/app/_helpers/global-error-handler.ts:67</li>
</ul>
</aside>
<h4 class="tsd-parameters-title">Parameters</h4>

View File

@ -68,6 +68,14 @@
<div class="container container-main">
<div class="row">
<div class="col-8 col-content">
<section class="tsd-panel tsd-comment">
<div class="tsd-comment tsd-typography">
<dl class="tsd-comment-tags">
<dt>implements</dt>
<dd></dd>
</dl>
</div>
</section>
<section class="tsd-panel tsd-hierarchy">
<h3>Hierarchy</h3>
<ul class="tsd-hierarchy">
@ -155,7 +163,7 @@
<aside class="tsd-sources">
<p>Implementation of <a href="../interfaces/app__pgp_pgp_key_store.mutablekeystore.html">MutableKeyStore</a>.<a href="../interfaces/app__pgp_pgp_key_store.mutablekeystore.html#clearkeysinkeyring">clearKeysInKeyring</a></p>
<ul>
<li>Defined in src/app/_pgp/pgp-key-store.ts:142</li>
<li>Defined in src/app/_pgp/pgp-key-store.ts:148</li>
</ul>
</aside>
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">void</span></h4>
@ -173,7 +181,7 @@
<aside class="tsd-sources">
<p>Implementation of <a href="../interfaces/app__pgp_pgp_key_store.mutablekeystore.html">MutableKeyStore</a>.<a href="../interfaces/app__pgp_pgp_key_store.mutablekeystore.html#getencryptkeys">getEncryptKeys</a></p>
<ul>
<li>Defined in src/app/_pgp/pgp-key-store.ts:66</li>
<li>Defined in src/app/_pgp/pgp-key-store.ts:72</li>
</ul>
</aside>
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">[]</span></h4>
@ -191,7 +199,7 @@
<aside class="tsd-sources">
<p>Implementation of <a href="../interfaces/app__pgp_pgp_key_store.mutablekeystore.html">MutableKeyStore</a>.<a href="../interfaces/app__pgp_pgp_key_store.mutablekeystore.html#getfingerprint">getFingerprint</a></p>
<ul>
<li>Defined in src/app/_pgp/pgp-key-store.ts:94</li>
<li>Defined in src/app/_pgp/pgp-key-store.ts:100</li>
</ul>
</aside>
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">string</span></h4>
@ -209,7 +217,7 @@
<aside class="tsd-sources">
<p>Implementation of <a href="../interfaces/app__pgp_pgp_key_store.mutablekeystore.html">MutableKeyStore</a>.<a href="../interfaces/app__pgp_pgp_key_store.mutablekeystore.html#getkeyid">getKeyId</a></p>
<ul>
<li>Defined in src/app/_pgp/pgp-key-store.ts:100</li>
<li>Defined in src/app/_pgp/pgp-key-store.ts:106</li>
</ul>
</aside>
<h4 class="tsd-parameters-title">Parameters</h4>
@ -233,7 +241,7 @@
<aside class="tsd-sources">
<p>Implementation of <a href="../interfaces/app__pgp_pgp_key_store.mutablekeystore.html">MutableKeyStore</a>.<a href="../interfaces/app__pgp_pgp_key_store.mutablekeystore.html#getkeysforid">getKeysForId</a></p>
<ul>
<li>Defined in src/app/_pgp/pgp-key-store.ts:109</li>
<li>Defined in src/app/_pgp/pgp-key-store.ts:115</li>
</ul>
</aside>
<h4 class="tsd-parameters-title">Parameters</h4>
@ -257,7 +265,7 @@
<aside class="tsd-sources">
<p>Implementation of <a href="../interfaces/app__pgp_pgp_key_store.mutablekeystore.html">MutableKeyStore</a>.<a href="../interfaces/app__pgp_pgp_key_store.mutablekeystore.html#getprivatekey">getPrivateKey</a></p>
<ul>
<li>Defined in src/app/_pgp/pgp-key-store.ts:74</li>
<li>Defined in src/app/_pgp/pgp-key-store.ts:80</li>
</ul>
</aside>
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">any</span></h4>
@ -275,7 +283,7 @@
<aside class="tsd-sources">
<p>Implementation of <a href="../interfaces/app__pgp_pgp_key_store.mutablekeystore.html">MutableKeyStore</a>.<a href="../interfaces/app__pgp_pgp_key_store.mutablekeystore.html#getprivatekeyforid">getPrivateKeyForId</a></p>
<ul>
<li>Defined in src/app/_pgp/pgp-key-store.ts:117</li>
<li>Defined in src/app/_pgp/pgp-key-store.ts:123</li>
</ul>
</aside>
<h4 class="tsd-parameters-title">Parameters</h4>
@ -299,7 +307,7 @@
<aside class="tsd-sources">
<p>Implementation of <a href="../interfaces/app__pgp_pgp_key_store.mutablekeystore.html">MutableKeyStore</a>.<a href="../interfaces/app__pgp_pgp_key_store.mutablekeystore.html#getprivatekeyid">getPrivateKeyId</a></p>
<ul>
<li>Defined in src/app/_pgp/pgp-key-store.ts:104</li>
<li>Defined in src/app/_pgp/pgp-key-store.ts:110</li>
</ul>
</aside>
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">string</span></h4>
@ -317,7 +325,7 @@
<aside class="tsd-sources">
<p>Implementation of <a href="../interfaces/app__pgp_pgp_key_store.mutablekeystore.html">MutableKeyStore</a>.<a href="../interfaces/app__pgp_pgp_key_store.mutablekeystore.html#getprivatekeys">getPrivateKeys</a></p>
<ul>
<li>Defined in src/app/_pgp/pgp-key-store.ts:70</li>
<li>Defined in src/app/_pgp/pgp-key-store.ts:76</li>
</ul>
</aside>
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">[]</span></h4>
@ -335,7 +343,7 @@
<aside class="tsd-sources">
<p>Implementation of <a href="../interfaces/app__pgp_pgp_key_store.mutablekeystore.html">MutableKeyStore</a>.<a href="../interfaces/app__pgp_pgp_key_store.mutablekeystore.html#getpublickeyforid">getPublicKeyForId</a></p>
<ul>
<li>Defined in src/app/_pgp/pgp-key-store.ts:113</li>
<li>Defined in src/app/_pgp/pgp-key-store.ts:119</li>
</ul>
</aside>
<h4 class="tsd-parameters-title">Parameters</h4>
@ -359,7 +367,7 @@
<aside class="tsd-sources">
<p>Implementation of <a href="../interfaces/app__pgp_pgp_key_store.mutablekeystore.html">MutableKeyStore</a>.<a href="../interfaces/app__pgp_pgp_key_store.mutablekeystore.html#getpublickeyforsubkeyid">getPublicKeyForSubkeyId</a></p>
<ul>
<li>Defined in src/app/_pgp/pgp-key-store.ts:121</li>
<li>Defined in src/app/_pgp/pgp-key-store.ts:127</li>
</ul>
</aside>
<h4 class="tsd-parameters-title">Parameters</h4>
@ -383,7 +391,7 @@
<aside class="tsd-sources">
<p>Implementation of <a href="../interfaces/app__pgp_pgp_key_store.mutablekeystore.html">MutableKeyStore</a>.<a href="../interfaces/app__pgp_pgp_key_store.mutablekeystore.html#getpublickeys">getPublicKeys</a></p>
<ul>
<li>Defined in src/app/_pgp/pgp-key-store.ts:54</li>
<li>Defined in src/app/_pgp/pgp-key-store.ts:60</li>
</ul>
</aside>
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">[]</span></h4>
@ -401,7 +409,7 @@
<aside class="tsd-sources">
<p>Implementation of <a href="../interfaces/app__pgp_pgp_key_store.mutablekeystore.html">MutableKeyStore</a>.<a href="../interfaces/app__pgp_pgp_key_store.mutablekeystore.html#getpublickeysforaddress">getPublicKeysForAddress</a></p>
<ul>
<li>Defined in src/app/_pgp/pgp-key-store.ts:125</li>
<li>Defined in src/app/_pgp/pgp-key-store.ts:131</li>
</ul>
</aside>
<h4 class="tsd-parameters-title">Parameters</h4>
@ -425,7 +433,7 @@
<aside class="tsd-sources">
<p>Implementation of <a href="../interfaces/app__pgp_pgp_key_store.mutablekeystore.html">MutableKeyStore</a>.<a href="../interfaces/app__pgp_pgp_key_store.mutablekeystore.html#gettrustedactivekeys">getTrustedActiveKeys</a></p>
<ul>
<li>Defined in src/app/_pgp/pgp-key-store.ts:62</li>
<li>Defined in src/app/_pgp/pgp-key-store.ts:68</li>
</ul>
</aside>
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">[]</span></h4>
@ -443,7 +451,7 @@
<aside class="tsd-sources">
<p>Implementation of <a href="../interfaces/app__pgp_pgp_key_store.mutablekeystore.html">MutableKeyStore</a>.<a href="../interfaces/app__pgp_pgp_key_store.mutablekeystore.html#gettrustedkeys">getTrustedKeys</a></p>
<ul>
<li>Defined in src/app/_pgp/pgp-key-store.ts:58</li>
<li>Defined in src/app/_pgp/pgp-key-store.ts:64</li>
</ul>
</aside>
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">[]</span></h4>
@ -461,7 +469,7 @@
<aside class="tsd-sources">
<p>Implementation of <a href="../interfaces/app__pgp_pgp_key_store.mutablekeystore.html">MutableKeyStore</a>.<a href="../interfaces/app__pgp_pgp_key_store.mutablekeystore.html#importkeypair">importKeyPair</a></p>
<ul>
<li>Defined in src/app/_pgp/pgp-key-store.ts:41</li>
<li>Defined in src/app/_pgp/pgp-key-store.ts:47</li>
</ul>
</aside>
<h4 class="tsd-parameters-title">Parameters</h4>
@ -488,7 +496,7 @@
<aside class="tsd-sources">
<p>Implementation of <a href="../interfaces/app__pgp_pgp_key_store.mutablekeystore.html">MutableKeyStore</a>.<a href="../interfaces/app__pgp_pgp_key_store.mutablekeystore.html#importprivatekey">importPrivateKey</a></p>
<ul>
<li>Defined in src/app/_pgp/pgp-key-store.ts:50</li>
<li>Defined in src/app/_pgp/pgp-key-store.ts:56</li>
</ul>
</aside>
<h4 class="tsd-parameters-title">Parameters</h4>
@ -512,7 +520,7 @@
<aside class="tsd-sources">
<p>Implementation of <a href="../interfaces/app__pgp_pgp_key_store.mutablekeystore.html">MutableKeyStore</a>.<a href="../interfaces/app__pgp_pgp_key_store.mutablekeystore.html#importpublickey">importPublicKey</a></p>
<ul>
<li>Defined in src/app/_pgp/pgp-key-store.ts:46</li>
<li>Defined in src/app/_pgp/pgp-key-store.ts:52</li>
</ul>
</aside>
<h4 class="tsd-parameters-title">Parameters</h4>
@ -536,7 +544,7 @@
<aside class="tsd-sources">
<p>Implementation of <a href="../interfaces/app__pgp_pgp_key_store.mutablekeystore.html">MutableKeyStore</a>.<a href="../interfaces/app__pgp_pgp_key_store.mutablekeystore.html#isencryptedprivatekey">isEncryptedPrivateKey</a></p>
<ul>
<li>Defined in src/app/_pgp/pgp-key-store.ts:84</li>
<li>Defined in src/app/_pgp/pgp-key-store.ts:90</li>
</ul>
</aside>
<h4 class="tsd-parameters-title">Parameters</h4>
@ -560,7 +568,7 @@
<aside class="tsd-sources">
<p>Implementation of <a href="../interfaces/app__pgp_pgp_key_store.mutablekeystore.html">MutableKeyStore</a>.<a href="../interfaces/app__pgp_pgp_key_store.mutablekeystore.html#isvalidkey">isValidKey</a></p>
<ul>
<li>Defined in src/app/_pgp/pgp-key-store.ts:78</li>
<li>Defined in src/app/_pgp/pgp-key-store.ts:84</li>
</ul>
</aside>
<h4 class="tsd-parameters-title">Parameters</h4>
@ -584,7 +592,7 @@
<aside class="tsd-sources">
<p>Implementation of <a href="../interfaces/app__pgp_pgp_key_store.mutablekeystore.html">MutableKeyStore</a>.<a href="../interfaces/app__pgp_pgp_key_store.mutablekeystore.html#loadkeyring">loadKeyring</a></p>
<ul>
<li>Defined in src/app/_pgp/pgp-key-store.ts:36</li>
<li>Defined in src/app/_pgp/pgp-key-store.ts:42</li>
</ul>
</aside>
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">&gt;</span></h4>
@ -602,7 +610,7 @@
<aside class="tsd-sources">
<p>Implementation of <a href="../interfaces/app__pgp_pgp_key_store.mutablekeystore.html">MutableKeyStore</a>.<a href="../interfaces/app__pgp_pgp_key_store.mutablekeystore.html#removekeysforid">removeKeysForId</a></p>
<ul>
<li>Defined in src/app/_pgp/pgp-key-store.ts:129</li>
<li>Defined in src/app/_pgp/pgp-key-store.ts:135</li>
</ul>
</aside>
<h4 class="tsd-parameters-title">Parameters</h4>
@ -626,7 +634,7 @@
<aside class="tsd-sources">
<p>Implementation of <a href="../interfaces/app__pgp_pgp_key_store.mutablekeystore.html">MutableKeyStore</a>.<a href="../interfaces/app__pgp_pgp_key_store.mutablekeystore.html#removepublickey">removePublicKey</a></p>
<ul>
<li>Defined in src/app/_pgp/pgp-key-store.ts:137</li>
<li>Defined in src/app/_pgp/pgp-key-store.ts:143</li>
</ul>
</aside>
<h4 class="tsd-parameters-title">Parameters</h4>
@ -650,7 +658,7 @@
<aside class="tsd-sources">
<p>Implementation of <a href="../interfaces/app__pgp_pgp_key_store.mutablekeystore.html">MutableKeyStore</a>.<a href="../interfaces/app__pgp_pgp_key_store.mutablekeystore.html#removepublickeyforid">removePublicKeyForId</a></p>
<ul>
<li>Defined in src/app/_pgp/pgp-key-store.ts:133</li>
<li>Defined in src/app/_pgp/pgp-key-store.ts:139</li>
</ul>
</aside>
<h4 class="tsd-parameters-title">Parameters</h4>
@ -674,7 +682,7 @@
<aside class="tsd-sources">
<p>Implementation of <a href="../interfaces/app__pgp_pgp_key_store.mutablekeystore.html">MutableKeyStore</a>.<a href="../interfaces/app__pgp_pgp_key_store.mutablekeystore.html#sign">sign</a></p>
<ul>
<li>Defined in src/app/_pgp/pgp-key-store.ts:146</li>
<li>Defined in src/app/_pgp/pgp-key-store.ts:152</li>
</ul>
</aside>
<h4 class="tsd-parameters-title">Parameters</h4>

View File

@ -209,7 +209,7 @@
<li class="tsd-description">
<aside class="tsd-sources">
<ul>
<li>Defined in src/app/_services/auth.service.ts:200</li>
<li>Defined in src/app/_services/auth.service.ts:204</li>
</ul>
</aside>
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">any</span></h4>
@ -226,7 +226,7 @@
<li class="tsd-description">
<aside class="tsd-sources">
<ul>
<li>Defined in src/app/_services/auth.service.ts:189</li>
<li>Defined in src/app/_services/auth.service.ts:193</li>
</ul>
</aside>
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">&gt;</span></h4>
@ -243,7 +243,7 @@
<li class="tsd-description">
<aside class="tsd-sources">
<ul>
<li>Defined in src/app/_services/auth.service.ts:183</li>
<li>Defined in src/app/_services/auth.service.ts:187</li>
</ul>
</aside>
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">any</span></h4>
@ -359,7 +359,7 @@
<li class="tsd-description">
<aside class="tsd-sources">
<ul>
<li>Defined in src/app/_services/auth.service.ts:177</li>
<li>Defined in src/app/_services/auth.service.ts:181</li>
</ul>
</aside>
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">void</span></h4>
@ -399,13 +399,21 @@
<li class="tsd-description">
<aside class="tsd-sources">
<ul>
<li>Defined in src/app/_services/auth.service.ts:153</li>
<li>Defined in src/app/_services/auth.service.ts:157</li>
</ul>
</aside>
<div class="tsd-comment tsd-typography">
<dl class="tsd-comment-tags">
<dt>throws</dt>
<dd></dd>
</dl>
</div>
<h4 class="tsd-parameters-title">Parameters</h4>
<ul class="tsd-parameters">
<li>
<h5>privateKeyArmored: <span class="tsd-signature-type">any</span></h5>
<div class="tsd-comment tsd-typography">
</div>
</li>
</ul>
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">boolean</span><span class="tsd-signature-symbol">&gt;</span></h4>

View File

@ -136,7 +136,7 @@
<li class="tsd-description">
<aside class="tsd-sources">
<ul>
<li>Defined in src/app/_pgp/pgp-key-store.ts:30</li>
<li>Defined in src/app/_pgp/pgp-key-store.ts:33</li>
</ul>
</aside>
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">void</span></h4>
@ -154,7 +154,7 @@
<aside class="tsd-sources">
<p>Overrides KeyStore.getEncryptKeys</p>
<ul>
<li>Defined in src/app/_pgp/pgp-key-store.ts:14</li>
<li>Defined in src/app/_pgp/pgp-key-store.ts:17</li>
</ul>
</aside>
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">[]</span></h4>
@ -172,7 +172,7 @@
<aside class="tsd-sources">
<p>Overrides KeyStore.getFingerprint</p>
<ul>
<li>Defined in src/app/_pgp/pgp-key-store.ts:19</li>
<li>Defined in src/app/_pgp/pgp-key-store.ts:22</li>
</ul>
</aside>
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">string</span></h4>
@ -189,7 +189,7 @@
<li class="tsd-description">
<aside class="tsd-sources">
<ul>
<li>Defined in src/app/_pgp/pgp-key-store.ts:20</li>
<li>Defined in src/app/_pgp/pgp-key-store.ts:23</li>
</ul>
</aside>
<h4 class="tsd-parameters-title">Parameters</h4>
@ -212,7 +212,7 @@
<li class="tsd-description">
<aside class="tsd-sources">
<ul>
<li>Defined in src/app/_pgp/pgp-key-store.ts:22</li>
<li>Defined in src/app/_pgp/pgp-key-store.ts:25</li>
</ul>
</aside>
<h4 class="tsd-parameters-title">Parameters</h4>
@ -236,7 +236,7 @@
<aside class="tsd-sources">
<p>Overrides KeyStore.getPrivateKey</p>
<ul>
<li>Defined in src/app/_pgp/pgp-key-store.ts:16</li>
<li>Defined in src/app/_pgp/pgp-key-store.ts:19</li>
</ul>
</aside>
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">any</span></h4>
@ -253,7 +253,7 @@
<li class="tsd-description">
<aside class="tsd-sources">
<ul>
<li>Defined in src/app/_pgp/pgp-key-store.ts:24</li>
<li>Defined in src/app/_pgp/pgp-key-store.ts:27</li>
</ul>
</aside>
<h4 class="tsd-parameters-title">Parameters</h4>
@ -276,7 +276,7 @@
<li class="tsd-description">
<aside class="tsd-sources">
<ul>
<li>Defined in src/app/_pgp/pgp-key-store.ts:21</li>
<li>Defined in src/app/_pgp/pgp-key-store.ts:24</li>
</ul>
</aside>
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">string</span></h4>
@ -293,7 +293,7 @@
<li class="tsd-description">
<aside class="tsd-sources">
<ul>
<li>Defined in src/app/_pgp/pgp-key-store.ts:15</li>
<li>Defined in src/app/_pgp/pgp-key-store.ts:18</li>
</ul>
</aside>
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">[]</span></h4>
@ -310,7 +310,7 @@
<li class="tsd-description">
<aside class="tsd-sources">
<ul>
<li>Defined in src/app/_pgp/pgp-key-store.ts:23</li>
<li>Defined in src/app/_pgp/pgp-key-store.ts:26</li>
</ul>
</aside>
<h4 class="tsd-parameters-title">Parameters</h4>
@ -333,7 +333,7 @@
<li class="tsd-description">
<aside class="tsd-sources">
<ul>
<li>Defined in src/app/_pgp/pgp-key-store.ts:25</li>
<li>Defined in src/app/_pgp/pgp-key-store.ts:28</li>
</ul>
</aside>
<h4 class="tsd-parameters-title">Parameters</h4>
@ -356,7 +356,7 @@
<li class="tsd-description">
<aside class="tsd-sources">
<ul>
<li>Defined in src/app/_pgp/pgp-key-store.ts:11</li>
<li>Defined in src/app/_pgp/pgp-key-store.ts:14</li>
</ul>
</aside>
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">[]</span></h4>
@ -373,7 +373,7 @@
<li class="tsd-description">
<aside class="tsd-sources">
<ul>
<li>Defined in src/app/_pgp/pgp-key-store.ts:26</li>
<li>Defined in src/app/_pgp/pgp-key-store.ts:29</li>
</ul>
</aside>
<h4 class="tsd-parameters-title">Parameters</h4>
@ -397,7 +397,7 @@
<aside class="tsd-sources">
<p>Overrides KeyStore.getTrustedActiveKeys</p>
<ul>
<li>Defined in src/app/_pgp/pgp-key-store.ts:13</li>
<li>Defined in src/app/_pgp/pgp-key-store.ts:16</li>
</ul>
</aside>
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">[]</span></h4>
@ -415,7 +415,7 @@
<aside class="tsd-sources">
<p>Overrides KeyStore.getTrustedKeys</p>
<ul>
<li>Defined in src/app/_pgp/pgp-key-store.ts:12</li>
<li>Defined in src/app/_pgp/pgp-key-store.ts:15</li>
</ul>
</aside>
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">[]</span></h4>
@ -432,7 +432,7 @@
<li class="tsd-description">
<aside class="tsd-sources">
<ul>
<li>Defined in src/app/_pgp/pgp-key-store.ts:8</li>
<li>Defined in src/app/_pgp/pgp-key-store.ts:11</li>
</ul>
</aside>
<h4 class="tsd-parameters-title">Parameters</h4>
@ -458,7 +458,7 @@
<li class="tsd-description">
<aside class="tsd-sources">
<ul>
<li>Defined in src/app/_pgp/pgp-key-store.ts:10</li>
<li>Defined in src/app/_pgp/pgp-key-store.ts:13</li>
</ul>
</aside>
<h4 class="tsd-parameters-title">Parameters</h4>
@ -481,7 +481,7 @@
<li class="tsd-description">
<aside class="tsd-sources">
<ul>
<li>Defined in src/app/_pgp/pgp-key-store.ts:9</li>
<li>Defined in src/app/_pgp/pgp-key-store.ts:12</li>
</ul>
</aside>
<h4 class="tsd-parameters-title">Parameters</h4>
@ -504,7 +504,7 @@
<li class="tsd-description">
<aside class="tsd-sources">
<ul>
<li>Defined in src/app/_pgp/pgp-key-store.ts:18</li>
<li>Defined in src/app/_pgp/pgp-key-store.ts:21</li>
</ul>
</aside>
<h4 class="tsd-parameters-title">Parameters</h4>
@ -527,7 +527,7 @@
<li class="tsd-description">
<aside class="tsd-sources">
<ul>
<li>Defined in src/app/_pgp/pgp-key-store.ts:17</li>
<li>Defined in src/app/_pgp/pgp-key-store.ts:20</li>
</ul>
</aside>
<h4 class="tsd-parameters-title">Parameters</h4>
@ -550,7 +550,7 @@
<li class="tsd-description">
<aside class="tsd-sources">
<ul>
<li>Defined in src/app/_pgp/pgp-key-store.ts:7</li>
<li>Defined in src/app/_pgp/pgp-key-store.ts:10</li>
</ul>
</aside>
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">void</span></h4>
@ -567,7 +567,7 @@
<li class="tsd-description">
<aside class="tsd-sources">
<ul>
<li>Defined in src/app/_pgp/pgp-key-store.ts:27</li>
<li>Defined in src/app/_pgp/pgp-key-store.ts:30</li>
</ul>
</aside>
<h4 class="tsd-parameters-title">Parameters</h4>
@ -590,7 +590,7 @@
<li class="tsd-description">
<aside class="tsd-sources">
<ul>
<li>Defined in src/app/_pgp/pgp-key-store.ts:29</li>
<li>Defined in src/app/_pgp/pgp-key-store.ts:32</li>
</ul>
</aside>
<h4 class="tsd-parameters-title">Parameters</h4>
@ -613,7 +613,7 @@
<li class="tsd-description">
<aside class="tsd-sources">
<ul>
<li>Defined in src/app/_pgp/pgp-key-store.ts:28</li>
<li>Defined in src/app/_pgp/pgp-key-store.ts:31</li>
</ul>
</aside>
<h4 class="tsd-parameters-title">Parameters</h4>
@ -636,7 +636,7 @@
<li class="tsd-description">
<aside class="tsd-sources">
<ul>
<li>Defined in src/app/_pgp/pgp-key-store.ts:31</li>
<li>Defined in src/app/_pgp/pgp-key-store.ts:34</li>
</ul>
</aside>
<h4 class="tsd-parameters-title">Parameters</h4>

View File

@ -12,8 +12,9 @@
"lint": "ng lint",
"e2e": "ng e2e",
"postinstall": "node patch-webpack.js",
"typedoc": "typedoc --tsconfig tsconfig.json --exclude **/*.spec.ts --out docs/typedoc --name CICADA src",
"compodoc": "npx compodoc -p tsconfig.doc.json -d docs/compodoc -n CICADA"
"compodoc": "npx compodoc -p tsconfig.doc.json -d docs/compodoc -n CICADA",
"typedoc": "npx typedoc --tsconfig tsconfig.json --exclude **/*.spec.ts --out docs/typedoc --name CICADA src",
"docs": "npm run typedoc && npm run compodoc"
},
"private": true,
"dependencies": {

View File

@ -1,14 +1,35 @@
import {environment} from '@src/environments/environment';
// Third party imports
import Web3 from 'web3';
// Application imports
import {environment} from '@src/environments/environment';
/** Fetch the account registry contract's ABI. */
const abi: Array<any> = require('@src/assets/js/block-sync/data/AccountRegistry.json');
/** Establish a connection to the blockchain network. */
const web3: Web3 = new Web3(environment.web3Provider);
/**
* Provides an instance of the accounts registry contract.
* Allows querying of accounts that have been registered as valid accounts in the network.
*
* @remarks
* This is our interface to the accounts registry contract.
*/
export class AccountIndex {
contractAddress: string;
signerAddress: string;
/** The instance of the account registry contract. */
contract: any;
/** The deployed account registry contract's address. */
contractAddress: string;
/** The account address of the account that deployed the account registry contract. */
signerAddress: string;
/**
* Create a connection to the deployed account registry contract.
*
* @param contractAddress - The deployed account registry contract's address.
* @param signerAddress - The account address of the account that deployed the account registry contract.
*/
constructor(contractAddress: string, signerAddress?: string) {
this.contractAddress = contractAddress;
this.contract = new web3.eth.Contract(abi, this.contractAddress);
@ -19,14 +40,58 @@ export class AccountIndex {
}
}
public async totalAccounts(): Promise<number> {
return await this.contract.methods.count().call();
/**
* Registers an account to the accounts registry.
* Requires availability of the signer address.
*
* @async
* @example
* Prints "true" for registration of '0xc0ffee254729296a45a3885639AC7E10F9d54979':
* ```typescript
* console.log(await addToAccountRegistry('0xc0ffee254729296a45a3885639AC7E10F9d54979'));
* ```
*
* @param address - The account address to be registered to the accounts registry contract.
* @returns true - If registration is successful or account had already been registered.
*/
public async addToAccountRegistry(address: string): Promise<boolean> {
if (!await this.haveAccount(address)) {
return await this.contract.methods.add(address).send({from: this.signerAddress});
}
return true;
}
/**
* Checks whether a specific account address has been registered in the accounts registry.
* Returns "true" for available and "false" otherwise.
*
* @async
* @example
* Prints "true" or "false" depending on whether '0xc0ffee254729296a45a3885639AC7E10F9d54979' has been registered:
* ```typescript
* console.log(await haveAccount('0xc0ffee254729296a45a3885639AC7E10F9d54979'));
* ```
*
* @param address - The account address to be validated.
* @returns true - If the address has been registered in the accounts registry.
*/
public async haveAccount(address: string): Promise<boolean> {
return await this.contract.methods.accountIndex(address).call() !== 0;
}
/**
* Returns a specified number of the most recently registered accounts.
*
* @async
* @example
* Prints an array of accounts:
* ```typescript
* console.log(await last(5));
* ```
*
* @param numberOfAccounts - The number of accounts to return from the accounts registry.
* @returns An array of registered account addresses.
*/
public async last(numberOfAccounts: number): Promise<Array<string>> {
const count: number = await this.totalAccounts();
let lowest: number = count - numberOfAccounts - 1;
@ -41,10 +106,19 @@ export class AccountIndex {
return accounts;
}
public async addToAccountRegistry(address: string): Promise<boolean> {
if (!await this.haveAccount(address)) {
return await this.contract.methods.add(address).send({from: this.signerAddress});
}
return true;
/**
* Returns the total number of accounts that have been registered in the network.
*
* @async
* @example
* Prints the total number of registered accounts:
* ```typescript
* console.log(await totalAccounts());
* ```
*
* @returns The total number of registered accounts.
*/
public async totalAccounts(): Promise<number> {
return await this.contract.methods.count().call();
}
}

View File

@ -1,3 +1,4 @@
// Application imports
import { TokenRegistry } from '@app/_eth/token-registry';
import {environment} from '@src/environments/environment';

View File

@ -1,14 +1,36 @@
// Third party imports
import Web3 from 'web3';
// Application imports
import {environment} from '@src/environments/environment';
/** Fetch the token registry contract's ABI. */
const abi: Array<any> = require('@src/assets/js/block-sync/data/TokenUniqueSymbolIndex.json');
/** Establish a connection to the blockchain network. */
const web3: Web3 = new Web3(environment.web3Provider);
/**
* Provides an instance of the token registry contract.
* Allows querying of tokens that have been registered as valid tokens in the network.
*
* @remarks
* This is our interface to the token registry contract.
*/
export class TokenRegistry {
contractAddress: string;
signerAddress: string;
/** The instance of the token registry contract. */
contract: any;
/** The deployed token registry contract's address. */
contractAddress: string;
/** The account address of the account that deployed the token registry contract. */
signerAddress: string;
/**
* Create a connection to the deployed token registry contract.
*
* @param contractAddress - The deployed token registry contract's address.
* @param signerAddress - The account address of the account that deployed the token registry contract.
*/
constructor(contractAddress: string, signerAddress?: string) {
this.contractAddress = contractAddress;
this.contract = new web3.eth.Contract(abi, this.contractAddress);
@ -19,16 +41,54 @@ export class TokenRegistry {
}
}
public async totalTokens(): Promise<number> {
return await this.contract.methods.entryCount().call();
}
public async entry(serial: number): Promise<string> {
return await this.contract.methods.entry(serial).call();
}
/**
* Returns the address of the token with a given identifier.
*
* @async
* @example
* Prints the address of the token with the identifier 'sarafu':
* ```typescript
* console.log(await addressOf('sarafu'));
* ```
*
* @param identifier - The name or identifier of the token to be fetched from the token registry.
* @returns The address of the token assigned the specified identifier in the token registry.
*/
public async addressOf(identifier: string): Promise<string> {
const id: string = web3.eth.abi.encodeParameter('bytes32', web3.utils.toHex(identifier));
return await this.contract.methods.addressOf(id).call();
}
/**
* Returns the address of a token with the given serial in the token registry.
*
* @async
* @example
* Prints the address of the token with the serial '2':
* ```typescript
* console.log(await entry(2));
* ```
*
* @param serial - The serial number of the token to be fetched.
* @return The address of the token with the specified serial number.
*/
public async entry(serial: number): Promise<string> {
return await this.contract.methods.entry(serial).call();
}
/**
* Returns the total number of tokens that have been registered in the network.
*
* @async
* @example
* Prints the total number of registered tokens:
* ```typescript
* console.log(await totalTokens());
* ```
*
* @returns The total number of registered tokens.
*/
public async totalTokens(): Promise<number> {
return await this.contract.methods.entryCount().call();
}
}