* Make it so table doesn't reorder on single update
* Default ordering by status
* Sort table on every update
* Secondary sort by evenId
* Sort by dlcId too
* Switch to contract Id
* Update instead of delete and replace
* move to function, use for updateDLCs
* WIP
* Add profit and loss and rate of return for entire wallet
* Fix rebase
* Address part 1 of code review from Ben
* Add unit test for wallet accounting
* Don't fetch all DLC data when canceling DLC
* Allow unmarkUTXOsAsReserved when canceling DLC
* Add ability to cancel a Signed DLC
* add gui conf window
* Remove tags usage, as our current tags are invalid for mac
* First try trying to get jpackage to work with bitcoin-s bundle
* Simplify bundle name for now
* Try to fix linux formatting
* Empty commit to re-run ci
* Empty commit to re-run ci 2
* Fix references to krystal bull artifacts
* Add icon to deb file
* Add icns file for bitcoin-s for mac
* Use same icon as mac os x
* Try to get tagging logic correct
* Add fetch depth 0
* Try bumping java ubuntu version to 1.16
* Try using openjdk@1.16.0-1
* Remove jpackage feature branch to test
* Empty commit to re-run ci 2
* Remove unused ico file
* Pulled down dlc and dlcTest projects into core and dlcTest
Added dlcTest to CI runs and fixed compilation issues
* Fixed docs
* loosened fee rate bound assertions to only sanity test
* Refactor BitcoinSRunner to use StartStop[Async]. This makes it easier to have a uniform interface to write for destruction code in BitcoinSRunnerTest
* Fix other ServerRunTest to cleanup after itself
* Add new app/scripts project which is meant to store useful bitcoin-s scripts
* Add ScanBitcoind with an example of counting segwit txs between a range
* Fix bug of creating a new actor system everytime BitcoindRpcClient.apply(instance) is called
* Add BitcoindRpcClient.fromVersionNoSystem()
* Take ben's suggestions
* Fix compile
* Rework P2SHScriptSignature.isStandardNonP2SH() to account for nesting p2sh script inside of it
* fix compile on java8
* Enable app packaging in scripts project
* Initial implementation of wallet sync with bitcoind with akka streams
* Make BitcoindRpcBackendUtil.startBitcoindBlockPolling use akka streams
* rework BitcoindRpcBackendUtil.syncWalletToBitcoind() to use akka streams
* Add invariant to spendingInfoDb to that requires if the spendinginfodb is in a TxoState.spentStates, the SpendingInfoDb.spendingTxIdOpt is defined
* Remove unused SpendingInfoDAO.updateTxoState()
* Remove comment
* Make TxoState and explicit parameter for test methods. Most test methods depend on a sample utxo state, so make the caller of the method specify what state they want the txo to be in
* Fix github actions config
* Fix RoutesSpec test
* Wallet Rebroadcast Logic
* Use wallet scheduler for address queue rather than it's own thread
Co-authored-by: Chris Stewart <stewart.chris1234@gmail.com>
* Bump default
Co-authored-by: Chris Stewart <stewart.chris1234@gmail.com>
* Move blockhash to tx table from spending info table
* Add test, fix spending tx id col name
* Scaladocs, add test
* Add more unit test
* Make id not comparable in process tx test
* Fix tests
* attempt to fix
* Add mempool comment to scaladoc
* Deparallelize process inputs & outputs
* Refactor starting second bitcoind in MempoolRpcTest, remove Thread.sleep
* Add AkkaUtil.nonBlockingSleep(), replace usages of Thread.sleep() with it where possible
* Remove more Thread.sleep()
* Try bumping threadpool for scheduler
* Reduce scheduler threadpool size to 2
* Push to github to force re-run of CI
* Add signed outcome to get event rpc, fix other small api bugs
* Create separate type for decomp DLCAttestationType
* Add DLCOutcomeType to Oracle Event
* Calculate dlcOutcome, add invariant
* Fix test
* Rework docker configuration to pass in a custom configuration file
* Add default user of bitcoin-s for docker images
* Add runtime docker configuration to website
* App Server docker configuration w/ refactors
Get app server configuration working with docker
Add section for building the appServer for docker
* Remove compile commands
* Get basic docker image working with oracle server
* Get docker file working with custom configuration
* Switch base image to generic openjdk
* Add docker documentation
* Give oracle server its own port
* Don't have default cli command port
* Default port in config
* Remove unused server conf
* Oracle own config option
* Give connection pool example config
* Get hikari logging working on postgres
* fix 2.12.x
* Bump metrics core to a supported version
* Add hikari-logging and hikari-logging-interval configuration options to turn off/on hikari and schedule how often logs appear
* Turn off hikari logging in the db-commons/reference.conf and add it to appserver/reference.conf
* default the logging to off in scala code
* Make sure connection pool is enabled in db-commons, add default database configuration to website
* Address code review, fix things that didn't need to be changed
* Add walletinfo rpc
* Move rootXpub to key manager obj
* Make configuration keys for getinfo the same as the ones in our configuration files
* Cleanup
Co-authored-by: Chris Stewart <stewart.chris1234@gmail.com>
* Implement oracleAttestmentV0TLV, save outcome to db
* Update with tlv changes
* Update tlv to not have 2 list sizes
* small change
* Update OracleEvent.verifyAttestations
* Use correct pub key
* Verify correct outcomes
* Bitcoind v0.21.0rc3 support
* Use v0.21.0 instead of Experimental in node tests
* Bump to rc5
* Use official release
* Fix rebase issues
* Remove DoNotDiscover tag
* Fix count for NeutrinoNodeTest
* Add new sbt-native-image plugin that helps generate a correct native image for the cli
* Initialize everything at build time to try and get cli working again
* Get server working with native image build
* Add '--no-fallback' which will report failures if we fail to build a standalone image
* Revert server project, file issue 2506 to indicate problems with server build
* Add native cli publishing using github actions
* Preprend 'app/' to paths
* Enable http,https protocols on cli
* Remove old graalvm plugin settings related to sbt native packager
* WIP: Get something working that isn't network specific
Start putting things back in place
Add comment
Revert logback file
Remove BitcoinSLogger object
* fix unit test
* Network specific log location
Co-authored-by: benthecarman <benthecarman@live.com>
* Fix bug where test compiler opts were not enabled
* Fix all exsting compiler warnings in test project
* Add scalaCollectionCompat dependency to bitcoindRpcTest so we can use @nowarn annotation on scala 2.12
* Moved dlc data structures from commons to core
* Renamed DLC payout curve classes
* Split OutcomeValuePoint up into an ADT
* Added utility for computing Schnorr multiple-signature points
* Replaced tuples in RoundingIntervals with types
* Replaced tuples in DLCPayoutCurve with Indexed
* Fixed a compile bug
* Pulled down work from adaptor-dlc onto master
* Reverted some accidental deletions
* Removed unused import
* Added scaladocs
* Responded to Ben's review
* Added some scaladocs and invariants
* Responded to chris' review
* Responded to more review
* Added some comments
* Introduce ChainHandlerCached which behaves like the old ChainHandler. Now Chainhandler.getBestBlockHeader() will read headers from the database
* Remove ChainHandler.blockchains field, now it's only available in ChainHandlerCached
* De-futurify ChainHandler.fromDatabase()
* Adjust logging
* Patch test case
* Use BlockHeaderDAO.chainTips when getting best header rather thean BlockHeaderDAO.getBlockchains(). Implement a helper method ChainHandler.toChainHandlerCached()
* Fix chain.md,wallet.md
* Make ChainHandler.getBestBlockHeader() consider time of header if chainwork is the same. Make test cases less strict on what header is the best header when both chainwork and time are the same on the eader
* Only execute callbacks on headers that are going to be created in the database, not all headers passed into ChainHandler.processHeadersWithChains()
* Turn up log level again
* Small optimizations, check if we have seen a header before before processing it in ChainHandler.processHeadersWithChains(). Fix FilterSyncMarker.toString(). Use ChainHandlerCached in Node
* Remove ChainHandlerCached in appServer, re-add it in Node.scala
* Update Oracle to use new TLVs
* Rename things to use new names, scaladoc, small clean ups
* Add descomposition tests, docs, sign numbers outside of range
* Make aesPassword option for wallet config
* Add to docs
* Make AesPassword optional
* Small touchups
* Fix for oracle server
* Fix docs
* Increase code coverage
* Cleanup a bunch of imports in test
* Use @nowarn annotation for testing things that are deprecated
* Fix base58 test
* Cleanup crypto-test
* Use scala collection compat dependency to get access to the @nowarn annotation on scala 2.12.x
* Rework more scala 2.13.x compile failures in chain-test and key-manager-test
* Optimize imports for entire project
* Fix nits