46 Commits

Author SHA1 Message Date
Andras Slemmer
f4a6a43aa6 contracts, core: Port CommercialPaperTests, IRSTests, ObligationTests, TransactioGroupTests 2016-07-06 13:25:08 +01:00
Andras Slemmer
cb47e00feb core: Add convenience input(), remove TransactionGroupDSL 2016-07-06 13:25:08 +01:00
Shams Asari
5c0e7fbbf2 Moved topic parameter from send/receive methods to a ProtocolLogic property 2016-07-05 15:12:25 +01:00
rick.parker
5271882dcd Event scheduling and docs for event scheduling 2016-06-30 08:51:52 +01:00
Ross Nicoll
c767638127 Move DummyContract.State into its own file
DummyContract.State isn't actually used by the DummyContract any more, so shouldn't
be part of that contract class.
2016-06-29 17:16:46 +01:00
rick.parker
717a5ab197 Break out message handler changes
Special serializer for kotlin object definitions
2016-06-22 09:50:15 +01:00
Ross Nicoll
93e9d0459c Add custom serialiser for NonEmptySet 2016-06-20 16:08:17 +01:00
Andras Slemmer
878a683823 core: Remove warnings 2016-06-20 14:16:13 +01:00
Andras Slemmer
c9cb024bb5 Merged in use-urandom-2 (pull request #166)
Use urandom 3
2016-06-20 14:15:03 +01:00
Andras Slemmer
a7419b116d Add newSecureRandom() that uses a non-blocking SecureRandom provider on Linux 2016-06-20 14:11:03 +01:00
Andrius Dagys
30ca340b6e Refactored NotaryChangeProtocol and tests: moved the proposal verification step into the protocol.
Added another proposal verification step in the NotaryChangeProtocol.
Added the cause exception message to the 'notary change refused' error.
2016-06-17 15:05:35 +01:00
Andrius Dagys
0a5b7ace35 Made TransactionBuilder abstract. Every transaction type now needs to implement and provide its own Builder. This is required since for specific types we need to run different logic when adding new items to the transaction. For example, when adding a new input state to a transaction of type NotaryChange we need to add all of the states participants to the signers list. 2016-06-17 15:05:35 +01:00
Andrius Dagys
70495a021e Introduce TransactionState, which wraps ContractState and holds the notary pointer.
Remove notary from ContractState.
Introduce TransactionType, which specifies custom validation logic for a transaction.
2016-06-17 15:05:35 +01:00
Andrius Dagys
3b1e020082 Extended the data model so that every state has to define a set of 'participants' - parties that are able to consume that state in a valid transaction.
Added protocol for changing the notary for a state, which requires signatures from all participants
2016-06-17 15:05:35 +01:00
Andras Slemmer
0c325c31a2 Revert "Merged in use-urandom-2 (pull request #159)"
This reverts commit 1a1ed3b9e6684131863e53b75b2c18ea785ca3ab, reversing
changes made to 09e2e49d44cf9197dd00464656bee0f33d2201cd.
2016-06-17 14:12:19 +01:00
Andras Slemmer
481d2f7151 core: use newSecureRandom() instead of SecureRandom.getInstanceStrong() 2016-06-17 13:07:25 +01:00
Andras Slemmer
cd91c6a0e7 core: add serialization test for keypairs 2016-06-16 17:03:44 +01:00
Ross Nicoll
f831ffdf3d Add tests for TransactionGraphSearch 2016-06-15 16:21:53 +01:00
Shams Asari
aa153be6f0 moved methods in ChildrenProgressTrackers into ProgressTracker 2016-06-14 16:42:42 +01:00
rick.parker
73cbab0084 Pull out Wallet observable into it's own branch
Review feedback

Review feedback

Apply feedback from previous PR

Apply feedback from previous PR

Apply feedback from previous PR

PR feedback

PR feedback

PR feedback
2016-06-10 17:16:56 +01:00
Shams Asari
654dc3f60a Resuming from checkpoints now working - seller (but not buyer) in trader demo can be restarted 2016-06-06 17:49:40 +01:00
rick.parker
8122e35a8a Have ServiceHub entries implement SerializeAsToken so they are not copied into protocol checkpoints. 2016-06-06 16:55:46 +01:00
Ross Nicoll
d7b367965f Genericise Amount class
Make the Amount class generic so it doesn't have to represent a quantity of a
currency, but can handle other things such as assets as well, or extended detail
(for example a currency-issuer tuple).
2016-06-01 11:58:13 +01:00
Ross Nicoll
f7c0756526 Add a dummy test to NonEmptySetTest.Guava
Add a dummy test so that when IntelliJ (incorrectly) scans NonEmptySetTest.Guava
looking for tests, it finds one and doesn't complain.
2016-05-25 10:17:02 +01:00
Ross Nicoll
e3727a1de6 Merged in rnicoll-base58-tests (pull request #113)
Port Base58Test to Kotlin
2016-05-24 18:20:56 +01:00
Ross Nicoll
4744740913 Add NonEmptySet
Add a new set-like collection which is constrained to ensure it's never
empty.
2016-05-24 15:39:24 +01:00
Ross Nicoll
40b6b0d186 Port Base58Test to Kotlin 2016-05-24 14:20:53 +01:00
Matthew Nesbit
63a5fd1b9e Add com.r3corda to all namespaces. 2016-05-23 14:53:56 +01:00
Matthew Nesbit
60ff42dd30 Move test to core as part of tidy up. 2016-05-20 16:43:02 +01:00
Matthew Nesbit
69cba98ddc Push unit tests that needed some contract functionality into core by embedding the minimal contract support needed. 2016-05-20 16:43:02 +01:00
Matthew Nesbit
f6f56797ce Refactor code into clear core, contracts and node namespaces. Move services into clear implementation and api sides. Push unit tests down to lowest level of dependency hierarchy possible. 2016-05-20 16:42:59 +01:00
rick.parker
041aab5af0 Serialization tokenization support for large objects (e.g. entries in ServiceHub) 2016-05-18 10:25:50 +01:00
Matthew Nesbit
058ac986bd Move contracts base files to namespace to make api aspect clearer in includes.
Move Party to core.crypto as Party is closely aligned with the signing and used in code areas unrelated to the contract code.
2016-05-14 13:47:07 +01:00
Mike Hearn
81c698a260 Minor: fix some compiler warnings 2016-05-13 12:58:17 +02:00
Ross Nicoll
7c9cff799e Add SignedData class
Adds a new SignedData class which will provide a deserialized copy of the data
contained only if the signature on it is valid.
2016-04-27 13:16:01 +01:00
Andrius Dagys
9a8b3bd1ef Added interpolation functionality for the rates oracle. The oracle can be set up with different interpolation mechanisms, currently supported are: linear and cubic spline 2016-04-13 12:32:04 +01:00
Mike Hearn
49d5fb33c4 Remove copyright headers from the files and put the text in the README instead, per feedback from Jacob and external counsel. 2016-04-08 11:46:07 +02:00
Mike Hearn
caf48b65c9 Run auto-formatter over the code. 2016-04-07 20:16:28 +02:00
Andrius Dagys
ec80ddfcd5 Added an interpolator (natural cubic splines) to be used by the interest rate fix oracle for missing data points. 2016-04-05 15:35:47 +01:00
Richard Green
6c0e696107 Updated with new Tenor class that verifies string during construction.
Now uses new Tenor class for Interest Rate Oracle
2016-03-22 11:46:06 +00:00
Richard Green
a78c5b11d1 IRS Contract example 2016-03-22 11:36:40 +00:00
Richard Green
5e3ff4238f Cosmetic change to Amount to display decimal places 2016-03-18 13:45:22 +00:00
Richard Green
966724f941 Utility functions / classes / enums that will assist in the writing of some financial products 2016-03-15 18:22:36 +00: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
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