* Get refactor working where we decouple CETSignatures and the partial refund signature
* WIP
* Implement migration to specify serialization_version on global_dlc_data table
* Fix migrations test
* WIP
* implement contractid computation
* Get migration working for wallet on testnet
* Add check to make sure we only try to migrate old wallets
* Refactor DLCDataManagement.getOfferAndAcceptWithoutSigs to not use DLCTxBuilder
* WIP
* Bubble up Option[] into DLCWallet, trivially assert on it and then use .get. We will have to do the refactor of DLCWallet sometime in the future
* Change global_dlc_data serializationVersion at database level to not have an Option
* Add DLCDbState, propogate it through the codebase
* Remove log
* Remove invariant for making sure all DLCs are defined on migraiton, add log for the case of issue 4001
* Add filter on ALPHA serialization DLCs. We dont need to migrate DLCs that are using the beta serialization
* Rebase onto 4004
* Refactor to use the refund signature in the accept/sign message
* Add output index to the return of DLCTxBuilder.buildFundingTransaction()
* Fix compile
* Remove log
* 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
* Add invariant to CETSignaturesTLV so we don't have empty adaptor sigs
* Add invariant to make sure FundingSignaturesTLV witnesses are not empty
* Add invariant that contractOraclePairs aren't empty
* Add fundingInputs and ordered announcement invariants
* fix docs
* Move invaraints from TLVs to in memory data structures
* WIP
* WIP2
* Modify return type of DLCDataManagement.executorAndSetupFromDb() to return an Option. The None case represents when we have pruned CET signatures from the database
* Add some comments, clean up a bit
* more cleanup
* Implement DLC wallet callbacks
Add callbacks and tests for Claimed/RemoteClaimed
Add unit test for confirmed state
* Add some docs
* Address ben's code review
* Fix scalafmt
* Add CRUDAction.{updateAllAction, updateAction}
* Move updateDLCOracleSigs into DLCActionBuilder and make it an action
* Update DLCTransactionProcessing.calculateAndSetOutcome() to use actions
* WIP
* Finish implementing {CRUD,CRUDAction}.createAllAction()
* Try to make database inserts more atomic
* Consolidate more database calls in DLCWallet.initDLCForAccept()
* WIP2
* More refactor and using actions
* Add DLCIdDaoUtilNoPK for querying when dlcId is not a primary key
* Add DLCDataManagement.deleteDLC()
* make DLCWalletApi.createDLCOffer() use actions
* Rework DLCWallet.createNewDLCAccept() to use DBIOAction
* Use actions in DLCWallet.registerDLCAccept() a bit
* Create DLCActionBuilder, move actions to there
* Move more actions into ActionBuilder
* Implement transactionally on database writes for actions
* 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>
Write intro and requirements section
start contractinfo section
Finish offer section
Finish first draft of the wallet election example writeup
Add page to sidebar
* 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
* DLC P2P WIP
* P2PClient refactor (#10)
* Add to CI
* Remove unused
* Attempt to create DLCNode and Tests
* Full Tor support
* Get DLCNegotiationTest passing
* Config options, connect & send func
* Test for DLCNode
* Add createDLCNode to config
* Fix formatting
* Update DLC state after all other data is set
* Remove unneeded line
* Respond to some review
* 2021 07 26 dlc node code review (#13)
* WIP
* WIP2
* Rewrite tests not use Await.result()
* Skip Tor test on CI
* Cleanup threadpool leaks in tests
* Handle actor pattern matching better
* Respond to review
* Implement DLCNode.stop
* sock5 -> socks5
* Use Tcp.Unbind
* Respond to review
* Implement postStop
* Switch to unbind
Co-authored-by: rorp <rorp@users.noreply.github.com>
Co-authored-by: Chris Stewart <stewart.chris1234@gmail.com>
* 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
* Rework findDLC(), break things out into separate objects to make things more testable and correct
* Address ben's code review
* Add caching of oracle outcomes we know are valid and broadcast
* 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