3
0
mirror of https://github.com/Qortal/altcoinj.git synced 2025-02-19 13:45:48 +00:00

363 Commits

Author SHA1 Message Date
Andreas Schildbach
295e8a154d Fix handling of defaults when parsing the payment message. Bitpay is leaving out the payment details version which was handled incorrectly. Adds a testcase for the defaults. 2014-02-21 18:19:04 +05:30
Mike Hearn
ce61bd211d Wallet: recursively kill transactions that depend on dead transactions.
Resolves issue 186.
2014-02-21 17:30:45 +05:30
Andreas Schildbach
e7ea8483e4 Add method to clean up the wallet.
Currently, it just removes risky pending transaction from the wallet and only if their outputs have not been spent. Includes unit-tests by Miron Cuperman.
2014-02-20 22:19:17 +01:00
Matt Corallo
af1fdd4a14 Add isStandard risk analysis.
This is currently only to deal with recent spam, especially dust sybil spam. Includes an unit-test by Andreas Schildbach.
2014-02-20 22:19:17 +01:00
Andreas Schildbach
5ca6f13195 Replace usage of BigInteger.compareTo(BigInteger.ZERO) with BigInteger.signum() as it's easier to read and more performant. Passes all unit tests. 2014-02-08 15:00:43 +01:00
Mike Hearn
3c86785a89 Payment protocol: Expose a friendly/display name for validating CA 2014-02-07 18:12:18 +01:00
Erik Tierney
59a18ab43f Add ability to optionally use a schema name in the Postgres block store.
Add a test to make sure things work when we set a schema name.
2014-02-07 17:21:26 +01:00
Mike Hearn
f4def39f40 H2 is now being exercised more thoroughly and was leaving test db files hanging around that would cause the next run to fail, fix.
Rename method/clean up a bit.
2014-01-31 18:49:58 +01:00
Alex Taylor
c10e029384 Postgres block store, with ability to calculate address balances. 2014-01-31 14:23:40 +01:00
Mike Hearn
fff5af29ff Recalculate but don't rebroadcast bloom filters when a p2pubkey output is received.
Resolves issue 513.
2014-01-30 17:43:33 +01:00
Mike Hearn
b3bf4aadb7 Payment protocol: re-organise code a bit to handle Android devices that have the javax property set. 2014-01-30 14:40:44 +01:00
Mike Hearn
f94c41e5b6 PeerGroupTest: Clear some minor static analysis warnings. 2014-01-30 14:13:07 +01:00
Mike Hearn
b5127f4414 Make change selectable in regtest mode even if there is only one peer. 2014-01-30 11:23:10 +01:00
Matt Corallo
28b24d0eaa Fix yet another throw-vs-return but in CHECKSIG (resolves #514) 2014-01-30 03:49:37 -05:00
Mike Hearn
ddec4f9106 Allow Bitcoin URI's that don't have any address component if the r= payment protocol param is there. 2014-01-28 13:04:09 +01:00
Kevin Greene
3966875e8e Adding support for processing PaymentRequests. 2014-01-28 09:46:51 +01:00
Ken Sedgwick
1a3c3be665 BIP-0039 multiple version support. 2014-01-19 09:46:47 +01:00
Mike Hearn
654543bb2b BlockingClient: some fixes for Orchid 2014-01-15 23:16:04 +01:00
Mike Hearn
d7b3766c4b Memory optimisations to avoid OOM when the user thread falls behind.
- Remove needless recalculations of the Bloom filter on any wallet change, instead of just when keys/scripts are added. This may fix one of the privacy leak issues too.
- Run fast catchup/filter recalculations on the dedicated PeerGroup thread instead of abusing the user thread. Resolves a TODO.
- Replace the user thread SingleThreadedExecutor with a custom class that blocks the submitting thread and logs a warning if the queue is saturated, to avoid building up a backlog of closures.
2014-01-14 18:49:09 +01:00
gubatron
0c2f362795 refactor s/Utils.now().getTime()/Utils.currentTimeMillis()/g 2014-01-07 16:16:02 +01:00
Mike Hearn
7324798242 Remove some superfluous methods in HDUtils 2014-01-07 15:23:26 +01:00
Mike Hearn
34e2d1596f Address: rename a static ctor method to be more accurate. 2014-01-07 15:22:00 +01:00
Devrandom
3d99be48bc Priority queue and exponential backoff for PeerGroup
Connect to peers in a service loop thread.

Resolves issue #159
Resolves issue #503
2013-12-23 22:57:19 +00:00
Mike Hearn
f318808cf7 Clean up WalletTransaction and serialization code a bit. 2013-12-22 19:04:24 +01:00
Mike Hearn
b3673999d4 Move WalletTransaction into the wallet package. 2013-12-22 18:48:46 +01:00
Ken Sedgwick
29e2af7ec0 Update to latest version of mnemonic code spec from the Trezor team. 2013-12-20 17:15:24 +01:00
Matt Corallo
c61ec5023e Fix race in TestWithNetworkConnections
There was a nasty bug where a connection-failed interrupt was
run afer any interruptible calls were made, making the next
test-case fail due to interruption.
2013-12-15 09:27:19 -08:00
Devrandom
462c75324e Faster FP tracking using double exponential 2013-12-14 12:42:44 -08:00
Matt Corallo
2f29660d0d Fix broken test case. 2013-12-14 01:11:52 -05:00
Mike Hearn
cdfa0ae61b ECKeyTest: once again, fix a flaky decrypt test. There's no MAC on the encrypted bytes so you can't assume padding checks will always catch corrupted data. 2013-12-13 16:08:54 -08:00
Devrandom
7e4f6369e4 Clean up false positive handling, add unit test 2013-12-13 16:00:42 -08:00
Devrandom
751434ba7c Fix bloom filter sizing with watched scripts 2013-12-13 15:59:07 -08:00
Mike Hearn
86b42b7fe5 Remove disconnectOldVersions2 as it tests nothing, probably a bad merge conflict. 2013-12-13 15:55:08 -08:00
Mike Hearn
c278867186 Add a unit test for Script.toString and don't emit trailing whitespace. 2013-12-12 08:11:23 -08:00
Mike Hearn
2f8740f8a8 Remove usage of deprecated method in PeerTest. 2013-12-11 10:39:31 -08:00
Ken Sedgwick
e86ce7f268 Updated to latest version of BIP-0039. 2013-12-10 17:49:45 -08:00
Ken Sedgwick
5cd10a537a Added Mnemonic{Length,Word,Checksum}Exception and tests for each case. 2013-12-10 17:49:45 -08:00
Mike Hearn
69f52c1b8a Bug fix to avoid a flake in PeerTest.
There seem to be other cases where unit tests can be flaky with nonetty. More fixes will come later.
2013-12-10 13:51:18 -08:00
Mike Hearn
ce4ac86884 Move discovery package into net package. 2013-12-10 13:13:52 -08:00
Mike Hearn
3318d15194 Rename networkabstraction package to just net 2013-12-10 13:12:22 -08:00
Matt Corallo
ba543a3b10 Only do network writes on the handler thread in nio wrappers 2013-12-10 13:03:15 -08:00
Mike Hearn
68a614a33b nonetty: Fix a couple of unit test bugs.
Remove references to netty that still appeared in comments/POM
2013-12-10 13:03:15 -08:00
Matt Corallo
534cec9791 Rewrite the network stack.
Remove Netty entirely, using the new Nio wrapper classes instead

* BitcoinSerializer now uses ByteBuffers directly instead of
  InputStreams.
* TCPNetworkConnection and NetworkConnection interface deleted,
  Peer now extends the abstract class PeerSocketHandler which
  handles deserialization and interfaces with the Nio wrapper
  classes.
* As a part of this, all version message handling has been moved
  to Peer, instead of doing it in TCPNetworkConnection.
* Peer.setMinProtocolVersion() now returns a boolean instead of a
  null/non-null future which holds the now-closing channel.
* Peer.sendMessage (now PeerSocketHandler.sendMessage()) now
  returns void.
* PeerGroup has some significant API changes:
  * removed constructors which take pipeline factories,
    makePipelineFactory, createClientBootstrap
  * Replaced with a setSocketTimeoutMillis method that sets a
    timeout between openConnection() and version/verack exchange.
    (Note that because Peer extends AbstractTimeoutHandler, it has
    useful timeout setters public already).
  * connectTo returns a Peer future, not a ChannelFuture
  * removed peerFromChannelFuture and peerFromChannel
* Peer and PeerGroup Tests have semi-significant rewrites:
  * They use actual TCP connections to localhost
  * The "remote" side is a InboundMessageQueuer, which queues
    inbound messages and allows for writing arbitrary messages.
  * It ignores certain special pings which come from pingAndWait,
    which is used to wait for message processing in the Peer.
  * Removed a broken test in PeerGroupTest that should be reenabled
    if we ever prefer a different version than our minimum version
    again.
  * Removed two duplicate tests in PeerTest (testRun_*Exception)
    which are tested for in badMessage as well.
  * Added a test for peer timeout and large message deserialization

Author:    Matt Corallo <git@bluematt.me>
2013-12-10 13:03:14 -08:00
Mike Hearn
54b1054d03 Add a couple of utility methods for working with P2SH scripts. 2013-12-10 11:38:45 -08:00
Mike Hearn
cebebcef69 Fix unit test failure caused by bad merge. Resolves issue 489. 2013-12-01 13:04:25 +01:00
Devrandom
da2e3e6c98 Support watching of scripts/addresses in wallet 2013-11-30 16:39:58 +01:00
Mike Hearn
98081f0568 Support sending to P2SH addresses. Thanks to Mike Belshe.
Resolves issue 461.
2013-11-30 15:14:52 +01:00
Mike Rosseel
7083c8b669 Increase test coverage. 2013-11-27 17:55:43 +01:00
Mike Hearn
70cd2ffb96 Wallet: throw exceptions when completing a transaction fails.
If there's insufficient balance (typical error) then InsufficientMoneyException is thrown (checked).
If the SendRequest is bad in some way, like asking to create a spend that would violate the protocol rules, IllegalArgumentException is thrown (unchecked).

Also make VerificationException (and thus ProtocolException+ScriptException) unchecked.

Resolves issue 425.
2013-11-27 15:25:52 +01:00
Mike Hearn
8769773717 Add a default c'tor to MnemonicCode and simplify the unit tests. 2013-11-25 00:04:11 +01:00