Tobin C. Harding
b8130d23a6
Only break if Bob has requested amounts already
...
We don't want Bob to be able to crash us by sending an out of
order message. Only break if Bob has not requested amounts.
2020-10-27 10:02:03 +11:00
Tobin C. Harding
5da84a3d48
Merge pull request #25 from comit-network/unused-assigments
...
Remove allow(unused_assignments) attribute
2020-10-27 09:55:32 +11:00
Tobin C. Harding
36ba504129
Merge pull request #24 from comit-network/alice-state-3
...
Send Message2 from Bob to Alice
2020-10-27 09:13:45 +11:00
Lucas Soriano del Pino
24104d5d35
Test that Alice punishes if Bob is inactive after locking bitcoin
2020-10-26 16:05:30 +11:00
Lucas Soriano del Pino
ba4ae09cd1
Remove allow(unused_assignments) attribute
...
It looks like the compiler can ascertain that `message0` will be
initialised by the time we use it, so it doesn't need to be an
`Option` and it doesn't need to be declared as mutable.
2020-10-26 15:21:32 +11:00
Tobin C. Harding
cbccc282ef
Send Message2 from Bob to Alice
...
In order for Alice to complete the handshake she needs to transition to state 3,
for this she needs message 2 from Bob.
Send `bob::Message2` to Alice and transition to `State3` - completing the
handshake.
2020-10-26 14:30:41 +11:00
Lucas Soriano
90f6c55290
Merge pull request #22 from comit-network/on-chain-tests
...
Test that both parties refund if Alice does not redeem
2020-10-26 13:47:37 +11:00
Lucas Soriano del Pino
0dd01c3a3b
Do not re-export curve25519_dalek
...
Anything that needs to be re-exported by this crate from
`curve25519_dalek` can be re-exported from the `monero` module. In
fact, the `Scalar` type was already being re-exported.
2020-10-26 13:06:20 +11:00
Lucas Soriano del Pino
cea1af1e1a
Take bitcoin_tx_lock_timeout as argument to action generators
2020-10-26 12:30:15 +11:00
Lucas Soriano del Pino
1d21ae7e7a
Use pin_mut! instead of futures::pin_mut!
2020-10-26 12:30:15 +11:00
Lucas Soriano del Pino
aa2a20916e
Include Bob being inactive as a reason for failure
2020-10-26 12:30:15 +11:00
Lucas Soriano del Pino
41e8c7283c
Verify Bob's redeem encsig as Alice
...
Not doing so means that receiving an invalid encrypted signature from
Bob would make the generator produce a `RedeemBtc` action that should
not be accepted by the node (since Bob's signature would be invalid
after decrypting his encrypted signature).
It's better to fail early and let the user know what went wrong,
rather than let them hit an incomprehensible error when using their
wallet.
2020-10-26 12:30:15 +11:00
Lucas Soriano del Pino
def3399d1c
Use while instead of loop
2020-10-26 12:30:15 +11:00
Lucas Soriano del Pino
c86a82b315
Rename action_generator_alice to action_generator
2020-10-26 12:30:15 +11:00
Lucas Soriano del Pino
e84c56378c
Test that both parties refund if Alice does not redeem
...
Also:
- Move generator functions to `alice` and `bob` modules. This makes
using `tracing` a lot easier, since the context of the file name let's
us differentiate between Alice's and Bob's generator logs more
clearly.
- Accept 0 confirmations when watching for the Monero lock
transaction. This should eventually be configured by the application,
but in the tests it's making things unexpectedly slower.
2020-10-26 12:30:15 +11:00
rishflab
964640154d
Merge pull request #18 from comit-network/db-dupe-code
...
Improve serde implementations
2020-10-26 12:16:46 +11:00
rishflab
ec71f98252
Revert re-imports to qualified paths
2020-10-26 11:45:27 +11:00
rishflab
fea6b29da9
Test monero amount serialisation
2020-10-26 11:39:54 +11:00
rishflab
28ffe063b7
Remove stale comment
2020-10-26 11:36:46 +11:00
Franck Royer
82b092d86e
Use consensus encoding for monero private key
...
Using consensus encoding future proof the library by using a commonly
accepted de/serialization format.
2020-10-26 11:36:46 +11:00
Franck Royer
9ea708b2a5
Remove custom implementation of bitcoin amount serde
...
This is unnecessary as rust-bitcoin provides it.
2020-10-26 11:36:40 +11:00
rishflab
3b14a0e4b3
Merge pull request #21 from comit-network/integrate-db
...
Move storage into application crate
2020-10-26 11:19:06 +11:00
rishflab
c781ee949d
Move storage into application crate
2020-10-26 10:32:54 +11:00
Philipp Hoenisch
11a4a7563b
Merge pull request #19 from comit-network/move-tor
...
Moving tor into swap
2020-10-23 13:32:53 +11:00
Philipp Hoenisch
17b32fed90
Moving tor into swap
2020-10-23 12:47:52 +11:00
Philipp Hoenisch
da5b4bef75
Merge pull request #20 from comit-network/monero-harness-ports
...
Use lib to ensure ports are free
2020-10-23 11:52:29 +11:00
Philipp Hoenisch
c0109d12cd
Use lib to ensure ports are free
2020-10-23 11:28:58 +11:00
rishflab
f7bcfa5e14
Merge pull request #14 from comit-network/db
...
Save and recover protocol state from disk
2020-10-22 20:08:56 +11:00
rishflab
a29786e175
Use external serialisation implementation
2020-10-22 19:41:52 +11:00
rishflab
03dee7a3ea
Generate temp dir for db
2020-10-22 19:34:53 +11:00
rishflab
3e82211a82
Add database todos
2020-10-22 19:27:28 +11:00
rishflab
62bc3c0432
Fix rebase conflicts
2020-10-22 19:25:54 +11:00
rishflab
e3b68a3864
Improve database type safety
...
The database is now bound to a type eg. alice::State or bob::State.
The caller cannot expect to retrieve a type that is different to
the type that was stored.
2020-10-22 18:09:16 +11:00
rishflab
8eda051087
Remove redundant serialisation implementation
...
ECDSAfun's serialisation implementation was already imported
making the custom implementation redundant
Remove remnants of stale comment
Remove redundant conversion
Rename params to be consistent
2020-10-22 18:09:16 +11:00
Tobin C. Harding
71e09413aa
Merge pull request #12 from comit-network/on-chain-protocol
2020-10-22 15:52:41 +11:00
Tobin C. Harding
79c6c8bbef
Sort Cargo.toml lines
2020-10-22 15:02:32 +11:00
Tobin C. Harding
ade0e08db6
Merge branch 'master' into on-chain-protocol
2020-10-22 14:49:55 +11:00
Tobin C. Harding
97363cb05c
Fix build after merge
2020-10-22 14:43:58 +11:00
Tobin C. Harding
f8adf6d7e0
Merge branch 'on-chain-protocol' of github.com:comit-network/xmr-btc-swap into on-chain-protocol
2020-10-22 14:33:16 +11:00
Tobin C. Harding
19f065575d
Do a bunch of cleanups
2020-10-22 14:30:10 +11:00
Tobin C. Harding
6e34f9c978
Use const TIMEOUT instead of an argument
2020-10-22 14:12:49 +11:00
Tobin C. Harding
cc61079826
Use VerifiedAmounts
2020-10-22 13:55:50 +11:00
Tobin C. Harding
eed5e8e9a4
Move monero serde code to lib
2020-10-22 13:54:13 +11:00
Tobin C. Harding
30298bdf1f
Do some more cleanups
2020-10-22 13:48:30 +11:00
Tobin C. Harding
2059158dad
Bump to libp2p v29
2020-10-22 13:39:18 +11:00
Tobin C. Harding
ad006fae6a
Do a bunch of cleanups
2020-10-22 13:35:55 +11:00
Tobin C. Harding
0f17ec076c
Add message1
2020-10-22 13:23:12 +11:00
Lucas Soriano del Pino
5395303a99
Test on-chain protocol happy path
2020-10-22 11:50:06 +11:00
Tobin C. Harding
a0987ee2b8
Use upstream serder for dleq Proof
2020-10-22 11:19:43 +11:00
Tobin C. Harding
ad0d8d5713
Emit message0 out of NB (both parties)
2020-10-22 11:04:49 +11:00