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

2853 Commits

Author SHA1 Message Date
ollekullberg
724cf7de36 Close increasePaymentFuture when receiving an ERROR from the server. 2015-10-21 14:56:18 +02:00
Ross Nicoll
829e147ec7 Add script verification flags for DER format
Add script verification flags for DER format encoding, low-S signatures
and strict encoding.
Pass script verification flags through to signature parser.
Convert block verification flags to a sub-enum of Block.
Remove DER signature format verification flag from block flags.
Add test transaction with a non-standard DER signature, with the verify
flag set/unset accordingly, to tx_invalid.json and tx_valid.json
2015-10-20 13:37:27 +02:00
Ross Nicoll
1c74aac27e Add support for block headers of variable length, when parsing headers messages. 2015-10-18 17:45:06 +01:00
Ross Nicoll
e136642807 Correct length of block header when hashing at an offset 2015-10-18 17:10:56 +02:00
Marc-André Tremblay
4379ca7b94 Fix how key depth is determined.
The way it was previously done before did not allow to properly derive keys which had their position concealed in the hierarchy.

Signed-off-by: Marc-André Tremblay <marcandre.tr@gmail.com>
2015-10-18 17:03:49 +02:00
Ross Nicoll
df56a23f09 Clean up MessageSerializer to simplify subclasses
By replacing MessageSerializer with an abstract class, methods which
should just call other methods in the same class are now fixed, and
subclasses only have to override a single abstract method instead of
multiple.
2015-10-18 16:37:49 +02:00
Ross Nicoll
4375f66d20 Replace magic numbers for header sizes with constants 2015-10-18 12:37:27 +02:00
Andreas Schildbach
a4c9ad6894 Make transactions with signatures with "high" S component violate the "canonical encoding" rule.
This makes those transactions non-standard and risky. By default, they will not be accepted into wallets unless confirmed by the block chain.
2015-10-15 10:42:26 +02:00
Andreas Schildbach
52b9623262 Wallet: Fix printing the same transaction twice when two pending transactions double spend each other are seen. 2015-10-14 15:56:25 +02:00
Andreas Schildbach
bb9c93c9b1 TestFeeLevel: Print the number of peers already connected. 2015-10-13 12:29:06 +02:00
Andreas Schildbach
91a49e66dd TestFeeLevel: 50 connections can take too long to build these days, so halve that value. Should still be enough for transaction propagation. 2015-10-13 12:06:53 +02:00
Mike Hearn
761834bc18 Allow some monkey-patching of Peer methods/Peer creation.
Fix a bug in the min version required feature.
2015-10-08 19:15:07 +02:00
Mike Hearn
0079c272ff PeerGroup: fix a bug that'd leave maxConnections == 0 if setRequiredServices was used without configuring any other discovery (a typical use case). 2015-10-08 16:10:48 +02:00
Mike Hearn
fabbb0a9ac Tweak HS integration again to avoid performance regression. 2015-10-08 15:56:44 +02:00
Mike Hearn
e104bfbb7e PeerAddress/HttpDiscovery: accept unresolved InetSocketAddresses to avoid super-slow reverse DNS lookups for HTTPSeed discovered peers. 2015-10-08 14:51:47 +02:00
Mike Hearn
3d322d5c98 Block/FakeTxBuilder: restore API compat 2015-10-08 14:51:11 +02:00
Mike Hearn
979d20996e PeerAddress: simplify dead code 2015-10-08 13:51:14 +02:00
Mike Hearn
f9c6ded2b8 GetUTXOSMessage: int -> long for flags constant (makes Kotlin interop smoother) 2015-10-08 13:45:34 +02:00
Glenn Marien
ce22d1a493 Fixed imported keys not being passed onto UTXOProvider 2015-10-05 18:00:49 +02:00
Mike Hearn
9ba1be762a Wallet: flip argument ordering in deprecated Wallet.addEventListener to restore compatibility with 0.13 2015-10-05 17:12:55 +02:00
Mike Hearn
0342feee86 PeerGroup: restore and deprecate some removed addEventListener methods 2015-10-05 17:03:20 +02:00
Mike Hearn
f5db4b92be Reverse the order of ListenerRegistration c'tor to restore compatibility with bcj 0.13 2015-10-05 17:01:02 +02:00
Mike Hearn
9bfce1bae0 Remove no longer used variable. 2015-09-30 17:21:39 +02:00
dexX7
be41d84fb9
Add more script edge condition tests
Original submission:
```
commit 1c54757f8678c9131ec55c128b8f1d5b6c73c2f9
Author: Dave Collins <davec@conformal.com>
Date:   Wed May 6 10:16:18 2015 -0500

    Add more script edge condition tests.

    This commit adds some tests to the script_valid.json and tx_invalid.json
    data which exercise more edge conditions that are not currently being
    tested.
```

Via:
https://github.com/bitcoin/bitcoin/pull/6112
2015-09-30 00:34:08 +02:00
dexX7
a3d378bae6
Ensure "OP_0" and "false" have the same represenstation on stack
During the script execution via `executeScript()` certain operations
add boolean values to the stack.

Boolean values, which are added to the stack as result, are represented
as follows in Bitcoin Core:

- `true`: as vector with one element: `[1]`
- `false`: as empty vector with zero elements: `[]`

See:

- 48efbdbe98/src/script/interpreter.cpp (L244)
- 48efbdbe98/src/script/interpreter.cpp (L246)

