Commit Graph

801 Commits

Author SHA1 Message Date
Katarzyna Streich
a38e7e54a0 Minor style changes in tests. 2016-11-04 17:15:59 +00:00
Katarzyna Streich
79fc47f0ec Add comments and minor changes. 2016-11-04 17:15:59 +00:00
Katarzyna Streich
b31598b801 Change tests to reflect changes in code structure. 2016-11-04 17:15:59 +00:00
Katarzyna Streich
e823e11e85 Change places in code where instead of transaction id hash is used. 2016-11-04 17:15:59 +00:00
Katarzyna Streich
6b5ad92f9b Substitute WireTransaction id property getter with calculated merkle root. 2016-11-04 17:15:59 +00:00
Katarzyna Streich
ea826988af Add leaves filtering and building trees with different leaves types. 2016-11-04 17:15:59 +00:00
Katarzyna Streich
2ce21842f8 Add simple filtering and ordering of command leaves. 2016-11-04 17:15:59 +00:00
Katarzyna Streich
7f6f1807b1 Code cleanup and add comments. 2016-11-04 17:15:59 +00:00
Katarzyna Streich
0c573c76e2 Add simple partial tree building and verification tests (also on transactions). 2016-11-04 17:15:59 +00:00
Katarzyna Streich
930f6bbb24 Add initial test for testing Partial Merkle Tree building. 2016-11-04 17:15:59 +00:00
Katarzyna Streich
b5fd359c0a Add Partial Merkle Tree verification.
Not tested.
2016-11-04 17:15:59 +00:00
Katarzyna Streich
e8bdfa5691 Build Partial Merkle Tree for filtered transactions. 2016-11-04 17:15:59 +00:00
Katarzyna Streich
1a8e47fcaa Filter, build and verify merklized transaction from a wire transaction.
Initial structure for a merkleized transaction, with full Merkle tree building.
2016-11-04 17:15:59 +00:00
Ross Nicoll
9d254bd924 Use UUID only for UniqueIdentifier equality
The UniqueIdentifier class exists to ensure any external ID for a state is kept coupled to a
proper unique ID, however in doing so it requires both UUID and external ID to find linear head
states in the vault. This modifies the equality and hashing algorithms to use the UUID only,
so that lookup can be done without knowing the external ID.
2016-11-04 16:16:43 +00:00
Shams Asari
bd89da458b Added nice extension methods for Path, which are more readable than the static methods from Files 2016-11-04 15:36:14 +00:00
Clinton Alexander
cf4b91d7c7 Removed redundant file. 2016-11-03 11:03:54 +00:00
Clinton Alexander
acaa9f82a5 Rewrote some documentation about the simm demo. Moved a util function to the main utils file. 2016-11-03 11:03:54 +00:00
Clinton Alexander
73a2215747 Added core changes and docs required for simm valuation demo. 2016-11-03 11:01:36 +00:00
Shams Asari
6d39b71bf9 Simple RPC access control, with a demo control on the cash RPCs 2016-11-03 10:46:25 +00:00
Jose Coll
1d25d23b73 Merge from master 2016-11-02 14:20:51 +00:00
Jose Coll
012dc9ec10 Merge branch 'master' into colljos-vault-code-clean-up-refactor 2016-11-02 11:20:21 +00:00
Jose Coll
a38b363e9d Fixed subtle bug in Cash Spending when processing for same Issuer with multiple refs. 2016-11-02 11:15:09 +00:00
Jose Coll
7e3c00c1ff Merged in colljos-pluginservicehub (pull request #427)
Added PluginServiceHub for use by Corda plugin service extensions.
2016-11-01 17:12:52 +00:00
Jose Coll
f415c497d9 Minor changes to address PR feedback and comments 2016-11-01 16:47:50 +00:00
Jose Coll
253a70f55e Fixed bug in generateSpending whereby Issuer Ref was not being checked. 2016-11-01 16:12:19 +00:00
Ross Nicoll
613a86c5d9 Remove deposit and issuanceDef fields
Remove deposit field from the FungibleAsset interface, and moved it into a fixed reference to
amount.token.issuer.
Remove issuanceDef field and replace it with amount.token.
2016-11-01 14:49:57 +00:00
Jose Coll
d9f0a161e4 Addressed comments in PR review. 2016-11-01 12:05:48 +00:00
Clinton Alexander
276683e053 Merged in clint-attachmentdemosample (pull request #421)
Moved attachment demo to another repo. Added ApiUtils.
2016-11-01 11:54:59 +00:00
Clinton Alexander
7d08c0b068 Removed attachment demo.
Added ApiUtils - a library for managing api lifecycles with less boilerplate.

Added default values to http api and improved the api utils.

Fixed spacing and comments.

Removed withName and added a bad request response to handle error cases.

Replaced use of 400 error with a 404 and error message as per HTTP spec.
2016-11-01 11:53:49 +00:00
Jose Coll
c5500caf98 Minor changes to address PR feedback and comments 2016-11-01 11:39:11 +00:00
Jose Coll
308d7c1df7 Added PluginServiceHub for use by Corda plugin service extensions. 2016-10-31 17:15:06 +00:00
Andras Slemmer
3f36462053 core: Bind client socket to getLocalHost explicitly, fixes #6 2016-10-31 15:53:15 +00:00
Jose Coll
2ce310050e Revert incorrect merge commit. 2016-10-28 10:28:15 +01:00
Jose Coll
b46de0b964 Merge remote-tracking branch 'origin/colljos-vault-transaction-notes' into colljos-vault-transaction-notes
# Conflicts:
#	core/src/main/kotlin/com/r3corda/core/node/services/Services.kt
#	core/src/main/kotlin/com/r3corda/core/testing/InMemoryVaultService.kt
#	node/src/main/kotlin/com/r3corda/node/services/vault/NodeVaultService.kt
2016-10-28 09:59:58 +01:00
Jose Coll
369214a747 Additional method on VaultService to add notes to a transaction
Additional method on VaultService to retrieve notes for a transaction
2016-10-28 09:57:33 +01:00
Jose Coll
504ec42720 Additional method on VaultService to retrieve notes for a transaction 2016-10-27 16:35:26 +01:00
Jose Coll
bc525aabdf FungibleAsset reverted back to original filename. 2016-10-27 16:21:05 +01:00
Jose Coll
f2e98ffba5 Merge branches 'colljos-vault-transaction-notes' and 'master' of https://bitbucket.org/R3-CEV/r3prototyping into colljos-vault-transaction-notes 2016-10-27 14:59:37 +01:00
Jose Coll
7d080c39df Merge remote-tracking branch 'remotes/origin/master' into colljos-vault-code-clean-up-refactor
# Conflicts:
#	core/src/main/kotlin/com/r3corda/core/contracts/Structures.kt
#	node/src/test/kotlin/com/r3corda/node/services/NodeSchedulerServiceTest.kt

Fixed failing CommercialPaper test
(caused by re-use of same database transaction context for vault across two different transaction participants)
2016-10-27 12:56:08 +01:00
Ross Nicoll
65a03efc55 Correct Comparable interface used for isOrderedAndUnique() 2016-10-25 14:31:37 +01:00
Clinton Alexander
2f5efb34d6 Removed the RatesFixProtocol and dependent code and moved to the IRS repo. 2016-10-24 17:56:16 +01:00
Clinton Alexander
2727d56b4a Removed IRS specific code to new repo. 2016-10-24 17:56:16 +01:00
Shams Asari
e2d6ace449 RPC client authentication using user/password from config file 2016-10-20 17:55:16 +01:00
Jose Coll
75f671a446 Decommissioned InMemoryVaultService service (all dependent Tests updated to use NodeVaultService) 2016-10-20 13:10:00 +01:00
Jose Coll
c7d98b8c6b Fixed items raised by MH in CRD-CR-58 code review. 2016-10-20 10:52:51 +01:00
Jose Coll
04920c9507 Additional method on VaultService to add notes to a transaction 2016-10-19 15:06:52 +01:00
Jose Coll
62dfea2a1a Re-factoring of OnLedgerAsset generateSpend code (moved to VaultService) 2016-10-17 17:58:26 +01:00
Patrick Kuo
3403d50168 Merged pat-cash-creation-ui into master 2016-10-17 16:10:53 +01:00
rick.parker
962fdba0f8 Make transaction -> statemachine id mapping persistent. 2016-10-17 11:33:29 +01:00
Patrick Kuo
d4362fbd78 New counterparty model and subscription mechanism to retrieve and track counterparty changes in network map
New transaction creation screen for creating new cash transactions, using party info source from the counterparty model.
2016-10-17 11:25:20 +01:00
Jose Coll
67b2d91b33 Re-factoring of CashBalances code (moved to VaultService) 2016-10-17 11:16:53 +01:00
rick.parker
02a9f8fe67 Remove SAME_THREAD executor and it's use in MockNetwork etc.
Remove all traces of unused optional Executor in messaging.
2016-10-12 12:02:28 +01:00
Matthew Nesbit
1f3b1f4df9 Transactions in database
Include basic unit tests of Transaction storage

Use Rick's column storage code as suggested in PR comments

Remove blank line
2016-10-11 17:49:15 +01:00
Clinton Alexander
d85c82d505 Replaced maven plugin with the newer, simpler, maven-publish plugin and added an alias. 2016-10-11 13:05:46 +01:00
Matthew Nesbit
1388454396 Never send transactions to the Notary that aren't signed by all parties. Toughen up to use validating Notary in general and put Client precheck into NotaryProtocol.
Rename method to better reflect its actions

Handle comments from PR

Correct indentation
2016-10-11 10:43:40 +01:00
Shams Asari
ac01b67549 Using the protocol ID for the protocol logger name 2016-10-10 13:45:43 +01:00
Matthew Nesbit
1e836edd78 Change ServiceType to a sealed class from an abstract class
Allow AdvertisedServices to have their own identity and keys. Also, rationalise legalIdentity onto the local node's NodeInfo which is available on ServiceHub

Fixup after rebase

Remove legal identity that was on storage service. Now access via myInfo.legalIdentity and key via keyManagement lookup.

Enforce singleton notary per node for now

Tidy up based upon Rick's suggestions

Handle PR comments

clean up imports

Fix typo

Fixup rename

Capitalise comment

Eliminate unused variable warning

Make changes based upon PR comments

Cleanup whitespace changes
2016-10-07 13:44:51 +01:00
Mike Hearn
0bcecac7f6 Merge branch 'master' of https://bitbucket.org/R3-CEV/r3prototyping 2016-10-07 11:11:54 +02:00
Mike Hearn
604aa05859 Minor: suppress useless warnings 2016-10-06 18:36:33 +02:00
Shams Asari
c3f824001d Removed unused ServiceRequestMessage class hierarchy and added sendRequest method 2016-10-06 10:27:35 +01:00
Ross Nicoll
f98abd4700 Simplify results from notary protocol
Restructure the Result class used in the notary protocol to use a sealed class, so that it's impossible for it
to be empty, removing that error case from the checks.
2016-10-05 14:33:02 +01:00
Clinton Alexander
38ba8c8759 Merge branch 'clint-cordamaven' 2016-10-05 11:44:11 +01:00
rick.parker
ec975b0426 Hibernate ORM implementation for states. 2016-10-05 11:40:27 +01:00
Ross Nicoll
4099034791 Add receivable contract for Trade Finance Registry
This introduces the core of a receivable contract for the second stage Trade Finance Registry project.
This is a subset of the cope of the initial Trade Finance project, which focuses on managing
invoices/receivables only, and does not deal with the contents of the invoice yet.
2016-10-04 15:47:38 +01:00
Shams Asari
6b97fbb79f Removed ValidatingClient as notary behaviour is not client configurable 2016-10-04 15:20:36 +01:00
Shams Asari
5e6533eb8a Better use of Futures 2016-10-04 14:11:43 +01:00
Andrius Dagys
62a9dfe900 Added ServiceInfo unit tests 2016-10-04 11:36:26 +01:00
Andrius Dagys
5efa0fd5b3 Advertised services now contain ServiceInfo which describes ServiceType and a service identifier. This will be used, e.g. for grouping distributed notary nodes into the same service cluster. 2016-10-04 11:36:26 +01:00
Ross Nicoll
607ba634fe Add filter composition for clauses 2016-10-04 10:32:13 +01:00
Shams Asari
67fdf9b2ff Automatic session management between two protocols, and removal of explict topics 2016-10-03 15:21:27 +01:00
Andrius Dagys
b3f3ee0562 Added a json serializer for PublicKeyTree
Typo fixes, other minor refactorings
2016-10-03 11:09:36 +01:00
Andrius Dagys
ecb1acdb8d Add threshold signature support: introduce PublicKeyTree which allows composing public keys into a tree structure with nodes containing thresholds for how many child node signatures it requires. 2016-10-03 11:09:36 +01:00
Clinton Alexander
3612bee6f7 Fixed a syntax error in gradle file. 2016-09-30 10:57:20 +01:00
Clinton Alexander
6a669b6aad Added a line that was accidentally removed. 2016-09-30 10:57:20 +01:00
Clinton Alexander
9a4cc04eb5 Moved source and javadoc publish tasks into a default publish tasks plugin. 2016-09-30 10:57:20 +01:00
Clinton Alexander
f13a21cc6c Can now publish corda to local repo with gradle publishToMavenLocal 2016-09-30 10:57:20 +01:00
Clinton Alexander
7afb034b8c Merged in clint-vegacorechanges (pull request #380)
Corda Changes required for Vega
2016-09-28 16:28:15 +01:00
Clinton Alexander
43de27c4c1 Updated Corda in preparation for the merging of the Vega cordapp. Includes
some minor changes, including gitignore rule changes. The largest change
is replacing the current fresh key for each transaction with a single
static identity in preparation for aimproved and more fleshed out key
sharing infrastructure.
2016-09-28 14:39:41 +01:00
Andras Slemmer
5b10c207e0 Add StateMachine -> Recorded TX mapping stream and emit events on transaction records 2016-09-28 11:46:37 +01:00
Andras Slemmer
6c96517f6f core, node: Add RPC calls, change RPC init order 2016-09-28 10:32:22 +01:00
Andras Slemmer
7e7bf08062 Rename stateMachineRunId properties to id, remove unused fiberId 2016-09-26 10:40:18 +01:00
Andras Slemmer
cfa5878ea2 Add StateMachineRunId, type for SMM Changes 2016-09-26 10:40:18 +01:00
Matthew Nesbit
a964073c2f Track message id's to deduplicate replays. Widen the auto-acknowledgement window of Artemis back to the default.
Use synchronized wrapper over set.

Drop discard message to trace level logging.

Fix code layout

Use lazy trace extension method

Track message id's to deduplicate replays. Widen the auto-acknowledgement window of Artemis back to the default.

Use synchronized wrapper over set.

Include tx message unique id in checkpointed data.

Add test for checkpointed resend

Fix bug in not getting UUID off message.

Tidy formatting

Add explanation comments to test asserts

Put unique id even on Client messages.

Tidy formatting
2016-09-26 10:12:50 +01:00
Andrius Dagys
ac57c5cf86 Merged andrius-crypto-refactor into master 2016-09-22 18:07:31 +01:00
Andrius Dagys
f1a2bed497 Added API doc for SecureHash. Removed signatureAlgorithmName val as it's not being used 2016-09-22 16:52:06 +01:00
Ross Nicoll
54991c90a1 Merged in rnicoll-dictionary (pull request #369)
Correct typos, add custom dictionary
2016-09-22 09:52:28 +01:00
Andrius Dagys
8d84ece9c2 Split out SecureHash and Signed data from CryptoUtilities 2016-09-21 16:06:20 +01:00
Andrius Dagys
5bb7820f5d Api doc typo fix 2016-09-21 14:44:56 +01:00
Ross Nicoll
80ccf4df34 Change keypair to "keyPair"/"key pair"
Change "keypair" to "keyPair"/"key pair" to correctly indicate it is two words,
not a single word.
2016-09-21 10:50:28 +01:00
Ross Nicoll
1d53e59c7d Merged in rnicoll-wallet-vault (pull request #367)
Change 'wallet' to 'vault'
2016-09-21 10:11:30 +01:00
Shams Asari
b316696360 Switched the roles of Instigator and Acceptor in the auto-offer protocol so that they're correctly used according to the classes they inherit 2016-09-20 18:42:47 +01:00
Ross Nicoll
ebda724f14 Change references to 'wallet' with 'vault' 2016-09-20 18:14:53 +01:00
Patrick Kuo
9b4bf32fdc client certificate signing utility 2016-09-20 10:51:09 +01:00
rick.parker
236a47104f Persitent network map and key service. Temporary persistence workaround for scheduler. 2016-09-16 12:14:56 +01:00
Mike Hearn
4d83f1489f Add a client library that provides an RPC mechanism for talking to the Corda node.
The RPC mechanism uses message queues and is essentially conventional except for the fact that it supports marshalling observables. An observable encapsulates a stream of ongoing events, and server-side observables sent to the client are automatically bound to message queues and managed by Artemis.
2016-09-16 10:13:21 +01:00
Shams Asari
8ea20dd0d2 Removed session IDs from the send and receive methods of ProtocolLogic and are now partially managed by HandshakeMessage 2016-09-14 15:26:55 +01:00
Matthew Nesbit
bf0721868e Move Interest Rate related classes out of :node to reduce dependency of :node module on any specific contract. (Currently only WalletMonitorService and CashBalanceAsMetricsObserver stop me removing the compil dependency of :node on :contracts rather than :core). This has required that I modify fixing protocol to require information on what class of Oracle to use. 2016-09-09 11:31:08 +01:00
Mike Hearn
31f3bb28bb Fix build 2016-09-09 11:47:40 +02:00
Mike Hearn
34890b7678 Merged in james-encumbrances (pull request #289)
Encumbrances implemented by reference to an index of an output state
2016-09-09 11:32:03 +02:00
jamescarlyle
b7e6c210d9 Merge with master
# Conflicts:
#	docs/build/html/_sources/index.txt
#	docs/build/html/_sources/protocol-state-machines.txt
#	docs/build/html/_sources/tutorial-contract-clauses.txt
#	docs/build/html/index.html
#	docs/build/html/protocol-state-machines.html
#	docs/build/html/searchindex.js
#	docs/build/html/tutorial-contract-clauses.html
#	docs/build/html/tutorial-contract.html
2016-09-09 09:43:14 +01:00
jamescarlyle
e187c4d91d Further tweaks based on feedback - simplified the embedded timelock contract 2016-09-08 22:49:24 +01:00
Mike Hearn
34ee44b532 Minor: move ErrorOr into the core module and tweak its API a bit. Add a Path div operator. 2016-09-08 13:12:15 +02:00
Mike Hearn
d8d639f192 Merged in mike-small-tweaks (pull request #337)
A few small tweaks
2016-09-08 12:40:14 +02:00
Andras Slemmer
fcd477e332 core: Address topo sort style suggestions 2016-09-08 10:17:00 +01:00
Andras Slemmer
8e6198cf91 core: Make topological sort result deterministic 2016-09-08 10:15:59 +01:00
Andras Slemmer
5596ced5c3 core: Make topological sort more efficient 2016-09-08 10:04:18 +01:00
Andras Slemmer
d6f82637ad core: Fix tx resolution bug by topological sorting of downloaded transactions 2016-09-07 18:34:20 +01:00
Mike Hearn
8a9350fc93 Address review comments 2016-09-07 13:09:39 +02:00
Mike Hearn
fa4b503f81 Minor: rename UntrustworthyData.validate to UntrustworthyData.unwrap to better indicate its purpose and deprecate the old name. 2016-09-07 13:09:39 +02:00
Mike Hearn
a030a45019 Address review comments 2016-09-07 13:09:39 +02:00
Mike Hearn
49a0fd8fdd Improve the usability of SignedTransaction.verifySignatures taking into account how it is typically used. 2016-09-07 13:09:39 +02:00
Mike Hearn
2af6a70b9a Minor: rename BaseTransaction.signers to mustSign to make it a bit clearer what this field is. 2016-09-07 13:09:39 +02:00
Mike Hearn
1d272f89c2 Check the tx type in NotaryChangeProtocol and add a TODO to write a test for this once the protocol framework propagates exceptions. 2016-09-07 13:09:39 +02:00
Mike Hearn
793e912324 State replacement protocols: preserve the UntrustworthyData<T> marker for longer to try and get subclass authors in the right frame of mind. 2016-09-07 13:09:39 +02:00
Matthew Nesbit
2e1952a8a7 Get rid of the fake NodeInfo used to identify the NetworkMapService node.
Remove old comment
2016-09-06 18:25:12 +01:00
jamescarlyle
cdb2c3efa6 updated following review 2016-09-06 17:56:01 +01:00
Mike Hearn
86267e880d Minor: add a log.debug {} utility same as log.trace {} to do lazy message construction 2016-09-06 18:44:25 +02:00
Mike Hearn
5a28b29a7e Merged in mike-tx-types-refactoring-september (pull request #332)
Refactor common fields from WireTransaction/LedgerTransaction out into BaseTransaction. Put some field invariants into the constructors.
2016-09-06 18:03:39 +02:00
Mike Hearn
e398b6e17b Refactor common fields from WireTransaction/LedgerTransaction out into BaseTransaction. Put some field invariants into the constructors. 2016-09-06 17:30:52 +02:00
Andras Slemmer
63e2ec32cf core: Suppress cast warnings 2016-09-06 15:18:41 +01:00
Andras Slemmer
0f29067680 contracts, core: Fix compiler errors 2016-09-06 14:30:03 +01:00
Andras Slemmer
9e993c5b86 Merged in aslemmer-generators-fixes (pull request #300)
Aslemmer generators fixes
2016-09-06 14:19:28 +01:00
Mike Hearn
f3fa54ebef Minor: add field-level documentation to WireTransaction and TODO a few things that don't seem right. 2016-09-06 15:06:29 +02:00
Mike Hearn
8a19e6bbfb Minor: delete dead code in SignedTransaction.verifySignatures as it's not required. 2016-09-06 15:06:28 +02:00
Mike Hearn
210ea2ed95 Minor: remove the TODO about the notary signing last. It is not important at this level as the notary signature does not cover the other signatures. Also a small formatting change to the withAdditionalSignatures methods. 2016-09-06 15:06:28 +02:00
Mike Hearn
99f8477bf1 Minor: move code from TransactionTools.kt into the respective classes, and add some @Throws annotations that were missing (matters for java users) 2016-09-06 15:06:28 +02:00
Andras Slemmer
bd59022e8f Revert "core, contracts: Rewrite Generators to use functions instead of classes"
This reverts commit deddcc91c7f6ad436c44daf69b4cb81a406cb28e.
2016-09-06 13:54:59 +01:00
Andras Slemmer
abdc45176d Revert "core: Small Generator fix"
This reverts commit c57731a978fe41f38b91dbe97dd1e1ddc9e274d1.
2016-09-06 13:54:59 +01:00
Andras Slemmer
fd3707fd24 core: Small Generator fix 2016-09-06 13:54:59 +01:00
Andras Slemmer
2ac31a53b5 core, contracts: Rewrite Generators to use functions instead of classes 2016-09-06 13:54:59 +01:00
Andras Slemmer
491b1abd4a contracts, core, node: Use entropyToKeyPair in Generators instead of manually creating keys 2016-09-06 13:54:59 +01:00
Andras Slemmer
f11a587382 core, contracts: Add Generator<>.generateList to reduce boilerplate 2016-09-06 13:54:59 +01:00
Andras Slemmer
6faf19cccc contracts: Add comment explaining Generators 2016-09-06 13:54:59 +01:00
Andras Slemmer
89a5448c39 node, core: Add quickcheck generators for basic types, transactions 2016-09-06 13:54:58 +01:00
Mike Hearn
f3c2bd6748 Minor: split Transactions.kt file into one file per transaction class 2016-09-06 14:21:37 +02:00
Mike Hearn
9d83a9b6d2 Minor: move transaction types out of the contracts package and into a new transactions package 2016-09-06 14:20:32 +02:00
Mike Hearn
cbf6aa0e27 Minor: make TransactionBuilder.signWith return the builder for ease of use from Java. 2016-09-06 14:20:32 +02:00
Mike Hearn
ad6c59d742 Minor: note in the DummyState doc that it's not a part of DummyContract despite the name. 2016-09-06 14:20:32 +02:00
Andrius Dagys
9cccb11967 Add comment explaining signers 2016-09-06 10:07:08 +01:00
Andrius Dagys
2676e8878d Remove a @Deprecated as the code has been changed since its introduction anyway 2016-09-05 18:50:53 +01:00
Andrius Dagys
84247128b4 Remove addInputState(stateRef, notary) from TransactionBuilder API, as it might lead to issues where someone accidentally provides a different notary than the one in the state 2016-09-05 18:47:51 +01:00
Andrius Dagys
aa166518a0 Remove unused val 2016-09-05 18:41:35 +01:00
Shams Asari
97e1a59770 Refactored FiberRequest into cleaner ProtocolIORequest and fixed checkpoint regression 2016-09-05 14:42:54 +01:00
Ross Nicoll
9cccc7a2b7 Correct warnings 2016-09-01 16:15:15 +01:00
Ross Nicoll
b913b18e02 Merged in rnicoll-simulations (pull request #314)
Move test code from node to test-utils
2016-09-01 15:21:34 +01:00
Ross Nicoll
07f44e9e2a Move test code from node to test-utils 2016-09-01 11:15:05 +01:00
Ross Nicoll
203c4fb3d8 Merge ConcreteClause into Clause
Change Clause to an abstract class, and merge ConcreteClause into it. CompositeClause now
overrides defaults provided in Clause which are more suitable for composition of clauses.
2016-08-31 17:55:36 +01:00
Ross Nicoll
232db9a1fd Move test utilities into their own package
This moves a lot of the test support code into its own package which is only imported for tests,
so it's not shipped as a part of core Corda. The node currently depends on this support code to
compile, although future work could try to separate this out. This change highlights that parts
of production code is dependent on test elements (i.e. dummy keys), and makes it harder for
such accidental crosses to occur later.

An integration test category is also added as part of this work, to contribute towards COR-345.
2016-08-31 15:40:54 +01:00
Matthew Nesbit
8756b49794 Add switchable HTTPS to Node web server
Explain change of cipher

Include extracted Dev Corda Root certificate so that it can be installed by HTTPS users.
2016-08-30 13:07:40 +01:00
Ross Nicoll
13b040ecd6 Rework clauses to use composition
Rework clauses so that rather than defining match/no-match behaviour themselves, they are
now composed by nesting them within clauses that understand how to match their child clauses.
This unifies a lot of the structure of clauses and removes corner cases needed for the first
design, as well as moving towards a model which is easier to prove.
2016-08-26 17:35:52 +01:00
Ross Nicoll
ad8ffca0b4 Add CommitTransactionProtocol
Add new protocol which manages the entire process of taking a signed transaction ready
for notarisation, through notarisation and onto recording it both locally and informing
remote nodes.

This protocol also optionally can include the ClientToServiceCommand which triggered a transaction
being created, to give the remote nodes context on why a change occurred (i.e. "You are being sent
£100")
2016-08-25 16:30:39 +01:00
Matthew Nesbit
089ba2cb69 Only NetworkMapServer addresses can be publicly manufactured. Use identity publick key as addressing, with only bridges using the HostAndPort information
Fixup after rebase and fix issue with checking previous deployment of bridges

Correct comments on ArtemisMessagingClient constructor

Fixup rates fix demo

Get rid of when statements

Make NetworkMapCache send modify as well as add//remove events. Make inboxes for nodes persistent.

Suppress warnings

Fix message acknowledgement so that it actually consumes messages properly.

Change queueName to SimpleString to stop lots of wasted conversions

Get rid of spurious import

Tidy up and add comments

Update to include comments on PR

Remove unnecessary import
2016-08-25 15:56:50 +01:00
Ross Nicoll
59d3cbdece Add documentation around Commodity and CommodityContract 2016-08-23 17:40:45 +01:00
Ross Nicoll
03e120d04b Add default values for ifMatched/ifNotMatched/requiredCommands 2016-08-23 11:23:47 +01:00
jamescarlyle
ee65d4490b Updated based on feedback to check that the encumbered state does not refer to itself as the encumbrance. 2016-08-19 17:49:53 +01:00
jamescarlyle
6ba301b6b8 Updated based on feedback to check that the encumbered state does not refer to itself as the encumbrance. 2016-08-19 17:45:25 +01:00
jamescarlyle
fec2134555 Updated comment on why the encumbrance is an index (Integer). 2016-08-19 12:42:09 +01:00
Matthew Nesbit
413060aa6d Don't use single line style for verify 2016-08-19 12:05:32 +01:00
Matthew Nesbit
696b9741dd Remove ClashingThreads exception by tightening up unique id on LinearState to be a secure random value, with constraints that it cannot be duplicated. Also, rename to linearId rather than the confusing thread.
Try providing a helper interface to encourage enforcing LinearState rules

Fixup after rebase

Change to using Clauses for verifying LinearState standard properties

Fix whitespace change

Tidy up ClauseVerifier after PR comments

Change from SecureHash to a TradeIdentifier class

Change TradeIdentifier to UniqueIdentifier
2016-08-19 11:52:16 +01:00
jamescarlyle
2c7d6fc053 Encumbrances implemented by reference to an index of an output state 2016-08-18 20:39:34 +01:00
jamescarlyle
ff1a1c4848 Encumbrances implemented by reference to an index of an output state 2016-08-18 19:41:17 +01:00
Clinton Alexander
43625308fa Merged in clint-immutable-kryo-serialisers (pull request #274)
Added immatuable serialisers to Kyro.
2016-08-17 14:50:33 +01:00
Ross Nicoll
a9ec3c253e Merged in rnicoll-notify-tx (pull request #282)
Add observable for transactions being stored
2016-08-16 14:50:55 +01:00
Mike Hearn
a451000623 Merged in mike-fix-artemis-threading (pull request #276)
Messaging layer improvements
2016-08-12 19:07:54 +02:00
Mike Hearn
3d391ec8c2 Add unit tests for the resolve transactions protocol 2016-08-12 17:14:54 +02:00
Mike Hearn
709fe096b3 Minor: add a rootCause property to Throwable 2016-08-12 17:13:41 +02:00
Mike Hearn
b8dc755926 Minor: a couple of small usability improvements to TransactionBuilder 2016-08-12 17:13:41 +02:00
Mike Hearn
c60c333ba9 Minor: add a utility to OpaqueBytes 2016-08-12 17:13:41 +02:00
Ross Nicoll
a3d37a4d00 Require notary to be explicitely stated on each transaction 2016-08-12 15:51:04 +01:00
Ross Nicoll
a2dff5488f Add debugging information in case of missing signatures 2016-08-12 13:51:34 +01:00
Ross Nicoll
17ae349f4d Remove support for timestamp commands 2016-08-12 13:51:34 +01:00
Ross Nicoll
f0aa5a30d4 Deprecate existing timestamp infrastructure 2016-08-12 13:51:34 +01:00
Ross Nicoll
8346c58d4c Add observable for transactions being stored
Add observable for transactions being stored, so the UI can show transactions as they're received, rather than being
limited to the summarised version available from the wallet service.
2016-08-12 11:58:17 +01:00
Ross Nicoll
162d19deeb Change how clause verification is called
Change away from extending ClauseVerifier for contracts which support clauses, and explicitely call
clause verification code in the verify() function. This should make the flow of control easier to understand.
2016-08-11 15:39:11 +01:00
Mike Hearn
ac81d2aa32 Messaging layer improvements:
- Fix thread safety issues in ArtemisMessagingClient. The Artemis API isn't thread safe, but that isn't well documented and it will happily invoke callbacks in parallel.
- Add discussion of how we tackle threading currently in the codebase and make a few other improvements.
- Add a shutdown hook so we stop properly when the user presses ctrl-c
2016-08-11 14:16:05 +02:00
Clinton Alexander
10035860eb Added immatuable serialisers to Kyro. 2016-08-10 16:17:14 +01:00
Clinton Alexander
9fb8061ba4 Replaced array with list to fix comparisons. 2016-08-10 11:10:38 +01:00
Andrius Dagys
8386100677 Remove BriefLogFormatter as the formatting is now handled by Log4j configuration. Introduce LogHelpers which now handles the custom log level setting for specific loggers. 2016-08-09 17:31:27 +01:00
rick.parker
d883b3f134 First working hand-rolled persistent wallet
First working Exposed-assisted persistent wallet

Cleaned up Exposed-based persistent wallet

Cleaned up warnings

Fixed up some generic types

Improved comments

Fix up TODO comment

Hikari and config integration

Fix existing tests

Clean up after looking at PR

Clean up commented out lines

Fix initialisation of IRS demo leaving database open

Fix up after rebase

Review feedback.  Main change is lazy wallet iteration.

Rebased and incorporated config changes.

Use standardised config loading.  Make wallet cash test use persistent wallet.

Added test to ensure wallet retains state in database across instance creation.

Tidy up whitespace and fix bug in test.
2016-08-09 16:41:32 +01:00
Mike Hearn
7357597501 Fix build. Delete a couple of dead parameters that escaped the last cleanup. 2016-08-09 16:25:35 +02:00
Mike Hearn
87047c8996 Minor: fix various inspector warnings and delete some dead code. 2016-08-09 11:55:40 +02:00
Mike Hearn
2bc77ae095 Minor: suppress bogus "cast never succeeds" compiler warning in whitelist manager unit test 2016-08-08 18:05:02 +02:00
Mike Hearn
da63ad57a4 Minor: run intellij "code cleanup" on all but javascript files. 2016-08-08 18:05:02 +02:00
Mike Hearn
8c00b5284d Merged in mike-ledgertx-refactoring (pull request #264)
Refactor the core transaction types
2016-08-08 18:02:32 +02:00
Mike Hearn
befff71252 Address review comments. 2016-08-08 11:44:59 +02:00
Matthew Nesbit
8e8a7ea60b Separate WhitelistTrustManager registration from object creation, so that adding entries to the whitelist doesn't cause partial registration errors. 2016-08-05 14:52:30 +01:00
Mike Hearn
1f94335850 Address review comments. 2016-08-05 15:38:29 +02:00
Mike Hearn
25f65a60c7 Address review comments. 2016-08-05 14:04:07 +02:00
Mike Hearn
d61356ca9e Don't let Kryo crawl into Rx subscriptions, and add a unit test to ensure this doesn't regress, as the rule is not intuitive. 2016-08-04 17:19:10 +02:00
Andras Slemmer
845f2bdd64 Merged in pubkey-base58-serialisation (pull request #257)
Pubkey base58 serialisation
2016-08-04 13:58:57 +01:00
Clinton Alexander
b640524bf3 Merged in clint-auto-identity (pull request #261)
Identity service now updates with the network map.
2016-08-04 13:29:54 +01:00
Andras Slemmer
4fb8a38122 core, node: Rename Stirng.toPublicKey to parsePublicKeyBase58 2016-08-04 12:14:40 +01:00
Andras Slemmer
a3cf85e778 core: Use toBase58String/toPublicKey in Kryo 2016-08-04 12:14:40 +01:00
Andras Slemmer
1cebae633d core: Add utilities for parsing/serialising pubkeys as base58 2016-08-04 12:14:40 +01:00
Mike Hearn
701fc853ad Refactor the core transaction types to improve clarity, simplify verification and prepare for sandboxing.
Changes include:
- LedgerTransaction is now much more central: it represents a fully resolved and looked-up tx, with the inputs available.
- TransactionGroup and TransactionForVerification are gone. There is a temporary TransactionForContract class for backwards
  compatibility but it will also be gone soon.
- ResolveTransactionsProtocol is simplified, and now commits a tx to the database as soon as it's determined to be valid.
- ServiceHub is now passed in more consistently to verification code, so we can use more services in future more easily e.g. a sandboxing service.
- A variety of APIs have been tweaked or documented better.
2016-08-04 13:05:50 +02:00
Mike Hearn
c2aee2d4e8 Minor: Replace MockServices with a new class that's in core instead of node, old class becomes MockServiceHubInternal. 2016-08-04 12:53:09 +02:00
Mike Hearn
1c3379f508 Testing: make the ledger DSL take a ServiceHub rather than individual services.
It defaults to a fresh UnitTestServices(). Also clear up a few other areas.
2016-08-04 12:52:02 +02:00
Mike Hearn
dd53acfb64 Testing: add a UnitTestServices class which implements ServiceHub. This is a lighter weight version of MockServices, and is intended to assist in the testing of core contract code, vs MockServices which can go on to be used only from the node module. 2016-08-04 12:52:01 +02:00
Clinton Alexander
b1c1b7f4b4 Review changes - merged two observables into one. 2016-08-03 16:49:37 +01:00
Clinton Alexander
72c4c2e5f7 Added comments. 2016-08-02 17:27:18 +01:00
Clinton Alexander
9ef1bf0355 Identity service now updates with the network map. 2016-08-02 17:08:46 +01:00
Ross Nicoll
9672168f64 Add DirectRequestMessage
Add DirectRequestMessage for addressing specific endpoints rather than parties.
2016-08-02 13:29:23 +01:00
Mike Hearn
5df1caf0ca Minor: couple of tiny reformattings. 2016-08-01 16:42:57 +02:00
Mike Hearn
daff65f220 Minor: add infix utilities for overflow checked arithmetic. 2016-08-01 16:42:57 +02:00
Mike Hearn
0662798b0f Introduce some new cryptographic utility functions
1. Function for converting raw entropy into an EDDSA key pair. This is useful for unit tests when you don't want a random key but would rather be able to identify it from the logs by eyesight, and will be useful later also when implementing deterministic key derivation.
2. Function that can format any collection of public keys using the bitcoin-style base58 form.
3. A dummy NullSignature object, again, useful for tests when you don't want to provide a real signature.

Then set a handful of dummy unit testing keys to predictable/fixed values.
2016-08-01 16:42:56 +02:00
Mike Hearn
b40fee1512 Allow for easier conversion from Amount<Issued<T>> to Amount<T> and de-issuerify a few places. 2016-08-01 16:42:56 +02:00
Mike Hearn
309159da14 Better toString for Amount post-issuer refactoring. 2016-08-01 16:09:22 +02:00
Ross Nicoll
e1d1aed541 Add commodity contract and test obligations can be settled for it 2016-08-01 14:20:04 +01:00
Ross Nicoll
f72e223f3b Add Commodity class 2016-08-01 14:20:04 +01:00
Ross Nicoll
cf4bb0c9af Break down topic into component parts
Break down what is referred to as "topic" of a message into its component parts. This splits the
general topic from the session ID, so it's clear where a session ID is provided, and whether any
given topic string includes a session ID or not.
2016-07-29 14:24:46 +01:00
Clinton Alexander
7d39a101d4 Merged in COR-276 (pull request #239)
Added Jacoco code coverage to gradle.
2016-07-29 13:29:47 +01:00
Clinton Alexander
8d3d9d6572 Removed inline that has Kotlin specific compile bug with specific Gradle configurations. 2016-07-29 13:23:33 +01:00
Richard Green
4a3da67c6c Merged in rg_trade_finance_experimental (pull request #250)
Rg_trade_finance_experimental
2016-07-29 10:41:00 +01:00
Matthew Nesbit
a462bb1d6a Incorporate comments from PR 2016-07-28 16:30:53 +01:00
Richard Green
e3f36a4942 Modified tests for new DSL 2016-07-28 15:57:09 +01:00
Matthew Nesbit
235497e0f4 Convert long lived services supporting protocol listeners to plugins 2016-07-28 13:39:12 +01:00
Matthew Nesbit
09c795e341 Merge remote-tracking branch 'remotes/origin/master' into mnesbit-cor-261-artemis-over-ssl 2016-07-28 13:28:31 +01:00
Clinton Alexander
5410f8b228 Merged in demowebui (pull request #230)
Added an IRS demo web interface
2016-07-28 13:19:32 +01:00
Matthew Nesbit
7d5ee8ba08 Create MessageServiceInternal interface to allow NetworkMapCache to register addresses with the network service.
Activate WhitelistTrustManager for now to secure the TLS messaging.
2016-07-28 11:25:57 +01:00
Clinton Alexander
aebdc86225 Reverted change from previous commit. 2016-07-28 09:17:49 +01:00
Clinton Alexander
188fc29436 Cleaned up build.gradle files. 2016-07-28 09:17:49 +01:00
Clinton Alexander
ffc3c8f421 Added Jacoco code coverage to gradle. 2016-07-28 09:17:49 +01:00
Ross Nicoll
d54beca77e Add wallet service for notifying remote nodes of transactions 2016-07-27 17:40:52 +01:00
Matthew Nesbit
5a20b67ce2 Clean up comments 2016-07-27 15:45:32 +01:00
Matthew Nesbit
e3aef96b09 Merge remote-tracking branch 'remotes/origin/master' into mnesbit-cor-261-artemis-over-ssl
# Conflicts:
#	build.gradle
2016-07-27 15:43:01 +01:00
Andrius Dagys
e8c84867cf Merged in andrius-logging (pull request #240)
Enable logging to file
2016-07-27 14:18:24 +01:00
Matthew Nesbit
772ce28a81 remove extra space 2016-07-26 15:42:11 +01:00
Matthew Nesbit
9a9df847af Merge remote-tracking branch 'remotes/origin/master' into mnesbit-cor-261-artemis-over-ssl 2016-07-26 15:25:58 +01:00
Matthew Nesbit
fea452d9ac Change to a ConcurrentHashSet whitelist so that we don't hold any locks across the DNS lookup. 2016-07-26 14:40:30 +01:00
Clinton Alexander
e81d8b9928 Removed reference from progress tracker output to improve output readability. 2016-07-26 10:43:41 +01:00
Matthew Nesbit
cb8876678e Address comments from code review. Also, make whitelist registration synchronized. 2016-07-26 10:35:59 +01:00
Matthew Nesbit
ed52f2b35d An implementation of a Security Provider that replaces the default TrustManager with one that checks certificate names against a manually controlled white list. This isn't activated anywhere yet, but the network map should register the valid node dns names. 2016-07-26 10:35:58 +01:00
Matthew Nesbit
e5777fd999 Fetch KeyStore passwords from NodeConfiguration 2016-07-26 10:35:57 +01:00
Matthew Nesbit
4c08141ce3 Tidy up based upon comments on PR 2016-07-26 10:35:56 +01:00
Matthew Nesbit
c7bc5ae652 Correct usage of hostName and cannonicalHostName in certificates to ensure the SSL certificates validate on Linux 2016-07-26 10:35:55 +01:00
Matthew Nesbit
00f897d58d Add X509 creation and manipulation utilities to core and enable SSL in ArtemisMQ 2016-07-26 10:35:54 +01:00
Matthew Nesbit
0d68523f5c Validate protocol type and args via whitelist ahead of class loading. Also, push this work into another method on the Factory. 2016-07-25 16:35:45 +01:00
Clinton Alexander
93f4440c14 Moved IRS web folder up a level. Added support for static serving plugins. 2016-07-25 10:30:30 +01:00
Andrius Dagys
e7ff5b8f6f Typo fix 2016-07-22 17:31:03 +01:00
Andrius Dagys
2142bd1d8a Added Log4j bindings for SLF4J. Test log output is redirected to the console, and demo output is now additionally stored in a rolling log file. 2016-07-22 16:15:00 +01:00
Andrius Dagys
c442cd01a7 Merged in andrius-cleanup-tweaks (pull request #208)
Remove the "verify correct notary has signed" check from TwoParty protocols
2016-07-18 10:40:25 +01:00
Ross Nicoll
c32af56b41 Rebuild commercial paper contracts using clauses 2016-07-13 16:55:18 +01:00
Ross Nicoll
cba3aab96e Rebuild asset contracts using clauses 2016-07-13 13:08:23 +01:00
Ross Nicoll
254592dc54 Move protocols into correct package 2016-07-12 18:42:00 +01:00
Matthew Nesbit
3a5399f878 Remove TODO associated with the fact that the ZIP filesystem does not specify the Path Separator character. Add a test to check access through forward or backward slashes is consistent. 2016-07-12 13:43:44 +01:00
Andras Slemmer
d7cc34c9a5 all: Full stops in comments! 2016-07-11 17:58:53 +01:00
Mike Hearn
e28ecae8c0 Address review comments 2016-07-11 18:47:24 +02:00
Mike Hearn
2be91ff516 Minor: tighten variance when possible (via the Inspector) 2016-07-11 18:15:28 +02:00
Mike Hearn
0a2f313d40 Minor: run IntelliJ 'code cleanup' 2016-07-11 18:15:28 +02:00
Mike Hearn
41d092a169 Minor: optimize imports 2016-07-11 18:15:28 +02:00
Mike Hearn
6b7580c977 Minor: fix compiler warnings. 2016-07-11 18:15:28 +02:00
Mike Hearn
cc22810b09 Testing cleanup:
- Move code out of ambiguously named TestUtils files (there were three). Sometimes it's simpler to just put these things into the contract source files directly.
- Remove JavaTestHelpers objects (there were three), in favour of just giving the top level kotlin file class better names.
- Misc other small tweaks and cleanups.
2016-07-11 16:22:02 +02:00
Ross Nicoll
6b775ebd4d Replace named timestamping authority with notary
As the timestamping authority is now always the notary service, contracts should
no longer be using name-based lookup of the timestamping authority (as this will
generally be wrong). This introduces a new "timestamp" property on a transaction,
and updates most contracts to refer to it.

In some cases (IRS, CommercialPaper) there are transactions with no input states
to derive notary from, that use timestamps. In these cases a notary is specified
in the command.
2016-07-11 14:54:36 +01:00
Andras Slemmer
d0903ae265 docs: Rename test tutorial subtitle 2016-07-11 14:25:27 +01:00
Andras Slemmer
e13a95857a core: Remove colons from @param comments 2016-07-11 14:25:27 +01:00
Andras Slemmer
4324e33fea testdsl: Removed R type parameter, unify verifies() interface 2016-07-11 14:25:27 +01:00
Andras Slemmer
9bb8439dc3 testdsl: Add failsWith to Ledger 2016-07-11 14:25:27 +01:00
Andras Slemmer
cd0299f650 testdsl: Javadoc comments 2016-07-11 14:25:27 +01:00
Andras Slemmer
3d885eb928 testdsl: Clean up TestUtils.kt 2016-07-11 14:25:27 +01:00
Andras Slemmer
c3060c11c0 testdsl: Use and expose TransactionBuilder in TestTransactionDSLInterpreter 2016-07-11 14:25:27 +01:00
Ross Nicoll
1ae8ada999 Add support for clause based contract verification 2016-07-08 11:17:24 +01:00
Matthew Nesbit
eee049d66b Add cacheing to ServiceLoader scanning of plugins and add a TODO on whitelisting 2016-07-08 10:38:23 +01:00
Matthew Nesbit
1fb4371de9 Make the IRS Demo web api an api plugin (scanned from the Node classpath) and use the same permission checking entry point for web api's as the scheduler.
Fix whitespace

Change ProtocolLogicRefFactory to use Map<String, Set<String>> as whitelist definition
2016-07-08 10:34:30 +01:00
Mike Hearn
ad3e9be1c8 Add a version number to gradle and allow "gradle install" to install the core module to the local Maven repository. 2016-07-07 13:59:55 +01:00
Andrius Dagys
b498928f75 Remove the "verify correct notary has signed" check. This is no longed necessary as the required notary key is added to the "signers" list during transaction construction. We have general validation rules that check the correct notary was included in the signers list, and that we have signatures for all "signers". 2016-07-07 13:22:30 +01:00
Mike Hearn
bbc5c2e981 Merged in mike-july-dependency-upgrades (pull request #200)
Upgrade dependencies, July edition.
2016-07-06 16:25:52 +01:00
Mike Hearn
2e3f689fd3 Minor: fix PublicKey.toShortString after the switch to ed25519 2016-07-06 16:04:10 +01:00
Mike Hearn
6fb7e59b91 Upgrade dependencies, July edition. 2016-07-06 13:56:22 +01:00
Andras Slemmer
0cf54d1c1f test dsl: Comment full stops 2016-07-06 13:25:08 +01:00
Andras Slemmer
26d8973746 test dsl: Add TODO on type synonyms 2016-07-06 13:25:08 +01:00
Andras Slemmer
f177b1ffaa test dsl: LastLineShouldTestForVerifiesOrFails->EnforceVerifyOrFail 2016-07-06 13:25:08 +01:00
Andras Slemmer
e31b769fef test dsl: Dsl->DSL, add top-level transaction primitive, add ledger-embedded signAll, other cosmetics 2016-07-06 13:25:08 +01:00
Andras Slemmer
e3d6f51049 contracts, core, node: Port TransactionForTest tests to new DSL 2016-07-06 13:25:08 +01:00
Andras Slemmer
a27f195b4f core: Add LastLineShouldBeVerifiesOrFails, fix attachment primitive, Java interop 2016-07-06 13:25:08 +01:00
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
Andras Slemmer
9b36df607e core: Remove binding of State type in test dsl 2016-07-06 13:25:08 +01:00
Andras Slemmer
bf4272b64a core: transaction/ledger DSL interfaces and implementation for tests 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
Shams Asari
a02263937c send and sendAndReceive use Party for the destination 2016-06-30 12:04:39 +01:00
rick.parker
5271882dcd Event scheduling and docs for event scheduling 2016-06-30 08:51:52 +01:00
Ross Nicoll
b3af0ce218 Merged in rnicoll-upgrade-infrastructure (pull request #193)
Infrastructure ahead of contract upgrade support
2016-06-29 17:26:44 +01:00
Ross Nicoll
11eff398a0 Minor: Typo (classfiles -> class files) 2016-06-29 17:16:47 +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
Ross Nicoll
779034691e Add AbstractTransactionSubstitutionProtocol
Abstracts the NotaryChangeProtocol to be extensible for other use-cases.
2016-06-29 17:16:46 +01:00
Andrius Dagys
dd9a653ab4 TransactionBuilder: added a comment explaining the default notary parameter purpose 2016-06-29 16:32:29 +01:00
rick.parker
cfe54c5f21 Fix up bug in attachment Zip file processing when path might not be normalised to start with 2016-06-29 09:10:18 +01:00
Clinton Alexander
9d4f75f241 Improved readability and brevity of hasEmojiTerminal. 2016-06-28 14:03:32 +01:00
Clinton Alexander
bef4258430 Fixed Emoji crash where LANG envvar is not defined in particularly exotic setups (msys bash in Powershell for example) 2016-06-28 14:03:32 +01:00
Andras Slemmer
47decb3bbe coree: Expose MOCK_IDENTITY_SERVICE as MockIndentityService instead of IdentityService 2016-06-24 18:33:53 +01:00
Andras Slemmer
5973725186 core: Make top-level side-effecting getters lazy instead 2016-06-24 18:33:21 +01:00
Andras Slemmer
10d8f5cd06 core: Add comment on how to define globals for the Java test DSL 2016-06-24 16:37:43 +01:00
Andras Slemmer
bc326660a3 contracts, core: Fix static init cycle issue of JavaTestHelpers 2016-06-24 16:37:43 +01:00
Andras Slemmer
341adafd3a contracts, core: Rename Java to JavaTestHelpers 2016-06-24 16:37:43 +01:00
Andras Slemmer
040e51ec12 contracts, core: Expose top-level DSL values/functions to Java by wrapping them in an object
core: Add overloads for convenient Java interop

contracts, core: Uniform Java interop for tests, use camelCase
2016-06-24 16:37:43 +01:00
Andras Slemmer
bec1ab7a7e core: Add javadoc on how to be Java-compatible with the Kotlin DSL 2016-06-24 16:37:43 +01:00
Andras Slemmer
6109065dee core: Use LastLineShouldTestForAcceptOrFailure trick on rejects() 2016-06-24 16:37:43 +01:00
Andras Slemmer
2d8d5571c2 core: Add more info to ClashingThreads exception 2016-06-23 18:06:57 +01:00
Andras Slemmer
57270c8c66 core: Add nonce to DummyLinearState 2016-06-23 18:06:57 +01:00
Andras Slemmer
6bab0eb79f core: Add comment about Wallet.states 2016-06-23 18:06:57 +01:00
Andras Slemmer
f233780e08 core: Add DummyLinearState and AlwaysSucceedContract for testing 2016-06-23 18:06:57 +01:00
Andras Slemmer
2c7b86fee2 core: Add LinearState thread clash check to InMemoryWalletService.notifyAll 2016-06-23 18:06:57 +01:00
Andras Slemmer
3cc0cef9c5 core: Typo 2016-06-23 18:06:57 +01:00
Andrius Dagys
aaeb99ac25 Validating notary: check for missing signatures. The notary can only sign if all other signatures are present
Please enter the commit message for your changes. Lines starting
2016-06-23 16:15:14 +01:00
Ross Nicoll
99ae145edc Minor: Preparation work for Obligation contract 2016-06-23 13:17:22 +01:00
Andrius Dagys
e5e5383e71 Minor formatting and typo fixes 2016-06-22 14:36:01 +01:00
Ross Nicoll
d24ec06b40 Add netting support structures
Add NetType enum for use in contracts which deal with netting
Add BilateralNettingState interface
Add support for more complex issued things
2016-06-22 14:30:06 +01:00
Mike Hearn
7ee6bd05ce Refactor the wallet code:
- Rename NodeWalletService to InMemoryWalletService and move into the core module where it's available for unit testing.
- Make a new NodeWalletService that just inherits from InMemoryWalletService and doesn't customise it at all, for now.
- Take the cash specific functionality out of Wallet and into an extension property in the Cash contract (this compiles as CashKt.getCashBalance(wallet) for java users).
- Return the generated states in the fillWalletWithTestCash function.
2016-06-22 14:49:52 +02:00
Mike Hearn
f3d4639059 Testing: make the WalletFiller code a file-level singleton and fillTestWithCash an extension method. For Java users not much changes, the class is still called WalletFiller and the signature remains the same. Re-order some arguments to make it easier to use when accepting the defaults. 2016-06-22 14:49:52 +02:00
Andrius Dagys
9f1a4e9254 Update docs relating to the multiple notary support work 2016-06-22 13:18:00 +01:00
Mike Hearn
39186c7e99 Minor: correct an API doc in AttachmentStorage 2016-06-22 13:46:57 +02:00
Mike Hearn
749949669f Minor: Make a few class field names and constructor layouts more consistent. 2016-06-22 13:46:57 +02:00
Mike Hearn
d084f76594 Minor: Remove a no longer relevant kdoc line 2016-06-22 13:46:57 +02:00
rick.parker
717a5ab197 Break out message handler changes
Special serializer for kotlin object definitions
2016-06-22 09:50:15 +01:00
Richard Green
859ee053d2 Merged in rg_todo_financetypes_242 (pull request #145)
Changed DateOffset to be an integer instead of enum. Usages and examples also changed. Also renamed to fixingPeriodOffset
2016-06-21 18:18:44 +01:00
Richard Green
6b80530ac6 Changed DateOffset to be an integer instead of enum. Usages and examples also changed. Also renamed to fixingPeriodOffset
Renamed fixingPeriod -> fixingPeriodOffset in the .json files
2016-06-21 18:17:39 +01:00
rick.parker
3ea1090446 Support for moving TestClock to just beyond a specific instant (helpful for schedule related testing)
Added TimeWindow to PR

Review feedback

Review feedback
2016-06-21 16:49:25 +01:00
Ross Nicoll
93e9d0459c Add custom serialiser for NonEmptySet 2016-06-20 16:08:17 +01:00
Ross Nicoll
723e610dfc Rename verifyMoveCommand()
Rename verifyMoveCommands() to verifyMoveCommand() to represent that move commands must
be singular within a transaction.
2016-06-20 16:08:16 +01:00
Ross Nicoll
af53a52b06 Add common Issue and Move commands
* Add common Issue command to encourage presence of a nonce value when issuing state objects.
* Add common Move command for contracts which support being moved in order to fulfil other contracts.
2016-06-20 16:08:16 +01:00
Andras Slemmer
32b593671b Merged in remove-warnings (pull request #169)
Remove warnings
2016-06-20 14:45:04 +01:00
Ross Nicoll
8f57213270 Merged in rnicoll-force-record-tx (pull request #152)
Require all transactions are added via the ServiceHub.recordTransaction() function
2016-06-20 14:25:20 +01:00
Ross Nicoll
a5e07c2600 Require all transactions are added via the ServiceHub.recordTransaction() function 2016-06-20 14:24:55 +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
Mike Hearn
d4674a9d8f Add a comment to ContractState describing the intended constraints design. 2016-06-20 15:00:16 +02: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
9958b5c603 Added 'signers' property to the transaction data models. Signers holds the list of all public keys that need to be signed for (command keys and additional ones such as notary).
Removed Notary & ChangeNotary commands, keys to be signed for are added to the signers list during transaction build phase.
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 1a1ed3b9e6, reversing
changes made to 09e2e49d44.
2016-06-17 14:12:19 +01:00
Andras Slemmer
1a1ed3b9e6 Merged in use-urandom-2 (pull request #159)
Use /dev/urandom try no.2
2016-06-17 13:36:23 +01:00
Andras Slemmer
f9d1c54195 core: Add comments explaining the never-to-be-removed deprecated functions 2016-06-17 13:27:35 +01:00
Andras Slemmer
1f171a1ece Revert "core: Removed unused deprecated test functions"
This reverts commit 1c09ff86ed6803fcda6c76b6f5e323621c4b0e06.
2016-06-17 13:27:35 +01:00
Andras Slemmer
eaf37e2e7a core: make comment javadoc style 2016-06-17 13:27:35 +01:00
Andras Slemmer
643d3bab2b core: force transaction tests to check for accept/fail 2016-06-17 13:27:35 +01:00
Andras Slemmer
f0d74d0859 core: Removed unused deprecated test functions 2016-06-17 13:27:35 +01:00
Andras Slemmer
ea7f9177d4 core: make newSecureRandom() a one-liner 2016-06-17 13:07:25 +01:00
Andras Slemmer
481d2f7151 core: use newSecureRandom() instead of SecureRandom.getInstanceStrong() 2016-06-17 13:07:25 +01:00
Andras Slemmer
6229e39b42 core: Add newSecureRandom() that uses a non-blocking SecureRandom provider 2016-06-17 13:07:25 +01:00
Andras Slemmer
f06487aa4c Merged in sort-of-incremental-quasarScan (pull request #154)
Sort of incremental quasarscan
2016-06-17 10:38:39 +01:00
Shams Asari
7f3458803c Protocols can use the serviceHub lazily in their constructors 2016-06-17 10:30:25 +01:00
Andras Slemmer
dc5da8e1ad build: use QuasarPlugin instead of copypasta 2016-06-17 10:16:46 +01:00
Andras Slemmer
2663a6390e core: Kryo extension methods for reading/writing ByteArrays prefixed with their sizes 2016-06-16 17:03:44 +01:00
Andras Slemmer
5b4c4f167d core: .equals() -> == 2016-06-16 17:03:44 +01:00
Andras Slemmer
2b4ebd4f09 core: use optimizedPositive for size serialization 2016-06-16 17:03:44 +01:00
Andras Slemmer
cd91c6a0e7 core: add serialization test for keypairs 2016-06-16 17:03:44 +01:00
Andras Slemmer
af3d87803d core: serialize bytearray sizes instead of relying on static sizes 2016-06-16 17:03:44 +01:00