Commit graph

277 commits

Author SHA1 Message Date
Andreas Schildbach
dbc4cb1d4c Make all Loggers final. 2020-05-17 14:48:44 +02:00
Sean Gilligan
0aef9836db build.gradle: Add 'application' plugin to tools subproject.
* Enable and configure Gradle application plugin
* Add wallet-tool instructions in project README.md
2020-03-12 00:25:19 +01:00
Sean Gilligan
e4c6b98536 Make Guava an api dependency using java-library
Use the Gradle java-library plugin to make Guava an `api`
dependency since Guava types are used in the bitcoinj public API.

This allows us to remove explicit dependencies on
Guava in the other modules.
2020-02-29 15:28:09 -08:00
Andreas Schildbach
0112e3ccbe Update slf4j to 1.7.30. 2020-01-23 01:16:58 +01:00
Andreas Schildbach
68538e57af Update Guava to 28.2-android. 2020-01-23 01:09:35 +01:00
Andreas Schildbach
ded215e69e Update slf4j to 1.7.29. 2019-11-21 12:35:13 +01:00
Andreas Schildbach
1e10248d3c BuildCheckpoints: Reduce default safety margin to one week. 2019-11-20 19:45:38 +01:00
Andreas Schildbach
f396327246 Update Guava to 28.1-android. 2019-10-21 12:15:53 +02:00
Sean Gilligan
03d7d7369f Update slf4j to 1.7.28.
1.7.28 fixes an error in 1.7.27 that could affect some users of JPMS modules.
2019-08-27 12:16:59 +02:00
Sean Gilligan
1394f91d61 Update slf4j to 1.7.27. 2019-08-08 09:43:56 +02:00
Andreas Schildbach
726c7291ac Wallet: Remove global coinSelector and allowSpendingUnconfirmedTransactions().
Coin selection is a per SendRequest, per createSend() or per getBalance() call affair.
Having it wallet-global can lead to race conditions, as sometimes experienced in the
WalletTest unit tests.
2019-07-26 20:30:27 +02:00
Andreas Schildbach
cee5264ab9 build.gradle: Specify javadoc encodings. 2019-07-26 17:14:37 +02:00
Sean Gilligan
951d18b9a7 Update slf4j to 1.7.26. 2019-07-26 10:43:57 +02:00
Andreas Schildbach
d67f060e27 Remove Micropayment Channels.
Now that HTLC-based bi-directional payment channels are state of the art, nobody will ever use the old style.
2019-07-15 11:05:14 +02:00
Andreas Schildbach
c168e67703 Wallet: Implement witness fee discount.
Fee is now specified in virtual (kilo)bytes. For non-segwit transactions a virtual byte is the same as a byte so the change is backward compatible.
2019-04-29 10:03:04 +02:00
Andreas Schildbach
f83f8187d6 wallet-tool-help.txt: Move description of fee options to general options section. 2019-04-22 19:19:22 +02:00
Tiberiu Nitan
537b244bfa BuildCheckpoints: Wrap streams in try/finally block to avoid possible resource leaks. 2019-04-22 08:46:28 +02:00
Sean Gilligan
7bfeff65f6 build.gradle: Use plugins block rather than 'apply plugin' statements. 2019-04-18 16:41:12 +02:00
Sean Gilligan
170cc80e45 Update Guava to 27.1-android. 2019-04-05 10:31:35 +02:00
Andreas Schildbach
83b1e44d7d settings.gradle: Prefix project names by 'bitcoinj-'. 2019-03-24 10:34:23 +01:00
Andreas Schildbach
db51bb257c Use plain Gradle console for running any of the tools. 2019-03-20 22:30:09 +01:00
Andreas Schildbach
19fbc76e2f Don't use the Gradle daemon for running any of the tools. 2019-03-13 11:38:07 +01:00
Andreas Schildbach
246fc5ae55 Wallet: In toString(), add a flag for including the lookahead keys into the dump. 2019-02-19 12:20:04 +01:00
Andreas Schildbach
d7d6c3de09 Wallet-tool: Allow comma, semicolon and double colon as separator for seed words to work around the inability of Gradle to pass proper command line arguments. 2019-02-19 10:54:07 +01:00
Andreas Schildbach
08bb331cc3 Update jopt-simple to 5.0.4. 2019-02-15 04:03:39 +01:00
Andreas Schildbach
f24a4aa19a Update Guava to 27.0.1-android. 2019-02-15 03:34:11 +01:00
Andreas Schildbach
34e8bc217a build.gradle: Configure Eclipse plugin. 2019-02-14 23:03:24 +01:00
Andreas Schildbach
05efa7e69e KeyChainGroup, Wallet: Implement the upgrade path Basic --> P2PKH --> P2WPKH. 2019-02-14 14:22:12 +01:00
Andreas Schildbach
3c73f5e8a1 KeyChainGroup: Introduce concept of multiple active keychains.
The newest/last active keychain is the default. Almost all of this class only works on the default active keychain.
All other active keychains are meant as fallback for if a sender doesn't understand a certain new script type.
New P2WPKH KeyChainGroups are created with a P2PKH fallback chain. This will likely go away in future as P2WPKH
and Bech32 are becoming the norm.
2019-02-13 23:40:20 +01:00
Andreas Schildbach
eb15ac07d3 Wallet: Remove implicit upgrade from a basic to a deterministic wallet.
It never worked for encrypted wallets anyways, and encrypted wallets should be
the the norm. Use Wallet.isDeterministicUpgradeRequired() to find out if your
wallet should be upgraded and invoke Wallet.upgradeToDeterministic() when the
time is right.
2019-02-13 21:57:57 +01:00
Andreas Schildbach
4f5b2f2660 KeyChainGroup: Remove ability to change default lookaheadSize and lookaheadThreshold after construction.
Use Builder.lookaheadSize() and Builder.lookaheadThreshold() if you want to change the defaults, or
manage lookahead on DeterministicKeyChains directly.
2019-02-13 16:26:57 +01:00
Andreas Schildbach
bfe2a195b6 Receive to and send from native segwit addresses
- Hierarchical-deterministic derivation of native segwit addresses.
- Receive payments to native segwit addresses.
- Spend and sign payments from native segwit addresses.
- Watch-only wallets with native segwit addresses (zpub/vpub).
- WalletAppKit, Wallet-tool and Wallet-template are taught to deal with segwit-enabled wallets.

