* monero-sys: mark all wallet calls as fallible
Instead of assuming the channel will never be closed.
* monero-sys: handle closed channel from wallet thread side
Also put monero-sys logs into a tracing span per thread
* don't panic when uninstall c++ log callback fails
* monero-sys: catch panics in operations on wallet thread
At least long enough to log the error
* monero-sys: propagate c++ exceptions for all calls, except for simple getters
* refactor(GUI): put SeedSelectionDialog FromSeed in its own box too
* feat(GUI): allow setting passphrase when creating wallets
Closes: #689
* feat(GUI): allow setting a password on existing wallet
Without saving, we can get the wallet into a state that causes libmonero
to throw std::bad_alloc (in the GUI and in feather; opening it a second
time in feather fixes it)
* start adding support for subaddresses
* add happy_path_alice_developer_tip_subaddress
* remove redundant addSubaddressAccount bridge
* document multiple tx keys
* don't autoformat c++ files
* update PendingTransaction::txKeys() to return the output address and the transaction id for each tx key as well
* fix c++ include error, update bridge.rs
* make TxReceipt have a map of transfer keys
* fix derive_puclic_key function call
* add undo-git-changes to justfile (restores unstaged changes in git submodule)
* don't autoformat c/c++ files
This is annoying because it's increasing the diff size when I really
just want to extract the changes into a patch.
* Change the txKeys method to correctly identify the tx key for each output.
Caviat: we currently skip all outputs that belong to the primary address.
This means we won't have a tx key when sending to our own main address or
for change outputs. Transactions which try anyway will fail in the rust
verification step.
* add a simple test casse
* update error message to reflect caviat of not beign able to send to your own main address
* un-hardcode path in transaction_keys.rs
* update patch to throw an exception in txKeys() when a crypto operation fails
(instead of ignoring it)
* cleanup
* add a new crate monero-tests for monero integration tests
* add monero-tests/transactions to ci
* add comment to tx_keys map
* fix compilation, add test case for wrong transfer key
* fix ci
* add new test and explanatory comments
* Add explanatory comment
* rename test to avoid name abiguity
* silence some monero c++ spam
* start updating distribute function to use integers
* Revert "start updating distribute function to use integers"
This reverts commit b69ec7c44cee3c19001001c36cc62f3ce5ec4c74.
* update rust to 1.88
---------
Co-authored-by: Binarybaron <binarybaron@protonmail.com>
Co-authored-by: Mohan <86064887+binarybaron@users.noreply.github.com>
* feat(gui): Partially availiable global state
* move tauri command into own module
* move commands list into src-tauri/src/commands.rs
* cleanup swap/src/cli/api.rs
* add contextRequirement attribute to PromiseInvokeButton
* amend
* allow wallet operation on partially availiable context
* improvements
* fix some linter errors
* limit amount of logs to 5k
* keep behaviour from before
* make sure if swapId is null useActiveSwapLogs, return no logs
* remove unused variable
* create ContextStatusType enum
* 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>