* Add `sync` JSON field to the `getinfo` endpoint output
* improve test coverage
* update docs
* rename sync flag
* WebSocket notifications
* fix unit tests
* fix unit tests
* increase test timout
* Get simple serialization symmetry working for taproot keypath
* Implement generators for TaprootScriptPath, check serialization symmetry
* Make sure bytes are symmetrical too
* Add check in TaprootScriptPath.hasAnnex() to make sure therer is more than one stack element
* Cleanup
* Address ben's review
* Fix pattern match
* add support to find and switch peers
* fix compile on 2.12
* allow empty config peers in regtest
* fix test
* minor fixes
changes timeouts, fix issue with ipv6 dns seeds, initDisconnect when disconnected bug, dbPeers order fix
* fix: not removing peers on initialization timeout
* fix: query again when previous failed
* fix: wrong condition for deferred peers
* restore log levels
* clean up
* add PeerStack to allow trying peers based on priority values
* fix migrations
* changes from comments
* use StartStopAsync
* changes from comments
* fix switch if peer down test
* changes from comments
* Add platform specific name to bitcion-s artificats so they don't overwrite each other on releases
* Fix so artifact name is changed, but startup script name is not changed
* DLC <-> contact mapping
* updated docs
* populate dlc/contact mapping automatically
* typo
* respond to the PR comments
* rename `contact` to `peer`
* fix unit tests
* create a contact when an incoming offers gets created
* drop dlc_contact_mapping table
* fix build
* update the docs
* Revert "update the docs"
This reverts commit 2386adadcd.
* revert dlc-contact-* endpoints
t Please enter the commit message for your changes. Lines starting
* Try to debug why shutdown isn't working on windows
* Add 2022-05-18-shutdown-bug branch so it triggers release.yml
* Cleanup OracleServerMain shutdown
* Make cleaner shutdown messages
* Remove feature branch
Co-authored-by: Chris Stewart <stewart.chris1234@gmail.com>
* Add OS specific zips
* Try to fix windows build
* Try to fix windows build shell
* Try to see if double zip works w/o mac verified developer error
* Add bash script to handle making file executable and make it non quarantine on mac
* Do chmod regardless of os
* Remove chmod as that cannot work by definition, revert to only packaging stage/ directory
* Make java exectuable on every OS
* refactor CommonSettings.jlinkIgnore
* Try to build appServer
* Make cli use jlink
* Make bash scripts more generic on mac
* Remove feature branch on release.yml
* Fix startup scripts
* Handle duplicate UTXOs
* Add logging
* Add log for exception in handleDuplicateSpendingInfoDb
Co-authored-by: Chris Stewart <stewart.chris1234@gmail.com>
* Added createDLCOffer endpoint which doesn't take a locktime and uses current block height instead
* Made cetLocktime an option instead of an argument to the CLI, updated docs
* fix compile
Co-authored-by: Chris Stewart <stewart.chris1234@gmail.com>
* Contact list
* fix unit tests
* Add contact rpc tests
* Add documentation
* Refactor ConsoleCli into app-commons
* Add commands to bitcoin-s-cli
* Fix timeout for rescan
Co-authored-by: Chris Stewart <stewart.chris1234@gmail.com>
* Add SignDbState to fix rescan exception
* Cleanup
* Add test, doesn't pass
* Add unit tests, add invariants
* Add unit test to appServerTest
* Fix handling so an exception is not thrown internally when a contractId does not exist
* DLCMessage.totalCollateral -> DLCMessage.collateral
* Fix bad names of {DLCOfferTLV,DLCAcceptTLV}.totalCollateralSatoshis, its not the total collateral, rather the collateral being contributed by the offerer and acceptor
* Fix rebase
* Fix appServerTest
* Fix docs
* 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
* Try fixing a stic wix productId so the windows OS can understand installations of bitcoin-s are the same product
* Add this branch to release.yml
* Use 1.9.0 windows product id
* Add EnvUtil.parseCommitsSinceLastTag, make last number on windows version be the number of commits since last tag
* Add ability to parse the version from a string
* use upgradeId rather than productId
* Remove feature branch from release.yml
* Remove test
* 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
* 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
* Remove download binary scripts from CI, try to make binary downloads contingent on tests being run in a project
* Cleanup docs to remove unecessary downloadBitcoind
* Get refactor working where we decouple CETSignatures and the partial refund signature
* Add DLCAcceptWithCetSigs() for the case where we have a refund sig, but no cet signatures
* Fix bugs
* Fix sighash parsing bugs
* RPC password authentication
* fix compiler error
* add more unit tests
* change default behavior
* Cleanup and add unit test for sad path for rpc authentication
Co-authored-by: Chris Stewart <stewart.chris1234@gmail.com>
* Implement recovery for when we cannot receive a fee rate from a FeeRateApi. Now we return -1 sats/vbyte if we cannot get the fee rate from a fee provider rather than throwing an internal server error
* Fix compile
* Add port 19999 to bitcoin-s-server exposed ports, Add port 19999 to documentation
* Get docker containers working correctly with websockets
Co-authored-by: Ivan <erickson.ivan@gmail.com>
* WIP
* Remove blocking on Future that wont complete until the websocket is disconnected
* Add Sink.ignore to drain webscoket queue if no one is connected
* Implemented general payout curves including hyperbola curve piece support
WIP
Get GUI compiling
* WIP
* Get backward compatible serialization working, everything is equivalent except for in memory Scala data structures
* Get numeric contracts backward compatible
* Get rest of codebase compiling
* Add test case for old contract info
* Add sanity test vector for old enum contract descriptors
* Fix docs
* Remove comment
* Scalafmt
* Add DLCSerializationVersion, replace isOldSerialization
* Remove ValueIterator.takeNoSkip()
* Fix docs
Co-authored-by: nkohen <nadavk25@gmail.com>
* WIP
* Get appServerTest passing with chain notifications
* Reorder where SourceQueue gets initialized so that we can use it to construct the wallet's callbacks
* DRY
* Fix missing callback for neutrino chaincallbacks
* Bump timeout
* Bump timeout
* When wallet is empty call doSync() with the last blockheader bitcoind has seen
* Revert skipping compact filters on IBD for bitcoind
* Revert logging
* Implement DLC wallet callbacks
Add callbacks and tests for Claimed/RemoteClaimed
Add unit test for confirmed state
Propogate DLC callbacks over the websocket
* move buildDLCWalletCallbacks to WebsocketUtil
* WIP
* Get basic websocket working (sort of)
* Push websocket fixes
* WIP: Implementing SpendingInfoDb json serializer
* Implement onreserved callbacks, add json serializers for SpendingInfoDb
* Get first unit test working for websockets when a address is generated
* Rework WalletNotification to have case classes, get unit test working for receiving addresses over the websocket
* WIP
* Add websocket callback for when a wallet processes a block
* Cleanup
* basic updates to unit test
* Fix compile
* Fix submodule
* Fix compile
* Get both unit tests passing when run by themselves
* Fix so both test cases can be run
* Implement unit tests for blockpressed and reservedutxos websockets
* Fix RoutesSpec get a block header test
* Implement configuration for wsbind and wsport via bitcoin-s.conf
* Add some nonblocking sleeps on all WebsocketTests
* Add documentation
* Properly close the server with .terminate() rather than .unbind()
* Add BitcoinSServerMainBitcoindFixture.afterAll()
* Add println
* Add more println
* Try to downgrade bitcoind version
* Fix datadir bug
* Cleanup callbacks so they don't have nested futures
* Fix SpendingInfoDb.apply() pattern match
* Add spendingInfoDb json serializer test, does not pass
* Fix SpendingInfoDb json serializer
* Make small refactors
* Fix compile
* Add maxBufferSize, change overflow strategy to OverflowStrategy.dropHead
* Address Nadav's code review
* Address ben's code review
* Add some logs to indicate how long startup time is
* Parallelize submodule configuration startup between modules dependent on tor and modules not dependent on tor
* Start tor dependent modules in parallel too
* Make Wallet.initialize() use DBIOAction
* Scalafmt
* Make Wallet.initialize() use .transasctionally
* Add block 0000000000000000000593310d3b0cdc082af49f38b8a1611239072aef8433a8 test vector
* Add test cases
* wip
* Fix bug where we were classifying taproot txs as P2WPKHWitnessV0
* revert logging level
* Some cleanup
* Add logback.xml for scripts, remove scheduler in scan bitcoind
* Fix imports
* Take ben's suggestion and add check to CryptoUtil.isValidPubKey
* Start pulling over accept serializers from dlc message spec PR
* Get sign tlv json serialization working
* Implement decodeaccept,decodesign in CoreRoutes
* Move messages to DLCTestUtil, add documentation
* Implemented Disjoint Union DLC related data structures with dlcTest passing
Broke DLCClientTest up into multiple test files
Optimized DLC execution unit tests by checking all outcomes on a single setup DLC
Refactored DLCTest to allow for Disjoint Union DLC construction and validation, added tests
Responded to review
Fixed after cherry-pick
Fixed docs
* Fixed things after rebase
* Rebase
* Fix json serializer
* Finish fixing compile
* Start trying to make APIs better for multi oracle contract infos
* Clean things up in the GUI, try to make failures on disjoint union contracts as explicit as possible
* Use less numDigits as optimization for non secp CI test cases
* Fix compile
* Refactor BroadcastDLCDialog
* Fix test case optimization
* Clean up comment
Co-authored-by: nkohen <nadavk25@gmail.com>
* Implement payout function reader and tlv points reader/writer
* Add support for numeric contract infos in the createcontractinfo rpc
* Adjust logging level
* Remove unused endpoint
* Add new format to site
* WIP createcontractinfo
* Fix ordering issue
* Use existing contract descriptor serializer, begin fixing test case
* Get DLCRoutesSpec createcontrafctinfo passing again
* Finish implementing createcontractinfo
* Add doc
* Fix native image build by adding hard coded static private key for OracleAnnouncementV0TLV.dummy
* Update ConsoleCli endpoints, update docs
* Rename methods in DLCOracleApi from signAnnouncement -> createAttestation
* Fix dates on deprecation
* WIP, createattestation rpc not working for some reason
* Fix misspelling
* Rename endpoint from createattestation -> signenum
* Fix docs
* Fix use of deprecated method after rebase
* Implement delete attestations
* Add DLCOracleApi.deleteAnnouncements()
* Make sure we don't have attestations before deleting announcements
* Add endpoint in OracleRoutes for delete announcement
* Add ConsoleCli implementation
* deleteattestations -> deleteattestation
* Document endpoints and add warnings
* Wire up ConsoleCli with deleteannouncement/deleteattestation
* Fix use of deprecated methods
* Deprecate things with the Event suffix in DLCOracleApi
* Rename classes used in OracleRoutes
* Rename endpoints
* Update docs
* listevents -> listannouncements
* Make it so bitcoind backend exceptions don't get swallowed when doing IBD against bitcoind
* Move zmq polling into syncWalletWithBitcoindAndStartPolling() method
* Run appServerTest on both windows and mac
* Add just mac test name
* Add downloadBitcoind task to windows matrix
* Make exception easier to be hit
* Remove deleting of directory as that shouldn't be needed
* Add support for not running bitcoind in test suites as a daemon on windows
* Fix bug where i forgot to re-add daemon config
* Encapsulate initialization of DLCOracle.start() method
* Use internal WalletAppConfig.kmConf rather than passing in custom key manager parameters
* Add KeyManagerAppConfig.defaultAccountType
* Get all tests passing besides TrezorAddressTest
* Get TrezorAddressTest passing with provided entropy
* Add unit test to make sure we can always derive the seed
* Get docs compiling
* Fix dlcWalletTest test cases
* Add more test cases to keymanager
* Add the new configuration to the example configuration
* Add more test cases
* Remove coverage on 2.12 as it isn't accurate
* Rework DLCOracleAppConfig.start() to call kmConf.start() so the oracle can use entropy provided via bitcoin-s.conf
* Sort DLC table by last updated
* Add LastUpdatedDb
* Make visible
* Fix compile
* Add time, fix sorting
* Switch to local time
* fix compile
* Fix test
* Fix postgres migration
* Specify zoneId