Commit graph

539 commits

Author SHA1 Message Date
benthecarman
08757d536f
Lnd 0.16.0 rpc (#5005)
* Lnd 0.16.0 rpc

* Add 2 second delay for after channels are open
2023-03-30 14:43:26 -05:00
Chris Stewart
dc0e3645d0
2023 03 24 is tip stale (#5024)
* WIP

* Fix test

* Add more tests for stale header

* remove uncessary comments
2023-03-26 08:20:27 -05:00
Chris Stewart
d53ed7d487
Bump clightning version to v23.02.2 (#5025)
* Bump version to v23.02.2

* Fix hash

* Reduce timeout on clightning startup, its absurdly long causing slow test iteration

* Try to specify the OS version clightning tests run on to ubuntu-20.04

* Rework downloadClightning to be conscious of the ubuntu OS version

* Empty commit to re-run CI

* Empty commit to re-run CI

* Empty commit to re-run CI
2023-03-26 06:26:46 -05:00
Chris Stewart
3db663a387
Remove v20 bitcoind support (#4992)
* Remove v20 bitcoind support

* Remove v20 bitcoind from downloadBitcoind task

* Remove duplicate test
2023-02-19 13:28:46 -06:00
Chris Stewart
af349d2179
Remove support for v19 of bitcoind (#4991)
* Remove support for v19 of bitcoind

* Remove downloading v19 bitcoind inside of bitcoind-rpc.sbt

* Clean up docs

* Move unit tests in BitcoindV19RpcClientTest into other test files so we don't remove them, these rpcs are supported in future versions of bitcoind
2023-02-16 10:27:56 -06:00
Chris Stewart
b329c3670e
Add rpc for syncwithvalidationinterfacequeue, use it in NodeUnitTest.syncNeutrinoNode (#4983) 2023-02-11 14:32:59 -06:00
Chris Stewart
c7febc1ef0
Segregate P2PClientTest and P2PClientActorTest (#4974)
* Segregate P2PClientTest and P2PClientActorTest to make it easier to test the actor

* Fix cleanup code

* Clean up tables for postgres test case

* Fix BitcoinSAppConfigBitcoinFixtureStarted.afterAll()

* Empty commit

* Add forceNamedWallet parameter to for postgres test cases where we need multiple wallets. This prevents them from writing to the same postgres schema by making unique wallet names

* Cleanup:

* Empty commit
2023-02-06 15:07:18 -06:00
Chris Stewart
7e346e58fe
Refactor NodeTestUtil.awaitBestHash() to take a reference to bitcoind (#4973)
* Refactor NodeTestUtil.awaitBestHash() to take a reference to bitcoind

* Empty commit
2023-02-05 08:59:09 -06:00
Chris Stewart
1391c9497e
Segregate handling of exceptions in fixtures (#4971)
* Segregate handling of exceptions being thrown in test cases vs fixture setup code

* Add log message
2023-02-04 11:56:23 -06:00
Chris Stewart
76fc3cdc41
Refactor to not throw an exception is node is already syncing (#4970)
* Refactor to not throw an exception is node is already syncing

* Refactor method name
2023-02-03 12:57:19 -06:00
Chris Stewart
c5983730bb
2023 01 10 refactor peermanager (#4950)
* Make PeerManager.finder private

* Make PeerManager.supervisor private

* Write unit test to see if default peer is added to PeerManager

* Use withNeutrinoNodeUnstarted fixture

* Get unit tests passing

* Add println to try and debug CI

* Add more println

* more println

* Adjust nodeTest / parallelExecution = false

* Try to make error logged to figure out why failure is happening on CI

* Adjust log level to ERROR

* Add catch to try and log failure messages

* Add log for sending messages to peers

* Try to increase threadpool size to see if we are deadlocking

* Add more logs

* Add another log to detect where failure is

* Try using Actor.tell() with explicit ActorRef.noSender

* Very detailed logging

* Remove duplicate method from rebase

* Revert things

* Revert build.sbt

* Empty commit

* Bump timeout

* Empty commit to run CI

* Revert more files
2023-01-27 10:43:50 -06:00
Chris Stewart
9646994a99
Encapsulate PeerData.client (#4944) 2023-01-09 11:56:38 -06:00
Chris Stewart
3a8eff8feb
Some cleanups in the node project (#4941) 2023-01-07 07:33:57 -06:00
Chris Stewart
8f4ed4ac83
Refactor to use NodeTestUtil.awaitSync() (#4942) 2023-01-06 15:57:07 -06:00
Chris Stewart
746e23cf86
Refactor NodeTestUtil.awaitSync() to check compact filter headers / compact filters as well (#4934) 2022-12-29 10:36:37 -06:00
Chris Stewart
bd79ab0b73
2022 12 12 rm dmh params (#4925)
* WIP

* WIP2

* Get all DataMessageHandlerTest passing

* Get NeutrinoNodeTest passing

* Fix NeutrinoNodeWithUncachedBitcoindTest unit test

* Use chainApi to detect if we are in IBD

* Empty commit

* Revert logging levels
2022-12-28 16:37:28 -06:00
Chris Stewart
60998fe2d1
Reduce timeouts for syncing in NodeTestUtil (#4923) 2022-12-14 11:34:50 -06:00
benthecarman
f4244d7a0e
Add bitcoind v24 (#4902)
* Add bitcoind v24

* Make newest bitcoind version v23 for now
2022-11-28 08:43:49 -06:00
Chris Stewart
746635a551
Remove v18 from bitcoind-rpc (#4845)
* Remove v18 from bitcoind-rpc

* Remove v18 from bitcoind downloads

* WIP

* Fix submitheader RPC test with v23 bitcoind

* Have join psbt handle randomizing input & output ordering

* Cleanup

Co-authored-by: benthecarman <benthecarman@live.com>
2022-10-23 08:59:18 -05:00
benthecarman
1d1af1d52e
Add generate helper function for bitcoind (#4852) 2022-10-19 14:22:30 -05:00
benthecarman
2a30232181
Update lnd to v0.15.3-beta (#4850)
* Update lnd to v0.15.3-beta

* Add improvements made in #4687
2022-10-18 09:42:37 -05:00
Chris Stewart
2482eb939a
remove v17 bitcoind rpc (#4822)
* remove v17

* fix one error in sign a raw transaction

* try to get BlockchainRpcTest working

* fix MiningRpcTest

* WIP

* Get RawTransactionRpcTest working with v21 of bitcoind

* Fix MiningRpcTest

* Remove println

* Remove prune unit test as i cannot get it to pass on regtest
2022-10-16 12:47:43 -05:00
Chris Stewart
1a220a3937
2022 10 14 v19 testkit refactor (#4843)
* Break versioning on V19 of bitcoind rpc client in chain handler, use BitcoindRpcClient with V19BlockFilterRpc

* Make NodeTestWithCachedBitcoindNoP2pBlockFilters for test case with unsupported peers

* Fix docs

* Empty commit

* Empty commit

* Turn logging off again
2022-10-15 13:50:44 -05:00
Chris Stewart
2a617558dd
Fix type signature (#4830) 2022-10-15 07:14:34 -05:00
Chris Stewart
6683259652
Try upgrading clightning tests to newest bitcoind (#4829) 2022-10-15 07:13:42 -05:00
Chris Stewart
718053668d
2022 10 07 node test fixes (#4819)
* Add CachedBitcoindPairNewest

* Try to get ReConnectionTest to use test fixtures

* Empty commit to run CI
2022-10-07 09:49:25 -05:00
Chris Stewart
34e023e93f
2022 09 29 handle unordered sigs (#4807)
* Get unit tests passing for unordered nonces/signatures

* Get v0 oracle announcements working again on listannouncements

* Add unit test to make sure we can still validate signatures for attestments with nonces out of order
2022-09-29 11:43:50 -05:00
Chris Stewart
2c85f92b18
Fix bug in DualWalletTestCachedBitcoind where we didn't pass pgUrl (#4806)
* Fix bug in DualWalletTestCachedBitcoind where we didn't pass pgurl

* Revert logging LEVEL

* Move nodeTest/test too last as it is always failing preventing running of other test suites
2022-09-27 15:11:48 -05:00
Chris Stewart
9c506b639f
Add OrderedSchnorrSignatures, use it in OracleAttestment (#4803)
* Add OrderedSchnorrSignatures, use it in OracleAttestment, propagate it threw the codebase

* Small cleanups

* Add SortedVecFactory

* Fix test case with out of order nonces
2022-09-26 19:35:04 -05:00
Chris Stewart
a1fad6bcc4
Fix bug where postgres tests weren't running on dlcWalletTest/test (#4801)
* Fix bug where postgres tests weren't running on dlcWalletTest/test, fix postgres bugs

* Simplify and add a comment

* fix dbCommonsTest/test

* Cleanup
2022-09-24 14:51:14 -05:00
benthecarman
c0443a972d
Have EmbeddedPg check PG_ENABLED value (#4791) 2022-09-20 06:55:40 -05:00
benthecarman
6b479e8765
Add support for mac m1 lnd rpc (#4780)
* Add support for mac m1 lnd rpc

* Remove unneeded wait

* Add timeout to isStarted

* Consider RPC_ACTIVE not started

* Fix formatting
2022-09-14 15:35:28 -05:00
benthecarman
8bbfbc89d7
Add handling so test lnd clients can be reached by docker (#4729)
* Add handling to test lnd clients can be reached by docker

* Subsitute during config construction instead in call credentials
2022-09-08 08:07:39 -05:00
Chris Stewart
26595ab3ac
Fix bug where no exception was thrown if the acceptor did not have enough money (#4728)
* Fix bug where no exception was thrown if the acceptor did not have enough money

* Revert ContractInfo.max definition, fix bug in acceptDLCOffer

* Fix incorrect usages of ContractInfo.max

* Refactor ContractInfo.max -> ContractInfo.maxOfferorPayout

* Fix dlc.md
2022-09-07 19:08:27 -05:00
benthecarman
018a6e58ee
Add [regtest] section to fixture config (#4717) 2022-09-07 05:56:55 -05:00
Shreyansh
2c2e03b279
Header sync validation (#4456)
* add header sync validation

* fix docs, minor fixes

* Refactor to us InvalidBlockHeader ChainException, also refactor recovery to private helper method

* changes from comments

Co-authored-by: Chris Stewart <stewart.chris1234@gmail.com>
2022-08-22 17:05:41 -05:00
Chris Stewart
86463231d6
2022 08 18 Add configuration to only emit websocket events when IBD is done (#4627)
* Implement isinitialblockdownload flag in databaes

* Change to IsInitialBlockDownload to be less confusing

* Fix missing refactors, add ChainApi.isIBD()

* Implement logic for ChainApi.isIBD(), add configuration flag to toggle whether to emit websocket events while IBD is ongoing or not, add isinitialblockdownload field to getinfo endpoint

* Remove confusing ChainApi.isIBD() that didn't accurately account for the case where IBD wasn't set in the database

* Fix bug around emitting the websocket events

* Add some documentation
2022-08-22 10:09:00 -05:00
Chris Stewart
ea123139d9
Remove support for bitcoind v16 rpc client (#4634) 2022-08-21 08:17:16 -05:00
rorp
7b754138b8
Drop support for the experimental bitcoind version (#4586)
* Drop support for the experimental bitcoind version

* update docs
2022-08-08 14:48:33 -05:00
rorp
0404cffe26
Embedded Pg v1.0.1 (#4567)
* Embedded Pg v1.0.1

* fix GitHub action evironment

* fix Windows CI tests

* test db-commons in different environments

* remove dbCommontTest from Windows and Mac Github actions

* cleanup

* configurable postgres startup wait

* Empty commit to run CI

* Bump default timeout to 60

* Empty commit

Co-authored-by: Chris Stewart <stewart.chris1234@gmail.com>
2022-08-06 07:30:26 -05:00
rorp
9f89ba9b7a
loadwallet endpoint (#4417)
* `loadwallet` endpoint

* Scala 2.12 compatibility

* remove `getwalletname`

* fix unit tests

* fix DbManagementTest

* fix wallet tests

* fix DbManagementTest

* fix RejectedExecutionException

* fix postgres tests

* fix password override

* update `loadwallet`

* Move WalletHolder into wallet module

* Kill use of null in WalletHolder

* Kill use of null in WalletHolder

* Refactor to use WalletAppConfig.DEFAULT_WALLET_NAME

* update cli and unit tests

* cleanup

* Refactors to get compatible with master

* Fix compile

* Distinguish between loadWalletNeutrino & loadWalletBitcoind

* Fix initialized bug with WalletHolder in loadWallet methods

* Refactor loadWalletBitcoindBackend/loadNeutrinoWallet to have a common helper method

* Introduce DLCWalletLoaderApi, refactor codebase to use it

* Fix dumb initialization bug

* Fix test:compile

* Cleanup

* Get loadwallet mostly working with neutrino wallet

* Fix compile

* scalafmt

* Move loadwallet into app-commons

* Remove {DLCWallet,Wallet}.stop()

* Implement LoadWallet json parsing unit test

* Implement stopping of NodeStreamManager callbacks

* Fix rebase, integrate setRescanState into WalletRoutes

* Fix import

* Fix unit tests

* Implement listwallets in ConsoleCli

* Fix imports

* Cleanup

* scalafmt

Co-authored-by: Chris Stewart <stewart.chris1234@gmail.com>
2022-08-05 17:34:14 -05:00
benthecarman
f286b42c71
Retry lnd startup if it fails (#4573) 2022-08-04 16:43:09 -05:00
Shreyansh
c4d358061a
Add P2PClientSupervisor (#4509)
* add P2PClientSupervisor

* changes from comments: made P2PClient Future

* empty commit to see if mac failures are consistent on ci

* changes from comments

* changes from comments
2022-08-04 10:06:04 -05:00
Chris Stewart
a02e25b0ce
Refactor WalletRoutes to take DLCWalletLoaderApi as a paramete (#4565)
* Refactor WalletRoutes to take DLCWalletLoaderApi as a parameter, use the walletHolder inside of DLCWalletLoaderApi to fulfill requests

Fix rebase

Reduce parallelism in fetchFiltersFlow to 1 to reduce chance of hitting akka's max open requests

* Try fix loader test by catching RejectedExecutionException

* Add println to see if catching excpetion gets hit

* WIP: Try to fix recursive rescan

* Don't map on recursiveRescan so we don't block on it
2022-08-04 09:16:46 -05:00
rorp
78648f1e40
PostgreSQL friendly wallet names (#4571)
* Postgres friendly wallet names

* cleanup

* fix unit tests
2022-08-04 08:54:33 -05:00
Chris Stewart
8cb45e8208
Add unit tests for loader rescans (#4570)
* Add unit tests for loader rescans

* Move common methods into super class to be DRY

* Cleanup
2022-08-03 13:16:52 -05:00
Chris Stewart
191df09196
Move pollBitcoind out of startBitcoindBlockPolling (#4559)
* Move pollBitcoind out of startBitcoindBlockPolling

* Rework startBitcoindBlockPolling to not return Future[Cancellable]

* Stop NodeCallbacksStreamManager inside of NodeAppConfig.stop()

* Make BitcoindSyncState which encapsulates syncing with bitcoind and polling of mempool

* Fix bug where processingBitcoindBlocks cannot be top level val as that method may be used by different parts of the codebase

* Rename isPolling -> processingBitcoindBlocks

* Cleanup more resources in appServerTest/test

* Complete polling stream regardless if we synced blocks are not to complete the Future returned by pollBitcoind

* Empty commit to run CI
2022-08-02 06:40:17 -05:00
Shreyansh
8b646802b3
Fix postgres database not clearing after test (#4558)
* fix postgres database not clearing after test

* Empty commit to run CI

Co-authored-by: Chris Stewart <stewart.chris1234@gmail.com>
2022-08-01 07:49:55 -05:00
Chris Stewart
4b83286922
2022 07 25 wallet api refactor (#4545)
* Move MockChainQueryApi/NodeApi out of BaseWalletTest

* refactor BitcoinSServerMain.start() to return WalletHolder

* Add walletConfig to WalletWithBitcoind

* Move findOutputsBeingSpent into WalletApi

* Add WalletApi.clearAllAddresses(), HDWalletApi.{findAccount, getnewaddress(account)}

* Add HDWalletApi.fundRawTransaction() with an account as parameter

* Add WalletApi.findByScriptPubKey()

* Fix lots of tests in WalletIntegrationTest

* Create WalletApi.processOurTransaction()

* Get things compiling

* Fix tag integration test

* Refactor AnyDLCHDWalletApi -> DLCNeutrinoHDWalletApi

* Fix docs

* Get postgres tests passing locally

* Move initBalance map before calling callback in CallBackUtilTest

* Get compile working, rename to destroyOnlyWalletWithBitcoindCached

* Fix docs

* Fix missing destroyWalletAppConfig

* Fix scalafmt

* Fix bug in dlcWalletTest where wallet db thread pools weren't being shutdown after unit test completes

* Empty commit
2022-07-31 08:04:39 -05:00
Chris Stewart
2cd8c80f67
Refactor so we don't create multiple WalletAppConfig in testkit (#4548)
* Refactor so we don't create multiple WalletAppConfig in testkit

Fix buildBip39PasswordConfig

* Remove bip39Password argument from dlcWalletTest fixtures

* Fix allowExternalDLCAddresses config in tests

* Remove unnecessary overrides of BitcoinSWalletTest.getFreshConfig, fix docs

* Add DLCExecutionBackendTest.afterAll()

* Fix nodeTest bip39Password usage

* Fix bug where we weren't using correct config inside of getFreshConfig

* Fix DLCExecutionBitcoindBackendtest.afterAll()

* Fix RescanDLCTest
2022-07-30 17:20:18 -05:00