3
0
mirror of https://github.com/Qortal/altcoinj.git synced 2025-02-12 18:25:51 +00:00

249 Commits

Author SHA1 Message Date
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
Andreas Schildbach
0a7f346919 Move WrongNetworkException to AddressFormatException.WrongNetwork. 2018-03-02 13:00:56 +01:00
Andreas Schildbach
c0d8039c82 LegacyAddress: Deprecate getHash160(). 2018-02-28 17:01:56 +01:00
Andreas Schildbach
e11119b64f Rename VersionedChecksummedBytes→PrefixedChecksummedBytes, Address→LegacyAddress and AbstractAddress→Address.
This also renames corresponding test classes and mentions in comments.
2018-02-28 16:57:16 +01:00
Andreas Schildbach
4b129475b3 Script: Deprecate the script data extraction methods for CLTV payment channels.
Create and make sure to only use equivalents in ScriptPattern.
2018-02-26 13:25:46 +01:00
Andreas Schildbach
dedeb01dac Move ECKey.toAddress() to Address.fromKey().
This is a preparation for supporting native segwit addresses. Keys can't know what
type of address is wanted. In future, there will also be a SegwitAddress.fromKey().
2018-02-26 02:13:18 +01:00
Andreas Schildbach
e44591a9b5 Script: Deprecate the old matcher methods, move their Javadocs over to ScriptPattern and use only the equivalents in ScriptPattern. 2018-02-25 22:51:15 +01:00
Andreas Schildbach
71a5b1b89f Remove some unused imports. 2018-02-23 20:09:41 +01:00
Andreas Schildbach
cb01312395 Update to slf4j 1.7.25. 2018-02-23 12:24:06 +01:00
Andreas Schildbach
84048b565b Utils: Move parseAsHexOrBase58() to WalletTool, as it's only being used there. 2018-02-22 11:34:25 +01:00
Andreas Schildbach
9dd8e5ab92 WalletTool: New option --fee-sat-per-byte to set network fee in satoshi per byte. 2018-02-07 11:39:07 +01:00
Andreas Schildbach
c927f0238b Rename variable peers to peerGroup, as the name can be misleading. 2017-12-21 12:47:13 +01:00
Andreas Schildbach
3c9cb34162 Move ScriptException from .core to .script package. 2017-08-14 09:24:18 +02:00
Andreas Schildbach
ca033e3368 Option to decrypt private keys and seed on the fly if printing a wallet dump of an encrypted wallet. 2017-08-13 15:22:22 +02:00
Bas van Schaik
759156c71b BuildCheckpoints: Fix possible resource leak. 2017-07-29 21:23:04 +02:00
Andreas Schildbach
9cbc45aeea PeerAddress: Require NetworkParameters in constructors. 2017-01-10 11:23:25 +01:00
Andreas Schildbach
7e609a2409 Remove Orchid forked subproject and support for connecting via Tor. 2016-11-25 23:14:39 +01:00
Andreas Schildbach
8bd47a6c6d TestFeeLevel: Print wallet balance and receive address earlier. 2016-06-15 10:35:37 +02:00
Andreas Schildbach
0d0358fe92 TestFeeLevel: Adapt to fee rate (per kB). 2016-06-15 10:35:37 +02:00
Andreas Schildbach
736fd7dbde Add the generic license header to POMs, shell scripts and JavaScript/Python examples. 2016-06-06 21:32:02 +02:00
Andreas Schildbach
3773a4343c Add a generic copyright statement to all license headers that don't have one.
Note it is not legally necessary to state copyright, but we think it makes things easier.
2016-06-06 21:32:02 +02:00
dcw312
e61eb107dc BuildCheckpoints: Use a peer group for the Prod and Test networks. 2016-06-06 21:23:56 +02:00
Andreas Schildbach
a407f04b56 0.15-SNAPSHOT 2016-04-02 18:04:21 +02:00
Andreas Schildbach
9c83299571 Update to slf4j 1.7.20. 2016-04-02 17:05:24 +02:00
Andreas Schildbach
4e29e4fb00 Wallet: Make SendRequest a top level class. 2016-04-01 22:03:14 +02:00
Andreas Schildbach
1e66b9a8e3 Finish moving wallet related classes to .wallet package.
These classes are moved to .wallet:
- Wallet + WalletTest
- WalletExtension + WalletExtensionsTest
- WalletProtobufSerializer
- UnreadableWalletException

These classes are moved to .wallet.listeners:
- WalletEventListener
- WalletChangeEventListener
- WalletCoinsReceivedEventListener
- WalletCoinsSentEventListener
- WalletReorganizeEventListener
- ScriptsChangeEventListener
- AbstractWalletEventListener
- KeyChainEventListener
- AbstractKeyChainEventListener
2016-04-01 21:44:30 +02:00
Andreas Schildbach
c1938fec75 Harmonize license headers. 2016-03-26 19:55:05 +01:00
Andreas Schildbach
01365ca00b Introduce a Transaction.DEFAULT_TX_FEE and use it as a default for sends and for wallet maintenance.
Previously we were using Transaction.REFERENCE_DEFAULT_MIN_TX_FEE which is the absolute minimum but it can be
too low. This value should be adjusted from time to time; we're starting with 0.1 mBTC.
2016-03-25 13:35:33 +01:00
Andreas Schildbach
c3b19bd5cd Wallet: Get rid of the concept of a "base fee". Fee is always expressed as a rate in Coin per 1000 bytes.
SendRequest.fee was removed; use SendRequest.feePerKb for requesting a specific fee rate. If the field
was read for knowing the calculated fee, use SendRequest.tx.getFee() instead.

Also makes a couple of unit tests independent of fee and renames the wallet-tool option --fee to
--fee-per-kb.
2016-03-12 17:37:31 +01:00