Commit Graph

41 Commits

Author SHA1 Message Date
Chris Stewart
2d5732375f
Add CRUDAction.{updateAllAction, updateAction} (#3872)
* Add CRUDAction.{updateAllAction, updateAction}

* Move updateDLCOracleSigs into DLCActionBuilder and make it an action

* Update DLCTransactionProcessing.calculateAndSetOutcome() to use actions
2021-12-04 05:29:51 -06:00
Chris Stewart
f71d3567ed
2021 11 23 crud action (#3851)
* 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
2021-11-30 12:38:55 -06:00
Chris Stewart
8765c2f845
Disjoint union dlc (#3839)
* 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>
2021-11-29 19:26:00 -06:00
Chris Stewart
aa748c012f
2021 11 03 protocol version (#3793)
* ProtocolVersion WIP

* Start incorporating protocol version into DLC Offer

* Fix doc
2021-11-03 15:13:19 -05:00
Chris Stewart
3025a9a874
Add wallet election example to docs (#3716)
Write intro and requirements section

start contractinfo section

Finish offer section

Finish first draft of the wallet election example writeup

Add page to sidebar
2021-10-05 06:55:14 -05:00
Chris Stewart
132479d271
Implement ability to provide external entropy to bitcoin-s (#3672)
* 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
2021-09-18 09:49:11 -05:00
benthecarman
099e4469b4
Add ordering of funding inputs to DLC Wallet (#3647)
* Add ordering of funding inputs to DLC Wallet

* Fix tests
2021-09-11 08:25:24 -05:00
benthecarman
ba21c24d6f
Give funding txid in DLC Signed state (#3640)
* Give funding txid in DLC Signed state

* Improve test
2021-09-02 08:17:20 -05:00
benthecarman
656e9b1b5d
Sort DLC table by last updated (#3607)
* 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
2021-08-31 14:27:36 -05:00
Chris Stewart
706c9fe961
Add check for valid broadcast states (#3560) 2021-08-17 07:51:12 -05:00
user411
77539c570a
Adjust DLCTableView column widths and "counter party" to "counterparty" (#3539) 2021-08-13 07:14:11 -05:00
Chris Stewart
1d6ede492f
Invert updating of DLC state and broadcasting the funding tx (#3526)
* Invert updating of DLC state and broadcasting the funding tx

* Move log message
2021-08-11 15:06:28 -05:00
Chris Stewart
4f7b6422ea
2021 08 06 app config refacotr (#3498)
* Move AppConfig into app-commons, reduce classpath deps on keyManager,tor

* Move test ServerArgParserTest

* Fix compile error
2021-08-07 14:36:11 -05:00
benthecarman
1051e6365a
DLC P2P Client (#3402)
* 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>
2021-08-02 18:15:56 -05:00
benthecarman
c1ce9ca115
Disallow signing your own DLCAccept (#3453)
* Disallow signing your own DLCAccept

* Fix formatting
2021-07-27 10:47:31 -05:00
benthecarman
2597904019
Move DLCWalletApi to core module (#3438) 2021-07-21 15:25:18 -05:00
benthecarman
a295b363bd
Fix bug where we couldn't execute a DLC twice (#3426) 2021-07-20 10:43:27 -05:00
benthecarman
892096d790
Disallow calling addDLCSigs as Initiator (#3411) 2021-07-15 17:05:32 -05:00
benthecarman
a82f5aa832
Use Wallet's transactionDAO instead of creating a copy (#3377)
* Use Wallet's transactionDAO instead of creating a copy

* remove import
2021-07-07 19:01:40 -05:00
benthecarman
e098aba680
Create and implement OrderedAnnouncements type (#3356)
* Create and implement OrderedAnnouncements type

* Fix docs

* Update scaladoc
2021-07-06 07:58:58 -05:00
benthecarman
78e2fceb90
Use OrderedNonces type in DLC data types (#3352) 2021-06-30 06:35:02 -05:00
benthecarman
cada6fdc63
Fix DLC not storing nSequence for funding inputs (#3342)
* Fix DLC wallet not storing nSequence for funding inputs

* Fix DLCTest
2021-06-29 09:36:30 -05:00
benthecarman
0d2bc7a927
Remove unneeded asInstanceOf calls in DLCWallet (#3345) 2021-06-28 22:34:42 -05:00
benthecarman
cfe0c2f0d8
Multi wallet support for DLC database (#3289)
* Multi wallet support for DLC database

* Fix for postgres
2021-06-22 12:56:26 -05:00
benthecarman
ca2ddbb7ec
Preserve noncedb outcomes when adding oracle (#3273) 2021-06-16 07:50:09 -05:00
benthecarman
e63a12e47f
Better error message for invalid DLC refunds (#3209) 2021-06-15 10:57:50 -05:00
benthecarman
a526ad14ee
Fix DLC Accounting errors (#3249) 2021-06-12 08:12:38 -05:00
benthecarman
c2237ab6fe
Only unreserve our utxos when canceling a DLC (#3250) 2021-06-12 08:01:24 -05:00
benthecarman
95f6c0d790
Skip adding DLC sigs if we already have them (#3236)
* Skip adding DLC sigs if we already have them

* Fix compile

* Fix test
2021-06-09 18:42:17 -05:00
Chris Stewart
9431be2f25
2021 06 07 dlc wallet pnl (#3229)
* 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
2021-06-08 15:05:40 -05:00
benthecarman
a56086b751
Use nonceDb's outcome to calc oracle outcome (#3217) 2021-06-08 12:32:11 -05:00
Chris Stewart
2269a052b1
Rework findDLC() (#3214)
* 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
2021-06-01 14:54:00 -05:00
Chris Stewart
bf02e89faa
2021 05 29 dlc pnl (#3198)
* WIP

* WIP2

* Get tableview rendering something

* Add basic unit tests for accounting

* Add rate of return

* Add myPayout and theirPayout to json objects

* Address code review

* Fix 2.12 compile, adjust table view

* drop isInit column on table view

* Fix scala 2.13
2021-05-31 11:12:24 -05:00
Chris Stewart
43a5c5fc49
Add dlc wallet test to postgres matrix (#3199)
* Add dlc wallet test to postgres matrix

* Fix migration and DAO

Co-authored-by: Ben Carman <benthecarman@live.com>
2021-05-31 06:51:39 -05:00
benthecarman
0e701bc9d0
Fix verify funding sigs (#3194)
* Fix verify funding sigs

* Sort funding inputs

* Sort utxos in dlc signer

* Other multi input fixes & tests

* Fix compile error
2021-05-28 19:59:45 -05:00
benthecarman
dd865c7329
Fix serialId columns to use a String instead of Integer (#3170) 2021-05-27 10:27:17 -05:00
benthecarman
fb81552f6d
Don't fetch all DLC data when canceling DLC (#3159)
* 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
2021-05-27 06:28:09 -05:00
benthecarman
80ace5a911
Use groupByExistingAnnouncements when accepting (#3157) 2021-05-26 15:37:50 -06:00
benthecarman
880c8898da
Upsert remote txs in DLC Wallet (#3150) 2021-05-26 14:49:34 -05:00
Chris Stewart
701418f89f
Fix issue 3102 to allow a user to create an offer with an announcement embedded inside a contract info that the user's wallet has seen before (#3140)
Fix bug where we were not taking into account all announcementTLVs
2021-05-25 18:53:13 -05:00
benthecarman
be8e965367
DLC Wallet pulldown (#3138)
* DLC Wallet pulldown

* Respond to review
2021-05-25 17:31:01 -05:00