Commit Graph

2128 Commits

Author SHA1 Message Date
Mike Hearn
6cb86ab840 Plumb attachments through to the contract verify functions (no contract uses them yet).
The right way to do this is probably to put the contracts onto the classpath before execution of the contract. However, this interacts closely with the sandboxing work, which isn't yet started, so for now this will do.
2016-03-02 15:35:46 +01:00
Mike Hearn
1123c28f02 Make the trader demo attach a PDF to the commercial paper self-issuance and then scan for it on the buyer side, print out the path on the filesystem where the PDF can be found. 2016-03-02 15:08:55 +01:00
Mike Hearn
8d906c703d Support auto-expansion of attachment jars on disk. 2016-03-02 14:51:42 +01:00
Mike Hearn
7fd9b43e50 Add a simple TransactionGraphSearch class that can be used to query transaction graphs recursively loaded from storage. Right now it only supports a single type of query. 2016-03-02 14:51:42 +01:00
Mike Hearn
f0fa9e3097 Resolve and insert attachments to the local store when resolving transactions. Attachments aren't yet exposed to contract code. 2016-03-02 14:51:42 +01:00
Mike Hearn
7f5eb5bf2f Minor: make TwoPartyTradeProtocolTests use the new MockNode infrastructure 2016-03-02 14:51:42 +01:00
Mike Hearn
a69a663354 Minor: add a paperclip icon to the Emoji library 2016-03-02 14:51:42 +01:00
Mike Hearn
c52f1e096f Minor: a serialisation related fix and an additional explainer comment in SerializedBytes 2016-03-02 14:51:42 +01:00
Mike Hearn
42cd9a14cb Minor: fix bug in SecureHash.parse() 2016-03-02 14:51:42 +01:00
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
8f27c35f18 Minor: compile->testCompile dependency in core/build.gradle 2016-02-24 14:50:21 +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
54a73166c3 Merge branch 'master' into PLT-61-resolve-deps 2016-02-18 17:22:35 +01:00
Mike Hearn
f6167cbe12 Minor: tweak build file to describe how to activate Dokka API docs 2016-02-18 13:43:15 +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