* Create 'fundRawTransaction' and 'fundRawTransactionInternal'
* Move TransactionTestUtil to testkit, begin writing tests for fundrawtransaction
* Add FundTransactionTests
* Move things to 'FundTransactionHandling' trait
* Start segregating things by HDAccount in the wallet, this gives us the ability to query for balances based on account, fund a transaction based on an account, generate a new address based on an account etc. All old api calls are now based on the default account, i.e. getBalance() returns the balance for account 0, fundRawTransaction funds the transaction from account 0 etc.
* Fix compile issue with 2.11.x
* Bump address generation Thread.sleep() to 500ms
* Address ben code review
* Address code review
* Introduced UTXOSpendingInfoSingle
* Implemented constructors for UTXOSpendingInfoSingle
* Introduced BitcoinSignerSingle
* Implemented SingleSigner
* Added property-based test for SingleSigner, it fails
* Fixed SignerTest :)
* Responded to code review
* Added scaladocs
* Fixed p2sh(p2wsh) signing
* Responded to code review and separated UTXOSpendingInfoSingle from UTXOSpendingInfoFull
* Fixed outputGen after rebase
* Fixed txbuilder.md to show this branch's changes
* Create 'fundRawTransaction' and 'fundRawTransactionInternal'
* Move TransactionTestUtil to testkit, begin writing tests for fundrawtransaction
* Add FundTransactionTests
* Move things to 'FundTransactionHandling' trait
* Address code review
* Run scalafmt
* Create MaskedToString, implement it in ECPrivateKey, ExtPrivateKey, MnemonicCode
* Add MaskedToString to AesPassword, AesKey, and BIP39Seed
* Add final to MaskedToString.toString() so it can't be overriden
* P2SH Signing
* Clean code, give P2SHTxSigCompenent implicit type
* fix infinite loops
* Correctly use nested spending info for p2sh
* P2SHP2WSH Support
* Create actual sigs, incoroparte in tests
* Simplify code, make P2SHTxSigComponent ADT
* Fix test issues
* Add more expressive txo states for the wallet
* Rename 'PendingReceived/PendingSpent' -> 'UnconfirmedReceived/UnconfirmedSent'
* Address code review
* Fix posInt implementation to work with older scala versions
* Rename to PendingConfirmationReceived/PendingConfirmationSpent
* Move initialization of wallet entropy into the key manager
* Enable key-manager in ci, add coverage minimum
* Add coverage minimum for key manager, add KeyManagerParams, start adding KeyManager test harness
* Remove success cases on ADTs, start using Either
* fix import
* Get test coverage to 90%
* Add documentation for key-manager.md, add side bar for key-manager
* Fix wallet.md
* Make seedPath default to baseDatadir, so we don't have a unique seed for every network. Add more documentation
* Address code review
* Address code review from Ben
* Add missing import
* Add more tests for coverage
* Create ExtSign, use it on ExtPrivateKey
* Add documentation on how to Sign things with ExtSign
* Add ExtSign.sign for a bip32 path
* Make sign(bytes,path) not return a Future, add documentation
* Address nadav's code review
* Fix mdoc sign.md
* Fix CLTV bug where timestamps using seconds are not allowed in TxBuilder
* Added test for CLTV second timestamp and ran scalafmt
* Fixed another bug
* Fixed bug where calcLockTime was not looking past first CLTV tx
* bitcoind v19 new RPC calls and tests (#863)
* bitcoind v19 new RPC calls and tests
* Code review changes
* Review part 2
* Rename variable to be more descriptive
* Explanitory comment
* Ignore broken test cases
* Add missing signing functions
* Add test to check avoid_reuse flag is on (#870)
* Add test to check avoid_reuse flag is on
* Add test to make sure flags weren't set
* bitcoind v19 Update mempool RPCs and tests (#868)
* Update mempool RPC calls to bitcoind v19 compatibility
* Typo fix
* Add parameter name to calls
* Fix remaining rpc calls
* Formatting
* scaladoc for param
* Change param to correct type
* Clarify on scaladoc
* Add missing fees parmater to mempool rpcs (#875)
* Add weight field to mempool entries after v19 (#876)
* Move DescriptorRpc to be able to be used by future versions of bitcoind (#878)
* Add window_final_block_height to GetChainTxStatsResult (#880)
* Add passphrase argument to createwallet for later versions (#883)
* Add passphrase argument to createwallet for later versions
* Scaladoc + empty passphrase requirement
* Error message
* Add new services names parameter to P2P rpcs (#874)
* Add new services names parameter to P2P rpcs
* Add ServiceIdentifier Reads
* Add fallback case
* Address review
* Change to Try
* Move PsbtRpc to be able to be used by future versions of bitcoind (#877)
* Move PsbtRpc to be able to be used by future versions of bitcoind
* Add test
* Address comment
* Enable bloom filters for v19
* Enable bip 61 for tests
* Change to official binaries
* Force v18 for Spv Tests
* Remove unused config line
* Added MultiSignatureWithTimeoutScriptPubKey
* Renamed If and NotIf to NonStandardIf and NonStandardNotIf and removed multiple representations
* Added MultiSignatureScriptPubKey to CreditingTxGenerators
* Responded to code review
* Fixed UTXOSpendingInfoTest
* Added ConditionalScriptPubKeys to CreditingTxGen so that we are actually testing Conditional signing now
* Responded to code review
* Renamed scriptPubKeyTooBig => redeemScriptTooBig
* Redid conditional interpreting without binary trees
* Fixed ControlOperationsInterpreterTest
* Implemented O(1) conditional handling as proposed here https://github.com/bitcoin/bitcoin/pull/16902 because Ben Carman pointed it out
* Added some docs
* Responded to code review
* Introduced ConditionalScriptPubKey
Some more progress
Added Conditional signing infrastracture, tests do not pass and there are no Conditional tests
Fixed tests!
* Redid calcLockTime and calcSequenceForInputs in TxBuilder (added Conditional support)
* Added ScriptGenerators for Conditional scripts, only one test to go!
* Fixed CLTV(Empty) tests
* Responded to code review
* responded to code review
* ScriptSignature only types Policy-compliant script signatures
* Fixed md doc
* Replace scriptPubKeyToSatisfy with spendingInfoToSatisfy and made UTXOSpendingInfo ADT nicer
Tightened up types on Signer with a type parameter
Factored out common functionality in Signer
Responded to code review
* More review
* Refactored Signer interface to use TxSigComponent and UTXOSpendingInfo
Fixed all the broken things
Replaced TxSigComponent with unsigned Transaction in Signer interface to remove illegal states
* Added p2sh throw case in Signer
* Create an ADT to represent the various types of utxos we can have. Now we have RawScriptUTXOSpendingInfo, SegwitV0NativeUTXOSpendingInfo, P2SHSpendingInfo, P2SHNestedSegwitV0UTXOSpendingInfo. This hopefully can be used in combination with the P2WSHSigner and LockTimeSigner work to make TxBuilder and the Signers more comprehensible
* Added P2SH nested witness invariants and made BitcoinUTXOSpendingInfo backwards compatible, BitcoinTxBuilderSpec has one failing test
* Fixed testing around UTXOSpendingInfo
* Responded to code review
* Created P2WSHSigner and removed P2WSHWitnessSPKV0 case from P2PK and P2PKH signers
* Moved P2WSH MultiSig from MultiSigSigner to P2WSHSigner
* Cleaned up P2WSH case of BitcoinTxBuilder.signAndAddInput to exclusively use P2WSHSigner
* Replaced Option[(TxSigComponent, ScriptPubKey)] with an ADT
* Added signing with overrides to super Signer class to simplify delegation code
* Added Scaladocs for OverridesForNestedSigning ADT
* Made naming better for OverridesForNestedSigning ADT and added scaladocs