7f6f2408a3
332: Bump base64 from 0.12.3 to 0.13.0 r=thomaseizinger a=dependabot[bot] Bumps [base64](https://github.com/marshallpierce/rust-base64) from 0.12.3 to 0.13.0. <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/marshallpierce/rust-base64/blob/master/RELEASE-NOTES.md">base64's changelog</a>.</em></p> <blockquote> <h1>0.13.0</h1> <ul> <li>Config methods are const</li> <li>Added <code>EncoderStringWriter</code> to allow encoding directly to a String</li> <li><code>EncoderWriter</code> now owns its delegate writer rather than keeping a reference to it (though refs still work) <ul> <li>As a consequence, it is now possible to extract the delegate writer from an <code>EncoderWriter</code> via <code>finish()</code>, which returns <code>Result<W></code> instead of <code>Result<()></code>. If you were calling <code>finish()</code> explicitly, you will now need to use <code>let _ = foo.finish()</code> instead of just <code>foo.finish()</code> to avoid a warning about the unused value.</li> </ul> </li> <li>When decoding input that has both an invalid length and an invalid symbol as the last byte, <code>InvalidByte</code> will be emitted instead of <code>InvalidLength</code> to make the problem more obvious.</li> </ul> <h1>0.12.2</h1> <ul> <li>Add <code>BinHex</code> alphabet</li> </ul> <h1>0.12.1</h1> <ul> <li>Add <code>Bcrypt</code> alphabet</li> </ul> <h1>0.12.0</h1> <ul> <li>A <code>Read</code> implementation (<code>DecoderReader</code>) to let users transparently decoded data from a b64 input source</li> <li>IMAP's modified b64 alphabet</li> <li>Relaxed type restrictions to just <code>AsRef<[ut8]></code> for main <code>encode*</code>/<code>decode*</code> functions</li> <li>A minor performance improvement in encoding</li> </ul> <h1>0.11.0</h1> <ul> <li>Minimum rust version 1.34.0</li> <li><code>no_std</code> is now supported via the two new features <code>alloc</code> and <code>std</code>.</li> </ul> <h1>0.10.1</h1> <ul> <li>Minimum rust version 1.27.2</li> <li>Fix bug in streaming encoding (<a href="https://github.com/marshallpierce/rust-base64/pull/90">#90</a>): if the underlying writer didn't write all the bytes given to it, the remaining bytes would not be retried later. See the docs on <code>EncoderWriter::write</code>.</li> <li>Make it configurable whether or not to return an error when decoding detects excess trailing bits.</li> </ul> <h1>0.10.0</h1> <ul> <li>Remove line wrapping. Line wrapping was never a great conceptual fit in this library, and other features (streaming encoding, etc) either couldn't support it or could support only special cases of it with a great increase in complexity. Line wrapping has been pulled out into a <a href="https://crates.io/crates/line-wrap">line-wrap</a> crate, so it's still available if you need it. <ul> <li><code>Base64Display</code> creation no longer uses a <code>Result</code> because it can't fail, which means its helper methods for common configs that <code>unwrap()</code> for you are no longer needed</li> </ul> </li> <li>Add a streaming encoder <code>Write</code> impl to transparently base64 as you write.</li> <li>Remove the remaining <code>unsafe</code> code.</li> <li>Remove whitespace stripping to simplify <code>no_std</code> support. No out of the box configs use it, and it's trivial to do yourself if needed: <code>filter(|b| !b" \n\t\r\x0b\x0c".contains(b)</code>.</li> <li>Detect invalid trailing symbols when decoding and return an error rather than silently ignoring them.</li> </ul> <h1>0.9.3</h1> <ul> <li>Update safemem</li> </ul> <h1>0.9.2</h1> <ul> <li>Derive <code>Clone</code> for <code>DecodeError</code>.</li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
---|---|---|
.cargo | ||
.github | ||
monero-harness | ||
monero-rpc | ||
swap | ||
tokio-tar | ||
.gitignore | ||
bors.toml | ||
Cargo.lock | ||
Cargo.toml | ||
LICENSE | ||
README.md | ||
rust-toolchain | ||
rustfmt.toml |
XMR to BTC Atomic Swap
This repository hosts an MVP for atomically swapping BTC to XMR. It implements the protocol described in section 3 of this paper.
Quick start
- Download the latest release for your operating system
- Run the binary:
./swap buy-xmr --receive-address <YOUR MONERO ADDRESS>
- Follow the instructions printed to the terminal
Limitations
For now, the MVP is limited to testnet3
on Bitcoin and stagenet
on Monero.
How it works
This repository primarily hosts two components:
- the
swap
CLI - the
asb
service
swap CLI
The swap
CLI acts in the role of Bob and swaps BTC for XMR.
See ./swap --help
for a description of all commands.
The main command is buy-xmr
which automatically connects to an instance of asb
.
asb service
asb
is short for automated swap backend (we are open to suggestions for better names!).
The service acts as the counter-party for the swap
CLI in the role of Alice.
It provides the CLI with a quote and the liquidity necessary for swapping BTC into XMR.
Contact
Feel free to reach out to us in the COMIT-Monero Matrix channel.