Commit Graph

1266 Commits

Author SHA1 Message Date
Mike Hearn
02e9473201 Minor: add a simple List<T>.indexOfOrThrow() utility and use it in a new LedgerTransaction.outRef helper. 2016-02-29 22:06:18 +01:00
Mike Hearn
bab3c609c1 Minor: provide a specialisation of SerializedBytes<WireTransaction>.deserialize() which caches the bytes properly. 2016-02-29 19:05:06 +01:00
Mike Hearn
0224bca1a9 Add a simple file backed attachment store, with tests. 2016-02-29 19:04:41 +01:00
Mike Hearn
105f9e1069 Add Apache JEXL as a dependency, as part of an exploration of on-the-fly contract specialisation (this solution may not be taken forward but suffices to unblock other work) 2016-02-29 18:56:03 +01:00
Mike Hearn
c24d991a7e Introduce a NamedByHash interface, for things that are identified via secure hash. 2016-02-25 19:24:18 +01:00
Mike Hearn
f32c83b8b3 Protocols: fix unit tests for progress tracker and don't emit UNSTARTED to all subscribers. 2016-02-24 14:51:04 +01:00
Mike Hearn
c3f86f6557 Integrate a simple progress tracking system into the protocol framework.
The progress tracker API lets you model a tree of steps, along the same structure as protocols and subprotocols. Each step has an (optionally changing) label, and thus progress trackers can be arranged in a tree. Updates to the progress at each level flow up the tree via an RxJava observable (I guess we will use this more in future).

A simple console renderer is provided that uses ANSI escapes and Emoji to show animated progress through a protocol.

The trader demo is enhanced to use this framework, when run outside of Gradle.
2016-02-24 12:58:37 +01:00
Mike Hearn
ab2b447a5e Minor: add a TransientProperty utility class.
It makes it a bit easier to define properties that don't survive serialisation and are reconstructed each time.
2016-02-23 18:28:06 +01:00
Mike Hearn
96eacfeda8 Minor: another emoji 2016-02-23 18:28:06 +01:00
Mike Hearn
6c4825aeb2 Minor: fix typo in file name 2016-02-23 18:28:06 +01:00
Mike Hearn
1243ca2066 Trading: in the two party trade protocol, check that the proposed transaction is contract-valid, and that the missing signatures are what is expected. 2016-02-17 18:38:24 +01:00
Mike Hearn
cd28733360 Major: Separate out the dep resolution protocol into a couple of sub protocols and use on both sides of the trade.
* Dependency resolution/checking is now working on both sides of the two party trading protocol.
* The commercial paper contract was changed to check timestamping authority identities by name instead of key.
* The trader demo has been rewritten to use the protocol framework, which simplifies the code.
2016-02-17 18:11:37 +01:00
Mike Hearn
df4d926bca First pass at implementing dependency resolution and checking in the two-party trade protocol.
This commit is incomplete: only the seller side currently checks. The code will be refactored out into subprotocols in further commits.

Note that timeouts are currently unhandled.
2016-02-17 17:19:36 +01:00
Mike Hearn
ed72e9b997 Unit tests: fix a couple of threading issues for async unit tests that use the in memory network 2016-02-16 17:39:08 +01:00
Mike Hearn
de4427c240 Minor: add a few utilities for working with listenable futures 2016-02-16 17:39:02 +01:00
Sofus Mortensen
994abb3edb Added new project core.
Project Contracts depends only on core.
2016-02-16 17:14:17 +01:00