Commit Graph

174 Commits

Author SHA1 Message Date
Chris Stewart
e4d38ba53a
2022 05 05 OS specific jlink builds (#4322)
* Add OS specific zips

* Try to fix windows build

* Try to fix windows build shell

* Try to see if double zip works w/o mac verified developer error

* Add bash script to handle making file executable and make it non quarantine on mac

* Do chmod regardless of os

* Remove chmod as that cannot work by definition, revert to only packaging stage/ directory

* Make java exectuable on every OS

* refactor CommonSettings.jlinkIgnore

* Try to build appServer

* Make cli use jlink

* Make bash scripts more generic on mac

* Remove feature branch on release.yml

* Fix startup scripts
2022-05-07 18:42:02 -05:00
Chris Stewart
087b9f90b5
2022 05 03 oracle server jlink build (#4316)
* Implement jlink with oracleServer

Remove comment

Begin integrating jlink into oracleServer

WIP

WIP

Finish postgres transitive deps

Get oracleServer startup working

Add some settings to compress the jre shipped, reduces size by ~50%

refactor build config

Bump dependencies

* Remove java desktop module from our jlink build
2022-05-05 09:59:05 -05:00
Chris Stewart
7a6f0430d6
2022 02 03 issue 4032 (#4042)
* get all dlcWalletTest/test passing

* Get dlcTest/test working with ignored test cases

* WIP

* Rework match oracleSignatures

* Refactor checkSingleContractInfoOracleSigs to use matchOracleSignatures

* Clean up checkOracleSignaturesAgainstContract for disjoint, still doesn't pass test cases

* Some DRY in numeric test cases

* Add test case for enum contracts

* Fix disjoint union contract bug

* Refactor matching of oracle announcements and oracle signatures into DLCUtil

* Fix compile on on 2.12.x

* Address parts of code review
2022-02-05 09:04:04 -06:00
benthecarman
03abb7537b
Add basic esplora client (#4018)
* Add basic esplora client

* Improve error message
2022-01-28 15:48:44 -06:00
Chris Stewart
2e49bedf7d
upgrade to scala-js 1.8.0 (#3979)
* upgrade to scala-js 1.8.0

* upgrade the scoverage plugin to 1.9.3
2022-01-13 09:07:55 -06:00
Chris Stewart
01a7c7c838
Make clightning tests execute async (#3768) 2021-10-19 12:18:04 -05:00
benthecarman
6d43d443ba
Initial c-lightning rpc support (#3755)
* Initial c-lightning support

* Respond to review
2021-10-19 10:58:29 -05:00
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
8e39b2bbb8
Sbt docker multi platform (#3649)
* Add docker x building for multiple platform support

* Working now

* Move config into CommonSettings, make code a bit more readable

Co-authored-by: Ivan <erickson.ivan@gmail.com>
2021-09-07 14:09:23 -05:00
Chris Stewart
a5f4f9663c
Add BitcoinSServerMain test to connect to bitcoind (#3591)
* Add BitcoinSServerMain test to connect to bitcoind

* Add tor tests

* Fix compile

* Remove println

* Allow to reset BitcoinSServer promise

* Remove println

Co-authored-by: benthecarman <benthecarman@live.com>
2021-08-26 09:08:38 -05:00
benthecarman
495ab62104
Tor in Testkit (#3484)
* Tor packaged for testkit

* Add CI row

* Small fixes

* More fixes

* Keep tor running

* Skip tor test for old version of bitcoind

* Respond to review

* Fix with master

* Bump tor start time to same as app config

* Use cached tor for DLCNodeTest

* Disable parallel execution for dlc node test with tor

* Fix DLCNodeTest for tor and clearnet

* Fix name of CI rows
2021-08-23 13:06:14 -05:00
Chris Stewart
b7d85264a0
Implement TorAppConfig.start(), use tor logs to detect when the tor is fully started (#3549)
* Implement TorAppConfig.start(), use tor logs to detect when the tor binary is fully started

* Clean up comments

* take ben's suggestion and only start the binary when tor is enabled

* Add cases for when binary is alreayd started

* Actually set the stop flag correctly

* Scalafmt
2021-08-15 14:01:12 -05:00
rorp
3d4cf1fc91
Tor support for all sub-projects (#3506) 2021-08-10 08:07:12 -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
b39ca47268
Create TorAppConfig (#3476) 2021-08-04 14:16:22 -05:00
rorp
ca40af5d94
Tor support for BTC RPC (#3470)
* Tor support for BTC RPC

* change config format
2021-08-03 11:07:05 -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
rorp
8b663d91b6
Tor support for P2P (#3311)
* Tor support for P2P

* fix stuck connections

* unit tests

* docs

* update docs

* respond to the PR comments

* fix docs
2021-07-13 14:27:24 -05:00
Chris Stewart
a9292fcad8
Add FutureUtil tests (#3126)
* Add FutureUtilTest for both FutureUtil.batchAndParallelExecute and FutureUtil.batchAndSyncExecute

* Make Vector same size as available processors as CI machines don't have as many processors as I have locally

* Try to fix test case

* Add processors to the log

* Replace java scheduler with a scalajs scheduler called monix

* Make asyncUtilsTest compatible with Scalajs, add them to the CI matrix

* Add more missing runs of asyncUtilsTestJS/test
2021-06-28 14:44:08 -05:00
Chris Stewart
4c9f174a4b
Remove all flyway plugin sbt config (#3215) 2021-06-02 06:08:43 -05:00
Chris Stewart
b23b5ad55f
Make sure secp256k1 is published for java8, not the class version of the jdk it was built on (#3145) 2021-05-26 09:36:20 -05:00
Chris Stewart
caf6c2e724
Enable java app packaging on bundle project (#3144) 2021-05-26 07:01:18 -05:00
benthecarman
be8e965367
DLC Wallet pulldown (#3138)
* DLC Wallet pulldown

* Respond to review
2021-05-25 17:31:01 -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
Chris Stewart
9b06cdd832
2021 05 07 cleanup build (#3055)
* Apply all prodSettings and testSettings to appropriate projects

* Remove caveat for scala 2.12 as all these warnings are supported in the latest version scalac 2.12.13
2021-05-08 07:34:40 -05:00
Chris Stewart
97a854c5bb
2021 05 07 fix getting setup (#3053)
* Fix getting-setup, add prodSettings,testSettings to new tor module

* Fix missing wallet rpc examples on 0.6
2021-05-07 17:55:21 -05:00
rorp
02c4505948
Initial Tor support (#3043)
* Initial Tor support

* cleanup
2021-05-07 06:43:39 -05:00
Chris Stewart
8ec93c6632
Add protoc exception for apples new chip arch. This requires protoc to be built manually as they do not natively ship m1 support yet (#3013) 2021-05-03 07:11:59 -05:00
Chris Stewart
9ecea9f710 2021 04 24 bitcoin s scripts (#2961)
* Add new app/scripts project which is meant to store useful bitcoin-s scripts

* Add ScanBitcoind with an example of counting segwit txs between a range

* Fix bug of creating a new actor system everytime BitcoindRpcClient.apply(instance) is called

* Add BitcoindRpcClient.fromVersionNoSystem()

* Take ben's suggestions

* Fix compile

* Rework P2SHScriptSignature.isStandardNonP2SH() to account for nesting p2sh script inside of it

* fix compile on java8

* Enable app packaging in scripts project
2021-04-25 14:03:22 -05:00
Chris Stewart
19319494cd 2021 04 19 Cleanup after ourselves in postgres tests (#2921)
* Fix missing database shutdown on WalletAppConfig.stop()

* Cleanup BitcoindBlockPollingTest

* Cleanup ProcessBlockTest and all tests that use CachedBitcoind

* Cleanup BitcoindBackendTest

* Cache rescan thread pool rather than creating a new one everytime
2021-04-19 13:58:00 -05:00
Chris Stewart
3916a0b58e 2021 04 07 issue 2875 (#2879)
* Rework explorer client to use announcement in method names rather than event

* Add to sidebar.json
2021-04-08 10:15:56 -05:00
Chris Stewart
c738f23e58 Fix build warnings that came with sbt 1.5.0 (#2857)
* Fix build warnings that came with sbt 1.5.0

* Fix more deprecation warnings

* Fix more warnings
2021-04-06 06:01:11 -05:00
benthecarman
4055de7690 Inital LND rpc with some tests (#2836)
* Inital LND rpc with some tests

* Fix ZMQ test

* Correct datadirs

* Most tests

* Fix eclair tests

* Make tests less flaky

* Have CI download lnd

* Respond to some review

* Fix ZMQ tests

* Cached bitcoind for lnd tests

* Fix fixtures, bump timeout

* InstanceFactory & ConfigFactory

* Fix compile issue for 2.12.12

* Move factories to core.api.commons
2021-04-05 04:52:56 -05:00
Chris Stewart
eb9b2de38b Enable scalajsbundler plugin on coreJS (#2853) 2021-04-03 11:36:15 -05:00
Chris Stewart
2554665e89 Enable publishing of scalajs artifacts (#2849) 2021-04-02 09:45:44 -05:00
Chris Stewart
60c1ad1919 Rework the website scaladoc aggregation and website (#2846)
* Rework the website scaladoc aggregation and website publishing to do what the mdoc documentation says

* Add jvm specific projects for asyncUtils & testkitCoreJVM
2021-04-01 11:44:02 -05:00
Chris Stewart
49b6d39ab4 Implement Oracle Explorer Client (#2838)
* WIP

* Get POSt working for creating an announcement

* Add ability POST oracle attestations

* Add docs

* Remove ExplorerMain

* Update workflows to add  oracleExplorerClient/test

* Switch to test so it passes on CI

* Add unit test, switch env to ExplorerEnv.Test

* Remove extra comments

* Add StringFactory to ExplorerEnv
2021-04-01 10:43:10 -05:00
benthecarman
fa80f36d2f Get all of Core working with JS (#2826)
* core-test-js-json

* Add SigPointComputer cross compile
Co-authored-by: Nadav Kohen <nadavk25@gmail.com>

* Fix java.time for scalajs

* InetAddress for scalajs

* Fix linking errors in coreTestJS

* Easy fixes

* InetAddress Tests

* Update micropickle, fix exact functions

* Get BigSizeUIntTest working with upickle

* Fix exact funcs

* Update Base58Test with upickle

* Update ScriptSignatureTest with upickle

* Update TransactionTest with upickle

* Update BlockFilterTest with upickle

* Update ScriptInterpreterTest with upickle

* Update MnemonicCodeTest with upickle

* Add InetAddress unit tests

* Fix compile errors

* Get core tests running, not passing

* Sign with js

* Fix PSBTUnitTest

* Fix PBKDF2 for JS

* Use bcrypto's secp256k1 instead of ecdsa

* Fix 2.12.12 compile

* Core tests passing :)

* Test corejs
2021-03-31 15:04:30 -05:00
Chris Stewart
c2409b46c4 Silence scalajs warnings for org.bitcoins.crypto package (#2822)
* Silence scalajs warnings for org.bitcoins.crypto package

* Add comments

* Create 'facades' package, move all js facades into that package. Make the new -Wconf flags work with only scala 2.13.x

* Small cleanups
2021-03-28 08:28:21 -05:00
rorp
911fca5825 Schnorr js (#2805)
* Schnorr sigs for Scala.js

* fix build

* put BIP340 test vectors in a shared space

* remove teskit dependency, fix point edge cases

* fix build

* add unit tests for point addition

* scaladoc

* cleanup

* respond to the comments

* Fix usage of BitcoinSLogger

Co-authored-by: christewart <stewart.chris1234@gmail.com>
2021-03-22 12:56:40 -05:00
benthecarman
c6c4e83e9e Remove logging from testkit core (#2813)
* Remove logging from testkit core

* Fixup deps
2021-03-22 11:48:27 -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
Chris Stewart
2287c6ced9 Implement caching of bitcoind in the walletTest,nodeTest, and partially bitcoindRpcTest project (#2792)
* Create CachedBitcoind, implement it in FundTransactionHandlingTest

* Add BaseWalletTest, extend it with BitcoinSWalletTest & BitcoinSWalletTestCachedBitcoind, add CachedBitcoinV19 and use it RescanHandlingTest

* Make ProcessBlockTest work with cached bitcoind

* Make trait for CachedBitcoindNewest for the newest version of bitcoind

* Make UTXOLifeCycleTest use cached bitcoind

* Add WalletBloom, WalletSyncTest to use cached bitcoinds

* Add WalletIntegrationTest

* Rework beforeAll() and afterAll() into the super trait like BaseWalletTest

* Add standlone BitcoindFixtures, use it in BitcoindBackendTest

* Use new BitcoindFixtures in BitcoindBlockPollingTest

* Introduce BaseNodeTest, start implementing the usage of cached bitcoinds in the nodeTest project

* Use cached bitcoind's with SpvNodeTest & SpvNodeWithWalletTest

* Fix bug on postgres with reusing database, upsert the genesis header rather than create it

* Get NeutrinoNode tests workign with cached bitcoinds

* Fix NeutrinoNodeWithWallet by destroying wallet state for Postgres

* Add teardown helper method for bitcoind

* Teardown chain project when using node fixtures since node is dependent upon the chain project.

* Turn off parallelExecution again

* Switch the parallelExecution flag to only be set on CI, so we can get better performance when running locally

* Start implementing BitcoindFixtures, use BitcoindFixturesCachedTriple on TestUtilRpcTest

* Fix compiler errors, begin implementing NodePair

* Refactor TestRpcUtilTest to use 2 bitcoinds rather than 2

* Reduce the number of bitcoinds that MultiWalletRpcTest needs from 3 -> 1

* Reduce number of bitcoinds used in WalletRpcTest from 3 -> 2

* Add some documentation

* Try to re-add parallelExecution

* Reduce the number of bitcoinds used in PsbtRpcTest from 3 -> 2

* Disable parallelExecution in Test again

* Make BitcoindV21RpcClientTest & BitcoindV20RpcClientTest reduce bitcoind usage from 2 -> 1

* Make BitcoindV19RpcClienttest reduce bitcoind usage from 2 -> 1

* Rework MempoolRpcTest to use fixtures, add BitcoindVersion to CachedBitcoindCollection

* Make sure clientAccumm has to be specified as a paramter now rather than filling in by default

* Begin parameterizing NodePair/NodeTriple to retain type information for the specific version of bitcoind that was used

* Don't implement version in super trait

* Fix docs

* Fix async issue in V21 test suite

* Append to vectors in CachedBitcoinCollection rather than replace

* Fix rebase issues

* Add scaladocs

* Fix BitcoindV18RpcClient address info test

* Implement fixtures in BitcoindV17RpcClientTest fixtures

* Cleanup v17 PsbtRpcTest

* Reduce bitcoind usage from 3 -> 1 in BitcoindV18RpcClientTest

* Remove abandon transaction test, this allows us to reduce the number of bitcoind's used in MempoolRpcTest from 3 -> 2

* Remove the requirement to inject  BitcoinSAsyncFixtureTest, add it in the test traits explicitly to make things easier. Also add explicit afterAll() method to tear down both the CachedBitcoind & BitcoinSAsyncFixtureTest

* Fix missing Await.result() in BitcoindRpcTest.afterAll()

* Rework MultiWalletRpcTest to use a NodePair

* Rework BlockchainRpcTest to use fixtures

* Rework Client start()/stop() methods. Now use an AtomicBoolean to indicate when a user has requested a client to start/stop rather than sending pings to bitcoind that can fail because the conneciton pool has been shutdown in test cases

* Try my luck with turning on parallelExecution in CI again

* Revert parallelExecution, now testes do not run in parallel on CI

* Only turn off parallelExecution for bitcoindRpcTest

* Adjust build to only have bitcoindRpcTest NOT in run parallel on mac, reduce number of blocks used in BitcoindRpcTestUtil.createNodeSequence

* Run less tests in the rpc test suite as that takes the longest, move them over to node/wallet/dlc test suite on mac osx CI

* Don't run eclair tests in parallel either

* Remove CachedBitcoind from BitcoinSWalletTest

* Fix async bug in test case

* Push to github to force re-run of CI

* Push to github to force re-run of CI

* Push to github to force re-run of CI
2021-03-19 06:37:53 -05:00
Chris Stewart
78448b277c Revert "Schnorr sigs for Scala.js (#2784)" (#2802)
This reverts commit 8e7bde0ed9.
2021-03-16 13:19:16 -05:00
rorp
8e7bde0ed9 Schnorr sigs for Scala.js (#2784) 2021-03-16 10:21:47 -07:00
Chris Stewart
e06c9e44cc 2021 03 09 async utils tests (#2781)
* Add asyncUtils test build

* Add asyncUtilsTest

* revert scheudler to 2 threads

* Push to github to force re-run of CI
2021-03-09 11:13:46 -06:00
rorp
5a2f95c38e WIP: Implement bcrypto facades (#2743)
* Implement bcrypto facades

* signatures

* some more facades

* move JS test

* move JVM tests

* CryptoUtilTest

* CI config

* fix CI config

* add npm dependencies

* test over fullLinkJS-generated files
2021-03-05 07:21:39 -06:00
Chris Stewart
8a4739d509 2021 03 04 fix publish pt2 (#2763)
* Fix publishing of scaladocs/website on merge to master by adding new scalajs projects to the list

* Add testkitCoreJS

* Forgot asyncutils
2021-03-04 12:21:21 -06:00
Chris Stewart
6b4812848b Add new JS projects to list in build.sbt (#2761)
* Fix publishing of scaladocs/website on merge to master by adding new scalajs projects to the list

* Add testkitCoreJS
2021-03-04 10:01:14 -06:00
Chris Stewart
e59057483f Resturcutre cryptoTest & coreTest to work with scalajs build (#2731)
* Get cryptoTest,coreTest projects working with scala-js

Get build working, now moving onto compile

Move jvm specific cryptoTest's into the .jvm sub project

Rework build definition names to be more concise

Fix missing cryptoTest refactor

Move logback-test.xml into jvm specific resource folder so it doesn't get ignored

Make coreTest a crossProject

Rework ci matrix to work with new project structure

Try to fix CI matrix

CI fix part 2

* Apply commonSettings to all cross projects

* Address part of roman's code review, make coreJS, make cryptoTest.dependOn(crypto)

* WIP to share with scala-js community

* Fix scalac compiler settings to be additive in CommonSettings.settings

* Remove BCryptoTest
2021-03-03 16:52:03 -06:00