* wip
* filter out destinations with zero amount
* add changelog entry
* do not use subtract_fee_from_outputs for multi lock tx
* make developer tip address configurable
* create developer_tip_monero_wallet in integration test
* add happy_path_alice_developer_tip integration test
* run happy_path_alice_developer_tip integration test in ci
* make stub tests
* document `developer_tip` and add log at startup
* take tip consideration when crafting quote
* remove double g++
* fix bash
* full stack trace in logs
* add DEFAULT_DEVELOPER_TIP_ADDRESS_STAGENET
* fix issue where --testnet could not be detected
* triple bitcoin testnet timelocks
* assert hardcoded developer tip address is on the correct network
* fix: interpret developer_tip = 0 as no tip in log at startup
* change developer_tip type to non-option, clamp tips below 100_00 piconero to 0
* create dedidcated TipConfig struct to replace (Decimal, monero::Address)
* small refactorings
* move tip config init out of of function call params
* refactoring
* unit tests wrong arguments passed in
* document `developer_tip` allows configuring your maker to donate a small part of swaps to funding further development of the project. This is disabled by default. You can manually enable it if you choose to do so. Set it to a number between 0 and 1. Setting it to 0.02 will donate 2% of each swap to the donation address of the project. The tip is sent by adding an additional output the Monero lock transaction of a swap. This means this will not impact document `maker.developer_tip` in docs/pages/becoming_a_maker/overview.mdx
* do not panic if cxx_addrs / cxx_amounts is null
* formatting, full error stack trace in swap/src/asb/event_loop.rs when we cannot construct a quote
* increase MIN_USEFUL_TIP_AMOUNT_PICONERO to 30m piconero (usd), correct params in unit tests
* prompt for developer_tip in orchestrator and asb wizard
* just fmt
* fmt
* address comments
* fmt
* spelling mistakes
---------
Co-authored-by: binarybaron <binarybaron@mail.mail>
some of the dependency updates are requiring a higher version of the
rust toolchain. bump to 1.67 and fix new clippy lints.
also fix dprint to 0.39.1 because 0.40 has breaking changes.
- Swap-id is exchanged during execution setup. CLI (Bob) sends the swap-id to be used in his first message.
- Transfer poof and encryption signature messages include the swap-id so it can be properly associated with the correct swap.
- ASB: Encryption signatures are associated with swaps by swap-id, not peer-id.
- ASB: Transfer proofs are still associated to peer-ids (because they have to be sent to the respective peer), but the ASB can buffer multiple
- CLI: Incoming transfer proofs are checked for matching swap-id. If a transfer proof with a different swap-id than the current executing swap is received it will be ignored. We can change this to saving into the database.
Includes concurrent swap tests with the same Bob.
- One test that pauses and starts an additional swap after the transfer proof was received. Results in both swaps being redeemed after resuming the first swap.
- One test that pauses and starts an additional swap before the transfer proof is sent (just after BTC locked). Results in the second swap redeeming and the first swap being refunded (because the transfer proof on Bob's side is lost). Once we store transfer proofs that we receive during executing a different swap into the database both swaps should redeem.
Note that the monero harness was adapted to allow creating wallets with multiple outputs, which is needed for Alice.