Commit Graph

2236 Commits

Author SHA1 Message Date
Scala Steward
975e8d0fda Update sbt-mdoc to 2.2.9 (#2033) 2020-09-18 17:01:51 -05:00
Chris Stewart
334b4d0965 2020 09 18 btchrp stringfactory (#2031)
* Implement StringFactory on the companion object for BtcHumanReadablePart

* Make Bech32.checkHrpvalidity() take in a string rather than a Bech32HumanReadablePart as a parameter, now we check validity _just_ according to the bech32 standard, not specific applications light lightning / bitcoin

* Add missing override

* Overload Bech32.checkHrpValidity() to pass in a 'StringFactory' in cases where you know what HRP you expect

* Do nadav's suggestion on Bech32.splitToHrpAndData() -- allow a factory to be passed in parameterized with the type you expect
2020-09-18 13:45:32 -05:00
Ben Carman
82b324f1aa Increase test coverage in WalletStorage (#2030) 2020-09-18 06:34:13 -05:00
Ben Carman
ae6bab857f Increase chain test code coverage even more (#2028) 2020-09-17 16:25:08 -05:00
Nadav Kohen
613f6ba4b9 Updated Bouncy Castle Schnorr implementation to most recent BIP 340 (#2025) 2020-09-16 17:01:30 -05:00
Ben Carman
16599010c7 Increase chain code coverage (#2023) 2020-09-16 16:24:25 -05:00
Ben Carman
db852e4ffb Increase code coverage in key manager (#2024) 2020-09-16 15:05:19 -05:00
Chris Stewart
841230e35c Handle the case where our block headers are synced already (#2021) 2020-09-16 11:45:57 -05:00
Scala Steward
c9e5aa9c3b Update sbt-bloop to 1.4.4 (#1954) 2020-09-15 07:51:10 -05:00
rorp
444bd680a9 OSX native libsecp256k1 (#2014)
* OSX native libsecp256k1

* Add core and crypto tests to mac matrix

Co-authored-by: Ben Carman <benthecarman@live.com>
2020-09-14 17:45:55 -05:00
Ben Carman
2ddde4e634 Update Website Deps (#2011) 2020-09-14 17:22:00 -05:00
Chris Stewart
857b33f31f Make ChainApi.getHeadersBetween() be inclusive on the 'from' parameter (#2009)
* Make ChainApi.getHeadersBetween() be inclusive on the 'from' parameter

* Use ben's suggestion of comparing hashes
2020-09-12 11:13:03 -05:00
Chris Stewart
76b9577181 Introduce 'FilterSyncMarker' to ChainApi, make it clearier what exact… (#2003)
* Introduce 'FilterSyncMarker' to ChainApi, make it clearier what exactly the (Int,DoubleSha256Digest) tuple is returned from ChainApi.nextBlockHeaderRange()

* Fix doc

* Add scaladoc to FilterSyncMarker

* Rebase onto master, fix conflicts to use FilterSyncMarker
2020-09-11 13:48:40 -05:00
Chris Stewart
4f02ee15db Make BlockHeader, BlockHeaderDb have better toStrings (#2007)
* Make BlockHeader, BlockHeaderDb have better toStrings

* Address ben's code review
2020-09-11 13:46:26 -05:00
Chris Stewart
2980e3fc01 Resolve issues with reorgs and syncing filters (#1969)
* Pull over test cases, WIP

* Rework ChainHandler.nextBlockHeaderRange() to use hashes rather than heights to very integrity of header chain, add test case

* Modify test case to make sure we are generating the 'heaviest chain work' header as first in the tuple that is used in reorg test cases

* Refactor to helper method called 'findNextHeader()' to make things simpler

* Add scaladoc to ChainHandler.findNextHeader()

* WIP

* Fix bugs in ChainApi.nextBlockHeaderRange(), now return (startHeight,stopHash) rather than (stopHeight,stopHash)

* Get chain handler tests passing, remove genesis filter header/fitler from default chain project fixture, make it a specialized one to have genesis filter header/filter in the database. Use that specialized fixture in ChainHandlerTest for now

* FilterSync work without having the genesis filter and filter header inserted into the database

* fix bug in DataMessageHandler where we were using sendNextGetCompactFilterHeadersCommand rather than using peerMsgSender.sendGetCompactFilterHeadersMessage

* Refactor ChainHandler.findNextHeader() to centralize where chains are fetched

* Address ben's code review
2020-09-11 12:41:25 -05:00
Chris Stewart
39ef35b9ee Rename parameter names from 'duration' -> 'interval' just like our ActorSystem.schedule() names the parameter (#2005) 2020-09-11 11:10:59 -05:00
Scala Steward
522d80ed2f Update sbt-mdoc to 2.2.8 (#2001) 2020-09-11 08:56:29 -05:00
Ben Carman
2806ac8a95 Throw errors that occurr in startup (#1950)
* Throw errors that occurr in startup

* Add testing ability to runMain
2020-09-10 08:11:46 -05:00
Scala Steward
9bbf669867 Update slick, slick-hikaricp to 3.3.3 (#1987) 2020-09-10 06:47:55 -05:00
Scala Steward
15700b7ff1 Update scodec-bits to 1.1.20 (#1960) 2020-09-10 06:46:04 -05:00
Ben Carman
e2163c99ff Create FeeUnitFactory and functions to calculate tx fee rates (#1990)
* Create FeeUnitFactory and functions to calculate tx fee rates

* Remove useless override, use factory

* doc

* Scaladocs + use vals

* Fix scaleFactor being set as default value
2020-09-10 06:45:25 -05:00
Scala Steward
74807e867b Update play-json to 2.9.1 (#1994) 2020-09-10 06:44:02 -05:00
Scala Steward
fb7212bcd2 Update sbt-mdoc to 2.2.7 (#1995) 2020-09-10 06:43:28 -05:00
Chris Stewart
00480cc391 Use randomized fee rates for wallet tests (#1977)
Co-authored-by: Ben Carman <benthecarman@live.com>
2020-09-09 16:46:33 -05:00
rorp
c62be8b5f6 Update callbacks for LN support (#1938)
Update callbacks for LN support
2020-09-09 11:02:31 -07:00
Chris Stewart
4149271b77 Segregate mainnet chainhandler tests and regtest chainhandler tests (#1988) 2020-09-09 09:50:24 -05:00
Ben Carman
5f7356c526 Fix Two KeyManagers in scope for fundRawTransactionInternal (#1986)
* Fix Two KeyManagers in scope for fundRawTransactionInternal

* Only fetch txs once
2020-09-09 09:40:38 -05:00
Ben Carman
4c0437e352 Optimize findClosestToTime (#1959)
* Optimize findClosestToTime

* Fix Test

* Rename function, change execption type
2020-09-08 09:23:41 -05:00
Ben Carman
ee85f463f5 Fix RoutesSpec to assert results (#1979) 2020-09-07 15:52:23 -05:00
Ben Carman
edc80bf13e Don't spend immature coinbases, fix tests (#1981) 2020-09-07 15:08:41 -05:00
Ben Carman
279d64fafb Add chainHash to ChainParams (#1972)
* Add chainHash to ChainParams

* Rename to genesisHash
2020-09-04 12:15:06 -05:00
Chris Stewart
9dda88ed7b Remove uncessary import (#1968)
* Remove uncessary import

* Attempt to fix compile
2020-09-03 09:00:37 -05:00
Chris Stewart
8b76acd042 Move getBestFilterHeader() use the best chain by chainwork for determining the fitler header (#1964) 2020-09-02 19:41:52 -05:00
Ben Carman
f5fcab9580 Change maxBy and minBys to use maxByOption and minByOption (#1961)
* Change maxBy and minBys to use maxByOption and minByOption

* Fix compile issue
2020-09-02 16:03:57 -05:00
Chris Stewart
98236835a5 Rename ChainApi.nextHeaderBatchRange -> ChainApi.nextBlockHeaderBatchrnage (#1957) 2020-09-02 13:19:20 -05:00
Ben Carman
babab55eac Validate key manager matches account db on wallet startup (#1948) 2020-09-02 07:33:40 -05:00
Ben Carman
1670902e75 Fix max by for getBlockCount (#1951)
* Fix max by for getBlockCount

* Add helper func to package
2020-09-01 19:38:15 -05:00
Ben Carman
cc2a118ff0 Only mark utxos as reserved on successful coin selection (#1944)
* Only mark utxos as reserved on successful coin selection

* Add recoverWith

* Fix compile for 2.12.12
2020-09-01 06:34:46 -05:00
Ben Carman
809ba17891 Fix getBestFilterHeader for headers 2016 or more blocks away from tip (#1943) 2020-08-31 17:00:42 -05:00
Chris Stewart
06a06c500e Clean up imports (#1942) 2020-08-31 14:24:09 -05:00
Ben Carman
a5818fd766 Give gui command line arguments (#1931) 2020-08-31 12:25:56 -05:00
Chris Stewart
e7993890cb Make sure both filter ehaders and filters are empty before sending fi… (#1936)
* Make sure both filter ehaders and filters are empty before sending first filterheader sync message

* Address nit
2020-08-31 06:32:01 -05:00
Chris Stewart
170242812c Fix maxBy() exception in the case of empty Blockchain in ChainHandler… (#1934)
* Fix maxBy() exception in the case of empty Blockchain in ChainHandler.bestFilterHeaderSearch()

* Add another unit test to CompactFilterHeaderDAO for coverage
2020-08-29 15:29:09 -05:00
Chris Stewart
d3af9c2ccb Implement getBestFilterHeader based on a number of block headers that… (#1926)
* Implement getBestFilterHeader based on a number of block headers that can be passed in as a parameter. These headers can be used to indicate what your current best chain is

* Bring back compiler opts

* Fix compiler error for maxByOption as it isn't in the 2.12 std library

* Implement a context free best filter headers search. The basic strategy is to look at headers in the _future_ of our current best filter header

* Fix bug in sql query were we were doing max chainWork too early on block headers, we needed to filter out headers in our set and _then_ we get the max chain work

* Add more unit tests
2020-08-29 08:13:38 -05:00
Chris Stewart
43ba2477b5 Cache DoubleSha256Digest.hex (#1932)
* Cache DoubleSha256Digest.hex

* Cache little endian versino too
2020-08-29 07:35:40 -05:00
Ben Carman
c1d0d66398 Calculate correct TxoState when processing a transaction (#1929)
* Calculate correct TxoState when processing a transaction

* Test balance
2020-08-28 15:31:48 -05:00
Ben Carman
57c92b9e34 docs: Fix broken links in Docs + minor touchups (#1908) 2020-08-27 14:11:24 -05:00
Ben Carman
8d47b68764 Fix rescans that are larger than the batch size (#1916)
* Fix rescans that are larger than the batch size

* Add test
2020-08-27 14:09:25 -05:00
Ben Carman
ef4329d283 Warn if peer does not support services we need (#1921) 2020-08-27 13:57:58 -05:00
Ben Carman
2c3342492c Create DatabaseDriver ADT instead of booleans (#1902) 2020-08-27 12:41:52 -05:00