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
Andras Slemmer
376b73b823
core: switch to static size bytearray serialization of keypairs
2016-06-16 17:03:44 +01:00
Andras Slemmer
22567d11b5
core: implement custom serializers for ed25519 keypairs
2016-06-16 17:03:44 +01:00
Andras Slemmer
1fe283c113
core: switch to ed25519
2016-06-16 17:03:44 +01:00
Andras Slemmer
9930e8d5c7
core: add net.i2p.crypto:eddsa dependency
2016-06-16 17:03:44 +01:00
Rick Parker
512e304bf1
Merged in remove-commented-out-resolve-tx-proto (pull request #156 )
...
Remove commented out ResolveTransactionsProtocol call as it is not required
2016-06-16 16:19:03 +01:00
Ross Nicoll
ad72f3e48f
Add issuer to cash amounts
...
Add issuer of a cash when referring to amounts of cash (except for the very few cases where
the issuer is not important, such as when referring to aggregated totals across a set of
issuers). Replaces CommonCashState with TokenDefinition, as a more accurate reflection of
what the class represents.
2016-06-16 15:05:49 +01:00
rick.parker
cae39332bf
Remove commented out ResolveTransactionsProtocol call as it is not required
2016-06-16 13:15:37 +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
Richard Green
2ce0dce0aa
.
2016-06-14 11:28:58 +01:00
Richard Green
86203709c0
Payment dates now are calculated as an offset to the period end date
2016-06-13 19:00:27 +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
2365f9bca5
Persisting transactions to disk
2016-06-08 10:15:14 +01:00
rick.parker
97e04ba7d0
Fix registration of services due to Kryo not following synthetic fields by default
...
Review feedback
2016-06-07 16:29:59 +01:00
Andrius Dagys
21f53a7d3e
Revert "Revert "Merged in validating-notary (pull request #123 )""
...
This reverts commit e64145991e
.
2016-06-07 13:53:00 +01:00
Ross Nicoll
f4f0e160d2
Genericise Cash contract to support non-Currency things
...
Split the verification and commands for the Cash contract into a new AbstractCashLike
class, and make Cash a concrete implementation of that class, specialised for dealing
with Currency as the underlying token.
2016-06-07 13:49:26 +01:00
Andrius Dagys
e64145991e
Revert "Merged in validating-notary (pull request #123 )"
...
This reverts commit d9f4e4da2e
, reversing
changes made to 654dc3f60a
.
2016-06-07 12:29:27 +01:00
Andrius Dagys
c45bc0df20
Split up Notary protocol into Client and Service parts. The Service protocol can be extended to provide additional transaction processing logic, e.g. validation.
...
Implemented a Simple and Validating Notary services.
2016-06-07 10:58:34 +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
Rick Parker
570dc38423
Merged in cor-133-clock-helpers (pull request #112 )
...
MutableClock for testing, simulation and demos plus associated utilities
2016-05-24 17:58:37 +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
rick.parker
f8e610aa71
Re-apply changes
2016-05-24 09:41:00 +01:00
Matthew Nesbit
63a5fd1b9e
Add com.r3corda to all namespaces.
2016-05-23 14:53:56 +01:00
Matthew Nesbit
d1e8d15d9d
Merge branch 'mnesbit-cor-174-refactor-namespaces' of https://bitbucket.org/R3-CEV/r3prototyping into mnesbit-cor-174-refactor-namespaces
...
# Conflicts:
# core/src/main/kotlin/core/testing/TestUtils.kt
2016-05-20 16:56:41 +01:00
Matthew Nesbit
1d5f409c66
Remove unnecessary .Companion statements brought in during refactoring.
2016-05-20 16:43:03 +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
Matthew Nesbit
a556dfb17d
Push internal subsystems into node
2016-05-20 16:42:56 +01:00