1231: feat(asb): allow config overrides from env vars r=delta1 a=delta1
- upgrades config crate to 0.13.2 #1087
- adds environment source for config overrides
This change allows the ASB config to be overridden by env vars starting with `ASB__`.
Adds a test to check this, and updates the de/serialization of the network `listen` and `external_addresses` fields to be a comma separated string from the environment. The `separator` is a pair of underscores, which is necessary since some of the fields already have underscores in their names.
Example env var: `ASB__NETWORK__EXTERNAL_ADDRESSES="/dns4/example.org/tcp/9939,/ip4/1.2.3.4/tcp/9940"`
This particular change will help when running the ASB as a docker container (wip), allowing the config to be set in the env for docker-compose etc.
Co-authored-by: Byron Hambly <bhambly@blockstream.com>
- upgrades to bdk 0.24 #1198
- adds a regression test for opening older wallets #1183
- adds a migration for older wallets that encounter the ChecksumMismatch
error #1182
- bdk to 0.22.0 #1126
- ecdsa_fun to 7c3d592 #1127
- sigma_fun to 7c3d592 #1128
- sha2 to 0.10.2 #948
- serde to 1.0.144 #1115
- bitcoin-harness to bff9a64
Revert "ci: specify previous dprint version until fixed"
This reverts commit 11eb1737ce.
- swap cli will check its wallet rpc version and delete the binary if
its version does not match on "Fluorine Fermi". it will then download
the newer version.
- adds download progress for wallet rpc
1008: Upgrade libp2p and stabilized the version r=delta1 a=lescuer97
This is an upgrade for libp2p, I did a previous PR but got mixed up with rebases
Co-authored-by: leonardo <leoescuer@protonmail.com>
Co-authored-by: Leonardo Escuer <47948594+lescuer97@users.noreply.github.com>
Co-authored-by: Byron Hambly <bhambly@blockstream.com>
1071: Bump pem from 1.0.2 to 1.1.0 r=delta1 a=dependabot[bot]
Bumps [pem](https://github.com/jcreekmore/pem-rs) from 1.0.2 to 1.1.0.
<details>
<summary>Commits</summary>
<ul>
<li><a href="2d83242a3e"><code>2d83242</code></a> (cargo-release) version 1.1.0</li>
<li><a href="0b37bd8925"><code>0b37bd8</code></a> Merge pull request <a href="https://github-redirect.dependabot.com/jcreekmore/pem-rs/issues/34">#34</a> from tmpfs/serde-feature</li>
<li><a href="6381ef4f29"><code>6381ef4</code></a> Update docs.</li>
<li><a href="1f22b5fd0a"><code>1f22b5f</code></a> Update serde implementation to use encode()/parse().</li>
<li><a href="79cf854fca"><code>79cf854</code></a> Support optional serde feature.</li>
<li><a href="2ebf2b1857"><code>2ebf2b1</code></a> (cargo-release) start next development iteration 1.0.3-alpha.0</li>
<li>See full diff in <a href="https://github.com/jcreekmore/pem-rs/compare/v1.0.2...v1.1.0">compare view</a></li>
</ul>
</details>
<br />
[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=pem&package-manager=cargo&previous-version=1.0.2&new-version=1.1.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)
You can trigger a rebase of this PR 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)
</details>
1083: build(deps): bump async-trait from 0.1.56 to 0.1.57 r=delta1 a=dependabot[bot]
Bumps [async-trait](https://github.com/dtolnay/async-trait) from 0.1.56 to 0.1.57.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/dtolnay/async-trait/releases">async-trait's releases</a>.</em></p>
<blockquote>
<h2>0.1.57</h2>
<ul>
<li>Add categories to crates.io metadata</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="7aa083ce02"><code>7aa083c</code></a> Release 0.1.57</li>
<li><a href="4124033b58"><code>4124033</code></a> Revert "Temporarily disable clippy on tests due to ICE"</li>
<li><a href="81704b37d0"><code>81704b3</code></a> Add categories to crates.io metadata</li>
<li><a href="f997ace3e9"><code>f997ace</code></a> Sort package entries in Cargo.toml</li>
<li><a href="a386446d3d"><code>a386446</code></a> Avoid cargo 1.43–1.45 in GitHub Actions</li>
<li><a href="2cc3532baf"><code>2cc3532</code></a> Merge pull request <a href="https://github-redirect.dependabot.com/dtolnay/async-trait/issues/209">#209</a> from dtolnay/ice</li>
<li><a href="f1d674605b"><code>f1d6746</code></a> Temporarily disable clippy on tests due to ICE</li>
<li><a href="c93e97c451"><code>c93e97c</code></a> Ignore explicit_auto_deref clippy lint</li>
<li><a href="408e77f5d4"><code>408e77f</code></a> Update ui test suite to nightly-2022-07-02</li>
<li><a href="d0a7da03f5"><code>d0a7da0</code></a> Merge pull request <a href="https://github-redirect.dependabot.com/dtolnay/async-trait/issues/208">#208</a> from dtolnay/oncecell</li>
<li>Additional commits viewable in <a href="https://github.com/dtolnay/async-trait/compare/0.1.56...0.1.57">compare view</a></li>
</ul>
</details>
<br />
[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=async-trait&package-manager=cargo&previous-version=0.1.56&new-version=0.1.57)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)
You can trigger a rebase of this PR 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)
</details>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
1088: feat: add debugging info for failed to fetch transaction r=delta1 a=delta1
Add the jsonrpc error message and data to tracing calls to try debug #1061 "monero-wallet-rpc failed to fetch transaction"
Co-authored-by: Byron Hambly <bhambly@blockstream.com>
1086: fix btc for xmr calculation error r=delta1 a=delta1
The calculation overflow fix in #1068 did not account for XMR < 1 which
resulted in truncation when dividing by the PICO_OFFSET.
This commit uses `Decimal` to do the calculation at fixed precision and
adds a number of test values to verify the calculation.
Closes#1084
Co-authored-by: Byron Hambly <bhambly@blockstream.com>
The calculation overflow fix in #1068 did not account for XMR < 1 which
resulted in truncation when dividing by the PICO_OFFSET.
This commit uses `Decimal` to do the calculation at fixed precision and
adds a number of test values to verify the calculation.
Closes#1084
1068: fix potential overflow in `max_bitcoin_for_price` r=delta1 a=delta1
In testing, ASB panicked in `max_bitcoin_for_price` when the Monero balance x Bitcoin price was enough to overflow `u64`.
This PR changes the function to do the piconero offset division first, and then to use `checked_mul` to return None if the calculation would overflow. This required changing the function return signature to an `Option`. Additional tests for the function were also added.
MONERO_FEE was also changed from 0.000030 to 0.000016, which is still double the current median transaction fee listed at
https://www.monero.how/monero-transaction-fees as of 2022-07-28.
Co-authored-by: Byron Hambly <bhambly@blockstream.com>
In testing, ASB panicked in `max_bitcoin_for_price` when the Monero
balance x Bitcoin price was enough to overflow `u64`.
This commit changes the function to do the piconero offset division
first, and then to use `checked_mul` to return None if the calculation
would overflow. This required changing the function return
signature to an `Option`. Additional tests for the function were also added.
MONERO_FEE was changed from 0.000030 to 0.000016, which is still
double the current median transaction fee listed at
https://www.monero.how/monero-transaction-fees as of 2022-07-28.
On Linux and macOS, no program output was being observed.
This is referenced in the [LocalTime] docs for `tracing-subscriber`,
which links to this [unsoundness issue] in the time crate.
Rather than introducing a possible vector for undefined behaviour and
segfaults, I have just changed the logging to use UTC time instead.
When running the ASB as a systemd service, one would generally use the
`--disable-timestamps` flag anyway as systemd adds its own timestamps
which can be local to the server.
If the situation with `tracing-subscriber` and the time crate is fixed
then this can be updated.
This commit also updates the `tracing-subscriber` and `tracing-appender`
dependencies, closing #987.
[LocalTime]: https://docs.rs/tracing-subscriber/latest/tracing_subscriber/fmt/time/struct.LocalTime.html
[unsoundness issue]: https://github.com/time-rs/time/issues/293#issuecomment-748151025