Commit graph

384 commits

Author SHA1 Message Date
Chris Stewart
04cc10effe
Add better Block.toString that doesn't blow up logs (#2585)
* Add better Block.toString that doesn't blow up logs

* Use .toLong as ben suggested
2021-01-29 10:23:18 -06:00
benthecarman
810ca7c678
Create BlockSyncState type (#2567) 2021-01-27 14:15:07 -06:00
benthecarman
aa0a6f96b8
Bech32 address improvements (#2571)
* Bech32 address improvements

* Respond to review
2021-01-27 13:22:17 -06:00
benthecarman
ee7c96245e
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
rorp
d2203f2359
Bump Eclair version (#2405)
* Bump Eclair version

* cleanup

* Bump JVM version for CI

* Update docs

* Fix docs
2021-01-22 10:47:19 -06:00
benthecarman
7cce23abf7
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
36b5fc1427
Create isChange function for wallet (#2535)
* Create isChange function for wallet

* Scaladocs
2021-01-20 12:11:24 -06:00
Chris Stewart
abc1fdd23f
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
Chris Stewart
4e285e6746
Make ChainApi.processHeaders() return a failed future in the case we … (#2436)
* Rename NodeUnitTest.confg -> NodeUnitTest.getFreshConfig()

* Rename CachedBitcoinSAppConfig.config -> CachedBitcoinSAppConfig.cachedConfig

* Make CachedChainAppConfig extend CachedBitcoinSAppConfig

* Make ChainApi.processHeaders() return a failed future in the case we have no valid headers

* Run scalafmt

* Fix test case to check if promise is completed yet

* WIP: Get something working that isn't network specific

Start putting things back in place

Add comment

Revert logback file

Remove BitcoinSLogger object

* Fix unused import

* Get rid of annoying diff

* Fix spacing nit
2021-01-12 06:11:19 -06:00
Chris Stewart
93dae6c239
2021 01 09 issue 2496 (#2500)
* 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>
2021-01-11 16:48:49 -06:00
benthecarman
94c71543fb
Add createmultisig cli command (#2495) 2021-01-09 09:54:34 -06:00
Chris Stewart
2b94b33052
2021 01 02 issue 2457 (#2461)
* WIP

* Get neutrino node with wallet 'receive information about received payments' working again

* Fix compile

* Remove initial sync logic from test case

* Remove sync logic in NeutrinoNodeWithWallet test cases

* Improve logging and rename a few things

* WIP2

* WIP3

* Get NeutrinoNodeWithWallet tests working

* Implement WalletSync, which allows you to sync a wallet from a arbitrary data source

* Get all tests passing again

* Use spv.appConfig in DataMessageHandlerTest rather than caching the config

* Modify cleanup to hopefully get CI passing

* Fix postgres tests by cleaning the table during the destroy phase of the test fixture. This is needed because the same postgres database is shared between tests in the same test suite

* Revert logback-test.xml

* Get sqlite/postgres tests passing pt 2

* syncHeight -> syncDescriptorOpt()

* Add case for genesis block hash in WalletSync

* Fix SpvNodeWithWallet test case to actually test spv functionality

* Remove nodeCallbacks parameters, callbacks should be registered on nodeAppConfig
2021-01-09 09:33:37 -06:00
Chris Stewart
c4650e3930
Make allFactories lazy so we don't hit NPE exceptions (#2491) 2021-01-08 14:35:55 -06:00
Chris Stewart
056702f61c
Add explicit signing version associated with a EventDescriptor (#2487) 2021-01-07 11:31:00 -06:00
benthecarman
223be80573
Limit bech32 addresses to segwitv0 (#2471)
* Limit bech32 addresses to segwitv0

* extend ScriptFactory, make check exhuastive
2021-01-07 08:13:31 -06:00
Nadav Kohen
141fc548bc
Modified rounding on DLCPayoutCurve interpolation to match spec (#2470) 2021-01-07 06:42:01 -06:00
benthecarman
166440b34b
Update DLC Oracle Signing Algo (#2465) 2021-01-05 08:19:53 -06:00
benthecarman
fb43748d97
Version Number in logs & Cli Command (#2467) 2021-01-05 07:27:40 -06:00
Chris Stewart
b0b56dd5da
2020 12 18 enable lint options (#2454)
* Enable -Xlint:adapted-args,nullary-unit on our for compile scope

* Add Xlint:infer-any compiler option

* Fix build so test compiler options are actually enabled

* Enable more scalac linting options

* Add '-Xlint:eta-sam'

* Add 'Xlint:inaccessible,Xlint:missing-interpolator'
2021-01-03 08:01:26 -06:00
Chris Stewart
8e6a37e988
Remove extra logback files (#2456)
* Remove extra logback files

* Adjust logging levels in testkit/logback-test.xml
2021-01-03 07:25:45 -06:00
Nadav Kohen
ff60c6e03e
OutcomePayoutPoint now has the correct types and deffers rounding due to extra_precision in serialized points (#2441) 2020-12-29 13:55:39 -06:00
Nadav Kohen
528b4e01ee
Outstanding DLC branch diff (#2432) 2020-12-23 18:13:57 -06:00
Ben Carman
847981317a
Add getblockheader cli command (#2424) 2020-12-23 07:15:35 -06:00
Nadav Kohen
036d714563
Made TLV serialization and deserialization uniform under a succinct and expressive API (#2420) 2020-12-23 02:42:30 -06:00
Nadav Kohen
13c4b0d955
Added length prefixes to contract_info and cet_signatures TLVs (#2419) 2020-12-22 14:13:55 -06:00
Ben Carman
92ac986baa
Add extra checks for RBF transactions (#2416)
* Add extra checks for RBF transactions

* Move to util function, don't allow CPFP of confirmed txs
2020-12-22 14:12:15 -06:00
Ben Carman
b5d6216150
Windows Secp Update & fix for parsing Windows paths (#2398)
* Windows Secp Update

* Add docs about errors

* Fix paths in config

* Bump timeout
2020-12-21 16:34:53 -06:00
Ben Carman
89222eb766
Add wallet function to bump fee with CPFP (#2399)
* Add wallet function to bump fee with CPFP

* Add bump fee integration tests
2020-12-21 07:04:01 -06:00
Ben Carman
64a6b6bbc5
Add wallet function to bump fee with RBF (#2392)
* Add wallet function to bump fee

* Bump sequence number

* Respond to review

* Fix test
2020-12-20 07:43:18 -06:00
Chris Stewart
719fab23b7
Remove CompatEither, it was needed for historical purposes to support… (#2394)
* Remove CompatEither, it was needed for historical purposes to support Scala 2.11.x

* Revert files from another change
2020-12-18 09:51:28 -06:00
Ben Carman
2db21fc3d2
Add get transaction cli command (#2370)
* Add get transaction cli command

* Fix return, add to docs
2020-12-18 07:18:13 -06:00
Nadav Kohen
378c51991b
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
49871df0c3
Require CJDNS starts with 0xFC (#2356) 2020-12-15 14:18:52 -06:00
Nadav Kohen
49a281acaf
Pulled down work from adaptor-dlc onto master (#2339)
* 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
2020-12-11 17:32:35 -06:00
Ben Carman
3e7fade224
Add latest ProtocolVersion (#2332) 2020-12-08 08:13:42 -06:00
Ben Carman
9a5ba7bd4f
Fix P2PClient parsing unknown messages (#2315)
* Fix P2PClient parsing unknown messages

* Use Vector, calculate correct checksum
2020-12-06 13:49:30 -06:00
Ben Carman
13443fd0d1
Implement BIP 155 addrv2 messages (#2321)
* Implement BIP 155 addrv2 messages

* Add unit tests
2020-12-06 08:07:57 -06:00
Ben Carman
b3d70f559a
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
0c03aa9c24
Add function to validate OracleAnnouncementV0TLV's signature (#2308) 2020-12-02 06:59:44 -06:00
Chris Stewart
28c37ccf1f
trivial: Add a sha256 hash field on all TLV (#2300) 2020-11-30 12:47:10 -06:00
Chris Stewart
8836ed5e4f
Get Scala 2.13.4 compiling (#2294)
* Get Scala 2.13.4 compiling

* Fix broken test case, in general use if() else() statements for Vectors rather than pattern match as I am unsure of how to correctly pattern match on Vector0,Vector1,...,Vector6()

* Bump CI to 2.13.4

* OVerride CurrencyUnit.equals() so that it works on Scala 2.13.4, not sure why there was a regression here between Scala versions 2.13.4/2.13.3

* Add explicit unit tests making sure bitcoin/satoshi currency units are equivalent
2020-11-28 07:36:07 -06:00
Chris Stewart
b638c6837e
Move english word list to be represented by a Vector in memory (#2287)
* Move english word list to be represented by a Vector in memory

* rename to EnglishWordsBip39
2020-11-23 10:27:22 -06:00
Chris Stewart
2de17bb4e4
2020 11 13 issue 2258 (#2260)
* 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
2020-11-17 06:19:07 -06:00
Chris Stewart
18dfbed8c9
Add helper OracleEventTLVV0.maturation method (#2267) 2020-11-17 06:18:32 -06:00
Ben Carman
15bb935769
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
cc42849864
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
ce9fbb0807
Analyze PSBT function (#2240)
* Analyze PSBT function

* Add to tests

* Add docs

* Add more functions

* Fix compile issues

* Fix compile issue
2020-11-09 15:15:32 -06:00
Ben Carman
e4194220c1
Update Oracle TLVs (#2185)
* Update Oracle TLVs

* Change string size to be BigSizeUInt

* Move nonces to oracle event tlv

* Introduced EventDescriptor tests and NumericEventDescriptor methods to query possible outcome data

* Added contains function

* Added tests for containsToPrecision

* Remove EventDescriptor.outcomes and other related fields

* remove unused formatNum method

* Address code review from Ben

* Move oracle pub key to announcement

Co-authored-by: nkohen <nadavk25@gmail.com>
Co-authored-by: christewart <stewart.chris1234@gmail.com>
2020-11-07 16:26:21 -06:00
Ben Carman
641b2236d6
Let wallet sign PSBTs (#2236)
* Let wallet sign PSBTs

* Add example to docs

* Add logs and test case
2020-11-07 09:25:59 -06:00
Ben Carman
42e9cbb1f2
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