Commit graph

324 commits

Author SHA1 Message Date
Shreyansh
d8fc8e588f
Remove Spv code (#4356)
* change node tests to neutrino

* get node test working

* merge DataMessageHandlerTest and DataMessageHandlerNeutrinoNodeTest

* delete unused files

* remove commented out spv parts

* formatting

* delete spv node

* remove merkle callback for neutrino node

* remove spv node wallet callbacks

* formatting

* remove SpvWalletApi

* replace SpvTestConfig with NeutrinoTestConfig

* more replace SpvTestConfig with NeutrinoTestConfig

* minor fix

* fix tests
2022-05-30 07:57:31 -05:00
Chris Stewart
bf88d0d93f
Remove exception when we have zero relevant outputs (#4352) 2022-05-26 12:39:09 -05:00
rorp
f680ab8691
Persist whether wallet is rescanning in the database (#4326)
* Persist whether wallet is rescanning in the database

* fix cli

* fix build

* fix unit tests

* fix postgres tests

* remove wallet_state table

* fix rescan bug

* cleanup

* revert Cancellable's

* Cleanup

Co-authored-by: Chris Stewart <stewart.chris1234@gmail.com>
2022-05-23 19:03:02 -05:00
rorp
059f2f5fac
Fix ERROR: relation "txo_spending_info" does not exist (#4323)
* Fix `ERROR: relation "txo_spending_info" does not exist`

* Escape schema name

Co-authored-by: Chris Stewart <stewart.chris1234@gmail.com>
2022-05-17 12:02:29 -05:00
Chris Stewart
341c712563
Validate bitcoin-s.wallet.walletName config option (#4336) 2022-05-17 10:29:17 -05:00
Chris Stewart
fac0713405
Reduce rescan threadpool size to just be number of available processors (#4306) 2022-05-01 07:05:43 -05:00
rorp
0c6c9180ed
Handle duplicate UTXOs (#4296)
* Handle duplicate UTXOs

* Add logging

* Add log for exception in handleDuplicateSpendingInfoDb

Co-authored-by: Chris Stewart <stewart.chris1234@gmail.com>
2022-04-29 08:21:41 -05:00
Chris Stewart
486fa36d2c
Make _findOutputsBeingSpentQuery take at most 1,000 outpoints (#4300) 2022-04-29 07:20:23 -05:00
Chris Stewart
79b4f096ec
Improve logging around signDLC (#4299)
* Improve logging around signDLC

* Improve logging so we can see what specific transaction fails when processing a block
2022-04-28 17:09:27 -05:00
Chris Stewart
6db1f26625
2022 03 22 getrelevantoutputs upfront (#4219)
* WIP

Try and debug

WIP

Fix bug for incomingAmount

Clean up logs

more cleanups on logs

Remove another uncessary log

Don't process tx if we don't have a relevant received output for that specific tx

* Group hashes in batches of 1,000 before querying the db
2022-04-26 11:12:44 -05:00
rorp
3831b35817
Prevent the wallet from creating duplicate UTXOs (#4290)
* Prevent the wallet from creating duplicate UTXOs

* respond to the PR comments

* cleanup
2022-04-25 11:56:37 -05:00
Chris Stewart
27cb4a3c20
Add height to log message when processing block (#4251) 2022-04-10 11:04:17 -05:00
Chris Stewart
7c1c572081
Rescan failure logging (#4250)
* Rescan failure

* Set rescanning to false inFailure case
2022-04-10 10:39:11 -05:00
Chris Stewart
24125eaca3
Fix case where we broadcast tx with a tag, and then also add the tag when we receive the tx in a block (#4239) 2022-04-03 13:40:19 -05:00
Chris Stewart
8081772b57
Allow acceptor to upsert same outpoint multiple times for different offers (#4230)
* Allow acceptor to upsert same outpoint multiple times for different offers

* Remove extra log

* Revert DLCOffer invariant

* Fix OP_RETURN tests
2022-03-31 07:47:10 -05:00
Chris Stewart
33171fd069
Use the set of addresses in the wallet when rescanning rather than generating more (#4211) 2022-03-26 06:22:09 -05:00
Chris Stewart
413dbcacbb
Rename clearUtxosAndAddreses(account) -> clearUtxos(account) (#4206) 2022-03-22 13:08:03 -05:00
Chris Stewart
5475a994cf
Bump default address gap limit to 100, add log indicating we didn't find funds in the last addressBatchSize addresses (#4201) 2022-03-19 19:02:32 -05:00
Chris Stewart
d5807daeab
Remove SpendingInfoDb.txid parameter (#4199) 2022-03-19 15:21:36 -05:00
Chris Stewart
a3dba47970
Refactor pending receives/spent states into one spot (#4026) 2022-03-19 13:25:26 -05:00
Chris Stewart
46229d712c
Rename clearAllUtxosAndAddresses() -> clearAllUtxos() (#4193)
* Rename clearAllUtxosAndAddresses() -> clearAllUtxos()

* Fix unit test

* Fix docs
2022-03-16 08:53:08 -05:00
Chris Stewart
ef41cce32d
Log entire address path when the address is generated (#4191) 2022-03-15 08:04:40 -05:00
Chris Stewart
8214c0b931
Add the account to the address generation log (#4190) 2022-03-14 19:33:40 -05:00
Chris Stewart
c882372c45
Improve process compact filter logs (#4189) 2022-03-14 18:09:36 -05:00
Chris Stewart
668ab21ca1
2022 03 09 label refactor (#4175)
* Rename existing getaddresslabels -> getaddresslabel

* Fix missing rename of GetAddressLabel

* Modify pk constraint on wallet_address_tags to be tag_name rather than tag_type

* Add dropaddresslabel for a specific address

* Fix migrations

* Add unit tests and fix existing tests

* Add docs
2022-03-09 15:36:44 -06:00
Chris Stewart
1072078d7c
Improve tx processing log to show when we have a relevant input/output to the wallet (#4172) 2022-03-08 11:05:32 -06:00
Chris Stewart
d63e845de4
Only update wallet's sync height if we don't have a match in processCompactFilter() (#4169) 2022-03-07 10:36:41 -06:00
Chris Stewart
c3300aec52
2022 03 03 hdpath fromstring factory exn (#4159)
* Add explicit excpetion when we are unaware of the purpose in a hd path

* Remove test

* Cleanup
2022-03-04 06:05:49 -06:00
Chris Stewart
f1bd0ea3a5
Add log message for the case where we match a script but do not have a matching address in our database (#4156) 2022-03-03 11:15:35 -06:00
Chris Stewart
1bab51c1c6
Adjust appconfig logging to INFO (#4139)
* Adjust appconfig logging to INFO

* Add txids to log
2022-02-28 14:58:31 -06:00
Chris Stewart
7a5c2971dd
Refactor receive flow to use the same utxo state transitions (#4134)
* Refactor receive flow to use the same utxo state transitions as the rest of the wallet

Get tests passing again with refactored utxos

Remove unecessary wallet methods

Fix test cases

* Remove fixture on UTXOHandlingTest

* Fix bug where funding happens in parallel in fixture and can lead to blockchain reorgs
2022-02-26 19:08:50 -06:00
Chris Stewart
c069b01e53
2022 02 24 rm prune addresses after rescan (#4130)
* Fix bug where we prune unused addreses on rescan. This doesn't let us discover funds for addresses sent that were not paid to until after the rescan was completed

* Add test case

* Fix neutrino node test case

* Some cleanup
2022-02-26 07:43:23 -06:00
Chris Stewart
3ba95700b2
Add RescanState, make sure we don't start concurrent rescans (#4131) 2022-02-25 05:23:51 -06:00
Chris Stewart
940c66807e
Add log for when a new address is generated (#4127)
* Add log for when a new address is generated

* Add isChange to the log
2022-02-23 15:10:30 -06:00
Chris Stewart
b46574c0c4
2022 02 18 sync since creationtime pt2 (#4109)
* Get things compiling and tests passing

* Fix bug where we weren't using filter height correctly

* Fix docs

* Move creationTime into KeyManagerAppConfig

* Fix nodeTest/test test fixtures
2022-02-22 08:00:14 -06:00
Chris Stewart
e6bf7bd67e
Segregate updating received utxos and spent utxos (#4093)
* Fix UTXOHandlingTest cases

* Reduce log level

* Add comments, fix bugs so that we can transition from TxoState.ConfirmedReceived -> TxoState.PendingConfirmationsReceived

* Fix BroadcastSpent/BroadcastReceive bugs

* Add scaladoc to updateUtxoStates()

* Break receive and spent tests into two test cases

* Remove unneeded database write

* Fix rebase
2022-02-20 15:37:52 -06:00
Chris Stewart
528e7c8f0e
Remove TxoState.DoesNotExist (#4108) 2022-02-18 16:31:03 -06:00
rorp
5777ec1c31
Add an ability to set custom payout and change addresses (#4101)
* Add an ability to set custom payout and change addresses

* config changes

* formatting

* respond to the comments
2022-02-18 09:29:00 -06:00
Chris Stewart
dc47c070a2
Fix SpendingInfoDAO.findOutputsReceived() bug (#4090) 2022-02-14 10:11:23 -06:00
rorp
4d85b7a3d7
Support for big SPKs (#4084)
* Support for big SPKs

* Support for big SPKs

* Bump number of migrations

* Fix other test case

* cleanup

* cleanup

* fix psql migrations

Co-authored-by: Chris Stewart <stewart.chris1234@gmail.com>
2022-02-14 07:22:34 -06:00
Chris Stewart
eeabe5cd77
2022 02 11 clearutxoandaddresses for account transactional (#4077)
* Make clearUtxosAndAddresses(account) transactional

* Add deleting address tags
2022-02-11 12:03:59 -06:00
Chris Stewart
35dccd88d6
Add new section to README for running bitcoin-s, add link to the web frontend (#4069) 2022-02-10 06:16:41 -06:00
rorp
48189d5c1d
Make CRUD.run and CRUD.runVec transactional (#4059)
* Make `CRUD.run` and `CRUD.runVec` transactional

* remove explicit `transactionally` calls
2022-02-07 17:42:48 -06:00
benthecarman
142612f034
Make newConfigOfType use Vector[Config] (#4039) 2022-02-04 06:14:16 -06:00
Chris Stewart
883b01006d
Fetch blockHeight earlier in TransactionProcessing.processBlock() (#4025) 2022-01-30 16:41:29 -06:00
Chris Stewart
8d04ca1cd3
2022 01 30 optimize processblock (#4024)
* Reduce allocations in parameters to processTransactionImpl parameters for Some

* Move cachedReceivedOptF map out of the hot path on processBlockCachedUtxos

* Move spentSpendingInfoDbs out of the hot path on processBlockCachedUtxos

* Cache all inputs in block earlier to avoid looping over them over and over

* Call correctly processTransactionImpl on accumulated wallet

* Fix compile
2022-01-30 15:53:55 -06:00
Chris Stewart
cf16d93648
Fix bug where we didn't set spendingTxId when transitioning from Reserved -> PendingConfirmationsSpent (#3909)
* Fix bug where we didn't set spendingTxId when transitioning from Reserved -> PendingConfirmationsSpent

* Try to add unit test

* WIP

* WIP2

* Get reserved state working

* Fix assertion, cleanup logs

* Cleanup test case
2022-01-28 06:50:24 -06:00
Chris Stewart
98c5d816ac
2022 01 25 issue 4014 (#4015)
* Refactor testkit tests to use same nodeCallbacks that BitcoinSServerMain uses for neutrino

* Add test case

* Add logs for callbacks

* Cleanup

* Add test case for when funds are spent when we are offline

* Turn off logging again

* Cleanup more logs and comments
2022-01-26 13:16:15 -06:00
Chris Stewart
e802254a20
2022 01 24 rm appconfig varargs (#4011)
* Get things compiling

* Get tests passing

* Fix docs
2022-01-25 07:25:05 -06:00
benthecarman
42d6955f79
Filter dust from coin selection (#3866) 2022-01-21 13:15:12 -06:00