Commit graph

50 commits

Author SHA1 Message Date
Chris Stewart
48213d9b81
Implement MasterXPubDAO (#3451)
* Implement MasterXPubDAO

* Fix nits

* Add postgres migrations

* Make sure tables are getting cleaned on postgres

* Get dlcOracleTest test cases passing with validation of the master xpub in the database on startup

* Fix test case

* Fix more tests

* Move things around so keymanager does not need to depend on dbCommons

* Get all walletTest passing

* Add unit test for wallet startup

* Fix rebase

* Get all sqlite tests passing

* Get postgres test cases passing locally

* Remove early call to walletAppConfig.start() in node project

* Make KeyManagerAppConfig.externalEntropy private

* Fix MasterXpubDAO.existsOneXpub()

* Fix bug in migrating database for oralce project
2021-09-21 08:05:23 -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
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
Chris Stewart
98ecdf7ac3
Refactor DLCOracle construction to be more safe (#3449) 2021-07-25 11:08:56 -05:00
benthecarman
36c4da7c95
Use AtomicInteger for keyIndex in DLCOracle (#3433)
* Use AtomicInteger for keyIndex in DLCOracle

* Make nextKeyIndexF private
2021-07-21 13:30:30 -05:00
benthecarman
2d96a9c519
Fix typo in DLCOracle (#3434) 2021-07-21 12:04:41 -05:00
Chris Stewart
ea1ead9a3f
Add nonces to error message for easier debugging (#3430)
* Add nonces to error message for easier debugging

* Add .hex calls
2021-07-21 11:53:31 -05:00
benthecarman
78e2fceb90
Use OrderedNonces type in DLC data types (#3352) 2021-06-30 06:35:02 -05:00
Nadav Kohen
58070f4120
Pulled down dlc and dlcTest projects into core and dlcTest (#3068)
* 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
2021-05-14 12:27:21 -05:00
benthecarman
2b8ac08cdc
Give oracle ability to sign messages with private key (#3070) 2021-05-12 10:09:34 -05:00
Chris Stewart
85fb931cba Implement BIP32Path.fromHardenedString(). (#2886)
* Implement BIP32Path.fromHardenedString(). This will throw exceptions a non hardened path in the string exists

* Do what ben says rather than re-implementing BIP32Path.fromString
2021-04-09 13:19:11 -05:00
benthecarman
3dbeac276e Add ability to delete Oracle signatures (#2851)
* Add ability to delete Oracle signatures

* Respond to review
2021-04-02 13:55:47 -05:00
benthecarman
07514e2348 Remove logging from core (#2810)
* Remove logging from core

* Remove slf4j from testkit core

* Remove logback from coretest
2021-03-21 19:11:55 -05:00
benthecarman
8b6c0652a2 Completely remove range event descriptors (#2764) 2021-03-04 15:18:33 -06:00
benthecarman
2a6da6a4ea Fix DLCOracle to be Network Agnostic (#2749)
* Fix DLCOracle to be Network Agnostic

* improve comment

* Added test

* Improve comment
2021-03-03 15:31:56 -06:00
benthecarman
a0180884c5 Make sure DLCOracleAppConfig creates the oracle directory (#2720) 2021-02-24 13:20:26 -06:00
benthecarman
86566c575d Simplify oracle server RPC api (#2656) 2021-02-23 13:17:20 -06:00
benthecarman
93ec7ed4cb Change oracle db to have its own directory (#2667)
* Change oracle db to have its own directory

* Fix exists function

* Add to example config

* Move old dbs
2021-02-18 12:44:48 -06:00
Aris
85087b0f70 Refactoring chain (#2662) 2021-02-13 14:10:40 -06:00
benthecarman
931a528723 Give oracle server its own port (#2653)
* 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
2021-02-13 13:59:16 -06:00
Chris Stewart
8f958bf5d9 Update scalafmt (#2619) 2021-02-03 16:37:12 -06:00
Chris Stewart
756bfc4427 2021 01 27 conectionpool (#2578)
* 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
2021-01-28 09:44:03 -06:00
benthecarman
e10e278aa4 Add walletinfo rpc (#2546)
* 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>
2021-01-22 13:55:21 -06:00
benthecarman
523f1098fc Implement OracleAttestmentV0TLV, save outcome to db (#2516)
* 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
2021-01-22 09:45:45 -06:00
benthecarman
09937e6ecf Fix rpc bind address from config (#2542)
* Fix rpc bind address from config

* Add to oracle server
2021-01-21 17:21:54 -06:00
Chris Stewart
1ec3092b2f 2021 01 15 dlc refactors (#2518)
* Kill DigitDecomp.isSigned

* Create TLVEndpoint, TLVMidpoint ADT. Also add helper method OutcomePayoutPoint.toTlvPoint
2021-01-16 07:55:42 -06:00
benthecarman
be06fb13ab Update DLC Oracle Signing Algo (#2465) 2021-01-05 08:19:53 -06:00
rorp
dd656cb06b Add attestation verification utility (#2438) 2020-12-30 13:56:10 -08:00
benthecarman
10ae6db088 Don't allow negative outcome for unsigned digit decomp events (#2446) 2020-12-30 07:30:27 -06:00
Ben Carman
52ef1fa185 Add ability to store ExtPrivateKey instead of Mnemonic (#2372)
* Add ability to store ExtPrivateKey instead of Mnemonic

* Use private vals, change name

* Fix docs

* private to km

* Correct scaladocs
2020-12-17 13:25:04 -06:00
Nadav Kohen
f7fdca3e22 DLC Data Structures on Master Cleanup (#2375)
* 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
2020-12-17 09:09:57 -06:00
Ben Carman
1225584526 Multi Wallet support (#2345)
* Multi Wallet support

* Fix Oracle tests

* Fix some CI errors

* Increase KeyManagerAppConfig code coverage

* Add test for multiple seeds in seed folder

* Move things in reference.conf files

* Lower key manager coverage requirement

* Fix postgres test issues

* Create DbAppConfig

* Add some docs, fix hardcoded postgres db name

* Clarify db vs schema

* Add character types

* Fix chaindb in conf

* Always copy default seed

* Remove need for driverName config
2020-12-16 17:27:56 -06:00
Ben Carman
794f6e073e Fix TLV parsing for non-standard strings (#2312)
* Fix TLV parsing for non-standard strings

* Create function

* Fix oracle migrations

* Forced all TLV strings to be normalized implicitly

* Removed redundant normalization

* Fix oracle

* Bump migration test

* Fix 2.12.12 compile

* Use NetworkElement & StringFactory

Co-authored-by: nkohen <nadavk25@gmail.com>
2020-12-03 12:30:17 -06:00
Ben Carman
fdb2b675e9 Create KeyManagerAppConfig (#2268)
* Create KeyManagerAppConfig

* Fix name

* Use module name
2020-11-19 06:23:26 -06:00
Chris Stewart
1716a73e0e 2020 11 17 dlcoracle dbutil (#2272)
* Move conversions OracleEventTLV -> {EventDb,EventOutcomeDb} into util files so that they can easily be reused by things that are using bitcoin-s as a library

* Add overloaded alternatives to EventDbUtil.{toEventDbs, toEventOutcomeDbs} that take in a OracleAnnouncementV0TLV
2020-11-18 07:39:18 -06:00
Ben Carman
b6a06d6e9c Fix listEvents in DLCOracle (#2265)
* Fix listEvents in DLCOracle

* Fix migration
2020-11-16 06:32:40 -06:00
Ben Carman
ec6afbb271 Use same config option for key manager projects (#2252)
* Use same config option for key manager projects

* Use BIP39KeyManager.initialize
2020-11-11 12:18:02 -06:00
Ben Carman
7ac9cd1525 Use New Oracle TLVs in DLCOracle (#2162)
* 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
2020-11-10 06:08:43 -06:00
Ben Carman
47a38f88db Make aesPassword option for wallet config (#2217)
* Make aesPassword option for wallet config

* Add to docs

* Make AesPassword optional

* Small touchups

* Fix for oracle server

* Fix docs

* Increase code coverage
2020-11-06 07:00:18 -06:00
Chris Stewart
1bb874db06 Fix overrides AppConfig.configOverrides with DLCOracleAppConfig, also remove hardcoded value out of AppConfig.configOverrides so people have to implement it (#2209) 2020-10-21 17:13:09 -05:00
Ben Carman
128ff7de54 Create fromConfig functions for AppConfigs (#2170)
* Create fromConfig functions for AppConfigs

* Add fromClassPathConfig function
2020-10-12 14:07:45 -05:00
Chris Stewart
7582171660 2020 10 06 explicit classloader (#2148)
* Use explicit classloader

* Add OracleInfoTLV for easy publishing

* Get config resolution working on sb-api

* Remove OracleInfoV0TLV
2020-10-07 13:47:48 -05:00
Ben Carman
c06c323c39 Use Llyod's Oracle recommendations on commitment Signature (#2117) 2020-10-06 18:33:28 -05:00
Ben Carman
d83f973ea8 Don't allow duplcate or 0 outcomes for a DLCOracle (#2120) 2020-10-06 07:51:34 -05:00
Ben Carman
52ba32769a Increase DLC Oracle test coverage (#2128) 2020-10-05 22:06:31 -05:00
Chris Stewart
ade2503702 2020 10 05 redo config (#2121)
* Use absolute paths for resolving configurations

Make log level OFF again

WIP: Move resolution of config into AppConfig.start(), things are totally broken

WIP: Make AppConfig.config private

Get all tests passing again but using absolute path in configuration

* Cherry-pick onto master

* Fix BitcoinSAppConfig configuration keys to use the full path

* Apply code review

* Fix log, move invariant for requiredConfirmations back into the lazy val

* Fix DlcOracleAppConfig to use absolute path
2020-10-05 18:00:30 -05:00
Chris Stewart
9b09b04230 Upgrade to scalac 2.13.3 (#2115) 2020-10-04 07:42:44 -05:00
Ben Carman
93852aa438 Add DLC Oracle Server Endpoints (#2105) 2020-10-03 15:24:02 -05:00
Ben Carman
d57c059921 Add basic DLC Oracle (#2094)
* Add basic DLC Oracle

* Respond to review

* Respond to more review

* Add maturation time

* Add to testkit, tag hashes, better val names

* More clear vals, version tagged hashes

* Signing key clean up

* Add pubkey to db
2020-10-03 08:04:57 -05:00
Ben Carman
2d34e2b690 Move DLC Oracle module to master (#2083) 2020-09-29 19:48:02 -05:00