However, in BitcoinJ the representation of `false` differs in some
cases, where it is represented as Byte array with one element, which
is zero: `[0]`

See:

- `OP_EQUAL`: 5dcf643975/core/src/main/java/org/bitcoinj/script/Script.java (L1025)
- `OP_CHECKSIG`: 5dcf643975/core/src/main/java/org/bitcoinj/script/Script.java (L1304)
- `OP_CHECKMULTISIG`: 5dcf643975/core/src/main/java/org/bitcoinj/script/Script.java (L1381)

At minimum this has an impact on the behavior of `OP_EQUAL` and
`OP_EQUALVERIFY`, when comparing something with `OP_FALSE`/`OP_0`.

This commit attemps to fix the issue, to mirror the verification
behavior of Bitcoin Core, by adding empty Byte arrays to the stack,
instead of Byte arrays with `0`.
2015-09-30 00:30:29 +02:00
Andreas Schildbach
9b860f14de Don't add Maven descriptor to build artifacts.
It's pretty useless and it stands in the way of reproducible builds.
2015-09-27 14:31:21 +02:00
Mike Hearn
7014810cf6 Peer: Break out the onTransactionBroadcast event into a separate interface. 2015-09-18 21:10:53 +01:00
Mike Hearn
c2a67aaa59 Fix thread safety issue when creating multiple wallets in parallel. 2015-09-16 14:11:19 +01:00
Andreas Schildbach
f20cb1132d WalletProtobufSerializer: Rethrow IllegalArgumentException when loading wallets. 2015-09-05 19:23:18 +02:00
Matt Bogosian
66a851bd30 Fix #1078. Add ability to load Wallet without loading its transactions. Use new methods with wallet-tool reset (where transactions are deleted anyway) and with wallet-tool sync (if the --force option is provided). 2015-09-04 18:07:26 +02:00
cyberzac
7c8c2a4b02 Allowing settlement of unused channel 2015-09-04 16:13:49 +02:00
Mike Hearn
fc9ae41883 Restore some deprecated backwards compatibility glue for the event listener changes. 2015-09-02 20:40:22 +02:00
Mike Hearn
5e15c04305 AbstractBlockChain: remove useless final declarations from event listener registration methods added in recent commits 2015-09-02 20:10:38 +02:00
Mike Hearn
9470601ea5 Wallet: make balance futures work for all balance types 2015-09-02 20:10:38 +02:00
Mike Hearn
a73677e9fb DeterministicKey: throw a KeyCrypterException instead of an IllegalStateException if the derivation check fails (as this can happen when the password is wrong) 2015-09-02 20:10:38 +02:00
Mike Hearn
48b4df73a1 Coin: more aliases 2015-09-02 20:10:37 +02:00
Oscar Guindzberg
629e5d864d Rename getChangeAddress() to currentChangeAddress() 2015-09-01 17:39:46 -03:00
Mike Hearn
207ef37894 Coin: add plus/minus aliases for add/subtract. This activates Kotlin operator overloading support. 2015-08-31 15:46:01 +02:00
Mike Hearn
864f2529e8 Wallet: make getUnspents() public. 2015-08-31 15:12:02 +02:00
Mike Hearn
6b4123cd9f Comparison tool: take out the warning sleep 2015-08-27 15:21:50 +02:00
Ross Nicoll
d3d11df6d7 Add BIP 34 enforcement
This patch primarily enforces block height being present in the coinbase
transaction input, altough it introduces a number of other fixes and
changes to support this.

* VersionTally now returns the number of blocks at or above a version, rather than just at, to enable forward-compatible support (i.e. v3 blocks include all v2 block tests)
* Block version is now explicitely provided in most tests which generate blocks, in order to ensure correct tests are applied
* Block height is now used when generating coinbase transactions
* Added support for the chain parameters to determine which tests apply to a block, so altcoins can override the defaults if needed.
* Added initial checks ahead of full BIP 66 validation checks
2015-08-27 15:12:39 +02:00
Oscar Guindzberg
c5727d12fa Fix AbstractBlockChain comments 2015-08-27 15:08:25 +02:00
Andreas Schildbach
eec6eebc68 MonetaryFormat: add message to non-obvious precondition. 2015-08-27 11:15:12 +02:00
peacekeeper
5dcf643975 A transaction output may have multiple OP_RETURNs. 2015-08-26 12:03:41 +02:00
Oscar Guindzberg
cf980bc68c DeterministicKeyChain.toString(): remove unnecessary check to show the xpub. 2015-08-26 11:58:34 +02:00
ollekullberg
ebc888d282 Name change: ProtobufParser → ProtobufConnection, StreamParser → StreamConnection 2015-08-26 11:07:22 +02:00
Andreas Schildbach
74af6a2c8a Set user agent for HTTP discovery. 2015-08-25 17:50:30 +02:00
Andreas Schildbach
5bd0623a28 Convenience method PeerGroup.setRequiredServices() for connecting only to peers that can serve specific services 2015-08-25 12:44:36 +02:00
Andreas Schildbach
72763f2711 Add MultiplexingDiscovery.forServices() that builds a suitable set of peer discoveries for
(optional) a set of desired services.
2015-08-25 12:44:36 +02:00
Andreas Schildbach
1be65483b4 Adds a services bitmask to PeerDiscovery.getPeers(), so we can query HTTP seeds for specific services.
As this is a breaking change to the API, it removes IrcDiscovery (there is no point in keeping it).
Also updates OkHttp to 2.4.0.
2015-08-25 12:44:35 +02:00