* WIP: Remove isDummySignature
* Add ECDigitalSignature.LOW_R_SIZE, use it in ECDigitalSignature.dummyLowR
* Regenerated dlc_test.json and dlc_tx_test.json to add hash type to dummy ecdsa signatures in static test vectors
* Regenerated dlc_test.json and dlc_tx_test.json to add hash type to dummy ecdsa signatures in static test vectors
* Fix InputInfoTest maxWitnessLengths checks to be >=
* Fix docs
* Add DigitalSignature, extend it with ECDigitaSignature,SchnorrDigitalSignature
* WIP: Remove EmptyDigitalSignature case object in favor of val
* Fix byte representation of ECDigitalSignature.emptyDigitalSignature
* Simplify names to ECDigitalSignature.{empty, dummy, dummyLowR}
* Fix docs
Add checks if recursiveRescanP is completed before attempting to fail the Future
Fix potential deadlock in RescanStarted.stop(), add RescanState test
Add unit test to make sure we propagate exceptions correctly
Move RescanStateTest to jvm only
Link completeRescanEarlyP and blocksMatchedF together in RescanStateTest
Revert DLCWalletLoaderApi.scala
* Implement creatnewaccount rpc
* Get WalletRoutesSpec createnewaccount unit test passing
* Rename HDPurposes -> HDPurpose
* Fix docs
* Implement ConsoleCli arg, change HDPurpose json serialization to be a json string instead of a num
* Pull over scala3 compatible code for crypto/ project from https://github.com/bitcoin-s/bitcoin-s/pull/3497
* Pull over scala3 compatible code for core/ project from https://github.com/bitcoin-s/bitcoin-s/pull/3497
* Add -Xsource:3 to core/
* Get coreJVM/compile working
* restore files lost from master when checking out core/ from 2021-06-30
* Get entire codebase compiling
* Get bitcoindRpcTest/test:compile working
* Restore P2SHDescriptor constructor
* scalafmt
* Fix UInt8.toByte
* Get all merkle block tests working
* Fix GCS bug
* Add -Xsource:3 to cryptoTest/
* Get things compiling again with default intellij build
* Cleanup compile of coreTestJVM so we don't have warnings that cause failures in intellij's build
* Get build started for 26.1
* Start introducing v26 data structures
* Switch BitcoindVersion.newest = V26
* Fix GetTxOutSetInfoResult to use hash_serialized_3
* Fix WalletRpcTest
* Refactor PeerInfoResponse to add transport_protocol_type and session_id fields in v25
* Add ServiceIdentifier.NODE_P2P_V2, add support for v2transport to addnode, add default config setting for bitcoind to have v2transport=1 in test framework, add unit test to make sure we can establish a v2 connection
* Remove V20AssortedRpc
* Add loadtxoutset
* Implement getchainstates
* Add getprioritisedtransactions
* Add getaddrmaninfo
* Add importmempool
* Cleanup println
* Update scalafmt-core to 3.8.1
* Update .scalafmt.conf settings to be factory default settings
* Fix typo
* scalafmt
* Empty commit to re-run CI
* Revert some scalafmt back to original scalafmt.conf
---------
Co-authored-by: Chris Stewart <stewart.chris1234@gmail.com>
* Integrate Descriptor class into 'getdescriptorinfo' RPC
* WIP: Invalid checksum that is valid according to bitcoin core
* Add descriptor.py in comments
* Get deriveaddresses RPC working with descriptors
* Parse descriptors in DescriptorsResult to Descriptor data type
* Implement unit tests for key expression fidelity to user input for hardened paths
* Create HardenedType, rework BIP32Node to take Option[HardenedType] as a parameter
* Fix docs
* Add DescriptorType, OutputDescriptor
* Get unit test passing for a descriptor with a xpub and bip32 path
* WIP: Implement checksum algo
* WIP: Implement polyMod
* Get checksum unit test case passing
* Get basic serialization test case passing
* Revert Bech32.scala
* WIP: Implement KeyExpression
* WIP: KeyOriginExpression
* Get basic KeyExpression test case passing
* Get basic unit tests workign for parsing Private/Public key descriptor expressions
* Add examples
* Get all key expression unit tests passing
* Get negative test vectors passing
* WIP: Get P2WPKHDescriptor tests working
* Get all serizliation tests passing for non-derivation path BIP382 descrioptors
* Get BIP382 derivation test cases passing
* Implement BIP382 failure test cases
* Get BIP381 test vectors passing
* Split key expressions into SingleKeyExpression,MultisigKeyExpression
* WIP: Multisig descriptors
* Remove custom building of scripts now that we have #5502
* Get BIP383 test vectors passing
* Get BIP384 test vectors passing
* Fix bug in runFailTest()
* Add RawSPKScriptExpression, use it with P2WSHExpression to ensure underlying spk is a RawScriptPubKey
* Get all negative test vectors working after fixing bug in runFailTest()
* Implement BIP385 raw() test vectors, skip addr() descriptor
* Get everything working up to dealing with taproot pubkey types
* Begin working on type hierarchy for different pubkeys
* Get things to the point of needing a custom pubkey type
* Get things compiling w/ PubKeyTypeExpression
* Get tr(WIF) example working
* WIP: Key reworking type hierachy to be PublicKey type specific
* WIP: Taproot helpers
* Get taproot descriptor working with both keypath and single level scriptpath
* Get recursive tapscript tree test vector working
* Implement negative test vectors for BIP386
* Add BIP386 derivation test
* Get extkey tr() descriptor test working
* Rename InternalPublicKeyExpression -> RawPublicXOnlyPublicKeyExpression
* Fix keyOrigin for tr() descriptors
* Cleanup comments
* Add comments
* Move leafVersion TapscriptControlBlock -> TapLeaf
* Add taproot wallet test vectors
* Get parsing logic working
* Get first test case passing
* Add TapLeaf
* Get test cases working with two TapLeaf
* Add TapscriptTree as the top level type for a recursive data structure for TapscriptPath's
* Remove control block parsing for now until we actually test control blocks
* scalafmt
* Get dependencies resolving, get tor module compiling
* Get everything compiling with pekko
* Rework configs/logging to use pekko namespace
* Rename AkkaUtil -> PekkoUtil, BitcoinSAkkaAsyncTest -> BitcoinSPekkoAsyncTest
* Add LargeTransactionTest
* Remove unused ByteArrayOutputStream
* Add block test case for 00000000ce4a4666cce2205d760d37b5579cdedf3ac9e4295557e8ac962cde55
* Cache txId to avoid re-computing txids which can take alot of resources
* Cache WitnessTransaction.toBaseTx, remove println
* remove BlockTest as it didn't capture the bug
* Add test case for 3a8dd04bc1f8179d0b85c8e1a1e89d058833ae64a9a8c3681da3ca329297beb1
* Fix bug where we were classifying things are MultSigScriptPubKey that did not have maxSigs' number of public keys in the Script
* Remove redundant comment
* Get test case setup for tx 1c1f50e
* Fix bug in OP_CHECKLOCKTIMEVERIFY.isValidAsm(), check that the ScriptNumber is lessthan or equal to 5 bytes in size
* Fix bug in OP_CHECKSEQUENCEVERIFY.isValidAsm(), check that the ScriptNumber is lessthan or equal to 5 bytes in size
* Fix bug to check <= rather than <
* Revert Constants.scala, ScriptNumberUtil.scala, remove superflous 'return'
* Fix bug where number needed to be interpreted as a UInt32 rather than Int32 by the ScriptInterpreter in the case of OP_CSV
* Add static test vector, fix another occurrence of bug
* WIP: Try to move byte streaming/parsing of p2p messages out of P2PClient
* WIP2: Work on killing the actor, replace it with a steram
* Get basic ability to send/receive version message working
* Transition PeerMessageReceiverState to Initializing inside of PeerMessagesender.connect()
* Refactor things out of PeerMessageSender.connect(), add some flow logs
* Get NeutrinoNodeTest be able to sync passing
* Fix some bugs, create ConnectionGraph helper class
* Use killswitch rather than Source.maybe to disconnect peer
* WIP: Debug
* Switch halfClose to false on Tcp.outgoingConnection() to not keep lingering connections
* Delete P2PClientActorTest
* Delete all P2PClient stuff
* Attempt implementing reconnection logic in PeerMessageSender
* remove supervisor
* Empty commit to re-run CI
* Small cleanups
* Implement sendResponseTimeout()
* Restore logback-test.xml
* Add callback to log error message on reconnect
* Increase queueSize/maxConcurrentOffers size
* Upgrade scalajs to 1.10.1
* Upgrade to scalajs to 1.11.0
* Try to re-order order tests are run in to avoid scoverage bug with scalajs
* remove duplicate run of asyncUtilsTestJS/test
* Add OrderedSchnorrSignatures, use it in OracleAttestment, propagate it threw the codebase
* Small cleanups
* Add SortedVecFactory
* Fix test case with out of order nonces