diff --git a/.cargo/config.toml b/.cargo/config.toml
index 0c1c209f..b707df9d 100644
--- a/.cargo/config.toml
+++ b/.cargo/config.toml
@@ -1,2 +1,6 @@
[target.armv7-unknown-linux-gnueabihf]
linker = "arm-linux-gnueabihf-gcc"
+
+# windows defaults to smaller stack sizes which isn't enough
+[target.'cfg(windows)']
+rustflags = ["-C", "link-args=/STACK:8388608"]
diff --git a/.github/workflows/build-release-binaries.yml b/.github/workflows/build-release-binaries.yml
index 8e842a00..2fdaabdc 100644
--- a/.github/workflows/build-release-binaries.yml
+++ b/.github/workflows/build-release-binaries.yml
@@ -6,8 +6,9 @@ on:
jobs:
build_binaries:
- name: Build swap and asb binaries
+ name: Build
strategy:
+ fail-fast: false
matrix:
include:
- bin: swap
@@ -20,6 +21,10 @@ jobs:
archive_ext: tar
- bin: swap
target: x86_64-apple-darwin
+ os: macos-12
+ archive_ext: tar
+ - bin: swap
+ target: aarch64-apple-darwin
os: macos-latest
archive_ext: tar
- bin: swap
@@ -36,6 +41,10 @@ jobs:
archive_ext: tar
- bin: asb
target: x86_64-apple-darwin
+ os: macos-12
+ archive_ext: tar
+ - bin: asb
+ target: aarch64-apple-darwin
os: macos-latest
archive_ext: tar
- bin: asb
@@ -45,34 +54,33 @@ jobs:
runs-on: ${{ matrix.os }}
steps:
- name: Checkout tagged commit
- uses: actions/checkout@v3.5.3
+ uses: actions/checkout@v4.2.1
with:
ref: ${{ github.event.release.target_commitish }}
token: ${{ secrets.BOTTY_GITHUB_TOKEN }}
- - uses: Swatinem/rust-cache@v2.6.0
+ - uses: Swatinem/rust-cache@v2.7.5
- uses: dtolnay/rust-toolchain@master
with:
- toolchain: 1.63
- targets: armv7-unknown-linux-gnueabihf
+ toolchain: "1.74"
+
+ - name: Cross Build ${{ matrix.target }} ${{ matrix.bin }} binary
+ if: matrix.target == 'armv7-unknown-linux-gnueabihf'
+ run: |
+ curl -L "https://github.com/cross-rs/cross/releases/download/v0.2.5/cross-x86_64-unknown-linux-gnu.tar.gz" | tar xzv
+ sudo mv cross /usr/bin
+ sudo mv cross-util /usr/bin
+ cross build --target=${{ matrix.target }} --release --package swap --bin ${{ matrix.bin }}
- name: Build ${{ matrix.target }} ${{ matrix.bin }} release binary
- uses: actions-rs/cargo@v1
- with:
- command: build
- args: --target=${{ matrix.target }} --release --package swap --bin ${{ matrix.bin }}
- use-cross: true
+ if: matrix.target != 'armv7-unknown-linux-gnueabihf'
+ run: cargo build --target=${{ matrix.target }} --release --package swap --bin ${{ matrix.bin }}
- name: Smoke test the binary
- if: matrix.target != 'armv7-unknown-linux-gnueabihf' # armv7-unknown-linux-gnueabihf is only cross-compiled, no smoke test
+ if: matrix.target != 'armv7-unknown-linux-gnueabihf'
run: target/${{ matrix.target }}/release/${{ matrix.bin }} --help
- # Remove once python 3 is the default
- - uses: actions/setup-python@v4
- with:
- python-version: "3.x"
-
- id: create-archive-name
shell: python # Use python to have a prettier name for the archive on Windows.
run: |
@@ -89,7 +97,7 @@ jobs:
print(f'::set-output name=archive::{archive_name}')
- name: Pack macos archive
- if: matrix.os == 'macos-latest'
+ if: startsWith(matrix.os, 'macos')
shell: bash
run: gtar -C ./target/${{ matrix.target }}/release --create --file=${{ steps.create-archive-name.outputs.archive }} ${{ matrix.bin }}
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index 055e61b5..eda55e3e 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -4,8 +4,6 @@ on:
pull_request: # Need to run on pull-requests, otherwise PRs from forks don't run
push:
branches:
- - "staging" # Bors uses this branch
- - "trying" # Bors uses this branch
- "master" # Always build head of master for the badge in the README
jobs:
@@ -13,14 +11,14 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout sources
- uses: actions/checkout@v3.5.3
+ uses: actions/checkout@v4.2.1
- uses: dtolnay/rust-toolchain@master
with:
- toolchain: 1.67
+ toolchain: "1.74"
components: clippy,rustfmt
- - uses: Swatinem/rust-cache@v2.6.0
+ - uses: Swatinem/rust-cache@v2.7.5
- name: Check formatting
uses: dprint/check@v2.2
@@ -37,9 +35,9 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout sources
- uses: actions/checkout@v3.5.3
+ uses: actions/checkout@v4.2.1
- - uses: Swatinem/rust-cache@v2.6.0
+ - uses: Swatinem/rust-cache@v2.7.5
- name: Build swap
run: cargo build --bin swap
@@ -51,12 +49,12 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout sources
- uses: actions/checkout@v3.5.3
+ uses: actions/checkout@v4.2.1
- - uses: Swatinem/rust-cache@v2.6.0
+ - uses: Swatinem/rust-cache@v2.7.5
- name: Install sqlx-cli
- run: cargo install sqlx-cli
+ run: cargo install --locked --version 0.6.3 sqlx-cli
- name: Run sqlite_dev_setup.sh script
run: |
@@ -72,19 +70,21 @@ jobs:
- target: armv7-unknown-linux-gnueabihf
os: ubuntu-latest
- target: x86_64-apple-darwin
+ os: macos-12
+ - target: aarch64-apple-darwin
os: macos-latest
- target: x86_64-pc-windows-msvc
os: windows-latest
runs-on: ${{ matrix.os }}
steps:
- name: Checkout sources
- uses: actions/checkout@v3.5.3
+ uses: actions/checkout@v4.2.1
- - uses: Swatinem/rust-cache@v2.6.0
+ - uses: Swatinem/rust-cache@v2.7.5
- uses: dtolnay/rust-toolchain@master
with:
- toolchain: 1.67
+ toolchain: "1.74"
targets: armv7-unknown-linux-gnueabihf
- name: Build binary
@@ -100,13 +100,13 @@ jobs:
run: cross build -p swap --target ${{ matrix.target }}
- name: Upload swap binary
- uses: actions/upload-artifact@v3
+ uses: actions/upload-artifact@v4
with:
name: swap-${{ matrix.target }}
path: target/${{ matrix.target }}/debug/swap
- name: Upload asb binary
- uses: actions/upload-artifact@v3
+ uses: actions/upload-artifact@v4
with:
name: asb-${{ matrix.target }}
path: target/${{ matrix.target }}/debug/asb
@@ -117,10 +117,23 @@ jobs:
os: [ubuntu-latest, macos-latest]
runs-on: ${{ matrix.os }}
steps:
- - name: Checkout sources
- uses: actions/checkout@v3.5.3
+ - name: (Free disk space on Ubuntu)
+ if: matrix.os == 'ubuntu-latest'
+ uses: jlumbroso/free-disk-space@54081f138730dfa15788a46383842cd2f914a1be
+ with:
+ # removing all of these takes ~10 mins, so just do as needed
+ android: true
+ dotnet: true
+ haskell: true
+ docker-images: false
+ large-packages: false
+ swap-storage: false
+ tool-cache: false
- - uses: Swatinem/rust-cache@v2.6.0
+ - name: Checkout sources
+ uses: actions/checkout@v4.2.1
+
+ - uses: Swatinem/rust-cache@v2.7.5
- name: Build tests
run: cargo build --tests --workspace --all-features
@@ -144,20 +157,47 @@ jobs:
alice_and_bob_refund_using_cancel_and_refund_command,
alice_and_bob_refund_using_cancel_then_refund_command,
alice_and_bob_refund_using_cancel_and_refund_command_timelock_not_expired,
+ alice_manually_punishes_after_bob_dead_and_bob_cancels,
punish,
alice_punishes_after_restart_bob_dead,
alice_manually_punishes_after_bob_dead,
alice_refunds_after_restart_bob_refunded,
ensure_same_swap_id,
concurrent_bobs_before_xmr_lock_proof_sent,
+ concurrent_bobs_after_xmr_lock_proof_sent,
alice_manually_redeems_after_enc_sig_learned,
+ happy_path_bob_offline_while_alice_redeems_btc,
]
runs-on: ubuntu-latest
steps:
- name: Checkout sources
- uses: actions/checkout@v3.5.3
+ uses: actions/checkout@v4.2.1
- - uses: Swatinem/rust-cache@v2.6.0
+ - uses: Swatinem/rust-cache@v2.7.5
- name: Run test ${{ matrix.test_name }}
run: cargo test --package swap --all-features --test ${{ matrix.test_name }} -- --nocapture
+
+ rpc_tests:
+ runs-on: ubuntu-latest
+ steps:
+ - name: Checkout sources
+ uses: actions/checkout@v4.2.1
+
+ - uses: Swatinem/rust-cache@v2.7.5
+
+ - name: Run RPC server tests
+ run: cargo test --package swap --all-features --test rpc -- --nocapture
+
+ check_stable:
+ runs-on: ubuntu-latest
+ steps:
+ - name: Checkout sources
+ uses: actions/checkout@v4.2.1
+
+ - uses: dtolnay/rust-toolchain@stable
+
+ - uses: Swatinem/rust-cache@v2.7.5
+
+ - name: Run cargo check on stable rust
+ run: cargo check --all-targets
diff --git a/.github/workflows/create-release.yml b/.github/workflows/create-release.yml
index f3bee225..3dcd492d 100644
--- a/.github/workflows/create-release.yml
+++ b/.github/workflows/create-release.yml
@@ -11,7 +11,7 @@ jobs:
if: github.event.pull_request.merged == true && startsWith(github.event.pull_request.head.ref, 'release/')
runs-on: ubuntu-latest
steps:
- - uses: actions/checkout@v3.5.3
+ - uses: actions/checkout@v4.2.1
- name: Extract version from branch name
id: extract-version
diff --git a/.github/workflows/draft-new-release.yml b/.github/workflows/draft-new-release.yml
index b25b6fdc..bd926d53 100644
--- a/.github/workflows/draft-new-release.yml
+++ b/.github/workflows/draft-new-release.yml
@@ -12,7 +12,7 @@ jobs:
name: "Draft a new release"
runs-on: ubuntu-latest
steps:
- - uses: actions/checkout@v3.5.3
+ - uses: actions/checkout@v4.2.1
with:
token: ${{ secrets.BOTTY_GITHUB_TOKEN }}
@@ -20,7 +20,7 @@ jobs:
run: git checkout -b release/${{ github.event.inputs.version }}
- name: Update changelog
- uses: thomaseizinger/keep-a-changelog-new-release@1.3.0
+ uses: thomaseizinger/keep-a-changelog-new-release@3.1.0
with:
version: ${{ github.event.inputs.version }}
changelogPath: CHANGELOG.md
@@ -42,8 +42,8 @@ jobs:
- name: Commit changelog and manifest files
id: make-commit
env:
- DPRINT_VERSION: 0.39.1
- RUST_TOOLCHAIN: 1.67
+ DPRINT_VERSION: "0.39.1"
+ RUST_TOOLCHAIN: "1.74"
run: |
rustup component add rustfmt --toolchain "$RUST_TOOLCHAIN-x86_64-unknown-linux-gnu"
curl -fsSL https://dprint.dev/install.sh | sh -s $DPRINT_VERSION
@@ -58,7 +58,7 @@ jobs:
run: git push origin release/${{ github.event.inputs.version }} --force
- name: Create pull request
- uses: thomaseizinger/create-pull-request@1.3.1
+ uses: thomaseizinger/create-pull-request@1.4.0
with:
GITHUB_TOKEN: ${{ secrets.BOTTY_GITHUB_TOKEN }}
head: release/${{ github.event.inputs.version }}
diff --git a/.github/workflows/preview-release.yml b/.github/workflows/preview-release.yml
index 37e04333..b216d283 100644
--- a/.github/workflows/preview-release.yml
+++ b/.github/workflows/preview-release.yml
@@ -10,7 +10,7 @@ jobs:
name: Create preview release
runs-on: ubuntu-latest
steps:
- - uses: actions/checkout@v3.5.3
+ - uses: actions/checkout@v4.2.1
- name: Delete 'preview' release
uses: larryjoelane/delete-release-action@v1.0.24
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 0768910b..c22e533e 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -7,6 +7,39 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
## [Unreleased]
+- ASB + CLI: You can now use the `logs` command to retrieve logs stored in the past, redacting addresses and id's using `logs --redact`.
+- ASB: The `--disable-timestamp` flag has been removed
+
+## [0.13.4] - 2024-07-25
+
+- ASB: The `history` command can now be used while the asb is running.
+- ASB: Retry locking of Monero if it fails on first attempt
+
+## [0.13.3] - 2024-07-15
+
+- Introduced a cooperative Monero redeem feature for Bob to request from Alice if Bob is punished for not refunding in time. Alice can choose to cooperate but is not obligated to do so. This change is backwards compatible. To attempt recovery, resume a swap in the "Bitcoin punished" state. Success depends on Alice being active and still having a record of the swap. Note that Alice's cooperation is voluntary and recovery is not guaranteed
+- CLI: `--change-address` can now be omitted. In that case, any change is refunded to the internal bitcoin wallet.
+
+## [0.13.2] - 2024-07-02
+
+- CLI: Buffer received transfer proofs for later processing if we're currently running a different swap
+- CLI: We now display the reason for a failed cancel-refund operation to the user (#683)
+
+## [0.13.1] - 2024-06-10
+
+- Add retry logic to monero-wallet-rpc wallet refresh
+
+## [0.13.0] - 2024-05-29
+
+- Minimum Supported Rust Version (MSRV) bumped to 1.74
+- Lowered default Bitcoin confirmation target for Bob to 1 to make sure Bitcoin transactions get confirmed in time
+- Added support for starting the CLI (using the `start-daemon` subcommand) as a Daemon that accepts JSON-RPC requests
+- Update monero-wallet-rpc version to v0.18.3.1
+
+## [0.12.3] - 2023-09-20
+
+- Swap: If no Monero daemon is manually specified, we will automatically choose one from a list of public daemons by connecting to each and checking their availability.
+
## [0.12.2] - 2023-08-08
### Changed
@@ -345,7 +378,13 @@ It is possible to migrate critical data from the old db to the sqlite but there
- Fixed an issue where Alice would not verify if Bob's Bitcoin lock transaction is semantically correct, i.e. pays the agreed upon amount to an output owned by both of them.
Fixing this required a **breaking change** on the network layer and hence old versions are not compatible with this version.
-[Unreleased]: https://github.com/comit-network/xmr-btc-swap/compare/0.12.2...HEAD
+[unreleased]: https://github.com/comit-network/xmr-btc-swap/compare/0.13.4...HEAD
+[0.13.4]: https://github.com/comit-network/xmr-btc-swap/compare/0.13.3...0.13.4
+[0.13.3]: https://github.com/comit-network/xmr-btc-swap/compare/0.13.2...0.13.3
+[0.13.2]: https://github.com/comit-network/xmr-btc-swap/compare/0.13.1...0.13.2
+[0.13.1]: https://github.com/comit-network/xmr-btc-swap/compare/0.13.0...0.13.1
+[0.13.0]: https://github.com/comit-network/xmr-btc-swap/compare/0.12.3...0.13.0
+[0.12.3]: https://github.com/comit-network/xmr-btc-swap/compare/0.12.2...0.12.3
[0.12.2]: https://github.com/comit-network/xmr-btc-swap/compare/0.12.1...0.12.2
[0.12.1]: https://github.com/comit-network/xmr-btc-swap/compare/0.12.0...0.12.1
[0.12.0]: https://github.com/comit-network/xmr-btc-swap/compare/0.11.0...0.12.0
diff --git a/Cargo.lock b/Cargo.lock
index f0b51599..c31fffba 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -2,6 +2,21 @@
# It is not intended for manual editing.
version = 3
+[[package]]
+name = "addr2line"
+version = "0.21.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8a30b2e23b9e17a9f90641c7ab1549cd9b44f296d3ccbf309d2863cfe398a0cb"
+dependencies = [
+ "gimli",
+]
+
+[[package]]
+name = "adler"
+version = "1.0.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe"
+
[[package]]
name = "adler32"
version = "1.2.0"
@@ -49,7 +64,7 @@ version = "0.7.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "fcb51a0695d8f838b1ee009b3fbf66bda078cd64590202a864a8f3e8c4315c47"
dependencies = [
- "getrandom 0.2.6",
+ "getrandom 0.2.11",
"once_cell",
"version_check",
]
@@ -63,6 +78,15 @@ dependencies = [
"memchr",
]
+[[package]]
+name = "aho-corasick"
+version = "1.1.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916"
+dependencies = [
+ "memchr",
+]
+
[[package]]
name = "ansi_term"
version = "0.11.0"
@@ -83,9 +107,9 @@ dependencies = [
[[package]]
name = "anyhow"
-version = "1.0.71"
+version = "1.0.91"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9c7d0618f0e0b7e8ff11427422b64564d5fb0be1940354bfe2e0529b18a9d9b8"
+checksum = "c042108f3ed77fd83760a5fd79b53be043192bb3b9dba91d8c574c0ada7850c8"
[[package]]
name = "arrayref"
@@ -105,6 +129,16 @@ version = "0.7.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9d6e24d2cce90c53b948c46271bfb053e4bdc2db9b5d3f65e20f8cf28a1b7fc3"
+[[package]]
+name = "assert-json-diff"
+version = "2.0.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "47e4f2b81832e72834d7518d8487a0396a28cc408186a2e8854c0f98011faf12"
+dependencies = [
+ "serde",
+ "serde_json",
+]
+
[[package]]
name = "async-compression"
version = "0.3.15"
@@ -114,19 +148,28 @@ dependencies = [
"bzip2",
"futures-core",
"memchr",
- "pin-project-lite 0.2.9",
+ "pin-project-lite 0.2.13",
"tokio",
]
[[package]]
-name = "async-trait"
-version = "0.1.68"
+name = "async-lock"
+version = "2.7.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b9ccdd8f2a161be9bd5c023df56f1b2a0bd1d83872ae53b71a84a12c9bf6e842"
+checksum = "fa24f727524730b077666307f2734b4a1a1c57acb79193127dcc8914d5242dd7"
+dependencies = [
+ "event-listener",
+]
+
+[[package]]
+name = "async-trait"
+version = "0.1.83"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "721cae7de5c34fbb2acd27e21e6d2cf7b886dce0c27388d46c4e6c47ea4318dd"
dependencies = [
"proc-macro2",
"quote",
- "syn 2.0.15",
+ "syn 2.0.79",
]
[[package]]
@@ -139,7 +182,7 @@ dependencies = [
"futures-sink",
"futures-util",
"memchr",
- "pin-project-lite 0.2.9",
+ "pin-project-lite 0.2.13",
]
[[package]]
@@ -184,13 +227,28 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b62ddb9cb1ec0a098ad4bbf9344d0713fa193ae1a80af55febcff2627b6a00c1"
dependencies = [
"futures-core",
- "getrandom 0.2.6",
+ "getrandom 0.2.11",
"instant",
- "pin-project-lite 0.2.9",
+ "pin-project-lite 0.2.13",
"rand 0.8.3",
"tokio",
]
+[[package]]
+name = "backtrace"
+version = "0.3.69"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2089b7e3f35b9dd2d0ed921ead4f6d318c27680d4a5bd167b3ee120edb105837"
+dependencies = [
+ "addr2line",
+ "cc",
+ "cfg-if 1.0.0",
+ "libc",
+ "miniz_oxide 0.7.1",
+ "object",
+ "rustc-demangle",
+]
+
[[package]]
name = "base32"
version = "0.4.0"
@@ -220,9 +278,9 @@ checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8"
[[package]]
name = "base64"
-version = "0.21.2"
+version = "0.22.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "604178f6c5c21f02dc555784810edfb88d34ac2c73b2eae109655649ee73ce3d"
+checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6"
[[package]]
name = "bdk"
@@ -234,7 +292,7 @@ dependencies = [
"bdk-macros",
"bitcoin",
"electrum-client",
- "getrandom 0.2.6",
+ "getrandom 0.2.11",
"js-sys",
"log",
"miniscript",
@@ -262,6 +320,15 @@ version = "0.9.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d86b93f97252c47b41663388e6d155714a9d0c398b99f1005cbc5f978b29f445"
+[[package]]
+name = "beef"
+version = "0.5.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3a8241f3ebb85c056b509d4327ad0358fbbba6ffb340bf388f26350aeda225b1"
+dependencies = [
+ "serde",
+]
+
[[package]]
name = "big-bytes"
version = "1.0.0"
@@ -283,6 +350,25 @@ dependencies = [
"serde",
]
+[[package]]
+name = "bincode"
+version = "2.0.0-rc.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f11ea1a0346b94ef188834a65c068a03aec181c94896d481d7a0a40d85b0ce95"
+dependencies = [
+ "bincode_derive",
+ "serde",
+]
+
+[[package]]
+name = "bincode_derive"
+version = "2.0.0-rc.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7e30759b3b99a1b802a7a3aa21c85c3ded5c28e1c83170d82d70f08bbf7f3e4c"
+dependencies = [
+ "virtue",
+]
+
[[package]]
name = "bit-set"
version = "0.5.2"
@@ -307,26 +393,28 @@ dependencies = [
"base64 0.13.1",
"bech32",
"bitcoin_hashes",
- "secp256k1",
+ "secp256k1 0.24.1",
"serde",
]
[[package]]
name = "bitcoin-harness"
-version = "0.2.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6b6a18713ec8acbc96d1e843f6998f00e8c5d81173e38760023b84926b8db3b8"
+version = "0.2.1"
+source = "git+https://github.com/delta1/bitcoin-harness-rs.git?rev=80cc8d05db2610d8531011be505b7bee2b5cdf9f#80cc8d05db2610d8531011be505b7bee2b5cdf9f"
dependencies = [
"base64 0.12.3",
"bitcoin",
"bitcoincore-rpc-json",
"futures",
"hex",
+ "hmac 0.12.1",
"jsonrpc_client",
+ "rand 0.8.3",
"reqwest",
"serde",
"serde_json",
- "testcontainers 0.14.0",
+ "sha2 0.10.8",
+ "testcontainers",
"thiserror",
"tokio",
"tracing",
@@ -359,6 +447,12 @@ version = "1.3.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
+[[package]]
+name = "bitflags"
+version = "2.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b4682ae6287fcf752ecaabbfcc7b6f9b72aa33933dc23a554d853aea8eea8635"
+
[[package]]
name = "blake2"
version = "0.9.2"
@@ -407,11 +501,10 @@ dependencies = [
[[package]]
name = "bollard-stubs"
-version = "1.41.0"
+version = "1.42.0-rc.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ed2f2e73fffe9455141e170fb9c1feb0ac521ec7e7dcd47a7cab72a658490fb8"
+checksum = "ed59b5c00048f48d7af971b71f800fdf23e858844a6f9e4d32ca72e9399e7864"
dependencies = [
- "chrono",
"serde",
"serde_with",
]
@@ -423,7 +516,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "822462c1e7b17b31961798a6874b36daea6818e99e0cb7d3b7b0fa3c477751c3"
dependencies = [
"borsh-derive",
- "hashbrown 0.11.2",
+ "hashbrown 0.12.3",
]
[[package]]
@@ -467,6 +560,16 @@ version = "0.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "771fe0050b883fcc3ea2359b1a96bcfbc090b7116eae7c3c512c7a083fdf23d3"
+[[package]]
+name = "bstr"
+version = "1.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6798148dccfbff0fae41c7574d2fa8f1ef3492fba0face179de5d8d447d67b05"
+dependencies = [
+ "memchr",
+ "serde",
+]
+
[[package]]
name = "bumpalo"
version = "3.6.1"
@@ -496,9 +599,9 @@ dependencies = [
[[package]]
name = "bytemuck"
-version = "1.5.1"
+version = "1.14.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bed57e2090563b83ba8f83366628ce535a7584c9afa4c9fc0612a03925c6df58"
+checksum = "374d28ec25809ee0e23827c2ab573d729e293f281dfe393500e7ad618baa61c6"
[[package]]
name = "byteorder"
@@ -535,11 +638,12 @@ dependencies = [
[[package]]
name = "cc"
-version = "1.0.67"
+version = "1.0.83"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e3c69b077ad434294d3ce9f1f6143a2a4b89a8a2d54ef813d85003a4fd1137fd"
+checksum = "f1174fb0b6ec23863f8b971027804a42614e347eafb0a95bf0b12cdae21fc4d0"
dependencies = [
"jobserver",
+ "libc",
]
[[package]]
@@ -556,21 +660,21 @@ checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
[[package]]
name = "chacha20"
-version = "0.7.3"
+version = "0.7.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f08493fa7707effc63254c66c6ea908675912493cd67952eda23c09fae2610b1"
+checksum = "fee7ad89dc1128635074c268ee661f90c3f7e83d9fd12910608c36b47d6c3412"
dependencies = [
"cfg-if 1.0.0",
"cipher",
- "cpufeatures 0.2.1",
+ "cpufeatures 0.1.4",
"zeroize",
]
[[package]]
name = "chacha20poly1305"
-version = "0.8.2"
+version = "0.8.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b6547abe025f4027edacd9edaa357aded014eecec42a5070d9b885c3c334aba2"
+checksum = "1580317203210c517b6d44794abfbe600698276db18127e37ad3e69bf5e848e5"
dependencies = [
"aead",
"chacha20",
@@ -579,12 +683,6 @@ dependencies = [
"zeroize",
]
-[[package]]
-name = "checked_int_cast"
-version = "1.0.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "17cc5e6b5ab06331c33589842070416baa137e8b0eb912b008cfd4a78ada7919"
-
[[package]]
name = "chrono"
version = "0.4.19"
@@ -594,8 +692,6 @@ dependencies = [
"libc",
"num-integer",
"num-traits",
- "serde",
- "time 0.1.43",
"winapi",
]
@@ -616,7 +712,7 @@ checksum = "37e58ac78573c40708d45522f0d80fa2f01cc4f9b4e2bf749807255454312002"
dependencies = [
"ansi_term 0.11.0",
"atty",
- "bitflags",
+ "bitflags 1.3.2",
"strsim 0.8.0",
"textwrap",
"unicode-width",
@@ -624,16 +720,21 @@ dependencies = [
]
[[package]]
-name = "color_quant"
-version = "1.1.0"
+name = "colored"
+version = "2.0.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3d7b894f5411737b7867f4827955924d7c254fc9f4d91a6aad6b097804b1018b"
+checksum = "2674ec482fbc38012cf31e6c42ba0177b431a0cb6f15fe40efa5aab1bda516f6"
+dependencies = [
+ "is-terminal",
+ "lazy_static",
+ "windows-sys 0.48.0",
+]
[[package]]
name = "comfy-table"
-version = "6.1.4"
+version = "7.1.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6e7b787b0dc42e8111badfdbe4c3059158ccb2db8780352fa1b01e8ccf45cc4d"
+checksum = "b34115915337defe99b2aff5c2ce6771e5fbc4079f4b506301f5cf394c8452f7"
dependencies = [
"crossterm",
"strum",
@@ -643,16 +744,15 @@ dependencies = [
[[package]]
name = "config"
-version = "0.13.3"
+version = "0.14.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d379af7f68bfc21714c6c7dea883544201741d2ce8274bb12fa54f89507f52a7"
+checksum = "7328b20597b53c2454f0b1919720c25c7339051c02b72b7e05409e00b14132be"
dependencies = [
- "async-trait",
"lazy_static",
"nom",
"pathdiff",
"serde",
- "toml",
+ "toml 0.8.19",
]
[[package]]
@@ -757,9 +857,9 @@ dependencies = [
[[package]]
name = "crossbeam-channel"
-version = "0.5.0"
+version = "0.5.9"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dca26ee1f8d361640700bde38b2c37d8c22b3ce2d360e1fc1c74ea4b0aa7d775"
+checksum = "14c3242926edf34aec4ac3a77108ad4854bffaa2e4ddc1824124ce59231302d5"
dependencies = [
"cfg-if 1.0.0",
"crossbeam-utils",
@@ -790,35 +890,31 @@ dependencies = [
[[package]]
name = "crossbeam-utils"
-version = "0.8.5"
+version = "0.8.17"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d82cfc11ce7f2c3faef78d8a684447b40d503d9681acebed6cb728d45940c4db"
+checksum = "c06d96137f14f244c37f989d9fff8f95e6c18b918e71f36638f8c49112e4c78f"
dependencies = [
"cfg-if 1.0.0",
- "lazy_static",
]
[[package]]
name = "crossterm"
-version = "0.25.0"
+version = "0.27.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e64e6c0fbe2c17357405f7c758c1ef960fce08bdfb2c03d88d2a18d7e09c4b67"
+checksum = "f476fe445d41c9e991fd07515a6f463074b782242ccf4a5b7b1d1012e70824df"
dependencies = [
- "bitflags",
+ "bitflags 2.4.0",
"crossterm_winapi",
"libc",
- "mio",
"parking_lot 0.12.0",
- "signal-hook",
- "signal-hook-mio",
"winapi",
]
[[package]]
name = "crossterm_winapi"
-version = "0.9.0"
+version = "0.9.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2ae1b35a484aa10e07fe0638d02301c5ad24de82d310ccbd2f3693da5f09bf1c"
+checksum = "acdd7c62a3665c7f6830a51635d9ac9b23ed385797f70a83bb8bafe9c572ab2b"
dependencies = [
"winapi",
]
@@ -851,19 +947,9 @@ dependencies = [
[[package]]
name = "crypto-mac"
-version = "0.10.0"
+version = "0.11.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4857fd85a0c34b3c3297875b747c1e02e06b6a0ea32dd892d8192b9ce0813ea6"
-dependencies = [
- "generic-array",
- "subtle",
-]
-
-[[package]]
-name = "crypto-mac"
-version = "0.11.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b1d1a86f49236c215f271d40892d5fc950490551400b02ef360692c29815c714"
+checksum = "25fab6889090c8133f3deb8f73ba3c65a7f456f66436fc012a1b1e272b1e103e"
dependencies = [
"generic-array",
"subtle",
@@ -940,28 +1026,20 @@ dependencies = [
"syn 1.0.109",
]
-[[package]]
-name = "dashmap"
-version = "5.2.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4c8858831f7781322e539ea39e72449c46b059638250c14344fec8d0aa6e539c"
-dependencies = [
- "cfg-if 1.0.0",
- "num_cpus",
- "parking_lot 0.12.0",
-]
-
[[package]]
name = "data-encoding"
-version = "2.4.0"
+version = "2.6.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c2e66c9d817f1720209181c316d28635c050fa304f9c79e47a520882661b7308"
+checksum = "e8566979429cf69b49a5c740c60791108e86440e8be149bbea4fe54d2c32d6e2"
[[package]]
name = "deranged"
-version = "0.3.6"
+version = "0.3.10"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8810e7e2cf385b1e9b50d68264908ec367ba642c96d02edfe61c39e88e2a3c01"
+checksum = "8eb30d70a07a3b04884d2677f06bec33509dc67ca60d92949e5535352d3191dc"
+dependencies = [
+ "powerfmt",
+]
[[package]]
name = "derive_more"
@@ -978,13 +1056,14 @@ dependencies = [
[[package]]
name = "dialoguer"
-version = "0.10.4"
+version = "0.11.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "59c6f2989294b9a498d3ad5491a79c6deb604617378e1cdc4bfc1c1361fe2f87"
+checksum = "658bce805d770f407bc62102fca7c2c64ceef2fbcb2b8bd19d2765ce093980de"
dependencies = [
"console",
"shell-words",
"tempfile",
+ "thiserror",
"zeroize",
]
@@ -999,9 +1078,9 @@ dependencies = [
[[package]]
name = "digest"
-version = "0.10.5"
+version = "0.10.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "adfbc57365a37acbd2ebf2b64d7e69bb766e2fea813521ed536f5d0520dcf86c"
+checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292"
dependencies = [
"block-buffer 0.10.2",
"crypto-common",
@@ -1043,10 +1122,11 @@ checksum = "5caaa75cbd2b960ff1e5392d2cfb1f44717fffe12fc1f32b7b5d1267f99732a6"
[[package]]
name = "ecdsa_fun"
-version = "0.7.1"
-source = "git+https://github.com/LLFourn/secp256kfun#9657d8c12fd26df5e57254a0063eaf41082a38ca"
+version = "0.10.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6fd850b7ece4e4ddaa1478d5de36b6d4d599f2d521f73456ca706b4e2b32a4ec"
dependencies = [
- "bincode",
+ "bincode 1.3.3",
"rand_chacha 0.3.1",
"secp256kfun",
"sigma_fun",
@@ -1108,15 +1188,6 @@ version = "0.3.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a357d28ed41a50f9c765dbfe56cbc04a64e53e5fc58ba79fbc34c10ef3df831f"
-[[package]]
-name = "encoding_rs"
-version = "0.8.28"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "80df024fbc5ac80f87dfef0d9f5209a252f2a497f7f42944cff24d8253cac065"
-dependencies = [
- "cfg-if 1.0.0",
-]
-
[[package]]
name = "enum-as-inner"
version = "0.3.3"
@@ -1130,44 +1201,19 @@ dependencies = [
]
[[package]]
-name = "enum-iterator"
-version = "1.2.0"
+name = "equivalent"
+version = "1.0.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "91a4ec26efacf4aeff80887a175a419493cb6f8b5480d26387eb0bd038976187"
-dependencies = [
- "enum-iterator-derive",
-]
-
-[[package]]
-name = "enum-iterator-derive"
-version = "1.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "828de45d0ca18782232dfb8f3ea9cc428e8ced380eb26a520baaacfc70de39ce"
-dependencies = [
- "proc-macro2",
- "quote",
- "syn 1.0.109",
-]
+checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5"
[[package]]
name = "errno"
-version = "0.3.1"
+version = "0.3.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4bcfec3a70f97c962c307b2d2c56e358cf1d00b558d74262b5f929ee8cc7e73a"
+checksum = "a258e46cdc063eb8519c00b9fc845fc47bcfca4130e2f08e88665ceda8474245"
dependencies = [
- "errno-dragonfly",
- "libc",
- "windows-sys 0.48.0",
-]
-
-[[package]]
-name = "errno-dragonfly"
-version = "0.1.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "aa68f1b12764fab894d2755d2518754e71b4fd80ecfb822714a1206c2aab39bf"
-dependencies = [
- "cc",
"libc",
+ "windows-sys 0.52.0",
]
[[package]]
@@ -1178,12 +1224,9 @@ checksum = "0206175f82b8d6bf6652ff7d71a1e27fd2e4efde587fd368662814d6ec1d9ce0"
[[package]]
name = "fastrand"
-version = "1.7.0"
+version = "2.1.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c3fcf0cee53519c866c09b5de1f6c56ff9d647101f81c1964fa632e148896cdf"
-dependencies = [
- "instant",
-]
+checksum = "e8c02a5121d4ea3eb16a80748c74f5549a5665e4c21333c6098f283870fbdea6"
[[package]]
name = "filetime"
@@ -1225,7 +1268,7 @@ dependencies = [
"crc32fast",
"libc",
"libz-sys",
- "miniz_oxide",
+ "miniz_oxide 0.3.7",
]
[[package]]
@@ -1248,9 +1291,9 @@ checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1"
[[package]]
name = "form_urlencoded"
-version = "1.2.0"
+version = "1.2.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a62bc1cf6f830c2ec14a513a9fb124d0a213a629668a4186f329db21fe045652"
+checksum = "e13624c2627564efccf4934284bdd98cbaa14e79b0b5a141218e507b3a823456"
dependencies = [
"percent-encoding",
]
@@ -1265,17 +1308,11 @@ dependencies = [
"winapi",
]
-[[package]]
-name = "fuchsia-cprng"
-version = "0.1.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a06f77d526c1a601b7c4cdd98f54b5eaabffc14d5f2f0296febdc7f357c6d3ba"
-
[[package]]
name = "futures"
-version = "0.3.28"
+version = "0.3.31"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "23342abe12aba583913b2e62f22225ff9c950774065e4bfb61a19cd9770fec40"
+checksum = "65bc07b1a8bc7c85c5f2e110c476c7389b4554ba72af57d8445ea63a576b0876"
dependencies = [
"futures-channel",
"futures-core",
@@ -1288,9 +1325,9 @@ dependencies = [
[[package]]
name = "futures-channel"
-version = "0.3.28"
+version = "0.3.31"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "955518d47e09b25bbebc7a18df10b81f0c766eaf4c4f1cccef2fca5f2a4fb5f2"
+checksum = "2dff15bf788c671c1934e366d07e30c1814a8ef514e1af724a602e8a2fbe1b10"
dependencies = [
"futures-core",
"futures-sink",
@@ -1298,15 +1335,15 @@ dependencies = [
[[package]]
name = "futures-core"
-version = "0.3.28"
+version = "0.3.31"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4bca583b7e26f571124fe5b7561d49cb2868d79116cfa0eefce955557c6fee8c"
+checksum = "05f29059c0c2090612e8d742178b0580d2dc940c837851ad723096f87af6663e"
[[package]]
name = "futures-executor"
-version = "0.3.28"
+version = "0.3.31"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ccecee823288125bd88b4d7f565c9e58e41858e47ab72e8ea2d64e93624386e0"
+checksum = "1e28d1d997f585e54aebc3f97d39e72338912123a67330d723fdbb564d646c9f"
dependencies = [
"futures-core",
"futures-task",
@@ -1327,19 +1364,19 @@ dependencies = [
[[package]]
name = "futures-io"
-version = "0.3.28"
+version = "0.3.31"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4fff74096e71ed47f8e023204cfd0aa1289cd54ae5430a9523be060cdb849964"
+checksum = "9e5c1b78ca4aae1ac06c48a526a655760685149f0d465d21f37abfe57ce075c6"
[[package]]
name = "futures-macro"
-version = "0.3.28"
+version = "0.3.31"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "89ca545a94061b6365f2c7355b4b32bd20df3ff95f02da9329b34ccc3bd6ee72"
+checksum = "162ee34ebcb7c64a8abebc059ce0fee27c2262618d7b60ed8faf72fef13c3650"
dependencies = [
"proc-macro2",
"quote",
- "syn 2.0.15",
+ "syn 2.0.79",
]
[[package]]
@@ -1355,15 +1392,15 @@ dependencies = [
[[package]]
name = "futures-sink"
-version = "0.3.28"
+version = "0.3.31"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f43be4fe21a13b9781a69afa4985b0f6ee0e1afab2c6f454a8cf30e2b2237b6e"
+checksum = "e575fab7d1e0dcb8d0c7bcf9a63ee213816ab51902e6d244a95819acacf1d4f7"
[[package]]
name = "futures-task"
-version = "0.3.28"
+version = "0.3.31"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "76d3d132be6c0e6aa1534069c705a74a5997a356c0dc2f86a47765e5617c5b65"
+checksum = "f90f7dce0722e95104fcb095585910c0977252f286e354b5e3bd38902cd99988"
[[package]]
name = "futures-timer"
@@ -1373,9 +1410,9 @@ checksum = "e64b03909df88034c26dc1547e8970b91f98bdb65165d6a4e9110d94263dbb2c"
[[package]]
name = "futures-util"
-version = "0.3.28"
+version = "0.3.31"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "26b01e40b772d54cf6c6d721c1d1abd0647a0106a12ecaa1c186273392a69533"
+checksum = "9fa08315bb612088cc391249efdc3bc77536f16c91f6cf495e6fbe85b20a4a81"
dependencies = [
"futures-channel",
"futures-core",
@@ -1384,7 +1421,7 @@ dependencies = [
"futures-sink",
"futures-task",
"memchr",
- "pin-project-lite 0.2.9",
+ "pin-project-lite 0.2.13",
"pin-utils",
"slab",
]
@@ -1428,25 +1465,13 @@ dependencies = [
[[package]]
name = "getrandom"
-version = "0.2.6"
+version = "0.2.11"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9be70c98951c83b8d2f8f60d7065fa6d5146873094452a1008da8c2f1e4205ad"
+checksum = "fe9006bed769170c11f845cf00c7c1e9092aeb3f268e007c3e760ac68008070f"
dependencies = [
"cfg-if 1.0.0",
"libc",
- "wasi 0.10.2+wasi-snapshot-preview1",
-]
-
-[[package]]
-name = "getset"
-version = "0.1.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e45727250e75cc04ff2846a66397da8ef2b3db8e40e0cef4df67950a07621eb9"
-dependencies = [
- "proc-macro-error",
- "proc-macro2",
- "quote",
- "syn 1.0.109",
+ "wasi 0.11.0+wasi-snapshot-preview1",
]
[[package]]
@@ -1460,18 +1485,37 @@ dependencies = [
]
[[package]]
-name = "git2"
-version = "0.16.1"
+name = "gimli"
+version = "0.28.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ccf7f68c2995f392c49fffb4f95ae2c873297830eb25c6bc4c114ce8f4562acc"
+checksum = "6fb8d784f27acf97159b40fc4db5ecd8aa23b9ad5ef69cdd136d3bc80665f0c0"
+
+[[package]]
+name = "git2"
+version = "0.19.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b903b73e45dc0c6c596f2d37eccece7c1c8bb6e4407b001096387c63d0d93724"
dependencies = [
- "bitflags",
+ "bitflags 2.4.0",
"libc",
"libgit2-sys",
"log",
"url",
]
+[[package]]
+name = "globset"
+version = "0.4.10"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "029d74589adefde59de1a0c4f4732695c32805624aec7b68d91503d4dba79afc"
+dependencies = [
+ "aho-corasick 0.7.18",
+ "bstr",
+ "fnv",
+ "log",
+ "regex",
+]
+
[[package]]
name = "h2"
version = "0.3.18"
@@ -1483,8 +1527,27 @@ dependencies = [
"futures-core",
"futures-sink",
"futures-util",
- "http",
- "indexmap",
+ "http 0.2.11",
+ "indexmap 1.7.0",
+ "slab",
+ "tokio",
+ "tokio-util",
+ "tracing",
+]
+
+[[package]]
+name = "h2"
+version = "0.4.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "51ee2dd2e4f378392eeff5d51618cd9a63166a2513846bbc55f21cfacd9199d4"
+dependencies = [
+ "bytes",
+ "fnv",
+ "futures-core",
+ "futures-sink",
+ "futures-util",
+ "http 1.0.0",
+ "indexmap 2.1.0",
"slab",
"tokio",
"tokio-util",
@@ -1515,6 +1578,12 @@ dependencies = [
"ahash",
]
+[[package]]
+name = "hashbrown"
+version = "0.14.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "290f1a1d9242c78d09ce40a5e87e7554ee637af1351968159f4952f028f75604"
+
[[package]]
name = "hashlink"
version = "0.8.1"
@@ -1535,13 +1604,19 @@ dependencies = [
[[package]]
name = "heck"
-version = "0.4.0"
+version = "0.4.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2540771e65fc8cb83cd6e8a237f70c319bd5c29f78ed1084ba5d50eeac86f7f9"
+checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8"
dependencies = [
"unicode-segmentation",
]
+[[package]]
+name = "heck"
+version = "0.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea"
+
[[package]]
name = "hermit-abi"
version = "0.1.18"
@@ -1553,9 +1628,9 @@ dependencies = [
[[package]]
name = "hermit-abi"
-version = "0.3.1"
+version = "0.3.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fed44880c466736ef9a5c5b5facefb5ed0785676d0c02d612db14e54f0d84286"
+checksum = "379dada1584ad501b383485dd706b8afb7a70fcbc7f4da7d780638a5a6124a60"
[[package]]
name = "hex"
@@ -1575,23 +1650,13 @@ version = "0.4.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46"
-[[package]]
-name = "hmac"
-version = "0.10.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c1441c6b1e930e2817404b5046f1f989899143a12bf92de603b69f4e0aee1e15"
-dependencies = [
- "crypto-mac 0.10.0",
- "digest 0.9.0",
-]
-
[[package]]
name = "hmac"
version = "0.11.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2a2a2320eb7ec0ebe8da8f744d7812d9fc4cb4d09344ac01898dbcb6a20ae69b"
dependencies = [
- "crypto-mac 0.11.1",
+ "crypto-mac 0.11.0",
"digest 0.9.0",
]
@@ -1601,7 +1666,7 @@ version = "0.12.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6c49c37c09c17a53d937dfbb742eb3a961d65a994e6bcdcf37e7399d0cc8ab5e"
dependencies = [
- "digest 0.10.5",
+ "digest 0.10.7",
]
[[package]]
@@ -1617,13 +1682,24 @@ dependencies = [
[[package]]
name = "http"
-version = "0.2.3"
+version = "0.2.11"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7245cd7449cc792608c3c8a9eaf69bd4eabbabf802713748fd739c98b82f0747"
+checksum = "8947b1a6fad4393052c7ba1f4cd97bed3e953a95c79c92ad9b051a04611d9fbb"
dependencies = [
"bytes",
"fnv",
- "itoa 0.4.7",
+ "itoa",
+]
+
+[[package]]
+name = "http"
+version = "1.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b32afd38673a8016f7c9ae69e5af41a58f81b1d31689040f2f1959594ce194ea"
+dependencies = [
+ "bytes",
+ "fnv",
+ "itoa",
]
[[package]]
@@ -1633,7 +1709,30 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2861bd27ee074e5ee891e8b539837a9430012e249d7f0ca2d795650f579c1994"
dependencies = [
"bytes",
- "http",
+ "http 0.2.11",
+]
+
+[[package]]
+name = "http-body"
+version = "1.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1cac85db508abc24a2e48553ba12a996e87244a0395ce011e62b37158745d643"
+dependencies = [
+ "bytes",
+ "http 1.0.0",
+]
+
+[[package]]
+name = "http-body-util"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0475f8b2ac86659c21b64320d5d653f9efe42acd2a4e560073ec61a155a34f1d"
+dependencies = [
+ "bytes",
+ "futures-core",
+ "http 1.0.0",
+ "http-body 1.0.0",
+ "pin-project-lite 0.2.13",
]
[[package]]
@@ -1650,22 +1749,21 @@ checksum = "05842d0d43232b23ccb7060ecb0f0626922c21f30012e97b767b30afd4a5d4b9"
[[package]]
name = "hyper"
-version = "0.14.26"
+version = "0.14.28"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ab302d72a6f11a3b910431ff93aae7e773078c769f0a3ef15fb9ec692ed147d4"
+checksum = "bf96e135eb83a2a8ddf766e426a841d8ddd7449d5f00d34ea02b41d2f19eef80"
dependencies = [
"bytes",
"futures-channel",
"futures-core",
"futures-util",
- "h2",
- "http",
- "http-body",
+ "h2 0.3.18",
+ "http 0.2.11",
+ "http-body 0.4.0",
"httparse",
"httpdate",
- "itoa 1.0.1",
- "pin-project-lite 0.2.9",
- "socket2 0.4.7",
+ "itoa",
+ "pin-project-lite 0.2.13",
"tokio",
"tower-service",
"tracing",
@@ -1673,16 +1771,62 @@ dependencies = [
]
[[package]]
-name = "hyper-rustls"
-version = "0.24.0"
+name = "hyper"
+version = "1.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0646026eb1b3eea4cd9ba47912ea5ce9cc07713d105b1a14698f4e6433d348b7"
+checksum = "bbbff0a806a4728c99295b254c8838933b5b082d75e3cb70c8dab21fdfbcfa9a"
dependencies = [
- "http",
- "hyper",
- "rustls 0.21.1",
+ "bytes",
+ "futures-channel",
+ "futures-util",
+ "h2 0.4.3",
+ "http 1.0.0",
+ "http-body 1.0.0",
+ "httparse",
+ "httpdate",
+ "itoa",
+ "pin-project-lite 0.2.13",
+ "smallvec",
"tokio",
- "tokio-rustls 0.24.0",
+ "want",
+]
+
+[[package]]
+name = "hyper-rustls"
+version = "0.27.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5ee4be2c948921a1a5320b629c4193916ed787a7f7f293fd3f7f5a6c9de74155"
+dependencies = [
+ "futures-util",
+ "http 1.0.0",
+ "hyper 1.5.0",
+ "hyper-util",
+ "rustls 0.23.10",
+ "rustls-pki-types",
+ "tokio",
+ "tokio-rustls 0.26.0",
+ "tower-service",
+ "webpki-roots 0.26.1",
+]
+
+[[package]]
+name = "hyper-util"
+version = "0.1.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ca38ef113da30126bbff9cd1705f9273e15d45498615d138b0c20279ac7a76aa"
+dependencies = [
+ "bytes",
+ "futures-channel",
+ "futures-util",
+ "http 1.0.0",
+ "http-body 1.0.0",
+ "hyper 1.5.0",
+ "pin-project-lite 0.2.13",
+ "socket2 0.5.5",
+ "tokio",
+ "tower",
+ "tower-service",
+ "tracing",
]
[[package]]
@@ -1704,9 +1848,9 @@ dependencies = [
[[package]]
name = "idna"
-version = "0.4.0"
+version = "0.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7d20d6b07bfbc108882d88ed8e37d39636dcc260e15e30c45e6ba089610b917c"
+checksum = "634d9b1461af396cad843f47fdba5597a4f9e6ddd4bfb6ff5d85028c25cb12f6"
dependencies = [
"unicode-bidi",
"unicode-normalization",
@@ -1724,15 +1868,12 @@ dependencies = [
[[package]]
name = "image"
-version = "0.23.14"
+version = "0.25.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "24ffcb7e7244a9bf19d35bf2883b9c080c4ced3c07a9895572178cdb8f13f6a1"
+checksum = "a9b4f005360d32e9325029b38ba47ebd7a56f3316df09249368939562d518645"
dependencies = [
"bytemuck",
"byteorder",
- "color_quant",
- "num-iter",
- "num-rational 0.3.2",
"num-traits",
]
@@ -1746,6 +1887,16 @@ dependencies = [
"hashbrown 0.11.2",
]
+[[package]]
+name = "indexmap"
+version = "2.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d530e1a18b1cb4c484e6e34556a0d948706958449fca0cab753d649f2bce3d1f"
+dependencies = [
+ "equivalent",
+ "hashbrown 0.14.3",
+]
+
[[package]]
name = "instant"
version = "0.1.12"
@@ -1755,17 +1906,6 @@ dependencies = [
"cfg-if 1.0.0",
]
-[[package]]
-name = "io-lifetimes"
-version = "1.0.10"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9c66c74d2ae7e79a5a8f7ac924adbe38ee42a859c6539ad869eb51f0b52dc220"
-dependencies = [
- "hermit-abi 0.3.1",
- "libc",
- "windows-sys 0.48.0",
-]
-
[[package]]
name = "ipconfig"
version = "0.2.2"
@@ -1775,7 +1915,7 @@ dependencies = [
"socket2 0.3.19",
"widestring",
"winapi",
- "winreg 0.6.2",
+ "winreg",
]
[[package]]
@@ -1784,6 +1924,17 @@ version = "2.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "47be2f14c678be2fdcab04ab1171db51b2762ce6f0a8ee87c8dd4a04ed216135"
+[[package]]
+name = "is-terminal"
+version = "0.4.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f23ff5ef2b80d608d61efee834934d862cd92461afc0560dedf493e4c033738b"
+dependencies = [
+ "hermit-abi 0.3.8",
+ "libc",
+ "windows-sys 0.52.0",
+]
+
[[package]]
name = "itertools"
version = "0.10.5"
@@ -1794,10 +1945,13 @@ dependencies = [
]
[[package]]
-name = "itoa"
-version = "0.4.7"
+name = "itertools"
+version = "0.13.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dd25036021b0de88a0aff6b850051563c6516d0bf53f8638938edbb9de732736"
+checksum = "413ee7dfc52ee1a4949ceeb7dbc8a33f2d6c088194d9f922fb8318faf1f01186"
+dependencies = [
+ "either",
+]
[[package]]
name = "itoa"
@@ -1816,9 +1970,9 @@ dependencies = [
[[package]]
name = "js-sys"
-version = "0.3.48"
+version = "0.3.67"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dc9f84f9b115ce7843d60706df1422a916680bfdfcbdb0447c5614ff9d7e4d78"
+checksum = "9a1d36f1235bc969acba30b7f5990b864423a6068a10f7c90ae8f0112e3a59d1"
dependencies = [
"wasm-bindgen",
]
@@ -1826,8 +1980,7 @@ dependencies = [
[[package]]
name = "jsonrpc_client"
version = "0.7.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a0c1ec33c537dc1d5a8b597313db6d213fee54320f81ea0d19b0c3869b282e1a"
+source = "git+https://github.com/delta1/rust-jsonrpc-client.git?rev=3b6081697cd616c952acb9c2f02d546357d35506#3b6081697cd616c952acb9c2f02d546357d35506"
dependencies = [
"async-trait",
"jsonrpc_client_macro",
@@ -1840,13 +1993,121 @@ dependencies = [
[[package]]
name = "jsonrpc_client_macro"
version = "0.3.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "97c11e429f0eaa41fe659013680b459d2368d8f0a3e69dccfb7a35800b0dc27b"
+source = "git+https://github.com/delta1/rust-jsonrpc-client.git?rev=3b6081697cd616c952acb9c2f02d546357d35506#3b6081697cd616c952acb9c2f02d546357d35506"
dependencies = [
"quote",
"syn 1.0.109",
]
+[[package]]
+name = "jsonrpsee"
+version = "0.16.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7d291e3a5818a2384645fd9756362e6d89cf0541b0b916fa7702ea4a9833608e"
+dependencies = [
+ "jsonrpsee-core",
+ "jsonrpsee-server",
+ "jsonrpsee-types",
+ "jsonrpsee-ws-client",
+]
+
+[[package]]
+name = "jsonrpsee-client-transport"
+version = "0.16.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "965de52763f2004bc91ac5bcec504192440f0b568a5d621c59d9dbd6f886c3fb"
+dependencies = [
+ "futures-util",
+ "http 0.2.11",
+ "jsonrpsee-core",
+ "jsonrpsee-types",
+ "pin-project 1.0.5",
+ "rustls-native-certs 0.6.3",
+ "soketto",
+ "thiserror",
+ "tokio",
+ "tokio-rustls 0.23.1",
+ "tokio-util",
+ "tracing",
+ "webpki-roots 0.22.2",
+]
+
+[[package]]
+name = "jsonrpsee-core"
+version = "0.16.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a4e70b4439a751a5de7dd5ed55eacff78ebf4ffe0fc009cb1ebb11417f5b536b"
+dependencies = [
+ "anyhow",
+ "arrayvec",
+ "async-lock",
+ "async-trait",
+ "beef",
+ "futures-channel",
+ "futures-timer",
+ "futures-util",
+ "globset",
+ "hyper 0.14.28",
+ "jsonrpsee-types",
+ "parking_lot 0.12.0",
+ "rand 0.8.3",
+ "rustc-hash",
+ "serde",
+ "serde_json",
+ "soketto",
+ "thiserror",
+ "tokio",
+ "tracing",
+]
+
+[[package]]
+name = "jsonrpsee-server"
+version = "0.16.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1fb69dad85df79527c019659a992498d03f8495390496da2f07e6c24c2b356fc"
+dependencies = [
+ "futures-channel",
+ "futures-util",
+ "http 0.2.11",
+ "hyper 0.14.28",
+ "jsonrpsee-core",
+ "jsonrpsee-types",
+ "serde",
+ "serde_json",
+ "soketto",
+ "tokio",
+ "tokio-stream",
+ "tokio-util",
+ "tower",
+ "tracing",
+]
+
+[[package]]
+name = "jsonrpsee-types"
+version = "0.16.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5bd522fe1ce3702fd94812965d7bb7a3364b1c9aba743944c5a00529aae80f8c"
+dependencies = [
+ "anyhow",
+ "beef",
+ "serde",
+ "serde_json",
+ "thiserror",
+ "tracing",
+]
+
+[[package]]
+name = "jsonrpsee-ws-client"
+version = "0.16.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0b83daeecfc6517cfe210df24e570fb06213533dfb990318fae781f4c7119dd9"
+dependencies = [
+ "http 0.2.11",
+ "jsonrpsee-client-transport",
+ "jsonrpsee-core",
+ "jsonrpsee-types",
+]
+
[[package]]
name = "keccak"
version = "0.1.0"
@@ -1871,15 +2132,15 @@ checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
[[package]]
name = "libc"
-version = "0.2.141"
+version = "0.2.159"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3304a64d199bb964be99741b7a14d26972741915b3649639149b2479bb46f4b5"
+checksum = "561d97a539a36e26a9a5fad1ea11a3039a67714694aaa379433e580854bc3dc5"
[[package]]
name = "libgit2-sys"
-version = "0.14.2+1.5.1"
+version = "0.17.0+1.8.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7f3d95f6b51075fe9810a7ae22c7095f12b98005ab364d8544797a825ce946a4"
+checksum = "10472326a8a6477c3c20a64547b0059e4b0d086869eee31e6d7da728a8eb7224"
dependencies = [
"cc",
"libc",
@@ -1903,7 +2164,7 @@ dependencies = [
"bytes",
"futures",
"futures-timer",
- "getrandom 0.2.6",
+ "getrandom 0.2.11",
"instant",
"lazy_static",
"libp2p-core",
@@ -1951,9 +2212,9 @@ dependencies = [
"prost",
"prost-build",
"rand 0.8.3",
- "ring",
+ "ring 0.16.20",
"rw-stream-sink",
- "sha2 0.10.6",
+ "sha2 0.10.8",
"smallvec",
"thiserror",
"unsigned-varint",
@@ -2037,7 +2298,7 @@ dependencies = [
"prost",
"prost-build",
"rand 0.8.3",
- "sha2 0.10.6",
+ "sha2 0.10.8",
"snow",
"static_assertions",
"x25519-dalek",
@@ -2077,7 +2338,7 @@ dependencies = [
"prost",
"prost-build",
"rand 0.8.3",
- "sha2 0.10.6",
+ "sha2 0.10.8",
"thiserror",
"unsigned-varint",
"void",
@@ -2207,9 +2468,9 @@ checksum = "7fb9b38af92608140b86b693604b9ffcc5824240a484d1ecd4795bacb2fe88f3"
[[package]]
name = "linux-raw-sys"
-version = "0.3.1"
+version = "0.4.14"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d59d8c75012853d2e872fb56bc8a2e53718e2cafe1a4c823143141c6d90c322f"
+checksum = "78b3ae25bc7c8c38cec158d1f2757ee79e9b3740fbc7ccf0e59e4b08d793fa89"
[[package]]
name = "lock_api"
@@ -2222,12 +2483,9 @@ dependencies = [
[[package]]
name = "log"
-version = "0.4.14"
+version = "0.4.20"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "51b9bbe6c47d51fc3e1a9b945965946b4c44142ab8792c50835a980d362c2710"
-dependencies = [
- "cfg-if 1.0.0",
-]
+checksum = "b5e6163cb8c49088c2c36f57875e58ccd8c87c7427f7fbd50ea6710b2f3f2e8f"
[[package]]
name = "lru"
@@ -2259,7 +2517,7 @@ version = "0.0.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f099785f7595cc4b4553a174ce30dd7589ef93391ff414dbb67f62392b9e0ce1"
dependencies = [
- "regex-automata",
+ "regex-automata 0.1.9",
]
[[package]]
@@ -2268,7 +2526,7 @@ version = "0.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8263075bb86c5a1b1427b5ae862e8889656f126e9f77c484496e8b47cf5c5558"
dependencies = [
- "regex-automata",
+ "regex-automata 0.1.9",
]
[[package]]
@@ -2279,9 +2537,9 @@ checksum = "7ffc5c5338469d4d3ea17d269fa8ea3512ad247247c30bd2df69e68309ed0a08"
[[package]]
name = "memchr"
-version = "2.4.1"
+version = "2.6.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "308cc39be01b73d0d18f82a0e7b2a3df85245f84af96fdddc5d202d27e47b86a"
+checksum = "f665ee40bc4a3c5590afb1e9677db74a508659dfd71e126420da8274909a0167"
[[package]]
name = "memoffset"
@@ -2306,9 +2564,9 @@ checksum = "0c835948974f68e0bd58636fc6c5b1fbff7b297e3046f11b3b3c18bbac012c6d"
[[package]]
name = "miniscript"
-version = "9.0.0"
+version = "9.0.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "123a10aae81d0712ecc09b780f6f0ae0b0f506a5c4c912974725760d59ba073e"
+checksum = "e5b106477a0709e2da253e5559ba4ab20a272f8577f1eefff72f3a905b5d35f5"
dependencies = [
"bitcoin",
"serde",
@@ -2324,15 +2582,47 @@ dependencies = [
]
[[package]]
-name = "mio"
-version = "0.8.4"
+name = "miniz_oxide"
+version = "0.7.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "57ee1c23c7c63b0c9250c339ffdc69255f110b298b901b9f6c82547b7b87caaf"
+checksum = "e7810e0be55b428ada41041c41f32c9f1a42817901b4ccf45fa3d4b6561e74c7"
+dependencies = [
+ "adler",
+]
+
+[[package]]
+name = "mio"
+version = "0.8.10"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8f3d0b296e374a4e6f3c7b0a1f5a51d748a0d34c85e7dc48fc3fa9a87657fe09"
dependencies = [
"libc",
- "log",
"wasi 0.11.0+wasi-snapshot-preview1",
- "windows-sys 0.36.1",
+ "windows-sys 0.48.0",
+]
+
+[[package]]
+name = "mockito"
+version = "1.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "09b34bd91b9e5c5b06338d392463e1318d683cf82ec3d3af4014609be6e2108d"
+dependencies = [
+ "assert-json-diff",
+ "bytes",
+ "colored",
+ "futures-util",
+ "http 1.0.0",
+ "http-body 1.0.0",
+ "http-body-util",
+ "hyper 1.5.0",
+ "hyper-util",
+ "log",
+ "rand 0.8.3",
+ "regex",
+ "serde_json",
+ "serde_urlencoded",
+ "similar",
+ "tokio",
]
[[package]]
@@ -2369,11 +2659,10 @@ dependencies = [
"futures",
"monero-rpc",
"rand 0.7.3",
- "spectral",
- "testcontainers 0.12.0",
+ "testcontainers",
"tokio",
"tracing",
- "tracing-subscriber 0.2.25",
+ "tracing-subscriber 0.3.18",
]
[[package]]
@@ -2406,7 +2695,7 @@ dependencies = [
"monero-harness",
"monero-rpc",
"rand 0.7.3",
- "testcontainers 0.12.0",
+ "testcontainers",
"tokio",
"tracing-subscriber 0.2.25",
]
@@ -2494,40 +2783,20 @@ dependencies = [
]
[[package]]
-name = "num"
-version = "0.1.42"
+name = "nu-ansi-term"
+version = "0.46.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4703ad64153382334aa8db57c637364c322d3372e097840c72000dabdcf6156e"
+checksum = "77a8165726e8236064dbb45459242600304b42a5ea24ee2948e18e023bf7ba84"
dependencies = [
- "num-bigint",
- "num-complex",
- "num-integer",
- "num-iter",
- "num-rational 0.1.42",
- "num-traits",
+ "overload",
+ "winapi",
]
[[package]]
-name = "num-bigint"
-version = "0.1.44"
+name = "num-conv"
+version = "0.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e63899ad0da84ce718c14936262a41cee2c79c981fc0a0e7c7beb47d5a07e8c1"
-dependencies = [
- "num-integer",
- "num-traits",
- "rand 0.4.6",
- "rustc-serialize",
-]
-
-[[package]]
-name = "num-complex"
-version = "0.1.43"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b288631d7878aaf59442cffd36910ea604ecd7745c36054328595114001c9656"
-dependencies = [
- "num-traits",
- "rustc-serialize",
-]
+checksum = "51d515d32fb182ee37cda2ccdcb92950d6a3c2893aa280e540671c2cd0f3b1d9"
[[package]]
name = "num-integer"
@@ -2539,40 +2808,6 @@ dependencies = [
"num-traits",
]
-[[package]]
-name = "num-iter"
-version = "0.1.42"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b2021c8337a54d21aca0d59a92577a029af9431cb59b909b03252b9c164fad59"
-dependencies = [
- "autocfg",
- "num-integer",
- "num-traits",
-]
-
-[[package]]
-name = "num-rational"
-version = "0.1.42"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ee314c74bd753fc86b4780aa9475da469155f3848473a261d2d18e35245a784e"
-dependencies = [
- "num-bigint",
- "num-integer",
- "num-traits",
- "rustc-serialize",
-]
-
-[[package]]
-name = "num-rational"
-version = "0.3.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "12ac428b1cb17fce6f731001d307d351ec70a6d202fc2e60f7d4c5e42d8f4f07"
-dependencies = [
- "autocfg",
- "num-integer",
- "num-traits",
-]
-
[[package]]
name = "num-traits"
version = "0.2.15"
@@ -2594,10 +2829,28 @@ dependencies = [
]
[[package]]
-name = "once_cell"
-version = "1.13.0"
+name = "num_threads"
+version = "0.1.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "18a6dbe30758c9f83eb00cbea4ac95966305f5a7772f3f42ebfc7fc7eddbd8e1"
+checksum = "2819ce041d2ee131036f4fc9d6ae7ae125a3a40e97ba64d04fe799ad9dabbb44"
+dependencies = [
+ "libc",
+]
+
+[[package]]
+name = "object"
+version = "0.32.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9cf5f9dd3933bd50a9e1f149ec995f39ae2c496d31fd772c1fd45ebc27e902b0"
+dependencies = [
+ "memchr",
+]
+
+[[package]]
+name = "once_cell"
+version = "1.20.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1261fe7e33c73b354eab43b1273a57c8f967d0391e80353e51f764ac02cf6775"
[[package]]
name = "opaque-debug"
@@ -2612,7 +2865,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f85842b073145726190373213c63f852020fb884c841a3a1f390637267a2fb8c"
dependencies = [
"dtoa",
- "itoa 1.0.1",
+ "itoa",
"open-metrics-client-derive-text-encode",
"owning_ref",
]
@@ -2634,6 +2887,12 @@ version = "0.1.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "28988d872ab76095a6e6ac88d99b54fd267702734fd7ffe610ca27f533ddb95a"
+[[package]]
+name = "overload"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39"
+
[[package]]
name = "owning_ref"
version = "0.4.1"
@@ -2705,18 +2964,19 @@ checksum = "8835116a5c179084a830efb3adc117ab007512b535bc1a21c991d3b32a6b44dd"
[[package]]
name = "pem"
-version = "1.1.1"
+version = "3.0.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a8835c273a76a90455d7344889b0964598e3316e2a79ede8e36f16bdcf2228b8"
+checksum = "8e459365e590736a54c3fa561947c84837534b8e9af6fc5bf781307e82658fae"
dependencies = [
- "base64 0.13.1",
+ "base64 0.22.1",
+ "serde",
]
[[package]]
name = "percent-encoding"
-version = "2.3.0"
+version = "2.3.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9b2a4787296e9989611394c33f193f676704af1686e70b8f8033ab5ba9a35a94"
+checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e"
[[package]]
name = "pest"
@@ -2734,7 +2994,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4a13a2fa9d0b63e5f22328828741e523766fff0ee9e779316902290dff3f824f"
dependencies = [
"fixedbitset",
- "indexmap",
+ "indexmap 1.7.0",
]
[[package]]
@@ -2785,9 +3045,9 @@ checksum = "257b64915a082f7811703966789728173279bdebb956b143dbcd23f6f970a777"
[[package]]
name = "pin-project-lite"
-version = "0.2.9"
+version = "0.2.13"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e0a7ae3ac2f1173085d398531c705756c94a4c56843785df85a60c1a0afac116"
+checksum = "8afb450f006bf6385ca15ef45d71d2288452bc3683ce2e2cacc0d18e4be60b58"
[[package]]
name = "pin-utils"
@@ -2825,9 +3085,15 @@ dependencies = [
[[package]]
name = "port_check"
-version = "0.1.5"
+version = "0.2.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f6519412c9e0d4be579b9f0618364d19cb434b324fc6ddb1b27b1e682c7105ed"
+checksum = "2110609fb863cdb367d4e69d6c43c81ba6a8c7d18e80082fe9f3ef16b23afeed"
+
+[[package]]
+name = "powerfmt"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391"
[[package]]
name = "ppv-lite86"
@@ -2851,7 +3117,7 @@ version = "0.1.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1d6ea3c4595b96363c13943497db34af4460fb474a95c43f4446ad341b8c9785"
dependencies = [
- "toml",
+ "toml 0.5.11",
]
[[package]]
@@ -2861,7 +3127,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1ebace6889caf889b4d3f76becee12e90353f2b8c7d875534a71e5742f8f6f83"
dependencies = [
"thiserror",
- "toml",
+ "toml 0.5.11",
]
[[package]]
@@ -2890,28 +3156,28 @@ dependencies = [
[[package]]
name = "proc-macro2"
-version = "1.0.56"
+version = "1.0.87"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2b63bdb0cd06f1f4dedf69b254734f9b45af66e4a031e42a7480257d9898b435"
+checksum = "b3e4daa0dcf6feba26f985457cdf104d4b4256fc5a09547140f3631bb076b19a"
dependencies = [
"unicode-ident",
]
[[package]]
name = "proptest"
-version = "1.2.0"
+version = "1.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4e35c06b98bf36aba164cc17cb25f7e232f5c4aeea73baa14b8a9f0d92dbfa65"
+checksum = "b4c2511913b88df1637da85cc8d96ec8e43a3f8bb8ccb71ee1ac240d6f3df58d"
dependencies = [
"bit-set",
- "bitflags",
- "byteorder",
+ "bit-vec",
+ "bitflags 2.4.0",
"lazy_static",
"num-traits",
"rand 0.8.3",
"rand_chacha 0.3.1",
"rand_xorshift",
- "regex-syntax",
+ "regex-syntax 0.8.5",
"rusty-fork",
"tempfile",
"unarray",
@@ -2935,7 +3201,7 @@ checksum = "62941722fb675d463659e49c4f3fe1fe792ff24fe5bbaa9c08cd3b98a1c354f5"
dependencies = [
"bytes",
"heck 0.3.2",
- "itertools",
+ "itertools 0.10.5",
"lazy_static",
"log",
"multimap",
@@ -2954,7 +3220,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f9cc1a3263e07e0bf68e96268f37665207b49560d98739662cdfaae215c720fe"
dependencies = [
"anyhow",
- "itertools",
+ "itertools 0.10.5",
"proc-macro2",
"quote",
"syn 1.0.109",
@@ -2992,11 +3258,10 @@ dependencies = [
[[package]]
name = "qrcode"
-version = "0.12.0"
+version = "0.14.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "16d2f1455f3630c6e5107b4f2b94e74d76dea80736de0981fd27644216cff57f"
+checksum = "d68782463e408eb1e668cf6152704bd856c78c5b6417adaee3203d8f4c1fc9ec"
dependencies = [
- "checked_int_cast",
"image",
]
@@ -3018,25 +3283,59 @@ dependencies = [
]
[[package]]
-name = "quote"
-version = "1.0.26"
+name = "quinn"
+version = "0.11.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4424af4bf778aae2051a77b60283332f386554255d722233d09fbfc7e30da2fc"
+checksum = "e4ceeeeabace7857413798eb1ffa1e9c905a9946a57d81fb69b4b71c4d8eb3ad"
dependencies = [
- "proc-macro2",
+ "bytes",
+ "pin-project-lite 0.2.13",
+ "quinn-proto",
+ "quinn-udp",
+ "rustc-hash",
+ "rustls 0.23.10",
+ "thiserror",
+ "tokio",
+ "tracing",
]
[[package]]
-name = "rand"
-version = "0.4.6"
+name = "quinn-proto"
+version = "0.11.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "552840b97013b1a26992c11eac34bdd778e464601a4c2054b5f0bff7c6761293"
+checksum = "ddf517c03a109db8100448a4be38d498df8a210a99fe0e1b9eaf39e78c640efe"
+dependencies = [
+ "bytes",
+ "rand 0.8.3",
+ "ring 0.17.3",
+ "rustc-hash",
+ "rustls 0.23.10",
+ "slab",
+ "thiserror",
+ "tinyvec",
+ "tracing",
+]
+
+[[package]]
+name = "quinn-udp"
+version = "0.5.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9096629c45860fc7fb143e125eb826b5e721e10be3263160c7d60ca832cf8c46"
dependencies = [
- "fuchsia-cprng",
"libc",
- "rand_core 0.3.1",
- "rdrand",
- "winapi",
+ "once_cell",
+ "socket2 0.5.5",
+ "tracing",
+ "windows-sys 0.52.0",
+]
+
+[[package]]
+name = "quote"
+version = "1.0.35"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "291ec9ab5efd934aaf503a6466c5d5251535d108ee747472c3977cc5acc868ef"
+dependencies = [
+ "proc-macro2",
]
[[package]]
@@ -3084,21 +3383,6 @@ dependencies = [
"rand_core 0.6.2",
]
-[[package]]
-name = "rand_core"
-version = "0.3.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7a6fdeb83b075e8266dcc8762c22776f6877a63111121f5f8c7411e5be7eed4b"
-dependencies = [
- "rand_core 0.4.2",
-]
-
-[[package]]
-name = "rand_core"
-version = "0.4.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9c33a3c44ca05fa6f1807d8e6743f3824e8509beca625669633be0acbdf509dc"
-
[[package]]
name = "rand_core"
version = "0.5.1"
@@ -3114,7 +3398,7 @@ version = "0.6.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "34cf66eb183df1c5876e2dcf6b13d57340741e8dc255b48e40a26de954d06ae7"
dependencies = [
- "getrandom 0.2.6",
+ "getrandom 0.2.11",
]
[[package]]
@@ -3144,22 +3428,13 @@ dependencies = [
"rand_core 0.6.2",
]
-[[package]]
-name = "rdrand"
-version = "0.4.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "678054eb77286b51581ba43620cc911abf02758c91f93f479767aed0f90458b2"
-dependencies = [
- "rand_core 0.3.1",
-]
-
[[package]]
name = "redox_syscall"
version = "0.2.10"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8383f39639269cde97d255a32bdb68c047337295414940c68bdd30c2e13203ff"
dependencies = [
- "bitflags",
+ "bitflags 1.3.2",
]
[[package]]
@@ -3168,7 +3443,7 @@ version = "0.3.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "567664f262709473930a4bf9e51bf2ebf3348f2e748ccc50dea20646858f8f29"
dependencies = [
- "bitflags",
+ "bitflags 1.3.2",
]
[[package]]
@@ -3177,19 +3452,20 @@ version = "0.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "528532f3d801c87aec9def2add9ca802fe569e44a544afe633765267840abe64"
dependencies = [
- "getrandom 0.2.6",
+ "getrandom 0.2.11",
"redox_syscall 0.2.10",
]
[[package]]
name = "regex"
-version = "1.5.5"
+version = "1.11.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1a11647b6b25ff05a515cb92c365cec08801e83423a235b51e231e1808747286"
+checksum = "38200e5ee88914975b69f657f0801b6f6dccafd44fd9326302a4aaeecfacb1d8"
dependencies = [
- "aho-corasick",
+ "aho-corasick 1.1.3",
"memchr",
- "regex-syntax",
+ "regex-automata 0.4.8",
+ "regex-syntax 0.8.5",
]
[[package]]
@@ -3199,14 +3475,31 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ae1ded71d66a4a97f5e961fd0cb25a5f366a42a41570d16a763a69c092c26ae4"
dependencies = [
"byteorder",
- "regex-syntax",
+ "regex-syntax 0.6.29",
+]
+
+[[package]]
+name = "regex-automata"
+version = "0.4.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "368758f23274712b504848e9d5a6f010445cc8b87a7cdb4d7cbee666c1288da3"
+dependencies = [
+ "aho-corasick 1.1.3",
+ "memchr",
+ "regex-syntax 0.8.5",
]
[[package]]
name = "regex-syntax"
-version = "0.6.25"
+version = "0.6.29"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f497285884f3fcff424ffc933e56d7cbca511def0c9831a7f9b5f6153e3cc89b"
+checksum = "f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1"
+
+[[package]]
+name = "regex-syntax"
+version = "0.8.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2b15c43186be67a4fd63bee50d0303afffcef381492ebe2c5d87f324e1b8815c"
[[package]]
name = "rend"
@@ -3219,34 +3512,38 @@ dependencies = [
[[package]]
name = "reqwest"
-version = "0.11.18"
+version = "0.12.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cde824a14b7c14f85caff81225f411faacc04a2013f41670f41443742b1c1c55"
+checksum = "f713147fbe92361e52392c73b8c9e48c04c6625bce969ef54dc901e58e042a7b"
dependencies = [
- "base64 0.21.2",
+ "base64 0.22.1",
"bytes",
- "encoding_rs",
"futures-core",
"futures-util",
- "h2",
- "http",
- "http-body",
- "hyper",
+ "h2 0.4.3",
+ "http 1.0.0",
+ "http-body 1.0.0",
+ "http-body-util",
+ "hyper 1.5.0",
"hyper-rustls",
+ "hyper-util",
"ipnet",
"js-sys",
"log",
"mime",
"once_cell",
"percent-encoding",
- "pin-project-lite 0.2.9",
- "rustls 0.21.1",
- "rustls-pemfile",
+ "pin-project-lite 0.2.13",
+ "quinn",
+ "rustls 0.23.10",
+ "rustls-pemfile 2.1.2",
+ "rustls-pki-types",
"serde",
"serde_json",
"serde_urlencoded",
+ "sync_wrapper",
"tokio",
- "tokio-rustls 0.24.0",
+ "tokio-rustls 0.26.0",
"tokio-socks",
"tokio-util",
"tower-service",
@@ -3255,8 +3552,8 @@ dependencies = [
"wasm-bindgen-futures",
"wasm-streams",
"web-sys",
- "webpki-roots 0.22.2",
- "winreg 0.10.1",
+ "webpki-roots 0.26.1",
+ "windows-registry",
]
[[package]]
@@ -3279,11 +3576,25 @@ dependencies = [
"libc",
"once_cell",
"spin 0.5.2",
- "untrusted",
+ "untrusted 0.7.1",
"web-sys",
"winapi",
]
+[[package]]
+name = "ring"
+version = "0.17.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9babe80d5c16becf6594aa32ad2be8fe08498e7ae60b77de8df700e67f191d7e"
+dependencies = [
+ "cc",
+ "getrandom 0.2.11",
+ "libc",
+ "spin 0.9.4",
+ "untrusted 0.9.0",
+ "windows-sys 0.48.0",
+]
+
[[package]]
name = "rkyv"
version = "0.7.39"
@@ -3329,26 +3640,32 @@ dependencies = [
[[package]]
name = "rust_decimal_macros"
-version = "1.29.1"
+version = "1.30.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0e773fd3da1ed42472fdf3cfdb4972948a555bc3d73f5e0bdb99d17e7b54c687"
+checksum = "7ca5c398d85f83b9a44de754a2048625a8c5eafcf070da7b8f116b685e2f6608"
dependencies = [
"quote",
"rust_decimal",
]
+[[package]]
+name = "rustc-demangle"
+version = "0.1.23"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d626bb9dae77e28219937af045c257c28bfd3f69333c512553507f5f9798cb76"
+
+[[package]]
+name = "rustc-hash"
+version = "1.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2"
+
[[package]]
name = "rustc-hex"
version = "2.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3e75f6a532d0fd9f7f13144f392b6ad56a32696bfcd9c78f797f16bbb6f072d6"
-[[package]]
-name = "rustc-serialize"
-version = "0.3.24"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dcf128d1287d2ea9d80910b5f1120d0b8eede3fbf1abe91c40d39ea7d51e6fda"
-
[[package]]
name = "rustc_version"
version = "0.3.3"
@@ -3360,16 +3677,15 @@ dependencies = [
[[package]]
name = "rustix"
-version = "0.37.11"
+version = "0.38.37"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "85597d61f83914ddeba6a47b3b8ffe7365107221c2e557ed94426489fefb5f77"
+checksum = "8acb788b847c24f28525660c4d7758620a7210875711f79e7f663cc152726811"
dependencies = [
- "bitflags",
+ "bitflags 2.4.0",
"errno",
- "io-lifetimes",
"libc",
"linux-raw-sys",
- "windows-sys 0.48.0",
+ "windows-sys 0.52.0",
]
[[package]]
@@ -3380,7 +3696,7 @@ checksum = "064fd21ff87c6e87ed4506e68beb42459caa4a0e2eb144932e6776768556980b"
dependencies = [
"base64 0.13.1",
"log",
- "ring",
+ "ring 0.16.20",
"sct 0.6.0",
"webpki 0.21.4",
]
@@ -3392,21 +3708,23 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d37e5e2290f3e040b594b1a9e04377c2c671f1a1cfd9bfdef82106ac1c113f84"
dependencies = [
"log",
- "ring",
+ "ring 0.16.20",
"sct 0.7.0",
"webpki 0.22.0",
]
[[package]]
name = "rustls"
-version = "0.21.1"
+version = "0.23.10"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c911ba11bc8433e811ce56fde130ccf32f5127cab0e0194e9c68c5a5b671791e"
+checksum = "05cff451f60db80f490f3c182b77c35260baace73209e9cdbbe526bfe3a4d402"
dependencies = [
- "log",
- "ring",
+ "once_cell",
+ "ring 0.17.3",
+ "rustls-pki-types",
"rustls-webpki",
- "sct 0.7.0",
+ "subtle",
+ "zeroize",
]
[[package]]
@@ -3421,6 +3739,18 @@ dependencies = [
"security-framework",
]
+[[package]]
+name = "rustls-native-certs"
+version = "0.6.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a9aace74cb666635c918e9c12bc0d348266037aa8eb599b5cba565709a8dff00"
+dependencies = [
+ "openssl-probe",
+ "rustls-pemfile 1.0.0",
+ "schannel",
+ "security-framework",
+]
+
[[package]]
name = "rustls-pemfile"
version = "1.0.0"
@@ -3431,20 +3761,37 @@ dependencies = [
]
[[package]]
-name = "rustls-webpki"
-version = "0.100.1"
+name = "rustls-pemfile"
+version = "2.1.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d6207cd5ed3d8dca7816f8f3725513a34609c0c765bf652b8c3cb4cfd87db46b"
+checksum = "29993a25686778eb88d4189742cd713c9bce943bc54251a33509dc63cbacf73d"
dependencies = [
- "ring",
- "untrusted",
+ "base64 0.22.1",
+ "rustls-pki-types",
+]
+
+[[package]]
+name = "rustls-pki-types"
+version = "1.7.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "976295e77ce332211c0d24d92c0e83e50f5c5f046d11082cea19f3df13a3562d"
+
+[[package]]
+name = "rustls-webpki"
+version = "0.102.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ff448f7e92e913c4b7d4c6d8e4540a1724b319b4152b8aef6d4cf8339712b33e"
+dependencies = [
+ "ring 0.17.3",
+ "rustls-pki-types",
+ "untrusted 0.9.0",
]
[[package]]
name = "rustversion"
-version = "1.0.11"
+version = "1.0.14"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5583e89e108996506031660fe09baa5011b9dd0341b89029313006d1fb508d70"
+checksum = "7ffc183a10b4478d04cbbbfc96d0873219d962dd5accaff2ffbd4ceb7df837f4"
[[package]]
name = "rusty-fork"
@@ -3475,6 +3822,15 @@ version = "1.0.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "71d301d4193d031abdd79ff7e3dd721168a9572ef3fe51a1517aba235bd8f86e"
+[[package]]
+name = "scc"
+version = "2.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "76ad2bbb0ae5100a07b7a6f2ed7ab5fd0045551a4c507989b7a620046ea3efdc"
+dependencies = [
+ "sdd",
+]
+
[[package]]
name = "schannel"
version = "0.1.19"
@@ -3497,8 +3853,8 @@ version = "0.6.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e3042af939fca8c3453b7af0f1c66e533a15a86169e39de2657310ade8f98d3c"
dependencies = [
- "ring",
- "untrusted",
+ "ring 0.16.20",
+ "untrusted 0.7.1",
]
[[package]]
@@ -3507,10 +3863,16 @@ version = "0.7.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d53dcdb7c9f8158937a7981b48accfd39a43af418591a5d008c7b22b5e1b7ca4"
dependencies = [
- "ring",
- "untrusted",
+ "ring 0.16.20",
+ "untrusted 0.7.1",
]
+[[package]]
+name = "sdd"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b84345e4c9bd703274a082fb80caaa99b7612be48dfaa1dd9266577ec412309d"
+
[[package]]
name = "seahash"
version = "4.1.0"
@@ -3525,7 +3887,27 @@ checksum = "ff55dc09d460954e9ef2fa8a7ced735a964be9981fd50e870b2b3b0705e14964"
dependencies = [
"bitcoin_hashes",
"rand 0.8.3",
- "secp256k1-sys",
+ "secp256k1-sys 0.6.1",
+ "serde",
+]
+
+[[package]]
+name = "secp256k1"
+version = "0.27.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "25996b82292a7a57ed3508f052cfff8640d38d32018784acd714758b43da9c8f"
+dependencies = [
+ "secp256k1-sys 0.8.1",
+ "serde",
+]
+
+[[package]]
+name = "secp256k1"
+version = "0.28.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d24b59d129cdadea20aea4fb2352fa053712e5d713eee47d700cd4b2bc002f10"
+dependencies = [
+ "secp256k1-sys 0.9.2",
"serde",
]
@@ -3539,24 +3921,56 @@ dependencies = [
]
[[package]]
-name = "secp256kfun"
-version = "0.7.1"
-source = "git+https://github.com/LLFourn/secp256kfun#9657d8c12fd26df5e57254a0063eaf41082a38ca"
+name = "secp256k1-sys"
+version = "0.8.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "70a129b9e9efbfb223753b9163c4ab3b13cff7fd9c7f010fbac25ab4099fa07e"
dependencies = [
- "digest 0.10.5",
+ "cc",
+]
+
+[[package]]
+name = "secp256k1-sys"
+version = "0.9.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e5d1746aae42c19d583c3c1a8c646bfad910498e2051c551a7f2e3c0c9fbb7eb"
+dependencies = [
+ "cc",
+]
+
+[[package]]
+name = "secp256kfun"
+version = "0.10.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9ecc2adce3ef929c5dc7dacdd612d65ab98002ee18119215ce25d8054ed53c1a"
+dependencies = [
+ "bincode 2.0.0-rc.3",
+ "digest 0.10.7",
"rand_core 0.6.2",
- "secp256k1",
+ "secp256k1 0.27.0",
+ "secp256k1 0.28.2",
+ "secp256kfun_arithmetic_macros",
"serde",
"subtle-ng",
]
+[[package]]
+name = "secp256kfun_arithmetic_macros"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "91b7c385a72530ebfe6010ff476ad9e235743fb33408a360052bb706f1481e1e"
+dependencies = [
+ "proc-macro2",
+ "quote",
+]
+
[[package]]
name = "security-framework"
version = "2.3.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "23a2ac85147a3a11d77ecf1bc7166ec0b92febfa4461c37944e180f319ece467"
dependencies = [
- "bitflags",
+ "bitflags 1.3.2",
"core-foundation",
"core-foundation-sys",
"libc",
@@ -3592,10 +4006,25 @@ dependencies = [
]
[[package]]
-name = "serde"
-version = "1.0.164"
+name = "sequential-macro"
+version = "0.1.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9e8c8cf938e98f769bc164923b06dce91cea1751522f46f8466461af04c9027d"
+checksum = "eb5facc5f409a55d25bf271c853402a00e1187097d326757043f5dd711944d07"
+
+[[package]]
+name = "sequential-test"
+version = "0.2.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f0d9c0d773bc7e7733264f460e5dfa00b2510421ddd6284db0749eef8dfb79e9"
+dependencies = [
+ "sequential-macro",
+]
+
+[[package]]
+name = "serde"
+version = "1.0.210"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c8e3592472072e6e22e0a54d5904d9febf8508f65fb8552499a1abc7d1078c3a"
dependencies = [
"serde_derive",
]
@@ -3622,26 +4051,36 @@ dependencies = [
[[package]]
name = "serde_derive"
-version = "1.0.164"
+version = "1.0.210"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d9735b638ccc51c28bf6914d90a2e9725b377144fc612c49a611fddd1b631d68"
+checksum = "243902eda00fad750862fc144cea25caca5e20d615af0a81bee94ca738f1df1f"
dependencies = [
"proc-macro2",
"quote",
- "syn 2.0.15",
+ "syn 2.0.79",
]
[[package]]
name = "serde_json"
-version = "1.0.96"
+version = "1.0.132"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "057d394a50403bcac12672b2b18fb387ab6d289d957dab67dd201875391e52f1"
+checksum = "d726bfaff4b320266d395898905d0eba0345aae23b54aee3a737e260fd46db03"
dependencies = [
- "itoa 1.0.1",
+ "itoa",
+ "memchr",
"ryu",
"serde",
]
+[[package]]
+name = "serde_spanned"
+version = "0.6.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "eb5b1b31579f3811bf615c144393417496f152e12ac8b7663bf664f4a815306d"
+dependencies = [
+ "serde",
+]
+
[[package]]
name = "serde_urlencoded"
version = "0.7.1"
@@ -3649,7 +4088,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd"
dependencies = [
"form_urlencoded",
- "itoa 1.0.1",
+ "itoa",
"ryu",
"serde",
]
@@ -3678,27 +4117,27 @@ dependencies = [
[[package]]
name = "serial_test"
-version = "2.0.0"
+version = "3.1.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0e56dd856803e253c8f298af3f4d7eb0ae5e23a737252cd90bb4f3b435033b2d"
+checksum = "4b4b487fe2acf240a021cf57c6b2b4903b1e78ca0ecd862a71b71d2a51fed77d"
dependencies = [
- "dashmap",
"futures",
- "lazy_static",
"log",
+ "once_cell",
"parking_lot 0.12.0",
+ "scc",
"serial_test_derive",
]
[[package]]
name = "serial_test_derive"
-version = "2.0.0"
+version = "3.1.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "91d129178576168c589c9ec973feedf7d3126c01ac2bf08795109aa35b69fb8f"
+checksum = "82fe9db325bcef1fbcde82e078a5cc4efdf787e96b3b9cf45b50b529f2083d67"
dependencies = [
"proc-macro2",
"quote",
- "syn 2.0.15",
+ "syn 2.0.79",
]
[[package]]
@@ -3729,13 +4168,13 @@ dependencies = [
[[package]]
name = "sha2"
-version = "0.10.6"
+version = "0.10.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "82e6b795fe2e3b1e845bafcb27aa35405c4d47cdfc92af5fc8d3002f76cebdc0"
+checksum = "793db75ad2bcafc3ffa7c68b215fee268f537982cd901d132f89c6343f3a3dc8"
dependencies = [
"cfg-if 1.0.0",
"cpufeatures 0.2.1",
- "digest 0.10.5",
+ "digest 0.10.7",
]
[[package]]
@@ -3752,9 +4191,9 @@ dependencies = [
[[package]]
name = "sharded-slab"
-version = "0.1.1"
+version = "0.1.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "79c719719ee05df97490f80a45acfc99e5a30ce98a1e4fb67aee422745ae14e3"
+checksum = "f40ca3c46823713e0d4209592e8d6e826aa57e928f09752619fc696c499637f6"
dependencies = [
"lazy_static",
]
@@ -3767,38 +4206,18 @@ checksum = "24188a676b6ae68c3b2cb3a01be17fbf7240ce009799bb56d5b1409051e78fde"
[[package]]
name = "sigma_fun"
-version = "0.4.1"
-source = "git+https://github.com/LLFourn/secp256kfun#9657d8c12fd26df5e57254a0063eaf41082a38ca"
+version = "0.7.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0b8e9462de42c6f14c7e20154d18d8e9e8683750798885e76f06973317b1cb1d"
dependencies = [
"curve25519-dalek-ng",
- "digest 0.10.5",
+ "digest 0.10.7",
"generic-array",
"rand_core 0.6.2",
"secp256kfun",
"serde",
]
-[[package]]
-name = "signal-hook"
-version = "0.3.13"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "647c97df271007dcea485bb74ffdb57f2e683f1306c854f468a0c244badabf2d"
-dependencies = [
- "libc",
- "signal-hook-registry",
-]
-
-[[package]]
-name = "signal-hook-mio"
-version = "0.2.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "29ad2e15f37ec9a6cc544097b78a1ec90001e9f71b81338ca39f430adaca99af"
-dependencies = [
- "libc",
- "mio",
- "signal-hook",
-]
-
[[package]]
name = "signal-hook-registry"
version = "1.4.0"
@@ -3814,6 +4233,12 @@ version = "1.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0f0242b8e50dd9accdd56170e94ca1ebd223b098eb9c83539a6e367d0f36ae68"
+[[package]]
+name = "similar"
+version = "2.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2aeaf503862c419d66959f5d7ca015337d864e9c49485d771b732e2a20453597"
+
[[package]]
name = "slab"
version = "0.4.2"
@@ -3838,9 +4263,9 @@ dependencies = [
[[package]]
name = "smallvec"
-version = "1.10.0"
+version = "1.13.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a507befe795404456341dfab10cef66ead4c041f62b8b11bbb92bffe5d0953e0"
+checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67"
[[package]]
name = "snow"
@@ -3853,7 +4278,7 @@ dependencies = [
"chacha20poly1305",
"rand 0.8.3",
"rand_core 0.6.2",
- "ring",
+ "ring 0.16.20",
"rustc_version",
"sha2 0.9.8",
"subtle",
@@ -3882,30 +4307,32 @@ dependencies = [
]
[[package]]
-name = "soketto"
-version = "0.7.0"
+name = "socket2"
+version = "0.5.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "083624472e8817d44d02c0e55df043737ff11f279af924abdf93845717c2b75c"
+checksum = "7b5fac59a5cb5dd637972e5fca70daf0523c9067fcdc4842f053dae04a18f8e9"
+dependencies = [
+ "libc",
+ "windows-sys 0.48.0",
+]
+
+[[package]]
+name = "soketto"
+version = "0.7.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "41d1c5305e39e09653383c2c7244f2f78b3bcae37cf50c64cb4789c9f5096ec2"
dependencies = [
"base64 0.13.1",
"bytes",
"flate2",
"futures",
+ "http 0.2.11",
"httparse",
"log",
"rand 0.8.3",
"sha-1",
]
-[[package]]
-name = "spectral"
-version = "0.6.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ae3c15181f4b14e52eeaac3efaeec4d2764716ce9c86da0c934c3e318649c5ba"
-dependencies = [
- "num",
-]
-
[[package]]
name = "spin"
version = "0.5.2"
@@ -3927,7 +4354,7 @@ version = "0.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f87e292b4291f154971a43c3774364e2cbcaec599d3f5bf6fa9d122885dbc38a"
dependencies = [
- "itertools",
+ "itertools 0.10.5",
"nom",
"unicode_categories",
]
@@ -3950,7 +4377,7 @@ checksum = "fa8241483a83a3f33aa5fff7e7d9def398ff9990b2752b6c6112b83c6d246029"
dependencies = [
"ahash",
"atoi",
- "bitflags",
+ "bitflags 1.3.2",
"byteorder",
"bytes",
"crc",
@@ -3966,8 +4393,8 @@ dependencies = [
"futures-util",
"hashlink",
"hex",
- "indexmap",
- "itoa 1.0.1",
+ "indexmap 1.7.0",
+ "itoa",
"libc",
"libsqlite3-sys",
"log",
@@ -3976,9 +4403,9 @@ dependencies = [
"paste",
"percent-encoding",
"rustls 0.20.2",
- "rustls-pemfile",
+ "rustls-pemfile 1.0.0",
"serde",
- "sha2 0.10.6",
+ "sha2 0.10.8",
"smallvec",
"sqlformat",
"sqlx-rt",
@@ -3997,14 +4424,14 @@ checksum = "9966e64ae989e7e575b19d7265cb79d7fc3cbbdf179835cb0d716f294c2049c9"
dependencies = [
"dotenvy",
"either",
- "heck 0.4.0",
+ "heck 0.4.1",
"hex",
"once_cell",
"proc-macro2",
"quote",
"serde",
"serde_json",
- "sha2 0.10.6",
+ "sha2 0.10.8",
"sqlx-core",
"sqlx-rt",
"syn 1.0.109",
@@ -4082,31 +4509,31 @@ dependencies = [
[[package]]
name = "strum"
-version = "0.24.1"
+version = "0.26.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "063e6045c0e62079840579a7e47a355ae92f60eb74daaf156fb1e84ba164e63f"
+checksum = "8fec0f0aef304996cf250b31b5a10dee7980c85da9d759361292b8bca5a18f06"
dependencies = [
"strum_macros",
]
[[package]]
name = "strum_macros"
-version = "0.24.0"
+version = "0.26.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6878079b17446e4d3eba6192bb0a2950d5b14f0ed8424b852310e5a94345d0ef"
+checksum = "4c6bee85a5a24955dc440386795aa378cd9cf82acd5f764469152d2270e581be"
dependencies = [
- "heck 0.4.0",
+ "heck 0.5.0",
"proc-macro2",
"quote",
"rustversion",
- "syn 1.0.109",
+ "syn 2.0.79",
]
[[package]]
name = "subtle"
-version = "2.4.0"
+version = "2.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1e81da0851ada1f3e9d4312c704aa4f8806f0f9d69faaf8df2f3464b4a9437c2"
+checksum = "81cdd64d312baedb58e21336b31bc043b77e01cc99033ce76ef539f78e965ebc"
[[package]]
name = "subtle-ng"
@@ -4116,14 +4543,14 @@ checksum = "8049cf85f0e715d6af38dde439cb0ccb91f67fb9f5f63c80f8b43e48356e1a3f"
[[package]]
name = "swap"
-version = "0.12.2"
+version = "0.13.4"
dependencies = [
"anyhow",
"async-compression",
"async-trait",
"atty",
"backoff",
- "base64 0.21.2",
+ "base64 0.22.1",
"bdk",
"big-bytes",
"bitcoin",
@@ -4135,53 +4562,59 @@ dependencies = [
"curve25519-dalek-ng",
"data-encoding",
"dialoguer",
+ "digest 0.10.7",
"directories-next",
"ecdsa_fun",
"ed25519-dalek",
"futures",
"get-port",
"hex",
- "hyper",
- "itertools",
+ "hyper 1.5.0",
+ "itertools 0.13.0",
+ "jsonrpsee",
+ "jsonrpsee-core",
"libp2p",
+ "mockito",
"monero",
"monero-harness",
"monero-rpc",
+ "once_cell",
"pem",
"port_check",
"proptest",
"qrcode",
"rand 0.8.3",
"rand_chacha 0.3.1",
+ "regex",
"reqwest",
"rust_decimal",
"rust_decimal_macros",
+ "sequential-test",
"serde",
"serde_cbor",
"serde_json",
"serde_with",
"serial_test",
- "sha2 0.10.6",
+ "sha2 0.10.8",
"sigma_fun",
- "spectral",
"sqlx",
"structopt",
"strum",
"tempfile",
- "testcontainers 0.12.0",
+ "testcontainers",
"thiserror",
- "time 0.3.24",
+ "time 0.3.36",
"tokio",
"tokio-socks",
"tokio-tar",
"tokio-tungstenite",
"tokio-util",
- "toml",
+ "toml 0.8.19",
"torut",
"tracing",
"tracing-appender",
"tracing-futures",
- "tracing-subscriber 0.3.15",
+ "tracing-subscriber 0.3.18",
"url",
"uuid",
"vergen",
@@ -4202,15 +4635,24 @@ dependencies = [
[[package]]
name = "syn"
-version = "2.0.15"
+version = "2.0.79"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a34fcf3e8b60f57e6a14301a2e916d323af98b0ea63c599441eec8558660c822"
+checksum = "89132cd0bf050864e1d38dc3bbc07a0eb8e7530af26344d3d2bbbef83499f590"
dependencies = [
"proc-macro2",
"quote",
"unicode-ident",
]
+[[package]]
+name = "sync_wrapper"
+version = "1.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a7065abeca94b6a8a577f9bd45aa0867a2238b74e8eb67cf10d492bc39351394"
+dependencies = [
+ "futures-core",
+]
+
[[package]]
name = "synstructure"
version = "0.12.4"
@@ -4225,16 +4667,15 @@ dependencies = [
[[package]]
name = "tempfile"
-version = "3.6.0"
+version = "3.13.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "31c0432476357e58790aaa47a8efb0c5138f137343f3b5f23bd36a27e3b0a6d6"
+checksum = "f0f2c9fc62d0beef6951ccffd757e241266a2c833136efbe35af6cd2567dca5b"
dependencies = [
- "autocfg",
"cfg-if 1.0.0",
"fastrand",
- "redox_syscall 0.3.5",
+ "once_cell",
"rustix",
- "windows-sys 0.48.0",
+ "windows-sys 0.59.0",
]
[[package]]
@@ -4249,24 +4690,9 @@ dependencies = [
[[package]]
name = "testcontainers"
-version = "0.12.0"
+version = "0.15.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d5e3ed6e3598dbf32cba8cb356b881c085e0adea57597f387723430dd94b4084"
-dependencies = [
- "hex",
- "hmac 0.10.1",
- "log",
- "rand 0.8.3",
- "serde",
- "serde_json",
- "sha2 0.9.8",
-]
-
-[[package]]
-name = "testcontainers"
-version = "0.14.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0e2b1567ca8a2b819ea7b28c92be35d9f76fb9edb214321dcc86eb96023d1f87"
+checksum = "f83d2931d7f521af5bae989f716c3fa43a6af9af7ec7a5e21b59ae40878cec00"
dependencies = [
"bollard-stubs",
"futures",
@@ -4276,7 +4702,7 @@ dependencies = [
"rand 0.8.3",
"serde",
"serde_json",
- "sha2 0.10.6",
+ "sha2 0.10.8",
]
[[package]]
@@ -4290,22 +4716,22 @@ dependencies = [
[[package]]
name = "thiserror"
-version = "1.0.40"
+version = "1.0.65"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "978c9a314bd8dc99be594bc3c175faaa9794be04a5a5e153caba6915336cebac"
+checksum = "5d11abd9594d9b38965ef50805c5e469ca9cc6f197f883f717e0269a3057b3d5"
dependencies = [
"thiserror-impl",
]
[[package]]
name = "thiserror-impl"
-version = "1.0.40"
+version = "1.0.65"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f9456a42c5b0d803c8cd86e73dd7cc9edd429499f37a3550d286d5e86720569f"
+checksum = "ae71770322cbd277e69d762a16c444af02aa0575ac0d174f0b9562d3b37f8602"
dependencies = [
"proc-macro2",
"quote",
- "syn 2.0.15",
+ "syn 2.0.79",
]
[[package]]
@@ -4329,12 +4755,16 @@ dependencies = [
[[package]]
name = "time"
-version = "0.3.24"
+version = "0.3.36"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b79eabcd964882a646b3584543ccabeae7869e9ac32a46f6f22b7a5bd405308b"
+checksum = "5dfd88e563464686c916c7e46e623e520ddc6d79fa6641390f2e3fa86e83e885"
dependencies = [
"deranged",
- "itoa 1.0.1",
+ "itoa",
+ "libc",
+ "num-conv",
+ "num_threads",
+ "powerfmt",
"serde",
"time-core",
"time-macros",
@@ -4342,16 +4772,17 @@ dependencies = [
[[package]]
name = "time-core"
-version = "0.1.1"
+version = "0.1.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7300fbefb4dadc1af235a9cef3737cea692a9d97e1b9cbcd4ebdae6f8868e6fb"
+checksum = "ef927ca75afb808a4d64dd374f00a2adf8d0fcff8e7b184af886c3c87ec4a3f3"
[[package]]
name = "time-macros"
-version = "0.2.11"
+version = "0.2.18"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "eb71511c991639bb078fd5bf97757e03914361c48100d52878b8e52b46fb92cd"
+checksum = "3f252a68540fde3a3877aeea552b832b40ab9a69e318efd078774a01ddee1ccf"
dependencies = [
+ "num-conv",
"time-core",
]
@@ -4381,33 +4812,32 @@ checksum = "cda74da7e1a664f795bb1f8a87ec406fb89a02522cf6e50620d016add6dbbf5c"
[[package]]
name = "tokio"
-version = "1.19.2"
+version = "1.38.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c51a52ed6686dd62c320f9b89299e9dfb46f730c7a48e635c19f21d116cb1439"
+checksum = "eb2caba9f80616f438e09748d5acda951967e1ea58508ef53d9c6402485a46df"
dependencies = [
+ "backtrace",
"bytes",
"libc",
- "memchr",
"mio",
"num_cpus",
- "once_cell",
"parking_lot 0.12.0",
- "pin-project-lite 0.2.9",
+ "pin-project-lite 0.2.13",
"signal-hook-registry",
- "socket2 0.4.7",
+ "socket2 0.5.5",
"tokio-macros",
- "winapi",
+ "windows-sys 0.48.0",
]
[[package]]
name = "tokio-macros"
-version = "1.7.0"
+version = "2.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b557f72f448c511a979e2564e55d74e6c4432fc96ff4f6241bc6bded342643b7"
+checksum = "5f5ae998a069d4b5aba8ee9dad856af7d520c3699e6159b185c2acd48155d39a"
dependencies = [
"proc-macro2",
"quote",
- "syn 1.0.109",
+ "syn 2.0.79",
]
[[package]]
@@ -4434,19 +4864,20 @@ dependencies = [
[[package]]
name = "tokio-rustls"
-version = "0.24.0"
+version = "0.26.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e0d409377ff5b1e3ca6437aa86c1eb7d40c134bfec254e44c830defa92669db5"
+checksum = "0c7bc40d0e5a97695bb96e27995cd3a08538541b0a846f65bba7a359f36700d4"
dependencies = [
- "rustls 0.21.1",
+ "rustls 0.23.10",
+ "rustls-pki-types",
"tokio",
]
[[package]]
name = "tokio-socks"
-version = "0.5.1"
+version = "0.5.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "51165dfa029d2a65969413a6cc96f354b86b464498702f174a4efa13608fd8c0"
+checksum = "0d4770b8024672c1101b3f6733eab95b18007dbe0847a8afe341fcf79e06043f"
dependencies = [
"either",
"futures-util",
@@ -4461,20 +4892,20 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d660770404473ccd7bc9f8b28494a811bc18542b915c0855c51e8f419d5223ce"
dependencies = [
"futures-core",
- "pin-project-lite 0.2.9",
+ "pin-project-lite 0.2.13",
"tokio",
]
[[package]]
name = "tokio-tar"
-version = "0.3.0"
+version = "0.3.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a50188549787c32c1c3d9c8c71ad7e003ccf2f102489c5a96e385c84760477f4"
+checksum = "9d5714c010ca3e5c27114c1cdeb9d14641ace49874aa5626d7149e47aedace75"
dependencies = [
"filetime",
"futures-core",
"libc",
- "redox_syscall 0.2.10",
+ "redox_syscall 0.3.5",
"tokio",
"tokio-stream",
"xattr",
@@ -4499,16 +4930,16 @@ dependencies = [
[[package]]
name = "tokio-util"
-version = "0.7.3"
+version = "0.7.12"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cc463cd8deddc3770d20f9852143d50bf6094e640b485cb2e189a2099085ff45"
+checksum = "61e7c3654c13bcd040d4a03abee2c75b1d14a37b423cf5a813ceae1cc903ec6a"
dependencies = [
"bytes",
"futures-core",
+ "futures-io",
"futures-sink",
- "pin-project-lite 0.2.9",
+ "pin-project-lite 0.2.13",
"tokio",
- "tracing",
]
[[package]]
@@ -4520,6 +4951,40 @@ dependencies = [
"serde",
]
+[[package]]
+name = "toml"
+version = "0.8.19"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a1ed1f98e3fdc28d6d910e6737ae6ab1a93bf1985935a1193e68f93eeb68d24e"
+dependencies = [
+ "serde",
+ "serde_spanned",
+ "toml_datetime",
+ "toml_edit",
+]
+
+[[package]]
+name = "toml_datetime"
+version = "0.6.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0dd7358ecb8fc2f8d014bf86f6f638ce72ba252a2c3a2572f2a795f1d23efb41"
+dependencies = [
+ "serde",
+]
+
+[[package]]
+name = "toml_edit"
+version = "0.22.20"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "583c44c02ad26b0c3f3066fe629275e50627026c51ac2e595cca4c230ce1ce1d"
+dependencies = [
+ "indexmap 2.1.0",
+ "serde",
+ "serde_spanned",
+ "toml_datetime",
+ "winnow",
+]
+
[[package]]
name = "torut"
version = "0.2.1"
@@ -4538,6 +5003,28 @@ dependencies = [
"tokio",
]
+[[package]]
+name = "tower"
+version = "0.4.13"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b8fa9be0de6cf49e536ce1851f987bd21a43b771b09473c3549a6c853db37c1c"
+dependencies = [
+ "futures-core",
+ "futures-util",
+ "pin-project 1.0.5",
+ "pin-project-lite 0.2.13",
+ "tokio",
+ "tower-layer",
+ "tower-service",
+ "tracing",
+]
+
+[[package]]
+name = "tower-layer"
+version = "0.3.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c20c8dbed6283a09604c3e69b4b7eeb54e298b8a600d4d5ecb5ad39de609f1d0"
+
[[package]]
name = "tower-service"
version = "0.3.1"
@@ -4546,42 +5033,44 @@ checksum = "360dfd1d6d30e05fda32ace2c8c70e9c0a9da713275777f5a4dbb8a1893930c6"
[[package]]
name = "tracing"
-version = "0.1.38"
+version = "0.1.40"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cf9cf6a813d3f40c88b0b6b6f29a5c95c6cdbf97c1f9cc53fb820200f5ad814d"
+checksum = "c3523ab5a71916ccf420eebdf5521fcef02141234bbc0b8a49f2fdc4544364ef"
dependencies = [
- "pin-project-lite 0.2.9",
+ "log",
+ "pin-project-lite 0.2.13",
"tracing-attributes",
"tracing-core",
]
[[package]]
name = "tracing-appender"
-version = "0.2.2"
+version = "0.2.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "09d48f71a791638519505cefafe162606f706c25592e4bde4d97600c0195312e"
+checksum = "3566e8ce28cc0a3fe42519fc80e6b4c943cc4c8cef275620eb8dac2d3d4e06cf"
dependencies = [
"crossbeam-channel",
- "time 0.3.24",
- "tracing-subscriber 0.3.15",
+ "thiserror",
+ "time 0.3.36",
+ "tracing-subscriber 0.3.18",
]
[[package]]
name = "tracing-attributes"
-version = "0.1.24"
+version = "0.1.27"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0f57e3ca2a01450b1a921183a9c9cbfda207fd822cef4ccb00a65402cbba7a74"
+checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7"
dependencies = [
"proc-macro2",
"quote",
- "syn 2.0.15",
+ "syn 2.0.79",
]
[[package]]
name = "tracing-core"
-version = "0.1.30"
+version = "0.1.32"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "24eb03ba0eab1fd845050058ce5e616558e8f8d8fca633e6b163fe25c797213a"
+checksum = "c06d3da6113f116aaee68e4d601191614c9053067f9ab7f6edbcb161237daa54"
dependencies = [
"once_cell",
"valuable",
@@ -4610,6 +5099,17 @@ dependencies = [
"tracing-core",
]
+[[package]]
+name = "tracing-log"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ee855f1f400bd0e5c02d150ae5de3840039a3f54b025156404e34c23c03f47c3"
+dependencies = [
+ "log",
+ "once_cell",
+ "tracing-core",
+]
+
[[package]]
name = "tracing-serde"
version = "0.1.3"
@@ -4635,27 +5135,27 @@ dependencies = [
"thread_local",
"tracing",
"tracing-core",
- "tracing-log",
+ "tracing-log 0.1.2",
]
[[package]]
name = "tracing-subscriber"
-version = "0.3.15"
+version = "0.3.18"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "60db860322da191b40952ad9affe65ea23e7dd6a5c442c2c42865810c6ab8e6b"
+checksum = "ad0f048c97dbd9faa9b7df56362b8ebcaa52adb06b498c050d2f4e32f90a7a8b"
dependencies = [
- "ansi_term 0.12.1",
"matchers 0.1.0",
+ "nu-ansi-term",
"once_cell",
"regex",
"serde",
"serde_json",
"sharded-slab",
"thread_local",
- "time 0.3.24",
+ "time 0.3.36",
"tracing",
"tracing-core",
- "tracing-log",
+ "tracing-log 0.2.0",
"tracing-serde",
]
@@ -4719,12 +5219,12 @@ dependencies = [
"base64 0.13.1",
"byteorder",
"bytes",
- "http",
+ "http 0.2.11",
"httparse",
"log",
"rand 0.8.3",
"rustls 0.19.0",
- "rustls-native-certs",
+ "rustls-native-certs 0.5.0",
"sha-1",
"thiserror",
"url",
@@ -4836,13 +5336,19 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a156c684c91ea7d62626509bce3cb4e1d9ed5c4d978f7b4352658f96a4c26b4a"
[[package]]
-name = "url"
-version = "2.4.0"
+name = "untrusted"
+version = "0.9.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "50bff7831e19200a85b17131d085c25d7811bc4e186efdaf54bbd132994a88cb"
+checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1"
+
+[[package]]
+name = "url"
+version = "2.5.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "22784dbdf76fdde8af1aeda5622b546b422b6fc585325248a2bf9f5e41e94d6c"
dependencies = [
"form_urlencoded",
- "idna 0.4.0",
+ "idna 0.5.0",
"percent-encoding",
"serde",
]
@@ -4855,11 +5361,11 @@ checksum = "05e42f7c18b8f902290b009cde6d651262f956c98bc51bca4cd1d511c9cd85c7"
[[package]]
name = "uuid"
-version = "1.4.1"
+version = "1.11.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "79daa5ed5740825c40b389c5e50312b9c86df53fccd33f281df655642b43869d"
+checksum = "f8c5f0a0af699448548ad1a2fbf920fb4bee257eae39953ba95cb84891a0446a"
dependencies = [
- "getrandom 0.2.6",
+ "getrandom 0.2.11",
"serde",
]
@@ -4883,18 +5389,15 @@ checksum = "f1bddf1187be692e79c5ffeab891132dfb0f236ed36a43c7ed39f1165ee20191"
[[package]]
name = "vergen"
-version = "7.5.1"
+version = "8.3.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f21b881cd6636ece9735721cf03c1fe1e774fe258683d084bb2812ab67435749"
+checksum = "2990d9ea5967266ea0ccf413a4aa5c42a93dbcfda9cb49a97de6931726b12566"
dependencies = [
"anyhow",
"cfg-if 1.0.0",
- "enum-iterator",
- "getset",
"git2",
"rustversion",
- "thiserror",
- "time 0.3.24",
+ "time 0.3.36",
]
[[package]]
@@ -4903,6 +5406,12 @@ version = "0.9.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5fecdca9a5291cc2b8dcf7dc02453fee791a280f3743cb0905f8822ae463b3fe"
+[[package]]
+name = "virtue"
+version = "0.0.13"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9dcc60c0624df774c82a0ef104151231d37da4962957d691c011c852b2473314"
+
[[package]]
name = "void"
version = "1.0.2"
@@ -4934,12 +5443,6 @@ version = "0.9.0+wasi-snapshot-preview1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519"
-[[package]]
-name = "wasi"
-version = "0.10.2+wasi-snapshot-preview1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fd6fbd9a79829dd1ad0cc20627bf1ed606756a7f77edff7b66b7064f9cb327c6"
-
[[package]]
name = "wasi"
version = "0.11.0+wasi-snapshot-preview1"
@@ -4948,9 +5451,9 @@ checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423"
[[package]]
name = "wasm-bindgen"
-version = "0.2.83"
+version = "0.2.90"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "eaf9f5aceeec8be17c128b2e93e031fb8a4d469bb9c4ae2d7dc1888b26887268"
+checksum = "b1223296a201415c7fad14792dbefaace9bd52b62d33453ade1c5b5f07555406"
dependencies = [
"cfg-if 1.0.0",
"wasm-bindgen-macro",
@@ -4958,24 +5461,24 @@ dependencies = [
[[package]]
name = "wasm-bindgen-backend"
-version = "0.2.83"
+version = "0.2.90"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4c8ffb332579b0557b52d268b91feab8df3615f265d5270fec2a8c95b17c1142"
+checksum = "fcdc935b63408d58a32f8cc9738a0bffd8f05cc7c002086c6ef20b7312ad9dcd"
dependencies = [
"bumpalo",
"log",
"once_cell",
"proc-macro2",
"quote",
- "syn 1.0.109",
+ "syn 2.0.79",
"wasm-bindgen-shared",
]
[[package]]
name = "wasm-bindgen-futures"
-version = "0.4.21"
+version = "0.4.40"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8e67a5806118af01f0d9045915676b22aaebecf4178ae7021bc171dab0b897ab"
+checksum = "bde2032aeb86bdfaecc8b261eef3cba735cc426c1f3a3416d1e0791be95fc461"
dependencies = [
"cfg-if 1.0.0",
"js-sys",
@@ -4985,9 +5488,9 @@ dependencies = [
[[package]]
name = "wasm-bindgen-macro"
-version = "0.2.83"
+version = "0.2.90"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "052be0f94026e6cbc75cdefc9bae13fd6052cdcaf532fa6c45e7ae33a1e6c810"
+checksum = "3e4c238561b2d428924c49815533a8b9121c664599558a5d9ec51f8a1740a999"
dependencies = [
"quote",
"wasm-bindgen-macro-support",
@@ -4995,28 +5498,28 @@ dependencies = [
[[package]]
name = "wasm-bindgen-macro-support"
-version = "0.2.83"
+version = "0.2.90"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "07bc0c051dc5f23e307b13285f9d75df86bfdf816c5721e573dec1f9b8aa193c"
+checksum = "bae1abb6806dc1ad9e560ed242107c0f6c84335f1749dd4e8ddb012ebd5e25a7"
dependencies = [
"proc-macro2",
"quote",
- "syn 1.0.109",
+ "syn 2.0.79",
"wasm-bindgen-backend",
"wasm-bindgen-shared",
]
[[package]]
name = "wasm-bindgen-shared"
-version = "0.2.83"
+version = "0.2.90"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1c38c045535d93ec4f0b4defec448e4291638ee608530863b1e2ba115d4fff7f"
+checksum = "4d91413b1c31d7539ba5ef2451af3f0b833a005eb27a631cec32bc0635a8602b"
[[package]]
name = "wasm-streams"
-version = "0.2.3"
+version = "0.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6bbae3363c08332cadccd13b67db371814cd214c2524020932f0804b8cf7c078"
+checksum = "b65dc4c90b63b118468cf747d8bf3566c1913ef60be765b5730ead9e0a3ba129"
dependencies = [
"futures-util",
"js-sys",
@@ -5027,9 +5530,9 @@ dependencies = [
[[package]]
name = "web-sys"
-version = "0.3.48"
+version = "0.3.67"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ec600b26223b2948cedfde2a0aa6756dcf1fef616f43d7b3097aaf53a6c4d92b"
+checksum = "58cd2333b6e0be7a39605f0e255892fd7418a682d8da8fe042fe25128794d2ed"
dependencies = [
"js-sys",
"wasm-bindgen",
@@ -5041,8 +5544,8 @@ version = "0.21.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b8e38c0608262c46d4a56202ebabdeb094cef7e560ca7a226c6bf055188aa4ea"
dependencies = [
- "ring",
- "untrusted",
+ "ring 0.16.20",
+ "untrusted 0.7.1",
]
[[package]]
@@ -5051,8 +5554,8 @@ version = "0.22.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f095d78192e208183081cc07bc5515ef55216397af48b873e5edcd72637fa1bd"
dependencies = [
- "ring",
- "untrusted",
+ "ring 0.16.20",
+ "untrusted 0.7.1",
]
[[package]]
@@ -5073,6 +5576,15 @@ dependencies = [
"webpki 0.22.0",
]
+[[package]]
+name = "webpki-roots"
+version = "0.26.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b3de34ae270483955a94f4b21bdaaeb83d508bb84a01435f393818edb0012009"
+dependencies = [
+ "rustls-pki-types",
+]
+
[[package]]
name = "which"
version = "4.0.2"
@@ -5111,6 +5623,36 @@ version = "0.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
+[[package]]
+name = "windows-registry"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e400001bb720a623c1c69032f8e3e4cf09984deec740f007dd2b03ec864804b0"
+dependencies = [
+ "windows-result",
+ "windows-strings",
+ "windows-targets 0.52.6",
+]
+
+[[package]]
+name = "windows-result"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1d1043d8214f791817bab27572aaa8af63732e11bf84aa21a45a78d6c317ae0e"
+dependencies = [
+ "windows-targets 0.52.6",
+]
+
+[[package]]
+name = "windows-strings"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4cd9b125c486025df0eabcb585e62173c6c9eddcec5d117d3b6e8c30e2ee4d10"
+dependencies = [
+ "windows-result",
+ "windows-targets 0.52.6",
+]
+
[[package]]
name = "windows-sys"
version = "0.32.0"
@@ -5124,26 +5666,31 @@ dependencies = [
"windows_x86_64_msvc 0.32.0",
]
-[[package]]
-name = "windows-sys"
-version = "0.36.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ea04155a16a59f9eab786fe12a4a450e75cdb175f9e0d80da1e17db09f55b8d2"
-dependencies = [
- "windows_aarch64_msvc 0.36.1",
- "windows_i686_gnu 0.36.1",
- "windows_i686_msvc 0.36.1",
- "windows_x86_64_gnu 0.36.1",
- "windows_x86_64_msvc 0.36.1",
-]
-
[[package]]
name = "windows-sys"
version = "0.48.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9"
dependencies = [
- "windows-targets",
+ "windows-targets 0.48.0",
+]
+
+[[package]]
+name = "windows-sys"
+version = "0.52.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d"
+dependencies = [
+ "windows-targets 0.52.6",
+]
+
+[[package]]
+name = "windows-sys"
+version = "0.59.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b"
+dependencies = [
+ "windows-targets 0.52.6",
]
[[package]]
@@ -5152,117 +5699,160 @@ version = "0.48.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7b1eb6f0cd7c80c79759c929114ef071b87354ce476d9d94271031c0497adfd5"
dependencies = [
- "windows_aarch64_gnullvm",
+ "windows_aarch64_gnullvm 0.48.0",
"windows_aarch64_msvc 0.48.0",
"windows_i686_gnu 0.48.0",
"windows_i686_msvc 0.48.0",
"windows_x86_64_gnu 0.48.0",
- "windows_x86_64_gnullvm",
+ "windows_x86_64_gnullvm 0.48.0",
"windows_x86_64_msvc 0.48.0",
]
+[[package]]
+name = "windows-targets"
+version = "0.52.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973"
+dependencies = [
+ "windows_aarch64_gnullvm 0.52.6",
+ "windows_aarch64_msvc 0.52.6",
+ "windows_i686_gnu 0.52.6",
+ "windows_i686_gnullvm",
+ "windows_i686_msvc 0.52.6",
+ "windows_x86_64_gnu 0.52.6",
+ "windows_x86_64_gnullvm 0.52.6",
+ "windows_x86_64_msvc 0.52.6",
+]
+
[[package]]
name = "windows_aarch64_gnullvm"
version = "0.48.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "91ae572e1b79dba883e0d315474df7305d12f569b400fcf90581b06062f7e1bc"
+[[package]]
+name = "windows_aarch64_gnullvm"
+version = "0.52.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3"
+
[[package]]
name = "windows_aarch64_msvc"
version = "0.32.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d8e92753b1c443191654ec532f14c199742964a061be25d77d7a96f09db20bf5"
-[[package]]
-name = "windows_aarch64_msvc"
-version = "0.36.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9bb8c3fd39ade2d67e9874ac4f3db21f0d710bee00fe7cab16949ec184eeaa47"
-
[[package]]
name = "windows_aarch64_msvc"
version = "0.48.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b2ef27e0d7bdfcfc7b868b317c1d32c641a6fe4629c171b8928c7b08d98d7cf3"
+[[package]]
+name = "windows_aarch64_msvc"
+version = "0.52.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469"
+
[[package]]
name = "windows_i686_gnu"
version = "0.32.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6a711c68811799e017b6038e0922cb27a5e2f43a2ddb609fe0b6f3eeda9de615"
-[[package]]
-name = "windows_i686_gnu"
-version = "0.36.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "180e6ccf01daf4c426b846dfc66db1fc518f074baa793aa7d9b9aaeffad6a3b6"
-
[[package]]
name = "windows_i686_gnu"
version = "0.48.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "622a1962a7db830d6fd0a69683c80a18fda201879f0f447f065a3b7467daa241"
+[[package]]
+name = "windows_i686_gnu"
+version = "0.52.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b"
+
+[[package]]
+name = "windows_i686_gnullvm"
+version = "0.52.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66"
+
[[package]]
name = "windows_i686_msvc"
version = "0.32.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "146c11bb1a02615db74680b32a68e2d61f553cc24c4eb5b4ca10311740e44172"
-[[package]]
-name = "windows_i686_msvc"
-version = "0.36.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e2e7917148b2812d1eeafaeb22a97e4813dfa60a3f8f78ebe204bcc88f12f024"
-
[[package]]
name = "windows_i686_msvc"
version = "0.48.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4542c6e364ce21bf45d69fdd2a8e455fa38d316158cfd43b3ac1c5b1b19f8e00"
+[[package]]
+name = "windows_i686_msvc"
+version = "0.52.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66"
+
[[package]]
name = "windows_x86_64_gnu"
version = "0.32.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c912b12f7454c6620635bbff3450962753834be2a594819bd5e945af18ec64bc"
-[[package]]
-name = "windows_x86_64_gnu"
-version = "0.36.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4dcd171b8776c41b97521e5da127a2d86ad280114807d0b2ab1e462bc764d9e1"
-
[[package]]
name = "windows_x86_64_gnu"
version = "0.48.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ca2b8a661f7628cbd23440e50b05d705db3686f894fc9580820623656af974b1"
+[[package]]
+name = "windows_x86_64_gnu"
+version = "0.52.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78"
+
[[package]]
name = "windows_x86_64_gnullvm"
version = "0.48.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7896dbc1f41e08872e9d5e8f8baa8fdd2677f29468c4e156210174edc7f7b953"
+[[package]]
+name = "windows_x86_64_gnullvm"
+version = "0.52.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d"
+
[[package]]
name = "windows_x86_64_msvc"
version = "0.32.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "504a2476202769977a040c6364301a3f65d0cc9e3fb08600b2bda150a0488316"
-[[package]]
-name = "windows_x86_64_msvc"
-version = "0.36.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c811ca4a8c853ef420abd8592ba53ddbbac90410fab6903b3e79972a631f7680"
-
[[package]]
name = "windows_x86_64_msvc"
version = "0.48.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1a515f5799fe4961cb532f983ce2b23082366b898e52ffbce459c86f67c8378a"
+[[package]]
+name = "windows_x86_64_msvc"
+version = "0.52.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec"
+
+[[package]]
+name = "winnow"
+version = "0.6.18"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "68a9bda4691f099d435ad181000724da8e5899daa10713c2d432552b9ccd3a6f"
+dependencies = [
+ "memchr",
+]
+
[[package]]
name = "winreg"
version = "0.6.2"
@@ -5272,15 +5862,6 @@ dependencies = [
"winapi",
]
-[[package]]
-name = "winreg"
-version = "0.10.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "80d0f4e272c85def139476380b12f9ac60926689dd2e01d4923222f40580869d"
-dependencies = [
- "winapi",
-]
-
[[package]]
name = "x25519-dalek"
version = "1.1.0"
@@ -5294,11 +5875,13 @@ dependencies = [
[[package]]
name = "xattr"
-version = "0.2.2"
+version = "1.1.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "244c3741f4240ef46274860397c7c74e50eb23624996930e484c16679633a54c"
+checksum = "a7dae5072fe1f8db8f8d29059189ac175196e410e40ba42d5d4684ae2f750995"
dependencies = [
"libc",
+ "linux-raw-sys",
+ "rustix",
]
[[package]]
@@ -5317,23 +5900,22 @@ dependencies = [
[[package]]
name = "zeroize"
-version = "1.2.0"
+version = "1.7.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "81a974bcdd357f0dca4d41677db03436324d45a4c9ed2d0b873a5a360ce41c36"
+checksum = "525b4ec142c6b68a2d10f01f7bbf6755599ca3f81ea53b8431b7dd348f5fdb2d"
dependencies = [
"zeroize_derive",
]
[[package]]
name = "zeroize_derive"
-version = "1.0.1"
+version = "1.4.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c3f369ddb18862aba61aa49bf31e74d29f0f162dec753063200e1dc084345d16"
+checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69"
dependencies = [
"proc-macro2",
"quote",
- "syn 1.0.109",
- "synstructure",
+ "syn 2.0.79",
]
[[package]]
diff --git a/Cargo.toml b/Cargo.toml
index 0f654d91..c3d131a1 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -1,5 +1,8 @@
[workspace]
+resolver = "2"
members = [ "monero-harness", "monero-rpc", "swap", "monero-wallet" ]
[patch.crates-io]
+# patch until new release https://github.com/thomaseizinger/rust-jsonrpc-client/pull/51
+jsonrpc_client = { git = "https://github.com/delta1/rust-jsonrpc-client.git", rev = "3b6081697cd616c952acb9c2f02d546357d35506" }
monero = { git = "https://github.com/comit-network/monero-rs", rev = "818f38b" }
diff --git a/Dockerfile b/Dockerfile
new file mode 100644
index 00000000..05e5d64c
--- /dev/null
+++ b/Dockerfile
@@ -0,0 +1,22 @@
+# This Dockerfile builds the asb binary
+
+FROM rust:1.79-slim AS builder
+
+WORKDIR /build
+
+RUN apt-get update
+RUN apt-get install -y git clang cmake libsnappy-dev
+
+COPY . .
+
+WORKDIR /build/swap
+
+RUN cargo build --release --bin=asb
+
+FROM debian:bookworm-slim
+
+WORKDIR /data
+
+COPY --from=builder /build/target/release/asb /bin/asb
+
+ENTRYPOINT ["asb"]
diff --git a/README.md b/README.md
index 7cbccc5a..72130de7 100644
--- a/README.md
+++ b/README.md
@@ -1,3 +1,8 @@
+> [!CAUTION]
+> # THIS REPO IS UNMAINTAINED
PLEASE USE [UNSTOPPABLESWAP]([url](https://github.com/UnstoppableSwap/core)) INSTEAD
+
+**This repository is unmaintained**. The original developers (@comit-network) have moved on to other projects. Community volunteers are continuing development at [UnstoppableSwap/core](https://github.com/UnstoppableSwap/core), which includes a graphical user interface. Please note that the fork has introduced network-level breaking changes, making it incompatible with peers running this repository - you will not be able to initiate swaps with them.
+
# XMR to BTC Atomic Swap
This repository hosts an MVP for atomically swapping BTC to XMR.
@@ -50,7 +55,7 @@ Please have a look at the [contribution guidelines](./CONTRIBUTING.md).
## Rust Version Support
Please note that only the latest stable Rust toolchain is supported.
-All stable toolchains since 1.67 _should_ work.
+All stable toolchains since 1.74 _should_ work.
## Contact
diff --git a/bors.toml b/bors.toml
deleted file mode 100644
index 92e8a84c..00000000
--- a/bors.toml
+++ /dev/null
@@ -1,25 +0,0 @@
-status = [
- "static_analysis",
- "bdk_test",
- "sqlx_test",
- "build (x86_64-unknown-linux-gnu, ubuntu-latest)",
- "build (armv7-unknown-linux-gnueabihf, ubuntu-latest)",
- "build (x86_64-apple-darwin, macos-latest)",
- "build (x86_64-pc-windows-msvc, windows-latest)",
- "test (ubuntu-latest)",
- "test (macos-latest)",
- "docker_tests (happy_path)",
- "docker_tests (happy_path_restart_bob_after_xmr_locked)",
- "docker_tests (happy_path_restart_alice_after_xmr_locked)",
- "docker_tests (happy_path_restart_bob_before_xmr_locked)",
- "docker_tests (alice_and_bob_refund_using_cancel_and_refund_command)",
- "docker_tests (alice_and_bob_refund_using_cancel_then_refund_command)",
- "docker_tests (alice_and_bob_refund_using_cancel_and_refund_command_timelock_not_expired)",
- "docker_tests (punish)",
- "docker_tests (alice_punishes_after_restart_bob_dead)",
- "docker_tests (alice_manually_punishes_after_bob_dead)",
- "docker_tests (alice_refunds_after_restart_bob_refunded)",
- "docker_tests (ensure_same_swap_id)",
- "docker_tests (concurrent_bobs_before_xmr_lock_proof_sent)",
- "docker_tests (alice_manually_redeems_after_enc_sig_learned)"
-]
diff --git a/docs/asb/README.md b/docs/asb/README.md
index 16e0a602..88448b71 100644
--- a/docs/asb/README.md
+++ b/docs/asb/README.md
@@ -110,7 +110,7 @@ The minimum and maximum amount as well as a spread, that is added on top of the
In order to be able to trade, the ASB must define a price to be able to agree on the amounts to be swapped with a CLI.
The `XMR<>BTC` price is currently determined by the price from the central exchange Kraken.
Upon startup the ASB connects to the Kraken price websocket and listens on the stream for price updates.
-You can plug in a different price ticker websocket using the the `price_ticker_ws_url` configuration option.
+You can plug in a different price ticker websocket using the `price_ticker_ws_url` configuration option.
You will have to make sure that the format returned is the same as the format used by Kraken.
Currently, we use a spot-price model, i.e. the ASB dictates the price to the CLI.
@@ -164,3 +164,38 @@ May 01 01:32:05.018 INFO Tor found. Setting up hidden service.
May 01 01:32:07.475 INFO /onion3/z4findrdwtfbpoq64ayjtmxvr52vvxnsynerlenlfkmm52dqxsl4deyd:9939
May 01 01:32:07.476 INFO /onion3/z4findrdwtfbpoq64ayjtmxvr52vvxnsynerlenlfkmm52dqxsl4deyd:9940
```
+
+### Exporting the Bitcoin wallet descriptor
+
+First use `swap` or `asb` with the `export-bitcoin-wallet` subcommand.
+
+Output example:
+
+```json
+{"descriptor":"wpkh(tprv8Zgredacted.../84'/1'/0'/0/*)","blockheight":2415616,"label":"asb-testnet"}
+```
+
+The wallet can theoretically be directly imported into
+[bdk-cli](https://bitcoindevkit.org/bdk-cli/installation/) but it is easier to
+use Sparrow Wallet.
+
+Sparrow wallet import works as follows:
+
+- File -> New wallet -> Give it a name
+- Select "New or Imported Software Wallet"
+- Click "Enter Private Key" for "Master Private Key (BIP32)"
+- Enter the `xprv...` or `tprv...` part of the descriptor (example above is `tprv8Zgredacted...`:
+
+
+
+- Click "Import"
+- Leave the derivation path as `m/84'/0'/0'` and click "Import Keystore" button
+- Click "Apply" and then supply password
+
+
+
+- Click Transactions tab
+- ???
+- Profit!
+
+
diff --git a/docs/asb/enter-master-private-key.png b/docs/asb/enter-master-private-key.png
new file mode 100644
index 00000000..7b69b550
Binary files /dev/null and b/docs/asb/enter-master-private-key.png differ
diff --git a/docs/asb/import-keystore.png b/docs/asb/import-keystore.png
new file mode 100644
index 00000000..83d748ff
Binary files /dev/null and b/docs/asb/import-keystore.png differ
diff --git a/docs/asb/transactions-tab.png b/docs/asb/transactions-tab.png
new file mode 100644
index 00000000..7b0532af
Binary files /dev/null and b/docs/asb/transactions-tab.png differ
diff --git a/docs/cli/README.md b/docs/cli/README.md
index d95d90ef..eff9d072 100644
--- a/docs/cli/README.md
+++ b/docs/cli/README.md
@@ -75,7 +75,7 @@ OPTIONS:
This command has three core options:
-- `--change-address`: A Bitcoin address you control. Will be used for refunds of any kind.
+- `--change-address`: A Bitcoin address you control. Will be used for refunds of any kind. You can also omit this flag which will refund any change to the internal wallet.
- `--receive-address`: A Monero address you control. This is where you will receive the Monero after the swap.
- `--seller`: The multiaddress of the seller you want to swap with.
diff --git a/monero-harness/Cargo.toml b/monero-harness/Cargo.toml
index b659220b..e15c751d 100644
--- a/monero-harness/Cargo.toml
+++ b/monero-harness/Cargo.toml
@@ -10,8 +10,7 @@ anyhow = "1"
futures = "0.3"
monero-rpc = { path = "../monero-rpc" }
rand = "0.7"
-spectral = "0.6"
-testcontainers = "0.12"
+testcontainers = "0.15"
tokio = { version = "1", default-features = false, features = [ "rt-multi-thread", "time", "macros" ] }
tracing = "0.1"
-tracing-subscriber = { version = "0.2", default-features = false, features = [ "fmt", "ansi", "env-filter", "tracing-log" ] }
+tracing-subscriber = { version = "0.3", default-features = false, features = [ "fmt", "ansi", "env-filter", "tracing-log" ] }
diff --git a/monero-harness/src/image.rs b/monero-harness/src/image.rs
index 63cc4b20..d4dd3942 100644
--- a/monero-harness/src/image.rs
+++ b/monero-harness/src/image.rs
@@ -1,6 +1,4 @@
-use std::collections::HashMap;
-use testcontainers::core::{Container, Docker, WaitForMessage};
-use testcontainers::Image;
+use testcontainers::{core::WaitFor, Image, ImageArgs};
pub const MONEROD_DAEMON_CONTAINER_NAME: &str = "monerod";
pub const MONEROD_DEFAULT_NETWORK: &str = "monero_network";
@@ -13,43 +11,22 @@ pub const MONEROD_DEFAULT_NETWORK: &str = "monero_network";
/// this doesn't matter.
pub const RPC_PORT: u16 = 18081;
-#[derive(Debug, Default)]
-pub struct Monerod {
- args: MonerodArgs,
-}
+#[derive(Clone, Copy, Debug, Default)]
+pub struct Monerod;
impl Image for Monerod {
type Args = MonerodArgs;
- type EnvVars = HashMap;
- type Volumes = HashMap;
- type EntryPoint = str;
- fn descriptor(&self) -> String {
- "rinocommunity/monero:v0.18.1.2".to_owned()
+ fn name(&self) -> String {
+ "rinocommunity/monero".into()
}
- fn wait_until_ready(&self, container: &Container<'_, D, Self>) {
- container
- .logs()
- .stdout
- .wait_for_message("RPC server started ok")
- .unwrap();
+ fn tag(&self) -> String {
+ "v0.18.1.2".into()
}
- fn args(&self) -> ::Args {
- self.args.clone()
- }
-
- fn volumes(&self) -> Self::Volumes {
- HashMap::new()
- }
-
- fn env_vars(&self) -> Self::EnvVars {
- HashMap::new()
- }
-
- fn with_args(self, args: ::Args) -> Self {
- Self { args }
+ fn ready_conditions(&self) -> Vec {
+ vec![WaitFor::message_on_stdout("RPC server started ok")]
}
fn entrypoint(&self) -> Option {
@@ -58,43 +35,22 @@ impl Image for Monerod {
}
}
-#[derive(Debug, Default)]
-pub struct MoneroWalletRpc {
- args: MoneroWalletRpcArgs,
-}
+#[derive(Clone, Copy, Debug)]
+pub struct MoneroWalletRpc;
impl Image for MoneroWalletRpc {
type Args = MoneroWalletRpcArgs;
- type EnvVars = HashMap;
- type Volumes = HashMap;
- type EntryPoint = str;
- fn descriptor(&self) -> String {
- "rinocommunity/monero:v0.18.1.2".to_owned()
+ fn name(&self) -> String {
+ "rinocommunity/monero".into()
}
- fn wait_until_ready(&self, container: &Container<'_, D, Self>) {
- container
- .logs()
- .stdout
- .wait_for_message("Run server thread name: RPC")
- .unwrap();
+ fn tag(&self) -> String {
+ "v0.18.1.2".into()
}
- fn args(&self) -> ::Args {
- self.args.clone()
- }
-
- fn volumes(&self) -> Self::Volumes {
- HashMap::new()
- }
-
- fn env_vars(&self) -> Self::EnvVars {
- HashMap::new()
- }
-
- fn with_args(self, args: ::Args) -> Self {
- Self { args }
+ fn ready_conditions(&self) -> Vec {
+ vec![WaitFor::message_on_stdout("Run server thread name: RPC")]
}
fn entrypoint(&self) -> Option {
@@ -104,10 +60,9 @@ impl Image for MoneroWalletRpc {
}
impl MoneroWalletRpc {
- pub fn new(name: &str, daemon_address: String) -> Self {
- Self {
- args: MoneroWalletRpcArgs::new(name, daemon_address),
- }
+ pub fn new(name: &str, daemon_address: String) -> (Self, MoneroWalletRpcArgs) {
+ let args = MoneroWalletRpcArgs::new(name, daemon_address);
+ (Self, args)
}
}
@@ -191,6 +146,12 @@ impl IntoIterator for MonerodArgs {
}
}
+impl ImageArgs for MonerodArgs {
+ fn into_iterator(self) -> Box> {
+ Box::new(self.into_iter())
+ }
+}
+
#[derive(Debug, Clone)]
pub struct MoneroWalletRpcArgs {
pub disable_rpc_login: bool,
@@ -200,12 +161,6 @@ pub struct MoneroWalletRpcArgs {
pub daemon_address: String,
}
-impl Default for MoneroWalletRpcArgs {
- fn default() -> Self {
- unimplemented!("A default instance for `MoneroWalletRpc` doesn't make sense because we always need to connect to a node.")
- }
-}
-
impl MoneroWalletRpcArgs {
pub fn new(wallet_name: &str, daemon_address: String) -> Self {
Self {
@@ -247,3 +202,9 @@ impl IntoIterator for MoneroWalletRpcArgs {
args.into_iter()
}
}
+
+impl ImageArgs for MoneroWalletRpcArgs {
+ fn into_iterator(self) -> Box> {
+ Box::new(self.into_iter())
+ }
+}
diff --git a/monero-harness/src/lib.rs b/monero-harness/src/lib.rs
index 46a03002..61c12a27 100644
--- a/monero-harness/src/lib.rs
+++ b/monero-harness/src/lib.rs
@@ -20,17 +20,20 @@
//! every BLOCK_TIME_SECS seconds.
//!
//! Also provides standalone JSON RPC clients for monerod and monero-wallet-rpc.
-pub mod image;
+use std::time::Duration;
-use crate::image::{MONEROD_DAEMON_CONTAINER_NAME, MONEROD_DEFAULT_NETWORK, RPC_PORT};
use anyhow::{anyhow, bail, Context, Result};
+use testcontainers::clients::Cli;
+use testcontainers::{Container, RunnableImage};
+use tokio::time;
+
use monero_rpc::monerod;
use monero_rpc::monerod::MonerodRpc as _;
use monero_rpc::wallet::{self, GetAddress, MoneroWalletRpc as _, Refreshed, Transfer};
-use std::time::Duration;
-use testcontainers::clients::Cli;
-use testcontainers::{Container, Docker, RunArgs};
-use tokio::time;
+
+use crate::image::{MONEROD_DAEMON_CONTAINER_NAME, MONEROD_DEFAULT_NETWORK, RPC_PORT};
+
+pub mod image;
/// How often we mine a block.
const BLOCK_TIME_SECS: u64 = 1;
@@ -56,8 +59,8 @@ impl<'c> Monero {
additional_wallets: Vec<&'static str>,
) -> Result<(
Self,
- Container<'c, Cli, image::Monerod>,
- Vec>,
+ Container<'c, image::Monerod>,
+ Vec>,
)> {
let prefix = format!("{}_", random_prefix());
let monerod_name = format!("{}{}", prefix, MONEROD_DAEMON_CONTAINER_NAME);
@@ -221,15 +224,14 @@ impl<'c> Monerod {
cli: &'c Cli,
name: String,
network: String,
- ) -> Result<(Self, Container<'c, Cli, image::Monerod>)> {
- let image = image::Monerod::default();
- let run_args = RunArgs::default()
- .with_name(name.clone())
+ ) -> Result<(Self, Container<'c, image::Monerod>)> {
+ let image = image::Monerod;
+ let image: RunnableImage = RunnableImage::from(image)
+ .with_container_name(name.clone())
.with_network(network.clone());
- let container = cli.run_with_args(image, run_args);
- let monerod_rpc_port = container
- .get_host_port(RPC_PORT)
- .context("port not exposed")?;
+
+ let container = cli.run(image);
+ let monerod_rpc_port = container.get_host_port_ipv4(RPC_PORT);
Ok((
Self {
@@ -262,19 +264,15 @@ impl<'c> MoneroWalletRpc {
name: &str,
monerod: &Monerod,
prefix: String,
- ) -> Result<(Self, Container<'c, Cli, image::MoneroWalletRpc>)> {
+ ) -> Result<(Self, Container<'c, image::MoneroWalletRpc>)> {
let daemon_address = format!("{}:{}", monerod.name, RPC_PORT);
- let image = image::MoneroWalletRpc::new(name, daemon_address);
+ let (image, args) = image::MoneroWalletRpc::new(name, daemon_address);
+ let image = RunnableImage::from((image, args))
+ .with_container_name(format!("{}{}", prefix, name))
+ .with_network(monerod.network.clone());
- let network = monerod.network.clone();
- let run_args = RunArgs::default()
- // prefix the container name so we can run multiple tests
- .with_name(format!("{}{}", prefix, name))
- .with_network(network.clone());
- let container = cli.run_with_args(image, run_args);
- let wallet_rpc_port = container
- .get_host_port(RPC_PORT)
- .context("port not exposed")?;
+ let container = cli.run(image);
+ let wallet_rpc_port = container.get_host_port_ipv4(RPC_PORT);
let client = wallet::Client::localhost(wallet_rpc_port)?;
diff --git a/monero-harness/tests/monerod.rs b/monero-harness/tests/monerod.rs
index d218167b..f454fb74 100644
--- a/monero-harness/tests/monerod.rs
+++ b/monero-harness/tests/monerod.rs
@@ -1,6 +1,5 @@
use monero_harness::Monero;
use monero_rpc::monerod::MonerodRpc as _;
-use spectral::prelude::*;
use std::time::Duration;
use testcontainers::clients::Cli;
use tokio::time;
@@ -21,12 +20,12 @@ async fn init_miner_and_mine_to_miner_address() {
let miner_wallet = monero.wallet("miner").unwrap();
let got_miner_balance = miner_wallet.balance().await.unwrap();
- assert_that!(got_miner_balance).is_greater_than(0);
+ assert!(got_miner_balance > 0);
time::sleep(Duration::from_millis(1010)).await;
// after a bit more than 1 sec another block should have been mined
let block_height = monerod.client().get_block_count().await.unwrap().count;
- assert_that(&block_height).is_greater_than(70);
+ assert!(block_height > 70);
}
diff --git a/monero-harness/tests/wallet.rs b/monero-harness/tests/wallet.rs
index b25683ad..67d11645 100644
--- a/monero-harness/tests/wallet.rs
+++ b/monero-harness/tests/wallet.rs
@@ -1,6 +1,5 @@
use monero_harness::{Monero, MoneroWalletRpc};
use monero_rpc::wallet::MoneroWalletRpc as _;
-use spectral::prelude::*;
use std::time::Duration;
use testcontainers::clients::Cli;
use tokio::time::sleep;
@@ -29,7 +28,7 @@ async fn fund_transfer_and_check_tx_key() {
// check alice balance
let got_alice_balance = alice_wallet.balance().await.unwrap();
- assert_that(&got_alice_balance).is_equal_to(fund_alice);
+ assert_eq!(got_alice_balance, fund_alice);
// transfer from alice to bob
let bob_address = bob_wallet.address().await.unwrap().address;
@@ -41,7 +40,7 @@ async fn fund_transfer_and_check_tx_key() {
wait_for_wallet_to_catch_up(bob_wallet, send_to_bob).await;
let got_bob_balance = bob_wallet.balance().await.unwrap();
- assert_that(&got_bob_balance).is_equal_to(send_to_bob);
+ assert_eq!(got_bob_balance, send_to_bob);
// check if tx was actually seen
let tx_id = transfer.tx_hash;
@@ -52,7 +51,7 @@ async fn fund_transfer_and_check_tx_key() {
.await
.expect("failed to check tx by key");
- assert_that!(res.received).is_equal_to(send_to_bob);
+ assert_eq!(res.received, send_to_bob);
}
async fn wait_for_wallet_to_catch_up(wallet: &MoneroWalletRpc, expected_balance: u64) {
diff --git a/monero-rpc/Cargo.toml b/monero-rpc/Cargo.toml
index 6da1e88a..18843745 100644
--- a/monero-rpc/Cargo.toml
+++ b/monero-rpc/Cargo.toml
@@ -12,7 +12,7 @@ jsonrpc_client = { version = "0.7", features = [ "reqwest" ] }
monero = "0.12"
monero-epee-bin-serde = "1"
rand = "0.7"
-reqwest = { version = "0.11", default-features = false, features = [ "json" ] }
+reqwest = { version = "0.12", default-features = false, features = [ "json" ] }
rust_decimal = { version = "1", features = [ "serde-float" ] }
serde = { version = "1.0", features = [ "derive" ] }
serde_json = "1.0"
diff --git a/monero-rpc/src/wallet.rs b/monero-rpc/src/wallet.rs
index bc78e7a6..3e21ad1b 100644
--- a/monero-rpc/src/wallet.rs
+++ b/monero-rpc/src/wallet.rs
@@ -162,6 +162,12 @@ pub struct BlockHeight {
pub height: u32,
}
+impl fmt::Display for BlockHeight {
+ fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
+ write!(f, "{}", self.height)
+ }
+}
+
#[derive(Clone, Copy, Debug, Deserialize)]
#[serde(from = "CheckTxKeyResponse")]
pub struct CheckTxKey {
diff --git a/monero-wallet/Cargo.toml b/monero-wallet/Cargo.toml
index f767b08e..99bd3f4d 100644
--- a/monero-wallet/Cargo.toml
+++ b/monero-wallet/Cargo.toml
@@ -14,6 +14,6 @@ rand = "0.7"
curve25519-dalek = "3"
monero-harness = { path = "../monero-harness" }
rand = "0.7"
-testcontainers = "0.12"
+testcontainers = "0.15"
tokio = { version = "1", features = [ "rt-multi-thread", "time", "macros", "sync", "process", "fs" ] }
tracing-subscriber = { version = "0.2", default-features = false, features = [ "fmt", "ansi", "env-filter", "chrono", "tracing-log" ] }
diff --git a/monero-wallet/src/lib.rs b/monero-wallet/src/lib.rs
index 2058f476..7f2928c3 100644
--- a/monero-wallet/src/lib.rs
+++ b/monero-wallet/src/lib.rs
@@ -61,13 +61,12 @@ mod tests {
use monero_harness::image::Monerod;
use monero_rpc::monerod::{Client, GetOutputsOut};
use testcontainers::clients::Cli;
- use testcontainers::Docker;
#[tokio::test]
async fn get_outs_for_key_offsets() {
let cli = Cli::default();
- let container = cli.run(Monerod::default());
- let rpc_client = Client::localhost(container.get_host_port(18081).unwrap()).unwrap();
+ let container = cli.run(Monerod);
+ let rpc_client = Client::localhost(container.get_host_port_ipv4(18081)).unwrap();
rpc_client.generateblocks(150, "498AVruCDWgP9Az9LjMm89VWjrBrSZ2W2K3HFBiyzzrRjUJWUcCVxvY1iitfuKoek2FdX6MKGAD9Qb1G1P8QgR5jPmmt3Vj".to_owned()).await.unwrap();
let wallet = Wallet {
client: rpc_client.clone(),
diff --git a/rust-toolchain.toml b/rust-toolchain.toml
index d6b509dd..cc47d97a 100644
--- a/rust-toolchain.toml
+++ b/rust-toolchain.toml
@@ -1,4 +1,4 @@
[toolchain]
-channel = "1.67" # also update this in the readme, changelog, and github actions
+channel = "1.74" # also update this in the readme, changelog, and github actions
components = ["clippy"]
targets = ["armv7-unknown-linux-gnueabihf"]
diff --git a/swap/Cargo.toml b/swap/Cargo.toml
index 3ef9e09c..678fdb8d 100644
--- a/swap/Cargo.toml
+++ b/swap/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "swap"
-version = "0.12.2"
+version = "0.13.4"
authors = [ "The COMIT guys " ]
edition = "2021"
description = "XMR/BTC trustless atomic swaps."
@@ -14,32 +14,37 @@ async-compression = { version = "0.3", features = [ "bzip2", "tokio" ] }
async-trait = "0.1"
atty = "0.2"
backoff = { version = "0.4", features = [ "tokio" ] }
-base64 = "0.21"
+base64 = "0.22"
bdk = "0.28"
big-bytes = "1"
bitcoin = { version = "0.29", features = [ "rand", "serde" ] }
bmrng = "0.5"
-comfy-table = "6.1"
-config = { version = "0.13", default-features = false, features = [ "toml" ] }
+comfy-table = "7.1"
+config = { version = "0.14", default-features = false, features = [ "toml" ] }
conquer-once = "0.4"
curve25519-dalek = { package = "curve25519-dalek-ng", version = "4" }
-data-encoding = "2.4"
-dialoguer = "0.10"
+data-encoding = "2.6"
+dialoguer = "0.11"
+digest = "0.10.7"
directories-next = "2"
-ecdsa_fun = { git = "https://github.com/LLFourn/secp256kfun", default-features = false, features = [ "libsecp_compat", "serde", "adaptor" ] }
+ecdsa_fun = { version = "0.10", default-features = false, features = [ "libsecp_compat", "serde", "adaptor" ] }
ed25519-dalek = "1"
futures = { version = "0.3", default-features = false }
hex = "0.4"
-itertools = "0.10"
+itertools = "0.13"
+jsonrpsee = { version = "0.16.2", features = [ "server" ] }
+jsonrpsee-core = "0.16.2"
libp2p = { version = "0.42.2", default-features = false, features = [ "tcp-tokio", "yamux", "mplex", "dns-tokio", "noise", "request-response", "websocket", "ping", "rendezvous", "identify" ] }
monero = { version = "0.12", features = [ "serde_support" ] }
monero-rpc = { path = "../monero-rpc" }
-pem = "1.1"
+once_cell = "1.20"
+pem = "3.0"
proptest = "1"
-qrcode = "0.12"
+qrcode = "0.14"
rand = "0.8"
rand_chacha = "0.3"
-reqwest = { version = "0.11", features = [ "rustls-tls", "stream", "socks" ], default-features = false }
+regex = "1.11"
+reqwest = { version = "0.12", features = [ "http2", "rustls-tls", "stream", "socks" ], default-features = false }
rust_decimal = { version = "1", features = [ "serde-float" ] }
rust_decimal_macros = "1"
serde = { version = "1", features = [ "derive" ] }
@@ -47,24 +52,24 @@ serde_cbor = "0.11"
serde_json = "1"
serde_with = { version = "1", features = [ "macros" ] }
sha2 = "0.10"
-sigma_fun = { git = "https://github.com/LLFourn/secp256kfun", default-features = false, features = [ "ed25519", "serde", "secp256k1", "alloc" ] }
-sqlx = { version = "0.6", features = [ "sqlite", "runtime-tokio-rustls", "offline" ] }
+sigma_fun = { version = "0.7", default-features = false, features = [ "ed25519", "serde", "secp256k1", "alloc" ] }
+sqlx = { version = "0.6.3", features = [ "sqlite", "runtime-tokio-rustls", "offline" ] }
structopt = "0.3"
-strum = { version = "0.24", features = [ "derive" ] }
+strum = { version = "0.26", features = [ "derive" ] }
thiserror = "1"
time = "0.3"
-tokio = { version = "1", features = [ "rt-multi-thread", "time", "macros", "sync", "process", "fs", "net" ] }
+tokio = { version = "1", features = [ "rt-multi-thread", "time", "macros", "sync", "process", "fs", "net", "parking_lot" ] }
tokio-socks = "0.5"
tokio-tungstenite = { version = "0.15", features = [ "rustls-tls" ] }
tokio-util = { version = "0.7", features = [ "io", "codec" ] }
-toml = "0.5"
+toml = "0.8"
torut = { version = "0.2", default-features = false, features = [ "v3", "control" ] }
tracing = { version = "0.1", features = [ "attributes" ] }
tracing-appender = "0.2"
tracing-futures = { version = "0.2", features = [ "std-future", "futures-03" ] }
tracing-subscriber = { version = "0.3", default-features = false, features = [ "fmt", "ansi", "env-filter", "time", "tracing-log", "json" ] }
url = { version = "2", features = [ "serde" ] }
-uuid = { version = "1.4", features = [ "serde", "v4" ] }
+uuid = { version = "1.11", features = [ "serde", "v4" ] }
void = "1"
[target.'cfg(not(windows))'.dependencies]
@@ -74,18 +79,20 @@ tokio-tar = "0.3"
zip = "0.5"
[dev-dependencies]
-bitcoin-harness = "0.2.2"
+bitcoin-harness = { git = "https://github.com/delta1/bitcoin-harness-rs.git", rev = "80cc8d05db2610d8531011be505b7bee2b5cdf9f" }
get-port = "3"
-hyper = "0.14"
+hyper = "1.5"
+jsonrpsee = { version = "0.16.2", features = [ "ws-client" ] }
+mockito = "1.5"
monero-harness = { path = "../monero-harness" }
-port_check = "0.1"
+port_check = "0.2"
proptest = "1"
+sequential-test = "0.2.4"
serde_cbor = "0.11"
-serial_test = "2.0"
-spectral = "0.6"
+serial_test = "3.1"
tempfile = "3"
-testcontainers = "0.12"
+testcontainers = "0.15"
[build-dependencies]
anyhow = "1"
-vergen = { version = "7.5", default-features = false, features = [ "git", "build" ] }
+vergen = { version = "8.3", default-features = false, features = [ "build", "git", "git2" ] }
diff --git a/swap/build.rs b/swap/build.rs
index 10b11e3c..57bbce40 100644
--- a/swap/build.rs
+++ b/swap/build.rs
@@ -1,9 +1,9 @@
use anyhow::Result;
-use vergen::{vergen, Config, SemverKind};
+use vergen::EmitBuilder;
fn main() -> Result<()> {
- let mut config = Config::default();
- *config.git_mut().semver_kind_mut() = SemverKind::Lightweight;
-
- vergen(config)
+ EmitBuilder::builder()
+ .git_describe(true, true, None)
+ .emit()?;
+ Ok(())
}
diff --git a/swap/migrations/20240615140942_btcpunished_update.sql b/swap/migrations/20240615140942_btcpunished_update.sql
new file mode 100644
index 00000000..b4c9a8a5
--- /dev/null
+++ b/swap/migrations/20240615140942_btcpunished_update.sql
@@ -0,0 +1,135 @@
+-- This migration script modifies swap states to be compatible with the new state structure introduced in PR #1676.
+-- The following changes are made:
+-- 1. Bob: BtcPunished state now has a new attribute 'state' (type: State6), 'tx_lock_id' (type: string) remains the same
+-- 2. Bob: State6 has two new attributes: 'v' (monero viewkey) and 'monero_wallet_restore_blockheight' (type: BlockHeight)
+-- State6 is used in BtcPunished, CancelTimelockExpired, BtcCancelled, BtcRefunded states
+-- 3. Alice: BtcPunished state now has a new attribute 'state3' (type: State3)
+
+-- Alice: Add new attribute 'state3' (type: State3) to the BtcPunished state by copying it from the BtcLocked state
+UPDATE swap_states SET
+ state = json_replace( -- Replaces "{"Alice":{"Done":"BtcPunished"}}" with "{"Alice": {"Done": "BtcPunished": {"state": } }}"
+ state,
+ '$.Alice.Done',
+ json_object(
+ 'BtcPunished',
+ (
+ SELECT json_extract(states.state, '$.Alice.BtcLocked') -- Read state3 object from BtcLocked
+ FROM swap_states AS states
+ WHERE
+ states.swap_id = swap_states.swap_id -- swap_states.swap_id is id of the BtcPunished row
+ AND json_extract(states.state, '$.Alice.BtcLocked') IS NOT NULL -- Filters out only the BtcLocked state
+ )
+ )
+ )
+WHERE json_extract(state, '$.Alice.Done') = 'BtcPunished'; -- Apply update only to BtcPunished state rows
+
+-- Bob: Add new attribute 'state6' (type: State6) to the BtcPunished state by copying it from the BtcCancelled state
+-- and add new State6 attributes 'v' and 'monero_wallet_restore_blockheight' from the BtcLocked state
+UPDATE swap_states SET
+ state = json_replace(
+ state,
+ '$.Bob', -- Replace '{"Bob":{"Done": {"BtcPunished": {"tx_lock_id":"..."} }}}' with {"Bob":{"BtcPunished":{"state":{}, "tx_lock_id": "..."}}}
+ json_object(
+ 'BtcPunished', -- {"Bob":{"BtcPunished":{}}
+ json_object(
+ 'state', -- {"Bob":{"BtcPunished":{"state": {}}}
+ json_insert(
+ ( -- object that we insert properties into (original state6 from BtcCancelled state)
+ SELECT json_extract(states.state, '$.Bob.BtcCancelled') -- Get state6 from BtcCancelled state
+ FROM swap_states AS states
+ WHERE
+ states.swap_id = swap_states.swap_id
+ AND json_extract(states.state, '$.Bob.BtcCancelled') IS NOT NULL -- Filters out only the BtcCancelled state
+ ),
+ '$.v', -- {"Bob":{"BtcPunished":{"state": {..., "v": "..."}, "tx_lock_id": "..."}}}
+ ( -- Get v property from BtcLocked state
+ SELECT json_extract(states.state, '$.Bob.BtcLocked.state3.v')
+ FROM swap_states AS states
+ WHERE
+ states.swap_id = swap_states.swap_id -- swap_states.swap_id is id of the BtcPunished row
+ AND json_extract(states.state, '$.Bob.BtcLocked') IS NOT NULL -- Filters out only the BtcLocked state
+ ),
+ '$.monero_wallet_restore_blockheight', -- { "Bob": { "BtcPunished":{"state": {..., "monero_wallet_restore_blockheight": {"height":...}} }, "tx_lock_id": "..."} } }
+ ( -- Get monero_wallet_restore_blockheight property from BtcLocked state
+ SELECT json_extract(states.state, '$.Bob.BtcLocked.monero_wallet_restore_blockheight')
+ FROM swap_states AS states
+ WHERE
+ states.swap_id = swap_states.swap_id -- swap_states.swap_id is id of the BtcPunished row, states.swap_id is id of the row that we are looking for
+ AND json_extract(states.state, '$.Bob.BtcLocked') IS NOT NULL -- Filters out only the BtcLocked state
+ )
+ ),
+ 'tx_lock_id', -- Insert tx_lock_id BtcPunished -> {"Bob": {"Done": {"BtcPunished": {"state":{}, "tx_lock_id": "..."} } }
+ json_extract(state, '$.Bob.Done.BtcPunished.tx_lock_id') -- Gets tx_lock_id from original state row
+ )
+ )
+ )
+WHERE json_extract(state, '$.Bob.Done.BtcPunished') IS NOT NULL; -- Apply update only to BtcPunished state rows
+
+-- Bob: Add new State6 attributes 'v' and 'monero_wallet_restore_blockheight' to the BtcRefunded state
+UPDATE swap_states SET
+ state = json_insert(
+ state, -- Object that we insert properties into (original state from the row)
+ '$.Bob.Done.BtcRefunded.v', -- {"Bob":{"BtcRefunded":{..., "v": "..."}}}
+ (
+ SELECT json_extract(states.state, '$.Bob.BtcLocked.state3.v')
+ FROM swap_states AS states
+ WHERE
+ states.swap_id = swap_states.swap_id -- swap_states.swap_id is id of the BtcRefunded row, states.swap_id is id of the row that we are looking for
+ AND json_extract(states.state, '$.Bob.BtcLocked') IS NOT NULL
+ ),
+ '$.Bob.Done.BtcRefunded.monero_wallet_restore_blockheight', -- {"Bob":{"BtcRefunded":{..., "monero_wallet_restore_blockheight": {"height":...}} }}
+ (
+ SELECT json_extract(states.state, '$.Bob.BtcLocked.monero_wallet_restore_blockheight')
+ FROM swap_states AS states
+ WHERE
+ states.swap_id = swap_states.swap_id
+ AND json_extract(states.state, '$.Bob.BtcLocked') IS NOT NULL
+ )
+ )
+WHERE json_extract(state, '$.Bob.Done.BtcRefunded') IS NOT NULL; -- Apply update only to BtcRefunded state rows
+
+-- Bob: Add new State6 attributes 'v' and 'monero_wallet_restore_blockheight' to the BtcCancelled state
+UPDATE swap_states SET
+ state = json_insert(
+ state,
+ '$.Bob.BtcCancelled.v',
+ (
+ SELECT json_extract(states.state, '$.Bob.BtcLocked.state3.v')
+ FROM swap_states AS states
+ WHERE
+ states.swap_id = swap_states.swap_id
+ AND json_extract(states.state, '$.Bob.BtcLocked') IS NOT NULL
+ ),
+ '$.Bob.BtcCancelled.monero_wallet_restore_blockheight',
+ (
+ SELECT json_extract(states.state, '$.Bob.BtcLocked.monero_wallet_restore_blockheight')
+ FROM swap_states AS states
+ WHERE
+ states.swap_id = swap_states.swap_id
+ AND json_extract(states.state, '$.Bob.BtcLocked') IS NOT NULL
+ )
+ )
+WHERE json_extract(state, '$.Bob.BtcCancelled') IS NOT NULL; -- Apply update only to BtcCancelled state rows
+
+-- Bob: Add new State6 attributes 'v' and 'monero_wallet_restore_blockheight' to the CancelTimelockExpired state
+UPDATE swap_states SET
+ state = json_insert(
+ state,
+ '$.Bob.CancelTimelockExpired.v',
+ (
+ SELECT json_extract(states.state, '$.Bob.BtcLocked.state3.v')
+ FROM swap_states AS states
+ WHERE
+ states.swap_id = swap_states.swap_id
+ AND json_extract(states.state, '$.Bob.BtcLocked') IS NOT NULL
+ ),
+ '$.Bob.CancelTimelockExpired.monero_wallet_restore_blockheight',
+ (
+ SELECT json_extract(states.state, '$.Bob.BtcLocked.monero_wallet_restore_blockheight')
+ FROM swap_states AS states
+ WHERE
+ states.swap_id = swap_states.swap_id
+ AND json_extract(states.state, '$.Bob.BtcLocked') IS NOT NULL
+ )
+ )
+WHERE json_extract(state, '$.Bob.CancelTimelockExpired') IS NOT NULL; -- Apply update only to CancelTimelockExpired state rows
\ No newline at end of file
diff --git a/swap/migrations/20240701231624_create_buffered_transfer_proofs_table.sql b/swap/migrations/20240701231624_create_buffered_transfer_proofs_table.sql
new file mode 100644
index 00000000..32d2c918
--- /dev/null
+++ b/swap/migrations/20240701231624_create_buffered_transfer_proofs_table.sql
@@ -0,0 +1,5 @@
+CREATE TABLE if NOT EXISTS buffered_transfer_proofs
+(
+ swap_id TEXT PRIMARY KEY NOT NULL,
+ proof TEXT NOT NULL
+);
\ No newline at end of file
diff --git a/swap/sqlite_dev_setup.sh b/swap/sqlite_dev_setup.sh
index 67d2c9da..a30adaff 100755
--- a/swap/sqlite_dev_setup.sh
+++ b/swap/sqlite_dev_setup.sh
@@ -1,7 +1,8 @@
#!/bin/bash
# run this script from the swap dir
-# make sure you have sqlx-cli installed: cargo install sqlx-cli
+# make sure you have sqlx-cli installed: cargo install --version 0.6.3 sqlx-cli
+# it's advised for the sqlx-cli to be the same version as specified in cargo.toml
# this script creates a temporary sqlite database
# then runs the migration scripts to create the tables (migrations folder)
diff --git a/swap/sqlx-data.json b/swap/sqlx-data.json
index fd50cd87..6ab0f14a 100644
--- a/swap/sqlx-data.json
+++ b/swap/sqlx-data.json
@@ -28,6 +28,24 @@
},
"query": "\n insert into peer_addresses (\n peer_id,\n address\n ) values (?, ?);\n "
},
+ "0d465a17ebbb5761421def759c73cad023c30705d5b41a1399ef79d8d2571d7c": {
+ "describe": {
+ "columns": [
+ {
+ "name": "start_date",
+ "ordinal": 0,
+ "type_info": "Text"
+ }
+ ],
+ "nullable": [
+ true
+ ],
+ "parameters": {
+ "Right": 1
+ }
+ },
+ "query": "\n SELECT min(entered_at) as start_date\n FROM swap_states\n WHERE swap_id = ?\n "
+ },
"1ec38c85e7679b2eb42b3df75d9098772ce44fdb8db3012d3c2410d828b74157": {
"describe": {
"columns": [
@@ -62,6 +80,30 @@
},
"query": "\n insert into peers (\n swap_id,\n peer_id\n ) values (?, ?);\n "
},
+ "3f2bfdd2d134586ccad22171cd85a465800fc5c4fdaf191d206974e530240c87": {
+ "describe": {
+ "columns": [
+ {
+ "name": "swap_id",
+ "ordinal": 0,
+ "type_info": "Text"
+ },
+ {
+ "name": "state",
+ "ordinal": 1,
+ "type_info": "Text"
+ }
+ ],
+ "nullable": [
+ false,
+ false
+ ],
+ "parameters": {
+ "Right": 0
+ }
+ },
+ "query": "\n SELECT swap_id, state\n FROM swap_states\n "
+ },
"50a5764546f69c118fa0b64120da50f51073d36257d49768de99ff863e3511e0": {
"describe": {
"columns": [],
@@ -90,24 +132,6 @@
},
"query": "\n SELECT state\n FROM swap_states\n WHERE swap_id = ?\n ORDER BY id desc\n LIMIT 1;\n\n "
},
- "a0eb85d04ee3842c52291dad4d225941d1141af735922fcbc665868997fce304": {
- "describe": {
- "columns": [
- {
- "name": "address",
- "ordinal": 0,
- "type_info": "Text"
- }
- ],
- "nullable": [
- false
- ],
- "parameters": {
- "Right": 1
- }
- },
- "query": "\n SELECT address\n FROM peer_addresses\n WHERE peer_id = ?\n "
- },
"b703032b4ddc627a1124817477e7a8e5014bdc694c36a14053ef3bb2fc0c69b0": {
"describe": {
"columns": [],
@@ -135,5 +159,69 @@
}
},
"query": "\n SELECT address\n FROM monero_addresses\n WHERE swap_id = ?\n "
+ },
+ "d78acba5eb8563826dd190e0886aa665aae3c6f1e312ee444e65df1c95afe8b2": {
+ "describe": {
+ "columns": [
+ {
+ "name": "address",
+ "ordinal": 0,
+ "type_info": "Text"
+ }
+ ],
+ "nullable": [
+ false
+ ],
+ "parameters": {
+ "Right": 1
+ }
+ },
+ "query": "\n SELECT DISTINCT address\n FROM peer_addresses\n WHERE peer_id = ?\n "
+ },
+ "e05620f420f8c1022971eeb66a803323a8cf258cbebb2834e3f7cf8f812fa646": {
+ "describe": {
+ "columns": [
+ {
+ "name": "state",
+ "ordinal": 0,
+ "type_info": "Text"
+ }
+ ],
+ "nullable": [
+ false
+ ],
+ "parameters": {
+ "Right": 1
+ }
+ },
+ "query": "\n SELECT state\n FROM swap_states\n WHERE swap_id = ?\n "
+ },
+ "e36c287aa98ae80ad4b6bb6f7e4b59cced041406a9db71da827b09f0d3bacfd6": {
+ "describe": {
+ "columns": [],
+ "nullable": [],
+ "parameters": {
+ "Right": 2
+ }
+ },
+ "query": "\n INSERT INTO buffered_transfer_proofs (\n swap_id,\n proof\n ) VALUES (?, ?);\n "
+ },
+ "e9d422daf774d099fcbde6c4cda35821da948bd86cc57798b4d8375baf0b51ae": {
+ "describe": {
+ "columns": [
+ {
+ "name": "proof",
+ "ordinal": 0,
+ "type_info": "Text"
+ }
+ ],
+ "nullable": [
+ false
+ ],
+ "parameters": {
+ "Right": 1
+ }
+ },
+ "query": "\n SELECT proof\n FROM buffered_transfer_proofs\n WHERE swap_id = ?\n "
}
}
\ No newline at end of file
diff --git a/swap/src/api.rs b/swap/src/api.rs
new file mode 100644
index 00000000..ea87aae3
--- /dev/null
+++ b/swap/src/api.rs
@@ -0,0 +1,478 @@
+pub mod request;
+use crate::cli::command::{Bitcoin, Monero, Tor};
+use crate::common::tracing_util::Format;
+use crate::database::{open_db, AccessMode};
+use crate::env::{Config as EnvConfig, GetConfig, Mainnet, Testnet};
+use crate::fs::system_data_dir;
+use crate::network::rendezvous::XmrBtcNamespace;
+use crate::protocol::Database;
+use crate::seed::Seed;
+use crate::{bitcoin, common, monero};
+use anyhow::{bail, Context as AnyContext, Error, Result};
+use futures::future::try_join_all;
+use std::fmt;
+use std::future::Future;
+use std::net::SocketAddr;
+use std::path::PathBuf;
+use std::sync::{Arc, Once};
+use tokio::sync::{broadcast, broadcast::Sender, Mutex, RwLock};
+use tokio::task::JoinHandle;
+use tracing::level_filters::LevelFilter;
+use tracing::Level;
+use url::Url;
+
+static START: Once = Once::new();
+
+#[derive(Clone, PartialEq, Debug)]
+pub struct Config {
+ tor_socks5_port: u16,
+ namespace: XmrBtcNamespace,
+ server_address: Option,
+ pub env_config: EnvConfig,
+ seed: Option,
+ debug: bool,
+ json: bool,
+ data_dir: PathBuf,
+ is_testnet: bool,
+}
+
+use uuid::Uuid;
+
+#[derive(Default)]
+pub struct PendingTaskList(Mutex>>);
+
+impl PendingTaskList {
+ pub async fn spawn(&self, future: F)
+ where
+ F: Future