Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix: support safe non-interactive mode #4072

Merged

Conversation

CjS77
Copy link
Collaborator

@CjS77 CjS77 commented May 3, 2022

Non-interactive mode should NEVER prompt the user. This PR clears one
path where this happens: If a wallet does not exist and a password has
not been provided so that we can auto-create one. In this case, the
application should just exit.

Providing passwords on the command line is VERY bad practice, since
anyone with access to the machine can see the password in plaintext by
inspecting the running jobs.

The ability to read the password from the commaond-line, OR config file OR envar was
removed in a previous PR, and this is rectified here.

How Has This Been Tested?

Manually, with various CLI and envar combinations

Non-interactive mode should NEVER prompt the user. This PR clears one
path where this happens: If a wallet does not exist and a password has
not been provided so that we can auto-create one. In this case, the
application should just exit.

Providing passwords on the command line is VERY bad practice, since
anyone with access to the machine can see the password in plaintext by
inspecting the running jobs.

The ability to read the password from the commaond-line, OR config file OR envar was
removed in a previous PR, and this is rectified here.
Copy link
Member

@sdbondi sdbondi left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

utAck

@stringhandler stringhandler merged commit b34f79d into development May 3, 2022
@stringhandler stringhandler deleted the cjs77_safe_non_interactive_wallet_creation branch May 3, 2022 14:06
sdbondi added a commit to sdbondi/tari that referenced this pull request May 4, 2022
* development:
  chore: update launchpad backend (tari-project#4017)
  feat: allow network to be set by TARI_NETWORK env var (tari-project#4073)
  fix: support safe non-interactive mode (tari-project#4072)
  feat(collectibles): add list assets command (tari-project#3908)
sdbondi added a commit to sdbondi/tari that referenced this pull request May 4, 2022
* development:
  chore: update launchpad backend (tari-project#4017)
  feat: allow network to be set by TARI_NETWORK env var (tari-project#4073)
  fix: support safe non-interactive mode (tari-project#4072)
  feat(collectibles): add list assets command (tari-project#3908)
  chore(deps): bump ejs from 3.1.6 to 3.1.7 in /applications/tari_collectibles/web-app (tari-project#4057)
  chore: remove deprecated ExtendBytes, update EpochTime (tari-project#3914)
  ci: fix coverage (tari-project#4071)
  feat(p2p): adds tor.forward_address setting (tari-project#4070)
  fix(key-manager): remove floating point math from mnemonic code (tari-project#4064)
  test(cucumber): use separate FFI target dir (tari-project#4067)
  refactor(comms): reduce length of long functions (clippy) (tari-project#4065)
  fix: update daily test configuration (tari-project#4049)
  refactor(rpc-macros): split into smaller functions (clippy) (tari-project#4063)
tomaszantas added a commit to Altalogy/tari that referenced this pull request May 4, 2022
* test: fix coverage action (tari-project#4036)

Description
---
Fix test coverage. I had to remove the wasm tests. Looks like it's [open issue](rust-lang/rust#81684)

How Has This Been Tested?
---
Working (excluding last reporting step) on local using `act -j coverage`

* ci: move npm audit to development only (tari-project#4055)

Description
---
Separate `npm audit` into it's own CI file and run it only on `development` branch merges

* chore(deps): bump async from 2.6.3 to 2.6.4 in /applications/launchpad/gui-vue (tari-project#4053)

Bumps [async](https://github.com/caolan/async) from 2.6.3 to 2.6.4.
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a href="https://github.com/caolan/async/blob/v2.6.4/CHANGELOG.md">async's changelog</a>.</em></p>
<blockquote>
<h1>v2.6.4</h1>
<ul>
<li>Fix potential prototype pollution exploit (<a href="https://github-redirect.dependabot.com/caolan/async/issues/1828">#1828</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="https://github.com/caolan/async/commit/c6bdaca4f9175c14fc655d3783c6af6a883e6514"><code>c6bdaca</code></a> Version 2.6.4</li>
<li><a href="https://github.com/caolan/async/commit/8870da9d5022bab310413041b4079e10db3980b7"><code>8870da9</code></a> Update built files</li>
<li><a href="https://github.com/caolan/async/commit/4df6754ef4e96a742956df8782fee27242a2ea12"><code>4df6754</code></a> update changelog</li>
<li><a href="https://github.com/caolan/async/commit/8f7f90342a6571ba1c197d747ebed30c368096d2"><code>8f7f903</code></a> Fix prototype pollution vulnerability (<a href="https://github-redirect.dependabot.com/caolan/async/issues/1828">#1828</a>)</li>
<li>See full diff in <a href="https://github.com/caolan/async/compare/v2.6.3...v2.6.4">compare view</a></li>
</ul>
</details>
<details>
<summary>Maintainer changes</summary>
<p>This version was pushed to npm by <a href="https://www.npmjs.com/~hargasinski">hargasinski</a>, a new releaser for async since your current version.</p>
</details>
<br />


[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=async&package-manager=npm_and_yarn&previous-version=2.6.3&new-version=2.6.4)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
- `@dependabot use these labels` will set the current labels as the default for future PRs for this repo and language
- `@dependabot use these reviewers` will set the current reviewers as the default for future PRs for this repo and language
- `@dependabot use these assignees` will set the current assignees as the default for future PRs for this repo and language
- `@dependabot use this milestone` will set the current milestone as the default for future PRs for this repo and language

You can disable automated security fix PRs for this repo from the [Security Alerts page](https://github.com/tari-project/tari/network/alerts).

</details>

* feat(tari_explorer): add total hashrate chart (tari-project#4054)

Description
---
Reused the already provided hashrate data by the gRPC client to plot the total in the Tari text explorer.

Motivation and Context
---
Recently we fixed the total estimated hashrate calculation, and included it in the Tari text explorer. We added charts for both Monero and SHA3 hashrates, but we didn't include a chart for the total hashrate.

The motivation of this PR is to add the total hashrate chart to the explorer:
![Screenshot 2022-04-26 at 17 19 13](https://user-images.githubusercontent.com/47919901/165349284-95ec2b18-5aa8-405a-b48b-46657446f89c.png)


How Has This Been Tested?
---
Manually running the text explorer

* chore(deps): bump ejs from 3.1.6 to 3.1.7 in /applications/tari_web_extension (tari-project#4056)

Bumps [ejs](https://github.com/mde/ejs) from 3.1.6 to 3.1.7.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/mde/ejs/releases">ejs's releases</a>.</em></p>
<blockquote>
<h2>v3.1.7</h2>
<p>Version 3.1.7</p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="https://github.com/mde/ejs/commit/820855ad75034e303be82c482c5eb8c6616da5c5"><code>820855a</code></a> Version 3.1.7</li>
<li><a href="https://github.com/mde/ejs/commit/076dcb643c5aed2e10c2847639c98fd923b72854"><code>076dcb6</code></a> Don't use template literal</li>
<li><a href="https://github.com/mde/ejs/commit/faf8b849a4e46db21fa813a08a7cbe00256a188a"><code>faf8b84</code></a> Skip test -- error message vary depending on JS runtime</li>
<li><a href="https://github.com/mde/ejs/commit/c028c343c127859f7189c3feee1e5239c199fec9"><code>c028c34</code></a> Update packages</li>
<li><a href="https://github.com/mde/ejs/commit/e4180b4fa2dd0e06d811f2c155f9d993ee9d8edd"><code>e4180b4</code></a> Merge pull request <a href="https://github-redirect.dependabot.com/mde/ejs/issues/629">#629</a> from markbrouwer96/main</li>
<li><a href="https://github.com/mde/ejs/commit/d5404d6e68d64c165580d238e7562ea6532c2541"><code>d5404d6</code></a> Updated jsdoc to 3.6.7</li>
<li><a href="https://github.com/mde/ejs/commit/7b0845d6aab044d244e8ec3818f0f70d05ef13c1"><code>7b0845d</code></a> Merge pull request <a href="https://github-redirect.dependabot.com/mde/ejs/issues/609">#609</a> from mde/dependabot/npm_and_yarn/glob-parent-5.1.2</li>
<li><a href="https://github.com/mde/ejs/commit/32fb8ee387383c67eaa5feff05347ef0504f3b15"><code>32fb8ee</code></a> Bump glob-parent from 5.1.1 to 5.1.2</li>
<li><a href="https://github.com/mde/ejs/commit/f21a9e464337032af5e61352c54b9dd8dae8fd1b"><code>f21a9e4</code></a> Merge pull request <a href="https://github-redirect.dependabot.com/mde/ejs/issues/603">#603</a> from mde/mde-null-proto-where-possible</li>
<li><a href="https://github.com/mde/ejs/commit/a50e46f002a78544e10982a037742cfb67fc7b80"><code>a50e46f</code></a> Merge pull request <a href="https://github-redirect.dependabot.com/mde/ejs/issues/606">#606</a> from akash-55/main</li>
<li>Additional commits viewable in <a href="https://github.com/mde/ejs/compare/v3.1.6...v3.1.7">compare view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=ejs&package-manager=npm_and_yarn&previous-version=3.1.6&new-version=3.1.7)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
- `@dependabot use these labels` will set the current labels as the default for future PRs for this repo and language
- `@dependabot use these reviewers` will set the current reviewers as the default for future PRs for this repo and language
- `@dependabot use these assignees` will set the current assignees as the default for future PRs for this repo and language
- `@dependabot use this milestone` will set the current milestone as the default for future PRs for this repo and language

You can disable automated security fix PRs for this repo from the [Security Alerts page](https://github.com/tari-project/tari/network/alerts).

</details>

* chore: remove unused else (tari-project#4051)

Description
---
Remove empty un used else

* refactor(base-node): use existing peer feature methods to check if is a base or client node (tari-project#4048)

Description
---
Refactored the `list-peers` and `list-connections` base node console commands to reuse the existing peer feature methods to check if is a base or client node.

Motivation and Context
---
Up until now,  the `list-peers` and `list-connections` base node console commands check if a node is a client/node by comparing values against enums, but there are already some convenient methods to check that.

How Has This Been Tested?
---
We don't have unit or integrations tests on console commands, so I tested by manually running the `list-peers` and `list-connections` to check if the results are correct.

* fix: makes header consensus encoding infallible (tari-project#4045)

Description
---

- removes `BlockHeader::consensus_encode` impl  errors

Motivation and Context
---
The ConnsensusEncode contract states that the implementation should never be the source of errors, only the writer may return errors.

How Has This Been Tested?
---
Existing tests
manually, basenode sync

* fix(wallet): do not prompt for password if given in config (tari-project#4040)

Description
---
- uses cli password followed by configured password if specified

Motivation and Context
---
Should not prompt for password if given in config

How Has This Been Tested?
---
Manually

* test: cucumber saf test (tari-project#3135)

## Description
Integration test for SAF.

This test has some long sleeps, because we need to timeout the connections.
Once we solve the issue we can lower the sleeps (I've added TODO in the code).

* chore: obscure grpc error response (tari-project#3995)

Description
---
Obscure errors returned by grpc on base node.  The flag for obscuring is coming from config (default is false).

* test(covenant): improve test coverage (tari-project#4052)

Description
---
- adds more tests for covenant modules
- fixes typo in `CovenantReadExt` trait
- returns error on invalid `Option<T>` types in `is_eq`

Motivation and Context
---
Previous coverage:
<img width="935" alt="image" src="https://user-images.githubusercontent.com/1057902/165123344-8236f9ae-c0a9-4552-af0c-325eedf7a281.png">

Coverage is now:
PENDING

How Has This Been Tested?
---
Tests pass

* fix: weird behaviour of dates in base node banned peers (tari-project#4037)

Description
---
* Changed the peer display format to output `offline_at` and `banned_until` as local time instead of UTC, fixing the “time in the past” issue
* Improved handling and display of permanent bans (when invoking `ban-peer` with no params). Note that this makes _existing_ permabans still display weird times, changes affect only new permabans
* Scope of the changes does seem to only affect log messages in other applications

Motivation and Context
---
There is some weird behaviour regarding display of date times on banned peers.
- Times are shown in UTC but without the timezone, so if the user is in UTC+N the ban end time may look like it's "in the past" for some values
- The default ban time is permanent, and this makes the "banned until" display the max datetime.

How Has This Been Tested?
---
Manually tested on a base node, by banning peers with different values

* chore(deps): bump async from 2.6.3 to 2.6.4 in /applications/tari_web_extension (tari-project#4059)

Bumps [async](https://github.com/caolan/async) from 2.6.3 to 2.6.4.
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a href="https://github.com/caolan/async/blob/v2.6.4/CHANGELOG.md">async's changelog</a>.</em></p>
<blockquote>
<h1>v2.6.4</h1>
<ul>
<li>Fix potential prototype pollution exploit (<a href="https://github-redirect.dependabot.com/caolan/async/issues/1828">#1828</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="https://github.com/caolan/async/commit/c6bdaca4f9175c14fc655d3783c6af6a883e6514"><code>c6bdaca</code></a> Version 2.6.4</li>
<li><a href="https://github.com/caolan/async/commit/8870da9d5022bab310413041b4079e10db3980b7"><code>8870da9</code></a> Update built files</li>
<li><a href="https://github.com/caolan/async/commit/4df6754ef4e96a742956df8782fee27242a2ea12"><code>4df6754</code></a> update changelog</li>
<li><a href="https://github.com/caolan/async/commit/8f7f90342a6571ba1c197d747ebed30c368096d2"><code>8f7f903</code></a> Fix prototype pollution vulnerability (<a href="https://github-redirect.dependabot.com/caolan/async/issues/1828">#1828</a>)</li>
<li>See full diff in <a href="https://github.com/caolan/async/compare/v2.6.3...v2.6.4">compare view</a></li>
</ul>
</details>
<details>
<summary>Maintainer changes</summary>
<p>This version was pushed to npm by <a href="https://www.npmjs.com/~hargasinski">hargasinski</a>, a new releaser for async since your current version.</p>
</details>
<br />


[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=async&package-manager=npm_and_yarn&previous-version=2.6.3&new-version=2.6.4)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
- `@dependabot use these labels` will set the current labels as the default for future PRs for this repo and language
- `@dependabot use these reviewers` will set the current reviewers as the default for future PRs for this repo and language
- `@dependabot use these assignees` will set the current assignees as the default for future PRs for this repo and language
- `@dependabot use this milestone` will set the current milestone as the default for future PRs for this repo and language

You can disable automated security fix PRs for this repo from the [Security Alerts page](https://github.com/tari-project/tari/network/alerts).

</details>

* chore(deps): bump async from 3.2.1 to 3.2.3 in /integration_tests (tari-project#4035)

Bumps [async](https://github.com/caolan/async) from 3.2.1 to 3.2.3.
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a href="https://github.com/caolan/async/blob/master/CHANGELOG.md">async's changelog</a>.</em></p>
<blockquote>
<h1>v3.2.3</h1>
<ul>
<li>Fix bugs in comment parsing in <code>autoInject</code>. (<a href="https://github-redirect.dependabot.com/caolan/async/issues/1767">#1767</a>, <a href="https://github-redirect.dependabot.com/caolan/async/issues/1780">#1780</a>)</li>
</ul>
<h1>v3.2.2</h1>
<ul>
<li>Fix potential prototype pollution exploit</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="https://github.com/caolan/async/commit/62943cac64876328780792319a37da7f7b3966dd"><code>62943ca</code></a> Version 3.2.3</li>
<li><a href="https://github.com/caolan/async/commit/d2c9d51ebc1a43385449eb1a5192067f9442ac94"><code>d2c9d51</code></a> Update built files</li>
<li><a href="https://github.com/caolan/async/commit/de8d4c425f5c1b59c3b1a3ef9bdb325e50fc3816"><code>de8d4c4</code></a> Update changelog for v3.2.3</li>
<li><a href="https://github.com/caolan/async/commit/b015d34178801b8c717034f737927165007b07b4"><code>b015d34</code></a> fix: address edge case in comment stripping (<a href="https://github-redirect.dependabot.com/caolan/async/issues/1780">#1780</a>)</li>
<li><a href="https://github.com/caolan/async/commit/e27aaab6cb5278ce312a673852bc962afa1ae233"><code>e27aaab</code></a> chore: remove unused Travis CI config (<a href="https://github-redirect.dependabot.com/caolan/async/issues/1781">#1781</a>)</li>
<li><a href="https://github.com/caolan/async/commit/a038c8fb26419b35e2524564f7852c899ddd2251"><code>a038c8f</code></a> ci: setup GitHub Actions (<a href="https://github-redirect.dependabot.com/caolan/async/issues/1782">#1782</a>)</li>
<li><a href="https://github.com/caolan/async/commit/e74bd18406e6511ca3da9d67d971d9b50dd9d8e8"><code>e74bd18</code></a> Core: const, let, arrow-fn and unused variables (<a href="https://github-redirect.dependabot.com/caolan/async/issues/1776">#1776</a>)</li>
<li><a href="https://github.com/caolan/async/commit/2ee673f5af40bdbbec4ce21d81147e946b75d55a"><code>2ee673f</code></a> Housekeeping (<a href="https://github-redirect.dependabot.com/caolan/async/issues/1772">#1772</a>)</li>
<li><a href="https://github.com/caolan/async/commit/cdfb4917e6028c8f966276d6e792018c7fd2ae3c"><code>cdfb491</code></a> Fix an inefficient regex in autoInject (<a href="https://github-redirect.dependabot.com/caolan/async/issues/1767">#1767</a>)</li>
<li><a href="https://github.com/caolan/async/commit/bb41f2a59aa41af0b906f0cb9a11ffa6332e56dd"><code>bb41f2a</code></a> be explicit (<a href="https://github-redirect.dependabot.com/caolan/async/issues/1769">#1769</a>)</li>
<li>Additional commits viewable in <a href="https://github.com/caolan/async/compare/v3.2.1...v3.2.3">compare view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=async&package-manager=npm_and_yarn&previous-version=3.2.1&new-version=3.2.3)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
- `@dependabot use these labels` will set the current labels as the default for future PRs for this repo and language
- `@dependabot use these reviewers` will set the current reviewers as the default for future PRs for this repo and language
- `@dependabot use these assignees` will set the current assignees as the default for future PRs for this repo and language
- `@dependabot use this milestone` will set the current milestone as the default for future PRs for this repo and language

You can disable automated security fix PRs for this repo from the [Security Alerts page](https://github.com/tari-project/tari/network/alerts).

</details>

* docs: add key manager docs (tari-project#4050)

Adds/updates and fixes documentation for the key manager service

* fix: only count base nodes in peers count in base node status (tari-project#4039)

Description
---
Filter connection count in status command to only count base nodes

Motivation and Context
---
We only want to show connection count to base nodes in the base node status line. Currently it counts all connected peers regarding of type.

How Has This Been Tested?
---
Manually tested by listing all connections and then comparing it to the status line to see that it filters base nodes

* docs(comms): adds documentation for comms public interface (tari-project#4033)

Description
---
- adds docs on comms public interfaces

Motivation and Context
---
Documentation

How Has This Been Tested?
---
`cargo doc --no-deps`

* refactor(dht): use CipherKey new type for diffie-hellman key  (tari-project#4038)

Description
---
- Document the DHT public interface
- Move forward layer to `outbound` module
- Remove unnecessary allocation from `encrypt` helper
- Return `CipherKey` new type from Diffie-Hellman helper function 
- Changes `encrypt` and `decrypt` to take in `CipherKey` newtype
- implement zeroize on drop for `CipherKey` new type

Motivation and Context
---
Documentation. 

`generate_ecdh_secret` returned a public key, which implies that it is safe to share publicly.
The `CipherKey` new type will zero it's contents before releasing it's memory.

The forward layer didn't have anything to do with SAF so shouldn't be located in that module.

How Has This Been Tested?
---
Existing tests pass
Manually, no breaking changes.

cargo doc --no-deps

* refactor(rpc-macros): split into smaller functions (clippy) (tari-project#4063)

Description
---
Split RPC function parsing into smaller functions

Motivation and Context
---
fixes `too_many_lines` Clippy
 
How Has This Been Tested?
---
No `clippy::too_many_lines` error

* fix: update daily test configuration (tari-project#4049)

Description
---
- adds options parameter for base node and wallet process start functions and updates calls as necessary 
- updates base node sync daily test config to use dibbler network
- configures base node process using cli overrides instead of environment variables

Motivation and Context
---
Configuration was refactored in tari-project#4005. Cucumber processes use localnet as default. This PR sets the network for dailies to dibbler. 

How Has This Been Tested?
---
Ran daily sync and recovery tests locally and checked that sync/recovery started.

* refactor(comms): reduce length of long functions (clippy) (tari-project#4065)

Description
---
Reduces LOC for `handle_request` and `handle_connection_manager_event` methods
Allows long function for `NoiseSocket::poll_write_or_flush` 

Motivation and Context
---
These methods exceeded the linter's maximum of 100 LOC.
`poll_write_or_flush` is a poll function and so handling the continue loop case vs the return case makes putting it in a separate function a little unwieldy, and possibly will incur a small performance cost.

How Has This Been Tested?
---
Code compiles, Existing tests pass, running a base node

* test(cucumber): use separate FFI target dir (tari-project#4067)

Description
---
Uses `./temp/ffi-target` as the cargo target dir for FFI compilation.

Motivation and Context
---
The wallet and wallet FFI need to be recompiled for each run of the integration tests. This is because the compilation target differs between native and ffi, so previous compilations are overwritten. This PR sets a separate the target dir for FFI so that subsequent runs do not need to recompile the wallet and wallet FFI on each run.

How Has This Been Tested?
---
Locally, the wallet and FFI do not need to be recompiled after the initial run.

* fix(key-manager): remove floating point math from mnemonic code (tari-project#4064)

Description
---
- removes floating-point math from `mnemonic::from_bytes`
- masks "last" byte before conversion to u8 (clippy)

Motivation and Context
---
This fixes clippy cast warnings and avoids the overhead of working with floating-points 

How Has This Been Tested?
---
This module is tested well, these tests pass.

* feat(p2p): adds tor.forward_address setting (tari-project#4070)

Description
---
Adds `tor.forward_address` to instruct tor to forward traffic to a custom address 

Motivation and Context
---
This setting is useful for docker setups where tor and the base node listener are accessible through DNS addresses.

How Has This Been Tested?
---
Manually: setting `tor.forward_address` and checking that traffic is forwarded through that port.

* ci: fix coverage (tari-project#4071)

Add llvm-tools-preview to toolchain

* chore: remove deprecated ExtendBytes, update EpochTime (tari-project#3914)

Description
---

- Removes references to `ExtendBytes`
- `EpochTime` no longer converted into `chrono` types

Motivation and Context
---
Ref tari-project/tari_utilities#25

How Has This Been Tested?
---

* chore(deps): bump ejs from 3.1.6 to 3.1.7 in /applications/tari_collectibles/web-app (tari-project#4057)

Bumps [ejs](https://github.com/mde/ejs) from 3.1.6 to 3.1.7.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/mde/ejs/releases">ejs's releases</a>.</em></p>
<blockquote>
<h2>v3.1.7</h2>
<p>Version 3.1.7</p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="https://github.com/mde/ejs/commit/820855ad75034e303be82c482c5eb8c6616da5c5"><code>820855a</code></a> Version 3.1.7</li>
<li><a href="https://github.com/mde/ejs/commit/076dcb643c5aed2e10c2847639c98fd923b72854"><code>076dcb6</code></a> Don't use template literal</li>
<li><a href="https://github.com/mde/ejs/commit/faf8b849a4e46db21fa813a08a7cbe00256a188a"><code>faf8b84</code></a> Skip test -- error message vary depending on JS runtime</li>
<li><a href="https://github.com/mde/ejs/commit/c028c343c127859f7189c3feee1e5239c199fec9"><code>c028c34</code></a> Update packages</li>
<li><a href="https://github.com/mde/ejs/commit/e4180b4fa2dd0e06d811f2c155f9d993ee9d8edd"><code>e4180b4</code></a> Merge pull request <a href="https://github-redirect.dependabot.com/mde/ejs/issues/629">#629</a> from markbrouwer96/main</li>
<li><a href="https://github.com/mde/ejs/commit/d5404d6e68d64c165580d238e7562ea6532c2541"><code>d5404d6</code></a> Updated jsdoc to 3.6.7</li>
<li><a href="https://github.com/mde/ejs/commit/7b0845d6aab044d244e8ec3818f0f70d05ef13c1"><code>7b0845d</code></a> Merge pull request <a href="https://github-redirect.dependabot.com/mde/ejs/issues/609">#609</a> from mde/dependabot/npm_and_yarn/glob-parent-5.1.2</li>
<li><a href="https://github.com/mde/ejs/commit/32fb8ee387383c67eaa5feff05347ef0504f3b15"><code>32fb8ee</code></a> Bump glob-parent from 5.1.1 to 5.1.2</li>
<li><a href="https://github.com/mde/ejs/commit/f21a9e464337032af5e61352c54b9dd8dae8fd1b"><code>f21a9e4</code></a> Merge pull request <a href="https://github-redirect.dependabot.com/mde/ejs/issues/603">#603</a> from mde/mde-null-proto-where-possible</li>
<li><a href="https://github.com/mde/ejs/commit/a50e46f002a78544e10982a037742cfb67fc7b80"><code>a50e46f</code></a> Merge pull request <a href="https://github-redirect.dependabot.com/mde/ejs/issues/606">#606</a> from akash-55/main</li>
<li>Additional commits viewable in <a href="https://github.com/mde/ejs/compare/v3.1.6...v3.1.7">compare view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=ejs&package-manager=npm_and_yarn&previous-version=3.1.6&new-version=3.1.7)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
- `@dependabot use these labels` will set the current labels as the default for future PRs for this repo and language
- `@dependabot use these reviewers` will set the current reviewers as the default for future PRs for this repo and language
- `@dependabot use these assignees` will set the current assignees as the default for future PRs for this repo and language
- `@dependabot use this milestone` will set the current milestone as the default for future PRs for this repo and language

You can disable automated security fix PRs for this repo from the [Security Alerts page](https://github.com/tari-project/tari/network/alerts).

</details>

* feat(collectibles): add list assets command (tari-project#3908)

Add the ability to list assets via the cli.

Run `tari_collectibles --help` for details

* fix: support safe non-interactive mode (tari-project#4072)

Non-interactive mode should NEVER prompt the user. This PR clears one
path where this happens: If a wallet does not exist and a password has
not been provided so that we can auto-create one. In this case, the
application should just exit.

Providing passwords on the command line is VERY bad practice, since
anyone with access to the machine can see the password in plaintext by
inspecting the running jobs.

The ability to read the password from the commaond-line, OR config file OR envar was
removed in a previous PR, and this is rectified here.

How Has This Been Tested?
---
Manually, with various CLI and envar combinations

* feat: allow network to be set by TARI_NETWORK env var (tari-project#4073)

Description
---
Allows the base directory to be set using the `TARI_BASE_DIR` environment variable.
Allows the current network to be set by the `TARI_NETWORK` environment variable.
Allows the password to be passed in using an environment variable `TARI_WALLET_PASSWORD` in `tari_console_wallet`.

Motivation and Context
---
In some environments, it is desirable to use environment variables instead of passing cli arguments. 

How Has This Been Tested?
---
Setting env var `TARI_NETWORK=mainnet` and `dibbler` on the base node and wallet.
Setting env var `TARI_WALLET_PASSWORD = 'xxx'` on the console wallet

* chore: update launchpad backend (tari-project#4017)

* feat: react_based launchpad frontend

This is a long-lived feature branch. Do not merge it until complete.

This commit disables many of the long-running CI tasks that are not
relevant to this branch. HOWEVER, check the TODOs in the .github folder
when this branch gets merged into `development` and remove them, OR
cherry-pick to revery this specific commit.

* Remove deprecated useBootstrapper option

`useBootstrapper` is no longer a valid configuration option in
tauri.conf.json, so we remove it.

* Switch to public minideb base package

The quay.io version of bitnami's minideb package does not seem to work
anymore.
The commit also leverages `install_packages` which removes the
boilerplate of having to `apt update && apt install .. & rm
/var/dpkg/...`

Add platform (arm64 / amd64) to docker tag and switch minideb source

Add the platform marker to all docker image tags

* Add architecture-dependent image resolution

Add a function to use the appropriate docker image based on CPU architecture, e.g. latest-arm64 for M1 chips, or latest-amd64 for Intel chips.

* Configure static base node parameters in config file

With the new config setup, some config setting names are no longer
network-dependent, so they can be moved into the lauchpad config.toml
template.

* Update docker configs for wallet and mm_proxy

Moves static config variables to the config.toml file, and dynamic
variables are updated according to the config variable names.

* Pull out wallet command

Keep interface consistent with rest of code and provide a `wallet_cmd`
function for the docker execution command arguments.

Fixes a small envar string typo.

* Update SHA3 miner image config

* Update config.toml [miner] section so that it connects to the wallet
  and base node
* Pull command line arguments into its own procedure, in line with other
  images

* Add multiple monero stagenet urls as default

* fix: issues with launchpad backend  (tari-project#4074)

Description
--

Fixes issues with launchpad backend. See individual commit messages for changes.

How Has This Been Tested?
---
Manually

* test: unignore working tests (tari-project#4020)

Description
---
- unignores `store_and_retrieve_blocks_from_contents` and  `test_transaction_cancellation`
- fixes flaky `store_and_retrieve_blocks_from_contents` test 

Motivation and Context
---
These tests work

How Has This Been Tested?
---
Tests pass

* Set up new Launchpad v2 with Tauri and CRA

* port (copy) backend from previous launchpad to launchpad_v2

* call tari backend for list of available docker images

* remove legacy main.rs from src-tauri

* added .gitkeep to cra build directory to avoid CI panic

* changed javascript build to build launchpad_v2

* Set up React project tree

* Add ESLint

* Add no-console eslint warning

* Remove package-json.lock

* Switch tabs to spaces

* Add SVG icon components for extracted Figma icon set (#53)

* Adding svg icon components for extracted Figma icon set

* Add initial content to the Readme.md (#52)

* Add initial content to the Readme.md

* Add techs to Readme

* add information about gui directory structure to readme

Co-authored-by: tarnas <tarnas@altalogy.com>

* Adding styled components, replacing yarn.lock with package-lock

* Updating README to use npm

* Add colors & gradients, linting icon component files

* Add theme files, refactoring

* Add color variables to gradients where possible

* feat: launchpad CI (#55)

* Add CI job for launchpad

* Update .circleci/config.yml

Co-authored-by: Mateusz Tarnaski <tarnas14@gmail.com>

Co-authored-by: Mateusz Tarnaski <tarnas14@gmail.com>

* quick and dirty one-file dropdown

* added label to select

* extracted value and options and made it configurable in the select

* extract Select to a reusable dumb component

* refactor WithTheme HoC to correctly set displayName

* extract transparent background to theme

* fix types for styledComponents in Select

* add basic tests to Select component

* typescript children: ReactNode typing

* change darkBackground prop name to inverted

* use default export in Select component

* move type declarations to separate types.ts files

* fix test to use correct import

* feat: add typography and fonts

* add jsdoc to Select component

* improve jsdoc

* feat: main layout (#64)

* Main Layout, tests and Prettier.

- set up Main Layout
- set up unit tests
- add Prettier
- add primitive UI components: Button, Switch and Logo

* Fixes according to the PR review

* improved styling with the inverted values

* fix Select tests - pass correct theme

* remove last darkBackground reference

* avoid using optional chaining to not angry CI gods

* hooked up prettier to eslint and fixed all

* rename MyListboxProps to SelectProps

* feat(primitive): add text component
refer issue #74

* refactor: move globalStyles, set default Text type

* remove unnecessary fragment, formatting

* chore: eslint rule update and readme addition (#79)

* add eslint curly spaces rule

* add development practices to README

* add examples of acceptable JSDoc for react component

* Add missing property to jsdoc example

Co-authored-by: Tom <tom@altalogy.com>

Co-authored-by: Tom <tom@altalogy.com>

* Fixed CI tests, refactor d.ts files

* Removed GlobalStyle, moved fonts to App.css

* lint fix with prettier after merge

* dirty one file implementation of a box

* move Box component to separate files

* add all styles declaration to DefaultTheme in custom.d.ts

* add jsdoc to Box component

* add basic test for Box component

* update Select tests to conform to test standard

* fix Box test

* Launchpad on Github Actions (#88)

* Add tag component files, update theme

* Add unit tests

* More unit tests, changes from PR comments

* Adjust the audit job (#91)

* feat: footer & keyboardkeys (#86)

* Add Footer and KeyboardKeys components

* Fix lint issues

* Fix typo

* Improve Switch component (#89)

* chore: tests for icons (#97)

* Add tests for Icons

* Replace require with import

* layout for inactive state of base node

* prepared layout for dark (running) base node

* extract view component from base node container

* connect base node container to store; improve styling

* cleanup and document Loading component

* fix unused payload in base node slice

* add placeholder for "running" tag on basenode

* add Running tag to a running base node container

* add tests for Loading indicator

* move base node store slice to /store/baseNode

* reverse Network type import

* feat: tabs and ts issue (#94)

* Improve Tabs component and its usage in DashboardContainer

* Upgrade Tabs component and fix TS

* Fix text style type

* Remove unused props and imports (#99)

* Fix box sizing of the main container (#102)

* Add Text test (#106)

* Change the size of large tags to 26px (#104)

* Polishing Select component: text color and spacing (#105)

* prepared ui for password input

* include tari signed in wallet password page

* prepared main wallet layout (without inputs)

* add loading prop to button

* connect wallet to store

* fix tabs component to memoize tabs content

* move lines from wallet components to locales

* remove Send funds button

* add password input and disabling submit button below certain password length threshold

* border-box sizing for box

* change loading indicator to be relatively positioned in button

* cleaned up Button disabled styling; removed unnecessary variants and types

* allowing loading and disabled to be controlled separately

* rename Chart icon component

* add WalletContainer basic tests

* make sure buttons always have the same height/width

* Add password strength + smiley icons

* Add TextInput component files, fix password strength icons, update themes

* Add unit tests

* Add JSDoc

* Add unit tests for new icons, delete icon images from assets

* Modal component

* extracted modal styling to separate files

* add modal tests

* add tari wallet box with emoji toggle

* extract wallet components and styles to separate files

* justify base node to center

* introduce CenteredLayout component to layout basenode and wallet containers centered

* Add copy/paste/select keyboard functionality

* dont clear password field

* fix tari wallet id box

* extract reusable Input component and built TextInput on top of it

* add PasswordInput and use it in wallet password box

* disabling input icon when whole component is disabled

* set up static layout of settings modal

* make the cancel button on settings "secondary"

* fix buttons in icon for settings button in title bar

* created static layout for wallet settings

* extracted components to separate files, connected SettingsContainer to store

* allow opening settings on specific page

* connecting wallet settings page component to store

* showing `running` indicator on wallet box conditionally

* pending indicator on button in wallet settings instead of running tag

* extracted styled components from CopyBox

* cleaned up WalletSettings component with extracted styles and locales

* dont block wallet settings if wallet is locked

* Fixing Tag component background styling, App.tsx typo

* Fixing svg icon colour attributes

* feat: mining dashboard (#108)

* Set up the Mining dashboard layout

* Add handling mining node states

* Add default mining box style and config

* Fix typo and mining header styling

* add JSDoc for copybox

* remove Link component, use Button with href on wallet settings

* moved react gui over to launchpad

* update github actions to point to gui-react directory

* remove launchpad_v2 workspace from root Cargo.toml

* remove reference to tauri-apps/cli from gui-react (not needed)

* Remove useBootstrapper

* added `dev-vue` package.json script to launch vue version of the application in development mode

* remove useBoostrapper flag from tauri.vue.conf.json after bumping to rc9

* remove tauri scripts from gui-react

* Fix typography letter-spacing

Co-authored-by: Martin Stefcek <35243812+Cifko@users.noreply.github.com>
Co-authored-by: Mike the Tike <mikethetike@tari.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: mrnaveira <47919901+mrnaveira@users.noreply.github.com>
Co-authored-by: SW van Heerden <swvheerden@gmail.com>
Co-authored-by: Stan Bondi <sdbondi@users.noreply.github.com>
Co-authored-by: Cayle Sharrock <CjS77@users.noreply.github.com>
Co-authored-by: tomaszantas <tom@altalogy.com>
Co-authored-by: Cormac Quaid <thequad@gmail.com>
Co-authored-by: Cormac Quaid <69508715+corquaid@users.noreply.github.com>
stringhandler added a commit that referenced this pull request May 10, 2022
BREAKING CHANGES
---

* major config rework. Config files should be recreated  (#4006)

Features
---

* allow network to be set by TARI_NETWORK env var ([#4073](#4073)) ([c27be5c](c27be5c))
* **collectibles:** add list assets command ([#3908](#3908)) ([5b726a6](5b726a6))
* **merge mining proxy:** check achieved Monero difficulty before submitting to Tari basenode ([#4019](#4019)) ([b09fa76](b09fa76))
* **p2p:** adds tor.forward_address setting ([#4070](#4070)) ([8c78717](8c78717))
* **tari_explorer:** add total hashrate chart ([#4054](#4054)) ([9e0ec36](9e0ec36))

Bug Fixes
---

* add Environment cfg source and remove --create-id ([#4018](#4018)) ([e59e657](e59e657))
* **base-node:** assign correct base dir to tor identity ([#4081](#4081)) ([1464f8b](1464f8b))
* **dht:** saf storage uses constructs correct msg hash ([#4003](#4003)) ([e1e7669](e1e7669))
* **dht:** sets file default for DHT db ([#4030](#4030)) ([5b125e7](5b125e7))
* **dns-seeds:** use correct cloudflare resolver default ([#4029](#4029)) ([c95e589](c95e589))
* fix github integration tests ([#4008](#4008)) ([aa143c6](aa143c6))
* github actions ([#4014](#4014)) ([a03392e](a03392e))
* ignore test that timeout in github action ([#4010](#4010)) ([6c5471e](6c5471e))
* **key-manager:** remove floating point math from mnemonic code ([#4064](#4064)) ([c2d60b3](c2d60b3))
* launchpad build docker images ([#4042](#4042)) ([50e2812](50e2812))
* **launchpad:** fix config presets ([#4028](#4028)) ([1b8b274](1b8b274))
* long running and non critical github action ([#4009](#4009)) ([3b8cb8b](3b8cb8b))
* makes header consensus encoding infallible ([#4045](#4045)) ([5ebf129](5ebf129))
* only count base nodes in peers count in base node status ([#4039](#4039)) ([190d75a](190d75a))
* prevent seed peer address from being overwritten unless newer ([#4085](#4085)) ([59b76c3](59b76c3))
* support safe non-interactive mode ([#4072](#4072)) ([b34f79d](b34f79d))
* test_output_manager_sqlite_db(_encrypted) ([#4025](#4025)) ([7a6f980](7a6f980))
* update daily test configuration ([#4049](#4049)) ([b15d682](b15d682))
* **wallet:** do not prompt for password if given in config ([#4040](#4040)) ([fc1aa65](fc1aa65))
* **wallet:** ensure block hash exists ([#4083](#4083)) ([a258984](a258984))
* weird behaviour of dates in base node banned peers ([#4037](#4037)) ([7097185](7097185))
CjS77 added a commit to Altalogy/tari that referenced this pull request May 12, 2022
* test: fix coverage action (tari-project#4036)

Description
---
Fix test coverage. I had to remove the wasm tests. Looks like it's [open issue](rust-lang/rust#81684)

How Has This Been Tested?
---
Working (excluding last reporting step) on local using `act -j coverage`

* ci: move npm audit to development only (tari-project#4055)

Description
---
Separate `npm audit` into it's own CI file and run it only on `development` branch merges

* chore(deps): bump async from 2.6.3 to 2.6.4 in /applications/launchpad/gui-vue (tari-project#4053)

Bumps [async](https://github.com/caolan/async) from 2.6.3 to 2.6.4.
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a href="https://github.com/caolan/async/blob/v2.6.4/CHANGELOG.md">async's changelog</a>.</em></p>
<blockquote>
<h1>v2.6.4</h1>
<ul>
<li>Fix potential prototype pollution exploit (<a href="https://github-redirect.dependabot.com/caolan/async/issues/1828">#1828</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="https://github.com/caolan/async/commit/c6bdaca4f9175c14fc655d3783c6af6a883e6514"><code>c6bdaca</code></a> Version 2.6.4</li>
<li><a href="https://github.com/caolan/async/commit/8870da9d5022bab310413041b4079e10db3980b7"><code>8870da9</code></a> Update built files</li>
<li><a href="https://github.com/caolan/async/commit/4df6754ef4e96a742956df8782fee27242a2ea12"><code>4df6754</code></a> update changelog</li>
<li><a href="https://github.com/caolan/async/commit/8f7f90342a6571ba1c197d747ebed30c368096d2"><code>8f7f903</code></a> Fix prototype pollution vulnerability (<a href="https://github-redirect.dependabot.com/caolan/async/issues/1828">#1828</a>)</li>
<li>See full diff in <a href="https://github.com/caolan/async/compare/v2.6.3...v2.6.4">compare view</a></li>
</ul>
</details>
<details>
<summary>Maintainer changes</summary>
<p>This version was pushed to npm by <a href="https://www.npmjs.com/~hargasinski">hargasinski</a>, a new releaser for async since your current version.</p>
</details>
<br />


[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=async&package-manager=npm_and_yarn&previous-version=2.6.3&new-version=2.6.4)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
- `@dependabot use these labels` will set the current labels as the default for future PRs for this repo and language
- `@dependabot use these reviewers` will set the current reviewers as the default for future PRs for this repo and language
- `@dependabot use these assignees` will set the current assignees as the default for future PRs for this repo and language
- `@dependabot use this milestone` will set the current milestone as the default for future PRs for this repo and language

You can disable automated security fix PRs for this repo from the [Security Alerts page](https://github.com/tari-project/tari/network/alerts).

</details>

* feat(tari_explorer): add total hashrate chart (tari-project#4054)

Description
---
Reused the already provided hashrate data by the gRPC client to plot the total in the Tari text explorer.

Motivation and Context
---
Recently we fixed the total estimated hashrate calculation, and included it in the Tari text explorer. We added charts for both Monero and SHA3 hashrates, but we didn't include a chart for the total hashrate.

The motivation of this PR is to add the total hashrate chart to the explorer:
![Screenshot 2022-04-26 at 17 19 13](https://user-images.githubusercontent.com/47919901/165349284-95ec2b18-5aa8-405a-b48b-46657446f89c.png)


How Has This Been Tested?
---
Manually running the text explorer

* chore(deps): bump ejs from 3.1.6 to 3.1.7 in /applications/tari_web_extension (tari-project#4056)

Bumps [ejs](https://github.com/mde/ejs) from 3.1.6 to 3.1.7.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/mde/ejs/releases">ejs's releases</a>.</em></p>
<blockquote>
<h2>v3.1.7</h2>
<p>Version 3.1.7</p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="https://github.com/mde/ejs/commit/820855ad75034e303be82c482c5eb8c6616da5c5"><code>820855a</code></a> Version 3.1.7</li>
<li><a href="https://github.com/mde/ejs/commit/076dcb643c5aed2e10c2847639c98fd923b72854"><code>076dcb6</code></a> Don't use template literal</li>
<li><a href="https://github.com/mde/ejs/commit/faf8b849a4e46db21fa813a08a7cbe00256a188a"><code>faf8b84</code></a> Skip test -- error message vary depending on JS runtime</li>
<li><a href="https://github.com/mde/ejs/commit/c028c343c127859f7189c3feee1e5239c199fec9"><code>c028c34</code></a> Update packages</li>
<li><a href="https://github.com/mde/ejs/commit/e4180b4fa2dd0e06d811f2c155f9d993ee9d8edd"><code>e4180b4</code></a> Merge pull request <a href="https://github-redirect.dependabot.com/mde/ejs/issues/629">#629</a> from markbrouwer96/main</li>
<li><a href="https://github.com/mde/ejs/commit/d5404d6e68d64c165580d238e7562ea6532c2541"><code>d5404d6</code></a> Updated jsdoc to 3.6.7</li>
<li><a href="https://github.com/mde/ejs/commit/7b0845d6aab044d244e8ec3818f0f70d05ef13c1"><code>7b0845d</code></a> Merge pull request <a href="https://github-redirect.dependabot.com/mde/ejs/issues/609">#609</a> from mde/dependabot/npm_and_yarn/glob-parent-5.1.2</li>
<li><a href="https://github.com/mde/ejs/commit/32fb8ee387383c67eaa5feff05347ef0504f3b15"><code>32fb8ee</code></a> Bump glob-parent from 5.1.1 to 5.1.2</li>
<li><a href="https://github.com/mde/ejs/commit/f21a9e464337032af5e61352c54b9dd8dae8fd1b"><code>f21a9e4</code></a> Merge pull request <a href="https://github-redirect.dependabot.com/mde/ejs/issues/603">#603</a> from mde/mde-null-proto-where-possible</li>
<li><a href="https://github.com/mde/ejs/commit/a50e46f002a78544e10982a037742cfb67fc7b80"><code>a50e46f</code></a> Merge pull request <a href="https://github-redirect.dependabot.com/mde/ejs/issues/606">#606</a> from akash-55/main</li>
<li>Additional commits viewable in <a href="https://github.com/mde/ejs/compare/v3.1.6...v3.1.7">compare view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=ejs&package-manager=npm_and_yarn&previous-version=3.1.6&new-version=3.1.7)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
- `@dependabot use these labels` will set the current labels as the default for future PRs for this repo and language
- `@dependabot use these reviewers` will set the current reviewers as the default for future PRs for this repo and language
- `@dependabot use these assignees` will set the current assignees as the default for future PRs for this repo and language
- `@dependabot use this milestone` will set the current milestone as the default for future PRs for this repo and language

You can disable automated security fix PRs for this repo from the [Security Alerts page](https://github.com/tari-project/tari/network/alerts).

</details>

* chore: remove unused else (tari-project#4051)

Description
---
Remove empty un used else

* refactor(base-node): use existing peer feature methods to check if is a base or client node (tari-project#4048)

Description
---
Refactored the `list-peers` and `list-connections` base node console commands to reuse the existing peer feature methods to check if is a base or client node.

Motivation and Context
---
Up until now,  the `list-peers` and `list-connections` base node console commands check if a node is a client/node by comparing values against enums, but there are already some convenient methods to check that.

How Has This Been Tested?
---
We don't have unit or integrations tests on console commands, so I tested by manually running the `list-peers` and `list-connections` to check if the results are correct.

* fix: makes header consensus encoding infallible (tari-project#4045)

Description
---

- removes `BlockHeader::consensus_encode` impl  errors

Motivation and Context
---
The ConnsensusEncode contract states that the implementation should never be the source of errors, only the writer may return errors.

How Has This Been Tested?
---
Existing tests
manually, basenode sync

* fix(wallet): do not prompt for password if given in config (tari-project#4040)

Description
---
- uses cli password followed by configured password if specified

Motivation and Context
---
Should not prompt for password if given in config

How Has This Been Tested?
---
Manually

* test: cucumber saf test (tari-project#3135)

## Description
Integration test for SAF.

This test has some long sleeps, because we need to timeout the connections.
Once we solve the issue we can lower the sleeps (I've added TODO in the code).

* chore: obscure grpc error response (tari-project#3995)

Description
---
Obscure errors returned by grpc on base node.  The flag for obscuring is coming from config (default is false).

* test(covenant): improve test coverage (tari-project#4052)

Description
---
- adds more tests for covenant modules
- fixes typo in `CovenantReadExt` trait
- returns error on invalid `Option<T>` types in `is_eq`

Motivation and Context
---
Previous coverage:
<img width="935" alt="image" src="https://user-images.githubusercontent.com/1057902/165123344-8236f9ae-c0a9-4552-af0c-325eedf7a281.png">

Coverage is now:
PENDING

How Has This Been Tested?
---
Tests pass

* fix: weird behaviour of dates in base node banned peers (tari-project#4037)

Description
---
* Changed the peer display format to output `offline_at` and `banned_until` as local time instead of UTC, fixing the “time in the past” issue
* Improved handling and display of permanent bans (when invoking `ban-peer` with no params). Note that this makes _existing_ permabans still display weird times, changes affect only new permabans
* Scope of the changes does seem to only affect log messages in other applications

Motivation and Context
---
There is some weird behaviour regarding display of date times on banned peers.
- Times are shown in UTC but without the timezone, so if the user is in UTC+N the ban end time may look like it's "in the past" for some values
- The default ban time is permanent, and this makes the "banned until" display the max datetime.

How Has This Been Tested?
---
Manually tested on a base node, by banning peers with different values

* chore(deps): bump async from 2.6.3 to 2.6.4 in /applications/tari_web_extension (tari-project#4059)

Bumps [async](https://github.com/caolan/async) from 2.6.3 to 2.6.4.
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a href="https://github.com/caolan/async/blob/v2.6.4/CHANGELOG.md">async's changelog</a>.</em></p>
<blockquote>
<h1>v2.6.4</h1>
<ul>
<li>Fix potential prototype pollution exploit (<a href="https://github-redirect.dependabot.com/caolan/async/issues/1828">#1828</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="https://github.com/caolan/async/commit/c6bdaca4f9175c14fc655d3783c6af6a883e6514"><code>c6bdaca</code></a> Version 2.6.4</li>
<li><a href="https://github.com/caolan/async/commit/8870da9d5022bab310413041b4079e10db3980b7"><code>8870da9</code></a> Update built files</li>
<li><a href="https://github.com/caolan/async/commit/4df6754ef4e96a742956df8782fee27242a2ea12"><code>4df6754</code></a> update changelog</li>
<li><a href="https://github.com/caolan/async/commit/8f7f90342a6571ba1c197d747ebed30c368096d2"><code>8f7f903</code></a> Fix prototype pollution vulnerability (<a href="https://github-redirect.dependabot.com/caolan/async/issues/1828">#1828</a>)</li>
<li>See full diff in <a href="https://github.com/caolan/async/compare/v2.6.3...v2.6.4">compare view</a></li>
</ul>
</details>
<details>
<summary>Maintainer changes</summary>
<p>This version was pushed to npm by <a href="https://www.npmjs.com/~hargasinski">hargasinski</a>, a new releaser for async since your current version.</p>
</details>
<br />


[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=async&package-manager=npm_and_yarn&previous-version=2.6.3&new-version=2.6.4)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
- `@dependabot use these labels` will set the current labels as the default for future PRs for this repo and language
- `@dependabot use these reviewers` will set the current reviewers as the default for future PRs for this repo and language
- `@dependabot use these assignees` will set the current assignees as the default for future PRs for this repo and language
- `@dependabot use this milestone` will set the current milestone as the default for future PRs for this repo and language

You can disable automated security fix PRs for this repo from the [Security Alerts page](https://github.com/tari-project/tari/network/alerts).

</details>

* chore(deps): bump async from 3.2.1 to 3.2.3 in /integration_tests (tari-project#4035)

Bumps [async](https://github.com/caolan/async) from 3.2.1 to 3.2.3.
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a href="https://github.com/caolan/async/blob/master/CHANGELOG.md">async's changelog</a>.</em></p>
<blockquote>
<h1>v3.2.3</h1>
<ul>
<li>Fix bugs in comment parsing in <code>autoInject</code>. (<a href="https://github-redirect.dependabot.com/caolan/async/issues/1767">#1767</a>, <a href="https://github-redirect.dependabot.com/caolan/async/issues/1780">#1780</a>)</li>
</ul>
<h1>v3.2.2</h1>
<ul>
<li>Fix potential prototype pollution exploit</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="https://github.com/caolan/async/commit/62943cac64876328780792319a37da7f7b3966dd"><code>62943ca</code></a> Version 3.2.3</li>
<li><a href="https://github.com/caolan/async/commit/d2c9d51ebc1a43385449eb1a5192067f9442ac94"><code>d2c9d51</code></a> Update built files</li>
<li><a href="https://github.com/caolan/async/commit/de8d4c425f5c1b59c3b1a3ef9bdb325e50fc3816"><code>de8d4c4</code></a> Update changelog for v3.2.3</li>
<li><a href="https://github.com/caolan/async/commit/b015d34178801b8c717034f737927165007b07b4"><code>b015d34</code></a> fix: address edge case in comment stripping (<a href="https://github-redirect.dependabot.com/caolan/async/issues/1780">#1780</a>)</li>
<li><a href="https://github.com/caolan/async/commit/e27aaab6cb5278ce312a673852bc962afa1ae233"><code>e27aaab</code></a> chore: remove unused Travis CI config (<a href="https://github-redirect.dependabot.com/caolan/async/issues/1781">#1781</a>)</li>
<li><a href="https://github.com/caolan/async/commit/a038c8fb26419b35e2524564f7852c899ddd2251"><code>a038c8f</code></a> ci: setup GitHub Actions (<a href="https://github-redirect.dependabot.com/caolan/async/issues/1782">#1782</a>)</li>
<li><a href="https://github.com/caolan/async/commit/e74bd18406e6511ca3da9d67d971d9b50dd9d8e8"><code>e74bd18</code></a> Core: const, let, arrow-fn and unused variables (<a href="https://github-redirect.dependabot.com/caolan/async/issues/1776">#1776</a>)</li>
<li><a href="https://github.com/caolan/async/commit/2ee673f5af40bdbbec4ce21d81147e946b75d55a"><code>2ee673f</code></a> Housekeeping (<a href="https://github-redirect.dependabot.com/caolan/async/issues/1772">#1772</a>)</li>
<li><a href="https://github.com/caolan/async/commit/cdfb4917e6028c8f966276d6e792018c7fd2ae3c"><code>cdfb491</code></a> Fix an inefficient regex in autoInject (<a href="https://github-redirect.dependabot.com/caolan/async/issues/1767">#1767</a>)</li>
<li><a href="https://github.com/caolan/async/commit/bb41f2a59aa41af0b906f0cb9a11ffa6332e56dd"><code>bb41f2a</code></a> be explicit (<a href="https://github-redirect.dependabot.com/caolan/async/issues/1769">#1769</a>)</li>
<li>Additional commits viewable in <a href="https://github.com/caolan/async/compare/v3.2.1...v3.2.3">compare view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=async&package-manager=npm_and_yarn&previous-version=3.2.1&new-version=3.2.3)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
- `@dependabot use these labels` will set the current labels as the default for future PRs for this repo and language
- `@dependabot use these reviewers` will set the current reviewers as the default for future PRs for this repo and language
- `@dependabot use these assignees` will set the current assignees as the default for future PRs for this repo and language
- `@dependabot use this milestone` will set the current milestone as the default for future PRs for this repo and language

You can disable automated security fix PRs for this repo from the [Security Alerts page](https://github.com/tari-project/tari/network/alerts).

</details>

* docs: add key manager docs (tari-project#4050)

Adds/updates and fixes documentation for the key manager service

* fix: only count base nodes in peers count in base node status (tari-project#4039)

Description
---
Filter connection count in status command to only count base nodes

Motivation and Context
---
We only want to show connection count to base nodes in the base node status line. Currently it counts all connected peers regarding of type.

How Has This Been Tested?
---
Manually tested by listing all connections and then comparing it to the status line to see that it filters base nodes

* docs(comms): adds documentation for comms public interface (tari-project#4033)

Description
---
- adds docs on comms public interfaces

Motivation and Context
---
Documentation

How Has This Been Tested?
---
`cargo doc --no-deps`

* refactor(dht): use CipherKey new type for diffie-hellman key  (tari-project#4038)

Description
---
- Document the DHT public interface
- Move forward layer to `outbound` module
- Remove unnecessary allocation from `encrypt` helper
- Return `CipherKey` new type from Diffie-Hellman helper function 
- Changes `encrypt` and `decrypt` to take in `CipherKey` newtype
- implement zeroize on drop for `CipherKey` new type

Motivation and Context
---
Documentation. 

`generate_ecdh_secret` returned a public key, which implies that it is safe to share publicly.
The `CipherKey` new type will zero it's contents before releasing it's memory.

The forward layer didn't have anything to do with SAF so shouldn't be located in that module.

How Has This Been Tested?
---
Existing tests pass
Manually, no breaking changes.

cargo doc --no-deps

* refactor(rpc-macros): split into smaller functions (clippy) (tari-project#4063)

Description
---
Split RPC function parsing into smaller functions

Motivation and Context
---
fixes `too_many_lines` Clippy
 
How Has This Been Tested?
---
No `clippy::too_many_lines` error

* fix: update daily test configuration (tari-project#4049)

Description
---
- adds options parameter for base node and wallet process start functions and updates calls as necessary 
- updates base node sync daily test config to use dibbler network
- configures base node process using cli overrides instead of environment variables

Motivation and Context
---
Configuration was refactored in tari-project#4005. Cucumber processes use localnet as default. This PR sets the network for dailies to dibbler. 

How Has This Been Tested?
---
Ran daily sync and recovery tests locally and checked that sync/recovery started.

* refactor(comms): reduce length of long functions (clippy) (tari-project#4065)

Description
---
Reduces LOC for `handle_request` and `handle_connection_manager_event` methods
Allows long function for `NoiseSocket::poll_write_or_flush` 

Motivation and Context
---
These methods exceeded the linter's maximum of 100 LOC.
`poll_write_or_flush` is a poll function and so handling the continue loop case vs the return case makes putting it in a separate function a little unwieldy, and possibly will incur a small performance cost.

How Has This Been Tested?
---
Code compiles, Existing tests pass, running a base node

* test(cucumber): use separate FFI target dir (tari-project#4067)

Description
---
Uses `./temp/ffi-target` as the cargo target dir for FFI compilation.

Motivation and Context
---
The wallet and wallet FFI need to be recompiled for each run of the integration tests. This is because the compilation target differs between native and ffi, so previous compilations are overwritten. This PR sets a separate the target dir for FFI so that subsequent runs do not need to recompile the wallet and wallet FFI on each run.

How Has This Been Tested?
---
Locally, the wallet and FFI do not need to be recompiled after the initial run.

* fix(key-manager): remove floating point math from mnemonic code (tari-project#4064)

Description
---
- removes floating-point math from `mnemonic::from_bytes`
- masks "last" byte before conversion to u8 (clippy)

Motivation and Context
---
This fixes clippy cast warnings and avoids the overhead of working with floating-points 

How Has This Been Tested?
---
This module is tested well, these tests pass.

* feat(p2p): adds tor.forward_address setting (tari-project#4070)

Description
---
Adds `tor.forward_address` to instruct tor to forward traffic to a custom address 

Motivation and Context
---
This setting is useful for docker setups where tor and the base node listener are accessible through DNS addresses.

How Has This Been Tested?
---
Manually: setting `tor.forward_address` and checking that traffic is forwarded through that port.

* ci: fix coverage (tari-project#4071)

Add llvm-tools-preview to toolchain

* chore: remove deprecated ExtendBytes, update EpochTime (tari-project#3914)

Description
---

- Removes references to `ExtendBytes`
- `EpochTime` no longer converted into `chrono` types

Motivation and Context
---
Ref tari-project/tari_utilities#25

How Has This Been Tested?
---

* chore(deps): bump ejs from 3.1.6 to 3.1.7 in /applications/tari_collectibles/web-app (tari-project#4057)

Bumps [ejs](https://github.com/mde/ejs) from 3.1.6 to 3.1.7.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/mde/ejs/releases">ejs's releases</a>.</em></p>
<blockquote>
<h2>v3.1.7</h2>
<p>Version 3.1.7</p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="https://github.com/mde/ejs/commit/820855ad75034e303be82c482c5eb8c6616da5c5"><code>820855a</code></a> Version 3.1.7</li>
<li><a href="https://github.com/mde/ejs/commit/076dcb643c5aed2e10c2847639c98fd923b72854"><code>076dcb6</code></a> Don't use template literal</li>
<li><a href="https://github.com/mde/ejs/commit/faf8b849a4e46db21fa813a08a7cbe00256a188a"><code>faf8b84</code></a> Skip test -- error message vary depending on JS runtime</li>
<li><a href="https://github.com/mde/ejs/commit/c028c343c127859f7189c3feee1e5239c199fec9"><code>c028c34</code></a> Update packages</li>
<li><a href="https://github.com/mde/ejs/commit/e4180b4fa2dd0e06d811f2c155f9d993ee9d8edd"><code>e4180b4</code></a> Merge pull request <a href="https://github-redirect.dependabot.com/mde/ejs/issues/629">#629</a> from markbrouwer96/main</li>
<li><a href="https://github.com/mde/ejs/commit/d5404d6e68d64c165580d238e7562ea6532c2541"><code>d5404d6</code></a> Updated jsdoc to 3.6.7</li>
<li><a href="https://github.com/mde/ejs/commit/7b0845d6aab044d244e8ec3818f0f70d05ef13c1"><code>7b0845d</code></a> Merge pull request <a href="https://github-redirect.dependabot.com/mde/ejs/issues/609">#609</a> from mde/dependabot/npm_and_yarn/glob-parent-5.1.2</li>
<li><a href="https://github.com/mde/ejs/commit/32fb8ee387383c67eaa5feff05347ef0504f3b15"><code>32fb8ee</code></a> Bump glob-parent from 5.1.1 to 5.1.2</li>
<li><a href="https://github.com/mde/ejs/commit/f21a9e464337032af5e61352c54b9dd8dae8fd1b"><code>f21a9e4</code></a> Merge pull request <a href="https://github-redirect.dependabot.com/mde/ejs/issues/603">#603</a> from mde/mde-null-proto-where-possible</li>
<li><a href="https://github.com/mde/ejs/commit/a50e46f002a78544e10982a037742cfb67fc7b80"><code>a50e46f</code></a> Merge pull request <a href="https://github-redirect.dependabot.com/mde/ejs/issues/606">#606</a> from akash-55/main</li>
<li>Additional commits viewable in <a href="https://github.com/mde/ejs/compare/v3.1.6...v3.1.7">compare view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=ejs&package-manager=npm_and_yarn&previous-version=3.1.6&new-version=3.1.7)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
- `@dependabot use these labels` will set the current labels as the default for future PRs for this repo and language
- `@dependabot use these reviewers` will set the current reviewers as the default for future PRs for this repo and language
- `@dependabot use these assignees` will set the current assignees as the default for future PRs for this repo and language
- `@dependabot use this milestone` will set the current milestone as the default for future PRs for this repo and language

You can disable automated security fix PRs for this repo from the [Security Alerts page](https://github.com/tari-project/tari/network/alerts).

</details>

* feat(collectibles): add list assets command (tari-project#3908)

Add the ability to list assets via the cli.

Run `tari_collectibles --help` for details

* fix: support safe non-interactive mode (tari-project#4072)

Non-interactive mode should NEVER prompt the user. This PR clears one
path where this happens: If a wallet does not exist and a password has
not been provided so that we can auto-create one. In this case, the
application should just exit.

Providing passwords on the command line is VERY bad practice, since
anyone with access to the machine can see the password in plaintext by
inspecting the running jobs.

The ability to read the password from the commaond-line, OR config file OR envar was
removed in a previous PR, and this is rectified here.

How Has This Been Tested?
---
Manually, with various CLI and envar combinations

* feat: allow network to be set by TARI_NETWORK env var (tari-project#4073)

Description
---
Allows the base directory to be set using the `TARI_BASE_DIR` environment variable.
Allows the current network to be set by the `TARI_NETWORK` environment variable.
Allows the password to be passed in using an environment variable `TARI_WALLET_PASSWORD` in `tari_console_wallet`.

Motivation and Context
---
In some environments, it is desirable to use environment variables instead of passing cli arguments. 

How Has This Been Tested?
---
Setting env var `TARI_NETWORK=mainnet` and `dibbler` on the base node and wallet.
Setting env var `TARI_WALLET_PASSWORD = 'xxx'` on the console wallet

* chore: update launchpad backend (tari-project#4017)

* feat: react_based launchpad frontend

This is a long-lived feature branch. Do not merge it until complete.

This commit disables many of the long-running CI tasks that are not
relevant to this branch. HOWEVER, check the TODOs in the .github folder
when this branch gets merged into `development` and remove them, OR
cherry-pick to revery this specific commit.

* Remove deprecated useBootstrapper option

`useBootstrapper` is no longer a valid configuration option in
tauri.conf.json, so we remove it.

* Switch to public minideb base package

The quay.io version of bitnami's minideb package does not seem to work
anymore.
The commit also leverages `install_packages` which removes the
boilerplate of having to `apt update && apt install .. & rm
/var/dpkg/...`

Add platform (arm64 / amd64) to docker tag and switch minideb source

Add the platform marker to all docker image tags

* Add architecture-dependent image resolution

Add a function to use the appropriate docker image based on CPU architecture, e.g. latest-arm64 for M1 chips, or latest-amd64 for Intel chips.

* Configure static base node parameters in config file

With the new config setup, some config setting names are no longer
network-dependent, so they can be moved into the lauchpad config.toml
template.

* Update docker configs for wallet and mm_proxy

Moves static config variables to the config.toml file, and dynamic
variables are updated according to the config variable names.

* Pull out wallet command

Keep interface consistent with rest of code and provide a `wallet_cmd`
function for the docker execution command arguments.

Fixes a small envar string typo.

* Update SHA3 miner image config

* Update config.toml [miner] section so that it connects to the wallet
  and base node
* Pull command line arguments into its own procedure, in line with other
  images

* Add multiple monero stagenet urls as default

* fix: issues with launchpad backend  (tari-project#4074)

Description
--

Fixes issues with launchpad backend. See individual commit messages for changes.

How Has This Been Tested?
---
Manually

* test: unignore working tests (tari-project#4020)

Description
---
- unignores `store_and_retrieve_blocks_from_contents` and  `test_transaction_cancellation`
- fixes flaky `store_and_retrieve_blocks_from_contents` test 

Motivation and Context
---
These tests work

How Has This Been Tested?
---
Tests pass

* Set up new Launchpad v2 with Tauri and CRA

* port (copy) backend from previous launchpad to launchpad_v2

* call tari backend for list of available docker images

* remove legacy main.rs from src-tauri

* added .gitkeep to cra build directory to avoid CI panic

* changed javascript build to build launchpad_v2

* Set up React project tree

* Add ESLint

* Add no-console eslint warning

* Remove package-json.lock

* Switch tabs to spaces

* Add SVG icon components for extracted Figma icon set (#53)

* Adding svg icon components for extracted Figma icon set

* Add initial content to the Readme.md (#52)

* Add initial content to the Readme.md

* Add techs to Readme

* add information about gui directory structure to readme

Co-authored-by: tarnas <tarnas@altalogy.com>

* Adding styled components, replacing yarn.lock with package-lock

* Updating README to use npm

* Add colors & gradients, linting icon component files

* Add theme files, refactoring

* Add color variables to gradients where possible

* feat: launchpad CI (#55)

* Add CI job for launchpad

* Update .circleci/config.yml

Co-authored-by: Mateusz Tarnaski <tarnas14@gmail.com>

Co-authored-by: Mateusz Tarnaski <tarnas14@gmail.com>

* quick and dirty one-file dropdown

* added label to select

* extracted value and options and made it configurable in the select

* extract Select to a reusable dumb component

* refactor WithTheme HoC to correctly set displayName

* extract transparent background to theme

* fix types for styledComponents in Select

* add basic tests to Select component

* typescript children: ReactNode typing

* change darkBackground prop name to inverted

* use default export in Select component

* move type declarations to separate types.ts files

* fix test to use correct import

* feat: add typography and fonts

* add jsdoc to Select component

* improve jsdoc

* feat: main layout (#64)

* Main Layout, tests and Prettier.

- set up Main Layout
- set up unit tests
- add Prettier
- add primitive UI components: Button, Switch and Logo

* Fixes according to the PR review

* improved styling with the inverted values

* fix Select tests - pass correct theme

* remove last darkBackground reference

* avoid using optional chaining to not angry CI gods

* hooked up prettier to eslint and fixed all

* rename MyListboxProps to SelectProps

* feat(primitive): add text component
refer issue #74

* refactor: move globalStyles, set default Text type

* remove unnecessary fragment, formatting

* chore: eslint rule update and readme addition (#79)

* add eslint curly spaces rule

* add development practices to README

* add examples of acceptable JSDoc for react component

* Add missing property to jsdoc example

Co-authored-by: Tom <tom@altalogy.com>

Co-authored-by: Tom <tom@altalogy.com>

* Fixed CI tests, refactor d.ts files

* Removed GlobalStyle, moved fonts to App.css

* lint fix with prettier after merge

* dirty one file implementation of a box

* move Box component to separate files

* add all styles declaration to DefaultTheme in custom.d.ts

* add jsdoc to Box component

* add basic test for Box component

* update Select tests to conform to test standard

* fix Box test

* Launchpad on Github Actions (#88)

* Add tag component files, update theme

* Add unit tests

* More unit tests, changes from PR comments

* Adjust the audit job (#91)

* feat: footer & keyboardkeys (#86)

* Add Footer and KeyboardKeys components

* Fix lint issues

* Fix typo

* Improve Switch component (#89)

* chore: tests for icons (#97)

* Add tests for Icons

* Replace require with import

* layout for inactive state of base node

* prepared layout for dark (running) base node

* extract view component from base node container

* connect base node container to store; improve styling

* cleanup and document Loading component

* fix unused payload in base node slice

* add placeholder for "running" tag on basenode

* add Running tag to a running base node container

* add tests for Loading indicator

* move base node store slice to /store/baseNode

* reverse Network type import

* feat: tabs and ts issue (#94)

* Improve Tabs component and its usage in DashboardContainer

* Upgrade Tabs component and fix TS

* Fix text style type

* Remove unused props and imports (#99)

* Fix box sizing of the main container (#102)

* Add Text test (#106)

* Change the size of large tags to 26px (#104)

* Polishing Select component: text color and spacing (#105)

* prepared ui for password input

* include tari signed in wallet password page

* prepared main wallet layout (without inputs)

* add loading prop to button

* connect wallet to store

* fix tabs component to memoize tabs content

* move lines from wallet components to locales

* remove Send funds button

* add password input and disabling submit button below certain password length threshold

* border-box sizing for box

* change loading indicator to be relatively positioned in button

* cleaned up Button disabled styling; removed unnecessary variants and types

* allowing loading and disabled to be controlled separately

* rename Chart icon component

* add WalletContainer basic tests

* make sure buttons always have the same height/width

* Add password strength + smiley icons

* Add TextInput component files, fix password strength icons, update themes

* Add unit tests

* Add JSDoc

* Add unit tests for new icons, delete icon images from assets

* Modal component

* extracted modal styling to separate files

* add modal tests

* add tari wallet box with emoji toggle

* extract wallet components and styles to separate files

* justify base node to center

* introduce CenteredLayout component to layout basenode and wallet containers centered

* Add copy/paste/select keyboard functionality

* dont clear password field

* fix tari wallet id box

* extract reusable Input component and built TextInput on top of it

* add PasswordInput and use it in wallet password box

* disabling input icon when whole component is disabled

* set up static layout of settings modal

* make the cancel button on settings "secondary"

* fix buttons in icon for settings button in title bar

* created static layout for wallet settings

* extracted components to separate files, connected SettingsContainer to store

* allow opening settings on specific page

* connecting wallet settings page component to store

* showing `running` indicator on wallet box conditionally

* pending indicator on button in wallet settings instead of running tag

* extracted styled components from CopyBox

* cleaned up WalletSettings component with extracted styles and locales

* dont block wallet settings if wallet is locked

* Fixing Tag component background styling, App.tsx typo

* Fixing svg icon colour attributes

* feat: mining dashboard (#108)

* Set up the Mining dashboard layout

* Add handling mining node states

* Add default mining box style and config

* Fix typo and mining header styling

* add JSDoc for copybox

* remove Link component, use Button with href on wallet settings

* moved react gui over to launchpad

* update github actions to point to gui-react directory

* remove launchpad_v2 workspace from root Cargo.toml

* remove reference to tauri-apps/cli from gui-react (not needed)

* Remove useBootstrapper

* added `dev-vue` package.json script to launch vue version of the application in development mode

* remove useBoostrapper flag from tauri.vue.conf.json after bumping to rc9

* remove tauri scripts from gui-react

* Fix typography letter-spacing

Co-authored-by: Martin Stefcek <35243812+Cifko@users.noreply.github.com>
Co-authored-by: Mike the Tike <mikethetike@tari.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: mrnaveira <47919901+mrnaveira@users.noreply.github.com>
Co-authored-by: SW van Heerden <swvheerden@gmail.com>
Co-authored-by: Stan Bondi <sdbondi@users.noreply.github.com>
Co-authored-by: Cayle Sharrock <CjS77@users.noreply.github.com>
Co-authored-by: tomaszantas <tom@altalogy.com>
Co-authored-by: Cormac Quaid <thequad@gmail.com>
Co-authored-by: Cormac Quaid <69508715+corquaid@users.noreply.github.com>
CjS77 added a commit to Altalogy/tari that referenced this pull request May 13, 2022
* test: fix coverage action (tari-project#4036)

Description
---
Fix test coverage. I had to remove the wasm tests. Looks like it's [open issue](rust-lang/rust#81684)

How Has This Been Tested?
---
Working (excluding last reporting step) on local using `act -j coverage`

* ci: move npm audit to development only (tari-project#4055)

Description
---
Separate `npm audit` into it's own CI file and run it only on `development` branch merges

* chore(deps): bump async from 2.6.3 to 2.6.4 in /applications/launchpad/gui-vue (tari-project#4053)

Bumps [async](https://github.com/caolan/async) from 2.6.3 to 2.6.4.
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a href="https://github.com/caolan/async/blob/v2.6.4/CHANGELOG.md">async's changelog</a>.</em></p>
<blockquote>
<h1>v2.6.4</h1>
<ul>
<li>Fix potential prototype pollution exploit (<a href="https://github-redirect.dependabot.com/caolan/async/issues/1828">#1828</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="https://github.com/caolan/async/commit/c6bdaca4f9175c14fc655d3783c6af6a883e6514"><code>c6bdaca</code></a> Version 2.6.4</li>
<li><a href="https://github.com/caolan/async/commit/8870da9d5022bab310413041b4079e10db3980b7"><code>8870da9</code></a> Update built files</li>
<li><a href="https://github.com/caolan/async/commit/4df6754ef4e96a742956df8782fee27242a2ea12"><code>4df6754</code></a> update changelog</li>
<li><a href="https://github.com/caolan/async/commit/8f7f90342a6571ba1c197d747ebed30c368096d2"><code>8f7f903</code></a> Fix prototype pollution vulnerability (<a href="https://github-redirect.dependabot.com/caolan/async/issues/1828">#1828</a>)</li>
<li>See full diff in <a href="https://github.com/caolan/async/compare/v2.6.3...v2.6.4">compare view</a></li>
</ul>
</details>
<details>
<summary>Maintainer changes</summary>
<p>This version was pushed to npm by <a href="https://www.npmjs.com/~hargasinski">hargasinski</a>, a new releaser for async since your current version.</p>
</details>
<br />


[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=async&package-manager=npm_and_yarn&previous-version=2.6.3&new-version=2.6.4)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
- `@dependabot use these labels` will set the current labels as the default for future PRs for this repo and language
- `@dependabot use these reviewers` will set the current reviewers as the default for future PRs for this repo and language
- `@dependabot use these assignees` will set the current assignees as the default for future PRs for this repo and language
- `@dependabot use this milestone` will set the current milestone as the default for future PRs for this repo and language

You can disable automated security fix PRs for this repo from the [Security Alerts page](https://github.com/tari-project/tari/network/alerts).

</details>

* feat(tari_explorer): add total hashrate chart (tari-project#4054)

Description
---
Reused the already provided hashrate data by the gRPC client to plot the total in the Tari text explorer.

Motivation and Context
---
Recently we fixed the total estimated hashrate calculation, and included it in the Tari text explorer. We added charts for both Monero and SHA3 hashrates, but we didn't include a chart for the total hashrate.

The motivation of this PR is to add the total hashrate chart to the explorer:
![Screenshot 2022-04-26 at 17 19 13](https://user-images.githubusercontent.com/47919901/165349284-95ec2b18-5aa8-405a-b48b-46657446f89c.png)


How Has This Been Tested?
---
Manually running the text explorer

* chore(deps): bump ejs from 3.1.6 to 3.1.7 in /applications/tari_web_extension (tari-project#4056)

Bumps [ejs](https://github.com/mde/ejs) from 3.1.6 to 3.1.7.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/mde/ejs/releases">ejs's releases</a>.</em></p>
<blockquote>
<h2>v3.1.7</h2>
<p>Version 3.1.7</p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="https://github.com/mde/ejs/commit/820855ad75034e303be82c482c5eb8c6616da5c5"><code>820855a</code></a> Version 3.1.7</li>
<li><a href="https://github.com/mde/ejs/commit/076dcb643c5aed2e10c2847639c98fd923b72854"><code>076dcb6</code></a> Don't use template literal</li>
<li><a href="https://github.com/mde/ejs/commit/faf8b849a4e46db21fa813a08a7cbe00256a188a"><code>faf8b84</code></a> Skip test -- error message vary depending on JS runtime</li>
<li><a href="https://github.com/mde/ejs/commit/c028c343c127859f7189c3feee1e5239c199fec9"><code>c028c34</code></a> Update packages</li>
<li><a href="https://github.com/mde/ejs/commit/e4180b4fa2dd0e06d811f2c155f9d993ee9d8edd"><code>e4180b4</code></a> Merge pull request <a href="https://github-redirect.dependabot.com/mde/ejs/issues/629">#629</a> from markbrouwer96/main</li>
<li><a href="https://github.com/mde/ejs/commit/d5404d6e68d64c165580d238e7562ea6532c2541"><code>d5404d6</code></a> Updated jsdoc to 3.6.7</li>
<li><a href="https://github.com/mde/ejs/commit/7b0845d6aab044d244e8ec3818f0f70d05ef13c1"><code>7b0845d</code></a> Merge pull request <a href="https://github-redirect.dependabot.com/mde/ejs/issues/609">#609</a> from mde/dependabot/npm_and_yarn/glob-parent-5.1.2</li>
<li><a href="https://github.com/mde/ejs/commit/32fb8ee387383c67eaa5feff05347ef0504f3b15"><code>32fb8ee</code></a> Bump glob-parent from 5.1.1 to 5.1.2</li>
<li><a href="https://github.com/mde/ejs/commit/f21a9e464337032af5e61352c54b9dd8dae8fd1b"><code>f21a9e4</code></a> Merge pull request <a href="https://github-redirect.dependabot.com/mde/ejs/issues/603">#603</a> from mde/mde-null-proto-where-possible</li>
<li><a href="https://github.com/mde/ejs/commit/a50e46f002a78544e10982a037742cfb67fc7b80"><code>a50e46f</code></a> Merge pull request <a href="https://github-redirect.dependabot.com/mde/ejs/issues/606">#606</a> from akash-55/main</li>
<li>Additional commits viewable in <a href="https://github.com/mde/ejs/compare/v3.1.6...v3.1.7">compare view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=ejs&package-manager=npm_and_yarn&previous-version=3.1.6&new-version=3.1.7)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
- `@dependabot use these labels` will set the current labels as the default for future PRs for this repo and language
- `@dependabot use these reviewers` will set the current reviewers as the default for future PRs for this repo and language
- `@dependabot use these assignees` will set the current assignees as the default for future PRs for this repo and language
- `@dependabot use this milestone` will set the current milestone as the default for future PRs for this repo and language

You can disable automated security fix PRs for this repo from the [Security Alerts page](https://github.com/tari-project/tari/network/alerts).

</details>

* chore: remove unused else (tari-project#4051)

Description
---
Remove empty un used else

* refactor(base-node): use existing peer feature methods to check if is a base or client node (tari-project#4048)

Description
---
Refactored the `list-peers` and `list-connections` base node console commands to reuse the existing peer feature methods to check if is a base or client node.

Motivation and Context
---
Up until now,  the `list-peers` and `list-connections` base node console commands check if a node is a client/node by comparing values against enums, but there are already some convenient methods to check that.

How Has This Been Tested?
---
We don't have unit or integrations tests on console commands, so I tested by manually running the `list-peers` and `list-connections` to check if the results are correct.

* fix: makes header consensus encoding infallible (tari-project#4045)

Description
---

- removes `BlockHeader::consensus_encode` impl  errors

Motivation and Context
---
The ConnsensusEncode contract states that the implementation should never be the source of errors, only the writer may return errors.

How Has This Been Tested?
---
Existing tests
manually, basenode sync

* fix(wallet): do not prompt for password if given in config (tari-project#4040)

Description
---
- uses cli password followed by configured password if specified

Motivation and Context
---
Should not prompt for password if given in config

How Has This Been Tested?
---
Manually

* test: cucumber saf test (tari-project#3135)

## Description
Integration test for SAF.

This test has some long sleeps, because we need to timeout the connections.
Once we solve the issue we can lower the sleeps (I've added TODO in the code).

* chore: obscure grpc error response (tari-project#3995)

Description
---
Obscure errors returned by grpc on base node.  The flag for obscuring is coming from config (default is false).

* test(covenant): improve test coverage (tari-project#4052)

Description
---
- adds more tests for covenant modules
- fixes typo in `CovenantReadExt` trait
- returns error on invalid `Option<T>` types in `is_eq`

Motivation and Context
---
Previous coverage:
<img width="935" alt="image" src="https://user-images.githubusercontent.com/1057902/165123344-8236f9ae-c0a9-4552-af0c-325eedf7a281.png">

Coverage is now:
PENDING

How Has This Been Tested?
---
Tests pass

* fix: weird behaviour of dates in base node banned peers (tari-project#4037)

Description
---
* Changed the peer display format to output `offline_at` and `banned_until` as local time instead of UTC, fixing the “time in the past” issue
* Improved handling and display of permanent bans (when invoking `ban-peer` with no params). Note that this makes _existing_ permabans still display weird times, changes affect only new permabans
* Scope of the changes does seem to only affect log messages in other applications

Motivation and Context
---
There is some weird behaviour regarding display of date times on banned peers.
- Times are shown in UTC but without the timezone, so if the user is in UTC+N the ban end time may look like it's "in the past" for some values
- The default ban time is permanent, and this makes the "banned until" display the max datetime.

How Has This Been Tested?
---
Manually tested on a base node, by banning peers with different values

* chore(deps): bump async from 2.6.3 to 2.6.4 in /applications/tari_web_extension (tari-project#4059)

Bumps [async](https://github.com/caolan/async) from 2.6.3 to 2.6.4.
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a href="https://github.com/caolan/async/blob/v2.6.4/CHANGELOG.md">async's changelog</a>.</em></p>
<blockquote>
<h1>v2.6.4</h1>
<ul>
<li>Fix potential prototype pollution exploit (<a href="https://github-redirect.dependabot.com/caolan/async/issues/1828">#1828</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="https://github.com/caolan/async/commit/c6bdaca4f9175c14fc655d3783c6af6a883e6514"><code>c6bdaca</code></a> Version 2.6.4</li>
<li><a href="https://github.com/caolan/async/commit/8870da9d5022bab310413041b4079e10db3980b7"><code>8870da9</code></a> Update built files</li>
<li><a href="https://github.com/caolan/async/commit/4df6754ef4e96a742956df8782fee27242a2ea12"><code>4df6754</code></a> update changelog</li>
<li><a href="https://github.com/caolan/async/commit/8f7f90342a6571ba1c197d747ebed30c368096d2"><code>8f7f903</code></a> Fix prototype pollution vulnerability (<a href="https://github-redirect.dependabot.com/caolan/async/issues/1828">#1828</a>)</li>
<li>See full diff in <a href="https://github.com/caolan/async/compare/v2.6.3...v2.6.4">compare view</a></li>
</ul>
</details>
<details>
<summary>Maintainer changes</summary>
<p>This version was pushed to npm by <a href="https://www.npmjs.com/~hargasinski">hargasinski</a>, a new releaser for async since your current version.</p>
</details>
<br />


[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=async&package-manager=npm_and_yarn&previous-version=2.6.3&new-version=2.6.4)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
- `@dependabot use these labels` will set the current labels as the default for future PRs for this repo and language
- `@dependabot use these reviewers` will set the current reviewers as the default for future PRs for this repo and language
- `@dependabot use these assignees` will set the current assignees as the default for future PRs for this repo and language
- `@dependabot use this milestone` will set the current milestone as the default for future PRs for this repo and language

You can disable automated security fix PRs for this repo from the [Security Alerts page](https://github.com/tari-project/tari/network/alerts).

</details>

* chore(deps): bump async from 3.2.1 to 3.2.3 in /integration_tests (tari-project#4035)

Bumps [async](https://github.com/caolan/async) from 3.2.1 to 3.2.3.
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a href="https://github.com/caolan/async/blob/master/CHANGELOG.md">async's changelog</a>.</em></p>
<blockquote>
<h1>v3.2.3</h1>
<ul>
<li>Fix bugs in comment parsing in <code>autoInject</code>. (<a href="https://github-redirect.dependabot.com/caolan/async/issues/1767">#1767</a>, <a href="https://github-redirect.dependabot.com/caolan/async/issues/1780">#1780</a>)</li>
</ul>
<h1>v3.2.2</h1>
<ul>
<li>Fix potential prototype pollution exploit</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="https://github.com/caolan/async/commit/62943cac64876328780792319a37da7f7b3966dd"><code>62943ca</code></a> Version 3.2.3</li>
<li><a href="https://github.com/caolan/async/commit/d2c9d51ebc1a43385449eb1a5192067f9442ac94"><code>d2c9d51</code></a> Update built files</li>
<li><a href="https://github.com/caolan/async/commit/de8d4c425f5c1b59c3b1a3ef9bdb325e50fc3816"><code>de8d4c4</code></a> Update changelog for v3.2.3</li>
<li><a href="https://github.com/caolan/async/commit/b015d34178801b8c717034f737927165007b07b4"><code>b015d34</code></a> fix: address edge case in comment stripping (<a href="https://github-redirect.dependabot.com/caolan/async/issues/1780">#1780</a>)</li>
<li><a href="https://github.com/caolan/async/commit/e27aaab6cb5278ce312a673852bc962afa1ae233"><code>e27aaab</code></a> chore: remove unused Travis CI config (<a href="https://github-redirect.dependabot.com/caolan/async/issues/1781">#1781</a>)</li>
<li><a href="https://github.com/caolan/async/commit/a038c8fb26419b35e2524564f7852c899ddd2251"><code>a038c8f</code></a> ci: setup GitHub Actions (<a href="https://github-redirect.dependabot.com/caolan/async/issues/1782">#1782</a>)</li>
<li><a href="https://github.com/caolan/async/commit/e74bd18406e6511ca3da9d67d971d9b50dd9d8e8"><code>e74bd18</code></a> Core: const, let, arrow-fn and unused variables (<a href="https://github-redirect.dependabot.com/caolan/async/issues/1776">#1776</a>)</li>
<li><a href="https://github.com/caolan/async/commit/2ee673f5af40bdbbec4ce21d81147e946b75d55a"><code>2ee673f</code></a> Housekeeping (<a href="https://github-redirect.dependabot.com/caolan/async/issues/1772">#1772</a>)</li>
<li><a href="https://github.com/caolan/async/commit/cdfb4917e6028c8f966276d6e792018c7fd2ae3c"><code>cdfb491</code></a> Fix an inefficient regex in autoInject (<a href="https://github-redirect.dependabot.com/caolan/async/issues/1767">#1767</a>)</li>
<li><a href="https://github.com/caolan/async/commit/bb41f2a59aa41af0b906f0cb9a11ffa6332e56dd"><code>bb41f2a</code></a> be explicit (<a href="https://github-redirect.dependabot.com/caolan/async/issues/1769">#1769</a>)</li>
<li>Additional commits viewable in <a href="https://github.com/caolan/async/compare/v3.2.1...v3.2.3">compare view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=async&package-manager=npm_and_yarn&previous-version=3.2.1&new-version=3.2.3)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
- `@dependabot use these labels` will set the current labels as the default for future PRs for this repo and language
- `@dependabot use these reviewers` will set the current reviewers as the default for future PRs for this repo and language
- `@dependabot use these assignees` will set the current assignees as the default for future PRs for this repo and language
- `@dependabot use this milestone` will set the current milestone as the default for future PRs for this repo and language

You can disable automated security fix PRs for this repo from the [Security Alerts page](https://github.com/tari-project/tari/network/alerts).

</details>

* docs: add key manager docs (tari-project#4050)

Adds/updates and fixes documentation for the key manager service

* fix: only count base nodes in peers count in base node status (tari-project#4039)

Description
---
Filter connection count in status command to only count base nodes

Motivation and Context
---
We only want to show connection count to base nodes in the base node status line. Currently it counts all connected peers regarding of type.

How Has This Been Tested?
---
Manually tested by listing all connections and then comparing it to the status line to see that it filters base nodes

* docs(comms): adds documentation for comms public interface (tari-project#4033)

Description
---
- adds docs on comms public interfaces

Motivation and Context
---
Documentation

How Has This Been Tested?
---
`cargo doc --no-deps`

* refactor(dht): use CipherKey new type for diffie-hellman key  (tari-project#4038)

Description
---
- Document the DHT public interface
- Move forward layer to `outbound` module
- Remove unnecessary allocation from `encrypt` helper
- Return `CipherKey` new type from Diffie-Hellman helper function 
- Changes `encrypt` and `decrypt` to take in `CipherKey` newtype
- implement zeroize on drop for `CipherKey` new type

Motivation and Context
---
Documentation. 

`generate_ecdh_secret` returned a public key, which implies that it is safe to share publicly.
The `CipherKey` new type will zero it's contents before releasing it's memory.

The forward layer didn't have anything to do with SAF so shouldn't be located in that module.

How Has This Been Tested?
---
Existing tests pass
Manually, no breaking changes.

cargo doc --no-deps

* refactor(rpc-macros): split into smaller functions (clippy) (tari-project#4063)

Description
---
Split RPC function parsing into smaller functions

Motivation and Context
---
fixes `too_many_lines` Clippy
 
How Has This Been Tested?
---
No `clippy::too_many_lines` error

* fix: update daily test configuration (tari-project#4049)

Description
---
- adds options parameter for base node and wallet process start functions and updates calls as necessary 
- updates base node sync daily test config to use dibbler network
- configures base node process using cli overrides instead of environment variables

Motivation and Context
---
Configuration was refactored in tari-project#4005. Cucumber processes use localnet as default. This PR sets the network for dailies to dibbler. 

How Has This Been Tested?
---
Ran daily sync and recovery tests locally and checked that sync/recovery started.

* refactor(comms): reduce length of long functions (clippy) (tari-project#4065)

Description
---
Reduces LOC for `handle_request` and `handle_connection_manager_event` methods
Allows long function for `NoiseSocket::poll_write_or_flush` 

Motivation and Context
---
These methods exceeded the linter's maximum of 100 LOC.
`poll_write_or_flush` is a poll function and so handling the continue loop case vs the return case makes putting it in a separate function a little unwieldy, and possibly will incur a small performance cost.

How Has This Been Tested?
---
Code compiles, Existing tests pass, running a base node

* test(cucumber): use separate FFI target dir (tari-project#4067)

Description
---
Uses `./temp/ffi-target` as the cargo target dir for FFI compilation.

Motivation and Context
---
The wallet and wallet FFI need to be recompiled for each run of the integration tests. This is because the compilation target differs between native and ffi, so previous compilations are overwritten. This PR sets a separate the target dir for FFI so that subsequent runs do not need to recompile the wallet and wallet FFI on each run.

How Has This Been Tested?
---
Locally, the wallet and FFI do not need to be recompiled after the initial run.

* fix(key-manager): remove floating point math from mnemonic code (tari-project#4064)

Description
---
- removes floating-point math from `mnemonic::from_bytes`
- masks "last" byte before conversion to u8 (clippy)

Motivation and Context
---
This fixes clippy cast warnings and avoids the overhead of working with floating-points 

How Has This Been Tested?
---
This module is tested well, these tests pass.

* feat(p2p): adds tor.forward_address setting (tari-project#4070)

Description
---
Adds `tor.forward_address` to instruct tor to forward traffic to a custom address 

Motivation and Context
---
This setting is useful for docker setups where tor and the base node listener are accessible through DNS addresses.

How Has This Been Tested?
---
Manually: setting `tor.forward_address` and checking that traffic is forwarded through that port.

* ci: fix coverage (tari-project#4071)

Add llvm-tools-preview to toolchain

* chore: remove deprecated ExtendBytes, update EpochTime (tari-project#3914)

Description
---

- Removes references to `ExtendBytes`
- `EpochTime` no longer converted into `chrono` types

Motivation and Context
---
Ref tari-project/tari_utilities#25

How Has This Been Tested?
---

* chore(deps): bump ejs from 3.1.6 to 3.1.7 in /applications/tari_collectibles/web-app (tari-project#4057)

Bumps [ejs](https://github.com/mde/ejs) from 3.1.6 to 3.1.7.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/mde/ejs/releases">ejs's releases</a>.</em></p>
<blockquote>
<h2>v3.1.7</h2>
<p>Version 3.1.7</p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="https://github.com/mde/ejs/commit/820855ad75034e303be82c482c5eb8c6616da5c5"><code>820855a</code></a> Version 3.1.7</li>
<li><a href="https://github.com/mde/ejs/commit/076dcb643c5aed2e10c2847639c98fd923b72854"><code>076dcb6</code></a> Don't use template literal</li>
<li><a href="https://github.com/mde/ejs/commit/faf8b849a4e46db21fa813a08a7cbe00256a188a"><code>faf8b84</code></a> Skip test -- error message vary depending on JS runtime</li>
<li><a href="https://github.com/mde/ejs/commit/c028c343c127859f7189c3feee1e5239c199fec9"><code>c028c34</code></a> Update packages</li>
<li><a href="https://github.com/mde/ejs/commit/e4180b4fa2dd0e06d811f2c155f9d993ee9d8edd"><code>e4180b4</code></a> Merge pull request <a href="https://github-redirect.dependabot.com/mde/ejs/issues/629">#629</a> from markbrouwer96/main</li>
<li><a href="https://github.com/mde/ejs/commit/d5404d6e68d64c165580d238e7562ea6532c2541"><code>d5404d6</code></a> Updated jsdoc to 3.6.7</li>
<li><a href="https://github.com/mde/ejs/commit/7b0845d6aab044d244e8ec3818f0f70d05ef13c1"><code>7b0845d</code></a> Merge pull request <a href="https://github-redirect.dependabot.com/mde/ejs/issues/609">#609</a> from mde/dependabot/npm_and_yarn/glob-parent-5.1.2</li>
<li><a href="https://github.com/mde/ejs/commit/32fb8ee387383c67eaa5feff05347ef0504f3b15"><code>32fb8ee</code></a> Bump glob-parent from 5.1.1 to 5.1.2</li>
<li><a href="https://github.com/mde/ejs/commit/f21a9e464337032af5e61352c54b9dd8dae8fd1b"><code>f21a9e4</code></a> Merge pull request <a href="https://github-redirect.dependabot.com/mde/ejs/issues/603">#603</a> from mde/mde-null-proto-where-possible</li>
<li><a href="https://github.com/mde/ejs/commit/a50e46f002a78544e10982a037742cfb67fc7b80"><code>a50e46f</code></a> Merge pull request <a href="https://github-redirect.dependabot.com/mde/ejs/issues/606">#606</a> from akash-55/main</li>
<li>Additional commits viewable in <a href="https://github.com/mde/ejs/compare/v3.1.6...v3.1.7">compare view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=ejs&package-manager=npm_and_yarn&previous-version=3.1.6&new-version=3.1.7)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
- `@dependabot use these labels` will set the current labels as the default for future PRs for this repo and language
- `@dependabot use these reviewers` will set the current reviewers as the default for future PRs for this repo and language
- `@dependabot use these assignees` will set the current assignees as the default for future PRs for this repo and language
- `@dependabot use this milestone` will set the current milestone as the default for future PRs for this repo and language

You can disable automated security fix PRs for this repo from the [Security Alerts page](https://github.com/tari-project/tari/network/alerts).

</details>

* feat(collectibles): add list assets command (tari-project#3908)

Add the ability to list assets via the cli.

Run `tari_collectibles --help` for details

* fix: support safe non-interactive mode (tari-project#4072)

Non-interactive mode should NEVER prompt the user. This PR clears one
path where this happens: If a wallet does not exist and a password has
not been provided so that we can auto-create one. In this case, the
application should just exit.

Providing passwords on the command line is VERY bad practice, since
anyone with access to the machine can see the password in plaintext by
inspecting the running jobs.

The ability to read the password from the commaond-line, OR config file OR envar was
removed in a previous PR, and this is rectified here.

How Has This Been Tested?
---
Manually, with various CLI and envar combinations

* feat: allow network to be set by TARI_NETWORK env var (tari-project#4073)

Description
---
Allows the base directory to be set using the `TARI_BASE_DIR` environment variable.
Allows the current network to be set by the `TARI_NETWORK` environment variable.
Allows the password to be passed in using an environment variable `TARI_WALLET_PASSWORD` in `tari_console_wallet`.

Motivation and Context
---
In some environments, it is desirable to use environment variables instead of passing cli arguments. 

How Has This Been Tested?
---
Setting env var `TARI_NETWORK=mainnet` and `dibbler` on the base node and wallet.
Setting env var `TARI_WALLET_PASSWORD = 'xxx'` on the console wallet

* chore: update launchpad backend (tari-project#4017)

* feat: react_based launchpad frontend

This is a long-lived feature branch. Do not merge it until complete.

This commit disables many of the long-running CI tasks that are not
relevant to this branch. HOWEVER, check the TODOs in the .github folder
when this branch gets merged into `development` and remove them, OR
cherry-pick to revery this specific commit.

* Remove deprecated useBootstrapper option

`useBootstrapper` is no longer a valid configuration option in
tauri.conf.json, so we remove it.

* Switch to public minideb base package

The quay.io version of bitnami's minideb package does not seem to work
anymore.
The commit also leverages `install_packages` which removes the
boilerplate of having to `apt update && apt install .. & rm
/var/dpkg/...`

Add platform (arm64 / amd64) to docker tag and switch minideb source

Add the platform marker to all docker image tags

* Add architecture-dependent image resolution

Add a function to use the appropriate docker image based on CPU architecture, e.g. latest-arm64 for M1 chips, or latest-amd64 for Intel chips.

* Configure static base node parameters in config file

With the new config setup, some config setting names are no longer
network-dependent, so they can be moved into the lauchpad config.toml
template.

* Update docker configs for wallet and mm_proxy

Moves static config variables to the config.toml file, and dynamic
variables are updated according to the config variable names.

* Pull out wallet command

Keep interface consistent with rest of code and provide a `wallet_cmd`
function for the docker execution command arguments.

Fixes a small envar string typo.

* Update SHA3 miner image config

* Update config.toml [miner] section so that it connects to the wallet
  and base node
* Pull command line arguments into its own procedure, in line with other
  images

* Add multiple monero stagenet urls as default

* fix: issues with launchpad backend  (tari-project#4074)

Description
--

Fixes issues with launchpad backend. See individual commit messages for changes.

How Has This Been Tested?
---
Manually

* test: unignore working tests (tari-project#4020)

Description
---
- unignores `store_and_retrieve_blocks_from_contents` and  `test_transaction_cancellation`
- fixes flaky `store_and_retrieve_blocks_from_contents` test 

Motivation and Context
---
These tests work

How Has This Been Tested?
---
Tests pass

* Set up new Launchpad v2 with Tauri and CRA

* port (copy) backend from previous launchpad to launchpad_v2

* call tari backend for list of available docker images

* remove legacy main.rs from src-tauri

* added .gitkeep to cra build directory to avoid CI panic

* changed javascript build to build launchpad_v2

* Set up React project tree

* Add ESLint

* Add no-console eslint warning

* Remove package-json.lock

* Switch tabs to spaces

* Add SVG icon components for extracted Figma icon set (#53)

* Adding svg icon components for extracted Figma icon set

* Add initial content to the Readme.md (#52)

* Add initial content to the Readme.md

* Add techs to Readme

* add information about gui directory structure to readme

Co-authored-by: tarnas <tarnas@altalogy.com>

* Adding styled components, replacing yarn.lock with package-lock

* Updating README to use npm

* Add colors & gradients, linting icon component files

* Add theme files, refactoring

* Add color variables to gradients where possible

* feat: launchpad CI (#55)

* Add CI job for launchpad

* Update .circleci/config.yml

Co-authored-by: Mateusz Tarnaski <tarnas14@gmail.com>

Co-authored-by: Mateusz Tarnaski <tarnas14@gmail.com>

* quick and dirty one-file dropdown

* added label to select

* extracted value and options and made it configurable in the select

* extract Select to a reusable dumb component

* refactor WithTheme HoC to correctly set displayName

* extract transparent background to theme

* fix types for styledComponents in Select

* add basic tests to Select component

* typescript children: ReactNode typing

* change darkBackground prop name to inverted

* use default export in Select component

* move type declarations to separate types.ts files

* fix test to use correct import

* feat: add typography and fonts

* add jsdoc to Select component

* improve jsdoc

* feat: main layout (#64)

* Main Layout, tests and Prettier.

- set up Main Layout
- set up unit tests
- add Prettier
- add primitive UI components: Button, Switch and Logo

* Fixes according to the PR review

* improved styling with the inverted values

* fix Select tests - pass correct theme

* remove last darkBackground reference

* avoid using optional chaining to not angry CI gods

* hooked up prettier to eslint and fixed all

* rename MyListboxProps to SelectProps

* feat(primitive): add text component
refer issue #74

* refactor: move globalStyles, set default Text type

* remove unnecessary fragment, formatting

* chore: eslint rule update and readme addition (#79)

* add eslint curly spaces rule

* add development practices to README

* add examples of acceptable JSDoc for react component

* Add missing property to jsdoc example

Co-authored-by: Tom <tom@altalogy.com>

Co-authored-by: Tom <tom@altalogy.com>

* Fixed CI tests, refactor d.ts files

* Removed GlobalStyle, moved fonts to App.css

* lint fix with prettier after merge

* dirty one file implementation of a box

* move Box component to separate files

* add all styles declaration to DefaultTheme in custom.d.ts

* add jsdoc to Box component

* add basic test for Box component

* update Select tests to conform to test standard

* fix Box test

* Launchpad on Github Actions (#88)

* Add tag component files, update theme

* Add unit tests

* More unit tests, changes from PR comments

* Adjust the audit job (#91)

* feat: footer & keyboardkeys (#86)

* Add Footer and KeyboardKeys components

* Fix lint issues

* Fix typo

* Improve Switch component (#89)

* chore: tests for icons (#97)

* Add tests for Icons

* Replace require with import

* layout for inactive state of base node

* prepared layout for dark (running) base node

* extract view component from base node container

* connect base node container to store; improve styling

* cleanup and document Loading component

* fix unused payload in base node slice

* add placeholder for "running" tag on basenode

* add Running tag to a running base node container

* add tests for Loading indicator

* move base node store slice to /store/baseNode

* reverse Network type import

* feat: tabs and ts issue (#94)

* Improve Tabs component and its usage in DashboardContainer

* Upgrade Tabs component and fix TS

* Fix text style type

* Remove unused props and imports (#99)

* Fix box sizing of the main container (#102)

* Add Text test (#106)

* Change the size of large tags to 26px (#104)

* Polishing Select component: text color and spacing (#105)

* prepared ui for password input

* include tari signed in wallet password page

* prepared main wallet layout (without inputs)

* add loading prop to button

* connect wallet to store

* fix tabs component to memoize tabs content

* move lines from wallet components to locales

* remove Send funds button

* add password input and disabling submit button below certain password length threshold

* border-box sizing for box

* change loading indicator to be relatively positioned in button

* cleaned up Button disabled styling; removed unnecessary variants and types

* allowing loading and disabled to be controlled separately

* rename Chart icon component

* add WalletContainer basic tests

* make sure buttons always have the same height/width

* Add password strength + smiley icons

* Add TextInput component files, fix password strength icons, update themes

* Add unit tests

* Add JSDoc

* Add unit tests for new icons, delete icon images from assets

* Modal component

* extracted modal styling to separate files

* add modal tests

* add tari wallet box with emoji toggle

* extract wallet components and styles to separate files

* justify base node to center

* introduce CenteredLayout component to layout basenode and wallet containers centered

* Add copy/paste/select keyboard functionality

* dont clear password field

* fix tari wallet id box

* extract reusable Input component and built TextInput on top of it

* add PasswordInput and use it in wallet password box

* disabling input icon when whole component is disabled

* set up static layout of settings modal

* make the cancel button on settings "secondary"

* fix buttons in icon for settings button in title bar

* created static layout for wallet settings

* extracted components to separate files, connected SettingsContainer to store

* allow opening settings on specific page

* connecting wallet settings page component to store

* showing `running` indicator on wallet box conditionally

* pending indicator on button in wallet settings instead of running tag

* extracted styled components from CopyBox

* cleaned up WalletSettings component with extracted styles and locales

* dont block wallet settings if wallet is locked

* Fixing Tag component background styling, App.tsx typo

* Fixing svg icon colour attributes

* feat: mining dashboard (#108)

* Set up the Mining dashboard layout

* Add handling mining node states

* Add default mining box style and config

* Fix typo and mining header styling

* add JSDoc for copybox

* remove Link component, use Button with href on wallet settings

* moved react gui over to launchpad

* update github actions to point to gui-react directory

* remove launchpad_v2 workspace from root Cargo.toml

* remove reference to tauri-apps/cli from gui-react (not needed)

* Remove useBootstrapper

* added `dev-vue` package.json script to launch vue version of the application in development mode

* remove useBoostrapper flag from tauri.vue.conf.json after bumping to rc9

* remove tauri scripts from gui-react

* Fix typography letter-spacing

Co-authored-by: Martin Stefcek <35243812+Cifko@users.noreply.github.com>
Co-authored-by: Mike the Tike <mikethetike@tari.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: mrnaveira <47919901+mrnaveira@users.noreply.github.com>
Co-authored-by: SW van Heerden <swvheerden@gmail.com>
Co-authored-by: Stan Bondi <sdbondi@users.noreply.github.com>
Co-authored-by: Cayle Sharrock <CjS77@users.noreply.github.com>
Co-authored-by: tomaszantas <tom@altalogy.com>
Co-authored-by: Cormac Quaid <thequad@gmail.com>
Co-authored-by: Cormac Quaid <69508715+corquaid@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants