Proto commits in BoltzExchange/boltz-client

These commits are when the Protocol Buffers files have changed: (only the last 100 relevant commits are shown)

Commit:ac71c17
Author:jackstar12
Committer:GitHub

refactor: remove GDK (#671) * feat: deprecate gdk * fix: allow removal of legacy wallet db rows * chore: update proto comments * docs: mention legacy wallets * grpc: rm unsupported rpcs * chore: cleanup router and migration * chore: address review * fix: respect auto consolidation threshold in lwk * test: check mnemonic generation errors

The documentation is generated from this commit.

Commit:45e0b0d
Author:jackstar12
Committer:GitHub

fix: wallet tx timestamps and ordering (#660) * fix: wallet tx timestamps and ordering * fixup! fix: wallet tx timestamps and ordering

Commit:b67ecf0
Author:jackstar12
Committer:GitHub

fix: docs spellcheck (#659)

Commit:3cd1120
Author:jackstar12
Committer:jackstar12

feat: add funding address shortcuts to grpc

Commit:de11d72
Author:jackstar12
Committer:jackstar12

feat: funding address

Commit:9a9b12b
Author:jackstar12
Committer:jackstar12

feat: funding address

Commit:85bf979
Author:jackstar12
Committer:GitHub

chore: cleanup docs and typos (#635) * chore: cleanup docs * chore: add spellchecking to ci

Commit:1e96891
Author:jackstar12
Committer:GitHub

feat: `GetSwapQuotes` rpc (#624) * feat: `GetSwapQuotes` rpc * doc: cli description * chore: add input validation to `CalculateQuotes` * chore: add safety around 0 division and potential underflows

Commit:3fa6b37
Author:jackstar12
Committer:GitHub

feat: allow manual refund of explicit lockups for swaps (#619) * feat: allow manual refund of explicit lockups for swaps * chore: adjust cli wording

Commit:5817724
Author:Kilian
Committer:GitHub

feat: add command to remove tenant (#597)

Commit:3c19964
Author:jackstar12
Committer:GitHub

docs: wallet credentials (#575) * chore: deprecate xpub * docs: wallet credentials

Commit:e51296b
Author:jackstar12
Committer:GitHub

feat: hide mrh behind flag (#557) * feat: hide mrh behind flag * fix: check mrh conditions explicitly

Commit:d386311
Author:jackstar12

feat: `no_mrh` flag on reverse swap creation allow disabling magic routing hints for reverse swaps

Commit:9e0ae15
Author:Kilian
Committer:GitHub

feat: switch CLN from pay to xpay (#546) * chore: bump min version check on cln * chore: bump cln proto * feat: switch cln to xpay --------- Co-authored-by: jackstar12 <jkranawetter05@gmail.com>

Commit:e8922cf
Author:jackstar12
Committer:GitHub

feat: `ignoreMrh` flag for submarine swaps (#522) * feat: `ignoreMrh` flag for submarine swap creation useful for a payouts use case when one has to need a swap for tracking each payout, which isn't available when directly paying to the MRH address * chore: increase `swapTaproot` timeout for regtest backend required to make self-payment test work

Commit:620dde3
Author:jackstar12
Committer:GitHub

feat: derive keys from swap mnemonic (#487) * feat: swap mnemonic for key derivation * chore: improve wording * fix: dont allow --generate and other mnemonic to be set * refactor: generate mnemonic by default on startup * docs: proper cli usage text * refactor: increment key index with seperate function note: db transaction isnt required in `newKeys` because we already have a lock there * chore: add confirmation prompt to in cli * refactor: show cli confirmation prompt after checking args * chore: prettier on docs

Commit:4852f12
Author:jackstar12
Committer:GitHub

feat: lwk server integration (#462) * feat: lwk server integration * feat: lwk `GetOutputs` implementation for MRHs * refactor: improve wallet tests * chore: .gitignore * chore: deprecate subaccount apis * feat: electrum backend * refactor: `getOwnWallet` -> `getGdkWallet` * fix: dont select subaccounts in cli wallet import not needed anymore * feat: `TxProvider` in wallet backend important to not broadcast via boltz * feat: lwk index persister * refactor: move full scan of wallets into seperate `Sync` function this way, we can create the wallet inside of a transaction with the other db operations and have the heavier sync not block the db * feat: transactions pagination * docs: clarify persister comments * fix: correct insufficient funds error want to be consistent with gdk * fix: encrypt wallets after logging in * feat: derive default descriptor before creating wallet in db users will see descriptor in credentials of hot wallets this way * fix: use `GetSendFee` from wallet interface in `checkBalance` * feat: implement `transaction.direct` status update (#497) * feat: implement `transaction.direct` status update * refactor: dont set mrh for external claim addresses this simplifies the handling of direct payments and gets rid of the problem where we cant verify the value of liquid transactions made to these transactions * fix: flaky gdk bump test * fix: remove manual GC run debugging leftover

Commit:68bb7de
Author:jackstar12
Committer:jackstar12

fix: dont select subaccounts in cli wallet import not needed anymore

Commit:ab20430
Author:jackstar12
Committer:jackstar12

chore: deprecate subaccount apis

Commit:8ca8350
Author:jackstar12
Committer:GitHub

feat: max routing fee (#473) * feat: max routing fee * refactor: put default boltz api url into network struct * fix: avoid float conversion in fee limit calculation * fix: use correct `externalPay` variable in router * chore: improve comments * refactor: `maxRoutingFeePpm` -> `routingFeeLimitPpm` * chore: formatting

Commit:0ea8691
Author:jackstar12
Committer:GitHub

docs: improve pro guide (#463) * docs: improve pro guide * docs: improve swap proto comments

Commit:c9ddd88
Author:jackstar12
Committer:GitHub

fix: allow negative fees in stats (#429)

Commit:4e3ef00
Author:jackstar12
Committer:GitHub

fix: allow negative service fees (#412)

Commit:648e9dd
Author:jackstar12
Committer:GitHub

feat: `BumpTransaction` rpc (#388) * feat: `BumpTransaction` rpc * feat: `bumpfee` cli command * feat: handle replaced lockup transactions in nursery * feat: query fee if not specified * chore: lint * fix: dont retry tx confirmation check if it errors * chore: debug flaky test * fix: handle unsupported errors for onchain calls * feat: ensure new fee rate is higher than previous rate * docs: improve grpc comments * chore: improve wording * chore: improve bumptransaction tests * chore: error wording Co-authored-by: michael1011 <me@michael1011.at> --------- Co-authored-by: michael1011 <me@michael1011.at>

Commit:1e47662
Author:jackstar12
Committer:jackstar12

chore: rm lowball code

Commit:b06111f
Author:jackstar12
Committer:GitHub

feat: get swap by payment hash (#377) * fix: `proto` make command * feat: get swap info by `payment_hash` * chore: set length of `paymentHash` varchar * fix: use correct decode invoice method in migration works for bolt12 aswell * fix(test): always use latest block count in `syncCln` * chore: add `NOT NULL` constraint to `paymentHash` * test: start swap stream before paying invoice

Commit:2fac4e2
Author:jackstar12
Committer:GitHub

refactor: package structure (#366)

Commit:de4ec29
Author:jackstar12
Committer:jackstar12

feat: deferred claims

Commit:b55f6d2
Author:jackstar12
Committer:GitHub

feat: include `max_balance` in chain recommendations rpc (#350)

Commit:c7b4bff
Author:jackstar12

docs: improve `ExecuteRecommendations` comment

Commit:e5460a7
Author:jackstar12
Committer:GitHub

feat: autoswap execute rpc (#342) * feat: autoswap execute rpc * feat: add `force` flag to execute rpc

Commit:118e702
Author:jackstar12
Committer:jackstar12

wip: deferred claims

Commit:fca6c82
Author:jackstar12
Committer:GitHub

feat: amountless chain swaps (#291) * feat: amountless chain swaps * chore: fix tests * fix: update chain swap amounts in tx * feat: proper amount validation (#330) * feat: proper amount validation * fix: validate submarine swap amounts if invoice is set after lockup * feat: add absolute network fee tolerance * refactor: onchainFees -> networkFees * chore: remove done TODO * fix: make sure to handle 0 amount same as nil for backwards compatibility

Commit:63a2bdd
Author:jackstar12
Committer:GitHub

feat: `GetSendFee` rpc (#325) * feat: `GetSendFee` rpc * refactor: always default to dummy swap address

Commit:12208c6
Author:jackstar12
Committer:GitHub

feat(autoswap): add `LightningThresholds` to autoswap rpc (#320)

Commit:1527dca
Author:jackstar12
Committer:GitHub

feat: support creating swaps with lnurls and lnaddresses (#308) * feat: support creating swaps with lnurls and lnaddresses * docs: mention lnurl and lnaddress in rpc * chore: update regtest

Commit:dbabf27
Author:jackstar12
Committer:GitHub

feat: auto consolidate (#306) * feat: auto consolidate * test: make sure `MaxInputs` is respected * chore: config wording Co-authored-by: michael1011 <me@michael1011.at> * refactor: allow disabling auto consolidation * docs: mention auto consolidate disable * feat: add `CONSOLIDATION` transaction type in rpc * fix: disable auto consolidation for readonly wallets * fix: one off issues on consolidation threshold check * feat: config validation * refactor: auto consolidation loop --------- Co-authored-by: michael1011 <me@michael1011.at>

Commit:bf4e227
Author:jackstar12
Committer:GitHub

feat: subaccount core descriptors in rpc (#293) * feat: return subaccount core descriptors in rpc * refactor: subaccounts cli commands

Commit:92c74f7
Author:jackstar12
Committer:GitHub

feat: `ListWalletTransactions` rpc (#286) * feat: `ListWalletTransactions` rpc * test: dont run in parallel a bit flaky with gdk notifications test helper - nothing to worry about in prod * chore: update to latest regtest * chore: increase test timeout

Commit:7b79083
Author:jackstar12
Committer:GitHub

feat: custom reverse swap invoice expiry (#290)

Commit:536e276
Author:jackstar12
Committer:GitHub

feat: listswaps pagination (#280) * feat: listswaps pagination * feat: add `to_amount` in unified swap info * fix: throw error when offset and limit are used without unify * fix: drop `allSwaps` view if it exists before creating * fix: grpc wording

Commit:4eebc0f
Author:jackstar12
Committer:GitHub

fix: only spend confirmed utxos (#278)

Commit:24f67ac
Author:jackstar12
Committer:GitHub

feat: add description hash option for reverse swaps (#271)

Commit:22e0b5b
Author:jackstar12
Committer:GitHub

feat: chain autoswap reserve balance (#259) * feat: chain autoswap reserve balance * fix: ensure max balance is greater than reserve balance * feat: include reserve balance in cli setup * test: use higher amounts to be greater than min reserve * Update cmd/boltzcli/commands.go Co-authored-by: michael1011 <me@michael1011.at> --------- Co-authored-by: michael1011 <me@michael1011.at>

Commit:ae67ba2
Author:jackstar12
Committer:GitHub

feat: send and receive rpcs for wallets (#261) * feat: send and receive rpcs for wallets * feat: cli commands * chore: rm todo * refactor: print json in cli * chore: fix comments * feat: `balances` alias for wallet list command

Commit:8a339d1
Author:jackstar12
Committer:GitHub

refactor: convert remaining budget to uint64 (#245)

Commit:0fb9517
Author:jackstar12
Committer:GitHub

feat: add `is_auto' to gRPC swap messages (#247)

Commit:6e77196
Author:jackstar12
Committer:jackstar12

feat: lowball flags for lockup transactions of submarine and chain swaps

Commit:1b3137b
Author:Kilian
Committer:GitHub

feat: stats gRPC (#222) * feat: stats rpc * refactor: use `IncludeSwaps` enum instead of `is_auto` boolean * refactor: explicit if checks for MANUAL and AUTO * chore: rm comment --------- Co-authored-by: jackstar12 <jkranawetter05@gmail.com>

Commit:8cb9b25
Author:jackstar12
Committer:GitHub

feat: include lightning and wallet balances in autoswap recommendations (#231) * feat: include lightning and wallet balances in autoswap recommendations * docs: add comments for new recommendations messages

Commit:64b27ba
Author:jackstar12
Committer:GitHub

feat: ClaimSwaps gRPC method (#198) * feat: claimswap rpc * feat: disconnect wallets when stopping daemon * chore: cleanup

Commit:dfd6998
Author:jackstar12
Committer:GitHub

feat: custom reverse swap invoice description (#208) * feat: allow custom reverse swap description * ci: dont run chainswaps branch

Commit:c3d256b
Author:jackstar12
Committer:GitHub

feat: remember time of reverse swap payment (#207) * feat: remember time of reverse swap payment * fix: dereference PaidAt in test * add comment

Commit:13f46ea
Author:jackstar12
Committer:GitHub

fix: cli fees (#191)

Commit:58302fd
Author:jackstar12
Committer:GitHub

refactor: rename entity to tenant (#188)

Commit:1b00d8d
Author:jackstar12
Committer:GitHub

feat: minor autoswap improvements (#183) * fix: ignore manual swaps in autoswap * fix: autoswap amount calculation * refactor: decrease default failure backoff to one hour * refactor: remove unnecessary no_dismissed flag vom recommendations rpc * fix: leave 10k sat channel buffer * chore: improve logs * fix: autoswap test config * refactor: use 2% balance buffer instead of fixed 10k

Commit:866e454
Author:jackstar12
Committer:GitHub

feat: chain autoswap (#139) * feat: initial chain autoswap * fix: close `OnWalletChange` in onchain * chore: address review feedback * feat: chain autoswap budget (#157) * feat: chain autoswap budget * test: use shared cache for memory db to avoid multiple connection issues * refactor: use pointers for database swaps to avoid value issues * Update database/stats.go Co-authored-by: michael1011 <me@michael1011.at> * Update autoswap/autoswap_test.go Co-authored-by: michael1011 <me@michael1011.at> --------- Co-authored-by: michael1011 <me@michael1011.at> * refactor: ensure entity is populated on every config * feat: improve cli setup * feat: display wallet currency in cli when selecting * fix: typo * fix: always return ln and chain status in rpc message even when not configured * feat: improve chain setup * feat: entity cli * chore: remove unnecessary `Request` function * refactor: `from_threshold` -> `max_balance` * fix: correct limit in setup * refactor: use shared `GetAddressCurrency` function * fix: db migration * cleanup * feat: retry tx confirmation checks * refactor: simplify internal autoswap structures and improve error handling * fix: dont retry confirmation check in regtest * Apply suggestions from code review Co-authored-by: michael1011 <me@michael1011.at> * fix: return error when setting config * fix: leave a fixed amount of sats in wallet when doing chain swaps * refactor: use in / outbound terminology * chore: improve config descriptions * fix: set unrequired thresholds to 0 in setup * refactor: use entire channel capacity as target if only one threshold is used * docs: update thresholds section * fix: reset error when saving config * docs Co-authored-by: Kilian <19181985+kilrau@users.noreply.github.com> * feat: print target related info after autoswap setup --------- Co-authored-by: michael1011 <me@michael1011.at> Co-authored-by: Kilian <19181985+kilrau@users.noreply.github.com>

Commit:798ed3e
Author:jackstar12
Committer:GitHub

feat: allow manual refunds to wallets (#167) * feat: manual refunds to wallets * refactor: use pointers instead of values in db functions * test: run manual refund tests from btc instead of lbtc wallet balance check can be flaky since gdk takes a bit to sync * chore: cleanup

Commit:8305343
Author:jackstar12
Committer:GitHub

refactor: improve wallets rpc (#158) * refactor: improve wallets rpc * chore: add lower timeout to tests * chore: fix typo

Commit:64f8133
Author:jackstar12
Committer:GitHub

refactor: do not implicitly use nil entity as admin default (#154) * refactor: do not implicitly use nil entity as admin default * fix: stop pinging electrum when its shutdown * fix: add default entity in autoswaps * chore: spacing * fix: remove unnecessary alias * refactor: use uint64 for ids

Commit:4b73b61
Author:jackstar12
Committer:GitHub

feat: magic routing hint support (#146) * feat: magic routing hint support * text: add more cases

Commit:f7eb73d
Author:jackstar12
Committer:GitHub

refactor: unify pair rpcs (#143) * refactor: unify pair rpcs * chore: remove old permissions * chore: cleanup * debug

Commit:e85d88a
Author:jackstar12
Committer:GitHub

feat: initial chainswaps (#133) * feat: initial chainswaps * chore: cleanup * refactor: unify fee and transaction logic * refactor: use IN when querying refundable swaps * refactor: use getters and setters for refund and claim pubkey in swaptree * chore: api naming * chore: cleanup * feat: improve wallet logic when creating chain swap * feat: manual chain swap refunds * feat: include chainswaps in `ListSwaps` rpc * chore: consistent naming * Update nursery/refund.go Co-authored-by: michael1011 <me@michael1011.at> * chore: improve proto definitions * refactor: dont set externalPay implicitly * chore: cleanup * refactor: use wallet ids in create request * feat: only query coop refundable swaps in specific states * fix: check if swap already has been paid in nursery * chore: improve error messages * feat: chain swaps cli (#136) * feat: chain swap cli * fix: chain swap help description * fix: help output missing , statement * fix: chain swap help description from/to * fix: createswap,createreverseswap,createchainswap help description * fix: autoswapper -> autoswap in help outputs, comments * fix: typo * refactor: dont implicitly select wallets * fix: check for state in timeout condition when querying refundable swaps * fix: only set fees of valid outputs after transaction was created * feat: implicitly set external pay in cli when not specifying from wallet * chore: cleanup * fix: check if value is less than fee when constructing transaction * feat: return output specific errors when creating transactions * fix: refund help description * fix: --from-external, --to-address help output * refactor: dont default to mainchain when creating swap * refactor: use from and to wallet terminology everywhere * chore: add db migration * fix: display correct refund transaction when refunding in cli * fix: show correct timeout in cli * feat: recover pending chain swaps * fix: correctly set external pay when creating submarine swap * feat: display currency of lockup tx in cli * fix: dont try to broadcast empty transaction --------- Co-authored-by: Kilian <19181985+kilrau@users.noreply.github.com> * docs: improve grpc comments * fix: transaction reconstruction logic * ci: temporarily use chainswaps branch of regtest * text: wait with mining blocks * test: remove flaky batch test for now can be added back later when batching has been refactored --------- Co-authored-by: michael1011 <me@michael1011.at> Co-authored-by: Kilian <19181985+kilrau@users.noreply.github.com>

Commit:284d350
Author:jackstar12
Committer:jackstar12

feat: allow baking admin macaroons

Commit:50ae0e6
Author:jackstar12
Committer:jackstar12

Merge branch 'master' into entity-auth

Commit:530a946
Author:jackstar12
Committer:GitHub

feat: show refundable swaps in cli (#132) * feat: show refundable swaps in cli * fix: correct query for refundable swaps * chore: wording

Commit:34c0a92
Author:jackstar12

refactor: allow specifying entity as request header

Commit:cb16243
Author:jackstar12

feat: more fine grained permissions

Commit:1ec89dc
Author:jackstar12

feat: entity related rpc implementation

Commit:568138a
Author:jackstar12
Committer:jackstar12

refactor: use ids instead of names for wallet and entity in rpc

Commit:7db6a22
Author:jackstar12

feat: allow specifying basic permissions in rpc

Commit:f56c540
Author:jackstar12

feat: entity parameter for listswaps and getwallets rpc

Commit:29c4a93
Author:jackstar12
Committer:jackstar12

feat: macaroon based entity authentication

Commit:67c653b
Author:jackstar12
Committer:GitHub

feat: global swap info stream (#124) * feat: global swap info stream * fix: place test db in tempdir

Commit:d23447c
Author:jackstar12
Committer:GitHub

feat: allow external pay for reverse swaps (#121) * feat: allow external pay for reverse swaps * fix: validate request parameters before swap creation

Commit:7070a88
Author:jackstar12

docs: update old `auto_send` comments

Commit:0e5d535
Author:jackstar12

chore: temporarily comment out chanIds in rpc for submarine swaps not yet supported by boltz backend

Commit:cb3211f
Author:jackstar12

refactor: make `refund_address` optional in rpc

Commit:09c92a7
Author:jackstar12
Committer:GitHub

refactor: rename autoSend to sendFromInternal (#116) * refactor: rename autoSend to sendFromInternal * docs: wallet comment

Commit:160534f
Author:jackstar12
Committer:jackstar12

chore: cleanup rpc

Commit:226eea7
Author:jackstar12
Committer:jackstar12

refactor: use concrete type for block_heights in grpc

Commit:5c54fd6
Author:jackstar12
Committer:jackstar12

docs: improve grpc comments

Commit:58809c7
Author:jackstar12

docs: proper wallet comments

Commit:aa82580
Author:jackstar12
Committer:GitHub

refactor: cleanup autoswap config (#96)

Commit:ce0b45e
Author:jackstar12
Committer:GitHub

feat: return_immediately parameter for reverse swap creation (#94) * feat: return_immediately parameter for reverse swap creation * docs: zero-conf comment * refactor: optional fields for reverse swap response * docs: zero-conf comment

Commit:e8f2692
Author:jackstar12
Committer:GitHub

refactor: use proper message type for autoswap config instead of json (#93) * refactor: use proper message type for autoswap config instead of json * fix: remove pair examples in cli * fix: error handling * chore: add comment to config * fix: correct cli example * chore: cleanup

Commit:156e711
Author:jackstar12
Committer:GitHub

feat: refund rpc (#89) * feat: `RefundSwap` rpc * feat: database lock * fix: correct comment * feat: show refund transaction id in cli * fix: macaroon permissions * fix: error message * fix: add nil case to `ParseCurrency`

Commit:8830678
Author:jackstar12
Committer:GitHub

feat: allow custom swap invoice (#91) * feat: allow setting the invoice when creating a reverse swap * feat: invoice flag in cli

Commit:3ca2ab7
Author:jackstar12
Committer:GitHub

feat: use proper currency type in wallets grpc (#90) * feat: use proper currency type in wallets grpc * chore: remove dead code

Commit:b91eed8
Author:jackstar12
Committer:GitHub

feat: getpairs rpc (#88) * feat: getpairs rpc * fix: typo

Commit:db4bd87
Author:jackstar12
Committer:GitHub

feat: v2 api (#83) * feat: initial swaptree implementation * feat: initial btc and liquid taproot swaps * feat: initial cli integration * feat: submarine and reverse pair grpc * chore: db migration * feat: run db migrations inside transaction * feat: late invoice and refunds for normal swaps * chore: cleanup error messages Co-authored-by: michael1011 <me@michael1011.at> * chore: cleanup boltz package * fix: error if less onchain coins than expected * fix: update database version inside transaction * test: dont create unnecessary client * test: lower cltv expiry in regtest for lower swap timeouts * refactor: add partial signer callback in constructtransaction * chore: rm unnecessary rpc * fix: error descriptions Co-authored-by: michael1011 <me@michael1011.at> * fix: check length of output scripts * refactor: add constatn for regtest cltv * feat: prefer clearnet uris when connecting nodes * refactor: use map instead of hardcoded node names * fix: correct pair in autoswap * feat: improve node connection selection --------- Co-authored-by: michael1011 <me@michael1011.at>

Commit:8eac69d
Author:jackstar12
Committer:GitHub

refactor: allow specifying multiple channel ids instead of one (#73) * refactor: allow specifying multiple channel ids instead of one * fix: ignore zero channel ids * fix: backwards compatible migrations * fix: protobuf backwards compat issue

Commit:9534f7b
Author:jackstar12
Committer:jackstar12

major update

Commit:869a67a
Author:jackstar12
Committer:GitHub

feat: listswaps filter (#78)

Commit:9a5ed37
Author:jackstar12
Committer:GitHub

wip: autoswap (#2) * feat: initial swap recommendations * feat: swap recommendation command * feat: `ChanId` in db and grpc * experiment with wallet seed phrases * feat: create swaps inside channel watcher channel watcher was moved to rpc server to avoid cyclic imports * feat: `Pair` type in boltz * feat: liquid reverse swaps (#3) * test liquid deposit * feat: `BlindingKey` in db and grpc * initial liquid experimenting * liquid testing * fix findVout * add real claim tx in test * feat: `Transaction` abstraction * feat: `Network` abstraction * cleanup test * deps * feat: use `Transaction` * refactor: rename Size to VSize on Transaction * fix cgo issues * start implementing liquid tx building * chore: fix dependency issue * implement psetv2 for liquid * fix lockup address for liquid * fix signature in liquid tx construction * refactor: more consistent naming, cleanup * refactor: require instead of assert in tests * cleanup remove old tests and unnecessary submodule * cleanup * refactor: simplify address config * feat: autoswap through `LocalBalanceThreshhold` * feat: `SwapType` constants in boltz * feat: pair parameter for service info * refactor: remove `Pair` from config * refactor: exclude in-use channels before recommendations this helps avoid a situation where a strategy operating on the total channel balance picks a channel which is in-use * feat: `Percentage` util * feat: min local reserve, fee checks * chore: add tools installation command in makefile * feat: auto swap integration tests * feat: use fresh db in test * feat: channel specific swaps currently reverse only * refactor: move core autoswap functionality into module * feat: regtest in workflow * fix: channel balance denomination in sat instead of msat * uncomment mempool test for now * feat: `CheckInvoicePaid` function for lightning interface reduce reliance on lnd - only chain listener is left now * fix: add test config to repo * fix: use `RetryFor` instead of `Maxdelay` * fix: check all returned invoices in `CheckInvoicePaid` * fix: handle error handling in lnd * Update boltz/network.go Co-authored-by: michael1011 <me@michael1011.at> * refactor: rename `NewBtcTx` * Update boltzrpc/boltzrpc.proto Co-authored-by: michael1011 <me@michael1011.at> * feat: budget config values * feat: add `createdAt` and fee fields to db * feat: error handling and claim tx fee from reverse nursery * feat: QueryFees function * feat: initial `Budget` implementation * refactor: use `rawRecommendation` internally to distinguish between checked and unchecked * feat: `IsAuto` param in fee calculation * feat: initial failure backoff * feat: reasons for channel exclusion * fix: get btc asset id from network object * refactor: rename `BlindingKey` to `OurOutputBlindingKey` * cleanup * refactor: use `QueryRow` in fee query * comment * refactor: rename `Dismissed` to `DismissedReason` * refactor: use last budget end date as current start date and potentially move forward * fix: coalesce in fee query so it doesnt disappear when no rows are present * refactor: cleanup migrations * refactor: make `DismissedReasons` an array * feat: abstract onchain (#13) * initial onchain interfaces * feat: swap type check in imbalance strategy * feat: swap init logs * minor test improvements * feat: abstract mempool and add mempool liquid support * refactor: still use mempool for btc and liquid due to lacking cln support * refactor: move address checking logic into autoswap package * remove dead file * feat: cln block listener through polling * test: refund normal swaps * fix: add different transaction output types back * feat: lightning node configuration * fix: minimum fee * refactor: make strategy config more explicit * feat: fee fallback to wallet * refactor: use struct for parsing json in mempool * feat: minimum fee in estimations * fix: error if lightning cant connect at all * feat: cln polling interval depending on network * chore: cleanup * refactor: remove pair param from swaprecommendations rpc * update protos * cleanup * fix: merging errors * add missing onchain to server * fix: correct expiry in cln invoice creation * feat: autostatus command * feat: more default values for autoswap config * feat: format dates properly * feat: test autostats * refactor: make stats sql more readable * feat: total balance strategy with % threshhold * refactor: dont provide a specific channel in local balance strat * refactor: make autobduget uint64 in grpc * refactor: return pointer to swaptype * doc: proper description for new commands * feat: correctly store onchain and service fees for all swaps (#17) * feat: onchain transaction fee provider * feat: save normal swap fees to database * fix: production endpoint in mempool test * fix: check script length of liquid outputs when finding fee * feat: cache input transaction in btc tx fee calculation * feat: add reverse swap fees to grpc and check them in tests * feat: accurate representation of boltz service fee * cleanup * refactor: only store normal swap lockup fees if paid by internal wallet other payments might come from exchanges that batch a lot of transactions together which would mess with our fee * refactor: remove unnecessary network call * feat: make sure onchain amount of normal swap is always stored * refactor: make fee fields optional in grpc * fix: merging errors * fix: regtest (#19) * fix: disable lnd channel specific payments for now * change regtest branch for now * test: run get info on cln instead of lnd (lnd causes issues?) * update workflow * fix permissions * ci: only push on master * refactor: remove unnecessary install step * refactor: move onchain test to mempool to avoid import cycle * fix old test * refactor: rename all boltz-lnd occurences to boltz-client * make tests more robust * skip per channel autoswap tests * bump go version * fix: mempool fee test * fix: adjust minfee for btc * fix: linting issues * fix: checkout code before installing go * refactor: improve logging (#29) * feat: new logger * refactor: rename `logger.Warning` to `logger.Warn` * chore: improve logging messages * refactor: log level in config, remove logprefix * fix: use new logger in tests aswell * refactor: return no error in logger init * refactor: move test logger to test pkg * feat: grpc swap info streaming (#30) * feat: swapinfo streaming rpc * fix: make behaviour of `PayInvoice` identical across lnd and cln * fix: make sure the swap listener isnt closed too early * feat: intial streaming integraion in cli * fix: wrong log placement in `PayReverseSwap` * feat: channelforwarder * fix: use new logger * test: pay deposits via cli and use mempool api directly * fix: explicitly close stop handler * feat: log status of swap updates * doc: add `ArgsUsage` to swapinfo commands * doc: adjust `GetSwapInfoStream` comment * feat: detect outdated macaroons * fix: remove unnecessary buffers and properly close receiver channels * fix: `SetSwapLockupTransactionId` sql parameters * feat: initial gdk experimentation * feat: mnemonic import / backup * feat: liquid wallet cli commands * feat: cleanup and test liquid wallet * fix: use correct payment script in liquid transactions * refactor: make chain used in transaction explicit * feat: group liquid commands together * fix: linting errors and cleanup * refactor: unify channel ids (#31) * refactor: unify channel ids and make naming more consistent * revert unwanted changes * fix: weird indentation * test: more cases for channel id * refactor: log message in cln * refactor: better naming for `ChannelId` proto * refactor: log both formats in chanId `String` function * fix: allow parsing of empty string as zero-channel id * test: poll balance on init for more reliability * feat: liquid wallet grpc * feat: include gdk details in eror message * refactor: parse gdk results into proper structs for better safety * feat: estimate fee * refactor: properly free all GA_json objects * feat: allow wallet creation through grpc * fix: add missing macaroon permissions * refactor: make sure free calls dont collide * refactor: remove balance log on startup * feat: support unconfidential addresses in reverse swaps * refactor: dont return wallet info on import rpc * feat: allow specifying subaccount to use * doc: add comments to new rpc commands * cleanup * fix: eof for .gitignore * feat: forbid p2pk claim addresses (#35) * refactor: remove unnecessary secp lib * fix: use correct subaccount in liquid `NewAddress` * feat: normal liquid swaps (#36) * feat: liquid swaps * refactor: use createswap for deposit internally * fix: minor fee issues and better tests * fix: endpoint hell * chore: improved error handling * lint * Update nursery/reverse.go Co-authored-by: michael1011 <me@michael1011.at> --------- Co-authored-by: michael1011 <me@michael1011.at> * fix: dont send raw pairId to boltz * fix: make sure right node is chosen * refactor: better naming for autoswap config values * test: dont use memory db seems to cause some weird errors * feat: static liquid linking (#37) * fix: use correct subaccount in liquid `NewAddress` * feat: static liquid linking * cleanup * use cross plattform builder * refactor: remove --parallel 1 in favor of build arg * feat: prettify cli (#38) * feat: prettify listswaps * refactor: timestamps in grpc and prettify in cli * feat: highlight swap status * feat: prettify autostatus command * feat: allow yes/no to be y/n * feat: prettify liquid commands * fix: wait until liquid subaccounts are synced before fetching balances * feat: loading spinner * fix: proper errors * feat: use survey lib for prompts * cleanup * feat: prettify swap stream and use it for deposit and withdraw * refactor: take client instead of ctx as an argument in commands that are reused * fix: stop ticker in subaccount sync * fix: default to btc when parsing pairId * chore: deprecate old fields * fix: add newline on end of swap stream * fix: use actual fee estimate when paying normal swap internally * docs: clarify config (#41) * refactor: remove channel creation internally (#39) * refactor: remove channel creation * fix: connect to current lightning node instead of lnd * feat: set mempool endpoint based on network (#49) * fix: correct network check for setting boltz endpoint (#51) * feat: unconfirmed liquid balances (#46) * refactor: use native segwit accounts by default * feat: return unconfirmed balance and type in subaccount grpc * feat: parse liquid account type in cli * fix: wrong error message * refactor: add `Balance` message to `LiquidSubaccount` proto * fix: correct account types * feat: detect which node to use based on config (#57) * refactor: move autoswap execution logic into AutoSwapper struct (#64) * cleanup * fix: ping mempool ws to avoid disconnect (#60) * chore: better error messages for block listener * fix: ping mempool websocket regulary to avoid disconnect * fix: set node param in test AutoSwap test * feat: show help commands when required args are missing (#56) * feat: show help commands when required args are missing * refactor: use decorator * fix: no silly logs in test and better sqlite dsn * refactor: rename datadir to .boltz and support old .boltz-lnd aswell (#61) * fix: tests (#67) * feat: cli improvements (#65) * refactor: merge deposit and createswap commands * refactor: merge withdraw and createreverserswap commands * refactor: rename `Manual` category to `Swaps` * refactor: improve command descriptions * chore: update cli package * feat: cli example usage * feat: no-zero-conf flag on withdraw * feat: shell completions setup command * log * fix: error if trying to autosend with 0 amount eof * refactor: remove aliases * fix: newline * feat: properly parse pair in createswap rpc to allow using L-BTC as a pair * feat: --any-amount flag for createswap * feat: --liquid flag * fix: handle error * feat: global description * feat: liquid block listener (#71) * feat: implement `BlockListener` for liquid wallet through gdk notifications * feat: implement `GetBlockHeight` for `Wallet` interface * feat: `GetBlockHeight` for mempool * feat: make sure liquid wallet isnt used if not logged in * feat: add `Notification` enum * fix: check if lnd / cln are connected in `Ready` function * fix: only fetch lockup tx fee once its confirmed (#68) * fix: retry getting tx fee made by wallet * fix: make sure lock up tx is set on recovery aswell * feat: return custom Error if boltz returns error message in api * fix: ignore boltz api error when querying lockup transaction * fix: error message * feat: allow external refund address for normal swaps (#69) * feat: allow external refund address for normal swaps * refactor: make `RefundAddress` optional in grpc * fix: correct refunaddress comparison * feat: stop command (#70) * feat: stop command * feat: nursery shutdown * feat: add timeout to http shutdown * feat: include `auto_send` in grpc * test: refactor swap fee checking * feat: allow sending unconfirmed transactions in liquid wallet * fix: dont autosend in recovery test * fix: only close swapListener once * fix: lint * refactor: combine external and internal refund tests * feat: proper autoswap cli (#66) * feat: show whether autoswapper is running in cli * feat: autoswap rpc and cli * feat: show strategy name in status * feat: account for edge case where local balance threshhold is too low * feat: restart swapper when liquid wallet has been changed * feat: store and show errors happening on autoswapper startup * fix: correct swap type on absolute balance strategy with relative threshhold * refactor: remove autoswap daemon cli parameters * feat: only add dismissed reason once * refactor: threshhold -> threshold * improve command description Co-authored-by: Kilian <19181985+kilrau@users.noreply.github.com> * refactor: autoswap status * feat: do not crash on startup if configuration is invalid * feat: show config before enabling autoswap * feat: allow excluding dismissed recommendations * doc: basic autoswap description in cli * refactor: rename * fix: proper permissions for autoswap * chore: cleanup boltzrpc * chore: cleanup boltz rpc * feat: autoswap macaroon entity * cleanup * refactor: make `no_dismissed` field optional * fix(liquid): only remove mnemonic backup file instead of entire directory seems to cause issues with gdk --------- Co-authored-by: Kilian <19181985+kilrau@users.noreply.github.com> * fix(test): poll swap state on startup instead of trying to stream * refactor: remove unnecessary `done` chan from swap streams --------- Co-authored-by: michael1011 <me@michael1011.at> Co-authored-by: Kilian <19181985+kilrau@users.noreply.github.com>

Commit:79912fb
Author:jacksn

feat: initial lightning implementation

Commit:467b705
Author:michael1011
Committer:GitHub

feat: save errors to database (#36)

Commit:f81fd6f
Author:michael1011
Committer:michael1011

chore: add gRPC docs

Commit:7fb54ed
Author:michael1011

feat: add network to GetInfo response

Commit:be08f3f
Author:michael1011
Committer:michael1011

feat: custom paths for REST proxy