Be aware this adds a new field in the wallet protobuf: output_script_type in Key, which keeps track
of the script type of DeterministicKeyChains. Protobufs will be migrated; old DeterministicKeyChains
are assumed to be of type P2PKH.

Includes some code by Fabrice Drouin.
2019-02-11 16:48:37 +01:00
Andreas Schildbach
53a63c43bb Transaction: Add getTxId() and getWTxId(); deprecate getHash() and getHashAsString(). 2019-02-06 02:15:11 +01:00
Andreas Schildbach
72f78041ac WalletTool: Warn if an uncompressed key was imported. 2019-02-04 12:09:49 +01:00
Andreas Schildbach
36f140d0a4 WalletTool: Print success message for key removal. 2019-02-03 17:12:15 +01:00
Andreas Schildbach
5464e5560e WalletTool: Fix importing of private key in WIF (wallet import format). 2019-02-03 16:57:13 +01:00
Andreas Schildbach
ac7a576b3d WalletTool: Use Wallet.hasKey() rather than Wallet.findKeyFromPubKey(). 2019-02-03 16:55:13 +01:00
Andreas Schildbach
4c953cc538 WalletTool: Fix checkpoint is ignored when synching. 2019-02-03 14:44:43 +01:00
Andreas Schildbach
492b3c7f8d Wallet: Add findKeyFromAddress() convenience method. 2019-02-01 17:13:08 +01:00
Andreas Schildbach
09832a65ee WalletTool: Fix not using peer discoveries. 2019-01-31 21:34:31 +01:00
Andreas Schildbach
7b0a9c207f Update Guava to 25.1-android. 2018-11-27 13:41:58 +01:00
Andreas Schildbach
2992cc16ff build.gradle: Specify source encodings. 2018-10-31 11:12:49 +01:00
Andreas Schildbach
ad262de961 Migrate from SpongyCastle back to BouncyCastle.
Google moved their broken BouncyCastle out of the way with Android 3.0
(see 0ac85ead96%5E%21/).
2018-10-23 16:09:10 +02:00
Andreas Schildbach
5c768c6ae5 Migrate use of BouncyCastle/SpongyCastle Hex encoder to Guava BaseEncoding. 2018-10-23 16:05:44 +02:00
Andreas Schildbach
aaa5262ef4 Migrate from Maven to Gradle 3.4 for building. 2018-05-01 16:49:30 +02:00
Andreas Schildbach
11d7f15322 BlockImporter: Set bitcoinj context. 2018-04-06 19:20:13 +02:00
Andreas Schildbach
4bbb7be059 Migrate fully qualified names to using imports. 2018-03-11 21:36:25 +01:00
Andreas Schildbach
5b008f90e0 Migrate from Guava Charsets to Java7 StandardCharsets constants. 2018-03-09 17:05:09 +01:00
Andreas Schildbach
7f5b6753f5 Use Address whereever possible in the API, rather than LegacyAddress.
This is a preparation for the remaining segwit changes. LegacyAddress
variables in unit tests are also changed.
2018-03-05 10:35:09 +01:00
Andreas Schildbach
52afdc629e Teach SendRequest and Wallet to send to native segwit addresses.
WalletTool and FakeTxBuilder can do it, too.
2018-03-04 15:30:37 +01:00