Thank you! Your comment will show up '
+ + 'once it is has been approved by a moderator.');
+ }
+ // Prettify the comment rating.
+ comment.pretty_rating = comment.rating + ' point' +
+ (comment.rating == 1 ? '' : 's');
+ // Make a class (for displaying not yet moderated comments differently)
+ comment.css_class = comment.displayed ? '' : ' moderate';
+ // Create a div for this comment.
+ var context = $.extend({}, opts, comment);
+ var div = $(renderTemplate(commentTemplate, context));
+
+ // If the user has voted on this comment, highlight the correct arrow.
+ if (comment.vote) {
+ var direction = (comment.vote == 1) ? 'u' : 'd';
+ div.find('#' + direction + 'v' + comment.id).hide();
+ div.find('#' + direction + 'u' + comment.id).show();
+ }
+
+ if (opts.moderator || comment.text != '[deleted]') {
+ div.find('a.reply').show();
+ if (comment.proposal_diff)
+ div.find('#sp' + comment.id).show();
+ if (opts.moderator && !comment.displayed)
+ div.find('#cm' + comment.id).show();
+ if (opts.moderator || (opts.username == comment.username))
+ div.find('#dc' + comment.id).show();
+ }
+ return div;
+ }
+
+ /**
+ * A simple template renderer. Placeholders such as <%id%> are replaced
+ * by context['id'] with items being escaped. Placeholders such as <#id#>
+ * are not escaped.
+ */
+ function renderTemplate(template, context) {
+ var esc = $(document.createElement('div'));
+
+ function handle(ph, escape) {
+ var cur = context;
+ $.each(ph.split('.'), function() {
+ cur = cur[this];
+ });
+ return escape ? esc.text(cur || "").html() : cur;
+ }
+
+ return template.replace(/<([%#])([\w\.]*)\1>/g, function() {
+ return handle(arguments[2], arguments[1] == '%' ? true : false);
+ });
+ }
+
+ /** Flash an error message briefly. */
+ function showError(message) {
+ $(document.createElement('div')).attr({'class': 'popup-error'})
+ .append($(document.createElement('div'))
+ .attr({'class': 'error-message'}).text(message))
+ .appendTo('body')
+ .fadeIn("slow")
+ .delay(2000)
+ .fadeOut("slow");
+ }
+
+ /** Add a link the user uses to open the comments popup. */
+ $.fn.comment = function() {
+ return this.each(function() {
+ var id = $(this).attr('id').substring(1);
+ var count = COMMENT_METADATA[id];
+ var title = count + ' comment' + (count == 1 ? '' : 's');
+ var image = count > 0 ? opts.commentBrightImage : opts.commentImage;
+ var addcls = count == 0 ? ' nocomment' : '';
+ $(this)
+ .append(
+ $(document.createElement('a')).attr({
+ href: '#',
+ 'class': 'sphinx-comment-open' + addcls,
+ id: 'ao' + id
+ })
+ .append($(document.createElement('img')).attr({
+ src: image,
+ alt: 'comment',
+ title: title
+ }))
+ .click(function(event) {
+ event.preventDefault();
+ show($(this).attr('id').substring(2));
+ })
+ )
+ .append(
+ $(document.createElement('a')).attr({
+ href: '#',
+ 'class': 'sphinx-comment-close hidden',
+ id: 'ah' + id
+ })
+ .append($(document.createElement('img')).attr({
+ src: opts.closeCommentImage,
+ alt: 'close',
+ title: 'close'
+ }))
+ .click(function(event) {
+ event.preventDefault();
+ hide($(this).attr('id').substring(2));
+ })
+ );
+ });
+ };
+
+ var opts = {
+ processVoteURL: '/_process_vote',
+ addCommentURL: '/_add_comment',
+ getCommentsURL: '/_get_comments',
+ acceptCommentURL: '/_accept_comment',
+ deleteCommentURL: '/_delete_comment',
+ commentImage: '/static/_static/comment.png',
+ closeCommentImage: '/static/_static/comment-close.png',
+ loadingImage: '/static/_static/ajax-loader.gif',
+ commentBrightImage: '/static/_static/comment-bright.png',
+ upArrow: '/static/_static/up.png',
+ downArrow: '/static/_static/down.png',
+ upArrowPressed: '/static/_static/up-pressed.png',
+ downArrowPressed: '/static/_static/down-pressed.png',
+ voting: false,
+ moderator: false
+ };
+
+ if (typeof COMMENT_OPTIONS != "undefined") {
+ opts = jQuery.extend(opts, COMMENT_OPTIONS);
+ }
+
+ var popupTemplate = '\
+ ';
+
+ var commentTemplate = '\
+ \
+ ';
+
+ var replyTemplate = '\
+ \
+ \
+ \
+
\
+ ';
+
+ $(document).ready(function() {
+ init();
+ });
+})(jQuery);
+
+$(document).ready(function() {
+ // add comment anchors for all paragraphs that are commentable
+ $('.sphinx-has-comment').comment();
+
+ // highlight search words in search results
+ $("div.context").each(function() {
+ var params = $.getQueryParameters();
+ var terms = (params.q) ? params.q[0].split(/\s+/) : [];
+ var result = $(this);
+ $.each(terms, function() {
+ result.highlightText(this.toLowerCase(), 'highlighted');
+ });
+ });
+
+ // directly open comment window if requested
+ var anchor = document.location.hash;
+ if (anchor.substring(0, 9) == '#comment-') {
+ $('#ao' + anchor.substring(9)).click();
+ document.location.hash = '#s' + anchor.substring(9);
+ }
+});
diff --git a/docs/build/html/api/alltypes/index.html b/docs/build/html/api/alltypes/index.html
new file mode 100644
index 0000000000..a9ad8aa9b6
--- /dev/null
+++ b/docs/build/html/api/alltypes/index.html
@@ -0,0 +1,3034 @@
+
+
+alltypes -
+
+
+
+All Types
+
+
+
+
+net.corda.node.utilities.ANSIProgressObserver
+
+This observes the StateMachineManager and follows the progress of ProtocolLogic s until they complete in the order
+they are added to the StateMachineManager .
+
+
+
+
+net.corda.node.utilities.ANSIProgressRenderer
+
+Knows how to render a ProgressTracker to the terminal using coloured, emoji-fied output. Useful when writing small
+command line tools, demos, tests etc. Just set the progressTracker field and it will go ahead and start drawing
+if the terminal supports it. Otherwise it just prints out the name of the step whenever it changes.
+
+
+
+
+net.corda.node.api.APIServer
+
+Top level interface to external interaction with the distributed ledger.
+
+
+
+
+net.corda.node.internal.APIServerImpl
+
+
+
+
+
+net.corda.contracts.clause.AbstractConserveAmount
+
+Standardised clause for checking input/output balances of fungible assets. Requires that a
+Move command is provided, and errors if absent. Must be the last clause under a grouping clause;
+errors on no-match, ends on match.
+
+
+
+
+net.corda.contracts.clause.AbstractIssue
+
+Standard issue clause for contracts that issue fungible assets.
+
+
+
+
+net.corda.node.utilities.AbstractJDBCHashMap
+
+A base class for a JDBC table backed hash map that iterates in insertion order by using
+an ever increasing sequence number on entries. Iterators supports remove() but entries are not really mutable and
+do not support setValue() method from MutableMap.MutableEntry .
+
+
+
+
+net.corda.node.utilities.AbstractJDBCHashSet
+
+Base class for JDBC backed hash set that delegates to a JDBC backed hash map where the values are all
+Unit and not actually persisted. Iteration order is order of insertion. Iterators can remove().
+
+
+
+
+net.corda.node.services.network.AbstractNetworkMapService
+
+Abstracted out core functionality as the basis for a persistent implementation, as well as existing in-memory implementation.
+
+
+
+
+net.corda.node.internal.AbstractNode
+
+A base node implementation that can be customised either for production (with real implementations that do real
+I/O), or a mock implementation suitable for unit test environments.
+
+
+
+
+net.corda.node.services.api.AbstractNodeService
+
+Abstract superclass for services that a node can host, which provides helper functions.
+
+
+
+
+net.corda.protocols.AbstractStateReplacementProtocol
+
+Abstract protocol to be used for replacing one state with another, for example when changing the notary of a state.
+Notably this requires a one to one replacement of states, states cannot be split, merged or issued as part of these
+protocols.
+
+
+
+
+net.corda.node.services.api.AcceptsFileUpload
+
+A service that implements AcceptsFileUpload can have new binary data provided to it via an HTTP upload.
+
+
+
+
+net.corda.core.contracts.AccrualAdjustment
+
+Simple enum for returning accurals adjusted or unadjusted.
+We dont actually do anything with this yet though, so its ignored for now.
+
+
+
+
+net.corda.core.messaging.Ack
+
+A general Ack message that conveys no content other than its presence for use when you want an acknowledgement
+from a recipient. Using Unit can be ambiguous as it is similar to Void and so could mean no response.
+
+
+
+
+net.corda.node.utilities.AddOrRemove
+
+Enum for when adding/removing something, for example adding or removing an entry in a directory.
+
+
+
+
+net.corda.node.utilities.AffinityExecutor
+
+An extended executor interface that supports thread affinity assertions and short circuiting. This can be useful
+for ensuring code runs on the right thread, and also for unit testing.
+
+
+
+
+net.corda.client.fxutils.AggregatedList
+
+Given an ObservableList <E > and a grouping key K , AggregatedList groups the elements by the key into a fresh
+ObservableList <E > for each group and exposes the groups as an observable list of A s by calling assemble on each.
+
+
+
+
+net.corda.core.contracts.clauses.AllComposition
+
+Compose a number of clauses, such that all of the clauses must run for verification to pass.
+
+
+
+
+net.corda.core.messaging.AllPossibleRecipients
+
+A special base class for the set of all possible recipients, without having to identify who they all are.
+
+
+
+
+net.corda.core.contracts.Amount
+
+Amount represents a positive quantity of some token (currency, asset, etc.), measured in quantity of the smallest
+representable units. Note that quantity is not necessarily 1/100ths of a currency unit, but are the actual smallest
+amount used in whatever underlying thing the amount represents.
+
+
+
+
+net.corda.client.fxutils.AmountBindings
+
+Utility bindings for the Amount type, similar in spirit to Bindings
+
+
+
+
+net.corda.core.testing.AmountGenerator
+
+
+
+
+
+net.corda.core.contracts.clauses.AnyComposition
+
+Compose a number of clauses, such that any number of the clauses can run.
+
+
+
+
+net.corda.core.utilities.ApiUtils
+
+Utility functions to reduce boilerplate when developing HTTP APIs
+
+
+
+
+net.corda.core.protocols.AppContext
+
+This is just some way to track what attachments need to be in the class loader, but may later include some app
+properties loaded from the attachments. And perhaps the authenticated user for an API call?
+
+
+
+
+net.corda.node.services.messaging.ArtemisMessagingComponent
+
+The base class for Artemis services that defines shared data structures and transport configuration
+
+
+
+
+net.corda.node.services.messaging.ArtemisMessagingServer
+
+This class configures and manages an Apache Artemis message queue broker.
+
+
+
+
+net.corda.client.fxutils.AssociatedList
+
+AssociatedList creates an ObservableMap from an ObservableList by associating each list element with a unique key.
+It is not allowed to have several elements map to the same value
+
+
+
+
+net.corda.core.contracts.Attachment
+
+An attachment is a ZIP (or an optionally signed JAR) that contains one or more files. Attachments are meant to
+contain public static data which can be referenced from transactions and utilised from contracts. Good examples
+of how attachments are meant to be used include:
+
+
+
+
+net.corda.node.servlets.AttachmentDownloadServlet
+
+Allows the node administrator to either download full attachment zips, or individual files within those zips.
+
+
+
+
+net.corda.core.node.services.AttachmentStorage
+
+An attachment store records potentially large binary objects, identified by their hash.
+
+
+
+
+net.corda.core.node.AttachmentsClassLoader
+
+A custom ClassLoader that knows how to load classes from a set of attachments. The attachments themselves only
+need to provide JAR streams, and so could be fetched from a database, local disk, etc. Constructing an
+AttachmentsClassLoader is somewhat expensive, as every attachment is scanned to ensure that there are no overlapping
+file paths.
+
+
+
+
+net.corda.core.contracts.AuthenticatedObject
+
+Wraps an object that was signed by a public key, which may be a well known/recognised institutional key.
+
+
+
+
+net.corda.core.transactions.BaseTransaction
+
+An abstract class defining fields shared by all transaction types in the system.
+
+
+
+
+net.corda.contracts.clause.BilateralNetState
+
+Subset of state, containing the elements which must match for two obligation transactions to be nettable.
+If two obligation state objects produce equal bilateral net states, they are considered safe to net directly.
+Bilateral states are used in close-out netting.
+
+
+
+
+net.corda.core.contracts.BilateralNettableState
+
+Interface for state objects that support being netted with other state objects.
+
+
+
+
+net.corda.protocols.BroadcastTransactionProtocol
+
+Notify all involved parties about a transaction, including storing a copy. Normally this would be called via
+FinalityProtocol .
+
+
+
+
+net.corda.core.contracts.BusinessCalendar
+
+A business calendar performs date calculations that take into account national holidays and weekends. This is a
+typical feature of financial contracts, in which a business may not want a payment event to fall on a day when
+no staff are around to handle problems.
+
+
+
+
+kotlin.ByteArray (extensions in package net.corda.core.crypto)
+
+
+
+
+
+kotlin.ByteArray (extensions in package net.corda.core.serialization)
+
+
+
+
+
+net.corda.contracts.asset.Cash
+
+A cash transaction may split and merge money represented by a set of (issuer, depositRef) pairs, across multiple
+input and output states. Imagine a Bitcoin transaction but in which all UTXOs had a colour
+(a blend of issuer+depositRef) and you couldnt merge outputs of two colours together, but you COULD put them in
+the same transaction.
+
+
+
+
+net.corda.node.services.vault.CashBalanceAsMetricsObserver
+
+This class observes the vault and reflect current cash balances as exposed metrics in the monitoring service.
+
+
+
+
+net.corda.schemas.CashSchema
+
+An object used to fully qualify the CashSchema family name (i.e. independent of version).
+
+
+
+
+net.corda.schemas.CashSchemaV1
+
+First version of a cash contract ORM schema that maps all fields of the Cash contract state as it stood
+at the time of writing.
+
+
+
+
+net.corda.node.utilities.certsigning.CertificateSigner
+
+This check the certificatePath for certificates required to connect to the Corda network.
+If the certificates are not found, a PKCS10CertificationRequest will be submitted to Corda network permissioning server using CertificateSigningService .
+This process will enter a slow polling loop until the request has been approved, and then
+the certificate chain will be downloaded and stored in KeyStore reside in certificatePath .
+
+
+
+
+net.corda.node.utilities.certsigning.CertificateSigningService
+
+
+
+
+
+net.corda.node.services.api.Checkpoint
+
+
+
+
+
+net.corda.node.services.api.CheckpointStorage
+
+Thread-safe storage of fiber checkpoints.
+
+
+
+
+net.corda.client.fxutils.ChosenList
+
+ChosenList manages an ObservableList that may be changed by the wrapping ObservableValue . Whenever the underlying
+ObservableValue changes the exposed list changes to the new value. Changes to the list are simply propagated.
+
+
+
+
+net.corda.core.node.CityDatabase
+
+A simple lookup table of city names to their coordinates. Lookups are case insensitive.
+
+
+
+
+net.corda.core.contracts.clauses.Clause
+
+A clause of a contract, containing a chunk of verification logic. That logic may be delegated to other clauses, or
+provided directly by this clause.
+
+
+
+
+net.corda.node.services.messaging.ClientRPCRequestMessage
+
+The contents of an RPC request message, separated from the MQ layer.
+
+
+
+
+net.corda.core.contracts.ClientToServiceCommand
+
+A command from the monitoring client, to the node.
+
+
+
+
+java.time.Clock (extensions in package net.corda.node.utilities)
+
+
+
+
+
+kotlin.collections.Collection (extensions in package net.corda.core.contracts)
+
+
+
+
+
+kotlin.collections.Collection (extensions in package net.corda.client.fxutils)
+
+
+
+
+
+net.corda.core.contracts.Command
+
+Command data/content plus pubkey pair: the signature is stored at the end of the serialized bytes
+
+
+
+
+net.corda.core.contracts.CommandData
+
+Marker interface for classes that represent commands
+
+
+
+
+net.corda.contracts.testing.CommandDataGenerator
+
+
+
+
+
+net.corda.contracts.testing.CommandGenerator
+
+
+
+
+
+net.corda.contracts.CommercialPaper
+
+
+
+
+
+net.corda.contracts.CommercialPaperLegacy
+
+
+
+
+
+net.corda.schemas.CommercialPaperSchema
+
+An object used to fully qualify the CommercialPaperSchema family name (i.e. independent of version).
+
+
+
+
+net.corda.schemas.CommercialPaperSchemaV1
+
+First version of a commercial paper contract ORM schema that maps all fields of the CommercialPaper contract state
+as it stood at the time of writing.
+
+
+
+
+net.corda.core.contracts.Commodity
+
+Class representing a commodity, as an equivalent to the Currency class. This exists purely to enable the
+CommodityContract contract, and is likely to change in future.
+
+
+
+
+net.corda.contracts.asset.CommodityContract
+
+A commodity contract represents an amount of some commodity, tracked on a distributed ledger. The design of this
+contract is intentionally similar to the Cash contract, and the same commands (issue, move, exit) apply, the
+differences are in representation of the underlying commodity. Issuer in this context means the party who has the
+commodity, or is otherwise responsible for delivering the commodity on demand, and the deposit reference is use for
+internal accounting by the issuer (it might be, for example, a warehouse and/or location within a warehouse).
+
+
+
+
+net.corda.core.contracts.clauses.CompositeClause
+
+Abstract supertype for clauses which compose other clauses together in some logical manner.
+
+
+
+
+net.corda.client.fxutils.ConcatenatedList
+
+ConcatenatedList takes a list of lists and concatenates them. Any change to the underlying lists or the outer list
+is propagated as expected.
+
+
+
+
+net.corda.node.servlets.Config
+
+Primary purpose is to install Kotlin extensions for Jackson ObjectMapper so data classes work
+and to organise serializers / deserializers for java.time.* classes as necessary.
+
+
+
+
+net.corda.node.services.config.ConfigHelper
+
+
+
+
+
+net.corda.node.internal.ConfigurationException
+
+
+
+
+
+net.corda.core.contracts.Contract
+
+Implemented by a program that implements business logic on the shared ledger. All participants run this code for
+every LedgerTransaction they see on the network, for every input and output state. All contracts must accept the
+transaction for it to be accepted: failure of any aborts the entire thing. The time is taken from a trusted
+timestamp attached to the transaction itself i.e. it is NOT necessarily the current time.
+
+
+
+
+net.corda.node.api.ContractClassRef
+
+
+
+
+
+net.corda.node.api.ContractDefRef
+
+Encapsulates the contract type. e.g. Cash or CommercialPaper etc.
+
+
+
+
+net.corda.node.api.ContractLedgerRef
+
+
+
+
+
+net.corda.core.contracts.ContractState
+
+A contract state (or just "state") contains opaque data used by a contract program. It can be thought of as a disk
+file that the program can use to persist data across transactions. States are immutable: once created they are never
+updated, instead, any changes must generate a new successor state. States can be updated (consumed) only once: the
+notary is responsible for ensuring there is no "double spending" by only signing a transaction if the input states
+are all free.
+
+
+
+
+net.corda.contracts.testing.ContractStateGenerator
+
+This file contains generators for quickcheck style testing. The idea is that we can write random instance generators
+for each type we have in the code and test against those instead of predefined mock data. This style of testing can
+catch corner case bugs and test algebraic properties of the code, for example deserialize(serialize(generatedThing)) == generatedThing
+
+
+
+
+net.corda.client.model.ContractStateModel
+
+This model exposes the list of owned contract states.
+
+
+
+
+net.corda.core.node.CordaPluginRegistry
+
+Implement this interface on a class advertised in a META-INF/services/net.corda.core.node.CordaPluginRegistry file
+to extend a Corda node with additional application services.
+
+
+
+
+net.corda.client.CordaRPCClient
+
+An RPC client connects to the specified server and allows you to make calls to the server that perform various
+useful tasks. See the documentation for proxy or review the docsite to learn more about how this API works.
+
+
+
+
+net.corda.node.services.messaging.CordaRPCOps
+
+RPC operations that the node exposes to clients using the Java client library. These can be called from
+client apps and are implemented by the node in the ServerRPCOps class.
+
+
+
+
+net.corda.node.internal.CordaRPCOpsImpl
+
+Server side implementations of RPCs available to MQ based client tools. Execution takes place on the server
+thread (i.e. serially). Arguments are serialised and deserialised automatically.
+
+
+
+
+net.corda.core.math.CubicSplineInterpolator
+
+Interpolates values between the given data points using a SplineFunction .
+
+
+
+
+java.util.Currency (extensions in package net.corda.core.contracts)
+
+
+
+
+
+net.corda.core.testing.CurrencyGenerator
+
+
+
+
+
+net.corda.node.services.persistence.DBCheckpointStorage
+
+Simple checkpoint key value storage in DB using the underlying JDBCHashMap and transactional context of the call sites.
+
+
+
+
+net.corda.node.services.persistence.DBTransactionMappingStorage
+
+Database storage of a txhash -> state machine id mapping.
+
+
+
+
+net.corda.node.services.persistence.DBTransactionStorage
+
+
+
+
+
+net.corda.node.servlets.DataUploadServlet
+
+Accepts binary streams, finds the right AcceptsFileUpload implementor and hands the stream off to it.
+
+
+
+
+net.corda.node.services.persistence.DataVending
+
+
+
+
+
+net.corda.core.contracts.DateRollConvention
+
+This reflects what happens if a date on which a business event is supposed to happen actually falls upon a non-working day.
+Depending on the accounting requirement, we can move forward until we get to a business day, or backwards.
+There are some additional rules which are explained in the individual cases below.
+
+
+
+
+net.corda.core.contracts.DateRollDirection
+
+This is utilised in the DateRollConvention class to determine which way we should initially step when
+finding a business day.
+
+
+
+
+net.corda.core.contracts.DayCountBasisDay
+
+This forms the day part of the "Day Count Basis" used for interest calculation.
+Note that the first character cannot be a number (enum naming constraints), so we drop that
+in the toString lest some people get confused.
+
+
+
+
+net.corda.core.contracts.DayCountBasisYear
+
+This forms the year part of the "Day Count Basis" used for interest calculation.
+
+
+
+
+net.corda.core.contracts.DealState
+
+Interface representing an agreement that exposes various attributes that are common. Implementing it simplifies
+implementation of general protocols that manipulate many agreement types.
+
+
+
+
+net.corda.core.serialization.DeserializeAsKotlinObjectDef
+
+Marker interface for kotlin object definitions so that they are deserialized as the singleton instance.
+
+
+
+
+net.corda.client.model.Diff
+
+
+
+
+
+net.corda.core.crypto.DigitalSignature
+
+A wrapper around a digital signature. The covering field is a generic tag usable by whatever is interpreting the
+signature. It isnt used currently, but experience from Bitcoin suggests such a feature is useful, especially when
+building partially signed transactions.
+
+
+
+
+kotlin.Double (extensions in package net.corda.core.contracts)
+
+
+
+
+
+kotlin.Double (extensions in package net.corda.core)
+
+
+
+
+
+net.corda.node.driver.DriverDSL
+
+
+
+
+
+net.corda.node.driver.DriverDSLExposedInterface
+
+This is the interface thats exposed to DSL users.
+
+
+
+
+net.corda.node.driver.DriverDSLInternalInterface
+
+
+
+
+
+net.corda.core.contracts.DummyContract
+
+
+
+
+
+net.corda.core.crypto.DummyPublicKey
+
+
+
+
+
+net.corda.core.contracts.DummyState
+
+Dummy state for use in testing. Not part of any contract, not even the DummyContract .
+
+
+
+
+net.corda.core.testing.DurationGenerator
+
+
+
+
+
+net.corda.node.services.keys.E2ETestKeyManagementService
+
+A simple in-memory KMS that doesnt bother saving keys to disk. A real implementation would:
+
+
+
+
+net.corda.core.serialization.Ed25519PrivateKeySerializer
+
+For serialising an ed25519 private key
+
+
+
+
+net.corda.core.serialization.Ed25519PublicKeySerializer
+
+For serialising an ed25519 public key
+
+
+
+
+net.corda.core.utilities.Emoji
+
+A simple wrapper class that contains icons and support for printing them only when were connected to a terminal.
+
+
+
+
+net.corda.core.ErrorOr
+
+Representation of an operation that may have thrown an error.
+
+
+
+
+net.corda.client.mock.EventGenerator
+
+Generator s for incoming/outgoing events to/from the WalletMonitorService . Internally it keeps track of owned
+state/ref pairs, but it doesnt necessarily generate "correct" events
+
+
+
+
+net.corda.client.model.ExchangeRate
+
+
+
+
+
+net.corda.client.model.ExchangeRateModel
+
+This model provides an exchange rate from arbitrary currency to arbitrary currency.
+TODO hook up an actual oracle
+
+
+
+
+net.corda.contracts.testing.ExitGenerator
+
+
+
+
+
+net.corda.core.contracts.Expression
+
+Represents a textual expression of e.g. a formula
+
+
+
+
+net.corda.core.contracts.ExpressionDeserializer
+
+
+
+
+
+net.corda.core.contracts.ExpressionSerializer
+
+
+
+
+
+net.corda.protocols.FetchAttachmentsProtocol
+
+Given a set of hashes either loads from from local storage or requests them from the other peer. Downloaded
+attachments are saved to local storage automatically.
+
+
+
+
+net.corda.protocols.FetchDataProtocol
+
+An abstract protocol for fetching typed data from a remote peer.
+
+
+
+
+net.corda.protocols.FetchTransactionsProtocol
+
+Given a set of tx hashes (IDs), either loads them from local disk or asks the remote peer to provide them.
+
+
+
+
+net.corda.node.utilities.FiberBox
+
+Modelled on ThreadBox , but with support for waiting that is compatible with Quasar Fiber s and MutableClock s.
+
+
+
+
+net.corda.core.transactions.FilterFuns
+
+Holds filter functions on transactions fields.
+Functions are used to build a partial tree only out of some subset of original transaction fields.
+
+
+
+
+net.corda.core.contracts.clauses.FilterOn
+
+Filter the states that are passed through to the wrapped clause, to restrict them to a specific type.
+
+
+
+
+net.corda.core.transactions.FilteredLeaves
+
+Class that holds filtered leaves for a partial Merkle transaction. We assume mixed leaves types.
+
+
+
+
+net.corda.core.transactions.FilteredTransaction
+
+Class representing merkleized filtered transaction.
+
+
+
+
+net.corda.protocols.FinalityProtocol
+
+Finalise a transaction by notarising it, then recording it locally, and then sending it to all involved parties.
+
+
+
+
+net.corda.core.contracts.clauses.FirstComposition
+
+Compose a number of clauses, such that the first match is run, and it errors if none is run.
+
+
+
+
+net.corda.core.contracts.Fix
+
+A Fix represents a named interest rate, on a given day, for a given duration. It can be embedded in a tx.
+
+
+
+
+net.corda.core.contracts.FixOf
+
+A FixOf identifies the question side of a fix: what day, tenor and type of fix ("LIBOR", "EURIBOR" etc)
+
+
+
+
+net.corda.core.contracts.FixableDealState
+
+Interface adding fixing specific methods.
+
+
+
+
+net.corda.client.fxutils.FlattenedList
+
+FlattenedList flattens the passed in list of ObservableValue s so that changes in individual updates to the values
+are reflected in the exposed list as expected.
+
+
+
+
+net.corda.core.contracts.Frequency
+
+Frequency at which an event occurs - the enumerator also casts to an integer specifying the number of times per year
+that would divide into (eg annually = 1, semiannual = 2, monthly = 12 etc).
+
+
+
+
+net.corda.node.services.config.FullNodeConfiguration
+
+
+
+
+
+kotlin.Function1 (extensions in package net.corda.client.fxutils)
+
+
+
+
+
+kotlin.Function2 (extensions in package net.corda.client.fxutils)
+
+
+
+
+
+kotlin.Function3 (extensions in package net.corda.client.fxutils)
+
+
+
+
+
+kotlin.Function4 (extensions in package net.corda.client.fxutils)
+
+
+
+
+
+net.corda.core.contracts.FungibleAsset
+
+Interface for contract states representing assets which are fungible, countable and issued by a
+specific party. States contain assets which are equivalent (such as cash of the same currency),
+so records of their existence can be merged or split as needed where the issuer is the same. For
+instance, dollars issued by the Fed are fungible and countable (in cents), barrels of West Texas
+crude are fungible and countable (oil from two small containers can be poured into one large
+container), shares of the same class in a specific company are fungible and countable, and so on.
+
+
+
+
+net.corda.client.model.GatheredTransactionData
+
+
+
+
+
+net.corda.client.model.GatheredTransactionDataModel
+
+This model provides an observable list of transactions and what state machines/protocols recorded them
+
+
+
+
+net.corda.client.mock.Generator
+
+This file defines a basic Generator library for composing random generators of objects.
+
+
+
+
+net.corda.core.contracts.clauses.GroupClauseVerifier
+
+
+
+
+
+net.corda.node.utilities.certsigning.HTTPCertificateSigningService
+
+
+
+
+
+net.corda.node.services.schema.HibernateObserver
+
+A vault observer that extracts Object Relational Mappings for contract states that support it, and persists them with Hibernate.
+
+
+
+
+net.corda.core.node.services.IdentityService
+
+An identity service maintains an bidirectional map of Party s to their associated public keys and thus supports
+lookup of a party given its key. This is obviously very incomplete and does not reflect everything a real identity
+service would provide.
+
+
+
+
+net.corda.core.protocols.IllegalProtocolLogicException
+
+
+
+
+
+net.corda.core.serialization.ImmutableClassSerializer
+
+Serializes properties and deserializes by using the constructor. This assumes that all backed properties are
+set via the constructor and the class is immutable.
+
+
+
+
+net.corda.node.services.identity.InMemoryIdentityService
+
+Simple identity service which caches parties and provides functionality for efficient lookup.
+
+
+
+
+net.corda.node.services.network.InMemoryNetworkMapCache
+
+Extremely simple in-memory cache of the network map.
+
+
+
+
+net.corda.node.services.network.InMemoryNetworkMapService
+
+
+
+
+
+net.corda.node.services.persistence.InMemoryStateMachineRecordedTransactionMappingStorage
+
+This is a temporary in-memory storage of a state machine id -> txhash mapping
+
+
+
+
+net.corda.node.services.transactions.InMemoryUniquenessProvider
+
+A dummy Uniqueness provider that stores the whole history of consumed states in memory
+
+
+
+
+java.io.InputStream (extensions in package net.corda.core)
+
+
+
+
+
+net.corda.node.utilities.InstantColumnType
+
+ColumnType for marshalling to/from database on behalf of java.time.Instant .
+
+
+
+
+net.corda.core.testing.InstantGenerator
+
+
+
+
+
+net.corda.core.contracts.InsufficientBalanceException
+
+
+
+
+
+kotlin.Int (extensions in package net.corda.core.contracts)
+
+
+
+
+
+kotlin.Int (extensions in package net.corda.core)
+
+
+
+
+
+net.corda.core.math.Interpolator
+
+
+
+
+
+net.corda.core.math.InterpolatorFactory
+
+
+
+
+
+net.corda.core.contracts.IssuanceDefinition
+
+Marker interface for data classes that represent the issuance state for a contract. These are intended as templates
+from which the state object is initialised.
+
+
+
+
+net.corda.core.contracts.IssueCommand
+
+A common issue command, to enforce that issue commands have a nonce value.
+
+
+
+
+net.corda.contracts.testing.IssueGenerator
+
+
+
+
+
+net.corda.core.contracts.Issued
+
+Definition for an issued product, which can be cash, a cash-like thing, assets, or generally anything else thats
+quantifiable with integer quantities.
+
+
+
+
+net.corda.core.testing.IssuedGenerator
+
+
+
+
+
+kotlin.collections.Iterable (extensions in package net.corda.core.contracts)
+
+
+
+
+
+kotlin.collections.Iterable (extensions in package net.corda.core.crypto)
+
+
+
+
+
+kotlin.collections.Iterable (extensions in package net.corda.core.node.services)
+
+
+
+
+
+kotlin.collections.Iterable (extensions in package net.corda.core)
+
+
+
+
+
+kotlin.collections.Iterable (extensions in package net.corda.contracts.asset)
+
+
+
+
+
+net.corda.node.utilities.JDBCHashMap
+
+A convenient JDBC table backed hash map with iteration order based on insertion order.
+See AbstractJDBCHashMap for further implementation details.
+
+
+
+
+net.corda.node.utilities.JDBCHashSet
+
+A convenient JDBC table backed hash set with iteration order based on insertion order.
+See AbstractJDBCHashSet and AbstractJDBCHashMap for further implementation details.
+
+
+
+
+net.corda.node.utilities.JDBCHashedTable
+
+
+
+
+
+net.corda.node.utilities.JsonSupport
+
+Utilities and serialisers for working with JSON representations of basic types. This adds Jackson support for
+the java.time API, some core types, and Kotlin data classes.
+
+
+
+
+net.corda.core.node.services.KeyManagementService
+
+The KMS is responsible for storing and using private keys to sign things. An implementation of this may, for example,
+call out to a hardware security module that enforces various auditing and frequency-of-use requirements.
+
+
+
+
+java.security.KeyPair (extensions in package net.corda.core.crypto)
+
+
+
+
+
+net.corda.core.serialization.KotlinObjectSerializer
+
+Serializer to deserialize kotlin object definitions marked with DeserializeAsKotlinObjectDef .
+
+
+
+
+net.corda.node.services.network.LastAcknowledgeInfo
+
+
+
+
+
+net.corda.core.transactions.LedgerTransaction
+
+A LedgerTransaction is derived from a WireTransaction . It is the result of doing the following operations:
+
+
+
+
+net.corda.client.fxutils.LeftOuterJoinedMap
+
+LeftOuterJoinedMap implements a special case of a left outer join where were matching on primary keys of both
+tables.
+
+
+
+
+net.corda.core.math.LinearInterpolator
+
+Interpolates values between the given data points using straight lines.
+
+
+
+
+net.corda.core.contracts.LinearState
+
+A state that evolves by superseding itself, all of which share the common "linearId".
+
+
+
+
+kotlin.collections.List (extensions in package net.corda.core)
+
+
+
+
+
+java.time.LocalDate (extensions in package net.corda.core.contracts)
+
+
+
+
+
+net.corda.node.utilities.LocalDateColumnType
+
+ColumnType for marshalling to/from database on behalf of java.time.LocalDate .
+
+
+
+
+net.corda.node.utilities.LocalDateTimeColumnType
+
+ColumnType for marshalling to/from database on behalf of java.time.LocalDateTime .
+
+
+
+
+net.corda.core.utilities.LogHelper
+
+A configuration helper that allows modifying the log level for specific loggers
+
+
+
+
+kotlin.Long (extensions in package net.corda.core)
+
+
+
+
+
+net.corda.client.fxutils.MapValuesList
+
+MapValuesList takes an ObservableMap and returns its values as an ObservableList .
+The order of returned elements is deterministic but unspecified.
+
+
+
+
+net.corda.client.fxutils.MappedList
+
+This is a variant of EasyBind.map where the mapped list is backed, therefore the mapping function will only be run
+when an element is inserted or updated.
+Use this instead of EasyBind.map to trade off memory vs CPU, or if (god forbid) the mapped function is side-effecting.
+
+
+
+
+net.corda.core.schemas.MappedSchema
+
+A database schema that might be configured for this node. As well as a name and version for identifying the schema,
+also list the classes that may be used in the generated object graph in order to configure the ORM tool.
+
+
+
+
+net.corda.node.services.messaging.MarshalledObservation
+
+Used in the RPC wire protocol to wrap an observation with the handle of the observable its intended for.
+
+
+
+
+net.corda.core.transactions.MerkleTree
+
+Creation and verification of a Merkle Tree for a Wire Transaction.
+
+
+
+
+net.corda.core.crypto.MerkleTreeException
+
+
+
+
+
+net.corda.core.messaging.Message
+
+A message is defined, at this level, to be a (topic, timestamp, byte arrays) triple, where the topic is a string in
+Java-style reverse dns form, with "platform." being a prefix reserved by the platform for its own use. Vendor
+specific messages can be defined, but use your domain name as the prefix e.g. "uk.co.bigbank.messages.SomeMessage".
+
+
+
+
+net.corda.core.messaging.MessageHandlerRegistration
+
+
+
+
+
+net.corda.core.messaging.MessageRecipientGroup
+
+A base class for a set of recipients specifically identified by the sender.
+
+
+
+
+net.corda.core.messaging.MessageRecipients
+
+The interface for a group of message recipients (which may contain only one recipient)
+
+
+
+
+net.corda.core.messaging.MessagingService
+
+A MessagingService sits at the boundary between a message routing / networking layer and the core platform code.
+
+
+
+
+net.corda.node.services.api.MessagingServiceBuilder
+
+This class lets you start up a MessagingService . Its purpose is to stop you from getting access to the methods
+on the messaging service interface until you have successfully started up the system. One of these objects should
+be the only way to obtain a reference to a MessagingService . Startup may be a slow process: some implementations
+may let you cast the returned future to an object that lets you get status info.
+
+
+
+
+net.corda.node.services.api.MessagingServiceInternal
+
+
+
+
+
+net.corda.core.serialization.MissingAttachmentsException
+
+Thrown during deserialisation to indicate that an attachment needed to construct the WireTransaction is not found
+
+
+
+
+net.corda.client.model.Models
+
+
+
+
+
+net.corda.node.services.api.MonitoringService
+
+Provides access to various metrics and ways to notify monitoring services of things, for sysadmin purposes.
+This is not an interface because it is too lightweight to bother mocking out.
+
+
+
+
+net.corda.core.contracts.MoveCommand
+
+A common move command for contracts which can change owner.
+
+
+
+
+net.corda.contracts.testing.MoveGenerator
+
+
+
+
+
+net.corda.contracts.clause.MultilateralNetState
+
+Subset of state, containing the elements which must match for two or more obligation transactions to be candidates
+for netting (this does not include the checks to enforce that everyones amounts received are the same at the end,
+which is handled under the verify() function).
+In comparison to BilateralNetState , this doesnt include the parties keys, as ensuring balances match on
+input and output is handled elsewhere.
+Used in cases where all parties (or their proxies) are signing, such as central clearing.
+
+
+
+
+net.corda.core.contracts.MultilateralNettableState
+
+Interface for state objects that support being netted with other state objects.
+
+
+
+
+net.corda.node.utilities.MutableClock
+
+An abstract class with helper methods for a type of Clock that might have its concept of "now"
+adjusted externally.
+
+
+
+
+net.corda.core.contracts.NamedByHash
+
+Implemented by anything that can be named by a secure hash value (e.g. transactions, attachments).
+
+
+
+
+net.corda.contracts.clause.NetClause
+
+Clause for netting contract states. Currently only supports obligation contract.
+
+
+
+
+net.corda.core.contracts.NetCommand
+
+A common netting command for contracts whose states can be netted.
+
+
+
+
+net.corda.contracts.clause.NetState
+
+Common interface for the state subsets used when determining nettability of two or more states. Exposes the
+underlying issued thing.
+
+
+
+
+net.corda.core.contracts.NetType
+
+Enum for the types of netting that can be applied to state objects. Exact behaviour
+for each type of netting is left to the contract to determine.
+
+
+
+
+net.corda.core.contracts.NettableState
+
+
+
+
+
+net.corda.core.node.services.NetworkCacheError
+
+
+
+
+
+net.corda.client.model.NetworkIdentityModel
+
+
+
+
+
+net.corda.core.node.services.NetworkMapCache
+
+A network map contains lists of nodes on the network along with information about their identity keys, services
+they provide and host names or IP addresses where they can be connected to. The cache wraps around a map fetched
+from an authoritative service, and adds easy lookup of the data stored within it. Generally it would be initialised
+with a specified network map service, which it fetches data from and then subscribes to updates of.
+
+
+
+
+net.corda.node.services.network.NetworkMapService
+
+A network map contains lists of nodes on the network along with information about their identity keys, services
+they provide and host names or IP addresses where they can be connected to. This information is cached locally within
+nodes, by the NetworkMapCache . Currently very basic consensus controls are applied, using signed changes which
+replace each other based on a serial number present in the change.
+
+
+
+
+net.corda.core.serialization.NoReferencesSerializer
+
+
+
+
+
+net.corda.contracts.clause.NoZeroSizedOutputs
+
+Clause for fungible asset contracts, which enforces that no output state should have
+a balance of zero.
+
+
+
+
+net.corda.node.internal.Node
+
+A Node manages a standalone server that takes part in the P2P network. It creates the services found in ServiceHub ,
+loads important data off disk and starts listening for connections.
+
+
+
+
+net.corda.node.services.persistence.NodeAttachmentService
+
+Stores attachments in the specified local directory, which must exist. Doesnt allow new attachments to be uploaded.
+
+
+
+
+net.corda.node.serialization.NodeClock
+
+A Clock that tokenizes itself when serialized, and delegates to an underlying Clock implementation.
+
+
+
+
+net.corda.node.services.config.NodeConfiguration
+
+
+
+
+
+net.corda.core.node.NodeInfo
+
+Info about a network node that acts on behalf of some form of contract party.
+
+
+
+
+net.corda.node.driver.NodeInfoAndConfig
+
+
+
+
+
+net.corda.node.services.network.NodeMapError
+
+
+
+
+
+net.corda.node.services.messaging.NodeMessagingClient
+
+This class implements the MessagingService API using Apache Artemis, the successor to their ActiveMQ product.
+Artemis is a message queue broker and here we run a client connecting to the specified broker instance
+ArtemisMessagingServer . Its primarily concerned with peer-to-peer messaging.
+
+
+
+
+net.corda.client.model.NodeMonitorModel
+
+This model exposes raw event streams to and from the node.
+
+
+
+
+net.corda.node.services.network.NodeRegistration
+
+A node registration state in the network map.
+
+
+
+
+net.corda.node.services.network.NodeRegistrationInfo
+
+
+
+
+
+net.corda.node.services.config.NodeSSLConfiguration
+
+
+
+
+
+net.corda.node.services.events.NodeSchedulerService
+
+A first pass of a simple SchedulerService that works with MutableClock s for testing, demonstrations and simulations
+that also encompasses the Vault observer for processing transactions.
+
+
+
+
+net.corda.node.services.schema.NodeSchemaService
+
+Most basic implementation of SchemaService .
+
+
+
+
+net.corda.node.services.vault.NodeVaultService
+
+Currently, the node vault service is a very simple RDBMS backed implementation. It will change significantly when
+we add further functionality as the design for the vault and vault service matures.
+
+
+
+
+net.corda.core.utilities.NonEmptySet
+
+A set which is constrained to ensure it can never be empty. An initial value must be provided at
+construction, and attempting to remove the last element will cause an IllegalStateException.
+The underlying set is exposed for Kryo to access, but should not be accessed directly.
+
+
+
+
+net.corda.core.utilities.NonEmptySetSerializer
+
+Custom serializer which understands it has to read in an item before
+trying to construct the set.
+
+
+
+
+net.corda.node.services.NotaryChange
+
+
+
+
+
+net.corda.protocols.NotaryChangeProtocol
+
+A protocol to be used for changing a states Notary. This is required since all input states to a transaction
+must point to the same notary.
+
+
+
+
+net.corda.protocols.NotaryError
+
+
+
+
+
+net.corda.protocols.NotaryException
+
+
+
+
+
+net.corda.protocols.NotaryProtocol
+
+
+
+
+
+net.corda.node.services.transactions.NotaryService
+
+A Notary service acts as the final signer of a transaction ensuring two things:
+
+
+
+
+net.corda.core.crypto.NullPublicKey
+
+
+
+
+
+net.corda.core.crypto.NullSignature
+
+A signature with a key and value of zero. Useful when you want a signature object that you know wont ever be used.
+
+
+
+
+net.corda.contracts.asset.Obligation
+
+An obligation contract commits the obligor to delivering a specified amount of a fungible asset (for example the
+Cash contract) at a specified future point in time. Settlement transactions may split and merge contracts across
+multiple input and output states. The goal of this design is to handle amounts owed, and these contracts are expected
+to be netted/merged, with settlement only for any remainder amount.
+
+
+
+
+javafx.collections.ObservableList (extensions in package net.corda.client.fxutils)
+
+
+
+
+
+javafx.collections.ObservableMap (extensions in package net.corda.client.fxutils)
+
+
+
+
+
+javafx.beans.value.ObservableValue (extensions in package net.corda.client.fxutils)
+
+
+
+
+
+net.corda.contracts.asset.OnLedgerAsset
+
+An asset transaction may split and merge assets represented by a set of (issuer, depositRef) pairs, across multiple
+input and output states. Imagine a Bitcoin transaction but in which all UTXOs had a colour (a blend of
+issuer+depositRef) and you couldnt merge outputs of two colours together, but you COULD put them in the same
+transaction.
+
+
+
+
+net.corda.core.serialization.OpaqueBytes
+
+A simple class that wraps a byte array and makes the equals/hashCode/toString methods work as you actually expect.
+In an ideal JVM this would be a value type and be completely overhead free. Project Valhalla is adding such
+functionality to Java, but it wont arrive for a few years yet
+
+
+
+
+net.corda.node.services.config.OptionalConfig
+
+Helper class for optional configurations
+
+
+
+
+net.corda.core.serialization.OrderedSerializer
+
+
+
+
+
+net.corda.core.contracts.OwnableState
+
+A contract state that can have a single owner.
+
+
+
+
+net.corda.node.ParamsSpec
+
+
+
+
+
+net.corda.node.utilities.certsigning.ParamsSpec
+
+
+
+
+
+net.corda.core.crypto.PartialMerkleTree
+
+Building and verification of Partial Merkle Tree.
+Partial Merkle Tree is a minimal tree needed to check that a given set of leaves belongs to a full Merkle Tree.
+
+
+
+
+net.corda.client.model.PartiallyResolvedTransaction
+
+PartiallyResolvedTransaction holds a SignedTransaction that has zero or more inputs resolved. The intent is
+to prepare clients for cases where an input can only be resolved in the future/cannot be resolved at all (for example
+because of permissioning)
+
+
+
+
+net.corda.core.crypto.Party
+
+A Party is well known (name, pubkey) pair. In a real system this would probably be an X.509 certificate.
+
+
+
+
+net.corda.core.contracts.PartyAndReference
+
+Reference to something being stored or issued by a party e.g. in a vault or (more likely) on their normal
+ledger. The reference is intended to be encrypted so its meaningless to anyone other than the party.
+
+
+
+
+net.corda.core.testing.PartyAndReferenceGenerator
+
+
+
+
+
+net.corda.node.utilities.PartyColumns
+
+
+
+
+
+net.corda.core.testing.PartyGenerator
+
+
+
+
+
+java.nio.file.Path (extensions in package net.corda.core)
+
+
+
+
+
+net.corda.core.contracts.PaymentRule
+
+Whether the payment should be made before the due date, or after it.
+
+
+
+
+net.corda.node.services.messaging.PermissionException
+
+
+
+
+
+net.corda.node.services.keys.PersistentKeyManagementService
+
+A persistent re-implementation of E2ETestKeyManagementService to support node re-start.
+
+
+
+
+net.corda.node.services.network.PersistentNetworkMapService
+
+A network map service backed by a database to survive restarts of the node hosting it.
+
+
+
+
+net.corda.core.schemas.PersistentState
+
+A super class for all mapped states exported to a schema that ensures the StateRef appears on the database row. The
+StateRef will be set to the correct value by the framework (theres no need to set during mapping generation by the state itself).
+
+
+
+
+net.corda.core.schemas.PersistentStateRef
+
+Embedded StateRef representation used in state mapping.
+
+
+
+
+net.corda.node.services.transactions.PersistentUniquenessProvider
+
+A RDBMS backed Uniqueness provider
+
+
+
+
+net.corda.core.node.PhysicalLocation
+
+A labelled WorldCoordinate , where the label is human meaningful. For example, the name of the nearest city.
+Labels should not refer to non-landmarks, for example, they should not contain the names of organisations.
+
+
+
+
+net.corda.core.node.PluginServiceHub
+
+A service hub to be used by the CordaPluginRegistry
+
+
+
+
+net.corda.core.math.Polynomial
+
+Represents a polynomial function of arbitrary degree.
+
+
+
+
+net.corda.node.driver.PortAllocation
+
+
+
+
+
+java.security.PrivateKey (extensions in package net.corda.core.crypto)
+
+
+
+
+
+net.corda.core.testing.PrivateKeyGenerator
+
+
+
+
+
+net.corda.core.utilities.ProgressTracker
+
+A progress tracker helps surface information about the progress of an operation to a user interface or API of some
+kind. It lets you define a set of steps that represent an operation. A step is represented by an object (typically
+a singleton).
+
+
+
+
+net.corda.client.model.ProgressTrackingEvent
+
+
+
+
+
+net.corda.node.services.PropertiesFileRPCUserService
+
+
+
+
+
+net.corda.node.api.ProtocolClassRef
+
+
+
+
+
+net.corda.node.services.statemachine.ProtocolIORequest
+
+
+
+
+
+net.corda.node.api.ProtocolInstanceRef
+
+
+
+
+
+net.corda.core.protocols.ProtocolLogic
+
+A sub-class of ProtocolLogic implements a protocol flow using direct, straight line blocking code. Thus you
+can write complex protocol logic in an ordinary fashion, without having to think about callbacks, restarting after
+a node crash, how many instances of your protocol there are running and so on.
+
+
+
+
+net.corda.core.protocols.ProtocolLogicRef
+
+A class representing a ProtocolLogic instance which would be possible to safely pass out of the contract sandbox.
+
+
+
+
+net.corda.core.protocols.ProtocolLogicRefFactory
+
+A class for conversion to and from ProtocolLogic and ProtocolLogicRef instances.
+
+
+
+
+net.corda.node.api.ProtocolRef
+
+Encapsulates the protocol to be instantiated. e.g. TwoPartyTradeProtocol.Buyer.
+
+
+
+
+net.corda.node.api.ProtocolRequiringAttention
+
+Thinking that Instant is OK for short lived protocol deadlines.
+
+
+
+
+net.corda.core.protocols.ProtocolSessionException
+
+
+
+
+
+net.corda.core.protocols.ProtocolStateMachine
+
+A ProtocolStateMachine instance is a suspendable fiber that delegates all actual logic to a ProtocolLogic instance.
+For any given flow there is only one PSM, even if that protocol invokes subprotocols.
+
+
+
+
+net.corda.node.services.statemachine.ProtocolStateMachineImpl
+
+
+
+
+
+net.corda.client.model.ProtocolStatus
+
+
+
+
+
+java.security.PublicKey (extensions in package net.corda.core.crypto)
+
+
+
+
+
+net.corda.node.utilities.PublicKeyColumnType
+
+ColumnType for marshalling to/from database on behalf of PublicKey .
+
+
+
+
+net.corda.core.testing.PublicKeyGenerator
+
+
+
+
+
+net.corda.core.crypto.PublicKeyTree
+
+A tree data structure that enables the representation of composite public keys.
+
+
+
+
+net.corda.core.schemas.QueryableState
+
+A contract state that may be mapped to database schemas configured for this node to support querying for,
+or filtering of, states.
+
+
+
+
+net.corda.node.services.messaging.RPCDispatcher
+
+Intended to service transient clients only (not p2p nodes) for short-lived, transient request/response pairs.
+If you need robustness, this is the wrong system. If you dont want a response, this is probably the
+wrong system (you could just send a message). If you want complex customisation of how requests/responses
+are handled, this is probably the wrong system.
+
+
+
+
+net.corda.node.services.messaging.RPCException
+
+Thrown to indicate a fatal error in the RPC system itself, as opposed to an error generated by the invoked
+method.
+
+
+
+
+net.corda.node.services.messaging.RPCOps
+
+Base interface that all RPC servers must implement. Note: in Corda theres only one RPC interface. This base
+interface is here in case we split the RPC system out into a separate library one day.
+
+
+
+
+net.corda.node.services.messaging.RPCReturnsObservables
+
+If an RPC is tagged with this annotation it may return one or more observables anywhere in its response graph.
+Calling such a method comes with consequences: its slower, and consumes server side resources as observations
+will buffer up on the server until theyre consumed by the client.
+
+
+
+
+net.corda.node.services.messaging.RPCSinceVersion
+
+Records the protocol version in which this RPC was added.
+
+
+
+
+net.corda.node.services.RPCUserService
+
+Service for retrieving User objects representing RPC users who are authorised to use the RPC system. A User
+contains their login username and password along with a set of permissions for RPC services they are allowed access
+to. These permissions are represented as String s to allow RPC implementations to add their own permissioning.
+
+
+
+
+net.corda.client.fxutils.ReadOnlyBackedObservableMapBase
+
+ReadOnlyBackedObservableMapBase is a base class implementing all abstract functions required for an ObservableMap
+using a backing HashMap that subclasses should modify.
+
+
+
+
+net.corda.core.node.services.ReadOnlyTransactionStorage
+
+Thread-safe storage of transactions.
+
+
+
+
+net.corda.node.services.statemachine.ReceiveOnly
+
+
+
+
+
+net.corda.node.services.statemachine.ReceiveRequest
+
+
+
+
+
+net.corda.core.serialization.ReferencesAwareJavaSerializer
+
+Improvement to the builtin JavaSerializer by honouring the Kryo.getReferences setting.
+
+
+
+
+net.corda.node.services.api.RegulatorService
+
+Placeholder interface for regulator services.
+
+
+
+
+net.corda.client.fxutils.ReplayedList
+
+This list type just replays changes propagated from the underlying source list. Used for testing changes and backing a
+non-backed observable
+
+
+
+
+net.corda.core.contracts.Requirements
+
+
+
+
+
+net.corda.protocols.ResolveTransactionsProtocol
+
+This protocol is used to verify the validity of a transaction by recursively checking the validity of all the
+dependencies. Once a transaction is checked its inserted into local storage so it can be relayed and wont be
+checked again.
+
+
+
+
+net.corda.node.servlets.ResponseFilter
+
+This adds headers needed for cross site scripting on API clients.
+
+
+
+
+net.corda.core.RetryableException
+
+This represents a transient exception or condition that might no longer be thrown if the operation is re-run or called
+again.
+
+
+
+
+net.corda.core.contracts.SchedulableState
+
+
+
+
+
+net.corda.core.contracts.Scheduled
+
+Something which is scheduled to happen at a point in time
+
+
+
+
+net.corda.core.contracts.ScheduledActivity
+
+This class represents the lifecycle activity that a contract state of type LinearState would like to perform at a given point in time.
+e.g. run a fixing protocol.
+
+
+
+
+net.corda.node.services.events.ScheduledActivityObserver
+
+This observes the vault and schedules and unschedules activities appropriately based on state production and
+consumption.
+
+
+
+
+net.corda.core.contracts.ScheduledStateRef
+
+Represents a contract state (unconsumed output) of type LinearState and a point in time that a lifecycle event is expected to take place
+for that contract state.
+
+
+
+
+net.corda.core.node.services.SchedulerService
+
+Provides access to schedule activity at some point in time. This interface might well be expanded to
+increase the feature set in the future.
+
+
+
+
+net.corda.node.services.api.SchemaService
+
+A configuration and customisation point for Object Relational Mapping of contract state objects.
+
+
+
+
+net.corda.core.crypto.SecureHash
+
+Container for a cryptographically secure hash value.
+Provides utilities for generating a cryptographic hash using different algorithms (currently only SHA-256 supported).
+
+
+
+
+net.corda.node.utilities.SecureHashColumnType
+
+ColumnType for marshalling to/from database on behalf of SecureHash .
+
+
+
+
+net.corda.core.testing.SecureHashGenerator
+
+
+
+
+
+net.corda.node.services.statemachine.SendAndReceive
+
+
+
+
+
+net.corda.node.services.statemachine.SendOnly
+
+
+
+
+
+net.corda.node.services.statemachine.SendRequest
+
+
+
+
+
+net.corda.core.serialization.SerializationToken
+
+This represents a token in the serialized stream for an instance of a type that implements SerializeAsToken .
+
+
+
+
+net.corda.core.serialization.SerializeAsToken
+
+This interface should be implemented by classes that want to substitute a token representation of themselves if
+they are serialized because they have a lot of internal state that does not serialize (well).
+
+
+
+
+net.corda.core.serialization.SerializeAsTokenContext
+
+A context for mapping SerializationTokens to/from SerializeAsTokens.
+
+
+
+
+net.corda.core.serialization.SerializeAsTokenSerializer
+
+A Kryo serializer for SerializeAsToken implementations.
+
+
+
+
+net.corda.core.serialization.SerializedBytes
+
+A type safe wrapper around a byte array that contains a serialised object. You can call SerializedBytes.deserialize
+to get the original object back.
+
+
+
+
+net.corda.core.serialization.SerializedBytesSerializer
+
+A serialiser that avoids writing the wrapper class to the byte stream, thus ensuring SerializedBytes is a pure
+type safety hack.
+
+
+
+
+net.corda.core.node.ServiceEntry
+
+Information for an advertised service including the service specific identity information.
+The identity can be used in protocols and is distinct from the Nodes legalIdentity
+
+
+
+
+net.corda.core.node.ServiceHub
+
+A service hub simply vends references to the other services a node has. Some of those services may be missing or
+mocked out. This class is useful to pass to chunks of pluggable code that might have need of many different kinds of
+functionality and you dont want to hard-code which types in the interface.
+
+
+
+
+net.corda.node.services.api.ServiceHubInternal
+
+
+
+
+
+net.corda.core.node.services.ServiceInfo
+
+A container for additional information for an advertised service.
+
+
+
+
+net.corda.protocols.ServiceRequestMessage
+
+Abstract superclass for request messages sent to services which expect a reply.
+
+
+
+
+net.corda.core.node.services.ServiceType
+
+Identifier for service types a node can expose over the network to other peers. These types are placed into network
+map advertisements. Services that are purely local and are not providing functionality to other parts of the network
+dont need a declared service type.
+
+
+
+
+net.corda.core.crypto.SignedData
+
+A serialized piece of data and its signature. Enforces signature validity in order to deserialize the data
+contained within.
+
+
+
+
+net.corda.core.transactions.SignedTransaction
+
+SignedTransaction wraps a serialized WireTransaction. It contains one or more signatures, each one for
+a public key that is mentioned inside a transaction command. SignedTransaction is the top level transaction type
+and the type most frequently passed around the network and stored. The identity of a transaction is the hash
+of a WireTransaction, therefore if you are storing data keyed by WT hash be aware that multiple different STs may
+map to the same key (and they could be different in important ways, like validity). The signatures on a
+SignedTransaction might be invalid or missing: the type does not imply validity.
+A transaction ID should be the hash of the WireTransaction Merkle tree root. Thus adding or removing a signature does not change it.
+
+
+
+
+net.corda.contracts.testing.SignedTransactionGenerator
+
+
+
+
+
+net.corda.node.services.transactions.SimpleNotaryService
+
+A simple Notary service that does not perform transaction validation
+
+
+
+
+net.corda.core.messaging.SingleMessageRecipient
+
+A base class for the case of point-to-point messages
+
+
+
+
+net.corda.core.serialization.SingletonSerializationToken
+
+A class representing a SerializationToken for some object that is not serializable but can be looked up
+(when deserialized) via just the class name.
+
+
+
+
+net.corda.core.serialization.SingletonSerializeAsToken
+
+A base class for implementing large objects / components / services that need to serialize themselves to a string token
+to indicate which instance the token is a serialized form of.
+
+
+
+
+net.corda.core.math.SplineFunction
+
+A spline is function piecewise-defined by polynomial functions.
+Points at which polynomial pieces connect are known as knots .
+
+
+
+
+net.corda.node.services.statemachine.StackSnapshot
+
+
+
+
+
+net.corda.core.contracts.StateAndRef
+
+A StateAndRef is simply a (state, ref) pair. For instance, a vault (which holds available assets) contains these.
+
+
+
+
+net.corda.client.model.StateMachineData
+
+
+
+
+
+net.corda.node.services.messaging.StateMachineInfo
+
+
+
+
+
+net.corda.node.services.statemachine.StateMachineManager
+
+A StateMachineManager is responsible for coordination and persistence of multiple ProtocolStateMachine objects.
+Each such object represents an instantiation of a (two-party) protocol that has reached a particular point.
+
+
+
+
+net.corda.core.node.services.StateMachineRecordedTransactionMappingStorage
+
+This is the interface to storage storing state machine -> recorded tx mappings. Any time a transaction is recorded
+during a protocol run addMapping should be called.
+
+
+
+
+net.corda.core.protocols.StateMachineRunId
+
+
+
+
+
+net.corda.client.model.StateMachineStatus
+
+
+
+
+
+net.corda.core.node.services.StateMachineTransactionMapping
+
+
+
+
+
+net.corda.node.services.messaging.StateMachineUpdate
+
+
+
+
+
+net.corda.core.contracts.StateRef
+
+A stateref is a pointer (reference) to a state, this is an equivalent of an "outpoint" in Bitcoin. It records which
+transaction defined the state and where in that transaction it was.
+
+
+
+
+net.corda.node.utilities.StateRefColumns
+
+
+
+
+
+net.corda.core.testing.StateRefGenerator
+
+
+
+
+
+net.corda.protocols.StateReplacementException
+
+
+
+
+
+net.corda.protocols.StateReplacementRefused
+
+Thrown when a participant refuses the proposed state replacement
+
+
+
+
+net.corda.node.api.StatesQuery
+
+Extremely rudimentary query language which should most likely be replaced with a product.
+
+
+
+
+net.corda.core.node.services.StorageService
+
+A sketch of an interface to a simple key/value storage system. Intended for persistence of simple blobs like
+transactions, serialised protocol state machines and so on. Again, this isnt intended to imply lack of SQL or
+anything like that, this interface is only big enough to support the prototyping work.
+
+
+
+
+net.corda.node.services.persistence.StorageServiceImpl
+
+
+
+
+
+net.corda.node.utilities.StrandLocalTransactionManager
+
+A relatively close copy of the ThreadLocalTransactionManager in Exposed but with the following adjustments to suit
+our environment:
+
+
+
+
+kotlin.String (extensions in package net.corda.core.serialization)
+
+
+
+
+
+kotlin.String (extensions in package net.corda.core)
+
+
+
+
+
+java.time.temporal.Temporal (extensions in package net.corda.core)
+
+
+
+
+
+net.corda.core.contracts.Tenor
+
+Placeholder class for the Tenor datatype - which is a standardised duration of time until maturity
+
+
+
+
+net.corda.node.utilities.TestClock
+
+A Clock that can have the date advanced for use in demos.
+
+
+
+
+net.corda.core.ThreadBox
+
+A threadbox is a simple utility that makes it harder to forget to take a lock before accessing some shared state.
+Simply define a private class to hold the data that must be grouped under the same lock, and then pass the only
+instance to the ThreadBox constructor. You can now use the locked method with a lambda to take the lock in a
+way that ensures itll be released if theres an exception.
+
+
+
+
+kotlin.Throwable (extensions in package net.corda.core)
+
+
+
+
+
+net.corda.core.utilities.TimeWindow
+
+A class representing a window in time from a particular instant, lasting a specified duration.
+
+
+
+
+net.corda.core.contracts.Timestamp
+
+If present in a transaction, contains a time that was verified by the uniqueness service. The true time must be
+between (after, before).
+
+
+
+
+net.corda.core.node.services.TimestampChecker
+
+Checks if the given timestamp falls within the allowed tolerance interval.
+
+
+
+
+net.corda.core.testing.TimestampGenerator
+
+
+
+
+
+net.corda.core.messaging.TopicSession
+
+An identifier for the endpoint MessagingService message handlers listen at.
+
+
+
+
+net.corda.core.messaging.TopicStringValidator
+
+A singleton thats useful for validating topic strings
+
+
+
+
+net.corda.client.model.TrackedDelegate
+
+
+
+
+
+net.corda.node.services.messaging.TransactionBuildResult
+
+
+
+
+
+net.corda.node.api.TransactionBuildStep
+
+Encapsulate a generateXXX method call on a contract.
+
+
+
+
+net.corda.core.transactions.TransactionBuilder
+
+A TransactionBuilder is a transaction class thats mutable (unlike the others which are all immutable). It is
+intended to be passed around contracts that may edit it by adding new states/commands. Then once the states
+and commands are right, this class can be used as a holding bucket to gather signatures from multiple parties.
+
+
+
+
+net.corda.core.contracts.TransactionConflictException
+
+
+
+
+
+net.corda.client.model.TransactionCreateStatus
+
+
+
+
+
+net.corda.core.contracts.TransactionForContract
+
+A transaction to be passed as input to a contract verification function. Defines helper methods to
+simplify verification logic in contracts.
+
+
+
+
+net.corda.core.contracts.TransactionGraphSearch
+
+Given a map of transaction id to SignedTransaction , performs a breadth first search of the dependency graph from
+the starting point down in order to find transactions that match the given query criteria.
+
+
+
+
+net.corda.core.contracts.TransactionResolutionException
+
+
+
+
+
+net.corda.core.contracts.TransactionState
+
+A wrapper for ContractState containing additional platform-level state information.
+This is the definitive state that is stored on the ledger and used in transaction outputs.
+
+
+
+
+net.corda.core.testing.TransactionStateGenerator
+
+
+
+
+
+net.corda.core.node.services.TransactionStorage
+
+Thread-safe storage of transactions.
+
+
+
+
+net.corda.core.contracts.TransactionType
+
+Defines transaction build & validation logic for a specific transaction type
+
+
+
+
+net.corda.core.contracts.TransactionVerificationException
+
+
+
+
+
+net.corda.core.TransientProperty
+
+A simple wrapper that enables the use of Kotlins "val x by TransientProperty { ... }" syntax. Such a property
+will not be serialized to disk, and if its missing (or the first time its accessed), the initializer will be
+used to set it up. Note that the initializer will be called with the TransientProperty object locked.
+
+
+
+
+net.corda.protocols.TwoPartyDealProtocol
+
+Classes for manipulating a two party deal or agreement.
+
+
+
+
+net.corda.protocols.TwoPartyTradeProtocol
+
+This asset trading protocol implements a "delivery vs payment" type swap. It has two parties (B and S for buyer
+and seller) and the following steps:
+
+
+
+
+net.corda.core.node.services.TxWritableStorageService
+
+Storage service, with extensions to allow validated transactions to be added to. For use only within ServiceHub .
+
+
+
+
+net.corda.core.contracts.TypeOnlyCommandData
+
+Commands that inherit from this are intended to have no data items: its only their presence that matters.
+
+
+
+
+net.corda.node.utilities.UUIDStringColumnType
+
+ColumnType for marshalling to/from database on behalf of UUID , always using a string representation.
+
+
+
+
+net.corda.core.contracts.UniqueIdentifier
+
+This class provides a truly unique identifier of a trade, state, or other business object, bound to any existing
+external ID. Equality and comparison are based on the unique ID only; if two states somehow have the same UUID but
+different external IDs, it would indicate a problem with handling of IDs.
+
+
+
+
+net.corda.core.node.services.UniquenessException
+
+
+
+
+
+net.corda.core.node.services.UniquenessProvider
+
+A service that records input states of the given transaction and provides conflict information
+if any of the inputs have already been used in another transaction.
+
+
+
+
+net.corda.core.utilities.UntrustworthyData
+
+A small utility to approximate taint tracking: if a method gives you back one of these, it means the data came from
+a remote source that may be incentivised to pass us junk that violates basic assumptions and thus must be checked
+first. The wrapper helps you to avoid forgetting this vital step. Things you might want to check are:
+
+
+
+
+net.corda.node.services.User
+
+
+
+
+
+net.corda.protocols.ValidatingNotaryProtocol
+
+A notary commit protocol that makes sure a given transaction is valid before committing it. This does mean that the calling
+party has to reveal the whole transaction history; however, we avoid complex conflict resolution logic where a party
+has its input states "blocked" by a transaction from another party, and needs to establish whether that transaction was
+indeed valid.
+
+
+
+
+net.corda.node.services.transactions.ValidatingNotaryService
+
+A Notary service that validates the transaction chain of he submitted transaction before committing it
+
+
+
+
+net.corda.core.node.services.Vault
+
+A vault (name may be temporary) wraps a set of states that are useful for us to keep track of, for instance,
+because we own them. This class represents an immutable, stable state of a vault: it is guaranteed not to
+change out from underneath you, even though the canonical currently-best-known vault may change as we learn
+about new transactions from our peers and generate new transactions that consume states ourselves.
+
+
+
+
+net.corda.core.node.services.VaultService
+
+A VaultService is responsible for securely and safely persisting the current state of a vault to storage. The
+vault service vends immutable snapshots of the current vault for working with: if you build a transaction based
+on a vault that isnt current, be aware that it may end up being invalid if the states that were used have been
+consumed by someone else first
+
+
+
+
+net.corda.core.crypto.WhitelistTrustManager
+
+Our TrustManager extension takes the standard certificate checker and first delegates all the
+chain checking to that. If everything is well formed we then simply add a check against our whitelist
+
+
+
+
+net.corda.core.crypto.WhitelistTrustManagerProvider
+
+Custom Security Provider that forces the TrustManagerFactory to be our custom one.
+Also holds the identity of the original TrustManager algorithm so
+that we can delegate most of the checking to the proper Java code. We simply add some more checks.
+
+
+
+
+net.corda.core.crypto.WhitelistTrustManagerSpi
+
+Registered TrustManagerFactorySpi
+
+
+
+
+net.corda.node.services.network.WireNodeRegistration
+
+A node registration and its signature as a pair.
+
+
+
+
+net.corda.core.transactions.WireTransaction
+
+A transaction ready for serialisation, without any signatures attached. A WireTransaction is usually wrapped
+by a SignedTransaction that carries the signatures over this payload. The hash of the wire transaction is
+the identity of the transaction, that is, its possible for two SignedTransaction s with different sets of
+signatures to have the same identity hash.
+
+
+
+
+net.corda.core.serialization.WireTransactionSerializer
+
+A serialisation engine that knows how to deserialise code inside a sandbox
+
+
+
+
+net.corda.contracts.testing.WiredTransactionGenerator
+
+
+
+
+
+net.corda.core.node.WorldCoordinate
+
+A latitude/longitude pair.
+
+
+
+
+net.corda.core.crypto.X509Utilities
+
+
+
+
+
+
+
diff --git a/docs/build/html/api/index-outline.html b/docs/build/html/api/index-outline.html
new file mode 100644
index 0000000000..d643656d7d
--- /dev/null
+++ b/docs/build/html/api/index-outline.html
@@ -0,0 +1,20435 @@
+
+
+Module Contents
+
+
+
+
+
+
+
+Module Contents
+
+
+
+alltypes
+
+
+
+Module Contents
+
+
+
+class ANSIProgressObserver
+
+object ANSIProgressRenderer
+
+interface APIServer
+
+
+
+Module Contents
+
+
+
+abstract fun buildTransaction ( type : ContractDefRef , steps : List < TransactionBuildStep > ) : SerializedBytes < WireTransaction >
+abstract fun commitTransaction ( tx : SerializedBytes < WireTransaction > , signatures : List < WithKey > ) : SecureHash
+abstract fun fetchProtocolsRequiringAttention ( query : StatesQuery ) : Map < StateRef , ProtocolRequiringAttention >
+abstract fun fetchStates ( states : List < StateRef > ) : Map < StateRef , TransactionState < ContractState > ? >
+abstract fun fetchTransactions ( txs : List < SecureHash > ) : Map < SecureHash , SignedTransaction ? >
+abstract fun generateTransactionSignature ( tx : SerializedBytes < WireTransaction > ) : WithKey
+abstract fun info ( ) : NodeInfo
+abstract fun invokeProtocolSync ( type : ProtocolRef , args : Map < String , Any ? > ) : Any ?
+abstract fun provideProtocolResponse ( protocol : ProtocolInstanceRef , choice : SecureHash , args : Map < String , Any ? > ) : Unit
+abstract fun queryStates ( query : StatesQuery ) : List < StateRef >
+abstract fun serverTime ( ) : LocalDateTime
+abstract fun status ( ) : <ERROR CLASS>
+
+
+
+class APIServerImpl : APIServer
+
+
+
+Module Contents
+
+
+
+APIServerImpl ( node : AbstractNode )
+fun buildTransaction ( type : ContractDefRef , steps : List < TransactionBuildStep > ) : SerializedBytes < WireTransaction >
+fun commitTransaction ( tx : SerializedBytes < WireTransaction > , signatures : List < WithKey > ) : SecureHash
+fun fetchProtocolsRequiringAttention ( query : StatesQuery ) : Map < StateRef , ProtocolRequiringAttention >
+fun fetchStates ( states : List < StateRef > ) : Map < StateRef , TransactionState < ContractState > ? >
+fun fetchTransactions ( txs : List < SecureHash > ) : Map < SecureHash , SignedTransaction ? >
+fun generateTransactionSignature ( tx : SerializedBytes < WireTransaction > ) : WithKey
+fun info ( ) : NodeInfo
+fun invokeProtocolSync ( type : ProtocolRef , args : Map < String , Any ? > ) : Any ?
+val node : AbstractNode
+fun provideProtocolResponse ( protocol : ProtocolInstanceRef , choice : SecureHash , args : Map < String , Any ? > ) : Unit
+fun queryStates ( query : StatesQuery ) : List < StateRef >
+fun serverTime ( ) : LocalDateTime
+fun status ( ) : <ERROR CLASS>
+
+
+
+abstract class AbstractConserveAmount < S : FungibleAsset < T > , C : CommandData , T : Any > : Clause < S , C , Issued < T > >
+
+
+
+Module Contents
+
+
+
+AbstractConserveAmount ( )
+fun generateExit ( tx : TransactionBuilder , amountIssued : Amount < Issued < T > > , assetStates : List < StateAndRef < S > > , deriveState : ( TransactionState < S > , Amount < Issued < T > > , PublicKey ) -> TransactionState < S > , generateMoveCommand : ( ) -> CommandData , generateExitCommand : ( Amount < Issued < T > > ) -> CommandData ) : PublicKey
+open fun toString ( ) : String
+open fun verify ( tx : TransactionForContract , inputs : List < S > , outputs : List < S > , commands : List < AuthenticatedObject < C > > , groupingKey : Issued < T > ? ) : Set < C >
+
+
+
+abstract class AbstractIssue < in S : ContractState , C : CommandData , T : Any > : Clause < S , C , Issued < T > >
+
+abstract class AbstractJDBCHashMap < K : Any , V : Any , out T : JDBCHashedTable > : MutableMap < K , V > , AbstractMap < K , V >
+
+abstract class AbstractJDBCHashSet < K : Any , out T : JDBCHashedTable > : MutableSet < K > , AbstractSet < K >
+
+abstract class AbstractNetworkMapService : NetworkMapService , AbstractNodeService
+
+abstract class AbstractNode : SingletonSerializeAsToken
+
+abstract class AbstractNodeService : SingletonSerializeAsToken
+
+abstract class AbstractStateReplacementProtocol < T >
+
+interface AcceptsFileUpload
+
+enum class AccrualAdjustment
+
+object Ack : DeserializeAsKotlinObjectDef
+enum class AddOrRemove
+
+
+
+Module Contents
+
+
+
+ADD
+REMOVE
+
+
+
+interface AffinityExecutor : Executor
+
+class AggregatedList < A , E : Any , K : Any > : TransformationList < A , E >
+
+class AllComposition < S : ContractState , C : CommandData , K : Any > : CompositeClause < S , C , K >
+
+
+
+Module Contents
+
+
+
+AllComposition ( firstClause : Clause < S , C , K > , vararg remainingClauses : Clause < S , C , K > )
+val clauses : ArrayList < Clause < S , C , K > >
+fun matchedClauses ( commands : List < AuthenticatedObject < C > > ) : List < Clause < S , C , K > >
+fun toString ( ) : String
+fun verify ( tx : TransactionForContract , inputs : List < S > , outputs : List < S > , commands : List < AuthenticatedObject < C > > , groupingKey : K ? ) : Set < C >
+
+
+
+interface AllPossibleRecipients : MessageRecipients
+data class Amount < T > : Comparable < Amount < T > >
+
+object AmountBindings
+
+class AmountGenerator < T >
+
+class AnyComposition < in S : ContractState , C : CommandData , in K : Any > : CompositeClause < S , C , K >
+
+
+
+Module Contents
+
+
+
+AnyComposition ( vararg rawClauses : Clause < S , C , K > )
+val clauses : List < Clause < S , C , K > >
+fun matchedClauses ( commands : List < AuthenticatedObject < C > > ) : List < Clause < S , C , K > >
+fun toString ( ) : String
+fun verify ( tx : TransactionForContract , inputs : List < S > , outputs : List < S > , commands : List < AuthenticatedObject < C > > , groupingKey : K ? ) : Set < C >
+
+
+
+class ApiUtils
+
+data class AppContext
+
+abstract class ArtemisMessagingComponent : SingletonSerializeAsToken
+
+class ArtemisMessagingServer : ArtemisMessagingComponent
+
+class AssociatedList < K , out A , B > : ReadOnlyBackedObservableMapBase < K , B , Unit >
+
+interface Attachment : NamedByHash
+
+class AttachmentDownloadServlet
+
+interface AttachmentStorage
+
+class AttachmentsClassLoader : SecureClassLoader
+
+data class AuthenticatedObject < out T : Any >
+
+abstract class BaseTransaction : NamedByHash
+
+data class BilateralNetState < P > : NetState < P >
+
+interface BilateralNettableState < N : BilateralNettableState < N > >
+
+class BroadcastTransactionProtocol : ProtocolLogic < Unit >
+
+open class BusinessCalendar
+
+
+
+Module Contents
+
+
+
+val TEST_CALENDAR_DATA : <ERROR CLASS>
+class UnknownCalendar : Exception
+
+open fun applyRollConvention ( testDate : LocalDate , dateRollConvention : DateRollConvention ) : LocalDate
+val calendars : <ERROR CLASS>
+fun createGenericSchedule ( startDate : LocalDate , period : Frequency , calendar : BusinessCalendar = getInstance(), dateRollConvention : DateRollConvention = DateRollConvention.Following, noOfAdditionalPeriods : Int = Integer.MAX_VALUE, endDate : LocalDate ? = null, periodOffset : Int ? = null) : List < LocalDate >
+open fun equals ( other : Any ? ) : Boolean
+fun getInstance ( vararg calname : String ) : BusinessCalendar
+fun getOffsetDate ( startDate : LocalDate , period : Frequency , steps : Int = 1) : LocalDate
+open fun hashCode ( ) : Int
+val holidayDates : List < LocalDate >
+open fun isWorkingDay ( date : LocalDate ) : Boolean
+fun moveBusinessDays ( date : LocalDate , direction : DateRollDirection , i : Int ) : LocalDate
+fun parseDateFromString ( it : String ) : LocalDate
+
+
+
+class Cash : OnLedgerAsset < Currency , Commands , State >
+
+
+
+Module Contents
+
+
+
+Cash ( )
+interface Clauses
+
+interface Commands : Commands
+
+data class State : FungibleAsset < Currency > , QueryableState
+
+val conserveClause : AbstractConserveAmount < State , Commands , Currency >
+fun deriveState ( txState : TransactionState < State > , amount : Amount < Issued < Currency > > , owner : PublicKey ) : TransactionState < State >
+fun extractCommands ( commands : Collection < AuthenticatedObject < CommandData > > ) : List < AuthenticatedObject < Commands > >
+fun generateExitCommand ( amount : Amount < Issued < Currency > > ) : Exit
+fun generateIssue ( tx : TransactionBuilder , tokenDef : Issued < Currency > , pennies : Long , owner : PublicKey , notary : Party ) : Unit
+fun generateIssue ( tx : TransactionBuilder , amount : Amount < Issued < Currency > > , owner : PublicKey , notary : Party ) : Unit
+fun generateIssueCommand ( ) : Issue
+fun generateMoveCommand ( ) : Move
+val legalContractReference : SecureHash
+fun verify ( tx : TransactionForContract ) : Unit
+
+
+
+class CashBalanceAsMetricsObserver
+
+object CashSchema
+object CashSchemaV1 : MappedSchema
+
+class CertificateSigner
+
+interface CertificateSigningService
+
+class Checkpoint
+
+interface CheckpointStorage
+
+class ChosenList < E > : ObservableListBase < E >
+
+object CityDatabase
+
+abstract class Clause < in S : ContractState , C : CommandData , in K : Any >
+
+data class ClientRPCRequestMessage
+
+sealed class ClientToServiceCommand
+
+data class Command
+
+interface CommandData
+class CommandDataGenerator
+
+class CommandGenerator
+
+class CommercialPaper : Contract
+
+class CommercialPaperLegacy : Contract
+
+object CommercialPaperSchema
+object CommercialPaperSchemaV1 : MappedSchema
+
+data class Commodity
+
+class CommodityContract : OnLedgerAsset < Commodity , Commands , State >
+
+
+
+Module Contents
+
+
+
+CommodityContract ( )
+interface Clauses
+
+interface Commands : Commands
+
+data class State : FungibleAsset < Commodity >
+
+val conserveClause : AbstractConserveAmount < State , Commands , Commodity >
+fun deriveState ( txState : TransactionState < State > , amount : Amount < Issued < Commodity > > , owner : PublicKey ) : TransactionState < State >
+fun extractCommands ( commands : Collection < AuthenticatedObject < CommandData > > ) : List < AuthenticatedObject < Commands > >
+fun generateExitCommand ( amount : Amount < Issued < Commodity > > ) : Exit
+fun generateIssue ( tx : TransactionBuilder , tokenDef : Issued < Commodity > , pennies : Long , owner : PublicKey , notary : Party ) : Unit
+fun generateIssue ( tx : TransactionBuilder , amount : Amount < Issued < Commodity > > , owner : PublicKey , notary : Party ) : Unit
+fun generateIssueCommand ( ) : Issue
+fun generateMoveCommand ( ) : Move
+val legalContractReference : SecureHash
+fun verify ( tx : TransactionForContract ) : Unit
+
+
+
+abstract class CompositeClause < in S : ContractState , C : CommandData , in K : Any > : Clause < S , C , K >
+
+class ConcatenatedList < A > : TransformationList < A , ObservableList < A > >
+
+class Config
+
+object ConfigHelper
+
+class ConfigurationException : Exception
+
+interface Contract
+
+data class ContractClassRef : ContractDefRef
+
+interface ContractDefRef
+data class ContractLedgerRef : ContractDefRef
+
+interface ContractState
+
+class ContractStateGenerator
+
+class ContractStateModel
+
+abstract class CordaPluginRegistry
+
+class CordaRPCClient : Closeable , ArtemisMessagingComponent
+
+interface CordaRPCOps : RPCOps
+
+class CordaRPCOpsImpl : CordaRPCOps
+
+class CubicSplineInterpolator : Interpolator
+
+class CurrencyGenerator
+
+class DBCheckpointStorage : CheckpointStorage
+
+class DBTransactionMappingStorage : StateMachineRecordedTransactionMappingStorage
+
+class DBTransactionStorage : TransactionStorage
+
+class DataUploadServlet
+
+object DataVending
+
+enum class DateRollConvention
+
+enum class DateRollDirection
+
+enum class DayCountBasisDay
+
+enum class DayCountBasisYear
+
+interface DealState : LinearState
+
+interface DeserializeAsKotlinObjectDef
+data class Diff < out T : ContractState >
+
+open class DigitalSignature : OpaqueBytes
+
+open class DriverDSL : DriverDSLInternalInterface
+
+interface DriverDSLExposedInterface
+
+interface DriverDSLInternalInterface : DriverDSLExposedInterface
+
+class DummyContract : Contract
+
+class DummyPublicKey : PublicKey , Comparable < PublicKey >
+
+data class DummyState : ContractState
+
+class DurationGenerator
+
+class E2ETestKeyManagementService : SingletonSerializeAsToken , KeyManagementService
+
+object Ed25519PrivateKeySerializer
+
+object Ed25519PublicKeySerializer
+
+object Emoji
+
+data class ErrorOr < out A >
+
+class EventGenerator
+
+interface ExchangeRate
+
+class ExchangeRateModel
+
+class ExitGenerator
+
+data class Expression
+
+object ExpressionDeserializer
+
+object ExpressionSerializer
+
+class FetchAttachmentsProtocol : FetchDataProtocol < Attachment , ByteArray >
+
+abstract class FetchDataProtocol < T : NamedByHash , in W : Any > : ProtocolLogic < Result < T > >
+
+class FetchTransactionsProtocol : FetchDataProtocol < SignedTransaction , SignedTransaction >
+
+class FiberBox < out T >
+
+class FilterFuns
+
+class FilterOn < S : ContractState , C : CommandData , K : Any > : Clause < ContractState , C , K >
+
+
+
+Module Contents
+
+
+
+FilterOn ( clause : Clause < S , C , K > , filterStates : ( List < ContractState > ) -> List < S > )
+val clause : Clause < S , C , K >
+val filterStates : ( List < ContractState > ) -> List < S >
+fun getExecutionPath ( commands : List < AuthenticatedObject < C > > ) : List < Clause < * , * , * > >
+val requiredCommands : Set < Class < out CommandData > >
+fun verify ( tx : TransactionForContract , inputs : List < ContractState > , outputs : List < ContractState > , commands : List < AuthenticatedObject < C > > , groupingKey : K ? ) : Set < C >
+
+
+
+class FilteredLeaves
+
+class FilteredTransaction
+
+class FinalityProtocol : ProtocolLogic < Unit >
+
+class FirstComposition < S : ContractState , C : CommandData , K : Any > : CompositeClause < S , C , K >
+
+
+
+Module Contents
+
+
+
+FirstComposition ( firstClause : Clause < S , C , K > , vararg remainingClauses : Clause < S , C , K > )
+val clauses : ArrayList < Clause < S , C , K > >
+val firstClause : Clause < S , C , K >
+val logger : <ERROR CLASS>
+fun matchedClauses ( commands : List < AuthenticatedObject < C > > ) : List < Clause < S , C , K > >
+fun toString ( ) : String
+fun verify ( tx : TransactionForContract , inputs : List < S > , outputs : List < S > , commands : List < AuthenticatedObject < C > > , groupingKey : K ? ) : Set < C >
+
+
+
+data class Fix : CommandData
+
+data class FixOf
+
+interface FixableDealState : DealState
+
+class FlattenedList < A > : TransformationList < A , ObservableValue < out A > >
+
+enum class Frequency
+
+class FullNodeConfiguration : NodeConfiguration
+
+interface FungibleAsset < T > : OwnableState
+
+data class GatheredTransactionData
+
+class GatheredTransactionDataModel
+
+class Generator < out A >
+
+
+
+Module Contents
+
+
+
+Generator ( generate : ( Random ) -> ErrorOr < A > )
+fun < B > bind ( function : ( A ) -> Generator < B > ) : Generator < Nothing >
+fun < A > choice ( generators : List < Generator < A > > ) : Generator < Nothing >
+fun < B , R > combine ( other1 : Generator < B > , function : ( A , B ) -> R ) : Generator < R >
+fun < B , C , R > combine ( other1 : Generator < B > , other2 : Generator < C > , function : ( A , B , C ) -> R ) : Generator < R >
+fun < B , C , D , R > combine ( other1 : Generator < B > , other2 : Generator < C > , other3 : Generator < D > , function : ( A , B , C , D ) -> R ) : Generator < R >
+fun < B , C , D , E , R > combine ( other1 : Generator < B > , other2 : Generator < C > , other3 : Generator < D > , other4 : Generator < E > , function : ( A , B , C , D , E ) -> R ) : Generator < R >
+fun < A > fail ( error : Exception ) : Generator < A >
+fun < A > frequency ( vararg generators : <ERROR CLASS> < Double , Generator < A > > ) : Generator < A >
+val generate : ( Random ) -> ErrorOr < A >
+fun < A > impure ( valueClosure : ( ) -> A ) : Generator < A >
+fun < B > map ( function : ( A ) -> B ) : Generator < B >
+fun < B > product ( other : Generator < ( A ) -> B > ) : Generator < B >
+fun < A > pure ( value : A ) : Generator < A >
+fun < A > sequence ( generators : List < Generator < A > > ) : Generator < List < A > >
+fun < A > success ( generate : ( Random ) -> A ) : Generator < A >
+
+
+
+abstract class GroupClauseVerifier < S : ContractState , C : CommandData , K : Any > : Clause < ContractState , C , Unit >
+
+
+
+Module Contents
+
+
+
+GroupClauseVerifier ( clause : Clause < S , C , K > )
+val clause : Clause < S , C , K >
+open fun getExecutionPath ( commands : List < AuthenticatedObject < C > > ) : List < Clause < * , * , * > >
+abstract fun groupStates ( tx : TransactionForContract ) : List < InOutGroup < S , K > >
+open fun verify ( tx : TransactionForContract , inputs : List < ContractState > , outputs : List < ContractState > , commands : List < AuthenticatedObject < C > > , groupingKey : Unit ? ) : Set < C >
+
+
+
+class HTTPCertificateSigningService : CertificateSigningService
+
+class HibernateObserver
+
+interface IdentityService
+
+class IllegalProtocolLogicException : IllegalArgumentException
+
+class ImmutableClassSerializer < T : Any >
+
+class InMemoryIdentityService : SingletonSerializeAsToken , IdentityService
+
+open class InMemoryNetworkMapCache : SingletonSerializeAsToken , NetworkMapCache
+
+class InMemoryNetworkMapService : AbstractNetworkMapService
+
+class InMemoryStateMachineRecordedTransactionMappingStorage : StateMachineRecordedTransactionMappingStorage
+
+class InMemoryUniquenessProvider : UniquenessProvider
+
+object InstantColumnType
+
+class InstantGenerator
+
+class InsufficientBalanceException : Exception
+
+interface Interpolator
+
+interface InterpolatorFactory
+
+interface IssuanceDefinition
+interface IssueCommand : CommandData
+
+class IssueGenerator
+
+data class Issued < out P >
+
+class IssuedGenerator < T >
+
+class JDBCHashMap < K : Any , V : Any > : AbstractJDBCHashMap < K , V , BlobMapTable >
+
+class JDBCHashSet < K : Any > : AbstractJDBCHashSet < K , BlobSetTable >
+
+open class JDBCHashedTable
+
+object JsonSupport
+
+interface KeyManagementService
+
+object KotlinObjectSerializer
+
+data class LastAcknowledgeInfo
+
+class LedgerTransaction : BaseTransaction
+
+class LeftOuterJoinedMap < K : Any , A , B , C > : ReadOnlyBackedObservableMapBase < K , C , SimpleObjectProperty < B ? > >
+
+class LinearInterpolator : Interpolator
+
+interface LinearState : ContractState
+
+object LocalDateColumnType
+
+object LocalDateTimeColumnType
+
+object LogHelper
+
+class MapValuesList < K , A , C > : ObservableList < C >
+
+class MappedList < A , B > : TransformationList < B , A >
+
+abstract class MappedSchema
+
+data class MarshalledObservation
+
+sealed class MerkleTree
+
+class MerkleTreeException : Exception
+
+interface Message
+
+interface MessageHandlerRegistration
+interface MessageRecipientGroup : MessageRecipients
+interface MessageRecipients
+interface MessagingService
+
+interface MessagingServiceBuilder < out T : MessagingServiceInternal >
+
+interface MessagingServiceInternal : MessagingService
+
+class MissingAttachmentsException : Exception
+
+object Models
+
+class MonitoringService : SingletonSerializeAsToken
+
+interface MoveCommand : CommandData
+
+class MoveGenerator
+
+data class MultilateralNetState < P > : NetState < P >
+
+interface MultilateralNettableState < out T : Any >
+
+abstract class MutableClock : Clock
+
+interface NamedByHash
+
+open class NetClause < C : CommandData , P > : Clause < ContractState , C , Unit >
+
+interface NetCommand : CommandData
+
+interface NetState < P >
+
+enum class NetType
+
+interface NettableState < N : BilateralNettableState < N > , T : Any > : BilateralNettableState < N > , MultilateralNettableState < T >
+sealed class NetworkCacheError : Exception
+
+class NetworkIdentityModel
+
+interface NetworkMapCache
+
+interface NetworkMapService
+
+class NoReferencesSerializer < T >
+
+open class NoZeroSizedOutputs < in S : FungibleAsset < T > , C : CommandData , T : Any > : Clause < S , C , Issued < T > >
+
+class Node : AbstractNode
+
+class NodeAttachmentService : AttachmentStorage , AcceptsFileUpload
+
+class NodeClock : Clock , SerializeAsToken
+
+interface NodeConfiguration : NodeSSLConfiguration
+
+data class NodeInfo
+
+data class NodeInfoAndConfig
+
+sealed class NodeMapError : Exception
+
+class NodeMessagingClient : ArtemisMessagingComponent , MessagingServiceInternal
+
+
+
+Module Contents
+
+
+
+NodeMessagingClient ( config : NodeConfiguration , serverHostPort : <ERROR CLASS> , myIdentity : PublicKey ? , executor : AffinityExecutor , database : <ERROR CLASS> )
+data class Handler : MessageHandlerRegistration
+
+val SESSION_ID_PROPERTY : String
+val TOPIC_PROPERTY : String
+fun addMessageHandler ( topic : String , sessionID : Long , callback : ( Message , MessageHandlerRegistration ) -> Unit ) : MessageHandlerRegistration
+fun addMessageHandler ( topicSession : TopicSession , callback : ( Message , MessageHandlerRegistration ) -> Unit ) : MessageHandlerRegistration
+val config : NodeConfiguration
+fun createMessage ( topicSession : TopicSession , data : ByteArray , uuid : UUID ) : Message
+val database : <ERROR CLASS>
+var dispatcher : RPCDispatcher ?
+val executor : AffinityExecutor
+val log : <ERROR CLASS>
+fun makeNetworkMapAddress ( hostAndPort : <ERROR CLASS> ) : SingleMessageRecipient
+val myAddress : SingleMessageRecipient
+val myIdentity : PublicKey ?
+fun removeMessageHandler ( registration : MessageHandlerRegistration ) : Unit
+fun run ( ) : Unit
+fun send ( message : Message , target : MessageRecipients ) : Unit
+val serverHostPort : <ERROR CLASS>
+fun start ( rpcOps : RPCOps , userService : RPCUserService ) : Unit
+fun stop ( ) : Unit
+
+
+
+class NodeMonitorModel
+
+class NodeRegistration
+
+data class NodeRegistrationInfo
+
+interface NodeSSLConfiguration
+
+class NodeSchedulerService : SchedulerService , SingletonSerializeAsToken
+
+class NodeSchemaService : SchemaService , SingletonSerializeAsToken
+
+class NodeVaultService : SingletonSerializeAsToken , VaultService
+
+class NonEmptySet < T > : MutableSet < T >
+
+object NonEmptySetSerializer
+
+object NotaryChange
+
+object NotaryChangeProtocol : AbstractStateReplacementProtocol < Party >
+
+sealed class NotaryError
+
+class NotaryException : Exception
+
+object NotaryProtocol
+
+abstract class NotaryService : SingletonSerializeAsToken
+
+object NullPublicKey : PublicKey , Comparable < PublicKey >
+
+object NullSignature : WithKey
+class Obligation < P > : Contract
+
+
+
+Module Contents
+
+
+
+Obligation ( )
+interface Clauses
+
+
+
+Module Contents
+
+
+
+class ConserveAmount < P > : AbstractConserveAmount < State < P > , Commands , Terms < P > >
+
+class Group < P > : GroupClauseVerifier < State < P > , Commands , Issued < Terms < P > > >
+
+class Issue < P > : AbstractIssue < State < P > , Commands , Terms < P > >
+
+class Net < C : CommandData , P > : NetClause < C , P >
+
+class SetLifecycle < P > : Clause < State < P > , Commands , Issued < Terms < P > > >
+
+class Settle < P > : Clause < State < P > , Commands , Issued < Terms < P > > >
+
+class VerifyLifecycle < S : ContractState , C : CommandData , T : Any , P > : Clause < S , C , T >
+
+
+
+
+interface Commands : Commands
+
+enum class Lifecycle
+
+data class State < P > : FungibleAsset < Terms < P > > , NettableState < State < P > , MultilateralNetState < P > >
+
+data class Terms < P >
+
+fun generateCloseOutNetting ( tx : TransactionBuilder , signer : PublicKey , vararg states : State < P > ) : Unit
+fun generateExit ( tx : TransactionBuilder , amountIssued : Amount < Issued < Terms < P > > > , assetStates : List < StateAndRef < State < P > > > ) : PublicKey
+fun generateIssue ( tx : TransactionBuilder , obligor : Party , issuanceDef : Terms < P > , pennies : Long , beneficiary : PublicKey , notary : Party ) : Unit
+fun generatePaymentNetting ( tx : TransactionBuilder , issued : Issued < Terms < P > > , notary : Party , vararg states : State < P > ) : Unit
+fun generateSetLifecycle ( tx : TransactionBuilder , statesAndRefs : List < StateAndRef < State < P > > > , lifecycle : Lifecycle , notary : Party ) : Unit
+fun generateSettle ( tx : TransactionBuilder , statesAndRefs : Iterable < StateAndRef < State < P > > > , assetStatesAndRefs : Iterable < StateAndRef < FungibleAsset < P > > > , moveCommand : MoveCommand , notary : Party ) : Unit
+val legalContractReference : SecureHash
+fun verify ( tx : TransactionForContract ) : Unit
+
+
+
+abstract class OnLedgerAsset < T : Any , C : CommandData , S : FungibleAsset < T > > : Contract
+
+open class OpaqueBytes
+
+class OptionalConfig < out T >
+
+object OrderedSerializer
+
+interface OwnableState : ContractState
+
+object ParamsSpec
+
+object ParamsSpec
+
+class PartialMerkleTree
+
+data class PartiallyResolvedTransaction
+
+data class Party
+
+data class PartyAndReference
+
+class PartyAndReferenceGenerator
+
+data class PartyColumns
+
+class PartyGenerator
+
+enum class PaymentRule
+
+class PermissionException : RuntimeException
+
+class PersistentKeyManagementService : SingletonSerializeAsToken , KeyManagementService
+
+class PersistentNetworkMapService : AbstractNetworkMapService
+
+open class PersistentState
+
+data class PersistentStateRef : Serializable
+
+class PersistentUniquenessProvider : UniquenessProvider , SingletonSerializeAsToken
+
+data class PhysicalLocation
+
+interface PluginServiceHub : ServiceHub
+
+class Polynomial
+
+sealed class PortAllocation
+
+class PrivateKeyGenerator
+
+class ProgressTracker
+
+data class ProgressTrackingEvent
+
+class PropertiesFileRPCUserService : RPCUserService
+
+data class ProtocolClassRef : ProtocolRef
+
+interface ProtocolIORequest
+
+data class ProtocolInstanceRef
+
+abstract class ProtocolLogic < out T >
+
+data class ProtocolLogicRef
+
+class ProtocolLogicRefFactory : SingletonSerializeAsToken
+
+interface ProtocolRef
+data class ProtocolRequiringAttention
+
+class ProtocolSessionException : Exception
+
+interface ProtocolStateMachine < R >
+
+class ProtocolStateMachineImpl < R > : ProtocolStateMachine < R >
+
+data class ProtocolStatus
+
+object PublicKeyColumnType
+
+class PublicKeyGenerator
+
+sealed class PublicKeyTree
+
+interface QueryableState : ContractState
+
+abstract class RPCDispatcher
+
+open class RPCException : RuntimeException
+
+interface RPCOps
+
+@Target ( [AnnotationTarget.FUNCTION]) annotation class RPCReturnsObservables
+
+@Target ( [AnnotationTarget.FUNCTION]) annotation class RPCSinceVersion
+
+interface RPCUserService
+
+open class ReadOnlyBackedObservableMapBase < K , A , B > : ObservableMap < K , A >
+
+interface ReadOnlyTransactionStorage
+
+data class ReceiveOnly < T : SessionMessage > : ReceiveRequest < T >
+
+interface ReceiveRequest < T : SessionMessage > : ProtocolIORequest
+
+object ReferencesAwareJavaSerializer
+
+interface RegulatorService
+
+class ReplayedList < A > : TransformationList < A , A >
+
+class Requirements
+
+class ResolveTransactionsProtocol : ProtocolLogic < List < LedgerTransaction > >
+
+class ResponseFilter
+
+abstract class RetryableException : Exception
+
+interface SchedulableState : ContractState
+
+interface Scheduled
+
+data class ScheduledActivity : Scheduled
+
+class ScheduledActivityObserver
+
+data class ScheduledStateRef : Scheduled
+
+interface SchedulerService
+
+interface SchemaService
+
+sealed class SecureHash : OpaqueBytes
+
+object SecureHashColumnType
+
+class SecureHashGenerator
+
+data class SendAndReceive < T : SessionMessage > : SendRequest , ReceiveRequest < T >
+
+data class SendOnly : SendRequest
+
+interface SendRequest : ProtocolIORequest
+
+interface SerializationToken
+
+interface SerializeAsToken
+
+class SerializeAsTokenContext
+
+class SerializeAsTokenSerializer < T : SerializeAsToken >
+
+class SerializedBytes < T : Any > : OpaqueBytes
+
+object SerializedBytesSerializer
+
+data class ServiceEntry
+
+interface ServiceHub
+
+abstract class ServiceHubInternal : PluginServiceHub
+
+data class ServiceInfo
+
+interface ServiceRequestMessage
+
+sealed class ServiceType
+
+open class SignedData < T : Any >
+
+data class SignedTransaction : NamedByHash
+
+class SignedTransactionGenerator
+
+class SimpleNotaryService : NotaryService
+
+interface SingleMessageRecipient : MessageRecipients
+data class SingletonSerializationToken : SerializationToken
+
+abstract class SingletonSerializeAsToken : SerializeAsToken
+
+class SplineFunction
+
+class StackSnapshot : Throwable
+
+data class StateAndRef < out T : ContractState >
+
+data class StateMachineData
+
+data class StateMachineInfo
+
+class StateMachineManager
+
+interface StateMachineRecordedTransactionMappingStorage
+
+data class StateMachineRunId
+
+sealed class StateMachineStatus
+
+data class StateMachineTransactionMapping
+
+sealed class StateMachineUpdate
+
+data class StateRef
+
+data class StateRefColumns
+
+class StateRefGenerator
+
+class StateReplacementException : Exception
+
+class StateReplacementRefused
+
+interface StatesQuery
+
+interface StorageService
+
+open class StorageServiceImpl : SingletonSerializeAsToken , TxWritableStorageService
+
+class StrandLocalTransactionManager
+
+data class Tenor
+
+class TestClock : MutableClock , SerializeAsToken
+
+class ThreadBox < out T >
+
+data class TimeWindow
+
+data class Timestamp
+
+class TimestampChecker
+
+class TimestampGenerator
+
+data class TopicSession
+
+object TopicStringValidator
+
+sealed class TrackedDelegate < M : Any >
+
+
+
+Module Contents
+
+
+
+class EventSinkDelegate < M : Any , T > : TrackedDelegate < M >
+
+class EventStreamDelegate < M : Any , T > : TrackedDelegate < M >
+
+class ObjectPropertyDelegate < M : Any , T > : TrackedDelegate < M >
+
+class ObservableDelegate < M : Any , T > : TrackedDelegate < M >
+
+class ObservableListDelegate < M : Any , T > : TrackedDelegate < M >
+
+class ObservableListReadOnlyDelegate < M : Any , out T > : TrackedDelegate < M >
+
+class ObservableValueDelegate < M : Any , T > : TrackedDelegate < M >
+
+class ObserverDelegate < M : Any , T > : TrackedDelegate < M >
+
+class SubjectDelegate < M : Any , T > : TrackedDelegate < M >
+
+class WritableValueDelegate < M : Any , T > : TrackedDelegate < M >
+
+val klass : KClass < M >
+
+
+
+sealed class TransactionBuildResult
+
+data class TransactionBuildStep
+
+open class TransactionBuilder
+
+
+
+Module Contents
+
+
+
+TransactionBuilder ( type : TransactionType = TransactionType.General(), notary : Party ? = null, inputs : MutableList < StateRef > = arrayListOf(), attachments : MutableList < SecureHash > = arrayListOf(), outputs : MutableList < TransactionState < ContractState > > = arrayListOf(), commands : MutableList < Command > = arrayListOf(), signers : MutableSet < PublicKey > = mutableSetOf(), timestamp : Timestamp ? = null)
+fun addAttachment ( attachmentId : SecureHash ) : Unit
+fun addCommand ( arg : Command ) : Unit
+fun addCommand ( data : CommandData , vararg keys : PublicKey ) : <ERROR CLASS>
+fun addCommand ( data : CommandData , keys : List < PublicKey > ) : Unit
+open fun addInputState ( stateAndRef : StateAndRef < * > ) : Unit
+fun addOutputState ( state : TransactionState < * > ) : Int
+fun addOutputState ( state : ContractState , notary : Party ) : Int
+fun addOutputState ( state : ContractState ) : Int
+fun addSignatureUnchecked ( sig : WithKey ) : TransactionBuilder
+fun attachments ( ) : List < SecureHash >
+protected val attachments : MutableList < SecureHash >
+fun checkAndAddSignature ( sig : WithKey ) : Unit
+fun checkSignature ( sig : WithKey ) : Unit
+fun commands ( ) : List < Command >
+protected val commands : MutableList < Command >
+fun copy ( ) : TransactionBuilder
+protected val currentSigs : <ERROR CLASS>
+fun inputStates ( ) : List < StateRef >
+protected val inputs : MutableList < StateRef >
+var notary : Party ?
+fun outputStates ( ) : List < TransactionState < * > >
+protected val outputs : MutableList < TransactionState < ContractState > >
+fun setTime ( time : Instant , timeTolerance : Duration ) : Unit
+fun setTime ( newTimestamp : Timestamp ) : Unit
+fun signWith ( key : KeyPair ) : TransactionBuilder
+protected val signers : MutableSet < PublicKey >
+val time : Timestamp ?
+protected var timestamp : Timestamp ?
+fun toSignedTransaction ( checkSufficientSignatures : Boolean = true) : SignedTransaction
+fun toWireTransaction ( ) : WireTransaction
+protected val type : TransactionType
+fun withItems ( vararg items : Any ) : TransactionBuilder
+
+
+
+class TransactionConflictException : Exception
+
+sealed class TransactionCreateStatus
+
+data class TransactionForContract
+
+
+
+Module Contents
+
+
+
+TransactionForContract ( inputs : List < ContractState > , outputs : List < ContractState > , attachments : List < Attachment > , commands : List < AuthenticatedObject < CommandData > > , origHash : SecureHash , inputNotary : Party ? = null, timestamp : Timestamp ? = null)
+data class InOutGroup < out T : ContractState , out K : Any >
+
+val attachments : List < Attachment >
+val commands : List < AuthenticatedObject < CommandData > >
+fun equals ( other : Any ? ) : Boolean
+fun < T : ContractState , K : Any > groupStates ( ofType : Class < T > , selector : ( T ) -> K ) : List < InOutGroup < T , K > >
+inline fun < reified T : ContractState , K : Any > groupStates ( selector : ( T ) -> K ) : List < InOutGroup < T , K > >
+fun < T : ContractState , K : Any > groupStatesInternal ( inGroups : Map < K , List < T > > , outGroups : Map < K , List < T > > ) : List < InOutGroup < T , K > >
+fun hashCode ( ) : Int
+val inputNotary : Party ?
+val inputs : List < ContractState >
+val origHash : SecureHash
+val outputs : List < ContractState >
+val timestamp : Timestamp ?
+
+
+
+class TransactionGraphSearch : Callable < List < WireTransaction > >
+
+class TransactionResolutionException : Exception
+
+data class TransactionState < out T : ContractState >
+
+class TransactionStateGenerator < T : ContractState >
+
+interface TransactionStorage : ReadOnlyTransactionStorage
+
+sealed class TransactionType
+
+sealed class TransactionVerificationException : Exception
+
+class TransientProperty < out T >
+
+object TwoPartyDealProtocol
+
+object TwoPartyTradeProtocol
+
+interface TxWritableStorageService : StorageService
+
+abstract class TypeOnlyCommandData : CommandData
+
+object UUIDStringColumnType
+
+data class UniqueIdentifier : Comparable < UniqueIdentifier >
+
+class UniquenessException : Exception
+
+interface UniquenessProvider
+
+class UntrustworthyData < out T >
+
+data class User
+
+class ValidatingNotaryProtocol : Service
+
+class ValidatingNotaryService : NotaryService
+
+class Vault
+
+interface VaultService
+
+
+
+Module Contents
+
+
+
+abstract fun addNoteToTransaction ( txnId : SecureHash , noteText : String ) : Unit
+open val cashBalances : Map < Currency , Amount < Currency > >
+abstract val currentVault : Vault
+abstract fun generateSpend ( tx : TransactionBuilder , amount : Amount < Currency > , to : PublicKey , onlyFromParties : Set < Party > ? = null) : <ERROR CLASS> < TransactionBuilder , List < PublicKey > >
+abstract fun getTransactionNotes ( txnId : SecureHash ) : Iterable < String >
+abstract val linearHeads : Map < UniqueIdentifier , StateAndRef < LinearState > >
+open fun < T : LinearState > linearHeadsOfType_ ( stateType : Class < T > ) : Map < UniqueIdentifier , StateAndRef < T > >
+open fun notify ( tx : WireTransaction ) : Vault
+abstract fun notifyAll ( txns : Iterable < WireTransaction > ) : Vault
+open fun statesForRefs ( refs : List < StateRef > ) : Map < StateRef , TransactionState < * > ? >
+abstract fun track ( ) : <ERROR CLASS> < Vault , <ERROR CLASS> < Update > >
+abstract val updates : <ERROR CLASS> < Update >
+open fun whenConsumed ( ref : StateRef ) : <ERROR CLASS> < Update >
+
+
+
+class WhitelistTrustManager : X509ExtendedTrustManager
+
+
+
+Module Contents
+
+
+
+WhitelistTrustManager ( originalProvider : X509ExtendedTrustManager )
+fun checkClientTrusted ( chain : Array < out X509Certificate > , authType : String , socket : Socket ? ) : Unit
+fun checkClientTrusted ( chain : Array < out X509Certificate > , authType : String , engine : SSLEngine ? ) : Unit
+fun checkClientTrusted ( chain : Array < out X509Certificate > , authType : String ) : Unit
+fun checkServerTrusted ( chain : Array < out X509Certificate > , authType : String , socket : Socket ? ) : Unit
+fun checkServerTrusted ( chain : Array < out X509Certificate > , authType : String , engine : SSLEngine ? ) : Unit
+fun checkServerTrusted ( chain : Array < out X509Certificate > , authType : String ) : Unit
+val checker : HostnameChecker
+fun getAcceptedIssuers ( ) : Array < out X509Certificate >
+val originalProvider : X509ExtendedTrustManager
+
+
+
+object WhitelistTrustManagerProvider : Provider
+
+class WhitelistTrustManagerSpi : TrustManagerFactorySpi
+
+class WireNodeRegistration : SignedData < NodeRegistration >
+
+class WireTransaction : BaseTransaction
+
+object WireTransactionSerializer
+
+class WiredTransactionGenerator
+
+data class WorldCoordinate
+
+object X509Utilities
+
+
+
+Module Contents
+
+
+
+data class CACertAndKey
+
+val CORDA_CLIENT_CA : String
+val CORDA_CLIENT_CA_PRIVATE_KEY : String
+val CORDA_INTERMEDIATE_CA : String
+val CORDA_INTERMEDIATE_CA_PRIVATE_KEY : String
+val CORDA_ROOT_CA : String
+val CORDA_ROOT_CA_PRIVATE_KEY : String
+val ECDSA_CURVE : String
+val KEYSTORE_TYPE : String
+val KEY_GENERATION_ALGORITHM : String
+val SIGNATURE_ALGORITHM : String
+fun KeyStore . addOrReplaceCertificate ( alias : String , cert : Certificate ) : Unit
+fun KeyStore . addOrReplaceKey ( alias : String , key : Key , password : CharArray , chain : Array < Certificate > ) : Unit
+fun createCAKeyStoreAndTrustStore ( keyStoreFilePath : Path , storePassword : String , keyPassword : String , trustStoreFilePath : Path , trustStorePassword : String ) : KeyStore
+fun createCertificateSigningRequest ( myLegalName : String , nearestCity : String , email : String , keyPair : KeyPair ) : <ERROR CLASS>
+fun createIntermediateCert ( domain : String , certificateAuthority : CACertAndKey ) : CACertAndKey
+fun createKeystoreForSSL ( : Path , : String , : String , : KeyStore , : String ) : KeyStore
+fun createSelfSignedCACert ( myLegalName : String ) : CACertAndKey
+fun createServerCert ( subject : <ERROR CLASS> , publicKey : PublicKey , certificateAuthority : CACertAndKey , subjectAlternativeNameDomains : List < String > , subjectAlternativeNameIps : List < String > ) : X509Certificate
+fun generateECDSAKeyPairForSSL ( ) : KeyPair
+fun getDevX509Name ( domain : String ) : <ERROR CLASS>
+fun getX509Name ( myLegalName : String , nearestCity : String , email : String ) : <ERROR CLASS>
+fun loadCertificateAndKey ( keyStore : KeyStore , keyPassword : String , alias : String ) : CACertAndKey
+fun loadCertificateFromKeyStore ( keyStoreFilePath : Path , storePassword : String , alias : String ) : X509Certificate
+fun loadCertificateFromPEMFile ( filename : Path ) : X509Certificate
+fun loadKeyPairFromKeyStore ( keyStoreFilePath : Path , storePassword : String , keyPassword : String , alias : String ) : KeyPair
+fun loadKeyStore ( keyStoreFilePath : Path , storePassword : String ) : KeyStore
+fun loadKeyStore ( input : InputStream , storePassword : String ) : KeyStore
+fun loadOrCreateKeyPairFromKeyStore ( keyStoreFilePath : Path , storePassword : String , keyPassword : String , alias : String , keyGenerator : ( ) -> CACertAndKey ) : KeyPair
+fun loadOrCreateKeyStore ( keyStoreFilePath : Path , storePassword : String ) : KeyStore
+fun saveCertificateAsPEMFile ( x509Certificate : X509Certificate , filename : Path ) : Unit
+fun saveKeyStore ( keyStore : KeyStore , keyStoreFilePath : Path , storePassword : String ) : Unit
+
+
+
+java.io.InputStream
+
+java.nio.file.Path
+
+java.security.KeyPair
+
+java.security.PrivateKey
+
+java.security.PublicKey
+
+java.time.Clock
+
+
+
+Module Contents
+
+
+
+fun Clock . awaitWithDeadline ( deadline : Instant , future : Future < * > = GuavaSettableFuture.create<Any>()) : Boolean
+
+
+
+java.time.LocalDate
+
+java.time.temporal.Temporal
+
+java.util.Currency
+
+javafx.beans.value.ObservableValue
+
+javafx.collections.ObservableList
+
+
+
+Module Contents
+
+
+
+fun < K , A , B > ObservableList < out A > . associateBy ( toKey : ( A ) -> K , assemble : ( K , A ) -> B ) : ObservableMap < K , B >
+fun < K , A > ObservableList < out A > . associateBy ( toKey : ( A ) -> K ) : ObservableMap < K , A >
+fun < K : Any , A : Any , B > ObservableList < out A > . associateByAggregation ( toKey : ( A ) -> K , assemble : ( K , A ) -> B ) : ObservableMap < K , ObservableList < B > >
+fun < K : Any , A : Any > ObservableList < out A > . associateByAggregation ( toKey : ( A ) -> K ) : ObservableMap < K , ObservableList < A > >
+fun < A > ObservableList < ObservableList < A > > . concatenate ( ) : ObservableList < A >
+fun < A > ObservableList < out A > . filter ( predicate : ObservableValue < ( A ) -> Boolean > ) : ObservableList < A >
+fun < A > ObservableList < out A ? > . filterNotNull ( ) : ObservableList < A >
+fun < A > ObservableList < A > . first ( ) : ObservableValue < A ? >
+fun < A > ObservableList < out ObservableValue < out A > > . flatten ( ) : ObservableList < A >
+fun < A , B > ObservableList < out A > . foldObservable ( initial : B , folderFunction : ( B , A ) -> B ) : ObservableValue < B >
+fun < A > ObservableList < A > . getValueAt ( index : Int ) : ObservableValue < A ? >
+fun < A > ObservableList < A > . last ( ) : ObservableValue < A ? >
+fun < A : Any , B : Any , C , K : Any > ObservableList < A > . leftOuterJoin ( rightTable : ObservableList < B > , leftToJoinKey : ( A ) -> K , rightToJoinKey : ( B ) -> K , assemble : ( A , ObservableList < B > ) -> C ) : ObservableList < C >
+fun < A : Any , B : Any , K : Any > ObservableList < A > . leftOuterJoin ( rightTable : ObservableList < B > , leftToJoinKey : ( A ) -> K , rightToJoinKey : ( B ) -> K ) : ObservableMap < K , <ERROR CLASS> < ObservableList < A > , ObservableList < B > > >
+fun < A , B > ObservableList < out A > . map ( cached : Boolean = true, function : ( A ) -> B ) : ObservableList < B >
+
+
+
+javafx.collections.ObservableMap
+
+
+
+Module Contents
+
+
+
+fun < A , K > ObservableMap < K , A > . createMapChange ( key : K , removedValue : A ? , addedValue : A ? ) : Change < K , A >
+fun < K , V > ObservableMap < K , V > . getObservableEntries ( ) : ObservableList < Entry < K , V > >
+fun < K , V > ObservableMap < K , V > . getObservableValue ( key : K ) : ObservableValue < V ? >
+fun < K , V > ObservableMap < K , V > . getObservableValues ( ) : ObservableList < V >
+
+
+
+kotlin.ByteArray
+
+kotlin.ByteArray
+
+kotlin.Double
+
+kotlin.Double
+
+kotlin.Function1
+
+kotlin.Function2
+
+kotlin.Function3
+
+kotlin.Function4
+
+
+
+Module Contents
+
+
+
+fun < A , B , C , D , R > ( A , B , C , D ) -> R . lift ( arg0 : ObservableValue < A > , arg1 : ObservableValue < B > , arg2 : ObservableValue < C > , arg3 : ObservableValue < D > ) : ObservableValue < R >
+
+
+
+kotlin.Int
+
+kotlin.Int
+
+kotlin.Long
+
+kotlin.String
+
+kotlin.String
+
+kotlin.Throwable
+
+kotlin.collections.Collection
+
+kotlin.collections.Collection
+
+kotlin.collections.Iterable
+
+kotlin.collections.Iterable
+
+kotlin.collections.Iterable
+
+kotlin.collections.Iterable
+
+kotlin.collections.Iterable
+
+kotlin.collections.List
+
+
+
+
+package net.corda.client
+
+package net.corda.client.fxutils
+
+
+
+Module Contents
+
+
+
+class AggregatedList < A , E : Any , K : Any > : TransformationList < A , E >
+
+object AmountBindings
+
+class AssociatedList < K , out A , B > : ReadOnlyBackedObservableMapBase < K , B , Unit >
+
+class ChosenList < E > : ObservableListBase < E >
+
+class ConcatenatedList < A > : TransformationList < A , ObservableList < A > >
+
+class FlattenedList < A > : TransformationList < A , ObservableValue < out A > >
+
+class LeftOuterJoinedMap < K : Any , A , B , C > : ReadOnlyBackedObservableMapBase < K , C , SimpleObjectProperty < B ? > >
+
+class MapValuesList < K , A , C > : ObservableList < C >
+
+class MappedList < A , B > : TransformationList < B , A >
+
+open class ReadOnlyBackedObservableMapBase < K , A , B > : ObservableMap < K , A >
+
+class ReplayedList < A > : TransformationList < A , A >
+
+fun < A , B , C > <ERROR CLASS> < A > . foldToObservableList ( initialAccumulator : C , folderFun : ( A , C , ObservableList < B > ) -> C ) : ObservableList < B >
+fun < A , B , K , C > <ERROR CLASS> < A > . foldToObservableMap ( initialAccumulator : C , folderFun : ( A , C , ObservableMap < K , B > ) -> C ) : ObservableMap < K , out B >
+fun < A , B > <ERROR CLASS> < A > . foldToObservableValue ( initial : B , folderFun : ( A , B ) -> B ) : ObservableValue < B >
+javafx.beans.value.ObservableValue
+
+javafx.collections.ObservableList
+
+
+
+Module Contents
+
+
+
+fun < K , A , B > ObservableList < out A > . associateBy ( toKey : ( A ) -> K , assemble : ( K , A ) -> B ) : ObservableMap < K , B >
+fun < K , A > ObservableList < out A > . associateBy ( toKey : ( A ) -> K ) : ObservableMap < K , A >
+fun < K : Any , A : Any , B > ObservableList < out A > . associateByAggregation ( toKey : ( A ) -> K , assemble : ( K , A ) -> B ) : ObservableMap < K , ObservableList < B > >
+fun < K : Any , A : Any > ObservableList < out A > . associateByAggregation ( toKey : ( A ) -> K ) : ObservableMap < K , ObservableList < A > >
+fun < A > ObservableList < ObservableList < A > > . concatenate ( ) : ObservableList < A >
+fun < A > ObservableList < out A > . filter ( predicate : ObservableValue < ( A ) -> Boolean > ) : ObservableList < A >
+fun < A > ObservableList < out A ? > . filterNotNull ( ) : ObservableList < A >
+fun < A > ObservableList < A > . first ( ) : ObservableValue < A ? >
+fun < A > ObservableList < out ObservableValue < out A > > . flatten ( ) : ObservableList < A >
+fun < A , B > ObservableList < out A > . foldObservable ( initial : B , folderFunction : ( B , A ) -> B ) : ObservableValue < B >
+fun < A > ObservableList < A > . getValueAt ( index : Int ) : ObservableValue < A ? >
+fun < A > ObservableList < A > . last ( ) : ObservableValue < A ? >
+fun < A : Any , B : Any , C , K : Any > ObservableList < A > . leftOuterJoin ( rightTable : ObservableList < B > , leftToJoinKey : ( A ) -> K , rightToJoinKey : ( B ) -> K , assemble : ( A , ObservableList < B > ) -> C ) : ObservableList < C >
+fun < A : Any , B : Any , K : Any > ObservableList < A > . leftOuterJoin ( rightTable : ObservableList < B > , leftToJoinKey : ( A ) -> K , rightToJoinKey : ( B ) -> K ) : ObservableMap < K , <ERROR CLASS> < ObservableList < A > , ObservableList < B > > >
+fun < A , B > ObservableList < out A > . map ( cached : Boolean = true, function : ( A ) -> B ) : ObservableList < B >
+
+
+
+javafx.collections.ObservableMap
+
+
+
+Module Contents
+
+
+
+fun < A , K > ObservableMap < K , A > . createMapChange ( key : K , removedValue : A ? , addedValue : A ? ) : Change < K , A >
+fun < K , V > ObservableMap < K , V > . getObservableEntries ( ) : ObservableList < Entry < K , V > >
+fun < K , V > ObservableMap < K , V > . getObservableValue ( key : K ) : ObservableValue < V ? >
+fun < K , V > ObservableMap < K , V > . getObservableValues ( ) : ObservableList < V >
+
+
+
+kotlin.Function1
+
+kotlin.Function2
+
+kotlin.Function3
+
+kotlin.Function4
+
+
+
+Module Contents
+
+
+
+fun < A , B , C , D , R > ( A , B , C , D ) -> R . lift ( arg0 : ObservableValue < A > , arg1 : ObservableValue < B > , arg2 : ObservableValue < C > , arg3 : ObservableValue < D > ) : ObservableValue < R >
+
+
+
+kotlin.collections.Collection
+
+fun < A > A . lift ( ) : ObservableValue < A >
+fun < A , K > <ERROR CLASS> < A > . recordAsAssociation ( toKey : ( A ) -> K , merge : ( K , A , A ) -> A = { _key, _oldValue, newValue -> newValue }) : ObservableMap < K , out A >
+fun < A > <ERROR CLASS> < A > . recordInSequence ( ) : ObservableList < A >
+
+
+
+package net.corda.client.mock
+
+
+
+Module Contents
+
+
+
+class EventGenerator
+
+class Generator < out A >
+
+
+
+Module Contents
+
+
+
+Generator ( generate : ( Random ) -> ErrorOr < A > )
+fun < B > bind ( function : ( A ) -> Generator < B > ) : Generator < Nothing >
+fun < A > choice ( generators : List < Generator < A > > ) : Generator < Nothing >
+fun < B , R > combine ( other1 : Generator < B > , function : ( A , B ) -> R ) : Generator < R >
+fun < B , C , R > combine ( other1 : Generator < B > , other2 : Generator < C > , function : ( A , B , C ) -> R ) : Generator < R >
+fun < B , C , D , R > combine ( other1 : Generator < B > , other2 : Generator < C > , other3 : Generator < D > , function : ( A , B , C , D ) -> R ) : Generator < R >
+fun < B , C , D , E , R > combine ( other1 : Generator < B > , other2 : Generator < C > , other3 : Generator < D > , other4 : Generator < E > , function : ( A , B , C , D , E ) -> R ) : Generator < R >
+fun < A > fail ( error : Exception ) : Generator < A >
+fun < A > frequency ( vararg generators : <ERROR CLASS> < Double , Generator < A > > ) : Generator < A >
+val generate : ( Random ) -> ErrorOr < A >
+fun < A > impure ( valueClosure : ( ) -> A ) : Generator < A >
+fun < B > map ( function : ( A ) -> B ) : Generator < B >
+fun < B > product ( other : Generator < ( A ) -> B > ) : Generator < B >
+fun < A > pure ( value : A ) : Generator < A >
+fun < A > sequence ( generators : List < Generator < A > > ) : Generator < List < A > >
+fun < A > success ( generate : ( Random ) -> A ) : Generator < A >
+
+
+
+fun Generator.Companion . double ( ) : Generator < Double >
+fun Generator.Companion . doubleRange ( from : Double , to : Double ) : Generator < Double >
+fun < A > Generator < A > . generateOrFail ( random : Random , numberOfTries : Int = 1) : A
+fun Generator.Companion . int ( ) : Generator < Int >
+fun Generator.Companion . intRange ( from : Int , to : Int ) : Generator < Int >
+fun < A > Generator.Companion . oneOf ( list : List < A > ) : Generator < A >
+fun < A > Generator.Companion . pickOne ( list : List < A > ) : Generator < A >
+fun < A > Generator.Companion . replicate ( number : Int , generator : Generator < A > ) : Generator < List < A > >
+fun < A > Generator.Companion . replicatePoisson ( meanSize : Double , generator : Generator < A > ) : Generator < List < A > >
+fun < A > Generator.Companion . sampleBernoulli ( maxRatio : Double = 1.0, vararg collection : A ) : <ERROR CLASS>
+fun < A > Generator.Companion . sampleBernoulli ( collection : Collection < A > , maxRatio : Double = 1.0) : Generator < List < A > >
+
+
+
+package net.corda.client.model
+
+
+
+Module Contents
+
+
+
+class ContractStateModel
+
+data class Diff < out T : ContractState >
+
+interface ExchangeRate
+
+class ExchangeRateModel
+
+data class GatheredTransactionData
+
+class GatheredTransactionDataModel
+
+object Models
+
+class NetworkIdentityModel
+
+class NodeMonitorModel
+
+data class PartiallyResolvedTransaction
+
+data class ProgressTrackingEvent
+
+data class ProtocolStatus
+
+data class StateMachineData
+
+sealed class StateMachineStatus
+
+sealed class TrackedDelegate < M : Any >
+
+
+
+Module Contents
+
+
+
+class EventSinkDelegate < M : Any , T > : TrackedDelegate < M >
+
+class EventStreamDelegate < M : Any , T > : TrackedDelegate < M >
+
+class ObjectPropertyDelegate < M : Any , T > : TrackedDelegate < M >
+
+class ObservableDelegate < M : Any , T > : TrackedDelegate < M >
+
+class ObservableListDelegate < M : Any , T > : TrackedDelegate < M >
+
+class ObservableListReadOnlyDelegate < M : Any , out T > : TrackedDelegate < M >
+
+class ObservableValueDelegate < M : Any , T > : TrackedDelegate < M >
+
+class ObserverDelegate < M : Any , T > : TrackedDelegate < M >
+
+class SubjectDelegate < M : Any , T > : TrackedDelegate < M >
+
+class WritableValueDelegate < M : Any , T > : TrackedDelegate < M >
+
+val klass : KClass < M >
+
+
+
+sealed class TransactionCreateStatus
+
+inline fun < reified M : Any , T > eventSink ( noinline sinkProperty : ( M ) -> <ERROR CLASS> < T > ) : <ERROR CLASS>
+inline fun < reified M : Any , T > eventStream ( noinline streamProperty : ( M ) -> <ERROR CLASS> < T > ) : <ERROR CLASS>
+fun ExchangeRate . exchangeAmount ( amount : Amount < Currency > , to : Currency ) : Amount < Currency >
+fun ExchangeRate . exchangeDouble ( amount : Amount < Currency > , to : Currency ) : Double
+inline fun < reified M : Any , T > objectProperty ( noinline objectProperty : ( M ) -> ObjectProperty < T > ) : ObjectPropertyDelegate < M , T >
+inline fun < reified M : Any , T > observable ( noinline observableProperty : ( M ) -> <ERROR CLASS> < T > ) : <ERROR CLASS>
+inline fun < reified M : Any , T > observableList ( noinline observableListProperty : ( M ) -> ObservableList < T > ) : ObservableListDelegate < M , T >
+inline fun < reified M : Any , T > observableListReadOnly ( noinline observableListProperty : ( M ) -> ObservableList < out T > ) : ObservableListReadOnlyDelegate < M , T >
+inline fun < reified M : Any , T > observableValue ( noinline observableValueProperty : ( M ) -> ObservableValue < T > ) : ObservableValueDelegate < M , T >
+inline fun < reified M : Any , T > observer ( noinline observerProperty : ( M ) -> <ERROR CLASS> < T > ) : <ERROR CLASS>
+inline fun < reified M : Any , T > subject ( noinline subjectProperty : ( M ) -> <ERROR CLASS> < T , T > ) : <ERROR CLASS>
+inline fun < reified M : Any , T > writableValue ( noinline writableValueProperty : ( M ) -> WritableValue < T > ) : WritableValueDelegate < M , T >
+
+
+
+package net.corda.contracts
+
+package net.corda.contracts.asset
+
+
+
+Module Contents
+
+
+
+val Amount < Currency > . CASH : State
+val CASH_PROGRAM_ID : Cash
+val COMMODITY_PROGRAM_ID : CommodityContract
+class Cash : OnLedgerAsset < Currency , Commands , State >
+
+
+
+Module Contents
+
+
+
+Cash ( )
+interface Clauses
+
+interface Commands : Commands
+
+data class State : FungibleAsset < Currency > , QueryableState
+
+val conserveClause : AbstractConserveAmount < State , Commands , Currency >
+fun deriveState ( txState : TransactionState < State > , amount : Amount < Issued < Currency > > , owner : PublicKey ) : TransactionState < State >
+fun extractCommands ( commands : Collection < AuthenticatedObject < CommandData > > ) : List < AuthenticatedObject < Commands > >
+fun generateExitCommand ( amount : Amount < Issued < Currency > > ) : Exit
+fun generateIssue ( tx : TransactionBuilder , tokenDef : Issued < Currency > , pennies : Long , owner : PublicKey , notary : Party ) : Unit
+fun generateIssue ( tx : TransactionBuilder , amount : Amount < Issued < Currency > > , owner : PublicKey , notary : Party ) : Unit
+fun generateIssueCommand ( ) : Issue
+fun generateMoveCommand ( ) : Move
+val legalContractReference : SecureHash
+fun verify ( tx : TransactionForContract ) : Unit
+
+
+
+class CommodityContract : OnLedgerAsset < Commodity , Commands , State >
+
+
+
+Module Contents
+
+
+
+CommodityContract ( )
+interface Clauses
+
+interface Commands : Commands
+
+data class State : FungibleAsset < Commodity >
+
+val conserveClause : AbstractConserveAmount < State , Commands , Commodity >
+fun deriveState ( txState : TransactionState < State > , amount : Amount < Issued < Commodity > > , owner : PublicKey ) : TransactionState < State >
+fun extractCommands ( commands : Collection < AuthenticatedObject < CommandData > > ) : List < AuthenticatedObject < Commands > >
+fun generateExitCommand ( amount : Amount < Issued < Commodity > > ) : Exit
+fun generateIssue ( tx : TransactionBuilder , tokenDef : Issued < Commodity > , pennies : Long , owner : PublicKey , notary : Party ) : Unit
+fun generateIssue ( tx : TransactionBuilder , amount : Amount < Issued < Commodity > > , owner : PublicKey , notary : Party ) : Unit
+fun generateIssueCommand ( ) : Issue
+fun generateMoveCommand ( ) : Move
+val legalContractReference : SecureHash
+fun verify ( tx : TransactionForContract ) : Unit
+
+
+
+val DUMMY_CASH_ISSUER : <ERROR CLASS>
+val DUMMY_CASH_ISSUER_KEY : <ERROR CLASS>
+val DUMMY_OBLIGATION_ISSUER : <ERROR CLASS>
+val DUMMY_OBLIGATION_ISSUER_KEY : <ERROR CLASS>
+val Amount < Issued < Currency > > . OBLIGATION : State < Currency >
+val Issued < Currency > . OBLIGATION_DEF : Terms < Currency >
+val OBLIGATION_PROGRAM_ID : Obligation < Currency >
+class Obligation < P > : Contract
+
+
+
+Module Contents
+
+
+
+Obligation ( )
+interface Clauses
+
+
+
+Module Contents
+
+
+
+class ConserveAmount < P > : AbstractConserveAmount < State < P > , Commands , Terms < P > >
+
+class Group < P > : GroupClauseVerifier < State < P > , Commands , Issued < Terms < P > > >
+
+class Issue < P > : AbstractIssue < State < P > , Commands , Terms < P > >
+
+class Net < C : CommandData , P > : NetClause < C , P >
+
+class SetLifecycle < P > : Clause < State < P > , Commands , Issued < Terms < P > > >
+
+class Settle < P > : Clause < State < P > , Commands , Issued < Terms < P > > >
+
+class VerifyLifecycle < S : ContractState , C : CommandData , T : Any , P > : Clause < S , C , T >
+
+
+
+
+interface Commands : Commands
+
+enum class Lifecycle
+
+data class State < P > : FungibleAsset < Terms < P > > , NettableState < State < P > , MultilateralNetState < P > >
+
+data class Terms < P >
+
+fun generateCloseOutNetting ( tx : TransactionBuilder , signer : PublicKey , vararg states : State < P > ) : Unit
+fun generateExit ( tx : TransactionBuilder , amountIssued : Amount < Issued < Terms < P > > > , assetStates : List < StateAndRef < State < P > > > ) : PublicKey
+fun generateIssue ( tx : TransactionBuilder , obligor : Party , issuanceDef : Terms < P > , pennies : Long , beneficiary : PublicKey , notary : Party ) : Unit
+fun generatePaymentNetting ( tx : TransactionBuilder , issued : Issued < Terms < P > > , notary : Party , vararg states : State < P > ) : Unit
+fun generateSetLifecycle ( tx : TransactionBuilder , statesAndRefs : List < StateAndRef < State < P > > > , lifecycle : Lifecycle , notary : Party ) : Unit
+fun generateSettle ( tx : TransactionBuilder , statesAndRefs : Iterable < StateAndRef < State < P > > > , assetStatesAndRefs : Iterable < StateAndRef < FungibleAsset < P > > > , moveCommand : MoveCommand , notary : Party ) : Unit
+val legalContractReference : SecureHash
+fun verify ( tx : TransactionForContract ) : Unit
+
+
+
+abstract class OnLedgerAsset < T : Any , C : CommandData , S : FungibleAsset < T > > : Contract
+
+val Amount < Issued < Currency > > . STATE : State
+infix fun < T > State < T > . at ( dueBefore : Instant ) : State < T >
+infix fun < T > State < T > . between ( parties : <ERROR CLASS> < Party , PublicKey > ) : State < T >
+fun < P > extractAmountsDue ( : Terms < P > , : Iterable < State < P > > ) : Map < <ERROR CLASS> < PublicKey , PublicKey > , Amount < Terms < P > > >
+infix fun State . issued by ( party : Party ) : State
+infix fun State . issued by ( deposit : PartyAndReference ) : State
+infix fun < T > State < T > . issued by ( party : Party ) : State < T >
+fun State . issuedBy ( party : Party ) : State
+fun State . issuedBy ( deposit : PartyAndReference ) : State
+fun < T > State < T > . issuedBy ( party : Party ) : State < T >
+kotlin.collections.Iterable
+
+fun < P > netAmountsDue ( balances : Map < <ERROR CLASS> < PublicKey , PublicKey > , Amount < P > > ) : Map < <ERROR CLASS> < PublicKey , PublicKey > , Amount < P > >
+infix fun State . owned by ( owner : PublicKey ) : State
+infix fun < T > State < T > . owned by ( owner : PublicKey ) : State < T >
+fun State . ownedBy ( owner : PublicKey ) : State
+fun < T > State < T > . ownedBy ( owner : PublicKey ) : State < T >
+fun < P > sumAmountsDue ( balances : Map < <ERROR CLASS> < PublicKey , PublicKey > , Amount < P > > ) : Map < PublicKey , Long >
+infix fun State . with deposit ( deposit : PartyAndReference ) : State
+fun State . withDeposit ( deposit : PartyAndReference ) : State
+
+
+
+package net.corda.contracts.clause
+
+
+
+Module Contents
+
+
+
+abstract class AbstractConserveAmount < S : FungibleAsset < T > , C : CommandData , T : Any > : Clause < S , C , Issued < T > >
+
+
+
+Module Contents
+
+
+
+AbstractConserveAmount ( )
+fun generateExit ( tx : TransactionBuilder , amountIssued : Amount < Issued < T > > , assetStates : List < StateAndRef < S > > , deriveState : ( TransactionState < S > , Amount < Issued < T > > , PublicKey ) -> TransactionState < S > , generateMoveCommand : ( ) -> CommandData , generateExitCommand : ( Amount < Issued < T > > ) -> CommandData ) : PublicKey
+open fun toString ( ) : String
+open fun verify ( tx : TransactionForContract , inputs : List < S > , outputs : List < S > , commands : List < AuthenticatedObject < C > > , groupingKey : Issued < T > ? ) : Set < C >
+
+
+
+abstract class AbstractIssue < in S : ContractState , C : CommandData , T : Any > : Clause < S , C , Issued < T > >
+
+data class BilateralNetState < P > : NetState < P >
+
+data class MultilateralNetState < P > : NetState < P >
+
+open class NetClause < C : CommandData , P > : Clause < ContractState , C , Unit >
+
+interface NetState < P >
+
+open class NoZeroSizedOutputs < in S : FungibleAsset < T > , C : CommandData , T : Any > : Clause < S , C , Issued < T > >
+
+
+
+
+package net.corda.contracts.testing
+
+package net.corda.core
+
+package net.corda.core.contracts
+
+
+
+Module Contents
+
+
+
+enum class AccrualAdjustment
+
+data class Amount < T > : Comparable < Amount < T > >
+
+interface Attachment : NamedByHash
+
+data class AuthenticatedObject < out T : Any >
+
+interface BilateralNettableState < N : BilateralNettableState < N > >
+
+open class BusinessCalendar
+
+
+
+Module Contents
+
+
+
+val TEST_CALENDAR_DATA : <ERROR CLASS>
+class UnknownCalendar : Exception
+
+open fun applyRollConvention ( testDate : LocalDate , dateRollConvention : DateRollConvention ) : LocalDate
+val calendars : <ERROR CLASS>
+fun createGenericSchedule ( startDate : LocalDate , period : Frequency , calendar : BusinessCalendar = getInstance(), dateRollConvention : DateRollConvention = DateRollConvention.Following, noOfAdditionalPeriods : Int = Integer.MAX_VALUE, endDate : LocalDate ? = null, periodOffset : Int ? = null) : List < LocalDate >
+open fun equals ( other : Any ? ) : Boolean
+fun getInstance ( vararg calname : String ) : BusinessCalendar
+fun getOffsetDate ( startDate : LocalDate , period : Frequency , steps : Int = 1) : LocalDate
+open fun hashCode ( ) : Int
+val holidayDates : List < LocalDate >
+open fun isWorkingDay ( date : LocalDate ) : Boolean
+fun moveBusinessDays ( date : LocalDate , direction : DateRollDirection , i : Int ) : LocalDate
+fun parseDateFromString ( it : String ) : LocalDate
+
+
+
+val CHF : Currency
+sealed class ClientToServiceCommand
+
+data class Command
+
+interface CommandData
+data class Commodity
+
+interface Contract
+
+interface ContractState
+
+fun DOLLARS ( amount : Int ) : Amount < Currency >
+fun DOLLARS ( amount : Double ) : Amount < Currency >
+val DUMMY_PROGRAM_ID : DummyContract
+enum class DateRollConvention
+
+enum class DateRollDirection
+
+enum class DayCountBasisDay
+
+enum class DayCountBasisYear
+
+interface DealState : LinearState
+
+class DummyContract : Contract
+
+data class DummyState : ContractState
+
+val EUR : Currency
+data class Expression
+
+object ExpressionDeserializer
+
+object ExpressionSerializer
+
+val FCOJ : Commodity
+fun FCOJ ( amount : Int ) : Amount < Commodity >
+data class Fix : CommandData
+
+data class FixOf
+
+interface FixableDealState : DealState
+
+enum class Frequency
+
+interface FungibleAsset < T > : OwnableState
+
+val GBP : Currency
+class InsufficientBalanceException : Exception
+
+interface IssuanceDefinition
+interface IssueCommand : CommandData
+
+data class Issued < out P >
+
+interface LinearState : ContractState
+
+interface MoveCommand : CommandData
+
+interface MultilateralNettableState < out T : Any >
+
+interface NamedByHash
+
+interface NetCommand : CommandData
+
+enum class NetType
+
+interface NettableState < N : BilateralNettableState < N > , T : Any > : BilateralNettableState < N > , MultilateralNettableState < T >
+interface OwnableState : ContractState
+
+fun POUNDS ( amount : Int ) : Amount < Currency >
+data class PartyAndReference
+
+enum class PaymentRule
+
+val R : Requirements
+class Requirements
+
+fun SWISS_FRANCS ( amount : Int ) : Amount < Currency >
+interface SchedulableState : ContractState
+
+interface Scheduled
+
+data class ScheduledActivity : Scheduled
+
+data class ScheduledStateRef : Scheduled
+
+data class StateAndRef < out T : ContractState >
+
+data class StateRef
+
+data class Tenor
+
+data class Timestamp
+
+class TransactionConflictException : Exception
+
+data class TransactionForContract
+
+
+
+Module Contents
+
+
+
+TransactionForContract ( inputs : List < ContractState > , outputs : List < ContractState > , attachments : List < Attachment > , commands : List < AuthenticatedObject < CommandData > > , origHash : SecureHash , inputNotary : Party ? = null, timestamp : Timestamp ? = null)
+data class InOutGroup < out T : ContractState , out K : Any >
+
+val attachments : List < Attachment >
+val commands : List < AuthenticatedObject < CommandData > >
+fun equals ( other : Any ? ) : Boolean
+fun < T : ContractState , K : Any > groupStates ( ofType : Class < T > , selector : ( T ) -> K ) : List < InOutGroup < T , K > >
+inline fun < reified T : ContractState , K : Any > groupStates ( selector : ( T ) -> K ) : List < InOutGroup < T , K > >
+fun < T : ContractState , K : Any > groupStatesInternal ( inGroups : Map < K , List < T > > , outGroups : Map < K , List < T > > ) : List < InOutGroup < T , K > >
+fun hashCode ( ) : Int
+val inputNotary : Party ?
+val inputs : List < ContractState >
+val origHash : SecureHash
+val outputs : List < ContractState >
+val timestamp : Timestamp ?
+
+
+
+class TransactionGraphSearch : Callable < List < WireTransaction > >
+
+class TransactionResolutionException : Exception
+
+data class TransactionState < out T : ContractState >
+
+sealed class TransactionType
+
+sealed class TransactionVerificationException : Exception
+
+abstract class TypeOnlyCommandData : CommandData
+
+val USD : Currency
+data class UniqueIdentifier : Comparable < UniqueIdentifier >
+
+fun calculateDaysBetween ( startDate : LocalDate , endDate : LocalDate , dcbYear : DayCountBasisYear , dcbDay : DayCountBasisDay ) : Int
+fun commodity ( code : String ) : Commodity
+fun currency ( code : String ) : Currency
+fun ContractState . hash ( ) : SecureHash
+infix fun Commodity . issued by ( deposit : PartyAndReference ) : Issued < Commodity >
+infix fun Amount < Currency > . issued by ( deposit : PartyAndReference ) : Amount < Issued < Currency > >
+infix fun Commodity . issuedBy ( deposit : PartyAndReference ) : Issued < Commodity >
+infix fun Amount < Currency > . issuedBy ( deposit : PartyAndReference ) : Amount < Issued < Currency > >
+java.time.LocalDate
+
+java.util.Currency
+
+kotlin.Double
+
+kotlin.Int
+
+kotlin.collections.Collection
+
+kotlin.collections.Iterable
+
+inline fun < R > requireThat ( body : Requirements . ( ) -> R ) : R
+inline fun < reified T : MoveCommand > verifyMoveCommand ( inputs : List < OwnableState > , tx : TransactionForContract ) : MoveCommand
+inline fun < reified T : MoveCommand > verifyMoveCommand ( inputs : List < OwnableState > , commands : List < AuthenticatedObject < CommandData > > ) : MoveCommand
+infix fun < T : ContractState > T . with notary ( newNotary : Party ) : TransactionState < T >
+infix fun < T : ContractState > T . withNotary ( newNotary : Party ) : TransactionState < T >
+fun < T > Amount < Issued < T > > . withoutIssuer ( ) : Amount < T >
+
+
+
+package net.corda.core.contracts.clauses
+
+
+
+Module Contents
+
+
+
+class AllComposition < S : ContractState , C : CommandData , K : Any > : CompositeClause < S , C , K >
+
+
+
+Module Contents
+
+
+
+AllComposition ( firstClause : Clause < S , C , K > , vararg remainingClauses : Clause < S , C , K > )
+val clauses : ArrayList < Clause < S , C , K > >
+fun matchedClauses ( commands : List < AuthenticatedObject < C > > ) : List < Clause < S , C , K > >
+fun toString ( ) : String
+fun verify ( tx : TransactionForContract , inputs : List < S > , outputs : List < S > , commands : List < AuthenticatedObject < C > > , groupingKey : K ? ) : Set < C >
+
+
+
+class AnyComposition < in S : ContractState , C : CommandData , in K : Any > : CompositeClause < S , C , K >
+
+
+
+Module Contents
+
+
+
+AnyComposition ( vararg rawClauses : Clause < S , C , K > )
+val clauses : List < Clause < S , C , K > >
+fun matchedClauses ( commands : List < AuthenticatedObject < C > > ) : List < Clause < S , C , K > >
+fun toString ( ) : String
+fun verify ( tx : TransactionForContract , inputs : List < S > , outputs : List < S > , commands : List < AuthenticatedObject < C > > , groupingKey : K ? ) : Set < C >
+
+
+
+abstract class Clause < in S : ContractState , C : CommandData , in K : Any >
+
+abstract class CompositeClause < in S : ContractState , C : CommandData , in K : Any > : Clause < S , C , K >
+
+class FilterOn < S : ContractState , C : CommandData , K : Any > : Clause < ContractState , C , K >
+
+
+
+Module Contents
+
+
+
+FilterOn ( clause : Clause < S , C , K > , filterStates : ( List < ContractState > ) -> List < S > )
+val clause : Clause < S , C , K >
+val filterStates : ( List < ContractState > ) -> List < S >
+fun getExecutionPath ( commands : List < AuthenticatedObject < C > > ) : List < Clause < * , * , * > >
+val requiredCommands : Set < Class < out CommandData > >
+fun verify ( tx : TransactionForContract , inputs : List < ContractState > , outputs : List < ContractState > , commands : List < AuthenticatedObject < C > > , groupingKey : K ? ) : Set < C >
+
+
+
+class FirstComposition < S : ContractState , C : CommandData , K : Any > : CompositeClause < S , C , K >
+
+
+
+Module Contents
+
+
+
+FirstComposition ( firstClause : Clause < S , C , K > , vararg remainingClauses : Clause < S , C , K > )
+val clauses : ArrayList < Clause < S , C , K > >
+val firstClause : Clause < S , C , K >
+val logger : <ERROR CLASS>
+fun matchedClauses ( commands : List < AuthenticatedObject < C > > ) : List < Clause < S , C , K > >
+fun toString ( ) : String
+fun verify ( tx : TransactionForContract , inputs : List < S > , outputs : List < S > , commands : List < AuthenticatedObject < C > > , groupingKey : K ? ) : Set < C >
+
+
+
+abstract class GroupClauseVerifier < S : ContractState , C : CommandData , K : Any > : Clause < ContractState , C , Unit >
+
+
+
+Module Contents
+
+
+
+GroupClauseVerifier ( clause : Clause < S , C , K > )
+val clause : Clause < S , C , K >
+open fun getExecutionPath ( commands : List < AuthenticatedObject < C > > ) : List < Clause < * , * , * > >
+abstract fun groupStates ( tx : TransactionForContract ) : List < InOutGroup < S , K > >
+open fun verify ( tx : TransactionForContract , inputs : List < ContractState > , outputs : List < ContractState > , commands : List < AuthenticatedObject < C > > , groupingKey : Unit ? ) : Set < C >
+
+
+
+fun < C : CommandData > Clause < * , C , * > . matches ( commands : List < AuthenticatedObject < C > > ) : Boolean
+fun < C : CommandData > verifyClause ( tx : TransactionForContract , clause : Clause < ContractState , C , Unit > , commands : List < AuthenticatedObject < C > > ) : Unit
+
+
+
+package net.corda.core.crypto
+
+
+
+Module Contents
+
+
+
+open class DigitalSignature : OpaqueBytes
+
+class DummyPublicKey : PublicKey , Comparable < PublicKey >
+
+class MerkleTreeException : Exception
+
+object NullPublicKey : PublicKey , Comparable < PublicKey >
+
+object NullSignature : WithKey
+class PartialMerkleTree
+
+data class Party
+
+sealed class PublicKeyTree
+
+sealed class SecureHash : OpaqueBytes
+
+open class SignedData < T : Any >
+
+class WhitelistTrustManager : X509ExtendedTrustManager
+
+
+
+Module Contents
+
+
+
+WhitelistTrustManager ( originalProvider : X509ExtendedTrustManager )
+fun checkClientTrusted ( chain : Array < out X509Certificate > , authType : String , socket : Socket ? ) : Unit
+fun checkClientTrusted ( chain : Array < out X509Certificate > , authType : String , engine : SSLEngine ? ) : Unit
+fun checkClientTrusted ( chain : Array < out X509Certificate > , authType : String ) : Unit
+fun checkServerTrusted ( chain : Array < out X509Certificate > , authType : String , socket : Socket ? ) : Unit
+fun checkServerTrusted ( chain : Array < out X509Certificate > , authType : String , engine : SSLEngine ? ) : Unit
+fun checkServerTrusted ( chain : Array < out X509Certificate > , authType : String ) : Unit
+val checker : HostnameChecker
+fun getAcceptedIssuers ( ) : Array < out X509Certificate >
+val originalProvider : X509ExtendedTrustManager
+
+
+
+object WhitelistTrustManagerProvider : Provider
+
+class WhitelistTrustManagerSpi : TrustManagerFactorySpi
+
+object X509Utilities
+
+
+
+Module Contents
+
+
+
+data class CACertAndKey
+
+val CORDA_CLIENT_CA : String
+val CORDA_CLIENT_CA_PRIVATE_KEY : String
+val CORDA_INTERMEDIATE_CA : String
+val CORDA_INTERMEDIATE_CA_PRIVATE_KEY : String
+val CORDA_ROOT_CA : String
+val CORDA_ROOT_CA_PRIVATE_KEY : String
+val ECDSA_CURVE : String
+val KEYSTORE_TYPE : String
+val KEY_GENERATION_ALGORITHM : String
+val SIGNATURE_ALGORITHM : String
+fun KeyStore . addOrReplaceCertificate ( alias : String , cert : Certificate ) : Unit
+fun KeyStore . addOrReplaceKey ( alias : String , key : Key , password : CharArray , chain : Array < Certificate > ) : Unit
+fun createCAKeyStoreAndTrustStore ( keyStoreFilePath : Path , storePassword : String , keyPassword : String , trustStoreFilePath : Path , trustStorePassword : String ) : KeyStore
+fun createCertificateSigningRequest ( myLegalName : String , nearestCity : String , email : String , keyPair : KeyPair ) : <ERROR CLASS>
+fun createIntermediateCert ( domain : String , certificateAuthority : CACertAndKey ) : CACertAndKey
+fun createKeystoreForSSL ( : Path , : String , : String , : KeyStore , : String ) : KeyStore
+fun createSelfSignedCACert ( myLegalName : String ) : CACertAndKey
+fun createServerCert ( subject : <ERROR CLASS> , publicKey : PublicKey , certificateAuthority : CACertAndKey , subjectAlternativeNameDomains : List < String > , subjectAlternativeNameIps : List < String > ) : X509Certificate
+fun generateECDSAKeyPairForSSL ( ) : KeyPair
+fun getDevX509Name ( domain : String ) : <ERROR CLASS>
+fun getX509Name ( myLegalName : String , nearestCity : String , email : String ) : <ERROR CLASS>
+fun loadCertificateAndKey ( keyStore : KeyStore , keyPassword : String , alias : String ) : CACertAndKey
+fun loadCertificateFromKeyStore ( keyStoreFilePath : Path , storePassword : String , alias : String ) : X509Certificate
+fun loadCertificateFromPEMFile ( filename : Path ) : X509Certificate
+fun loadKeyPairFromKeyStore ( keyStoreFilePath : Path , storePassword : String , keyPassword : String , alias : String ) : KeyPair
+fun loadKeyStore ( keyStoreFilePath : Path , storePassword : String ) : KeyStore
+fun loadKeyStore ( input : InputStream , storePassword : String ) : KeyStore
+fun loadOrCreateKeyPairFromKeyStore ( keyStoreFilePath : Path , storePassword : String , keyPassword : String , alias : String , keyGenerator : ( ) -> CACertAndKey ) : KeyPair
+fun loadOrCreateKeyStore ( keyStoreFilePath : Path , storePassword : String ) : KeyStore
+fun saveCertificateAsPEMFile ( x509Certificate : X509Certificate , filename : Path ) : Unit
+fun saveKeyStore ( keyStore : KeyStore , keyStoreFilePath : Path , storePassword : String ) : Unit
+
+
+
+val ed25519Curve : <ERROR CLASS>
+fun entropyToKeyPair ( entropy : BigInteger ) : KeyPair
+fun generateKeyPair ( ) : KeyPair
+java.security.KeyPair
+
+java.security.PrivateKey
+
+java.security.PublicKey
+
+kotlin.ByteArray
+
+kotlin.collections.Iterable
+
+fun newSecureRandom ( ) : SecureRandom
+fun parsePublicKeyBase58 ( base58String : String ) : <ERROR CLASS>
+fun registerWhitelistTrustManager ( ) : Unit
+fun OpaqueBytes . sha256 ( ) : SHA256
+
+
+
+package net.corda.core.math
+
+package net.corda.core.messaging
+
+
+
+Module Contents
+
+
+
+object Ack : DeserializeAsKotlinObjectDef
+interface AllPossibleRecipients : MessageRecipients
+interface Message
+
+interface MessageHandlerRegistration
+interface MessageRecipientGroup : MessageRecipients
+interface MessageRecipients
+interface MessagingService
+
+interface SingleMessageRecipient : MessageRecipients
+data class TopicSession
+
+object TopicStringValidator
+
+fun MessagingService . createMessage ( topic : String , sessionID : Long = DEFAULT_SESSION_ID, data : ByteArray ) : Message
+fun < M : Any > MessagingService . onNext ( topic : String , sessionId : Long ) : <ERROR CLASS> < M >
+fun MessagingService . runOnNextMessage ( topic : String , sessionID : Long , callback : ( Message ) -> Unit ) : Unit
+inline fun MessagingService . runOnNextMessage ( topicSession : TopicSession , crossinline callback : ( Message ) -> Unit ) : Unit
+fun MessagingService . send ( topic : String , sessionID : Long , payload : Any , to : MessageRecipients , uuid : UUID = UUID.randomUUID()) : Unit
+fun MessagingService . send ( topicSession : TopicSession , payload : Any , to : MessageRecipients , uuid : UUID = UUID.randomUUID()) : Unit
+
+
+
+package net.corda.core.node
+
+package net.corda.core.node.services
+
+
+
+Module Contents
+
+
+
+interface AttachmentStorage
+
+val DEFAULT_SESSION_ID : Long
+interface IdentityService
+
+interface KeyManagementService
+
+sealed class NetworkCacheError : Exception
+
+interface NetworkMapCache
+
+interface ReadOnlyTransactionStorage
+
+interface SchedulerService
+
+data class ServiceInfo
+
+sealed class ServiceType
+
+interface StateMachineRecordedTransactionMappingStorage
+
+data class StateMachineTransactionMapping
+
+interface StorageService
+
+class TimestampChecker
+
+interface TransactionStorage : ReadOnlyTransactionStorage
+
+interface TxWritableStorageService : StorageService
+
+class UniquenessException : Exception
+
+interface UniquenessProvider
+
+class Vault
+
+interface VaultService
+
+
+
+Module Contents
+
+
+
+abstract fun addNoteToTransaction ( txnId : SecureHash , noteText : String ) : Unit
+open val cashBalances : Map < Currency , Amount < Currency > >
+abstract val currentVault : Vault
+abstract fun generateSpend ( tx : TransactionBuilder , amount : Amount < Currency > , to : PublicKey , onlyFromParties : Set < Party > ? = null) : <ERROR CLASS> < TransactionBuilder , List < PublicKey > >
+abstract fun getTransactionNotes ( txnId : SecureHash ) : Iterable < String >
+abstract val linearHeads : Map < UniqueIdentifier , StateAndRef < LinearState > >
+open fun < T : LinearState > linearHeadsOfType_ ( stateType : Class < T > ) : Map < UniqueIdentifier , StateAndRef < T > >
+open fun notify ( tx : WireTransaction ) : Vault
+abstract fun notifyAll ( txns : Iterable < WireTransaction > ) : Vault
+open fun statesForRefs ( refs : List < StateRef > ) : Map < StateRef , TransactionState < * > ? >
+abstract fun track ( ) : <ERROR CLASS> < Vault , <ERROR CLASS> < Update > >
+abstract val updates : <ERROR CLASS> < Update >
+open fun whenConsumed ( ref : StateRef ) : <ERROR CLASS> < Update >
+
+
+
+inline fun < reified T : DealState > VaultService . dealsWith ( party : Party ) : <ERROR CLASS>
+kotlin.collections.Iterable
+
+inline fun < reified T : LinearState > VaultService . linearHeadsOfType ( ) : <ERROR CLASS>
+
+
+
+package net.corda.core.protocols
+
+package net.corda.core.schemas
+
+package net.corda.core.serialization
+
+package net.corda.core.testing
+
+package net.corda.core.transactions
+
+
+
+Module Contents
+
+
+
+abstract class BaseTransaction : NamedByHash
+
+class FilterFuns
+
+class FilteredLeaves
+
+class FilteredTransaction
+
+class LedgerTransaction : BaseTransaction
+
+sealed class MerkleTree
+
+data class SignedTransaction : NamedByHash
+
+open class TransactionBuilder
+
+
+
+Module Contents
+
+
+
+TransactionBuilder ( type : TransactionType = TransactionType.General(), notary : Party ? = null, inputs : MutableList < StateRef > = arrayListOf(), attachments : MutableList < SecureHash > = arrayListOf(), outputs : MutableList < TransactionState < ContractState > > = arrayListOf(), commands : MutableList < Command > = arrayListOf(), signers : MutableSet < PublicKey > = mutableSetOf(), timestamp : Timestamp ? = null)
+fun addAttachment ( attachmentId : SecureHash ) : Unit
+fun addCommand ( arg : Command ) : Unit
+fun addCommand ( data : CommandData , vararg keys : PublicKey ) : <ERROR CLASS>
+fun addCommand ( data : CommandData , keys : List < PublicKey > ) : Unit
+open fun addInputState ( stateAndRef : StateAndRef < * > ) : Unit
+fun addOutputState ( state : TransactionState < * > ) : Int
+fun addOutputState ( state : ContractState , notary : Party ) : Int
+fun addOutputState ( state : ContractState ) : Int
+fun addSignatureUnchecked ( sig : WithKey ) : TransactionBuilder
+fun attachments ( ) : List < SecureHash >
+protected val attachments : MutableList < SecureHash >
+fun checkAndAddSignature ( sig : WithKey ) : Unit
+fun checkSignature ( sig : WithKey ) : Unit
+fun commands ( ) : List < Command >
+protected val commands : MutableList < Command >
+fun copy ( ) : TransactionBuilder
+protected val currentSigs : <ERROR CLASS>
+fun inputStates ( ) : List < StateRef >
+protected val inputs : MutableList < StateRef >
+var notary : Party ?
+fun outputStates ( ) : List < TransactionState < * > >
+protected val outputs : MutableList < TransactionState < ContractState > >
+fun setTime ( time : Instant , timeTolerance : Duration ) : Unit
+fun setTime ( newTimestamp : Timestamp ) : Unit
+fun signWith ( key : KeyPair ) : TransactionBuilder
+protected val signers : MutableSet < PublicKey >
+val time : Timestamp ?
+protected var timestamp : Timestamp ?
+fun toSignedTransaction ( checkSufficientSignatures : Boolean = true) : SignedTransaction
+fun toWireTransaction ( ) : WireTransaction
+protected val type : TransactionType
+fun withItems ( vararg items : Any ) : TransactionBuilder
+
+
+
+class WireTransaction : BaseTransaction
+
+fun WireTransaction . buildFilteredTransaction ( filterFuns : FilterFuns ) : FilteredTransaction
+fun WireTransaction . calculateLeavesHashes ( ) : List < SecureHash >
+fun SecureHash . hashConcat ( other : SecureHash ) : <ERROR CLASS>
+fun < T : Any > serializedHash ( x : T ) : SecureHash
+
+
+
+package net.corda.core.utilities
+
+package net.corda.node
+
+package net.corda.node.api
+
+
+
+Module Contents
+
+
+
+interface APIServer
+
+
+
+Module Contents
+
+
+
+abstract fun buildTransaction ( type : ContractDefRef , steps : List < TransactionBuildStep > ) : SerializedBytes < WireTransaction >
+abstract fun commitTransaction ( tx : SerializedBytes < WireTransaction > , signatures : List < WithKey > ) : SecureHash
+abstract fun fetchProtocolsRequiringAttention ( query : StatesQuery ) : Map < StateRef , ProtocolRequiringAttention >
+abstract fun fetchStates ( states : List < StateRef > ) : Map < StateRef , TransactionState < ContractState > ? >
+abstract fun fetchTransactions ( txs : List < SecureHash > ) : Map < SecureHash , SignedTransaction ? >
+abstract fun generateTransactionSignature ( tx : SerializedBytes < WireTransaction > ) : WithKey
+abstract fun info ( ) : NodeInfo
+abstract fun invokeProtocolSync ( type : ProtocolRef , args : Map < String , Any ? > ) : Any ?
+abstract fun provideProtocolResponse ( protocol : ProtocolInstanceRef , choice : SecureHash , args : Map < String , Any ? > ) : Unit
+abstract fun queryStates ( query : StatesQuery ) : List < StateRef >
+abstract fun serverTime ( ) : LocalDateTime
+abstract fun status ( ) : <ERROR CLASS>
+
+
+
+data class ContractClassRef : ContractDefRef
+
+interface ContractDefRef
+data class ContractLedgerRef : ContractDefRef
+
+data class ProtocolClassRef : ProtocolRef
+
+data class ProtocolInstanceRef
+
+interface ProtocolRef
+data class ProtocolRequiringAttention
+
+interface StatesQuery
+
+data class TransactionBuildStep
+
+
+
+
+package net.corda.node.driver
+
+
+
+Module Contents
+
+
+
+open class DriverDSL : DriverDSLInternalInterface
+
+interface DriverDSLExposedInterface
+
+interface DriverDSLInternalInterface : DriverDSLExposedInterface
+
+data class NodeInfoAndConfig
+
+sealed class PortAllocation
+
+fun addressMustBeBound ( hostAndPort : <ERROR CLASS> ) : Unit
+fun addressMustNotBeBound ( hostAndPort : <ERROR CLASS> ) : Unit
+fun < A > driver ( driverDirectory : Path = Paths.get("build", getTimestampAsDirectoryName()), portAllocation : PortAllocation = PortAllocation.Incremental(10000), debugPortAllocation : PortAllocation = PortAllocation.Incremental(5005), useTestClock : Boolean = false, isDebug : Boolean = false, dsl : DriverDSLExposedInterface . ( ) -> A ) : A
+fun < DI : DriverDSLExposedInterface , D : DriverDSLInternalInterface , A > genericDriver ( driverDsl : D , coerce : ( D ) -> DI , dsl : DI . ( ) -> A ) : A
+fun < A > poll ( pollName : String , pollIntervalMs : Long = 500, warnCount : Int = 120, f : ( ) -> A ? ) : A
+fun writeConfig ( path : Path , filename : String , config : <ERROR CLASS> ) : Unit
+
+
+
+package net.corda.node.internal
+
+
+
+Module Contents
+
+
+
+class APIServerImpl : APIServer
+
+
+
+Module Contents
+
+
+
+APIServerImpl ( node : AbstractNode )
+fun buildTransaction ( type : ContractDefRef , steps : List < TransactionBuildStep > ) : SerializedBytes < WireTransaction >
+fun commitTransaction ( tx : SerializedBytes < WireTransaction > , signatures : List < WithKey > ) : SecureHash
+fun fetchProtocolsRequiringAttention ( query : StatesQuery ) : Map < StateRef , ProtocolRequiringAttention >
+fun fetchStates ( states : List < StateRef > ) : Map < StateRef , TransactionState < ContractState > ? >
+fun fetchTransactions ( txs : List < SecureHash > ) : Map < SecureHash , SignedTransaction ? >
+fun generateTransactionSignature ( tx : SerializedBytes < WireTransaction > ) : WithKey
+fun info ( ) : NodeInfo
+fun invokeProtocolSync ( type : ProtocolRef , args : Map < String , Any ? > ) : Any ?
+val node : AbstractNode
+fun provideProtocolResponse ( protocol : ProtocolInstanceRef , choice : SecureHash , args : Map < String , Any ? > ) : Unit
+fun queryStates ( query : StatesQuery ) : List < StateRef >
+fun serverTime ( ) : LocalDateTime
+fun status ( ) : <ERROR CLASS>
+
+
+
+abstract class AbstractNode : SingletonSerializeAsToken
+
+class ConfigurationException : Exception
+
+class CordaRPCOpsImpl : CordaRPCOps
+
+class Node : AbstractNode
+
+
+
+
+package net.corda.node.serialization
+
+package net.corda.node.services
+
+package net.corda.node.services.api
+
+package net.corda.node.services.config
+
+package net.corda.node.services.events
+
+package net.corda.node.services.identity
+
+package net.corda.node.services.keys
+
+package net.corda.node.services.messaging
+
+
+
+Module Contents
+
+
+
+abstract class ArtemisMessagingComponent : SingletonSerializeAsToken
+
+class ArtemisMessagingServer : ArtemisMessagingComponent
+
+val CURRENT_RPC_USER : ThreadLocal < User >
+data class ClientRPCRequestMessage
+
+interface CordaRPCOps : RPCOps
+
+data class MarshalledObservation
+
+class NodeMessagingClient : ArtemisMessagingComponent , MessagingServiceInternal
+
+
+
+Module Contents
+
+
+
+NodeMessagingClient ( config : NodeConfiguration , serverHostPort : <ERROR CLASS> , myIdentity : PublicKey ? , executor : AffinityExecutor , database : <ERROR CLASS> )
+data class Handler : MessageHandlerRegistration
+
+val SESSION_ID_PROPERTY : String
+val TOPIC_PROPERTY : String
+fun addMessageHandler ( topic : String , sessionID : Long , callback : ( Message , MessageHandlerRegistration ) -> Unit ) : MessageHandlerRegistration
+fun addMessageHandler ( topicSession : TopicSession , callback : ( Message , MessageHandlerRegistration ) -> Unit ) : MessageHandlerRegistration
+val config : NodeConfiguration
+fun createMessage ( topicSession : TopicSession , data : ByteArray , uuid : UUID ) : Message
+val database : <ERROR CLASS>
+var dispatcher : RPCDispatcher ?
+val executor : AffinityExecutor
+val log : <ERROR CLASS>
+fun makeNetworkMapAddress ( hostAndPort : <ERROR CLASS> ) : SingleMessageRecipient
+val myAddress : SingleMessageRecipient
+val myIdentity : PublicKey ?
+fun removeMessageHandler ( registration : MessageHandlerRegistration ) : Unit
+fun run ( ) : Unit
+fun send ( message : Message , target : MessageRecipients ) : Unit
+val serverHostPort : <ERROR CLASS>
+fun start ( rpcOps : RPCOps , userService : RPCUserService ) : Unit
+fun stop ( ) : Unit
+
+
+
+class PermissionException : RuntimeException
+
+abstract class RPCDispatcher
+
+open class RPCException : RuntimeException
+
+interface RPCOps
+
+@Target ( [AnnotationTarget.FUNCTION]) annotation class RPCReturnsObservables
+
+@Target ( [AnnotationTarget.FUNCTION]) annotation class RPCSinceVersion
+
+data class StateMachineInfo
+
+sealed class StateMachineUpdate
+
+sealed class TransactionBuildResult
+
+fun createRPCKryo ( observableSerializer : <ERROR CLASS> < <ERROR CLASS> < Any > > ? = null) : <ERROR CLASS>
+fun requirePermission ( permission : String ) : Unit
+val rpcLog : <ERROR CLASS>
+
+
+
+package net.corda.node.services.network
+
+package net.corda.node.services.persistence
+
+package net.corda.node.services.schema
+
+package net.corda.node.services.statemachine
+
+package net.corda.node.services.transactions
+
+package net.corda.node.services.vault
+
+package net.corda.node.servlets
+
+package net.corda.node.utilities
+
+
+
+Module Contents
+
+
+
+class ANSIProgressObserver
+
+object ANSIProgressRenderer
+
+abstract class AbstractJDBCHashMap < K : Any , V : Any , out T : JDBCHashedTable > : MutableMap < K , V > , AbstractMap < K , V >
+
+abstract class AbstractJDBCHashSet < K : Any , out T : JDBCHashedTable > : MutableSet < K > , AbstractSet < K >
+
+enum class AddOrRemove
+
+
+
+Module Contents
+
+
+
+ADD
+REMOVE
+
+
+
+interface AffinityExecutor : Executor
+
+class FiberBox < out T >
+
+object InstantColumnType
+
+class JDBCHashMap < K : Any , V : Any > : AbstractJDBCHashMap < K , V , BlobMapTable >
+
+class JDBCHashSet < K : Any > : AbstractJDBCHashSet < K , BlobSetTable >
+
+open class JDBCHashedTable
+
+object JsonSupport
+
+object LocalDateColumnType
+
+object LocalDateTimeColumnType
+
+abstract class MutableClock : Clock
+
+const val NODE_DATABASE_PREFIX : String
+data class PartyColumns
+
+object PublicKeyColumnType
+
+object SecureHashColumnType
+
+data class StateRefColumns
+
+class StrandLocalTransactionManager
+
+class TestClock : MutableClock , SerializeAsToken
+
+object UUIDStringColumnType
+
+fun < T : Any > bytesFromBlob ( blob : Blob ) : SerializedBytes < T >
+fun bytesToBlob ( value : SerializedBytes < * > , finalizables : MutableList < ( ) -> Unit > ) : Blob
+fun configureDatabase ( props : Properties ) : <ERROR CLASS> < Closeable , <ERROR CLASS> >
+fun createDatabaseTransaction ( db : <ERROR CLASS> ) : <ERROR CLASS>
+fun < T > databaseTransaction ( db : <ERROR CLASS> , statement : <ERROR CLASS> . ( ) -> T ) : T
+fun < T : Any > deserializeFromBlob ( blob : Blob ) : T
+fun <ERROR CLASS> . instant ( name : String ) : <ERROR CLASS>
+fun < T > isolatedTransaction ( database : <ERROR CLASS> , block : <ERROR CLASS> . ( ) -> T ) : T
+java.time.Clock
+
+
+
+Module Contents
+
+
+
+fun Clock . awaitWithDeadline ( deadline : Instant , future : Future < * > = GuavaSettableFuture.create<Any>()) : Boolean
+
+
+
+fun <ERROR CLASS> . localDate ( name : String ) : <ERROR CLASS>
+fun <ERROR CLASS> . localDateTime ( name : String ) : <ERROR CLASS>
+fun <ERROR CLASS> . party ( nameColumnName : String , keyColumnName : String ) : <ERROR CLASS>
+fun <ERROR CLASS> . publicKey ( name : String ) : <ERROR CLASS>
+fun <ERROR CLASS> . secureHash ( name : String ) : <ERROR CLASS>
+fun serializeToBlob ( value : Any , finalizables : MutableList < ( ) -> Unit > ) : Blob
+fun <ERROR CLASS> . stateRef ( txIdColumnName : String , indexColumnName : String ) : <ERROR CLASS>
+fun <ERROR CLASS> . uuidString ( name : String ) : <ERROR CLASS>
+
+
+
+package net.corda.node.utilities.certsigning
+
+package net.corda.protocols
+
+package net.corda.schemas
+
+
+
+
+
+
diff --git a/docs/build/html/api/index.html b/docs/build/html/api/index.html
new file mode 100644
index 0000000000..52bd60dc2a
--- /dev/null
+++ b/docs/build/html/api/index.html
@@ -0,0 +1,286 @@
+
+
+
+
+
+
+
+
+Packages
+
+Index
+All Types
+
diff --git a/docs/build/html/api/net.corda.client.fxutils/-aggregated-list/-init-.html b/docs/build/html/api/net.corda.client.fxutils/-aggregated-list/-init-.html
new file mode 100644
index 0000000000..af6bb628e5
--- /dev/null
+++ b/docs/build/html/api/net.corda.client.fxutils/-aggregated-list/-init-.html
@@ -0,0 +1,44 @@
+
+
+AggregatedList. -
+
+
+
+net.corda.client.fxutils / AggregatedList / <init>
+
+<init>
+AggregatedList ( list : ObservableList < out E > , toKey : ( E ) -> K , assemble : ( K , ObservableList < E > ) -> A )
+Given an ObservableList <E > and a grouping key K , AggregatedList groups the elements by the key into a fresh
+ObservableList <E > for each group and exposes the groups as an observable list of A s by calling assemble on each.
+Changes done to elements of the input list are reflected in the observable list of the respective group, whereas
+additions/removals of elements in the underlying list are reflected in the exposed ObservableList <A > by
+adding/deleting aggregations as expected.
+The ordering of the exposed list is based on the hashCode of keys.
+The ordering of the groups themselves is based on the hashCode of elements.
+Warning: If there are two elements E in the source list that have the same hashCode then it is not deterministic
+which one will be removed if one is removed from the source list
+Example:
+val statesGroupedByCurrency = AggregatedList(states, { state -> state.currency }) { currency, group ->
+object {
+val currency = currency
+val states = group
+}
+}
+The above creates an observable list of (currency, statesOfCurrency) pairs.
+Note that update events to the source list are discarded, assuming the key of elements does not change.
+TODO Should we handle this case? It requires additional bookkeeping of sourceIndex->(aggregationIndex, groupIndex)
+
+
+Parameters
+
+list
- The underlying list.
+
+
+toKey
- Function to extract the key from an element.
+
+
+assemble
- Function to assemble the aggregation into the exposed A .
+
+
+
+
diff --git a/docs/build/html/api/net.corda.client.fxutils/-aggregated-list/assemble.html b/docs/build/html/api/net.corda.client.fxutils/-aggregated-list/assemble.html
new file mode 100644
index 0000000000..42318cf85d
--- /dev/null
+++ b/docs/build/html/api/net.corda.client.fxutils/-aggregated-list/assemble.html
@@ -0,0 +1,15 @@
+
+
+AggregatedList.assemble -
+
+
+
+net.corda.client.fxutils / AggregatedList / assemble
+
+assemble
+
+val assemble : ( K , ObservableList < E > ) -> A
+
+
+
+
diff --git a/docs/build/html/api/net.corda.client.fxutils/-aggregated-list/get-source-index.html b/docs/build/html/api/net.corda.client.fxutils/-aggregated-list/get-source-index.html
new file mode 100644
index 0000000000..5fd0c9127f
--- /dev/null
+++ b/docs/build/html/api/net.corda.client.fxutils/-aggregated-list/get-source-index.html
@@ -0,0 +1,16 @@
+
+
+AggregatedList.getSourceIndex -
+
+
+
+net.corda.client.fxutils / AggregatedList / getSourceIndex
+
+getSourceIndex
+
+fun getSourceIndex ( index : Int ) : Int
+We cannot implement this as aggregations are one to many
+
+
+
+
diff --git a/docs/build/html/api/net.corda.client.fxutils/-aggregated-list/get.html b/docs/build/html/api/net.corda.client.fxutils/-aggregated-list/get.html
new file mode 100644
index 0000000000..2cd233655f
--- /dev/null
+++ b/docs/build/html/api/net.corda.client.fxutils/-aggregated-list/get.html
@@ -0,0 +1,15 @@
+
+
+AggregatedList.get -
+
+
+
+net.corda.client.fxutils / AggregatedList / get
+
+get
+
+fun get ( index : Int ) : A ?
+
+
+
+
diff --git a/docs/build/html/api/net.corda.client.fxutils/-aggregated-list/index.html b/docs/build/html/api/net.corda.client.fxutils/-aggregated-list/index.html
new file mode 100644
index 0000000000..5862c4bcb3
--- /dev/null
+++ b/docs/build/html/api/net.corda.client.fxutils/-aggregated-list/index.html
@@ -0,0 +1,216 @@
+
+
+AggregatedList -
+
+
+
+net.corda.client.fxutils / AggregatedList
+
+AggregatedList
+class AggregatedList < A , E : Any , K : Any > : TransformationList < A , E >
+Given an ObservableList <E > and a grouping key K , AggregatedList groups the elements by the key into a fresh
+ObservableList <E > for each group and exposes the groups as an observable list of A s by calling assemble on each.
+Changes done to elements of the input list are reflected in the observable list of the respective group, whereas
+additions/removals of elements in the underlying list are reflected in the exposed ObservableList <A > by
+adding/deleting aggregations as expected.
+The ordering of the exposed list is based on the hashCode of keys.
+The ordering of the groups themselves is based on the hashCode of elements.
+Warning: If there are two elements E in the source list that have the same hashCode then it is not deterministic
+which one will be removed if one is removed from the source list
+Example:
+val statesGroupedByCurrency = AggregatedList(states, { state -> state.currency }) { currency, group ->
+object {
+val currency = currency
+val states = group
+}
+}
+The above creates an observable list of (currency, statesOfCurrency) pairs.
+Note that update events to the source list are discarded, assuming the key of elements does not change.
+TODO Should we handle this case? It requires additional bookkeeping of sourceIndex->(aggregationIndex, groupIndex)
+
+
+Parameters
+
+list
- The underlying list.
+
+
+toKey
- Function to extract the key from an element.
+
+
+assemble
- Function to assemble the aggregation into the exposed A .
+
+
+Constructors
+
+
+
+
+<init>
+
+AggregatedList ( list : ObservableList < out E > , toKey : ( E ) -> K , assemble : ( K , ObservableList < E > ) -> A )
Given an ObservableList <E > and a grouping key K , AggregatedList groups the elements by the key into a fresh
+ObservableList <E > for each group and exposes the groups as an observable list of A s by calling assemble on each.
+
+
+
+
+Properties
+
+
+
+
+assemble
+
+val assemble : ( K , ObservableList < E > ) -> A
+
+
+
+size
+
+val size : Int
+
+
+
+toKey
+
+val toKey : ( E ) -> K
+
+
+
+Functions
+
+
+
+
+get
+
+fun get ( index : Int ) : A ?
+
+
+
+getSourceIndex
+
+fun getSourceIndex ( index : Int ) : Int
We cannot implement this as aggregations are one to many
+
+
+
+
+sourceChanged
+
+fun sourceChanged ( c : Change < out E > ) : Unit
+
+
+
+Extension Functions
+
+
+
+
+associateBy
+
+fun < K , A , B > ObservableList < out A > . associateBy ( toKey : ( A ) -> K , assemble : ( K , A ) -> B ) : ObservableMap < K , B >
data class Person(val height: Long)
+val people: ObservableList = (..)
+val nameToHeight: ObservableMap<String, Long> = people.associateBy(Person::name) { name, person -> person.height }
+fun < K , A > ObservableList < out A > . associateBy ( toKey : ( A ) -> K ) : ObservableMap < K , A >
val people: ObservableList = (..)
+val nameToPerson: ObservableMap<String, Person> = people.associateBy(Person::name)
+
+
+
+
+associateByAggregation
+
+fun < K : Any , A : Any , B > ObservableList < out A > . associateByAggregation ( toKey : ( A ) -> K , assemble : ( K , A ) -> B ) : ObservableMap < K , ObservableList < B > >
val people: ObservableList = (..)
+val heightToNames: ObservableMap<Long, ObservableList> = people.associateByAggregation(Person::height) { name, person -> person.name }
+fun < K : Any , A : Any > ObservableList < out A > . associateByAggregation ( toKey : ( A ) -> K ) : ObservableMap < K , ObservableList < A > >
val people: ObservableList = (..)
+val heightToPeople: ObservableMap<Long, ObservableList> = people.associateByAggregation(Person::height)
+
+
+
+
+filter
+
+fun < A > ObservableList < out A > . filter ( predicate : ObservableValue < ( A ) -> Boolean > ) : ObservableList < A >
enum class FilterCriterion { HEIGHT, NAME }
+val filterCriterion: ObservableValue = (..)
+val people: ObservableList = (..)
+fun filterFunction(filterCriterion: FilterCriterion): (Person) -> Boolean { .. }
+
+
+
+
+filterNotNull
+
+fun < A > ObservableList < out A ? > . filterNotNull ( ) : ObservableList < A >
data class Dog(val owner: Person?)
+val dogs: ObservableList = (..)
+val owners: ObservableList = dogs.map(Dog::owner).filterNotNull()
+
+
+
+
+first
+
+fun < A > ObservableList < A > . first ( ) : ObservableValue < A ? >
+
+
+
+foldObservable
+
+fun < A , B > ObservableList < out A > . foldObservable ( initial : B , folderFunction : ( B , A ) -> B ) : ObservableValue < B >
val people: ObservableList = (..)
+val concatenatedNames = people.foldObservable("", { names, person -> names + person.name })
+val concatenatedNames2 = people.map(Person::name).fold("", String::plus)
+
+
+
+
+getValueAt
+
+fun < A > ObservableList < A > . getValueAt ( index : Int ) : ObservableValue < A ? >
+
+
+
+indexOfOrThrow
+
+fun < T > List < T > . indexOfOrThrow ( item : T ) : Int
Returns the index of the given item or throws IllegalArgumentException if not found.
+
+
+
+
+last
+
+fun < A > ObservableList < A > . last ( ) : ObservableValue < A ? >
+
+
+
+leftOuterJoin
+
+fun < A : Any , B : Any , C , K : Any > ObservableList < A > . leftOuterJoin ( rightTable : ObservableList < B > , leftToJoinKey : ( A ) -> K , rightToJoinKey : ( B ) -> K , assemble : ( A , ObservableList < B > ) -> C ) : ObservableList < C >
data class Person(val name: String, val managerName: String)
+val people: ObservableList = (..)
+val managerEmployeeMapping: ObservableList<Pair<Person, ObservableList>> =
+people.leftOuterJoin(people, Person::name, Person::managerName) { manager, employees -> Pair(manager, employees) }
+fun < A : Any , B : Any , K : Any > ObservableList < A > . leftOuterJoin ( rightTable : ObservableList < B > , leftToJoinKey : ( A ) -> K , rightToJoinKey : ( B ) -> K ) : ObservableMap < K , <ERROR CLASS> < ObservableList < A > , ObservableList < B > > >
data class Person(name: String, favouriteSpecies: Species)
+data class Animal(name: String, species: Species)
+val people: ObservableList = (..)
+val animals: ObservableList = (..)
+val peopleToFavouriteAnimals: ObservableMap<Species, Pair<ObservableList, ObservableList>> =
+people.leftOuterJoin(animals, Person::favouriteSpecies, Animal::species)
+
+
+
+
+map
+
+fun < A , B > ObservableList < out A > . map ( cached : Boolean = true, function : ( A ) -> B ) : ObservableList < B >
val dogs: ObservableList = (..)
+val dogOwners: ObservableList = dogs.map { it.owner }
+
+
+
+
+noneOrSingle
+
+fun < T > Iterable < T > . noneOrSingle ( predicate : ( T ) -> Boolean ) : T ?
Returns the single element matching the given predicate , or null
if element was not found,
+or throws if more than one element was found.
+fun < T > Iterable < T > . noneOrSingle ( ) : T ?
Returns single element, or null
if element was not found, or throws if more than one element was found.
+
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.client.fxutils/-aggregated-list/size.html b/docs/build/html/api/net.corda.client.fxutils/-aggregated-list/size.html
new file mode 100644
index 0000000000..3f9d611a23
--- /dev/null
+++ b/docs/build/html/api/net.corda.client.fxutils/-aggregated-list/size.html
@@ -0,0 +1,15 @@
+
+
+AggregatedList.size -
+
+
+
+net.corda.client.fxutils / AggregatedList / size
+
+size
+
+val size : Int
+
+
+
+
diff --git a/docs/build/html/api/net.corda.client.fxutils/-aggregated-list/source-changed.html b/docs/build/html/api/net.corda.client.fxutils/-aggregated-list/source-changed.html
new file mode 100644
index 0000000000..9d4bc35896
--- /dev/null
+++ b/docs/build/html/api/net.corda.client.fxutils/-aggregated-list/source-changed.html
@@ -0,0 +1,15 @@
+
+
+AggregatedList.sourceChanged -
+
+
+
+net.corda.client.fxutils / AggregatedList / sourceChanged
+
+sourceChanged
+
+protected fun sourceChanged ( c : Change < out E > ) : Unit
+
+
+
+
diff --git a/docs/build/html/api/net.corda.client.fxutils/-aggregated-list/to-key.html b/docs/build/html/api/net.corda.client.fxutils/-aggregated-list/to-key.html
new file mode 100644
index 0000000000..c1ce496ac5
--- /dev/null
+++ b/docs/build/html/api/net.corda.client.fxutils/-aggregated-list/to-key.html
@@ -0,0 +1,15 @@
+
+
+AggregatedList.toKey -
+
+
+
+net.corda.client.fxutils / AggregatedList / toKey
+
+toKey
+
+val toKey : ( E ) -> K
+
+
+
+
diff --git a/docs/build/html/api/net.corda.client.fxutils/-amount-bindings/exchange.html b/docs/build/html/api/net.corda.client.fxutils/-amount-bindings/exchange.html
new file mode 100644
index 0000000000..76b5526509
--- /dev/null
+++ b/docs/build/html/api/net.corda.client.fxutils/-amount-bindings/exchange.html
@@ -0,0 +1,15 @@
+
+
+AmountBindings.exchange -
+
+
+
+net.corda.client.fxutils / AmountBindings / exchange
+
+exchange
+
+fun exchange ( currency : ObservableValue < Currency > , exchangeRate : ObservableValue < ExchangeRate > ) : ObservableValue < <ERROR CLASS> < Currency , ( Amount < Currency > ) -> Long > >
+
+
+
+
diff --git a/docs/build/html/api/net.corda.client.fxutils/-amount-bindings/index.html b/docs/build/html/api/net.corda.client.fxutils/-amount-bindings/index.html
new file mode 100644
index 0000000000..f403835d54
--- /dev/null
+++ b/docs/build/html/api/net.corda.client.fxutils/-amount-bindings/index.html
@@ -0,0 +1,38 @@
+
+
+AmountBindings -
+
+
+
+net.corda.client.fxutils / AmountBindings
+
+AmountBindings
+object AmountBindings
+Utility bindings for the Amount type, similar in spirit to Bindings
+
+
+Functions
+
+
+
diff --git a/docs/build/html/api/net.corda.client.fxutils/-amount-bindings/sum-amount-exchange.html b/docs/build/html/api/net.corda.client.fxutils/-amount-bindings/sum-amount-exchange.html
new file mode 100644
index 0000000000..0d2d9944a1
--- /dev/null
+++ b/docs/build/html/api/net.corda.client.fxutils/-amount-bindings/sum-amount-exchange.html
@@ -0,0 +1,15 @@
+
+
+AmountBindings.sumAmountExchange -
+
+
+
+net.corda.client.fxutils / AmountBindings / sumAmountExchange
+
+sumAmountExchange
+
+fun sumAmountExchange ( amounts : ObservableList < Amount < Currency > > , currency : ObservableValue < Currency > , exchangeRate : ObservableValue < ExchangeRate > ) : ObservableValue < Amount < Currency > >
+
+
+
+
diff --git a/docs/build/html/api/net.corda.client.fxutils/-amount-bindings/sum.html b/docs/build/html/api/net.corda.client.fxutils/-amount-bindings/sum.html
new file mode 100644
index 0000000000..8d776abf96
--- /dev/null
+++ b/docs/build/html/api/net.corda.client.fxutils/-amount-bindings/sum.html
@@ -0,0 +1,15 @@
+
+
+AmountBindings.sum -
+
+
+
+net.corda.client.fxutils / AmountBindings / sum
+
+sum
+
+fun < T > sum ( amounts : ObservableList < Amount < T > > , token : T ) : <ERROR CLASS>
+
+
+
+
diff --git a/docs/build/html/api/net.corda.client.fxutils/-associated-list/-init-.html b/docs/build/html/api/net.corda.client.fxutils/-associated-list/-init-.html
new file mode 100644
index 0000000000..fbb92cc9e8
--- /dev/null
+++ b/docs/build/html/api/net.corda.client.fxutils/-associated-list/-init-.html
@@ -0,0 +1,25 @@
+
+
+AssociatedList. -
+
+
+
+net.corda.client.fxutils / AssociatedList / <init>
+
+<init>
+AssociatedList ( sourceList : ObservableList < out A > , toKey : ( A ) -> K , assemble : ( K , A ) -> B )
+AssociatedList creates an ObservableMap from an ObservableList by associating each list element with a unique key.
+It is not allowed to have several elements map to the same value
+Parameters
+
+sourceList
- The source list.
+
+
+toKey
- Function returning the key.
+
+
+assemble
- The function to assemble the final map element from the list element and the associated key.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.client.fxutils/-associated-list/index.html b/docs/build/html/api/net.corda.client.fxutils/-associated-list/index.html
new file mode 100644
index 0000000000..d6cfba4133
--- /dev/null
+++ b/docs/build/html/api/net.corda.client.fxutils/-associated-list/index.html
@@ -0,0 +1,148 @@
+
+
+AssociatedList -
+
+
+
+net.corda.client.fxutils / AssociatedList
+
+AssociatedList
+class AssociatedList < K , out A , B > : ReadOnlyBackedObservableMapBase < K , B , Unit >
+AssociatedList creates an ObservableMap from an ObservableList by associating each list element with a unique key.
+It is not allowed to have several elements map to the same value
+Parameters
+
+sourceList
- The source list.
+
+
+toKey
- Function returning the key.
+
+
+assemble
- The function to assemble the final map element from the list element and the associated key.
+
+
+Constructors
+
+
+
+
+<init>
+
+AssociatedList ( sourceList : ObservableList < out A > , toKey : ( A ) -> K , assemble : ( K , A ) -> B )
AssociatedList creates an ObservableMap from an ObservableList by associating each list element with a unique key.
+It is not allowed to have several elements map to the same value
+
+
+
+
+Properties
+
+
+
+
+sourceList
+
+val sourceList : ObservableList < out A >
+
+
+
+Inherited Properties
+
+
+
+
+backingMap
+
+val backingMap : HashMap < K , <ERROR CLASS> < A , B > >
+
+
+
+entries
+
+open val entries : MutableSet < MutableEntry < K , A > >
+
+
+
+keys
+
+open val keys : MutableSet < K >
+
+
+
+size
+
+open val size : Int
+
+
+
+values
+
+open val values : MutableCollection < A >
+
+
+
+Inherited Functions
+
+
+
+
+addListener
+
+open fun addListener ( listener : InvalidationListener ) : Unit
+
+
+
+clear
+
+open fun clear ( ) : Unit
+
+
+
+isEmpty
+
+open fun isEmpty ( ) : Boolean
+
+
+
+removeListener
+
+open fun removeListener ( listener : InvalidationListener ? ) : Unit
+
+
+
+Extension Functions
+
+
+
+
+createMapChange
+
+fun < A , K > ObservableMap < K , A > . createMapChange ( key : K , removedValue : A ? , addedValue : A ? ) : Change < K , A >
+
+
+
+getObservableEntries
+
+fun < K , V > ObservableMap < K , V > . getObservableEntries ( ) : ObservableList < Entry < K , V > >
val nameToPerson: ObservableMap<String, Person> = (..)
+val people: ObservableList = nameToPerson.getObservableValues()
+
+
+
+
+getObservableValue
+
+fun < K , V > ObservableMap < K , V > . getObservableValue ( key : K ) : ObservableValue < V ? >
val nameToPerson: ObservableMap<String, Person> = (..)
+val john: ObservableValue<Person?> = nameToPerson.getObservableValue("John")
+
+
+
+
+getObservableValues
+
+fun < K , V > ObservableMap < K , V > . getObservableValues ( ) : ObservableList < V >
val nameToPerson: ObservableMap<String, Person> = (..)
+val people: ObservableList = nameToPerson.getObservableValues()
+
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.client.fxutils/-associated-list/source-list.html b/docs/build/html/api/net.corda.client.fxutils/-associated-list/source-list.html
new file mode 100644
index 0000000000..1f9f81d953
--- /dev/null
+++ b/docs/build/html/api/net.corda.client.fxutils/-associated-list/source-list.html
@@ -0,0 +1,15 @@
+
+
+AssociatedList.sourceList -
+
+
+
+net.corda.client.fxutils / AssociatedList / sourceList
+
+sourceList
+
+val sourceList : ObservableList < out A >
+
+
+
+
diff --git a/docs/build/html/api/net.corda.client.fxutils/-chosen-list/-init-.html b/docs/build/html/api/net.corda.client.fxutils/-chosen-list/-init-.html
new file mode 100644
index 0000000000..5a81ebad57
--- /dev/null
+++ b/docs/build/html/api/net.corda.client.fxutils/-chosen-list/-init-.html
@@ -0,0 +1,26 @@
+
+
+ChosenList. -
+
+
+
+net.corda.client.fxutils / ChosenList / <init>
+
+<init>
+ChosenList ( chosenListObservable : ObservableValue < out ObservableList < out E > > )
+ChosenList manages an ObservableList that may be changed by the wrapping ObservableValue . Whenever the underlying
+ObservableValue changes the exposed list changes to the new value. Changes to the list are simply propagated.
+Example:
+val filteredStates = ChosenList(EasyBind.map(filterCriteriaType) { type ->
+when (type) {
+is (ByCurrency) -> statesFilteredByCurrency
+is (ByIssuer) -> statesFilteredByIssuer
+}
+})
+The above will create a list that chooses and delegates to the appropriate filtered list based on the type of filter.
+
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.client.fxutils/-chosen-list/get.html b/docs/build/html/api/net.corda.client.fxutils/-chosen-list/get.html
new file mode 100644
index 0000000000..3bfbffb718
--- /dev/null
+++ b/docs/build/html/api/net.corda.client.fxutils/-chosen-list/get.html
@@ -0,0 +1,15 @@
+
+
+ChosenList.get -
+
+
+
+net.corda.client.fxutils / ChosenList / get
+
+get
+
+fun get ( index : Int ) : E
+
+
+
+
diff --git a/docs/build/html/api/net.corda.client.fxutils/-chosen-list/index.html b/docs/build/html/api/net.corda.client.fxutils/-chosen-list/index.html
new file mode 100644
index 0000000000..d5af9e2bcc
--- /dev/null
+++ b/docs/build/html/api/net.corda.client.fxutils/-chosen-list/index.html
@@ -0,0 +1,173 @@
+
+
+ChosenList -
+
+
+
+net.corda.client.fxutils / ChosenList
+
+ChosenList
+class ChosenList < E > : ObservableListBase < E >
+ChosenList manages an ObservableList that may be changed by the wrapping ObservableValue . Whenever the underlying
+ObservableValue changes the exposed list changes to the new value. Changes to the list are simply propagated.
+Example:
+val filteredStates = ChosenList(EasyBind.map(filterCriteriaType) { type ->
+when (type) {
+is (ByCurrency) -> statesFilteredByCurrency
+is (ByIssuer) -> statesFilteredByIssuer
+}
+})
+The above will create a list that chooses and delegates to the appropriate filtered list based on the type of filter.
+
+
+
+
+Constructors
+
+
+
+
+<init>
+
+ChosenList ( chosenListObservable : ObservableValue < out ObservableList < out E > > )
ChosenList manages an ObservableList that may be changed by the wrapping ObservableValue . Whenever the underlying
+ObservableValue changes the exposed list changes to the new value. Changes to the list are simply propagated.
+
+
+
+
+Properties
+
+
+
+
+size
+
+val size : Int
+
+
+
+Functions
+
+
+
+
+get
+
+fun get ( index : Int ) : E
+
+
+
+Extension Functions
+
+
+
+
+associateBy
+
+fun < K , A , B > ObservableList < out A > . associateBy ( toKey : ( A ) -> K , assemble : ( K , A ) -> B ) : ObservableMap < K , B >
data class Person(val height: Long)
+val people: ObservableList = (..)
+val nameToHeight: ObservableMap<String, Long> = people.associateBy(Person::name) { name, person -> person.height }
+fun < K , A > ObservableList < out A > . associateBy ( toKey : ( A ) -> K ) : ObservableMap < K , A >
val people: ObservableList = (..)
+val nameToPerson: ObservableMap<String, Person> = people.associateBy(Person::name)
+
+
+
+
+associateByAggregation
+
+fun < K : Any , A : Any , B > ObservableList < out A > . associateByAggregation ( toKey : ( A ) -> K , assemble : ( K , A ) -> B ) : ObservableMap < K , ObservableList < B > >
val people: ObservableList = (..)
+val heightToNames: ObservableMap<Long, ObservableList> = people.associateByAggregation(Person::height) { name, person -> person.name }
+fun < K : Any , A : Any > ObservableList < out A > . associateByAggregation ( toKey : ( A ) -> K ) : ObservableMap < K , ObservableList < A > >
val people: ObservableList = (..)
+val heightToPeople: ObservableMap<Long, ObservableList> = people.associateByAggregation(Person::height)
+
+
+
+
+filter
+
+fun < A > ObservableList < out A > . filter ( predicate : ObservableValue < ( A ) -> Boolean > ) : ObservableList < A >
enum class FilterCriterion { HEIGHT, NAME }
+val filterCriterion: ObservableValue = (..)
+val people: ObservableList = (..)
+fun filterFunction(filterCriterion: FilterCriterion): (Person) -> Boolean { .. }
+
+
+
+
+filterNotNull
+
+fun < A > ObservableList < out A ? > . filterNotNull ( ) : ObservableList < A >
data class Dog(val owner: Person?)
+val dogs: ObservableList = (..)
+val owners: ObservableList = dogs.map(Dog::owner).filterNotNull()
+
+
+
+
+first
+
+fun < A > ObservableList < A > . first ( ) : ObservableValue < A ? >
+
+
+
+foldObservable
+
+fun < A , B > ObservableList < out A > . foldObservable ( initial : B , folderFunction : ( B , A ) -> B ) : ObservableValue < B >
val people: ObservableList = (..)
+val concatenatedNames = people.foldObservable("", { names, person -> names + person.name })
+val concatenatedNames2 = people.map(Person::name).fold("", String::plus)
+
+
+
+
+getValueAt
+
+fun < A > ObservableList < A > . getValueAt ( index : Int ) : ObservableValue < A ? >
+
+
+
+indexOfOrThrow
+
+fun < T > List < T > . indexOfOrThrow ( item : T ) : Int
Returns the index of the given item or throws IllegalArgumentException if not found.
+
+
+
+
+last
+
+fun < A > ObservableList < A > . last ( ) : ObservableValue < A ? >
+
+
+
+leftOuterJoin
+
+fun < A : Any , B : Any , C , K : Any > ObservableList < A > . leftOuterJoin ( rightTable : ObservableList < B > , leftToJoinKey : ( A ) -> K , rightToJoinKey : ( B ) -> K , assemble : ( A , ObservableList < B > ) -> C ) : ObservableList < C >
data class Person(val name: String, val managerName: String)
+val people: ObservableList = (..)
+val managerEmployeeMapping: ObservableList<Pair<Person, ObservableList>> =
+people.leftOuterJoin(people, Person::name, Person::managerName) { manager, employees -> Pair(manager, employees) }
+fun < A : Any , B : Any , K : Any > ObservableList < A > . leftOuterJoin ( rightTable : ObservableList < B > , leftToJoinKey : ( A ) -> K , rightToJoinKey : ( B ) -> K ) : ObservableMap < K , <ERROR CLASS> < ObservableList < A > , ObservableList < B > > >
data class Person(name: String, favouriteSpecies: Species)
+data class Animal(name: String, species: Species)
+val people: ObservableList = (..)
+val animals: ObservableList = (..)
+val peopleToFavouriteAnimals: ObservableMap<Species, Pair<ObservableList, ObservableList>> =
+people.leftOuterJoin(animals, Person::favouriteSpecies, Animal::species)
+
+
+
+
+map
+
+fun < A , B > ObservableList < out A > . map ( cached : Boolean = true, function : ( A ) -> B ) : ObservableList < B >
val dogs: ObservableList = (..)
+val dogOwners: ObservableList = dogs.map { it.owner }
+
+
+
+
+noneOrSingle
+
+fun < T > Iterable < T > . noneOrSingle ( predicate : ( T ) -> Boolean ) : T ?
Returns the single element matching the given predicate , or null
if element was not found,
+or throws if more than one element was found.
+fun < T > Iterable < T > . noneOrSingle ( ) : T ?
Returns single element, or null
if element was not found, or throws if more than one element was found.
+
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.client.fxutils/-chosen-list/size.html b/docs/build/html/api/net.corda.client.fxutils/-chosen-list/size.html
new file mode 100644
index 0000000000..76a76b489b
--- /dev/null
+++ b/docs/build/html/api/net.corda.client.fxutils/-chosen-list/size.html
@@ -0,0 +1,15 @@
+
+
+ChosenList.size -
+
+
+
+net.corda.client.fxutils / ChosenList / size
+
+size
+
+val size : Int
+
+
+
+
diff --git a/docs/build/html/api/net.corda.client.fxutils/-concatenated-list/-init-.html b/docs/build/html/api/net.corda.client.fxutils/-concatenated-list/-init-.html
new file mode 100644
index 0000000000..04f7e1b96c
--- /dev/null
+++ b/docs/build/html/api/net.corda.client.fxutils/-concatenated-list/-init-.html
@@ -0,0 +1,16 @@
+
+
+ConcatenatedList. -
+
+
+
+net.corda.client.fxutils / ConcatenatedList / <init>
+
+<init>
+ConcatenatedList ( sourceList : ObservableList < ObservableList < A > > )
+ConcatenatedList takes a list of lists and concatenates them. Any change to the underlying lists or the outer list
+is propagated as expected.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.client.fxutils/-concatenated-list/get-source-index.html b/docs/build/html/api/net.corda.client.fxutils/-concatenated-list/get-source-index.html
new file mode 100644
index 0000000000..e8335d8399
--- /dev/null
+++ b/docs/build/html/api/net.corda.client.fxutils/-concatenated-list/get-source-index.html
@@ -0,0 +1,15 @@
+
+
+ConcatenatedList.getSourceIndex -
+
+
+
+net.corda.client.fxutils / ConcatenatedList / getSourceIndex
+
+getSourceIndex
+
+fun getSourceIndex ( index : Int ) : Int
+
+
+
+
diff --git a/docs/build/html/api/net.corda.client.fxutils/-concatenated-list/get.html b/docs/build/html/api/net.corda.client.fxutils/-concatenated-list/get.html
new file mode 100644
index 0000000000..cc93dc5589
--- /dev/null
+++ b/docs/build/html/api/net.corda.client.fxutils/-concatenated-list/get.html
@@ -0,0 +1,15 @@
+
+
+ConcatenatedList.get -
+
+
+
+net.corda.client.fxutils / ConcatenatedList / get
+
+get
+
+fun get ( index : Int ) : A
+
+
+
+
diff --git a/docs/build/html/api/net.corda.client.fxutils/-concatenated-list/index.html b/docs/build/html/api/net.corda.client.fxutils/-concatenated-list/index.html
new file mode 100644
index 0000000000..c64fc6c8e0
--- /dev/null
+++ b/docs/build/html/api/net.corda.client.fxutils/-concatenated-list/index.html
@@ -0,0 +1,175 @@
+
+
+ConcatenatedList -
+
+
+
+net.corda.client.fxutils / ConcatenatedList
+
+ConcatenatedList
+class ConcatenatedList < A > : TransformationList < A , ObservableList < A > >
+ConcatenatedList takes a list of lists and concatenates them. Any change to the underlying lists or the outer list
+is propagated as expected.
+
+
+Constructors
+
+
+
+
+<init>
+
+ConcatenatedList ( sourceList : ObservableList < ObservableList < A > > )
ConcatenatedList takes a list of lists and concatenates them. Any change to the underlying lists or the outer list
+is propagated as expected.
+
+
+
+
+Properties
+
+
+
+
+size
+
+val size : Int
+
+
+
+Functions
+
+
+
+
+get
+
+fun get ( index : Int ) : A
+
+
+
+getSourceIndex
+
+fun getSourceIndex ( index : Int ) : Int
+
+
+
+sourceChanged
+
+fun sourceChanged ( change : Change < out ObservableList < A > > ) : Unit
+
+
+
+Extension Functions
+
+
+
+
+associateBy
+
+fun < K , A , B > ObservableList < out A > . associateBy ( toKey : ( A ) -> K , assemble : ( K , A ) -> B ) : ObservableMap < K , B >
data class Person(val height: Long)
+val people: ObservableList = (..)
+val nameToHeight: ObservableMap<String, Long> = people.associateBy(Person::name) { name, person -> person.height }
+fun < K , A > ObservableList < out A > . associateBy ( toKey : ( A ) -> K ) : ObservableMap < K , A >
val people: ObservableList = (..)
+val nameToPerson: ObservableMap<String, Person> = people.associateBy(Person::name)
+
+
+
+
+associateByAggregation
+
+fun < K : Any , A : Any , B > ObservableList < out A > . associateByAggregation ( toKey : ( A ) -> K , assemble : ( K , A ) -> B ) : ObservableMap < K , ObservableList < B > >
val people: ObservableList = (..)
+val heightToNames: ObservableMap<Long, ObservableList> = people.associateByAggregation(Person::height) { name, person -> person.name }
+fun < K : Any , A : Any > ObservableList < out A > . associateByAggregation ( toKey : ( A ) -> K ) : ObservableMap < K , ObservableList < A > >
val people: ObservableList = (..)
+val heightToPeople: ObservableMap<Long, ObservableList> = people.associateByAggregation(Person::height)
+
+
+
+
+filter
+
+fun < A > ObservableList < out A > . filter ( predicate : ObservableValue < ( A ) -> Boolean > ) : ObservableList < A >
enum class FilterCriterion { HEIGHT, NAME }
+val filterCriterion: ObservableValue = (..)
+val people: ObservableList = (..)
+fun filterFunction(filterCriterion: FilterCriterion): (Person) -> Boolean { .. }
+
+
+
+
+filterNotNull
+
+fun < A > ObservableList < out A ? > . filterNotNull ( ) : ObservableList < A >
data class Dog(val owner: Person?)
+val dogs: ObservableList = (..)
+val owners: ObservableList = dogs.map(Dog::owner).filterNotNull()
+
+
+
+
+first
+
+fun < A > ObservableList < A > . first ( ) : ObservableValue < A ? >
+
+
+
+foldObservable
+
+fun < A , B > ObservableList < out A > . foldObservable ( initial : B , folderFunction : ( B , A ) -> B ) : ObservableValue < B >
val people: ObservableList = (..)
+val concatenatedNames = people.foldObservable("", { names, person -> names + person.name })
+val concatenatedNames2 = people.map(Person::name).fold("", String::plus)
+
+
+
+
+getValueAt
+
+fun < A > ObservableList < A > . getValueAt ( index : Int ) : ObservableValue < A ? >
+
+
+
+indexOfOrThrow
+
+fun < T > List < T > . indexOfOrThrow ( item : T ) : Int
Returns the index of the given item or throws IllegalArgumentException if not found.
+
+
+
+
+last
+
+fun < A > ObservableList < A > . last ( ) : ObservableValue < A ? >
+
+
+
+leftOuterJoin
+
+fun < A : Any , B : Any , C , K : Any > ObservableList < A > . leftOuterJoin ( rightTable : ObservableList < B > , leftToJoinKey : ( A ) -> K , rightToJoinKey : ( B ) -> K , assemble : ( A , ObservableList < B > ) -> C ) : ObservableList < C >
data class Person(val name: String, val managerName: String)
+val people: ObservableList = (..)
+val managerEmployeeMapping: ObservableList<Pair<Person, ObservableList>> =
+people.leftOuterJoin(people, Person::name, Person::managerName) { manager, employees -> Pair(manager, employees) }
+fun < A : Any , B : Any , K : Any > ObservableList < A > . leftOuterJoin ( rightTable : ObservableList < B > , leftToJoinKey : ( A ) -> K , rightToJoinKey : ( B ) -> K ) : ObservableMap < K , <ERROR CLASS> < ObservableList < A > , ObservableList < B > > >
data class Person(name: String, favouriteSpecies: Species)
+data class Animal(name: String, species: Species)
+val people: ObservableList = (..)
+val animals: ObservableList = (..)
+val peopleToFavouriteAnimals: ObservableMap<Species, Pair<ObservableList, ObservableList>> =
+people.leftOuterJoin(animals, Person::favouriteSpecies, Animal::species)
+
+
+
+
+map
+
+fun < A , B > ObservableList < out A > . map ( cached : Boolean = true, function : ( A ) -> B ) : ObservableList < B >
val dogs: ObservableList = (..)
+val dogOwners: ObservableList = dogs.map { it.owner }
+
+
+
+
+noneOrSingle
+
+fun < T > Iterable < T > . noneOrSingle ( predicate : ( T ) -> Boolean ) : T ?
Returns the single element matching the given predicate , or null
if element was not found,
+or throws if more than one element was found.
+fun < T > Iterable < T > . noneOrSingle ( ) : T ?
Returns single element, or null
if element was not found, or throws if more than one element was found.
+
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.client.fxutils/-concatenated-list/size.html b/docs/build/html/api/net.corda.client.fxutils/-concatenated-list/size.html
new file mode 100644
index 0000000000..9b8bfbfaf0
--- /dev/null
+++ b/docs/build/html/api/net.corda.client.fxutils/-concatenated-list/size.html
@@ -0,0 +1,15 @@
+
+
+ConcatenatedList.size -
+
+
+
+net.corda.client.fxutils / ConcatenatedList / size
+
+size
+
+val size : Int
+
+
+
+
diff --git a/docs/build/html/api/net.corda.client.fxutils/-concatenated-list/source-changed.html b/docs/build/html/api/net.corda.client.fxutils/-concatenated-list/source-changed.html
new file mode 100644
index 0000000000..ab853928c0
--- /dev/null
+++ b/docs/build/html/api/net.corda.client.fxutils/-concatenated-list/source-changed.html
@@ -0,0 +1,15 @@
+
+
+ConcatenatedList.sourceChanged -
+
+
+
+net.corda.client.fxutils / ConcatenatedList / sourceChanged
+
+sourceChanged
+
+protected fun sourceChanged ( change : Change < out ObservableList < A > > ) : Unit
+
+
+
+
diff --git a/docs/build/html/api/net.corda.client.fxutils/-flattened-list/-init-.html b/docs/build/html/api/net.corda.client.fxutils/-flattened-list/-init-.html
new file mode 100644
index 0000000000..e0658c29c2
--- /dev/null
+++ b/docs/build/html/api/net.corda.client.fxutils/-flattened-list/-init-.html
@@ -0,0 +1,16 @@
+
+
+FlattenedList. -
+
+
+
+net.corda.client.fxutils / FlattenedList / <init>
+
+<init>
+FlattenedList ( sourceList : ObservableList < out ObservableValue < out A > > )
+FlattenedList flattens the passed in list of ObservableValue s so that changes in individual updates to the values
+are reflected in the exposed list as expected.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.client.fxutils/-flattened-list/-wrapped-observable-value/-init-.html b/docs/build/html/api/net.corda.client.fxutils/-flattened-list/-wrapped-observable-value/-init-.html
new file mode 100644
index 0000000000..b8defaa8b1
--- /dev/null
+++ b/docs/build/html/api/net.corda.client.fxutils/-flattened-list/-wrapped-observable-value/-init-.html
@@ -0,0 +1,23 @@
+
+
+FlattenedList.WrappedObservableValue. -
+
+
+
+net.corda.client.fxutils / FlattenedList / WrappedObservableValue / <init>
+
+<init>
+WrappedObservableValue ( observableValue : ObservableValue < A > )
+We maintain an ObservableValue->index map. This is needed because we need the ObservableValues index in order to
+propagate a change and if the listener closure captures the index at the time of the call to
+ObservableValue.addListener it will become incorrect if the indices shift around later.
+Note that because of the bookkeeping required for this map, any remove operation and any add operation that
+inserts to the middle of the list will be O(N) as we need to scan the map and shift indices accordingly.
+Note also that were wrapping each ObservableValue, this is required because we want to support reusing of
+ObservableValues and we need each to have a different hash.
+
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.client.fxutils/-flattened-list/-wrapped-observable-value/index.html b/docs/build/html/api/net.corda.client.fxutils/-flattened-list/-wrapped-observable-value/index.html
new file mode 100644
index 0000000000..f91d285f3e
--- /dev/null
+++ b/docs/build/html/api/net.corda.client.fxutils/-flattened-list/-wrapped-observable-value/index.html
@@ -0,0 +1,48 @@
+
+
+FlattenedList.WrappedObservableValue -
+
+
+
+net.corda.client.fxutils / FlattenedList / WrappedObservableValue
+
+WrappedObservableValue
+class WrappedObservableValue < A >
+We maintain an ObservableValue->index map. This is needed because we need the ObservableValues index in order to
+propagate a change and if the listener closure captures the index at the time of the call to
+ObservableValue.addListener it will become incorrect if the indices shift around later.
+Note that because of the bookkeeping required for this map, any remove operation and any add operation that
+inserts to the middle of the list will be O(N) as we need to scan the map and shift indices accordingly.
+Note also that were wrapping each ObservableValue, this is required because we want to support reusing of
+ObservableValues and we need each to have a different hash.
+
+
+
+
+Constructors
+
+
+
+
+<init>
+
+WrappedObservableValue ( observableValue : ObservableValue < A > )
We maintain an ObservableValue->index map. This is needed because we need the ObservableValues index in order to
+propagate a change and if the listener closure captures the index at the time of the call to
+ObservableValue.addListener it will become incorrect if the indices shift around later.
+
+
+
+
+Properties
+
+
+
diff --git a/docs/build/html/api/net.corda.client.fxutils/-flattened-list/-wrapped-observable-value/observable-value.html b/docs/build/html/api/net.corda.client.fxutils/-flattened-list/-wrapped-observable-value/observable-value.html
new file mode 100644
index 0000000000..ee12f7eefa
--- /dev/null
+++ b/docs/build/html/api/net.corda.client.fxutils/-flattened-list/-wrapped-observable-value/observable-value.html
@@ -0,0 +1,15 @@
+
+
+FlattenedList.WrappedObservableValue.observableValue -
+
+
+
+net.corda.client.fxutils / FlattenedList / WrappedObservableValue / observableValue
+
+observableValue
+
+val observableValue : ObservableValue < A >
+
+
+
+
diff --git a/docs/build/html/api/net.corda.client.fxutils/-flattened-list/get-source-index.html b/docs/build/html/api/net.corda.client.fxutils/-flattened-list/get-source-index.html
new file mode 100644
index 0000000000..fa6aa77e5d
--- /dev/null
+++ b/docs/build/html/api/net.corda.client.fxutils/-flattened-list/get-source-index.html
@@ -0,0 +1,15 @@
+
+
+FlattenedList.getSourceIndex -
+
+
+
+net.corda.client.fxutils / FlattenedList / getSourceIndex
+
+getSourceIndex
+
+fun getSourceIndex ( index : Int ) : Int
+
+
+
+
diff --git a/docs/build/html/api/net.corda.client.fxutils/-flattened-list/get.html b/docs/build/html/api/net.corda.client.fxutils/-flattened-list/get.html
new file mode 100644
index 0000000000..553ddd33ed
--- /dev/null
+++ b/docs/build/html/api/net.corda.client.fxutils/-flattened-list/get.html
@@ -0,0 +1,15 @@
+
+
+FlattenedList.get -
+
+
+
+net.corda.client.fxutils / FlattenedList / get
+
+get
+
+fun get ( index : Int ) : A
+
+
+
+
diff --git a/docs/build/html/api/net.corda.client.fxutils/-flattened-list/index-map.html b/docs/build/html/api/net.corda.client.fxutils/-flattened-list/index-map.html
new file mode 100644
index 0000000000..886a04fc3f
--- /dev/null
+++ b/docs/build/html/api/net.corda.client.fxutils/-flattened-list/index-map.html
@@ -0,0 +1,15 @@
+
+
+FlattenedList.indexMap -
+
+
+
+net.corda.client.fxutils / FlattenedList / indexMap
+
+indexMap
+
+val indexMap : HashMap < WrappedObservableValue < out A > , <ERROR CLASS> < Int , ChangeListener < A > > >
+
+
+
+
diff --git a/docs/build/html/api/net.corda.client.fxutils/-flattened-list/index.html b/docs/build/html/api/net.corda.client.fxutils/-flattened-list/index.html
new file mode 100644
index 0000000000..233f1fc2a4
--- /dev/null
+++ b/docs/build/html/api/net.corda.client.fxutils/-flattened-list/index.html
@@ -0,0 +1,201 @@
+
+
+FlattenedList -
+
+
+
+net.corda.client.fxutils / FlattenedList
+
+FlattenedList
+class FlattenedList < A > : TransformationList < A , ObservableValue < out A > >
+FlattenedList flattens the passed in list of ObservableValue s so that changes in individual updates to the values
+are reflected in the exposed list as expected.
+
+
+Types
+
+
+
+
+WrappedObservableValue
+
+class WrappedObservableValue < A >
We maintain an ObservableValue->index map. This is needed because we need the ObservableValues index in order to
+propagate a change and if the listener closure captures the index at the time of the call to
+ObservableValue.addListener it will become incorrect if the indices shift around later.
+
+
+
+
+Constructors
+
+
+
+
+<init>
+
+FlattenedList ( sourceList : ObservableList < out ObservableValue < out A > > )
FlattenedList flattens the passed in list of ObservableValue s so that changes in individual updates to the values
+are reflected in the exposed list as expected.
+
+
+
+
+Properties
+
+Functions
+
+
+
+
+get
+
+fun get ( index : Int ) : A
+
+
+
+getSourceIndex
+
+fun getSourceIndex ( index : Int ) : Int
+
+
+
+sourceChanged
+
+fun sourceChanged ( c : Change < out ObservableValue < out A > > ) : Unit
+
+
+
+Extension Functions
+
+
+
+
+associateBy
+
+fun < K , A , B > ObservableList < out A > . associateBy ( toKey : ( A ) -> K , assemble : ( K , A ) -> B ) : ObservableMap < K , B >
data class Person(val height: Long)
+val people: ObservableList = (..)
+val nameToHeight: ObservableMap<String, Long> = people.associateBy(Person::name) { name, person -> person.height }
+fun < K , A > ObservableList < out A > . associateBy ( toKey : ( A ) -> K ) : ObservableMap < K , A >
val people: ObservableList = (..)
+val nameToPerson: ObservableMap<String, Person> = people.associateBy(Person::name)
+
+
+
+
+associateByAggregation
+
+fun < K : Any , A : Any , B > ObservableList < out A > . associateByAggregation ( toKey : ( A ) -> K , assemble : ( K , A ) -> B ) : ObservableMap < K , ObservableList < B > >
val people: ObservableList = (..)
+val heightToNames: ObservableMap<Long, ObservableList> = people.associateByAggregation(Person::height) { name, person -> person.name }
+fun < K : Any , A : Any > ObservableList < out A > . associateByAggregation ( toKey : ( A ) -> K ) : ObservableMap < K , ObservableList < A > >
val people: ObservableList = (..)
+val heightToPeople: ObservableMap<Long, ObservableList> = people.associateByAggregation(Person::height)
+
+
+
+
+filter
+
+fun < A > ObservableList < out A > . filter ( predicate : ObservableValue < ( A ) -> Boolean > ) : ObservableList < A >
enum class FilterCriterion { HEIGHT, NAME }
+val filterCriterion: ObservableValue = (..)
+val people: ObservableList = (..)
+fun filterFunction(filterCriterion: FilterCriterion): (Person) -> Boolean { .. }
+
+
+
+
+filterNotNull
+
+fun < A > ObservableList < out A ? > . filterNotNull ( ) : ObservableList < A >
data class Dog(val owner: Person?)
+val dogs: ObservableList = (..)
+val owners: ObservableList = dogs.map(Dog::owner).filterNotNull()
+
+
+
+
+first
+
+fun < A > ObservableList < A > . first ( ) : ObservableValue < A ? >
+
+
+
+foldObservable
+
+fun < A , B > ObservableList < out A > . foldObservable ( initial : B , folderFunction : ( B , A ) -> B ) : ObservableValue < B >
val people: ObservableList = (..)
+val concatenatedNames = people.foldObservable("", { names, person -> names + person.name })
+val concatenatedNames2 = people.map(Person::name).fold("", String::plus)
+
+
+
+
+getValueAt
+
+fun < A > ObservableList < A > . getValueAt ( index : Int ) : ObservableValue < A ? >
+
+
+
+indexOfOrThrow
+
+fun < T > List < T > . indexOfOrThrow ( item : T ) : Int
Returns the index of the given item or throws IllegalArgumentException if not found.
+
+
+
+
+last
+
+fun < A > ObservableList < A > . last ( ) : ObservableValue < A ? >
+
+
+
+leftOuterJoin
+
+fun < A : Any , B : Any , C , K : Any > ObservableList < A > . leftOuterJoin ( rightTable : ObservableList < B > , leftToJoinKey : ( A ) -> K , rightToJoinKey : ( B ) -> K , assemble : ( A , ObservableList < B > ) -> C ) : ObservableList < C >
data class Person(val name: String, val managerName: String)
+val people: ObservableList = (..)
+val managerEmployeeMapping: ObservableList<Pair<Person, ObservableList>> =
+people.leftOuterJoin(people, Person::name, Person::managerName) { manager, employees -> Pair(manager, employees) }
+fun < A : Any , B : Any , K : Any > ObservableList < A > . leftOuterJoin ( rightTable : ObservableList < B > , leftToJoinKey : ( A ) -> K , rightToJoinKey : ( B ) -> K ) : ObservableMap < K , <ERROR CLASS> < ObservableList < A > , ObservableList < B > > >
data class Person(name: String, favouriteSpecies: Species)
+data class Animal(name: String, species: Species)
+val people: ObservableList = (..)
+val animals: ObservableList = (..)
+val peopleToFavouriteAnimals: ObservableMap<Species, Pair<ObservableList, ObservableList>> =
+people.leftOuterJoin(animals, Person::favouriteSpecies, Animal::species)
+
+
+
+
+map
+
+fun < A , B > ObservableList < out A > . map ( cached : Boolean = true, function : ( A ) -> B ) : ObservableList < B >
val dogs: ObservableList = (..)
+val dogOwners: ObservableList = dogs.map { it.owner }
+
+
+
+
+noneOrSingle
+
+fun < T > Iterable < T > . noneOrSingle ( predicate : ( T ) -> Boolean ) : T ?
Returns the single element matching the given predicate , or null
if element was not found,
+or throws if more than one element was found.
+fun < T > Iterable < T > . noneOrSingle ( ) : T ?
Returns single element, or null
if element was not found, or throws if more than one element was found.
+
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.client.fxutils/-flattened-list/size.html b/docs/build/html/api/net.corda.client.fxutils/-flattened-list/size.html
new file mode 100644
index 0000000000..fc37f07b06
--- /dev/null
+++ b/docs/build/html/api/net.corda.client.fxutils/-flattened-list/size.html
@@ -0,0 +1,15 @@
+
+
+FlattenedList.size -
+
+
+
+net.corda.client.fxutils / FlattenedList / size
+
+size
+
+val size : Int
+
+
+
+
diff --git a/docs/build/html/api/net.corda.client.fxutils/-flattened-list/source-changed.html b/docs/build/html/api/net.corda.client.fxutils/-flattened-list/source-changed.html
new file mode 100644
index 0000000000..ed7324099e
--- /dev/null
+++ b/docs/build/html/api/net.corda.client.fxutils/-flattened-list/source-changed.html
@@ -0,0 +1,15 @@
+
+
+FlattenedList.sourceChanged -
+
+
+
+net.corda.client.fxutils / FlattenedList / sourceChanged
+
+sourceChanged
+
+protected fun sourceChanged ( c : Change < out ObservableValue < out A > > ) : Unit
+
+
+
+
diff --git a/docs/build/html/api/net.corda.client.fxutils/-flattened-list/source-list.html b/docs/build/html/api/net.corda.client.fxutils/-flattened-list/source-list.html
new file mode 100644
index 0000000000..92289de973
--- /dev/null
+++ b/docs/build/html/api/net.corda.client.fxutils/-flattened-list/source-list.html
@@ -0,0 +1,15 @@
+
+
+FlattenedList.sourceList -
+
+
+
+net.corda.client.fxutils / FlattenedList / sourceList
+
+sourceList
+
+val sourceList : ObservableList < out ObservableValue < out A > >
+
+
+
+
diff --git a/docs/build/html/api/net.corda.client.fxutils/-left-outer-joined-map/-init-.html b/docs/build/html/api/net.corda.client.fxutils/-left-outer-joined-map/-init-.html
new file mode 100644
index 0000000000..53b90f3749
--- /dev/null
+++ b/docs/build/html/api/net.corda.client.fxutils/-left-outer-joined-map/-init-.html
@@ -0,0 +1,16 @@
+
+
+LeftOuterJoinedMap. -
+
+
+
+net.corda.client.fxutils / LeftOuterJoinedMap / <init>
+
+<init>
+LeftOuterJoinedMap ( leftTable : ObservableMap < K , out A > , rightTable : ObservableMap < K , out B > , assemble : ( K , A , ObservableValue < B ? > ) -> C )
+LeftOuterJoinedMap implements a special case of a left outer join where were matching on primary keys of both
+tables.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.client.fxutils/-left-outer-joined-map/index.html b/docs/build/html/api/net.corda.client.fxutils/-left-outer-joined-map/index.html
new file mode 100644
index 0000000000..b7f6e1dd64
--- /dev/null
+++ b/docs/build/html/api/net.corda.client.fxutils/-left-outer-joined-map/index.html
@@ -0,0 +1,145 @@
+
+
+LeftOuterJoinedMap -
+
+
+
+net.corda.client.fxutils / LeftOuterJoinedMap
+
+LeftOuterJoinedMap
+class LeftOuterJoinedMap < K : Any , A , B , C > : ReadOnlyBackedObservableMapBase < K , C , SimpleObjectProperty < B ? > >
+LeftOuterJoinedMap implements a special case of a left outer join where were matching on primary keys of both
+tables.
+
+
+Constructors
+
+
+
+
+<init>
+
+LeftOuterJoinedMap ( leftTable : ObservableMap < K , out A > , rightTable : ObservableMap < K , out B > , assemble : ( K , A , ObservableValue < B ? > ) -> C )
LeftOuterJoinedMap implements a special case of a left outer join where were matching on primary keys of both
+tables.
+
+
+
+
+Properties
+
+
+
+
+leftTable
+
+val leftTable : ObservableMap < K , out A >
+
+
+
+rightTable
+
+val rightTable : ObservableMap < K , out B >
+
+
+
+Inherited Properties
+
+
+
+
+backingMap
+
+val backingMap : HashMap < K , <ERROR CLASS> < A , B > >
+
+
+
+entries
+
+open val entries : MutableSet < MutableEntry < K , A > >
+
+
+
+keys
+
+open val keys : MutableSet < K >
+
+
+
+size
+
+open val size : Int
+
+
+
+values
+
+open val values : MutableCollection < A >
+
+
+
+Inherited Functions
+
+
+
+
+addListener
+
+open fun addListener ( listener : InvalidationListener ) : Unit
+
+
+
+clear
+
+open fun clear ( ) : Unit
+
+
+
+isEmpty
+
+open fun isEmpty ( ) : Boolean
+
+
+
+removeListener
+
+open fun removeListener ( listener : InvalidationListener ? ) : Unit
+
+
+
+Extension Functions
+
+
+
+
+createMapChange
+
+fun < A , K > ObservableMap < K , A > . createMapChange ( key : K , removedValue : A ? , addedValue : A ? ) : Change < K , A >
+
+
+
+getObservableEntries
+
+fun < K , V > ObservableMap < K , V > . getObservableEntries ( ) : ObservableList < Entry < K , V > >
val nameToPerson: ObservableMap<String, Person> = (..)
+val people: ObservableList = nameToPerson.getObservableValues()
+
+
+
+
+getObservableValue
+
+fun < K , V > ObservableMap < K , V > . getObservableValue ( key : K ) : ObservableValue < V ? >
val nameToPerson: ObservableMap<String, Person> = (..)
+val john: ObservableValue<Person?> = nameToPerson.getObservableValue("John")
+
+
+
+
+getObservableValues
+
+fun < K , V > ObservableMap < K , V > . getObservableValues ( ) : ObservableList < V >
val nameToPerson: ObservableMap<String, Person> = (..)
+val people: ObservableList = nameToPerson.getObservableValues()
+
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.client.fxutils/-left-outer-joined-map/left-table.html b/docs/build/html/api/net.corda.client.fxutils/-left-outer-joined-map/left-table.html
new file mode 100644
index 0000000000..8edd6a5097
--- /dev/null
+++ b/docs/build/html/api/net.corda.client.fxutils/-left-outer-joined-map/left-table.html
@@ -0,0 +1,15 @@
+
+
+LeftOuterJoinedMap.leftTable -
+
+
+
+net.corda.client.fxutils / LeftOuterJoinedMap / leftTable
+
+leftTable
+
+val leftTable : ObservableMap < K , out A >
+
+
+
+
diff --git a/docs/build/html/api/net.corda.client.fxutils/-left-outer-joined-map/right-table.html b/docs/build/html/api/net.corda.client.fxutils/-left-outer-joined-map/right-table.html
new file mode 100644
index 0000000000..fb701a1360
--- /dev/null
+++ b/docs/build/html/api/net.corda.client.fxutils/-left-outer-joined-map/right-table.html
@@ -0,0 +1,15 @@
+
+
+LeftOuterJoinedMap.rightTable -
+
+
+
+net.corda.client.fxutils / LeftOuterJoinedMap / rightTable
+
+rightTable
+
+val rightTable : ObservableMap < K , out B >
+
+
+
+
diff --git a/docs/build/html/api/net.corda.client.fxutils/-map-values-list/create.html b/docs/build/html/api/net.corda.client.fxutils/-map-values-list/create.html
new file mode 100644
index 0000000000..31dcf2d282
--- /dev/null
+++ b/docs/build/html/api/net.corda.client.fxutils/-map-values-list/create.html
@@ -0,0 +1,22 @@
+
+
+MapValuesList.create -
+
+
+
+net.corda.client.fxutils / MapValuesList / create
+
+create
+
+fun < K , A , C > create ( sourceMap : ObservableMap < K , A > , assemble : ( Entry < K , A > ) -> C ) : MapValuesList < K , A , C >
+create is the factory of MapValuesList .
+Parameters
+
+sourceMap
- The source map.
+
+
+assemble
- The function to be called for map each entry to construct the final list elements.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.client.fxutils/-map-values-list/index.html b/docs/build/html/api/net.corda.client.fxutils/-map-values-list/index.html
new file mode 100644
index 0000000000..3b2a8801a7
--- /dev/null
+++ b/docs/build/html/api/net.corda.client.fxutils/-map-values-list/index.html
@@ -0,0 +1,151 @@
+
+
+MapValuesList -
+
+
+
+net.corda.client.fxutils / MapValuesList
+
+MapValuesList
+class MapValuesList < K , A , C > : ObservableList < C >
+MapValuesList takes an ObservableMap and returns its values as an ObservableList .
+The order of returned elements is deterministic but unspecified.
+
+
+Properties
+
+
+
+
+sourceMap
+
+val sourceMap : ObservableMap < K , A >
+
+
+
+Companion Object Functions
+
+
+
+
+create
+
+fun < K , A , C > create ( sourceMap : ObservableMap < K , A > , assemble : ( Entry < K , A > ) -> C ) : MapValuesList < K , A , C >
create is the factory of MapValuesList.
+
+
+
+
+Extension Functions
+
+
+
+
+associateBy
+
+fun < K , A , B > ObservableList < out A > . associateBy ( toKey : ( A ) -> K , assemble : ( K , A ) -> B ) : ObservableMap < K , B >
data class Person(val height: Long)
+val people: ObservableList = (..)
+val nameToHeight: ObservableMap<String, Long> = people.associateBy(Person::name) { name, person -> person.height }
+fun < K , A > ObservableList < out A > . associateBy ( toKey : ( A ) -> K ) : ObservableMap < K , A >
val people: ObservableList = (..)
+val nameToPerson: ObservableMap<String, Person> = people.associateBy(Person::name)
+
+
+
+
+associateByAggregation
+
+fun < K : Any , A : Any , B > ObservableList < out A > . associateByAggregation ( toKey : ( A ) -> K , assemble : ( K , A ) -> B ) : ObservableMap < K , ObservableList < B > >
val people: ObservableList = (..)
+val heightToNames: ObservableMap<Long, ObservableList> = people.associateByAggregation(Person::height) { name, person -> person.name }
+fun < K : Any , A : Any > ObservableList < out A > . associateByAggregation ( toKey : ( A ) -> K ) : ObservableMap < K , ObservableList < A > >
val people: ObservableList = (..)
+val heightToPeople: ObservableMap<Long, ObservableList> = people.associateByAggregation(Person::height)
+
+
+
+
+filter
+
+fun < A > ObservableList < out A > . filter ( predicate : ObservableValue < ( A ) -> Boolean > ) : ObservableList < A >
enum class FilterCriterion { HEIGHT, NAME }
+val filterCriterion: ObservableValue = (..)
+val people: ObservableList = (..)
+fun filterFunction(filterCriterion: FilterCriterion): (Person) -> Boolean { .. }
+
+
+
+
+filterNotNull
+
+fun < A > ObservableList < out A ? > . filterNotNull ( ) : ObservableList < A >
data class Dog(val owner: Person?)
+val dogs: ObservableList = (..)
+val owners: ObservableList = dogs.map(Dog::owner).filterNotNull()
+
+
+
+
+first
+
+fun < A > ObservableList < A > . first ( ) : ObservableValue < A ? >
+
+
+
+foldObservable
+
+fun < A , B > ObservableList < out A > . foldObservable ( initial : B , folderFunction : ( B , A ) -> B ) : ObservableValue < B >
val people: ObservableList = (..)
+val concatenatedNames = people.foldObservable("", { names, person -> names + person.name })
+val concatenatedNames2 = people.map(Person::name).fold("", String::plus)
+
+
+
+
+getValueAt
+
+fun < A > ObservableList < A > . getValueAt ( index : Int ) : ObservableValue < A ? >
+
+
+
+indexOfOrThrow
+
+fun < T > List < T > . indexOfOrThrow ( item : T ) : Int
Returns the index of the given item or throws IllegalArgumentException if not found.
+
+
+
+
+last
+
+fun < A > ObservableList < A > . last ( ) : ObservableValue < A ? >
+
+
+
+leftOuterJoin
+
+fun < A : Any , B : Any , C , K : Any > ObservableList < A > . leftOuterJoin ( rightTable : ObservableList < B > , leftToJoinKey : ( A ) -> K , rightToJoinKey : ( B ) -> K , assemble : ( A , ObservableList < B > ) -> C ) : ObservableList < C >
data class Person(val name: String, val managerName: String)
+val people: ObservableList = (..)
+val managerEmployeeMapping: ObservableList<Pair<Person, ObservableList>> =
+people.leftOuterJoin(people, Person::name, Person::managerName) { manager, employees -> Pair(manager, employees) }
+fun < A : Any , B : Any , K : Any > ObservableList < A > . leftOuterJoin ( rightTable : ObservableList < B > , leftToJoinKey : ( A ) -> K , rightToJoinKey : ( B ) -> K ) : ObservableMap < K , <ERROR CLASS> < ObservableList < A > , ObservableList < B > > >
data class Person(name: String, favouriteSpecies: Species)
+data class Animal(name: String, species: Species)
+val people: ObservableList = (..)
+val animals: ObservableList = (..)
+val peopleToFavouriteAnimals: ObservableMap<Species, Pair<ObservableList, ObservableList>> =
+people.leftOuterJoin(animals, Person::favouriteSpecies, Animal::species)
+
+
+
+
+map
+
+fun < A , B > ObservableList < out A > . map ( cached : Boolean = true, function : ( A ) -> B ) : ObservableList < B >
val dogs: ObservableList = (..)
+val dogOwners: ObservableList = dogs.map { it.owner }
+
+
+
+
+noneOrSingle
+
+fun < T > Iterable < T > . noneOrSingle ( predicate : ( T ) -> Boolean ) : T ?
Returns the single element matching the given predicate , or null
if element was not found,
+or throws if more than one element was found.
+fun < T > Iterable < T > . noneOrSingle ( ) : T ?
Returns single element, or null
if element was not found, or throws if more than one element was found.
+
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.client.fxutils/-map-values-list/source-map.html b/docs/build/html/api/net.corda.client.fxutils/-map-values-list/source-map.html
new file mode 100644
index 0000000000..bda1a5355f
--- /dev/null
+++ b/docs/build/html/api/net.corda.client.fxutils/-map-values-list/source-map.html
@@ -0,0 +1,15 @@
+
+
+MapValuesList.sourceMap -
+
+
+
+net.corda.client.fxutils / MapValuesList / sourceMap
+
+sourceMap
+
+val sourceMap : ObservableMap < K , A >
+
+
+
+
diff --git a/docs/build/html/api/net.corda.client.fxutils/-mapped-list/-init-.html b/docs/build/html/api/net.corda.client.fxutils/-mapped-list/-init-.html
new file mode 100644
index 0000000000..b074623c6b
--- /dev/null
+++ b/docs/build/html/api/net.corda.client.fxutils/-mapped-list/-init-.html
@@ -0,0 +1,17 @@
+
+
+MappedList. -
+
+
+
+net.corda.client.fxutils / MappedList / <init>
+
+<init>
+MappedList ( list : ObservableList < A > , function : ( A ) -> B )
+This is a variant of EasyBind.map where the mapped list is backed, therefore the mapping function will only be run
+when an element is inserted or updated.
+Use this instead of EasyBind.map to trade off memory vs CPU, or if (god forbid) the mapped function is side-effecting.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.client.fxutils/-mapped-list/function.html b/docs/build/html/api/net.corda.client.fxutils/-mapped-list/function.html
new file mode 100644
index 0000000000..dadddcafd6
--- /dev/null
+++ b/docs/build/html/api/net.corda.client.fxutils/-mapped-list/function.html
@@ -0,0 +1,15 @@
+
+
+MappedList.function -
+
+
+
+net.corda.client.fxutils / MappedList / function
+
+function
+
+val function : ( A ) -> B
+
+
+
+
diff --git a/docs/build/html/api/net.corda.client.fxutils/-mapped-list/get-source-index.html b/docs/build/html/api/net.corda.client.fxutils/-mapped-list/get-source-index.html
new file mode 100644
index 0000000000..25a736ee72
--- /dev/null
+++ b/docs/build/html/api/net.corda.client.fxutils/-mapped-list/get-source-index.html
@@ -0,0 +1,15 @@
+
+
+MappedList.getSourceIndex -
+
+
+
+net.corda.client.fxutils / MappedList / getSourceIndex
+
+getSourceIndex
+
+fun getSourceIndex ( index : Int ) : Int
+
+
+
+
diff --git a/docs/build/html/api/net.corda.client.fxutils/-mapped-list/get.html b/docs/build/html/api/net.corda.client.fxutils/-mapped-list/get.html
new file mode 100644
index 0000000000..2fe56cb9e9
--- /dev/null
+++ b/docs/build/html/api/net.corda.client.fxutils/-mapped-list/get.html
@@ -0,0 +1,15 @@
+
+
+MappedList.get -
+
+
+
+net.corda.client.fxutils / MappedList / get
+
+get
+
+fun get ( index : Int ) : B
+
+
+
+
diff --git a/docs/build/html/api/net.corda.client.fxutils/-mapped-list/index.html b/docs/build/html/api/net.corda.client.fxutils/-mapped-list/index.html
new file mode 100644
index 0000000000..c7ca61f546
--- /dev/null
+++ b/docs/build/html/api/net.corda.client.fxutils/-mapped-list/index.html
@@ -0,0 +1,183 @@
+
+
+MappedList -
+
+
+
+net.corda.client.fxutils / MappedList
+
+MappedList
+class MappedList < A , B > : TransformationList < B , A >
+This is a variant of EasyBind.map where the mapped list is backed, therefore the mapping function will only be run
+when an element is inserted or updated.
+Use this instead of EasyBind.map to trade off memory vs CPU, or if (god forbid) the mapped function is side-effecting.
+
+
+Constructors
+
+
+
+
+<init>
+
+MappedList ( list : ObservableList < A > , function : ( A ) -> B )
This is a variant of EasyBind.map where the mapped list is backed, therefore the mapping function will only be run
+when an element is inserted or updated.
+Use this instead of EasyBind.map to trade off memory vs CPU, or if (god forbid) the mapped function is side-effecting.
+
+
+
+
+Properties
+
+
+
+
+function
+
+val function : ( A ) -> B
+
+
+
+size
+
+val size : Int
+
+
+
+Functions
+
+
+
+
+get
+
+fun get ( index : Int ) : B
+
+
+
+getSourceIndex
+
+fun getSourceIndex ( index : Int ) : Int
+
+
+
+sourceChanged
+
+fun sourceChanged ( change : Change < out A > ) : Unit
+
+
+
+Extension Functions
+
+
+
+
+associateBy
+
+fun < K , A , B > ObservableList < out A > . associateBy ( toKey : ( A ) -> K , assemble : ( K , A ) -> B ) : ObservableMap < K , B >
data class Person(val height: Long)
+val people: ObservableList = (..)
+val nameToHeight: ObservableMap<String, Long> = people.associateBy(Person::name) { name, person -> person.height }
+fun < K , A > ObservableList < out A > . associateBy ( toKey : ( A ) -> K ) : ObservableMap < K , A >
val people: ObservableList = (..)
+val nameToPerson: ObservableMap<String, Person> = people.associateBy(Person::name)
+
+
+
+
+associateByAggregation
+
+fun < K : Any , A : Any , B > ObservableList < out A > . associateByAggregation ( toKey : ( A ) -> K , assemble : ( K , A ) -> B ) : ObservableMap < K , ObservableList < B > >
val people: ObservableList = (..)
+val heightToNames: ObservableMap<Long, ObservableList> = people.associateByAggregation(Person::height) { name, person -> person.name }
+fun < K : Any , A : Any > ObservableList < out A > . associateByAggregation ( toKey : ( A ) -> K ) : ObservableMap < K , ObservableList < A > >
val people: ObservableList = (..)
+val heightToPeople: ObservableMap<Long, ObservableList> = people.associateByAggregation(Person::height)
+
+
+
+
+filter
+
+fun < A > ObservableList < out A > . filter ( predicate : ObservableValue < ( A ) -> Boolean > ) : ObservableList < A >
enum class FilterCriterion { HEIGHT, NAME }
+val filterCriterion: ObservableValue = (..)
+val people: ObservableList = (..)
+fun filterFunction(filterCriterion: FilterCriterion): (Person) -> Boolean { .. }
+
+
+
+
+filterNotNull
+
+fun < A > ObservableList < out A ? > . filterNotNull ( ) : ObservableList < A >
data class Dog(val owner: Person?)
+val dogs: ObservableList = (..)
+val owners: ObservableList = dogs.map(Dog::owner).filterNotNull()
+
+
+
+
+first
+
+fun < A > ObservableList < A > . first ( ) : ObservableValue < A ? >
+
+
+
+foldObservable
+
+fun < A , B > ObservableList < out A > . foldObservable ( initial : B , folderFunction : ( B , A ) -> B ) : ObservableValue < B >
val people: ObservableList = (..)
+val concatenatedNames = people.foldObservable("", { names, person -> names + person.name })
+val concatenatedNames2 = people.map(Person::name).fold("", String::plus)
+
+
+
+
+getValueAt
+
+fun < A > ObservableList < A > . getValueAt ( index : Int ) : ObservableValue < A ? >
+
+
+
+indexOfOrThrow
+
+fun < T > List < T > . indexOfOrThrow ( item : T ) : Int
Returns the index of the given item or throws IllegalArgumentException if not found.
+
+
+
+
+last
+
+fun < A > ObservableList < A > . last ( ) : ObservableValue < A ? >
+
+
+
+leftOuterJoin
+
+fun < A : Any , B : Any , C , K : Any > ObservableList < A > . leftOuterJoin ( rightTable : ObservableList < B > , leftToJoinKey : ( A ) -> K , rightToJoinKey : ( B ) -> K , assemble : ( A , ObservableList < B > ) -> C ) : ObservableList < C >
data class Person(val name: String, val managerName: String)
+val people: ObservableList = (..)
+val managerEmployeeMapping: ObservableList<Pair<Person, ObservableList>> =
+people.leftOuterJoin(people, Person::name, Person::managerName) { manager, employees -> Pair(manager, employees) }
+fun < A : Any , B : Any , K : Any > ObservableList < A > . leftOuterJoin ( rightTable : ObservableList < B > , leftToJoinKey : ( A ) -> K , rightToJoinKey : ( B ) -> K ) : ObservableMap < K , <ERROR CLASS> < ObservableList < A > , ObservableList < B > > >
data class Person(name: String, favouriteSpecies: Species)
+data class Animal(name: String, species: Species)
+val people: ObservableList = (..)
+val animals: ObservableList = (..)
+val peopleToFavouriteAnimals: ObservableMap<Species, Pair<ObservableList, ObservableList>> =
+people.leftOuterJoin(animals, Person::favouriteSpecies, Animal::species)
+
+
+
+
+map
+
+fun < A , B > ObservableList < out A > . map ( cached : Boolean = true, function : ( A ) -> B ) : ObservableList < B >
val dogs: ObservableList = (..)
+val dogOwners: ObservableList = dogs.map { it.owner }
+
+
+
+
+noneOrSingle
+
+fun < T > Iterable < T > . noneOrSingle ( predicate : ( T ) -> Boolean ) : T ?
Returns the single element matching the given predicate , or null
if element was not found,
+or throws if more than one element was found.
+fun < T > Iterable < T > . noneOrSingle ( ) : T ?
Returns single element, or null
if element was not found, or throws if more than one element was found.
+
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.client.fxutils/-mapped-list/size.html b/docs/build/html/api/net.corda.client.fxutils/-mapped-list/size.html
new file mode 100644
index 0000000000..78e8fb297e
--- /dev/null
+++ b/docs/build/html/api/net.corda.client.fxutils/-mapped-list/size.html
@@ -0,0 +1,15 @@
+
+
+MappedList.size -
+
+
+
+net.corda.client.fxutils / MappedList / size
+
+size
+
+val size : Int
+
+
+
+
diff --git a/docs/build/html/api/net.corda.client.fxutils/-mapped-list/source-changed.html b/docs/build/html/api/net.corda.client.fxutils/-mapped-list/source-changed.html
new file mode 100644
index 0000000000..160ec122a9
--- /dev/null
+++ b/docs/build/html/api/net.corda.client.fxutils/-mapped-list/source-changed.html
@@ -0,0 +1,15 @@
+
+
+MappedList.sourceChanged -
+
+
+
+net.corda.client.fxutils / MappedList / sourceChanged
+
+sourceChanged
+
+protected fun sourceChanged ( change : Change < out A > ) : Unit
+
+
+
+
diff --git a/docs/build/html/api/net.corda.client.fxutils/-read-only-backed-observable-map-base/-init-.html b/docs/build/html/api/net.corda.client.fxutils/-read-only-backed-observable-map-base/-init-.html
new file mode 100644
index 0000000000..ebb1a30272
--- /dev/null
+++ b/docs/build/html/api/net.corda.client.fxutils/-read-only-backed-observable-map-base/-init-.html
@@ -0,0 +1,28 @@
+
+
+ReadOnlyBackedObservableMapBase. -
+
+
+
+net.corda.client.fxutils / ReadOnlyBackedObservableMapBase / <init>
+
+<init>
+ReadOnlyBackedObservableMapBase ( )
+ReadOnlyBackedObservableMapBase is a base class implementing all abstract functions required for an ObservableMap
+using a backing HashMap that subclasses should modify.
+Non-read-only API calls throw.
+
+
+Parameters
+
+K
- The key type.
+
+
+A
- The exposed map element type.
+
+
+B
- Auxiliary data subclasses may wish to store in the backing map.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.client.fxutils/-read-only-backed-observable-map-base/add-listener.html b/docs/build/html/api/net.corda.client.fxutils/-read-only-backed-observable-map-base/add-listener.html
new file mode 100644
index 0000000000..4d5bc51bfc
--- /dev/null
+++ b/docs/build/html/api/net.corda.client.fxutils/-read-only-backed-observable-map-base/add-listener.html
@@ -0,0 +1,17 @@
+
+
+ReadOnlyBackedObservableMapBase.addListener -
+
+
+
+net.corda.client.fxutils / ReadOnlyBackedObservableMapBase / addListener
+
+addListener
+
+open fun addListener ( listener : InvalidationListener ) : Unit
+
+open fun addListener ( listener : MapChangeListener < in K , in A > ? ) : Unit
+
+
+
+
diff --git a/docs/build/html/api/net.corda.client.fxutils/-read-only-backed-observable-map-base/backing-map.html b/docs/build/html/api/net.corda.client.fxutils/-read-only-backed-observable-map-base/backing-map.html
new file mode 100644
index 0000000000..1a1c17d333
--- /dev/null
+++ b/docs/build/html/api/net.corda.client.fxutils/-read-only-backed-observable-map-base/backing-map.html
@@ -0,0 +1,15 @@
+
+
+ReadOnlyBackedObservableMapBase.backingMap -
+
+
+
+net.corda.client.fxutils / ReadOnlyBackedObservableMapBase / backingMap
+
+backingMap
+
+protected val backingMap : HashMap < K , <ERROR CLASS> < A , B > >
+
+
+
+
diff --git a/docs/build/html/api/net.corda.client.fxutils/-read-only-backed-observable-map-base/clear.html b/docs/build/html/api/net.corda.client.fxutils/-read-only-backed-observable-map-base/clear.html
new file mode 100644
index 0000000000..8910edc187
--- /dev/null
+++ b/docs/build/html/api/net.corda.client.fxutils/-read-only-backed-observable-map-base/clear.html
@@ -0,0 +1,15 @@
+
+
+ReadOnlyBackedObservableMapBase.clear -
+
+
+
+net.corda.client.fxutils / ReadOnlyBackedObservableMapBase / clear
+
+clear
+
+open fun clear ( ) : Unit
+
+
+
+
diff --git a/docs/build/html/api/net.corda.client.fxutils/-read-only-backed-observable-map-base/contains-key.html b/docs/build/html/api/net.corda.client.fxutils/-read-only-backed-observable-map-base/contains-key.html
new file mode 100644
index 0000000000..a1f35fae15
--- /dev/null
+++ b/docs/build/html/api/net.corda.client.fxutils/-read-only-backed-observable-map-base/contains-key.html
@@ -0,0 +1,15 @@
+
+
+ReadOnlyBackedObservableMapBase.containsKey -
+
+
+
+net.corda.client.fxutils / ReadOnlyBackedObservableMapBase / containsKey
+
+containsKey
+
+open fun containsKey ( key : K ) : Boolean
+
+
+
+
diff --git a/docs/build/html/api/net.corda.client.fxutils/-read-only-backed-observable-map-base/contains-value.html b/docs/build/html/api/net.corda.client.fxutils/-read-only-backed-observable-map-base/contains-value.html
new file mode 100644
index 0000000000..5e5a23f2a9
--- /dev/null
+++ b/docs/build/html/api/net.corda.client.fxutils/-read-only-backed-observable-map-base/contains-value.html
@@ -0,0 +1,15 @@
+
+
+ReadOnlyBackedObservableMapBase.containsValue -
+
+
+
+net.corda.client.fxutils / ReadOnlyBackedObservableMapBase / containsValue
+
+containsValue
+
+open fun containsValue ( value : A ) : <ERROR CLASS>
+
+
+
+
diff --git a/docs/build/html/api/net.corda.client.fxutils/-read-only-backed-observable-map-base/entries.html b/docs/build/html/api/net.corda.client.fxutils/-read-only-backed-observable-map-base/entries.html
new file mode 100644
index 0000000000..e87b14c7e2
--- /dev/null
+++ b/docs/build/html/api/net.corda.client.fxutils/-read-only-backed-observable-map-base/entries.html
@@ -0,0 +1,15 @@
+
+
+ReadOnlyBackedObservableMapBase.entries -
+
+
+
+net.corda.client.fxutils / ReadOnlyBackedObservableMapBase / entries
+
+entries
+
+open val entries : MutableSet < MutableEntry < K , A > >
+
+
+
+
diff --git a/docs/build/html/api/net.corda.client.fxutils/-read-only-backed-observable-map-base/fire-change.html b/docs/build/html/api/net.corda.client.fxutils/-read-only-backed-observable-map-base/fire-change.html
new file mode 100644
index 0000000000..5e05ac1abf
--- /dev/null
+++ b/docs/build/html/api/net.corda.client.fxutils/-read-only-backed-observable-map-base/fire-change.html
@@ -0,0 +1,15 @@
+
+
+ReadOnlyBackedObservableMapBase.fireChange -
+
+
+
+net.corda.client.fxutils / ReadOnlyBackedObservableMapBase / fireChange
+
+fireChange
+
+protected fun fireChange ( change : Change < out K , out A > ) : Unit
+
+
+
+
diff --git a/docs/build/html/api/net.corda.client.fxutils/-read-only-backed-observable-map-base/get.html b/docs/build/html/api/net.corda.client.fxutils/-read-only-backed-observable-map-base/get.html
new file mode 100644
index 0000000000..163cca44cf
--- /dev/null
+++ b/docs/build/html/api/net.corda.client.fxutils/-read-only-backed-observable-map-base/get.html
@@ -0,0 +1,15 @@
+
+
+ReadOnlyBackedObservableMapBase.get -
+
+
+
+net.corda.client.fxutils / ReadOnlyBackedObservableMapBase / get
+
+get
+
+open fun get ( key : K ) : <ERROR CLASS>
+
+
+
+
diff --git a/docs/build/html/api/net.corda.client.fxutils/-read-only-backed-observable-map-base/index.html b/docs/build/html/api/net.corda.client.fxutils/-read-only-backed-observable-map-base/index.html
new file mode 100644
index 0000000000..1da2435cc3
--- /dev/null
+++ b/docs/build/html/api/net.corda.client.fxutils/-read-only-backed-observable-map-base/index.html
@@ -0,0 +1,205 @@
+
+
+ReadOnlyBackedObservableMapBase -
+
+
+
+net.corda.client.fxutils / ReadOnlyBackedObservableMapBase
+
+ReadOnlyBackedObservableMapBase
+open class ReadOnlyBackedObservableMapBase < K , A , B > : ObservableMap < K , A >
+ReadOnlyBackedObservableMapBase is a base class implementing all abstract functions required for an ObservableMap
+using a backing HashMap that subclasses should modify.
+Non-read-only API calls throw.
+
+
+Parameters
+
+K
- The key type.
+
+
+A
- The exposed map element type.
+
+
+B
- Auxiliary data subclasses may wish to store in the backing map.
+
+
+Constructors
+
+
+
+
+<init>
+
+ReadOnlyBackedObservableMapBase ( )
ReadOnlyBackedObservableMapBase is a base class implementing all abstract functions required for an ObservableMap
+using a backing HashMap that subclasses should modify.
+
+
+
+
+Properties
+
+
+
+
+backingMap
+
+val backingMap : HashMap < K , <ERROR CLASS> < A , B > >
+
+
+
+entries
+
+open val entries : MutableSet < MutableEntry < K , A > >
+
+
+
+keys
+
+open val keys : MutableSet < K >
+
+
+
+size
+
+open val size : Int
+
+
+
+values
+
+open val values : MutableCollection < A >
+
+
+
+Functions
+
+
+
+
+addListener
+
+open fun addListener ( listener : InvalidationListener ) : Unit
+open fun addListener ( listener : MapChangeListener < in K , in A > ? ) : Unit
+
+
+
+clear
+
+open fun clear ( ) : Unit
+
+
+
+containsKey
+
+open fun containsKey ( key : K ) : Boolean
+
+
+
+containsValue
+
+open fun containsValue ( value : A ) : <ERROR CLASS>
+
+
+
+fireChange
+
+fun fireChange ( change : Change < out K , out A > ) : Unit
+
+
+
+get
+
+open fun get ( key : K ) : <ERROR CLASS>
+
+
+
+isEmpty
+
+open fun isEmpty ( ) : Boolean
+
+
+
+put
+
+open fun put ( key : K , value : A ) : A
+
+
+
+putAll
+
+open fun putAll ( from : Map < out K , A > ) : Unit
+
+
+
+remove
+
+open fun remove ( key : K ) : A
+
+
+
+removeListener
+
+open fun removeListener ( listener : InvalidationListener ? ) : Unit
+open fun removeListener ( listener : MapChangeListener < in K , in A > ? ) : Unit
+
+
+
+Extension Functions
+
+
+
+
+createMapChange
+
+fun < A , K > ObservableMap < K , A > . createMapChange ( key : K , removedValue : A ? , addedValue : A ? ) : Change < K , A >
+
+
+
+getObservableEntries
+
+fun < K , V > ObservableMap < K , V > . getObservableEntries ( ) : ObservableList < Entry < K , V > >
val nameToPerson: ObservableMap<String, Person> = (..)
+val people: ObservableList = nameToPerson.getObservableValues()
+
+
+
+
+getObservableValue
+
+fun < K , V > ObservableMap < K , V > . getObservableValue ( key : K ) : ObservableValue < V ? >
val nameToPerson: ObservableMap<String, Person> = (..)
+val john: ObservableValue<Person?> = nameToPerson.getObservableValue("John")
+
+
+
+
+getObservableValues
+
+fun < K , V > ObservableMap < K , V > . getObservableValues ( ) : ObservableList < V >
val nameToPerson: ObservableMap<String, Person> = (..)
+val people: ObservableList = nameToPerson.getObservableValues()
+
+
+
+
+Inheritors
+
+
+
+
+AssociatedList
+
+class AssociatedList < K , out A , B > : ReadOnlyBackedObservableMapBase < K , B , Unit >
AssociatedList creates an ObservableMap from an ObservableList by associating each list element with a unique key.
+It is not allowed to have several elements map to the same value
+
+
+
+
+LeftOuterJoinedMap
+
+class LeftOuterJoinedMap < K : Any , A , B , C > : ReadOnlyBackedObservableMapBase < K , C , SimpleObjectProperty < B ? > >
LeftOuterJoinedMap implements a special case of a left outer join where were matching on primary keys of both
+tables.
+
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.client.fxutils/-read-only-backed-observable-map-base/is-empty.html b/docs/build/html/api/net.corda.client.fxutils/-read-only-backed-observable-map-base/is-empty.html
new file mode 100644
index 0000000000..eb2f14631d
--- /dev/null
+++ b/docs/build/html/api/net.corda.client.fxutils/-read-only-backed-observable-map-base/is-empty.html
@@ -0,0 +1,15 @@
+
+
+ReadOnlyBackedObservableMapBase.isEmpty -
+
+
+
+net.corda.client.fxutils / ReadOnlyBackedObservableMapBase / isEmpty
+
+isEmpty
+
+open fun isEmpty ( ) : Boolean
+
+
+
+
diff --git a/docs/build/html/api/net.corda.client.fxutils/-read-only-backed-observable-map-base/keys.html b/docs/build/html/api/net.corda.client.fxutils/-read-only-backed-observable-map-base/keys.html
new file mode 100644
index 0000000000..ae1b716cd2
--- /dev/null
+++ b/docs/build/html/api/net.corda.client.fxutils/-read-only-backed-observable-map-base/keys.html
@@ -0,0 +1,15 @@
+
+
+ReadOnlyBackedObservableMapBase.keys -
+
+
+
+net.corda.client.fxutils / ReadOnlyBackedObservableMapBase / keys
+
+keys
+
+open val keys : MutableSet < K >
+
+
+
+
diff --git a/docs/build/html/api/net.corda.client.fxutils/-read-only-backed-observable-map-base/put-all.html b/docs/build/html/api/net.corda.client.fxutils/-read-only-backed-observable-map-base/put-all.html
new file mode 100644
index 0000000000..aec3732649
--- /dev/null
+++ b/docs/build/html/api/net.corda.client.fxutils/-read-only-backed-observable-map-base/put-all.html
@@ -0,0 +1,15 @@
+
+
+ReadOnlyBackedObservableMapBase.putAll -
+
+
+
+net.corda.client.fxutils / ReadOnlyBackedObservableMapBase / putAll
+
+putAll
+
+open fun putAll ( from : Map < out K , A > ) : Unit
+
+
+
+
diff --git a/docs/build/html/api/net.corda.client.fxutils/-read-only-backed-observable-map-base/put.html b/docs/build/html/api/net.corda.client.fxutils/-read-only-backed-observable-map-base/put.html
new file mode 100644
index 0000000000..76e8167437
--- /dev/null
+++ b/docs/build/html/api/net.corda.client.fxutils/-read-only-backed-observable-map-base/put.html
@@ -0,0 +1,15 @@
+
+
+ReadOnlyBackedObservableMapBase.put -
+
+
+
+net.corda.client.fxutils / ReadOnlyBackedObservableMapBase / put
+
+put
+
+open fun put ( key : K , value : A ) : A
+
+
+
+
diff --git a/docs/build/html/api/net.corda.client.fxutils/-read-only-backed-observable-map-base/remove-listener.html b/docs/build/html/api/net.corda.client.fxutils/-read-only-backed-observable-map-base/remove-listener.html
new file mode 100644
index 0000000000..0aaebef04c
--- /dev/null
+++ b/docs/build/html/api/net.corda.client.fxutils/-read-only-backed-observable-map-base/remove-listener.html
@@ -0,0 +1,17 @@
+
+
+ReadOnlyBackedObservableMapBase.removeListener -
+
+
+
+net.corda.client.fxutils / ReadOnlyBackedObservableMapBase / removeListener
+
+removeListener
+
+open fun removeListener ( listener : InvalidationListener ? ) : Unit
+
+open fun removeListener ( listener : MapChangeListener < in K , in A > ? ) : Unit
+
+
+
+
diff --git a/docs/build/html/api/net.corda.client.fxutils/-read-only-backed-observable-map-base/remove.html b/docs/build/html/api/net.corda.client.fxutils/-read-only-backed-observable-map-base/remove.html
new file mode 100644
index 0000000000..2685a5ae83
--- /dev/null
+++ b/docs/build/html/api/net.corda.client.fxutils/-read-only-backed-observable-map-base/remove.html
@@ -0,0 +1,15 @@
+
+
+ReadOnlyBackedObservableMapBase.remove -
+
+
+
+net.corda.client.fxutils / ReadOnlyBackedObservableMapBase / remove
+
+remove
+
+open fun remove ( key : K ) : A
+
+
+
+
diff --git a/docs/build/html/api/net.corda.client.fxutils/-read-only-backed-observable-map-base/size.html b/docs/build/html/api/net.corda.client.fxutils/-read-only-backed-observable-map-base/size.html
new file mode 100644
index 0000000000..18e6804284
--- /dev/null
+++ b/docs/build/html/api/net.corda.client.fxutils/-read-only-backed-observable-map-base/size.html
@@ -0,0 +1,15 @@
+
+
+ReadOnlyBackedObservableMapBase.size -
+
+
+
+net.corda.client.fxutils / ReadOnlyBackedObservableMapBase / size
+
+size
+
+open val size : Int
+
+
+
+
diff --git a/docs/build/html/api/net.corda.client.fxutils/-read-only-backed-observable-map-base/values.html b/docs/build/html/api/net.corda.client.fxutils/-read-only-backed-observable-map-base/values.html
new file mode 100644
index 0000000000..d22fb869c3
--- /dev/null
+++ b/docs/build/html/api/net.corda.client.fxutils/-read-only-backed-observable-map-base/values.html
@@ -0,0 +1,15 @@
+
+
+ReadOnlyBackedObservableMapBase.values -
+
+
+
+net.corda.client.fxutils / ReadOnlyBackedObservableMapBase / values
+
+values
+
+open val values : MutableCollection < A >
+
+
+
+
diff --git a/docs/build/html/api/net.corda.client.fxutils/-replayed-list/-init-.html b/docs/build/html/api/net.corda.client.fxutils/-replayed-list/-init-.html
new file mode 100644
index 0000000000..15fc0f80cb
--- /dev/null
+++ b/docs/build/html/api/net.corda.client.fxutils/-replayed-list/-init-.html
@@ -0,0 +1,16 @@
+
+
+ReplayedList. -
+
+
+
+net.corda.client.fxutils / ReplayedList / <init>
+
+<init>
+ReplayedList ( sourceList : ObservableList < A > )
+This list type just replays changes propagated from the underlying source list. Used for testing changes and backing a
+non-backed observable
+
+
+
+
diff --git a/docs/build/html/api/net.corda.client.fxutils/-replayed-list/get-source-index.html b/docs/build/html/api/net.corda.client.fxutils/-replayed-list/get-source-index.html
new file mode 100644
index 0000000000..bc31167fa5
--- /dev/null
+++ b/docs/build/html/api/net.corda.client.fxutils/-replayed-list/get-source-index.html
@@ -0,0 +1,15 @@
+
+
+ReplayedList.getSourceIndex -
+
+
+
+net.corda.client.fxutils / ReplayedList / getSourceIndex
+
+getSourceIndex
+
+fun getSourceIndex ( index : Int ) : Int
+
+
+
+
diff --git a/docs/build/html/api/net.corda.client.fxutils/-replayed-list/get.html b/docs/build/html/api/net.corda.client.fxutils/-replayed-list/get.html
new file mode 100644
index 0000000000..2e9ae9a86a
--- /dev/null
+++ b/docs/build/html/api/net.corda.client.fxutils/-replayed-list/get.html
@@ -0,0 +1,15 @@
+
+
+ReplayedList.get -
+
+
+
+net.corda.client.fxutils / ReplayedList / get
+
+get
+
+fun get ( index : Int ) : A
+
+
+
+
diff --git a/docs/build/html/api/net.corda.client.fxutils/-replayed-list/index.html b/docs/build/html/api/net.corda.client.fxutils/-replayed-list/index.html
new file mode 100644
index 0000000000..314c5d5cb8
--- /dev/null
+++ b/docs/build/html/api/net.corda.client.fxutils/-replayed-list/index.html
@@ -0,0 +1,181 @@
+
+
+ReplayedList -
+
+
+
+net.corda.client.fxutils / ReplayedList
+
+ReplayedList
+class ReplayedList < A > : TransformationList < A , A >
+This list type just replays changes propagated from the underlying source list. Used for testing changes and backing a
+non-backed observable
+
+
+Constructors
+
+
+
+
+<init>
+
+ReplayedList ( sourceList : ObservableList < A > )
This list type just replays changes propagated from the underlying source list. Used for testing changes and backing a
+non-backed observable
+
+
+
+
+Properties
+
+Functions
+
+
+
+
+get
+
+fun get ( index : Int ) : A
+
+
+
+getSourceIndex
+
+fun getSourceIndex ( index : Int ) : Int
+
+
+
+sourceChanged
+
+fun sourceChanged ( c : Change < out A > ) : Unit
+
+
+
+Extension Functions
+
+
+
+
+associateBy
+
+fun < K , A , B > ObservableList < out A > . associateBy ( toKey : ( A ) -> K , assemble : ( K , A ) -> B ) : ObservableMap < K , B >
data class Person(val height: Long)
+val people: ObservableList = (..)
+val nameToHeight: ObservableMap<String, Long> = people.associateBy(Person::name) { name, person -> person.height }
+fun < K , A > ObservableList < out A > . associateBy ( toKey : ( A ) -> K ) : ObservableMap < K , A >
val people: ObservableList = (..)
+val nameToPerson: ObservableMap<String, Person> = people.associateBy(Person::name)
+
+
+
+
+associateByAggregation
+
+fun < K : Any , A : Any , B > ObservableList < out A > . associateByAggregation ( toKey : ( A ) -> K , assemble : ( K , A ) -> B ) : ObservableMap < K , ObservableList < B > >
val people: ObservableList = (..)
+val heightToNames: ObservableMap<Long, ObservableList> = people.associateByAggregation(Person::height) { name, person -> person.name }
+fun < K : Any , A : Any > ObservableList < out A > . associateByAggregation ( toKey : ( A ) -> K ) : ObservableMap < K , ObservableList < A > >
val people: ObservableList = (..)
+val heightToPeople: ObservableMap<Long, ObservableList> = people.associateByAggregation(Person::height)
+
+
+
+
+filter
+
+fun < A > ObservableList < out A > . filter ( predicate : ObservableValue < ( A ) -> Boolean > ) : ObservableList < A >
enum class FilterCriterion { HEIGHT, NAME }
+val filterCriterion: ObservableValue = (..)
+val people: ObservableList = (..)
+fun filterFunction(filterCriterion: FilterCriterion): (Person) -> Boolean { .. }
+
+
+
+
+filterNotNull
+
+fun < A > ObservableList < out A ? > . filterNotNull ( ) : ObservableList < A >
data class Dog(val owner: Person?)
+val dogs: ObservableList = (..)
+val owners: ObservableList = dogs.map(Dog::owner).filterNotNull()
+
+
+
+
+first
+
+fun < A > ObservableList < A > . first ( ) : ObservableValue < A ? >
+
+
+
+foldObservable
+
+fun < A , B > ObservableList < out A > . foldObservable ( initial : B , folderFunction : ( B , A ) -> B ) : ObservableValue < B >
val people: ObservableList = (..)
+val concatenatedNames = people.foldObservable("", { names, person -> names + person.name })
+val concatenatedNames2 = people.map(Person::name).fold("", String::plus)
+
+
+
+
+getValueAt
+
+fun < A > ObservableList < A > . getValueAt ( index : Int ) : ObservableValue < A ? >
+
+
+
+indexOfOrThrow
+
+fun < T > List < T > . indexOfOrThrow ( item : T ) : Int
Returns the index of the given item or throws IllegalArgumentException if not found.
+
+
+
+
+last
+
+fun < A > ObservableList < A > . last ( ) : ObservableValue < A ? >
+
+
+
+leftOuterJoin
+
+fun < A : Any , B : Any , C , K : Any > ObservableList < A > . leftOuterJoin ( rightTable : ObservableList < B > , leftToJoinKey : ( A ) -> K , rightToJoinKey : ( B ) -> K , assemble : ( A , ObservableList < B > ) -> C ) : ObservableList < C >
data class Person(val name: String, val managerName: String)
+val people: ObservableList = (..)
+val managerEmployeeMapping: ObservableList<Pair<Person, ObservableList>> =
+people.leftOuterJoin(people, Person::name, Person::managerName) { manager, employees -> Pair(manager, employees) }
+fun < A : Any , B : Any , K : Any > ObservableList < A > . leftOuterJoin ( rightTable : ObservableList < B > , leftToJoinKey : ( A ) -> K , rightToJoinKey : ( B ) -> K ) : ObservableMap < K , <ERROR CLASS> < ObservableList < A > , ObservableList < B > > >
data class Person(name: String, favouriteSpecies: Species)
+data class Animal(name: String, species: Species)
+val people: ObservableList = (..)
+val animals: ObservableList = (..)
+val peopleToFavouriteAnimals: ObservableMap<Species, Pair<ObservableList, ObservableList>> =
+people.leftOuterJoin(animals, Person::favouriteSpecies, Animal::species)
+
+
+
+
+map
+
+fun < A , B > ObservableList < out A > . map ( cached : Boolean = true, function : ( A ) -> B ) : ObservableList < B >
val dogs: ObservableList = (..)
+val dogOwners: ObservableList = dogs.map { it.owner }
+
+
+
+
+noneOrSingle
+
+fun < T > Iterable < T > . noneOrSingle ( predicate : ( T ) -> Boolean ) : T ?
Returns the single element matching the given predicate , or null
if element was not found,
+or throws if more than one element was found.
+fun < T > Iterable < T > . noneOrSingle ( ) : T ?
Returns single element, or null
if element was not found, or throws if more than one element was found.
+
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.client.fxutils/-replayed-list/replayed-list.html b/docs/build/html/api/net.corda.client.fxutils/-replayed-list/replayed-list.html
new file mode 100644
index 0000000000..6d6966a652
--- /dev/null
+++ b/docs/build/html/api/net.corda.client.fxutils/-replayed-list/replayed-list.html
@@ -0,0 +1,15 @@
+
+
+ReplayedList.replayedList -
+
+
+
+net.corda.client.fxutils / ReplayedList / replayedList
+
+replayedList
+
+val replayedList : ArrayList < A >
+
+
+
+
diff --git a/docs/build/html/api/net.corda.client.fxutils/-replayed-list/size.html b/docs/build/html/api/net.corda.client.fxutils/-replayed-list/size.html
new file mode 100644
index 0000000000..536072ada9
--- /dev/null
+++ b/docs/build/html/api/net.corda.client.fxutils/-replayed-list/size.html
@@ -0,0 +1,15 @@
+
+
+ReplayedList.size -
+
+
+
+net.corda.client.fxutils / ReplayedList / size
+
+size
+
+val size : Int
+
+
+
+
diff --git a/docs/build/html/api/net.corda.client.fxutils/-replayed-list/source-changed.html b/docs/build/html/api/net.corda.client.fxutils/-replayed-list/source-changed.html
new file mode 100644
index 0000000000..5d11189237
--- /dev/null
+++ b/docs/build/html/api/net.corda.client.fxutils/-replayed-list/source-changed.html
@@ -0,0 +1,15 @@
+
+
+ReplayedList.sourceChanged -
+
+
+
+net.corda.client.fxutils / ReplayedList / sourceChanged
+
+sourceChanged
+
+protected fun sourceChanged ( c : Change < out A > ) : Unit
+
+
+
+
diff --git a/docs/build/html/api/net.corda.client.fxutils/fold-to-observable-list.html b/docs/build/html/api/net.corda.client.fxutils/fold-to-observable-list.html
new file mode 100644
index 0000000000..cb249a945d
--- /dev/null
+++ b/docs/build/html/api/net.corda.client.fxutils/fold-to-observable-list.html
@@ -0,0 +1,24 @@
+
+
+foldToObservableList -
+
+
+
+net.corda.client.fxutils / foldToObservableList
+
+foldToObservableList
+
+fun < A , B , C > <ERROR CLASS> < A > . foldToObservableList ( initialAccumulator : C , folderFun : ( A , C , ObservableList < B > ) -> C ) : ObservableList < B >
+foldToObservableList takes an rx.Observable stream and creates an ObservableList out of it, while maintaining
+an accumulator.
+Parameters
+
+initialAccumulator
- The initial value of the accumulator.
+
+
+folderFun
- The transformation function to be called on the observable list when a new element is emitted on
+the stream, which should modify the list as needed.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.client.fxutils/fold-to-observable-map.html b/docs/build/html/api/net.corda.client.fxutils/fold-to-observable-map.html
new file mode 100644
index 0000000000..94e8c38bcd
--- /dev/null
+++ b/docs/build/html/api/net.corda.client.fxutils/fold-to-observable-map.html
@@ -0,0 +1,24 @@
+
+
+foldToObservableMap -
+
+
+
+net.corda.client.fxutils / foldToObservableMap
+
+foldToObservableMap
+
+fun < A , B , K , C > <ERROR CLASS> < A > . foldToObservableMap ( initialAccumulator : C , folderFun : ( A , C , ObservableMap < K , B > ) -> C ) : ObservableMap < K , out B >
+foldToObservableMap takes an rx.Observable stream and creates an ObservableMap out of it, while maintaining
+an accumulator.
+Parameters
+
+initialAccumulator
- The initial value of the accumulator.
+
+
+folderFun
- The transformation function to be called on the observable map when a new element is emitted on
+the stream, which should modify the map as needed.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.client.fxutils/fold-to-observable-value.html b/docs/build/html/api/net.corda.client.fxutils/fold-to-observable-value.html
new file mode 100644
index 0000000000..c65205ff12
--- /dev/null
+++ b/docs/build/html/api/net.corda.client.fxutils/fold-to-observable-value.html
@@ -0,0 +1,23 @@
+
+
+foldToObservableValue -
+
+
+
+net.corda.client.fxutils / foldToObservableValue
+
+foldToObservableValue
+
+fun < A , B > <ERROR CLASS> < A > . foldToObservableValue ( initial : B , folderFun : ( A , B ) -> B ) : ObservableValue < B >
+foldToObservableValue takes an rx.Observable stream and creates an ObservableValue out of it.
+Parameters
+
+initial
- The initial value of the returned observable.
+
+
+folderFun
- The transformation function to be called on the observable value when a new element is emitted on
+the stream.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.client.fxutils/index.html b/docs/build/html/api/net.corda.client.fxutils/index.html
new file mode 100644
index 0000000000..6b90f1e766
--- /dev/null
+++ b/docs/build/html/api/net.corda.client.fxutils/index.html
@@ -0,0 +1,208 @@
+
+
+net.corda.client.fxutils -
+
+
+
+net.corda.client.fxutils
+
+Package net.corda.client.fxutils
+Types
+
+
+
+
+AggregatedList
+
+class AggregatedList < A , E : Any , K : Any > : TransformationList < A , E >
Given an ObservableList <E > and a grouping key K , AggregatedList groups the elements by the key into a fresh
+ObservableList <E > for each group and exposes the groups as an observable list of A s by calling assemble on each.
+
+
+
+
+AmountBindings
+
+object AmountBindings
Utility bindings for the Amount type, similar in spirit to Bindings
+
+
+
+
+AssociatedList
+
+class AssociatedList < K , out A , B > : ReadOnlyBackedObservableMapBase < K , B , Unit >
AssociatedList creates an ObservableMap from an ObservableList by associating each list element with a unique key.
+It is not allowed to have several elements map to the same value
+
+
+
+
+ChosenList
+
+class ChosenList < E > : ObservableListBase < E >
ChosenList manages an ObservableList that may be changed by the wrapping ObservableValue . Whenever the underlying
+ObservableValue changes the exposed list changes to the new value. Changes to the list are simply propagated.
+
+
+
+
+ConcatenatedList
+
+class ConcatenatedList < A > : TransformationList < A , ObservableList < A > >
ConcatenatedList takes a list of lists and concatenates them. Any change to the underlying lists or the outer list
+is propagated as expected.
+
+
+
+
+FlattenedList
+
+class FlattenedList < A > : TransformationList < A , ObservableValue < out A > >
FlattenedList flattens the passed in list of ObservableValue s so that changes in individual updates to the values
+are reflected in the exposed list as expected.
+
+
+
+
+LeftOuterJoinedMap
+
+class LeftOuterJoinedMap < K : Any , A , B , C > : ReadOnlyBackedObservableMapBase < K , C , SimpleObjectProperty < B ? > >
LeftOuterJoinedMap implements a special case of a left outer join where were matching on primary keys of both
+tables.
+
+
+
+
+MapValuesList
+
+class MapValuesList < K , A , C > : ObservableList < C >
MapValuesList takes an ObservableMap and returns its values as an ObservableList .
+The order of returned elements is deterministic but unspecified.
+
+
+
+
+MappedList
+
+class MappedList < A , B > : TransformationList < B , A >
This is a variant of EasyBind.map where the mapped list is backed, therefore the mapping function will only be run
+when an element is inserted or updated.
+Use this instead of EasyBind.map to trade off memory vs CPU, or if (god forbid) the mapped function is side-effecting.
+
+
+
+
+ReadOnlyBackedObservableMapBase
+
+open class ReadOnlyBackedObservableMapBase < K , A , B > : ObservableMap < K , A >
ReadOnlyBackedObservableMapBase is a base class implementing all abstract functions required for an ObservableMap
+using a backing HashMap that subclasses should modify.
+
+
+
+
+ReplayedList
+
+class ReplayedList < A > : TransformationList < A , A >
This list type just replays changes propagated from the underlying source list. Used for testing changes and backing a
+non-backed observable
+
+
+
+
+Extensions for External Classes
+
+Functions
+
+
+
+
+foldToObservableList
+
+fun < A , B , C > <ERROR CLASS> < A > . foldToObservableList ( initialAccumulator : C , folderFun : ( A , C , ObservableList < B > ) -> C ) : ObservableList < B >
foldToObservableList takes an rx.Observable stream and creates an ObservableList out of it, while maintaining
+an accumulator.
+
+
+
+
+foldToObservableMap
+
+fun < A , B , K , C > <ERROR CLASS> < A > . foldToObservableMap ( initialAccumulator : C , folderFun : ( A , C , ObservableMap < K , B > ) -> C ) : ObservableMap < K , out B >
foldToObservableMap takes an rx.Observable stream and creates an ObservableMap out of it, while maintaining
+an accumulator.
+
+
+
+
+foldToObservableValue
+
+fun < A , B > <ERROR CLASS> < A > . foldToObservableValue ( initial : B , folderFun : ( A , B ) -> B ) : ObservableValue < B >
foldToObservableValue takes an rx.Observable stream and creates an ObservableValue out of it.
+
+
+
+
+lift
+
+fun < A > A . lift ( ) : ObservableValue < A >
val aliceHeight: ObservableValue = (..)
+val bobHeight: ObservableValue = (..)
+fun sumHeight(a: Long, b: Long): Long { .. }
+
+
+
+
+recordAsAssociation
+
+fun < A , K > <ERROR CLASS> < A > . recordAsAssociation ( toKey : ( A ) -> K , merge : ( K , A , A ) -> A = { _key, _oldValue, newValue -> newValue }) : ObservableMap < K , out A >
This variant simply associates each event with its key.
+
+
+
+
+recordInSequence
+
+fun < A > <ERROR CLASS> < A > . recordInSequence ( ) : ObservableList < A >
recordInSequence records incoming events on the rx.Observable in sequence.
+
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.client.fxutils/javafx.beans.value.-observable-value/bind-out.html b/docs/build/html/api/net.corda.client.fxutils/javafx.beans.value.-observable-value/bind-out.html
new file mode 100644
index 0000000000..88e354284a
--- /dev/null
+++ b/docs/build/html/api/net.corda.client.fxutils/javafx.beans.value.-observable-value/bind-out.html
@@ -0,0 +1,17 @@
+
+
+bindOut -
+
+
+
+net.corda.client.fxutils / javafx.beans.value.ObservableValue / bindOut
+
+bindOut
+
+fun < A , B > ObservableValue < out A > . bindOut ( function : ( A ) -> ObservableValue < out B > ) : ObservableValue < out B >
+A variant of bind that has out variance on the output type. This is sometimes useful when kotlin is too eager to
+propagate variance constraints and type inference fails.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.client.fxutils/javafx.beans.value.-observable-value/bind.html b/docs/build/html/api/net.corda.client.fxutils/javafx.beans.value.-observable-value/bind.html
new file mode 100644
index 0000000000..9cbd6de07c
--- /dev/null
+++ b/docs/build/html/api/net.corda.client.fxutils/javafx.beans.value.-observable-value/bind.html
@@ -0,0 +1,18 @@
+
+
+bind -
+
+
+
+net.corda.client.fxutils / javafx.beans.value.ObservableValue / bind
+
+bind
+
+fun < A , B > ObservableValue < out A > . bind ( function : ( A ) -> ObservableValue < B > ) : ObservableValue < B >
+data class Person(val height: ObservableValue)
+val person: ObservableValue = (..)
+val personHeight: ObservableValue = person.bind { it.height }
+
+
+
+
diff --git a/docs/build/html/api/net.corda.client.fxutils/javafx.beans.value.-observable-value/index.html b/docs/build/html/api/net.corda.client.fxutils/javafx.beans.value.-observable-value/index.html
new file mode 100644
index 0000000000..343e330fa2
--- /dev/null
+++ b/docs/build/html/api/net.corda.client.fxutils/javafx.beans.value.-observable-value/index.html
@@ -0,0 +1,40 @@
+
+
+net.corda.client.fxutils.javafx.beans.value.ObservableValue -
+
+
+
+net.corda.client.fxutils / javafx.beans.value.ObservableValue
+
+Extensions for javafx.beans.value.ObservableValue
+
+
+
+
+bind
+
+fun < A , B > ObservableValue < out A > . bind ( function : ( A ) -> ObservableValue < B > ) : ObservableValue < B >
data class Person(val height: ObservableValue)
+val person: ObservableValue = (..)
+val personHeight: ObservableValue = person.bind { it.height }
+
+
+
+
+bindOut
+
+fun < A , B > ObservableValue < out A > . bindOut ( function : ( A ) -> ObservableValue < out B > ) : ObservableValue < out B >
A variant of bind that has out variance on the output type. This is sometimes useful when kotlin is too eager to
+propagate variance constraints and type inference fails.
+
+
+
+
+map
+
+fun < A , B > ObservableValue < out A > . map ( function : ( A ) -> B ) : ObservableValue < B >
val person: ObservableValue = (..)
+val personName: ObservableValue = person.map { it.name }
+
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.client.fxutils/javafx.beans.value.-observable-value/map.html b/docs/build/html/api/net.corda.client.fxutils/javafx.beans.value.-observable-value/map.html
new file mode 100644
index 0000000000..4a12dbdad0
--- /dev/null
+++ b/docs/build/html/api/net.corda.client.fxutils/javafx.beans.value.-observable-value/map.html
@@ -0,0 +1,17 @@
+
+
+map -
+
+
+
+net.corda.client.fxutils / javafx.beans.value.ObservableValue / map
+
+map
+
+fun < A , B > ObservableValue < out A > . map ( function : ( A ) -> B ) : ObservableValue < B >
+val person: ObservableValue = (..)
+val personName: ObservableValue = person.map { it.name }
+
+
+
+
diff --git a/docs/build/html/api/net.corda.client.fxutils/javafx.collections.-observable-list/associate-by-aggregation.html b/docs/build/html/api/net.corda.client.fxutils/javafx.collections.-observable-list/associate-by-aggregation.html
new file mode 100644
index 0000000000..0ea6e97c24
--- /dev/null
+++ b/docs/build/html/api/net.corda.client.fxutils/javafx.collections.-observable-list/associate-by-aggregation.html
@@ -0,0 +1,23 @@
+
+
+associateByAggregation -
+
+
+
+net.corda.client.fxutils / javafx.collections.ObservableList / associateByAggregation
+
+associateByAggregation
+
+fun < K : Any , A : Any , B > ObservableList < out A > . associateByAggregation ( toKey : ( A ) -> K , assemble : ( K , A ) -> B ) : ObservableMap < K , ObservableList < B > >
+val people: ObservableList = (..)
+val heightToNames: ObservableMap<Long, ObservableList> = people.associateByAggregation(Person::height) { name, person -> person.name }
+
+
+
+fun < K : Any , A : Any > ObservableList < out A > . associateByAggregation ( toKey : ( A ) -> K ) : ObservableMap < K , ObservableList < A > >
+val people: ObservableList = (..)
+val heightToPeople: ObservableMap<Long, ObservableList> = people.associateByAggregation(Person::height)
+
+
+
+
diff --git a/docs/build/html/api/net.corda.client.fxutils/javafx.collections.-observable-list/associate-by.html b/docs/build/html/api/net.corda.client.fxutils/javafx.collections.-observable-list/associate-by.html
new file mode 100644
index 0000000000..4c6610a9f6
--- /dev/null
+++ b/docs/build/html/api/net.corda.client.fxutils/javafx.collections.-observable-list/associate-by.html
@@ -0,0 +1,24 @@
+
+
+associateBy -
+
+
+
+net.corda.client.fxutils / javafx.collections.ObservableList / associateBy
+
+associateBy
+
+fun < K , A , B > ObservableList < out A > . associateBy ( toKey : ( A ) -> K , assemble : ( K , A ) -> B ) : ObservableMap < K , B >
+data class Person(val height: Long)
+val people: ObservableList = (..)
+val nameToHeight: ObservableMap<String, Long> = people.associateBy(Person::name) { name, person -> person.height }
+
+
+
+fun < K , A > ObservableList < out A > . associateBy ( toKey : ( A ) -> K ) : ObservableMap < K , A >
+val people: ObservableList = (..)
+val nameToPerson: ObservableMap<String, Person> = people.associateBy(Person::name)
+
+
+
+
diff --git a/docs/build/html/api/net.corda.client.fxutils/javafx.collections.-observable-list/concatenate.html b/docs/build/html/api/net.corda.client.fxutils/javafx.collections.-observable-list/concatenate.html
new file mode 100644
index 0000000000..b7161b531c
--- /dev/null
+++ b/docs/build/html/api/net.corda.client.fxutils/javafx.collections.-observable-list/concatenate.html
@@ -0,0 +1,17 @@
+
+
+concatenate -
+
+
+
+net.corda.client.fxutils / javafx.collections.ObservableList / concatenate
+
+concatenate
+
+fun < A > ObservableList < ObservableList < A > > . concatenate ( ) : ObservableList < A >
+val groups: ObservableList<ObservableList> = (..)
+val allPeople: ObservableList = groups.concatenate()
+
+
+
+
diff --git a/docs/build/html/api/net.corda.client.fxutils/javafx.collections.-observable-list/filter-not-null.html b/docs/build/html/api/net.corda.client.fxutils/javafx.collections.-observable-list/filter-not-null.html
new file mode 100644
index 0000000000..5beb6c7e9e
--- /dev/null
+++ b/docs/build/html/api/net.corda.client.fxutils/javafx.collections.-observable-list/filter-not-null.html
@@ -0,0 +1,18 @@
+
+
+filterNotNull -
+
+
+
+net.corda.client.fxutils / javafx.collections.ObservableList / filterNotNull
+
+filterNotNull
+
+fun < A > ObservableList < out A ? > . filterNotNull ( ) : ObservableList < A >
+data class Dog(val owner: Person?)
+val dogs: ObservableList = (..)
+val owners: ObservableList = dogs.map(Dog::owner).filterNotNull()
+
+
+
+
diff --git a/docs/build/html/api/net.corda.client.fxutils/javafx.collections.-observable-list/filter.html b/docs/build/html/api/net.corda.client.fxutils/javafx.collections.-observable-list/filter.html
new file mode 100644
index 0000000000..5eda502312
--- /dev/null
+++ b/docs/build/html/api/net.corda.client.fxutils/javafx.collections.-observable-list/filter.html
@@ -0,0 +1,22 @@
+
+
+filter -
+
+
+
+net.corda.client.fxutils / javafx.collections.ObservableList / filter
+
+filter
+
+fun < A > ObservableList < out A > . filter ( predicate : ObservableValue < ( A ) -> Boolean > ) : ObservableList < A >
+enum class FilterCriterion { HEIGHT, NAME }
+val filterCriterion: ObservableValue = (..)
+val people: ObservableList = (..)
+fun filterFunction(filterCriterion: FilterCriterion): (Person) -> Boolean { .. }
+val filteredPeople: ObservableList = people.filter(filterCriterion.map(filterFunction))
+
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.client.fxutils/javafx.collections.-observable-list/first.html b/docs/build/html/api/net.corda.client.fxutils/javafx.collections.-observable-list/first.html
new file mode 100644
index 0000000000..4c9d7cb1af
--- /dev/null
+++ b/docs/build/html/api/net.corda.client.fxutils/javafx.collections.-observable-list/first.html
@@ -0,0 +1,15 @@
+
+
+first -
+
+
+
+net.corda.client.fxutils / javafx.collections.ObservableList / first
+
+first
+
+fun < A > ObservableList < A > . first ( ) : ObservableValue < A ? >
+
+
+
+
diff --git a/docs/build/html/api/net.corda.client.fxutils/javafx.collections.-observable-list/flatten.html b/docs/build/html/api/net.corda.client.fxutils/javafx.collections.-observable-list/flatten.html
new file mode 100644
index 0000000000..c489228ec5
--- /dev/null
+++ b/docs/build/html/api/net.corda.client.fxutils/javafx.collections.-observable-list/flatten.html
@@ -0,0 +1,18 @@
+
+
+flatten -
+
+
+
+net.corda.client.fxutils / javafx.collections.ObservableList / flatten
+
+flatten
+
+fun < A > ObservableList < out ObservableValue < out A > > . flatten ( ) : ObservableList < A >
+data class Person(val height: ObservableValue)
+val people: ObservableList = (..)
+val heights: ObservableList = people.map(Person::height).flatten()
+
+
+
+
diff --git a/docs/build/html/api/net.corda.client.fxutils/javafx.collections.-observable-list/fold-observable.html b/docs/build/html/api/net.corda.client.fxutils/javafx.collections.-observable-list/fold-observable.html
new file mode 100644
index 0000000000..0a271089b5
--- /dev/null
+++ b/docs/build/html/api/net.corda.client.fxutils/javafx.collections.-observable-list/fold-observable.html
@@ -0,0 +1,18 @@
+
+
+foldObservable -
+
+
+
+net.corda.client.fxutils / javafx.collections.ObservableList / foldObservable
+
+foldObservable
+
+fun < A , B > ObservableList < out A > . foldObservable ( initial : B , folderFunction : ( B , A ) -> B ) : ObservableValue < B >
+val people: ObservableList = (..)
+val concatenatedNames = people.foldObservable("", { names, person -> names + person.name })
+val concatenatedNames2 = people.map(Person::name).fold("", String::plus)
+
+
+
+
diff --git a/docs/build/html/api/net.corda.client.fxutils/javafx.collections.-observable-list/get-value-at.html b/docs/build/html/api/net.corda.client.fxutils/javafx.collections.-observable-list/get-value-at.html
new file mode 100644
index 0000000000..0034ad1673
--- /dev/null
+++ b/docs/build/html/api/net.corda.client.fxutils/javafx.collections.-observable-list/get-value-at.html
@@ -0,0 +1,15 @@
+
+
+getValueAt -
+
+
+
+net.corda.client.fxutils / javafx.collections.ObservableList / getValueAt
+
+getValueAt
+
+fun < A > ObservableList < A > . getValueAt ( index : Int ) : ObservableValue < A ? >
+
+
+
+
diff --git a/docs/build/html/api/net.corda.client.fxutils/javafx.collections.-observable-list/index.html b/docs/build/html/api/net.corda.client.fxutils/javafx.collections.-observable-list/index.html
new file mode 100644
index 0000000000..fdbe589a05
--- /dev/null
+++ b/docs/build/html/api/net.corda.client.fxutils/javafx.collections.-observable-list/index.html
@@ -0,0 +1,123 @@
+
+
+net.corda.client.fxutils.javafx.collections.ObservableList -
+
+
+
+net.corda.client.fxutils / javafx.collections.ObservableList
+
+Extensions for javafx.collections.ObservableList
+
+
+
+
+associateBy
+
+fun < K , A , B > ObservableList < out A > . associateBy ( toKey : ( A ) -> K , assemble : ( K , A ) -> B ) : ObservableMap < K , B >
data class Person(val height: Long)
+val people: ObservableList = (..)
+val nameToHeight: ObservableMap<String, Long> = people.associateBy(Person::name) { name, person -> person.height }
+fun < K , A > ObservableList < out A > . associateBy ( toKey : ( A ) -> K ) : ObservableMap < K , A >
val people: ObservableList = (..)
+val nameToPerson: ObservableMap<String, Person> = people.associateBy(Person::name)
+
+
+
+
+associateByAggregation
+
+fun < K : Any , A : Any , B > ObservableList < out A > . associateByAggregation ( toKey : ( A ) -> K , assemble : ( K , A ) -> B ) : ObservableMap < K , ObservableList < B > >
val people: ObservableList = (..)
+val heightToNames: ObservableMap<Long, ObservableList> = people.associateByAggregation(Person::height) { name, person -> person.name }
+fun < K : Any , A : Any > ObservableList < out A > . associateByAggregation ( toKey : ( A ) -> K ) : ObservableMap < K , ObservableList < A > >
val people: ObservableList = (..)
+val heightToPeople: ObservableMap<Long, ObservableList> = people.associateByAggregation(Person::height)
+
+
+
+
+concatenate
+
+fun < A > ObservableList < ObservableList < A > > . concatenate ( ) : ObservableList < A >
val groups: ObservableList<ObservableList> = (..)
+val allPeople: ObservableList = groups.concatenate()
+
+
+
+
+filter
+
+fun < A > ObservableList < out A > . filter ( predicate : ObservableValue < ( A ) -> Boolean > ) : ObservableList < A >
enum class FilterCriterion { HEIGHT, NAME }
+val filterCriterion: ObservableValue = (..)
+val people: ObservableList = (..)
+fun filterFunction(filterCriterion: FilterCriterion): (Person) -> Boolean { .. }
+
+
+
+
+filterNotNull
+
+fun < A > ObservableList < out A ? > . filterNotNull ( ) : ObservableList < A >
data class Dog(val owner: Person?)
+val dogs: ObservableList = (..)
+val owners: ObservableList = dogs.map(Dog::owner).filterNotNull()
+
+
+
+
+first
+
+fun < A > ObservableList < A > . first ( ) : ObservableValue < A ? >
+
+
+
+flatten
+
+fun < A > ObservableList < out ObservableValue < out A > > . flatten ( ) : ObservableList < A >
data class Person(val height: ObservableValue)
+val people: ObservableList = (..)
+val heights: ObservableList = people.map(Person::height).flatten()
+
+
+
+
+foldObservable
+
+fun < A , B > ObservableList < out A > . foldObservable ( initial : B , folderFunction : ( B , A ) -> B ) : ObservableValue < B >
val people: ObservableList = (..)
+val concatenatedNames = people.foldObservable("", { names, person -> names + person.name })
+val concatenatedNames2 = people.map(Person::name).fold("", String::plus)
+
+
+
+
+getValueAt
+
+fun < A > ObservableList < A > . getValueAt ( index : Int ) : ObservableValue < A ? >
+
+
+
+last
+
+fun < A > ObservableList < A > . last ( ) : ObservableValue < A ? >
+
+
+
+leftOuterJoin
+
+fun < A : Any , B : Any , C , K : Any > ObservableList < A > . leftOuterJoin ( rightTable : ObservableList < B > , leftToJoinKey : ( A ) -> K , rightToJoinKey : ( B ) -> K , assemble : ( A , ObservableList < B > ) -> C ) : ObservableList < C >
data class Person(val name: String, val managerName: String)
+val people: ObservableList = (..)
+val managerEmployeeMapping: ObservableList<Pair<Person, ObservableList>> =
+people.leftOuterJoin(people, Person::name, Person::managerName) { manager, employees -> Pair(manager, employees) }
+fun < A : Any , B : Any , K : Any > ObservableList < A > . leftOuterJoin ( rightTable : ObservableList < B > , leftToJoinKey : ( A ) -> K , rightToJoinKey : ( B ) -> K ) : ObservableMap < K , <ERROR CLASS> < ObservableList < A > , ObservableList < B > > >
data class Person(name: String, favouriteSpecies: Species)
+data class Animal(name: String, species: Species)
+val people: ObservableList = (..)
+val animals: ObservableList = (..)
+val peopleToFavouriteAnimals: ObservableMap<Species, Pair<ObservableList, ObservableList>> =
+people.leftOuterJoin(animals, Person::favouriteSpecies, Animal::species)
+
+
+
+
+map
+
+fun < A , B > ObservableList < out A > . map ( cached : Boolean = true, function : ( A ) -> B ) : ObservableList < B >
val dogs: ObservableList = (..)
+val dogOwners: ObservableList = dogs.map { it.owner }
+
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.client.fxutils/javafx.collections.-observable-list/last.html b/docs/build/html/api/net.corda.client.fxutils/javafx.collections.-observable-list/last.html
new file mode 100644
index 0000000000..0243715e1f
--- /dev/null
+++ b/docs/build/html/api/net.corda.client.fxutils/javafx.collections.-observable-list/last.html
@@ -0,0 +1,15 @@
+
+
+last -
+
+
+
+net.corda.client.fxutils / javafx.collections.ObservableList / last
+
+last
+
+fun < A > ObservableList < A > . last ( ) : ObservableValue < A ? >
+
+
+
+
diff --git a/docs/build/html/api/net.corda.client.fxutils/javafx.collections.-observable-list/left-outer-join.html b/docs/build/html/api/net.corda.client.fxutils/javafx.collections.-observable-list/left-outer-join.html
new file mode 100644
index 0000000000..b219496257
--- /dev/null
+++ b/docs/build/html/api/net.corda.client.fxutils/javafx.collections.-observable-list/left-outer-join.html
@@ -0,0 +1,34 @@
+
+
+leftOuterJoin -
+
+
+
+net.corda.client.fxutils / javafx.collections.ObservableList / leftOuterJoin
+
+leftOuterJoin
+
+fun < A : Any , B : Any , C , K : Any > ObservableList < A > . leftOuterJoin ( rightTable : ObservableList < B > , leftToJoinKey : ( A ) -> K , rightToJoinKey : ( B ) -> K , assemble : ( A , ObservableList < B > ) -> C ) : ObservableList < C >
+data class Person(val name: String, val managerName: String)
+val people: ObservableList = (..)
+val managerEmployeeMapping: ObservableList<Pair<Person, ObservableList>> =
+people.leftOuterJoin(people, Person::name, Person::managerName) { manager, employees -> Pair(manager, employees) }
+
+
+
+fun < A : Any , B : Any , K : Any > ObservableList < A > . leftOuterJoin ( rightTable : ObservableList < B > , leftToJoinKey : ( A ) -> K , rightToJoinKey : ( B ) -> K ) : ObservableMap < K , <ERROR CLASS> < ObservableList < A > , ObservableList < B > > >
+data class Person(name: String, favouriteSpecies: Species)
+data class Animal(name: String, species: Species)
+val people: ObservableList = (..)
+val animals: ObservableList = (..)
+val peopleToFavouriteAnimals: ObservableMap<Species, Pair<ObservableList, ObservableList>> =
+people.leftOuterJoin(animals, Person::favouriteSpecies, Animal::species)
+This is the most general left join, given a joining key it returns for each key a pair of relevant elements from the
+left and right tables. It is "left outer" in the sense that all members of the left table are guaranteed to be in
+the result, but this may not be the case for the right table.
+
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.client.fxutils/javafx.collections.-observable-list/map.html b/docs/build/html/api/net.corda.client.fxutils/javafx.collections.-observable-list/map.html
new file mode 100644
index 0000000000..101d426cc0
--- /dev/null
+++ b/docs/build/html/api/net.corda.client.fxutils/javafx.collections.-observable-list/map.html
@@ -0,0 +1,21 @@
+
+
+map -
+
+
+
+net.corda.client.fxutils / javafx.collections.ObservableList / map
+
+map
+
+fun < A , B > ObservableList < out A > . map ( cached : Boolean = true, function : ( A ) -> B ) : ObservableList < B >
+val dogs: ObservableList = (..)
+val dogOwners: ObservableList = dogs.map { it.owner }
+Parameters
+
+cached
- If true the results of the mapped function are cached in a backing list. If false each get() will
+re-run the function.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.client.fxutils/javafx.collections.-observable-map/create-map-change.html b/docs/build/html/api/net.corda.client.fxutils/javafx.collections.-observable-map/create-map-change.html
new file mode 100644
index 0000000000..8140309227
--- /dev/null
+++ b/docs/build/html/api/net.corda.client.fxutils/javafx.collections.-observable-map/create-map-change.html
@@ -0,0 +1,15 @@
+
+
+createMapChange -
+
+
+
+net.corda.client.fxutils / javafx.collections.ObservableMap / createMapChange
+
+createMapChange
+
+fun < A , K > ObservableMap < K , A > . createMapChange ( key : K , removedValue : A ? , addedValue : A ? ) : Change < K , A >
+
+
+
+
diff --git a/docs/build/html/api/net.corda.client.fxutils/javafx.collections.-observable-map/get-observable-entries.html b/docs/build/html/api/net.corda.client.fxutils/javafx.collections.-observable-map/get-observable-entries.html
new file mode 100644
index 0000000000..2085caf2ef
--- /dev/null
+++ b/docs/build/html/api/net.corda.client.fxutils/javafx.collections.-observable-map/get-observable-entries.html
@@ -0,0 +1,17 @@
+
+
+getObservableEntries -
+
+
+
+net.corda.client.fxutils / javafx.collections.ObservableMap / getObservableEntries
+
+getObservableEntries
+
+fun < K , V > ObservableMap < K , V > . getObservableEntries ( ) : ObservableList < Entry < K , V > >
+val nameToPerson: ObservableMap<String, Person> = (..)
+val people: ObservableList = nameToPerson.getObservableValues()
+
+
+
+
diff --git a/docs/build/html/api/net.corda.client.fxutils/javafx.collections.-observable-map/get-observable-value.html b/docs/build/html/api/net.corda.client.fxutils/javafx.collections.-observable-map/get-observable-value.html
new file mode 100644
index 0000000000..8d7bd849da
--- /dev/null
+++ b/docs/build/html/api/net.corda.client.fxutils/javafx.collections.-observable-map/get-observable-value.html
@@ -0,0 +1,17 @@
+
+
+getObservableValue -
+
+
+
+net.corda.client.fxutils / javafx.collections.ObservableMap / getObservableValue
+
+getObservableValue
+
+fun < K , V > ObservableMap < K , V > . getObservableValue ( key : K ) : ObservableValue < V ? >
+val nameToPerson: ObservableMap<String, Person> = (..)
+val john: ObservableValue<Person?> = nameToPerson.getObservableValue("John")
+
+
+
+
diff --git a/docs/build/html/api/net.corda.client.fxutils/javafx.collections.-observable-map/get-observable-values.html b/docs/build/html/api/net.corda.client.fxutils/javafx.collections.-observable-map/get-observable-values.html
new file mode 100644
index 0000000000..1bfd1f32ce
--- /dev/null
+++ b/docs/build/html/api/net.corda.client.fxutils/javafx.collections.-observable-map/get-observable-values.html
@@ -0,0 +1,17 @@
+
+
+getObservableValues -
+
+
+
+net.corda.client.fxutils / javafx.collections.ObservableMap / getObservableValues
+
+getObservableValues
+
+fun < K , V > ObservableMap < K , V > . getObservableValues ( ) : ObservableList < V >
+val nameToPerson: ObservableMap<String, Person> = (..)
+val people: ObservableList = nameToPerson.getObservableValues()
+
+
+
+
diff --git a/docs/build/html/api/net.corda.client.fxutils/javafx.collections.-observable-map/index.html b/docs/build/html/api/net.corda.client.fxutils/javafx.collections.-observable-map/index.html
new file mode 100644
index 0000000000..d2f220ca51
--- /dev/null
+++ b/docs/build/html/api/net.corda.client.fxutils/javafx.collections.-observable-map/index.html
@@ -0,0 +1,45 @@
+
+
+net.corda.client.fxutils.javafx.collections.ObservableMap -
+
+
+
+net.corda.client.fxutils / javafx.collections.ObservableMap
+
+Extensions for javafx.collections.ObservableMap
+
+
+
+
+createMapChange
+
+fun < A , K > ObservableMap < K , A > . createMapChange ( key : K , removedValue : A ? , addedValue : A ? ) : Change < K , A >
+
+
+
+getObservableEntries
+
+fun < K , V > ObservableMap < K , V > . getObservableEntries ( ) : ObservableList < Entry < K , V > >
val nameToPerson: ObservableMap<String, Person> = (..)
+val people: ObservableList = nameToPerson.getObservableValues()
+
+
+
+
+getObservableValue
+
+fun < K , V > ObservableMap < K , V > . getObservableValue ( key : K ) : ObservableValue < V ? >
val nameToPerson: ObservableMap<String, Person> = (..)
+val john: ObservableValue<Person?> = nameToPerson.getObservableValue("John")
+
+
+
+
+getObservableValues
+
+fun < K , V > ObservableMap < K , V > . getObservableValues ( ) : ObservableList < V >
val nameToPerson: ObservableMap<String, Person> = (..)
+val people: ObservableList = nameToPerson.getObservableValues()
+
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.client.fxutils/kotlin.-function1/index.html b/docs/build/html/api/net.corda.client.fxutils/kotlin.-function1/index.html
new file mode 100644
index 0000000000..8a52720fe3
--- /dev/null
+++ b/docs/build/html/api/net.corda.client.fxutils/kotlin.-function1/index.html
@@ -0,0 +1,21 @@
+
+
+net.corda.client.fxutils.kotlin.Function1 -
+
+
+
+net.corda.client.fxutils / kotlin.Function1
+
+Extensions for kotlin.Function1
+
+
+
+
+lift
+
+fun < A , R > ( A ) -> R . lift ( arg0 : ObservableValue < A > ) : ObservableValue < R >
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.client.fxutils/kotlin.-function1/lift.html b/docs/build/html/api/net.corda.client.fxutils/kotlin.-function1/lift.html
new file mode 100644
index 0000000000..55796fedce
--- /dev/null
+++ b/docs/build/html/api/net.corda.client.fxutils/kotlin.-function1/lift.html
@@ -0,0 +1,15 @@
+
+
+lift -
+
+
+
+net.corda.client.fxutils / kotlin.Function1 / lift
+
+lift
+
+fun < A , R > ( A ) -> R . lift ( arg0 : ObservableValue < A > ) : ObservableValue < R >
+
+
+
+
diff --git a/docs/build/html/api/net.corda.client.fxutils/kotlin.-function2/index.html b/docs/build/html/api/net.corda.client.fxutils/kotlin.-function2/index.html
new file mode 100644
index 0000000000..916d54ff6e
--- /dev/null
+++ b/docs/build/html/api/net.corda.client.fxutils/kotlin.-function2/index.html
@@ -0,0 +1,21 @@
+
+
+net.corda.client.fxutils.kotlin.Function2 -
+
+
+
+net.corda.client.fxutils / kotlin.Function2
+
+Extensions for kotlin.Function2
+
+
+
+
+lift
+
+fun < A , B , R > ( A , B ) -> R . lift ( arg0 : ObservableValue < A > , arg1 : ObservableValue < B > ) : ObservableValue < R >
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.client.fxutils/kotlin.-function2/lift.html b/docs/build/html/api/net.corda.client.fxutils/kotlin.-function2/lift.html
new file mode 100644
index 0000000000..31458401b2
--- /dev/null
+++ b/docs/build/html/api/net.corda.client.fxutils/kotlin.-function2/lift.html
@@ -0,0 +1,15 @@
+
+
+lift -
+
+
+
+net.corda.client.fxutils / kotlin.Function2 / lift
+
+lift
+
+fun < A , B , R > ( A , B ) -> R . lift ( arg0 : ObservableValue < A > , arg1 : ObservableValue < B > ) : ObservableValue < R >
+
+
+
+
diff --git a/docs/build/html/api/net.corda.client.fxutils/kotlin.-function3/index.html b/docs/build/html/api/net.corda.client.fxutils/kotlin.-function3/index.html
new file mode 100644
index 0000000000..9e4cd9a7e6
--- /dev/null
+++ b/docs/build/html/api/net.corda.client.fxutils/kotlin.-function3/index.html
@@ -0,0 +1,21 @@
+
+
+net.corda.client.fxutils.kotlin.Function3 -
+
+
+
+net.corda.client.fxutils / kotlin.Function3
+
+Extensions for kotlin.Function3
+
+
+
+
+lift
+
+fun < A , B , C , R > ( A , B , C ) -> R . lift ( arg0 : ObservableValue < A > , arg1 : ObservableValue < B > , arg2 : ObservableValue < C > ) : ObservableValue < R >
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.client.fxutils/kotlin.-function3/lift.html b/docs/build/html/api/net.corda.client.fxutils/kotlin.-function3/lift.html
new file mode 100644
index 0000000000..20de09f178
--- /dev/null
+++ b/docs/build/html/api/net.corda.client.fxutils/kotlin.-function3/lift.html
@@ -0,0 +1,15 @@
+
+
+lift -
+
+
+
+net.corda.client.fxutils / kotlin.Function3 / lift
+
+lift
+
+fun < A , B , C , R > ( A , B , C ) -> R . lift ( arg0 : ObservableValue < A > , arg1 : ObservableValue < B > , arg2 : ObservableValue < C > ) : ObservableValue < R >
+
+
+
+
diff --git a/docs/build/html/api/net.corda.client.fxutils/kotlin.-function4/index.html b/docs/build/html/api/net.corda.client.fxutils/kotlin.-function4/index.html
new file mode 100644
index 0000000000..b7ec947aa2
--- /dev/null
+++ b/docs/build/html/api/net.corda.client.fxutils/kotlin.-function4/index.html
@@ -0,0 +1,21 @@
+
+
+net.corda.client.fxutils.kotlin.Function4 -
+
+
+
+net.corda.client.fxutils / kotlin.Function4
+
+Extensions for kotlin.Function4
+
+
+
+
+lift
+
+fun < A , B , C , D , R > ( A , B , C , D ) -> R . lift ( arg0 : ObservableValue < A > , arg1 : ObservableValue < B > , arg2 : ObservableValue < C > , arg3 : ObservableValue < D > ) : ObservableValue < R >
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.client.fxutils/kotlin.-function4/lift.html b/docs/build/html/api/net.corda.client.fxutils/kotlin.-function4/lift.html
new file mode 100644
index 0000000000..202a6e890c
--- /dev/null
+++ b/docs/build/html/api/net.corda.client.fxutils/kotlin.-function4/lift.html
@@ -0,0 +1,15 @@
+
+
+lift -
+
+
+
+net.corda.client.fxutils / kotlin.Function4 / lift
+
+lift
+
+fun < A , B , C , D , R > ( A , B , C , D ) -> R . lift ( arg0 : ObservableValue < A > , arg1 : ObservableValue < B > , arg2 : ObservableValue < C > , arg3 : ObservableValue < D > ) : ObservableValue < R >
+
+
+
+
diff --git a/docs/build/html/api/net.corda.client.fxutils/kotlin.collections.-collection/index.html b/docs/build/html/api/net.corda.client.fxutils/kotlin.collections.-collection/index.html
new file mode 100644
index 0000000000..89dfcd0a63
--- /dev/null
+++ b/docs/build/html/api/net.corda.client.fxutils/kotlin.collections.-collection/index.html
@@ -0,0 +1,24 @@
+
+
+net.corda.client.fxutils.kotlin.collections.Collection -
+
+
+
+net.corda.client.fxutils / kotlin.collections.Collection
+
+Extensions for kotlin.collections.Collection
+
+
+
+
+sequence
+
+fun < A > Collection < ObservableValue < out A > > . sequence ( ) : ObservableList < A >
data class Person(val height: ObservableValue)
+val people: List = listOf(alice, bob)
+val heights: ObservableList = people.map(Person::height).sequence()
+
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.client.fxutils/kotlin.collections.-collection/sequence.html b/docs/build/html/api/net.corda.client.fxutils/kotlin.collections.-collection/sequence.html
new file mode 100644
index 0000000000..c3b55b15c1
--- /dev/null
+++ b/docs/build/html/api/net.corda.client.fxutils/kotlin.collections.-collection/sequence.html
@@ -0,0 +1,18 @@
+
+
+sequence -
+
+
+
+net.corda.client.fxutils / kotlin.collections.Collection / sequence
+
+sequence
+
+fun < A > Collection < ObservableValue < out A > > . sequence ( ) : ObservableList < A >
+data class Person(val height: ObservableValue)
+val people: List = listOf(alice, bob)
+val heights: ObservableList = people.map(Person::height).sequence()
+
+
+
+
diff --git a/docs/build/html/api/net.corda.client.fxutils/lift.html b/docs/build/html/api/net.corda.client.fxutils/lift.html
new file mode 100644
index 0000000000..9086a0aa89
--- /dev/null
+++ b/docs/build/html/api/net.corda.client.fxutils/lift.html
@@ -0,0 +1,22 @@
+
+
+lift -
+
+
+
+net.corda.client.fxutils / lift
+
+lift
+
+fun < A > A . lift ( ) : ObservableValue < A >
+val aliceHeight: ObservableValue = (..)
+val bobHeight: ObservableValue = (..)
+fun sumHeight(a: Long, b: Long): Long { .. }
+val aliceBobSumHeight = ::sumHeight.lift(aliceHeight, bobHeight)
+val aliceHeightPlus2 = ::sumHeight.lift(aliceHeight, 2L.lift())
+
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.client.fxutils/record-as-association.html b/docs/build/html/api/net.corda.client.fxutils/record-as-association.html
new file mode 100644
index 0000000000..566616232c
--- /dev/null
+++ b/docs/build/html/api/net.corda.client.fxutils/record-as-association.html
@@ -0,0 +1,22 @@
+
+
+recordAsAssociation -
+
+
+
+net.corda.client.fxutils / recordAsAssociation
+
+recordAsAssociation
+
+fun < A , K > <ERROR CLASS> < A > . recordAsAssociation ( toKey : ( A ) -> K , merge : ( K , A , A ) -> A = { _key, _oldValue, newValue -> newValue }) : ObservableMap < K , out A >
+This variant simply associates each event with its key.
+Parameters
+
+toKey
- Function retrieving the key to associate with.
+
+
+merge
- The function to be called if there is an existing element at the key.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.client.fxutils/record-in-sequence.html b/docs/build/html/api/net.corda.client.fxutils/record-in-sequence.html
new file mode 100644
index 0000000000..0b626e748f
--- /dev/null
+++ b/docs/build/html/api/net.corda.client.fxutils/record-in-sequence.html
@@ -0,0 +1,16 @@
+
+
+recordInSequence -
+
+
+
+net.corda.client.fxutils / recordInSequence
+
+recordInSequence
+
+fun < A > <ERROR CLASS> < A > . recordInSequence ( ) : ObservableList < A >
+recordInSequence records incoming events on the rx.Observable in sequence.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.client.mock/-event-generator/-init-.html b/docs/build/html/api/net.corda.client.mock/-event-generator/-init-.html
new file mode 100644
index 0000000000..fa71a7101b
--- /dev/null
+++ b/docs/build/html/api/net.corda.client.mock/-event-generator/-init-.html
@@ -0,0 +1,16 @@
+
+
+EventGenerator. -
+
+
+
+net.corda.client.mock / EventGenerator / <init>
+
+<init>
+EventGenerator ( parties : List < Party > , notary : Party )
+Generator s for incoming/outgoing events to/from the WalletMonitorService . Internally it keeps track of owned
+state/ref pairs, but it doesnt necessarily generate "correct" events
+
+
+
+
diff --git a/docs/build/html/api/net.corda.client.mock/-event-generator/amount-generator.html b/docs/build/html/api/net.corda.client.mock/-event-generator/amount-generator.html
new file mode 100644
index 0000000000..dd1223e8ef
--- /dev/null
+++ b/docs/build/html/api/net.corda.client.mock/-event-generator/amount-generator.html
@@ -0,0 +1,15 @@
+
+
+EventGenerator.amountGenerator -
+
+
+
+net.corda.client.mock / EventGenerator / amountGenerator
+
+amountGenerator
+
+val amountGenerator : <ERROR CLASS>
+
+
+
+
diff --git a/docs/build/html/api/net.corda.client.mock/-event-generator/amount-issued-generator.html b/docs/build/html/api/net.corda.client.mock/-event-generator/amount-issued-generator.html
new file mode 100644
index 0000000000..3a5b5f303e
--- /dev/null
+++ b/docs/build/html/api/net.corda.client.mock/-event-generator/amount-issued-generator.html
@@ -0,0 +1,15 @@
+
+
+EventGenerator.amountIssuedGenerator -
+
+
+
+net.corda.client.mock / EventGenerator / amountIssuedGenerator
+
+amountIssuedGenerator
+
+val amountIssuedGenerator : <ERROR CLASS>
+
+
+
+
diff --git a/docs/build/html/api/net.corda.client.mock/-event-generator/cash-state-generator.html b/docs/build/html/api/net.corda.client.mock/-event-generator/cash-state-generator.html
new file mode 100644
index 0000000000..3642d7f044
--- /dev/null
+++ b/docs/build/html/api/net.corda.client.mock/-event-generator/cash-state-generator.html
@@ -0,0 +1,15 @@
+
+
+EventGenerator.cashStateGenerator -
+
+
+
+net.corda.client.mock / EventGenerator / cashStateGenerator
+
+cashStateGenerator
+
+val cashStateGenerator : <ERROR CLASS>
+
+
+
+
diff --git a/docs/build/html/api/net.corda.client.mock/-event-generator/client-to-service-command-generator.html b/docs/build/html/api/net.corda.client.mock/-event-generator/client-to-service-command-generator.html
new file mode 100644
index 0000000000..09c9117879
--- /dev/null
+++ b/docs/build/html/api/net.corda.client.mock/-event-generator/client-to-service-command-generator.html
@@ -0,0 +1,15 @@
+
+
+EventGenerator.clientToServiceCommandGenerator -
+
+
+
+net.corda.client.mock / EventGenerator / clientToServiceCommandGenerator
+
+clientToServiceCommandGenerator
+
+val clientToServiceCommandGenerator : <ERROR CLASS>
+
+
+
+
diff --git a/docs/build/html/api/net.corda.client.mock/-event-generator/consumed-generator.html b/docs/build/html/api/net.corda.client.mock/-event-generator/consumed-generator.html
new file mode 100644
index 0000000000..378ea1633e
--- /dev/null
+++ b/docs/build/html/api/net.corda.client.mock/-event-generator/consumed-generator.html
@@ -0,0 +1,15 @@
+
+
+EventGenerator.consumedGenerator -
+
+
+
+net.corda.client.mock / EventGenerator / consumedGenerator
+
+consumedGenerator
+
+val consumedGenerator : Generator < Set < StateRef > >
+
+
+
+
diff --git a/docs/build/html/api/net.corda.client.mock/-event-generator/currencies.html b/docs/build/html/api/net.corda.client.mock/-event-generator/currencies.html
new file mode 100644
index 0000000000..8eb9c85770
--- /dev/null
+++ b/docs/build/html/api/net.corda.client.mock/-event-generator/currencies.html
@@ -0,0 +1,15 @@
+
+
+EventGenerator.currencies -
+
+
+
+net.corda.client.mock / EventGenerator / currencies
+
+currencies
+
+val currencies : <ERROR CLASS>
+
+
+
+
diff --git a/docs/build/html/api/net.corda.client.mock/-event-generator/currency-generator.html b/docs/build/html/api/net.corda.client.mock/-event-generator/currency-generator.html
new file mode 100644
index 0000000000..95bc628e17
--- /dev/null
+++ b/docs/build/html/api/net.corda.client.mock/-event-generator/currency-generator.html
@@ -0,0 +1,15 @@
+
+
+EventGenerator.currencyGenerator -
+
+
+
+net.corda.client.mock / EventGenerator / currencyGenerator
+
+currencyGenerator
+
+val currencyGenerator : <ERROR CLASS>
+
+
+
+
diff --git a/docs/build/html/api/net.corda.client.mock/-event-generator/exit-cash-generator.html b/docs/build/html/api/net.corda.client.mock/-event-generator/exit-cash-generator.html
new file mode 100644
index 0000000000..f24397ba7e
--- /dev/null
+++ b/docs/build/html/api/net.corda.client.mock/-event-generator/exit-cash-generator.html
@@ -0,0 +1,15 @@
+
+
+EventGenerator.exitCashGenerator -
+
+
+
+net.corda.client.mock / EventGenerator / exitCashGenerator
+
+exitCashGenerator
+
+val exitCashGenerator : <ERROR CLASS>
+
+
+
+
diff --git a/docs/build/html/api/net.corda.client.mock/-event-generator/index.html b/docs/build/html/api/net.corda.client.mock/-event-generator/index.html
new file mode 100644
index 0000000000..2d950ba8a5
--- /dev/null
+++ b/docs/build/html/api/net.corda.client.mock/-event-generator/index.html
@@ -0,0 +1,136 @@
+
+
+EventGenerator -
+
+
+
+net.corda.client.mock / EventGenerator
+
+EventGenerator
+class EventGenerator
+Generator s for incoming/outgoing events to/from the WalletMonitorService . Internally it keeps track of owned
+state/ref pairs, but it doesnt necessarily generate "correct" events
+
+
+Constructors
+
+
+
+
+<init>
+
+EventGenerator ( parties : List < Party > , notary : Party )
Generator s for incoming/outgoing events to/from the WalletMonitorService . Internally it keeps track of owned
+state/ref pairs, but it doesnt necessarily generate "correct" events
+
+
+
+
+Properties
+
+
+
diff --git a/docs/build/html/api/net.corda.client.mock/-event-generator/issue-cash-generator.html b/docs/build/html/api/net.corda.client.mock/-event-generator/issue-cash-generator.html
new file mode 100644
index 0000000000..121dd863cf
--- /dev/null
+++ b/docs/build/html/api/net.corda.client.mock/-event-generator/issue-cash-generator.html
@@ -0,0 +1,15 @@
+
+
+EventGenerator.issueCashGenerator -
+
+
+
+net.corda.client.mock / EventGenerator / issueCashGenerator
+
+issueCashGenerator
+
+val issueCashGenerator : <ERROR CLASS>
+
+
+
+
diff --git a/docs/build/html/api/net.corda.client.mock/-event-generator/issue-ref-generator.html b/docs/build/html/api/net.corda.client.mock/-event-generator/issue-ref-generator.html
new file mode 100644
index 0000000000..47399fd807
--- /dev/null
+++ b/docs/build/html/api/net.corda.client.mock/-event-generator/issue-ref-generator.html
@@ -0,0 +1,15 @@
+
+
+EventGenerator.issueRefGenerator -
+
+
+
+net.corda.client.mock / EventGenerator / issueRefGenerator
+
+issueRefGenerator
+
+val issueRefGenerator : Generator < OpaqueBytes >
+
+
+
+
diff --git a/docs/build/html/api/net.corda.client.mock/-event-generator/issuer-generator.html b/docs/build/html/api/net.corda.client.mock/-event-generator/issuer-generator.html
new file mode 100644
index 0000000000..74b8bd44a1
--- /dev/null
+++ b/docs/build/html/api/net.corda.client.mock/-event-generator/issuer-generator.html
@@ -0,0 +1,15 @@
+
+
+EventGenerator.issuerGenerator -
+
+
+
+net.corda.client.mock / EventGenerator / issuerGenerator
+
+issuerGenerator
+
+val issuerGenerator : Generator < PartyAndReference >
+
+
+
+
diff --git a/docs/build/html/api/net.corda.client.mock/-event-generator/move-cash-generator.html b/docs/build/html/api/net.corda.client.mock/-event-generator/move-cash-generator.html
new file mode 100644
index 0000000000..fa1d5bee0e
--- /dev/null
+++ b/docs/build/html/api/net.corda.client.mock/-event-generator/move-cash-generator.html
@@ -0,0 +1,15 @@
+
+
+EventGenerator.moveCashGenerator -
+
+
+
+net.corda.client.mock / EventGenerator / moveCashGenerator
+
+moveCashGenerator
+
+val moveCashGenerator : <ERROR CLASS>
+
+
+
+
diff --git a/docs/build/html/api/net.corda.client.mock/-event-generator/notary.html b/docs/build/html/api/net.corda.client.mock/-event-generator/notary.html
new file mode 100644
index 0000000000..7a9ad5ba19
--- /dev/null
+++ b/docs/build/html/api/net.corda.client.mock/-event-generator/notary.html
@@ -0,0 +1,15 @@
+
+
+EventGenerator.notary -
+
+
+
+net.corda.client.mock / EventGenerator / notary
+
+notary
+
+val notary : Party
+
+
+
+
diff --git a/docs/build/html/api/net.corda.client.mock/-event-generator/parties.html b/docs/build/html/api/net.corda.client.mock/-event-generator/parties.html
new file mode 100644
index 0000000000..4e14b70c4f
--- /dev/null
+++ b/docs/build/html/api/net.corda.client.mock/-event-generator/parties.html
@@ -0,0 +1,15 @@
+
+
+EventGenerator.parties -
+
+
+
+net.corda.client.mock / EventGenerator / parties
+
+parties
+
+val parties : List < Party >
+
+
+
+
diff --git a/docs/build/html/api/net.corda.client.mock/-event-generator/party-generator.html b/docs/build/html/api/net.corda.client.mock/-event-generator/party-generator.html
new file mode 100644
index 0000000000..1ba21d2839
--- /dev/null
+++ b/docs/build/html/api/net.corda.client.mock/-event-generator/party-generator.html
@@ -0,0 +1,15 @@
+
+
+EventGenerator.partyGenerator -
+
+
+
+net.corda.client.mock / EventGenerator / partyGenerator
+
+partyGenerator
+
+val partyGenerator : Generator < Party >
+
+
+
+
diff --git a/docs/build/html/api/net.corda.client.mock/-event-generator/produced-generator.html b/docs/build/html/api/net.corda.client.mock/-event-generator/produced-generator.html
new file mode 100644
index 0000000000..6f454a00a0
--- /dev/null
+++ b/docs/build/html/api/net.corda.client.mock/-event-generator/produced-generator.html
@@ -0,0 +1,15 @@
+
+
+EventGenerator.producedGenerator -
+
+
+
+net.corda.client.mock / EventGenerator / producedGenerator
+
+producedGenerator
+
+val producedGenerator : Generator < Set < StateAndRef < ContractState > > >
+
+
+
+
diff --git a/docs/build/html/api/net.corda.client.mock/-event-generator/public-key-generator.html b/docs/build/html/api/net.corda.client.mock/-event-generator/public-key-generator.html
new file mode 100644
index 0000000000..423959179e
--- /dev/null
+++ b/docs/build/html/api/net.corda.client.mock/-event-generator/public-key-generator.html
@@ -0,0 +1,15 @@
+
+
+EventGenerator.publicKeyGenerator -
+
+
+
+net.corda.client.mock / EventGenerator / publicKeyGenerator
+
+publicKeyGenerator
+
+val publicKeyGenerator : <ERROR CLASS>
+
+
+
+
diff --git a/docs/build/html/api/net.corda.client.mock/-generator/-init-.html b/docs/build/html/api/net.corda.client.mock/-generator/-init-.html
new file mode 100644
index 0000000000..73a3961204
--- /dev/null
+++ b/docs/build/html/api/net.corda.client.mock/-generator/-init-.html
@@ -0,0 +1,36 @@
+
+
+Generator. -
+
+
+
+net.corda.client.mock / Generator / <init>
+
+<init>
+Generator ( generate : ( Random ) -> ErrorOr < A > )
+This file defines a basic Generator library for composing random generators of objects.
+An object of type Generator <A > captures a generator of A s. Generators may be composed in several ways.
+Generator.choice picks a generator from the specified list and runs that.
+Generator.frequency is similar to choice but the probability may be specified for each generator (it is normalised before picking).
+Generator.combine combines two generators of A and B with a function (A, B) -> C. Variants exist for other arities.
+Generator.bind sequences two generators using an arbitrary A->Generator function. Keep the usage of this
+function minimal as it may explode the stack, especially when using recursion.
+There are other utilities as well, the type of which are usually descriptive.
+Example:
+val birdNameGenerator = Generator.pickOne(listOf("raven", "pigeon"))
+val birdHeightGenerator = Generator.doubleRange(from = 10.0, to = 30.0)
+val birdGenerator = birdNameGenerator.combine(birdHeightGenerator) { name, height -> Bird(name, height) }
+val birdsGenerator = Generator.replicate(2, birdGenerator)
+val mammalsGenerator = Generator.sampleBernoulli(listOf(Mammal("fox"), Mammal("elephant")))
+val animalsGenerator = Generator.frequency(
+0.2 to birdsGenerator,
+0.8 to mammalsGenerator
+)
+val animals = animalsGenerator.generate(Random()).getOrThrow()
+The above will generate a random list of animals.
+
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.client.mock/-generator/bind.html b/docs/build/html/api/net.corda.client.mock/-generator/bind.html
new file mode 100644
index 0000000000..fa0ef19248
--- /dev/null
+++ b/docs/build/html/api/net.corda.client.mock/-generator/bind.html
@@ -0,0 +1,15 @@
+
+
+Generator.bind -
+
+
+
+net.corda.client.mock / Generator / bind
+
+bind
+
+fun < B > bind ( function : ( A ) -> Generator < B > ) : Generator < Nothing >
+
+
+
+
diff --git a/docs/build/html/api/net.corda.client.mock/-generator/choice.html b/docs/build/html/api/net.corda.client.mock/-generator/choice.html
new file mode 100644
index 0000000000..ef6fc4a5ba
--- /dev/null
+++ b/docs/build/html/api/net.corda.client.mock/-generator/choice.html
@@ -0,0 +1,15 @@
+
+
+Generator.choice -
+
+
+
+net.corda.client.mock / Generator / choice
+
+choice
+
+fun < A > choice ( generators : List < Generator < A > > ) : Generator < Nothing >
+
+
+
+
diff --git a/docs/build/html/api/net.corda.client.mock/-generator/combine.html b/docs/build/html/api/net.corda.client.mock/-generator/combine.html
new file mode 100644
index 0000000000..95cc26a4cc
--- /dev/null
+++ b/docs/build/html/api/net.corda.client.mock/-generator/combine.html
@@ -0,0 +1,21 @@
+
+
+Generator.combine -
+
+
+
+net.corda.client.mock / Generator / combine
+
+combine
+
+fun < B , R > combine ( other1 : Generator < B > , function : ( A , B ) -> R ) : Generator < R >
+
+fun < B , C , R > combine ( other1 : Generator < B > , other2 : Generator < C > , function : ( A , B , C ) -> R ) : Generator < R >
+
+fun < B , C , D , R > combine ( other1 : Generator < B > , other2 : Generator < C > , other3 : Generator < D > , function : ( A , B , C , D ) -> R ) : Generator < R >
+
+fun < B , C , D , E , R > combine ( other1 : Generator < B > , other2 : Generator < C > , other3 : Generator < D > , other4 : Generator < E > , function : ( A , B , C , D , E ) -> R ) : Generator < R >
+
+
+
+
diff --git a/docs/build/html/api/net.corda.client.mock/-generator/fail.html b/docs/build/html/api/net.corda.client.mock/-generator/fail.html
new file mode 100644
index 0000000000..0b360b3dfc
--- /dev/null
+++ b/docs/build/html/api/net.corda.client.mock/-generator/fail.html
@@ -0,0 +1,15 @@
+
+
+Generator.fail -
+
+
+
+net.corda.client.mock / Generator / fail
+
+fail
+
+fun < A > fail ( error : Exception ) : Generator < A >
+
+
+
+
diff --git a/docs/build/html/api/net.corda.client.mock/-generator/frequency.html b/docs/build/html/api/net.corda.client.mock/-generator/frequency.html
new file mode 100644
index 0000000000..eef8ffcccc
--- /dev/null
+++ b/docs/build/html/api/net.corda.client.mock/-generator/frequency.html
@@ -0,0 +1,15 @@
+
+
+Generator.frequency -
+
+
+
+net.corda.client.mock / Generator / frequency
+
+frequency
+
+fun < A > frequency ( vararg generators : <ERROR CLASS> < Double , Generator < A > > ) : Generator < A >
+
+
+
+
diff --git a/docs/build/html/api/net.corda.client.mock/-generator/generate.html b/docs/build/html/api/net.corda.client.mock/-generator/generate.html
new file mode 100644
index 0000000000..a7f0b7b6aa
--- /dev/null
+++ b/docs/build/html/api/net.corda.client.mock/-generator/generate.html
@@ -0,0 +1,15 @@
+
+
+Generator.generate -
+
+
+
+net.corda.client.mock / Generator / generate
+
+generate
+
+val generate : ( Random ) -> ErrorOr < A >
+
+
+
+
diff --git a/docs/build/html/api/net.corda.client.mock/-generator/impure.html b/docs/build/html/api/net.corda.client.mock/-generator/impure.html
new file mode 100644
index 0000000000..2df329945c
--- /dev/null
+++ b/docs/build/html/api/net.corda.client.mock/-generator/impure.html
@@ -0,0 +1,15 @@
+
+
+Generator.impure -
+
+
+
+net.corda.client.mock / Generator / impure
+
+impure
+
+fun < A > impure ( valueClosure : ( ) -> A ) : Generator < A >
+
+
+
+
diff --git a/docs/build/html/api/net.corda.client.mock/-generator/index.html b/docs/build/html/api/net.corda.client.mock/-generator/index.html
new file mode 100644
index 0000000000..f8ab7b74fc
--- /dev/null
+++ b/docs/build/html/api/net.corda.client.mock/-generator/index.html
@@ -0,0 +1,209 @@
+
+
+Generator -
+
+
+
+net.corda.client.mock / Generator
+
+Generator
+class Generator < out A >
+This file defines a basic Generator library for composing random generators of objects.
+An object of type Generator<A > captures a generator of A s. Generators may be composed in several ways.
+Generator.choice picks a generator from the specified list and runs that.
+Generator.frequency is similar to choice but the probability may be specified for each generator (it is normalised before picking).
+Generator.combine combines two generators of A and B with a function (A, B) -> C. Variants exist for other arities.
+Generator.bind sequences two generators using an arbitrary A->Generator function. Keep the usage of this
+function minimal as it may explode the stack, especially when using recursion.
+There are other utilities as well, the type of which are usually descriptive.
+Example:
+val birdNameGenerator = Generator.pickOne(listOf("raven", "pigeon"))
+val birdHeightGenerator = Generator.doubleRange(from = 10.0, to = 30.0)
+val birdGenerator = birdNameGenerator.combine(birdHeightGenerator) { name, height -> Bird(name, height) }
+val birdsGenerator = Generator.replicate(2, birdGenerator)
+val mammalsGenerator = Generator.sampleBernoulli(listOf(Mammal("fox"), Mammal("elephant")))
+val animalsGenerator = Generator.frequency(
+0.2 to birdsGenerator,
+0.8 to mammalsGenerator
+)
+val animals = animalsGenerator.generate(Random()).getOrThrow()
+The above will generate a random list of animals.
+
+
+
+
+Constructors
+
+
+
+
+<init>
+
+Generator ( generate : ( Random ) -> ErrorOr < A > )
This file defines a basic Generator library for composing random generators of objects.
+
+
+
+
+Properties
+
+Functions
+
+
+
+
+bind
+
+fun < B > bind ( function : ( A ) -> Generator < B > ) : Generator < Nothing >
+
+
+
+combine
+
+fun < B , R > combine ( other1 : Generator < B > , function : ( A , B ) -> R ) : Generator < R >
+fun < B , C , R > combine ( other1 : Generator < B > , other2 : Generator < C > , function : ( A , B , C ) -> R ) : Generator < R >
+fun < B , C , D , R > combine ( other1 : Generator < B > , other2 : Generator < C > , other3 : Generator < D > , function : ( A , B , C , D ) -> R ) : Generator < R >
+fun < B , C , D , E , R > combine ( other1 : Generator < B > , other2 : Generator < C > , other3 : Generator < D > , other4 : Generator < E > , function : ( A , B , C , D , E ) -> R ) : Generator < R >
+
+
+
+map
+
+fun < B > map ( function : ( A ) -> B ) : Generator < B >
+
+
+
+product
+
+fun < B > product ( other : Generator < ( A ) -> B > ) : Generator < B >
+
+
+
+Companion Object Functions
+
+
+
+
+choice
+
+fun < A > choice ( generators : List < Generator < A > > ) : Generator < Nothing >
+
+
+
+fail
+
+fun < A > fail ( error : Exception ) : Generator < A >
+
+
+
+frequency
+
+fun < A > frequency ( vararg generators : <ERROR CLASS> < Double , Generator < A > > ) : Generator < A >
+
+
+
+impure
+
+fun < A > impure ( valueClosure : ( ) -> A ) : Generator < A >
+
+
+
+pure
+
+fun < A > pure ( value : A ) : Generator < A >
+
+
+
+sequence
+
+fun < A > sequence ( generators : List < Generator < A > > ) : Generator < List < A > >
+
+
+
+success
+
+fun < A > success ( generate : ( Random ) -> A ) : Generator < A >
+
+
+
+Extension Functions
+
+
+
+
+generateOrFail
+
+fun < A > Generator < A > . generateOrFail ( random : Random , numberOfTries : Int = 1) : A
+
+
+
+Companion Object Extension Functions
+
+
+
+
+double
+
+fun Generator.Companion . double ( ) : Generator < Double >
+
+
+
+doubleRange
+
+fun Generator.Companion . doubleRange ( from : Double , to : Double ) : Generator < Double >
+
+
+
+int
+
+fun Generator.Companion . int ( ) : Generator < Int >
+
+
+
+intRange
+
+fun Generator.Companion . intRange ( from : Int , to : Int ) : Generator < Int >
+
+
+
+oneOf
+
+fun < A > Generator.Companion . oneOf ( list : List < A > ) : Generator < A >
+
+
+
+pickOne
+
+fun < A > Generator.Companion . pickOne ( list : List < A > ) : Generator < A >
+
+
+
+replicate
+
+fun < A > Generator.Companion . replicate ( number : Int , generator : Generator < A > ) : Generator < List < A > >
+
+
+
+replicatePoisson
+
+fun < A > Generator.Companion . replicatePoisson ( meanSize : Double , generator : Generator < A > ) : Generator < List < A > >
+
+
+
+sampleBernoulli
+
+fun < A > Generator.Companion . sampleBernoulli ( maxRatio : Double = 1.0, vararg collection : A ) : <ERROR CLASS>
+fun < A > Generator.Companion . sampleBernoulli ( collection : Collection < A > , maxRatio : Double = 1.0) : Generator < List < A > >
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.client.mock/-generator/map.html b/docs/build/html/api/net.corda.client.mock/-generator/map.html
new file mode 100644
index 0000000000..6e983d2db4
--- /dev/null
+++ b/docs/build/html/api/net.corda.client.mock/-generator/map.html
@@ -0,0 +1,15 @@
+
+
+Generator.map -
+
+
+
+net.corda.client.mock / Generator / map
+
+map
+
+fun < B > map ( function : ( A ) -> B ) : Generator < B >
+
+
+
+
diff --git a/docs/build/html/api/net.corda.client.mock/-generator/product.html b/docs/build/html/api/net.corda.client.mock/-generator/product.html
new file mode 100644
index 0000000000..b8dfbc1c0b
--- /dev/null
+++ b/docs/build/html/api/net.corda.client.mock/-generator/product.html
@@ -0,0 +1,15 @@
+
+
+Generator.product -
+
+
+
+net.corda.client.mock / Generator / product
+
+product
+
+fun < B > product ( other : Generator < ( A ) -> B > ) : Generator < B >
+
+
+
+
diff --git a/docs/build/html/api/net.corda.client.mock/-generator/pure.html b/docs/build/html/api/net.corda.client.mock/-generator/pure.html
new file mode 100644
index 0000000000..09ebb37917
--- /dev/null
+++ b/docs/build/html/api/net.corda.client.mock/-generator/pure.html
@@ -0,0 +1,15 @@
+
+
+Generator.pure -
+
+
+
+net.corda.client.mock / Generator / pure
+
+pure
+
+fun < A > pure ( value : A ) : Generator < A >
+
+
+
+
diff --git a/docs/build/html/api/net.corda.client.mock/-generator/sequence.html b/docs/build/html/api/net.corda.client.mock/-generator/sequence.html
new file mode 100644
index 0000000000..dd8a2d44a6
--- /dev/null
+++ b/docs/build/html/api/net.corda.client.mock/-generator/sequence.html
@@ -0,0 +1,15 @@
+
+
+Generator.sequence -
+
+
+
+net.corda.client.mock / Generator / sequence
+
+sequence
+
+fun < A > sequence ( generators : List < Generator < A > > ) : Generator < List < A > >
+
+
+
+
diff --git a/docs/build/html/api/net.corda.client.mock/-generator/success.html b/docs/build/html/api/net.corda.client.mock/-generator/success.html
new file mode 100644
index 0000000000..4a5dde9303
--- /dev/null
+++ b/docs/build/html/api/net.corda.client.mock/-generator/success.html
@@ -0,0 +1,15 @@
+
+
+Generator.success -
+
+
+
+net.corda.client.mock / Generator / success
+
+success
+
+fun < A > success ( generate : ( Random ) -> A ) : Generator < A >
+
+
+
+
diff --git a/docs/build/html/api/net.corda.client.mock/double-range.html b/docs/build/html/api/net.corda.client.mock/double-range.html
new file mode 100644
index 0000000000..2d4f584c77
--- /dev/null
+++ b/docs/build/html/api/net.corda.client.mock/double-range.html
@@ -0,0 +1,15 @@
+
+
+net.corda.client.mock.doubleRange -
+
+
+
+net.corda.client.mock / doubleRange
+
+doubleRange
+
+fun Generator.Companion . doubleRange ( from : Double , to : Double ) : Generator < Double >
+
+
+
+
diff --git a/docs/build/html/api/net.corda.client.mock/double.html b/docs/build/html/api/net.corda.client.mock/double.html
new file mode 100644
index 0000000000..daa95bdd83
--- /dev/null
+++ b/docs/build/html/api/net.corda.client.mock/double.html
@@ -0,0 +1,15 @@
+
+
+net.corda.client.mock.double -
+
+
+
+net.corda.client.mock / double
+
+double
+
+fun Generator.Companion . double ( ) : Generator < Double >
+
+
+
+
diff --git a/docs/build/html/api/net.corda.client.mock/generate-or-fail.html b/docs/build/html/api/net.corda.client.mock/generate-or-fail.html
new file mode 100644
index 0000000000..2c629335df
--- /dev/null
+++ b/docs/build/html/api/net.corda.client.mock/generate-or-fail.html
@@ -0,0 +1,15 @@
+
+
+generateOrFail -
+
+
+
+net.corda.client.mock / generateOrFail
+
+generateOrFail
+
+fun < A > Generator < A > . generateOrFail ( random : Random , numberOfTries : Int = 1) : A
+
+
+
+
diff --git a/docs/build/html/api/net.corda.client.mock/index.html b/docs/build/html/api/net.corda.client.mock/index.html
new file mode 100644
index 0000000000..c7f5560b39
--- /dev/null
+++ b/docs/build/html/api/net.corda.client.mock/index.html
@@ -0,0 +1,102 @@
+
+
+net.corda.client.mock -
+
+
+
+net.corda.client.mock
+
+Package net.corda.client.mock
+Types
+
+
+
+
+EventGenerator
+
+class EventGenerator
Generator s for incoming/outgoing events to/from the WalletMonitorService . Internally it keeps track of owned
+state/ref pairs, but it doesnt necessarily generate "correct" events
+
+
+
+
+Generator
+
+class Generator < out A >
This file defines a basic Generator library for composing random generators of objects.
+
+
+
+
+Functions
+
+Companion Object Functions
+
+
+
+
+double
+
+fun Generator.Companion . double ( ) : Generator < Double >
+
+
+
+doubleRange
+
+fun Generator.Companion . doubleRange ( from : Double , to : Double ) : Generator < Double >
+
+
+
+int
+
+fun Generator.Companion . int ( ) : Generator < Int >
+
+
+
+intRange
+
+fun Generator.Companion . intRange ( from : Int , to : Int ) : Generator < Int >
+
+
+
+oneOf
+
+fun < A > Generator.Companion . oneOf ( list : List < A > ) : Generator < A >
+
+
+
+pickOne
+
+fun < A > Generator.Companion . pickOne ( list : List < A > ) : Generator < A >
+
+
+
+replicate
+
+fun < A > Generator.Companion . replicate ( number : Int , generator : Generator < A > ) : Generator < List < A > >
+
+
+
+replicatePoisson
+
+fun < A > Generator.Companion . replicatePoisson ( meanSize : Double , generator : Generator < A > ) : Generator < List < A > >
+
+
+
+sampleBernoulli
+
+fun < A > Generator.Companion . sampleBernoulli ( maxRatio : Double = 1.0, vararg collection : A ) : <ERROR CLASS>
+fun < A > Generator.Companion . sampleBernoulli ( collection : Collection < A > , maxRatio : Double = 1.0) : Generator < List < A > >
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.client.mock/int-range.html b/docs/build/html/api/net.corda.client.mock/int-range.html
new file mode 100644
index 0000000000..a68fb3a15b
--- /dev/null
+++ b/docs/build/html/api/net.corda.client.mock/int-range.html
@@ -0,0 +1,15 @@
+
+
+net.corda.client.mock.intRange -
+
+
+
+net.corda.client.mock / intRange
+
+intRange
+
+fun Generator.Companion . intRange ( from : Int , to : Int ) : Generator < Int >
+
+
+
+
diff --git a/docs/build/html/api/net.corda.client.mock/int.html b/docs/build/html/api/net.corda.client.mock/int.html
new file mode 100644
index 0000000000..b30f39967e
--- /dev/null
+++ b/docs/build/html/api/net.corda.client.mock/int.html
@@ -0,0 +1,15 @@
+
+
+net.corda.client.mock.int -
+
+
+
+net.corda.client.mock / int
+
+int
+
+fun Generator.Companion . int ( ) : Generator < Int >
+
+
+
+
diff --git a/docs/build/html/api/net.corda.client.mock/one-of.html b/docs/build/html/api/net.corda.client.mock/one-of.html
new file mode 100644
index 0000000000..b935c4dffb
--- /dev/null
+++ b/docs/build/html/api/net.corda.client.mock/one-of.html
@@ -0,0 +1,15 @@
+
+
+net.corda.client.mock.oneOf -
+
+
+
+net.corda.client.mock / oneOf
+
+oneOf
+
+fun < A > Generator.Companion . oneOf ( list : List < A > ) : Generator < A >
+
+
+
+
diff --git a/docs/build/html/api/net.corda.client.mock/pick-one.html b/docs/build/html/api/net.corda.client.mock/pick-one.html
new file mode 100644
index 0000000000..9731367a28
--- /dev/null
+++ b/docs/build/html/api/net.corda.client.mock/pick-one.html
@@ -0,0 +1,15 @@
+
+
+net.corda.client.mock.pickOne -
+
+
+
+net.corda.client.mock / pickOne
+
+pickOne
+
+fun < A > Generator.Companion . pickOne ( list : List < A > ) : Generator < A >
+
+
+
+
diff --git a/docs/build/html/api/net.corda.client.mock/replicate-poisson.html b/docs/build/html/api/net.corda.client.mock/replicate-poisson.html
new file mode 100644
index 0000000000..04c62e53ba
--- /dev/null
+++ b/docs/build/html/api/net.corda.client.mock/replicate-poisson.html
@@ -0,0 +1,15 @@
+
+
+net.corda.client.mock.replicatePoisson -
+
+
+
+net.corda.client.mock / replicatePoisson
+
+replicatePoisson
+
+fun < A > Generator.Companion . replicatePoisson ( meanSize : Double , generator : Generator < A > ) : Generator < List < A > >
+
+
+
+
diff --git a/docs/build/html/api/net.corda.client.mock/replicate.html b/docs/build/html/api/net.corda.client.mock/replicate.html
new file mode 100644
index 0000000000..edd9aa4468
--- /dev/null
+++ b/docs/build/html/api/net.corda.client.mock/replicate.html
@@ -0,0 +1,15 @@
+
+
+net.corda.client.mock.replicate -
+
+
+
+net.corda.client.mock / replicate
+
+replicate
+
+fun < A > Generator.Companion . replicate ( number : Int , generator : Generator < A > ) : Generator < List < A > >
+
+
+
+
diff --git a/docs/build/html/api/net.corda.client.mock/sample-bernoulli.html b/docs/build/html/api/net.corda.client.mock/sample-bernoulli.html
new file mode 100644
index 0000000000..6cdb7fff38
--- /dev/null
+++ b/docs/build/html/api/net.corda.client.mock/sample-bernoulli.html
@@ -0,0 +1,17 @@
+
+
+net.corda.client.mock.sampleBernoulli -
+
+
+
+net.corda.client.mock / sampleBernoulli
+
+sampleBernoulli
+
+fun < A > Generator.Companion . sampleBernoulli ( maxRatio : Double = 1.0, vararg collection : A ) : <ERROR CLASS>
+
+fun < A > Generator.Companion . sampleBernoulli ( collection : Collection < A > , maxRatio : Double = 1.0) : Generator < List < A > >
+
+
+
+
diff --git a/docs/build/html/api/net.corda.client.model/-contract-state-model/-init-.html b/docs/build/html/api/net.corda.client.model/-contract-state-model/-init-.html
new file mode 100644
index 0000000000..405b2c27bb
--- /dev/null
+++ b/docs/build/html/api/net.corda.client.model/-contract-state-model/-init-.html
@@ -0,0 +1,15 @@
+
+
+ContractStateModel. -
+
+
+
+net.corda.client.model / ContractStateModel / <init>
+
+<init>
+ContractStateModel ( )
+This model exposes the list of owned contract states.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.client.model/-contract-state-model/cash-states-diff.html b/docs/build/html/api/net.corda.client.model/-contract-state-model/cash-states-diff.html
new file mode 100644
index 0000000000..04e239cba8
--- /dev/null
+++ b/docs/build/html/api/net.corda.client.model/-contract-state-model/cash-states-diff.html
@@ -0,0 +1,15 @@
+
+
+ContractStateModel.cashStatesDiff -
+
+
+
+net.corda.client.model / ContractStateModel / cashStatesDiff
+
+cashStatesDiff
+
+val cashStatesDiff : <ERROR CLASS> < Diff < State > >
+
+
+
+
diff --git a/docs/build/html/api/net.corda.client.model/-contract-state-model/cash-states.html b/docs/build/html/api/net.corda.client.model/-contract-state-model/cash-states.html
new file mode 100644
index 0000000000..a25e14b515
--- /dev/null
+++ b/docs/build/html/api/net.corda.client.model/-contract-state-model/cash-states.html
@@ -0,0 +1,15 @@
+
+
+ContractStateModel.cashStates -
+
+
+
+net.corda.client.model / ContractStateModel / cashStates
+
+cashStates
+
+val cashStates : ObservableList < StateAndRef < State > >
+
+
+
+
diff --git a/docs/build/html/api/net.corda.client.model/-contract-state-model/contract-states-diff.html b/docs/build/html/api/net.corda.client.model/-contract-state-model/contract-states-diff.html
new file mode 100644
index 0000000000..da1b11faea
--- /dev/null
+++ b/docs/build/html/api/net.corda.client.model/-contract-state-model/contract-states-diff.html
@@ -0,0 +1,15 @@
+
+
+ContractStateModel.contractStatesDiff -
+
+
+
+net.corda.client.model / ContractStateModel / contractStatesDiff
+
+contractStatesDiff
+
+val contractStatesDiff : <ERROR CLASS> < Diff < ContractState > >
+
+
+
+
diff --git a/docs/build/html/api/net.corda.client.model/-contract-state-model/index.html b/docs/build/html/api/net.corda.client.model/-contract-state-model/index.html
new file mode 100644
index 0000000000..3d59c97957
--- /dev/null
+++ b/docs/build/html/api/net.corda.client.model/-contract-state-model/index.html
@@ -0,0 +1,50 @@
+
+
+ContractStateModel -
+
+
+
+net.corda.client.model / ContractStateModel
+
+ContractStateModel
+class ContractStateModel
+This model exposes the list of owned contract states.
+
+
+Constructors
+
+
+
+
+<init>
+
+ContractStateModel ( )
This model exposes the list of owned contract states.
+
+
+
+
+Properties
+
+
+
diff --git a/docs/build/html/api/net.corda.client.model/-diff/-init-.html b/docs/build/html/api/net.corda.client.model/-diff/-init-.html
new file mode 100644
index 0000000000..a2b70ab839
--- /dev/null
+++ b/docs/build/html/api/net.corda.client.model/-diff/-init-.html
@@ -0,0 +1,14 @@
+
+
+Diff. -
+
+
+
+net.corda.client.model / Diff / <init>
+
+<init>
+Diff ( added : Collection < StateAndRef < T > > , removed : Collection < StateRef > )
+
+
+
+
diff --git a/docs/build/html/api/net.corda.client.model/-diff/added.html b/docs/build/html/api/net.corda.client.model/-diff/added.html
new file mode 100644
index 0000000000..76a6c37cf2
--- /dev/null
+++ b/docs/build/html/api/net.corda.client.model/-diff/added.html
@@ -0,0 +1,15 @@
+
+
+Diff.added -
+
+
+
+net.corda.client.model / Diff / added
+
+added
+
+val added : Collection < StateAndRef < T > >
+
+
+
+
diff --git a/docs/build/html/api/net.corda.client.model/-diff/index.html b/docs/build/html/api/net.corda.client.model/-diff/index.html
new file mode 100644
index 0000000000..613885e761
--- /dev/null
+++ b/docs/build/html/api/net.corda.client.model/-diff/index.html
@@ -0,0 +1,42 @@
+
+
+Diff -
+
+
+
+net.corda.client.model / Diff
+
+Diff
+data class Diff < out T : ContractState >
+
+
+Constructors
+
+Properties
+
+
+
diff --git a/docs/build/html/api/net.corda.client.model/-diff/removed.html b/docs/build/html/api/net.corda.client.model/-diff/removed.html
new file mode 100644
index 0000000000..ee7b681d2e
--- /dev/null
+++ b/docs/build/html/api/net.corda.client.model/-diff/removed.html
@@ -0,0 +1,15 @@
+
+
+Diff.removed -
+
+
+
+net.corda.client.model / Diff / removed
+
+removed
+
+val removed : Collection < StateRef >
+
+
+
+
diff --git a/docs/build/html/api/net.corda.client.model/-exchange-rate-model/-init-.html b/docs/build/html/api/net.corda.client.model/-exchange-rate-model/-init-.html
new file mode 100644
index 0000000000..6009f59f94
--- /dev/null
+++ b/docs/build/html/api/net.corda.client.model/-exchange-rate-model/-init-.html
@@ -0,0 +1,16 @@
+
+
+ExchangeRateModel. -
+
+
+
+net.corda.client.model / ExchangeRateModel / <init>
+
+<init>
+ExchangeRateModel ( )
+This model provides an exchange rate from arbitrary currency to arbitrary currency.
+TODO hook up an actual oracle
+
+
+
+
diff --git a/docs/build/html/api/net.corda.client.model/-exchange-rate-model/exchange-rate.html b/docs/build/html/api/net.corda.client.model/-exchange-rate-model/exchange-rate.html
new file mode 100644
index 0000000000..a11bbb4c4a
--- /dev/null
+++ b/docs/build/html/api/net.corda.client.model/-exchange-rate-model/exchange-rate.html
@@ -0,0 +1,15 @@
+
+
+ExchangeRateModel.exchangeRate -
+
+
+
+net.corda.client.model / ExchangeRateModel / exchangeRate
+
+exchangeRate
+
+val exchangeRate : ObservableValue < ExchangeRate >
+
+
+
+
diff --git a/docs/build/html/api/net.corda.client.model/-exchange-rate-model/index.html b/docs/build/html/api/net.corda.client.model/-exchange-rate-model/index.html
new file mode 100644
index 0000000000..16ca6c4a32
--- /dev/null
+++ b/docs/build/html/api/net.corda.client.model/-exchange-rate-model/index.html
@@ -0,0 +1,40 @@
+
+
+ExchangeRateModel -
+
+
+
+net.corda.client.model / ExchangeRateModel
+
+ExchangeRateModel
+class ExchangeRateModel
+This model provides an exchange rate from arbitrary currency to arbitrary currency.
+TODO hook up an actual oracle
+
+
+Constructors
+
+
+
+
+<init>
+
+ExchangeRateModel ( )
This model provides an exchange rate from arbitrary currency to arbitrary currency.
+TODO hook up an actual oracle
+
+
+
+
+Properties
+
+
+
diff --git a/docs/build/html/api/net.corda.client.model/-exchange-rate/index.html b/docs/build/html/api/net.corda.client.model/-exchange-rate/index.html
new file mode 100644
index 0000000000..998c30455c
--- /dev/null
+++ b/docs/build/html/api/net.corda.client.model/-exchange-rate/index.html
@@ -0,0 +1,42 @@
+
+
+ExchangeRate -
+
+
+
+net.corda.client.model / ExchangeRate
+
+ExchangeRate
+interface ExchangeRate
+
+
+Functions
+
+Extension Functions
+
+
+
diff --git a/docs/build/html/api/net.corda.client.model/-exchange-rate/rate.html b/docs/build/html/api/net.corda.client.model/-exchange-rate/rate.html
new file mode 100644
index 0000000000..a4c215a55f
--- /dev/null
+++ b/docs/build/html/api/net.corda.client.model/-exchange-rate/rate.html
@@ -0,0 +1,15 @@
+
+
+ExchangeRate.rate -
+
+
+
+net.corda.client.model / ExchangeRate / rate
+
+rate
+
+abstract fun rate ( from : Currency , to : Currency ) : Double
+
+
+
+
diff --git a/docs/build/html/api/net.corda.client.model/-gathered-transaction-data-model/-init-.html b/docs/build/html/api/net.corda.client.model/-gathered-transaction-data-model/-init-.html
new file mode 100644
index 0000000000..292f579673
--- /dev/null
+++ b/docs/build/html/api/net.corda.client.model/-gathered-transaction-data-model/-init-.html
@@ -0,0 +1,15 @@
+
+
+GatheredTransactionDataModel. -
+
+
+
+net.corda.client.model / GatheredTransactionDataModel / <init>
+
+<init>
+GatheredTransactionDataModel ( )
+This model provides an observable list of transactions and what state machines/protocols recorded them
+
+
+
+
diff --git a/docs/build/html/api/net.corda.client.model/-gathered-transaction-data-model/gathered-transaction-data-list.html b/docs/build/html/api/net.corda.client.model/-gathered-transaction-data-model/gathered-transaction-data-list.html
new file mode 100644
index 0000000000..39260881a0
--- /dev/null
+++ b/docs/build/html/api/net.corda.client.model/-gathered-transaction-data-model/gathered-transaction-data-list.html
@@ -0,0 +1,16 @@
+
+
+GatheredTransactionDataModel.gatheredTransactionDataList -
+
+
+
+net.corda.client.model / GatheredTransactionDataModel / gatheredTransactionDataList
+
+gatheredTransactionDataList
+
+val gatheredTransactionDataList : <ERROR CLASS>
+We JOIN the transaction list with state machines
+
+
+
+
diff --git a/docs/build/html/api/net.corda.client.model/-gathered-transaction-data-model/index.html b/docs/build/html/api/net.corda.client.model/-gathered-transaction-data-model/index.html
new file mode 100644
index 0000000000..06dbb8b825
--- /dev/null
+++ b/docs/build/html/api/net.corda.client.model/-gathered-transaction-data-model/index.html
@@ -0,0 +1,39 @@
+
+
+GatheredTransactionDataModel -
+
+
+
+net.corda.client.model / GatheredTransactionDataModel
+
+GatheredTransactionDataModel
+class GatheredTransactionDataModel
+This model provides an observable list of transactions and what state machines/protocols recorded them
+
+
+Constructors
+
+
+
+
+<init>
+
+GatheredTransactionDataModel ( )
This model provides an observable list of transactions and what state machines/protocols recorded them
+
+
+
+
+Properties
+
+
+
+
+gatheredTransactionDataList
+
+val gatheredTransactionDataList : <ERROR CLASS>
We JOIN the transaction list with state machines
+
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.client.model/-gathered-transaction-data/-init-.html b/docs/build/html/api/net.corda.client.model/-gathered-transaction-data/-init-.html
new file mode 100644
index 0000000000..f0c123d409
--- /dev/null
+++ b/docs/build/html/api/net.corda.client.model/-gathered-transaction-data/-init-.html
@@ -0,0 +1,14 @@
+
+
+GatheredTransactionData. -
+
+
+
+net.corda.client.model / GatheredTransactionData / <init>
+
+<init>
+GatheredTransactionData ( transaction : PartiallyResolvedTransaction , stateMachines : ObservableList < out StateMachineData > )
+
+
+
+
diff --git a/docs/build/html/api/net.corda.client.model/-gathered-transaction-data/index.html b/docs/build/html/api/net.corda.client.model/-gathered-transaction-data/index.html
new file mode 100644
index 0000000000..65dd9612ec
--- /dev/null
+++ b/docs/build/html/api/net.corda.client.model/-gathered-transaction-data/index.html
@@ -0,0 +1,42 @@
+
+
+GatheredTransactionData -
+
+
+
+net.corda.client.model / GatheredTransactionData
+
+GatheredTransactionData
+data class GatheredTransactionData
+
+
+Constructors
+
+Properties
+
+
+
diff --git a/docs/build/html/api/net.corda.client.model/-gathered-transaction-data/state-machines.html b/docs/build/html/api/net.corda.client.model/-gathered-transaction-data/state-machines.html
new file mode 100644
index 0000000000..f2c6b6c426
--- /dev/null
+++ b/docs/build/html/api/net.corda.client.model/-gathered-transaction-data/state-machines.html
@@ -0,0 +1,15 @@
+
+
+GatheredTransactionData.stateMachines -
+
+
+
+net.corda.client.model / GatheredTransactionData / stateMachines
+
+stateMachines
+
+val stateMachines : ObservableList < out StateMachineData >
+
+
+
+
diff --git a/docs/build/html/api/net.corda.client.model/-gathered-transaction-data/transaction.html b/docs/build/html/api/net.corda.client.model/-gathered-transaction-data/transaction.html
new file mode 100644
index 0000000000..35bae0f3c1
--- /dev/null
+++ b/docs/build/html/api/net.corda.client.model/-gathered-transaction-data/transaction.html
@@ -0,0 +1,15 @@
+
+
+GatheredTransactionData.transaction -
+
+
+
+net.corda.client.model / GatheredTransactionData / transaction
+
+transaction
+
+val transaction : PartiallyResolvedTransaction
+
+
+
+
diff --git a/docs/build/html/api/net.corda.client.model/-models/get.html b/docs/build/html/api/net.corda.client.model/-models/get.html
new file mode 100644
index 0000000000..19a912e93c
--- /dev/null
+++ b/docs/build/html/api/net.corda.client.model/-models/get.html
@@ -0,0 +1,17 @@
+
+
+Models.get -
+
+
+
+net.corda.client.model / Models / get
+
+get
+
+fun < M : Any > get ( klass : KClass < M > , origin : KClass < * > ) : M
+
+inline fun < reified M : Any > get ( origin : KClass < * > ) : M
+
+
+
+
diff --git a/docs/build/html/api/net.corda.client.model/-models/index.html b/docs/build/html/api/net.corda.client.model/-models/index.html
new file mode 100644
index 0000000000..ee2040323f
--- /dev/null
+++ b/docs/build/html/api/net.corda.client.model/-models/index.html
@@ -0,0 +1,32 @@
+
+
+Models -
+
+
+
+net.corda.client.model / Models
+
+Models
+object Models
+
+
+Functions
+
+
+
+
+get
+
+fun < M : Any > get ( klass : KClass < M > , origin : KClass < * > ) : M
+fun < M : Any > get ( origin : KClass < * > ) : M
+
+
+
+initModel
+
+fun < M : Any > initModel ( klass : KClass < M > ) : <ERROR CLASS>
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.client.model/-models/init-model.html b/docs/build/html/api/net.corda.client.model/-models/init-model.html
new file mode 100644
index 0000000000..8166c3445d
--- /dev/null
+++ b/docs/build/html/api/net.corda.client.model/-models/init-model.html
@@ -0,0 +1,15 @@
+
+
+Models.initModel -
+
+
+
+net.corda.client.model / Models / initModel
+
+initModel
+
+fun < M : Any > initModel ( klass : KClass < M > ) : <ERROR CLASS>
+
+
+
+
diff --git a/docs/build/html/api/net.corda.client.model/-network-identity-model/-init-.html b/docs/build/html/api/net.corda.client.model/-network-identity-model/-init-.html
new file mode 100644
index 0000000000..523461d547
--- /dev/null
+++ b/docs/build/html/api/net.corda.client.model/-network-identity-model/-init-.html
@@ -0,0 +1,14 @@
+
+
+NetworkIdentityModel. -
+
+
+
+net.corda.client.model / NetworkIdentityModel / <init>
+
+<init>
+NetworkIdentityModel ( )
+
+
+
+
diff --git a/docs/build/html/api/net.corda.client.model/-network-identity-model/index.html b/docs/build/html/api/net.corda.client.model/-network-identity-model/index.html
new file mode 100644
index 0000000000..282e27354c
--- /dev/null
+++ b/docs/build/html/api/net.corda.client.model/-network-identity-model/index.html
@@ -0,0 +1,59 @@
+
+
+NetworkIdentityModel -
+
+
+
+net.corda.client.model / NetworkIdentityModel
+
+NetworkIdentityModel
+class NetworkIdentityModel
+
+
+Constructors
+
+
+
+
+<init>
+
+NetworkIdentityModel ( )
+
+
+
+Properties
+
+Functions
+
+
+
diff --git a/docs/build/html/api/net.corda.client.model/-network-identity-model/lookup.html b/docs/build/html/api/net.corda.client.model/-network-identity-model/lookup.html
new file mode 100644
index 0000000000..34631f507c
--- /dev/null
+++ b/docs/build/html/api/net.corda.client.model/-network-identity-model/lookup.html
@@ -0,0 +1,15 @@
+
+
+NetworkIdentityModel.lookup -
+
+
+
+net.corda.client.model / NetworkIdentityModel / lookup
+
+lookup
+
+fun lookup ( publicKey : PublicKey ) : NodeInfo ?
+
+
+
+
diff --git a/docs/build/html/api/net.corda.client.model/-network-identity-model/my-identity.html b/docs/build/html/api/net.corda.client.model/-network-identity-model/my-identity.html
new file mode 100644
index 0000000000..0e5b32b506
--- /dev/null
+++ b/docs/build/html/api/net.corda.client.model/-network-identity-model/my-identity.html
@@ -0,0 +1,15 @@
+
+
+NetworkIdentityModel.myIdentity -
+
+
+
+net.corda.client.model / NetworkIdentityModel / myIdentity
+
+myIdentity
+
+val myIdentity : ObservableValue < NodeInfo ? >
+
+
+
+
diff --git a/docs/build/html/api/net.corda.client.model/-network-identity-model/notaries.html b/docs/build/html/api/net.corda.client.model/-network-identity-model/notaries.html
new file mode 100644
index 0000000000..cbc2226980
--- /dev/null
+++ b/docs/build/html/api/net.corda.client.model/-network-identity-model/notaries.html
@@ -0,0 +1,15 @@
+
+
+NetworkIdentityModel.notaries -
+
+
+
+net.corda.client.model / NetworkIdentityModel / notaries
+
+notaries
+
+val notaries : ObservableList < NodeInfo >
+
+
+
+
diff --git a/docs/build/html/api/net.corda.client.model/-network-identity-model/parties.html b/docs/build/html/api/net.corda.client.model/-network-identity-model/parties.html
new file mode 100644
index 0000000000..769837d74c
--- /dev/null
+++ b/docs/build/html/api/net.corda.client.model/-network-identity-model/parties.html
@@ -0,0 +1,15 @@
+
+
+NetworkIdentityModel.parties -
+
+
+
+net.corda.client.model / NetworkIdentityModel / parties
+
+parties
+
+val parties : ObservableList < NodeInfo >
+
+
+
+
diff --git a/docs/build/html/api/net.corda.client.model/-node-monitor-model/-init-.html b/docs/build/html/api/net.corda.client.model/-node-monitor-model/-init-.html
new file mode 100644
index 0000000000..330fb3f4ec
--- /dev/null
+++ b/docs/build/html/api/net.corda.client.model/-node-monitor-model/-init-.html
@@ -0,0 +1,15 @@
+
+
+NodeMonitorModel. -
+
+
+
+net.corda.client.model / NodeMonitorModel / <init>
+
+<init>
+NodeMonitorModel ( )
+This model exposes raw event streams to and from the node.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.client.model/-node-monitor-model/client-to-service.html b/docs/build/html/api/net.corda.client.model/-node-monitor-model/client-to-service.html
new file mode 100644
index 0000000000..d602fbd328
--- /dev/null
+++ b/docs/build/html/api/net.corda.client.model/-node-monitor-model/client-to-service.html
@@ -0,0 +1,15 @@
+
+
+NodeMonitorModel.clientToService -
+
+
+
+net.corda.client.model / NodeMonitorModel / clientToService
+
+clientToService
+
+val clientToService : <ERROR CLASS> < ClientToServiceCommand >
+
+
+
+
diff --git a/docs/build/html/api/net.corda.client.model/-node-monitor-model/index.html b/docs/build/html/api/net.corda.client.model/-node-monitor-model/index.html
new file mode 100644
index 0000000000..d783225164
--- /dev/null
+++ b/docs/build/html/api/net.corda.client.model/-node-monitor-model/index.html
@@ -0,0 +1,93 @@
+
+
+NodeMonitorModel -
+
+
+
+net.corda.client.model / NodeMonitorModel
+
+NodeMonitorModel
+class NodeMonitorModel
+This model exposes raw event streams to and from the node.
+
+
+Constructors
+
+
+
+
+<init>
+
+NodeMonitorModel ( )
This model exposes raw event streams to and from the node.
+
+
+
+
+Properties
+
+Functions
+
+
+
+
+register
+
+fun register ( nodeHostAndPort : <ERROR CLASS> , sslConfig : NodeSSLConfiguration , username : String , password : String ) : Unit
Register for updates to/from a given vault.
+TODO provide an unsubscribe mechanism
+
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.client.model/-node-monitor-model/network-map.html b/docs/build/html/api/net.corda.client.model/-node-monitor-model/network-map.html
new file mode 100644
index 0000000000..72e40a853a
--- /dev/null
+++ b/docs/build/html/api/net.corda.client.model/-node-monitor-model/network-map.html
@@ -0,0 +1,15 @@
+
+
+NodeMonitorModel.networkMap -
+
+
+
+net.corda.client.model / NodeMonitorModel / networkMap
+
+networkMap
+
+val networkMap : <ERROR CLASS> < MapChange >
+
+
+
+
diff --git a/docs/build/html/api/net.corda.client.model/-node-monitor-model/progress-tracking.html b/docs/build/html/api/net.corda.client.model/-node-monitor-model/progress-tracking.html
new file mode 100644
index 0000000000..c33c8eb1bd
--- /dev/null
+++ b/docs/build/html/api/net.corda.client.model/-node-monitor-model/progress-tracking.html
@@ -0,0 +1,15 @@
+
+
+NodeMonitorModel.progressTracking -
+
+
+
+net.corda.client.model / NodeMonitorModel / progressTracking
+
+progressTracking
+
+val progressTracking : <ERROR CLASS> < ProgressTrackingEvent >
+
+
+
+
diff --git a/docs/build/html/api/net.corda.client.model/-node-monitor-model/proxy-observable.html b/docs/build/html/api/net.corda.client.model/-node-monitor-model/proxy-observable.html
new file mode 100644
index 0000000000..15e89742a0
--- /dev/null
+++ b/docs/build/html/api/net.corda.client.model/-node-monitor-model/proxy-observable.html
@@ -0,0 +1,15 @@
+
+
+NodeMonitorModel.proxyObservable -
+
+
+
+net.corda.client.model / NodeMonitorModel / proxyObservable
+
+proxyObservable
+
+val proxyObservable : SimpleObjectProperty < CordaRPCOps ? >
+
+
+
+
diff --git a/docs/build/html/api/net.corda.client.model/-node-monitor-model/register.html b/docs/build/html/api/net.corda.client.model/-node-monitor-model/register.html
new file mode 100644
index 0000000000..57c9e5c625
--- /dev/null
+++ b/docs/build/html/api/net.corda.client.model/-node-monitor-model/register.html
@@ -0,0 +1,17 @@
+
+
+NodeMonitorModel.register -
+
+
+
+net.corda.client.model / NodeMonitorModel / register
+
+register
+
+fun register ( nodeHostAndPort : <ERROR CLASS> , sslConfig : NodeSSLConfiguration , username : String , password : String ) : Unit
+Register for updates to/from a given vault.
+TODO provide an unsubscribe mechanism
+
+
+
+
diff --git a/docs/build/html/api/net.corda.client.model/-node-monitor-model/state-machine-transaction-mapping.html b/docs/build/html/api/net.corda.client.model/-node-monitor-model/state-machine-transaction-mapping.html
new file mode 100644
index 0000000000..ca01afec19
--- /dev/null
+++ b/docs/build/html/api/net.corda.client.model/-node-monitor-model/state-machine-transaction-mapping.html
@@ -0,0 +1,15 @@
+
+
+NodeMonitorModel.stateMachineTransactionMapping -
+
+
+
+net.corda.client.model / NodeMonitorModel / stateMachineTransactionMapping
+
+stateMachineTransactionMapping
+
+val stateMachineTransactionMapping : <ERROR CLASS> < StateMachineTransactionMapping >
+
+
+
+
diff --git a/docs/build/html/api/net.corda.client.model/-node-monitor-model/state-machine-updates.html b/docs/build/html/api/net.corda.client.model/-node-monitor-model/state-machine-updates.html
new file mode 100644
index 0000000000..4c66268e5a
--- /dev/null
+++ b/docs/build/html/api/net.corda.client.model/-node-monitor-model/state-machine-updates.html
@@ -0,0 +1,15 @@
+
+
+NodeMonitorModel.stateMachineUpdates -
+
+
+
+net.corda.client.model / NodeMonitorModel / stateMachineUpdates
+
+stateMachineUpdates
+
+val stateMachineUpdates : <ERROR CLASS> < StateMachineUpdate >
+
+
+
+
diff --git a/docs/build/html/api/net.corda.client.model/-node-monitor-model/transactions.html b/docs/build/html/api/net.corda.client.model/-node-monitor-model/transactions.html
new file mode 100644
index 0000000000..6a060b2229
--- /dev/null
+++ b/docs/build/html/api/net.corda.client.model/-node-monitor-model/transactions.html
@@ -0,0 +1,15 @@
+
+
+NodeMonitorModel.transactions -
+
+
+
+net.corda.client.model / NodeMonitorModel / transactions
+
+transactions
+
+val transactions : <ERROR CLASS> < SignedTransaction >
+
+
+
+
diff --git a/docs/build/html/api/net.corda.client.model/-node-monitor-model/vault-updates.html b/docs/build/html/api/net.corda.client.model/-node-monitor-model/vault-updates.html
new file mode 100644
index 0000000000..f28a21a610
--- /dev/null
+++ b/docs/build/html/api/net.corda.client.model/-node-monitor-model/vault-updates.html
@@ -0,0 +1,15 @@
+
+
+NodeMonitorModel.vaultUpdates -
+
+
+
+net.corda.client.model / NodeMonitorModel / vaultUpdates
+
+vaultUpdates
+
+val vaultUpdates : <ERROR CLASS> < Update >
+
+
+
+
diff --git a/docs/build/html/api/net.corda.client.model/-partially-resolved-transaction/-init-.html b/docs/build/html/api/net.corda.client.model/-partially-resolved-transaction/-init-.html
new file mode 100644
index 0000000000..dc5aec9020
--- /dev/null
+++ b/docs/build/html/api/net.corda.client.model/-partially-resolved-transaction/-init-.html
@@ -0,0 +1,17 @@
+
+
+PartiallyResolvedTransaction. -
+
+
+
+net.corda.client.model / PartiallyResolvedTransaction / <init>
+
+<init>
+PartiallyResolvedTransaction ( transaction : SignedTransaction , inputs : List < ObservableValue < InputResolution > > )
+PartiallyResolvedTransaction holds a SignedTransaction that has zero or more inputs resolved. The intent is
+to prepare clients for cases where an input can only be resolved in the future/cannot be resolved at all (for example
+because of permissioning)
+
+
+
+
diff --git a/docs/build/html/api/net.corda.client.model/-partially-resolved-transaction/-input-resolution/-resolved/-init-.html b/docs/build/html/api/net.corda.client.model/-partially-resolved-transaction/-input-resolution/-resolved/-init-.html
new file mode 100644
index 0000000000..a51c4bcabd
--- /dev/null
+++ b/docs/build/html/api/net.corda.client.model/-partially-resolved-transaction/-input-resolution/-resolved/-init-.html
@@ -0,0 +1,14 @@
+
+
+PartiallyResolvedTransaction.InputResolution.Resolved. -
+
+
+
+net.corda.client.model / PartiallyResolvedTransaction / InputResolution / Resolved / <init>
+
+<init>
+Resolved ( stateAndRef : StateAndRef < ContractState > )
+
+
+
+
diff --git a/docs/build/html/api/net.corda.client.model/-partially-resolved-transaction/-input-resolution/-resolved/index.html b/docs/build/html/api/net.corda.client.model/-partially-resolved-transaction/-input-resolution/-resolved/index.html
new file mode 100644
index 0000000000..7521600053
--- /dev/null
+++ b/docs/build/html/api/net.corda.client.model/-partially-resolved-transaction/-input-resolution/-resolved/index.html
@@ -0,0 +1,47 @@
+
+
+PartiallyResolvedTransaction.InputResolution.Resolved -
+
+
+
+net.corda.client.model / PartiallyResolvedTransaction / InputResolution / Resolved
+
+Resolved
+class Resolved : InputResolution
+
+
+Constructors
+
+Properties
+
+Inherited Properties
+
+
+
diff --git a/docs/build/html/api/net.corda.client.model/-partially-resolved-transaction/-input-resolution/-resolved/state-and-ref.html b/docs/build/html/api/net.corda.client.model/-partially-resolved-transaction/-input-resolution/-resolved/state-and-ref.html
new file mode 100644
index 0000000000..ac2db0a307
--- /dev/null
+++ b/docs/build/html/api/net.corda.client.model/-partially-resolved-transaction/-input-resolution/-resolved/state-and-ref.html
@@ -0,0 +1,15 @@
+
+
+PartiallyResolvedTransaction.InputResolution.Resolved.stateAndRef -
+
+
+
+net.corda.client.model / PartiallyResolvedTransaction / InputResolution / Resolved / stateAndRef
+
+stateAndRef
+
+val stateAndRef : StateAndRef < ContractState >
+
+
+
+
diff --git a/docs/build/html/api/net.corda.client.model/-partially-resolved-transaction/-input-resolution/-unresolved/-init-.html b/docs/build/html/api/net.corda.client.model/-partially-resolved-transaction/-input-resolution/-unresolved/-init-.html
new file mode 100644
index 0000000000..482011c9fb
--- /dev/null
+++ b/docs/build/html/api/net.corda.client.model/-partially-resolved-transaction/-input-resolution/-unresolved/-init-.html
@@ -0,0 +1,14 @@
+
+
+PartiallyResolvedTransaction.InputResolution.Unresolved. -
+
+
+
+net.corda.client.model / PartiallyResolvedTransaction / InputResolution / Unresolved / <init>
+
+<init>
+Unresolved ( stateRef : StateRef )
+
+
+
+
diff --git a/docs/build/html/api/net.corda.client.model/-partially-resolved-transaction/-input-resolution/-unresolved/index.html b/docs/build/html/api/net.corda.client.model/-partially-resolved-transaction/-input-resolution/-unresolved/index.html
new file mode 100644
index 0000000000..03d1109f07
--- /dev/null
+++ b/docs/build/html/api/net.corda.client.model/-partially-resolved-transaction/-input-resolution/-unresolved/index.html
@@ -0,0 +1,36 @@
+
+
+PartiallyResolvedTransaction.InputResolution.Unresolved -
+
+
+
+net.corda.client.model / PartiallyResolvedTransaction / InputResolution / Unresolved
+
+Unresolved
+class Unresolved : InputResolution
+
+
+Constructors
+
+Inherited Properties
+
+
+
diff --git a/docs/build/html/api/net.corda.client.model/-partially-resolved-transaction/-input-resolution/index.html b/docs/build/html/api/net.corda.client.model/-partially-resolved-transaction/-input-resolution/index.html
new file mode 100644
index 0000000000..ab79772188
--- /dev/null
+++ b/docs/build/html/api/net.corda.client.model/-partially-resolved-transaction/-input-resolution/index.html
@@ -0,0 +1,59 @@
+
+
+PartiallyResolvedTransaction.InputResolution -
+
+
+
+net.corda.client.model / PartiallyResolvedTransaction / InputResolution
+
+InputResolution
+sealed class InputResolution
+
+
+Types
+
+
+
+
+Resolved
+
+class Resolved : InputResolution
+
+
+
+Unresolved
+
+class Unresolved : InputResolution
+
+
+
+Properties
+
+Inheritors
+
+
+
+
+Resolved
+
+class Resolved : InputResolution
+
+
+
+Unresolved
+
+class Unresolved : InputResolution
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.client.model/-partially-resolved-transaction/-input-resolution/state-ref.html b/docs/build/html/api/net.corda.client.model/-partially-resolved-transaction/-input-resolution/state-ref.html
new file mode 100644
index 0000000000..e7d75fc333
--- /dev/null
+++ b/docs/build/html/api/net.corda.client.model/-partially-resolved-transaction/-input-resolution/state-ref.html
@@ -0,0 +1,15 @@
+
+
+PartiallyResolvedTransaction.InputResolution.stateRef -
+
+
+
+net.corda.client.model / PartiallyResolvedTransaction / InputResolution / stateRef
+
+stateRef
+
+val stateRef : StateRef
+
+
+
+
diff --git a/docs/build/html/api/net.corda.client.model/-partially-resolved-transaction/from-signed-transaction.html b/docs/build/html/api/net.corda.client.model/-partially-resolved-transaction/from-signed-transaction.html
new file mode 100644
index 0000000000..174ec2b88c
--- /dev/null
+++ b/docs/build/html/api/net.corda.client.model/-partially-resolved-transaction/from-signed-transaction.html
@@ -0,0 +1,15 @@
+
+
+PartiallyResolvedTransaction.fromSignedTransaction -
+
+
+
+net.corda.client.model / PartiallyResolvedTransaction / fromSignedTransaction
+
+fromSignedTransaction
+
+fun fromSignedTransaction ( transaction : SignedTransaction , transactions : ObservableMap < SecureHash , SignedTransaction > ) : PartiallyResolvedTransaction
+
+
+
+
diff --git a/docs/build/html/api/net.corda.client.model/-partially-resolved-transaction/id.html b/docs/build/html/api/net.corda.client.model/-partially-resolved-transaction/id.html
new file mode 100644
index 0000000000..7d10d8c1d7
--- /dev/null
+++ b/docs/build/html/api/net.corda.client.model/-partially-resolved-transaction/id.html
@@ -0,0 +1,15 @@
+
+
+PartiallyResolvedTransaction.id -
+
+
+
+net.corda.client.model / PartiallyResolvedTransaction / id
+
+id
+
+val id : SecureHash
+
+
+
+
diff --git a/docs/build/html/api/net.corda.client.model/-partially-resolved-transaction/index.html b/docs/build/html/api/net.corda.client.model/-partially-resolved-transaction/index.html
new file mode 100644
index 0000000000..2fbf6ce80d
--- /dev/null
+++ b/docs/build/html/api/net.corda.client.model/-partially-resolved-transaction/index.html
@@ -0,0 +1,76 @@
+
+
+PartiallyResolvedTransaction -
+
+
+
+net.corda.client.model / PartiallyResolvedTransaction
+
+PartiallyResolvedTransaction
+data class PartiallyResolvedTransaction
+PartiallyResolvedTransaction holds a SignedTransaction that has zero or more inputs resolved. The intent is
+to prepare clients for cases where an input can only be resolved in the future/cannot be resolved at all (for example
+because of permissioning)
+
+
+Types
+
+Constructors
+
+
+
+
+<init>
+
+PartiallyResolvedTransaction ( transaction : SignedTransaction , inputs : List < ObservableValue < InputResolution > > )
PartiallyResolvedTransaction holds a SignedTransaction that has zero or more inputs resolved. The intent is
+to prepare clients for cases where an input can only be resolved in the future/cannot be resolved at all (for example
+because of permissioning)
+
+
+
+
+Properties
+
+Companion Object Functions
+
+
+
diff --git a/docs/build/html/api/net.corda.client.model/-partially-resolved-transaction/inputs.html b/docs/build/html/api/net.corda.client.model/-partially-resolved-transaction/inputs.html
new file mode 100644
index 0000000000..f88d971df8
--- /dev/null
+++ b/docs/build/html/api/net.corda.client.model/-partially-resolved-transaction/inputs.html
@@ -0,0 +1,15 @@
+
+
+PartiallyResolvedTransaction.inputs -
+
+
+
+net.corda.client.model / PartiallyResolvedTransaction / inputs
+
+inputs
+
+val inputs : List < ObservableValue < InputResolution > >
+
+
+
+
diff --git a/docs/build/html/api/net.corda.client.model/-partially-resolved-transaction/transaction.html b/docs/build/html/api/net.corda.client.model/-partially-resolved-transaction/transaction.html
new file mode 100644
index 0000000000..ab2acbc821
--- /dev/null
+++ b/docs/build/html/api/net.corda.client.model/-partially-resolved-transaction/transaction.html
@@ -0,0 +1,15 @@
+
+
+PartiallyResolvedTransaction.transaction -
+
+
+
+net.corda.client.model / PartiallyResolvedTransaction / transaction
+
+transaction
+
+val transaction : SignedTransaction
+
+
+
+
diff --git a/docs/build/html/api/net.corda.client.model/-progress-tracking-event/-init-.html b/docs/build/html/api/net.corda.client.model/-progress-tracking-event/-init-.html
new file mode 100644
index 0000000000..e8d0bc0cc1
--- /dev/null
+++ b/docs/build/html/api/net.corda.client.model/-progress-tracking-event/-init-.html
@@ -0,0 +1,14 @@
+
+
+ProgressTrackingEvent. -
+
+
+
+net.corda.client.model / ProgressTrackingEvent / <init>
+
+<init>
+ProgressTrackingEvent ( stateMachineId : StateMachineRunId , message : String )
+
+
+
+
diff --git a/docs/build/html/api/net.corda.client.model/-progress-tracking-event/create-stream-from-state-machine-info.html b/docs/build/html/api/net.corda.client.model/-progress-tracking-event/create-stream-from-state-machine-info.html
new file mode 100644
index 0000000000..c65b626988
--- /dev/null
+++ b/docs/build/html/api/net.corda.client.model/-progress-tracking-event/create-stream-from-state-machine-info.html
@@ -0,0 +1,15 @@
+
+
+ProgressTrackingEvent.createStreamFromStateMachineInfo -
+
+
+
+net.corda.client.model / ProgressTrackingEvent / createStreamFromStateMachineInfo
+
+createStreamFromStateMachineInfo
+
+fun createStreamFromStateMachineInfo ( stateMachine : StateMachineInfo ) : <ERROR CLASS> < ProgressTrackingEvent > ?
+
+
+
+
diff --git a/docs/build/html/api/net.corda.client.model/-progress-tracking-event/index.html b/docs/build/html/api/net.corda.client.model/-progress-tracking-event/index.html
new file mode 100644
index 0000000000..a3d8cfda07
--- /dev/null
+++ b/docs/build/html/api/net.corda.client.model/-progress-tracking-event/index.html
@@ -0,0 +1,53 @@
+
+
+ProgressTrackingEvent -
+
+
+
+net.corda.client.model / ProgressTrackingEvent
+
+ProgressTrackingEvent
+data class ProgressTrackingEvent
+
+
+Constructors
+
+Properties
+
+Companion Object Functions
+
+
+
diff --git a/docs/build/html/api/net.corda.client.model/-progress-tracking-event/message.html b/docs/build/html/api/net.corda.client.model/-progress-tracking-event/message.html
new file mode 100644
index 0000000000..24251a78c9
--- /dev/null
+++ b/docs/build/html/api/net.corda.client.model/-progress-tracking-event/message.html
@@ -0,0 +1,15 @@
+
+
+ProgressTrackingEvent.message -
+
+
+
+net.corda.client.model / ProgressTrackingEvent / message
+
+message
+
+val message : String
+
+
+
+
diff --git a/docs/build/html/api/net.corda.client.model/-progress-tracking-event/state-machine-id.html b/docs/build/html/api/net.corda.client.model/-progress-tracking-event/state-machine-id.html
new file mode 100644
index 0000000000..e669ed5443
--- /dev/null
+++ b/docs/build/html/api/net.corda.client.model/-progress-tracking-event/state-machine-id.html
@@ -0,0 +1,15 @@
+
+
+ProgressTrackingEvent.stateMachineId -
+
+
+
+net.corda.client.model / ProgressTrackingEvent / stateMachineId
+
+stateMachineId
+
+val stateMachineId : StateMachineRunId
+
+
+
+
diff --git a/docs/build/html/api/net.corda.client.model/-protocol-status/-init-.html b/docs/build/html/api/net.corda.client.model/-protocol-status/-init-.html
new file mode 100644
index 0000000000..8b25c09eff
--- /dev/null
+++ b/docs/build/html/api/net.corda.client.model/-protocol-status/-init-.html
@@ -0,0 +1,14 @@
+
+
+ProtocolStatus. -
+
+
+
+net.corda.client.model / ProtocolStatus / <init>
+
+<init>
+ProtocolStatus ( status : String )
+
+
+
+
diff --git a/docs/build/html/api/net.corda.client.model/-protocol-status/index.html b/docs/build/html/api/net.corda.client.model/-protocol-status/index.html
new file mode 100644
index 0000000000..18be1d60c3
--- /dev/null
+++ b/docs/build/html/api/net.corda.client.model/-protocol-status/index.html
@@ -0,0 +1,36 @@
+
+
+ProtocolStatus -
+
+
+
+net.corda.client.model / ProtocolStatus
+
+ProtocolStatus
+data class ProtocolStatus
+
+
+Constructors
+
+
+
+
+<init>
+
+ProtocolStatus ( status : String )
+
+
+
+Properties
+
+
+
+
+status
+
+val status : String
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.client.model/-protocol-status/status.html b/docs/build/html/api/net.corda.client.model/-protocol-status/status.html
new file mode 100644
index 0000000000..0222d6e94b
--- /dev/null
+++ b/docs/build/html/api/net.corda.client.model/-protocol-status/status.html
@@ -0,0 +1,15 @@
+
+
+ProtocolStatus.status -
+
+
+
+net.corda.client.model / ProtocolStatus / status
+
+status
+
+val status : String
+
+
+
+
diff --git a/docs/build/html/api/net.corda.client.model/-state-machine-data/-init-.html b/docs/build/html/api/net.corda.client.model/-state-machine-data/-init-.html
new file mode 100644
index 0000000000..27c1a5e509
--- /dev/null
+++ b/docs/build/html/api/net.corda.client.model/-state-machine-data/-init-.html
@@ -0,0 +1,14 @@
+
+
+StateMachineData. -
+
+
+
+net.corda.client.model / StateMachineData / <init>
+
+<init>
+StateMachineData ( id : StateMachineRunId , protocolStatus : ObservableValue < ProtocolStatus ? > , stateMachineStatus : ObservableValue < StateMachineStatus > )
+
+
+
+
diff --git a/docs/build/html/api/net.corda.client.model/-state-machine-data/id.html b/docs/build/html/api/net.corda.client.model/-state-machine-data/id.html
new file mode 100644
index 0000000000..8ac3d9d27d
--- /dev/null
+++ b/docs/build/html/api/net.corda.client.model/-state-machine-data/id.html
@@ -0,0 +1,15 @@
+
+
+StateMachineData.id -
+
+
+
+net.corda.client.model / StateMachineData / id
+
+id
+
+val id : StateMachineRunId
+
+
+
+
diff --git a/docs/build/html/api/net.corda.client.model/-state-machine-data/index.html b/docs/build/html/api/net.corda.client.model/-state-machine-data/index.html
new file mode 100644
index 0000000000..7175edf7ae
--- /dev/null
+++ b/docs/build/html/api/net.corda.client.model/-state-machine-data/index.html
@@ -0,0 +1,48 @@
+
+
+StateMachineData -
+
+
+
+net.corda.client.model / StateMachineData
+
+StateMachineData
+data class StateMachineData
+
+
+Constructors
+
+Properties
+
+
+
diff --git a/docs/build/html/api/net.corda.client.model/-state-machine-data/protocol-status.html b/docs/build/html/api/net.corda.client.model/-state-machine-data/protocol-status.html
new file mode 100644
index 0000000000..98622676de
--- /dev/null
+++ b/docs/build/html/api/net.corda.client.model/-state-machine-data/protocol-status.html
@@ -0,0 +1,15 @@
+
+
+StateMachineData.protocolStatus -
+
+
+
+net.corda.client.model / StateMachineData / protocolStatus
+
+protocolStatus
+
+val protocolStatus : ObservableValue < ProtocolStatus ? >
+
+
+
+
diff --git a/docs/build/html/api/net.corda.client.model/-state-machine-data/state-machine-status.html b/docs/build/html/api/net.corda.client.model/-state-machine-data/state-machine-status.html
new file mode 100644
index 0000000000..9a9c9b047a
--- /dev/null
+++ b/docs/build/html/api/net.corda.client.model/-state-machine-data/state-machine-status.html
@@ -0,0 +1,15 @@
+
+
+StateMachineData.stateMachineStatus -
+
+
+
+net.corda.client.model / StateMachineData / stateMachineStatus
+
+stateMachineStatus
+
+val stateMachineStatus : ObservableValue < StateMachineStatus >
+
+
+
+
diff --git a/docs/build/html/api/net.corda.client.model/-state-machine-status/-added/-init-.html b/docs/build/html/api/net.corda.client.model/-state-machine-status/-added/-init-.html
new file mode 100644
index 0000000000..a00b7be658
--- /dev/null
+++ b/docs/build/html/api/net.corda.client.model/-state-machine-status/-added/-init-.html
@@ -0,0 +1,14 @@
+
+
+StateMachineStatus.Added. -
+
+
+
+net.corda.client.model / StateMachineStatus / Added / <init>
+
+<init>
+Added ( stateMachineName : String )
+
+
+
+
diff --git a/docs/build/html/api/net.corda.client.model/-state-machine-status/-added/index.html b/docs/build/html/api/net.corda.client.model/-state-machine-status/-added/index.html
new file mode 100644
index 0000000000..67954a4449
--- /dev/null
+++ b/docs/build/html/api/net.corda.client.model/-state-machine-status/-added/index.html
@@ -0,0 +1,47 @@
+
+
+StateMachineStatus.Added -
+
+
+
+net.corda.client.model / StateMachineStatus / Added
+
+Added
+class Added : StateMachineStatus
+
+
+Constructors
+
+
+
+
+<init>
+
+Added ( stateMachineName : String )
+
+
+
+Inherited Properties
+
+Inherited Functions
+
+
+
+
+toString
+
+open fun toString ( ) : String
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.client.model/-state-machine-status/-removed/-init-.html b/docs/build/html/api/net.corda.client.model/-state-machine-status/-removed/-init-.html
new file mode 100644
index 0000000000..107e662601
--- /dev/null
+++ b/docs/build/html/api/net.corda.client.model/-state-machine-status/-removed/-init-.html
@@ -0,0 +1,14 @@
+
+
+StateMachineStatus.Removed. -
+
+
+
+net.corda.client.model / StateMachineStatus / Removed / <init>
+
+<init>
+Removed ( stateMachineName : String )
+
+
+
+
diff --git a/docs/build/html/api/net.corda.client.model/-state-machine-status/-removed/index.html b/docs/build/html/api/net.corda.client.model/-state-machine-status/-removed/index.html
new file mode 100644
index 0000000000..bb446bc5db
--- /dev/null
+++ b/docs/build/html/api/net.corda.client.model/-state-machine-status/-removed/index.html
@@ -0,0 +1,47 @@
+
+
+StateMachineStatus.Removed -
+
+
+
+net.corda.client.model / StateMachineStatus / Removed
+
+Removed
+class Removed : StateMachineStatus
+
+
+Constructors
+
+
+
+
+<init>
+
+Removed ( stateMachineName : String )
+
+
+
+Inherited Properties
+
+Inherited Functions
+
+
+
+
+toString
+
+open fun toString ( ) : String
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.client.model/-state-machine-status/index.html b/docs/build/html/api/net.corda.client.model/-state-machine-status/index.html
new file mode 100644
index 0000000000..f38d079104
--- /dev/null
+++ b/docs/build/html/api/net.corda.client.model/-state-machine-status/index.html
@@ -0,0 +1,70 @@
+
+
+StateMachineStatus -
+
+
+
+net.corda.client.model / StateMachineStatus
+
+StateMachineStatus
+sealed class StateMachineStatus
+
+
+Types
+
+
+
+
+Added
+
+class Added : StateMachineStatus
+
+
+
+Removed
+
+class Removed : StateMachineStatus
+
+
+
+Properties
+
+Functions
+
+
+
+
+toString
+
+open fun toString ( ) : String
+
+
+
+Inheritors
+
+
+
+
+Added
+
+class Added : StateMachineStatus
+
+
+
+Removed
+
+class Removed : StateMachineStatus
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.client.model/-state-machine-status/state-machine-name.html b/docs/build/html/api/net.corda.client.model/-state-machine-status/state-machine-name.html
new file mode 100644
index 0000000000..f5acbbbcb1
--- /dev/null
+++ b/docs/build/html/api/net.corda.client.model/-state-machine-status/state-machine-name.html
@@ -0,0 +1,15 @@
+
+
+StateMachineStatus.stateMachineName -
+
+
+
+net.corda.client.model / StateMachineStatus / stateMachineName
+
+stateMachineName
+
+val stateMachineName : String
+
+
+
+
diff --git a/docs/build/html/api/net.corda.client.model/-state-machine-status/to-string.html b/docs/build/html/api/net.corda.client.model/-state-machine-status/to-string.html
new file mode 100644
index 0000000000..0b595fc20a
--- /dev/null
+++ b/docs/build/html/api/net.corda.client.model/-state-machine-status/to-string.html
@@ -0,0 +1,15 @@
+
+
+StateMachineStatus.toString -
+
+
+
+net.corda.client.model / StateMachineStatus / toString
+
+toString
+
+open fun toString ( ) : String
+
+
+
+
diff --git a/docs/build/html/api/net.corda.client.model/-tracked-delegate/-event-sink-delegate/-init-.html b/docs/build/html/api/net.corda.client.model/-tracked-delegate/-event-sink-delegate/-init-.html
new file mode 100644
index 0000000000..a052fc6b1b
--- /dev/null
+++ b/docs/build/html/api/net.corda.client.model/-tracked-delegate/-event-sink-delegate/-init-.html
@@ -0,0 +1,14 @@
+
+
+TrackedDelegate.EventSinkDelegate. -
+
+
+
+net.corda.client.model / TrackedDelegate / EventSinkDelegate / <init>
+
+<init>
+EventSinkDelegate ( klass : KClass < M > , eventSinkProperty : ( M ) -> <ERROR CLASS> < T > )
+
+
+
+
diff --git a/docs/build/html/api/net.corda.client.model/-tracked-delegate/-event-sink-delegate/event-sink-property.html b/docs/build/html/api/net.corda.client.model/-tracked-delegate/-event-sink-delegate/event-sink-property.html
new file mode 100644
index 0000000000..f0700a79ec
--- /dev/null
+++ b/docs/build/html/api/net.corda.client.model/-tracked-delegate/-event-sink-delegate/event-sink-property.html
@@ -0,0 +1,15 @@
+
+
+TrackedDelegate.EventSinkDelegate.eventSinkProperty -
+
+
+
+net.corda.client.model / TrackedDelegate / EventSinkDelegate / eventSinkProperty
+
+eventSinkProperty
+
+val eventSinkProperty : ( M ) -> <ERROR CLASS> < T >
+
+
+
+
diff --git a/docs/build/html/api/net.corda.client.model/-tracked-delegate/-event-sink-delegate/get-value.html b/docs/build/html/api/net.corda.client.model/-tracked-delegate/-event-sink-delegate/get-value.html
new file mode 100644
index 0000000000..ca3d181cc0
--- /dev/null
+++ b/docs/build/html/api/net.corda.client.model/-tracked-delegate/-event-sink-delegate/get-value.html
@@ -0,0 +1,15 @@
+
+
+TrackedDelegate.EventSinkDelegate.getValue -
+
+
+
+net.corda.client.model / TrackedDelegate / EventSinkDelegate / getValue
+
+getValue
+
+operator fun getValue ( thisRef : Any , property : KProperty < * > ) : <ERROR CLASS> < T >
+
+
+
+
diff --git a/docs/build/html/api/net.corda.client.model/-tracked-delegate/-event-sink-delegate/index.html b/docs/build/html/api/net.corda.client.model/-tracked-delegate/-event-sink-delegate/index.html
new file mode 100644
index 0000000000..eeaf57603f
--- /dev/null
+++ b/docs/build/html/api/net.corda.client.model/-tracked-delegate/-event-sink-delegate/index.html
@@ -0,0 +1,58 @@
+
+
+TrackedDelegate.EventSinkDelegate -
+
+
+
+net.corda.client.model / TrackedDelegate / EventSinkDelegate
+
+EventSinkDelegate
+class EventSinkDelegate < M : Any , T > : TrackedDelegate < M >
+
+
+Constructors
+
+
+
+
+<init>
+
+EventSinkDelegate ( klass : KClass < M > , eventSinkProperty : ( M ) -> <ERROR CLASS> < T > )
+
+
+
+Properties
+
+Inherited Properties
+
+
+
+
+klass
+
+val klass : KClass < M >
+
+
+
+Functions
+
+
+
+
+getValue
+
+operator fun getValue ( thisRef : Any , property : KProperty < * > ) : <ERROR CLASS> < T >
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.client.model/-tracked-delegate/-event-stream-delegate/-init-.html b/docs/build/html/api/net.corda.client.model/-tracked-delegate/-event-stream-delegate/-init-.html
new file mode 100644
index 0000000000..fc03f4320c
--- /dev/null
+++ b/docs/build/html/api/net.corda.client.model/-tracked-delegate/-event-stream-delegate/-init-.html
@@ -0,0 +1,14 @@
+
+
+TrackedDelegate.EventStreamDelegate. -
+
+
+
+net.corda.client.model / TrackedDelegate / EventStreamDelegate / <init>
+
+<init>
+EventStreamDelegate ( klass : KClass < M > , eventStreamProperty : ( M ) -> <ERROR CLASS> < T > )
+
+
+
+
diff --git a/docs/build/html/api/net.corda.client.model/-tracked-delegate/-event-stream-delegate/event-stream-property.html b/docs/build/html/api/net.corda.client.model/-tracked-delegate/-event-stream-delegate/event-stream-property.html
new file mode 100644
index 0000000000..c45c6eb7da
--- /dev/null
+++ b/docs/build/html/api/net.corda.client.model/-tracked-delegate/-event-stream-delegate/event-stream-property.html
@@ -0,0 +1,15 @@
+
+
+TrackedDelegate.EventStreamDelegate.eventStreamProperty -
+
+
+
+net.corda.client.model / TrackedDelegate / EventStreamDelegate / eventStreamProperty
+
+eventStreamProperty
+
+val eventStreamProperty : ( M ) -> <ERROR CLASS> < T >
+
+
+
+
diff --git a/docs/build/html/api/net.corda.client.model/-tracked-delegate/-event-stream-delegate/get-value.html b/docs/build/html/api/net.corda.client.model/-tracked-delegate/-event-stream-delegate/get-value.html
new file mode 100644
index 0000000000..64f1b10b99
--- /dev/null
+++ b/docs/build/html/api/net.corda.client.model/-tracked-delegate/-event-stream-delegate/get-value.html
@@ -0,0 +1,15 @@
+
+
+TrackedDelegate.EventStreamDelegate.getValue -
+
+
+
+net.corda.client.model / TrackedDelegate / EventStreamDelegate / getValue
+
+getValue
+
+operator fun getValue ( thisRef : Any , property : KProperty < * > ) : <ERROR CLASS> < T >
+
+
+
+
diff --git a/docs/build/html/api/net.corda.client.model/-tracked-delegate/-event-stream-delegate/index.html b/docs/build/html/api/net.corda.client.model/-tracked-delegate/-event-stream-delegate/index.html
new file mode 100644
index 0000000000..9f73721788
--- /dev/null
+++ b/docs/build/html/api/net.corda.client.model/-tracked-delegate/-event-stream-delegate/index.html
@@ -0,0 +1,58 @@
+
+
+TrackedDelegate.EventStreamDelegate -
+
+
+
+net.corda.client.model / TrackedDelegate / EventStreamDelegate
+
+EventStreamDelegate
+class EventStreamDelegate < M : Any , T > : TrackedDelegate < M >
+
+
+Constructors
+
+
+
+
+<init>
+
+EventStreamDelegate ( klass : KClass < M > , eventStreamProperty : ( M ) -> <ERROR CLASS> < T > )
+
+
+
+Properties
+
+Inherited Properties
+
+
+
+
+klass
+
+val klass : KClass < M >
+
+
+
+Functions
+
+
+
+
+getValue
+
+operator fun getValue ( thisRef : Any , property : KProperty < * > ) : <ERROR CLASS> < T >
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.client.model/-tracked-delegate/-object-property-delegate/-init-.html b/docs/build/html/api/net.corda.client.model/-tracked-delegate/-object-property-delegate/-init-.html
new file mode 100644
index 0000000000..66a0770eb6
--- /dev/null
+++ b/docs/build/html/api/net.corda.client.model/-tracked-delegate/-object-property-delegate/-init-.html
@@ -0,0 +1,14 @@
+
+
+TrackedDelegate.ObjectPropertyDelegate. -
+
+
+
+net.corda.client.model / TrackedDelegate / ObjectPropertyDelegate / <init>
+
+<init>
+ObjectPropertyDelegate ( klass : KClass < M > , objectPropertyProperty : ( M ) -> ObjectProperty < T > )
+
+
+
+
diff --git a/docs/build/html/api/net.corda.client.model/-tracked-delegate/-object-property-delegate/get-value.html b/docs/build/html/api/net.corda.client.model/-tracked-delegate/-object-property-delegate/get-value.html
new file mode 100644
index 0000000000..a2df9e6028
--- /dev/null
+++ b/docs/build/html/api/net.corda.client.model/-tracked-delegate/-object-property-delegate/get-value.html
@@ -0,0 +1,15 @@
+
+
+TrackedDelegate.ObjectPropertyDelegate.getValue -
+
+
+
+net.corda.client.model / TrackedDelegate / ObjectPropertyDelegate / getValue
+
+getValue
+
+operator fun getValue ( thisRef : Any , property : KProperty < * > ) : ObjectProperty < T >
+
+
+
+
diff --git a/docs/build/html/api/net.corda.client.model/-tracked-delegate/-object-property-delegate/index.html b/docs/build/html/api/net.corda.client.model/-tracked-delegate/-object-property-delegate/index.html
new file mode 100644
index 0000000000..eb3e235327
--- /dev/null
+++ b/docs/build/html/api/net.corda.client.model/-tracked-delegate/-object-property-delegate/index.html
@@ -0,0 +1,58 @@
+
+
+TrackedDelegate.ObjectPropertyDelegate -
+
+
+
+net.corda.client.model / TrackedDelegate / ObjectPropertyDelegate
+
+ObjectPropertyDelegate
+class ObjectPropertyDelegate < M : Any , T > : TrackedDelegate < M >
+
+
+Constructors
+
+
+
+
+<init>
+
+ObjectPropertyDelegate ( klass : KClass < M > , objectPropertyProperty : ( M ) -> ObjectProperty < T > )
+
+
+
+Properties
+
+Inherited Properties
+
+
+
+
+klass
+
+val klass : KClass < M >
+
+
+
+Functions
+
+
+
+
+getValue
+
+operator fun getValue ( thisRef : Any , property : KProperty < * > ) : ObjectProperty < T >
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.client.model/-tracked-delegate/-object-property-delegate/object-property-property.html b/docs/build/html/api/net.corda.client.model/-tracked-delegate/-object-property-delegate/object-property-property.html
new file mode 100644
index 0000000000..486c9155cc
--- /dev/null
+++ b/docs/build/html/api/net.corda.client.model/-tracked-delegate/-object-property-delegate/object-property-property.html
@@ -0,0 +1,15 @@
+
+
+TrackedDelegate.ObjectPropertyDelegate.objectPropertyProperty -
+
+
+
+net.corda.client.model / TrackedDelegate / ObjectPropertyDelegate / objectPropertyProperty
+
+objectPropertyProperty
+
+val objectPropertyProperty : ( M ) -> ObjectProperty < T >
+
+
+
+
diff --git a/docs/build/html/api/net.corda.client.model/-tracked-delegate/-observable-delegate/-init-.html b/docs/build/html/api/net.corda.client.model/-tracked-delegate/-observable-delegate/-init-.html
new file mode 100644
index 0000000000..d2852b8ecb
--- /dev/null
+++ b/docs/build/html/api/net.corda.client.model/-tracked-delegate/-observable-delegate/-init-.html
@@ -0,0 +1,14 @@
+
+
+TrackedDelegate.ObservableDelegate. -
+
+
+
+net.corda.client.model / TrackedDelegate / ObservableDelegate / <init>
+
+<init>
+ObservableDelegate ( klass : KClass < M > , observableProperty : ( M ) -> <ERROR CLASS> < T > )
+
+
+
+
diff --git a/docs/build/html/api/net.corda.client.model/-tracked-delegate/-observable-delegate/get-value.html b/docs/build/html/api/net.corda.client.model/-tracked-delegate/-observable-delegate/get-value.html
new file mode 100644
index 0000000000..f1657f4478
--- /dev/null
+++ b/docs/build/html/api/net.corda.client.model/-tracked-delegate/-observable-delegate/get-value.html
@@ -0,0 +1,15 @@
+
+
+TrackedDelegate.ObservableDelegate.getValue -
+
+
+
+net.corda.client.model / TrackedDelegate / ObservableDelegate / getValue
+
+getValue
+
+operator fun getValue ( thisRef : Any , property : KProperty < * > ) : <ERROR CLASS> < T >
+
+
+
+
diff --git a/docs/build/html/api/net.corda.client.model/-tracked-delegate/-observable-delegate/index.html b/docs/build/html/api/net.corda.client.model/-tracked-delegate/-observable-delegate/index.html
new file mode 100644
index 0000000000..9cc31d0591
--- /dev/null
+++ b/docs/build/html/api/net.corda.client.model/-tracked-delegate/-observable-delegate/index.html
@@ -0,0 +1,58 @@
+
+
+TrackedDelegate.ObservableDelegate -
+
+
+
+net.corda.client.model / TrackedDelegate / ObservableDelegate
+
+ObservableDelegate
+class ObservableDelegate < M : Any , T > : TrackedDelegate < M >
+
+
+Constructors
+
+
+
+
+<init>
+
+ObservableDelegate ( klass : KClass < M > , observableProperty : ( M ) -> <ERROR CLASS> < T > )
+
+
+
+Properties
+
+Inherited Properties
+
+
+
+
+klass
+
+val klass : KClass < M >
+
+
+
+Functions
+
+
+
+
+getValue
+
+operator fun getValue ( thisRef : Any , property : KProperty < * > ) : <ERROR CLASS> < T >
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.client.model/-tracked-delegate/-observable-delegate/observable-property.html b/docs/build/html/api/net.corda.client.model/-tracked-delegate/-observable-delegate/observable-property.html
new file mode 100644
index 0000000000..4c43f2d6d5
--- /dev/null
+++ b/docs/build/html/api/net.corda.client.model/-tracked-delegate/-observable-delegate/observable-property.html
@@ -0,0 +1,15 @@
+
+
+TrackedDelegate.ObservableDelegate.observableProperty -
+
+
+
+net.corda.client.model / TrackedDelegate / ObservableDelegate / observableProperty
+
+observableProperty
+
+val observableProperty : ( M ) -> <ERROR CLASS> < T >
+
+
+
+
diff --git a/docs/build/html/api/net.corda.client.model/-tracked-delegate/-observable-list-delegate/-init-.html b/docs/build/html/api/net.corda.client.model/-tracked-delegate/-observable-list-delegate/-init-.html
new file mode 100644
index 0000000000..0c00b2abd6
--- /dev/null
+++ b/docs/build/html/api/net.corda.client.model/-tracked-delegate/-observable-list-delegate/-init-.html
@@ -0,0 +1,14 @@
+
+
+TrackedDelegate.ObservableListDelegate. -
+
+
+
+net.corda.client.model / TrackedDelegate / ObservableListDelegate / <init>
+
+<init>
+ObservableListDelegate ( klass : KClass < M > , observableListProperty : ( M ) -> ObservableList < T > )
+
+
+
+
diff --git a/docs/build/html/api/net.corda.client.model/-tracked-delegate/-observable-list-delegate/get-value.html b/docs/build/html/api/net.corda.client.model/-tracked-delegate/-observable-list-delegate/get-value.html
new file mode 100644
index 0000000000..18c05bb800
--- /dev/null
+++ b/docs/build/html/api/net.corda.client.model/-tracked-delegate/-observable-list-delegate/get-value.html
@@ -0,0 +1,15 @@
+
+
+TrackedDelegate.ObservableListDelegate.getValue -
+
+
+
+net.corda.client.model / TrackedDelegate / ObservableListDelegate / getValue
+
+getValue
+
+operator fun getValue ( thisRef : Any , property : KProperty < * > ) : ObservableList < T >
+
+
+
+
diff --git a/docs/build/html/api/net.corda.client.model/-tracked-delegate/-observable-list-delegate/index.html b/docs/build/html/api/net.corda.client.model/-tracked-delegate/-observable-list-delegate/index.html
new file mode 100644
index 0000000000..c663c94002
--- /dev/null
+++ b/docs/build/html/api/net.corda.client.model/-tracked-delegate/-observable-list-delegate/index.html
@@ -0,0 +1,58 @@
+
+
+TrackedDelegate.ObservableListDelegate -
+
+
+
+net.corda.client.model / TrackedDelegate / ObservableListDelegate
+
+ObservableListDelegate
+class ObservableListDelegate < M : Any , T > : TrackedDelegate < M >
+
+
+Constructors
+
+
+
+
+<init>
+
+ObservableListDelegate ( klass : KClass < M > , observableListProperty : ( M ) -> ObservableList < T > )
+
+
+
+Properties
+
+Inherited Properties
+
+
+
+
+klass
+
+val klass : KClass < M >
+
+
+
+Functions
+
+
+
+
+getValue
+
+operator fun getValue ( thisRef : Any , property : KProperty < * > ) : ObservableList < T >
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.client.model/-tracked-delegate/-observable-list-delegate/observable-list-property.html b/docs/build/html/api/net.corda.client.model/-tracked-delegate/-observable-list-delegate/observable-list-property.html
new file mode 100644
index 0000000000..f39b1f6acc
--- /dev/null
+++ b/docs/build/html/api/net.corda.client.model/-tracked-delegate/-observable-list-delegate/observable-list-property.html
@@ -0,0 +1,15 @@
+
+
+TrackedDelegate.ObservableListDelegate.observableListProperty -
+
+
+
+net.corda.client.model / TrackedDelegate / ObservableListDelegate / observableListProperty
+
+observableListProperty
+
+val observableListProperty : ( M ) -> ObservableList < T >
+
+
+
+
diff --git a/docs/build/html/api/net.corda.client.model/-tracked-delegate/-observable-list-read-only-delegate/-init-.html b/docs/build/html/api/net.corda.client.model/-tracked-delegate/-observable-list-read-only-delegate/-init-.html
new file mode 100644
index 0000000000..df95012648
--- /dev/null
+++ b/docs/build/html/api/net.corda.client.model/-tracked-delegate/-observable-list-read-only-delegate/-init-.html
@@ -0,0 +1,14 @@
+
+
+TrackedDelegate.ObservableListReadOnlyDelegate. -
+
+
+
+net.corda.client.model / TrackedDelegate / ObservableListReadOnlyDelegate / <init>
+
+<init>
+ObservableListReadOnlyDelegate ( klass : KClass < M > , observableListReadOnlyProperty : ( M ) -> ObservableList < out T > )
+
+
+
+
diff --git a/docs/build/html/api/net.corda.client.model/-tracked-delegate/-observable-list-read-only-delegate/get-value.html b/docs/build/html/api/net.corda.client.model/-tracked-delegate/-observable-list-read-only-delegate/get-value.html
new file mode 100644
index 0000000000..019429b88d
--- /dev/null
+++ b/docs/build/html/api/net.corda.client.model/-tracked-delegate/-observable-list-read-only-delegate/get-value.html
@@ -0,0 +1,15 @@
+
+
+TrackedDelegate.ObservableListReadOnlyDelegate.getValue -
+
+
+
+net.corda.client.model / TrackedDelegate / ObservableListReadOnlyDelegate / getValue
+
+getValue
+
+operator fun getValue ( thisRef : Any , property : KProperty < * > ) : ObservableList < out T >
+
+
+
+
diff --git a/docs/build/html/api/net.corda.client.model/-tracked-delegate/-observable-list-read-only-delegate/index.html b/docs/build/html/api/net.corda.client.model/-tracked-delegate/-observable-list-read-only-delegate/index.html
new file mode 100644
index 0000000000..cecb6d0e6b
--- /dev/null
+++ b/docs/build/html/api/net.corda.client.model/-tracked-delegate/-observable-list-read-only-delegate/index.html
@@ -0,0 +1,58 @@
+
+
+TrackedDelegate.ObservableListReadOnlyDelegate -
+
+
+
+net.corda.client.model / TrackedDelegate / ObservableListReadOnlyDelegate
+
+ObservableListReadOnlyDelegate
+class ObservableListReadOnlyDelegate < M : Any , out T > : TrackedDelegate < M >
+
+
+Constructors
+
+
+
+
+<init>
+
+ObservableListReadOnlyDelegate ( klass : KClass < M > , observableListReadOnlyProperty : ( M ) -> ObservableList < out T > )
+
+
+
+Properties
+
+Inherited Properties
+
+
+
+
+klass
+
+val klass : KClass < M >
+
+
+
+Functions
+
+
+
+
+getValue
+
+operator fun getValue ( thisRef : Any , property : KProperty < * > ) : ObservableList < out T >
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.client.model/-tracked-delegate/-observable-list-read-only-delegate/observable-list-read-only-property.html b/docs/build/html/api/net.corda.client.model/-tracked-delegate/-observable-list-read-only-delegate/observable-list-read-only-property.html
new file mode 100644
index 0000000000..fea582bcab
--- /dev/null
+++ b/docs/build/html/api/net.corda.client.model/-tracked-delegate/-observable-list-read-only-delegate/observable-list-read-only-property.html
@@ -0,0 +1,15 @@
+
+
+TrackedDelegate.ObservableListReadOnlyDelegate.observableListReadOnlyProperty -
+
+
+
+net.corda.client.model / TrackedDelegate / ObservableListReadOnlyDelegate / observableListReadOnlyProperty
+
+observableListReadOnlyProperty
+
+val observableListReadOnlyProperty : ( M ) -> ObservableList < out T >
+
+
+
+
diff --git a/docs/build/html/api/net.corda.client.model/-tracked-delegate/-observable-value-delegate/-init-.html b/docs/build/html/api/net.corda.client.model/-tracked-delegate/-observable-value-delegate/-init-.html
new file mode 100644
index 0000000000..1201cfa35a
--- /dev/null
+++ b/docs/build/html/api/net.corda.client.model/-tracked-delegate/-observable-value-delegate/-init-.html
@@ -0,0 +1,14 @@
+
+
+TrackedDelegate.ObservableValueDelegate. -
+
+
+
+net.corda.client.model / TrackedDelegate / ObservableValueDelegate / <init>
+
+<init>
+ObservableValueDelegate ( klass : KClass < M > , observableValueProperty : ( M ) -> ObservableValue < T > )
+
+
+
+
diff --git a/docs/build/html/api/net.corda.client.model/-tracked-delegate/-observable-value-delegate/get-value.html b/docs/build/html/api/net.corda.client.model/-tracked-delegate/-observable-value-delegate/get-value.html
new file mode 100644
index 0000000000..5541e69e3e
--- /dev/null
+++ b/docs/build/html/api/net.corda.client.model/-tracked-delegate/-observable-value-delegate/get-value.html
@@ -0,0 +1,15 @@
+
+
+TrackedDelegate.ObservableValueDelegate.getValue -
+
+
+
+net.corda.client.model / TrackedDelegate / ObservableValueDelegate / getValue
+
+getValue
+
+operator fun getValue ( thisRef : Any , property : KProperty < * > ) : ObservableValue < T >
+
+
+
+
diff --git a/docs/build/html/api/net.corda.client.model/-tracked-delegate/-observable-value-delegate/index.html b/docs/build/html/api/net.corda.client.model/-tracked-delegate/-observable-value-delegate/index.html
new file mode 100644
index 0000000000..2ac4bbdd36
--- /dev/null
+++ b/docs/build/html/api/net.corda.client.model/-tracked-delegate/-observable-value-delegate/index.html
@@ -0,0 +1,58 @@
+
+
+TrackedDelegate.ObservableValueDelegate -
+
+
+
+net.corda.client.model / TrackedDelegate / ObservableValueDelegate
+
+ObservableValueDelegate
+class ObservableValueDelegate < M : Any , T > : TrackedDelegate < M >
+
+
+Constructors
+
+
+
+
+<init>
+
+ObservableValueDelegate ( klass : KClass < M > , observableValueProperty : ( M ) -> ObservableValue < T > )
+
+
+
+Properties
+
+Inherited Properties
+
+
+
+
+klass
+
+val klass : KClass < M >
+
+
+
+Functions
+
+
+
+
+getValue
+
+operator fun getValue ( thisRef : Any , property : KProperty < * > ) : ObservableValue < T >
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.client.model/-tracked-delegate/-observable-value-delegate/observable-value-property.html b/docs/build/html/api/net.corda.client.model/-tracked-delegate/-observable-value-delegate/observable-value-property.html
new file mode 100644
index 0000000000..f26504107e
--- /dev/null
+++ b/docs/build/html/api/net.corda.client.model/-tracked-delegate/-observable-value-delegate/observable-value-property.html
@@ -0,0 +1,15 @@
+
+
+TrackedDelegate.ObservableValueDelegate.observableValueProperty -
+
+
+
+net.corda.client.model / TrackedDelegate / ObservableValueDelegate / observableValueProperty
+
+observableValueProperty
+
+val observableValueProperty : ( M ) -> ObservableValue < T >
+
+
+
+
diff --git a/docs/build/html/api/net.corda.client.model/-tracked-delegate/-observer-delegate/-init-.html b/docs/build/html/api/net.corda.client.model/-tracked-delegate/-observer-delegate/-init-.html
new file mode 100644
index 0000000000..616c2441e0
--- /dev/null
+++ b/docs/build/html/api/net.corda.client.model/-tracked-delegate/-observer-delegate/-init-.html
@@ -0,0 +1,14 @@
+
+
+TrackedDelegate.ObserverDelegate. -
+
+
+
+net.corda.client.model / TrackedDelegate / ObserverDelegate / <init>
+
+<init>
+ObserverDelegate ( klass : KClass < M > , observerProperty : ( M ) -> <ERROR CLASS> < T > )
+
+
+
+
diff --git a/docs/build/html/api/net.corda.client.model/-tracked-delegate/-observer-delegate/get-value.html b/docs/build/html/api/net.corda.client.model/-tracked-delegate/-observer-delegate/get-value.html
new file mode 100644
index 0000000000..238ad8bedf
--- /dev/null
+++ b/docs/build/html/api/net.corda.client.model/-tracked-delegate/-observer-delegate/get-value.html
@@ -0,0 +1,15 @@
+
+
+TrackedDelegate.ObserverDelegate.getValue -
+
+
+
+net.corda.client.model / TrackedDelegate / ObserverDelegate / getValue
+
+getValue
+
+operator fun getValue ( thisRef : Any , property : KProperty < * > ) : <ERROR CLASS> < T >
+
+
+
+
diff --git a/docs/build/html/api/net.corda.client.model/-tracked-delegate/-observer-delegate/index.html b/docs/build/html/api/net.corda.client.model/-tracked-delegate/-observer-delegate/index.html
new file mode 100644
index 0000000000..03203da50c
--- /dev/null
+++ b/docs/build/html/api/net.corda.client.model/-tracked-delegate/-observer-delegate/index.html
@@ -0,0 +1,58 @@
+
+
+TrackedDelegate.ObserverDelegate -
+
+
+
+net.corda.client.model / TrackedDelegate / ObserverDelegate
+
+ObserverDelegate
+class ObserverDelegate < M : Any , T > : TrackedDelegate < M >
+
+
+Constructors
+
+
+
+
+<init>
+
+ObserverDelegate ( klass : KClass < M > , observerProperty : ( M ) -> <ERROR CLASS> < T > )
+
+
+
+Properties
+
+Inherited Properties
+
+
+
+
+klass
+
+val klass : KClass < M >
+
+
+
+Functions
+
+
+
+
+getValue
+
+operator fun getValue ( thisRef : Any , property : KProperty < * > ) : <ERROR CLASS> < T >
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.client.model/-tracked-delegate/-observer-delegate/observer-property.html b/docs/build/html/api/net.corda.client.model/-tracked-delegate/-observer-delegate/observer-property.html
new file mode 100644
index 0000000000..a6cb953fc3
--- /dev/null
+++ b/docs/build/html/api/net.corda.client.model/-tracked-delegate/-observer-delegate/observer-property.html
@@ -0,0 +1,15 @@
+
+
+TrackedDelegate.ObserverDelegate.observerProperty -
+
+
+
+net.corda.client.model / TrackedDelegate / ObserverDelegate / observerProperty
+
+observerProperty
+
+val observerProperty : ( M ) -> <ERROR CLASS> < T >
+
+
+
+
diff --git a/docs/build/html/api/net.corda.client.model/-tracked-delegate/-subject-delegate/-init-.html b/docs/build/html/api/net.corda.client.model/-tracked-delegate/-subject-delegate/-init-.html
new file mode 100644
index 0000000000..280d3a4a92
--- /dev/null
+++ b/docs/build/html/api/net.corda.client.model/-tracked-delegate/-subject-delegate/-init-.html
@@ -0,0 +1,14 @@
+
+
+TrackedDelegate.SubjectDelegate. -
+
+
+
+net.corda.client.model / TrackedDelegate / SubjectDelegate / <init>
+
+<init>
+SubjectDelegate ( klass : KClass < M > , subjectProperty : ( M ) -> <ERROR CLASS> < T , T > )
+
+
+
+
diff --git a/docs/build/html/api/net.corda.client.model/-tracked-delegate/-subject-delegate/get-value.html b/docs/build/html/api/net.corda.client.model/-tracked-delegate/-subject-delegate/get-value.html
new file mode 100644
index 0000000000..f6fb195f26
--- /dev/null
+++ b/docs/build/html/api/net.corda.client.model/-tracked-delegate/-subject-delegate/get-value.html
@@ -0,0 +1,15 @@
+
+
+TrackedDelegate.SubjectDelegate.getValue -
+
+
+
+net.corda.client.model / TrackedDelegate / SubjectDelegate / getValue
+
+getValue
+
+operator fun getValue ( thisRef : Any , property : KProperty < * > ) : <ERROR CLASS> < T , T >
+
+
+
+
diff --git a/docs/build/html/api/net.corda.client.model/-tracked-delegate/-subject-delegate/index.html b/docs/build/html/api/net.corda.client.model/-tracked-delegate/-subject-delegate/index.html
new file mode 100644
index 0000000000..ea549da1b8
--- /dev/null
+++ b/docs/build/html/api/net.corda.client.model/-tracked-delegate/-subject-delegate/index.html
@@ -0,0 +1,58 @@
+
+
+TrackedDelegate.SubjectDelegate -
+
+
+
+net.corda.client.model / TrackedDelegate / SubjectDelegate
+
+SubjectDelegate
+class SubjectDelegate < M : Any , T > : TrackedDelegate < M >
+
+
+Constructors
+
+
+
+
+<init>
+
+SubjectDelegate ( klass : KClass < M > , subjectProperty : ( M ) -> <ERROR CLASS> < T , T > )
+
+
+
+Properties
+
+
+
+
+subjectProperty
+
+val subjectProperty : ( M ) -> <ERROR CLASS> < T , T >
+
+
+
+Inherited Properties
+
+
+
+
+klass
+
+val klass : KClass < M >
+
+
+
+Functions
+
+
+
+
+getValue
+
+operator fun getValue ( thisRef : Any , property : KProperty < * > ) : <ERROR CLASS> < T , T >
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.client.model/-tracked-delegate/-subject-delegate/subject-property.html b/docs/build/html/api/net.corda.client.model/-tracked-delegate/-subject-delegate/subject-property.html
new file mode 100644
index 0000000000..3c96c83a17
--- /dev/null
+++ b/docs/build/html/api/net.corda.client.model/-tracked-delegate/-subject-delegate/subject-property.html
@@ -0,0 +1,15 @@
+
+
+TrackedDelegate.SubjectDelegate.subjectProperty -
+
+
+
+net.corda.client.model / TrackedDelegate / SubjectDelegate / subjectProperty
+
+subjectProperty
+
+val subjectProperty : ( M ) -> <ERROR CLASS> < T , T >
+
+
+
+
diff --git a/docs/build/html/api/net.corda.client.model/-tracked-delegate/-writable-value-delegate/-init-.html b/docs/build/html/api/net.corda.client.model/-tracked-delegate/-writable-value-delegate/-init-.html
new file mode 100644
index 0000000000..9f5860733a
--- /dev/null
+++ b/docs/build/html/api/net.corda.client.model/-tracked-delegate/-writable-value-delegate/-init-.html
@@ -0,0 +1,14 @@
+
+
+TrackedDelegate.WritableValueDelegate. -
+
+
+
+net.corda.client.model / TrackedDelegate / WritableValueDelegate / <init>
+
+<init>
+WritableValueDelegate ( klass : KClass < M > , writableValueProperty : ( M ) -> WritableValue < T > )
+
+
+
+
diff --git a/docs/build/html/api/net.corda.client.model/-tracked-delegate/-writable-value-delegate/get-value.html b/docs/build/html/api/net.corda.client.model/-tracked-delegate/-writable-value-delegate/get-value.html
new file mode 100644
index 0000000000..6916c06cb8
--- /dev/null
+++ b/docs/build/html/api/net.corda.client.model/-tracked-delegate/-writable-value-delegate/get-value.html
@@ -0,0 +1,15 @@
+
+
+TrackedDelegate.WritableValueDelegate.getValue -
+
+
+
+net.corda.client.model / TrackedDelegate / WritableValueDelegate / getValue
+
+getValue
+
+operator fun getValue ( thisRef : Any , property : KProperty < * > ) : WritableValue < T >
+
+
+
+
diff --git a/docs/build/html/api/net.corda.client.model/-tracked-delegate/-writable-value-delegate/index.html b/docs/build/html/api/net.corda.client.model/-tracked-delegate/-writable-value-delegate/index.html
new file mode 100644
index 0000000000..4fd45ec940
--- /dev/null
+++ b/docs/build/html/api/net.corda.client.model/-tracked-delegate/-writable-value-delegate/index.html
@@ -0,0 +1,58 @@
+
+
+TrackedDelegate.WritableValueDelegate -
+
+
+
+net.corda.client.model / TrackedDelegate / WritableValueDelegate
+
+WritableValueDelegate
+class WritableValueDelegate < M : Any , T > : TrackedDelegate < M >
+
+
+Constructors
+
+
+
+
+<init>
+
+WritableValueDelegate ( klass : KClass < M > , writableValueProperty : ( M ) -> WritableValue < T > )
+
+
+
+Properties
+
+Inherited Properties
+
+
+
+
+klass
+
+val klass : KClass < M >
+
+
+
+Functions
+
+
+
+
+getValue
+
+operator fun getValue ( thisRef : Any , property : KProperty < * > ) : WritableValue < T >
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.client.model/-tracked-delegate/-writable-value-delegate/writable-value-property.html b/docs/build/html/api/net.corda.client.model/-tracked-delegate/-writable-value-delegate/writable-value-property.html
new file mode 100644
index 0000000000..8ca3b37f46
--- /dev/null
+++ b/docs/build/html/api/net.corda.client.model/-tracked-delegate/-writable-value-delegate/writable-value-property.html
@@ -0,0 +1,15 @@
+
+
+TrackedDelegate.WritableValueDelegate.writableValueProperty -
+
+
+
+net.corda.client.model / TrackedDelegate / WritableValueDelegate / writableValueProperty
+
+writableValueProperty
+
+val writableValueProperty : ( M ) -> WritableValue < T >
+
+
+
+
diff --git a/docs/build/html/api/net.corda.client.model/-tracked-delegate/index.html b/docs/build/html/api/net.corda.client.model/-tracked-delegate/index.html
new file mode 100644
index 0000000000..0a47c801ca
--- /dev/null
+++ b/docs/build/html/api/net.corda.client.model/-tracked-delegate/index.html
@@ -0,0 +1,155 @@
+
+
+TrackedDelegate -
+
+
+
+net.corda.client.model / TrackedDelegate
+
+TrackedDelegate
+sealed class TrackedDelegate < M : Any >
+
+
+Types
+
+
+
+
+EventSinkDelegate
+
+class EventSinkDelegate < M : Any , T > : TrackedDelegate < M >
+
+
+
+EventStreamDelegate
+
+class EventStreamDelegate < M : Any , T > : TrackedDelegate < M >
+
+
+
+ObjectPropertyDelegate
+
+class ObjectPropertyDelegate < M : Any , T > : TrackedDelegate < M >
+
+
+
+ObservableDelegate
+
+class ObservableDelegate < M : Any , T > : TrackedDelegate < M >
+
+
+
+ObservableListDelegate
+
+class ObservableListDelegate < M : Any , T > : TrackedDelegate < M >
+
+
+
+ObservableListReadOnlyDelegate
+
+class ObservableListReadOnlyDelegate < M : Any , out T > : TrackedDelegate < M >
+
+
+
+ObservableValueDelegate
+
+class ObservableValueDelegate < M : Any , T > : TrackedDelegate < M >
+
+
+
+ObserverDelegate
+
+class ObserverDelegate < M : Any , T > : TrackedDelegate < M >
+
+
+
+SubjectDelegate
+
+class SubjectDelegate < M : Any , T > : TrackedDelegate < M >
+
+
+
+WritableValueDelegate
+
+class WritableValueDelegate < M : Any , T > : TrackedDelegate < M >
+
+
+
+Properties
+
+
+
+
+klass
+
+val klass : KClass < M >
+
+
+
+Inheritors
+
+
+
+
+EventSinkDelegate
+
+class EventSinkDelegate < M : Any , T > : TrackedDelegate < M >
+
+
+
+EventStreamDelegate
+
+class EventStreamDelegate < M : Any , T > : TrackedDelegate < M >
+
+
+
+ObjectPropertyDelegate
+
+class ObjectPropertyDelegate < M : Any , T > : TrackedDelegate < M >
+
+
+
+ObservableDelegate
+
+class ObservableDelegate < M : Any , T > : TrackedDelegate < M >
+
+
+
+ObservableListDelegate
+
+class ObservableListDelegate < M : Any , T > : TrackedDelegate < M >
+
+
+
+ObservableListReadOnlyDelegate
+
+class ObservableListReadOnlyDelegate < M : Any , out T > : TrackedDelegate < M >
+
+
+
+ObservableValueDelegate
+
+class ObservableValueDelegate < M : Any , T > : TrackedDelegate < M >
+
+
+
+ObserverDelegate
+
+class ObserverDelegate < M : Any , T > : TrackedDelegate < M >
+
+
+
+SubjectDelegate
+
+class SubjectDelegate < M : Any , T > : TrackedDelegate < M >
+
+
+
+WritableValueDelegate
+
+class WritableValueDelegate < M : Any , T > : TrackedDelegate < M >
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.client.model/-tracked-delegate/klass.html b/docs/build/html/api/net.corda.client.model/-tracked-delegate/klass.html
new file mode 100644
index 0000000000..e610bb83c7
--- /dev/null
+++ b/docs/build/html/api/net.corda.client.model/-tracked-delegate/klass.html
@@ -0,0 +1,15 @@
+
+
+TrackedDelegate.klass -
+
+
+
+net.corda.client.model / TrackedDelegate / klass
+
+klass
+
+val klass : KClass < M >
+
+
+
+
diff --git a/docs/build/html/api/net.corda.client.model/-transaction-create-status/-failed/-init-.html b/docs/build/html/api/net.corda.client.model/-transaction-create-status/-failed/-init-.html
new file mode 100644
index 0000000000..d3c771aeb3
--- /dev/null
+++ b/docs/build/html/api/net.corda.client.model/-transaction-create-status/-failed/-init-.html
@@ -0,0 +1,14 @@
+
+
+TransactionCreateStatus.Failed. -
+
+
+
+net.corda.client.model / TransactionCreateStatus / Failed / <init>
+
+<init>
+Failed ( message : String ? )
+
+
+
+
diff --git a/docs/build/html/api/net.corda.client.model/-transaction-create-status/-failed/index.html b/docs/build/html/api/net.corda.client.model/-transaction-create-status/-failed/index.html
new file mode 100644
index 0000000000..6b5c93a1c0
--- /dev/null
+++ b/docs/build/html/api/net.corda.client.model/-transaction-create-status/-failed/index.html
@@ -0,0 +1,47 @@
+
+
+TransactionCreateStatus.Failed -
+
+
+
+net.corda.client.model / TransactionCreateStatus / Failed
+
+Failed
+class Failed : TransactionCreateStatus
+
+
+Constructors
+
+
+
+
+<init>
+
+Failed ( message : String ? )
+
+
+
+Inherited Properties
+
+
+
+
+message
+
+val message : String ?
+
+
+
+Inherited Functions
+
+
+
+
+toString
+
+open fun toString ( ) : String
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.client.model/-transaction-create-status/-started/-init-.html b/docs/build/html/api/net.corda.client.model/-transaction-create-status/-started/-init-.html
new file mode 100644
index 0000000000..07d5e923e9
--- /dev/null
+++ b/docs/build/html/api/net.corda.client.model/-transaction-create-status/-started/-init-.html
@@ -0,0 +1,14 @@
+
+
+TransactionCreateStatus.Started. -
+
+
+
+net.corda.client.model / TransactionCreateStatus / Started / <init>
+
+<init>
+Started ( message : String ? )
+
+
+
+
diff --git a/docs/build/html/api/net.corda.client.model/-transaction-create-status/-started/index.html b/docs/build/html/api/net.corda.client.model/-transaction-create-status/-started/index.html
new file mode 100644
index 0000000000..7a3a332a3f
--- /dev/null
+++ b/docs/build/html/api/net.corda.client.model/-transaction-create-status/-started/index.html
@@ -0,0 +1,47 @@
+
+
+TransactionCreateStatus.Started -
+
+
+
+net.corda.client.model / TransactionCreateStatus / Started
+
+Started
+class Started : TransactionCreateStatus
+
+
+Constructors
+
+
+
+
+<init>
+
+Started ( message : String ? )
+
+
+
+Inherited Properties
+
+
+
+
+message
+
+val message : String ?
+
+
+
+Inherited Functions
+
+
+
+
+toString
+
+open fun toString ( ) : String
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.client.model/-transaction-create-status/index.html b/docs/build/html/api/net.corda.client.model/-transaction-create-status/index.html
new file mode 100644
index 0000000000..5dc5a5e754
--- /dev/null
+++ b/docs/build/html/api/net.corda.client.model/-transaction-create-status/index.html
@@ -0,0 +1,70 @@
+
+
+TransactionCreateStatus -
+
+
+
+net.corda.client.model / TransactionCreateStatus
+
+TransactionCreateStatus
+sealed class TransactionCreateStatus
+
+
+Types
+
+
+
+
+Failed
+
+class Failed : TransactionCreateStatus
+
+
+
+Started
+
+class Started : TransactionCreateStatus
+
+
+
+Properties
+
+
+
+
+message
+
+val message : String ?
+
+
+
+Functions
+
+
+
+
+toString
+
+open fun toString ( ) : String
+
+
+
+Inheritors
+
+
+
+
+Failed
+
+class Failed : TransactionCreateStatus
+
+
+
+Started
+
+class Started : TransactionCreateStatus
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.client.model/-transaction-create-status/message.html b/docs/build/html/api/net.corda.client.model/-transaction-create-status/message.html
new file mode 100644
index 0000000000..2002befbef
--- /dev/null
+++ b/docs/build/html/api/net.corda.client.model/-transaction-create-status/message.html
@@ -0,0 +1,15 @@
+
+
+TransactionCreateStatus.message -
+
+
+
+net.corda.client.model / TransactionCreateStatus / message
+
+message
+
+val message : String ?
+
+
+
+
diff --git a/docs/build/html/api/net.corda.client.model/-transaction-create-status/to-string.html b/docs/build/html/api/net.corda.client.model/-transaction-create-status/to-string.html
new file mode 100644
index 0000000000..9d87e2d97c
--- /dev/null
+++ b/docs/build/html/api/net.corda.client.model/-transaction-create-status/to-string.html
@@ -0,0 +1,15 @@
+
+
+TransactionCreateStatus.toString -
+
+
+
+net.corda.client.model / TransactionCreateStatus / toString
+
+toString
+
+open fun toString ( ) : String
+
+
+
+
diff --git a/docs/build/html/api/net.corda.client.model/event-sink.html b/docs/build/html/api/net.corda.client.model/event-sink.html
new file mode 100644
index 0000000000..c7bb3774da
--- /dev/null
+++ b/docs/build/html/api/net.corda.client.model/event-sink.html
@@ -0,0 +1,15 @@
+
+
+eventSink -
+
+
+
+net.corda.client.model / eventSink
+
+eventSink
+
+inline fun < reified M : Any , T > eventSink ( noinline sinkProperty : ( M ) -> <ERROR CLASS> < T > ) : <ERROR CLASS>
+
+
+
+
diff --git a/docs/build/html/api/net.corda.client.model/event-stream.html b/docs/build/html/api/net.corda.client.model/event-stream.html
new file mode 100644
index 0000000000..63321e9d91
--- /dev/null
+++ b/docs/build/html/api/net.corda.client.model/event-stream.html
@@ -0,0 +1,15 @@
+
+
+eventStream -
+
+
+
+net.corda.client.model / eventStream
+
+eventStream
+
+inline fun < reified M : Any , T > eventStream ( noinline streamProperty : ( M ) -> <ERROR CLASS> < T > ) : <ERROR CLASS>
+
+
+
+
diff --git a/docs/build/html/api/net.corda.client.model/exchange-amount.html b/docs/build/html/api/net.corda.client.model/exchange-amount.html
new file mode 100644
index 0000000000..6a92cbee80
--- /dev/null
+++ b/docs/build/html/api/net.corda.client.model/exchange-amount.html
@@ -0,0 +1,15 @@
+
+
+exchangeAmount -
+
+
+
+net.corda.client.model / exchangeAmount
+
+exchangeAmount
+
+fun ExchangeRate . exchangeAmount ( amount : Amount < Currency > , to : Currency ) : Amount < Currency >
+
+
+
+
diff --git a/docs/build/html/api/net.corda.client.model/exchange-double.html b/docs/build/html/api/net.corda.client.model/exchange-double.html
new file mode 100644
index 0000000000..72c45d13f5
--- /dev/null
+++ b/docs/build/html/api/net.corda.client.model/exchange-double.html
@@ -0,0 +1,15 @@
+
+
+exchangeDouble -
+
+
+
+net.corda.client.model / exchangeDouble
+
+exchangeDouble
+
+fun ExchangeRate . exchangeDouble ( amount : Amount < Currency > , to : Currency ) : Double
+
+
+
+
diff --git a/docs/build/html/api/net.corda.client.model/index.html b/docs/build/html/api/net.corda.client.model/index.html
new file mode 100644
index 0000000000..dad92cd191
--- /dev/null
+++ b/docs/build/html/api/net.corda.client.model/index.html
@@ -0,0 +1,199 @@
+
+
+net.corda.client.model -
+
+
+
+net.corda.client.model
+
+Package net.corda.client.model
+Types
+
+Functions
+
+
+
+
+eventSink
+
+fun < M : Any , T > eventSink ( sinkProperty : ( M ) -> <ERROR CLASS> < T > ) : <ERROR CLASS>
+
+
+
+eventStream
+
+fun < M : Any , T > eventStream ( streamProperty : ( M ) -> <ERROR CLASS> < T > ) : <ERROR CLASS>
+
+
+
+exchangeAmount
+
+fun ExchangeRate . exchangeAmount ( amount : Amount < Currency > , to : Currency ) : Amount < Currency >
+
+
+
+exchangeDouble
+
+fun ExchangeRate . exchangeDouble ( amount : Amount < Currency > , to : Currency ) : Double
+
+
+
+objectProperty
+
+fun < M : Any , T > objectProperty ( objectProperty : ( M ) -> ObjectProperty < T > ) : ObjectPropertyDelegate < M , T >
+
+
+
+observable
+
+fun < M : Any , T > observable ( observableProperty : ( M ) -> <ERROR CLASS> < T > ) : <ERROR CLASS>
This file defines a global Models store and delegates to inject event streams/sinks. Note that all streams here
+are global.
+
+
+
+
+observableList
+
+fun < M : Any , T > observableList ( observableListProperty : ( M ) -> ObservableList < T > ) : ObservableListDelegate < M , T >
+
+
+
+observableListReadOnly
+
+fun < M : Any , T > observableListReadOnly ( observableListProperty : ( M ) -> ObservableList < out T > ) : ObservableListReadOnlyDelegate < M , T >
+
+
+
+observableValue
+
+fun < M : Any , T > observableValue ( observableValueProperty : ( M ) -> ObservableValue < T > ) : ObservableValueDelegate < M , T >
+
+
+
+observer
+
+fun < M : Any , T > observer ( observerProperty : ( M ) -> <ERROR CLASS> < T > ) : <ERROR CLASS>
+
+
+
+subject
+
+fun < M : Any , T > subject ( subjectProperty : ( M ) -> <ERROR CLASS> < T , T > ) : <ERROR CLASS>
+
+
+
+writableValue
+
+fun < M : Any , T > writableValue ( writableValueProperty : ( M ) -> WritableValue < T > ) : WritableValueDelegate < M , T >
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.client.model/object-property.html b/docs/build/html/api/net.corda.client.model/object-property.html
new file mode 100644
index 0000000000..9b52034eee
--- /dev/null
+++ b/docs/build/html/api/net.corda.client.model/object-property.html
@@ -0,0 +1,15 @@
+
+
+objectProperty -
+
+
+
+net.corda.client.model / objectProperty
+
+objectProperty
+
+inline fun < reified M : Any , T > objectProperty ( noinline objectProperty : ( M ) -> ObjectProperty < T > ) : ObjectPropertyDelegate < M , T >
+
+
+
+
diff --git a/docs/build/html/api/net.corda.client.model/observable-list-read-only.html b/docs/build/html/api/net.corda.client.model/observable-list-read-only.html
new file mode 100644
index 0000000000..e2d3423667
--- /dev/null
+++ b/docs/build/html/api/net.corda.client.model/observable-list-read-only.html
@@ -0,0 +1,15 @@
+
+
+observableListReadOnly -
+
+
+
+net.corda.client.model / observableListReadOnly
+
+observableListReadOnly
+
+inline fun < reified M : Any , T > observableListReadOnly ( noinline observableListProperty : ( M ) -> ObservableList < out T > ) : ObservableListReadOnlyDelegate < M , T >
+
+
+
+
diff --git a/docs/build/html/api/net.corda.client.model/observable-list.html b/docs/build/html/api/net.corda.client.model/observable-list.html
new file mode 100644
index 0000000000..ac303fcedb
--- /dev/null
+++ b/docs/build/html/api/net.corda.client.model/observable-list.html
@@ -0,0 +1,15 @@
+
+
+observableList -
+
+
+
+net.corda.client.model / observableList
+
+observableList
+
+inline fun < reified M : Any , T > observableList ( noinline observableListProperty : ( M ) -> ObservableList < T > ) : ObservableListDelegate < M , T >
+
+
+
+
diff --git a/docs/build/html/api/net.corda.client.model/observable-value.html b/docs/build/html/api/net.corda.client.model/observable-value.html
new file mode 100644
index 0000000000..12469e3665
--- /dev/null
+++ b/docs/build/html/api/net.corda.client.model/observable-value.html
@@ -0,0 +1,15 @@
+
+
+observableValue -
+
+
+
+net.corda.client.model / observableValue
+
+observableValue
+
+inline fun < reified M : Any , T > observableValue ( noinline observableValueProperty : ( M ) -> ObservableValue < T > ) : ObservableValueDelegate < M , T >
+
+
+
+
diff --git a/docs/build/html/api/net.corda.client.model/observable.html b/docs/build/html/api/net.corda.client.model/observable.html
new file mode 100644
index 0000000000..aa214eaff3
--- /dev/null
+++ b/docs/build/html/api/net.corda.client.model/observable.html
@@ -0,0 +1,52 @@
+
+
+observable -
+
+
+
+net.corda.client.model / observable
+
+observable
+
+inline fun < reified M : Any , T > observable ( noinline observableProperty : ( M ) -> <ERROR CLASS> < T > ) : <ERROR CLASS>
+This file defines a global Models store and delegates to inject event streams/sinks. Note that all streams here
+are global.
+This allows decoupling of UI logic from stream initialisation and provides us with a central place to inspect data
+flows. It also allows detecting of looping logic by constructing a stream dependency graph TODO do this.
+Usage:
+// Inject service -> client event stream
+private val serviceToClient: EventStream by eventStream(WalletMonitorModel::serviceToClient)
+Each Screen code should have a code layout like this:
+class Screen {
+val root = (..)
+inject UI elements using fxid/inject
+inject observable dependencies using observable/eventSinketc
+define screen-specific observables
+init {
+wire up UI elements
+}
+}
+For example if I wanted to display a list of all USD cash states:
+class USDCashStatesScreen {
+val root: Pane by fxml()
+val usdCashStatesListView: ListView<Cash.State> by fxid("USDCashStatesListView")
+val cashStates: ObservableList<Cash.State> by observableList(ContractStateModel::cashStates)
+val usdCashStates = cashStates.filter { it.(..).currency == USD }
+init {
+Bindings.bindContent(usdCashStatesListView.items, usdCashStates)
+usdCashStatesListView.setCellValueFactory(somethingsomething)
+}
+}
+The UI code can just assume that the cash state list comes from somewhere outside. The initialisation of that
+observable is decoupled, it may be mocked or be streamed from the network etc.
+Later on we may even want to move all screen-specific observables to a separate Model as well (like usdCashStates) - this
+would allow moving all of the aggregation logic to e.g. a different machine, all the UI will do is inject these and wire
+them up with the UI elements.
+Another advantage of this separation is that once we start adding a lot of screens we can still track data dependencies
+in a central place as opposed to ad-hoc wiring up the observables.
+
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.client.model/observer.html b/docs/build/html/api/net.corda.client.model/observer.html
new file mode 100644
index 0000000000..96c1bb0545
--- /dev/null
+++ b/docs/build/html/api/net.corda.client.model/observer.html
@@ -0,0 +1,15 @@
+
+
+observer -
+
+
+
+net.corda.client.model / observer
+
+observer
+
+inline fun < reified M : Any , T > observer ( noinline observerProperty : ( M ) -> <ERROR CLASS> < T > ) : <ERROR CLASS>
+
+
+
+
diff --git a/docs/build/html/api/net.corda.client.model/subject.html b/docs/build/html/api/net.corda.client.model/subject.html
new file mode 100644
index 0000000000..74a564e85f
--- /dev/null
+++ b/docs/build/html/api/net.corda.client.model/subject.html
@@ -0,0 +1,15 @@
+
+
+subject -
+
+
+
+net.corda.client.model / subject
+
+subject
+
+inline fun < reified M : Any , T > subject ( noinline subjectProperty : ( M ) -> <ERROR CLASS> < T , T > ) : <ERROR CLASS>
+
+
+
+
diff --git a/docs/build/html/api/net.corda.client.model/writable-value.html b/docs/build/html/api/net.corda.client.model/writable-value.html
new file mode 100644
index 0000000000..9d189d56ff
--- /dev/null
+++ b/docs/build/html/api/net.corda.client.model/writable-value.html
@@ -0,0 +1,15 @@
+
+
+writableValue -
+
+
+
+net.corda.client.model / writableValue
+
+writableValue
+
+inline fun < reified M : Any , T > writableValue ( noinline writableValueProperty : ( M ) -> WritableValue < T > ) : WritableValueDelegate < M , T >
+
+
+
+
diff --git a/docs/build/html/api/net.corda.client/-corda-r-p-c-client/-init-.html b/docs/build/html/api/net.corda.client/-corda-r-p-c-client/-init-.html
new file mode 100644
index 0000000000..16435a1129
--- /dev/null
+++ b/docs/build/html/api/net.corda.client/-corda-r-p-c-client/-init-.html
@@ -0,0 +1,16 @@
+
+
+CordaRPCClient. -
+
+
+
+net.corda.client / CordaRPCClient / <init>
+
+<init>
+CordaRPCClient ( host : <ERROR CLASS> , config : NodeSSLConfiguration )
+An RPC client connects to the specified server and allows you to make calls to the server that perform various
+useful tasks. See the documentation for proxy or review the docsite to learn more about how this API works.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.client/-corda-r-p-c-client/close.html b/docs/build/html/api/net.corda.client/-corda-r-p-c-client/close.html
new file mode 100644
index 0000000000..ee0a4ffc02
--- /dev/null
+++ b/docs/build/html/api/net.corda.client/-corda-r-p-c-client/close.html
@@ -0,0 +1,16 @@
+
+
+CordaRPCClient.close -
+
+
+
+net.corda.client / CordaRPCClient / close
+
+close
+
+fun close ( ) : Unit
+Shuts down the client and lets the server know it can free the used resources (in a nice way)
+
+
+
+
diff --git a/docs/build/html/api/net.corda.client/-corda-r-p-c-client/config.html b/docs/build/html/api/net.corda.client/-corda-r-p-c-client/config.html
new file mode 100644
index 0000000000..354e8cc1a3
--- /dev/null
+++ b/docs/build/html/api/net.corda.client/-corda-r-p-c-client/config.html
@@ -0,0 +1,17 @@
+
+
+CordaRPCClient.config -
+
+
+
+net.corda.client / CordaRPCClient / config
+
+config
+
+val config : NodeSSLConfiguration
+Overrides ArtemisMessagingComponent.config
+The config object is used to pass in the passwords for the certificate KeyStore and TrustStore
+
+
+
+
diff --git a/docs/build/html/api/net.corda.client/-corda-r-p-c-client/host.html b/docs/build/html/api/net.corda.client/-corda-r-p-c-client/host.html
new file mode 100644
index 0000000000..535d36c553
--- /dev/null
+++ b/docs/build/html/api/net.corda.client/-corda-r-p-c-client/host.html
@@ -0,0 +1,15 @@
+
+
+CordaRPCClient.host -
+
+
+
+net.corda.client / CordaRPCClient / host
+
+host
+
+val host : <ERROR CLASS>
+
+
+
+
diff --git a/docs/build/html/api/net.corda.client/-corda-r-p-c-client/index.html b/docs/build/html/api/net.corda.client/-corda-r-p-c-client/index.html
new file mode 100644
index 0000000000..0d7b7e1a99
--- /dev/null
+++ b/docs/build/html/api/net.corda.client/-corda-r-p-c-client/index.html
@@ -0,0 +1,113 @@
+
+
+CordaRPCClient -
+
+
+
+net.corda.client / CordaRPCClient
+
+CordaRPCClient
+class CordaRPCClient : Closeable , ArtemisMessagingComponent
+An RPC client connects to the specified server and allows you to make calls to the server that perform various
+useful tasks. See the documentation for proxy or review the docsite to learn more about how this API works.
+
+
+Constructors
+
+
+
+
+<init>
+
+CordaRPCClient ( host : <ERROR CLASS> , config : NodeSSLConfiguration )
An RPC client connects to the specified server and allows you to make calls to the server that perform various
+useful tasks. See the documentation for proxy or review the docsite to learn more about how this API works.
+
+
+
+
+Properties
+
+
+
+
+config
+
+val config : NodeSSLConfiguration
The config object is used to pass in the passwords for the certificate KeyStore and TrustStore
+
+
+
+
+host
+
+val host : <ERROR CLASS>
+
+
+
+Functions
+
+
+
+
+close
+
+fun close ( ) : Unit
Shuts down the client and lets the server know it can free the used resources (in a nice way)
+
+
+
+
+proxy
+
+fun proxy ( timeout : Duration ? = null, minVersion : Int = 0) : CordaRPCOps
Returns a fresh proxy that lets you invoke RPCs on the server. Calls on it block, and if the server throws an
+exception then it will be rethrown on the client. Proxies are thread safe but only one RPC can be in flight at
+once. If youd like to perform multiple RPCs in parallel, use this function multiple times to get multiple
+proxies.
+
+
+
+
+start
+
+fun start ( username : String , password : String ) : Unit
Opens the connection to the server and registers a JVM shutdown hook to cleanly disconnect.
+
+
+
+
+Inherited Functions
+
+
+
diff --git a/docs/build/html/api/net.corda.client/-corda-r-p-c-client/proxy.html b/docs/build/html/api/net.corda.client/-corda-r-p-c-client/proxy.html
new file mode 100644
index 0000000000..49dc187b73
--- /dev/null
+++ b/docs/build/html/api/net.corda.client/-corda-r-p-c-client/proxy.html
@@ -0,0 +1,44 @@
+
+
+CordaRPCClient.proxy -
+
+
+
+net.corda.client / CordaRPCClient / proxy
+
+proxy
+
+fun proxy ( timeout : Duration ? = null, minVersion : Int = 0) : CordaRPCOps
+Returns a fresh proxy that lets you invoke RPCs on the server. Calls on it block, and if the server throws an
+exception then it will be rethrown on the client. Proxies are thread safe but only one RPC can be in flight at
+once. If youd like to perform multiple RPCs in parallel, use this function multiple times to get multiple
+proxies.
+Creation of a proxy is a somewhat expensive operation that involves calls to the server, so if you want to do
+calls from many threads at once you should cache one proxy per thread and reuse them. This function itself is
+thread safe though so requires no extra synchronisation.
+RPC sends and receives are logged on the net.corda.rpc logger.
+By default there are no timeouts on calls. RPCs can survive temporary losses or changes in connectivity,
+like switching between wifi networks. You can specify a timeout on the level of a proxy. If a call times
+out it will throw RPCException.Deadline .
+The CordaRPCOps defines what client RPCs are available. If an RPC returns an Observable anywhere in the
+object graph returned then the server-side observable is transparently linked to a messaging queue, and that
+queue linked to another observable on the client side here. You are expected to use it . The server will begin
+buffering messages immediately that it will expect you to drain by subscribing to the returned observer. You can
+opt-out of this by simply casting the Observable to Closeable or AutoCloseable and then calling the close
+method on it. You dont have to explicitly close the observable if you actually subscribe to it: it will close
+itself and free up the server-side resources either when the client or JVM itself is shutdown, or when there are
+no more subscribers to it. Once all the subscribers to a returned observable are unsubscribed, the observable is
+closed and you cant then re-subscribe again: youll have to re-request a fresh observable with another RPC.
+The proxy and linked observables consume some small amount of resources on the server. Its OK to just exit your
+process and let the server clean up, but in a long running process where you only need something for a short
+amount of time it is polite to cast the objects to Closeable or AutoCloseable and close it when you are done.
+Finalizers are in place to warn you if you lose a reference to an unclosed proxy or observable.
+
+
+Exceptions
+
+RPCException
- if the server version is too low or if the server isnt reachable within the given time.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.client/-corda-r-p-c-client/start.html b/docs/build/html/api/net.corda.client/-corda-r-p-c-client/start.html
new file mode 100644
index 0000000000..88ff0e6ffa
--- /dev/null
+++ b/docs/build/html/api/net.corda.client/-corda-r-p-c-client/start.html
@@ -0,0 +1,16 @@
+
+
+CordaRPCClient.start -
+
+
+
+net.corda.client / CordaRPCClient / start
+
+start
+
+fun start ( username : String , password : String ) : Unit
+Opens the connection to the server and registers a JVM shutdown hook to cleanly disconnect.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.client/index.html b/docs/build/html/api/net.corda.client/index.html
new file mode 100644
index 0000000000..cc0fe5601a
--- /dev/null
+++ b/docs/build/html/api/net.corda.client/index.html
@@ -0,0 +1,24 @@
+
+
+net.corda.client -
+
+
+
+net.corda.client
+
+Package net.corda.client
+Types
+
+
+
+
+CordaRPCClient
+
+class CordaRPCClient : Closeable , ArtemisMessagingComponent
An RPC client connects to the specified server and allows you to make calls to the server that perform various
+useful tasks. See the documentation for proxy or review the docsite to learn more about how this API works.
+
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts.asset/-c-a-s-h.html b/docs/build/html/api/net.corda.contracts.asset/-c-a-s-h.html
new file mode 100644
index 0000000000..d640d7be71
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts.asset/-c-a-s-h.html
@@ -0,0 +1,16 @@
+
+
+CASH -
+
+
+
+net.corda.contracts.asset / CASH
+
+CASH
+
+val Amount < Currency > . CASH : State
+An extension property that lets you write 100.DOLLARS.CASH
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts.asset/-c-a-s-h_-p-r-o-g-r-a-m_-i-d.html b/docs/build/html/api/net.corda.contracts.asset/-c-a-s-h_-p-r-o-g-r-a-m_-i-d.html
new file mode 100644
index 0000000000..ab50248f83
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts.asset/-c-a-s-h_-p-r-o-g-r-a-m_-i-d.html
@@ -0,0 +1,15 @@
+
+
+CASH_PROGRAM_ID -
+
+
+
+net.corda.contracts.asset / CASH_PROGRAM_ID
+
+CASH_PROGRAM_ID
+
+val CASH_PROGRAM_ID : Cash
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts.asset/-c-o-m-m-o-d-i-t-y_-p-r-o-g-r-a-m_-i-d.html b/docs/build/html/api/net.corda.contracts.asset/-c-o-m-m-o-d-i-t-y_-p-r-o-g-r-a-m_-i-d.html
new file mode 100644
index 0000000000..6c7ee9400d
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts.asset/-c-o-m-m-o-d-i-t-y_-p-r-o-g-r-a-m_-i-d.html
@@ -0,0 +1,15 @@
+
+
+COMMODITY_PROGRAM_ID -
+
+
+
+net.corda.contracts.asset / COMMODITY_PROGRAM_ID
+
+COMMODITY_PROGRAM_ID
+
+val COMMODITY_PROGRAM_ID : CommodityContract
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts.asset/-cash/-clauses/-conserve-amount/-init-.html b/docs/build/html/api/net.corda.contracts.asset/-cash/-clauses/-conserve-amount/-init-.html
new file mode 100644
index 0000000000..5a76adcedb
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts.asset/-cash/-clauses/-conserve-amount/-init-.html
@@ -0,0 +1,14 @@
+
+
+Cash.Clauses.ConserveAmount. -
+
+
+
+net.corda.contracts.asset / Cash / Clauses / ConserveAmount / <init>
+
+<init>
+ConserveAmount ( )
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts.asset/-cash/-clauses/-conserve-amount/index.html b/docs/build/html/api/net.corda.contracts.asset/-cash/-clauses/-conserve-amount/index.html
new file mode 100644
index 0000000000..a063b439ee
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts.asset/-cash/-clauses/-conserve-amount/index.html
@@ -0,0 +1,36 @@
+
+
+Cash.Clauses.ConserveAmount -
+
+
+
+net.corda.contracts.asset / Cash / Clauses / ConserveAmount
+
+ConserveAmount
+class ConserveAmount : AbstractConserveAmount < State , Commands , Currency >
+
+
+Constructors
+
+
+
+
+<init>
+
+ConserveAmount ( )
+
+
+
+Inherited Functions
+
+
+
+
+toString
+
+open fun toString ( ) : String
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts.asset/-cash/-clauses/-group/-init-.html b/docs/build/html/api/net.corda.contracts.asset/-cash/-clauses/-group/-init-.html
new file mode 100644
index 0000000000..29f392b1df
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts.asset/-cash/-clauses/-group/-init-.html
@@ -0,0 +1,14 @@
+
+
+Cash.Clauses.Group. -
+
+
+
+net.corda.contracts.asset / Cash / Clauses / Group / <init>
+
+<init>
+Group ( )
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts.asset/-cash/-clauses/-group/group-states.html b/docs/build/html/api/net.corda.contracts.asset/-cash/-clauses/-group/group-states.html
new file mode 100644
index 0000000000..c5448d5584
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts.asset/-cash/-clauses/-group/group-states.html
@@ -0,0 +1,16 @@
+
+
+Cash.Clauses.Group.groupStates -
+
+
+
+net.corda.contracts.asset / Cash / Clauses / Group / groupStates
+
+groupStates
+
+fun groupStates ( tx : TransactionForContract ) : List < InOutGroup < State , Issued < Currency > > >
+Overrides GroupClauseVerifier.groupStates
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts.asset/-cash/-clauses/-group/index.html b/docs/build/html/api/net.corda.contracts.asset/-cash/-clauses/-group/index.html
new file mode 100644
index 0000000000..b4d0d5cd7f
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts.asset/-cash/-clauses/-group/index.html
@@ -0,0 +1,47 @@
+
+
+Cash.Clauses.Group -
+
+
+
+net.corda.contracts.asset / Cash / Clauses / Group
+
+Group
+class Group : GroupClauseVerifier < State , Commands , Issued < Currency > >
+
+
+Constructors
+
+
+
+
+<init>
+
+Group ( )
+
+
+
+Inherited Properties
+
+Functions
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts.asset/-cash/-clauses/-issue/-init-.html b/docs/build/html/api/net.corda.contracts.asset/-cash/-clauses/-issue/-init-.html
new file mode 100644
index 0000000000..d05cfb3fc0
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts.asset/-cash/-clauses/-issue/-init-.html
@@ -0,0 +1,14 @@
+
+
+Cash.Clauses.Issue. -
+
+
+
+net.corda.contracts.asset / Cash / Clauses / Issue / <init>
+
+<init>
+Issue ( )
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts.asset/-cash/-clauses/-issue/index.html b/docs/build/html/api/net.corda.contracts.asset/-cash/-clauses/-issue/index.html
new file mode 100644
index 0000000000..d126842d6d
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts.asset/-cash/-clauses/-issue/index.html
@@ -0,0 +1,54 @@
+
+
+Cash.Clauses.Issue -
+
+
+
+net.corda.contracts.asset / Cash / Clauses / Issue
+
+Issue
+class Issue : AbstractIssue < State , Commands , Currency >
+
+
+Constructors
+
+
+
+
+<init>
+
+Issue ( )
+
+
+
+Properties
+
+Inherited Properties
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts.asset/-cash/-clauses/-issue/required-commands.html b/docs/build/html/api/net.corda.contracts.asset/-cash/-clauses/-issue/required-commands.html
new file mode 100644
index 0000000000..09ba1af5b0
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts.asset/-cash/-clauses/-issue/required-commands.html
@@ -0,0 +1,17 @@
+
+
+Cash.Clauses.Issue.requiredCommands -
+
+
+
+net.corda.contracts.asset / Cash / Clauses / Issue / requiredCommands
+
+requiredCommands
+
+val requiredCommands : Set < Class < out CommandData > >
+Overrides Clause.requiredCommands
+Determine whether this clause runs or not
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts.asset/-cash/-clauses/index.html b/docs/build/html/api/net.corda.contracts.asset/-cash/-clauses/index.html
new file mode 100644
index 0000000000..708abae1f2
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts.asset/-cash/-clauses/index.html
@@ -0,0 +1,37 @@
+
+
+Cash.Clauses -
+
+
+
+net.corda.contracts.asset / Cash / Clauses
+
+Clauses
+interface Clauses
+
+
+Types
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts.asset/-cash/-commands/-exit/-init-.html b/docs/build/html/api/net.corda.contracts.asset/-cash/-commands/-exit/-init-.html
new file mode 100644
index 0000000000..d7bc993df2
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts.asset/-cash/-commands/-exit/-init-.html
@@ -0,0 +1,16 @@
+
+
+Cash.Commands.Exit. -
+
+
+
+net.corda.contracts.asset / Cash / Commands / Exit / <init>
+
+<init>
+Exit ( amount : Amount < Issued < Currency > > )
+A command stating that money has been withdrawn from the shared ledger and is now accounted for
+in some other way.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts.asset/-cash/-commands/-exit/amount.html b/docs/build/html/api/net.corda.contracts.asset/-cash/-commands/-exit/amount.html
new file mode 100644
index 0000000000..eead620cbb
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts.asset/-cash/-commands/-exit/amount.html
@@ -0,0 +1,16 @@
+
+
+Cash.Commands.Exit.amount -
+
+
+
+net.corda.contracts.asset / Cash / Commands / Exit / amount
+
+amount
+
+val amount : Amount < Issued < Currency > >
+Overrides Exit.amount
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts.asset/-cash/-commands/-exit/index.html b/docs/build/html/api/net.corda.contracts.asset/-cash/-commands/-exit/index.html
new file mode 100644
index 0000000000..14b7b3c32f
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts.asset/-cash/-commands/-exit/index.html
@@ -0,0 +1,40 @@
+
+
+Cash.Commands.Exit -
+
+
+
+net.corda.contracts.asset / Cash / Commands / Exit
+
+Exit
+data class Exit : Commands , Exit < Currency >
+A command stating that money has been withdrawn from the shared ledger and is now accounted for
+in some other way.
+
+
+Constructors
+
+
+
+
+<init>
+
+Exit ( amount : Amount < Issued < Currency > > )
A command stating that money has been withdrawn from the shared ledger and is now accounted for
+in some other way.
+
+
+
+
+Properties
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts.asset/-cash/-commands/-issue/-init-.html b/docs/build/html/api/net.corda.contracts.asset/-cash/-commands/-issue/-init-.html
new file mode 100644
index 0000000000..6753ba91ec
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts.asset/-cash/-commands/-issue/-init-.html
@@ -0,0 +1,16 @@
+
+
+Cash.Commands.Issue. -
+
+
+
+net.corda.contracts.asset / Cash / Commands / Issue / <init>
+
+<init>
+Issue ( nonce : Long = newSecureRandom().nextLong())
+Allows new cash states to be issued into existence: the nonce ("number used once") ensures the transaction
+has a unique ID even when there are no inputs.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts.asset/-cash/-commands/-issue/index.html b/docs/build/html/api/net.corda.contracts.asset/-cash/-commands/-issue/index.html
new file mode 100644
index 0000000000..b0076f77bc
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts.asset/-cash/-commands/-issue/index.html
@@ -0,0 +1,40 @@
+
+
+Cash.Commands.Issue -
+
+
+
+net.corda.contracts.asset / Cash / Commands / Issue
+
+Issue
+data class Issue : Issue , Commands
+Allows new cash states to be issued into existence: the nonce ("number used once") ensures the transaction
+has a unique ID even when there are no inputs.
+
+
+Constructors
+
+
+
+
+<init>
+
+Issue ( nonce : Long = newSecureRandom().nextLong())
Allows new cash states to be issued into existence: the nonce ("number used once") ensures the transaction
+has a unique ID even when there are no inputs.
+
+
+
+
+Properties
+
+
+
+
+nonce
+
+val nonce : Long
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts.asset/-cash/-commands/-issue/nonce.html b/docs/build/html/api/net.corda.contracts.asset/-cash/-commands/-issue/nonce.html
new file mode 100644
index 0000000000..82f08d4984
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts.asset/-cash/-commands/-issue/nonce.html
@@ -0,0 +1,16 @@
+
+
+Cash.Commands.Issue.nonce -
+
+
+
+net.corda.contracts.asset / Cash / Commands / Issue / nonce
+
+nonce
+
+val nonce : Long
+Overrides IssueCommand.nonce
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts.asset/-cash/-commands/-move/-init-.html b/docs/build/html/api/net.corda.contracts.asset/-cash/-commands/-move/-init-.html
new file mode 100644
index 0000000000..86e319d1b9
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts.asset/-cash/-commands/-move/-init-.html
@@ -0,0 +1,20 @@
+
+
+Cash.Commands.Move. -
+
+
+
+net.corda.contracts.asset / Cash / Commands / Move / <init>
+
+<init>
+Move ( contractHash : SecureHash ? = null)
+A command stating that money has been moved, optionally to fulfil another contract.
+Parameters
+
+contractHash
- the contract this move is for the attention of. Only that contracts verify function
+should take the moved states into account when considering whether it is valid. Typically this will be
+null.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts.asset/-cash/-commands/-move/contract-hash.html b/docs/build/html/api/net.corda.contracts.asset/-cash/-commands/-move/contract-hash.html
new file mode 100644
index 0000000000..5729a6487a
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts.asset/-cash/-commands/-move/contract-hash.html
@@ -0,0 +1,18 @@
+
+
+Cash.Commands.Move.contractHash -
+
+
+
+net.corda.contracts.asset / Cash / Commands / Move / contractHash
+
+contractHash
+
+val contractHash : SecureHash ?
+Overrides MoveCommand.contractHash
+Contract code the moved state(s) are for the attention of, for example to indicate that the states are moved in
+order to settle an obligation contracts state object(s).
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts.asset/-cash/-commands/-move/index.html b/docs/build/html/api/net.corda.contracts.asset/-cash/-commands/-move/index.html
new file mode 100644
index 0000000000..f3882673f6
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts.asset/-cash/-commands/-move/index.html
@@ -0,0 +1,45 @@
+
+
+Cash.Commands.Move -
+
+
+
+net.corda.contracts.asset / Cash / Commands / Move
+
+Move
+data class Move : Move , Commands
+A command stating that money has been moved, optionally to fulfil another contract.
+Parameters
+
+contractHash
- the contract this move is for the attention of. Only that contracts verify function
+should take the moved states into account when considering whether it is valid. Typically this will be
+null.
+
+
+Constructors
+
+
+
+
+<init>
+
+Move ( contractHash : SecureHash ? = null)
A command stating that money has been moved, optionally to fulfil another contract.
+
+
+
+
+Properties
+
+
+
+
+contractHash
+
+val contractHash : SecureHash ?
Contract code the moved state(s) are for the attention of, for example to indicate that the states are moved in
+order to settle an obligation contracts state object(s).
+
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts.asset/-cash/-commands/index.html b/docs/build/html/api/net.corda.contracts.asset/-cash/-commands/index.html
new file mode 100644
index 0000000000..5971713536
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts.asset/-cash/-commands/index.html
@@ -0,0 +1,70 @@
+
+
+Cash.Commands -
+
+
+
+net.corda.contracts.asset / Cash / Commands
+
+Commands
+interface Commands : Commands
+
+
+Types
+
+
+
+
+Exit
+
+data class Exit : Commands , Exit < Currency >
A command stating that money has been withdrawn from the shared ledger and is now accounted for
+in some other way.
+
+
+
+
+Issue
+
+data class Issue : Issue , Commands
Allows new cash states to be issued into existence: the nonce ("number used once") ensures the transaction
+has a unique ID even when there are no inputs.
+
+
+
+
+Move
+
+data class Move : Move , Commands
A command stating that money has been moved, optionally to fulfil another contract.
+
+
+
+
+Inheritors
+
+
+
+
+Exit
+
+data class Exit : Commands , Exit < Currency >
A command stating that money has been withdrawn from the shared ledger and is now accounted for
+in some other way.
+
+
+
+
+Issue
+
+data class Issue : Issue , Commands
Allows new cash states to be issued into existence: the nonce ("number used once") ensures the transaction
+has a unique ID even when there are no inputs.
+
+
+
+
+Move
+
+data class Move : Move , Commands
A command stating that money has been moved, optionally to fulfil another contract.
+
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts.asset/-cash/-init-.html b/docs/build/html/api/net.corda.contracts.asset/-cash/-init-.html
new file mode 100644
index 0000000000..f96b02236d
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts.asset/-cash/-init-.html
@@ -0,0 +1,25 @@
+
+
+Cash. -
+
+
+
+net.corda.contracts.asset / Cash / <init>
+
+<init>
+Cash ( )
+A cash transaction may split and merge money represented by a set of (issuer, depositRef) pairs, across multiple
+input and output states. Imagine a Bitcoin transaction but in which all UTXOs had a colour
+(a blend of issuer+depositRef) and you couldnt merge outputs of two colours together, but you COULD put them in
+the same transaction.
+The goal of this design is to ensure that money can be withdrawn from the ledger easily: if you receive some money
+via this contract, you always know where to go in order to extract it from the R3 ledger, no matter how many hands
+it has passed through in the intervening time.
+At the same time, other contracts that just want money and dont care much who is currently holding it in their
+vaults can ignore the issuer/depositRefs and just examine the amount fields.
+
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts.asset/-cash/-state/-init-.html b/docs/build/html/api/net.corda.contracts.asset/-cash/-state/-init-.html
new file mode 100644
index 0000000000..54497af793
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts.asset/-cash/-state/-init-.html
@@ -0,0 +1,18 @@
+
+
+Cash.State. -
+
+
+
+net.corda.contracts.asset / Cash / State / <init>
+
+<init>
+State ( deposit : PartyAndReference , amount : Amount < Currency > , owner : PublicKey )
+
+
+State ( amount : Amount < Issued < Currency > > , owner : PublicKey , encumbrance : Int ? = null)
+A state representing a cash claim against some party.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts.asset/-cash/-state/amount.html b/docs/build/html/api/net.corda.contracts.asset/-cash/-state/amount.html
new file mode 100644
index 0000000000..9bfdd9e953
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts.asset/-cash/-state/amount.html
@@ -0,0 +1,16 @@
+
+
+Cash.State.amount -
+
+
+
+net.corda.contracts.asset / Cash / State / amount
+
+amount
+
+val amount : Amount < Issued < Currency > >
+Overrides FungibleAsset.amount
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts.asset/-cash/-state/contract.html b/docs/build/html/api/net.corda.contracts.asset/-cash/-state/contract.html
new file mode 100644
index 0000000000..6b3e1e0e9c
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts.asset/-cash/-state/contract.html
@@ -0,0 +1,43 @@
+
+
+Cash.State.contract -
+
+
+
+net.corda.contracts.asset / Cash / State / contract
+
+contract
+
+val contract : Cash
+Overrides ContractState.contract
+An instance of the contract class that will verify this state.
+Discussion
+This field is not the final design, its just a piece of temporary scaffolding. Once the contract sandbox is
+further along, this field will become a description of which attachments are acceptable for defining the
+contract.
+Recall that an attachment is a zip file that can be referenced from any transaction. The contents of the
+attachments are merged together and cannot define any overlapping files, thus for any given transaction there
+is a miniature file system in which each file can be precisely mapped to the defining attachment.
+Attachments may contain many things (data files, legal documents, etc) but mostly they contain JVM bytecode.
+The class files inside define not only Contract implementations but also the classes that define the states.
+Within the rest of a transaction, user-providable components are referenced by name only.
+This means that a smart contract in Corda does two things:
+Define the data structures that compose the ledger (the states)
+Define the rules for updating those structures
+The first is merely a utility role ... in theory contract code could manually parse byte streams by hand.
+The second is vital to the integrity of the ledger. So this field needs to be able to express constraints like:
+Only attachment 733c350f396a727655be1363c06635ba355036bd54a5ed6e594fd0b5d05f42f6 may be used with this state.
+Any attachment signed by public key 2d1ce0e330c52b8055258d776c40 may be used with this state.
+Attachments (1, 2, 3) may all be used with this state.
+and so on. In this way it becomes possible for the business logic governing a state to be evolved, if the
+constraints are flexible enough.
+Because contract classes often also define utilities that generate relevant transactions, and because attachments
+cannot know their own hashes, we will have to provide various utilities to assist with obtaining the right
+code constraints from within the contract code itself.
+TODO: Implement the above description. See COR-226
+
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts.asset/-cash/-state/encumbrance.html b/docs/build/html/api/net.corda.contracts.asset/-cash/-state/encumbrance.html
new file mode 100644
index 0000000000..73b508900b
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts.asset/-cash/-state/encumbrance.html
@@ -0,0 +1,30 @@
+
+
+Cash.State.encumbrance -
+
+
+
+net.corda.contracts.asset / Cash / State / encumbrance
+
+encumbrance
+
+val encumbrance : Int ?
+Overrides ContractState.encumbrance
+All contract states may be encumbered by up to one other state.
+The encumbrance state, if present, forces additional controls over the encumbered state, since the platform checks
+that the encumbrance state is present as an input in the same transaction that consumes the encumbered state, and
+the contract code and rules of the encumbrance state will also be verified during the execution of the transaction.
+For example, a cash contract state could be encumbered with a time-lock contract state; the cash state is then only
+processable in a transaction that verifies that the time specified in the encumbrance time-lock has passed.
+The encumbered state refers to another by index, and the referred encumbrance state
+is an output state in a particular position on the same transaction that created the encumbered state. An alternative
+implementation would be encumber by reference to a StateRef., which would allow the specification of encumbrance
+by a state created in a prior transaction.
+Note that an encumbered state that is being consumed must have its encumbrance consumed in the same transaction,
+otherwise the transaction is not valid.
+
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts.asset/-cash/-state/exit-keys.html b/docs/build/html/api/net.corda.contracts.asset/-cash/-state/exit-keys.html
new file mode 100644
index 0000000000..ec8ca35049
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts.asset/-cash/-state/exit-keys.html
@@ -0,0 +1,18 @@
+
+
+Cash.State.exitKeys -
+
+
+
+net.corda.contracts.asset / Cash / State / exitKeys
+
+exitKeys
+
+val exitKeys : <ERROR CLASS>
+Overrides FungibleAsset.exitKeys
+There must be an ExitCommand signed by these keys to destroy the amount. While all states require their
+owner to sign, some (i.e. cash) also require the issuer.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts.asset/-cash/-state/generate-mapped-object.html b/docs/build/html/api/net.corda.contracts.asset/-cash/-state/generate-mapped-object.html
new file mode 100644
index 0000000000..2958a1a147
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts.asset/-cash/-state/generate-mapped-object.html
@@ -0,0 +1,17 @@
+
+
+Cash.State.generateMappedObject -
+
+
+
+net.corda.contracts.asset / Cash / State / generateMappedObject
+
+generateMappedObject
+
+fun generateMappedObject ( schema : MappedSchema ) : PersistentState
+Overrides QueryableState.generateMappedObject
+Object Relational Mapping support.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts.asset/-cash/-state/index.html b/docs/build/html/api/net.corda.contracts.asset/-cash/-state/index.html
new file mode 100644
index 0000000000..a0a4f5e515
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts.asset/-cash/-state/index.html
@@ -0,0 +1,155 @@
+
+
+Cash.State -
+
+
+
+net.corda.contracts.asset / Cash / State
+
+State
+data class State : FungibleAsset < Currency > , QueryableState
+A state representing a cash claim against some party.
+
+
+Constructors
+
+Properties
+
+
+
+
+amount
+
+val amount : Amount < Issued < Currency > >
+
+
+
+contract
+
+val contract : Cash
An instance of the contract class that will verify this state.
+
+
+
+
+encumbrance
+
+val encumbrance : Int ?
All contract states may be encumbered by up to one other state.
+
+
+
+
+exitKeys
+
+val exitKeys : <ERROR CLASS>
There must be an ExitCommand signed by these keys to destroy the amount. While all states require their
+owner to sign, some (i.e. cash) also require the issuer.
+
+
+
+
+owner
+
+val owner : PublicKey
There must be a MoveCommand signed by this key to claim the amount.
+
+
+
+
+participants
+
+val participants : <ERROR CLASS>
A participant is any party that is able to consume this state in a valid transaction.
+
+
+
+
+Functions
+
+Extension Functions
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts.asset/-cash/-state/move.html b/docs/build/html/api/net.corda.contracts.asset/-cash/-state/move.html
new file mode 100644
index 0000000000..8bfb74e9e5
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts.asset/-cash/-state/move.html
@@ -0,0 +1,15 @@
+
+
+Cash.State.move -
+
+
+
+net.corda.contracts.asset / Cash / State / move
+
+move
+
+fun move ( newAmount : Amount < Issued < Currency > > , newOwner : PublicKey ) : FungibleAsset < Currency >
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts.asset/-cash/-state/owner.html b/docs/build/html/api/net.corda.contracts.asset/-cash/-state/owner.html
new file mode 100644
index 0000000000..5c94fffc2d
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts.asset/-cash/-state/owner.html
@@ -0,0 +1,17 @@
+
+
+Cash.State.owner -
+
+
+
+net.corda.contracts.asset / Cash / State / owner
+
+owner
+
+val owner : PublicKey
+Overrides FungibleAsset.owner
+There must be a MoveCommand signed by this key to claim the amount.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts.asset/-cash/-state/participants.html b/docs/build/html/api/net.corda.contracts.asset/-cash/-state/participants.html
new file mode 100644
index 0000000000..0ec8410c26
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts.asset/-cash/-state/participants.html
@@ -0,0 +1,25 @@
+
+
+Cash.State.participants -
+
+
+
+net.corda.contracts.asset / Cash / State / participants
+
+participants
+
+val participants : <ERROR CLASS>
+Overrides ContractState.participants
+A participant is any party that is able to consume this state in a valid transaction.
+The list of participants is required for certain types of transactions. For example, when changing the notary
+for this state (TransactionType.NotaryChange ), every participant has to be involved and approve the transaction
+so that they receive the updated state, and dont end up in a situation where they can no longer use a state
+they possess, since someone consumed that state during the notary change process.
+The participants list should normally be derived from the contents of the state. E.g. for Cash the participants
+list should just contain the owner.
+
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts.asset/-cash/-state/supported-schemas.html b/docs/build/html/api/net.corda.contracts.asset/-cash/-state/supported-schemas.html
new file mode 100644
index 0000000000..539a5016ba
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts.asset/-cash/-state/supported-schemas.html
@@ -0,0 +1,17 @@
+
+
+Cash.State.supportedSchemas -
+
+
+
+net.corda.contracts.asset / Cash / State / supportedSchemas
+
+supportedSchemas
+
+fun supportedSchemas ( ) : Iterable < MappedSchema >
+Overrides QueryableState.supportedSchemas
+Object Relational Mapping support.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts.asset/-cash/-state/to-string.html b/docs/build/html/api/net.corda.contracts.asset/-cash/-state/to-string.html
new file mode 100644
index 0000000000..1c2b48ba5b
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts.asset/-cash/-state/to-string.html
@@ -0,0 +1,15 @@
+
+
+Cash.State.toString -
+
+
+
+net.corda.contracts.asset / Cash / State / toString
+
+toString
+
+fun toString ( ) : String
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts.asset/-cash/-state/with-new-owner.html b/docs/build/html/api/net.corda.contracts.asset/-cash/-state/with-new-owner.html
new file mode 100644
index 0000000000..522bd8af61
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts.asset/-cash/-state/with-new-owner.html
@@ -0,0 +1,17 @@
+
+
+Cash.State.withNewOwner -
+
+
+
+net.corda.contracts.asset / Cash / State / withNewOwner
+
+withNewOwner
+
+fun withNewOwner ( newOwner : PublicKey ) : <ERROR CLASS>
+Overrides OwnableState.withNewOwner
+Copies the underlying data structure, replacing the owner field with this new value and leaving the rest alone
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts.asset/-cash/conserve-clause.html b/docs/build/html/api/net.corda.contracts.asset/-cash/conserve-clause.html
new file mode 100644
index 0000000000..e5293758f9
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts.asset/-cash/conserve-clause.html
@@ -0,0 +1,16 @@
+
+
+Cash.conserveClause -
+
+
+
+net.corda.contracts.asset / Cash / conserveClause
+
+conserveClause
+
+val conserveClause : AbstractConserveAmount < State , Commands , Currency >
+Overrides OnLedgerAsset.conserveClause
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts.asset/-cash/derive-state.html b/docs/build/html/api/net.corda.contracts.asset/-cash/derive-state.html
new file mode 100644
index 0000000000..b7d42879d8
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts.asset/-cash/derive-state.html
@@ -0,0 +1,18 @@
+
+
+Cash.deriveState -
+
+
+
+net.corda.contracts.asset / Cash / deriveState
+
+deriveState
+
+fun deriveState ( txState : TransactionState < State > , amount : Amount < Issued < Currency > > , owner : PublicKey ) : TransactionState < State >
+Derive a new transaction state based on the given example, with amount and owner modified. This allows concrete
+implementations to have fields in their state which we dont know about here, and we simply leave them untouched
+when sending out "change" from spending/exiting.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts.asset/-cash/extract-commands.html b/docs/build/html/api/net.corda.contracts.asset/-cash/extract-commands.html
new file mode 100644
index 0000000000..7d02bc4aaa
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts.asset/-cash/extract-commands.html
@@ -0,0 +1,16 @@
+
+
+Cash.extractCommands -
+
+
+
+net.corda.contracts.asset / Cash / extractCommands
+
+extractCommands
+
+fun extractCommands ( commands : Collection < AuthenticatedObject < CommandData > > ) : List < AuthenticatedObject < Commands > >
+Overrides OnLedgerAsset.extractCommands
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts.asset/-cash/generate-exit-command.html b/docs/build/html/api/net.corda.contracts.asset/-cash/generate-exit-command.html
new file mode 100644
index 0000000000..3247e25ed0
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts.asset/-cash/generate-exit-command.html
@@ -0,0 +1,15 @@
+
+
+Cash.generateExitCommand -
+
+
+
+net.corda.contracts.asset / Cash / generateExitCommand
+
+generateExitCommand
+
+fun generateExitCommand ( amount : Amount < Issued < Currency > > ) : Exit
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts.asset/-cash/generate-issue-command.html b/docs/build/html/api/net.corda.contracts.asset/-cash/generate-issue-command.html
new file mode 100644
index 0000000000..23da9f8a01
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts.asset/-cash/generate-issue-command.html
@@ -0,0 +1,16 @@
+
+
+Cash.generateIssueCommand -
+
+
+
+net.corda.contracts.asset / Cash / generateIssueCommand
+
+generateIssueCommand
+
+fun generateIssueCommand ( ) : Issue
+Overrides OnLedgerAsset.generateIssueCommand
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts.asset/-cash/generate-issue.html b/docs/build/html/api/net.corda.contracts.asset/-cash/generate-issue.html
new file mode 100644
index 0000000000..93e3532e01
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts.asset/-cash/generate-issue.html
@@ -0,0 +1,21 @@
+
+
+Cash.generateIssue -
+
+
+
+net.corda.contracts.asset / Cash / generateIssue
+
+generateIssue
+
+fun generateIssue ( tx : TransactionBuilder , tokenDef : Issued < Currency > , pennies : Long , owner : PublicKey , notary : Party ) : Unit
+Puts together an issuance transaction from the given template, that starts out being owned by the given pubkey.
+
+
+
+fun generateIssue ( tx : TransactionBuilder , amount : Amount < Issued < Currency > > , owner : PublicKey , notary : Party ) : Unit
+Puts together an issuance transaction for the specified amount that starts out being owned by the given pubkey.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts.asset/-cash/generate-move-command.html b/docs/build/html/api/net.corda.contracts.asset/-cash/generate-move-command.html
new file mode 100644
index 0000000000..ba9cf6442f
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts.asset/-cash/generate-move-command.html
@@ -0,0 +1,16 @@
+
+
+Cash.generateMoveCommand -
+
+
+
+net.corda.contracts.asset / Cash / generateMoveCommand
+
+generateMoveCommand
+
+fun generateMoveCommand ( ) : Move
+Overrides OnLedgerAsset.generateMoveCommand
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts.asset/-cash/index.html b/docs/build/html/api/net.corda.contracts.asset/-cash/index.html
new file mode 100644
index 0000000000..4a7ca5614e
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts.asset/-cash/index.html
@@ -0,0 +1,138 @@
+
+
+Cash -
+
+
+
+net.corda.contracts.asset / Cash
+
+Cash
+class Cash : OnLedgerAsset < Currency , Commands , State >
+A cash transaction may split and merge money represented by a set of (issuer, depositRef) pairs, across multiple
+input and output states. Imagine a Bitcoin transaction but in which all UTXOs had a colour
+(a blend of issuer+depositRef) and you couldnt merge outputs of two colours together, but you COULD put them in
+the same transaction.
+The goal of this design is to ensure that money can be withdrawn from the ledger easily: if you receive some money
+via this contract, you always know where to go in order to extract it from the R3 ledger, no matter how many hands
+it has passed through in the intervening time.
+At the same time, other contracts that just want money and dont care much who is currently holding it in their
+vaults can ignore the issuer/depositRefs and just examine the amount fields.
+
+
+
+
+Types
+
+Constructors
+
+
+
+
+<init>
+
+Cash ( )
A cash transaction may split and merge money represented by a set of (issuer, depositRef) pairs, across multiple
+input and output states. Imagine a Bitcoin transaction but in which all UTXOs had a colour
+(a blend of issuer+depositRef) and you couldnt merge outputs of two colours together, but you COULD put them in
+the same transaction.
+
+
+
+
+Properties
+
+Functions
+
+
+
+
+deriveState
+
+fun deriveState ( txState : TransactionState < State > , amount : Amount < Issued < Currency > > , owner : PublicKey ) : TransactionState < State >
Derive a new transaction state based on the given example, with amount and owner modified. This allows concrete
+implementations to have fields in their state which we dont know about here, and we simply leave them untouched
+when sending out "change" from spending/exiting.
+
+
+
+
+extractCommands
+
+fun extractCommands ( commands : Collection < AuthenticatedObject < CommandData > > ) : List < AuthenticatedObject < Commands > >
+
+
+
+generateExitCommand
+
+fun generateExitCommand ( amount : Amount < Issued < Currency > > ) : Exit
+
+
+
+generateIssue
+
+fun generateIssue ( tx : TransactionBuilder , tokenDef : Issued < Currency > , pennies : Long , owner : PublicKey , notary : Party ) : Unit
Puts together an issuance transaction from the given template, that starts out being owned by the given pubkey.
+fun generateIssue ( tx : TransactionBuilder , amount : Amount < Issued < Currency > > , owner : PublicKey , notary : Party ) : Unit
Puts together an issuance transaction for the specified amount that starts out being owned by the given pubkey.
+
+
+
+
+generateIssueCommand
+
+fun generateIssueCommand ( ) : Issue
+
+
+
+generateMoveCommand
+
+fun generateMoveCommand ( ) : Move
+
+
+
+verify
+
+fun verify ( tx : TransactionForContract ) : Unit
Takes an object that represents a state transition, and ensures the inputs/outputs/commands make sense.
+Must throw an exception if theres a problem that should prevent state transition. Takes a single object
+rather than an argument so that additional data can be added without breaking binary compatibility with
+existing contract code.
+
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts.asset/-cash/legal-contract-reference.html b/docs/build/html/api/net.corda.contracts.asset/-cash/legal-contract-reference.html
new file mode 100644
index 0000000000..5794ca4bf8
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts.asset/-cash/legal-contract-reference.html
@@ -0,0 +1,25 @@
+
+
+Cash.legalContractReference -
+
+
+
+net.corda.contracts.asset / Cash / legalContractReference
+
+legalContractReference
+
+val legalContractReference : SecureHash
+Overrides Contract.legalContractReference
+TODO:
+hash should be of the contents, not the URI
+allow the content to be specified at time of instance creation?
+Motivation: its the difference between a state object referencing a programRef, which references a
+legalContractReference and a state object which directly references both. The latter allows the legal wording
+to evolve without requiring code changes. But creates a risk that users create objects governed by a program
+that is inconsistent with the legal contract.
+
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts.asset/-cash/verify.html b/docs/build/html/api/net.corda.contracts.asset/-cash/verify.html
new file mode 100644
index 0000000000..06ca2344af
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts.asset/-cash/verify.html
@@ -0,0 +1,20 @@
+
+
+Cash.verify -
+
+
+
+net.corda.contracts.asset / Cash / verify
+
+verify
+
+fun verify ( tx : TransactionForContract ) : Unit
+Overrides Contract.verify
+Takes an object that represents a state transition, and ensures the inputs/outputs/commands make sense.
+Must throw an exception if theres a problem that should prevent state transition. Takes a single object
+rather than an argument so that additional data can be added without breaking binary compatibility with
+existing contract code.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts.asset/-commodity-contract/-clauses/-conserve-amount/-init-.html b/docs/build/html/api/net.corda.contracts.asset/-commodity-contract/-clauses/-conserve-amount/-init-.html
new file mode 100644
index 0000000000..e9f8090d2c
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts.asset/-commodity-contract/-clauses/-conserve-amount/-init-.html
@@ -0,0 +1,15 @@
+
+
+CommodityContract.Clauses.ConserveAmount. -
+
+
+
+net.corda.contracts.asset / CommodityContract / Clauses / ConserveAmount / <init>
+
+<init>
+ConserveAmount ( )
+Standard clause for conserving the amount from input to output.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts.asset/-commodity-contract/-clauses/-conserve-amount/index.html b/docs/build/html/api/net.corda.contracts.asset/-commodity-contract/-clauses/-conserve-amount/index.html
new file mode 100644
index 0000000000..10ab33a937
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts.asset/-commodity-contract/-clauses/-conserve-amount/index.html
@@ -0,0 +1,38 @@
+
+
+CommodityContract.Clauses.ConserveAmount -
+
+
+
+net.corda.contracts.asset / CommodityContract / Clauses / ConserveAmount
+
+ConserveAmount
+class ConserveAmount : AbstractConserveAmount < State , Commands , Commodity >
+Standard clause for conserving the amount from input to output.
+
+
+Constructors
+
+
+
+
+<init>
+
+ConserveAmount ( )
Standard clause for conserving the amount from input to output.
+
+
+
+
+Inherited Functions
+
+
+
+
+toString
+
+open fun toString ( ) : String
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts.asset/-commodity-contract/-clauses/-group/-init-.html b/docs/build/html/api/net.corda.contracts.asset/-commodity-contract/-clauses/-group/-init-.html
new file mode 100644
index 0000000000..ab480b3fd4
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts.asset/-commodity-contract/-clauses/-group/-init-.html
@@ -0,0 +1,16 @@
+
+
+CommodityContract.Clauses.Group. -
+
+
+
+net.corda.contracts.asset / CommodityContract / Clauses / Group / <init>
+
+<init>
+Group ( )
+Grouping clause to extract input and output states into matched groups and then run a set of clauses over
+each group.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts.asset/-commodity-contract/-clauses/-group/group-states.html b/docs/build/html/api/net.corda.contracts.asset/-commodity-contract/-clauses/-group/group-states.html
new file mode 100644
index 0000000000..7f33784be5
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts.asset/-commodity-contract/-clauses/-group/group-states.html
@@ -0,0 +1,17 @@
+
+
+CommodityContract.Clauses.Group.groupStates -
+
+
+
+net.corda.contracts.asset / CommodityContract / Clauses / Group / groupStates
+
+groupStates
+
+fun groupStates ( tx : TransactionForContract ) : List < InOutGroup < State , Issued < Commodity > > >
+Overrides GroupClauseVerifier.groupStates
+Group commodity states by issuance definition (issuer and underlying commodity).
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts.asset/-commodity-contract/-clauses/-group/index.html b/docs/build/html/api/net.corda.contracts.asset/-commodity-contract/-clauses/-group/index.html
new file mode 100644
index 0000000000..f9e54362f3
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts.asset/-commodity-contract/-clauses/-group/index.html
@@ -0,0 +1,52 @@
+
+
+CommodityContract.Clauses.Group -
+
+
+
+net.corda.contracts.asset / CommodityContract / Clauses / Group
+
+Group
+class Group : GroupClauseVerifier < State , Commands , Issued < Commodity > >
+Grouping clause to extract input and output states into matched groups and then run a set of clauses over
+each group.
+
+
+Constructors
+
+
+
+
+<init>
+
+Group ( )
Grouping clause to extract input and output states into matched groups and then run a set of clauses over
+each group.
+
+
+
+
+Inherited Properties
+
+Functions
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts.asset/-commodity-contract/-clauses/-issue/-init-.html b/docs/build/html/api/net.corda.contracts.asset/-commodity-contract/-clauses/-issue/-init-.html
new file mode 100644
index 0000000000..2e856595d3
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts.asset/-commodity-contract/-clauses/-issue/-init-.html
@@ -0,0 +1,15 @@
+
+
+CommodityContract.Clauses.Issue. -
+
+
+
+net.corda.contracts.asset / CommodityContract / Clauses / Issue / <init>
+
+<init>
+Issue ( )
+Standard issue clause, specialised to match the commodity issue command.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts.asset/-commodity-contract/-clauses/-issue/index.html b/docs/build/html/api/net.corda.contracts.asset/-commodity-contract/-clauses/-issue/index.html
new file mode 100644
index 0000000000..cafe0c9a06
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts.asset/-commodity-contract/-clauses/-issue/index.html
@@ -0,0 +1,56 @@
+
+
+CommodityContract.Clauses.Issue -
+
+
+
+net.corda.contracts.asset / CommodityContract / Clauses / Issue
+
+Issue
+class Issue : AbstractIssue < State , Commands , Commodity >
+Standard issue clause, specialised to match the commodity issue command.
+
+
+Constructors
+
+
+
+
+<init>
+
+Issue ( )
Standard issue clause, specialised to match the commodity issue command.
+
+
+
+
+Properties
+
+Inherited Properties
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts.asset/-commodity-contract/-clauses/-issue/required-commands.html b/docs/build/html/api/net.corda.contracts.asset/-commodity-contract/-clauses/-issue/required-commands.html
new file mode 100644
index 0000000000..65fe9a8754
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts.asset/-commodity-contract/-clauses/-issue/required-commands.html
@@ -0,0 +1,17 @@
+
+
+CommodityContract.Clauses.Issue.requiredCommands -
+
+
+
+net.corda.contracts.asset / CommodityContract / Clauses / Issue / requiredCommands
+
+requiredCommands
+
+val requiredCommands : Set < Class < out CommandData > >
+Overrides Clause.requiredCommands
+Determine whether this clause runs or not
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts.asset/-commodity-contract/-clauses/index.html b/docs/build/html/api/net.corda.contracts.asset/-commodity-contract/-clauses/index.html
new file mode 100644
index 0000000000..2af3889f23
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts.asset/-commodity-contract/-clauses/index.html
@@ -0,0 +1,49 @@
+
+
+CommodityContract.Clauses -
+
+
+
+net.corda.contracts.asset / CommodityContract / Clauses
+
+Clauses
+interface Clauses
+The clauses for this contract are essentially:
+Group all commodity input and output states in a transaction by issued commodity, and then for each group:
+a. Check there are no zero sized output states in the group, and throw an error if so.
+b. Check for an issuance command, and do standard issuance checks if so, THEN STOP. Otherwise:
+c. Check for a move command (required) and an optional exit command, and that input and output totals are correctly
+conserved (output = input - exit)
+
+
+
+
+Types
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts.asset/-commodity-contract/-commands/-exit/-init-.html b/docs/build/html/api/net.corda.contracts.asset/-commodity-contract/-commands/-exit/-init-.html
new file mode 100644
index 0000000000..8f7cf0d2a7
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts.asset/-commodity-contract/-commands/-exit/-init-.html
@@ -0,0 +1,16 @@
+
+
+CommodityContract.Commands.Exit. -
+
+
+
+net.corda.contracts.asset / CommodityContract / Commands / Exit / <init>
+
+<init>
+Exit ( amount : Amount < Issued < Commodity > > )
+A command stating that money has been withdrawn from the shared ledger and is now accounted for
+in some other way.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts.asset/-commodity-contract/-commands/-exit/amount.html b/docs/build/html/api/net.corda.contracts.asset/-commodity-contract/-commands/-exit/amount.html
new file mode 100644
index 0000000000..b6691238c3
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts.asset/-commodity-contract/-commands/-exit/amount.html
@@ -0,0 +1,16 @@
+
+
+CommodityContract.Commands.Exit.amount -
+
+
+
+net.corda.contracts.asset / CommodityContract / Commands / Exit / amount
+
+amount
+
+val amount : Amount < Issued < Commodity > >
+Overrides Exit.amount
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts.asset/-commodity-contract/-commands/-exit/index.html b/docs/build/html/api/net.corda.contracts.asset/-commodity-contract/-commands/-exit/index.html
new file mode 100644
index 0000000000..6548e4ddb5
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts.asset/-commodity-contract/-commands/-exit/index.html
@@ -0,0 +1,40 @@
+
+
+CommodityContract.Commands.Exit -
+
+
+
+net.corda.contracts.asset / CommodityContract / Commands / Exit
+
+Exit
+data class Exit : Commands , Exit < Commodity >
+A command stating that money has been withdrawn from the shared ledger and is now accounted for
+in some other way.
+
+
+Constructors
+
+
+
+
+<init>
+
+Exit ( amount : Amount < Issued < Commodity > > )
A command stating that money has been withdrawn from the shared ledger and is now accounted for
+in some other way.
+
+
+
+
+Properties
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts.asset/-commodity-contract/-commands/-issue/-init-.html b/docs/build/html/api/net.corda.contracts.asset/-commodity-contract/-commands/-issue/-init-.html
new file mode 100644
index 0000000000..2d2b3e8b1c
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts.asset/-commodity-contract/-commands/-issue/-init-.html
@@ -0,0 +1,16 @@
+
+
+CommodityContract.Commands.Issue. -
+
+
+
+net.corda.contracts.asset / CommodityContract / Commands / Issue / <init>
+
+<init>
+Issue ( nonce : Long = newSecureRandom().nextLong())
+Allows new commodity states to be issued into existence: the nonce ("number used once") ensures the transaction
+has a unique ID even when there are no inputs.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts.asset/-commodity-contract/-commands/-issue/index.html b/docs/build/html/api/net.corda.contracts.asset/-commodity-contract/-commands/-issue/index.html
new file mode 100644
index 0000000000..6e4189441d
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts.asset/-commodity-contract/-commands/-issue/index.html
@@ -0,0 +1,40 @@
+
+
+CommodityContract.Commands.Issue -
+
+
+
+net.corda.contracts.asset / CommodityContract / Commands / Issue
+
+Issue
+data class Issue : Issue , Commands
+Allows new commodity states to be issued into existence: the nonce ("number used once") ensures the transaction
+has a unique ID even when there are no inputs.
+
+
+Constructors
+
+
+
+
+<init>
+
+Issue ( nonce : Long = newSecureRandom().nextLong())
Allows new commodity states to be issued into existence: the nonce ("number used once") ensures the transaction
+has a unique ID even when there are no inputs.
+
+
+
+
+Properties
+
+
+
+
+nonce
+
+val nonce : Long
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts.asset/-commodity-contract/-commands/-issue/nonce.html b/docs/build/html/api/net.corda.contracts.asset/-commodity-contract/-commands/-issue/nonce.html
new file mode 100644
index 0000000000..1789ecfaaf
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts.asset/-commodity-contract/-commands/-issue/nonce.html
@@ -0,0 +1,16 @@
+
+
+CommodityContract.Commands.Issue.nonce -
+
+
+
+net.corda.contracts.asset / CommodityContract / Commands / Issue / nonce
+
+nonce
+
+val nonce : Long
+Overrides IssueCommand.nonce
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts.asset/-commodity-contract/-commands/-move/-init-.html b/docs/build/html/api/net.corda.contracts.asset/-commodity-contract/-commands/-move/-init-.html
new file mode 100644
index 0000000000..c3653cc878
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts.asset/-commodity-contract/-commands/-move/-init-.html
@@ -0,0 +1,20 @@
+
+
+CommodityContract.Commands.Move. -
+
+
+
+net.corda.contracts.asset / CommodityContract / Commands / Move / <init>
+
+<init>
+Move ( contractHash : SecureHash ? = null)
+A command stating that money has been moved, optionally to fulfil another contract.
+Parameters
+
+contractHash
- the contract this move is for the attention of. Only that contracts verify function
+should take the moved states into account when considering whether it is valid. Typically this will be
+null.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts.asset/-commodity-contract/-commands/-move/contract-hash.html b/docs/build/html/api/net.corda.contracts.asset/-commodity-contract/-commands/-move/contract-hash.html
new file mode 100644
index 0000000000..fddeaf91ad
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts.asset/-commodity-contract/-commands/-move/contract-hash.html
@@ -0,0 +1,18 @@
+
+
+CommodityContract.Commands.Move.contractHash -
+
+
+
+net.corda.contracts.asset / CommodityContract / Commands / Move / contractHash
+
+contractHash
+
+val contractHash : SecureHash ?
+Overrides MoveCommand.contractHash
+Contract code the moved state(s) are for the attention of, for example to indicate that the states are moved in
+order to settle an obligation contracts state object(s).
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts.asset/-commodity-contract/-commands/-move/index.html b/docs/build/html/api/net.corda.contracts.asset/-commodity-contract/-commands/-move/index.html
new file mode 100644
index 0000000000..965bbb0fbf
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts.asset/-commodity-contract/-commands/-move/index.html
@@ -0,0 +1,45 @@
+
+
+CommodityContract.Commands.Move -
+
+
+
+net.corda.contracts.asset / CommodityContract / Commands / Move
+
+Move
+data class Move : Move , Commands
+A command stating that money has been moved, optionally to fulfil another contract.
+Parameters
+
+contractHash
- the contract this move is for the attention of. Only that contracts verify function
+should take the moved states into account when considering whether it is valid. Typically this will be
+null.
+
+
+Constructors
+
+
+
+
+<init>
+
+Move ( contractHash : SecureHash ? = null)
A command stating that money has been moved, optionally to fulfil another contract.
+
+
+
+
+Properties
+
+
+
+
+contractHash
+
+val contractHash : SecureHash ?
Contract code the moved state(s) are for the attention of, for example to indicate that the states are moved in
+order to settle an obligation contracts state object(s).
+
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts.asset/-commodity-contract/-commands/index.html b/docs/build/html/api/net.corda.contracts.asset/-commodity-contract/-commands/index.html
new file mode 100644
index 0000000000..264fcedfba
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts.asset/-commodity-contract/-commands/index.html
@@ -0,0 +1,70 @@
+
+
+CommodityContract.Commands -
+
+
+
+net.corda.contracts.asset / CommodityContract / Commands
+
+Commands
+interface Commands : Commands
+
+
+Types
+
+
+
+
+Exit
+
+data class Exit : Commands , Exit < Commodity >
A command stating that money has been withdrawn from the shared ledger and is now accounted for
+in some other way.
+
+
+
+
+Issue
+
+data class Issue : Issue , Commands
Allows new commodity states to be issued into existence: the nonce ("number used once") ensures the transaction
+has a unique ID even when there are no inputs.
+
+
+
+
+Move
+
+data class Move : Move , Commands
A command stating that money has been moved, optionally to fulfil another contract.
+
+
+
+
+Inheritors
+
+
+
+
+Exit
+
+data class Exit : Commands , Exit < Commodity >
A command stating that money has been withdrawn from the shared ledger and is now accounted for
+in some other way.
+
+
+
+
+Issue
+
+data class Issue : Issue , Commands
Allows new commodity states to be issued into existence: the nonce ("number used once") ensures the transaction
+has a unique ID even when there are no inputs.
+
+
+
+
+Move
+
+data class Move : Move , Commands
A command stating that money has been moved, optionally to fulfil another contract.
+
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts.asset/-commodity-contract/-init-.html b/docs/build/html/api/net.corda.contracts.asset/-commodity-contract/-init-.html
new file mode 100644
index 0000000000..91bf814f44
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts.asset/-commodity-contract/-init-.html
@@ -0,0 +1,23 @@
+
+
+CommodityContract. -
+
+
+
+net.corda.contracts.asset / CommodityContract / <init>
+
+<init>
+CommodityContract ( )
+A commodity contract represents an amount of some commodity, tracked on a distributed ledger. The design of this
+contract is intentionally similar to the Cash contract, and the same commands (issue, move, exit) apply, the
+differences are in representation of the underlying commodity. Issuer in this context means the party who has the
+commodity, or is otherwise responsible for delivering the commodity on demand, and the deposit reference is use for
+internal accounting by the issuer (it might be, for example, a warehouse and/or location within a warehouse).
+This is an early stage example contract used to illustrate non-cash fungible assets, and is likely to change significantly
+in future.
+
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts.asset/-commodity-contract/-state/-init-.html b/docs/build/html/api/net.corda.contracts.asset/-commodity-contract/-state/-init-.html
new file mode 100644
index 0000000000..bc92b91391
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts.asset/-commodity-contract/-state/-init-.html
@@ -0,0 +1,18 @@
+
+
+CommodityContract.State. -
+
+
+
+net.corda.contracts.asset / CommodityContract / State / <init>
+
+<init>
+State ( deposit : PartyAndReference , amount : Amount < Commodity > , owner : PublicKey )
+
+
+State ( amount : Amount < Issued < Commodity > > , owner : PublicKey )
+A state representing a commodity claim against some party
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts.asset/-commodity-contract/-state/amount.html b/docs/build/html/api/net.corda.contracts.asset/-commodity-contract/-state/amount.html
new file mode 100644
index 0000000000..67759cfc62
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts.asset/-commodity-contract/-state/amount.html
@@ -0,0 +1,16 @@
+
+
+CommodityContract.State.amount -
+
+
+
+net.corda.contracts.asset / CommodityContract / State / amount
+
+amount
+
+val amount : Amount < Issued < Commodity > >
+Overrides FungibleAsset.amount
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts.asset/-commodity-contract/-state/contract.html b/docs/build/html/api/net.corda.contracts.asset/-commodity-contract/-state/contract.html
new file mode 100644
index 0000000000..bd45915317
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts.asset/-commodity-contract/-state/contract.html
@@ -0,0 +1,43 @@
+
+
+CommodityContract.State.contract -
+
+
+
+net.corda.contracts.asset / CommodityContract / State / contract
+
+contract
+
+val contract : CommodityContract
+Overrides ContractState.contract
+An instance of the contract class that will verify this state.
+Discussion
+This field is not the final design, its just a piece of temporary scaffolding. Once the contract sandbox is
+further along, this field will become a description of which attachments are acceptable for defining the
+contract.
+Recall that an attachment is a zip file that can be referenced from any transaction. The contents of the
+attachments are merged together and cannot define any overlapping files, thus for any given transaction there
+is a miniature file system in which each file can be precisely mapped to the defining attachment.
+Attachments may contain many things (data files, legal documents, etc) but mostly they contain JVM bytecode.
+The class files inside define not only Contract implementations but also the classes that define the states.
+Within the rest of a transaction, user-providable components are referenced by name only.
+This means that a smart contract in Corda does two things:
+Define the data structures that compose the ledger (the states)
+Define the rules for updating those structures
+The first is merely a utility role ... in theory contract code could manually parse byte streams by hand.
+The second is vital to the integrity of the ledger. So this field needs to be able to express constraints like:
+Only attachment 733c350f396a727655be1363c06635ba355036bd54a5ed6e594fd0b5d05f42f6 may be used with this state.
+Any attachment signed by public key 2d1ce0e330c52b8055258d776c40 may be used with this state.
+Attachments (1, 2, 3) may all be used with this state.
+and so on. In this way it becomes possible for the business logic governing a state to be evolved, if the
+constraints are flexible enough.
+Because contract classes often also define utilities that generate relevant transactions, and because attachments
+cannot know their own hashes, we will have to provide various utilities to assist with obtaining the right
+code constraints from within the contract code itself.
+TODO: Implement the above description. See COR-226
+
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts.asset/-commodity-contract/-state/exit-keys.html b/docs/build/html/api/net.corda.contracts.asset/-commodity-contract/-state/exit-keys.html
new file mode 100644
index 0000000000..a8a2b79eae
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts.asset/-commodity-contract/-state/exit-keys.html
@@ -0,0 +1,18 @@
+
+
+CommodityContract.State.exitKeys -
+
+
+
+net.corda.contracts.asset / CommodityContract / State / exitKeys
+
+exitKeys
+
+val exitKeys : MutableSet < PublicKey >
+Overrides FungibleAsset.exitKeys
+There must be an ExitCommand signed by these keys to destroy the amount. While all states require their
+owner to sign, some (i.e. cash) also require the issuer.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts.asset/-commodity-contract/-state/index.html b/docs/build/html/api/net.corda.contracts.asset/-commodity-contract/-state/index.html
new file mode 100644
index 0000000000..bdaeb1f0ef
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts.asset/-commodity-contract/-state/index.html
@@ -0,0 +1,91 @@
+
+
+CommodityContract.State -
+
+
+
+net.corda.contracts.asset / CommodityContract / State
+
+State
+data class State : FungibleAsset < Commodity >
+A state representing a commodity claim against some party
+
+
+Constructors
+
+Properties
+
+
+
+
+amount
+
+val amount : Amount < Issued < Commodity > >
+
+
+
+contract
+
+val contract : CommodityContract
An instance of the contract class that will verify this state.
+
+
+
+
+exitKeys
+
+val exitKeys : MutableSet < PublicKey >
There must be an ExitCommand signed by these keys to destroy the amount. While all states require their
+owner to sign, some (i.e. cash) also require the issuer.
+
+
+
+
+owner
+
+val owner : PublicKey
There must be a MoveCommand signed by this key to claim the amount
+
+
+
+
+participants
+
+val participants : <ERROR CLASS>
A participant is any party that is able to consume this state in a valid transaction.
+
+
+
+
+Functions
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts.asset/-commodity-contract/-state/move.html b/docs/build/html/api/net.corda.contracts.asset/-commodity-contract/-state/move.html
new file mode 100644
index 0000000000..8a7739ca9b
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts.asset/-commodity-contract/-state/move.html
@@ -0,0 +1,15 @@
+
+
+CommodityContract.State.move -
+
+
+
+net.corda.contracts.asset / CommodityContract / State / move
+
+move
+
+fun move ( newAmount : Amount < Issued < Commodity > > , newOwner : PublicKey ) : FungibleAsset < Commodity >
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts.asset/-commodity-contract/-state/owner.html b/docs/build/html/api/net.corda.contracts.asset/-commodity-contract/-state/owner.html
new file mode 100644
index 0000000000..9bfccd4c2d
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts.asset/-commodity-contract/-state/owner.html
@@ -0,0 +1,17 @@
+
+
+CommodityContract.State.owner -
+
+
+
+net.corda.contracts.asset / CommodityContract / State / owner
+
+owner
+
+val owner : PublicKey
+Overrides FungibleAsset.owner
+There must be a MoveCommand signed by this key to claim the amount
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts.asset/-commodity-contract/-state/participants.html b/docs/build/html/api/net.corda.contracts.asset/-commodity-contract/-state/participants.html
new file mode 100644
index 0000000000..d7957fe829
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts.asset/-commodity-contract/-state/participants.html
@@ -0,0 +1,25 @@
+
+
+CommodityContract.State.participants -
+
+
+
+net.corda.contracts.asset / CommodityContract / State / participants
+
+participants
+
+val participants : <ERROR CLASS>
+Overrides ContractState.participants
+A participant is any party that is able to consume this state in a valid transaction.
+The list of participants is required for certain types of transactions. For example, when changing the notary
+for this state (TransactionType.NotaryChange ), every participant has to be involved and approve the transaction
+so that they receive the updated state, and dont end up in a situation where they can no longer use a state
+they possess, since someone consumed that state during the notary change process.
+The participants list should normally be derived from the contents of the state. E.g. for Cash the participants
+list should just contain the owner.
+
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts.asset/-commodity-contract/-state/to-string.html b/docs/build/html/api/net.corda.contracts.asset/-commodity-contract/-state/to-string.html
new file mode 100644
index 0000000000..a0b67ee08f
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts.asset/-commodity-contract/-state/to-string.html
@@ -0,0 +1,15 @@
+
+
+CommodityContract.State.toString -
+
+
+
+net.corda.contracts.asset / CommodityContract / State / toString
+
+toString
+
+fun toString ( ) : String
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts.asset/-commodity-contract/-state/with-new-owner.html b/docs/build/html/api/net.corda.contracts.asset/-commodity-contract/-state/with-new-owner.html
new file mode 100644
index 0000000000..788a562239
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts.asset/-commodity-contract/-state/with-new-owner.html
@@ -0,0 +1,17 @@
+
+
+CommodityContract.State.withNewOwner -
+
+
+
+net.corda.contracts.asset / CommodityContract / State / withNewOwner
+
+withNewOwner
+
+fun withNewOwner ( newOwner : PublicKey ) : <ERROR CLASS>
+Overrides OwnableState.withNewOwner
+Copies the underlying data structure, replacing the owner field with this new value and leaving the rest alone
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts.asset/-commodity-contract/conserve-clause.html b/docs/build/html/api/net.corda.contracts.asset/-commodity-contract/conserve-clause.html
new file mode 100644
index 0000000000..1b59440b77
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts.asset/-commodity-contract/conserve-clause.html
@@ -0,0 +1,16 @@
+
+
+CommodityContract.conserveClause -
+
+
+
+net.corda.contracts.asset / CommodityContract / conserveClause
+
+conserveClause
+
+val conserveClause : AbstractConserveAmount < State , Commands , Commodity >
+Overrides OnLedgerAsset.conserveClause
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts.asset/-commodity-contract/derive-state.html b/docs/build/html/api/net.corda.contracts.asset/-commodity-contract/derive-state.html
new file mode 100644
index 0000000000..c37bd45d6d
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts.asset/-commodity-contract/derive-state.html
@@ -0,0 +1,18 @@
+
+
+CommodityContract.deriveState -
+
+
+
+net.corda.contracts.asset / CommodityContract / deriveState
+
+deriveState
+
+fun deriveState ( txState : TransactionState < State > , amount : Amount < Issued < Commodity > > , owner : PublicKey ) : TransactionState < State >
+Derive a new transaction state based on the given example, with amount and owner modified. This allows concrete
+implementations to have fields in their state which we dont know about here, and we simply leave them untouched
+when sending out "change" from spending/exiting.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts.asset/-commodity-contract/extract-commands.html b/docs/build/html/api/net.corda.contracts.asset/-commodity-contract/extract-commands.html
new file mode 100644
index 0000000000..ba712702db
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts.asset/-commodity-contract/extract-commands.html
@@ -0,0 +1,16 @@
+
+
+CommodityContract.extractCommands -
+
+
+
+net.corda.contracts.asset / CommodityContract / extractCommands
+
+extractCommands
+
+fun extractCommands ( commands : Collection < AuthenticatedObject < CommandData > > ) : List < AuthenticatedObject < Commands > >
+Overrides OnLedgerAsset.extractCommands
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts.asset/-commodity-contract/generate-exit-command.html b/docs/build/html/api/net.corda.contracts.asset/-commodity-contract/generate-exit-command.html
new file mode 100644
index 0000000000..791c2cb8de
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts.asset/-commodity-contract/generate-exit-command.html
@@ -0,0 +1,15 @@
+
+
+CommodityContract.generateExitCommand -
+
+
+
+net.corda.contracts.asset / CommodityContract / generateExitCommand
+
+generateExitCommand
+
+fun generateExitCommand ( amount : Amount < Issued < Commodity > > ) : Exit
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts.asset/-commodity-contract/generate-issue-command.html b/docs/build/html/api/net.corda.contracts.asset/-commodity-contract/generate-issue-command.html
new file mode 100644
index 0000000000..6a1e816257
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts.asset/-commodity-contract/generate-issue-command.html
@@ -0,0 +1,16 @@
+
+
+CommodityContract.generateIssueCommand -
+
+
+
+net.corda.contracts.asset / CommodityContract / generateIssueCommand
+
+generateIssueCommand
+
+fun generateIssueCommand ( ) : Issue
+Overrides OnLedgerAsset.generateIssueCommand
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts.asset/-commodity-contract/generate-issue.html b/docs/build/html/api/net.corda.contracts.asset/-commodity-contract/generate-issue.html
new file mode 100644
index 0000000000..6ee1b530f0
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts.asset/-commodity-contract/generate-issue.html
@@ -0,0 +1,21 @@
+
+
+CommodityContract.generateIssue -
+
+
+
+net.corda.contracts.asset / CommodityContract / generateIssue
+
+generateIssue
+
+fun generateIssue ( tx : TransactionBuilder , tokenDef : Issued < Commodity > , pennies : Long , owner : PublicKey , notary : Party ) : Unit
+Puts together an issuance transaction from the given template, that starts out being owned by the given pubkey.
+
+
+
+fun generateIssue ( tx : TransactionBuilder , amount : Amount < Issued < Commodity > > , owner : PublicKey , notary : Party ) : Unit
+Puts together an issuance transaction for the specified amount that starts out being owned by the given pubkey.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts.asset/-commodity-contract/generate-move-command.html b/docs/build/html/api/net.corda.contracts.asset/-commodity-contract/generate-move-command.html
new file mode 100644
index 0000000000..8c19d3d269
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts.asset/-commodity-contract/generate-move-command.html
@@ -0,0 +1,16 @@
+
+
+CommodityContract.generateMoveCommand -
+
+
+
+net.corda.contracts.asset / CommodityContract / generateMoveCommand
+
+generateMoveCommand
+
+fun generateMoveCommand ( ) : Move
+Overrides OnLedgerAsset.generateMoveCommand
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts.asset/-commodity-contract/index.html b/docs/build/html/api/net.corda.contracts.asset/-commodity-contract/index.html
new file mode 100644
index 0000000000..3a060cbe48
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts.asset/-commodity-contract/index.html
@@ -0,0 +1,138 @@
+
+
+CommodityContract -
+
+
+
+net.corda.contracts.asset / CommodityContract
+
+CommodityContract
+class CommodityContract : OnLedgerAsset < Commodity , Commands , State >
+A commodity contract represents an amount of some commodity, tracked on a distributed ledger. The design of this
+contract is intentionally similar to the Cash contract, and the same commands (issue, move, exit) apply, the
+differences are in representation of the underlying commodity. Issuer in this context means the party who has the
+commodity, or is otherwise responsible for delivering the commodity on demand, and the deposit reference is use for
+internal accounting by the issuer (it might be, for example, a warehouse and/or location within a warehouse).
+This is an early stage example contract used to illustrate non-cash fungible assets, and is likely to change significantly
+in future.
+
+
+
+
+Types
+
+
+
+
+Clauses
+
+interface Clauses
The clauses for this contract are essentially:
+
+
+
+
+Commands
+
+interface Commands : Commands
+
+
+
+State
+
+data class State : FungibleAsset < Commodity >
A state representing a commodity claim against some party
+
+
+
+
+Constructors
+
+
+
+
+<init>
+
+CommodityContract ( )
A commodity contract represents an amount of some commodity, tracked on a distributed ledger. The design of this
+contract is intentionally similar to the Cash contract, and the same commands (issue, move, exit) apply, the
+differences are in representation of the underlying commodity. Issuer in this context means the party who has the
+commodity, or is otherwise responsible for delivering the commodity on demand, and the deposit reference is use for
+internal accounting by the issuer (it might be, for example, a warehouse and/or location within a warehouse).
+
+
+
+
+Properties
+
+Functions
+
+
+
+
+deriveState
+
+fun deriveState ( txState : TransactionState < State > , amount : Amount < Issued < Commodity > > , owner : PublicKey ) : TransactionState < State >
Derive a new transaction state based on the given example, with amount and owner modified. This allows concrete
+implementations to have fields in their state which we dont know about here, and we simply leave them untouched
+when sending out "change" from spending/exiting.
+
+
+
+
+extractCommands
+
+fun extractCommands ( commands : Collection < AuthenticatedObject < CommandData > > ) : List < AuthenticatedObject < Commands > >
+
+
+
+generateExitCommand
+
+fun generateExitCommand ( amount : Amount < Issued < Commodity > > ) : Exit
+
+
+
+generateIssue
+
+fun generateIssue ( tx : TransactionBuilder , tokenDef : Issued < Commodity > , pennies : Long , owner : PublicKey , notary : Party ) : Unit
Puts together an issuance transaction from the given template, that starts out being owned by the given pubkey.
+fun generateIssue ( tx : TransactionBuilder , amount : Amount < Issued < Commodity > > , owner : PublicKey , notary : Party ) : Unit
Puts together an issuance transaction for the specified amount that starts out being owned by the given pubkey.
+
+
+
+
+generateIssueCommand
+
+fun generateIssueCommand ( ) : Issue
+
+
+
+generateMoveCommand
+
+fun generateMoveCommand ( ) : Move
+
+
+
+verify
+
+fun verify ( tx : TransactionForContract ) : Unit
Takes an object that represents a state transition, and ensures the inputs/outputs/commands make sense.
+Must throw an exception if theres a problem that should prevent state transition. Takes a single object
+rather than an argument so that additional data can be added without breaking binary compatibility with
+existing contract code.
+
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts.asset/-commodity-contract/legal-contract-reference.html b/docs/build/html/api/net.corda.contracts.asset/-commodity-contract/legal-contract-reference.html
new file mode 100644
index 0000000000..39a22d3d4a
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts.asset/-commodity-contract/legal-contract-reference.html
@@ -0,0 +1,25 @@
+
+
+CommodityContract.legalContractReference -
+
+
+
+net.corda.contracts.asset / CommodityContract / legalContractReference
+
+legalContractReference
+
+val legalContractReference : SecureHash
+Overrides Contract.legalContractReference
+TODO:
+hash should be of the contents, not the URI
+allow the content to be specified at time of instance creation?
+Motivation: its the difference between a state object referencing a programRef, which references a
+legalContractReference and a state object which directly references both. The latter allows the legal wording
+to evolve without requiring code changes. But creates a risk that users create objects governed by a program
+that is inconsistent with the legal contract
+
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts.asset/-commodity-contract/verify.html b/docs/build/html/api/net.corda.contracts.asset/-commodity-contract/verify.html
new file mode 100644
index 0000000000..b6be76ffbb
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts.asset/-commodity-contract/verify.html
@@ -0,0 +1,20 @@
+
+
+CommodityContract.verify -
+
+
+
+net.corda.contracts.asset / CommodityContract / verify
+
+verify
+
+fun verify ( tx : TransactionForContract ) : Unit
+Overrides Contract.verify
+Takes an object that represents a state transition, and ensures the inputs/outputs/commands make sense.
+Must throw an exception if theres a problem that should prevent state transition. Takes a single object
+rather than an argument so that additional data can be added without breaking binary compatibility with
+existing contract code.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts.asset/-d-u-m-m-y_-c-a-s-h_-i-s-s-u-e-r.html b/docs/build/html/api/net.corda.contracts.asset/-d-u-m-m-y_-c-a-s-h_-i-s-s-u-e-r.html
new file mode 100644
index 0000000000..639603d660
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts.asset/-d-u-m-m-y_-c-a-s-h_-i-s-s-u-e-r.html
@@ -0,0 +1,19 @@
+
+
+DUMMY_CASH_ISSUER -
+
+
+
+net.corda.contracts.asset / DUMMY_CASH_ISSUER
+
+DUMMY_CASH_ISSUER
+
+val DUMMY_CASH_ISSUER : <ERROR CLASS>
+A dummy, randomly generated issuer party by the name of "Snake Oil Issuer"
+Getter
+
A dummy, randomly generated issuer party by the name of "Snake Oil Issuer"
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts.asset/-d-u-m-m-y_-c-a-s-h_-i-s-s-u-e-r_-k-e-y.html b/docs/build/html/api/net.corda.contracts.asset/-d-u-m-m-y_-c-a-s-h_-i-s-s-u-e-r_-k-e-y.html
new file mode 100644
index 0000000000..5816e9237f
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts.asset/-d-u-m-m-y_-c-a-s-h_-i-s-s-u-e-r_-k-e-y.html
@@ -0,0 +1,19 @@
+
+
+DUMMY_CASH_ISSUER_KEY -
+
+
+
+net.corda.contracts.asset / DUMMY_CASH_ISSUER_KEY
+
+DUMMY_CASH_ISSUER_KEY
+
+val DUMMY_CASH_ISSUER_KEY : <ERROR CLASS>
+A randomly generated key.
+Getter
+
A randomly generated key.
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts.asset/-d-u-m-m-y_-o-b-l-i-g-a-t-i-o-n_-i-s-s-u-e-r.html b/docs/build/html/api/net.corda.contracts.asset/-d-u-m-m-y_-o-b-l-i-g-a-t-i-o-n_-i-s-s-u-e-r.html
new file mode 100644
index 0000000000..5641a19b8e
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts.asset/-d-u-m-m-y_-o-b-l-i-g-a-t-i-o-n_-i-s-s-u-e-r.html
@@ -0,0 +1,19 @@
+
+
+DUMMY_OBLIGATION_ISSUER -
+
+
+
+net.corda.contracts.asset / DUMMY_OBLIGATION_ISSUER
+
+DUMMY_OBLIGATION_ISSUER
+
+val DUMMY_OBLIGATION_ISSUER : <ERROR CLASS>
+A dummy, randomly generated issuer party by the name of "Snake Oil Issuer"
+Getter
+
A dummy, randomly generated issuer party by the name of "Snake Oil Issuer"
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts.asset/-d-u-m-m-y_-o-b-l-i-g-a-t-i-o-n_-i-s-s-u-e-r_-k-e-y.html b/docs/build/html/api/net.corda.contracts.asset/-d-u-m-m-y_-o-b-l-i-g-a-t-i-o-n_-i-s-s-u-e-r_-k-e-y.html
new file mode 100644
index 0000000000..dfc6d97e1f
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts.asset/-d-u-m-m-y_-o-b-l-i-g-a-t-i-o-n_-i-s-s-u-e-r_-k-e-y.html
@@ -0,0 +1,19 @@
+
+
+DUMMY_OBLIGATION_ISSUER_KEY -
+
+
+
+net.corda.contracts.asset / DUMMY_OBLIGATION_ISSUER_KEY
+
+DUMMY_OBLIGATION_ISSUER_KEY
+
+val DUMMY_OBLIGATION_ISSUER_KEY : <ERROR CLASS>
+A randomly generated key.
+Getter
+
A randomly generated key.
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts.asset/-o-b-l-i-g-a-t-i-o-n.html b/docs/build/html/api/net.corda.contracts.asset/-o-b-l-i-g-a-t-i-o-n.html
new file mode 100644
index 0000000000..6ada62e098
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts.asset/-o-b-l-i-g-a-t-i-o-n.html
@@ -0,0 +1,15 @@
+
+
+OBLIGATION -
+
+
+
+net.corda.contracts.asset / OBLIGATION
+
+OBLIGATION
+
+val Amount < Issued < Currency > > . OBLIGATION : State < Currency >
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts.asset/-o-b-l-i-g-a-t-i-o-n_-d-e-f.html b/docs/build/html/api/net.corda.contracts.asset/-o-b-l-i-g-a-t-i-o-n_-d-e-f.html
new file mode 100644
index 0000000000..7b4d500a83
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts.asset/-o-b-l-i-g-a-t-i-o-n_-d-e-f.html
@@ -0,0 +1,15 @@
+
+
+OBLIGATION_DEF -
+
+
+
+net.corda.contracts.asset / OBLIGATION_DEF
+
+OBLIGATION_DEF
+
+val Issued < Currency > . OBLIGATION_DEF : Terms < Currency >
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts.asset/-o-b-l-i-g-a-t-i-o-n_-p-r-o-g-r-a-m_-i-d.html b/docs/build/html/api/net.corda.contracts.asset/-o-b-l-i-g-a-t-i-o-n_-p-r-o-g-r-a-m_-i-d.html
new file mode 100644
index 0000000000..e26effc7f8
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts.asset/-o-b-l-i-g-a-t-i-o-n_-p-r-o-g-r-a-m_-i-d.html
@@ -0,0 +1,15 @@
+
+
+OBLIGATION_PROGRAM_ID -
+
+
+
+net.corda.contracts.asset / OBLIGATION_PROGRAM_ID
+
+OBLIGATION_PROGRAM_ID
+
+val OBLIGATION_PROGRAM_ID : Obligation < Currency >
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts.asset/-obligation/-clauses/-conserve-amount/-init-.html b/docs/build/html/api/net.corda.contracts.asset/-obligation/-clauses/-conserve-amount/-init-.html
new file mode 100644
index 0000000000..4c0568dcec
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts.asset/-obligation/-clauses/-conserve-amount/-init-.html
@@ -0,0 +1,15 @@
+
+
+Obligation.Clauses.ConserveAmount. -
+
+
+
+net.corda.contracts.asset / Obligation / Clauses / ConserveAmount / <init>
+
+<init>
+ConserveAmount ( )
+Generic move/exit clause for fungible assets
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts.asset/-obligation/-clauses/-conserve-amount/index.html b/docs/build/html/api/net.corda.contracts.asset/-obligation/-clauses/-conserve-amount/index.html
new file mode 100644
index 0000000000..e8257665cf
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts.asset/-obligation/-clauses/-conserve-amount/index.html
@@ -0,0 +1,38 @@
+
+
+Obligation.Clauses.ConserveAmount -
+
+
+
+net.corda.contracts.asset / Obligation / Clauses / ConserveAmount
+
+ConserveAmount
+class ConserveAmount < P > : AbstractConserveAmount < State < P > , Commands , Terms < P > >
+Generic move/exit clause for fungible assets
+
+
+Constructors
+
+
+
+
+<init>
+
+ConserveAmount ( )
Generic move/exit clause for fungible assets
+
+
+
+
+Inherited Functions
+
+
+
+
+toString
+
+open fun toString ( ) : String
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts.asset/-obligation/-clauses/-group/-init-.html b/docs/build/html/api/net.corda.contracts.asset/-obligation/-clauses/-group/-init-.html
new file mode 100644
index 0000000000..2a23d21f02
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts.asset/-obligation/-clauses/-group/-init-.html
@@ -0,0 +1,15 @@
+
+
+Obligation.Clauses.Group. -
+
+
+
+net.corda.contracts.asset / Obligation / Clauses / Group / <init>
+
+<init>
+Group ( )
+Parent clause for clauses that operate on grouped states (those which are fungible).
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts.asset/-obligation/-clauses/-group/group-states.html b/docs/build/html/api/net.corda.contracts.asset/-obligation/-clauses/-group/group-states.html
new file mode 100644
index 0000000000..355b4fa94a
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts.asset/-obligation/-clauses/-group/group-states.html
@@ -0,0 +1,16 @@
+
+
+Obligation.Clauses.Group.groupStates -
+
+
+
+net.corda.contracts.asset / Obligation / Clauses / Group / groupStates
+
+groupStates
+
+fun groupStates ( tx : TransactionForContract ) : List < InOutGroup < State < P > , Issued < Terms < P > > > >
+Overrides GroupClauseVerifier.groupStates
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts.asset/-obligation/-clauses/-group/index.html b/docs/build/html/api/net.corda.contracts.asset/-obligation/-clauses/-group/index.html
new file mode 100644
index 0000000000..6edb002d4d
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts.asset/-obligation/-clauses/-group/index.html
@@ -0,0 +1,49 @@
+
+
+Obligation.Clauses.Group -
+
+
+
+net.corda.contracts.asset / Obligation / Clauses / Group
+
+Group
+class Group < P > : GroupClauseVerifier < State < P > , Commands , Issued < Terms < P > > >
+Parent clause for clauses that operate on grouped states (those which are fungible).
+
+
+Constructors
+
+
+
+
+<init>
+
+Group ( )
Parent clause for clauses that operate on grouped states (those which are fungible).
+
+
+
+
+Inherited Properties
+
+Functions
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts.asset/-obligation/-clauses/-issue/-init-.html b/docs/build/html/api/net.corda.contracts.asset/-obligation/-clauses/-issue/-init-.html
new file mode 100644
index 0000000000..f8cd4fb7dc
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts.asset/-obligation/-clauses/-issue/-init-.html
@@ -0,0 +1,15 @@
+
+
+Obligation.Clauses.Issue. -
+
+
+
+net.corda.contracts.asset / Obligation / Clauses / Issue / <init>
+
+<init>
+Issue ( )
+Generic issuance clause
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts.asset/-obligation/-clauses/-issue/index.html b/docs/build/html/api/net.corda.contracts.asset/-obligation/-clauses/-issue/index.html
new file mode 100644
index 0000000000..6470f4bbe5
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts.asset/-obligation/-clauses/-issue/index.html
@@ -0,0 +1,56 @@
+
+
+Obligation.Clauses.Issue -
+
+
+
+net.corda.contracts.asset / Obligation / Clauses / Issue
+
+Issue
+class Issue < P > : AbstractIssue < State < P > , Commands , Terms < P > >
+Generic issuance clause
+
+
+Constructors
+
+
+
+
+<init>
+
+Issue ( )
Generic issuance clause
+
+
+
+
+Properties
+
+Inherited Properties
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts.asset/-obligation/-clauses/-issue/required-commands.html b/docs/build/html/api/net.corda.contracts.asset/-obligation/-clauses/-issue/required-commands.html
new file mode 100644
index 0000000000..06ea0f4790
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts.asset/-obligation/-clauses/-issue/required-commands.html
@@ -0,0 +1,17 @@
+
+
+Obligation.Clauses.Issue.requiredCommands -
+
+
+
+net.corda.contracts.asset / Obligation / Clauses / Issue / requiredCommands
+
+requiredCommands
+
+val requiredCommands : Set < Class < out CommandData > >
+Overrides Clause.requiredCommands
+Determine whether this clause runs or not
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts.asset/-obligation/-clauses/-net/-init-.html b/docs/build/html/api/net.corda.contracts.asset/-obligation/-clauses/-net/-init-.html
new file mode 100644
index 0000000000..3199b531b1
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts.asset/-obligation/-clauses/-net/-init-.html
@@ -0,0 +1,15 @@
+
+
+Obligation.Clauses.Net. -
+
+
+
+net.corda.contracts.asset / Obligation / Clauses / Net / <init>
+
+<init>
+Net ( )
+Clause for supporting netting of obligations.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts.asset/-obligation/-clauses/-net/index.html b/docs/build/html/api/net.corda.contracts.asset/-obligation/-clauses/-net/index.html
new file mode 100644
index 0000000000..16f9f82b29
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts.asset/-obligation/-clauses/-net/index.html
@@ -0,0 +1,70 @@
+
+
+Obligation.Clauses.Net -
+
+
+
+net.corda.contracts.asset / Obligation / Clauses / Net
+
+Net
+class Net < C : CommandData , P > : NetClause < C , P >
+Clause for supporting netting of obligations.
+
+
+Constructors
+
+
+
+
+<init>
+
+Net ( )
Clause for supporting netting of obligations.
+
+
+
+
+Properties
+
+Inherited Properties
+
+Functions
+
+
+
+
+toString
+
+fun toString ( ) : String
+
+
+
+verify
+
+fun verify ( tx : TransactionForContract , inputs : List < ContractState > , outputs : List < ContractState > , commands : List < AuthenticatedObject < C > > , groupingKey : Unit ? ) : Set < C >
Verify the transaction matches the conditions from this clause. For example, a "no zero amount output" clause
+would check each of the output states that it applies to, looking for a zero amount, and throw IllegalStateException
+if any matched.
+
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts.asset/-obligation/-clauses/-net/lifecycle-clause.html b/docs/build/html/api/net.corda.contracts.asset/-obligation/-clauses/-net/lifecycle-clause.html
new file mode 100644
index 0000000000..6f7a722b46
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts.asset/-obligation/-clauses/-net/lifecycle-clause.html
@@ -0,0 +1,15 @@
+
+
+Obligation.Clauses.Net.lifecycleClause -
+
+
+
+net.corda.contracts.asset / Obligation / Clauses / Net / lifecycleClause
+
+lifecycleClause
+
+val lifecycleClause : VerifyLifecycle < ContractState , C , Unit , P >
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts.asset/-obligation/-clauses/-net/to-string.html b/docs/build/html/api/net.corda.contracts.asset/-obligation/-clauses/-net/to-string.html
new file mode 100644
index 0000000000..f925763c66
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts.asset/-obligation/-clauses/-net/to-string.html
@@ -0,0 +1,15 @@
+
+
+Obligation.Clauses.Net.toString -
+
+
+
+net.corda.contracts.asset / Obligation / Clauses / Net / toString
+
+toString
+
+fun toString ( ) : String
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts.asset/-obligation/-clauses/-net/verify.html b/docs/build/html/api/net.corda.contracts.asset/-obligation/-clauses/-net/verify.html
new file mode 100644
index 0000000000..d22e56d642
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts.asset/-obligation/-clauses/-net/verify.html
@@ -0,0 +1,43 @@
+
+
+Obligation.Clauses.Net.verify -
+
+
+
+net.corda.contracts.asset / Obligation / Clauses / Net / verify
+
+verify
+
+fun verify ( tx : TransactionForContract , inputs : List < ContractState > , outputs : List < ContractState > , commands : List < AuthenticatedObject < C > > , groupingKey : Unit ? ) : Set < C >
+Verify the transaction matches the conditions from this clause. For example, a "no zero amount output" clause
+would check each of the output states that it applies to, looking for a zero amount, and throw IllegalStateException
+if any matched.
+Parameters
+
+tx
- the full transaction being verified. This is provided for cases where clauses need to access
+states or commands outside of their normal scope.
+
+
+inputs
- input states which are relevant to this clause. By default this is the set passed into verifyClause ,
+but may be further reduced by clauses such as GroupClauseVerifier .
+
+
+outputs
- output states which are relevant to this clause. By default this is the set passed into verifyClause ,
+but may be further reduced by clauses such as GroupClauseVerifier .
+
+
+commands
- commands which are relevant to this clause. By default this is the set passed into verifyClause ,
+but may be further reduced by clauses such as GroupClauseVerifier .
+
+
+groupingKey
- a grouping key applied to states and commands, where applicable. Taken from
+TransactionForContract.InOutGroup .
+Return
+the set of commands that are consumed IF this clause is matched, and cannot be used to match a
+later clause. This would normally be all commands matching "requiredCommands" for this clause, but some
+verify() functions may do further filtering on possible matches, and return a subset. This may also include
+commands that were not required (for example the Exit command for fungible assets is optional).
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts.asset/-obligation/-clauses/-set-lifecycle/-init-.html b/docs/build/html/api/net.corda.contracts.asset/-obligation/-clauses/-set-lifecycle/-init-.html
new file mode 100644
index 0000000000..41ce707b7a
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts.asset/-obligation/-clauses/-set-lifecycle/-init-.html
@@ -0,0 +1,15 @@
+
+
+Obligation.Clauses.SetLifecycle. -
+
+
+
+net.corda.contracts.asset / Obligation / Clauses / SetLifecycle / <init>
+
+<init>
+SetLifecycle ( )
+Obligation-specific clause for changing the lifecycle of one or more states.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts.asset/-obligation/-clauses/-set-lifecycle/index.html b/docs/build/html/api/net.corda.contracts.asset/-obligation/-clauses/-set-lifecycle/index.html
new file mode 100644
index 0000000000..c435d14611
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts.asset/-obligation/-clauses/-set-lifecycle/index.html
@@ -0,0 +1,59 @@
+
+
+Obligation.Clauses.SetLifecycle -
+
+
+
+net.corda.contracts.asset / Obligation / Clauses / SetLifecycle
+
+SetLifecycle
+class SetLifecycle < P > : Clause < State < P > , Commands , Issued < Terms < P > > >
+Obligation-specific clause for changing the lifecycle of one or more states.
+
+
+Constructors
+
+
+
+
+<init>
+
+SetLifecycle ( )
Obligation-specific clause for changing the lifecycle of one or more states.
+
+
+
+
+Properties
+
+Functions
+
+
+
+
+toString
+
+fun toString ( ) : String
+
+
+
+verify
+
+fun verify ( tx : TransactionForContract , inputs : List < State < P > > , outputs : List < State < P > > , commands : List < AuthenticatedObject < Commands > > , groupingKey : Issued < Terms < P > > ? ) : Set < Commands >
Verify the transaction matches the conditions from this clause. For example, a "no zero amount output" clause
+would check each of the output states that it applies to, looking for a zero amount, and throw IllegalStateException
+if any matched.
+
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts.asset/-obligation/-clauses/-set-lifecycle/required-commands.html b/docs/build/html/api/net.corda.contracts.asset/-obligation/-clauses/-set-lifecycle/required-commands.html
new file mode 100644
index 0000000000..d82a5147c1
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts.asset/-obligation/-clauses/-set-lifecycle/required-commands.html
@@ -0,0 +1,17 @@
+
+
+Obligation.Clauses.SetLifecycle.requiredCommands -
+
+
+
+net.corda.contracts.asset / Obligation / Clauses / SetLifecycle / requiredCommands
+
+requiredCommands
+
+val requiredCommands : Set < Class < out CommandData > >
+Overrides Clause.requiredCommands
+Determine whether this clause runs or not
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts.asset/-obligation/-clauses/-set-lifecycle/to-string.html b/docs/build/html/api/net.corda.contracts.asset/-obligation/-clauses/-set-lifecycle/to-string.html
new file mode 100644
index 0000000000..9229e0ba37
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts.asset/-obligation/-clauses/-set-lifecycle/to-string.html
@@ -0,0 +1,15 @@
+
+
+Obligation.Clauses.SetLifecycle.toString -
+
+
+
+net.corda.contracts.asset / Obligation / Clauses / SetLifecycle / toString
+
+toString
+
+fun toString ( ) : String
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts.asset/-obligation/-clauses/-set-lifecycle/verify.html b/docs/build/html/api/net.corda.contracts.asset/-obligation/-clauses/-set-lifecycle/verify.html
new file mode 100644
index 0000000000..0d84176896
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts.asset/-obligation/-clauses/-set-lifecycle/verify.html
@@ -0,0 +1,43 @@
+
+
+Obligation.Clauses.SetLifecycle.verify -
+
+
+
+net.corda.contracts.asset / Obligation / Clauses / SetLifecycle / verify
+
+verify
+
+fun verify ( tx : TransactionForContract , inputs : List < State < P > > , outputs : List < State < P > > , commands : List < AuthenticatedObject < Commands > > , groupingKey : Issued < Terms < P > > ? ) : Set < Commands >
+Verify the transaction matches the conditions from this clause. For example, a "no zero amount output" clause
+would check each of the output states that it applies to, looking for a zero amount, and throw IllegalStateException
+if any matched.
+Parameters
+
+tx
- the full transaction being verified. This is provided for cases where clauses need to access
+states or commands outside of their normal scope.
+
+
+inputs
- input states which are relevant to this clause. By default this is the set passed into verifyClause ,
+but may be further reduced by clauses such as GroupClauseVerifier .
+
+
+outputs
- output states which are relevant to this clause. By default this is the set passed into verifyClause ,
+but may be further reduced by clauses such as GroupClauseVerifier .
+
+
+commands
- commands which are relevant to this clause. By default this is the set passed into verifyClause ,
+but may be further reduced by clauses such as GroupClauseVerifier .
+
+
+groupingKey
- a grouping key applied to states and commands, where applicable. Taken from
+TransactionForContract.InOutGroup .
+Return
+the set of commands that are consumed IF this clause is matched, and cannot be used to match a
+later clause. This would normally be all commands matching "requiredCommands" for this clause, but some
+verify() functions may do further filtering on possible matches, and return a subset. This may also include
+commands that were not required (for example the Exit command for fungible assets is optional).
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts.asset/-obligation/-clauses/-settle/-init-.html b/docs/build/html/api/net.corda.contracts.asset/-obligation/-clauses/-settle/-init-.html
new file mode 100644
index 0000000000..23327a28c6
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts.asset/-obligation/-clauses/-settle/-init-.html
@@ -0,0 +1,16 @@
+
+
+Obligation.Clauses.Settle. -
+
+
+
+net.corda.contracts.asset / Obligation / Clauses / Settle / <init>
+
+<init>
+Settle ( )
+Obligation-specific clause for settling an outstanding obligation by witnessing
+change of ownership of other states to fulfil
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts.asset/-obligation/-clauses/-settle/index.html b/docs/build/html/api/net.corda.contracts.asset/-obligation/-clauses/-settle/index.html
new file mode 100644
index 0000000000..c8bf032cc1
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts.asset/-obligation/-clauses/-settle/index.html
@@ -0,0 +1,55 @@
+
+
+Obligation.Clauses.Settle -
+
+
+
+net.corda.contracts.asset / Obligation / Clauses / Settle
+
+Settle
+class Settle < P > : Clause < State < P > , Commands , Issued < Terms < P > > >
+Obligation-specific clause for settling an outstanding obligation by witnessing
+change of ownership of other states to fulfil
+
+
+Constructors
+
+
+
+
+<init>
+
+Settle ( )
Obligation-specific clause for settling an outstanding obligation by witnessing
+change of ownership of other states to fulfil
+
+
+
+
+Properties
+
+Functions
+
+
+
+
+verify
+
+fun verify ( tx : TransactionForContract , inputs : List < State < P > > , outputs : List < State < P > > , commands : List < AuthenticatedObject < Commands > > , groupingKey : Issued < Terms < P > > ? ) : Set < Commands >
Verify the transaction matches the conditions from this clause. For example, a "no zero amount output" clause
+would check each of the output states that it applies to, looking for a zero amount, and throw IllegalStateException
+if any matched.
+
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts.asset/-obligation/-clauses/-settle/required-commands.html b/docs/build/html/api/net.corda.contracts.asset/-obligation/-clauses/-settle/required-commands.html
new file mode 100644
index 0000000000..d770e72ba6
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts.asset/-obligation/-clauses/-settle/required-commands.html
@@ -0,0 +1,17 @@
+
+
+Obligation.Clauses.Settle.requiredCommands -
+
+
+
+net.corda.contracts.asset / Obligation / Clauses / Settle / requiredCommands
+
+requiredCommands
+
+val requiredCommands : Set < Class < out CommandData > >
+Overrides Clause.requiredCommands
+Determine whether this clause runs or not
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts.asset/-obligation/-clauses/-settle/verify.html b/docs/build/html/api/net.corda.contracts.asset/-obligation/-clauses/-settle/verify.html
new file mode 100644
index 0000000000..69b7ebae17
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts.asset/-obligation/-clauses/-settle/verify.html
@@ -0,0 +1,43 @@
+
+
+Obligation.Clauses.Settle.verify -
+
+
+
+net.corda.contracts.asset / Obligation / Clauses / Settle / verify
+
+verify
+
+fun verify ( tx : TransactionForContract , inputs : List < State < P > > , outputs : List < State < P > > , commands : List < AuthenticatedObject < Commands > > , groupingKey : Issued < Terms < P > > ? ) : Set < Commands >
+Verify the transaction matches the conditions from this clause. For example, a "no zero amount output" clause
+would check each of the output states that it applies to, looking for a zero amount, and throw IllegalStateException
+if any matched.
+Parameters
+
+tx
- the full transaction being verified. This is provided for cases where clauses need to access
+states or commands outside of their normal scope.
+
+
+inputs
- input states which are relevant to this clause. By default this is the set passed into verifyClause ,
+but may be further reduced by clauses such as GroupClauseVerifier .
+
+
+outputs
- output states which are relevant to this clause. By default this is the set passed into verifyClause ,
+but may be further reduced by clauses such as GroupClauseVerifier .
+
+
+commands
- commands which are relevant to this clause. By default this is the set passed into verifyClause ,
+but may be further reduced by clauses such as GroupClauseVerifier .
+
+
+groupingKey
- a grouping key applied to states and commands, where applicable. Taken from
+TransactionForContract.InOutGroup .
+Return
+the set of commands that are consumed IF this clause is matched, and cannot be used to match a
+later clause. This would normally be all commands matching "requiredCommands" for this clause, but some
+verify() functions may do further filtering on possible matches, and return a subset. This may also include
+commands that were not required (for example the Exit command for fungible assets is optional).
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts.asset/-obligation/-clauses/-verify-lifecycle/-init-.html b/docs/build/html/api/net.corda.contracts.asset/-obligation/-clauses/-verify-lifecycle/-init-.html
new file mode 100644
index 0000000000..077f07bacb
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts.asset/-obligation/-clauses/-verify-lifecycle/-init-.html
@@ -0,0 +1,18 @@
+
+
+Obligation.Clauses.VerifyLifecycle. -
+
+
+
+net.corda.contracts.asset / Obligation / Clauses / VerifyLifecycle / <init>
+
+<init>
+VerifyLifecycle ( )
+Obligation-specific clause for verifying that all states are in
+normal lifecycle. In a group clause set, this must be run after
+any lifecycle change clause, which is the only clause that involve
+non-standard lifecycle states on input/output.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts.asset/-obligation/-clauses/-verify-lifecycle/index.html b/docs/build/html/api/net.corda.contracts.asset/-obligation/-clauses/-verify-lifecycle/index.html
new file mode 100644
index 0000000000..5308a2779f
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts.asset/-obligation/-clauses/-verify-lifecycle/index.html
@@ -0,0 +1,59 @@
+
+
+Obligation.Clauses.VerifyLifecycle -
+
+
+
+net.corda.contracts.asset / Obligation / Clauses / VerifyLifecycle
+
+VerifyLifecycle
+class VerifyLifecycle < S : ContractState , C : CommandData , T : Any , P > : Clause < S , C , T >
+Obligation-specific clause for verifying that all states are in
+normal lifecycle. In a group clause set, this must be run after
+any lifecycle change clause, which is the only clause that involve
+non-standard lifecycle states on input/output.
+
+
+Constructors
+
+
+
+
+<init>
+
+VerifyLifecycle ( )
Obligation-specific clause for verifying that all states are in
+normal lifecycle. In a group clause set, this must be run after
+any lifecycle change clause, which is the only clause that involve
+non-standard lifecycle states on input/output.
+
+
+
+
+Inherited Properties
+
+Functions
+
+
+
+
+verify
+
+fun verify ( tx : TransactionForContract , inputs : List < S > , outputs : List < S > , commands : List < AuthenticatedObject < C > > , groupingKey : T ? ) : Set < C >
Verify the transaction matches the conditions from this clause. For example, a "no zero amount output" clause
+would check each of the output states that it applies to, looking for a zero amount, and throw IllegalStateException
+if any matched.
+
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts.asset/-obligation/-clauses/-verify-lifecycle/verify.html b/docs/build/html/api/net.corda.contracts.asset/-obligation/-clauses/-verify-lifecycle/verify.html
new file mode 100644
index 0000000000..cc1379a9a3
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts.asset/-obligation/-clauses/-verify-lifecycle/verify.html
@@ -0,0 +1,43 @@
+
+
+Obligation.Clauses.VerifyLifecycle.verify -
+
+
+
+net.corda.contracts.asset / Obligation / Clauses / VerifyLifecycle / verify
+
+verify
+
+fun verify ( tx : TransactionForContract , inputs : List < S > , outputs : List < S > , commands : List < AuthenticatedObject < C > > , groupingKey : T ? ) : Set < C >
+Verify the transaction matches the conditions from this clause. For example, a "no zero amount output" clause
+would check each of the output states that it applies to, looking for a zero amount, and throw IllegalStateException
+if any matched.
+Parameters
+
+tx
- the full transaction being verified. This is provided for cases where clauses need to access
+states or commands outside of their normal scope.
+
+
+inputs
- input states which are relevant to this clause. By default this is the set passed into verifyClause ,
+but may be further reduced by clauses such as GroupClauseVerifier .
+
+
+outputs
- output states which are relevant to this clause. By default this is the set passed into verifyClause ,
+but may be further reduced by clauses such as GroupClauseVerifier .
+
+
+commands
- commands which are relevant to this clause. By default this is the set passed into verifyClause ,
+but may be further reduced by clauses such as GroupClauseVerifier .
+
+
+groupingKey
- a grouping key applied to states and commands, where applicable. Taken from
+TransactionForContract.InOutGroup .
+Return
+the set of commands that are consumed IF this clause is matched, and cannot be used to match a
+later clause. This would normally be all commands matching "requiredCommands" for this clause, but some
+verify() functions may do further filtering on possible matches, and return a subset. This may also include
+commands that were not required (for example the Exit command for fungible assets is optional).
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts.asset/-obligation/-clauses/index.html b/docs/build/html/api/net.corda.contracts.asset/-obligation/-clauses/index.html
new file mode 100644
index 0000000000..63c11e4fd6
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts.asset/-obligation/-clauses/index.html
@@ -0,0 +1,72 @@
+
+
+Obligation.Clauses -
+
+
+
+net.corda.contracts.asset / Obligation / Clauses
+
+Clauses
+interface Clauses
+
+
+Types
+
+
+
+
+ConserveAmount
+
+class ConserveAmount < P > : AbstractConserveAmount < State < P > , Commands , Terms < P > >
Generic move/exit clause for fungible assets
+
+
+
+
+Group
+
+class Group < P > : GroupClauseVerifier < State < P > , Commands , Issued < Terms < P > > >
Parent clause for clauses that operate on grouped states (those which are fungible).
+
+
+
+
+Issue
+
+class Issue < P > : AbstractIssue < State < P > , Commands , Terms < P > >
Generic issuance clause
+
+
+
+
+Net
+
+class Net < C : CommandData , P > : NetClause < C , P >
Clause for supporting netting of obligations.
+
+
+
+
+SetLifecycle
+
+class SetLifecycle < P > : Clause < State < P > , Commands , Issued < Terms < P > > >
Obligation-specific clause for changing the lifecycle of one or more states.
+
+
+
+
+Settle
+
+class Settle < P > : Clause < State < P > , Commands , Issued < Terms < P > > >
Obligation-specific clause for settling an outstanding obligation by witnessing
+change of ownership of other states to fulfil
+
+
+
+
+VerifyLifecycle
+
+class VerifyLifecycle < S : ContractState , C : CommandData , T : Any , P > : Clause < S , C , T >
Obligation-specific clause for verifying that all states are in
+normal lifecycle. In a group clause set, this must be run after
+any lifecycle change clause, which is the only clause that involve
+non-standard lifecycle states on input/output.
+
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts.asset/-obligation/-commands/-exit/-init-.html b/docs/build/html/api/net.corda.contracts.asset/-obligation/-commands/-exit/-init-.html
new file mode 100644
index 0000000000..cd5368776b
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts.asset/-obligation/-commands/-exit/-init-.html
@@ -0,0 +1,16 @@
+
+
+Obligation.Commands.Exit. -
+
+
+
+net.corda.contracts.asset / Obligation / Commands / Exit / <init>
+
+<init>
+Exit ( amount : Amount < Issued < Terms < P > > > )
+A command stating that the debt is being released by the beneficiary. Normally would indicate
+either settlement outside of the ledger, or that the obligor is unable to pay.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts.asset/-obligation/-commands/-exit/amount.html b/docs/build/html/api/net.corda.contracts.asset/-obligation/-commands/-exit/amount.html
new file mode 100644
index 0000000000..fefee1fe5b
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts.asset/-obligation/-commands/-exit/amount.html
@@ -0,0 +1,16 @@
+
+
+Obligation.Commands.Exit.amount -
+
+
+
+net.corda.contracts.asset / Obligation / Commands / Exit / amount
+
+amount
+
+val amount : Amount < Issued < Terms < P > > >
+Overrides Exit.amount
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts.asset/-obligation/-commands/-exit/index.html b/docs/build/html/api/net.corda.contracts.asset/-obligation/-commands/-exit/index.html
new file mode 100644
index 0000000000..166bb674e7
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts.asset/-obligation/-commands/-exit/index.html
@@ -0,0 +1,40 @@
+
+
+Obligation.Commands.Exit -
+
+
+
+net.corda.contracts.asset / Obligation / Commands / Exit
+
+Exit
+data class Exit < P > : Commands , Exit < Terms < P > >
+A command stating that the debt is being released by the beneficiary. Normally would indicate
+either settlement outside of the ledger, or that the obligor is unable to pay.
+
+
+Constructors
+
+
+
+
+<init>
+
+Exit ( amount : Amount < Issued < Terms < P > > > )
A command stating that the debt is being released by the beneficiary. Normally would indicate
+either settlement outside of the ledger, or that the obligor is unable to pay.
+
+
+
+
+Properties
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts.asset/-obligation/-commands/-issue/-init-.html b/docs/build/html/api/net.corda.contracts.asset/-obligation/-commands/-issue/-init-.html
new file mode 100644
index 0000000000..49ee6789a3
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts.asset/-obligation/-commands/-issue/-init-.html
@@ -0,0 +1,16 @@
+
+
+Obligation.Commands.Issue. -
+
+
+
+net.corda.contracts.asset / Obligation / Commands / Issue / <init>
+
+<init>
+Issue ( nonce : Long = random63BitValue())
+Allows new obligation states to be issued into existence: the nonce ("number used once") ensures the
+transaction has a unique ID even when there are no inputs.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts.asset/-obligation/-commands/-issue/index.html b/docs/build/html/api/net.corda.contracts.asset/-obligation/-commands/-issue/index.html
new file mode 100644
index 0000000000..b6d5d4de8d
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts.asset/-obligation/-commands/-issue/index.html
@@ -0,0 +1,40 @@
+
+
+Obligation.Commands.Issue -
+
+
+
+net.corda.contracts.asset / Obligation / Commands / Issue
+
+Issue
+data class Issue : Issue , Commands
+Allows new obligation states to be issued into existence: the nonce ("number used once") ensures the
+transaction has a unique ID even when there are no inputs.
+
+
+Constructors
+
+
+
+
+<init>
+
+Issue ( nonce : Long = random63BitValue())
Allows new obligation states to be issued into existence: the nonce ("number used once") ensures the
+transaction has a unique ID even when there are no inputs.
+
+
+
+
+Properties
+
+
+
+
+nonce
+
+val nonce : Long
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts.asset/-obligation/-commands/-issue/nonce.html b/docs/build/html/api/net.corda.contracts.asset/-obligation/-commands/-issue/nonce.html
new file mode 100644
index 0000000000..5ec235619d
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts.asset/-obligation/-commands/-issue/nonce.html
@@ -0,0 +1,16 @@
+
+
+Obligation.Commands.Issue.nonce -
+
+
+
+net.corda.contracts.asset / Obligation / Commands / Issue / nonce
+
+nonce
+
+val nonce : Long
+Overrides IssueCommand.nonce
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts.asset/-obligation/-commands/-move/-init-.html b/docs/build/html/api/net.corda.contracts.asset/-obligation/-commands/-move/-init-.html
new file mode 100644
index 0000000000..ad22c971ed
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts.asset/-obligation/-commands/-move/-init-.html
@@ -0,0 +1,20 @@
+
+
+Obligation.Commands.Move. -
+
+
+
+net.corda.contracts.asset / Obligation / Commands / Move / <init>
+
+<init>
+Move ( contractHash : SecureHash ? = null)
+A command stating that a debt has been moved, optionally to fulfil another contract.
+Parameters
+
+contractHash
- the contract this move is for the attention of. Only that contracts verify function
+should take the moved states into account when considering whether it is valid. Typically this will be
+null.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts.asset/-obligation/-commands/-move/contract-hash.html b/docs/build/html/api/net.corda.contracts.asset/-obligation/-commands/-move/contract-hash.html
new file mode 100644
index 0000000000..b96f5ef811
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts.asset/-obligation/-commands/-move/contract-hash.html
@@ -0,0 +1,18 @@
+
+
+Obligation.Commands.Move.contractHash -
+
+
+
+net.corda.contracts.asset / Obligation / Commands / Move / contractHash
+
+contractHash
+
+val contractHash : SecureHash ?
+Overrides MoveCommand.contractHash
+Contract code the moved state(s) are for the attention of, for example to indicate that the states are moved in
+order to settle an obligation contracts state object(s).
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts.asset/-obligation/-commands/-move/index.html b/docs/build/html/api/net.corda.contracts.asset/-obligation/-commands/-move/index.html
new file mode 100644
index 0000000000..9837cc5ca0
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts.asset/-obligation/-commands/-move/index.html
@@ -0,0 +1,45 @@
+
+
+Obligation.Commands.Move -
+
+
+
+net.corda.contracts.asset / Obligation / Commands / Move
+
+Move
+data class Move : Commands , Move
+A command stating that a debt has been moved, optionally to fulfil another contract.
+Parameters
+
+contractHash
- the contract this move is for the attention of. Only that contracts verify function
+should take the moved states into account when considering whether it is valid. Typically this will be
+null.
+
+
+Constructors
+
+
+
+
+<init>
+
+Move ( contractHash : SecureHash ? = null)
A command stating that a debt has been moved, optionally to fulfil another contract.
+
+
+
+
+Properties
+
+
+
+
+contractHash
+
+val contractHash : SecureHash ?
Contract code the moved state(s) are for the attention of, for example to indicate that the states are moved in
+order to settle an obligation contracts state object(s).
+
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts.asset/-obligation/-commands/-net/-init-.html b/docs/build/html/api/net.corda.contracts.asset/-obligation/-commands/-net/-init-.html
new file mode 100644
index 0000000000..74122bb79a
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts.asset/-obligation/-commands/-net/-init-.html
@@ -0,0 +1,16 @@
+
+
+Obligation.Commands.Net. -
+
+
+
+net.corda.contracts.asset / Obligation / Commands / Net / <init>
+
+<init>
+Net ( type : NetType )
+Net two or more obligation states together in a close-out netting style. Limited to bilateral netting
+as only the beneficiary (not the obligor) needs to sign.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts.asset/-obligation/-commands/-net/index.html b/docs/build/html/api/net.corda.contracts.asset/-obligation/-commands/-net/index.html
new file mode 100644
index 0000000000..69b69fc2a8
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts.asset/-obligation/-commands/-net/index.html
@@ -0,0 +1,41 @@
+
+
+Obligation.Commands.Net -
+
+
+
+net.corda.contracts.asset / Obligation / Commands / Net
+
+Net
+data class Net : NetCommand , Commands
+Net two or more obligation states together in a close-out netting style. Limited to bilateral netting
+as only the beneficiary (not the obligor) needs to sign.
+
+
+Constructors
+
+
+
+
+<init>
+
+Net ( type : NetType )
Net two or more obligation states together in a close-out netting style. Limited to bilateral netting
+as only the beneficiary (not the obligor) needs to sign.
+
+
+
+
+Properties
+
+
+
+
+type
+
+val type : NetType
The type of netting to apply, see NetType for options.
+
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts.asset/-obligation/-commands/-net/type.html b/docs/build/html/api/net.corda.contracts.asset/-obligation/-commands/-net/type.html
new file mode 100644
index 0000000000..0e5b5a0c1d
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts.asset/-obligation/-commands/-net/type.html
@@ -0,0 +1,17 @@
+
+
+Obligation.Commands.Net.type -
+
+
+
+net.corda.contracts.asset / Obligation / Commands / Net / type
+
+type
+
+val type : NetType
+Overrides NetCommand.type
+The type of netting to apply, see NetType for options.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts.asset/-obligation/-commands/-set-lifecycle/-init-.html b/docs/build/html/api/net.corda.contracts.asset/-obligation/-commands/-set-lifecycle/-init-.html
new file mode 100644
index 0000000000..55cc2dd9a6
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts.asset/-obligation/-commands/-set-lifecycle/-init-.html
@@ -0,0 +1,16 @@
+
+
+Obligation.Commands.SetLifecycle. -
+
+
+
+net.corda.contracts.asset / Obligation / Commands / SetLifecycle / <init>
+
+<init>
+SetLifecycle ( lifecycle : Lifecycle )
+A command stating that the beneficiary is moving the contract into the defaulted state as it has not been settled
+by the due date, or resetting a defaulted contract back to the issued state.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts.asset/-obligation/-commands/-set-lifecycle/index.html b/docs/build/html/api/net.corda.contracts.asset/-obligation/-commands/-set-lifecycle/index.html
new file mode 100644
index 0000000000..a8b84197d9
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts.asset/-obligation/-commands/-set-lifecycle/index.html
@@ -0,0 +1,46 @@
+
+
+Obligation.Commands.SetLifecycle -
+
+
+
+net.corda.contracts.asset / Obligation / Commands / SetLifecycle
+
+SetLifecycle
+data class SetLifecycle : Commands
+A command stating that the beneficiary is moving the contract into the defaulted state as it has not been settled
+by the due date, or resetting a defaulted contract back to the issued state.
+
+
+Constructors
+
+
+
+
+<init>
+
+SetLifecycle ( lifecycle : Lifecycle )
A command stating that the beneficiary is moving the contract into the defaulted state as it has not been settled
+by the due date, or resetting a defaulted contract back to the issued state.
+
+
+
+
+Properties
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts.asset/-obligation/-commands/-set-lifecycle/inverse.html b/docs/build/html/api/net.corda.contracts.asset/-obligation/-commands/-set-lifecycle/inverse.html
new file mode 100644
index 0000000000..854790c6c0
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts.asset/-obligation/-commands/-set-lifecycle/inverse.html
@@ -0,0 +1,15 @@
+
+
+Obligation.Commands.SetLifecycle.inverse -
+
+
+
+net.corda.contracts.asset / Obligation / Commands / SetLifecycle / inverse
+
+inverse
+
+val inverse : Lifecycle
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts.asset/-obligation/-commands/-set-lifecycle/lifecycle.html b/docs/build/html/api/net.corda.contracts.asset/-obligation/-commands/-set-lifecycle/lifecycle.html
new file mode 100644
index 0000000000..d4913d7ddc
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts.asset/-obligation/-commands/-set-lifecycle/lifecycle.html
@@ -0,0 +1,15 @@
+
+
+Obligation.Commands.SetLifecycle.lifecycle -
+
+
+
+net.corda.contracts.asset / Obligation / Commands / SetLifecycle / lifecycle
+
+lifecycle
+
+val lifecycle : Lifecycle
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts.asset/-obligation/-commands/-settle/-init-.html b/docs/build/html/api/net.corda.contracts.asset/-obligation/-commands/-settle/-init-.html
new file mode 100644
index 0000000000..5c71bfefe2
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts.asset/-obligation/-commands/-settle/-init-.html
@@ -0,0 +1,19 @@
+
+
+Obligation.Commands.Settle. -
+
+
+
+net.corda.contracts.asset / Obligation / Commands / Settle / <init>
+
+<init>
+Settle ( amount : Amount < Issued < Terms < P > > > )
+A command stating that the obligor is settling some or all of the amount owed by transferring a suitable
+state object to the beneficiary. If this reduces the balance to zero, the state object is destroyed.
+See Also
+
MoveCommand
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts.asset/-obligation/-commands/-settle/amount.html b/docs/build/html/api/net.corda.contracts.asset/-obligation/-commands/-settle/amount.html
new file mode 100644
index 0000000000..01bfa551dd
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts.asset/-obligation/-commands/-settle/amount.html
@@ -0,0 +1,15 @@
+
+
+Obligation.Commands.Settle.amount -
+
+
+
+net.corda.contracts.asset / Obligation / Commands / Settle / amount
+
+amount
+
+val amount : Amount < Issued < Terms < P > > >
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts.asset/-obligation/-commands/-settle/index.html b/docs/build/html/api/net.corda.contracts.asset/-obligation/-commands/-settle/index.html
new file mode 100644
index 0000000000..69d00ceda4
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts.asset/-obligation/-commands/-settle/index.html
@@ -0,0 +1,43 @@
+
+
+Obligation.Commands.Settle -
+
+
+
+net.corda.contracts.asset / Obligation / Commands / Settle
+
+Settle
+data class Settle < P > : Commands
+A command stating that the obligor is settling some or all of the amount owed by transferring a suitable
+state object to the beneficiary. If this reduces the balance to zero, the state object is destroyed.
+See Also
+
MoveCommand
+
+
+
+Constructors
+
+
+
+
+<init>
+
+Settle ( amount : Amount < Issued < Terms < P > > > )
A command stating that the obligor is settling some or all of the amount owed by transferring a suitable
+state object to the beneficiary. If this reduces the balance to zero, the state object is destroyed.
+
+
+
+
+Properties
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts.asset/-obligation/-commands/index.html b/docs/build/html/api/net.corda.contracts.asset/-obligation/-commands/index.html
new file mode 100644
index 0000000000..01a1fa0f81
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts.asset/-obligation/-commands/index.html
@@ -0,0 +1,118 @@
+
+
+Obligation.Commands -
+
+
+
+net.corda.contracts.asset / Obligation / Commands
+
+Commands
+interface Commands : Commands
+
+
+Types
+
+
+
+
+Exit
+
+data class Exit < P > : Commands , Exit < Terms < P > >
A command stating that the debt is being released by the beneficiary. Normally would indicate
+either settlement outside of the ledger, or that the obligor is unable to pay.
+
+
+
+
+Issue
+
+data class Issue : Issue , Commands
Allows new obligation states to be issued into existence: the nonce ("number used once") ensures the
+transaction has a unique ID even when there are no inputs.
+
+
+
+
+Move
+
+data class Move : Commands , Move
A command stating that a debt has been moved, optionally to fulfil another contract.
+
+
+
+
+Net
+
+data class Net : NetCommand , Commands
Net two or more obligation states together in a close-out netting style. Limited to bilateral netting
+as only the beneficiary (not the obligor) needs to sign.
+
+
+
+
+SetLifecycle
+
+data class SetLifecycle : Commands
A command stating that the beneficiary is moving the contract into the defaulted state as it has not been settled
+by the due date, or resetting a defaulted contract back to the issued state.
+
+
+
+
+Settle
+
+data class Settle < P > : Commands
A command stating that the obligor is settling some or all of the amount owed by transferring a suitable
+state object to the beneficiary. If this reduces the balance to zero, the state object is destroyed.
+
+
+
+
+Inheritors
+
+
+
+
+Exit
+
+data class Exit < P > : Commands , Exit < Terms < P > >
A command stating that the debt is being released by the beneficiary. Normally would indicate
+either settlement outside of the ledger, or that the obligor is unable to pay.
+
+
+
+
+Issue
+
+data class Issue : Issue , Commands
Allows new obligation states to be issued into existence: the nonce ("number used once") ensures the
+transaction has a unique ID even when there are no inputs.
+
+
+
+
+Move
+
+data class Move : Commands , Move
A command stating that a debt has been moved, optionally to fulfil another contract.
+
+
+
+
+Net
+
+data class Net : NetCommand , Commands
Net two or more obligation states together in a close-out netting style. Limited to bilateral netting
+as only the beneficiary (not the obligor) needs to sign.
+
+
+
+
+SetLifecycle
+
+data class SetLifecycle : Commands
A command stating that the beneficiary is moving the contract into the defaulted state as it has not been settled
+by the due date, or resetting a defaulted contract back to the issued state.
+
+
+
+
+Settle
+
+data class Settle < P > : Commands
A command stating that the obligor is settling some or all of the amount owed by transferring a suitable
+state object to the beneficiary. If this reduces the balance to zero, the state object is destroyed.
+
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts.asset/-obligation/-init-.html b/docs/build/html/api/net.corda.contracts.asset/-obligation/-init-.html
new file mode 100644
index 0000000000..f9da2d5ec5
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts.asset/-obligation/-init-.html
@@ -0,0 +1,21 @@
+
+
+Obligation. -
+
+
+
+net.corda.contracts.asset / Obligation / <init>
+
+<init>
+Obligation ( )
+An obligation contract commits the obligor to delivering a specified amount of a fungible asset (for example the
+Cash contract) at a specified future point in time. Settlement transactions may split and merge contracts across
+multiple input and output states. The goal of this design is to handle amounts owed, and these contracts are expected
+to be netted/merged, with settlement only for any remainder amount.
+Parameters
+
+P
- the product the obligation is for payment of.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts.asset/-obligation/-lifecycle/-d-e-f-a-u-l-t-e-d.html b/docs/build/html/api/net.corda.contracts.asset/-obligation/-lifecycle/-d-e-f-a-u-l-t-e-d.html
new file mode 100644
index 0000000000..693f26c5ed
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts.asset/-obligation/-lifecycle/-d-e-f-a-u-l-t-e-d.html
@@ -0,0 +1,16 @@
+
+
+Obligation.Lifecycle.DEFAULTED -
+
+
+
+net.corda.contracts.asset / Obligation / Lifecycle / DEFAULTED
+
+DEFAULTED
+DEFAULTED
+Indicates the contract has not been settled by its due date. Once in the defaulted state,
+it can only be reverted to NORMAL state by the beneficiary.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts.asset/-obligation/-lifecycle/-n-o-r-m-a-l.html b/docs/build/html/api/net.corda.contracts.asset/-obligation/-lifecycle/-n-o-r-m-a-l.html
new file mode 100644
index 0000000000..fcc26268f0
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts.asset/-obligation/-lifecycle/-n-o-r-m-a-l.html
@@ -0,0 +1,15 @@
+
+
+Obligation.Lifecycle.NORMAL -
+
+
+
+net.corda.contracts.asset / Obligation / Lifecycle / NORMAL
+
+NORMAL
+NORMAL
+Default lifecycle state for a contract, in which it can be settled normally
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts.asset/-obligation/-lifecycle/index.html b/docs/build/html/api/net.corda.contracts.asset/-obligation/-lifecycle/index.html
new file mode 100644
index 0000000000..2bafba0114
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts.asset/-obligation/-lifecycle/index.html
@@ -0,0 +1,37 @@
+
+
+Obligation.Lifecycle -
+
+
+
+net.corda.contracts.asset / Obligation / Lifecycle
+
+Lifecycle
+enum class Lifecycle
+Represents where in its lifecycle a contract state is, which in turn controls the commands that can be applied
+to the state. Most states will not leave the NORMAL lifecycle. Note that settled (as an end lifecycle) is
+represented by absence of the state on transaction output.
+
+
+Enum Values
+
+
+
+
+NORMAL
+
+Default lifecycle state for a contract, in which it can be settled normally
+
+
+
+
+DEFAULTED
+
+Indicates the contract has not been settled by its due date. Once in the defaulted state,
+it can only be reverted to NORMAL state by the beneficiary.
+
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts.asset/-obligation/-state/-init-.html b/docs/build/html/api/net.corda.contracts.asset/-obligation/-state/-init-.html
new file mode 100644
index 0000000000..1a22aef833
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts.asset/-obligation/-state/-init-.html
@@ -0,0 +1,20 @@
+
+
+Obligation.State. -
+
+
+
+net.corda.contracts.asset / Obligation / State / <init>
+
+<init>
+State ( lifecycle : Lifecycle = Lifecycle.NORMAL, obligor : Party , template : Terms < P > , quantity : Long , beneficiary : PublicKey )
+A state representing the obligation of one party (obligor) to deliver a specified number of
+units of an underlying asset (described as token.acceptableIssuedProducts) to the beneficiary
+no later than the specified time.
+Parameters
+
+P
- the product the obligation is for payment of.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts.asset/-obligation/-state/amount.html b/docs/build/html/api/net.corda.contracts.asset/-obligation/-state/amount.html
new file mode 100644
index 0000000000..d3721a8d01
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts.asset/-obligation/-state/amount.html
@@ -0,0 +1,16 @@
+
+
+Obligation.State.amount -
+
+
+
+net.corda.contracts.asset / Obligation / State / amount
+
+amount
+
+val amount : Amount < Issued < Terms < P > > >
+Overrides FungibleAsset.amount
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts.asset/-obligation/-state/beneficiary.html b/docs/build/html/api/net.corda.contracts.asset/-obligation/-state/beneficiary.html
new file mode 100644
index 0000000000..718836f561
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts.asset/-obligation/-state/beneficiary.html
@@ -0,0 +1,16 @@
+
+
+Obligation.State.beneficiary -
+
+
+
+net.corda.contracts.asset / Obligation / State / beneficiary
+
+beneficiary
+
+val beneficiary : PublicKey
+The public key of the entity the contract pays to
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts.asset/-obligation/-state/bilateral-net-state.html b/docs/build/html/api/net.corda.contracts.asset/-obligation/-state/bilateral-net-state.html
new file mode 100644
index 0000000000..c426b75b79
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts.asset/-obligation/-state/bilateral-net-state.html
@@ -0,0 +1,22 @@
+
+
+Obligation.State.bilateralNetState -
+
+
+
+net.corda.contracts.asset / Obligation / State / bilateralNetState
+
+bilateralNetState
+
+val bilateralNetState : BilateralNetState < P >
+Overrides BilateralNettableState.bilateralNetState
+Returns an object used to determine if two states can be subject to close-out netting. If two states return
+equal objects, they can be close out netted together.
+Getter
+
Returns an object used to determine if two states can be subject to close-out netting. If two states return
+equal objects, they can be close out netted together.
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts.asset/-obligation/-state/contract.html b/docs/build/html/api/net.corda.contracts.asset/-obligation/-state/contract.html
new file mode 100644
index 0000000000..74796914f9
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts.asset/-obligation/-state/contract.html
@@ -0,0 +1,43 @@
+
+
+Obligation.State.contract -
+
+
+
+net.corda.contracts.asset / Obligation / State / contract
+
+contract
+
+val contract : Obligation < Currency >
+Overrides ContractState.contract
+An instance of the contract class that will verify this state.
+Discussion
+This field is not the final design, its just a piece of temporary scaffolding. Once the contract sandbox is
+further along, this field will become a description of which attachments are acceptable for defining the
+contract.
+Recall that an attachment is a zip file that can be referenced from any transaction. The contents of the
+attachments are merged together and cannot define any overlapping files, thus for any given transaction there
+is a miniature file system in which each file can be precisely mapped to the defining attachment.
+Attachments may contain many things (data files, legal documents, etc) but mostly they contain JVM bytecode.
+The class files inside define not only Contract implementations but also the classes that define the states.
+Within the rest of a transaction, user-providable components are referenced by name only.
+This means that a smart contract in Corda does two things:
+Define the data structures that compose the ledger (the states)
+Define the rules for updating those structures
+The first is merely a utility role ... in theory contract code could manually parse byte streams by hand.
+The second is vital to the integrity of the ledger. So this field needs to be able to express constraints like:
+Only attachment 733c350f396a727655be1363c06635ba355036bd54a5ed6e594fd0b5d05f42f6 may be used with this state.
+Any attachment signed by public key 2d1ce0e330c52b8055258d776c40 may be used with this state.
+Attachments (1, 2, 3) may all be used with this state.
+and so on. In this way it becomes possible for the business logic governing a state to be evolved, if the
+constraints are flexible enough.
+Because contract classes often also define utilities that generate relevant transactions, and because attachments
+cannot know their own hashes, we will have to provide various utilities to assist with obtaining the right
+code constraints from within the contract code itself.
+TODO: Implement the above description. See COR-226
+
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts.asset/-obligation/-state/due-before.html b/docs/build/html/api/net.corda.contracts.asset/-obligation/-state/due-before.html
new file mode 100644
index 0000000000..6a13a23222
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts.asset/-obligation/-state/due-before.html
@@ -0,0 +1,15 @@
+
+
+Obligation.State.dueBefore -
+
+
+
+net.corda.contracts.asset / Obligation / State / dueBefore
+
+dueBefore
+
+val dueBefore : Instant
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts.asset/-obligation/-state/exit-keys.html b/docs/build/html/api/net.corda.contracts.asset/-obligation/-state/exit-keys.html
new file mode 100644
index 0000000000..9f44e83153
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts.asset/-obligation/-state/exit-keys.html
@@ -0,0 +1,18 @@
+
+
+Obligation.State.exitKeys -
+
+
+
+net.corda.contracts.asset / Obligation / State / exitKeys
+
+exitKeys
+
+val exitKeys : Collection < PublicKey >
+Overrides FungibleAsset.exitKeys
+There must be an ExitCommand signed by these keys to destroy the amount. While all states require their
+owner to sign, some (i.e. cash) also require the issuer.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts.asset/-obligation/-state/index.html b/docs/build/html/api/net.corda.contracts.asset/-obligation/-state/index.html
new file mode 100644
index 0000000000..a51ed19924
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts.asset/-obligation/-state/index.html
@@ -0,0 +1,201 @@
+
+
+Obligation.State -
+
+
+
+net.corda.contracts.asset / Obligation / State
+
+State
+data class State < P > : FungibleAsset < Terms < P > > , NettableState < State < P > , MultilateralNetState < P > >
+A state representing the obligation of one party (obligor) to deliver a specified number of
+units of an underlying asset (described as token.acceptableIssuedProducts) to the beneficiary
+no later than the specified time.
+Parameters
+
+P
- the product the obligation is for payment of.
+
+
+Constructors
+
+
+
+
+<init>
+
+State ( lifecycle : Lifecycle = Lifecycle.NORMAL, obligor : Party , template : Terms < P > , quantity : Long , beneficiary : PublicKey )
A state representing the obligation of one party (obligor) to deliver a specified number of
+units of an underlying asset (described as token.acceptableIssuedProducts) to the beneficiary
+no later than the specified time.
+
+
+
+
+Properties
+
+
+
+
+amount
+
+val amount : Amount < Issued < Terms < P > > >
+
+
+
+beneficiary
+
+val beneficiary : PublicKey
The public key of the entity the contract pays to
+
+
+
+
+bilateralNetState
+
+val bilateralNetState : BilateralNetState < P >
Returns an object used to determine if two states can be subject to close-out netting. If two states return
+equal objects, they can be close out netted together.
+
+
+
+
+contract
+
+val contract : Obligation < Currency >
An instance of the contract class that will verify this state.
+
+
+
+
+dueBefore
+
+val dueBefore : Instant
+
+
+
+exitKeys
+
+val exitKeys : Collection < PublicKey >
There must be an ExitCommand signed by these keys to destroy the amount. While all states require their
+owner to sign, some (i.e. cash) also require the issuer.
+
+
+
+
+lifecycle
+
+var lifecycle : Lifecycle
+
+
+
+multilateralNetState
+
+val multilateralNetState : MultilateralNetState < P >
Returns an object used to determine if two states can be subject to close-out netting. If two states return
+equal objects, they can be close out netted together.
+
+
+
+
+obligor
+
+val obligor : Party
Where the debt originates from (obligor)
+
+
+
+
+owner
+
+val owner : PublicKey
There must be a MoveCommand signed by this key to claim the amount
+
+
+
+
+participants
+
+val participants : List < PublicKey >
A participant is any party that is able to consume this state in a valid transaction.
+
+
+
+
+quantity
+
+val quantity : Long
+
+
+
+template
+
+val template : Terms < P >
+
+
+
+Functions
+
+
+
+
+move
+
+fun move ( newAmount : Amount < Issued < Terms < P > > > , newOwner : PublicKey ) : State < P >
+
+
+
+net
+
+fun net ( other : State < P > ) : State < P >
Perform bilateral netting of this state with another state. The two states must be compatible (as in
+bilateralNetState objects are equal).
+
+
+
+
+toString
+
+fun toString ( ) : String
+
+
+
+withNewOwner
+
+fun withNewOwner ( newOwner : PublicKey ) : <ERROR CLASS>
Copies the underlying data structure, replacing the owner field with this new value and leaving the rest alone
+
+
+
+
+Extension Functions
+
+
+
+
+at
+
+infix fun < T > State < T > . at ( dueBefore : Instant ) : State < T >
+
+
+
+between
+
+infix fun < T > State < T > . between ( parties : <ERROR CLASS> < Party , PublicKey > ) : State < T >
+
+
+
+issued by
+
+infix fun < T > State < T > . issued by ( party : Party ) : State < T >
+
+
+
+issuedBy
+
+fun < T > State < T > . issuedBy ( party : Party ) : State < T >
+
+
+
+owned by
+
+infix fun < T > State < T > . owned by ( owner : PublicKey ) : State < T >
+
+
+
+ownedBy
+
+fun < T > State < T > . ownedBy ( owner : PublicKey ) : State < T >
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts.asset/-obligation/-state/lifecycle.html b/docs/build/html/api/net.corda.contracts.asset/-obligation/-state/lifecycle.html
new file mode 100644
index 0000000000..dc70b8b318
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts.asset/-obligation/-state/lifecycle.html
@@ -0,0 +1,15 @@
+
+
+Obligation.State.lifecycle -
+
+
+
+net.corda.contracts.asset / Obligation / State / lifecycle
+
+lifecycle
+
+var lifecycle : Lifecycle
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts.asset/-obligation/-state/move.html b/docs/build/html/api/net.corda.contracts.asset/-obligation/-state/move.html
new file mode 100644
index 0000000000..736a8c80bf
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts.asset/-obligation/-state/move.html
@@ -0,0 +1,15 @@
+
+
+Obligation.State.move -
+
+
+
+net.corda.contracts.asset / Obligation / State / move
+
+move
+
+fun move ( newAmount : Amount < Issued < Terms < P > > > , newOwner : PublicKey ) : State < P >
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts.asset/-obligation/-state/multilateral-net-state.html b/docs/build/html/api/net.corda.contracts.asset/-obligation/-state/multilateral-net-state.html
new file mode 100644
index 0000000000..32bc348299
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts.asset/-obligation/-state/multilateral-net-state.html
@@ -0,0 +1,22 @@
+
+
+Obligation.State.multilateralNetState -
+
+
+
+net.corda.contracts.asset / Obligation / State / multilateralNetState
+
+multilateralNetState
+
+val multilateralNetState : MultilateralNetState < P >
+Overrides MultilateralNettableState.multilateralNetState
+Returns an object used to determine if two states can be subject to close-out netting. If two states return
+equal objects, they can be close out netted together.
+Getter
+
Returns an object used to determine if two states can be subject to close-out netting. If two states return
+equal objects, they can be close out netted together.
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts.asset/-obligation/-state/net.html b/docs/build/html/api/net.corda.contracts.asset/-obligation/-state/net.html
new file mode 100644
index 0000000000..ae339d5852
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts.asset/-obligation/-state/net.html
@@ -0,0 +1,17 @@
+
+
+Obligation.State.net -
+
+
+
+net.corda.contracts.asset / Obligation / State / net
+
+net
+
+fun net ( other : State < P > ) : State < P >
+Perform bilateral netting of this state with another state. The two states must be compatible (as in
+bilateralNetState objects are equal).
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts.asset/-obligation/-state/obligor.html b/docs/build/html/api/net.corda.contracts.asset/-obligation/-state/obligor.html
new file mode 100644
index 0000000000..1a066bed4e
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts.asset/-obligation/-state/obligor.html
@@ -0,0 +1,16 @@
+
+
+Obligation.State.obligor -
+
+
+
+net.corda.contracts.asset / Obligation / State / obligor
+
+obligor
+
+val obligor : Party
+Where the debt originates from (obligor)
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts.asset/-obligation/-state/owner.html b/docs/build/html/api/net.corda.contracts.asset/-obligation/-state/owner.html
new file mode 100644
index 0000000000..4069385a8f
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts.asset/-obligation/-state/owner.html
@@ -0,0 +1,17 @@
+
+
+Obligation.State.owner -
+
+
+
+net.corda.contracts.asset / Obligation / State / owner
+
+owner
+
+val owner : PublicKey
+Overrides FungibleAsset.owner
+There must be a MoveCommand signed by this key to claim the amount
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts.asset/-obligation/-state/participants.html b/docs/build/html/api/net.corda.contracts.asset/-obligation/-state/participants.html
new file mode 100644
index 0000000000..fe2cc6a229
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts.asset/-obligation/-state/participants.html
@@ -0,0 +1,25 @@
+
+
+Obligation.State.participants -
+
+
+
+net.corda.contracts.asset / Obligation / State / participants
+
+participants
+
+val participants : List < PublicKey >
+Overrides ContractState.participants
+A participant is any party that is able to consume this state in a valid transaction.
+The list of participants is required for certain types of transactions. For example, when changing the notary
+for this state (TransactionType.NotaryChange ), every participant has to be involved and approve the transaction
+so that they receive the updated state, and dont end up in a situation where they can no longer use a state
+they possess, since someone consumed that state during the notary change process.
+The participants list should normally be derived from the contents of the state. E.g. for Cash the participants
+list should just contain the owner.
+
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts.asset/-obligation/-state/quantity.html b/docs/build/html/api/net.corda.contracts.asset/-obligation/-state/quantity.html
new file mode 100644
index 0000000000..43f3dbede6
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts.asset/-obligation/-state/quantity.html
@@ -0,0 +1,15 @@
+
+
+Obligation.State.quantity -
+
+
+
+net.corda.contracts.asset / Obligation / State / quantity
+
+quantity
+
+val quantity : Long
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts.asset/-obligation/-state/template.html b/docs/build/html/api/net.corda.contracts.asset/-obligation/-state/template.html
new file mode 100644
index 0000000000..8b40029f2e
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts.asset/-obligation/-state/template.html
@@ -0,0 +1,15 @@
+
+
+Obligation.State.template -
+
+
+
+net.corda.contracts.asset / Obligation / State / template
+
+template
+
+val template : Terms < P >
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts.asset/-obligation/-state/to-string.html b/docs/build/html/api/net.corda.contracts.asset/-obligation/-state/to-string.html
new file mode 100644
index 0000000000..7ff741982e
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts.asset/-obligation/-state/to-string.html
@@ -0,0 +1,15 @@
+
+
+Obligation.State.toString -
+
+
+
+net.corda.contracts.asset / Obligation / State / toString
+
+toString
+
+fun toString ( ) : String
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts.asset/-obligation/-state/with-new-owner.html b/docs/build/html/api/net.corda.contracts.asset/-obligation/-state/with-new-owner.html
new file mode 100644
index 0000000000..b1fa7bbdcf
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts.asset/-obligation/-state/with-new-owner.html
@@ -0,0 +1,17 @@
+
+
+Obligation.State.withNewOwner -
+
+
+
+net.corda.contracts.asset / Obligation / State / withNewOwner
+
+withNewOwner
+
+fun withNewOwner ( newOwner : PublicKey ) : <ERROR CLASS>
+Overrides OwnableState.withNewOwner
+Copies the underlying data structure, replacing the owner field with this new value and leaving the rest alone
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts.asset/-obligation/-terms/-init-.html b/docs/build/html/api/net.corda.contracts.asset/-obligation/-terms/-init-.html
new file mode 100644
index 0000000000..23650f073b
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts.asset/-obligation/-terms/-init-.html
@@ -0,0 +1,18 @@
+
+
+Obligation.Terms. -
+
+
+
+net.corda.contracts.asset / Obligation / Terms / <init>
+
+<init>
+Terms ( acceptableContracts : NonEmptySet < SecureHash > , acceptableIssuedProducts : NonEmptySet < Issued < P > > , dueBefore : Instant , timeTolerance : Duration = Duration.ofSeconds(30))
+Subset of state, containing the elements specified when issuing a new settlement contract.
+Parameters
+
+P
- the product the obligation is for payment of.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts.asset/-obligation/-terms/acceptable-contracts.html b/docs/build/html/api/net.corda.contracts.asset/-obligation/-terms/acceptable-contracts.html
new file mode 100644
index 0000000000..f6622fe62f
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts.asset/-obligation/-terms/acceptable-contracts.html
@@ -0,0 +1,16 @@
+
+
+Obligation.Terms.acceptableContracts -
+
+
+
+net.corda.contracts.asset / Obligation / Terms / acceptableContracts
+
+acceptableContracts
+
+val acceptableContracts : NonEmptySet < SecureHash >
+The hash of the asset contract were willing to accept in payment for this debt.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts.asset/-obligation/-terms/acceptable-issued-products.html b/docs/build/html/api/net.corda.contracts.asset/-obligation/-terms/acceptable-issued-products.html
new file mode 100644
index 0000000000..bb51f3b348
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts.asset/-obligation/-terms/acceptable-issued-products.html
@@ -0,0 +1,16 @@
+
+
+Obligation.Terms.acceptableIssuedProducts -
+
+
+
+net.corda.contracts.asset / Obligation / Terms / acceptableIssuedProducts
+
+acceptableIssuedProducts
+
+val acceptableIssuedProducts : NonEmptySet < Issued < P > >
+The parties whose assets we are willing to accept in payment for this debt.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts.asset/-obligation/-terms/due-before.html b/docs/build/html/api/net.corda.contracts.asset/-obligation/-terms/due-before.html
new file mode 100644
index 0000000000..9b3483263d
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts.asset/-obligation/-terms/due-before.html
@@ -0,0 +1,16 @@
+
+
+Obligation.Terms.dueBefore -
+
+
+
+net.corda.contracts.asset / Obligation / Terms / dueBefore
+
+dueBefore
+
+val dueBefore : Instant
+When the contract must be settled by.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts.asset/-obligation/-terms/index.html b/docs/build/html/api/net.corda.contracts.asset/-obligation/-terms/index.html
new file mode 100644
index 0000000000..b0ca75220f
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts.asset/-obligation/-terms/index.html
@@ -0,0 +1,68 @@
+
+
+Obligation.Terms -
+
+
+
+net.corda.contracts.asset / Obligation / Terms
+
+Terms
+data class Terms < P >
+Subset of state, containing the elements specified when issuing a new settlement contract.
+Parameters
+
+P
- the product the obligation is for payment of.
+
+
+Constructors
+
+Properties
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts.asset/-obligation/-terms/product.html b/docs/build/html/api/net.corda.contracts.asset/-obligation/-terms/product.html
new file mode 100644
index 0000000000..5f50bd69b3
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts.asset/-obligation/-terms/product.html
@@ -0,0 +1,15 @@
+
+
+Obligation.Terms.product -
+
+
+
+net.corda.contracts.asset / Obligation / Terms / product
+
+product
+
+val product : P
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts.asset/-obligation/-terms/time-tolerance.html b/docs/build/html/api/net.corda.contracts.asset/-obligation/-terms/time-tolerance.html
new file mode 100644
index 0000000000..964d05fa2a
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts.asset/-obligation/-terms/time-tolerance.html
@@ -0,0 +1,15 @@
+
+
+Obligation.Terms.timeTolerance -
+
+
+
+net.corda.contracts.asset / Obligation / Terms / timeTolerance
+
+timeTolerance
+
+val timeTolerance : Duration
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts.asset/-obligation/generate-close-out-netting.html b/docs/build/html/api/net.corda.contracts.asset/-obligation/generate-close-out-netting.html
new file mode 100644
index 0000000000..d1ae199228
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts.asset/-obligation/generate-close-out-netting.html
@@ -0,0 +1,23 @@
+
+
+Obligation.generateCloseOutNetting -
+
+
+
+net.corda.contracts.asset / Obligation / generateCloseOutNetting
+
+generateCloseOutNetting
+
+fun generateCloseOutNetting ( tx : TransactionBuilder , signer : PublicKey , vararg states : State < P > ) : Unit
+Generate a transaction performing close-out netting of two or more states.
+Parameters
+
+signer
- the party who will sign the transaction. Must be one of the obligor or beneficiary.
+
+
+states
- two or more states, which must be compatible for bilateral netting (same issuance definitions,
+and same parties involved).
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts.asset/-obligation/generate-exit.html b/docs/build/html/api/net.corda.contracts.asset/-obligation/generate-exit.html
new file mode 100644
index 0000000000..6b296eec28
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts.asset/-obligation/generate-exit.html
@@ -0,0 +1,28 @@
+
+
+Obligation.generateExit -
+
+
+
+net.corda.contracts.asset / Obligation / generateExit
+
+generateExit
+
+fun generateExit ( tx : TransactionBuilder , amountIssued : Amount < Issued < Terms < P > > > , assetStates : List < StateAndRef < State < P > > > ) : PublicKey
+Generate an transaction exiting an obligation from the ledger.
+Parameters
+
+tx
- transaction builder to add states and commands to.
+
+
+amountIssued
- the amount to be exited, represented as a quantity of issued currency.
+
+
+assetStates
- the asset states to take funds from. No checks are done about ownership of these states, it is
+the responsibility of the caller to check that they do not exit funds held by others.
+Return
+the public key of the assets issuer, who must sign the transaction for it to be valid.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts.asset/-obligation/generate-issue.html b/docs/build/html/api/net.corda.contracts.asset/-obligation/generate-issue.html
new file mode 100644
index 0000000000..c18121e534
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts.asset/-obligation/generate-issue.html
@@ -0,0 +1,16 @@
+
+
+Obligation.generateIssue -
+
+
+
+net.corda.contracts.asset / Obligation / generateIssue
+
+generateIssue
+
+fun generateIssue ( tx : TransactionBuilder , obligor : Party , issuanceDef : Terms < P > , pennies : Long , beneficiary : PublicKey , notary : Party ) : Unit
+Puts together an issuance transaction for the specified amount that starts out being owned by the given pubkey.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts.asset/-obligation/generate-payment-netting.html b/docs/build/html/api/net.corda.contracts.asset/-obligation/generate-payment-netting.html
new file mode 100644
index 0000000000..43ed6850cc
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts.asset/-obligation/generate-payment-netting.html
@@ -0,0 +1,15 @@
+
+
+Obligation.generatePaymentNetting -
+
+
+
+net.corda.contracts.asset / Obligation / generatePaymentNetting
+
+generatePaymentNetting
+
+fun generatePaymentNetting ( tx : TransactionBuilder , issued : Issued < Terms < P > > , notary : Party , vararg states : State < P > ) : Unit
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts.asset/-obligation/generate-set-lifecycle.html b/docs/build/html/api/net.corda.contracts.asset/-obligation/generate-set-lifecycle.html
new file mode 100644
index 0000000000..b82e7884e0
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts.asset/-obligation/generate-set-lifecycle.html
@@ -0,0 +1,20 @@
+
+
+Obligation.generateSetLifecycle -
+
+
+
+net.corda.contracts.asset / Obligation / generateSetLifecycle
+
+generateSetLifecycle
+
+fun generateSetLifecycle ( tx : TransactionBuilder , statesAndRefs : List < StateAndRef < State < P > > > , lifecycle : Lifecycle , notary : Party ) : Unit
+Generate a transaction changing the lifecycle of one or more state objects.
+Parameters
+
+statesAndRefs
- a list of state objects, which MUST all have the same issuance definition. This avoids
+potential complications arising from different deadlines applying to different states.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts.asset/-obligation/generate-settle.html b/docs/build/html/api/net.corda.contracts.asset/-obligation/generate-settle.html
new file mode 100644
index 0000000000..16fbb1e014
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts.asset/-obligation/generate-settle.html
@@ -0,0 +1,27 @@
+
+
+Obligation.generateSettle -
+
+
+
+net.corda.contracts.asset / Obligation / generateSettle
+
+generateSettle
+
+fun generateSettle ( tx : TransactionBuilder , statesAndRefs : Iterable < StateAndRef < State < P > > > , assetStatesAndRefs : Iterable < StateAndRef < FungibleAsset < P > > > , moveCommand : MoveCommand , notary : Party ) : Unit
+Parameters
+
+statesAndRefs
- a list of state objects, which MUST all have the same aggregate state. This is done as
+only a single settlement command can be present in a transaction, to avoid potential problems with allocating
+assets to different obligation issuances.
+
+
+assetStatesAndRefs
- a list of fungible asset state objects, which MUST all be of the same issued product.
+It is strongly encouraged that these all have the same beneficiary.
+
+
+moveCommand
- the command used to move the asset state objects to their new owner.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts.asset/-obligation/index.html b/docs/build/html/api/net.corda.contracts.asset/-obligation/index.html
new file mode 100644
index 0000000000..539d0dfea5
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts.asset/-obligation/index.html
@@ -0,0 +1,145 @@
+
+
+Obligation -
+
+
+
+net.corda.contracts.asset / Obligation
+
+Obligation
+class Obligation < P > : Contract
+An obligation contract commits the obligor to delivering a specified amount of a fungible asset (for example the
+Cash contract) at a specified future point in time. Settlement transactions may split and merge contracts across
+multiple input and output states. The goal of this design is to handle amounts owed, and these contracts are expected
+to be netted/merged, with settlement only for any remainder amount.
+Parameters
+
+P
- the product the obligation is for payment of.
+
+
+Types
+
+
+
+
+Clauses
+
+interface Clauses
+
+
+
+Commands
+
+interface Commands : Commands
+
+
+
+Lifecycle
+
+enum class Lifecycle
Represents where in its lifecycle a contract state is, which in turn controls the commands that can be applied
+to the state. Most states will not leave the NORMAL lifecycle. Note that settled (as an end lifecycle) is
+represented by absence of the state on transaction output.
+
+
+
+
+State
+
+data class State < P > : FungibleAsset < Terms < P > > , NettableState < State < P > , MultilateralNetState < P > >
A state representing the obligation of one party (obligor) to deliver a specified number of
+units of an underlying asset (described as token.acceptableIssuedProducts) to the beneficiary
+no later than the specified time.
+
+
+
+
+Terms
+
+data class Terms < P >
Subset of state, containing the elements specified when issuing a new settlement contract.
+
+
+
+
+Constructors
+
+
+
+
+<init>
+
+Obligation ( )
An obligation contract commits the obligor to delivering a specified amount of a fungible asset (for example the
+Cash contract) at a specified future point in time. Settlement transactions may split and merge contracts across
+multiple input and output states. The goal of this design is to handle amounts owed, and these contracts are expected
+to be netted/merged, with settlement only for any remainder amount.
+
+
+
+
+Properties
+
+Functions
+
+
+
+
+generateCloseOutNetting
+
+fun generateCloseOutNetting ( tx : TransactionBuilder , signer : PublicKey , vararg states : State < P > ) : Unit
Generate a transaction performing close-out netting of two or more states.
+
+
+
+
+generateExit
+
+fun generateExit ( tx : TransactionBuilder , amountIssued : Amount < Issued < Terms < P > > > , assetStates : List < StateAndRef < State < P > > > ) : PublicKey
Generate an transaction exiting an obligation from the ledger.
+
+
+
+
+generateIssue
+
+fun generateIssue ( tx : TransactionBuilder , obligor : Party , issuanceDef : Terms < P > , pennies : Long , beneficiary : PublicKey , notary : Party ) : Unit
Puts together an issuance transaction for the specified amount that starts out being owned by the given pubkey.
+
+
+
+
+generatePaymentNetting
+
+fun generatePaymentNetting ( tx : TransactionBuilder , issued : Issued < Terms < P > > , notary : Party , vararg states : State < P > ) : Unit
+
+
+
+generateSetLifecycle
+
+fun generateSetLifecycle ( tx : TransactionBuilder , statesAndRefs : List < StateAndRef < State < P > > > , lifecycle : Lifecycle , notary : Party ) : Unit
Generate a transaction changing the lifecycle of one or more state objects.
+
+
+
+
+generateSettle
+
+fun generateSettle ( tx : TransactionBuilder , statesAndRefs : Iterable < StateAndRef < State < P > > > , assetStatesAndRefs : Iterable < StateAndRef < FungibleAsset < P > > > , moveCommand : MoveCommand , notary : Party ) : Unit
+
+
+
+verify
+
+fun verify ( tx : TransactionForContract ) : Unit
Takes an object that represents a state transition, and ensures the inputs/outputs/commands make sense.
+Must throw an exception if theres a problem that should prevent state transition. Takes a single object
+rather than an argument so that additional data can be added without breaking binary compatibility with
+existing contract code.
+
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts.asset/-obligation/legal-contract-reference.html b/docs/build/html/api/net.corda.contracts.asset/-obligation/legal-contract-reference.html
new file mode 100644
index 0000000000..0a892333b4
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts.asset/-obligation/legal-contract-reference.html
@@ -0,0 +1,25 @@
+
+
+Obligation.legalContractReference -
+
+
+
+net.corda.contracts.asset / Obligation / legalContractReference
+
+legalContractReference
+
+val legalContractReference : SecureHash
+Overrides Contract.legalContractReference
+TODO:
+hash should be of the contents, not the URI
+allow the content to be specified at time of instance creation?
+Motivation: its the difference between a state object referencing a programRef, which references a
+legalContractReference and a state object which directly references both. The latter allows the legal wording
+to evolve without requiring code changes. But creates a risk that users create objects governed by a program
+that is inconsistent with the legal contract.
+
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts.asset/-obligation/verify.html b/docs/build/html/api/net.corda.contracts.asset/-obligation/verify.html
new file mode 100644
index 0000000000..36244e3bcd
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts.asset/-obligation/verify.html
@@ -0,0 +1,20 @@
+
+
+Obligation.verify -
+
+
+
+net.corda.contracts.asset / Obligation / verify
+
+verify
+
+fun verify ( tx : TransactionForContract ) : Unit
+Overrides Contract.verify
+Takes an object that represents a state transition, and ensures the inputs/outputs/commands make sense.
+Must throw an exception if theres a problem that should prevent state transition. Takes a single object
+rather than an argument so that additional data can be added without breaking binary compatibility with
+existing contract code.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts.asset/-on-ledger-asset/-init-.html b/docs/build/html/api/net.corda.contracts.asset/-on-ledger-asset/-init-.html
new file mode 100644
index 0000000000..a1e2725f77
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts.asset/-on-ledger-asset/-init-.html
@@ -0,0 +1,25 @@
+
+
+OnLedgerAsset. -
+
+
+
+net.corda.contracts.asset / OnLedgerAsset / <init>
+
+<init>
+OnLedgerAsset ( )
+An asset transaction may split and merge assets represented by a set of (issuer, depositRef) pairs, across multiple
+input and output states. Imagine a Bitcoin transaction but in which all UTXOs had a colour (a blend of
+issuer+depositRef) and you couldnt merge outputs of two colours together, but you COULD put them in the same
+transaction.
+The goal of this design is to ensure that assets can be withdrawn from the ledger easily: if you receive some asset
+via this contract, you always know where to go in order to extract it from the R3 ledger, no matter how many hands
+it has passed through in the intervening time.
+At the same time, other contracts that just want assets and dont care much who is currently holding it can ignore
+the issuer/depositRefs and just examine the amount fields.
+
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts.asset/-on-ledger-asset/conserve-clause.html b/docs/build/html/api/net.corda.contracts.asset/-on-ledger-asset/conserve-clause.html
new file mode 100644
index 0000000000..d2fdbcc3b0
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts.asset/-on-ledger-asset/conserve-clause.html
@@ -0,0 +1,15 @@
+
+
+OnLedgerAsset.conserveClause -
+
+
+
+net.corda.contracts.asset / OnLedgerAsset / conserveClause
+
+conserveClause
+
+abstract val conserveClause : AbstractConserveAmount < S , C , T >
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts.asset/-on-ledger-asset/derive-state.html b/docs/build/html/api/net.corda.contracts.asset/-on-ledger-asset/derive-state.html
new file mode 100644
index 0000000000..2e06430bc2
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts.asset/-on-ledger-asset/derive-state.html
@@ -0,0 +1,18 @@
+
+
+OnLedgerAsset.deriveState -
+
+
+
+net.corda.contracts.asset / OnLedgerAsset / deriveState
+
+deriveState
+
+abstract fun deriveState ( txState : TransactionState < S > , amount : Amount < Issued < T > > , owner : PublicKey ) : TransactionState < S >
+Derive a new transaction state based on the given example, with amount and owner modified. This allows concrete
+implementations to have fields in their state which we dont know about here, and we simply leave them untouched
+when sending out "change" from spending/exiting.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts.asset/-on-ledger-asset/extract-commands.html b/docs/build/html/api/net.corda.contracts.asset/-on-ledger-asset/extract-commands.html
new file mode 100644
index 0000000000..2a930ceada
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts.asset/-on-ledger-asset/extract-commands.html
@@ -0,0 +1,15 @@
+
+
+OnLedgerAsset.extractCommands -
+
+
+
+net.corda.contracts.asset / OnLedgerAsset / extractCommands
+
+extractCommands
+
+abstract fun extractCommands ( commands : Collection < AuthenticatedObject < CommandData > > ) : Collection < AuthenticatedObject < C > >
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts.asset/-on-ledger-asset/generate-exit-command.html b/docs/build/html/api/net.corda.contracts.asset/-on-ledger-asset/generate-exit-command.html
new file mode 100644
index 0000000000..92e5444216
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts.asset/-on-ledger-asset/generate-exit-command.html
@@ -0,0 +1,15 @@
+
+
+OnLedgerAsset.generateExitCommand -
+
+
+
+net.corda.contracts.asset / OnLedgerAsset / generateExitCommand
+
+generateExitCommand
+
+abstract fun generateExitCommand ( amount : Amount < Issued < T > > ) : Exit < T >
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts.asset/-on-ledger-asset/generate-exit.html b/docs/build/html/api/net.corda.contracts.asset/-on-ledger-asset/generate-exit.html
new file mode 100644
index 0000000000..01e549dd96
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts.asset/-on-ledger-asset/generate-exit.html
@@ -0,0 +1,32 @@
+
+
+OnLedgerAsset.generateExit -
+
+
+
+net.corda.contracts.asset / OnLedgerAsset / generateExit
+
+generateExit
+
+fun generateExit ( tx : TransactionBuilder , amountIssued : Amount < Issued < T > > , assetStates : List < StateAndRef < S > > ) : PublicKey
+Generate an transaction exiting assets from the ledger.
+Parameters
+
+tx
- transaction builder to add states and commands to.
+
+
+amountIssued
- the amount to be exited, represented as a quantity of issued currency.
+
+
+changeKey
- the key to send any change to. This needs to be explicitly stated as the input states are not
+necessarily owned by us.
+
+
+assetStates
- the asset states to take funds from. No checks are done about ownership of these states, it is
+the responsibility of the caller to check that they do not exit funds held by others.
+Return
+the public key of the assets issuer, who must sign the transaction for it to be valid.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts.asset/-on-ledger-asset/generate-issue-command.html b/docs/build/html/api/net.corda.contracts.asset/-on-ledger-asset/generate-issue-command.html
new file mode 100644
index 0000000000..502c146f9e
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts.asset/-on-ledger-asset/generate-issue-command.html
@@ -0,0 +1,15 @@
+
+
+OnLedgerAsset.generateIssueCommand -
+
+
+
+net.corda.contracts.asset / OnLedgerAsset / generateIssueCommand
+
+generateIssueCommand
+
+abstract fun generateIssueCommand ( ) : Issue
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts.asset/-on-ledger-asset/generate-move-command.html b/docs/build/html/api/net.corda.contracts.asset/-on-ledger-asset/generate-move-command.html
new file mode 100644
index 0000000000..922487fa5e
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts.asset/-on-ledger-asset/generate-move-command.html
@@ -0,0 +1,15 @@
+
+
+OnLedgerAsset.generateMoveCommand -
+
+
+
+net.corda.contracts.asset / OnLedgerAsset / generateMoveCommand
+
+generateMoveCommand
+
+abstract fun generateMoveCommand ( ) : Move
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts.asset/-on-ledger-asset/index.html b/docs/build/html/api/net.corda.contracts.asset/-on-ledger-asset/index.html
new file mode 100644
index 0000000000..b09da67179
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts.asset/-on-ledger-asset/index.html
@@ -0,0 +1,150 @@
+
+
+OnLedgerAsset -
+
+
+
+net.corda.contracts.asset / OnLedgerAsset
+
+OnLedgerAsset
+abstract class OnLedgerAsset < T : Any , C : CommandData , S : FungibleAsset < T > > : Contract
+An asset transaction may split and merge assets represented by a set of (issuer, depositRef) pairs, across multiple
+input and output states. Imagine a Bitcoin transaction but in which all UTXOs had a colour (a blend of
+issuer+depositRef) and you couldnt merge outputs of two colours together, but you COULD put them in the same
+transaction.
+The goal of this design is to ensure that assets can be withdrawn from the ledger easily: if you receive some asset
+via this contract, you always know where to go in order to extract it from the R3 ledger, no matter how many hands
+it has passed through in the intervening time.
+At the same time, other contracts that just want assets and dont care much who is currently holding it can ignore
+the issuer/depositRefs and just examine the amount fields.
+
+
+
+
+Constructors
+
+
+
+
+<init>
+
+OnLedgerAsset ( )
An asset transaction may split and merge assets represented by a set of (issuer, depositRef) pairs, across multiple
+input and output states. Imagine a Bitcoin transaction but in which all UTXOs had a colour (a blend of
+issuer+depositRef) and you couldnt merge outputs of two colours together, but you COULD put them in the same
+transaction.
+
+
+
+
+Properties
+
+Inherited Properties
+
+
+
+
+legalContractReference
+
+abstract val legalContractReference : SecureHash
Unparsed reference to the natural language contract that this code is supposed to express (usually a hash of
+the contracts contents).
+
+
+
+
+Functions
+
+Inherited Functions
+
+
+
+
+verify
+
+abstract fun verify ( tx : TransactionForContract ) : Unit
Takes an object that represents a state transition, and ensures the inputs/outputs/commands make sense.
+Must throw an exception if theres a problem that should prevent state transition. Takes a single object
+rather than an argument so that additional data can be added without breaking binary compatibility with
+existing contract code.
+
+
+
+
+Inheritors
+
+
+
+
+Cash
+
+class Cash : OnLedgerAsset < Currency , Commands , State >
A cash transaction may split and merge money represented by a set of (issuer, depositRef) pairs, across multiple
+input and output states. Imagine a Bitcoin transaction but in which all UTXOs had a colour
+(a blend of issuer+depositRef) and you couldnt merge outputs of two colours together, but you COULD put them in
+the same transaction.
+
+
+
+
+CommodityContract
+
+class CommodityContract : OnLedgerAsset < Commodity , Commands , State >
A commodity contract represents an amount of some commodity, tracked on a distributed ledger. The design of this
+contract is intentionally similar to the Cash contract, and the same commands (issue, move, exit) apply, the
+differences are in representation of the underlying commodity. Issuer in this context means the party who has the
+commodity, or is otherwise responsible for delivering the commodity on demand, and the deposit reference is use for
+internal accounting by the issuer (it might be, for example, a warehouse and/or location within a warehouse).
+
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts.asset/-s-t-a-t-e.html b/docs/build/html/api/net.corda.contracts.asset/-s-t-a-t-e.html
new file mode 100644
index 0000000000..4d6fb082ab
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts.asset/-s-t-a-t-e.html
@@ -0,0 +1,16 @@
+
+
+STATE -
+
+
+
+net.corda.contracts.asset / STATE
+
+STATE
+
+val Amount < Issued < Currency > > . STATE : State
+An extension property that lets you get a cash state from an issued token, under the NullPublicKey
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts.asset/at.html b/docs/build/html/api/net.corda.contracts.asset/at.html
new file mode 100644
index 0000000000..ad830f2d1d
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts.asset/at.html
@@ -0,0 +1,15 @@
+
+
+at -
+
+
+
+net.corda.contracts.asset / at
+
+at
+
+infix fun < T > State < T > . at ( dueBefore : Instant ) : State < T >
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts.asset/between.html b/docs/build/html/api/net.corda.contracts.asset/between.html
new file mode 100644
index 0000000000..0fb77c91c4
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts.asset/between.html
@@ -0,0 +1,15 @@
+
+
+between -
+
+
+
+net.corda.contracts.asset / between
+
+between
+
+infix fun < T > State < T > . between ( parties : <ERROR CLASS> < Party , PublicKey > ) : State < T >
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts.asset/extract-amounts-due.html b/docs/build/html/api/net.corda.contracts.asset/extract-amounts-due.html
new file mode 100644
index 0000000000..b4ddfdb735
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts.asset/extract-amounts-due.html
@@ -0,0 +1,18 @@
+
+
+extractAmountsDue -
+
+
+
+net.corda.contracts.asset / extractAmountsDue
+
+extractAmountsDue
+
+fun < P > extractAmountsDue ( : Terms < P > , : Iterable < State < P > > ) : Map < <ERROR CLASS> < PublicKey , PublicKey > , Amount < Terms < P > > >
+Convert a list of settlement states into total from each obligor to a beneficiary.
+Return
+a map of obligor/beneficiary pairs to the balance due.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts.asset/index.html b/docs/build/html/api/net.corda.contracts.asset/index.html
new file mode 100644
index 0000000000..bce78e66b6
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts.asset/index.html
@@ -0,0 +1,226 @@
+
+
+net.corda.contracts.asset -
+
+
+
+net.corda.contracts.asset
+
+Package net.corda.contracts.asset
+Types
+
+
+
+
+Cash
+
+class Cash : OnLedgerAsset < Currency , Commands , State >
A cash transaction may split and merge money represented by a set of (issuer, depositRef) pairs, across multiple
+input and output states. Imagine a Bitcoin transaction but in which all UTXOs had a colour
+(a blend of issuer+depositRef) and you couldnt merge outputs of two colours together, but you COULD put them in
+the same transaction.
+
+
+
+
+CommodityContract
+
+class CommodityContract : OnLedgerAsset < Commodity , Commands , State >
A commodity contract represents an amount of some commodity, tracked on a distributed ledger. The design of this
+contract is intentionally similar to the Cash contract, and the same commands (issue, move, exit) apply, the
+differences are in representation of the underlying commodity. Issuer in this context means the party who has the
+commodity, or is otherwise responsible for delivering the commodity on demand, and the deposit reference is use for
+internal accounting by the issuer (it might be, for example, a warehouse and/or location within a warehouse).
+
+
+
+
+Obligation
+
+class Obligation < P > : Contract
An obligation contract commits the obligor to delivering a specified amount of a fungible asset (for example the
+Cash contract) at a specified future point in time. Settlement transactions may split and merge contracts across
+multiple input and output states. The goal of this design is to handle amounts owed, and these contracts are expected
+to be netted/merged, with settlement only for any remainder amount.
+
+
+
+
+OnLedgerAsset
+
+abstract class OnLedgerAsset < T : Any , C : CommandData , S : FungibleAsset < T > > : Contract
An asset transaction may split and merge assets represented by a set of (issuer, depositRef) pairs, across multiple
+input and output states. Imagine a Bitcoin transaction but in which all UTXOs had a colour (a blend of
+issuer+depositRef) and you couldnt merge outputs of two colours together, but you COULD put them in the same
+transaction.
+
+
+
+
+Extensions for External Classes
+
+Properties
+
+Functions
+
+
+
+
+at
+
+infix fun < T > State < T > . at ( dueBefore : Instant ) : State < T >
+
+
+
+between
+
+infix fun < T > State < T > . between ( parties : <ERROR CLASS> < Party , PublicKey > ) : State < T >
+
+
+
+extractAmountsDue
+
+fun < P > extractAmountsDue ( : Terms < P > , : Iterable < State < P > > ) : Map < <ERROR CLASS> < PublicKey , PublicKey > , Amount < Terms < P > > >
Convert a list of settlement states into total from each obligor to a beneficiary.
+
+
+
+
+issued by
+
+infix fun State . issued by ( party : Party ) : State
+infix fun State . issued by ( deposit : PartyAndReference ) : State
+infix fun < T > State < T > . issued by ( party : Party ) : State < T >
+
+
+
+issuedBy
+
+fun State . issuedBy ( party : Party ) : State
+fun State . issuedBy ( deposit : PartyAndReference ) : State
+fun < T > State < T > . issuedBy ( party : Party ) : State < T >
+
+
+
+netAmountsDue
+
+fun < P > netAmountsDue ( balances : Map < <ERROR CLASS> < PublicKey , PublicKey > , Amount < P > > ) : Map < <ERROR CLASS> < PublicKey , PublicKey > , Amount < P > >
Net off the amounts due between parties.
+
+
+
+
+owned by
+
+infix fun State . owned by ( owner : PublicKey ) : State
+infix fun < T > State < T > . owned by ( owner : PublicKey ) : State < T >
+
+
+
+ownedBy
+
+fun State . ownedBy ( owner : PublicKey ) : State
+fun < T > State < T > . ownedBy ( owner : PublicKey ) : State < T >
+
+
+
+sumAmountsDue
+
+fun < P > sumAmountsDue ( balances : Map < <ERROR CLASS> < PublicKey , PublicKey > , Amount < P > > ) : Map < PublicKey , Long >
Calculate the total balance movement for each party in the transaction, based off a summary of balances between
+each obligor and beneficiary.
+
+
+
+
+with deposit
+
+infix fun State . with deposit ( deposit : PartyAndReference ) : State
+
+
+
+withDeposit
+
+fun State . withDeposit ( deposit : PartyAndReference ) : State
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts.asset/issued by.html b/docs/build/html/api/net.corda.contracts.asset/issued by.html
new file mode 100644
index 0000000000..88d8929f07
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts.asset/issued by.html
@@ -0,0 +1,19 @@
+
+
+issued by -
+
+
+
+net.corda.contracts.asset / issued by
+
+issued by
+
+infix fun State . issued by ( party : Party ) : State
+
+infix fun State . issued by ( deposit : PartyAndReference ) : State
+
+infix fun < T > State < T > . issued by ( party : Party ) : State < T >
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts.asset/issued-by.html b/docs/build/html/api/net.corda.contracts.asset/issued-by.html
new file mode 100644
index 0000000000..8e50929885
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts.asset/issued-by.html
@@ -0,0 +1,19 @@
+
+
+issuedBy -
+
+
+
+net.corda.contracts.asset / issuedBy
+
+issuedBy
+
+fun State . issuedBy ( party : Party ) : State
+
+fun State . issuedBy ( deposit : PartyAndReference ) : State
+
+fun < T > State < T > . issuedBy ( party : Party ) : State < T >
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts.asset/kotlin.collections.-iterable/index.html b/docs/build/html/api/net.corda.contracts.asset/kotlin.collections.-iterable/index.html
new file mode 100644
index 0000000000..458267aec1
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts.asset/kotlin.collections.-iterable/index.html
@@ -0,0 +1,89 @@
+
+
+net.corda.contracts.asset.kotlin.collections.Iterable -
+
+
+
+net.corda.contracts.asset / kotlin.collections.Iterable
+
+Extensions for kotlin.collections.Iterable
+
+
+
+
+sumCash
+
+fun Iterable < ContractState > . sumCash ( ) : Amount < Issued < Currency > >
Sums the cash states in the list, throwing an exception if there are none, or if any of the cash
+states cannot be added together (i.e. are different currencies or issuers).
+
+
+
+
+sumCashBy
+
+fun Iterable < ContractState > . sumCashBy ( owner : PublicKey ) : Amount < Issued < Currency > >
Sums the cash states in the list belonging to a single owner, throwing an exception
+if there are none, or if any of the cash states cannot be added together (i.e. are
+different currencies or issuers).
+
+
+
+
+sumCashOrNull
+
+fun Iterable < ContractState > . sumCashOrNull ( ) : Amount < Issued < Currency > > ?
Sums the cash states in the list, returning null if there are none.
+
+
+
+
+sumCashOrZero
+
+fun Iterable < ContractState > . sumCashOrZero ( currency : Issued < Currency > ) : Amount < Issued < Currency > >
Sums the cash states in the list, returning zero of the given currency+issuer if there are none.
+
+
+
+
+sumCommodities
+
+fun Iterable < ContractState > . sumCommodities ( ) : <ERROR CLASS>
Sums the cash states in the list, throwing an exception if there are none, or if any of the cash
+states cannot be added together (i.e. are different currencies).
+
+
+
+
+sumCommoditiesOrNull
+
+fun Iterable < ContractState > . sumCommoditiesOrNull ( ) : <ERROR CLASS>
Sums the cash states in the list, returning null if there are none.
+
+
+
+
+sumCommoditiesOrZero
+
+fun Iterable < ContractState > . sumCommoditiesOrZero ( currency : Issued < Commodity > ) : <ERROR CLASS>
Sums the cash states in the list, returning zero of the given currency if there are none.
+
+
+
+
+sumObligations
+
+fun < P > Iterable < ContractState > . sumObligations ( ) : Amount < Issued < Terms < P > > >
Sums the obligation states in the list, throwing an exception if there are none. All state objects in the list are presumed to be nettable.
+
+
+
+
+sumObligationsOrNull
+
+fun < P > Iterable < ContractState > . sumObligationsOrNull ( ) : Amount < Issued < Terms < P > > > ?
Sums the obligation states in the list, returning null if there are none.
+
+
+
+
+sumObligationsOrZero
+
+fun < P > Iterable < ContractState > . sumObligationsOrZero ( issuanceDef : Issued < Terms < P > > ) : Amount < Issued < Terms < P > > >
Sums the obligation states in the list, returning zero of the given product if there are none.
+
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts.asset/kotlin.collections.-iterable/sum-cash-by.html b/docs/build/html/api/net.corda.contracts.asset/kotlin.collections.-iterable/sum-cash-by.html
new file mode 100644
index 0000000000..8ba47c2813
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts.asset/kotlin.collections.-iterable/sum-cash-by.html
@@ -0,0 +1,18 @@
+
+
+sumCashBy -
+
+
+
+net.corda.contracts.asset / kotlin.collections.Iterable / sumCashBy
+
+sumCashBy
+
+fun Iterable < ContractState > . sumCashBy ( owner : PublicKey ) : Amount < Issued < Currency > >
+Sums the cash states in the list belonging to a single owner, throwing an exception
+if there are none, or if any of the cash states cannot be added together (i.e. are
+different currencies or issuers).
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts.asset/kotlin.collections.-iterable/sum-cash-or-null.html b/docs/build/html/api/net.corda.contracts.asset/kotlin.collections.-iterable/sum-cash-or-null.html
new file mode 100644
index 0000000000..7548c6e932
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts.asset/kotlin.collections.-iterable/sum-cash-or-null.html
@@ -0,0 +1,16 @@
+
+
+sumCashOrNull -
+
+
+
+net.corda.contracts.asset / kotlin.collections.Iterable / sumCashOrNull
+
+sumCashOrNull
+
+fun Iterable < ContractState > . sumCashOrNull ( ) : Amount < Issued < Currency > > ?
+Sums the cash states in the list, returning null if there are none.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts.asset/kotlin.collections.-iterable/sum-cash-or-zero.html b/docs/build/html/api/net.corda.contracts.asset/kotlin.collections.-iterable/sum-cash-or-zero.html
new file mode 100644
index 0000000000..3a143ee61d
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts.asset/kotlin.collections.-iterable/sum-cash-or-zero.html
@@ -0,0 +1,16 @@
+
+
+sumCashOrZero -
+
+
+
+net.corda.contracts.asset / kotlin.collections.Iterable / sumCashOrZero
+
+sumCashOrZero
+
+fun Iterable < ContractState > . sumCashOrZero ( currency : Issued < Currency > ) : Amount < Issued < Currency > >
+Sums the cash states in the list, returning zero of the given currency+issuer if there are none.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts.asset/kotlin.collections.-iterable/sum-cash.html b/docs/build/html/api/net.corda.contracts.asset/kotlin.collections.-iterable/sum-cash.html
new file mode 100644
index 0000000000..7e58a69700
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts.asset/kotlin.collections.-iterable/sum-cash.html
@@ -0,0 +1,17 @@
+
+
+sumCash -
+
+
+
+net.corda.contracts.asset / kotlin.collections.Iterable / sumCash
+
+sumCash
+
+fun Iterable < ContractState > . sumCash ( ) : Amount < Issued < Currency > >
+Sums the cash states in the list, throwing an exception if there are none, or if any of the cash
+states cannot be added together (i.e. are different currencies or issuers).
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts.asset/kotlin.collections.-iterable/sum-commodities-or-null.html b/docs/build/html/api/net.corda.contracts.asset/kotlin.collections.-iterable/sum-commodities-or-null.html
new file mode 100644
index 0000000000..98a0d0942a
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts.asset/kotlin.collections.-iterable/sum-commodities-or-null.html
@@ -0,0 +1,16 @@
+
+
+sumCommoditiesOrNull -
+
+
+
+net.corda.contracts.asset / kotlin.collections.Iterable / sumCommoditiesOrNull
+
+sumCommoditiesOrNull
+
+fun Iterable < ContractState > . sumCommoditiesOrNull ( ) : <ERROR CLASS>
+Sums the cash states in the list, returning null if there are none.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts.asset/kotlin.collections.-iterable/sum-commodities-or-zero.html b/docs/build/html/api/net.corda.contracts.asset/kotlin.collections.-iterable/sum-commodities-or-zero.html
new file mode 100644
index 0000000000..c2b1bc98b6
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts.asset/kotlin.collections.-iterable/sum-commodities-or-zero.html
@@ -0,0 +1,16 @@
+
+
+sumCommoditiesOrZero -
+
+
+
+net.corda.contracts.asset / kotlin.collections.Iterable / sumCommoditiesOrZero
+
+sumCommoditiesOrZero
+
+fun Iterable < ContractState > . sumCommoditiesOrZero ( currency : Issued < Commodity > ) : <ERROR CLASS>
+Sums the cash states in the list, returning zero of the given currency if there are none.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts.asset/kotlin.collections.-iterable/sum-commodities.html b/docs/build/html/api/net.corda.contracts.asset/kotlin.collections.-iterable/sum-commodities.html
new file mode 100644
index 0000000000..c00faae079
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts.asset/kotlin.collections.-iterable/sum-commodities.html
@@ -0,0 +1,17 @@
+
+
+sumCommodities -
+
+
+
+net.corda.contracts.asset / kotlin.collections.Iterable / sumCommodities
+
+sumCommodities
+
+fun Iterable < ContractState > . sumCommodities ( ) : <ERROR CLASS>
+Sums the cash states in the list, throwing an exception if there are none, or if any of the cash
+states cannot be added together (i.e. are different currencies).
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts.asset/kotlin.collections.-iterable/sum-obligations-or-null.html b/docs/build/html/api/net.corda.contracts.asset/kotlin.collections.-iterable/sum-obligations-or-null.html
new file mode 100644
index 0000000000..ae1e59a963
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts.asset/kotlin.collections.-iterable/sum-obligations-or-null.html
@@ -0,0 +1,16 @@
+
+
+sumObligationsOrNull -
+
+
+
+net.corda.contracts.asset / kotlin.collections.Iterable / sumObligationsOrNull
+
+sumObligationsOrNull
+
+fun < P > Iterable < ContractState > . sumObligationsOrNull ( ) : Amount < Issued < Terms < P > > > ?
+Sums the obligation states in the list, returning null if there are none.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts.asset/kotlin.collections.-iterable/sum-obligations-or-zero.html b/docs/build/html/api/net.corda.contracts.asset/kotlin.collections.-iterable/sum-obligations-or-zero.html
new file mode 100644
index 0000000000..b78f61df92
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts.asset/kotlin.collections.-iterable/sum-obligations-or-zero.html
@@ -0,0 +1,16 @@
+
+
+sumObligationsOrZero -
+
+
+
+net.corda.contracts.asset / kotlin.collections.Iterable / sumObligationsOrZero
+
+sumObligationsOrZero
+
+fun < P > Iterable < ContractState > . sumObligationsOrZero ( issuanceDef : Issued < Terms < P > > ) : Amount < Issued < Terms < P > > >
+Sums the obligation states in the list, returning zero of the given product if there are none.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts.asset/kotlin.collections.-iterable/sum-obligations.html b/docs/build/html/api/net.corda.contracts.asset/kotlin.collections.-iterable/sum-obligations.html
new file mode 100644
index 0000000000..4ff0c8edcc
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts.asset/kotlin.collections.-iterable/sum-obligations.html
@@ -0,0 +1,16 @@
+
+
+sumObligations -
+
+
+
+net.corda.contracts.asset / kotlin.collections.Iterable / sumObligations
+
+sumObligations
+
+fun < P > Iterable < ContractState > . sumObligations ( ) : Amount < Issued < Terms < P > > >
+Sums the obligation states in the list, throwing an exception if there are none. All state objects in the list are presumed to be nettable.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts.asset/net-amounts-due.html b/docs/build/html/api/net.corda.contracts.asset/net-amounts-due.html
new file mode 100644
index 0000000000..ce04f22ab5
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts.asset/net-amounts-due.html
@@ -0,0 +1,16 @@
+
+
+netAmountsDue -
+
+
+
+net.corda.contracts.asset / netAmountsDue
+
+netAmountsDue
+
+fun < P > netAmountsDue ( balances : Map < <ERROR CLASS> < PublicKey , PublicKey > , Amount < P > > ) : Map < <ERROR CLASS> < PublicKey , PublicKey > , Amount < P > >
+Net off the amounts due between parties.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts.asset/owned by.html b/docs/build/html/api/net.corda.contracts.asset/owned by.html
new file mode 100644
index 0000000000..3430ace5e0
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts.asset/owned by.html
@@ -0,0 +1,17 @@
+
+
+owned by -
+
+
+
+net.corda.contracts.asset / owned by
+
+owned by
+
+infix fun State . owned by ( owner : PublicKey ) : State
+
+infix fun < T > State < T > . owned by ( owner : PublicKey ) : State < T >
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts.asset/owned-by.html b/docs/build/html/api/net.corda.contracts.asset/owned-by.html
new file mode 100644
index 0000000000..705f042f8b
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts.asset/owned-by.html
@@ -0,0 +1,17 @@
+
+
+ownedBy -
+
+
+
+net.corda.contracts.asset / ownedBy
+
+ownedBy
+
+fun State . ownedBy ( owner : PublicKey ) : State
+
+fun < T > State < T > . ownedBy ( owner : PublicKey ) : State < T >
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts.asset/sum-amounts-due.html b/docs/build/html/api/net.corda.contracts.asset/sum-amounts-due.html
new file mode 100644
index 0000000000..02b397e7d6
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts.asset/sum-amounts-due.html
@@ -0,0 +1,21 @@
+
+
+sumAmountsDue -
+
+
+
+net.corda.contracts.asset / sumAmountsDue
+
+sumAmountsDue
+
+fun < P > sumAmountsDue ( balances : Map < <ERROR CLASS> < PublicKey , PublicKey > , Amount < P > > ) : Map < PublicKey , Long >
+Calculate the total balance movement for each party in the transaction, based off a summary of balances between
+each obligor and beneficiary.
+Parameters
+
+balances
- payments due, indexed by obligor and beneficiary. Zero balances are stripped from the map before being
+returned.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts.asset/with deposit.html b/docs/build/html/api/net.corda.contracts.asset/with deposit.html
new file mode 100644
index 0000000000..e307f58b01
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts.asset/with deposit.html
@@ -0,0 +1,15 @@
+
+
+with deposit -
+
+
+
+net.corda.contracts.asset / with deposit
+
+with deposit
+
+infix fun State . with deposit ( deposit : PartyAndReference ) : State
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts.asset/with-deposit.html b/docs/build/html/api/net.corda.contracts.asset/with-deposit.html
new file mode 100644
index 0000000000..ac1a15834e
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts.asset/with-deposit.html
@@ -0,0 +1,15 @@
+
+
+withDeposit -
+
+
+
+net.corda.contracts.asset / withDeposit
+
+withDeposit
+
+fun State . withDeposit ( deposit : PartyAndReference ) : State
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts.clause/-abstract-conserve-amount/-init-.html b/docs/build/html/api/net.corda.contracts.clause/-abstract-conserve-amount/-init-.html
new file mode 100644
index 0000000000..4a64c4dad2
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts.clause/-abstract-conserve-amount/-init-.html
@@ -0,0 +1,17 @@
+
+
+AbstractConserveAmount. -
+
+
+
+net.corda.contracts.clause / AbstractConserveAmount / <init>
+
+<init>
+AbstractConserveAmount ( )
+Standardised clause for checking input/output balances of fungible assets. Requires that a
+Move command is provided, and errors if absent. Must be the last clause under a grouping clause;
+errors on no-match, ends on match.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts.clause/-abstract-conserve-amount/generate-exit.html b/docs/build/html/api/net.corda.contracts.clause/-abstract-conserve-amount/generate-exit.html
new file mode 100644
index 0000000000..055e1f5d39
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts.clause/-abstract-conserve-amount/generate-exit.html
@@ -0,0 +1,28 @@
+
+
+AbstractConserveAmount.generateExit -
+
+
+
+net.corda.contracts.clause / AbstractConserveAmount / generateExit
+
+generateExit
+
+fun generateExit ( tx : TransactionBuilder , amountIssued : Amount < Issued < T > > , assetStates : List < StateAndRef < S > > , deriveState : ( TransactionState < S > , Amount < Issued < T > > , PublicKey ) -> TransactionState < S > , generateMoveCommand : ( ) -> CommandData , generateExitCommand : ( Amount < Issued < T > > ) -> CommandData ) : PublicKey
+Generate an transaction exiting fungible assets from the ledger.
+Parameters
+
+tx
- transaction builder to add states and commands to.
+
+
+amountIssued
- the amount to be exited, represented as a quantity of issued currency.
+
+
+assetStates
- the asset states to take funds from. No checks are done about ownership of these states, it is
+the responsibility of the caller to check that they do not attempt to exit funds held by others.
+Return
+the public key of the assets issuer, who must sign the transaction for it to be valid.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts.clause/-abstract-conserve-amount/index.html b/docs/build/html/api/net.corda.contracts.clause/-abstract-conserve-amount/index.html
new file mode 100644
index 0000000000..92eb5dfdd3
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts.clause/-abstract-conserve-amount/index.html
@@ -0,0 +1,107 @@
+
+
+AbstractConserveAmount -
+
+
+
+net.corda.contracts.clause / AbstractConserveAmount
+
+AbstractConserveAmount
+abstract class AbstractConserveAmount < S : FungibleAsset < T > , C : CommandData , T : Any > : Clause < S , C , Issued < T > >
+Standardised clause for checking input/output balances of fungible assets. Requires that a
+Move command is provided, and errors if absent. Must be the last clause under a grouping clause;
+errors on no-match, ends on match.
+
+
+Constructors
+
+
+
+
+<init>
+
+AbstractConserveAmount ( )
Standardised clause for checking input/output balances of fungible assets. Requires that a
+Move command is provided, and errors if absent. Must be the last clause under a grouping clause;
+errors on no-match, ends on match.
+
+
+
+
+Inherited Properties
+
+Functions
+
+
+
+
+generateExit
+
+fun generateExit ( tx : TransactionBuilder , amountIssued : Amount < Issued < T > > , assetStates : List < StateAndRef < S > > , deriveState : ( TransactionState < S > , Amount < Issued < T > > , PublicKey ) -> TransactionState < S > , generateMoveCommand : ( ) -> CommandData , generateExitCommand : ( Amount < Issued < T > > ) -> CommandData ) : PublicKey
Generate an transaction exiting fungible assets from the ledger.
+
+
+
+
+toString
+
+open fun toString ( ) : String
+
+
+
+verify
+
+open fun verify ( tx : TransactionForContract , inputs : List < S > , outputs : List < S > , commands : List < AuthenticatedObject < C > > , groupingKey : Issued < T > ? ) : Set < C >
Verify the transaction matches the conditions from this clause. For example, a "no zero amount output" clause
+would check each of the output states that it applies to, looking for a zero amount, and throw IllegalStateException
+if any matched.
+
+
+
+
+Extension Functions
+
+Inheritors
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts.clause/-abstract-conserve-amount/to-string.html b/docs/build/html/api/net.corda.contracts.clause/-abstract-conserve-amount/to-string.html
new file mode 100644
index 0000000000..3b44d82da3
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts.clause/-abstract-conserve-amount/to-string.html
@@ -0,0 +1,15 @@
+
+
+AbstractConserveAmount.toString -
+
+
+
+net.corda.contracts.clause / AbstractConserveAmount / toString
+
+toString
+
+open fun toString ( ) : String
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts.clause/-abstract-conserve-amount/verify.html b/docs/build/html/api/net.corda.contracts.clause/-abstract-conserve-amount/verify.html
new file mode 100644
index 0000000000..a6250da53c
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts.clause/-abstract-conserve-amount/verify.html
@@ -0,0 +1,43 @@
+
+
+AbstractConserveAmount.verify -
+
+
+
+net.corda.contracts.clause / AbstractConserveAmount / verify
+
+verify
+
+open fun verify ( tx : TransactionForContract , inputs : List < S > , outputs : List < S > , commands : List < AuthenticatedObject < C > > , groupingKey : Issued < T > ? ) : Set < C >
+Verify the transaction matches the conditions from this clause. For example, a "no zero amount output" clause
+would check each of the output states that it applies to, looking for a zero amount, and throw IllegalStateException
+if any matched.
+Parameters
+
+tx
- the full transaction being verified. This is provided for cases where clauses need to access
+states or commands outside of their normal scope.
+
+
+inputs
- input states which are relevant to this clause. By default this is the set passed into verifyClause ,
+but may be further reduced by clauses such as GroupClauseVerifier .
+
+
+outputs
- output states which are relevant to this clause. By default this is the set passed into verifyClause ,
+but may be further reduced by clauses such as GroupClauseVerifier .
+
+
+commands
- commands which are relevant to this clause. By default this is the set passed into verifyClause ,
+but may be further reduced by clauses such as GroupClauseVerifier .
+
+
+groupingKey
- a grouping key applied to states and commands, where applicable. Taken from
+TransactionForContract.InOutGroup .
+Return
+the set of commands that are consumed IF this clause is matched, and cannot be used to match a
+later clause. This would normally be all commands matching "requiredCommands" for this clause, but some
+verify() functions may do further filtering on possible matches, and return a subset. This may also include
+commands that were not required (for example the Exit command for fungible assets is optional).
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts.clause/-abstract-issue/-init-.html b/docs/build/html/api/net.corda.contracts.clause/-abstract-issue/-init-.html
new file mode 100644
index 0000000000..b9ec7162c5
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts.clause/-abstract-issue/-init-.html
@@ -0,0 +1,29 @@
+
+
+AbstractIssue. -
+
+
+
+net.corda.contracts.clause / AbstractIssue / <init>
+
+<init>
+AbstractIssue ( sum : List < S > . ( ) -> Amount < Issued < T > > , sumOrZero : List < S > . ( Issued < T > ) -> Amount < Issued < T > > )
+Standard issue clause for contracts that issue fungible assets.
+Parameters
+
+S
- the type of contract state which is being issued.
+
+
+T
- the token underlying the issued state.
+
+
+sum
- function to convert a list of states into an amount of the token. Must error if there are no states in
+the list.
+
+
+sumOrZero
- function to convert a list of states into an amount of the token, and returns zero if there are
+no states in the list. Takes in an instance of the token definition for constructing the zero amount if needed.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts.clause/-abstract-issue/index.html b/docs/build/html/api/net.corda.contracts.clause/-abstract-issue/index.html
new file mode 100644
index 0000000000..04ef814bb9
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts.clause/-abstract-issue/index.html
@@ -0,0 +1,127 @@
+
+
+AbstractIssue -
+
+
+
+net.corda.contracts.clause / AbstractIssue
+
+AbstractIssue
+abstract class AbstractIssue < in S : ContractState , C : CommandData , T : Any > : Clause < S , C , Issued < T > >
+Standard issue clause for contracts that issue fungible assets.
+Parameters
+
+S
- the type of contract state which is being issued.
+
+
+T
- the token underlying the issued state.
+
+
+sum
- function to convert a list of states into an amount of the token. Must error if there are no states in
+the list.
+
+
+sumOrZero
- function to convert a list of states into an amount of the token, and returns zero if there are
+no states in the list. Takes in an instance of the token definition for constructing the zero amount if needed.
+
+
+Constructors
+
+
+
+
+<init>
+
+AbstractIssue ( sum : List < S > . ( ) -> Amount < Issued < T > > , sumOrZero : List < S > . ( Issued < T > ) -> Amount < Issued < T > > )
Standard issue clause for contracts that issue fungible assets.
+
+
+
+
+Properties
+
+Inherited Properties
+
+Functions
+
+
+
+
+verify
+
+open fun verify ( tx : TransactionForContract , inputs : List < S > , outputs : List < S > , commands : List < AuthenticatedObject < C > > , groupingKey : Issued < T > ? ) : Set < C >
Verify the transaction matches the conditions from this clause. For example, a "no zero amount output" clause
+would check each of the output states that it applies to, looking for a zero amount, and throw IllegalStateException
+if any matched.
+
+
+
+
+Extension Functions
+
+Inheritors
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts.clause/-abstract-issue/sum-or-zero.html b/docs/build/html/api/net.corda.contracts.clause/-abstract-issue/sum-or-zero.html
new file mode 100644
index 0000000000..926a8975fb
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts.clause/-abstract-issue/sum-or-zero.html
@@ -0,0 +1,15 @@
+
+
+AbstractIssue.sumOrZero -
+
+
+
+net.corda.contracts.clause / AbstractIssue / sumOrZero
+
+sumOrZero
+
+val sumOrZero : List < S > . ( Issued < T > ) -> Amount < Issued < T > >
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts.clause/-abstract-issue/sum.html b/docs/build/html/api/net.corda.contracts.clause/-abstract-issue/sum.html
new file mode 100644
index 0000000000..e5d8fc3dc4
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts.clause/-abstract-issue/sum.html
@@ -0,0 +1,15 @@
+
+
+AbstractIssue.sum -
+
+
+
+net.corda.contracts.clause / AbstractIssue / sum
+
+sum
+
+val sum : List < S > . ( ) -> Amount < Issued < T > >
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts.clause/-abstract-issue/verify.html b/docs/build/html/api/net.corda.contracts.clause/-abstract-issue/verify.html
new file mode 100644
index 0000000000..82e80067a1
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts.clause/-abstract-issue/verify.html
@@ -0,0 +1,43 @@
+
+
+AbstractIssue.verify -
+
+
+
+net.corda.contracts.clause / AbstractIssue / verify
+
+verify
+
+open fun verify ( tx : TransactionForContract , inputs : List < S > , outputs : List < S > , commands : List < AuthenticatedObject < C > > , groupingKey : Issued < T > ? ) : Set < C >
+Verify the transaction matches the conditions from this clause. For example, a "no zero amount output" clause
+would check each of the output states that it applies to, looking for a zero amount, and throw IllegalStateException
+if any matched.
+Parameters
+
+tx
- the full transaction being verified. This is provided for cases where clauses need to access
+states or commands outside of their normal scope.
+
+
+inputs
- input states which are relevant to this clause. By default this is the set passed into verifyClause ,
+but may be further reduced by clauses such as GroupClauseVerifier .
+
+
+outputs
- output states which are relevant to this clause. By default this is the set passed into verifyClause ,
+but may be further reduced by clauses such as GroupClauseVerifier .
+
+
+commands
- commands which are relevant to this clause. By default this is the set passed into verifyClause ,
+but may be further reduced by clauses such as GroupClauseVerifier .
+
+
+groupingKey
- a grouping key applied to states and commands, where applicable. Taken from
+TransactionForContract.InOutGroup .
+Return
+the set of commands that are consumed IF this clause is matched, and cannot be used to match a
+later clause. This would normally be all commands matching "requiredCommands" for this clause, but some
+verify() functions may do further filtering on possible matches, and return a subset. This may also include
+commands that were not required (for example the Exit command for fungible assets is optional).
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts.clause/-bilateral-net-state/-init-.html b/docs/build/html/api/net.corda.contracts.clause/-bilateral-net-state/-init-.html
new file mode 100644
index 0000000000..b6c82c8ea2
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts.clause/-bilateral-net-state/-init-.html
@@ -0,0 +1,17 @@
+
+
+BilateralNetState. -
+
+
+
+net.corda.contracts.clause / BilateralNetState / <init>
+
+<init>
+BilateralNetState ( partyKeys : Set < PublicKey > , template : Terms < P > )
+Subset of state, containing the elements which must match for two obligation transactions to be nettable.
+If two obligation state objects produce equal bilateral net states, they are considered safe to net directly.
+Bilateral states are used in close-out netting.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts.clause/-bilateral-net-state/index.html b/docs/build/html/api/net.corda.contracts.clause/-bilateral-net-state/index.html
new file mode 100644
index 0000000000..ff9d9dc33a
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts.clause/-bilateral-net-state/index.html
@@ -0,0 +1,48 @@
+
+
+BilateralNetState -
+
+
+
+net.corda.contracts.clause / BilateralNetState
+
+BilateralNetState
+data class BilateralNetState < P > : NetState < P >
+Subset of state, containing the elements which must match for two obligation transactions to be nettable.
+If two obligation state objects produce equal bilateral net states, they are considered safe to net directly.
+Bilateral states are used in close-out netting.
+
+
+Constructors
+
+
+
+
+<init>
+
+BilateralNetState ( partyKeys : Set < PublicKey > , template : Terms < P > )
Subset of state, containing the elements which must match for two obligation transactions to be nettable.
+If two obligation state objects produce equal bilateral net states, they are considered safe to net directly.
+Bilateral states are used in close-out netting.
+
+
+
+
+Properties
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts.clause/-bilateral-net-state/party-keys.html b/docs/build/html/api/net.corda.contracts.clause/-bilateral-net-state/party-keys.html
new file mode 100644
index 0000000000..af39f6ed3a
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts.clause/-bilateral-net-state/party-keys.html
@@ -0,0 +1,15 @@
+
+
+BilateralNetState.partyKeys -
+
+
+
+net.corda.contracts.clause / BilateralNetState / partyKeys
+
+partyKeys
+
+val partyKeys : Set < PublicKey >
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts.clause/-bilateral-net-state/template.html b/docs/build/html/api/net.corda.contracts.clause/-bilateral-net-state/template.html
new file mode 100644
index 0000000000..27b137469e
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts.clause/-bilateral-net-state/template.html
@@ -0,0 +1,16 @@
+
+
+BilateralNetState.template -
+
+
+
+net.corda.contracts.clause / BilateralNetState / template
+
+template
+
+val template : Terms < P >
+Overrides NetState.template
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts.clause/-multilateral-net-state/-init-.html b/docs/build/html/api/net.corda.contracts.clause/-multilateral-net-state/-init-.html
new file mode 100644
index 0000000000..ccee60b36e
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts.clause/-multilateral-net-state/-init-.html
@@ -0,0 +1,20 @@
+
+
+MultilateralNetState. -
+
+
+
+net.corda.contracts.clause / MultilateralNetState / <init>
+
+<init>
+MultilateralNetState ( template : Terms < P > )
+Subset of state, containing the elements which must match for two or more obligation transactions to be candidates
+for netting (this does not include the checks to enforce that everyones amounts received are the same at the end,
+which is handled under the verify() function).
+In comparison to BilateralNetState , this doesnt include the parties keys, as ensuring balances match on
+input and output is handled elsewhere.
+Used in cases where all parties (or their proxies) are signing, such as central clearing.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts.clause/-multilateral-net-state/index.html b/docs/build/html/api/net.corda.contracts.clause/-multilateral-net-state/index.html
new file mode 100644
index 0000000000..59bd106bee
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts.clause/-multilateral-net-state/index.html
@@ -0,0 +1,48 @@
+
+
+MultilateralNetState -
+
+
+
+net.corda.contracts.clause / MultilateralNetState
+
+MultilateralNetState
+data class MultilateralNetState < P > : NetState < P >
+Subset of state, containing the elements which must match for two or more obligation transactions to be candidates
+for netting (this does not include the checks to enforce that everyones amounts received are the same at the end,
+which is handled under the verify() function).
+In comparison to BilateralNetState , this doesnt include the parties keys, as ensuring balances match on
+input and output is handled elsewhere.
+Used in cases where all parties (or their proxies) are signing, such as central clearing.
+
+
+Constructors
+
+
+
+
+<init>
+
+MultilateralNetState ( template : Terms < P > )
Subset of state, containing the elements which must match for two or more obligation transactions to be candidates
+for netting (this does not include the checks to enforce that everyones amounts received are the same at the end,
+which is handled under the verify() function).
+In comparison to BilateralNetState , this doesnt include the parties keys, as ensuring balances match on
+input and output is handled elsewhere.
+Used in cases where all parties (or their proxies) are signing, such as central clearing.
+
+
+
+
+Properties
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts.clause/-multilateral-net-state/template.html b/docs/build/html/api/net.corda.contracts.clause/-multilateral-net-state/template.html
new file mode 100644
index 0000000000..5b99a508da
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts.clause/-multilateral-net-state/template.html
@@ -0,0 +1,16 @@
+
+
+MultilateralNetState.template -
+
+
+
+net.corda.contracts.clause / MultilateralNetState / template
+
+template
+
+val template : Terms < P >
+Overrides NetState.template
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts.clause/-net-clause/-init-.html b/docs/build/html/api/net.corda.contracts.clause/-net-clause/-init-.html
new file mode 100644
index 0000000000..2442fd37ea
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts.clause/-net-clause/-init-.html
@@ -0,0 +1,15 @@
+
+
+NetClause. -
+
+
+
+net.corda.contracts.clause / NetClause / <init>
+
+<init>
+NetClause ( )
+Clause for netting contract states. Currently only supports obligation contract.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts.clause/-net-clause/index.html b/docs/build/html/api/net.corda.contracts.clause/-net-clause/index.html
new file mode 100644
index 0000000000..93818c48bb
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts.clause/-net-clause/index.html
@@ -0,0 +1,84 @@
+
+
+NetClause -
+
+
+
+net.corda.contracts.clause / NetClause
+
+NetClause
+open class NetClause < C : CommandData , P > : Clause < ContractState , C , Unit >
+Clause for netting contract states. Currently only supports obligation contract.
+
+
+Constructors
+
+
+
+
+<init>
+
+NetClause ( )
Clause for netting contract states. Currently only supports obligation contract.
+
+
+
+
+Properties
+
+Functions
+
+
+
+
+verify
+
+open fun verify ( tx : TransactionForContract , inputs : List < ContractState > , outputs : List < ContractState > , commands : List < AuthenticatedObject < C > > , groupingKey : Unit ? ) : Set < C >
Verify the transaction matches the conditions from this clause. For example, a "no zero amount output" clause
+would check each of the output states that it applies to, looking for a zero amount, and throw IllegalStateException
+if any matched.
+
+
+
+
+verifyNetCommand
+
+fun verifyNetCommand ( inputs : List < State < P > > , outputs : List < State < P > > , command : AuthenticatedObject < NetCommand > , netState : NetState < P > ) : Unit
Verify a netting command. This handles both close-out and payment netting.
+
+
+
+
+Extension Functions
+
+Inheritors
+
+
+
+
+Net
+
+class Net < C : CommandData , P > : NetClause < C , P >
Clause for supporting netting of obligations.
+
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts.clause/-net-clause/required-commands.html b/docs/build/html/api/net.corda.contracts.clause/-net-clause/required-commands.html
new file mode 100644
index 0000000000..1baa37eddb
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts.clause/-net-clause/required-commands.html
@@ -0,0 +1,17 @@
+
+
+NetClause.requiredCommands -
+
+
+
+net.corda.contracts.clause / NetClause / requiredCommands
+
+requiredCommands
+
+open val requiredCommands : Set < Class < out CommandData > >
+Overrides Clause.requiredCommands
+Determine whether this clause runs or not
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts.clause/-net-clause/verify-net-command.html b/docs/build/html/api/net.corda.contracts.clause/-net-clause/verify-net-command.html
new file mode 100644
index 0000000000..16f9b0e848
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts.clause/-net-clause/verify-net-command.html
@@ -0,0 +1,16 @@
+
+
+NetClause.verifyNetCommand -
+
+
+
+net.corda.contracts.clause / NetClause / verifyNetCommand
+
+verifyNetCommand
+
+fun verifyNetCommand ( inputs : List < State < P > > , outputs : List < State < P > > , command : AuthenticatedObject < NetCommand > , netState : NetState < P > ) : Unit
+Verify a netting command. This handles both close-out and payment netting.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts.clause/-net-clause/verify.html b/docs/build/html/api/net.corda.contracts.clause/-net-clause/verify.html
new file mode 100644
index 0000000000..617227c15a
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts.clause/-net-clause/verify.html
@@ -0,0 +1,43 @@
+
+
+NetClause.verify -
+
+
+
+net.corda.contracts.clause / NetClause / verify
+
+verify
+
+open fun verify ( tx : TransactionForContract , inputs : List < ContractState > , outputs : List < ContractState > , commands : List < AuthenticatedObject < C > > , groupingKey : Unit ? ) : Set < C >
+Verify the transaction matches the conditions from this clause. For example, a "no zero amount output" clause
+would check each of the output states that it applies to, looking for a zero amount, and throw IllegalStateException
+if any matched.
+Parameters
+
+tx
- the full transaction being verified. This is provided for cases where clauses need to access
+states or commands outside of their normal scope.
+
+
+inputs
- input states which are relevant to this clause. By default this is the set passed into verifyClause ,
+but may be further reduced by clauses such as GroupClauseVerifier .
+
+
+outputs
- output states which are relevant to this clause. By default this is the set passed into verifyClause ,
+but may be further reduced by clauses such as GroupClauseVerifier .
+
+
+commands
- commands which are relevant to this clause. By default this is the set passed into verifyClause ,
+but may be further reduced by clauses such as GroupClauseVerifier .
+
+
+groupingKey
- a grouping key applied to states and commands, where applicable. Taken from
+TransactionForContract.InOutGroup .
+Return
+the set of commands that are consumed IF this clause is matched, and cannot be used to match a
+later clause. This would normally be all commands matching "requiredCommands" for this clause, but some
+verify() functions may do further filtering on possible matches, and return a subset. This may also include
+commands that were not required (for example the Exit command for fungible assets is optional).
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts.clause/-net-state/index.html b/docs/build/html/api/net.corda.contracts.clause/-net-state/index.html
new file mode 100644
index 0000000000..a8d374d37d
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts.clause/-net-state/index.html
@@ -0,0 +1,53 @@
+
+
+NetState -
+
+
+
+net.corda.contracts.clause / NetState
+
+NetState
+interface NetState < P >
+Common interface for the state subsets used when determining nettability of two or more states. Exposes the
+underlying issued thing.
+
+
+Properties
+
+Inheritors
+
+
+
+
+BilateralNetState
+
+data class BilateralNetState < P > : NetState < P >
Subset of state, containing the elements which must match for two obligation transactions to be nettable.
+If two obligation state objects produce equal bilateral net states, they are considered safe to net directly.
+Bilateral states are used in close-out netting.
+
+
+
+
+MultilateralNetState
+
+data class MultilateralNetState < P > : NetState < P >
Subset of state, containing the elements which must match for two or more obligation transactions to be candidates
+for netting (this does not include the checks to enforce that everyones amounts received are the same at the end,
+which is handled under the verify() function).
+In comparison to BilateralNetState , this doesnt include the parties keys, as ensuring balances match on
+input and output is handled elsewhere.
+Used in cases where all parties (or their proxies) are signing, such as central clearing.
+
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts.clause/-net-state/template.html b/docs/build/html/api/net.corda.contracts.clause/-net-state/template.html
new file mode 100644
index 0000000000..4c43f80c08
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts.clause/-net-state/template.html
@@ -0,0 +1,15 @@
+
+
+NetState.template -
+
+
+
+net.corda.contracts.clause / NetState / template
+
+template
+
+abstract val template : Terms < P >
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts.clause/-no-zero-sized-outputs/-init-.html b/docs/build/html/api/net.corda.contracts.clause/-no-zero-sized-outputs/-init-.html
new file mode 100644
index 0000000000..5ee845783c
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts.clause/-no-zero-sized-outputs/-init-.html
@@ -0,0 +1,16 @@
+
+
+NoZeroSizedOutputs. -
+
+
+
+net.corda.contracts.clause / NoZeroSizedOutputs / <init>
+
+<init>
+NoZeroSizedOutputs ( )
+Clause for fungible asset contracts, which enforces that no output state should have
+a balance of zero.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts.clause/-no-zero-sized-outputs/index.html b/docs/build/html/api/net.corda.contracts.clause/-no-zero-sized-outputs/index.html
new file mode 100644
index 0000000000..8c475366ef
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts.clause/-no-zero-sized-outputs/index.html
@@ -0,0 +1,73 @@
+
+
+NoZeroSizedOutputs -
+
+
+
+net.corda.contracts.clause / NoZeroSizedOutputs
+
+NoZeroSizedOutputs
+open class NoZeroSizedOutputs < in S : FungibleAsset < T > , C : CommandData , T : Any > : Clause < S , C , Issued < T > >
+Clause for fungible asset contracts, which enforces that no output state should have
+a balance of zero.
+
+
+Constructors
+
+
+
+
+<init>
+
+NoZeroSizedOutputs ( )
Clause for fungible asset contracts, which enforces that no output state should have
+a balance of zero.
+
+
+
+
+Inherited Properties
+
+Functions
+
+
+
+
+toString
+
+open fun toString ( ) : String
+
+
+
+verify
+
+open fun verify ( tx : TransactionForContract , inputs : List < S > , outputs : List < S > , commands : List < AuthenticatedObject < C > > , groupingKey : Issued < T > ? ) : Set < C >
Verify the transaction matches the conditions from this clause. For example, a "no zero amount output" clause
+would check each of the output states that it applies to, looking for a zero amount, and throw IllegalStateException
+if any matched.
+
+
+
+
+Extension Functions
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts.clause/-no-zero-sized-outputs/to-string.html b/docs/build/html/api/net.corda.contracts.clause/-no-zero-sized-outputs/to-string.html
new file mode 100644
index 0000000000..0273ce1fb5
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts.clause/-no-zero-sized-outputs/to-string.html
@@ -0,0 +1,15 @@
+
+
+NoZeroSizedOutputs.toString -
+
+
+
+net.corda.contracts.clause / NoZeroSizedOutputs / toString
+
+toString
+
+open fun toString ( ) : String
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts.clause/-no-zero-sized-outputs/verify.html b/docs/build/html/api/net.corda.contracts.clause/-no-zero-sized-outputs/verify.html
new file mode 100644
index 0000000000..7e491bea3f
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts.clause/-no-zero-sized-outputs/verify.html
@@ -0,0 +1,43 @@
+
+
+NoZeroSizedOutputs.verify -
+
+
+
+net.corda.contracts.clause / NoZeroSizedOutputs / verify
+
+verify
+
+open fun verify ( tx : TransactionForContract , inputs : List < S > , outputs : List < S > , commands : List < AuthenticatedObject < C > > , groupingKey : Issued < T > ? ) : Set < C >
+Verify the transaction matches the conditions from this clause. For example, a "no zero amount output" clause
+would check each of the output states that it applies to, looking for a zero amount, and throw IllegalStateException
+if any matched.
+Parameters
+
+tx
- the full transaction being verified. This is provided for cases where clauses need to access
+states or commands outside of their normal scope.
+
+
+inputs
- input states which are relevant to this clause. By default this is the set passed into verifyClause ,
+but may be further reduced by clauses such as GroupClauseVerifier .
+
+
+outputs
- output states which are relevant to this clause. By default this is the set passed into verifyClause ,
+but may be further reduced by clauses such as GroupClauseVerifier .
+
+
+commands
- commands which are relevant to this clause. By default this is the set passed into verifyClause ,
+but may be further reduced by clauses such as GroupClauseVerifier .
+
+
+groupingKey
- a grouping key applied to states and commands, where applicable. Taken from
+TransactionForContract.InOutGroup .
+Return
+the set of commands that are consumed IF this clause is matched, and cannot be used to match a
+later clause. This would normally be all commands matching "requiredCommands" for this clause, but some
+verify() functions may do further filtering on possible matches, and return a subset. This may also include
+commands that were not required (for example the Exit command for fungible assets is optional).
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts.clause/index.html b/docs/build/html/api/net.corda.contracts.clause/index.html
new file mode 100644
index 0000000000..f9d83ae7fc
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts.clause/index.html
@@ -0,0 +1,76 @@
+
+
+net.corda.contracts.clause -
+
+
+
+net.corda.contracts.clause
+
+Package net.corda.contracts.clause
+Types
+
+
+
+
+AbstractConserveAmount
+
+abstract class AbstractConserveAmount < S : FungibleAsset < T > , C : CommandData , T : Any > : Clause < S , C , Issued < T > >
Standardised clause for checking input/output balances of fungible assets. Requires that a
+Move command is provided, and errors if absent. Must be the last clause under a grouping clause;
+errors on no-match, ends on match.
+
+
+
+
+AbstractIssue
+
+abstract class AbstractIssue < in S : ContractState , C : CommandData , T : Any > : Clause < S , C , Issued < T > >
Standard issue clause for contracts that issue fungible assets.
+
+
+
+
+BilateralNetState
+
+data class BilateralNetState < P > : NetState < P >
Subset of state, containing the elements which must match for two obligation transactions to be nettable.
+If two obligation state objects produce equal bilateral net states, they are considered safe to net directly.
+Bilateral states are used in close-out netting.
+
+
+
+
+MultilateralNetState
+
+data class MultilateralNetState < P > : NetState < P >
Subset of state, containing the elements which must match for two or more obligation transactions to be candidates
+for netting (this does not include the checks to enforce that everyones amounts received are the same at the end,
+which is handled under the verify() function).
+In comparison to BilateralNetState , this doesnt include the parties keys, as ensuring balances match on
+input and output is handled elsewhere.
+Used in cases where all parties (or their proxies) are signing, such as central clearing.
+
+
+
+
+NetClause
+
+open class NetClause < C : CommandData , P > : Clause < ContractState , C , Unit >
Clause for netting contract states. Currently only supports obligation contract.
+
+
+
+
+NetState
+
+interface NetState < P >
Common interface for the state subsets used when determining nettability of two or more states. Exposes the
+underlying issued thing.
+
+
+
+
+NoZeroSizedOutputs
+
+open class NoZeroSizedOutputs < in S : FungibleAsset < T > , C : CommandData , T : Any > : Clause < S , C , Issued < T > >
Clause for fungible asset contracts, which enforces that no output state should have
+a balance of zero.
+
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts.testing/-command-data-generator/-init-.html b/docs/build/html/api/net.corda.contracts.testing/-command-data-generator/-init-.html
new file mode 100644
index 0000000000..887c53db7b
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts.testing/-command-data-generator/-init-.html
@@ -0,0 +1,14 @@
+
+
+CommandDataGenerator. -
+
+
+
+net.corda.contracts.testing / CommandDataGenerator / <init>
+
+<init>
+CommandDataGenerator ( )
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts.testing/-command-data-generator/generate.html b/docs/build/html/api/net.corda.contracts.testing/-command-data-generator/generate.html
new file mode 100644
index 0000000000..9967809d54
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts.testing/-command-data-generator/generate.html
@@ -0,0 +1,15 @@
+
+
+CommandDataGenerator.generate -
+
+
+
+net.corda.contracts.testing / CommandDataGenerator / generate
+
+generate
+
+fun generate ( random : <ERROR CLASS> , status : <ERROR CLASS> ) : CommandData
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts.testing/-command-data-generator/index.html b/docs/build/html/api/net.corda.contracts.testing/-command-data-generator/index.html
new file mode 100644
index 0000000000..20d111c62c
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts.testing/-command-data-generator/index.html
@@ -0,0 +1,36 @@
+
+
+CommandDataGenerator -
+
+
+
+net.corda.contracts.testing / CommandDataGenerator
+
+CommandDataGenerator
+class CommandDataGenerator
+
+
+Constructors
+
+
+
+
+<init>
+
+CommandDataGenerator ( )
+
+
+
+Functions
+
+
+
+
+generate
+
+fun generate ( random : <ERROR CLASS> , status : <ERROR CLASS> ) : CommandData
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts.testing/-command-generator/-init-.html b/docs/build/html/api/net.corda.contracts.testing/-command-generator/-init-.html
new file mode 100644
index 0000000000..49fe4d04db
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts.testing/-command-generator/-init-.html
@@ -0,0 +1,14 @@
+
+
+CommandGenerator. -
+
+
+
+net.corda.contracts.testing / CommandGenerator / <init>
+
+<init>
+CommandGenerator ( )
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts.testing/-command-generator/generate.html b/docs/build/html/api/net.corda.contracts.testing/-command-generator/generate.html
new file mode 100644
index 0000000000..4132707fae
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts.testing/-command-generator/generate.html
@@ -0,0 +1,15 @@
+
+
+CommandGenerator.generate -
+
+
+
+net.corda.contracts.testing / CommandGenerator / generate
+
+generate
+
+fun generate ( random : <ERROR CLASS> , status : <ERROR CLASS> ) : Command
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts.testing/-command-generator/index.html b/docs/build/html/api/net.corda.contracts.testing/-command-generator/index.html
new file mode 100644
index 0000000000..7aad9499ad
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts.testing/-command-generator/index.html
@@ -0,0 +1,36 @@
+
+
+CommandGenerator -
+
+
+
+net.corda.contracts.testing / CommandGenerator
+
+CommandGenerator
+class CommandGenerator
+
+
+Constructors
+
+
+
+
+<init>
+
+CommandGenerator ( )
+
+
+
+Functions
+
+
+
+
+generate
+
+fun generate ( random : <ERROR CLASS> , status : <ERROR CLASS> ) : Command
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts.testing/-contract-state-generator/-init-.html b/docs/build/html/api/net.corda.contracts.testing/-contract-state-generator/-init-.html
new file mode 100644
index 0000000000..b65f136cb1
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts.testing/-contract-state-generator/-init-.html
@@ -0,0 +1,20 @@
+
+
+ContractStateGenerator. -
+
+
+
+net.corda.contracts.testing / ContractStateGenerator / <init>
+
+<init>
+ContractStateGenerator ( )
+This file contains generators for quickcheck style testing. The idea is that we can write random instance generators
+for each type we have in the code and test against those instead of predefined mock data. This style of testing can
+catch corner case bugs and test algebraic properties of the code, for example deserialize(serialize(generatedThing)) == generatedThing
+TODO add combinators for easier Generator writing
+
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts.testing/-contract-state-generator/generate.html b/docs/build/html/api/net.corda.contracts.testing/-contract-state-generator/generate.html
new file mode 100644
index 0000000000..3c66cd10e9
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts.testing/-contract-state-generator/generate.html
@@ -0,0 +1,15 @@
+
+
+ContractStateGenerator.generate -
+
+
+
+net.corda.contracts.testing / ContractStateGenerator / generate
+
+generate
+
+fun generate ( random : <ERROR CLASS> , status : <ERROR CLASS> ) : ContractState
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts.testing/-contract-state-generator/index.html b/docs/build/html/api/net.corda.contracts.testing/-contract-state-generator/index.html
new file mode 100644
index 0000000000..7429183594
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts.testing/-contract-state-generator/index.html
@@ -0,0 +1,45 @@
+
+
+ContractStateGenerator -
+
+
+
+net.corda.contracts.testing / ContractStateGenerator
+
+ContractStateGenerator
+class ContractStateGenerator
+This file contains generators for quickcheck style testing. The idea is that we can write random instance generators
+for each type we have in the code and test against those instead of predefined mock data. This style of testing can
+catch corner case bugs and test algebraic properties of the code, for example deserialize(serialize(generatedThing)) == generatedThing
+TODO add combinators for easier Generator writing
+
+
+
+
+Constructors
+
+
+
+
+<init>
+
+ContractStateGenerator ( )
This file contains generators for quickcheck style testing. The idea is that we can write random instance generators
+for each type we have in the code and test against those instead of predefined mock data. This style of testing can
+catch corner case bugs and test algebraic properties of the code, for example deserialize(serialize(generatedThing)) == generatedThing
+
+
+
+
+Functions
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts.testing/-exit-generator/-init-.html b/docs/build/html/api/net.corda.contracts.testing/-exit-generator/-init-.html
new file mode 100644
index 0000000000..a71b3dd612
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts.testing/-exit-generator/-init-.html
@@ -0,0 +1,14 @@
+
+
+ExitGenerator. -
+
+
+
+net.corda.contracts.testing / ExitGenerator / <init>
+
+<init>
+ExitGenerator ( )
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts.testing/-exit-generator/generate.html b/docs/build/html/api/net.corda.contracts.testing/-exit-generator/generate.html
new file mode 100644
index 0000000000..44d423389c
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts.testing/-exit-generator/generate.html
@@ -0,0 +1,15 @@
+
+
+ExitGenerator.generate -
+
+
+
+net.corda.contracts.testing / ExitGenerator / generate
+
+generate
+
+fun generate ( random : <ERROR CLASS> , status : <ERROR CLASS> ) : Exit
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts.testing/-exit-generator/index.html b/docs/build/html/api/net.corda.contracts.testing/-exit-generator/index.html
new file mode 100644
index 0000000000..9fccd7669e
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts.testing/-exit-generator/index.html
@@ -0,0 +1,36 @@
+
+
+ExitGenerator -
+
+
+
+net.corda.contracts.testing / ExitGenerator
+
+ExitGenerator
+class ExitGenerator
+
+
+Constructors
+
+
+
+
+<init>
+
+ExitGenerator ( )
+
+
+
+Functions
+
+
+
+
+generate
+
+fun generate ( random : <ERROR CLASS> , status : <ERROR CLASS> ) : Exit
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts.testing/-issue-generator/-init-.html b/docs/build/html/api/net.corda.contracts.testing/-issue-generator/-init-.html
new file mode 100644
index 0000000000..e602a8eb08
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts.testing/-issue-generator/-init-.html
@@ -0,0 +1,14 @@
+
+
+IssueGenerator. -
+
+
+
+net.corda.contracts.testing / IssueGenerator / <init>
+
+<init>
+IssueGenerator ( )
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts.testing/-issue-generator/generate.html b/docs/build/html/api/net.corda.contracts.testing/-issue-generator/generate.html
new file mode 100644
index 0000000000..92696e2ec7
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts.testing/-issue-generator/generate.html
@@ -0,0 +1,15 @@
+
+
+IssueGenerator.generate -
+
+
+
+net.corda.contracts.testing / IssueGenerator / generate
+
+generate
+
+fun generate ( random : <ERROR CLASS> , status : <ERROR CLASS> ) : Issue
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts.testing/-issue-generator/index.html b/docs/build/html/api/net.corda.contracts.testing/-issue-generator/index.html
new file mode 100644
index 0000000000..c0478a8fd5
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts.testing/-issue-generator/index.html
@@ -0,0 +1,36 @@
+
+
+IssueGenerator -
+
+
+
+net.corda.contracts.testing / IssueGenerator
+
+IssueGenerator
+class IssueGenerator
+
+
+Constructors
+
+
+
+
+<init>
+
+IssueGenerator ( )
+
+
+
+Functions
+
+
+
+
+generate
+
+fun generate ( random : <ERROR CLASS> , status : <ERROR CLASS> ) : Issue
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts.testing/-move-generator/-init-.html b/docs/build/html/api/net.corda.contracts.testing/-move-generator/-init-.html
new file mode 100644
index 0000000000..c7c6b978cf
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts.testing/-move-generator/-init-.html
@@ -0,0 +1,14 @@
+
+
+MoveGenerator. -
+
+
+
+net.corda.contracts.testing / MoveGenerator / <init>
+
+<init>
+MoveGenerator ( )
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts.testing/-move-generator/generate.html b/docs/build/html/api/net.corda.contracts.testing/-move-generator/generate.html
new file mode 100644
index 0000000000..e5d912dd22
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts.testing/-move-generator/generate.html
@@ -0,0 +1,15 @@
+
+
+MoveGenerator.generate -
+
+
+
+net.corda.contracts.testing / MoveGenerator / generate
+
+generate
+
+fun generate ( random : <ERROR CLASS> , status : <ERROR CLASS> ) : Move
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts.testing/-move-generator/index.html b/docs/build/html/api/net.corda.contracts.testing/-move-generator/index.html
new file mode 100644
index 0000000000..a54d05bd77
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts.testing/-move-generator/index.html
@@ -0,0 +1,36 @@
+
+
+MoveGenerator -
+
+
+
+net.corda.contracts.testing / MoveGenerator
+
+MoveGenerator
+class MoveGenerator
+
+
+Constructors
+
+
+
+
+<init>
+
+MoveGenerator ( )
+
+
+
+Functions
+
+
+
+
+generate
+
+fun generate ( random : <ERROR CLASS> , status : <ERROR CLASS> ) : Move
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts.testing/-signed-transaction-generator/-init-.html b/docs/build/html/api/net.corda.contracts.testing/-signed-transaction-generator/-init-.html
new file mode 100644
index 0000000000..18b1379cc0
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts.testing/-signed-transaction-generator/-init-.html
@@ -0,0 +1,14 @@
+
+
+SignedTransactionGenerator. -
+
+
+
+net.corda.contracts.testing / SignedTransactionGenerator / <init>
+
+<init>
+SignedTransactionGenerator ( )
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts.testing/-signed-transaction-generator/generate.html b/docs/build/html/api/net.corda.contracts.testing/-signed-transaction-generator/generate.html
new file mode 100644
index 0000000000..01f0687c72
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts.testing/-signed-transaction-generator/generate.html
@@ -0,0 +1,15 @@
+
+
+SignedTransactionGenerator.generate -
+
+
+
+net.corda.contracts.testing / SignedTransactionGenerator / generate
+
+generate
+
+fun generate ( random : <ERROR CLASS> , status : <ERROR CLASS> ) : SignedTransaction
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts.testing/-signed-transaction-generator/index.html b/docs/build/html/api/net.corda.contracts.testing/-signed-transaction-generator/index.html
new file mode 100644
index 0000000000..de82c2800e
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts.testing/-signed-transaction-generator/index.html
@@ -0,0 +1,36 @@
+
+
+SignedTransactionGenerator -
+
+
+
+net.corda.contracts.testing / SignedTransactionGenerator
+
+SignedTransactionGenerator
+class SignedTransactionGenerator
+
+
+Constructors
+
+
+
+
+<init>
+
+SignedTransactionGenerator ( )
+
+
+
+Functions
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts.testing/-wired-transaction-generator/-init-.html b/docs/build/html/api/net.corda.contracts.testing/-wired-transaction-generator/-init-.html
new file mode 100644
index 0000000000..2c79f0930a
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts.testing/-wired-transaction-generator/-init-.html
@@ -0,0 +1,14 @@
+
+
+WiredTransactionGenerator. -
+
+
+
+net.corda.contracts.testing / WiredTransactionGenerator / <init>
+
+<init>
+WiredTransactionGenerator ( )
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts.testing/-wired-transaction-generator/generate.html b/docs/build/html/api/net.corda.contracts.testing/-wired-transaction-generator/generate.html
new file mode 100644
index 0000000000..5c5b3c403e
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts.testing/-wired-transaction-generator/generate.html
@@ -0,0 +1,15 @@
+
+
+WiredTransactionGenerator.generate -
+
+
+
+net.corda.contracts.testing / WiredTransactionGenerator / generate
+
+generate
+
+fun generate ( random : <ERROR CLASS> , status : <ERROR CLASS> ) : WireTransaction
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts.testing/-wired-transaction-generator/index.html b/docs/build/html/api/net.corda.contracts.testing/-wired-transaction-generator/index.html
new file mode 100644
index 0000000000..0c5877d32f
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts.testing/-wired-transaction-generator/index.html
@@ -0,0 +1,36 @@
+
+
+WiredTransactionGenerator -
+
+
+
+net.corda.contracts.testing / WiredTransactionGenerator
+
+WiredTransactionGenerator
+class WiredTransactionGenerator
+
+
+Constructors
+
+
+
+
+<init>
+
+WiredTransactionGenerator ( )
+
+
+
+Functions
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts.testing/fill-with-some-test-cash.html b/docs/build/html/api/net.corda.contracts.testing/fill-with-some-test-cash.html
new file mode 100644
index 0000000000..6a8fa19c78
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts.testing/fill-with-some-test-cash.html
@@ -0,0 +1,26 @@
+
+
+fillWithSomeTestCash -
+
+
+
+net.corda.contracts.testing / fillWithSomeTestCash
+
+fillWithSomeTestCash
+
+fun ServiceHub . fillWithSomeTestCash ( howMuch : Amount < Currency > , outputNotary : Party = DUMMY_NOTARY, atLeastThisManyStates : Int = 3, atMostThisManyStates : Int = 10, rng : Random = Random(), ref : OpaqueBytes = OpaqueBytes(ByteArray(1, { 1 })), ownedBy : PublicKey ? = null, issuedBy : PartyAndReference = DUMMY_CASH_ISSUER, issuerKey : KeyPair = DUMMY_CASH_ISSUER_KEY) : Vault
+Creates a random set of between (by default) 3 and 10 cash states that add up to the given amount and adds them
+to the vault. This is intended for unit tests. The cash is issued by DUMMY_CASH_ISSUER and owned by the legal
+identity key from the storage service.
+The service hub needs to provide at least a key management service and a storage service.
+
+
+Parameters
+
+outputNotary
- the notary to use for output states. The transaction is NOT signed by this notary.
+Return
+a vault object that represents the generated states (it will NOT be the full vault from the service hub).
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts.testing/index.html b/docs/build/html/api/net.corda.contracts.testing/index.html
new file mode 100644
index 0000000000..d8fc4cdcd3
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts.testing/index.html
@@ -0,0 +1,81 @@
+
+
+net.corda.contracts.testing -
+
+
+
+net.corda.contracts.testing
+
+Package net.corda.contracts.testing
+Types
+
+
+
+
+CommandDataGenerator
+
+class CommandDataGenerator
+
+
+
+CommandGenerator
+
+class CommandGenerator
+
+
+
+ContractStateGenerator
+
+class ContractStateGenerator
This file contains generators for quickcheck style testing. The idea is that we can write random instance generators
+for each type we have in the code and test against those instead of predefined mock data. This style of testing can
+catch corner case bugs and test algebraic properties of the code, for example deserialize(serialize(generatedThing)) == generatedThing
+
+
+
+
+ExitGenerator
+
+class ExitGenerator
+
+
+
+IssueGenerator
+
+class IssueGenerator
+
+
+
+MoveGenerator
+
+class MoveGenerator
+
+
+
+SignedTransactionGenerator
+
+class SignedTransactionGenerator
+
+
+
+WiredTransactionGenerator
+
+class WiredTransactionGenerator
+
+
+
+Functions
+
+
+
+
+fillWithSomeTestCash
+
+fun ServiceHub . fillWithSomeTestCash ( howMuch : Amount < Currency > , outputNotary : Party = DUMMY_NOTARY, atLeastThisManyStates : Int = 3, atMostThisManyStates : Int = 10, rng : Random = Random(), ref : OpaqueBytes = OpaqueBytes(ByteArray(1, { 1 })), ownedBy : PublicKey ? = null, issuedBy : PartyAndReference = DUMMY_CASH_ISSUER, issuerKey : KeyPair = DUMMY_CASH_ISSUER_KEY) : Vault
Creates a random set of between (by default) 3 and 10 cash states that add up to the given amount and adds them
+to the vault. This is intended for unit tests. The cash is issued by DUMMY_CASH_ISSUER and owned by the legal
+identity key from the storage service.
+
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts/-c-p_-l-e-g-a-c-y_-p-r-o-g-r-a-m_-i-d.html b/docs/build/html/api/net.corda.contracts/-c-p_-l-e-g-a-c-y_-p-r-o-g-r-a-m_-i-d.html
new file mode 100644
index 0000000000..d7d4cc0b51
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts/-c-p_-l-e-g-a-c-y_-p-r-o-g-r-a-m_-i-d.html
@@ -0,0 +1,17 @@
+
+
+CP_LEGACY_PROGRAM_ID -
+
+
+
+net.corda.contracts / CP_LEGACY_PROGRAM_ID
+
+CP_LEGACY_PROGRAM_ID
+
+val CP_LEGACY_PROGRAM_ID : CommercialPaperLegacy
+Legacy version of CommercialPaper that includes the full verification logic itself, rather than breaking it
+into clauses. This is here just as an example for the contract tutorial.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts/-c-p_-p-r-o-g-r-a-m_-i-d.html b/docs/build/html/api/net.corda.contracts/-c-p_-p-r-o-g-r-a-m_-i-d.html
new file mode 100644
index 0000000000..c2e711372c
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts/-c-p_-p-r-o-g-r-a-m_-i-d.html
@@ -0,0 +1,34 @@
+
+
+CP_PROGRAM_ID -
+
+
+
+net.corda.contracts / CP_PROGRAM_ID
+
+CP_PROGRAM_ID
+
+val CP_PROGRAM_ID : CommercialPaper
+This is an ultra-trivial implementation of commercial paper, which is essentially a simpler version of a corporate
+bond. It can be seen as a company-specific currency. A company issues CP with a particular face value, say $100,
+but sells it for less, say $90. The paper can be redeemed for cash at a given date in the future. Thus this example
+would have a 10% interest rate with a single repayment. Commercial paper is often rolled over (the maturity date
+is adjusted as if the paper was redeemed and immediately repurchased, but without having to front the cash).
+This contract is not intended to realistically model CP. It is here only to act as a next step up above cash in
+the prototyping phase. It is thus very incomplete.
+Open issues:
+In this model, you cannot merge or split CP. Can you do this normally? We could model CP as a specialised form
+of cash, or reuse some of the cash code? Waiting on response from Ayoub and Rajar about whether CP can always
+be split/merged or only in secondary markets. Even if current systems cant do this, would it be a desirable
+feature to have anyway?
+The funding steps of CP is totally ignored in this model.
+No attention is paid to the existing roles of custodians, funding banks, etc.
+There are regional variations on the CP concept, for instance, American CP requires a special "CUSIP number"
+which may need to be tracked. That, in turn, requires validation logic (there is a bean validator that knows how
+to do this in the Apache BVal project).
+
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts/-commercial-paper-legacy/-commands/-issue/-init-.html b/docs/build/html/api/net.corda.contracts/-commercial-paper-legacy/-commands/-issue/-init-.html
new file mode 100644
index 0000000000..f177d064a6
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts/-commercial-paper-legacy/-commands/-issue/-init-.html
@@ -0,0 +1,14 @@
+
+
+CommercialPaperLegacy.Commands.Issue. -
+
+
+
+net.corda.contracts / CommercialPaperLegacy / Commands / Issue / <init>
+
+<init>
+Issue ( )
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts/-commercial-paper-legacy/-commands/-issue/index.html b/docs/build/html/api/net.corda.contracts/-commercial-paper-legacy/-commands/-issue/index.html
new file mode 100644
index 0000000000..32777b319c
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts/-commercial-paper-legacy/-commands/-issue/index.html
@@ -0,0 +1,42 @@
+
+
+CommercialPaperLegacy.Commands.Issue -
+
+
+
+net.corda.contracts / CommercialPaperLegacy / Commands / Issue
+
+Issue
+class Issue : TypeOnlyCommandData , Commands
+
+
+Constructors
+
+
+
+
+<init>
+
+Issue ( )
+
+
+
+Inherited Functions
+
+
+
+
+equals
+
+open fun equals ( other : Any ? ) : Boolean
+
+
+
+hashCode
+
+open fun hashCode ( ) : <ERROR CLASS>
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts/-commercial-paper-legacy/-commands/-move/-init-.html b/docs/build/html/api/net.corda.contracts/-commercial-paper-legacy/-commands/-move/-init-.html
new file mode 100644
index 0000000000..8f5d0ea453
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts/-commercial-paper-legacy/-commands/-move/-init-.html
@@ -0,0 +1,14 @@
+
+
+CommercialPaperLegacy.Commands.Move. -
+
+
+
+net.corda.contracts / CommercialPaperLegacy / Commands / Move / <init>
+
+<init>
+Move ( )
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts/-commercial-paper-legacy/-commands/-move/index.html b/docs/build/html/api/net.corda.contracts/-commercial-paper-legacy/-commands/-move/index.html
new file mode 100644
index 0000000000..5053b1d7c9
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts/-commercial-paper-legacy/-commands/-move/index.html
@@ -0,0 +1,42 @@
+
+
+CommercialPaperLegacy.Commands.Move -
+
+
+
+net.corda.contracts / CommercialPaperLegacy / Commands / Move
+
+Move
+class Move : TypeOnlyCommandData , Commands
+
+
+Constructors
+
+Inherited Functions
+
+
+
+
+equals
+
+open fun equals ( other : Any ? ) : Boolean
+
+
+
+hashCode
+
+open fun hashCode ( ) : <ERROR CLASS>
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts/-commercial-paper-legacy/-commands/-redeem/-init-.html b/docs/build/html/api/net.corda.contracts/-commercial-paper-legacy/-commands/-redeem/-init-.html
new file mode 100644
index 0000000000..a1776653cb
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts/-commercial-paper-legacy/-commands/-redeem/-init-.html
@@ -0,0 +1,14 @@
+
+
+CommercialPaperLegacy.Commands.Redeem. -
+
+
+
+net.corda.contracts / CommercialPaperLegacy / Commands / Redeem / <init>
+
+<init>
+Redeem ( )
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts/-commercial-paper-legacy/-commands/-redeem/index.html b/docs/build/html/api/net.corda.contracts/-commercial-paper-legacy/-commands/-redeem/index.html
new file mode 100644
index 0000000000..e4e78c7f1c
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts/-commercial-paper-legacy/-commands/-redeem/index.html
@@ -0,0 +1,42 @@
+
+
+CommercialPaperLegacy.Commands.Redeem -
+
+
+
+net.corda.contracts / CommercialPaperLegacy / Commands / Redeem
+
+Redeem
+class Redeem : TypeOnlyCommandData , Commands
+
+
+Constructors
+
+
+
+
+<init>
+
+Redeem ( )
+
+
+
+Inherited Functions
+
+
+
+
+equals
+
+open fun equals ( other : Any ? ) : Boolean
+
+
+
+hashCode
+
+open fun hashCode ( ) : <ERROR CLASS>
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts/-commercial-paper-legacy/-commands/index.html b/docs/build/html/api/net.corda.contracts/-commercial-paper-legacy/-commands/index.html
new file mode 100644
index 0000000000..21fad65b32
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts/-commercial-paper-legacy/-commands/index.html
@@ -0,0 +1,60 @@
+
+
+CommercialPaperLegacy.Commands -
+
+
+
+net.corda.contracts / CommercialPaperLegacy / Commands
+
+Commands
+interface Commands : CommandData
+
+
+Types
+
+Inheritors
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts/-commercial-paper-legacy/-init-.html b/docs/build/html/api/net.corda.contracts/-commercial-paper-legacy/-init-.html
new file mode 100644
index 0000000000..3b7e6b9b1e
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts/-commercial-paper-legacy/-init-.html
@@ -0,0 +1,14 @@
+
+
+CommercialPaperLegacy. -
+
+
+
+net.corda.contracts / CommercialPaperLegacy / <init>
+
+<init>
+CommercialPaperLegacy ( )
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts/-commercial-paper-legacy/-state/-init-.html b/docs/build/html/api/net.corda.contracts/-commercial-paper-legacy/-state/-init-.html
new file mode 100644
index 0000000000..f40e8fdbdf
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts/-commercial-paper-legacy/-state/-init-.html
@@ -0,0 +1,14 @@
+
+
+CommercialPaperLegacy.State. -
+
+
+
+net.corda.contracts / CommercialPaperLegacy / State / <init>
+
+<init>
+State ( issuance : PartyAndReference , owner : PublicKey , faceValue : Amount < Issued < Currency > > , maturityDate : Instant )
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts/-commercial-paper-legacy/-state/contract.html b/docs/build/html/api/net.corda.contracts/-commercial-paper-legacy/-state/contract.html
new file mode 100644
index 0000000000..a563383967
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts/-commercial-paper-legacy/-state/contract.html
@@ -0,0 +1,43 @@
+
+
+CommercialPaperLegacy.State.contract -
+
+
+
+net.corda.contracts / CommercialPaperLegacy / State / contract
+
+contract
+
+val contract : CommercialPaperLegacy
+Overrides ContractState.contract
+An instance of the contract class that will verify this state.
+Discussion
+This field is not the final design, its just a piece of temporary scaffolding. Once the contract sandbox is
+further along, this field will become a description of which attachments are acceptable for defining the
+contract.
+Recall that an attachment is a zip file that can be referenced from any transaction. The contents of the
+attachments are merged together and cannot define any overlapping files, thus for any given transaction there
+is a miniature file system in which each file can be precisely mapped to the defining attachment.
+Attachments may contain many things (data files, legal documents, etc) but mostly they contain JVM bytecode.
+The class files inside define not only Contract implementations but also the classes that define the states.
+Within the rest of a transaction, user-providable components are referenced by name only.
+This means that a smart contract in Corda does two things:
+Define the data structures that compose the ledger (the states)
+Define the rules for updating those structures
+The first is merely a utility role ... in theory contract code could manually parse byte streams by hand.
+The second is vital to the integrity of the ledger. So this field needs to be able to express constraints like:
+Only attachment 733c350f396a727655be1363c06635ba355036bd54a5ed6e594fd0b5d05f42f6 may be used with this state.
+Any attachment signed by public key 2d1ce0e330c52b8055258d776c40 may be used with this state.
+Attachments (1, 2, 3) may all be used with this state.
+and so on. In this way it becomes possible for the business logic governing a state to be evolved, if the
+constraints are flexible enough.
+Because contract classes often also define utilities that generate relevant transactions, and because attachments
+cannot know their own hashes, we will have to provide various utilities to assist with obtaining the right
+code constraints from within the contract code itself.
+TODO: Implement the above description. See COR-226
+
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts/-commercial-paper-legacy/-state/face-value.html b/docs/build/html/api/net.corda.contracts/-commercial-paper-legacy/-state/face-value.html
new file mode 100644
index 0000000000..3c08e027de
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts/-commercial-paper-legacy/-state/face-value.html
@@ -0,0 +1,15 @@
+
+
+CommercialPaperLegacy.State.faceValue -
+
+
+
+net.corda.contracts / CommercialPaperLegacy / State / faceValue
+
+faceValue
+
+val faceValue : Amount < Issued < Currency > >
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts/-commercial-paper-legacy/-state/index.html b/docs/build/html/api/net.corda.contracts/-commercial-paper-legacy/-state/index.html
new file mode 100644
index 0000000000..e3a39bd52b
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts/-commercial-paper-legacy/-state/index.html
@@ -0,0 +1,117 @@
+
+
+CommercialPaperLegacy.State -
+
+
+
+net.corda.contracts / CommercialPaperLegacy / State
+
+State
+data class State : OwnableState
+
+
+Constructors
+
+Properties
+
+Functions
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts/-commercial-paper-legacy/-state/issuance.html b/docs/build/html/api/net.corda.contracts/-commercial-paper-legacy/-state/issuance.html
new file mode 100644
index 0000000000..9647c022c2
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts/-commercial-paper-legacy/-state/issuance.html
@@ -0,0 +1,15 @@
+
+
+CommercialPaperLegacy.State.issuance -
+
+
+
+net.corda.contracts / CommercialPaperLegacy / State / issuance
+
+issuance
+
+val issuance : PartyAndReference
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts/-commercial-paper-legacy/-state/maturity-date.html b/docs/build/html/api/net.corda.contracts/-commercial-paper-legacy/-state/maturity-date.html
new file mode 100644
index 0000000000..722778951b
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts/-commercial-paper-legacy/-state/maturity-date.html
@@ -0,0 +1,15 @@
+
+
+CommercialPaperLegacy.State.maturityDate -
+
+
+
+net.corda.contracts / CommercialPaperLegacy / State / maturityDate
+
+maturityDate
+
+val maturityDate : Instant
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts/-commercial-paper-legacy/-state/owner.html b/docs/build/html/api/net.corda.contracts/-commercial-paper-legacy/-state/owner.html
new file mode 100644
index 0000000000..12f45ca586
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts/-commercial-paper-legacy/-state/owner.html
@@ -0,0 +1,17 @@
+
+
+CommercialPaperLegacy.State.owner -
+
+
+
+net.corda.contracts / CommercialPaperLegacy / State / owner
+
+owner
+
+val owner : PublicKey
+Overrides OwnableState.owner
+There must be a MoveCommand signed by this key to claim the amount
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts/-commercial-paper-legacy/-state/participants.html b/docs/build/html/api/net.corda.contracts/-commercial-paper-legacy/-state/participants.html
new file mode 100644
index 0000000000..bb4fbed615
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts/-commercial-paper-legacy/-state/participants.html
@@ -0,0 +1,25 @@
+
+
+CommercialPaperLegacy.State.participants -
+
+
+
+net.corda.contracts / CommercialPaperLegacy / State / participants
+
+participants
+
+val participants : <ERROR CLASS>
+Overrides ContractState.participants
+A participant is any party that is able to consume this state in a valid transaction.
+The list of participants is required for certain types of transactions. For example, when changing the notary
+for this state (TransactionType.NotaryChange ), every participant has to be involved and approve the transaction
+so that they receive the updated state, and dont end up in a situation where they can no longer use a state
+they possess, since someone consumed that state during the notary change process.
+The participants list should normally be derived from the contents of the state. E.g. for Cash the participants
+list should just contain the owner.
+
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts/-commercial-paper-legacy/-state/to-string.html b/docs/build/html/api/net.corda.contracts/-commercial-paper-legacy/-state/to-string.html
new file mode 100644
index 0000000000..d0911578d3
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts/-commercial-paper-legacy/-state/to-string.html
@@ -0,0 +1,15 @@
+
+
+CommercialPaperLegacy.State.toString -
+
+
+
+net.corda.contracts / CommercialPaperLegacy / State / toString
+
+toString
+
+fun toString ( ) : String
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts/-commercial-paper-legacy/-state/with-face-value.html b/docs/build/html/api/net.corda.contracts/-commercial-paper-legacy/-state/with-face-value.html
new file mode 100644
index 0000000000..977b358fce
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts/-commercial-paper-legacy/-state/with-face-value.html
@@ -0,0 +1,15 @@
+
+
+CommercialPaperLegacy.State.withFaceValue -
+
+
+
+net.corda.contracts / CommercialPaperLegacy / State / withFaceValue
+
+withFaceValue
+
+fun withFaceValue ( newFaceValue : Amount < Issued < Currency > > ) : <ERROR CLASS>
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts/-commercial-paper-legacy/-state/with-issuance.html b/docs/build/html/api/net.corda.contracts/-commercial-paper-legacy/-state/with-issuance.html
new file mode 100644
index 0000000000..bdcb720ca1
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts/-commercial-paper-legacy/-state/with-issuance.html
@@ -0,0 +1,15 @@
+
+
+CommercialPaperLegacy.State.withIssuance -
+
+
+
+net.corda.contracts / CommercialPaperLegacy / State / withIssuance
+
+withIssuance
+
+fun withIssuance ( newIssuance : PartyAndReference ) : <ERROR CLASS>
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts/-commercial-paper-legacy/-state/with-maturity-date.html b/docs/build/html/api/net.corda.contracts/-commercial-paper-legacy/-state/with-maturity-date.html
new file mode 100644
index 0000000000..eaa5906922
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts/-commercial-paper-legacy/-state/with-maturity-date.html
@@ -0,0 +1,15 @@
+
+
+CommercialPaperLegacy.State.withMaturityDate -
+
+
+
+net.corda.contracts / CommercialPaperLegacy / State / withMaturityDate
+
+withMaturityDate
+
+fun withMaturityDate ( newMaturityDate : Instant ) : <ERROR CLASS>
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts/-commercial-paper-legacy/-state/with-new-owner.html b/docs/build/html/api/net.corda.contracts/-commercial-paper-legacy/-state/with-new-owner.html
new file mode 100644
index 0000000000..835042ea07
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts/-commercial-paper-legacy/-state/with-new-owner.html
@@ -0,0 +1,17 @@
+
+
+CommercialPaperLegacy.State.withNewOwner -
+
+
+
+net.corda.contracts / CommercialPaperLegacy / State / withNewOwner
+
+withNewOwner
+
+fun withNewOwner ( newOwner : PublicKey ) : <ERROR CLASS>
+Overrides OwnableState.withNewOwner
+Copies the underlying data structure, replacing the owner field with this new value and leaving the rest alone
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts/-commercial-paper-legacy/-state/with-owner.html b/docs/build/html/api/net.corda.contracts/-commercial-paper-legacy/-state/with-owner.html
new file mode 100644
index 0000000000..b7bc2145ce
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts/-commercial-paper-legacy/-state/with-owner.html
@@ -0,0 +1,15 @@
+
+
+CommercialPaperLegacy.State.withOwner -
+
+
+
+net.corda.contracts / CommercialPaperLegacy / State / withOwner
+
+withOwner
+
+fun withOwner ( newOwner : PublicKey ) : <ERROR CLASS>
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts/-commercial-paper-legacy/-state/without-owner.html b/docs/build/html/api/net.corda.contracts/-commercial-paper-legacy/-state/without-owner.html
new file mode 100644
index 0000000000..bc634aa6ae
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts/-commercial-paper-legacy/-state/without-owner.html
@@ -0,0 +1,15 @@
+
+
+CommercialPaperLegacy.State.withoutOwner -
+
+
+
+net.corda.contracts / CommercialPaperLegacy / State / withoutOwner
+
+withoutOwner
+
+fun withoutOwner ( ) : State
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts/-commercial-paper-legacy/generate-issue.html b/docs/build/html/api/net.corda.contracts/-commercial-paper-legacy/generate-issue.html
new file mode 100644
index 0000000000..0a1b5e7652
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts/-commercial-paper-legacy/generate-issue.html
@@ -0,0 +1,15 @@
+
+
+CommercialPaperLegacy.generateIssue -
+
+
+
+net.corda.contracts / CommercialPaperLegacy / generateIssue
+
+generateIssue
+
+fun generateIssue ( issuance : PartyAndReference , faceValue : Amount < Issued < Currency > > , maturityDate : Instant , notary : Party ) : TransactionBuilder
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts/-commercial-paper-legacy/generate-move.html b/docs/build/html/api/net.corda.contracts/-commercial-paper-legacy/generate-move.html
new file mode 100644
index 0000000000..89b9507a97
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts/-commercial-paper-legacy/generate-move.html
@@ -0,0 +1,15 @@
+
+
+CommercialPaperLegacy.generateMove -
+
+
+
+net.corda.contracts / CommercialPaperLegacy / generateMove
+
+generateMove
+
+fun generateMove ( tx : TransactionBuilder , paper : StateAndRef < State > , newOwner : PublicKey ) : Unit
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts/-commercial-paper-legacy/generate-redeem.html b/docs/build/html/api/net.corda.contracts/-commercial-paper-legacy/generate-redeem.html
new file mode 100644
index 0000000000..9cea8f665a
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts/-commercial-paper-legacy/generate-redeem.html
@@ -0,0 +1,15 @@
+
+
+CommercialPaperLegacy.generateRedeem -
+
+
+
+net.corda.contracts / CommercialPaperLegacy / generateRedeem
+
+generateRedeem
+
+fun generateRedeem ( tx : TransactionBuilder , paper : StateAndRef < State > , vault : VaultService ) : Unit
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts/-commercial-paper-legacy/index.html b/docs/build/html/api/net.corda.contracts/-commercial-paper-legacy/index.html
new file mode 100644
index 0000000000..c1990821d8
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts/-commercial-paper-legacy/index.html
@@ -0,0 +1,88 @@
+
+
+CommercialPaperLegacy -
+
+
+
+net.corda.contracts / CommercialPaperLegacy
+
+CommercialPaperLegacy
+class CommercialPaperLegacy : Contract
+
+
+Types
+
+Constructors
+
+
+
+
+<init>
+
+CommercialPaperLegacy ( )
+
+
+
+Properties
+
+
+
+
+legalContractReference
+
+val legalContractReference : SecureHash
Unparsed reference to the natural language contract that this code is supposed to express (usually a hash of
+the contracts contents).
+
+
+
+
+Functions
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts/-commercial-paper-legacy/legal-contract-reference.html b/docs/build/html/api/net.corda.contracts/-commercial-paper-legacy/legal-contract-reference.html
new file mode 100644
index 0000000000..a7b9c0e491
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts/-commercial-paper-legacy/legal-contract-reference.html
@@ -0,0 +1,18 @@
+
+
+CommercialPaperLegacy.legalContractReference -
+
+
+
+net.corda.contracts / CommercialPaperLegacy / legalContractReference
+
+legalContractReference
+
+val legalContractReference : SecureHash
+Overrides Contract.legalContractReference
+Unparsed reference to the natural language contract that this code is supposed to express (usually a hash of
+the contracts contents).
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts/-commercial-paper-legacy/verify.html b/docs/build/html/api/net.corda.contracts/-commercial-paper-legacy/verify.html
new file mode 100644
index 0000000000..7b7bb3140b
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts/-commercial-paper-legacy/verify.html
@@ -0,0 +1,20 @@
+
+
+CommercialPaperLegacy.verify -
+
+
+
+net.corda.contracts / CommercialPaperLegacy / verify
+
+verify
+
+fun verify ( tx : TransactionForContract ) : Unit
+Overrides Contract.verify
+Takes an object that represents a state transition, and ensures the inputs/outputs/commands make sense.
+Must throw an exception if theres a problem that should prevent state transition. Takes a single object
+rather than an argument so that additional data can be added without breaking binary compatibility with
+existing contract code.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts/-commercial-paper/-clauses/-group/-init-.html b/docs/build/html/api/net.corda.contracts/-commercial-paper/-clauses/-group/-init-.html
new file mode 100644
index 0000000000..c19078d8be
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts/-commercial-paper/-clauses/-group/-init-.html
@@ -0,0 +1,14 @@
+
+
+CommercialPaper.Clauses.Group. -
+
+
+
+net.corda.contracts / CommercialPaper / Clauses / Group / <init>
+
+<init>
+Group ( )
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts/-commercial-paper/-clauses/-group/group-states.html b/docs/build/html/api/net.corda.contracts/-commercial-paper/-clauses/-group/group-states.html
new file mode 100644
index 0000000000..90c580624d
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts/-commercial-paper/-clauses/-group/group-states.html
@@ -0,0 +1,16 @@
+
+
+CommercialPaper.Clauses.Group.groupStates -
+
+
+
+net.corda.contracts / CommercialPaper / Clauses / Group / groupStates
+
+groupStates
+
+fun groupStates ( tx : TransactionForContract ) : List < InOutGroup < State , Issued < Terms > > >
+Overrides GroupClauseVerifier.groupStates
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts/-commercial-paper/-clauses/-group/index.html b/docs/build/html/api/net.corda.contracts/-commercial-paper/-clauses/-group/index.html
new file mode 100644
index 0000000000..ee5dbae14f
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts/-commercial-paper/-clauses/-group/index.html
@@ -0,0 +1,47 @@
+
+
+CommercialPaper.Clauses.Group -
+
+
+
+net.corda.contracts / CommercialPaper / Clauses / Group
+
+Group
+class Group : GroupClauseVerifier < State , Commands , Issued < Terms > >
+
+
+Constructors
+
+
+
+
+<init>
+
+Group ( )
+
+
+
+Inherited Properties
+
+Functions
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts/-commercial-paper/-clauses/-issue/-init-.html b/docs/build/html/api/net.corda.contracts/-commercial-paper/-clauses/-issue/-init-.html
new file mode 100644
index 0000000000..88f485eeb3
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts/-commercial-paper/-clauses/-issue/-init-.html
@@ -0,0 +1,14 @@
+
+
+CommercialPaper.Clauses.Issue. -
+
+
+
+net.corda.contracts / CommercialPaper / Clauses / Issue / <init>
+
+<init>
+Issue ( )
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts/-commercial-paper/-clauses/-issue/index.html b/docs/build/html/api/net.corda.contracts/-commercial-paper/-clauses/-issue/index.html
new file mode 100644
index 0000000000..c0fee933a9
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts/-commercial-paper/-clauses/-issue/index.html
@@ -0,0 +1,68 @@
+
+
+CommercialPaper.Clauses.Issue -
+
+
+
+net.corda.contracts / CommercialPaper / Clauses / Issue
+
+Issue
+class Issue : AbstractIssue < State , Commands , Terms >
+
+
+Constructors
+
+
+
+
+<init>
+
+Issue ( )
+
+
+
+Properties
+
+Inherited Properties
+
+Functions
+
+
+
+
+verify
+
+fun verify ( tx : TransactionForContract , inputs : List < State > , outputs : List < State > , commands : List < AuthenticatedObject < Commands > > , groupingKey : Issued < Terms > ? ) : Set < Commands >
Verify the transaction matches the conditions from this clause. For example, a "no zero amount output" clause
+would check each of the output states that it applies to, looking for a zero amount, and throw IllegalStateException
+if any matched.
+
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts/-commercial-paper/-clauses/-issue/required-commands.html b/docs/build/html/api/net.corda.contracts/-commercial-paper/-clauses/-issue/required-commands.html
new file mode 100644
index 0000000000..21d740884b
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts/-commercial-paper/-clauses/-issue/required-commands.html
@@ -0,0 +1,17 @@
+
+
+CommercialPaper.Clauses.Issue.requiredCommands -
+
+
+
+net.corda.contracts / CommercialPaper / Clauses / Issue / requiredCommands
+
+requiredCommands
+
+val requiredCommands : Set < Class < out CommandData > >
+Overrides Clause.requiredCommands
+Determine whether this clause runs or not
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts/-commercial-paper/-clauses/-issue/verify.html b/docs/build/html/api/net.corda.contracts/-commercial-paper/-clauses/-issue/verify.html
new file mode 100644
index 0000000000..284942a2d5
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts/-commercial-paper/-clauses/-issue/verify.html
@@ -0,0 +1,43 @@
+
+
+CommercialPaper.Clauses.Issue.verify -
+
+
+
+net.corda.contracts / CommercialPaper / Clauses / Issue / verify
+
+verify
+
+fun verify ( tx : TransactionForContract , inputs : List < State > , outputs : List < State > , commands : List < AuthenticatedObject < Commands > > , groupingKey : Issued < Terms > ? ) : Set < Commands >
+Verify the transaction matches the conditions from this clause. For example, a "no zero amount output" clause
+would check each of the output states that it applies to, looking for a zero amount, and throw IllegalStateException
+if any matched.
+Parameters
+
+tx
- the full transaction being verified. This is provided for cases where clauses need to access
+states or commands outside of their normal scope.
+
+
+inputs
- input states which are relevant to this clause. By default this is the set passed into verifyClause ,
+but may be further reduced by clauses such as GroupClauseVerifier .
+
+
+outputs
- output states which are relevant to this clause. By default this is the set passed into verifyClause ,
+but may be further reduced by clauses such as GroupClauseVerifier .
+
+
+commands
- commands which are relevant to this clause. By default this is the set passed into verifyClause ,
+but may be further reduced by clauses such as GroupClauseVerifier .
+
+
+groupingKey
- a grouping key applied to states and commands, where applicable. Taken from
+TransactionForContract.InOutGroup .
+Return
+the set of commands that are consumed IF this clause is matched, and cannot be used to match a
+later clause. This would normally be all commands matching "requiredCommands" for this clause, but some
+verify() functions may do further filtering on possible matches, and return a subset. This may also include
+commands that were not required (for example the Exit command for fungible assets is optional).
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts/-commercial-paper/-clauses/-move/-init-.html b/docs/build/html/api/net.corda.contracts/-commercial-paper/-clauses/-move/-init-.html
new file mode 100644
index 0000000000..0908d2dc5c
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts/-commercial-paper/-clauses/-move/-init-.html
@@ -0,0 +1,14 @@
+
+
+CommercialPaper.Clauses.Move. -
+
+
+
+net.corda.contracts / CommercialPaper / Clauses / Move / <init>
+
+<init>
+Move ( )
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts/-commercial-paper/-clauses/-move/index.html b/docs/build/html/api/net.corda.contracts/-commercial-paper/-clauses/-move/index.html
new file mode 100644
index 0000000000..3377f85ac4
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts/-commercial-paper/-clauses/-move/index.html
@@ -0,0 +1,51 @@
+
+
+CommercialPaper.Clauses.Move -
+
+
+
+net.corda.contracts / CommercialPaper / Clauses / Move
+
+Move
+class Move : Clause < State , Commands , Issued < Terms > >
+
+
+Constructors
+
+Properties
+
+Functions
+
+
+
+
+verify
+
+fun verify ( tx : TransactionForContract , inputs : List < State > , outputs : List < State > , commands : List < AuthenticatedObject < Commands > > , groupingKey : Issued < Terms > ? ) : Set < Commands >
Verify the transaction matches the conditions from this clause. For example, a "no zero amount output" clause
+would check each of the output states that it applies to, looking for a zero amount, and throw IllegalStateException
+if any matched.
+
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts/-commercial-paper/-clauses/-move/required-commands.html b/docs/build/html/api/net.corda.contracts/-commercial-paper/-clauses/-move/required-commands.html
new file mode 100644
index 0000000000..ee37327f77
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts/-commercial-paper/-clauses/-move/required-commands.html
@@ -0,0 +1,17 @@
+
+
+CommercialPaper.Clauses.Move.requiredCommands -
+
+
+
+net.corda.contracts / CommercialPaper / Clauses / Move / requiredCommands
+
+requiredCommands
+
+val requiredCommands : Set < Class < out CommandData > >
+Overrides Clause.requiredCommands
+Determine whether this clause runs or not
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts/-commercial-paper/-clauses/-move/verify.html b/docs/build/html/api/net.corda.contracts/-commercial-paper/-clauses/-move/verify.html
new file mode 100644
index 0000000000..d8c6bf7dc2
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts/-commercial-paper/-clauses/-move/verify.html
@@ -0,0 +1,43 @@
+
+
+CommercialPaper.Clauses.Move.verify -
+
+
+
+net.corda.contracts / CommercialPaper / Clauses / Move / verify
+
+verify
+
+fun verify ( tx : TransactionForContract , inputs : List < State > , outputs : List < State > , commands : List < AuthenticatedObject < Commands > > , groupingKey : Issued < Terms > ? ) : Set < Commands >
+Verify the transaction matches the conditions from this clause. For example, a "no zero amount output" clause
+would check each of the output states that it applies to, looking for a zero amount, and throw IllegalStateException
+if any matched.
+Parameters
+
+tx
- the full transaction being verified. This is provided for cases where clauses need to access
+states or commands outside of their normal scope.
+
+
+inputs
- input states which are relevant to this clause. By default this is the set passed into verifyClause ,
+but may be further reduced by clauses such as GroupClauseVerifier .
+
+
+outputs
- output states which are relevant to this clause. By default this is the set passed into verifyClause ,
+but may be further reduced by clauses such as GroupClauseVerifier .
+
+
+commands
- commands which are relevant to this clause. By default this is the set passed into verifyClause ,
+but may be further reduced by clauses such as GroupClauseVerifier .
+
+
+groupingKey
- a grouping key applied to states and commands, where applicable. Taken from
+TransactionForContract.InOutGroup .
+Return
+the set of commands that are consumed IF this clause is matched, and cannot be used to match a
+later clause. This would normally be all commands matching "requiredCommands" for this clause, but some
+verify() functions may do further filtering on possible matches, and return a subset. This may also include
+commands that were not required (for example the Exit command for fungible assets is optional).
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts/-commercial-paper/-clauses/-redeem/-init-.html b/docs/build/html/api/net.corda.contracts/-commercial-paper/-clauses/-redeem/-init-.html
new file mode 100644
index 0000000000..fad65efa60
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts/-commercial-paper/-clauses/-redeem/-init-.html
@@ -0,0 +1,14 @@
+
+
+CommercialPaper.Clauses.Redeem. -
+
+
+
+net.corda.contracts / CommercialPaper / Clauses / Redeem / <init>
+
+<init>
+Redeem ( )
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts/-commercial-paper/-clauses/-redeem/index.html b/docs/build/html/api/net.corda.contracts/-commercial-paper/-clauses/-redeem/index.html
new file mode 100644
index 0000000000..3f24f5625a
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts/-commercial-paper/-clauses/-redeem/index.html
@@ -0,0 +1,51 @@
+
+
+CommercialPaper.Clauses.Redeem -
+
+
+
+net.corda.contracts / CommercialPaper / Clauses / Redeem
+
+Redeem
+class Redeem : Clause < State , Commands , Issued < Terms > >
+
+
+Constructors
+
+
+
+
+<init>
+
+Redeem ( )
+
+
+
+Properties
+
+Functions
+
+
+
+
+verify
+
+fun verify ( tx : TransactionForContract , inputs : List < State > , outputs : List < State > , commands : List < AuthenticatedObject < Commands > > , groupingKey : Issued < Terms > ? ) : Set < Commands >
Verify the transaction matches the conditions from this clause. For example, a "no zero amount output" clause
+would check each of the output states that it applies to, looking for a zero amount, and throw IllegalStateException
+if any matched.
+
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts/-commercial-paper/-clauses/-redeem/required-commands.html b/docs/build/html/api/net.corda.contracts/-commercial-paper/-clauses/-redeem/required-commands.html
new file mode 100644
index 0000000000..74666e314c
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts/-commercial-paper/-clauses/-redeem/required-commands.html
@@ -0,0 +1,17 @@
+
+
+CommercialPaper.Clauses.Redeem.requiredCommands -
+
+
+
+net.corda.contracts / CommercialPaper / Clauses / Redeem / requiredCommands
+
+requiredCommands
+
+val requiredCommands : Set < Class < out CommandData > >
+Overrides Clause.requiredCommands
+Determine whether this clause runs or not
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts/-commercial-paper/-clauses/-redeem/verify.html b/docs/build/html/api/net.corda.contracts/-commercial-paper/-clauses/-redeem/verify.html
new file mode 100644
index 0000000000..19470ec06b
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts/-commercial-paper/-clauses/-redeem/verify.html
@@ -0,0 +1,43 @@
+
+
+CommercialPaper.Clauses.Redeem.verify -
+
+
+
+net.corda.contracts / CommercialPaper / Clauses / Redeem / verify
+
+verify
+
+fun verify ( tx : TransactionForContract , inputs : List < State > , outputs : List < State > , commands : List < AuthenticatedObject < Commands > > , groupingKey : Issued < Terms > ? ) : Set < Commands >
+Verify the transaction matches the conditions from this clause. For example, a "no zero amount output" clause
+would check each of the output states that it applies to, looking for a zero amount, and throw IllegalStateException
+if any matched.
+Parameters
+
+tx
- the full transaction being verified. This is provided for cases where clauses need to access
+states or commands outside of their normal scope.
+
+
+inputs
- input states which are relevant to this clause. By default this is the set passed into verifyClause ,
+but may be further reduced by clauses such as GroupClauseVerifier .
+
+
+outputs
- output states which are relevant to this clause. By default this is the set passed into verifyClause ,
+but may be further reduced by clauses such as GroupClauseVerifier .
+
+
+commands
- commands which are relevant to this clause. By default this is the set passed into verifyClause ,
+but may be further reduced by clauses such as GroupClauseVerifier .
+
+
+groupingKey
- a grouping key applied to states and commands, where applicable. Taken from
+TransactionForContract.InOutGroup .
+Return
+the set of commands that are consumed IF this clause is matched, and cannot be used to match a
+later clause. This would normally be all commands matching "requiredCommands" for this clause, but some
+verify() functions may do further filtering on possible matches, and return a subset. This may also include
+commands that were not required (for example the Exit command for fungible assets is optional).
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts/-commercial-paper/-clauses/index.html b/docs/build/html/api/net.corda.contracts/-commercial-paper/-clauses/index.html
new file mode 100644
index 0000000000..b76adcc32a
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts/-commercial-paper/-clauses/index.html
@@ -0,0 +1,43 @@
+
+
+CommercialPaper.Clauses -
+
+
+
+net.corda.contracts / CommercialPaper / Clauses
+
+Clauses
+interface Clauses
+
+
+Types
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts/-commercial-paper/-commands/-issue/-init-.html b/docs/build/html/api/net.corda.contracts/-commercial-paper/-commands/-issue/-init-.html
new file mode 100644
index 0000000000..56b362f28d
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts/-commercial-paper/-commands/-issue/-init-.html
@@ -0,0 +1,14 @@
+
+
+CommercialPaper.Commands.Issue. -
+
+
+
+net.corda.contracts / CommercialPaper / Commands / Issue / <init>
+
+<init>
+Issue ( nonce : Long = random63BitValue())
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts/-commercial-paper/-commands/-issue/index.html b/docs/build/html/api/net.corda.contracts/-commercial-paper/-commands/-issue/index.html
new file mode 100644
index 0000000000..ef76a8e4b9
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts/-commercial-paper/-commands/-issue/index.html
@@ -0,0 +1,36 @@
+
+
+CommercialPaper.Commands.Issue -
+
+
+
+net.corda.contracts / CommercialPaper / Commands / Issue
+
+Issue
+data class Issue : IssueCommand , Commands
+
+
+Constructors
+
+
+
+
+<init>
+
+Issue ( nonce : Long = random63BitValue())
+
+
+
+Properties
+
+
+
+
+nonce
+
+val nonce : Long
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts/-commercial-paper/-commands/-issue/nonce.html b/docs/build/html/api/net.corda.contracts/-commercial-paper/-commands/-issue/nonce.html
new file mode 100644
index 0000000000..f8c543d0cf
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts/-commercial-paper/-commands/-issue/nonce.html
@@ -0,0 +1,16 @@
+
+
+CommercialPaper.Commands.Issue.nonce -
+
+
+
+net.corda.contracts / CommercialPaper / Commands / Issue / nonce
+
+nonce
+
+val nonce : Long
+Overrides IssueCommand.nonce
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts/-commercial-paper/-commands/-move/-init-.html b/docs/build/html/api/net.corda.contracts/-commercial-paper/-commands/-move/-init-.html
new file mode 100644
index 0000000000..f5b16e0ac6
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts/-commercial-paper/-commands/-move/-init-.html
@@ -0,0 +1,14 @@
+
+
+CommercialPaper.Commands.Move. -
+
+
+
+net.corda.contracts / CommercialPaper / Commands / Move / <init>
+
+<init>
+Move ( contractHash : SecureHash ? = null)
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts/-commercial-paper/-commands/-move/contract-hash.html b/docs/build/html/api/net.corda.contracts/-commercial-paper/-commands/-move/contract-hash.html
new file mode 100644
index 0000000000..38c75d7249
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts/-commercial-paper/-commands/-move/contract-hash.html
@@ -0,0 +1,18 @@
+
+
+CommercialPaper.Commands.Move.contractHash -
+
+
+
+net.corda.contracts / CommercialPaper / Commands / Move / contractHash
+
+contractHash
+
+val contractHash : SecureHash ?
+Overrides MoveCommand.contractHash
+Contract code the moved state(s) are for the attention of, for example to indicate that the states are moved in
+order to settle an obligation contracts state object(s).
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts/-commercial-paper/-commands/-move/index.html b/docs/build/html/api/net.corda.contracts/-commercial-paper/-commands/-move/index.html
new file mode 100644
index 0000000000..f1c4ec4316
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts/-commercial-paper/-commands/-move/index.html
@@ -0,0 +1,38 @@
+
+
+CommercialPaper.Commands.Move -
+
+
+
+net.corda.contracts / CommercialPaper / Commands / Move
+
+Move
+data class Move : Move , Commands
+
+
+Constructors
+
+Properties
+
+
+
+
+contractHash
+
+val contractHash : SecureHash ?
Contract code the moved state(s) are for the attention of, for example to indicate that the states are moved in
+order to settle an obligation contracts state object(s).
+
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts/-commercial-paper/-commands/-redeem/-init-.html b/docs/build/html/api/net.corda.contracts/-commercial-paper/-commands/-redeem/-init-.html
new file mode 100644
index 0000000000..f20e58067a
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts/-commercial-paper/-commands/-redeem/-init-.html
@@ -0,0 +1,14 @@
+
+
+CommercialPaper.Commands.Redeem. -
+
+
+
+net.corda.contracts / CommercialPaper / Commands / Redeem / <init>
+
+<init>
+Redeem ( )
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts/-commercial-paper/-commands/-redeem/index.html b/docs/build/html/api/net.corda.contracts/-commercial-paper/-commands/-redeem/index.html
new file mode 100644
index 0000000000..ac8e6ff766
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts/-commercial-paper/-commands/-redeem/index.html
@@ -0,0 +1,42 @@
+
+
+CommercialPaper.Commands.Redeem -
+
+
+
+net.corda.contracts / CommercialPaper / Commands / Redeem
+
+Redeem
+class Redeem : TypeOnlyCommandData , Commands
+
+
+Constructors
+
+
+
+
+<init>
+
+Redeem ( )
+
+
+
+Inherited Functions
+
+
+
+
+equals
+
+open fun equals ( other : Any ? ) : Boolean
+
+
+
+hashCode
+
+open fun hashCode ( ) : <ERROR CLASS>
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts/-commercial-paper/-commands/index.html b/docs/build/html/api/net.corda.contracts/-commercial-paper/-commands/index.html
new file mode 100644
index 0000000000..0bbb8b92a5
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts/-commercial-paper/-commands/index.html
@@ -0,0 +1,60 @@
+
+
+CommercialPaper.Commands -
+
+
+
+net.corda.contracts / CommercialPaper / Commands
+
+Commands
+interface Commands : CommandData
+
+
+Types
+
+Inheritors
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts/-commercial-paper/-init-.html b/docs/build/html/api/net.corda.contracts/-commercial-paper/-init-.html
new file mode 100644
index 0000000000..ad959b60ab
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts/-commercial-paper/-init-.html
@@ -0,0 +1,14 @@
+
+
+CommercialPaper. -
+
+
+
+net.corda.contracts / CommercialPaper / <init>
+
+<init>
+CommercialPaper ( )
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts/-commercial-paper/-state/-init-.html b/docs/build/html/api/net.corda.contracts/-commercial-paper/-state/-init-.html
new file mode 100644
index 0000000000..e0e8d7f296
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts/-commercial-paper/-state/-init-.html
@@ -0,0 +1,14 @@
+
+
+CommercialPaper.State. -
+
+
+
+net.corda.contracts / CommercialPaper / State / <init>
+
+<init>
+State ( issuance : PartyAndReference , owner : PublicKey , faceValue : Amount < Issued < Currency > > , maturityDate : Instant )
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts/-commercial-paper/-state/contract.html b/docs/build/html/api/net.corda.contracts/-commercial-paper/-state/contract.html
new file mode 100644
index 0000000000..58d53108b2
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts/-commercial-paper/-state/contract.html
@@ -0,0 +1,43 @@
+
+
+CommercialPaper.State.contract -
+
+
+
+net.corda.contracts / CommercialPaper / State / contract
+
+contract
+
+val contract : CommercialPaper
+Overrides ContractState.contract
+An instance of the contract class that will verify this state.
+Discussion
+This field is not the final design, its just a piece of temporary scaffolding. Once the contract sandbox is
+further along, this field will become a description of which attachments are acceptable for defining the
+contract.
+Recall that an attachment is a zip file that can be referenced from any transaction. The contents of the
+attachments are merged together and cannot define any overlapping files, thus for any given transaction there
+is a miniature file system in which each file can be precisely mapped to the defining attachment.
+Attachments may contain many things (data files, legal documents, etc) but mostly they contain JVM bytecode.
+The class files inside define not only Contract implementations but also the classes that define the states.
+Within the rest of a transaction, user-providable components are referenced by name only.
+This means that a smart contract in Corda does two things:
+Define the data structures that compose the ledger (the states)
+Define the rules for updating those structures
+The first is merely a utility role ... in theory contract code could manually parse byte streams by hand.
+The second is vital to the integrity of the ledger. So this field needs to be able to express constraints like:
+Only attachment 733c350f396a727655be1363c06635ba355036bd54a5ed6e594fd0b5d05f42f6 may be used with this state.
+Any attachment signed by public key 2d1ce0e330c52b8055258d776c40 may be used with this state.
+Attachments (1, 2, 3) may all be used with this state.
+and so on. In this way it becomes possible for the business logic governing a state to be evolved, if the
+constraints are flexible enough.
+Because contract classes often also define utilities that generate relevant transactions, and because attachments
+cannot know their own hashes, we will have to provide various utilities to assist with obtaining the right
+code constraints from within the contract code itself.
+TODO: Implement the above description. See COR-226
+
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts/-commercial-paper/-state/face-value.html b/docs/build/html/api/net.corda.contracts/-commercial-paper/-state/face-value.html
new file mode 100644
index 0000000000..c1a2e49b3c
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts/-commercial-paper/-state/face-value.html
@@ -0,0 +1,15 @@
+
+
+CommercialPaper.State.faceValue -
+
+
+
+net.corda.contracts / CommercialPaper / State / faceValue
+
+faceValue
+
+val faceValue : Amount < Issued < Currency > >
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts/-commercial-paper/-state/generate-mapped-object.html b/docs/build/html/api/net.corda.contracts/-commercial-paper/-state/generate-mapped-object.html
new file mode 100644
index 0000000000..2192715ed6
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts/-commercial-paper/-state/generate-mapped-object.html
@@ -0,0 +1,17 @@
+
+
+CommercialPaper.State.generateMappedObject -
+
+
+
+net.corda.contracts / CommercialPaper / State / generateMappedObject
+
+generateMappedObject
+
+fun generateMappedObject ( schema : MappedSchema ) : PersistentState
+Overrides QueryableState.generateMappedObject
+Object Relational Mapping support.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts/-commercial-paper/-state/index.html b/docs/build/html/api/net.corda.contracts/-commercial-paper/-state/index.html
new file mode 100644
index 0000000000..01d8e6d27e
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts/-commercial-paper/-state/index.html
@@ -0,0 +1,148 @@
+
+
+CommercialPaper.State -
+
+
+
+net.corda.contracts / CommercialPaper / State
+
+State
+data class State : OwnableState , QueryableState
+
+
+Constructors
+
+Properties
+
+Functions
+
+Extension Functions
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts/-commercial-paper/-state/issuance.html b/docs/build/html/api/net.corda.contracts/-commercial-paper/-state/issuance.html
new file mode 100644
index 0000000000..f264fea0ff
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts/-commercial-paper/-state/issuance.html
@@ -0,0 +1,15 @@
+
+
+CommercialPaper.State.issuance -
+
+
+
+net.corda.contracts / CommercialPaper / State / issuance
+
+issuance
+
+val issuance : PartyAndReference
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts/-commercial-paper/-state/maturity-date.html b/docs/build/html/api/net.corda.contracts/-commercial-paper/-state/maturity-date.html
new file mode 100644
index 0000000000..4525cfe040
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts/-commercial-paper/-state/maturity-date.html
@@ -0,0 +1,15 @@
+
+
+CommercialPaper.State.maturityDate -
+
+
+
+net.corda.contracts / CommercialPaper / State / maturityDate
+
+maturityDate
+
+val maturityDate : Instant
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts/-commercial-paper/-state/owner.html b/docs/build/html/api/net.corda.contracts/-commercial-paper/-state/owner.html
new file mode 100644
index 0000000000..8647028f3c
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts/-commercial-paper/-state/owner.html
@@ -0,0 +1,17 @@
+
+
+CommercialPaper.State.owner -
+
+
+
+net.corda.contracts / CommercialPaper / State / owner
+
+owner
+
+val owner : PublicKey
+Overrides OwnableState.owner
+There must be a MoveCommand signed by this key to claim the amount
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts/-commercial-paper/-state/participants.html b/docs/build/html/api/net.corda.contracts/-commercial-paper/-state/participants.html
new file mode 100644
index 0000000000..b64dca1a57
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts/-commercial-paper/-state/participants.html
@@ -0,0 +1,34 @@
+
+
+CommercialPaper.State.participants -
+
+
+
+net.corda.contracts / CommercialPaper / State / participants
+
+participants
+
+val participants : List < PublicKey >
+Overrides ContractState.participants
+A participant is any party that is able to consume this state in a valid transaction.
+The list of participants is required for certain types of transactions. For example, when changing the notary
+for this state (TransactionType.NotaryChange ), every participant has to be involved and approve the transaction
+so that they receive the updated state, and dont end up in a situation where they can no longer use a state
+they possess, since someone consumed that state during the notary change process.
+The participants list should normally be derived from the contents of the state. E.g. for Cash the participants
+list should just contain the owner.
+
+
+Getter
+
A participant is any party that is able to consume this state in a valid transaction.
+The list of participants is required for certain types of transactions. For example, when changing the notary
+for this state (TransactionType.NotaryChange ), every participant has to be involved and approve the transaction
+so that they receive the updated state, and dont end up in a situation where they can no longer use a state
+they possess, since someone consumed that state during the notary change process.
+The participants list should normally be derived from the contents of the state. E.g. for Cash the participants
+list should just contain the owner.
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts/-commercial-paper/-state/supported-schemas.html b/docs/build/html/api/net.corda.contracts/-commercial-paper/-state/supported-schemas.html
new file mode 100644
index 0000000000..6e384bd932
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts/-commercial-paper/-state/supported-schemas.html
@@ -0,0 +1,17 @@
+
+
+CommercialPaper.State.supportedSchemas -
+
+
+
+net.corda.contracts / CommercialPaper / State / supportedSchemas
+
+supportedSchemas
+
+fun supportedSchemas ( ) : Iterable < MappedSchema >
+Overrides QueryableState.supportedSchemas
+Object Relational Mapping support.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts/-commercial-paper/-state/to-string.html b/docs/build/html/api/net.corda.contracts/-commercial-paper/-state/to-string.html
new file mode 100644
index 0000000000..b18f5facbb
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts/-commercial-paper/-state/to-string.html
@@ -0,0 +1,15 @@
+
+
+CommercialPaper.State.toString -
+
+
+
+net.corda.contracts / CommercialPaper / State / toString
+
+toString
+
+fun toString ( ) : String
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts/-commercial-paper/-state/token.html b/docs/build/html/api/net.corda.contracts/-commercial-paper/-state/token.html
new file mode 100644
index 0000000000..8567dbf97a
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts/-commercial-paper/-state/token.html
@@ -0,0 +1,15 @@
+
+
+CommercialPaper.State.token -
+
+
+
+net.corda.contracts / CommercialPaper / State / token
+
+token
+
+val token : Issued < Terms >
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts/-commercial-paper/-state/with-face-value.html b/docs/build/html/api/net.corda.contracts/-commercial-paper/-state/with-face-value.html
new file mode 100644
index 0000000000..002c29bd12
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts/-commercial-paper/-state/with-face-value.html
@@ -0,0 +1,15 @@
+
+
+CommercialPaper.State.withFaceValue -
+
+
+
+net.corda.contracts / CommercialPaper / State / withFaceValue
+
+withFaceValue
+
+fun withFaceValue ( newFaceValue : Amount < Issued < Currency > > ) : <ERROR CLASS>
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts/-commercial-paper/-state/with-issuance.html b/docs/build/html/api/net.corda.contracts/-commercial-paper/-state/with-issuance.html
new file mode 100644
index 0000000000..89d0316618
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts/-commercial-paper/-state/with-issuance.html
@@ -0,0 +1,15 @@
+
+
+CommercialPaper.State.withIssuance -
+
+
+
+net.corda.contracts / CommercialPaper / State / withIssuance
+
+withIssuance
+
+fun withIssuance ( newIssuance : PartyAndReference ) : <ERROR CLASS>
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts/-commercial-paper/-state/with-maturity-date.html b/docs/build/html/api/net.corda.contracts/-commercial-paper/-state/with-maturity-date.html
new file mode 100644
index 0000000000..69894e7180
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts/-commercial-paper/-state/with-maturity-date.html
@@ -0,0 +1,15 @@
+
+
+CommercialPaper.State.withMaturityDate -
+
+
+
+net.corda.contracts / CommercialPaper / State / withMaturityDate
+
+withMaturityDate
+
+fun withMaturityDate ( newMaturityDate : Instant ) : <ERROR CLASS>
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts/-commercial-paper/-state/with-new-owner.html b/docs/build/html/api/net.corda.contracts/-commercial-paper/-state/with-new-owner.html
new file mode 100644
index 0000000000..78c05acd6f
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts/-commercial-paper/-state/with-new-owner.html
@@ -0,0 +1,17 @@
+
+
+CommercialPaper.State.withNewOwner -
+
+
+
+net.corda.contracts / CommercialPaper / State / withNewOwner
+
+withNewOwner
+
+fun withNewOwner ( newOwner : PublicKey ) : <ERROR CLASS>
+Overrides OwnableState.withNewOwner
+Copies the underlying data structure, replacing the owner field with this new value and leaving the rest alone
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts/-commercial-paper/-state/with-owner.html b/docs/build/html/api/net.corda.contracts/-commercial-paper/-state/with-owner.html
new file mode 100644
index 0000000000..c674fa0ca7
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts/-commercial-paper/-state/with-owner.html
@@ -0,0 +1,15 @@
+
+
+CommercialPaper.State.withOwner -
+
+
+
+net.corda.contracts / CommercialPaper / State / withOwner
+
+withOwner
+
+fun withOwner ( newOwner : PublicKey ) : <ERROR CLASS>
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts/-commercial-paper/-terms/-init-.html b/docs/build/html/api/net.corda.contracts/-commercial-paper/-terms/-init-.html
new file mode 100644
index 0000000000..e2832a5fe3
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts/-commercial-paper/-terms/-init-.html
@@ -0,0 +1,14 @@
+
+
+CommercialPaper.Terms. -
+
+
+
+net.corda.contracts / CommercialPaper / Terms / <init>
+
+<init>
+Terms ( asset : Issued < Currency > , maturityDate : Instant )
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts/-commercial-paper/-terms/asset.html b/docs/build/html/api/net.corda.contracts/-commercial-paper/-terms/asset.html
new file mode 100644
index 0000000000..2f744a2716
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts/-commercial-paper/-terms/asset.html
@@ -0,0 +1,15 @@
+
+
+CommercialPaper.Terms.asset -
+
+
+
+net.corda.contracts / CommercialPaper / Terms / asset
+
+asset
+
+val asset : Issued < Currency >
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts/-commercial-paper/-terms/index.html b/docs/build/html/api/net.corda.contracts/-commercial-paper/-terms/index.html
new file mode 100644
index 0000000000..c80a9f3404
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts/-commercial-paper/-terms/index.html
@@ -0,0 +1,42 @@
+
+
+CommercialPaper.Terms -
+
+
+
+net.corda.contracts / CommercialPaper / Terms
+
+Terms
+data class Terms
+
+
+Constructors
+
+Properties
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts/-commercial-paper/-terms/maturity-date.html b/docs/build/html/api/net.corda.contracts/-commercial-paper/-terms/maturity-date.html
new file mode 100644
index 0000000000..ebe9960976
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts/-commercial-paper/-terms/maturity-date.html
@@ -0,0 +1,15 @@
+
+
+CommercialPaper.Terms.maturityDate -
+
+
+
+net.corda.contracts / CommercialPaper / Terms / maturityDate
+
+maturityDate
+
+val maturityDate : Instant
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts/-commercial-paper/generate-issue.html b/docs/build/html/api/net.corda.contracts/-commercial-paper/generate-issue.html
new file mode 100644
index 0000000000..d32d04f898
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts/-commercial-paper/generate-issue.html
@@ -0,0 +1,18 @@
+
+
+CommercialPaper.generateIssue -
+
+
+
+net.corda.contracts / CommercialPaper / generateIssue
+
+generateIssue
+
+fun generateIssue ( issuance : PartyAndReference , faceValue : Amount < Issued < Currency > > , maturityDate : Instant , notary : Party ) : TransactionBuilder
+Returns a transaction that issues commercial paper, owned by the issuing parties key. Does not update
+an existing transaction because you arent able to issue multiple pieces of CP in a single transaction
+at the moment: this restriction is not fundamental and may be lifted later.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts/-commercial-paper/generate-move.html b/docs/build/html/api/net.corda.contracts/-commercial-paper/generate-move.html
new file mode 100644
index 0000000000..7c9171fc6f
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts/-commercial-paper/generate-move.html
@@ -0,0 +1,16 @@
+
+
+CommercialPaper.generateMove -
+
+
+
+net.corda.contracts / CommercialPaper / generateMove
+
+generateMove
+
+fun generateMove ( tx : TransactionBuilder , paper : StateAndRef < State > , newOwner : PublicKey ) : Unit
+Updates the given partial transaction with an input/output/command to reassign ownership of the paper.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts/-commercial-paper/generate-redeem.html b/docs/build/html/api/net.corda.contracts/-commercial-paper/generate-redeem.html
new file mode 100644
index 0000000000..a409e0d713
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts/-commercial-paper/generate-redeem.html
@@ -0,0 +1,21 @@
+
+
+CommercialPaper.generateRedeem -
+
+
+
+net.corda.contracts / CommercialPaper / generateRedeem
+
+generateRedeem
+
+fun generateRedeem ( tx : TransactionBuilder , paper : StateAndRef < State > , vault : VaultService ) : Unit
+Intended to be called by the issuer of some commercial paper, when an owner has notified us that they wish
+to redeem the paper. We must therefore send enough money to the key that owns the paper to satisfy the face
+value, and then ensure the paper is removed from the ledger.
+Exceptions
+
+InsufficientBalanceException
- if the vault doesnt contain enough money to pay the redeemer.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts/-commercial-paper/index.html b/docs/build/html/api/net.corda.contracts/-commercial-paper/index.html
new file mode 100644
index 0000000000..6a1b7b6fa8
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts/-commercial-paper/index.html
@@ -0,0 +1,107 @@
+
+
+CommercialPaper -
+
+
+
+net.corda.contracts / CommercialPaper
+
+CommercialPaper
+class CommercialPaper : Contract
+
+
+Types
+
+Constructors
+
+
+
+
+<init>
+
+CommercialPaper ( )
+
+
+
+Properties
+
+
+
+
+legalContractReference
+
+val legalContractReference : SecureHash
Unparsed reference to the natural language contract that this code is supposed to express (usually a hash of
+the contracts contents).
+
+
+
+
+Functions
+
+
+
+
+generateIssue
+
+fun generateIssue ( issuance : PartyAndReference , faceValue : Amount < Issued < Currency > > , maturityDate : Instant , notary : Party ) : TransactionBuilder
Returns a transaction that issues commercial paper, owned by the issuing parties key. Does not update
+an existing transaction because you arent able to issue multiple pieces of CP in a single transaction
+at the moment: this restriction is not fundamental and may be lifted later.
+
+
+
+
+generateMove
+
+fun generateMove ( tx : TransactionBuilder , paper : StateAndRef < State > , newOwner : PublicKey ) : Unit
Updates the given partial transaction with an input/output/command to reassign ownership of the paper.
+
+
+
+
+generateRedeem
+
+fun generateRedeem ( tx : TransactionBuilder , paper : StateAndRef < State > , vault : VaultService ) : Unit
Intended to be called by the issuer of some commercial paper, when an owner has notified us that they wish
+to redeem the paper. We must therefore send enough money to the key that owns the paper to satisfy the face
+value, and then ensure the paper is removed from the ledger.
+
+
+
+
+verify
+
+fun verify ( tx : TransactionForContract ) : Unit
Takes an object that represents a state transition, and ensures the inputs/outputs/commands make sense.
+Must throw an exception if theres a problem that should prevent state transition. Takes a single object
+rather than an argument so that additional data can be added without breaking binary compatibility with
+existing contract code.
+
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts/-commercial-paper/legal-contract-reference.html b/docs/build/html/api/net.corda.contracts/-commercial-paper/legal-contract-reference.html
new file mode 100644
index 0000000000..b6eb728b05
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts/-commercial-paper/legal-contract-reference.html
@@ -0,0 +1,18 @@
+
+
+CommercialPaper.legalContractReference -
+
+
+
+net.corda.contracts / CommercialPaper / legalContractReference
+
+legalContractReference
+
+val legalContractReference : SecureHash
+Overrides Contract.legalContractReference
+Unparsed reference to the natural language contract that this code is supposed to express (usually a hash of
+the contracts contents).
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts/-commercial-paper/verify.html b/docs/build/html/api/net.corda.contracts/-commercial-paper/verify.html
new file mode 100644
index 0000000000..5e5d25cbb1
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts/-commercial-paper/verify.html
@@ -0,0 +1,20 @@
+
+
+CommercialPaper.verify -
+
+
+
+net.corda.contracts / CommercialPaper / verify
+
+verify
+
+fun verify ( tx : TransactionForContract ) : Unit
+Overrides Contract.verify
+Takes an object that represents a state transition, and ensures the inputs/outputs/commands make sense.
+Must throw an exception if theres a problem that should prevent state transition. Takes a single object
+rather than an argument so that additional data can be added without breaking binary compatibility with
+existing contract code.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts/index.html b/docs/build/html/api/net.corda.contracts/index.html
new file mode 100644
index 0000000000..1a9cfd56a0
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts/index.html
@@ -0,0 +1,70 @@
+
+
+net.corda.contracts -
+
+
+
+net.corda.contracts
+
+Package net.corda.contracts
+Types
+
+Properties
+
+
+
+
+CP_LEGACY_PROGRAM_ID
+
+val CP_LEGACY_PROGRAM_ID : CommercialPaperLegacy
Legacy version of CommercialPaper that includes the full verification logic itself, rather than breaking it
+into clauses. This is here just as an example for the contract tutorial.
+
+
+
+
+CP_PROGRAM_ID
+
+val CP_PROGRAM_ID : CommercialPaper
This is an ultra-trivial implementation of commercial paper, which is essentially a simpler version of a corporate
+bond. It can be seen as a company-specific currency. A company issues CP with a particular face value, say $100,
+but sells it for less, say $90. The paper can be redeemed for cash at a given date in the future. Thus this example
+would have a 10% interest rate with a single repayment. Commercial paper is often rolled over (the maturity date
+is adjusted as if the paper was redeemed and immediately repurchased, but without having to front the cash).
+
+
+
+
+Functions
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts/owned by.html b/docs/build/html/api/net.corda.contracts/owned by.html
new file mode 100644
index 0000000000..95a8eae3d8
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts/owned by.html
@@ -0,0 +1,17 @@
+
+
+owned by -
+
+
+
+net.corda.contracts / owned by
+
+owned by
+
+infix fun State . owned by ( owner : PublicKey ) : State
+
+infix fun <ERROR CLASS> . owned by ( newOwner : PublicKey ) : <ERROR CLASS>
+
+
+
+
diff --git a/docs/build/html/api/net.corda.contracts/with notary.html b/docs/build/html/api/net.corda.contracts/with notary.html
new file mode 100644
index 0000000000..e03d080a8a
--- /dev/null
+++ b/docs/build/html/api/net.corda.contracts/with notary.html
@@ -0,0 +1,15 @@
+
+
+with notary -
+
+
+
+net.corda.contracts / with notary
+
+with notary
+
+infix fun State . with notary ( notary : Party ) : TransactionState < State >
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts.clauses/-all-composition/-init-.html b/docs/build/html/api/net.corda.core.contracts.clauses/-all-composition/-init-.html
new file mode 100644
index 0000000000..ac46b7d82d
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts.clauses/-all-composition/-init-.html
@@ -0,0 +1,15 @@
+
+
+AllComposition. -
+
+
+
+net.corda.core.contracts.clauses / AllComposition / <init>
+
+<init>
+AllComposition ( firstClause : Clause < S , C , K > , vararg remainingClauses : Clause < S , C , K > )
+Compose a number of clauses, such that all of the clauses must run for verification to pass.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts.clauses/-all-composition/clauses.html b/docs/build/html/api/net.corda.core.contracts.clauses/-all-composition/clauses.html
new file mode 100644
index 0000000000..9fce0f0a7e
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts.clauses/-all-composition/clauses.html
@@ -0,0 +1,17 @@
+
+
+AllComposition.clauses -
+
+
+
+net.corda.core.contracts.clauses / AllComposition / clauses
+
+clauses
+
+val clauses : ArrayList < Clause < S , C , K > >
+Overrides CompositeClause.clauses
+List of clauses under this composite clause
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts.clauses/-all-composition/index.html b/docs/build/html/api/net.corda.core.contracts.clauses/-all-composition/index.html
new file mode 100644
index 0000000000..c8abe20646
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts.clauses/-all-composition/index.html
@@ -0,0 +1,78 @@
+
+
+AllComposition -
+
+
+
+net.corda.core.contracts.clauses / AllComposition
+
+AllComposition
+class AllComposition < S : ContractState , C : CommandData , K : Any > : CompositeClause < S , C , K >
+Compose a number of clauses, such that all of the clauses must run for verification to pass.
+
+
+Constructors
+
+
+
+
+<init>
+
+AllComposition ( firstClause : Clause < S , C , K > , vararg remainingClauses : Clause < S , C , K > )
Compose a number of clauses, such that all of the clauses must run for verification to pass.
+
+
+
+
+Properties
+
+Functions
+
+
+
+
+matchedClauses
+
+fun matchedClauses ( commands : List < AuthenticatedObject < C > > ) : List < Clause < S , C , K > >
Determine which clauses are matched by the supplied commands
+
+
+
+
+toString
+
+fun toString ( ) : String
+
+
+
+verify
+
+fun verify ( tx : TransactionForContract , inputs : List < S > , outputs : List < S > , commands : List < AuthenticatedObject < C > > , groupingKey : K ? ) : Set < C >
Verify the transaction matches the conditions from this clause. For example, a "no zero amount output" clause
+would check each of the output states that it applies to, looking for a zero amount, and throw IllegalStateException
+if any matched.
+
+
+
+
+Extension Functions
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts.clauses/-all-composition/matched-clauses.html b/docs/build/html/api/net.corda.core.contracts.clauses/-all-composition/matched-clauses.html
new file mode 100644
index 0000000000..72d9150aa3
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts.clauses/-all-composition/matched-clauses.html
@@ -0,0 +1,16 @@
+
+
+AllComposition.matchedClauses -
+
+
+
+net.corda.core.contracts.clauses / AllComposition / matchedClauses
+
+matchedClauses
+
+fun matchedClauses ( commands : List < AuthenticatedObject < C > > ) : List < Clause < S , C , K > >
+Determine which clauses are matched by the supplied commands
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts.clauses/-all-composition/to-string.html b/docs/build/html/api/net.corda.core.contracts.clauses/-all-composition/to-string.html
new file mode 100644
index 0000000000..98840d16bf
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts.clauses/-all-composition/to-string.html
@@ -0,0 +1,15 @@
+
+
+AllComposition.toString -
+
+
+
+net.corda.core.contracts.clauses / AllComposition / toString
+
+toString
+
+fun toString ( ) : String
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts.clauses/-all-composition/verify.html b/docs/build/html/api/net.corda.core.contracts.clauses/-all-composition/verify.html
new file mode 100644
index 0000000000..a643949466
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts.clauses/-all-composition/verify.html
@@ -0,0 +1,43 @@
+
+
+AllComposition.verify -
+
+
+
+net.corda.core.contracts.clauses / AllComposition / verify
+
+verify
+
+fun verify ( tx : TransactionForContract , inputs : List < S > , outputs : List < S > , commands : List < AuthenticatedObject < C > > , groupingKey : K ? ) : Set < C >
+Verify the transaction matches the conditions from this clause. For example, a "no zero amount output" clause
+would check each of the output states that it applies to, looking for a zero amount, and throw IllegalStateException
+if any matched.
+Parameters
+
+tx
- the full transaction being verified. This is provided for cases where clauses need to access
+states or commands outside of their normal scope.
+
+
+inputs
- input states which are relevant to this clause. By default this is the set passed into verifyClause ,
+but may be further reduced by clauses such as GroupClauseVerifier .
+
+
+outputs
- output states which are relevant to this clause. By default this is the set passed into verifyClause ,
+but may be further reduced by clauses such as GroupClauseVerifier .
+
+
+commands
- commands which are relevant to this clause. By default this is the set passed into verifyClause ,
+but may be further reduced by clauses such as GroupClauseVerifier .
+
+
+groupingKey
- a grouping key applied to states and commands, where applicable. Taken from
+TransactionForContract.InOutGroup .
+Return
+the set of commands that are consumed IF this clause is matched, and cannot be used to match a
+later clause. This would normally be all commands matching "requiredCommands" for this clause, but some
+verify() functions may do further filtering on possible matches, and return a subset. This may also include
+commands that were not required (for example the Exit command for fungible assets is optional).
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts.clauses/-any-composition/-init-.html b/docs/build/html/api/net.corda.core.contracts.clauses/-any-composition/-init-.html
new file mode 100644
index 0000000000..05cee9bf12
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts.clauses/-any-composition/-init-.html
@@ -0,0 +1,15 @@
+
+
+AnyComposition. -
+
+
+
+net.corda.core.contracts.clauses / AnyComposition / <init>
+
+<init>
+AnyComposition ( vararg rawClauses : Clause < S , C , K > )
+Compose a number of clauses, such that any number of the clauses can run.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts.clauses/-any-composition/clauses.html b/docs/build/html/api/net.corda.core.contracts.clauses/-any-composition/clauses.html
new file mode 100644
index 0000000000..b0099f2e68
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts.clauses/-any-composition/clauses.html
@@ -0,0 +1,17 @@
+
+
+AnyComposition.clauses -
+
+
+
+net.corda.core.contracts.clauses / AnyComposition / clauses
+
+clauses
+
+val clauses : List < Clause < S , C , K > >
+Overrides CompositeClause.clauses
+List of clauses under this composite clause
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts.clauses/-any-composition/index.html b/docs/build/html/api/net.corda.core.contracts.clauses/-any-composition/index.html
new file mode 100644
index 0000000000..a67001c00d
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts.clauses/-any-composition/index.html
@@ -0,0 +1,78 @@
+
+
+AnyComposition -
+
+
+
+net.corda.core.contracts.clauses / AnyComposition
+
+AnyComposition
+class AnyComposition < in S : ContractState , C : CommandData , in K : Any > : CompositeClause < S , C , K >
+Compose a number of clauses, such that any number of the clauses can run.
+
+
+Constructors
+
+
+
+
+<init>
+
+AnyComposition ( vararg rawClauses : Clause < S , C , K > )
Compose a number of clauses, such that any number of the clauses can run.
+
+
+
+
+Properties
+
+
+
+
+clauses
+
+val clauses : List < Clause < S , C , K > >
List of clauses under this composite clause
+
+
+
+
+Functions
+
+
+
+
+matchedClauses
+
+fun matchedClauses ( commands : List < AuthenticatedObject < C > > ) : List < Clause < S , C , K > >
Determine which clauses are matched by the supplied commands
+
+
+
+
+toString
+
+fun toString ( ) : String
+
+
+
+verify
+
+fun verify ( tx : TransactionForContract , inputs : List < S > , outputs : List < S > , commands : List < AuthenticatedObject < C > > , groupingKey : K ? ) : Set < C >
Verify the transaction matches the conditions from this clause. For example, a "no zero amount output" clause
+would check each of the output states that it applies to, looking for a zero amount, and throw IllegalStateException
+if any matched.
+
+
+
+
+Extension Functions
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts.clauses/-any-composition/matched-clauses.html b/docs/build/html/api/net.corda.core.contracts.clauses/-any-composition/matched-clauses.html
new file mode 100644
index 0000000000..8c29771787
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts.clauses/-any-composition/matched-clauses.html
@@ -0,0 +1,16 @@
+
+
+AnyComposition.matchedClauses -
+
+
+
+net.corda.core.contracts.clauses / AnyComposition / matchedClauses
+
+matchedClauses
+
+fun matchedClauses ( commands : List < AuthenticatedObject < C > > ) : List < Clause < S , C , K > >
+Determine which clauses are matched by the supplied commands
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts.clauses/-any-composition/to-string.html b/docs/build/html/api/net.corda.core.contracts.clauses/-any-composition/to-string.html
new file mode 100644
index 0000000000..cf60b4bdee
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts.clauses/-any-composition/to-string.html
@@ -0,0 +1,15 @@
+
+
+AnyComposition.toString -
+
+
+
+net.corda.core.contracts.clauses / AnyComposition / toString
+
+toString
+
+fun toString ( ) : String
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts.clauses/-any-composition/verify.html b/docs/build/html/api/net.corda.core.contracts.clauses/-any-composition/verify.html
new file mode 100644
index 0000000000..e86edfce30
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts.clauses/-any-composition/verify.html
@@ -0,0 +1,43 @@
+
+
+AnyComposition.verify -
+
+
+
+net.corda.core.contracts.clauses / AnyComposition / verify
+
+verify
+
+fun verify ( tx : TransactionForContract , inputs : List < S > , outputs : List < S > , commands : List < AuthenticatedObject < C > > , groupingKey : K ? ) : Set < C >
+Verify the transaction matches the conditions from this clause. For example, a "no zero amount output" clause
+would check each of the output states that it applies to, looking for a zero amount, and throw IllegalStateException
+if any matched.
+Parameters
+
+tx
- the full transaction being verified. This is provided for cases where clauses need to access
+states or commands outside of their normal scope.
+
+
+inputs
- input states which are relevant to this clause. By default this is the set passed into verifyClause ,
+but may be further reduced by clauses such as GroupClauseVerifier .
+
+
+outputs
- output states which are relevant to this clause. By default this is the set passed into verifyClause ,
+but may be further reduced by clauses such as GroupClauseVerifier .
+
+
+commands
- commands which are relevant to this clause. By default this is the set passed into verifyClause ,
+but may be further reduced by clauses such as GroupClauseVerifier .
+
+
+groupingKey
- a grouping key applied to states and commands, where applicable. Taken from
+TransactionForContract.InOutGroup .
+Return
+the set of commands that are consumed IF this clause is matched, and cannot be used to match a
+later clause. This would normally be all commands matching "requiredCommands" for this clause, but some
+verify() functions may do further filtering on possible matches, and return a subset. This may also include
+commands that were not required (for example the Exit command for fungible assets is optional).
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts.clauses/-clause/-init-.html b/docs/build/html/api/net.corda.core.contracts.clauses/-clause/-init-.html
new file mode 100644
index 0000000000..2771bc54c8
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts.clauses/-clause/-init-.html
@@ -0,0 +1,28 @@
+
+
+Clause. -
+
+
+
+net.corda.core.contracts.clauses / Clause / <init>
+
+<init>
+Clause ( )
+A clause of a contract, containing a chunk of verification logic. That logic may be delegated to other clauses, or
+provided directly by this clause.
+Parameters
+
+S
- the type of contract state this clause operates on.
+
+
+C
- a common supertype of commands this clause operates on.
+
+
+K
- the type of the grouping key for states this clause operates on. Use Unit if not applicable.
+See Also
+
CompositeClause
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts.clauses/-clause/get-execution-path.html b/docs/build/html/api/net.corda.core.contracts.clauses/-clause/get-execution-path.html
new file mode 100644
index 0000000000..bc8fa0128f
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts.clauses/-clause/get-execution-path.html
@@ -0,0 +1,16 @@
+
+
+Clause.getExecutionPath -
+
+
+
+net.corda.core.contracts.clauses / Clause / getExecutionPath
+
+getExecutionPath
+
+open fun getExecutionPath ( commands : List < AuthenticatedObject < C > > ) : List < Clause < * , * , * > >
+Determine the subclauses which will be verified as a result of verifying this clause.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts.clauses/-clause/index.html b/docs/build/html/api/net.corda.core.contracts.clauses/-clause/index.html
new file mode 100644
index 0000000000..1d44caa23e
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts.clauses/-clause/index.html
@@ -0,0 +1,197 @@
+
+
+Clause -
+
+
+
+net.corda.core.contracts.clauses / Clause
+
+Clause
+abstract class Clause < in S : ContractState , C : CommandData , in K : Any >
+A clause of a contract, containing a chunk of verification logic. That logic may be delegated to other clauses, or
+provided directly by this clause.
+Parameters
+
+S
- the type of contract state this clause operates on.
+
+
+C
- a common supertype of commands this clause operates on.
+
+
+K
- the type of the grouping key for states this clause operates on. Use Unit if not applicable.
+See Also
+
CompositeClause
+
+
+
+Constructors
+
+
+
+
+<init>
+
+Clause ( )
A clause of a contract, containing a chunk of verification logic. That logic may be delegated to other clauses, or
+provided directly by this clause.
+
+
+
+
+Properties
+
+Functions
+
+
+
+
+getExecutionPath
+
+open fun getExecutionPath ( commands : List < AuthenticatedObject < C > > ) : List < Clause < * , * , * > >
Determine the subclauses which will be verified as a result of verifying this clause.
+
+
+
+
+verify
+
+abstract fun verify ( tx : TransactionForContract , inputs : List < S > , outputs : List < S > , commands : List < AuthenticatedObject < C > > , groupingKey : K ? ) : Set < C >
Verify the transaction matches the conditions from this clause. For example, a "no zero amount output" clause
+would check each of the output states that it applies to, looking for a zero amount, and throw IllegalStateException
+if any matched.
+
+
+
+
+Companion Object Properties
+
+
+
+
+log
+
+val log : <ERROR CLASS>
+
+
+
+Extension Functions
+
+
+
+
+matches
+
+fun < C : CommandData > Clause < * , C , * > . matches ( commands : List < AuthenticatedObject < C > > ) : Boolean
Determine if the given list of commands matches the required commands for a clause to trigger.
+
+
+
+
+Inheritors
+
+
+
+
+AbstractConserveAmount
+
+abstract class AbstractConserveAmount < S : FungibleAsset < T > , C : CommandData , T : Any > : Clause < S , C , Issued < T > >
Standardised clause for checking input/output balances of fungible assets. Requires that a
+Move command is provided, and errors if absent. Must be the last clause under a grouping clause;
+errors on no-match, ends on match.
+
+
+
+
+AbstractIssue
+
+abstract class AbstractIssue < in S : ContractState , C : CommandData , T : Any > : Clause < S , C , Issued < T > >
Standard issue clause for contracts that issue fungible assets.
+
+
+
+
+ClauseVerifier
+
+class ClauseVerifier < S : LinearState , C : CommandData > : Clause < S , C , Unit >
Standard clause to verify the LinearState safety properties.
+
+
+
+
+CompositeClause
+
+abstract class CompositeClause < in S : ContractState , C : CommandData , in K : Any > : Clause < S , C , K >
Abstract supertype for clauses which compose other clauses together in some logical manner.
+
+
+
+
+FilterOn
+
+class FilterOn < S : ContractState , C : CommandData , K : Any > : Clause < ContractState , C , K >
Filter the states that are passed through to the wrapped clause, to restrict them to a specific type.
+
+
+
+
+GroupClauseVerifier
+
+abstract class GroupClauseVerifier < S : ContractState , C : CommandData , K : Any > : Clause < ContractState , C , Unit >
+
+
+
+Move
+
+class Move : Clause < State , Commands , Issued < Terms > >
+
+
+
+NetClause
+
+open class NetClause < C : CommandData , P > : Clause < ContractState , C , Unit >
Clause for netting contract states. Currently only supports obligation contract.
+
+
+
+
+NoZeroSizedOutputs
+
+open class NoZeroSizedOutputs < in S : FungibleAsset < T > , C : CommandData , T : Any > : Clause < S , C , Issued < T > >
Clause for fungible asset contracts, which enforces that no output state should have
+a balance of zero.
+
+
+
+
+Redeem
+
+class Redeem : Clause < State , Commands , Issued < Terms > >
+
+
+
+SetLifecycle
+
+class SetLifecycle < P > : Clause < State < P > , Commands , Issued < Terms < P > > >
Obligation-specific clause for changing the lifecycle of one or more states.
+
+
+
+
+Settle
+
+class Settle < P > : Clause < State < P > , Commands , Issued < Terms < P > > >
Obligation-specific clause for settling an outstanding obligation by witnessing
+change of ownership of other states to fulfil
+
+
+
+
+VerifyLifecycle
+
+class VerifyLifecycle < S : ContractState , C : CommandData , T : Any , P > : Clause < S , C , T >
Obligation-specific clause for verifying that all states are in
+normal lifecycle. In a group clause set, this must be run after
+any lifecycle change clause, which is the only clause that involve
+non-standard lifecycle states on input/output.
+
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts.clauses/-clause/log.html b/docs/build/html/api/net.corda.core.contracts.clauses/-clause/log.html
new file mode 100644
index 0000000000..6eab926987
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts.clauses/-clause/log.html
@@ -0,0 +1,15 @@
+
+
+Clause.log -
+
+
+
+net.corda.core.contracts.clauses / Clause / log
+
+log
+
+val log : <ERROR CLASS>
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts.clauses/-clause/required-commands.html b/docs/build/html/api/net.corda.core.contracts.clauses/-clause/required-commands.html
new file mode 100644
index 0000000000..a5ef30b0b5
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts.clauses/-clause/required-commands.html
@@ -0,0 +1,16 @@
+
+
+Clause.requiredCommands -
+
+
+
+net.corda.core.contracts.clauses / Clause / requiredCommands
+
+requiredCommands
+
+open val requiredCommands : Set < Class < out CommandData > >
+Determine whether this clause runs or not
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts.clauses/-clause/verify.html b/docs/build/html/api/net.corda.core.contracts.clauses/-clause/verify.html
new file mode 100644
index 0000000000..a827ad0481
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts.clauses/-clause/verify.html
@@ -0,0 +1,43 @@
+
+
+Clause.verify -
+
+
+
+net.corda.core.contracts.clauses / Clause / verify
+
+verify
+
+abstract fun verify ( tx : TransactionForContract , inputs : List < S > , outputs : List < S > , commands : List < AuthenticatedObject < C > > , groupingKey : K ? ) : Set < C >
+Verify the transaction matches the conditions from this clause. For example, a "no zero amount output" clause
+would check each of the output states that it applies to, looking for a zero amount, and throw IllegalStateException
+if any matched.
+Parameters
+
+tx
- the full transaction being verified. This is provided for cases where clauses need to access
+states or commands outside of their normal scope.
+
+
+inputs
- input states which are relevant to this clause. By default this is the set passed into verifyClause ,
+but may be further reduced by clauses such as GroupClauseVerifier .
+
+
+outputs
- output states which are relevant to this clause. By default this is the set passed into verifyClause ,
+but may be further reduced by clauses such as GroupClauseVerifier .
+
+
+commands
- commands which are relevant to this clause. By default this is the set passed into verifyClause ,
+but may be further reduced by clauses such as GroupClauseVerifier .
+
+
+groupingKey
- a grouping key applied to states and commands, where applicable. Taken from
+TransactionForContract.InOutGroup .
+Return
+the set of commands that are consumed IF this clause is matched, and cannot be used to match a
+later clause. This would normally be all commands matching "requiredCommands" for this clause, but some
+verify() functions may do further filtering on possible matches, and return a subset. This may also include
+commands that were not required (for example the Exit command for fungible assets is optional).
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts.clauses/-composite-clause/-init-.html b/docs/build/html/api/net.corda.core.contracts.clauses/-composite-clause/-init-.html
new file mode 100644
index 0000000000..c02be6f9f8
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts.clauses/-composite-clause/-init-.html
@@ -0,0 +1,15 @@
+
+
+CompositeClause. -
+
+
+
+net.corda.core.contracts.clauses / CompositeClause / <init>
+
+<init>
+CompositeClause ( )
+Abstract supertype for clauses which compose other clauses together in some logical manner.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts.clauses/-composite-clause/clauses.html b/docs/build/html/api/net.corda.core.contracts.clauses/-composite-clause/clauses.html
new file mode 100644
index 0000000000..e5f32f5d71
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts.clauses/-composite-clause/clauses.html
@@ -0,0 +1,16 @@
+
+
+CompositeClause.clauses -
+
+
+
+net.corda.core.contracts.clauses / CompositeClause / clauses
+
+clauses
+
+abstract val clauses : List < Clause < S , C , K > >
+List of clauses under this composite clause
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts.clauses/-composite-clause/get-execution-path.html b/docs/build/html/api/net.corda.core.contracts.clauses/-composite-clause/get-execution-path.html
new file mode 100644
index 0000000000..63373474f2
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts.clauses/-composite-clause/get-execution-path.html
@@ -0,0 +1,16 @@
+
+
+CompositeClause.getExecutionPath -
+
+
+
+net.corda.core.contracts.clauses / CompositeClause / getExecutionPath
+
+getExecutionPath
+
+open fun getExecutionPath ( commands : List < AuthenticatedObject < C > > ) : List < Clause < * , * , * > >
+Determine the subclauses which will be verified as a result of verifying this clause.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts.clauses/-composite-clause/index.html b/docs/build/html/api/net.corda.core.contracts.clauses/-composite-clause/index.html
new file mode 100644
index 0000000000..4999fcb47f
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts.clauses/-composite-clause/index.html
@@ -0,0 +1,108 @@
+
+
+CompositeClause -
+
+
+
+net.corda.core.contracts.clauses / CompositeClause
+
+CompositeClause
+abstract class CompositeClause < in S : ContractState , C : CommandData , in K : Any > : Clause < S , C , K >
+Abstract supertype for clauses which compose other clauses together in some logical manner.
+
+
+Constructors
+
+
+
+
+<init>
+
+CompositeClause ( )
Abstract supertype for clauses which compose other clauses together in some logical manner.
+
+
+
+
+Properties
+
+
+
+
+clauses
+
+abstract val clauses : List < Clause < S , C , K > >
List of clauses under this composite clause
+
+
+
+
+Inherited Properties
+
+Functions
+
+Extension Functions
+
+Inheritors
+
+
+
+
+AllComposition
+
+class AllComposition < S : ContractState , C : CommandData , K : Any > : CompositeClause < S , C , K >
Compose a number of clauses, such that all of the clauses must run for verification to pass.
+
+
+
+
+AnyComposition
+
+class AnyComposition < in S : ContractState , C : CommandData , in K : Any > : CompositeClause < S , C , K >
Compose a number of clauses, such that any number of the clauses can run.
+
+
+
+
+FirstComposition
+
+class FirstComposition < S : ContractState , C : CommandData , K : Any > : CompositeClause < S , C , K >
Compose a number of clauses, such that the first match is run, and it errors if none is run.
+
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts.clauses/-composite-clause/matched-clauses.html b/docs/build/html/api/net.corda.core.contracts.clauses/-composite-clause/matched-clauses.html
new file mode 100644
index 0000000000..387d2cde8e
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts.clauses/-composite-clause/matched-clauses.html
@@ -0,0 +1,16 @@
+
+
+CompositeClause.matchedClauses -
+
+
+
+net.corda.core.contracts.clauses / CompositeClause / matchedClauses
+
+matchedClauses
+
+abstract fun matchedClauses ( commands : List < AuthenticatedObject < C > > ) : List < Clause < S , C , K > >
+Determine which clauses are matched by the supplied commands
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts.clauses/-filter-on/-init-.html b/docs/build/html/api/net.corda.core.contracts.clauses/-filter-on/-init-.html
new file mode 100644
index 0000000000..cccc222b82
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts.clauses/-filter-on/-init-.html
@@ -0,0 +1,15 @@
+
+
+FilterOn. -
+
+
+
+net.corda.core.contracts.clauses / FilterOn / <init>
+
+<init>
+FilterOn ( clause : Clause < S , C , K > , filterStates : ( List < ContractState > ) -> List < S > )
+Filter the states that are passed through to the wrapped clause, to restrict them to a specific type.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts.clauses/-filter-on/clause.html b/docs/build/html/api/net.corda.core.contracts.clauses/-filter-on/clause.html
new file mode 100644
index 0000000000..a72ff22023
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts.clauses/-filter-on/clause.html
@@ -0,0 +1,15 @@
+
+
+FilterOn.clause -
+
+
+
+net.corda.core.contracts.clauses / FilterOn / clause
+
+clause
+
+val clause : Clause < S , C , K >
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts.clauses/-filter-on/filter-states.html b/docs/build/html/api/net.corda.core.contracts.clauses/-filter-on/filter-states.html
new file mode 100644
index 0000000000..5c8ac09fdd
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts.clauses/-filter-on/filter-states.html
@@ -0,0 +1,15 @@
+
+
+FilterOn.filterStates -
+
+
+
+net.corda.core.contracts.clauses / FilterOn / filterStates
+
+filterStates
+
+val filterStates : ( List < ContractState > ) -> List < S >
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts.clauses/-filter-on/get-execution-path.html b/docs/build/html/api/net.corda.core.contracts.clauses/-filter-on/get-execution-path.html
new file mode 100644
index 0000000000..700bcabb80
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts.clauses/-filter-on/get-execution-path.html
@@ -0,0 +1,16 @@
+
+
+FilterOn.getExecutionPath -
+
+
+
+net.corda.core.contracts.clauses / FilterOn / getExecutionPath
+
+getExecutionPath
+
+fun getExecutionPath ( commands : List < AuthenticatedObject < C > > ) : List < Clause < * , * , * > >
+Determine the subclauses which will be verified as a result of verifying this clause.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts.clauses/-filter-on/index.html b/docs/build/html/api/net.corda.core.contracts.clauses/-filter-on/index.html
new file mode 100644
index 0000000000..284b46d61a
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts.clauses/-filter-on/index.html
@@ -0,0 +1,84 @@
+
+
+FilterOn -
+
+
+
+net.corda.core.contracts.clauses / FilterOn
+
+FilterOn
+class FilterOn < S : ContractState , C : CommandData , K : Any > : Clause < ContractState , C , K >
+Filter the states that are passed through to the wrapped clause, to restrict them to a specific type.
+
+
+Constructors
+
+
+
+
+<init>
+
+FilterOn ( clause : Clause < S , C , K > , filterStates : ( List < ContractState > ) -> List < S > )
Filter the states that are passed through to the wrapped clause, to restrict them to a specific type.
+
+
+
+
+Properties
+
+Functions
+
+
+
+
+getExecutionPath
+
+fun getExecutionPath ( commands : List < AuthenticatedObject < C > > ) : List < Clause < * , * , * > >
Determine the subclauses which will be verified as a result of verifying this clause.
+
+
+
+
+verify
+
+fun verify ( tx : TransactionForContract , inputs : List < ContractState > , outputs : List < ContractState > , commands : List < AuthenticatedObject < C > > , groupingKey : K ? ) : Set < C >
Verify the transaction matches the conditions from this clause. For example, a "no zero amount output" clause
+would check each of the output states that it applies to, looking for a zero amount, and throw IllegalStateException
+if any matched.
+
+
+
+
+Extension Functions
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts.clauses/-filter-on/required-commands.html b/docs/build/html/api/net.corda.core.contracts.clauses/-filter-on/required-commands.html
new file mode 100644
index 0000000000..f47ffc1a7c
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts.clauses/-filter-on/required-commands.html
@@ -0,0 +1,17 @@
+
+
+FilterOn.requiredCommands -
+
+
+
+net.corda.core.contracts.clauses / FilterOn / requiredCommands
+
+requiredCommands
+
+val requiredCommands : Set < Class < out CommandData > >
+Overrides Clause.requiredCommands
+Determine whether this clause runs or not
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts.clauses/-filter-on/verify.html b/docs/build/html/api/net.corda.core.contracts.clauses/-filter-on/verify.html
new file mode 100644
index 0000000000..1d39cab81c
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts.clauses/-filter-on/verify.html
@@ -0,0 +1,43 @@
+
+
+FilterOn.verify -
+
+
+
+net.corda.core.contracts.clauses / FilterOn / verify
+
+verify
+
+fun verify ( tx : TransactionForContract , inputs : List < ContractState > , outputs : List < ContractState > , commands : List < AuthenticatedObject < C > > , groupingKey : K ? ) : Set < C >
+Verify the transaction matches the conditions from this clause. For example, a "no zero amount output" clause
+would check each of the output states that it applies to, looking for a zero amount, and throw IllegalStateException
+if any matched.
+Parameters
+
+tx
- the full transaction being verified. This is provided for cases where clauses need to access
+states or commands outside of their normal scope.
+
+
+inputs
- input states which are relevant to this clause. By default this is the set passed into verifyClause ,
+but may be further reduced by clauses such as GroupClauseVerifier .
+
+
+outputs
- output states which are relevant to this clause. By default this is the set passed into verifyClause ,
+but may be further reduced by clauses such as GroupClauseVerifier .
+
+
+commands
- commands which are relevant to this clause. By default this is the set passed into verifyClause ,
+but may be further reduced by clauses such as GroupClauseVerifier .
+
+
+groupingKey
- a grouping key applied to states and commands, where applicable. Taken from
+TransactionForContract.InOutGroup .
+Return
+the set of commands that are consumed IF this clause is matched, and cannot be used to match a
+later clause. This would normally be all commands matching "requiredCommands" for this clause, but some
+verify() functions may do further filtering on possible matches, and return a subset. This may also include
+commands that were not required (for example the Exit command for fungible assets is optional).
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts.clauses/-first-composition/-init-.html b/docs/build/html/api/net.corda.core.contracts.clauses/-first-composition/-init-.html
new file mode 100644
index 0000000000..be397f6ae3
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts.clauses/-first-composition/-init-.html
@@ -0,0 +1,15 @@
+
+
+FirstComposition. -
+
+
+
+net.corda.core.contracts.clauses / FirstComposition / <init>
+
+<init>
+FirstComposition ( firstClause : Clause < S , C , K > , vararg remainingClauses : Clause < S , C , K > )
+Compose a number of clauses, such that the first match is run, and it errors if none is run.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts.clauses/-first-composition/clauses.html b/docs/build/html/api/net.corda.core.contracts.clauses/-first-composition/clauses.html
new file mode 100644
index 0000000000..58278d3b23
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts.clauses/-first-composition/clauses.html
@@ -0,0 +1,17 @@
+
+
+FirstComposition.clauses -
+
+
+
+net.corda.core.contracts.clauses / FirstComposition / clauses
+
+clauses
+
+val clauses : ArrayList < Clause < S , C , K > >
+Overrides CompositeClause.clauses
+List of clauses under this composite clause
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts.clauses/-first-composition/first-clause.html b/docs/build/html/api/net.corda.core.contracts.clauses/-first-composition/first-clause.html
new file mode 100644
index 0000000000..3c48fe16c9
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts.clauses/-first-composition/first-clause.html
@@ -0,0 +1,15 @@
+
+
+FirstComposition.firstClause -
+
+
+
+net.corda.core.contracts.clauses / FirstComposition / firstClause
+
+firstClause
+
+val firstClause : Clause < S , C , K >
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts.clauses/-first-composition/index.html b/docs/build/html/api/net.corda.core.contracts.clauses/-first-composition/index.html
new file mode 100644
index 0000000000..79e3633a0c
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts.clauses/-first-composition/index.html
@@ -0,0 +1,95 @@
+
+
+FirstComposition -
+
+
+
+net.corda.core.contracts.clauses / FirstComposition
+
+FirstComposition
+class FirstComposition < S : ContractState , C : CommandData , K : Any > : CompositeClause < S , C , K >
+Compose a number of clauses, such that the first match is run, and it errors if none is run.
+
+
+Constructors
+
+
+
+
+<init>
+
+FirstComposition ( firstClause : Clause < S , C , K > , vararg remainingClauses : Clause < S , C , K > )
Compose a number of clauses, such that the first match is run, and it errors if none is run.
+
+
+
+
+Properties
+
+Functions
+
+
+
+
+matchedClauses
+
+fun matchedClauses ( commands : List < AuthenticatedObject < C > > ) : List < Clause < S , C , K > >
Determine which clauses are matched by the supplied commands
+
+
+
+
+toString
+
+fun toString ( ) : String
+
+
+
+verify
+
+fun verify ( tx : TransactionForContract , inputs : List < S > , outputs : List < S > , commands : List < AuthenticatedObject < C > > , groupingKey : K ? ) : Set < C >
Verify the transaction matches the conditions from this clause. For example, a "no zero amount output" clause
+would check each of the output states that it applies to, looking for a zero amount, and throw IllegalStateException
+if any matched.
+
+
+
+
+Companion Object Properties
+
+
+
+
+logger
+
+val logger : <ERROR CLASS>
+
+
+
+Extension Functions
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts.clauses/-first-composition/logger.html b/docs/build/html/api/net.corda.core.contracts.clauses/-first-composition/logger.html
new file mode 100644
index 0000000000..06847c4e8d
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts.clauses/-first-composition/logger.html
@@ -0,0 +1,15 @@
+
+
+FirstComposition.logger -
+
+
+
+net.corda.core.contracts.clauses / FirstComposition / logger
+
+logger
+
+val logger : <ERROR CLASS>
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts.clauses/-first-composition/matched-clauses.html b/docs/build/html/api/net.corda.core.contracts.clauses/-first-composition/matched-clauses.html
new file mode 100644
index 0000000000..0e33792363
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts.clauses/-first-composition/matched-clauses.html
@@ -0,0 +1,16 @@
+
+
+FirstComposition.matchedClauses -
+
+
+
+net.corda.core.contracts.clauses / FirstComposition / matchedClauses
+
+matchedClauses
+
+fun matchedClauses ( commands : List < AuthenticatedObject < C > > ) : List < Clause < S , C , K > >
+Determine which clauses are matched by the supplied commands
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts.clauses/-first-composition/to-string.html b/docs/build/html/api/net.corda.core.contracts.clauses/-first-composition/to-string.html
new file mode 100644
index 0000000000..3737fb363f
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts.clauses/-first-composition/to-string.html
@@ -0,0 +1,15 @@
+
+
+FirstComposition.toString -
+
+
+
+net.corda.core.contracts.clauses / FirstComposition / toString
+
+toString
+
+fun toString ( ) : String
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts.clauses/-first-composition/verify.html b/docs/build/html/api/net.corda.core.contracts.clauses/-first-composition/verify.html
new file mode 100644
index 0000000000..f188dc0560
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts.clauses/-first-composition/verify.html
@@ -0,0 +1,43 @@
+
+
+FirstComposition.verify -
+
+
+
+net.corda.core.contracts.clauses / FirstComposition / verify
+
+verify
+
+fun verify ( tx : TransactionForContract , inputs : List < S > , outputs : List < S > , commands : List < AuthenticatedObject < C > > , groupingKey : K ? ) : Set < C >
+Verify the transaction matches the conditions from this clause. For example, a "no zero amount output" clause
+would check each of the output states that it applies to, looking for a zero amount, and throw IllegalStateException
+if any matched.
+Parameters
+
+tx
- the full transaction being verified. This is provided for cases where clauses need to access
+states or commands outside of their normal scope.
+
+
+inputs
- input states which are relevant to this clause. By default this is the set passed into verifyClause ,
+but may be further reduced by clauses such as GroupClauseVerifier .
+
+
+outputs
- output states which are relevant to this clause. By default this is the set passed into verifyClause ,
+but may be further reduced by clauses such as GroupClauseVerifier .
+
+
+commands
- commands which are relevant to this clause. By default this is the set passed into verifyClause ,
+but may be further reduced by clauses such as GroupClauseVerifier .
+
+
+groupingKey
- a grouping key applied to states and commands, where applicable. Taken from
+TransactionForContract.InOutGroup .
+Return
+the set of commands that are consumed IF this clause is matched, and cannot be used to match a
+later clause. This would normally be all commands matching "requiredCommands" for this clause, but some
+verify() functions may do further filtering on possible matches, and return a subset. This may also include
+commands that were not required (for example the Exit command for fungible assets is optional).
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts.clauses/-group-clause-verifier/-init-.html b/docs/build/html/api/net.corda.core.contracts.clauses/-group-clause-verifier/-init-.html
new file mode 100644
index 0000000000..a91c73c199
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts.clauses/-group-clause-verifier/-init-.html
@@ -0,0 +1,14 @@
+
+
+GroupClauseVerifier. -
+
+
+
+net.corda.core.contracts.clauses / GroupClauseVerifier / <init>
+
+<init>
+GroupClauseVerifier ( clause : Clause < S , C , K > )
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts.clauses/-group-clause-verifier/clause.html b/docs/build/html/api/net.corda.core.contracts.clauses/-group-clause-verifier/clause.html
new file mode 100644
index 0000000000..3c446f73c1
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts.clauses/-group-clause-verifier/clause.html
@@ -0,0 +1,15 @@
+
+
+GroupClauseVerifier.clause -
+
+
+
+net.corda.core.contracts.clauses / GroupClauseVerifier / clause
+
+clause
+
+val clause : Clause < S , C , K >
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts.clauses/-group-clause-verifier/get-execution-path.html b/docs/build/html/api/net.corda.core.contracts.clauses/-group-clause-verifier/get-execution-path.html
new file mode 100644
index 0000000000..6c22a858a4
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts.clauses/-group-clause-verifier/get-execution-path.html
@@ -0,0 +1,16 @@
+
+
+GroupClauseVerifier.getExecutionPath -
+
+
+
+net.corda.core.contracts.clauses / GroupClauseVerifier / getExecutionPath
+
+getExecutionPath
+
+open fun getExecutionPath ( commands : List < AuthenticatedObject < C > > ) : List < Clause < * , * , * > >
+Determine the subclauses which will be verified as a result of verifying this clause.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts.clauses/-group-clause-verifier/group-states.html b/docs/build/html/api/net.corda.core.contracts.clauses/-group-clause-verifier/group-states.html
new file mode 100644
index 0000000000..dd82c4d448
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts.clauses/-group-clause-verifier/group-states.html
@@ -0,0 +1,15 @@
+
+
+GroupClauseVerifier.groupStates -
+
+
+
+net.corda.core.contracts.clauses / GroupClauseVerifier / groupStates
+
+groupStates
+
+abstract fun groupStates ( tx : TransactionForContract ) : List < InOutGroup < S , K > >
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts.clauses/-group-clause-verifier/index.html b/docs/build/html/api/net.corda.core.contracts.clauses/-group-clause-verifier/index.html
new file mode 100644
index 0000000000..72565bd32c
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts.clauses/-group-clause-verifier/index.html
@@ -0,0 +1,119 @@
+
+
+GroupClauseVerifier -
+
+
+
+net.corda.core.contracts.clauses / GroupClauseVerifier
+
+GroupClauseVerifier
+abstract class GroupClauseVerifier < S : ContractState , C : CommandData , K : Any > : Clause < ContractState , C , Unit >
+
+
+Constructors
+
+
+
+
+<init>
+
+GroupClauseVerifier ( clause : Clause < S , C , K > )
+
+
+
+Properties
+
+Inherited Properties
+
+Functions
+
+
+
+
+getExecutionPath
+
+open fun getExecutionPath ( commands : List < AuthenticatedObject < C > > ) : List < Clause < * , * , * > >
Determine the subclauses which will be verified as a result of verifying this clause.
+
+
+
+
+groupStates
+
+abstract fun groupStates ( tx : TransactionForContract ) : List < InOutGroup < S , K > >
+
+
+
+verify
+
+open fun verify ( tx : TransactionForContract , inputs : List < ContractState > , outputs : List < ContractState > , commands : List < AuthenticatedObject < C > > , groupingKey : Unit ? ) : Set < C >
Verify the transaction matches the conditions from this clause. For example, a "no zero amount output" clause
+would check each of the output states that it applies to, looking for a zero amount, and throw IllegalStateException
+if any matched.
+
+
+
+
+Extension Functions
+
+Inheritors
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts.clauses/-group-clause-verifier/verify.html b/docs/build/html/api/net.corda.core.contracts.clauses/-group-clause-verifier/verify.html
new file mode 100644
index 0000000000..a7a9dbef3f
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts.clauses/-group-clause-verifier/verify.html
@@ -0,0 +1,43 @@
+
+
+GroupClauseVerifier.verify -
+
+
+
+net.corda.core.contracts.clauses / GroupClauseVerifier / verify
+
+verify
+
+open fun verify ( tx : TransactionForContract , inputs : List < ContractState > , outputs : List < ContractState > , commands : List < AuthenticatedObject < C > > , groupingKey : Unit ? ) : Set < C >
+Verify the transaction matches the conditions from this clause. For example, a "no zero amount output" clause
+would check each of the output states that it applies to, looking for a zero amount, and throw IllegalStateException
+if any matched.
+Parameters
+
+tx
- the full transaction being verified. This is provided for cases where clauses need to access
+states or commands outside of their normal scope.
+
+
+inputs
- input states which are relevant to this clause. By default this is the set passed into verifyClause ,
+but may be further reduced by clauses such as GroupClauseVerifier .
+
+
+outputs
- output states which are relevant to this clause. By default this is the set passed into verifyClause ,
+but may be further reduced by clauses such as GroupClauseVerifier .
+
+
+commands
- commands which are relevant to this clause. By default this is the set passed into verifyClause ,
+but may be further reduced by clauses such as GroupClauseVerifier .
+
+
+groupingKey
- a grouping key applied to states and commands, where applicable. Taken from
+TransactionForContract.InOutGroup .
+Return
+the set of commands that are consumed IF this clause is matched, and cannot be used to match a
+later clause. This would normally be all commands matching "requiredCommands" for this clause, but some
+verify() functions may do further filtering on possible matches, and return a subset. This may also include
+commands that were not required (for example the Exit command for fungible assets is optional).
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts.clauses/index.html b/docs/build/html/api/net.corda.core.contracts.clauses/index.html
new file mode 100644
index 0000000000..cfff78a959
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts.clauses/index.html
@@ -0,0 +1,84 @@
+
+
+net.corda.core.contracts.clauses -
+
+
+
+net.corda.core.contracts.clauses
+
+Package net.corda.core.contracts.clauses
+Types
+
+
+
+
+AllComposition
+
+class AllComposition < S : ContractState , C : CommandData , K : Any > : CompositeClause < S , C , K >
Compose a number of clauses, such that all of the clauses must run for verification to pass.
+
+
+
+
+AnyComposition
+
+class AnyComposition < in S : ContractState , C : CommandData , in K : Any > : CompositeClause < S , C , K >
Compose a number of clauses, such that any number of the clauses can run.
+
+
+
+
+Clause
+
+abstract class Clause < in S : ContractState , C : CommandData , in K : Any >
A clause of a contract, containing a chunk of verification logic. That logic may be delegated to other clauses, or
+provided directly by this clause.
+
+
+
+
+CompositeClause
+
+abstract class CompositeClause < in S : ContractState , C : CommandData , in K : Any > : Clause < S , C , K >
Abstract supertype for clauses which compose other clauses together in some logical manner.
+
+
+
+
+FilterOn
+
+class FilterOn < S : ContractState , C : CommandData , K : Any > : Clause < ContractState , C , K >
Filter the states that are passed through to the wrapped clause, to restrict them to a specific type.
+
+
+
+
+FirstComposition
+
+class FirstComposition < S : ContractState , C : CommandData , K : Any > : CompositeClause < S , C , K >
Compose a number of clauses, such that the first match is run, and it errors if none is run.
+
+
+
+
+GroupClauseVerifier
+
+abstract class GroupClauseVerifier < S : ContractState , C : CommandData , K : Any > : Clause < ContractState , C , Unit >
+
+
+
+Functions
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts.clauses/matches.html b/docs/build/html/api/net.corda.core.contracts.clauses/matches.html
new file mode 100644
index 0000000000..42da06a9cd
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts.clauses/matches.html
@@ -0,0 +1,16 @@
+
+
+matches -
+
+
+
+net.corda.core.contracts.clauses / matches
+
+matches
+
+fun < C : CommandData > Clause < * , C , * > . matches ( commands : List < AuthenticatedObject < C > > ) : Boolean
+Determine if the given list of commands matches the required commands for a clause to trigger.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts.clauses/verify-clause.html b/docs/build/html/api/net.corda.core.contracts.clauses/verify-clause.html
new file mode 100644
index 0000000000..45855009e2
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts.clauses/verify-clause.html
@@ -0,0 +1,26 @@
+
+
+verifyClause -
+
+
+
+net.corda.core.contracts.clauses / verifyClause
+
+verifyClause
+
+fun < C : CommandData > verifyClause ( tx : TransactionForContract , clause : Clause < ContractState , C , Unit > , commands : List < AuthenticatedObject < C > > ) : Unit
+Verify a transaction against the given list of clauses.
+Parameters
+
+tx
- transaction to be verified.
+
+
+clauses
- the clauses to verify.
+
+
+commands
- commands extracted from the transaction, which are relevant to the
+clauses.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-accrual-adjustment/-adjusted.html b/docs/build/html/api/net.corda.core.contracts/-accrual-adjustment/-adjusted.html
new file mode 100644
index 0000000000..5a86cd654f
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-accrual-adjustment/-adjusted.html
@@ -0,0 +1,14 @@
+
+
+AccrualAdjustment.Adjusted -
+
+
+
+net.corda.core.contracts / AccrualAdjustment / Adjusted
+
+Adjusted
+Adjusted
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-accrual-adjustment/-unadjusted.html b/docs/build/html/api/net.corda.core.contracts/-accrual-adjustment/-unadjusted.html
new file mode 100644
index 0000000000..fc5e007a39
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-accrual-adjustment/-unadjusted.html
@@ -0,0 +1,14 @@
+
+
+AccrualAdjustment.Unadjusted -
+
+
+
+net.corda.core.contracts / AccrualAdjustment / Unadjusted
+
+Unadjusted
+Unadjusted
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-accrual-adjustment/index.html b/docs/build/html/api/net.corda.core.contracts/-accrual-adjustment/index.html
new file mode 100644
index 0000000000..ece7b55966
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-accrual-adjustment/index.html
@@ -0,0 +1,33 @@
+
+
+AccrualAdjustment -
+
+
+
+net.corda.core.contracts / AccrualAdjustment
+
+AccrualAdjustment
+enum class AccrualAdjustment
+Simple enum for returning accurals adjusted or unadjusted.
+We dont actually do anything with this yet though, so its ignored for now.
+
+
+Enum Values
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-amount/-init-.html b/docs/build/html/api/net.corda.core.contracts/-amount/-init-.html
new file mode 100644
index 0000000000..75c0afd945
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-amount/-init-.html
@@ -0,0 +1,34 @@
+
+
+Amount. -
+
+
+
+net.corda.core.contracts / Amount / <init>
+
+<init>
+Amount ( amount : BigDecimal , currency : T )
+
+
+Amount ( quantity : Long , token : T )
+Amount represents a positive quantity of some token (currency, asset, etc.), measured in quantity of the smallest
+representable units. Note that quantity is not necessarily 1/100ths of a currency unit, but are the actual smallest
+amount used in whatever underlying thing the amount represents.
+Amounts of different tokens do not mix and attempting to add or subtract two amounts of different currencies
+will throw IllegalArgumentException . Amounts may not be negative. Amounts are represented internally using a signed
+64 bit value, therefore, the maximum expressable amount is 2^63 - 1 == Long.MAX_VALUE. Addition, subtraction and
+multiplication are overflow checked and will throw ArithmeticException if the operation would have caused integer
+overflow.
+TODO: It may make sense to replace this with convenience extensions over the JSR 354 MonetaryAmount interface,
+in particular for use during calculations. This may also resolve...
+TODO: Think about how positive-only vs positive-or-negative amounts can be represented in the type system.
+TODO: Add either a scaling factor, or a variant for use in calculations.
+
+
+Parameters
+
+T
- the type of the token, for example Currency .
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-amount/compare-to.html b/docs/build/html/api/net.corda.core.contracts/-amount/compare-to.html
new file mode 100644
index 0000000000..89c3cfe8f8
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-amount/compare-to.html
@@ -0,0 +1,15 @@
+
+
+Amount.compareTo -
+
+
+
+net.corda.core.contracts / Amount / compareTo
+
+compareTo
+
+fun compareTo ( other : Amount < T > ) : Int
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-amount/div.html b/docs/build/html/api/net.corda.core.contracts/-amount/div.html
new file mode 100644
index 0000000000..cc6b81061c
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-amount/div.html
@@ -0,0 +1,17 @@
+
+
+Amount.div -
+
+
+
+net.corda.core.contracts / Amount / div
+
+div
+
+operator fun div ( other : Long ) : Amount < T >
+
+operator fun div ( other : Int ) : Amount < T >
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-amount/index.html b/docs/build/html/api/net.corda.core.contracts/-amount/index.html
new file mode 100644
index 0000000000..5699d2aae7
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-amount/index.html
@@ -0,0 +1,156 @@
+
+
+Amount -
+
+
+
+net.corda.core.contracts / Amount
+
+Amount
+data class Amount < T > : Comparable < Amount < T > >
+Amount represents a positive quantity of some token (currency, asset, etc.), measured in quantity of the smallest
+representable units. Note that quantity is not necessarily 1/100ths of a currency unit, but are the actual smallest
+amount used in whatever underlying thing the amount represents.
+Amounts of different tokens do not mix and attempting to add or subtract two amounts of different currencies
+will throw IllegalArgumentException . Amounts may not be negative. Amounts are represented internally using a signed
+64 bit value, therefore, the maximum expressable amount is 2^63 - 1 == Long.MAX_VALUE. Addition, subtraction and
+multiplication are overflow checked and will throw ArithmeticException if the operation would have caused integer
+overflow.
+TODO: It may make sense to replace this with convenience extensions over the JSR 354 MonetaryAmount interface,
+in particular for use during calculations. This may also resolve...
+TODO: Think about how positive-only vs positive-or-negative amounts can be represented in the type system.
+TODO: Add either a scaling factor, or a variant for use in calculations.
+
+
+Parameters
+
+T
- the type of the token, for example Currency .
+
+
+Constructors
+
+
+
+
+<init>
+
+Amount ( amount : BigDecimal , currency : T )
Amount ( quantity : Long , token : T )
Amount represents a positive quantity of some token (currency, asset, etc.), measured in quantity of the smallest
+representable units. Note that quantity is not necessarily 1/100ths of a currency unit, but are the actual smallest
+amount used in whatever underlying thing the amount represents.
+
+
+
+
+Properties
+
+
+
+
+quantity
+
+val quantity : Long
+
+
+
+token
+
+val token : T
+
+
+
+Functions
+
+
+
+
+compareTo
+
+fun compareTo ( other : Amount < T > ) : Int
+
+
+
+div
+
+operator fun div ( other : Long ) : Amount < T >
+operator fun div ( other : Int ) : Amount < T >
+
+
+
+minus
+
+operator fun minus ( other : Amount < T > ) : Amount < T >
+
+
+
+plus
+
+operator fun plus ( other : Amount < T > ) : Amount < T >
+
+
+
+times
+
+operator fun times ( other : Long ) : Amount < T >
+operator fun times ( other : Int ) : Amount < T >
+
+
+
+toString
+
+fun toString ( ) : String
+
+
+
+Extension Properties
+
+Extension Functions
+
+
+
+
+issued by
+
+infix fun Amount < Currency > . issued by ( deposit : PartyAndReference ) : Amount < Issued < Currency > >
+
+
+
+issuedBy
+
+infix fun Amount < Currency > . issuedBy ( deposit : PartyAndReference ) : Amount < Issued < Currency > >
+
+
+
+withoutIssuer
+
+fun < T > Amount < Issued < T > > . withoutIssuer ( ) : Amount < T >
Strips the issuer and returns an Amount of the raw token directly. This is useful when you are mixing code that
+cares about specific issuers with code that will accept any, or which is imposing issuer constraints via some
+other mechanism and the additional type safety is not wanted.
+
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-amount/minus.html b/docs/build/html/api/net.corda.core.contracts/-amount/minus.html
new file mode 100644
index 0000000000..680c12c43c
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-amount/minus.html
@@ -0,0 +1,15 @@
+
+
+Amount.minus -
+
+
+
+net.corda.core.contracts / Amount / minus
+
+minus
+
+operator fun minus ( other : Amount < T > ) : Amount < T >
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-amount/plus.html b/docs/build/html/api/net.corda.core.contracts/-amount/plus.html
new file mode 100644
index 0000000000..8e28a1c6df
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-amount/plus.html
@@ -0,0 +1,15 @@
+
+
+Amount.plus -
+
+
+
+net.corda.core.contracts / Amount / plus
+
+plus
+
+operator fun plus ( other : Amount < T > ) : Amount < T >
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-amount/quantity.html b/docs/build/html/api/net.corda.core.contracts/-amount/quantity.html
new file mode 100644
index 0000000000..bee04f170e
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-amount/quantity.html
@@ -0,0 +1,15 @@
+
+
+Amount.quantity -
+
+
+
+net.corda.core.contracts / Amount / quantity
+
+quantity
+
+val quantity : Long
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-amount/times.html b/docs/build/html/api/net.corda.core.contracts/-amount/times.html
new file mode 100644
index 0000000000..df3e74f3ab
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-amount/times.html
@@ -0,0 +1,17 @@
+
+
+Amount.times -
+
+
+
+net.corda.core.contracts / Amount / times
+
+times
+
+operator fun times ( other : Long ) : Amount < T >
+
+operator fun times ( other : Int ) : Amount < T >
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-amount/to-string.html b/docs/build/html/api/net.corda.core.contracts/-amount/to-string.html
new file mode 100644
index 0000000000..8033b06503
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-amount/to-string.html
@@ -0,0 +1,15 @@
+
+
+Amount.toString -
+
+
+
+net.corda.core.contracts / Amount / toString
+
+toString
+
+fun toString ( ) : String
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-amount/token.html b/docs/build/html/api/net.corda.core.contracts/-amount/token.html
new file mode 100644
index 0000000000..6c004cb04c
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-amount/token.html
@@ -0,0 +1,15 @@
+
+
+Amount.token -
+
+
+
+net.corda.core.contracts / Amount / token
+
+token
+
+val token : T
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-attachment/extract-file.html b/docs/build/html/api/net.corda.core.contracts/-attachment/extract-file.html
new file mode 100644
index 0000000000..928a570a04
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-attachment/extract-file.html
@@ -0,0 +1,19 @@
+
+
+Attachment.extractFile -
+
+
+
+net.corda.core.contracts / Attachment / extractFile
+
+extractFile
+
+open fun extractFile ( : String , : OutputStream ) : Unit
+Finds the named file case insensitively and copies it to the output stream.
+Exceptions
+
+FileNotFoundException
- if the given path doesnt exist in the attachment.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-attachment/index.html b/docs/build/html/api/net.corda.core.contracts/-attachment/index.html
new file mode 100644
index 0000000000..5f63a190ca
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-attachment/index.html
@@ -0,0 +1,59 @@
+
+
+Attachment -
+
+
+
+net.corda.core.contracts / Attachment
+
+Attachment
+interface Attachment : NamedByHash
+An attachment is a ZIP (or an optionally signed JAR) that contains one or more files. Attachments are meant to
+contain public static data which can be referenced from transactions and utilised from contracts. Good examples
+of how attachments are meant to be used include:
+
+
+
+
+Inherited Properties
+
+Functions
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-attachment/open-as-j-a-r.html b/docs/build/html/api/net.corda.core.contracts/-attachment/open-as-j-a-r.html
new file mode 100644
index 0000000000..e8261eb1bf
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-attachment/open-as-j-a-r.html
@@ -0,0 +1,15 @@
+
+
+Attachment.openAsJAR -
+
+
+
+net.corda.core.contracts / Attachment / openAsJAR
+
+openAsJAR
+
+open fun openAsJAR ( ) : JarInputStream
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-attachment/open.html b/docs/build/html/api/net.corda.core.contracts/-attachment/open.html
new file mode 100644
index 0000000000..212db76437
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-attachment/open.html
@@ -0,0 +1,15 @@
+
+
+Attachment.open -
+
+
+
+net.corda.core.contracts / Attachment / open
+
+open
+
+abstract fun open ( ) : InputStream
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-authenticated-object/-init-.html b/docs/build/html/api/net.corda.core.contracts/-authenticated-object/-init-.html
new file mode 100644
index 0000000000..f9c1549bcc
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-authenticated-object/-init-.html
@@ -0,0 +1,15 @@
+
+
+AuthenticatedObject. -
+
+
+
+net.corda.core.contracts / AuthenticatedObject / <init>
+
+<init>
+AuthenticatedObject ( signers : List < PublicKey > , signingParties : List < Party > , value : T )
+Wraps an object that was signed by a public key, which may be a well known/recognised institutional key.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-authenticated-object/index.html b/docs/build/html/api/net.corda.core.contracts/-authenticated-object/index.html
new file mode 100644
index 0000000000..ba8072d012
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-authenticated-object/index.html
@@ -0,0 +1,51 @@
+
+
+AuthenticatedObject -
+
+
+
+net.corda.core.contracts / AuthenticatedObject
+
+AuthenticatedObject
+data class AuthenticatedObject < out T : Any >
+Wraps an object that was signed by a public key, which may be a well known/recognised institutional key.
+
+
+Constructors
+
+
+
+
+<init>
+
+AuthenticatedObject ( signers : List < PublicKey > , signingParties : List < Party > , value : T )
Wraps an object that was signed by a public key, which may be a well known/recognised institutional key.
+
+
+
+
+Properties
+
+
+
+
+signers
+
+val signers : List < PublicKey >
+
+
+
+signingParties
+
+val signingParties : List < Party >
If any public keys were recognised, the looked up institutions are available here
+
+
+
+
+value
+
+val value : T
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-authenticated-object/signers.html b/docs/build/html/api/net.corda.core.contracts/-authenticated-object/signers.html
new file mode 100644
index 0000000000..f78b97598c
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-authenticated-object/signers.html
@@ -0,0 +1,15 @@
+
+
+AuthenticatedObject.signers -
+
+
+
+net.corda.core.contracts / AuthenticatedObject / signers
+
+signers
+
+val signers : List < PublicKey >
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-authenticated-object/signing-parties.html b/docs/build/html/api/net.corda.core.contracts/-authenticated-object/signing-parties.html
new file mode 100644
index 0000000000..6158d1ecb0
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-authenticated-object/signing-parties.html
@@ -0,0 +1,16 @@
+
+
+AuthenticatedObject.signingParties -
+
+
+
+net.corda.core.contracts / AuthenticatedObject / signingParties
+
+signingParties
+
+val signingParties : List < Party >
+If any public keys were recognised, the looked up institutions are available here
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-authenticated-object/value.html b/docs/build/html/api/net.corda.core.contracts/-authenticated-object/value.html
new file mode 100644
index 0000000000..0daf6faf8c
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-authenticated-object/value.html
@@ -0,0 +1,15 @@
+
+
+AuthenticatedObject.value -
+
+
+
+net.corda.core.contracts / AuthenticatedObject / value
+
+value
+
+val value : T
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-bilateral-nettable-state/bilateral-net-state.html b/docs/build/html/api/net.corda.core.contracts/-bilateral-nettable-state/bilateral-net-state.html
new file mode 100644
index 0000000000..f3bd213056
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-bilateral-nettable-state/bilateral-net-state.html
@@ -0,0 +1,17 @@
+
+
+BilateralNettableState.bilateralNetState -
+
+
+
+net.corda.core.contracts / BilateralNettableState / bilateralNetState
+
+bilateralNetState
+
+abstract val bilateralNetState : Any
+Returns an object used to determine if two states can be subject to close-out netting. If two states return
+equal objects, they can be close out netted together.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-bilateral-nettable-state/index.html b/docs/build/html/api/net.corda.core.contracts/-bilateral-nettable-state/index.html
new file mode 100644
index 0000000000..22c9197117
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-bilateral-nettable-state/index.html
@@ -0,0 +1,52 @@
+
+
+BilateralNettableState -
+
+
+
+net.corda.core.contracts / BilateralNettableState
+
+BilateralNettableState
+interface BilateralNettableState < N : BilateralNettableState < N > >
+Interface for state objects that support being netted with other state objects.
+
+
+Properties
+
+
+
+
+bilateralNetState
+
+abstract val bilateralNetState : Any
Returns an object used to determine if two states can be subject to close-out netting. If two states return
+equal objects, they can be close out netted together.
+
+
+
+
+Functions
+
+
+
+
+net
+
+abstract fun net ( other : N ) : N
Perform bilateral netting of this state with another state. The two states must be compatible (as in
+bilateralNetState objects are equal).
+
+
+
+
+Inheritors
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-bilateral-nettable-state/net.html b/docs/build/html/api/net.corda.core.contracts/-bilateral-nettable-state/net.html
new file mode 100644
index 0000000000..6035135019
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-bilateral-nettable-state/net.html
@@ -0,0 +1,17 @@
+
+
+BilateralNettableState.net -
+
+
+
+net.corda.core.contracts / BilateralNettableState / net
+
+net
+
+abstract fun net ( other : N ) : N
+Perform bilateral netting of this state with another state. The two states must be compatible (as in
+bilateralNetState objects are equal).
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-business-calendar/-t-e-s-t_-c-a-l-e-n-d-a-r_-d-a-t-a.html b/docs/build/html/api/net.corda.core.contracts/-business-calendar/-t-e-s-t_-c-a-l-e-n-d-a-r_-d-a-t-a.html
new file mode 100644
index 0000000000..f15a44b207
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-business-calendar/-t-e-s-t_-c-a-l-e-n-d-a-r_-d-a-t-a.html
@@ -0,0 +1,15 @@
+
+
+BusinessCalendar.TEST_CALENDAR_DATA -
+
+
+
+net.corda.core.contracts / BusinessCalendar / TEST_CALENDAR_DATA
+
+TEST_CALENDAR_DATA
+
+val TEST_CALENDAR_DATA : <ERROR CLASS>
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-business-calendar/-unknown-calendar/-init-.html b/docs/build/html/api/net.corda.core.contracts/-business-calendar/-unknown-calendar/-init-.html
new file mode 100644
index 0000000000..be9fe573dd
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-business-calendar/-unknown-calendar/-init-.html
@@ -0,0 +1,14 @@
+
+
+BusinessCalendar.UnknownCalendar. -
+
+
+
+net.corda.core.contracts / BusinessCalendar / UnknownCalendar / <init>
+
+<init>
+UnknownCalendar ( name : String )
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-business-calendar/-unknown-calendar/index.html b/docs/build/html/api/net.corda.core.contracts/-business-calendar/-unknown-calendar/index.html
new file mode 100644
index 0000000000..ef20da6498
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-business-calendar/-unknown-calendar/index.html
@@ -0,0 +1,25 @@
+
+
+BusinessCalendar.UnknownCalendar -
+
+
+
+net.corda.core.contracts / BusinessCalendar / UnknownCalendar
+
+UnknownCalendar
+class UnknownCalendar : Exception
+
+
+Constructors
+
+
+
+
+<init>
+
+UnknownCalendar ( name : String )
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-business-calendar/apply-roll-convention.html b/docs/build/html/api/net.corda.core.contracts/-business-calendar/apply-roll-convention.html
new file mode 100644
index 0000000000..8655fc8c1a
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-business-calendar/apply-roll-convention.html
@@ -0,0 +1,15 @@
+
+
+BusinessCalendar.applyRollConvention -
+
+
+
+net.corda.core.contracts / BusinessCalendar / applyRollConvention
+
+applyRollConvention
+
+open fun applyRollConvention ( testDate : LocalDate , dateRollConvention : DateRollConvention ) : LocalDate
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-business-calendar/calendars.html b/docs/build/html/api/net.corda.core.contracts/-business-calendar/calendars.html
new file mode 100644
index 0000000000..50b8d548c9
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-business-calendar/calendars.html
@@ -0,0 +1,15 @@
+
+
+BusinessCalendar.calendars -
+
+
+
+net.corda.core.contracts / BusinessCalendar / calendars
+
+calendars
+
+val calendars : <ERROR CLASS>
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-business-calendar/create-generic-schedule.html b/docs/build/html/api/net.corda.core.contracts/-business-calendar/create-generic-schedule.html
new file mode 100644
index 0000000000..ae0effcb6f
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-business-calendar/create-generic-schedule.html
@@ -0,0 +1,16 @@
+
+
+BusinessCalendar.createGenericSchedule -
+
+
+
+net.corda.core.contracts / BusinessCalendar / createGenericSchedule
+
+createGenericSchedule
+
+fun createGenericSchedule ( startDate : LocalDate , period : Frequency , calendar : BusinessCalendar = getInstance(), dateRollConvention : DateRollConvention = DateRollConvention.Following, noOfAdditionalPeriods : Int = Integer.MAX_VALUE, endDate : LocalDate ? = null, periodOffset : Int ? = null) : List < LocalDate >
+Calculates an event schedule that moves events around to ensure they fall on working days.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-business-calendar/equals.html b/docs/build/html/api/net.corda.core.contracts/-business-calendar/equals.html
new file mode 100644
index 0000000000..747011c5e6
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-business-calendar/equals.html
@@ -0,0 +1,15 @@
+
+
+BusinessCalendar.equals -
+
+
+
+net.corda.core.contracts / BusinessCalendar / equals
+
+equals
+
+open fun equals ( other : Any ? ) : Boolean
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-business-calendar/get-instance.html b/docs/build/html/api/net.corda.core.contracts/-business-calendar/get-instance.html
new file mode 100644
index 0000000000..8b5dac357e
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-business-calendar/get-instance.html
@@ -0,0 +1,16 @@
+
+
+BusinessCalendar.getInstance -
+
+
+
+net.corda.core.contracts / BusinessCalendar / getInstance
+
+getInstance
+
+fun getInstance ( vararg calname : String ) : BusinessCalendar
+Returns a business calendar that combines all the named holiday calendars into one list of holiday dates.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-business-calendar/get-offset-date.html b/docs/build/html/api/net.corda.core.contracts/-business-calendar/get-offset-date.html
new file mode 100644
index 0000000000..5b8d74bd43
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-business-calendar/get-offset-date.html
@@ -0,0 +1,17 @@
+
+
+BusinessCalendar.getOffsetDate -
+
+
+
+net.corda.core.contracts / BusinessCalendar / getOffsetDate
+
+getOffsetDate
+
+fun getOffsetDate ( startDate : LocalDate , period : Frequency , steps : Int = 1) : LocalDate
+Calculates the date from @startDate moving forward @steps of time size @period. Does not apply calendar
+logic / roll conventions.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-business-calendar/hash-code.html b/docs/build/html/api/net.corda.core.contracts/-business-calendar/hash-code.html
new file mode 100644
index 0000000000..5e5973c64b
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-business-calendar/hash-code.html
@@ -0,0 +1,15 @@
+
+
+BusinessCalendar.hashCode -
+
+
+
+net.corda.core.contracts / BusinessCalendar / hashCode
+
+hashCode
+
+open fun hashCode ( ) : Int
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-business-calendar/holiday-dates.html b/docs/build/html/api/net.corda.core.contracts/-business-calendar/holiday-dates.html
new file mode 100644
index 0000000000..f579a647c7
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-business-calendar/holiday-dates.html
@@ -0,0 +1,15 @@
+
+
+BusinessCalendar.holidayDates -
+
+
+
+net.corda.core.contracts / BusinessCalendar / holidayDates
+
+holidayDates
+
+val holidayDates : List < LocalDate >
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-business-calendar/index.html b/docs/build/html/api/net.corda.core.contracts/-business-calendar/index.html
new file mode 100644
index 0000000000..b2f4ad2e97
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-business-calendar/index.html
@@ -0,0 +1,127 @@
+
+
+BusinessCalendar -
+
+
+
+net.corda.core.contracts / BusinessCalendar
+
+BusinessCalendar
+open class BusinessCalendar
+A business calendar performs date calculations that take into account national holidays and weekends. This is a
+typical feature of financial contracts, in which a business may not want a payment event to fall on a day when
+no staff are around to handle problems.
+
+
+Exceptions
+
+Properties
+
+Functions
+
+Companion Object Properties
+
+Companion Object Functions
+
+
+
+
+createGenericSchedule
+
+fun createGenericSchedule ( startDate : LocalDate , period : Frequency , calendar : BusinessCalendar = getInstance(), dateRollConvention : DateRollConvention = DateRollConvention.Following, noOfAdditionalPeriods : Int = Integer.MAX_VALUE, endDate : LocalDate ? = null, periodOffset : Int ? = null) : List < LocalDate >
Calculates an event schedule that moves events around to ensure they fall on working days.
+
+
+
+
+getInstance
+
+fun getInstance ( vararg calname : String ) : BusinessCalendar
Returns a business calendar that combines all the named holiday calendars into one list of holiday dates.
+
+
+
+
+getOffsetDate
+
+fun getOffsetDate ( startDate : LocalDate , period : Frequency , steps : Int = 1) : LocalDate
Calculates the date from @startDate moving forward @steps of time size @period. Does not apply calendar
+logic / roll conventions.
+
+
+
+
+parseDateFromString
+
+fun parseDateFromString ( it : String ) : LocalDate
Parses a date of the form YYYY-MM-DD, like 2016-01-10 for 10th Jan.
+
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-business-calendar/is-working-day.html b/docs/build/html/api/net.corda.core.contracts/-business-calendar/is-working-day.html
new file mode 100644
index 0000000000..11232f5ab0
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-business-calendar/is-working-day.html
@@ -0,0 +1,15 @@
+
+
+BusinessCalendar.isWorkingDay -
+
+
+
+net.corda.core.contracts / BusinessCalendar / isWorkingDay
+
+isWorkingDay
+
+open fun isWorkingDay ( date : LocalDate ) : Boolean
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-business-calendar/move-business-days.html b/docs/build/html/api/net.corda.core.contracts/-business-calendar/move-business-days.html
new file mode 100644
index 0000000000..5204a5c509
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-business-calendar/move-business-days.html
@@ -0,0 +1,17 @@
+
+
+BusinessCalendar.moveBusinessDays -
+
+
+
+net.corda.core.contracts / BusinessCalendar / moveBusinessDays
+
+moveBusinessDays
+
+fun moveBusinessDays ( date : LocalDate , direction : DateRollDirection , i : Int ) : LocalDate
+Returns a date which is the inbound date plus/minus a given number of business days.
+TODO: Make more efficient if necessary
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-business-calendar/parse-date-from-string.html b/docs/build/html/api/net.corda.core.contracts/-business-calendar/parse-date-from-string.html
new file mode 100644
index 0000000000..1ded4d512b
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-business-calendar/parse-date-from-string.html
@@ -0,0 +1,16 @@
+
+
+BusinessCalendar.parseDateFromString -
+
+
+
+net.corda.core.contracts / BusinessCalendar / parseDateFromString
+
+parseDateFromString
+
+fun parseDateFromString ( it : String ) : LocalDate
+Parses a date of the form YYYY-MM-DD, like 2016-01-10 for 10th Jan.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-c-h-f.html b/docs/build/html/api/net.corda.core.contracts/-c-h-f.html
new file mode 100644
index 0000000000..da8d1e8328
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-c-h-f.html
@@ -0,0 +1,15 @@
+
+
+CHF -
+
+
+
+net.corda.core.contracts / CHF
+
+CHF
+
+val CHF : Currency
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-client-to-service-command/-exit-cash/-init-.html b/docs/build/html/api/net.corda.core.contracts/-client-to-service-command/-exit-cash/-init-.html
new file mode 100644
index 0000000000..5891a6cd6b
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-client-to-service-command/-exit-cash/-init-.html
@@ -0,0 +1,24 @@
+
+
+ClientToServiceCommand.ExitCash. -
+
+
+
+net.corda.core.contracts / ClientToServiceCommand / ExitCash / <init>
+
+<init>
+ExitCash ( amount : Amount < Currency > , issueRef : OpaqueBytes , id : UUID = UUID.randomUUID())
+Exit cash from the ledger.
+Parameters
+
+amount
- the amount of currency to exit from the ledger.
+
+
+issueRef
- the reference previously specified on the issuance.
+
+
+id
- the ID to be provided in events resulting from this request.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-client-to-service-command/-exit-cash/amount.html b/docs/build/html/api/net.corda.core.contracts/-client-to-service-command/-exit-cash/amount.html
new file mode 100644
index 0000000000..2781b44ef6
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-client-to-service-command/-exit-cash/amount.html
@@ -0,0 +1,15 @@
+
+
+ClientToServiceCommand.ExitCash.amount -
+
+
+
+net.corda.core.contracts / ClientToServiceCommand / ExitCash / amount
+
+amount
+
+val amount : Amount < Currency >
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-client-to-service-command/-exit-cash/index.html b/docs/build/html/api/net.corda.core.contracts/-client-to-service-command/-exit-cash/index.html
new file mode 100644
index 0000000000..9a1a92d163
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-client-to-service-command/-exit-cash/index.html
@@ -0,0 +1,64 @@
+
+
+ClientToServiceCommand.ExitCash -
+
+
+
+net.corda.core.contracts / ClientToServiceCommand / ExitCash
+
+ExitCash
+class ExitCash : ClientToServiceCommand
+Exit cash from the ledger.
+Parameters
+
+amount
- the amount of currency to exit from the ledger.
+
+
+issueRef
- the reference previously specified on the issuance.
+
+
+id
- the ID to be provided in events resulting from this request.
+
+
+Constructors
+
+Properties
+
+Inherited Properties
+
+
+
+
+id
+
+val id : UUID
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-client-to-service-command/-exit-cash/issue-ref.html b/docs/build/html/api/net.corda.core.contracts/-client-to-service-command/-exit-cash/issue-ref.html
new file mode 100644
index 0000000000..4c1b638097
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-client-to-service-command/-exit-cash/issue-ref.html
@@ -0,0 +1,15 @@
+
+
+ClientToServiceCommand.ExitCash.issueRef -
+
+
+
+net.corda.core.contracts / ClientToServiceCommand / ExitCash / issueRef
+
+issueRef
+
+val issueRef : OpaqueBytes
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-client-to-service-command/-issue-cash/-init-.html b/docs/build/html/api/net.corda.core.contracts/-client-to-service-command/-issue-cash/-init-.html
new file mode 100644
index 0000000000..4e44790016
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-client-to-service-command/-issue-cash/-init-.html
@@ -0,0 +1,31 @@
+
+
+ClientToServiceCommand.IssueCash. -
+
+
+
+net.corda.core.contracts / ClientToServiceCommand / IssueCash / <init>
+
+<init>
+IssueCash ( amount : Amount < Currency > , issueRef : OpaqueBytes , recipient : Party , notary : Party , id : UUID = UUID.randomUUID())
+Issue cash state objects.
+Parameters
+
+amount
- the amount of currency to issue on to the ledger.
+
+
+issueRef
- the reference to specify on the issuance, used to differentiate pools of cash. Convention is
+to use the single byte "0x01" as a default.
+
+
+recipient
- the party to issue the cash to.
+
+
+notary
- the notary to use for this transaction.
+
+
+id
- the ID to be provided in events resulting from this request.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-client-to-service-command/-issue-cash/amount.html b/docs/build/html/api/net.corda.core.contracts/-client-to-service-command/-issue-cash/amount.html
new file mode 100644
index 0000000000..6a134ee189
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-client-to-service-command/-issue-cash/amount.html
@@ -0,0 +1,15 @@
+
+
+ClientToServiceCommand.IssueCash.amount -
+
+
+
+net.corda.core.contracts / ClientToServiceCommand / IssueCash / amount
+
+amount
+
+val amount : Amount < Currency >
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-client-to-service-command/-issue-cash/index.html b/docs/build/html/api/net.corda.core.contracts/-client-to-service-command/-issue-cash/index.html
new file mode 100644
index 0000000000..d7bcec9a6a
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-client-to-service-command/-issue-cash/index.html
@@ -0,0 +1,83 @@
+
+
+ClientToServiceCommand.IssueCash -
+
+
+
+net.corda.core.contracts / ClientToServiceCommand / IssueCash
+
+IssueCash
+class IssueCash : ClientToServiceCommand
+Issue cash state objects.
+Parameters
+
+amount
- the amount of currency to issue on to the ledger.
+
+
+issueRef
- the reference to specify on the issuance, used to differentiate pools of cash. Convention is
+to use the single byte "0x01" as a default.
+
+
+recipient
- the party to issue the cash to.
+
+
+notary
- the notary to use for this transaction.
+
+
+id
- the ID to be provided in events resulting from this request.
+
+
+Constructors
+
+Properties
+
+Inherited Properties
+
+
+
+
+id
+
+val id : UUID
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-client-to-service-command/-issue-cash/issue-ref.html b/docs/build/html/api/net.corda.core.contracts/-client-to-service-command/-issue-cash/issue-ref.html
new file mode 100644
index 0000000000..ca0555b319
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-client-to-service-command/-issue-cash/issue-ref.html
@@ -0,0 +1,15 @@
+
+
+ClientToServiceCommand.IssueCash.issueRef -
+
+
+
+net.corda.core.contracts / ClientToServiceCommand / IssueCash / issueRef
+
+issueRef
+
+val issueRef : OpaqueBytes
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-client-to-service-command/-issue-cash/notary.html b/docs/build/html/api/net.corda.core.contracts/-client-to-service-command/-issue-cash/notary.html
new file mode 100644
index 0000000000..0ff04c5dd9
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-client-to-service-command/-issue-cash/notary.html
@@ -0,0 +1,15 @@
+
+
+ClientToServiceCommand.IssueCash.notary -
+
+
+
+net.corda.core.contracts / ClientToServiceCommand / IssueCash / notary
+
+notary
+
+val notary : Party
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-client-to-service-command/-issue-cash/recipient.html b/docs/build/html/api/net.corda.core.contracts/-client-to-service-command/-issue-cash/recipient.html
new file mode 100644
index 0000000000..8069dc7d58
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-client-to-service-command/-issue-cash/recipient.html
@@ -0,0 +1,15 @@
+
+
+ClientToServiceCommand.IssueCash.recipient -
+
+
+
+net.corda.core.contracts / ClientToServiceCommand / IssueCash / recipient
+
+recipient
+
+val recipient : Party
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-client-to-service-command/-pay-cash/-init-.html b/docs/build/html/api/net.corda.core.contracts/-client-to-service-command/-pay-cash/-init-.html
new file mode 100644
index 0000000000..d026ce0361
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-client-to-service-command/-pay-cash/-init-.html
@@ -0,0 +1,24 @@
+
+
+ClientToServiceCommand.PayCash. -
+
+
+
+net.corda.core.contracts / ClientToServiceCommand / PayCash / <init>
+
+<init>
+PayCash ( amount : Amount < Issued < Currency > > , recipient : Party , id : UUID = UUID.randomUUID())
+Pay cash to someone else.
+Parameters
+
+amount
- the amount of currency to issue on to the ledger.
+
+
+recipient
- the party to issue the cash to.
+
+
+id
- the ID to be provided in events resulting from this request.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-client-to-service-command/-pay-cash/amount.html b/docs/build/html/api/net.corda.core.contracts/-client-to-service-command/-pay-cash/amount.html
new file mode 100644
index 0000000000..e337a94a19
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-client-to-service-command/-pay-cash/amount.html
@@ -0,0 +1,15 @@
+
+
+ClientToServiceCommand.PayCash.amount -
+
+
+
+net.corda.core.contracts / ClientToServiceCommand / PayCash / amount
+
+amount
+
+val amount : Amount < Issued < Currency > >
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-client-to-service-command/-pay-cash/index.html b/docs/build/html/api/net.corda.core.contracts/-client-to-service-command/-pay-cash/index.html
new file mode 100644
index 0000000000..21947c9c64
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-client-to-service-command/-pay-cash/index.html
@@ -0,0 +1,64 @@
+
+
+ClientToServiceCommand.PayCash -
+
+
+
+net.corda.core.contracts / ClientToServiceCommand / PayCash
+
+PayCash
+class PayCash : ClientToServiceCommand
+Pay cash to someone else.
+Parameters
+
+amount
- the amount of currency to issue on to the ledger.
+
+
+recipient
- the party to issue the cash to.
+
+
+id
- the ID to be provided in events resulting from this request.
+
+
+Constructors
+
+Properties
+
+Inherited Properties
+
+
+
+
+id
+
+val id : UUID
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-client-to-service-command/-pay-cash/recipient.html b/docs/build/html/api/net.corda.core.contracts/-client-to-service-command/-pay-cash/recipient.html
new file mode 100644
index 0000000000..d1a463ec70
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-client-to-service-command/-pay-cash/recipient.html
@@ -0,0 +1,15 @@
+
+
+ClientToServiceCommand.PayCash.recipient -
+
+
+
+net.corda.core.contracts / ClientToServiceCommand / PayCash / recipient
+
+recipient
+
+val recipient : Party
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-client-to-service-command/id.html b/docs/build/html/api/net.corda.core.contracts/-client-to-service-command/id.html
new file mode 100644
index 0000000000..3dee44f2b1
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-client-to-service-command/id.html
@@ -0,0 +1,15 @@
+
+
+ClientToServiceCommand.id -
+
+
+
+net.corda.core.contracts / ClientToServiceCommand / id
+
+id
+
+val id : UUID
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-client-to-service-command/index.html b/docs/build/html/api/net.corda.core.contracts/-client-to-service-command/index.html
new file mode 100644
index 0000000000..7305085688
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-client-to-service-command/index.html
@@ -0,0 +1,81 @@
+
+
+ClientToServiceCommand -
+
+
+
+net.corda.core.contracts / ClientToServiceCommand
+
+ClientToServiceCommand
+sealed class ClientToServiceCommand
+A command from the monitoring client, to the node.
+Parameters
+
+id
- ID used to tag event(s) resulting from a command.
+
+
+Types
+
+
+
+
+ExitCash
+
+class ExitCash : ClientToServiceCommand
Exit cash from the ledger.
+
+
+
+
+IssueCash
+
+class IssueCash : ClientToServiceCommand
Issue cash state objects.
+
+
+
+
+PayCash
+
+class PayCash : ClientToServiceCommand
Pay cash to someone else.
+
+
+
+
+Properties
+
+
+
+
+id
+
+val id : UUID
+
+
+
+Inheritors
+
+
+
+
+ExitCash
+
+class ExitCash : ClientToServiceCommand
Exit cash from the ledger.
+
+
+
+
+IssueCash
+
+class IssueCash : ClientToServiceCommand
Issue cash state objects.
+
+
+
+
+PayCash
+
+class PayCash : ClientToServiceCommand
Pay cash to someone else.
+
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-command-data.html b/docs/build/html/api/net.corda.core.contracts/-command-data.html
new file mode 100644
index 0000000000..9130d6140a
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-command-data.html
@@ -0,0 +1,79 @@
+
+
+CommandData -
+
+
+
+net.corda.core.contracts / CommandData
+
+CommandData
+interface CommandData
+Marker interface for classes that represent commands
+
+
+Inheritors
+
+
+
+
+Commands
+
+interface Commands : CommandData
+
+
+
+Commands
+
+interface Commands : CommandData
+
+
+
+Commands
+
+interface Commands : CommandData
+
+
+
+Commands
+
+interface Commands : CommandData
+
+
+
+Fix
+
+data class Fix : CommandData
A Fix represents a named interest rate, on a given day, for a given duration. It can be embedded in a tx.
+
+
+
+
+IssueCommand
+
+interface IssueCommand : CommandData
A common issue command, to enforce that issue commands have a nonce value.
+
+
+
+
+MoveCommand
+
+interface MoveCommand : CommandData
A common move command for contracts which can change owner.
+
+
+
+
+NetCommand
+
+interface NetCommand : CommandData
A common netting command for contracts whose states can be netted.
+
+
+
+
+TypeOnlyCommandData
+
+abstract class TypeOnlyCommandData : CommandData
Commands that inherit from this are intended to have no data items: its only their presence that matters.
+
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-command/-init-.html b/docs/build/html/api/net.corda.core.contracts/-command/-init-.html
new file mode 100644
index 0000000000..13b8265969
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-command/-init-.html
@@ -0,0 +1,18 @@
+
+
+Command. -
+
+
+
+net.corda.core.contracts / Command / <init>
+
+<init>
+Command ( data : CommandData , key : PublicKey )
+
+
+Command ( value : CommandData , signers : List < PublicKey > )
+Command data/content plus pubkey pair: the signature is stored at the end of the serialized bytes
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-command/index.html b/docs/build/html/api/net.corda.core.contracts/-command/index.html
new file mode 100644
index 0000000000..2c42ffd60a
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-command/index.html
@@ -0,0 +1,55 @@
+
+
+Command -
+
+
+
+net.corda.core.contracts / Command
+
+Command
+data class Command
+Command data/content plus pubkey pair: the signature is stored at the end of the serialized bytes
+
+
+Constructors
+
+Properties
+
+Functions
+
+
+
+
+toString
+
+fun toString ( ) : String
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-command/signers.html b/docs/build/html/api/net.corda.core.contracts/-command/signers.html
new file mode 100644
index 0000000000..846dba8216
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-command/signers.html
@@ -0,0 +1,15 @@
+
+
+Command.signers -
+
+
+
+net.corda.core.contracts / Command / signers
+
+signers
+
+val signers : List < PublicKey >
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-command/to-string.html b/docs/build/html/api/net.corda.core.contracts/-command/to-string.html
new file mode 100644
index 0000000000..8bafe47a7f
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-command/to-string.html
@@ -0,0 +1,15 @@
+
+
+Command.toString -
+
+
+
+net.corda.core.contracts / Command / toString
+
+toString
+
+fun toString ( ) : String
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-command/value.html b/docs/build/html/api/net.corda.core.contracts/-command/value.html
new file mode 100644
index 0000000000..857bc3c220
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-command/value.html
@@ -0,0 +1,15 @@
+
+
+Command.value -
+
+
+
+net.corda.core.contracts / Command / value
+
+value
+
+val value : CommandData
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-commodity/-init-.html b/docs/build/html/api/net.corda.core.contracts/-commodity/-init-.html
new file mode 100644
index 0000000000..33c9ed6a24
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-commodity/-init-.html
@@ -0,0 +1,27 @@
+
+
+Commodity. -
+
+
+
+net.corda.core.contracts / Commodity / <init>
+
+<init>
+Commodity ( commodityCode : String , displayName : String , defaultFractionDigits : Int = 0)
+Class representing a commodity, as an equivalent to the Currency class. This exists purely to enable the
+CommodityContract contract, and is likely to change in future.
+Parameters
+
+commodityCode
- a unique code for the commodity. No specific registry for these is currently defined, although
+this is likely to change in future.
+
+
+displayName
- human readable name for the commodity.
+
+
+defaultFractionDigits
- the number of digits normally after the decimal point when referring to quantities of
+this commodity.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-commodity/commodity-code.html b/docs/build/html/api/net.corda.core.contracts/-commodity/commodity-code.html
new file mode 100644
index 0000000000..c25d8a76ca
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-commodity/commodity-code.html
@@ -0,0 +1,15 @@
+
+
+Commodity.commodityCode -
+
+
+
+net.corda.core.contracts / Commodity / commodityCode
+
+commodityCode
+
+val commodityCode : String
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-commodity/default-fraction-digits.html b/docs/build/html/api/net.corda.core.contracts/-commodity/default-fraction-digits.html
new file mode 100644
index 0000000000..7a51967cb5
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-commodity/default-fraction-digits.html
@@ -0,0 +1,15 @@
+
+
+Commodity.defaultFractionDigits -
+
+
+
+net.corda.core.contracts / Commodity / defaultFractionDigits
+
+defaultFractionDigits
+
+val defaultFractionDigits : Int
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-commodity/display-name.html b/docs/build/html/api/net.corda.core.contracts/-commodity/display-name.html
new file mode 100644
index 0000000000..ac2e059999
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-commodity/display-name.html
@@ -0,0 +1,15 @@
+
+
+Commodity.displayName -
+
+
+
+net.corda.core.contracts / Commodity / displayName
+
+displayName
+
+val displayName : String
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-commodity/get-instance.html b/docs/build/html/api/net.corda.core.contracts/-commodity/get-instance.html
new file mode 100644
index 0000000000..386ef6788c
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-commodity/get-instance.html
@@ -0,0 +1,15 @@
+
+
+Commodity.getInstance -
+
+
+
+net.corda.core.contracts / Commodity / getInstance
+
+getInstance
+
+fun getInstance ( commodityCode : String ) : Commodity ?
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-commodity/index.html b/docs/build/html/api/net.corda.core.contracts/-commodity/index.html
new file mode 100644
index 0000000000..42aaa154de
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-commodity/index.html
@@ -0,0 +1,91 @@
+
+
+Commodity -
+
+
+
+net.corda.core.contracts / Commodity
+
+Commodity
+data class Commodity
+Class representing a commodity, as an equivalent to the Currency class. This exists purely to enable the
+CommodityContract contract, and is likely to change in future.
+Parameters
+
+commodityCode
- a unique code for the commodity. No specific registry for these is currently defined, although
+this is likely to change in future.
+
+
+displayName
- human readable name for the commodity.
+
+
+defaultFractionDigits
- the number of digits normally after the decimal point when referring to quantities of
+this commodity.
+
+
+Constructors
+
+
+
+
+<init>
+
+Commodity ( commodityCode : String , displayName : String , defaultFractionDigits : Int = 0)
Class representing a commodity, as an equivalent to the Currency class. This exists purely to enable the
+CommodityContract contract, and is likely to change in future.
+
+
+
+
+Properties
+
+Companion Object Functions
+
+
+
+
+getInstance
+
+fun getInstance ( commodityCode : String ) : Commodity ?
+
+
+
+Extension Functions
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-contract-state/contract.html b/docs/build/html/api/net.corda.core.contracts/-contract-state/contract.html
new file mode 100644
index 0000000000..494b005c0d
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-contract-state/contract.html
@@ -0,0 +1,42 @@
+
+
+ContractState.contract -
+
+
+
+net.corda.core.contracts / ContractState / contract
+
+contract
+
+abstract val contract : Contract
+An instance of the contract class that will verify this state.
+Discussion
+This field is not the final design, its just a piece of temporary scaffolding. Once the contract sandbox is
+further along, this field will become a description of which attachments are acceptable for defining the
+contract.
+Recall that an attachment is a zip file that can be referenced from any transaction. The contents of the
+attachments are merged together and cannot define any overlapping files, thus for any given transaction there
+is a miniature file system in which each file can be precisely mapped to the defining attachment.
+Attachments may contain many things (data files, legal documents, etc) but mostly they contain JVM bytecode.
+The class files inside define not only Contract implementations but also the classes that define the states.
+Within the rest of a transaction, user-providable components are referenced by name only.
+This means that a smart contract in Corda does two things:
+Define the data structures that compose the ledger (the states)
+Define the rules for updating those structures
+The first is merely a utility role ... in theory contract code could manually parse byte streams by hand.
+The second is vital to the integrity of the ledger. So this field needs to be able to express constraints like:
+Only attachment 733c350f396a727655be1363c06635ba355036bd54a5ed6e594fd0b5d05f42f6 may be used with this state.
+Any attachment signed by public key 2d1ce0e330c52b8055258d776c40 may be used with this state.
+Attachments (1, 2, 3) may all be used with this state.
+and so on. In this way it becomes possible for the business logic governing a state to be evolved, if the
+constraints are flexible enough.
+Because contract classes often also define utilities that generate relevant transactions, and because attachments
+cannot know their own hashes, we will have to provide various utilities to assist with obtaining the right
+code constraints from within the contract code itself.
+TODO: Implement the above description. See COR-226
+
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-contract-state/encumbrance.html b/docs/build/html/api/net.corda.core.contracts/-contract-state/encumbrance.html
new file mode 100644
index 0000000000..0d1afcfe0b
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-contract-state/encumbrance.html
@@ -0,0 +1,29 @@
+
+
+ContractState.encumbrance -
+
+
+
+net.corda.core.contracts / ContractState / encumbrance
+
+encumbrance
+
+open val encumbrance : Int ?
+All contract states may be encumbered by up to one other state.
+The encumbrance state, if present, forces additional controls over the encumbered state, since the platform checks
+that the encumbrance state is present as an input in the same transaction that consumes the encumbered state, and
+the contract code and rules of the encumbrance state will also be verified during the execution of the transaction.
+For example, a cash contract state could be encumbered with a time-lock contract state; the cash state is then only
+processable in a transaction that verifies that the time specified in the encumbrance time-lock has passed.
+The encumbered state refers to another by index, and the referred encumbrance state
+is an output state in a particular position on the same transaction that created the encumbered state. An alternative
+implementation would be encumber by reference to a StateRef., which would allow the specification of encumbrance
+by a state created in a prior transaction.
+Note that an encumbered state that is being consumed must have its encumbrance consumed in the same transaction,
+otherwise the transaction is not valid.
+
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-contract-state/index.html b/docs/build/html/api/net.corda.core.contracts/-contract-state/index.html
new file mode 100644
index 0000000000..c7c42ef560
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-contract-state/index.html
@@ -0,0 +1,125 @@
+
+
+ContractState -
+
+
+
+net.corda.core.contracts / ContractState
+
+ContractState
+interface ContractState
+A contract state (or just "state") contains opaque data used by a contract program. It can be thought of as a disk
+file that the program can use to persist data across transactions. States are immutable: once created they are never
+updated, instead, any changes must generate a new successor state. States can be updated (consumed) only once: the
+notary is responsible for ensuring there is no "double spending" by only signing a transaction if the input states
+are all free.
+
+
+Properties
+
+
+
+
+contract
+
+abstract val contract : Contract
An instance of the contract class that will verify this state.
+
+
+
+
+encumbrance
+
+open val encumbrance : Int ?
All contract states may be encumbered by up to one other state.
+
+
+
+
+participants
+
+abstract val participants : List < PublicKey >
A participant is any party that is able to consume this state in a valid transaction.
+
+
+
+
+Extension Functions
+
+Inheritors
+
+
+
+
+DummyState
+
+data class DummyState : ContractState
Dummy state for use in testing. Not part of any contract, not even the DummyContract .
+
+
+
+
+LinearState
+
+interface LinearState : ContractState
A state that evolves by superseding itself, all of which share the common "linearId".
+
+
+
+
+MultiOwnerState
+
+data class MultiOwnerState : ContractState , State
Alternative state with multiple owners. This exists primarily to provide a dummy state with multiple
+participants, and could in theory be merged with SingleOwnerState by putting the additional participants
+in a different field, however this is a good example of a contract with multiple states.
+
+
+
+
+OwnableState
+
+interface OwnableState : ContractState
A contract state that can have a single owner.
+
+
+
+
+QueryableState
+
+interface QueryableState : ContractState
A contract state that may be mapped to database schemas configured for this node to support querying for,
+or filtering of, states.
+
+
+
+
+SchedulableState
+
+interface SchedulableState : ContractState
+
+
+
+State
+
+interface State : ContractState
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-contract-state/participants.html b/docs/build/html/api/net.corda.core.contracts/-contract-state/participants.html
new file mode 100644
index 0000000000..d4a9a2a3c0
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-contract-state/participants.html
@@ -0,0 +1,24 @@
+
+
+ContractState.participants -
+
+
+
+net.corda.core.contracts / ContractState / participants
+
+participants
+
+abstract val participants : List < PublicKey >
+A participant is any party that is able to consume this state in a valid transaction.
+The list of participants is required for certain types of transactions. For example, when changing the notary
+for this state (TransactionType.NotaryChange ), every participant has to be involved and approve the transaction
+so that they receive the updated state, and dont end up in a situation where they can no longer use a state
+they possess, since someone consumed that state during the notary change process.
+The participants list should normally be derived from the contents of the state. E.g. for Cash the participants
+list should just contain the owner.
+
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-contract/index.html b/docs/build/html/api/net.corda.core.contracts/-contract/index.html
new file mode 100644
index 0000000000..4298931ac1
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-contract/index.html
@@ -0,0 +1,89 @@
+
+
+Contract -
+
+
+
+net.corda.core.contracts / Contract
+
+Contract
+interface Contract
+Implemented by a program that implements business logic on the shared ledger. All participants run this code for
+every LedgerTransaction they see on the network, for every input and output state. All contracts must accept the
+transaction for it to be accepted: failure of any aborts the entire thing. The time is taken from a trusted
+timestamp attached to the transaction itself i.e. it is NOT necessarily the current time.
+
+
+Properties
+
+
+
+
+legalContractReference
+
+abstract val legalContractReference : SecureHash
Unparsed reference to the natural language contract that this code is supposed to express (usually a hash of
+the contracts contents).
+
+
+
+
+Functions
+
+
+
+
+verify
+
+abstract fun verify ( tx : TransactionForContract ) : Unit
Takes an object that represents a state transition, and ensures the inputs/outputs/commands make sense.
+Must throw an exception if theres a problem that should prevent state transition. Takes a single object
+rather than an argument so that additional data can be added without breaking binary compatibility with
+existing contract code.
+
+
+
+
+Inheritors
+
+
+
+
+CommercialPaper
+
+class CommercialPaper : Contract
+
+
+
+CommercialPaperLegacy
+
+class CommercialPaperLegacy : Contract
+
+
+
+DummyContract
+
+class DummyContract : Contract
+
+
+
+Obligation
+
+class Obligation < P > : Contract
An obligation contract commits the obligor to delivering a specified amount of a fungible asset (for example the
+Cash contract) at a specified future point in time. Settlement transactions may split and merge contracts across
+multiple input and output states. The goal of this design is to handle amounts owed, and these contracts are expected
+to be netted/merged, with settlement only for any remainder amount.
+
+
+
+
+OnLedgerAsset
+
+abstract class OnLedgerAsset < T : Any , C : CommandData , S : FungibleAsset < T > > : Contract
An asset transaction may split and merge assets represented by a set of (issuer, depositRef) pairs, across multiple
+input and output states. Imagine a Bitcoin transaction but in which all UTXOs had a colour (a blend of
+issuer+depositRef) and you couldnt merge outputs of two colours together, but you COULD put them in the same
+transaction.
+
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-contract/legal-contract-reference.html b/docs/build/html/api/net.corda.core.contracts/-contract/legal-contract-reference.html
new file mode 100644
index 0000000000..e201781952
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-contract/legal-contract-reference.html
@@ -0,0 +1,17 @@
+
+
+Contract.legalContractReference -
+
+
+
+net.corda.core.contracts / Contract / legalContractReference
+
+legalContractReference
+
+abstract val legalContractReference : SecureHash
+Unparsed reference to the natural language contract that this code is supposed to express (usually a hash of
+the contracts contents).
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-contract/verify.html b/docs/build/html/api/net.corda.core.contracts/-contract/verify.html
new file mode 100644
index 0000000000..eb96441bb1
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-contract/verify.html
@@ -0,0 +1,19 @@
+
+
+Contract.verify -
+
+
+
+net.corda.core.contracts / Contract / verify
+
+verify
+
+abstract fun verify ( tx : TransactionForContract ) : Unit
+Takes an object that represents a state transition, and ensures the inputs/outputs/commands make sense.
+Must throw an exception if theres a problem that should prevent state transition. Takes a single object
+rather than an argument so that additional data can be added without breaking binary compatibility with
+existing contract code.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-d-o-l-l-a-r-s.html b/docs/build/html/api/net.corda.core.contracts/-d-o-l-l-a-r-s.html
new file mode 100644
index 0000000000..48f3cc808d
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-d-o-l-l-a-r-s.html
@@ -0,0 +1,17 @@
+
+
+DOLLARS -
+
+
+
+net.corda.core.contracts / DOLLARS
+
+DOLLARS
+
+fun DOLLARS ( amount : Int ) : Amount < Currency >
+
+fun DOLLARS ( amount : Double ) : Amount < Currency >
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-d-u-m-m-y_-p-r-o-g-r-a-m_-i-d.html b/docs/build/html/api/net.corda.core.contracts/-d-u-m-m-y_-p-r-o-g-r-a-m_-i-d.html
new file mode 100644
index 0000000000..307c852194
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-d-u-m-m-y_-p-r-o-g-r-a-m_-i-d.html
@@ -0,0 +1,15 @@
+
+
+DUMMY_PROGRAM_ID -
+
+
+
+net.corda.core.contracts / DUMMY_PROGRAM_ID
+
+DUMMY_PROGRAM_ID
+
+val DUMMY_PROGRAM_ID : DummyContract
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-date-roll-convention/-actual/direction.html b/docs/build/html/api/net.corda.core.contracts/-date-roll-convention/-actual/direction.html
new file mode 100644
index 0000000000..71d3101bb9
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-date-roll-convention/-actual/direction.html
@@ -0,0 +1,16 @@
+
+
+DateRollConvention.Actual.direction -
+
+
+
+net.corda.core.contracts / DateRollConvention / Actual / direction
+
+direction
+
+fun direction ( ) : DateRollDirection
+Overrides DateRollConvention.direction
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-date-roll-convention/-actual/index.html b/docs/build/html/api/net.corda.core.contracts/-date-roll-convention/-actual/index.html
new file mode 100644
index 0000000000..0fa742006d
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-date-roll-convention/-actual/index.html
@@ -0,0 +1,37 @@
+
+
+DateRollConvention.Actual -
+
+
+
+net.corda.core.contracts / DateRollConvention / Actual
+
+Actual
+Actual
+Dont roll the date, use the one supplied.
+
+
+Properties
+
+
+
+
+isModified
+
+val isModified : Boolean
+
+
+
+Functions
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-date-roll-convention/-actual/is-modified.html b/docs/build/html/api/net.corda.core.contracts/-date-roll-convention/-actual/is-modified.html
new file mode 100644
index 0000000000..47201ba388
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-date-roll-convention/-actual/is-modified.html
@@ -0,0 +1,16 @@
+
+
+DateRollConvention.Actual.isModified -
+
+
+
+net.corda.core.contracts / DateRollConvention / Actual / isModified
+
+isModified
+
+val isModified : Boolean
+Overrides DateRollConvention.isModified
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-date-roll-convention/-following/direction.html b/docs/build/html/api/net.corda.core.contracts/-date-roll-convention/-following/direction.html
new file mode 100644
index 0000000000..f40f152d03
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-date-roll-convention/-following/direction.html
@@ -0,0 +1,16 @@
+
+
+DateRollConvention.Following.direction -
+
+
+
+net.corda.core.contracts / DateRollConvention / Following / direction
+
+direction
+
+fun direction ( ) : DateRollDirection
+Overrides DateRollConvention.direction
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-date-roll-convention/-following/index.html b/docs/build/html/api/net.corda.core.contracts/-date-roll-convention/-following/index.html
new file mode 100644
index 0000000000..a946f003bf
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-date-roll-convention/-following/index.html
@@ -0,0 +1,37 @@
+
+
+DateRollConvention.Following -
+
+
+
+net.corda.core.contracts / DateRollConvention / Following
+
+Following
+Following
+Following is the next business date from this one.
+
+
+Properties
+
+
+
+
+isModified
+
+val isModified : Boolean
+
+
+
+Functions
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-date-roll-convention/-following/is-modified.html b/docs/build/html/api/net.corda.core.contracts/-date-roll-convention/-following/is-modified.html
new file mode 100644
index 0000000000..ee5f4974c8
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-date-roll-convention/-following/is-modified.html
@@ -0,0 +1,16 @@
+
+
+DateRollConvention.Following.isModified -
+
+
+
+net.corda.core.contracts / DateRollConvention / Following / isModified
+
+isModified
+
+val isModified : Boolean
+Overrides DateRollConvention.isModified
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-date-roll-convention/-modified-following/direction.html b/docs/build/html/api/net.corda.core.contracts/-date-roll-convention/-modified-following/direction.html
new file mode 100644
index 0000000000..200127b580
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-date-roll-convention/-modified-following/direction.html
@@ -0,0 +1,16 @@
+
+
+DateRollConvention.ModifiedFollowing.direction -
+
+
+
+net.corda.core.contracts / DateRollConvention / ModifiedFollowing / direction
+
+direction
+
+fun direction ( ) : DateRollDirection
+Overrides DateRollConvention.direction
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-date-roll-convention/-modified-following/index.html b/docs/build/html/api/net.corda.core.contracts/-date-roll-convention/-modified-following/index.html
new file mode 100644
index 0000000000..e5a1280b57
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-date-roll-convention/-modified-following/index.html
@@ -0,0 +1,38 @@
+
+
+DateRollConvention.ModifiedFollowing -
+
+
+
+net.corda.core.contracts / DateRollConvention / ModifiedFollowing
+
+ModifiedFollowing
+ModifiedFollowing
+"Modified following" is the next business date, unless its in the next month, in which case use the preceeding
+business date.
+
+
+Properties
+
+
+
+
+isModified
+
+val isModified : Boolean
+
+
+
+Functions
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-date-roll-convention/-modified-following/is-modified.html b/docs/build/html/api/net.corda.core.contracts/-date-roll-convention/-modified-following/is-modified.html
new file mode 100644
index 0000000000..ec1c008223
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-date-roll-convention/-modified-following/is-modified.html
@@ -0,0 +1,16 @@
+
+
+DateRollConvention.ModifiedFollowing.isModified -
+
+
+
+net.corda.core.contracts / DateRollConvention / ModifiedFollowing / isModified
+
+isModified
+
+val isModified : Boolean
+Overrides DateRollConvention.isModified
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-date-roll-convention/-modified-previous/direction.html b/docs/build/html/api/net.corda.core.contracts/-date-roll-convention/-modified-previous/direction.html
new file mode 100644
index 0000000000..328ed9bc63
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-date-roll-convention/-modified-previous/direction.html
@@ -0,0 +1,16 @@
+
+
+DateRollConvention.ModifiedPrevious.direction -
+
+
+
+net.corda.core.contracts / DateRollConvention / ModifiedPrevious / direction
+
+direction
+
+fun direction ( ) : DateRollDirection
+Overrides DateRollConvention.direction
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-date-roll-convention/-modified-previous/index.html b/docs/build/html/api/net.corda.core.contracts/-date-roll-convention/-modified-previous/index.html
new file mode 100644
index 0000000000..2170bacd65
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-date-roll-convention/-modified-previous/index.html
@@ -0,0 +1,38 @@
+
+
+DateRollConvention.ModifiedPrevious -
+
+
+
+net.corda.core.contracts / DateRollConvention / ModifiedPrevious
+
+ModifiedPrevious
+ModifiedPrevious
+Modified previous is the previous business date, unless its in the previous month, in which case use the next
+business date.
+
+
+Properties
+
+
+
+
+isModified
+
+val isModified : Boolean
+
+
+
+Functions
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-date-roll-convention/-modified-previous/is-modified.html b/docs/build/html/api/net.corda.core.contracts/-date-roll-convention/-modified-previous/is-modified.html
new file mode 100644
index 0000000000..804b928b6a
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-date-roll-convention/-modified-previous/is-modified.html
@@ -0,0 +1,16 @@
+
+
+DateRollConvention.ModifiedPrevious.isModified -
+
+
+
+net.corda.core.contracts / DateRollConvention / ModifiedPrevious / isModified
+
+isModified
+
+val isModified : Boolean
+Overrides DateRollConvention.isModified
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-date-roll-convention/-previous/direction.html b/docs/build/html/api/net.corda.core.contracts/-date-roll-convention/-previous/direction.html
new file mode 100644
index 0000000000..d6a6b2ca09
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-date-roll-convention/-previous/direction.html
@@ -0,0 +1,16 @@
+
+
+DateRollConvention.Previous.direction -
+
+
+
+net.corda.core.contracts / DateRollConvention / Previous / direction
+
+direction
+
+fun direction ( ) : DateRollDirection
+Overrides DateRollConvention.direction
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-date-roll-convention/-previous/index.html b/docs/build/html/api/net.corda.core.contracts/-date-roll-convention/-previous/index.html
new file mode 100644
index 0000000000..c0cc880da4
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-date-roll-convention/-previous/index.html
@@ -0,0 +1,37 @@
+
+
+DateRollConvention.Previous -
+
+
+
+net.corda.core.contracts / DateRollConvention / Previous
+
+Previous
+Previous
+Previous is the previous business date from this one.
+
+
+Properties
+
+
+
+
+isModified
+
+val isModified : Boolean
+
+
+
+Functions
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-date-roll-convention/-previous/is-modified.html b/docs/build/html/api/net.corda.core.contracts/-date-roll-convention/-previous/is-modified.html
new file mode 100644
index 0000000000..b8aa562178
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-date-roll-convention/-previous/is-modified.html
@@ -0,0 +1,16 @@
+
+
+DateRollConvention.Previous.isModified -
+
+
+
+net.corda.core.contracts / DateRollConvention / Previous / isModified
+
+isModified
+
+val isModified : Boolean
+Overrides DateRollConvention.isModified
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-date-roll-convention/direction.html b/docs/build/html/api/net.corda.core.contracts/-date-roll-convention/direction.html
new file mode 100644
index 0000000000..f763945a08
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-date-roll-convention/direction.html
@@ -0,0 +1,15 @@
+
+
+DateRollConvention.direction -
+
+
+
+net.corda.core.contracts / DateRollConvention / direction
+
+direction
+
+abstract fun direction ( ) : DateRollDirection
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-date-roll-convention/index.html b/docs/build/html/api/net.corda.core.contracts/-date-roll-convention/index.html
new file mode 100644
index 0000000000..40fbe8075a
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-date-roll-convention/index.html
@@ -0,0 +1,81 @@
+
+
+DateRollConvention -
+
+
+
+net.corda.core.contracts / DateRollConvention
+
+DateRollConvention
+enum class DateRollConvention
+This reflects what happens if a date on which a business event is supposed to happen actually falls upon a non-working day.
+Depending on the accounting requirement, we can move forward until we get to a business day, or backwards.
+There are some additional rules which are explained in the individual cases below.
+
+
+Enum Values
+
+
+
+
+Actual
+
+Dont roll the date, use the one supplied.
+
+
+
+
+Following
+
+Following is the next business date from this one.
+
+
+
+
+ModifiedFollowing
+
+"Modified following" is the next business date, unless its in the next month, in which case use the preceeding
+business date.
+
+
+
+
+Previous
+
+Previous is the previous business date from this one.
+
+
+
+
+ModifiedPrevious
+
+Modified previous is the previous business date, unless its in the previous month, in which case use the next
+business date.
+
+
+
+
+Properties
+
+
+
+
+isModified
+
+abstract val isModified : Boolean
+
+
+
+Functions
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-date-roll-convention/is-modified.html b/docs/build/html/api/net.corda.core.contracts/-date-roll-convention/is-modified.html
new file mode 100644
index 0000000000..ba8f4a822d
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-date-roll-convention/is-modified.html
@@ -0,0 +1,15 @@
+
+
+DateRollConvention.isModified -
+
+
+
+net.corda.core.contracts / DateRollConvention / isModified
+
+isModified
+
+abstract val isModified : Boolean
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-date-roll-direction/-b-a-c-k-w-a-r-d.html b/docs/build/html/api/net.corda.core.contracts/-date-roll-direction/-b-a-c-k-w-a-r-d.html
new file mode 100644
index 0000000000..e4f1e30582
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-date-roll-direction/-b-a-c-k-w-a-r-d.html
@@ -0,0 +1,25 @@
+
+
+DateRollDirection.BACKWARD -
+
+
+
+net.corda.core.contracts / DateRollDirection / BACKWARD
+
+BACKWARD
+BACKWARD
+
+
+Inherited Properties
+
+
+
+
+value
+
+val value : Long
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-date-roll-direction/-f-o-r-w-a-r-d.html b/docs/build/html/api/net.corda.core.contracts/-date-roll-direction/-f-o-r-w-a-r-d.html
new file mode 100644
index 0000000000..20a3a60058
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-date-roll-direction/-f-o-r-w-a-r-d.html
@@ -0,0 +1,25 @@
+
+
+DateRollDirection.FORWARD -
+
+
+
+net.corda.core.contracts / DateRollDirection / FORWARD
+
+FORWARD
+FORWARD
+
+
+Inherited Properties
+
+
+
+
+value
+
+val value : Long
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-date-roll-direction/index.html b/docs/build/html/api/net.corda.core.contracts/-date-roll-direction/index.html
new file mode 100644
index 0000000000..48012b8c77
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-date-roll-direction/index.html
@@ -0,0 +1,44 @@
+
+
+DateRollDirection -
+
+
+
+net.corda.core.contracts / DateRollDirection
+
+DateRollDirection
+enum class DateRollDirection
+This is utilised in the DateRollConvention class to determine which way we should initially step when
+finding a business day.
+
+
+Enum Values
+
+Properties
+
+
+
+
+value
+
+val value : Long
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-date-roll-direction/value.html b/docs/build/html/api/net.corda.core.contracts/-date-roll-direction/value.html
new file mode 100644
index 0000000000..abe519a124
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-date-roll-direction/value.html
@@ -0,0 +1,15 @@
+
+
+DateRollDirection.value -
+
+
+
+net.corda.core.contracts / DateRollDirection / value
+
+value
+
+val value : Long
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-day-count-basis-day/-d-actual-j.html b/docs/build/html/api/net.corda.core.contracts/-day-count-basis-day/-d-actual-j.html
new file mode 100644
index 0000000000..1376c95bcc
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-day-count-basis-day/-d-actual-j.html
@@ -0,0 +1,25 @@
+
+
+DayCountBasisDay.DActualJ -
+
+
+
+net.corda.core.contracts / DayCountBasisDay / DActualJ
+
+DActualJ
+DActualJ
+
+
+Inherited Functions
+
+
+
+
+toString
+
+fun toString ( ) : String
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-day-count-basis-day/-d-actual.html b/docs/build/html/api/net.corda.core.contracts/-day-count-basis-day/-d-actual.html
new file mode 100644
index 0000000000..cbb619fd79
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-day-count-basis-day/-d-actual.html
@@ -0,0 +1,25 @@
+
+
+DayCountBasisDay.DActual -
+
+
+
+net.corda.core.contracts / DayCountBasisDay / DActual
+
+DActual
+DActual
+
+
+Inherited Functions
+
+
+
+
+toString
+
+fun toString ( ) : String
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-day-count-basis-day/-d-bus_-sao-paulo.html b/docs/build/html/api/net.corda.core.contracts/-day-count-basis-day/-d-bus_-sao-paulo.html
new file mode 100644
index 0000000000..f72e94340e
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-day-count-basis-day/-d-bus_-sao-paulo.html
@@ -0,0 +1,25 @@
+
+
+DayCountBasisDay.DBus_SaoPaulo -
+
+
+
+net.corda.core.contracts / DayCountBasisDay / DBus_SaoPaulo
+
+DBus_SaoPaulo
+DBus_SaoPaulo
+
+
+Inherited Functions
+
+
+
+
+toString
+
+fun toString ( ) : String
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-day-count-basis-day/-d30-e.html b/docs/build/html/api/net.corda.core.contracts/-day-count-basis-day/-d30-e.html
new file mode 100644
index 0000000000..b4f70466c2
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-day-count-basis-day/-d30-e.html
@@ -0,0 +1,25 @@
+
+
+DayCountBasisDay.D30E -
+
+
+
+net.corda.core.contracts / DayCountBasisDay / D30E
+
+D30E
+D30E
+
+
+Inherited Functions
+
+
+
+
+toString
+
+fun toString ( ) : String
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-day-count-basis-day/-d30-f.html b/docs/build/html/api/net.corda.core.contracts/-day-count-basis-day/-d30-f.html
new file mode 100644
index 0000000000..4d36e79338
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-day-count-basis-day/-d30-f.html
@@ -0,0 +1,25 @@
+
+
+DayCountBasisDay.D30F -
+
+
+
+net.corda.core.contracts / DayCountBasisDay / D30F
+
+D30F
+D30F
+
+
+Inherited Functions
+
+
+
+
+toString
+
+fun toString ( ) : String
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-day-count-basis-day/-d30-g.html b/docs/build/html/api/net.corda.core.contracts/-day-count-basis-day/-d30-g.html
new file mode 100644
index 0000000000..5bb5ec742d
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-day-count-basis-day/-d30-g.html
@@ -0,0 +1,25 @@
+
+
+DayCountBasisDay.D30G -
+
+
+
+net.corda.core.contracts / DayCountBasisDay / D30G
+
+D30G
+D30G
+
+
+Inherited Functions
+
+
+
+
+toString
+
+fun toString ( ) : String
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-day-count-basis-day/-d30-n.html b/docs/build/html/api/net.corda.core.contracts/-day-count-basis-day/-d30-n.html
new file mode 100644
index 0000000000..d07e9fd972
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-day-count-basis-day/-d30-n.html
@@ -0,0 +1,25 @@
+
+
+DayCountBasisDay.D30N -
+
+
+
+net.corda.core.contracts / DayCountBasisDay / D30N
+
+D30N
+D30N
+
+
+Inherited Functions
+
+
+
+
+toString
+
+fun toString ( ) : String
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-day-count-basis-day/-d30-p.html b/docs/build/html/api/net.corda.core.contracts/-day-count-basis-day/-d30-p.html
new file mode 100644
index 0000000000..4c400b2e51
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-day-count-basis-day/-d30-p.html
@@ -0,0 +1,25 @@
+
+
+DayCountBasisDay.D30P -
+
+
+
+net.corda.core.contracts / DayCountBasisDay / D30P
+
+D30P
+D30P
+
+
+Inherited Functions
+
+
+
+
+toString
+
+fun toString ( ) : String
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-day-count-basis-day/-d30-z.html b/docs/build/html/api/net.corda.core.contracts/-day-count-basis-day/-d30-z.html
new file mode 100644
index 0000000000..06cad1b7a4
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-day-count-basis-day/-d30-z.html
@@ -0,0 +1,25 @@
+
+
+DayCountBasisDay.D30Z -
+
+
+
+net.corda.core.contracts / DayCountBasisDay / D30Z
+
+D30Z
+D30Z
+
+
+Inherited Functions
+
+
+
+
+toString
+
+fun toString ( ) : String
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-day-count-basis-day/-d30.html b/docs/build/html/api/net.corda.core.contracts/-day-count-basis-day/-d30.html
new file mode 100644
index 0000000000..7a05baceb6
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-day-count-basis-day/-d30.html
@@ -0,0 +1,25 @@
+
+
+DayCountBasisDay.D30 -
+
+
+
+net.corda.core.contracts / DayCountBasisDay / D30
+
+D30
+D30
+
+
+Inherited Functions
+
+
+
+
+toString
+
+fun toString ( ) : String
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-day-count-basis-day/index.html b/docs/build/html/api/net.corda.core.contracts/-day-count-basis-day/index.html
new file mode 100644
index 0000000000..e27425d628
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-day-count-basis-day/index.html
@@ -0,0 +1,93 @@
+
+
+DayCountBasisDay -
+
+
+
+net.corda.core.contracts / DayCountBasisDay
+
+DayCountBasisDay
+enum class DayCountBasisDay
+This forms the day part of the "Day Count Basis" used for interest calculation.
+Note that the first character cannot be a number (enum naming constraints), so we drop that
+in the toString lest some people get confused.
+
+
+Enum Values
+
+Functions
+
+
+
+
+toString
+
+fun toString ( ) : String
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-day-count-basis-day/to-string.html b/docs/build/html/api/net.corda.core.contracts/-day-count-basis-day/to-string.html
new file mode 100644
index 0000000000..0022a21da3
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-day-count-basis-day/to-string.html
@@ -0,0 +1,15 @@
+
+
+DayCountBasisDay.toString -
+
+
+
+net.corda.core.contracts / DayCountBasisDay / toString
+
+toString
+
+fun toString ( ) : String
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-day-count-basis-year/-y-actual-a.html b/docs/build/html/api/net.corda.core.contracts/-day-count-basis-year/-y-actual-a.html
new file mode 100644
index 0000000000..8705002193
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-day-count-basis-year/-y-actual-a.html
@@ -0,0 +1,25 @@
+
+
+DayCountBasisYear.YActualA -
+
+
+
+net.corda.core.contracts / DayCountBasisYear / YActualA
+
+YActualA
+YActualA
+
+
+Inherited Functions
+
+
+
+
+toString
+
+fun toString ( ) : String
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-day-count-basis-year/-y-actual.html b/docs/build/html/api/net.corda.core.contracts/-day-count-basis-year/-y-actual.html
new file mode 100644
index 0000000000..d2ce3ba23a
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-day-count-basis-year/-y-actual.html
@@ -0,0 +1,25 @@
+
+
+DayCountBasisYear.YActual -
+
+
+
+net.corda.core.contracts / DayCountBasisYear / YActual
+
+YActual
+YActual
+
+
+Inherited Functions
+
+
+
+
+toString
+
+fun toString ( ) : String
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-day-count-basis-year/-y-i-c-m-a.html b/docs/build/html/api/net.corda.core.contracts/-day-count-basis-year/-y-i-c-m-a.html
new file mode 100644
index 0000000000..2858339c0a
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-day-count-basis-year/-y-i-c-m-a.html
@@ -0,0 +1,25 @@
+
+
+DayCountBasisYear.YICMA -
+
+
+
+net.corda.core.contracts / DayCountBasisYear / YICMA
+
+YICMA
+YICMA
+
+
+Inherited Functions
+
+
+
+
+toString
+
+fun toString ( ) : String
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-day-count-basis-year/-y-i-s-m-a.html b/docs/build/html/api/net.corda.core.contracts/-day-count-basis-year/-y-i-s-m-a.html
new file mode 100644
index 0000000000..77e2cfa7c0
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-day-count-basis-year/-y-i-s-m-a.html
@@ -0,0 +1,25 @@
+
+
+DayCountBasisYear.YISMA -
+
+
+
+net.corda.core.contracts / DayCountBasisYear / YISMA
+
+YISMA
+YISMA
+
+
+Inherited Functions
+
+
+
+
+toString
+
+fun toString ( ) : String
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-day-count-basis-year/-y252.html b/docs/build/html/api/net.corda.core.contracts/-day-count-basis-year/-y252.html
new file mode 100644
index 0000000000..010cbac36d
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-day-count-basis-year/-y252.html
@@ -0,0 +1,25 @@
+
+
+DayCountBasisYear.Y252 -
+
+
+
+net.corda.core.contracts / DayCountBasisYear / Y252
+
+Y252
+Y252
+
+
+Inherited Functions
+
+
+
+
+toString
+
+fun toString ( ) : String
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-day-count-basis-year/-y360.html b/docs/build/html/api/net.corda.core.contracts/-day-count-basis-year/-y360.html
new file mode 100644
index 0000000000..8b328581dd
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-day-count-basis-year/-y360.html
@@ -0,0 +1,25 @@
+
+
+DayCountBasisYear.Y360 -
+
+
+
+net.corda.core.contracts / DayCountBasisYear / Y360
+
+Y360
+Y360
+
+
+Inherited Functions
+
+
+
+
+toString
+
+fun toString ( ) : String
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-day-count-basis-year/-y365-b.html b/docs/build/html/api/net.corda.core.contracts/-day-count-basis-year/-y365-b.html
new file mode 100644
index 0000000000..f3ec0c2c3e
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-day-count-basis-year/-y365-b.html
@@ -0,0 +1,25 @@
+
+
+DayCountBasisYear.Y365B -
+
+
+
+net.corda.core.contracts / DayCountBasisYear / Y365B
+
+Y365B
+Y365B
+
+
+Inherited Functions
+
+
+
+
+toString
+
+fun toString ( ) : String
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-day-count-basis-year/-y365-f.html b/docs/build/html/api/net.corda.core.contracts/-day-count-basis-year/-y365-f.html
new file mode 100644
index 0000000000..ad601947c8
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-day-count-basis-year/-y365-f.html
@@ -0,0 +1,25 @@
+
+
+DayCountBasisYear.Y365F -
+
+
+
+net.corda.core.contracts / DayCountBasisYear / Y365F
+
+Y365F
+Y365F
+
+
+Inherited Functions
+
+
+
+
+toString
+
+fun toString ( ) : String
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-day-count-basis-year/-y365-l.html b/docs/build/html/api/net.corda.core.contracts/-day-count-basis-year/-y365-l.html
new file mode 100644
index 0000000000..a7da0f3a6c
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-day-count-basis-year/-y365-l.html
@@ -0,0 +1,25 @@
+
+
+DayCountBasisYear.Y365L -
+
+
+
+net.corda.core.contracts / DayCountBasisYear / Y365L
+
+Y365L
+Y365L
+
+
+Inherited Functions
+
+
+
+
+toString
+
+fun toString ( ) : String
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-day-count-basis-year/-y365-q.html b/docs/build/html/api/net.corda.core.contracts/-day-count-basis-year/-y365-q.html
new file mode 100644
index 0000000000..4a4e307671
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-day-count-basis-year/-y365-q.html
@@ -0,0 +1,25 @@
+
+
+DayCountBasisYear.Y365Q -
+
+
+
+net.corda.core.contracts / DayCountBasisYear / Y365Q
+
+Y365Q
+Y365Q
+
+
+Inherited Functions
+
+
+
+
+toString
+
+fun toString ( ) : String
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-day-count-basis-year/-y365.html b/docs/build/html/api/net.corda.core.contracts/-day-count-basis-year/-y365.html
new file mode 100644
index 0000000000..32cfeeb37e
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-day-count-basis-year/-y365.html
@@ -0,0 +1,25 @@
+
+
+DayCountBasisYear.Y365 -
+
+
+
+net.corda.core.contracts / DayCountBasisYear / Y365
+
+Y365
+Y365
+
+
+Inherited Functions
+
+
+
+
+toString
+
+fun toString ( ) : String
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-day-count-basis-year/-y366.html b/docs/build/html/api/net.corda.core.contracts/-day-count-basis-year/-y366.html
new file mode 100644
index 0000000000..2fd8a3ad99
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-day-count-basis-year/-y366.html
@@ -0,0 +1,25 @@
+
+
+DayCountBasisYear.Y366 -
+
+
+
+net.corda.core.contracts / DayCountBasisYear / Y366
+
+Y366
+Y366
+
+
+Inherited Functions
+
+
+
+
+toString
+
+fun toString ( ) : String
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-day-count-basis-year/index.html b/docs/build/html/api/net.corda.core.contracts/-day-count-basis-year/index.html
new file mode 100644
index 0000000000..6bd46d0030
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-day-count-basis-year/index.html
@@ -0,0 +1,103 @@
+
+
+DayCountBasisYear -
+
+
+
+net.corda.core.contracts / DayCountBasisYear
+
+DayCountBasisYear
+enum class DayCountBasisYear
+This forms the year part of the "Day Count Basis" used for interest calculation.
+
+
+Enum Values
+
+Functions
+
+
+
+
+toString
+
+fun toString ( ) : String
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-day-count-basis-year/to-string.html b/docs/build/html/api/net.corda.core.contracts/-day-count-basis-year/to-string.html
new file mode 100644
index 0000000000..15a86d8b2c
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-day-count-basis-year/to-string.html
@@ -0,0 +1,15 @@
+
+
+DayCountBasisYear.toString -
+
+
+
+net.corda.core.contracts / DayCountBasisYear / toString
+
+toString
+
+fun toString ( ) : String
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-deal-state/generate-agreement.html b/docs/build/html/api/net.corda.core.contracts/-deal-state/generate-agreement.html
new file mode 100644
index 0000000000..94e63f5800
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-deal-state/generate-agreement.html
@@ -0,0 +1,22 @@
+
+
+DealState.generateAgreement -
+
+
+
+net.corda.core.contracts / DealState / generateAgreement
+
+generateAgreement
+
+abstract fun generateAgreement ( notary : Party ) : TransactionBuilder
+Generate a partial transaction representing an agreement (command) to this deal, allowing a general
+deal/agreement protocol to generate the necessary transaction for potential implementations.
+TODO: Currently this is the "inception" transaction but in future an offer of some description might be an input state ref
+TODO: This should more likely be a method on the Contract (on a common interface) and the changes to reference a
+Contract instance from a ContractState are imminent, at which point we can move this out of here.
+
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-deal-state/index.html b/docs/build/html/api/net.corda.core.contracts/-deal-state/index.html
new file mode 100644
index 0000000000..e37d34afa2
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-deal-state/index.html
@@ -0,0 +1,98 @@
+
+
+DealState -
+
+
+
+net.corda.core.contracts / DealState
+
+DealState
+interface DealState : LinearState
+Interface representing an agreement that exposes various attributes that are common. Implementing it simplifies
+implementation of general protocols that manipulate many agreement types.
+
+
+Properties
+
+
+
+
+parties
+
+abstract val parties : List < Party >
Exposes the Parties involved in a generic way
+
+
+
+
+ref
+
+abstract val ref : String
Human readable well known reference (e.g. trade reference)
+
+
+
+
+Inherited Properties
+
+
+
+
+linearId
+
+abstract val linearId : UniqueIdentifier
Unique id shared by all LinearState states throughout history within the vaults of all parties.
+Verify methods should check that one input and one output share the id in a transaction,
+except at issuance/termination.
+
+
+
+
+Functions
+
+
+
+
+generateAgreement
+
+abstract fun generateAgreement ( notary : Party ) : TransactionBuilder
Generate a partial transaction representing an agreement (command) to this deal, allowing a general
+deal/agreement protocol to generate the necessary transaction for potential implementations.
+
+
+
+
+Inherited Functions
+
+
+
+
+isRelevant
+
+abstract fun isRelevant ( ourKeys : Set < PublicKey > ) : Boolean
True if this should be tracked by our vault(s).
+
+
+
+
+Extension Functions
+
+
+
+
+hash
+
+fun ContractState . hash ( ) : SecureHash
Returns the SHA-256 hash of the serialised contents of this state (not cached)
+
+
+
+
+Inheritors
+
+
+
+
+FixableDealState
+
+interface FixableDealState : DealState
Interface adding fixing specific methods.
+
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-deal-state/parties.html b/docs/build/html/api/net.corda.core.contracts/-deal-state/parties.html
new file mode 100644
index 0000000000..edf5db360a
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-deal-state/parties.html
@@ -0,0 +1,16 @@
+
+
+DealState.parties -
+
+
+
+net.corda.core.contracts / DealState / parties
+
+parties
+
+abstract val parties : List < Party >
+Exposes the Parties involved in a generic way
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-deal-state/ref.html b/docs/build/html/api/net.corda.core.contracts/-deal-state/ref.html
new file mode 100644
index 0000000000..a3b6b0f6ab
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-deal-state/ref.html
@@ -0,0 +1,16 @@
+
+
+DealState.ref -
+
+
+
+net.corda.core.contracts / DealState / ref
+
+ref
+
+abstract val ref : String
+Human readable well known reference (e.g. trade reference)
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-dummy-contract/-commands/-create/-init-.html b/docs/build/html/api/net.corda.core.contracts/-dummy-contract/-commands/-create/-init-.html
new file mode 100644
index 0000000000..090d290ded
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-dummy-contract/-commands/-create/-init-.html
@@ -0,0 +1,14 @@
+
+
+DummyContract.Commands.Create. -
+
+
+
+net.corda.core.contracts / DummyContract / Commands / Create / <init>
+
+<init>
+Create ( )
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-dummy-contract/-commands/-create/index.html b/docs/build/html/api/net.corda.core.contracts/-dummy-contract/-commands/-create/index.html
new file mode 100644
index 0000000000..a6c04b86a8
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-dummy-contract/-commands/-create/index.html
@@ -0,0 +1,42 @@
+
+
+DummyContract.Commands.Create -
+
+
+
+net.corda.core.contracts / DummyContract / Commands / Create
+
+Create
+class Create : TypeOnlyCommandData , Commands
+
+
+Constructors
+
+
+
+
+<init>
+
+Create ( )
+
+
+
+Inherited Functions
+
+
+
+
+equals
+
+open fun equals ( other : Any ? ) : Boolean
+
+
+
+hashCode
+
+open fun hashCode ( ) : <ERROR CLASS>
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-dummy-contract/-commands/-move/-init-.html b/docs/build/html/api/net.corda.core.contracts/-dummy-contract/-commands/-move/-init-.html
new file mode 100644
index 0000000000..4cc5085eec
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-dummy-contract/-commands/-move/-init-.html
@@ -0,0 +1,14 @@
+
+
+DummyContract.Commands.Move. -
+
+
+
+net.corda.core.contracts / DummyContract / Commands / Move / <init>
+
+<init>
+Move ( )
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-dummy-contract/-commands/-move/index.html b/docs/build/html/api/net.corda.core.contracts/-dummy-contract/-commands/-move/index.html
new file mode 100644
index 0000000000..7f18bdb140
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-dummy-contract/-commands/-move/index.html
@@ -0,0 +1,42 @@
+
+
+DummyContract.Commands.Move -
+
+
+
+net.corda.core.contracts / DummyContract / Commands / Move
+
+Move
+class Move : TypeOnlyCommandData , Commands
+
+
+Constructors
+
+Inherited Functions
+
+
+
+
+equals
+
+open fun equals ( other : Any ? ) : Boolean
+
+
+
+hashCode
+
+open fun hashCode ( ) : <ERROR CLASS>
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-dummy-contract/-commands/index.html b/docs/build/html/api/net.corda.core.contracts/-dummy-contract/-commands/index.html
new file mode 100644
index 0000000000..c8dbae44cd
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-dummy-contract/-commands/index.html
@@ -0,0 +1,48 @@
+
+
+DummyContract.Commands -
+
+
+
+net.corda.core.contracts / DummyContract / Commands
+
+Commands
+interface Commands : CommandData
+
+
+Types
+
+Inheritors
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-dummy-contract/-init-.html b/docs/build/html/api/net.corda.core.contracts/-dummy-contract/-init-.html
new file mode 100644
index 0000000000..41d405c451
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-dummy-contract/-init-.html
@@ -0,0 +1,14 @@
+
+
+DummyContract. -
+
+
+
+net.corda.core.contracts / DummyContract / <init>
+
+<init>
+DummyContract ( )
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-dummy-contract/-multi-owner-state/-init-.html b/docs/build/html/api/net.corda.core.contracts/-dummy-contract/-multi-owner-state/-init-.html
new file mode 100644
index 0000000000..7af9227491
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-dummy-contract/-multi-owner-state/-init-.html
@@ -0,0 +1,17 @@
+
+
+DummyContract.MultiOwnerState. -
+
+
+
+net.corda.core.contracts / DummyContract / MultiOwnerState / <init>
+
+<init>
+MultiOwnerState ( magicNumber : Int = 0, owners : List < PublicKey > )
+Alternative state with multiple owners. This exists primarily to provide a dummy state with multiple
+participants, and could in theory be merged with SingleOwnerState by putting the additional participants
+in a different field, however this is a good example of a contract with multiple states.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-dummy-contract/-multi-owner-state/contract.html b/docs/build/html/api/net.corda.core.contracts/-dummy-contract/-multi-owner-state/contract.html
new file mode 100644
index 0000000000..07af3875a8
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-dummy-contract/-multi-owner-state/contract.html
@@ -0,0 +1,43 @@
+
+
+DummyContract.MultiOwnerState.contract -
+
+
+
+net.corda.core.contracts / DummyContract / MultiOwnerState / contract
+
+contract
+
+val contract : DummyContract
+Overrides ContractState.contract
+An instance of the contract class that will verify this state.
+Discussion
+This field is not the final design, its just a piece of temporary scaffolding. Once the contract sandbox is
+further along, this field will become a description of which attachments are acceptable for defining the
+contract.
+Recall that an attachment is a zip file that can be referenced from any transaction. The contents of the
+attachments are merged together and cannot define any overlapping files, thus for any given transaction there
+is a miniature file system in which each file can be precisely mapped to the defining attachment.
+Attachments may contain many things (data files, legal documents, etc) but mostly they contain JVM bytecode.
+The class files inside define not only Contract implementations but also the classes that define the states.
+Within the rest of a transaction, user-providable components are referenced by name only.
+This means that a smart contract in Corda does two things:
+Define the data structures that compose the ledger (the states)
+Define the rules for updating those structures
+The first is merely a utility role ... in theory contract code could manually parse byte streams by hand.
+The second is vital to the integrity of the ledger. So this field needs to be able to express constraints like:
+Only attachment 733c350f396a727655be1363c06635ba355036bd54a5ed6e594fd0b5d05f42f6 may be used with this state.
+Any attachment signed by public key 2d1ce0e330c52b8055258d776c40 may be used with this state.
+Attachments (1, 2, 3) may all be used with this state.
+and so on. In this way it becomes possible for the business logic governing a state to be evolved, if the
+constraints are flexible enough.
+Because contract classes often also define utilities that generate relevant transactions, and because attachments
+cannot know their own hashes, we will have to provide various utilities to assist with obtaining the right
+code constraints from within the contract code itself.
+TODO: Implement the above description. See COR-226
+
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-dummy-contract/-multi-owner-state/index.html b/docs/build/html/api/net.corda.core.contracts/-dummy-contract/-multi-owner-state/index.html
new file mode 100644
index 0000000000..34b95d54ba
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-dummy-contract/-multi-owner-state/index.html
@@ -0,0 +1,74 @@
+
+
+DummyContract.MultiOwnerState -
+
+
+
+net.corda.core.contracts / DummyContract / MultiOwnerState
+
+MultiOwnerState
+data class MultiOwnerState : ContractState , State
+Alternative state with multiple owners. This exists primarily to provide a dummy state with multiple
+participants, and could in theory be merged with SingleOwnerState by putting the additional participants
+in a different field, however this is a good example of a contract with multiple states.
+
+
+Constructors
+
+
+
+
+<init>
+
+MultiOwnerState ( magicNumber : Int = 0, owners : List < PublicKey > )
Alternative state with multiple owners. This exists primarily to provide a dummy state with multiple
+participants, and could in theory be merged with SingleOwnerState by putting the additional participants
+in a different field, however this is a good example of a contract with multiple states.
+
+
+
+
+Properties
+
+
+
+
+contract
+
+val contract : DummyContract
An instance of the contract class that will verify this state.
+
+
+
+
+magicNumber
+
+val magicNumber : Int
+
+
+
+owners
+
+val owners : List < PublicKey >
+
+
+
+participants
+
+val participants : List < PublicKey >
A participant is any party that is able to consume this state in a valid transaction.
+
+
+
+
+Inherited Properties
+
+
+
+
+encumbrance
+
+open val encumbrance : Int ?
All contract states may be encumbered by up to one other state.
+
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-dummy-contract/-multi-owner-state/magic-number.html b/docs/build/html/api/net.corda.core.contracts/-dummy-contract/-multi-owner-state/magic-number.html
new file mode 100644
index 0000000000..3e498655db
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-dummy-contract/-multi-owner-state/magic-number.html
@@ -0,0 +1,16 @@
+
+
+DummyContract.MultiOwnerState.magicNumber -
+
+
+
+net.corda.core.contracts / DummyContract / MultiOwnerState / magicNumber
+
+magicNumber
+
+val magicNumber : Int
+Overrides State.magicNumber
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-dummy-contract/-multi-owner-state/owners.html b/docs/build/html/api/net.corda.core.contracts/-dummy-contract/-multi-owner-state/owners.html
new file mode 100644
index 0000000000..120efe3b28
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-dummy-contract/-multi-owner-state/owners.html
@@ -0,0 +1,15 @@
+
+
+DummyContract.MultiOwnerState.owners -
+
+
+
+net.corda.core.contracts / DummyContract / MultiOwnerState / owners
+
+owners
+
+val owners : List < PublicKey >
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-dummy-contract/-multi-owner-state/participants.html b/docs/build/html/api/net.corda.core.contracts/-dummy-contract/-multi-owner-state/participants.html
new file mode 100644
index 0000000000..4cd2274a0f
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-dummy-contract/-multi-owner-state/participants.html
@@ -0,0 +1,34 @@
+
+
+DummyContract.MultiOwnerState.participants -
+
+
+
+net.corda.core.contracts / DummyContract / MultiOwnerState / participants
+
+participants
+
+val participants : List < PublicKey >
+Overrides ContractState.participants
+A participant is any party that is able to consume this state in a valid transaction.
+The list of participants is required for certain types of transactions. For example, when changing the notary
+for this state (TransactionType.NotaryChange ), every participant has to be involved and approve the transaction
+so that they receive the updated state, and dont end up in a situation where they can no longer use a state
+they possess, since someone consumed that state during the notary change process.
+The participants list should normally be derived from the contents of the state. E.g. for Cash the participants
+list should just contain the owner.
+
+
+Getter
+
A participant is any party that is able to consume this state in a valid transaction.
+The list of participants is required for certain types of transactions. For example, when changing the notary
+for this state (TransactionType.NotaryChange ), every participant has to be involved and approve the transaction
+so that they receive the updated state, and dont end up in a situation where they can no longer use a state
+they possess, since someone consumed that state during the notary change process.
+The participants list should normally be derived from the contents of the state. E.g. for Cash the participants
+list should just contain the owner.
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-dummy-contract/-single-owner-state/-init-.html b/docs/build/html/api/net.corda.core.contracts/-dummy-contract/-single-owner-state/-init-.html
new file mode 100644
index 0000000000..273cb6c461
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-dummy-contract/-single-owner-state/-init-.html
@@ -0,0 +1,14 @@
+
+
+DummyContract.SingleOwnerState. -
+
+
+
+net.corda.core.contracts / DummyContract / SingleOwnerState / <init>
+
+<init>
+SingleOwnerState ( magicNumber : Int = 0, owner : PublicKey )
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-dummy-contract/-single-owner-state/contract.html b/docs/build/html/api/net.corda.core.contracts/-dummy-contract/-single-owner-state/contract.html
new file mode 100644
index 0000000000..30eb0faaa4
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-dummy-contract/-single-owner-state/contract.html
@@ -0,0 +1,43 @@
+
+
+DummyContract.SingleOwnerState.contract -
+
+
+
+net.corda.core.contracts / DummyContract / SingleOwnerState / contract
+
+contract
+
+val contract : DummyContract
+Overrides ContractState.contract
+An instance of the contract class that will verify this state.
+Discussion
+This field is not the final design, its just a piece of temporary scaffolding. Once the contract sandbox is
+further along, this field will become a description of which attachments are acceptable for defining the
+contract.
+Recall that an attachment is a zip file that can be referenced from any transaction. The contents of the
+attachments are merged together and cannot define any overlapping files, thus for any given transaction there
+is a miniature file system in which each file can be precisely mapped to the defining attachment.
+Attachments may contain many things (data files, legal documents, etc) but mostly they contain JVM bytecode.
+The class files inside define not only Contract implementations but also the classes that define the states.
+Within the rest of a transaction, user-providable components are referenced by name only.
+This means that a smart contract in Corda does two things:
+Define the data structures that compose the ledger (the states)
+Define the rules for updating those structures
+The first is merely a utility role ... in theory contract code could manually parse byte streams by hand.
+The second is vital to the integrity of the ledger. So this field needs to be able to express constraints like:
+Only attachment 733c350f396a727655be1363c06635ba355036bd54a5ed6e594fd0b5d05f42f6 may be used with this state.
+Any attachment signed by public key 2d1ce0e330c52b8055258d776c40 may be used with this state.
+Attachments (1, 2, 3) may all be used with this state.
+and so on. In this way it becomes possible for the business logic governing a state to be evolved, if the
+constraints are flexible enough.
+Because contract classes often also define utilities that generate relevant transactions, and because attachments
+cannot know their own hashes, we will have to provide various utilities to assist with obtaining the right
+code constraints from within the contract code itself.
+TODO: Implement the above description. See COR-226
+
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-dummy-contract/-single-owner-state/index.html b/docs/build/html/api/net.corda.core.contracts/-dummy-contract/-single-owner-state/index.html
new file mode 100644
index 0000000000..e41074e77f
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-dummy-contract/-single-owner-state/index.html
@@ -0,0 +1,69 @@
+
+
+DummyContract.SingleOwnerState -
+
+
+
+net.corda.core.contracts / DummyContract / SingleOwnerState
+
+SingleOwnerState
+data class SingleOwnerState : OwnableState , State
+
+
+Constructors
+
+
+
+
+<init>
+
+SingleOwnerState ( magicNumber : Int = 0, owner : PublicKey )
+
+
+
+Properties
+
+
+
+
+contract
+
+val contract : DummyContract
An instance of the contract class that will verify this state.
+
+
+
+
+magicNumber
+
+val magicNumber : Int
+
+
+
+owner
+
+val owner : PublicKey
There must be a MoveCommand signed by this key to claim the amount
+
+
+
+
+participants
+
+val participants : List < PublicKey >
A participant is any party that is able to consume this state in a valid transaction.
+
+
+
+
+Functions
+
+
+
+
+withNewOwner
+
+fun withNewOwner ( newOwner : PublicKey ) : <ERROR CLASS>
Copies the underlying data structure, replacing the owner field with this new value and leaving the rest alone
+
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-dummy-contract/-single-owner-state/magic-number.html b/docs/build/html/api/net.corda.core.contracts/-dummy-contract/-single-owner-state/magic-number.html
new file mode 100644
index 0000000000..a55385618c
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-dummy-contract/-single-owner-state/magic-number.html
@@ -0,0 +1,16 @@
+
+
+DummyContract.SingleOwnerState.magicNumber -
+
+
+
+net.corda.core.contracts / DummyContract / SingleOwnerState / magicNumber
+
+magicNumber
+
+val magicNumber : Int
+Overrides State.magicNumber
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-dummy-contract/-single-owner-state/owner.html b/docs/build/html/api/net.corda.core.contracts/-dummy-contract/-single-owner-state/owner.html
new file mode 100644
index 0000000000..1a1bf23d95
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-dummy-contract/-single-owner-state/owner.html
@@ -0,0 +1,17 @@
+
+
+DummyContract.SingleOwnerState.owner -
+
+
+
+net.corda.core.contracts / DummyContract / SingleOwnerState / owner
+
+owner
+
+val owner : PublicKey
+Overrides OwnableState.owner
+There must be a MoveCommand signed by this key to claim the amount
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-dummy-contract/-single-owner-state/participants.html b/docs/build/html/api/net.corda.core.contracts/-dummy-contract/-single-owner-state/participants.html
new file mode 100644
index 0000000000..fbe2d00833
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-dummy-contract/-single-owner-state/participants.html
@@ -0,0 +1,34 @@
+
+
+DummyContract.SingleOwnerState.participants -
+
+
+
+net.corda.core.contracts / DummyContract / SingleOwnerState / participants
+
+participants
+
+val participants : List < PublicKey >
+Overrides ContractState.participants
+A participant is any party that is able to consume this state in a valid transaction.
+The list of participants is required for certain types of transactions. For example, when changing the notary
+for this state (TransactionType.NotaryChange ), every participant has to be involved and approve the transaction
+so that they receive the updated state, and dont end up in a situation where they can no longer use a state
+they possess, since someone consumed that state during the notary change process.
+The participants list should normally be derived from the contents of the state. E.g. for Cash the participants
+list should just contain the owner.
+
+
+Getter
+
A participant is any party that is able to consume this state in a valid transaction.
+The list of participants is required for certain types of transactions. For example, when changing the notary
+for this state (TransactionType.NotaryChange ), every participant has to be involved and approve the transaction
+so that they receive the updated state, and dont end up in a situation where they can no longer use a state
+they possess, since someone consumed that state during the notary change process.
+The participants list should normally be derived from the contents of the state. E.g. for Cash the participants
+list should just contain the owner.
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-dummy-contract/-single-owner-state/with-new-owner.html b/docs/build/html/api/net.corda.core.contracts/-dummy-contract/-single-owner-state/with-new-owner.html
new file mode 100644
index 0000000000..40802989a2
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-dummy-contract/-single-owner-state/with-new-owner.html
@@ -0,0 +1,17 @@
+
+
+DummyContract.SingleOwnerState.withNewOwner -
+
+
+
+net.corda.core.contracts / DummyContract / SingleOwnerState / withNewOwner
+
+withNewOwner
+
+fun withNewOwner ( newOwner : PublicKey ) : <ERROR CLASS>
+Overrides OwnableState.withNewOwner
+Copies the underlying data structure, replacing the owner field with this new value and leaving the rest alone
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-dummy-contract/-state/index.html b/docs/build/html/api/net.corda.core.contracts/-dummy-contract/-state/index.html
new file mode 100644
index 0000000000..8a8b914e3d
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-dummy-contract/-state/index.html
@@ -0,0 +1,71 @@
+
+
+DummyContract.State -
+
+
+
+net.corda.core.contracts / DummyContract / State
+
+State
+interface State : ContractState
+
+
+Properties
+
+
+
+
+magicNumber
+
+abstract val magicNumber : Int
+
+
+
+Inherited Properties
+
+
+
+
+contract
+
+abstract val contract : Contract
An instance of the contract class that will verify this state.
+
+
+
+
+encumbrance
+
+open val encumbrance : Int ?
All contract states may be encumbered by up to one other state.
+
+
+
+
+participants
+
+abstract val participants : List < PublicKey >
A participant is any party that is able to consume this state in a valid transaction.
+
+
+
+
+Inheritors
+
+
+
+
+MultiOwnerState
+
+data class MultiOwnerState : ContractState , State
Alternative state with multiple owners. This exists primarily to provide a dummy state with multiple
+participants, and could in theory be merged with SingleOwnerState by putting the additional participants
+in a different field, however this is a good example of a contract with multiple states.
+
+
+
+
+SingleOwnerState
+
+data class SingleOwnerState : OwnableState , State
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-dummy-contract/-state/magic-number.html b/docs/build/html/api/net.corda.core.contracts/-dummy-contract/-state/magic-number.html
new file mode 100644
index 0000000000..cf5d1c3e05
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-dummy-contract/-state/magic-number.html
@@ -0,0 +1,15 @@
+
+
+DummyContract.State.magicNumber -
+
+
+
+net.corda.core.contracts / DummyContract / State / magicNumber
+
+magicNumber
+
+abstract val magicNumber : Int
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-dummy-contract/generate-initial.html b/docs/build/html/api/net.corda.core.contracts/-dummy-contract/generate-initial.html
new file mode 100644
index 0000000000..4dd28504fd
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-dummy-contract/generate-initial.html
@@ -0,0 +1,15 @@
+
+
+DummyContract.generateInitial -
+
+
+
+net.corda.core.contracts / DummyContract / generateInitial
+
+generateInitial
+
+fun generateInitial ( owner : PartyAndReference , magicNumber : Int , notary : Party ) : TransactionBuilder
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-dummy-contract/index.html b/docs/build/html/api/net.corda.core.contracts/-dummy-contract/index.html
new file mode 100644
index 0000000000..fd954b3328
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-dummy-contract/index.html
@@ -0,0 +1,103 @@
+
+
+DummyContract -
+
+
+
+net.corda.core.contracts / DummyContract
+
+DummyContract
+class DummyContract : Contract
+
+
+Types
+
+Constructors
+
+
+
+
+<init>
+
+DummyContract ( )
+
+
+
+Properties
+
+
+
+
+legalContractReference
+
+val legalContractReference : SecureHash
Unparsed reference to the natural language contract that this code is supposed to express (usually a hash of
+the contracts contents).
+
+
+
+
+Functions
+
+
+
+
+verify
+
+fun verify ( tx : TransactionForContract ) : Unit
Takes an object that represents a state transition, and ensures the inputs/outputs/commands make sense.
+Must throw an exception if theres a problem that should prevent state transition. Takes a single object
+rather than an argument so that additional data can be added without breaking binary compatibility with
+existing contract code.
+
+
+
+
+Companion Object Functions
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-dummy-contract/legal-contract-reference.html b/docs/build/html/api/net.corda.core.contracts/-dummy-contract/legal-contract-reference.html
new file mode 100644
index 0000000000..9dc82ee076
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-dummy-contract/legal-contract-reference.html
@@ -0,0 +1,18 @@
+
+
+DummyContract.legalContractReference -
+
+
+
+net.corda.core.contracts / DummyContract / legalContractReference
+
+legalContractReference
+
+val legalContractReference : SecureHash
+Overrides Contract.legalContractReference
+Unparsed reference to the natural language contract that this code is supposed to express (usually a hash of
+the contracts contents).
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-dummy-contract/move.html b/docs/build/html/api/net.corda.core.contracts/-dummy-contract/move.html
new file mode 100644
index 0000000000..9e5f78032f
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-dummy-contract/move.html
@@ -0,0 +1,17 @@
+
+
+DummyContract.move -
+
+
+
+net.corda.core.contracts / DummyContract / move
+
+move
+
+fun move ( prior : StateAndRef < SingleOwnerState > , newOwner : PublicKey ) : <ERROR CLASS>
+
+fun move ( priors : List < StateAndRef < SingleOwnerState > > , newOwner : PublicKey ) : TransactionBuilder
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-dummy-contract/verify.html b/docs/build/html/api/net.corda.core.contracts/-dummy-contract/verify.html
new file mode 100644
index 0000000000..44964e3569
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-dummy-contract/verify.html
@@ -0,0 +1,20 @@
+
+
+DummyContract.verify -
+
+
+
+net.corda.core.contracts / DummyContract / verify
+
+verify
+
+fun verify ( tx : TransactionForContract ) : Unit
+Overrides Contract.verify
+Takes an object that represents a state transition, and ensures the inputs/outputs/commands make sense.
+Must throw an exception if theres a problem that should prevent state transition. Takes a single object
+rather than an argument so that additional data can be added without breaking binary compatibility with
+existing contract code.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-dummy-state/-init-.html b/docs/build/html/api/net.corda.core.contracts/-dummy-state/-init-.html
new file mode 100644
index 0000000000..2b107e9f8b
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-dummy-state/-init-.html
@@ -0,0 +1,15 @@
+
+
+DummyState. -
+
+
+
+net.corda.core.contracts / DummyState / <init>
+
+<init>
+DummyState ( magicNumber : Int = 0)
+Dummy state for use in testing. Not part of any contract, not even the DummyContract .
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-dummy-state/contract.html b/docs/build/html/api/net.corda.core.contracts/-dummy-state/contract.html
new file mode 100644
index 0000000000..ddaef7962a
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-dummy-state/contract.html
@@ -0,0 +1,43 @@
+
+
+DummyState.contract -
+
+
+
+net.corda.core.contracts / DummyState / contract
+
+contract
+
+val contract : DummyContract
+Overrides ContractState.contract
+An instance of the contract class that will verify this state.
+Discussion
+This field is not the final design, its just a piece of temporary scaffolding. Once the contract sandbox is
+further along, this field will become a description of which attachments are acceptable for defining the
+contract.
+Recall that an attachment is a zip file that can be referenced from any transaction. The contents of the
+attachments are merged together and cannot define any overlapping files, thus for any given transaction there
+is a miniature file system in which each file can be precisely mapped to the defining attachment.
+Attachments may contain many things (data files, legal documents, etc) but mostly they contain JVM bytecode.
+The class files inside define not only Contract implementations but also the classes that define the states.
+Within the rest of a transaction, user-providable components are referenced by name only.
+This means that a smart contract in Corda does two things:
+Define the data structures that compose the ledger (the states)
+Define the rules for updating those structures
+The first is merely a utility role ... in theory contract code could manually parse byte streams by hand.
+The second is vital to the integrity of the ledger. So this field needs to be able to express constraints like:
+Only attachment 733c350f396a727655be1363c06635ba355036bd54a5ed6e594fd0b5d05f42f6 may be used with this state.
+Any attachment signed by public key 2d1ce0e330c52b8055258d776c40 may be used with this state.
+Attachments (1, 2, 3) may all be used with this state.
+and so on. In this way it becomes possible for the business logic governing a state to be evolved, if the
+constraints are flexible enough.
+Because contract classes often also define utilities that generate relevant transactions, and because attachments
+cannot know their own hashes, we will have to provide various utilities to assist with obtaining the right
+code constraints from within the contract code itself.
+TODO: Implement the above description. See COR-226
+
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-dummy-state/index.html b/docs/build/html/api/net.corda.core.contracts/-dummy-state/index.html
new file mode 100644
index 0000000000..a957631e6d
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-dummy-state/index.html
@@ -0,0 +1,76 @@
+
+
+DummyState -
+
+
+
+net.corda.core.contracts / DummyState
+
+DummyState
+data class DummyState : ContractState
+Dummy state for use in testing. Not part of any contract, not even the DummyContract .
+
+
+Constructors
+
+
+
+
+<init>
+
+DummyState ( magicNumber : Int = 0)
Dummy state for use in testing. Not part of any contract, not even the DummyContract .
+
+
+
+
+Properties
+
+
+
+
+contract
+
+val contract : DummyContract
An instance of the contract class that will verify this state.
+
+
+
+
+magicNumber
+
+val magicNumber : Int
+
+
+
+participants
+
+val participants : List < PublicKey >
A participant is any party that is able to consume this state in a valid transaction.
+
+
+
+
+Inherited Properties
+
+
+
+
+encumbrance
+
+open val encumbrance : Int ?
All contract states may be encumbered by up to one other state.
+
+
+
+
+Extension Functions
+
+
+
+
+hash
+
+fun ContractState . hash ( ) : SecureHash
Returns the SHA-256 hash of the serialised contents of this state (not cached)
+
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-dummy-state/magic-number.html b/docs/build/html/api/net.corda.core.contracts/-dummy-state/magic-number.html
new file mode 100644
index 0000000000..ef77f22947
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-dummy-state/magic-number.html
@@ -0,0 +1,15 @@
+
+
+DummyState.magicNumber -
+
+
+
+net.corda.core.contracts / DummyState / magicNumber
+
+magicNumber
+
+val magicNumber : Int
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-dummy-state/participants.html b/docs/build/html/api/net.corda.core.contracts/-dummy-state/participants.html
new file mode 100644
index 0000000000..06e480b145
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-dummy-state/participants.html
@@ -0,0 +1,34 @@
+
+
+DummyState.participants -
+
+
+
+net.corda.core.contracts / DummyState / participants
+
+participants
+
+val participants : List < PublicKey >
+Overrides ContractState.participants
+A participant is any party that is able to consume this state in a valid transaction.
+The list of participants is required for certain types of transactions. For example, when changing the notary
+for this state (TransactionType.NotaryChange ), every participant has to be involved and approve the transaction
+so that they receive the updated state, and dont end up in a situation where they can no longer use a state
+they possess, since someone consumed that state during the notary change process.
+The participants list should normally be derived from the contents of the state. E.g. for Cash the participants
+list should just contain the owner.
+
+
+Getter
+
A participant is any party that is able to consume this state in a valid transaction.
+The list of participants is required for certain types of transactions. For example, when changing the notary
+for this state (TransactionType.NotaryChange ), every participant has to be involved and approve the transaction
+so that they receive the updated state, and dont end up in a situation where they can no longer use a state
+they possess, since someone consumed that state during the notary change process.
+The participants list should normally be derived from the contents of the state. E.g. for Cash the participants
+list should just contain the owner.
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-e-u-r.html b/docs/build/html/api/net.corda.core.contracts/-e-u-r.html
new file mode 100644
index 0000000000..acafff7f2c
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-e-u-r.html
@@ -0,0 +1,15 @@
+
+
+EUR -
+
+
+
+net.corda.core.contracts / EUR
+
+EUR
+
+val EUR : Currency
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-expression-deserializer/deserialize.html b/docs/build/html/api/net.corda.core.contracts/-expression-deserializer/deserialize.html
new file mode 100644
index 0000000000..1f266f6905
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-expression-deserializer/deserialize.html
@@ -0,0 +1,15 @@
+
+
+ExpressionDeserializer.deserialize -
+
+
+
+net.corda.core.contracts / ExpressionDeserializer / deserialize
+
+deserialize
+
+fun deserialize ( parser : <ERROR CLASS> , context : <ERROR CLASS> ) : Expression
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-expression-deserializer/index.html b/docs/build/html/api/net.corda.core.contracts/-expression-deserializer/index.html
new file mode 100644
index 0000000000..82272ba652
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-expression-deserializer/index.html
@@ -0,0 +1,25 @@
+
+
+ExpressionDeserializer -
+
+
+
+net.corda.core.contracts / ExpressionDeserializer
+
+ExpressionDeserializer
+object ExpressionDeserializer
+
+
+Functions
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-expression-serializer/index.html b/docs/build/html/api/net.corda.core.contracts/-expression-serializer/index.html
new file mode 100644
index 0000000000..d9620318d4
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-expression-serializer/index.html
@@ -0,0 +1,25 @@
+
+
+ExpressionSerializer -
+
+
+
+net.corda.core.contracts / ExpressionSerializer
+
+ExpressionSerializer
+object ExpressionSerializer
+
+
+Functions
+
+
+
+
+serialize
+
+fun serialize ( expr : Expression , generator : <ERROR CLASS> , provider : <ERROR CLASS> ) : Unit
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-expression-serializer/serialize.html b/docs/build/html/api/net.corda.core.contracts/-expression-serializer/serialize.html
new file mode 100644
index 0000000000..38f21fdd1f
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-expression-serializer/serialize.html
@@ -0,0 +1,15 @@
+
+
+ExpressionSerializer.serialize -
+
+
+
+net.corda.core.contracts / ExpressionSerializer / serialize
+
+serialize
+
+fun serialize ( expr : Expression , generator : <ERROR CLASS> , provider : <ERROR CLASS> ) : Unit
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-expression/-init-.html b/docs/build/html/api/net.corda.core.contracts/-expression/-init-.html
new file mode 100644
index 0000000000..2d4acfa593
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-expression/-init-.html
@@ -0,0 +1,15 @@
+
+
+Expression. -
+
+
+
+net.corda.core.contracts / Expression / <init>
+
+<init>
+Expression ( expr : String )
+Represents a textual expression of e.g. a formula
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-expression/expr.html b/docs/build/html/api/net.corda.core.contracts/-expression/expr.html
new file mode 100644
index 0000000000..ff2eaff8b2
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-expression/expr.html
@@ -0,0 +1,15 @@
+
+
+Expression.expr -
+
+
+
+net.corda.core.contracts / Expression / expr
+
+expr
+
+val expr : String
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-expression/index.html b/docs/build/html/api/net.corda.core.contracts/-expression/index.html
new file mode 100644
index 0000000000..9e86207596
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-expression/index.html
@@ -0,0 +1,38 @@
+
+
+Expression -
+
+
+
+net.corda.core.contracts / Expression
+
+Expression
+data class Expression
+Represents a textual expression of e.g. a formula
+
+
+Constructors
+
+
+
+
+<init>
+
+Expression ( expr : String )
Represents a textual expression of e.g. a formula
+
+
+
+
+Properties
+
+
+
+
+expr
+
+val expr : String
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-f-c-o-j.html b/docs/build/html/api/net.corda.core.contracts/-f-c-o-j.html
new file mode 100644
index 0000000000..e59e750c60
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-f-c-o-j.html
@@ -0,0 +1,17 @@
+
+
+FCOJ -
+
+
+
+net.corda.core.contracts / FCOJ
+
+FCOJ
+
+val FCOJ : Commodity
+
+fun FCOJ ( amount : Int ) : Amount < Commodity >
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-fix-of/-init-.html b/docs/build/html/api/net.corda.core.contracts/-fix-of/-init-.html
new file mode 100644
index 0000000000..01493ba1ba
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-fix-of/-init-.html
@@ -0,0 +1,15 @@
+
+
+FixOf. -
+
+
+
+net.corda.core.contracts / FixOf / <init>
+
+<init>
+FixOf ( name : String , forDay : LocalDate , ofTenor : Tenor )
+A FixOf identifies the question side of a fix: what day, tenor and type of fix ("LIBOR", "EURIBOR" etc)
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-fix-of/for-day.html b/docs/build/html/api/net.corda.core.contracts/-fix-of/for-day.html
new file mode 100644
index 0000000000..5b06ddd9ae
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-fix-of/for-day.html
@@ -0,0 +1,15 @@
+
+
+FixOf.forDay -
+
+
+
+net.corda.core.contracts / FixOf / forDay
+
+forDay
+
+val forDay : LocalDate
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-fix-of/index.html b/docs/build/html/api/net.corda.core.contracts/-fix-of/index.html
new file mode 100644
index 0000000000..a80eb1ac36
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-fix-of/index.html
@@ -0,0 +1,50 @@
+
+
+FixOf -
+
+
+
+net.corda.core.contracts / FixOf
+
+FixOf
+data class FixOf
+A FixOf identifies the question side of a fix: what day, tenor and type of fix ("LIBOR", "EURIBOR" etc)
+
+
+Constructors
+
+
+
+
+<init>
+
+FixOf ( name : String , forDay : LocalDate , ofTenor : Tenor )
A FixOf identifies the question side of a fix: what day, tenor and type of fix ("LIBOR", "EURIBOR" etc)
+
+
+
+
+Properties
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-fix-of/name.html b/docs/build/html/api/net.corda.core.contracts/-fix-of/name.html
new file mode 100644
index 0000000000..22363dbdeb
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-fix-of/name.html
@@ -0,0 +1,15 @@
+
+
+FixOf.name -
+
+
+
+net.corda.core.contracts / FixOf / name
+
+name
+
+val name : String
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-fix-of/of-tenor.html b/docs/build/html/api/net.corda.core.contracts/-fix-of/of-tenor.html
new file mode 100644
index 0000000000..6b8ecdcbfa
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-fix-of/of-tenor.html
@@ -0,0 +1,15 @@
+
+
+FixOf.ofTenor -
+
+
+
+net.corda.core.contracts / FixOf / ofTenor
+
+ofTenor
+
+val ofTenor : Tenor
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-fix/-init-.html b/docs/build/html/api/net.corda.core.contracts/-fix/-init-.html
new file mode 100644
index 0000000000..1d6ae412a1
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-fix/-init-.html
@@ -0,0 +1,15 @@
+
+
+Fix. -
+
+
+
+net.corda.core.contracts / Fix / <init>
+
+<init>
+Fix ( of : FixOf , value : BigDecimal )
+A Fix represents a named interest rate, on a given day, for a given duration. It can be embedded in a tx.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-fix/index.html b/docs/build/html/api/net.corda.core.contracts/-fix/index.html
new file mode 100644
index 0000000000..316a330f9e
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-fix/index.html
@@ -0,0 +1,44 @@
+
+
+Fix -
+
+
+
+net.corda.core.contracts / Fix
+
+Fix
+data class Fix : CommandData
+A Fix represents a named interest rate, on a given day, for a given duration. It can be embedded in a tx.
+
+
+Constructors
+
+
+
+
+<init>
+
+Fix ( of : FixOf , value : BigDecimal )
A Fix represents a named interest rate, on a given day, for a given duration. It can be embedded in a tx.
+
+
+
+
+Properties
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-fix/of.html b/docs/build/html/api/net.corda.core.contracts/-fix/of.html
new file mode 100644
index 0000000000..1c9665ae25
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-fix/of.html
@@ -0,0 +1,15 @@
+
+
+Fix.of -
+
+
+
+net.corda.core.contracts / Fix / of
+
+of
+
+val of : FixOf
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-fix/value.html b/docs/build/html/api/net.corda.core.contracts/-fix/value.html
new file mode 100644
index 0000000000..eff486f066
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-fix/value.html
@@ -0,0 +1,15 @@
+
+
+Fix.value -
+
+
+
+net.corda.core.contracts / Fix / value
+
+value
+
+val value : BigDecimal
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-fixable-deal-state/generate-fix.html b/docs/build/html/api/net.corda.core.contracts/-fixable-deal-state/generate-fix.html
new file mode 100644
index 0000000000..879b4e1763
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-fixable-deal-state/generate-fix.html
@@ -0,0 +1,20 @@
+
+
+FixableDealState.generateFix -
+
+
+
+net.corda.core.contracts / FixableDealState / generateFix
+
+generateFix
+
+abstract fun generateFix ( ptx : TransactionBuilder , oldState : StateAndRef < * > , fix : Fix ) : Unit
+Generate a fixing command for this deal and fix.
+TODO: This would also likely move to methods on the Contract once the changes to reference
+the Contract from the ContractState are in.
+
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-fixable-deal-state/index.html b/docs/build/html/api/net.corda.core.contracts/-fixable-deal-state/index.html
new file mode 100644
index 0000000000..be58a76955
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-fixable-deal-state/index.html
@@ -0,0 +1,90 @@
+
+
+FixableDealState -
+
+
+
+net.corda.core.contracts / FixableDealState
+
+FixableDealState
+interface FixableDealState : DealState
+Interface adding fixing specific methods.
+
+
+Properties
+
+
+
+
+oracleType
+
+abstract val oracleType : ServiceType
What oracle service to use for the fixing
+
+
+
+
+Inherited Properties
+
+
+
+
+parties
+
+abstract val parties : List < Party >
Exposes the Parties involved in a generic way
+
+
+
+
+ref
+
+abstract val ref : String
Human readable well known reference (e.g. trade reference)
+
+
+
+
+Functions
+
+Inherited Functions
+
+
+
+
+generateAgreement
+
+abstract fun generateAgreement ( notary : Party ) : TransactionBuilder
Generate a partial transaction representing an agreement (command) to this deal, allowing a general
+deal/agreement protocol to generate the necessary transaction for potential implementations.
+
+
+
+
+Extension Functions
+
+
+
+
+hash
+
+fun ContractState . hash ( ) : SecureHash
Returns the SHA-256 hash of the serialised contents of this state (not cached)
+
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-fixable-deal-state/next-fixing-of.html b/docs/build/html/api/net.corda.core.contracts/-fixable-deal-state/next-fixing-of.html
new file mode 100644
index 0000000000..e6d805c898
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-fixable-deal-state/next-fixing-of.html
@@ -0,0 +1,16 @@
+
+
+FixableDealState.nextFixingOf -
+
+
+
+net.corda.core.contracts / FixableDealState / nextFixingOf
+
+nextFixingOf
+
+abstract fun nextFixingOf ( ) : FixOf ?
+When is the next fixing and what is the fixing for?
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-fixable-deal-state/oracle-type.html b/docs/build/html/api/net.corda.core.contracts/-fixable-deal-state/oracle-type.html
new file mode 100644
index 0000000000..5f3d48f1c3
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-fixable-deal-state/oracle-type.html
@@ -0,0 +1,16 @@
+
+
+FixableDealState.oracleType -
+
+
+
+net.corda.core.contracts / FixableDealState / oracleType
+
+oracleType
+
+abstract val oracleType : ServiceType
+What oracle service to use for the fixing
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-frequency/-annual/index.html b/docs/build/html/api/net.corda.core.contracts/-frequency/-annual/index.html
new file mode 100644
index 0000000000..6cf0c1a812
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-frequency/-annual/index.html
@@ -0,0 +1,36 @@
+
+
+Frequency.Annual -
+
+
+
+net.corda.core.contracts / Frequency / Annual
+
+Annual
+Annual
+
+
+Inherited Properties
+
+Functions
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-frequency/-annual/offset.html b/docs/build/html/api/net.corda.core.contracts/-frequency/-annual/offset.html
new file mode 100644
index 0000000000..2a8d7abc87
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-frequency/-annual/offset.html
@@ -0,0 +1,16 @@
+
+
+Frequency.Annual.offset -
+
+
+
+net.corda.core.contracts / Frequency / Annual / offset
+
+offset
+
+fun offset ( d : LocalDate , n : Long ) : LocalDate
+Overrides Frequency.offset
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-frequency/-bi-weekly/index.html b/docs/build/html/api/net.corda.core.contracts/-frequency/-bi-weekly/index.html
new file mode 100644
index 0000000000..a2e223878f
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-frequency/-bi-weekly/index.html
@@ -0,0 +1,36 @@
+
+
+Frequency.BiWeekly -
+
+
+
+net.corda.core.contracts / Frequency / BiWeekly
+
+BiWeekly
+BiWeekly
+
+
+Inherited Properties
+
+Functions
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-frequency/-bi-weekly/offset.html b/docs/build/html/api/net.corda.core.contracts/-frequency/-bi-weekly/offset.html
new file mode 100644
index 0000000000..942357dd57
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-frequency/-bi-weekly/offset.html
@@ -0,0 +1,16 @@
+
+
+Frequency.BiWeekly.offset -
+
+
+
+net.corda.core.contracts / Frequency / BiWeekly / offset
+
+offset
+
+fun offset ( d : LocalDate , n : Long ) : LocalDate
+Overrides Frequency.offset
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-frequency/-daily/index.html b/docs/build/html/api/net.corda.core.contracts/-frequency/-daily/index.html
new file mode 100644
index 0000000000..f5985259a0
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-frequency/-daily/index.html
@@ -0,0 +1,36 @@
+
+
+Frequency.Daily -
+
+
+
+net.corda.core.contracts / Frequency / Daily
+
+Daily
+Daily
+
+
+Inherited Properties
+
+Functions
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-frequency/-daily/offset.html b/docs/build/html/api/net.corda.core.contracts/-frequency/-daily/offset.html
new file mode 100644
index 0000000000..6da6f9d8d2
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-frequency/-daily/offset.html
@@ -0,0 +1,16 @@
+
+
+Frequency.Daily.offset -
+
+
+
+net.corda.core.contracts / Frequency / Daily / offset
+
+offset
+
+fun offset ( d : LocalDate , n : Long ) : LocalDate
+Overrides Frequency.offset
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-frequency/-monthly/index.html b/docs/build/html/api/net.corda.core.contracts/-frequency/-monthly/index.html
new file mode 100644
index 0000000000..7576cb54ef
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-frequency/-monthly/index.html
@@ -0,0 +1,36 @@
+
+
+Frequency.Monthly -
+
+
+
+net.corda.core.contracts / Frequency / Monthly
+
+Monthly
+Monthly
+
+
+Inherited Properties
+
+Functions
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-frequency/-monthly/offset.html b/docs/build/html/api/net.corda.core.contracts/-frequency/-monthly/offset.html
new file mode 100644
index 0000000000..2ad3f02045
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-frequency/-monthly/offset.html
@@ -0,0 +1,16 @@
+
+
+Frequency.Monthly.offset -
+
+
+
+net.corda.core.contracts / Frequency / Monthly / offset
+
+offset
+
+fun offset ( d : LocalDate , n : Long ) : LocalDate
+Overrides Frequency.offset
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-frequency/-quarterly/index.html b/docs/build/html/api/net.corda.core.contracts/-frequency/-quarterly/index.html
new file mode 100644
index 0000000000..a4d7226409
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-frequency/-quarterly/index.html
@@ -0,0 +1,36 @@
+
+
+Frequency.Quarterly -
+
+
+
+net.corda.core.contracts / Frequency / Quarterly
+
+Quarterly
+Quarterly
+
+
+Inherited Properties
+
+Functions
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-frequency/-quarterly/offset.html b/docs/build/html/api/net.corda.core.contracts/-frequency/-quarterly/offset.html
new file mode 100644
index 0000000000..8dc41032e9
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-frequency/-quarterly/offset.html
@@ -0,0 +1,16 @@
+
+
+Frequency.Quarterly.offset -
+
+
+
+net.corda.core.contracts / Frequency / Quarterly / offset
+
+offset
+
+fun offset ( d : LocalDate , n : Long ) : LocalDate
+Overrides Frequency.offset
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-frequency/-semi-annual/index.html b/docs/build/html/api/net.corda.core.contracts/-frequency/-semi-annual/index.html
new file mode 100644
index 0000000000..f00b7bcdab
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-frequency/-semi-annual/index.html
@@ -0,0 +1,36 @@
+
+
+Frequency.SemiAnnual -
+
+
+
+net.corda.core.contracts / Frequency / SemiAnnual
+
+SemiAnnual
+SemiAnnual
+
+
+Inherited Properties
+
+Functions
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-frequency/-semi-annual/offset.html b/docs/build/html/api/net.corda.core.contracts/-frequency/-semi-annual/offset.html
new file mode 100644
index 0000000000..e9bce36b5c
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-frequency/-semi-annual/offset.html
@@ -0,0 +1,16 @@
+
+
+Frequency.SemiAnnual.offset -
+
+
+
+net.corda.core.contracts / Frequency / SemiAnnual / offset
+
+offset
+
+fun offset ( d : LocalDate , n : Long ) : LocalDate
+Overrides Frequency.offset
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-frequency/-weekly/index.html b/docs/build/html/api/net.corda.core.contracts/-frequency/-weekly/index.html
new file mode 100644
index 0000000000..bb1727c456
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-frequency/-weekly/index.html
@@ -0,0 +1,36 @@
+
+
+Frequency.Weekly -
+
+
+
+net.corda.core.contracts / Frequency / Weekly
+
+Weekly
+Weekly
+
+
+Inherited Properties
+
+Functions
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-frequency/-weekly/offset.html b/docs/build/html/api/net.corda.core.contracts/-frequency/-weekly/offset.html
new file mode 100644
index 0000000000..bd74d55102
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-frequency/-weekly/offset.html
@@ -0,0 +1,16 @@
+
+
+Frequency.Weekly.offset -
+
+
+
+net.corda.core.contracts / Frequency / Weekly / offset
+
+offset
+
+fun offset ( d : LocalDate , n : Long ) : LocalDate
+Overrides Frequency.offset
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-frequency/annual-compound-count.html b/docs/build/html/api/net.corda.core.contracts/-frequency/annual-compound-count.html
new file mode 100644
index 0000000000..58da93e3fb
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-frequency/annual-compound-count.html
@@ -0,0 +1,15 @@
+
+
+Frequency.annualCompoundCount -
+
+
+
+net.corda.core.contracts / Frequency / annualCompoundCount
+
+annualCompoundCount
+
+val annualCompoundCount : Int
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-frequency/index.html b/docs/build/html/api/net.corda.core.contracts/-frequency/index.html
new file mode 100644
index 0000000000..a8ee0abf38
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-frequency/index.html
@@ -0,0 +1,85 @@
+
+
+Frequency -
+
+
+
+net.corda.core.contracts / Frequency
+
+Frequency
+enum class Frequency
+Frequency at which an event occurs - the enumerator also casts to an integer specifying the number of times per year
+that would divide into (eg annually = 1, semiannual = 2, monthly = 12 etc).
+
+
+Enum Values
+
+Properties
+
+Functions
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-frequency/offset.html b/docs/build/html/api/net.corda.core.contracts/-frequency/offset.html
new file mode 100644
index 0000000000..1c49283f4d
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-frequency/offset.html
@@ -0,0 +1,15 @@
+
+
+Frequency.offset -
+
+
+
+net.corda.core.contracts / Frequency / offset
+
+offset
+
+abstract fun offset ( d : LocalDate , n : Long = 1) : LocalDate
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-fungible-asset/-commands/-exit/amount.html b/docs/build/html/api/net.corda.core.contracts/-fungible-asset/-commands/-exit/amount.html
new file mode 100644
index 0000000000..bb8428adb5
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-fungible-asset/-commands/-exit/amount.html
@@ -0,0 +1,15 @@
+
+
+FungibleAsset.Commands.Exit.amount -
+
+
+
+net.corda.core.contracts / FungibleAsset / Commands / Exit / amount
+
+amount
+
+abstract val amount : Amount < Issued < T > >
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-fungible-asset/-commands/-exit/index.html b/docs/build/html/api/net.corda.core.contracts/-fungible-asset/-commands/-exit/index.html
new file mode 100644
index 0000000000..6f146b3769
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-fungible-asset/-commands/-exit/index.html
@@ -0,0 +1,56 @@
+
+
+FungibleAsset.Commands.Exit -
+
+
+
+net.corda.core.contracts / FungibleAsset / Commands / Exit
+
+Exit
+interface Exit < T > : Commands
+A command stating that money has been withdrawn from the shared ledger and is now accounted for
+in some other way.
+
+
+Properties
+
+Inheritors
+
+
+
+
+Exit
+
+data class Exit : Commands , Exit < Currency >
A command stating that money has been withdrawn from the shared ledger and is now accounted for
+in some other way.
+
+
+
+
+Exit
+
+data class Exit : Commands , Exit < Commodity >
A command stating that money has been withdrawn from the shared ledger and is now accounted for
+in some other way.
+
+
+
+
+Exit
+
+data class Exit < P > : Commands , Exit < Terms < P > >
A command stating that the debt is being released by the beneficiary. Normally would indicate
+either settlement outside of the ledger, or that the obligor is unable to pay.
+
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-fungible-asset/-commands/-issue.html b/docs/build/html/api/net.corda.core.contracts/-fungible-asset/-commands/-issue.html
new file mode 100644
index 0000000000..62368c9273
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-fungible-asset/-commands/-issue.html
@@ -0,0 +1,56 @@
+
+
+FungibleAsset.Commands.Issue -
+
+
+
+net.corda.core.contracts / FungibleAsset / Commands / Issue
+
+Issue
+interface Issue : IssueCommand , Commands
+Allows new asset states to be issued into existence: the nonce ("number used once") ensures the transaction
+has a unique ID even when there are no inputs.
+
+
+Inherited Properties
+
+
+
+
+nonce
+
+abstract val nonce : Long
+
+
+
+Inheritors
+
+
+
+
+Issue
+
+data class Issue : Issue , Commands
Allows new cash states to be issued into existence: the nonce ("number used once") ensures the transaction
+has a unique ID even when there are no inputs.
+
+
+
+
+Issue
+
+data class Issue : Issue , Commands
Allows new commodity states to be issued into existence: the nonce ("number used once") ensures the transaction
+has a unique ID even when there are no inputs.
+
+
+
+
+Issue
+
+data class Issue : Issue , Commands
Allows new obligation states to be issued into existence: the nonce ("number used once") ensures the
+transaction has a unique ID even when there are no inputs.
+
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-fungible-asset/-commands/-move.html b/docs/build/html/api/net.corda.core.contracts/-fungible-asset/-commands/-move.html
new file mode 100644
index 0000000000..6c8f82875d
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-fungible-asset/-commands/-move.html
@@ -0,0 +1,59 @@
+
+
+FungibleAsset.Commands.Move -
+
+
+
+net.corda.core.contracts / FungibleAsset / Commands / Move
+
+Move
+interface Move : MoveCommand , Commands
+
+
+Inherited Properties
+
+
+
+
+contractHash
+
+abstract val contractHash : SecureHash ?
Contract code the moved state(s) are for the attention of, for example to indicate that the states are moved in
+order to settle an obligation contracts state object(s).
+
+
+
+
+Inheritors
+
+
+
+
+Move
+
+data class Move : Move , Commands
A command stating that money has been moved, optionally to fulfil another contract.
+
+
+
+
+Move
+
+data class Move : Move , Commands
A command stating that money has been moved, optionally to fulfil another contract.
+
+
+
+
+Move
+
+data class Move : Commands , Move
A command stating that a debt has been moved, optionally to fulfil another contract.
+
+
+
+
+Move
+
+data class Move : Move , Commands
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-fungible-asset/-commands/index.html b/docs/build/html/api/net.corda.core.contracts/-fungible-asset/-commands/index.html
new file mode 100644
index 0000000000..5407274c85
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-fungible-asset/-commands/index.html
@@ -0,0 +1,86 @@
+
+
+FungibleAsset.Commands -
+
+
+
+net.corda.core.contracts / FungibleAsset / Commands
+
+Commands
+interface Commands : CommandData
+
+
+Types
+
+
+
+
+Exit
+
+interface Exit < T > : Commands
A command stating that money has been withdrawn from the shared ledger and is now accounted for
+in some other way.
+
+
+
+
+Issue
+
+interface Issue : IssueCommand , Commands
Allows new asset states to be issued into existence: the nonce ("number used once") ensures the transaction
+has a unique ID even when there are no inputs.
+
+
+
+
+Move
+
+interface Move : MoveCommand , Commands
+
+
+
+Inheritors
+
+
+
+
+Commands
+
+interface Commands : Commands
+
+
+
+Commands
+
+interface Commands : Commands
+
+
+
+Commands
+
+interface Commands : Commands
+
+
+
+Exit
+
+interface Exit < T > : Commands
A command stating that money has been withdrawn from the shared ledger and is now accounted for
+in some other way.
+
+
+
+
+Issue
+
+interface Issue : IssueCommand , Commands
Allows new asset states to be issued into existence: the nonce ("number used once") ensures the transaction
+has a unique ID even when there are no inputs.
+
+
+
+
+Move
+
+interface Move : MoveCommand , Commands
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-fungible-asset/amount.html b/docs/build/html/api/net.corda.core.contracts/-fungible-asset/amount.html
new file mode 100644
index 0000000000..2cb46bf955
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-fungible-asset/amount.html
@@ -0,0 +1,15 @@
+
+
+FungibleAsset.amount -
+
+
+
+net.corda.core.contracts / FungibleAsset / amount
+
+amount
+
+abstract val amount : Amount < Issued < T > >
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-fungible-asset/exit-keys.html b/docs/build/html/api/net.corda.core.contracts/-fungible-asset/exit-keys.html
new file mode 100644
index 0000000000..0303ba524f
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-fungible-asset/exit-keys.html
@@ -0,0 +1,17 @@
+
+
+FungibleAsset.exitKeys -
+
+
+
+net.corda.core.contracts / FungibleAsset / exitKeys
+
+exitKeys
+
+abstract val exitKeys : Collection < PublicKey >
+There must be an ExitCommand signed by these keys to destroy the amount. While all states require their
+owner to sign, some (i.e. cash) also require the issuer.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-fungible-asset/index.html b/docs/build/html/api/net.corda.core.contracts/-fungible-asset/index.html
new file mode 100644
index 0000000000..d071b05311
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-fungible-asset/index.html
@@ -0,0 +1,128 @@
+
+
+FungibleAsset -
+
+
+
+net.corda.core.contracts / FungibleAsset
+
+FungibleAsset
+interface FungibleAsset < T > : OwnableState
+Interface for contract states representing assets which are fungible, countable and issued by a
+specific party. States contain assets which are equivalent (such as cash of the same currency),
+so records of their existence can be merged or split as needed where the issuer is the same. For
+instance, dollars issued by the Fed are fungible and countable (in cents), barrels of West Texas
+crude are fungible and countable (oil from two small containers can be poured into one large
+container), shares of the same class in a specific company are fungible and countable, and so on.
+See Cash for an example contract that implements currency using state objects that implement
+this interface.
+
+
+Parameters
+
+T
- a type that represents the asset in question. This should describe the basic type of the asset
+(GBP, USD, oil, shares in company , etc.) and any additional metadata (issuer, grade, class, etc.).
+
+
+Types
+
+Properties
+
+
+
+
+amount
+
+abstract val amount : Amount < Issued < T > >
+
+
+
+exitKeys
+
+abstract val exitKeys : Collection < PublicKey >
There must be an ExitCommand signed by these keys to destroy the amount. While all states require their
+owner to sign, some (i.e. cash) also require the issuer.
+
+
+
+
+owner
+
+abstract val owner : PublicKey
There must be a MoveCommand signed by this key to claim the amount
+
+
+
+
+Functions
+
+Inherited Functions
+
+
+
+
+withNewOwner
+
+abstract fun withNewOwner ( newOwner : PublicKey ) : <ERROR CLASS> < CommandData , OwnableState >
Copies the underlying data structure, replacing the owner field with this new value and leaving the rest alone
+
+
+
+
+Extension Functions
+
+
+
+
+hash
+
+fun ContractState . hash ( ) : SecureHash
Returns the SHA-256 hash of the serialised contents of this state (not cached)
+
+
+
+
+Inheritors
+
+
+
+
+State
+
+data class State : FungibleAsset < Currency > , QueryableState
A state representing a cash claim against some party.
+
+
+
+
+State
+
+data class State : FungibleAsset < Commodity >
A state representing a commodity claim against some party
+
+
+
+
+State
+
+data class State < P > : FungibleAsset < Terms < P > > , NettableState < State < P > , MultilateralNetState < P > >
A state representing the obligation of one party (obligor) to deliver a specified number of
+units of an underlying asset (described as token.acceptableIssuedProducts) to the beneficiary
+no later than the specified time.
+
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-fungible-asset/move.html b/docs/build/html/api/net.corda.core.contracts/-fungible-asset/move.html
new file mode 100644
index 0000000000..4e75ad54c0
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-fungible-asset/move.html
@@ -0,0 +1,15 @@
+
+
+FungibleAsset.move -
+
+
+
+net.corda.core.contracts / FungibleAsset / move
+
+move
+
+abstract fun move ( newAmount : Amount < Issued < T > > , newOwner : PublicKey ) : FungibleAsset < T >
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-fungible-asset/owner.html b/docs/build/html/api/net.corda.core.contracts/-fungible-asset/owner.html
new file mode 100644
index 0000000000..3cc774882a
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-fungible-asset/owner.html
@@ -0,0 +1,17 @@
+
+
+FungibleAsset.owner -
+
+
+
+net.corda.core.contracts / FungibleAsset / owner
+
+owner
+
+abstract val owner : PublicKey
+Overrides OwnableState.owner
+There must be a MoveCommand signed by this key to claim the amount
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-g-b-p.html b/docs/build/html/api/net.corda.core.contracts/-g-b-p.html
new file mode 100644
index 0000000000..10c86a42a7
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-g-b-p.html
@@ -0,0 +1,15 @@
+
+
+GBP -
+
+
+
+net.corda.core.contracts / GBP
+
+GBP
+
+val GBP : Currency
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-insufficient-balance-exception/-init-.html b/docs/build/html/api/net.corda.core.contracts/-insufficient-balance-exception/-init-.html
new file mode 100644
index 0000000000..23800bab54
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-insufficient-balance-exception/-init-.html
@@ -0,0 +1,14 @@
+
+
+InsufficientBalanceException. -
+
+
+
+net.corda.core.contracts / InsufficientBalanceException / <init>
+
+<init>
+InsufficientBalanceException ( amountMissing : Amount < * > )
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-insufficient-balance-exception/amount-missing.html b/docs/build/html/api/net.corda.core.contracts/-insufficient-balance-exception/amount-missing.html
new file mode 100644
index 0000000000..3668d26566
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-insufficient-balance-exception/amount-missing.html
@@ -0,0 +1,15 @@
+
+
+InsufficientBalanceException.amountMissing -
+
+
+
+net.corda.core.contracts / InsufficientBalanceException / amountMissing
+
+amountMissing
+
+val amountMissing : Amount < * >
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-insufficient-balance-exception/index.html b/docs/build/html/api/net.corda.core.contracts/-insufficient-balance-exception/index.html
new file mode 100644
index 0000000000..bc0dee0b5c
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-insufficient-balance-exception/index.html
@@ -0,0 +1,58 @@
+
+
+InsufficientBalanceException -
+
+
+
+net.corda.core.contracts / InsufficientBalanceException
+
+InsufficientBalanceException
+class InsufficientBalanceException : Exception
+
+
+Constructors
+
+
+
+
+<init>
+
+InsufficientBalanceException ( amountMissing : Amount < * > )
+
+
+
+Properties
+
+Functions
+
+
+
+
+toString
+
+fun toString ( ) : String
+
+
+
+Extension Properties
+
+
+
+
+rootCause
+
+val Throwable . rootCause : Throwable
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-insufficient-balance-exception/to-string.html b/docs/build/html/api/net.corda.core.contracts/-insufficient-balance-exception/to-string.html
new file mode 100644
index 0000000000..01160b3fdb
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-insufficient-balance-exception/to-string.html
@@ -0,0 +1,15 @@
+
+
+InsufficientBalanceException.toString -
+
+
+
+net.corda.core.contracts / InsufficientBalanceException / toString
+
+toString
+
+fun toString ( ) : String
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-issuance-definition.html b/docs/build/html/api/net.corda.core.contracts/-issuance-definition.html
new file mode 100644
index 0000000000..f25ab17486
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-issuance-definition.html
@@ -0,0 +1,16 @@
+
+
+IssuanceDefinition -
+
+
+
+net.corda.core.contracts / IssuanceDefinition
+
+IssuanceDefinition
+interface IssuanceDefinition
+Marker interface for data classes that represent the issuance state for a contract. These are intended as templates
+from which the state object is initialised.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-issue-command/index.html b/docs/build/html/api/net.corda.core.contracts/-issue-command/index.html
new file mode 100644
index 0000000000..62b4029f89
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-issue-command/index.html
@@ -0,0 +1,45 @@
+
+
+IssueCommand -
+
+
+
+net.corda.core.contracts / IssueCommand
+
+IssueCommand
+interface IssueCommand : CommandData
+A common issue command, to enforce that issue commands have a nonce value.
+
+
+Properties
+
+
+
+
+nonce
+
+abstract val nonce : Long
+
+
+
+Inheritors
+
+
+
+
+Issue
+
+interface Issue : IssueCommand , Commands
Allows new asset states to be issued into existence: the nonce ("number used once") ensures the transaction
+has a unique ID even when there are no inputs.
+
+
+
+
+Issue
+
+data class Issue : IssueCommand , Commands
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-issue-command/nonce.html b/docs/build/html/api/net.corda.core.contracts/-issue-command/nonce.html
new file mode 100644
index 0000000000..50b45cd0b9
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-issue-command/nonce.html
@@ -0,0 +1,15 @@
+
+
+IssueCommand.nonce -
+
+
+
+net.corda.core.contracts / IssueCommand / nonce
+
+nonce
+
+abstract val nonce : Long
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-issued/-init-.html b/docs/build/html/api/net.corda.core.contracts/-issued/-init-.html
new file mode 100644
index 0000000000..ade2f450ab
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-issued/-init-.html
@@ -0,0 +1,19 @@
+
+
+Issued. -
+
+
+
+net.corda.core.contracts / Issued / <init>
+
+<init>
+Issued ( issuer : PartyAndReference , product : P )
+Definition for an issued product, which can be cash, a cash-like thing, assets, or generally anything else thats
+quantifiable with integer quantities.
+Parameters
+
+P
- the type of product underlying the definition, for example Currency .
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-issued/index.html b/docs/build/html/api/net.corda.core.contracts/-issued/index.html
new file mode 100644
index 0000000000..336a679c09
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-issued/index.html
@@ -0,0 +1,71 @@
+
+
+Issued -
+
+
+
+net.corda.core.contracts / Issued
+
+Issued
+data class Issued < out P >
+Definition for an issued product, which can be cash, a cash-like thing, assets, or generally anything else thats
+quantifiable with integer quantities.
+Parameters
+
+P
- the type of product underlying the definition, for example Currency .
+
+
+Constructors
+
+
+
+
+<init>
+
+Issued ( issuer : PartyAndReference , product : P )
Definition for an issued product, which can be cash, a cash-like thing, assets, or generally anything else thats
+quantifiable with integer quantities.
+
+
+
+
+Properties
+
+Functions
+
+
+
+
+toString
+
+fun toString ( ) : String
+
+
+
+Extension Properties
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-issued/issuer.html b/docs/build/html/api/net.corda.core.contracts/-issued/issuer.html
new file mode 100644
index 0000000000..3cd2cf5165
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-issued/issuer.html
@@ -0,0 +1,15 @@
+
+
+Issued.issuer -
+
+
+
+net.corda.core.contracts / Issued / issuer
+
+issuer
+
+val issuer : PartyAndReference
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-issued/product.html b/docs/build/html/api/net.corda.core.contracts/-issued/product.html
new file mode 100644
index 0000000000..4fc907ab63
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-issued/product.html
@@ -0,0 +1,15 @@
+
+
+Issued.product -
+
+
+
+net.corda.core.contracts / Issued / product
+
+product
+
+val product : P
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-issued/to-string.html b/docs/build/html/api/net.corda.core.contracts/-issued/to-string.html
new file mode 100644
index 0000000000..2834fd99d2
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-issued/to-string.html
@@ -0,0 +1,15 @@
+
+
+Issued.toString -
+
+
+
+net.corda.core.contracts / Issued / toString
+
+toString
+
+fun toString ( ) : String
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-linear-state/-clause-verifier/-init-.html b/docs/build/html/api/net.corda.core.contracts/-linear-state/-clause-verifier/-init-.html
new file mode 100644
index 0000000000..cc6741661f
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-linear-state/-clause-verifier/-init-.html
@@ -0,0 +1,15 @@
+
+
+LinearState.ClauseVerifier. -
+
+
+
+net.corda.core.contracts / LinearState / ClauseVerifier / <init>
+
+<init>
+ClauseVerifier ( )
+Standard clause to verify the LinearState safety properties.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-linear-state/-clause-verifier/index.html b/docs/build/html/api/net.corda.core.contracts/-linear-state/-clause-verifier/index.html
new file mode 100644
index 0000000000..3e64c13846
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-linear-state/-clause-verifier/index.html
@@ -0,0 +1,53 @@
+
+
+LinearState.ClauseVerifier -
+
+
+
+net.corda.core.contracts / LinearState / ClauseVerifier
+
+ClauseVerifier
+class ClauseVerifier < S : LinearState , C : CommandData > : Clause < S , C , Unit >
+Standard clause to verify the LinearState safety properties.
+
+
+Constructors
+
+
+
+
+<init>
+
+ClauseVerifier ( )
Standard clause to verify the LinearState safety properties.
+
+
+
+
+Inherited Properties
+
+Functions
+
+
+
+
+verify
+
+fun verify ( tx : TransactionForContract , inputs : List < S > , outputs : List < S > , commands : List < AuthenticatedObject < C > > , groupingKey : Unit ? ) : Set < C >
Verify the transaction matches the conditions from this clause. For example, a "no zero amount output" clause
+would check each of the output states that it applies to, looking for a zero amount, and throw IllegalStateException
+if any matched.
+
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-linear-state/-clause-verifier/verify.html b/docs/build/html/api/net.corda.core.contracts/-linear-state/-clause-verifier/verify.html
new file mode 100644
index 0000000000..62a569c689
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-linear-state/-clause-verifier/verify.html
@@ -0,0 +1,43 @@
+
+
+LinearState.ClauseVerifier.verify -
+
+
+
+net.corda.core.contracts / LinearState / ClauseVerifier / verify
+
+verify
+
+fun verify ( tx : TransactionForContract , inputs : List < S > , outputs : List < S > , commands : List < AuthenticatedObject < C > > , groupingKey : Unit ? ) : Set < C >
+Verify the transaction matches the conditions from this clause. For example, a "no zero amount output" clause
+would check each of the output states that it applies to, looking for a zero amount, and throw IllegalStateException
+if any matched.
+Parameters
+
+tx
- the full transaction being verified. This is provided for cases where clauses need to access
+states or commands outside of their normal scope.
+
+
+inputs
- input states which are relevant to this clause. By default this is the set passed into verifyClause ,
+but may be further reduced by clauses such as GroupClauseVerifier .
+
+
+outputs
- output states which are relevant to this clause. By default this is the set passed into verifyClause ,
+but may be further reduced by clauses such as GroupClauseVerifier .
+
+
+commands
- commands which are relevant to this clause. By default this is the set passed into verifyClause ,
+but may be further reduced by clauses such as GroupClauseVerifier .
+
+
+groupingKey
- a grouping key applied to states and commands, where applicable. Taken from
+TransactionForContract.InOutGroup .
+Return
+the set of commands that are consumed IF this clause is matched, and cannot be used to match a
+later clause. This would normally be all commands matching "requiredCommands" for this clause, but some
+verify() functions may do further filtering on possible matches, and return a subset. This may also include
+commands that were not required (for example the Exit command for fungible assets is optional).
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-linear-state/index.html b/docs/build/html/api/net.corda.core.contracts/-linear-state/index.html
new file mode 100644
index 0000000000..36aa42102f
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-linear-state/index.html
@@ -0,0 +1,107 @@
+
+
+LinearState -
+
+
+
+net.corda.core.contracts / LinearState
+
+LinearState
+interface LinearState : ContractState
+A state that evolves by superseding itself, all of which share the common "linearId".
+This simplifies the job of tracking the current version of certain types of state in e.g. a vault.
+
+
+
+
+Types
+
+
+
+
+ClauseVerifier
+
+class ClauseVerifier < S : LinearState , C : CommandData > : Clause < S , C , Unit >
Standard clause to verify the LinearState safety properties.
+
+
+
+
+Properties
+
+
+
+
+linearId
+
+abstract val linearId : UniqueIdentifier
Unique id shared by all LinearState states throughout history within the vaults of all parties.
+Verify methods should check that one input and one output share the id in a transaction,
+except at issuance/termination.
+
+
+
+
+Inherited Properties
+
+
+
+
+contract
+
+abstract val contract : Contract
An instance of the contract class that will verify this state.
+
+
+
+
+encumbrance
+
+open val encumbrance : Int ?
All contract states may be encumbered by up to one other state.
+
+
+
+
+participants
+
+abstract val participants : List < PublicKey >
A participant is any party that is able to consume this state in a valid transaction.
+
+
+
+
+Functions
+
+
+
+
+isRelevant
+
+abstract fun isRelevant ( ourKeys : Set < PublicKey > ) : Boolean
True if this should be tracked by our vault(s).
+
+
+
+
+Extension Functions
+
+
+
+
+hash
+
+fun ContractState . hash ( ) : SecureHash
Returns the SHA-256 hash of the serialised contents of this state (not cached)
+
+
+
+
+Inheritors
+
+
+
+
+DealState
+
+interface DealState : LinearState
Interface representing an agreement that exposes various attributes that are common. Implementing it simplifies
+implementation of general protocols that manipulate many agreement types.
+
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-linear-state/is-relevant.html b/docs/build/html/api/net.corda.core.contracts/-linear-state/is-relevant.html
new file mode 100644
index 0000000000..983ddbedd4
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-linear-state/is-relevant.html
@@ -0,0 +1,16 @@
+
+
+LinearState.isRelevant -
+
+
+
+net.corda.core.contracts / LinearState / isRelevant
+
+isRelevant
+
+abstract fun isRelevant ( ourKeys : Set < PublicKey > ) : Boolean
+True if this should be tracked by our vault(s).
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-linear-state/linear-id.html b/docs/build/html/api/net.corda.core.contracts/-linear-state/linear-id.html
new file mode 100644
index 0000000000..b1fce5e93e
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-linear-state/linear-id.html
@@ -0,0 +1,18 @@
+
+
+LinearState.linearId -
+
+
+
+net.corda.core.contracts / LinearState / linearId
+
+linearId
+
+abstract val linearId : UniqueIdentifier
+Unique id shared by all LinearState states throughout history within the vaults of all parties.
+Verify methods should check that one input and one output share the id in a transaction,
+except at issuance/termination.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-move-command/contract-hash.html b/docs/build/html/api/net.corda.core.contracts/-move-command/contract-hash.html
new file mode 100644
index 0000000000..86da1213e5
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-move-command/contract-hash.html
@@ -0,0 +1,17 @@
+
+
+MoveCommand.contractHash -
+
+
+
+net.corda.core.contracts / MoveCommand / contractHash
+
+contractHash
+
+abstract val contractHash : SecureHash ?
+Contract code the moved state(s) are for the attention of, for example to indicate that the states are moved in
+order to settle an obligation contracts state object(s).
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-move-command/index.html b/docs/build/html/api/net.corda.core.contracts/-move-command/index.html
new file mode 100644
index 0000000000..f90606b21f
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-move-command/index.html
@@ -0,0 +1,39 @@
+
+
+MoveCommand -
+
+
+
+net.corda.core.contracts / MoveCommand
+
+MoveCommand
+interface MoveCommand : CommandData
+A common move command for contracts which can change owner.
+
+
+Properties
+
+
+
+
+contractHash
+
+abstract val contractHash : SecureHash ?
Contract code the moved state(s) are for the attention of, for example to indicate that the states are moved in
+order to settle an obligation contracts state object(s).
+
+
+
+
+Inheritors
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-multilateral-nettable-state/index.html b/docs/build/html/api/net.corda.core.contracts/-multilateral-nettable-state/index.html
new file mode 100644
index 0000000000..ee969398de
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-multilateral-nettable-state/index.html
@@ -0,0 +1,39 @@
+
+
+MultilateralNettableState -
+
+
+
+net.corda.core.contracts / MultilateralNettableState
+
+MultilateralNettableState
+interface MultilateralNettableState < out T : Any >
+Interface for state objects that support being netted with other state objects.
+
+
+Properties
+
+
+
+
+multilateralNetState
+
+abstract val multilateralNetState : T
Returns an object used to determine if two states can be subject to close-out netting. If two states return
+equal objects, they can be close out netted together.
+
+
+
+
+Inheritors
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-multilateral-nettable-state/multilateral-net-state.html b/docs/build/html/api/net.corda.core.contracts/-multilateral-nettable-state/multilateral-net-state.html
new file mode 100644
index 0000000000..88d8f1040d
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-multilateral-nettable-state/multilateral-net-state.html
@@ -0,0 +1,17 @@
+
+
+MultilateralNettableState.multilateralNetState -
+
+
+
+net.corda.core.contracts / MultilateralNettableState / multilateralNetState
+
+multilateralNetState
+
+abstract val multilateralNetState : T
+Returns an object used to determine if two states can be subject to close-out netting. If two states return
+equal objects, they can be close out netted together.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-named-by-hash/id.html b/docs/build/html/api/net.corda.core.contracts/-named-by-hash/id.html
new file mode 100644
index 0000000000..a0bb3f3f8b
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-named-by-hash/id.html
@@ -0,0 +1,15 @@
+
+
+NamedByHash.id -
+
+
+
+net.corda.core.contracts / NamedByHash / id
+
+id
+
+abstract val id : SecureHash
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-named-by-hash/index.html b/docs/build/html/api/net.corda.core.contracts/-named-by-hash/index.html
new file mode 100644
index 0000000000..ddc10c72ca
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-named-by-hash/index.html
@@ -0,0 +1,66 @@
+
+
+NamedByHash -
+
+
+
+net.corda.core.contracts / NamedByHash
+
+NamedByHash
+interface NamedByHash
+Implemented by anything that can be named by a secure hash value (e.g. transactions, attachments).
+
+
+Properties
+
+Inheritors
+
+
+
+
+Attachment
+
+interface Attachment : NamedByHash
An attachment is a ZIP (or an optionally signed JAR) that contains one or more files. Attachments are meant to
+contain public static data which can be referenced from transactions and utilised from contracts. Good examples
+of how attachments are meant to be used include:
+
+
+
+
+BaseTransaction
+
+abstract class BaseTransaction : NamedByHash
An abstract class defining fields shared by all transaction types in the system.
+
+
+
+
+SignaturesMissingException
+
+class SignaturesMissingException : NamedByHash , SignatureException
+
+
+
+SignedTransaction
+
+data class SignedTransaction : NamedByHash
SignedTransaction wraps a serialized WireTransaction. It contains one or more signatures, each one for
+a public key that is mentioned inside a transaction command. SignedTransaction is the top level transaction type
+and the type most frequently passed around the network and stored. The identity of a transaction is the hash
+of a WireTransaction, therefore if you are storing data keyed by WT hash be aware that multiple different STs may
+map to the same key (and they could be different in important ways, like validity). The signatures on a
+SignedTransaction might be invalid or missing: the type does not imply validity.
+A transaction ID should be the hash of the WireTransaction Merkle tree root. Thus adding or removing a signature does not change it.
+
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-net-command/index.html b/docs/build/html/api/net.corda.core.contracts/-net-command/index.html
new file mode 100644
index 0000000000..3a0e4b605e
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-net-command/index.html
@@ -0,0 +1,40 @@
+
+
+NetCommand -
+
+
+
+net.corda.core.contracts / NetCommand
+
+NetCommand
+interface NetCommand : CommandData
+A common netting command for contracts whose states can be netted.
+
+
+Properties
+
+
+
+
+type
+
+abstract val type : NetType
The type of netting to apply, see NetType for options.
+
+
+
+
+Inheritors
+
+
+
+
+Net
+
+data class Net : NetCommand , Commands
Net two or more obligation states together in a close-out netting style. Limited to bilateral netting
+as only the beneficiary (not the obligor) needs to sign.
+
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-net-command/type.html b/docs/build/html/api/net.corda.core.contracts/-net-command/type.html
new file mode 100644
index 0000000000..38ea54ec37
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-net-command/type.html
@@ -0,0 +1,16 @@
+
+
+NetCommand.type -
+
+
+
+net.corda.core.contracts / NetCommand / type
+
+type
+
+abstract val type : NetType
+The type of netting to apply, see NetType for options.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-net-type/-c-l-o-s-e_-o-u-t.html b/docs/build/html/api/net.corda.core.contracts/-net-type/-c-l-o-s-e_-o-u-t.html
new file mode 100644
index 0000000000..57ac458699
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-net-type/-c-l-o-s-e_-o-u-t.html
@@ -0,0 +1,20 @@
+
+
+NetType.CLOSE_OUT -
+
+
+
+net.corda.core.contracts / NetType / CLOSE_OUT
+
+CLOSE_OUT
+CLOSE_OUT
+Close-out netting applies where one party is bankrupt or otherwise defaults (exact terms are contract specific),
+and allows their counterparty to net obligations without requiring approval from all parties. For example, if
+Bank A owes Bank B £1m, and Bank B owes Bank A £1m, in the case of Bank B defaulting this would enable Bank A
+to net out the two obligations to zero, rather than being legally obliged to pay £1m without any realistic
+expectation of the debt to them being paid. Realistically this is limited to bilateral netting, to simplify
+determining which party must sign the netting transaction.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-net-type/-p-a-y-m-e-n-t.html b/docs/build/html/api/net.corda.core.contracts/-net-type/-p-a-y-m-e-n-t.html
new file mode 100644
index 0000000000..fb9257ebef
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-net-type/-p-a-y-m-e-n-t.html
@@ -0,0 +1,16 @@
+
+
+NetType.PAYMENT -
+
+
+
+net.corda.core.contracts / NetType / PAYMENT
+
+PAYMENT
+PAYMENT
+"Payment" is used to refer to conventional netting, where all parties must confirm the netting transaction. This
+can be a multilateral netting transaction, and may be created by a central clearing service.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-net-type/index.html b/docs/build/html/api/net.corda.core.contracts/-net-type/index.html
new file mode 100644
index 0000000000..31bfd5ea70
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-net-type/index.html
@@ -0,0 +1,41 @@
+
+
+NetType -
+
+
+
+net.corda.core.contracts / NetType
+
+NetType
+enum class NetType
+Enum for the types of netting that can be applied to state objects. Exact behaviour
+for each type of netting is left to the contract to determine.
+
+
+Enum Values
+
+
+
+
+CLOSE_OUT
+
+Close-out netting applies where one party is bankrupt or otherwise defaults (exact terms are contract specific),
+and allows their counterparty to net obligations without requiring approval from all parties. For example, if
+Bank A owes Bank B £1m, and Bank B owes Bank A £1m, in the case of Bank B defaulting this would enable Bank A
+to net out the two obligations to zero, rather than being legally obliged to pay £1m without any realistic
+expectation of the debt to them being paid. Realistically this is limited to bilateral netting, to simplify
+determining which party must sign the netting transaction.
+
+
+
+
+PAYMENT
+
+"Payment" is used to refer to conventional netting, where all parties must confirm the netting transaction. This
+can be a multilateral netting transaction, and may be created by a central clearing service.
+
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-nettable-state.html b/docs/build/html/api/net.corda.core.contracts/-nettable-state.html
new file mode 100644
index 0000000000..e3b5806b54
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-nettable-state.html
@@ -0,0 +1,49 @@
+
+
+NettableState -
+
+
+
+net.corda.core.contracts / NettableState
+
+NettableState
+interface NettableState < N : BilateralNettableState < N > , T : Any > : BilateralNettableState < N > , MultilateralNettableState < T >
+
+
+Inherited Properties
+
+
+
+
+bilateralNetState
+
+abstract val bilateralNetState : Any
Returns an object used to determine if two states can be subject to close-out netting. If two states return
+equal objects, they can be close out netted together.
+
+
+
+
+multilateralNetState
+
+abstract val multilateralNetState : T
Returns an object used to determine if two states can be subject to close-out netting. If two states return
+equal objects, they can be close out netted together.
+
+
+
+
+Inheritors
+
+
+
+
+State
+
+data class State < P > : FungibleAsset < Terms < P > > , NettableState < State < P > , MultilateralNetState < P > >
A state representing the obligation of one party (obligor) to deliver a specified number of
+units of an underlying asset (described as token.acceptableIssuedProducts) to the beneficiary
+no later than the specified time.
+
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-ownable-state/index.html b/docs/build/html/api/net.corda.core.contracts/-ownable-state/index.html
new file mode 100644
index 0000000000..34807a111f
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-ownable-state/index.html
@@ -0,0 +1,112 @@
+
+
+OwnableState -
+
+
+
+net.corda.core.contracts / OwnableState
+
+OwnableState
+interface OwnableState : ContractState
+A contract state that can have a single owner.
+
+
+Properties
+
+
+
+
+owner
+
+abstract val owner : PublicKey
There must be a MoveCommand signed by this key to claim the amount
+
+
+
+
+Inherited Properties
+
+
+
+
+contract
+
+abstract val contract : Contract
An instance of the contract class that will verify this state.
+
+
+
+
+encumbrance
+
+open val encumbrance : Int ?
All contract states may be encumbered by up to one other state.
+
+
+
+
+participants
+
+abstract val participants : List < PublicKey >
A participant is any party that is able to consume this state in a valid transaction.
+
+
+
+
+Functions
+
+
+
+
+withNewOwner
+
+abstract fun withNewOwner ( newOwner : PublicKey ) : <ERROR CLASS> < CommandData , OwnableState >
Copies the underlying data structure, replacing the owner field with this new value and leaving the rest alone
+
+
+
+
+Extension Functions
+
+
+
+
+hash
+
+fun ContractState . hash ( ) : SecureHash
Returns the SHA-256 hash of the serialised contents of this state (not cached)
+
+
+
+
+Inheritors
+
+
+
+
+FungibleAsset
+
+interface FungibleAsset < T > : OwnableState
Interface for contract states representing assets which are fungible, countable and issued by a
+specific party. States contain assets which are equivalent (such as cash of the same currency),
+so records of their existence can be merged or split as needed where the issuer is the same. For
+instance, dollars issued by the Fed are fungible and countable (in cents), barrels of West Texas
+crude are fungible and countable (oil from two small containers can be poured into one large
+container), shares of the same class in a specific company are fungible and countable, and so on.
+
+
+
+
+SingleOwnerState
+
+data class SingleOwnerState : OwnableState , State
+
+
+
+State
+
+data class State : OwnableState , QueryableState
+
+
+
+State
+
+data class State : OwnableState
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-ownable-state/owner.html b/docs/build/html/api/net.corda.core.contracts/-ownable-state/owner.html
new file mode 100644
index 0000000000..16def35fca
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-ownable-state/owner.html
@@ -0,0 +1,16 @@
+
+
+OwnableState.owner -
+
+
+
+net.corda.core.contracts / OwnableState / owner
+
+owner
+
+abstract val owner : PublicKey
+There must be a MoveCommand signed by this key to claim the amount
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-ownable-state/with-new-owner.html b/docs/build/html/api/net.corda.core.contracts/-ownable-state/with-new-owner.html
new file mode 100644
index 0000000000..5583bc2db8
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-ownable-state/with-new-owner.html
@@ -0,0 +1,16 @@
+
+
+OwnableState.withNewOwner -
+
+
+
+net.corda.core.contracts / OwnableState / withNewOwner
+
+withNewOwner
+
+abstract fun withNewOwner ( newOwner : PublicKey ) : <ERROR CLASS> < CommandData , OwnableState >
+Copies the underlying data structure, replacing the owner field with this new value and leaving the rest alone
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-p-o-u-n-d-s.html b/docs/build/html/api/net.corda.core.contracts/-p-o-u-n-d-s.html
new file mode 100644
index 0000000000..5ff10254c0
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-p-o-u-n-d-s.html
@@ -0,0 +1,15 @@
+
+
+POUNDS -
+
+
+
+net.corda.core.contracts / POUNDS
+
+POUNDS
+
+fun POUNDS ( amount : Int ) : Amount < Currency >
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-party-and-reference/-init-.html b/docs/build/html/api/net.corda.core.contracts/-party-and-reference/-init-.html
new file mode 100644
index 0000000000..686a30516c
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-party-and-reference/-init-.html
@@ -0,0 +1,16 @@
+
+
+PartyAndReference. -
+
+
+
+net.corda.core.contracts / PartyAndReference / <init>
+
+<init>
+PartyAndReference ( party : Party , reference : OpaqueBytes )
+Reference to something being stored or issued by a party e.g. in a vault or (more likely) on their normal
+ledger. The reference is intended to be encrypted so its meaningless to anyone other than the party.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-party-and-reference/index.html b/docs/build/html/api/net.corda.core.contracts/-party-and-reference/index.html
new file mode 100644
index 0000000000..74563cacf2
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-party-and-reference/index.html
@@ -0,0 +1,57 @@
+
+
+PartyAndReference -
+
+
+
+net.corda.core.contracts / PartyAndReference
+
+PartyAndReference
+data class PartyAndReference
+Reference to something being stored or issued by a party e.g. in a vault or (more likely) on their normal
+ledger. The reference is intended to be encrypted so its meaningless to anyone other than the party.
+
+
+Constructors
+
+
+
+
+<init>
+
+PartyAndReference ( party : Party , reference : OpaqueBytes )
Reference to something being stored or issued by a party e.g. in a vault or (more likely) on their normal
+ledger. The reference is intended to be encrypted so its meaningless to anyone other than the party.
+
+
+
+
+Properties
+
+Functions
+
+
+
+
+toString
+
+fun toString ( ) : String
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-party-and-reference/party.html b/docs/build/html/api/net.corda.core.contracts/-party-and-reference/party.html
new file mode 100644
index 0000000000..840b1b9c20
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-party-and-reference/party.html
@@ -0,0 +1,15 @@
+
+
+PartyAndReference.party -
+
+
+
+net.corda.core.contracts / PartyAndReference / party
+
+party
+
+val party : Party
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-party-and-reference/reference.html b/docs/build/html/api/net.corda.core.contracts/-party-and-reference/reference.html
new file mode 100644
index 0000000000..84318789fd
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-party-and-reference/reference.html
@@ -0,0 +1,15 @@
+
+
+PartyAndReference.reference -
+
+
+
+net.corda.core.contracts / PartyAndReference / reference
+
+reference
+
+val reference : OpaqueBytes
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-party-and-reference/to-string.html b/docs/build/html/api/net.corda.core.contracts/-party-and-reference/to-string.html
new file mode 100644
index 0000000000..8bdb922eec
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-party-and-reference/to-string.html
@@ -0,0 +1,15 @@
+
+
+PartyAndReference.toString -
+
+
+
+net.corda.core.contracts / PartyAndReference / toString
+
+toString
+
+fun toString ( ) : String
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-payment-rule/-in-advance.html b/docs/build/html/api/net.corda.core.contracts/-payment-rule/-in-advance.html
new file mode 100644
index 0000000000..b074cdea85
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-payment-rule/-in-advance.html
@@ -0,0 +1,14 @@
+
+
+PaymentRule.InAdvance -
+
+
+
+net.corda.core.contracts / PaymentRule / InAdvance
+
+InAdvance
+InAdvance
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-payment-rule/-in-arrears.html b/docs/build/html/api/net.corda.core.contracts/-payment-rule/-in-arrears.html
new file mode 100644
index 0000000000..8902bbe2c7
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-payment-rule/-in-arrears.html
@@ -0,0 +1,14 @@
+
+
+PaymentRule.InArrears -
+
+
+
+net.corda.core.contracts / PaymentRule / InArrears
+
+InArrears
+InArrears
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-payment-rule/index.html b/docs/build/html/api/net.corda.core.contracts/-payment-rule/index.html
new file mode 100644
index 0000000000..a18cf9e739
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-payment-rule/index.html
@@ -0,0 +1,32 @@
+
+
+PaymentRule -
+
+
+
+net.corda.core.contracts / PaymentRule
+
+PaymentRule
+enum class PaymentRule
+Whether the payment should be made before the due date, or after it.
+
+
+Enum Values
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-r.html b/docs/build/html/api/net.corda.core.contracts/-r.html
new file mode 100644
index 0000000000..9c3972cc11
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-r.html
@@ -0,0 +1,15 @@
+
+
+R -
+
+
+
+net.corda.core.contracts / R
+
+R
+
+val R : Requirements
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-requirements/-init-.html b/docs/build/html/api/net.corda.core.contracts/-requirements/-init-.html
new file mode 100644
index 0000000000..a825cdd918
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-requirements/-init-.html
@@ -0,0 +1,14 @@
+
+
+Requirements. -
+
+
+
+net.corda.core.contracts / Requirements / <init>
+
+<init>
+Requirements ( )
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-requirements/by.html b/docs/build/html/api/net.corda.core.contracts/-requirements/by.html
new file mode 100644
index 0000000000..4a3c5b3f07
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-requirements/by.html
@@ -0,0 +1,15 @@
+
+
+Requirements.by -
+
+
+
+net.corda.core.contracts / Requirements / by
+
+by
+
+infix fun String . by ( expr : Boolean ) : Unit
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-requirements/index.html b/docs/build/html/api/net.corda.core.contracts/-requirements/index.html
new file mode 100644
index 0000000000..5fe2179d24
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-requirements/index.html
@@ -0,0 +1,36 @@
+
+
+Requirements -
+
+
+
+net.corda.core.contracts / Requirements
+
+Requirements
+class Requirements
+
+
+Constructors
+
+
+
+
+<init>
+
+Requirements ( )
+
+
+
+Functions
+
+
+
+
+by
+
+infix fun String . by ( expr : Boolean ) : Unit
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-s-w-i-s-s_-f-r-a-n-c-s.html b/docs/build/html/api/net.corda.core.contracts/-s-w-i-s-s_-f-r-a-n-c-s.html
new file mode 100644
index 0000000000..8e7e6a14d0
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-s-w-i-s-s_-f-r-a-n-c-s.html
@@ -0,0 +1,15 @@
+
+
+SWISS_FRANCS -
+
+
+
+net.corda.core.contracts / SWISS_FRANCS
+
+SWISS_FRANCS
+
+fun SWISS_FRANCS ( amount : Int ) : Amount < Currency >
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-schedulable-state/index.html b/docs/build/html/api/net.corda.core.contracts/-schedulable-state/index.html
new file mode 100644
index 0000000000..93d248c2f9
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-schedulable-state/index.html
@@ -0,0 +1,66 @@
+
+
+SchedulableState -
+
+
+
+net.corda.core.contracts / SchedulableState
+
+SchedulableState
+interface SchedulableState : ContractState
+
+
+Inherited Properties
+
+
+
+
+contract
+
+abstract val contract : Contract
An instance of the contract class that will verify this state.
+
+
+
+
+encumbrance
+
+open val encumbrance : Int ?
All contract states may be encumbered by up to one other state.
+
+
+
+
+participants
+
+abstract val participants : List < PublicKey >
A participant is any party that is able to consume this state in a valid transaction.
+
+
+
+
+Functions
+
+
+
+
+nextScheduledActivity
+
+abstract fun nextScheduledActivity ( thisStateRef : StateRef , protocolLogicRefFactory : ProtocolLogicRefFactory ) : ScheduledActivity ?
Indicate whether there is some activity to be performed at some future point in time with respect to this
+ContractState , what that activity is and at what point in time it should be initiated.
+This can be used to implement deadlines for payment or processing of financial instruments according to a schedule.
+
+
+
+
+Extension Functions
+
+
+
+
+hash
+
+fun ContractState . hash ( ) : SecureHash
Returns the SHA-256 hash of the serialised contents of this state (not cached)
+
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-schedulable-state/next-scheduled-activity.html b/docs/build/html/api/net.corda.core.contracts/-schedulable-state/next-scheduled-activity.html
new file mode 100644
index 0000000000..e1f79b4bd3
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-schedulable-state/next-scheduled-activity.html
@@ -0,0 +1,23 @@
+
+
+SchedulableState.nextScheduledActivity -
+
+
+
+net.corda.core.contracts / SchedulableState / nextScheduledActivity
+
+nextScheduledActivity
+
+abstract fun nextScheduledActivity ( thisStateRef : StateRef , protocolLogicRefFactory : ProtocolLogicRefFactory ) : ScheduledActivity ?
+Indicate whether there is some activity to be performed at some future point in time with respect to this
+ContractState , what that activity is and at what point in time it should be initiated.
+This can be used to implement deadlines for payment or processing of financial instruments according to a schedule.
+The state has no reference to its own StateRef, so supply that for use as input to any ProtocolLogic constructed.
+
+
+Return
+null if there is no activity to schedule.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-scheduled-activity/-init-.html b/docs/build/html/api/net.corda.core.contracts/-scheduled-activity/-init-.html
new file mode 100644
index 0000000000..72e10669da
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-scheduled-activity/-init-.html
@@ -0,0 +1,23 @@
+
+
+ScheduledActivity. -
+
+
+
+net.corda.core.contracts / ScheduledActivity / <init>
+
+<init>
+ScheduledActivity ( logicRef : ProtocolLogicRef , scheduledAt : Instant )
+This class represents the lifecycle activity that a contract state of type LinearState would like to perform at a given point in time.
+e.g. run a fixing protocol.
+Note the use of ProtocolLogicRef to represent a safe way to transport a ProtocolLogic out of the contract sandbox.
+Currently we support only protocol based activities as we expect there to be a transaction generated off the back of
+the activity, otherwise we have to start tracking secondary state on the platform of which scheduled activities
+for a particular ContractState have been processed/fired etc. If the activity is not "on ledger" then the
+scheduled activity shouldnt be either.
+
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-scheduled-activity/index.html b/docs/build/html/api/net.corda.core.contracts/-scheduled-activity/index.html
new file mode 100644
index 0000000000..9b952d2f4c
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-scheduled-activity/index.html
@@ -0,0 +1,53 @@
+
+
+ScheduledActivity -
+
+
+
+net.corda.core.contracts / ScheduledActivity
+
+ScheduledActivity
+data class ScheduledActivity : Scheduled
+This class represents the lifecycle activity that a contract state of type LinearState would like to perform at a given point in time.
+e.g. run a fixing protocol.
+Note the use of ProtocolLogicRef to represent a safe way to transport a ProtocolLogic out of the contract sandbox.
+Currently we support only protocol based activities as we expect there to be a transaction generated off the back of
+the activity, otherwise we have to start tracking secondary state on the platform of which scheduled activities
+for a particular ContractState have been processed/fired etc. If the activity is not "on ledger" then the
+scheduled activity shouldnt be either.
+
+
+
+
+Constructors
+
+
+
+
+<init>
+
+ScheduledActivity ( logicRef : ProtocolLogicRef , scheduledAt : Instant )
This class represents the lifecycle activity that a contract state of type LinearState would like to perform at a given point in time.
+e.g. run a fixing protocol.
+
+
+
+
+Properties
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-scheduled-activity/logic-ref.html b/docs/build/html/api/net.corda.core.contracts/-scheduled-activity/logic-ref.html
new file mode 100644
index 0000000000..4573f5e2e5
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-scheduled-activity/logic-ref.html
@@ -0,0 +1,15 @@
+
+
+ScheduledActivity.logicRef -
+
+
+
+net.corda.core.contracts / ScheduledActivity / logicRef
+
+logicRef
+
+val logicRef : ProtocolLogicRef
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-scheduled-activity/scheduled-at.html b/docs/build/html/api/net.corda.core.contracts/-scheduled-activity/scheduled-at.html
new file mode 100644
index 0000000000..f285177a3b
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-scheduled-activity/scheduled-at.html
@@ -0,0 +1,16 @@
+
+
+ScheduledActivity.scheduledAt -
+
+
+
+net.corda.core.contracts / ScheduledActivity / scheduledAt
+
+scheduledAt
+
+val scheduledAt : Instant
+Overrides Scheduled.scheduledAt
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-scheduled-state-ref/-init-.html b/docs/build/html/api/net.corda.core.contracts/-scheduled-state-ref/-init-.html
new file mode 100644
index 0000000000..998dd02421
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-scheduled-state-ref/-init-.html
@@ -0,0 +1,20 @@
+
+
+ScheduledStateRef. -
+
+
+
+net.corda.core.contracts / ScheduledStateRef / <init>
+
+<init>
+ScheduledStateRef ( ref : StateRef , scheduledAt : Instant )
+Represents a contract state (unconsumed output) of type LinearState and a point in time that a lifecycle event is expected to take place
+for that contract state.
+This is effectively the input to a scheduler, which wakes up at that point in time and asks the contract state what
+lifecycle processing needs to take place. e.g. a fixing or a late payment etc.
+
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-scheduled-state-ref/index.html b/docs/build/html/api/net.corda.core.contracts/-scheduled-state-ref/index.html
new file mode 100644
index 0000000000..df2cb968b1
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-scheduled-state-ref/index.html
@@ -0,0 +1,50 @@
+
+
+ScheduledStateRef -
+
+
+
+net.corda.core.contracts / ScheduledStateRef
+
+ScheduledStateRef
+data class ScheduledStateRef : Scheduled
+Represents a contract state (unconsumed output) of type LinearState and a point in time that a lifecycle event is expected to take place
+for that contract state.
+This is effectively the input to a scheduler, which wakes up at that point in time and asks the contract state what
+lifecycle processing needs to take place. e.g. a fixing or a late payment etc.
+
+
+
+
+Constructors
+
+
+
+
+<init>
+
+ScheduledStateRef ( ref : StateRef , scheduledAt : Instant )
Represents a contract state (unconsumed output) of type LinearState and a point in time that a lifecycle event is expected to take place
+for that contract state.
+
+
+
+
+Properties
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-scheduled-state-ref/ref.html b/docs/build/html/api/net.corda.core.contracts/-scheduled-state-ref/ref.html
new file mode 100644
index 0000000000..1583bc0f19
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-scheduled-state-ref/ref.html
@@ -0,0 +1,15 @@
+
+
+ScheduledStateRef.ref -
+
+
+
+net.corda.core.contracts / ScheduledStateRef / ref
+
+ref
+
+val ref : StateRef
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-scheduled-state-ref/scheduled-at.html b/docs/build/html/api/net.corda.core.contracts/-scheduled-state-ref/scheduled-at.html
new file mode 100644
index 0000000000..489775f9d5
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-scheduled-state-ref/scheduled-at.html
@@ -0,0 +1,16 @@
+
+
+ScheduledStateRef.scheduledAt -
+
+
+
+net.corda.core.contracts / ScheduledStateRef / scheduledAt
+
+scheduledAt
+
+val scheduledAt : Instant
+Overrides Scheduled.scheduledAt
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-scheduled/index.html b/docs/build/html/api/net.corda.core.contracts/-scheduled/index.html
new file mode 100644
index 0000000000..078899cd19
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-scheduled/index.html
@@ -0,0 +1,47 @@
+
+
+Scheduled -
+
+
+
+net.corda.core.contracts / Scheduled
+
+Scheduled
+interface Scheduled
+Something which is scheduled to happen at a point in time
+
+
+Properties
+
+Inheritors
+
+
+
+
+ScheduledActivity
+
+data class ScheduledActivity : Scheduled
This class represents the lifecycle activity that a contract state of type LinearState would like to perform at a given point in time.
+e.g. run a fixing protocol.
+
+
+
+
+ScheduledStateRef
+
+data class ScheduledStateRef : Scheduled
Represents a contract state (unconsumed output) of type LinearState and a point in time that a lifecycle event is expected to take place
+for that contract state.
+
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-scheduled/scheduled-at.html b/docs/build/html/api/net.corda.core.contracts/-scheduled/scheduled-at.html
new file mode 100644
index 0000000000..055750fa2b
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-scheduled/scheduled-at.html
@@ -0,0 +1,15 @@
+
+
+Scheduled.scheduledAt -
+
+
+
+net.corda.core.contracts / Scheduled / scheduledAt
+
+scheduledAt
+
+abstract val scheduledAt : Instant
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-state-and-ref/-init-.html b/docs/build/html/api/net.corda.core.contracts/-state-and-ref/-init-.html
new file mode 100644
index 0000000000..daecb8a6a1
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-state-and-ref/-init-.html
@@ -0,0 +1,15 @@
+
+
+StateAndRef. -
+
+
+
+net.corda.core.contracts / StateAndRef / <init>
+
+<init>
+StateAndRef ( state : TransactionState < T > , ref : StateRef )
+A StateAndRef is simply a (state, ref) pair. For instance, a vault (which holds available assets) contains these.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-state-and-ref/index.html b/docs/build/html/api/net.corda.core.contracts/-state-and-ref/index.html
new file mode 100644
index 0000000000..b27b8fb4eb
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-state-and-ref/index.html
@@ -0,0 +1,44 @@
+
+
+StateAndRef -
+
+
+
+net.corda.core.contracts / StateAndRef
+
+StateAndRef
+data class StateAndRef < out T : ContractState >
+A StateAndRef is simply a (state, ref) pair. For instance, a vault (which holds available assets) contains these.
+
+
+Constructors
+
+
+
+
+<init>
+
+StateAndRef ( state : TransactionState < T > , ref : StateRef )
A StateAndRef is simply a (state, ref) pair. For instance, a vault (which holds available assets) contains these.
+
+
+
+
+Properties
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-state-and-ref/ref.html b/docs/build/html/api/net.corda.core.contracts/-state-and-ref/ref.html
new file mode 100644
index 0000000000..adaebdb6cc
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-state-and-ref/ref.html
@@ -0,0 +1,15 @@
+
+
+StateAndRef.ref -
+
+
+
+net.corda.core.contracts / StateAndRef / ref
+
+ref
+
+val ref : StateRef
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-state-and-ref/state.html b/docs/build/html/api/net.corda.core.contracts/-state-and-ref/state.html
new file mode 100644
index 0000000000..b9274ae052
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-state-and-ref/state.html
@@ -0,0 +1,15 @@
+
+
+StateAndRef.state -
+
+
+
+net.corda.core.contracts / StateAndRef / state
+
+state
+
+val state : TransactionState < T >
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-state-ref/--index--.html b/docs/build/html/api/net.corda.core.contracts/-state-ref/--index--.html
new file mode 100644
index 0000000000..796bb1b5d2
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-state-ref/--index--.html
@@ -0,0 +1,15 @@
+
+
+StateRef.index -
+
+
+
+net.corda.core.contracts / StateRef / index
+
+index
+
+val index : Int
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-state-ref/-init-.html b/docs/build/html/api/net.corda.core.contracts/-state-ref/-init-.html
new file mode 100644
index 0000000000..51d8283c2e
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-state-ref/-init-.html
@@ -0,0 +1,16 @@
+
+
+StateRef. -
+
+
+
+net.corda.core.contracts / StateRef / <init>
+
+<init>
+StateRef ( txhash : SecureHash , index : Int )
+A stateref is a pointer (reference) to a state, this is an equivalent of an "outpoint" in Bitcoin. It records which
+transaction defined the state and where in that transaction it was.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-state-ref/index.html b/docs/build/html/api/net.corda.core.contracts/-state-ref/index.html
new file mode 100644
index 0000000000..4e10a77e82
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-state-ref/index.html
@@ -0,0 +1,57 @@
+
+
+StateRef -
+
+
+
+net.corda.core.contracts / StateRef
+
+StateRef
+data class StateRef
+A stateref is a pointer (reference) to a state, this is an equivalent of an "outpoint" in Bitcoin. It records which
+transaction defined the state and where in that transaction it was.
+
+
+Constructors
+
+
+
+
+<init>
+
+StateRef ( txhash : SecureHash , index : Int )
A stateref is a pointer (reference) to a state, this is an equivalent of an "outpoint" in Bitcoin. It records which
+transaction defined the state and where in that transaction it was.
+
+
+
+
+Properties
+
+Functions
+
+
+
+
+toString
+
+fun toString ( ) : String
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-state-ref/to-string.html b/docs/build/html/api/net.corda.core.contracts/-state-ref/to-string.html
new file mode 100644
index 0000000000..1b341e058c
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-state-ref/to-string.html
@@ -0,0 +1,15 @@
+
+
+StateRef.toString -
+
+
+
+net.corda.core.contracts / StateRef / toString
+
+toString
+
+fun toString ( ) : String
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-state-ref/txhash.html b/docs/build/html/api/net.corda.core.contracts/-state-ref/txhash.html
new file mode 100644
index 0000000000..dd1937d003
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-state-ref/txhash.html
@@ -0,0 +1,15 @@
+
+
+StateRef.txhash -
+
+
+
+net.corda.core.contracts / StateRef / txhash
+
+txhash
+
+val txhash : SecureHash
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-tenor/-init-.html b/docs/build/html/api/net.corda.core.contracts/-tenor/-init-.html
new file mode 100644
index 0000000000..3fdc18904f
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-tenor/-init-.html
@@ -0,0 +1,15 @@
+
+
+Tenor. -
+
+
+
+net.corda.core.contracts / Tenor / <init>
+
+<init>
+Tenor ( name : String )
+Placeholder class for the Tenor datatype - which is a standardised duration of time until maturity
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-tenor/-time-unit/-day.html b/docs/build/html/api/net.corda.core.contracts/-tenor/-time-unit/-day.html
new file mode 100644
index 0000000000..a74aa8bbe2
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-tenor/-time-unit/-day.html
@@ -0,0 +1,25 @@
+
+
+Tenor.TimeUnit.Day -
+
+
+
+net.corda.core.contracts / Tenor / TimeUnit / Day
+
+Day
+Day
+
+
+Inherited Properties
+
+
+
+
+code
+
+val code : String
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-tenor/-time-unit/-month.html b/docs/build/html/api/net.corda.core.contracts/-tenor/-time-unit/-month.html
new file mode 100644
index 0000000000..6ca71d7b0f
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-tenor/-time-unit/-month.html
@@ -0,0 +1,25 @@
+
+
+Tenor.TimeUnit.Month -
+
+
+
+net.corda.core.contracts / Tenor / TimeUnit / Month
+
+Month
+Month
+
+
+Inherited Properties
+
+
+
+
+code
+
+val code : String
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-tenor/-time-unit/-week.html b/docs/build/html/api/net.corda.core.contracts/-tenor/-time-unit/-week.html
new file mode 100644
index 0000000000..a115b90964
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-tenor/-time-unit/-week.html
@@ -0,0 +1,25 @@
+
+
+Tenor.TimeUnit.Week -
+
+
+
+net.corda.core.contracts / Tenor / TimeUnit / Week
+
+Week
+Week
+
+
+Inherited Properties
+
+
+
+
+code
+
+val code : String
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-tenor/-time-unit/-year.html b/docs/build/html/api/net.corda.core.contracts/-tenor/-time-unit/-year.html
new file mode 100644
index 0000000000..0c1a073f34
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-tenor/-time-unit/-year.html
@@ -0,0 +1,25 @@
+
+
+Tenor.TimeUnit.Year -
+
+
+
+net.corda.core.contracts / Tenor / TimeUnit / Year
+
+Year
+Year
+
+
+Inherited Properties
+
+
+
+
+code
+
+val code : String
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-tenor/-time-unit/code.html b/docs/build/html/api/net.corda.core.contracts/-tenor/-time-unit/code.html
new file mode 100644
index 0000000000..e005179c7e
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-tenor/-time-unit/code.html
@@ -0,0 +1,15 @@
+
+
+Tenor.TimeUnit.code -
+
+
+
+net.corda.core.contracts / Tenor / TimeUnit / code
+
+code
+
+val code : String
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-tenor/-time-unit/index.html b/docs/build/html/api/net.corda.core.contracts/-tenor/-time-unit/index.html
new file mode 100644
index 0000000000..0b425d78fd
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-tenor/-time-unit/index.html
@@ -0,0 +1,54 @@
+
+
+Tenor.TimeUnit -
+
+
+
+net.corda.core.contracts / Tenor / TimeUnit
+
+TimeUnit
+enum class TimeUnit
+
+
+Enum Values
+
+Properties
+
+
+
+
+code
+
+val code : String
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-tenor/days-to-maturity.html b/docs/build/html/api/net.corda.core.contracts/-tenor/days-to-maturity.html
new file mode 100644
index 0000000000..4fef1a0602
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-tenor/days-to-maturity.html
@@ -0,0 +1,15 @@
+
+
+Tenor.daysToMaturity -
+
+
+
+net.corda.core.contracts / Tenor / daysToMaturity
+
+daysToMaturity
+
+fun daysToMaturity ( startDate : LocalDate , calendar : BusinessCalendar ) : Int
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-tenor/index.html b/docs/build/html/api/net.corda.core.contracts/-tenor/index.html
new file mode 100644
index 0000000000..cf22f86311
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-tenor/index.html
@@ -0,0 +1,66 @@
+
+
+Tenor -
+
+
+
+net.corda.core.contracts / Tenor
+
+Tenor
+data class Tenor
+Placeholder class for the Tenor datatype - which is a standardised duration of time until maturity
+
+
+Types
+
+
+
+
+TimeUnit
+
+enum class TimeUnit
+
+
+
+Constructors
+
+
+
+
+<init>
+
+Tenor ( name : String )
Placeholder class for the Tenor datatype - which is a standardised duration of time until maturity
+
+
+
+
+Properties
+
+
+
+
+name
+
+val name : String
+
+
+
+Functions
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-tenor/name.html b/docs/build/html/api/net.corda.core.contracts/-tenor/name.html
new file mode 100644
index 0000000000..45752bc40e
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-tenor/name.html
@@ -0,0 +1,15 @@
+
+
+Tenor.name -
+
+
+
+net.corda.core.contracts / Tenor / name
+
+name
+
+val name : String
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-tenor/to-string.html b/docs/build/html/api/net.corda.core.contracts/-tenor/to-string.html
new file mode 100644
index 0000000000..c9dc83485f
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-tenor/to-string.html
@@ -0,0 +1,15 @@
+
+
+Tenor.toString -
+
+
+
+net.corda.core.contracts / Tenor / toString
+
+toString
+
+fun toString ( ) : String
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-timestamp/-init-.html b/docs/build/html/api/net.corda.core.contracts/-timestamp/-init-.html
new file mode 100644
index 0000000000..ed55e889e2
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-timestamp/-init-.html
@@ -0,0 +1,19 @@
+
+
+Timestamp. -
+
+
+
+net.corda.core.contracts / Timestamp / <init>
+
+<init>
+Timestamp ( time : Instant , tolerance : Duration )
+
+
+Timestamp ( after : Instant ? , before : Instant ? )
+If present in a transaction, contains a time that was verified by the uniqueness service. The true time must be
+between (after, before).
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-timestamp/after.html b/docs/build/html/api/net.corda.core.contracts/-timestamp/after.html
new file mode 100644
index 0000000000..5601ed3d83
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-timestamp/after.html
@@ -0,0 +1,15 @@
+
+
+Timestamp.after -
+
+
+
+net.corda.core.contracts / Timestamp / after
+
+after
+
+val after : Instant ?
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-timestamp/before.html b/docs/build/html/api/net.corda.core.contracts/-timestamp/before.html
new file mode 100644
index 0000000000..4f851bc88d
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-timestamp/before.html
@@ -0,0 +1,15 @@
+
+
+Timestamp.before -
+
+
+
+net.corda.core.contracts / Timestamp / before
+
+before
+
+val before : Instant ?
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-timestamp/index.html b/docs/build/html/api/net.corda.core.contracts/-timestamp/index.html
new file mode 100644
index 0000000000..97235d6130
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-timestamp/index.html
@@ -0,0 +1,52 @@
+
+
+Timestamp -
+
+
+
+net.corda.core.contracts / Timestamp
+
+Timestamp
+data class Timestamp
+If present in a transaction, contains a time that was verified by the uniqueness service. The true time must be
+between (after, before).
+
+
+Constructors
+
+
+
+
+<init>
+
+Timestamp ( time : Instant , tolerance : Duration )
Timestamp ( after : Instant ? , before : Instant ? )
If present in a transaction, contains a time that was verified by the uniqueness service. The true time must be
+between (after, before).
+
+
+
+
+Properties
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-timestamp/midpoint.html b/docs/build/html/api/net.corda.core.contracts/-timestamp/midpoint.html
new file mode 100644
index 0000000000..de7885a051
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-timestamp/midpoint.html
@@ -0,0 +1,15 @@
+
+
+Timestamp.midpoint -
+
+
+
+net.corda.core.contracts / Timestamp / midpoint
+
+midpoint
+
+val midpoint : Instant
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-transaction-conflict-exception/-init-.html b/docs/build/html/api/net.corda.core.contracts/-transaction-conflict-exception/-init-.html
new file mode 100644
index 0000000000..6d034e2043
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-transaction-conflict-exception/-init-.html
@@ -0,0 +1,14 @@
+
+
+TransactionConflictException. -
+
+
+
+net.corda.core.contracts / TransactionConflictException / <init>
+
+<init>
+TransactionConflictException ( conflictRef : StateRef , tx1 : LedgerTransaction , tx2 : LedgerTransaction )
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-transaction-conflict-exception/conflict-ref.html b/docs/build/html/api/net.corda.core.contracts/-transaction-conflict-exception/conflict-ref.html
new file mode 100644
index 0000000000..901b0b7de7
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-transaction-conflict-exception/conflict-ref.html
@@ -0,0 +1,15 @@
+
+
+TransactionConflictException.conflictRef -
+
+
+
+net.corda.core.contracts / TransactionConflictException / conflictRef
+
+conflictRef
+
+val conflictRef : StateRef
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-transaction-conflict-exception/index.html b/docs/build/html/api/net.corda.core.contracts/-transaction-conflict-exception/index.html
new file mode 100644
index 0000000000..921fd4beb9
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-transaction-conflict-exception/index.html
@@ -0,0 +1,59 @@
+
+
+TransactionConflictException -
+
+
+
+net.corda.core.contracts / TransactionConflictException
+
+TransactionConflictException
+class TransactionConflictException : Exception
+
+
+Constructors
+
+Properties
+
+Extension Properties
+
+
+
+
+rootCause
+
+val Throwable . rootCause : Throwable
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-transaction-conflict-exception/tx1.html b/docs/build/html/api/net.corda.core.contracts/-transaction-conflict-exception/tx1.html
new file mode 100644
index 0000000000..a5604d7276
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-transaction-conflict-exception/tx1.html
@@ -0,0 +1,15 @@
+
+
+TransactionConflictException.tx1 -
+
+
+
+net.corda.core.contracts / TransactionConflictException / tx1
+
+tx1
+
+val tx1 : LedgerTransaction
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-transaction-conflict-exception/tx2.html b/docs/build/html/api/net.corda.core.contracts/-transaction-conflict-exception/tx2.html
new file mode 100644
index 0000000000..8016ec96a7
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-transaction-conflict-exception/tx2.html
@@ -0,0 +1,15 @@
+
+
+TransactionConflictException.tx2 -
+
+
+
+net.corda.core.contracts / TransactionConflictException / tx2
+
+tx2
+
+val tx2 : LedgerTransaction
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-transaction-for-contract/-in-out-group/-init-.html b/docs/build/html/api/net.corda.core.contracts/-transaction-for-contract/-in-out-group/-init-.html
new file mode 100644
index 0000000000..e01f74cf8d
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-transaction-for-contract/-in-out-group/-init-.html
@@ -0,0 +1,19 @@
+
+
+TransactionForContract.InOutGroup. -
+
+
+
+net.corda.core.contracts / TransactionForContract / InOutGroup / <init>
+
+<init>
+InOutGroup ( inputs : List < T > , outputs : List < T > , groupingKey : K )
+A set of related inputs and outputs that are connected by some common attributes. An InOutGroup is calculated
+using groupStates and is useful for handling cases where a transaction may contain similar but unrelated
+state evolutions, for example, a transaction that moves cash in two different currencies. The numbers must add
+up on both sides of the transaction, but the values must be summed independently per currency. Grouping can
+be used to simplify this logic.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-transaction-for-contract/-in-out-group/grouping-key.html b/docs/build/html/api/net.corda.core.contracts/-transaction-for-contract/-in-out-group/grouping-key.html
new file mode 100644
index 0000000000..2ab7943782
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-transaction-for-contract/-in-out-group/grouping-key.html
@@ -0,0 +1,15 @@
+
+
+TransactionForContract.InOutGroup.groupingKey -
+
+
+
+net.corda.core.contracts / TransactionForContract / InOutGroup / groupingKey
+
+groupingKey
+
+val groupingKey : K
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-transaction-for-contract/-in-out-group/index.html b/docs/build/html/api/net.corda.core.contracts/-transaction-for-contract/-in-out-group/index.html
new file mode 100644
index 0000000000..f15c0259e0
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-transaction-for-contract/-in-out-group/index.html
@@ -0,0 +1,58 @@
+
+
+TransactionForContract.InOutGroup -
+
+
+
+net.corda.core.contracts / TransactionForContract / InOutGroup
+
+InOutGroup
+data class InOutGroup < out T : ContractState , out K : Any >
+A set of related inputs and outputs that are connected by some common attributes. An InOutGroup is calculated
+using groupStates and is useful for handling cases where a transaction may contain similar but unrelated
+state evolutions, for example, a transaction that moves cash in two different currencies. The numbers must add
+up on both sides of the transaction, but the values must be summed independently per currency. Grouping can
+be used to simplify this logic.
+
+
+Constructors
+
+
+
+
+<init>
+
+InOutGroup ( inputs : List < T > , outputs : List < T > , groupingKey : K )
A set of related inputs and outputs that are connected by some common attributes. An InOutGroup is calculated
+using groupStates and is useful for handling cases where a transaction may contain similar but unrelated
+state evolutions, for example, a transaction that moves cash in two different currencies. The numbers must add
+up on both sides of the transaction, but the values must be summed independently per currency. Grouping can
+be used to simplify this logic.
+
+
+
+
+Properties
+
+
+
+
+groupingKey
+
+val groupingKey : K
+
+
+
+inputs
+
+val inputs : List < T >
+
+
+
+outputs
+
+val outputs : List < T >
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-transaction-for-contract/-in-out-group/inputs.html b/docs/build/html/api/net.corda.core.contracts/-transaction-for-contract/-in-out-group/inputs.html
new file mode 100644
index 0000000000..e9b1e03fdd
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-transaction-for-contract/-in-out-group/inputs.html
@@ -0,0 +1,15 @@
+
+
+TransactionForContract.InOutGroup.inputs -
+
+
+
+net.corda.core.contracts / TransactionForContract / InOutGroup / inputs
+
+inputs
+
+val inputs : List < T >
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-transaction-for-contract/-in-out-group/outputs.html b/docs/build/html/api/net.corda.core.contracts/-transaction-for-contract/-in-out-group/outputs.html
new file mode 100644
index 0000000000..6fb985adf4
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-transaction-for-contract/-in-out-group/outputs.html
@@ -0,0 +1,15 @@
+
+
+TransactionForContract.InOutGroup.outputs -
+
+
+
+net.corda.core.contracts / TransactionForContract / InOutGroup / outputs
+
+outputs
+
+val outputs : List < T >
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-transaction-for-contract/-init-.html b/docs/build/html/api/net.corda.core.contracts/-transaction-for-contract/-init-.html
new file mode 100644
index 0000000000..f78667e8e3
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-transaction-for-contract/-init-.html
@@ -0,0 +1,16 @@
+
+
+TransactionForContract. -
+
+
+
+net.corda.core.contracts / TransactionForContract / <init>
+
+<init>
+TransactionForContract ( inputs : List < ContractState > , outputs : List < ContractState > , attachments : List < Attachment > , commands : List < AuthenticatedObject < CommandData > > , origHash : SecureHash , inputNotary : Party ? = null, timestamp : Timestamp ? = null)
+A transaction to be passed as input to a contract verification function. Defines helper methods to
+simplify verification logic in contracts.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-transaction-for-contract/attachments.html b/docs/build/html/api/net.corda.core.contracts/-transaction-for-contract/attachments.html
new file mode 100644
index 0000000000..764afe21a7
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-transaction-for-contract/attachments.html
@@ -0,0 +1,15 @@
+
+
+TransactionForContract.attachments -
+
+
+
+net.corda.core.contracts / TransactionForContract / attachments
+
+attachments
+
+val attachments : List < Attachment >
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-transaction-for-contract/commands.html b/docs/build/html/api/net.corda.core.contracts/-transaction-for-contract/commands.html
new file mode 100644
index 0000000000..defec799ba
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-transaction-for-contract/commands.html
@@ -0,0 +1,15 @@
+
+
+TransactionForContract.commands -
+
+
+
+net.corda.core.contracts / TransactionForContract / commands
+
+commands
+
+val commands : List < AuthenticatedObject < CommandData > >
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-transaction-for-contract/equals.html b/docs/build/html/api/net.corda.core.contracts/-transaction-for-contract/equals.html
new file mode 100644
index 0000000000..5c6ee86b39
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-transaction-for-contract/equals.html
@@ -0,0 +1,15 @@
+
+
+TransactionForContract.equals -
+
+
+
+net.corda.core.contracts / TransactionForContract / equals
+
+equals
+
+fun equals ( other : Any ? ) : Boolean
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-transaction-for-contract/group-states-internal.html b/docs/build/html/api/net.corda.core.contracts/-transaction-for-contract/group-states-internal.html
new file mode 100644
index 0000000000..c81cfacb00
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-transaction-for-contract/group-states-internal.html
@@ -0,0 +1,17 @@
+
+
+TransactionForContract.groupStatesInternal -
+
+
+
+net.corda.core.contracts / TransactionForContract / groupStatesInternal
+
+groupStatesInternal
+
+fun < T : ContractState , K : Any > groupStatesInternal ( inGroups : Map < K , List < T > > , outGroups : Map < K , List < T > > ) : List < InOutGroup < T , K > >
+Deprecated: Do not use this directly: exposed as public only due to function inlining
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-transaction-for-contract/group-states.html b/docs/build/html/api/net.corda.core.contracts/-transaction-for-contract/group-states.html
new file mode 100644
index 0000000000..37667f3c43
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-transaction-for-contract/group-states.html
@@ -0,0 +1,33 @@
+
+
+TransactionForContract.groupStates -
+
+
+
+net.corda.core.contracts / TransactionForContract / groupStates
+
+groupStates
+
+fun < T : ContractState , K : Any > groupStates ( ofType : Class < T > , selector : ( T ) -> K ) : List < InOutGroup < T , K > >
+Given a type and a function that returns a grouping key, associates inputs and outputs together so that they
+can be processed as one. The grouping key is any arbitrary object that can act as a map key (so must implement
+equals and hashCode).
+The purpose of this function is to simplify the writing of verification logic for transactions that may contain
+similar but unrelated state evolutions which need to be checked independently. Consider a transaction that
+simultaneously moves both dollars and euros (e.g. is an atomic FX trade). There may be multiple dollar inputs and
+multiple dollar outputs, depending on things like how fragmented the owners vault is and whether various privacy
+techniques are in use. The quantity of dollars on the output side must sum to the same as on the input side, to
+ensure no money is being lost track of. This summation and checking must be repeated independently for each
+currency. To solve this, you would use groupStates with a type of Cash.State and a selector that returns the
+currency field: the resulting list can then be iterated over to perform the per-currency calculation.
+
+
+
+
+
+inline fun < reified T : ContractState , K : Any > groupStates ( selector : ( T ) -> K ) : List < InOutGroup < T , K > >
+See the documentation for the reflection-based version of groupStates
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-transaction-for-contract/hash-code.html b/docs/build/html/api/net.corda.core.contracts/-transaction-for-contract/hash-code.html
new file mode 100644
index 0000000000..f1c55aa71d
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-transaction-for-contract/hash-code.html
@@ -0,0 +1,15 @@
+
+
+TransactionForContract.hashCode -
+
+
+
+net.corda.core.contracts / TransactionForContract / hashCode
+
+hashCode
+
+fun hashCode ( ) : Int
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-transaction-for-contract/index.html b/docs/build/html/api/net.corda.core.contracts/-transaction-for-contract/index.html
new file mode 100644
index 0000000000..96b35c9ad8
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-transaction-for-contract/index.html
@@ -0,0 +1,125 @@
+
+
+TransactionForContract -
+
+
+
+net.corda.core.contracts / TransactionForContract
+
+TransactionForContract
+data class TransactionForContract
+A transaction to be passed as input to a contract verification function. Defines helper methods to
+simplify verification logic in contracts.
+
+
+Types
+
+
+
+
+InOutGroup
+
+data class InOutGroup < out T : ContractState , out K : Any >
A set of related inputs and outputs that are connected by some common attributes. An InOutGroup is calculated
+using groupStates and is useful for handling cases where a transaction may contain similar but unrelated
+state evolutions, for example, a transaction that moves cash in two different currencies. The numbers must add
+up on both sides of the transaction, but the values must be summed independently per currency. Grouping can
+be used to simplify this logic.
+
+
+
+
+Constructors
+
+Properties
+
+Functions
+
+
+
+
+equals
+
+fun equals ( other : Any ? ) : Boolean
+
+
+
+groupStates
+
+fun < T : ContractState , K : Any > groupStates ( ofType : Class < T > , selector : ( T ) -> K ) : List < InOutGroup < T , K > >
Given a type and a function that returns a grouping key, associates inputs and outputs together so that they
+can be processed as one. The grouping key is any arbitrary object that can act as a map key (so must implement
+equals and hashCode).
+fun < T : ContractState , K : Any > groupStates ( selector : ( T ) -> K ) : List < InOutGroup < T , K > >
See the documentation for the reflection-based version of groupStates
+
+
+
+
+groupStatesInternal
+
+fun < T : ContractState , K : Any > groupStatesInternal ( inGroups : Map < K , List < T > > , outGroups : Map < K , List < T > > ) : List < InOutGroup < T , K > >
+
+
+
+hashCode
+
+fun hashCode ( ) : Int
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-transaction-for-contract/input-notary.html b/docs/build/html/api/net.corda.core.contracts/-transaction-for-contract/input-notary.html
new file mode 100644
index 0000000000..056dedcacf
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-transaction-for-contract/input-notary.html
@@ -0,0 +1,15 @@
+
+
+TransactionForContract.inputNotary -
+
+
+
+net.corda.core.contracts / TransactionForContract / inputNotary
+
+inputNotary
+
+val inputNotary : Party ?
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-transaction-for-contract/inputs.html b/docs/build/html/api/net.corda.core.contracts/-transaction-for-contract/inputs.html
new file mode 100644
index 0000000000..17212ffb87
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-transaction-for-contract/inputs.html
@@ -0,0 +1,15 @@
+
+
+TransactionForContract.inputs -
+
+
+
+net.corda.core.contracts / TransactionForContract / inputs
+
+inputs
+
+val inputs : List < ContractState >
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-transaction-for-contract/orig-hash.html b/docs/build/html/api/net.corda.core.contracts/-transaction-for-contract/orig-hash.html
new file mode 100644
index 0000000000..f071c26ccd
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-transaction-for-contract/orig-hash.html
@@ -0,0 +1,15 @@
+
+
+TransactionForContract.origHash -
+
+
+
+net.corda.core.contracts / TransactionForContract / origHash
+
+origHash
+
+val origHash : SecureHash
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-transaction-for-contract/outputs.html b/docs/build/html/api/net.corda.core.contracts/-transaction-for-contract/outputs.html
new file mode 100644
index 0000000000..7a8b15b8f2
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-transaction-for-contract/outputs.html
@@ -0,0 +1,15 @@
+
+
+TransactionForContract.outputs -
+
+
+
+net.corda.core.contracts / TransactionForContract / outputs
+
+outputs
+
+val outputs : List < ContractState >
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-transaction-for-contract/timestamp.html b/docs/build/html/api/net.corda.core.contracts/-transaction-for-contract/timestamp.html
new file mode 100644
index 0000000000..de277de68f
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-transaction-for-contract/timestamp.html
@@ -0,0 +1,15 @@
+
+
+TransactionForContract.timestamp -
+
+
+
+net.corda.core.contracts / TransactionForContract / timestamp
+
+timestamp
+
+val timestamp : Timestamp ?
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-transaction-graph-search/-init-.html b/docs/build/html/api/net.corda.core.contracts/-transaction-graph-search/-init-.html
new file mode 100644
index 0000000000..02e1f3eeed
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-transaction-graph-search/-init-.html
@@ -0,0 +1,26 @@
+
+
+TransactionGraphSearch. -
+
+
+
+net.corda.core.contracts / TransactionGraphSearch / <init>
+
+<init>
+TransactionGraphSearch ( transactions : ReadOnlyTransactionStorage , startPoints : List < WireTransaction > )
+Given a map of transaction id to SignedTransaction , performs a breadth first search of the dependency graph from
+the starting point down in order to find transactions that match the given query criteria.
+Currently, only one kind of query is supported: find any transaction that contains a command of the given type.
+In future, this should support restricting the search by time, and other types of useful query.
+
+
+Parameters
+
+transactions
- map of transaction id to SignedTransaction .
+
+
+startPoints
- transactions to use as starting points for the search.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-transaction-graph-search/-query/-init-.html b/docs/build/html/api/net.corda.core.contracts/-transaction-graph-search/-query/-init-.html
new file mode 100644
index 0000000000..827d1a0492
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-transaction-graph-search/-query/-init-.html
@@ -0,0 +1,14 @@
+
+
+TransactionGraphSearch.Query. -
+
+
+
+net.corda.core.contracts / TransactionGraphSearch / Query / <init>
+
+<init>
+Query ( withCommandOfType : Class < out CommandData > ? = null, followInputsOfType : Class < out ContractState > ? = null)
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-transaction-graph-search/-query/follow-inputs-of-type.html b/docs/build/html/api/net.corda.core.contracts/-transaction-graph-search/-query/follow-inputs-of-type.html
new file mode 100644
index 0000000000..bfb14a0be6
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-transaction-graph-search/-query/follow-inputs-of-type.html
@@ -0,0 +1,15 @@
+
+
+TransactionGraphSearch.Query.followInputsOfType -
+
+
+
+net.corda.core.contracts / TransactionGraphSearch / Query / followInputsOfType
+
+followInputsOfType
+
+val followInputsOfType : Class < out ContractState > ?
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-transaction-graph-search/-query/index.html b/docs/build/html/api/net.corda.core.contracts/-transaction-graph-search/-query/index.html
new file mode 100644
index 0000000000..fc4559e7bd
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-transaction-graph-search/-query/index.html
@@ -0,0 +1,42 @@
+
+
+TransactionGraphSearch.Query -
+
+
+
+net.corda.core.contracts / TransactionGraphSearch / Query
+
+Query
+class Query
+
+
+Constructors
+
+Properties
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-transaction-graph-search/-query/with-command-of-type.html b/docs/build/html/api/net.corda.core.contracts/-transaction-graph-search/-query/with-command-of-type.html
new file mode 100644
index 0000000000..5e86c5142e
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-transaction-graph-search/-query/with-command-of-type.html
@@ -0,0 +1,15 @@
+
+
+TransactionGraphSearch.Query.withCommandOfType -
+
+
+
+net.corda.core.contracts / TransactionGraphSearch / Query / withCommandOfType
+
+withCommandOfType
+
+val withCommandOfType : Class < out CommandData > ?
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-transaction-graph-search/call.html b/docs/build/html/api/net.corda.core.contracts/-transaction-graph-search/call.html
new file mode 100644
index 0000000000..7892f8efa3
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-transaction-graph-search/call.html
@@ -0,0 +1,15 @@
+
+
+TransactionGraphSearch.call -
+
+
+
+net.corda.core.contracts / TransactionGraphSearch / call
+
+call
+
+fun call ( ) : List < WireTransaction >
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-transaction-graph-search/index.html b/docs/build/html/api/net.corda.core.contracts/-transaction-graph-search/index.html
new file mode 100644
index 0000000000..1e4bfde459
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-transaction-graph-search/index.html
@@ -0,0 +1,84 @@
+
+
+TransactionGraphSearch -
+
+
+
+net.corda.core.contracts / TransactionGraphSearch
+
+TransactionGraphSearch
+class TransactionGraphSearch : Callable < List < WireTransaction > >
+Given a map of transaction id to SignedTransaction , performs a breadth first search of the dependency graph from
+the starting point down in order to find transactions that match the given query criteria.
+Currently, only one kind of query is supported: find any transaction that contains a command of the given type.
+In future, this should support restricting the search by time, and other types of useful query.
+
+
+Parameters
+
+transactions
- map of transaction id to SignedTransaction .
+
+
+startPoints
- transactions to use as starting points for the search.
+
+
+Types
+
+
+
+
+Query
+
+class Query
+
+
+
+Constructors
+
+
+
+
+<init>
+
+TransactionGraphSearch ( transactions : ReadOnlyTransactionStorage , startPoints : List < WireTransaction > )
Given a map of transaction id to SignedTransaction , performs a breadth first search of the dependency graph from
+the starting point down in order to find transactions that match the given query criteria.
+
+
+
+
+Properties
+
+Functions
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-transaction-graph-search/query.html b/docs/build/html/api/net.corda.core.contracts/-transaction-graph-search/query.html
new file mode 100644
index 0000000000..50e2ade65a
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-transaction-graph-search/query.html
@@ -0,0 +1,15 @@
+
+
+TransactionGraphSearch.query -
+
+
+
+net.corda.core.contracts / TransactionGraphSearch / query
+
+query
+
+var query : Query
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-transaction-graph-search/start-points.html b/docs/build/html/api/net.corda.core.contracts/-transaction-graph-search/start-points.html
new file mode 100644
index 0000000000..df9700e2dc
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-transaction-graph-search/start-points.html
@@ -0,0 +1,15 @@
+
+
+TransactionGraphSearch.startPoints -
+
+
+
+net.corda.core.contracts / TransactionGraphSearch / startPoints
+
+startPoints
+
+val startPoints : List < WireTransaction >
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-transaction-graph-search/transactions.html b/docs/build/html/api/net.corda.core.contracts/-transaction-graph-search/transactions.html
new file mode 100644
index 0000000000..2eee3c0266
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-transaction-graph-search/transactions.html
@@ -0,0 +1,15 @@
+
+
+TransactionGraphSearch.transactions -
+
+
+
+net.corda.core.contracts / TransactionGraphSearch / transactions
+
+transactions
+
+val transactions : ReadOnlyTransactionStorage
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-transaction-resolution-exception/-init-.html b/docs/build/html/api/net.corda.core.contracts/-transaction-resolution-exception/-init-.html
new file mode 100644
index 0000000000..3b8019c6fa
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-transaction-resolution-exception/-init-.html
@@ -0,0 +1,14 @@
+
+
+TransactionResolutionException. -
+
+
+
+net.corda.core.contracts / TransactionResolutionException / <init>
+
+<init>
+TransactionResolutionException ( hash : SecureHash )
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-transaction-resolution-exception/hash.html b/docs/build/html/api/net.corda.core.contracts/-transaction-resolution-exception/hash.html
new file mode 100644
index 0000000000..83256233d7
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-transaction-resolution-exception/hash.html
@@ -0,0 +1,15 @@
+
+
+TransactionResolutionException.hash -
+
+
+
+net.corda.core.contracts / TransactionResolutionException / hash
+
+hash
+
+val hash : SecureHash
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-transaction-resolution-exception/index.html b/docs/build/html/api/net.corda.core.contracts/-transaction-resolution-exception/index.html
new file mode 100644
index 0000000000..f69ac5379e
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-transaction-resolution-exception/index.html
@@ -0,0 +1,58 @@
+
+
+TransactionResolutionException -
+
+
+
+net.corda.core.contracts / TransactionResolutionException
+
+TransactionResolutionException
+class TransactionResolutionException : Exception
+
+
+Constructors
+
+Properties
+
+Functions
+
+
+
+
+toString
+
+fun toString ( ) : String
+
+
+
+Extension Properties
+
+
+
+
+rootCause
+
+val Throwable . rootCause : Throwable
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-transaction-resolution-exception/to-string.html b/docs/build/html/api/net.corda.core.contracts/-transaction-resolution-exception/to-string.html
new file mode 100644
index 0000000000..7db1c18e72
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-transaction-resolution-exception/to-string.html
@@ -0,0 +1,15 @@
+
+
+TransactionResolutionException.toString -
+
+
+
+net.corda.core.contracts / TransactionResolutionException / toString
+
+toString
+
+fun toString ( ) : String
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-transaction-state/-init-.html b/docs/build/html/api/net.corda.core.contracts/-transaction-state/-init-.html
new file mode 100644
index 0000000000..48acea888a
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-transaction-state/-init-.html
@@ -0,0 +1,16 @@
+
+
+TransactionState. -
+
+
+
+net.corda.core.contracts / TransactionState / <init>
+
+<init>
+TransactionState ( data : T , notary : Party )
+A wrapper for ContractState containing additional platform-level state information.
+This is the definitive state that is stored on the ledger and used in transaction outputs.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-transaction-state/data.html b/docs/build/html/api/net.corda.core.contracts/-transaction-state/data.html
new file mode 100644
index 0000000000..d76b55af4b
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-transaction-state/data.html
@@ -0,0 +1,16 @@
+
+
+TransactionState.data -
+
+
+
+net.corda.core.contracts / TransactionState / data
+
+data
+
+val data : T
+The custom contract state
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-transaction-state/index.html b/docs/build/html/api/net.corda.core.contracts/-transaction-state/index.html
new file mode 100644
index 0000000000..7e68de8f01
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-transaction-state/index.html
@@ -0,0 +1,61 @@
+
+
+TransactionState -
+
+
+
+net.corda.core.contracts / TransactionState
+
+TransactionState
+data class TransactionState < out T : ContractState >
+A wrapper for ContractState containing additional platform-level state information.
+This is the definitive state that is stored on the ledger and used in transaction outputs.
+
+
+Constructors
+
+
+
+
+<init>
+
+TransactionState ( data : T , notary : Party )
A wrapper for ContractState containing additional platform-level state information.
+This is the definitive state that is stored on the ledger and used in transaction outputs.
+
+
+
+
+Properties
+
+
+
+
+data
+
+val data : T
The custom contract state
+
+
+
+
+notary
+
+val notary : Party
Identity of the notary that ensures the state is not used as an input to a transaction more than once
+
+
+
+
+Functions
+
+
+
+
+withNotary
+
+fun withNotary ( newNotary : Party ) : TransactionState < T >
Copies the underlying state, replacing the notary field with the new value.
+To replace the notary, we need an approval (signature) from all participants of the ContractState .
+
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-transaction-state/notary.html b/docs/build/html/api/net.corda.core.contracts/-transaction-state/notary.html
new file mode 100644
index 0000000000..b5c10a851c
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-transaction-state/notary.html
@@ -0,0 +1,16 @@
+
+
+TransactionState.notary -
+
+
+
+net.corda.core.contracts / TransactionState / notary
+
+notary
+
+val notary : Party
+Identity of the notary that ensures the state is not used as an input to a transaction more than once
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-transaction-state/with-notary.html b/docs/build/html/api/net.corda.core.contracts/-transaction-state/with-notary.html
new file mode 100644
index 0000000000..de72db72c3
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-transaction-state/with-notary.html
@@ -0,0 +1,17 @@
+
+
+TransactionState.withNotary -
+
+
+
+net.corda.core.contracts / TransactionState / withNotary
+
+withNotary
+
+fun withNotary ( newNotary : Party ) : TransactionState < T >
+Copies the underlying state, replacing the notary field with the new value.
+To replace the notary, we need an approval (signature) from all participants of the ContractState .
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-transaction-type/-general/-builder/-init-.html b/docs/build/html/api/net.corda.core.contracts/-transaction-type/-general/-builder/-init-.html
new file mode 100644
index 0000000000..60ebc0f0ef
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-transaction-type/-general/-builder/-init-.html
@@ -0,0 +1,15 @@
+
+
+TransactionType.General.Builder. -
+
+
+
+net.corda.core.contracts / TransactionType / General / Builder / <init>
+
+<init>
+Builder ( notary : Party ? )
+Just uses the default TransactionBuilder with no special logic
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-transaction-type/-general/-builder/index.html b/docs/build/html/api/net.corda.core.contracts/-transaction-type/-general/-builder/index.html
new file mode 100644
index 0000000000..5bc09fac31
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-transaction-type/-general/-builder/index.html
@@ -0,0 +1,213 @@
+
+
+TransactionType.General.Builder -
+
+
+
+net.corda.core.contracts / TransactionType / General / Builder
+
+Builder
+class Builder : TransactionBuilder
+Just uses the default TransactionBuilder with no special logic
+
+
+Constructors
+
+Inherited Properties
+
+Inherited Functions
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-transaction-type/-general/-init-.html b/docs/build/html/api/net.corda.core.contracts/-transaction-type/-general/-init-.html
new file mode 100644
index 0000000000..479c72e2d8
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-transaction-type/-general/-init-.html
@@ -0,0 +1,15 @@
+
+
+TransactionType.General. -
+
+
+
+net.corda.core.contracts / TransactionType / General / <init>
+
+<init>
+General ( )
+A general transaction type where transaction validity is determined by custom contract code
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-transaction-type/-general/get-required-signers.html b/docs/build/html/api/net.corda.core.contracts/-transaction-type/-general/get-required-signers.html
new file mode 100644
index 0000000000..944c5e7cda
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-transaction-type/-general/get-required-signers.html
@@ -0,0 +1,18 @@
+
+
+TransactionType.General.getRequiredSigners -
+
+
+
+net.corda.core.contracts / TransactionType / General / getRequiredSigners
+
+getRequiredSigners
+
+fun getRequiredSigners ( tx : LedgerTransaction ) : <ERROR CLASS>
+Overrides TransactionType.getRequiredSigners
+Return the list of public keys that that require signatures for the transaction type.
+Note: the notary key is checked separately for all transactions and need not be included.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-transaction-type/-general/index.html b/docs/build/html/api/net.corda.core.contracts/-transaction-type/-general/index.html
new file mode 100644
index 0000000000..141c6f1b31
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-transaction-type/-general/index.html
@@ -0,0 +1,91 @@
+
+
+TransactionType.General -
+
+
+
+net.corda.core.contracts / TransactionType / General
+
+General
+class General : TransactionType
+A general transaction type where transaction validity is determined by custom contract code
+
+
+Types
+
+Constructors
+
+
+
+
+<init>
+
+General ( )
A general transaction type where transaction validity is determined by custom contract code
+
+
+
+
+Functions
+
+
+
+
+getRequiredSigners
+
+fun getRequiredSigners ( tx : LedgerTransaction ) : <ERROR CLASS>
Return the list of public keys that that require signatures for the transaction type.
+Note: the notary key is checked separately for all transactions and need not be included.
+
+
+
+
+verifyTransaction
+
+fun verifyTransaction ( tx : LedgerTransaction ) : Unit
Check the transaction is contract-valid by running the verify() for each input and output state contract.
+If any contract fails to verify, the whole transaction is considered to be invalid.
+
+
+
+
+Inherited Functions
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-transaction-type/-general/verify-transaction.html b/docs/build/html/api/net.corda.core.contracts/-transaction-type/-general/verify-transaction.html
new file mode 100644
index 0000000000..616449944f
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-transaction-type/-general/verify-transaction.html
@@ -0,0 +1,18 @@
+
+
+TransactionType.General.verifyTransaction -
+
+
+
+net.corda.core.contracts / TransactionType / General / verifyTransaction
+
+verifyTransaction
+
+fun verifyTransaction ( tx : LedgerTransaction ) : Unit
+Overrides TransactionType.verifyTransaction
+Check the transaction is contract-valid by running the verify() for each input and output state contract.
+If any contract fails to verify, the whole transaction is considered to be invalid.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-transaction-type/-notary-change/-builder/-init-.html b/docs/build/html/api/net.corda.core.contracts/-transaction-type/-notary-change/-builder/-init-.html
new file mode 100644
index 0000000000..07fcabd71f
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-transaction-type/-notary-change/-builder/-init-.html
@@ -0,0 +1,16 @@
+
+
+TransactionType.NotaryChange.Builder. -
+
+
+
+net.corda.core.contracts / TransactionType / NotaryChange / Builder / <init>
+
+<init>
+Builder ( notary : Party )
+A transaction builder that automatically sets the transaction type to NotaryChange
+and adds the list of participants to the signers set for every input state.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-transaction-type/-notary-change/-builder/add-input-state.html b/docs/build/html/api/net.corda.core.contracts/-transaction-type/-notary-change/-builder/add-input-state.html
new file mode 100644
index 0000000000..cdb291d614
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-transaction-type/-notary-change/-builder/add-input-state.html
@@ -0,0 +1,16 @@
+
+
+TransactionType.NotaryChange.Builder.addInputState -
+
+
+
+net.corda.core.contracts / TransactionType / NotaryChange / Builder / addInputState
+
+addInputState
+
+fun addInputState ( stateAndRef : StateAndRef < * > ) : Unit
+Overrides TransactionBuilder.addInputState
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-transaction-type/-notary-change/-builder/index.html b/docs/build/html/api/net.corda.core.contracts/-transaction-type/-notary-change/-builder/index.html
new file mode 100644
index 0000000000..7db64979bf
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-transaction-type/-notary-change/-builder/index.html
@@ -0,0 +1,220 @@
+
+
+TransactionType.NotaryChange.Builder -
+
+
+
+net.corda.core.contracts / TransactionType / NotaryChange / Builder
+
+Builder
+class Builder : TransactionBuilder
+A transaction builder that automatically sets the transaction type to NotaryChange
+and adds the list of participants to the signers set for every input state.
+
+
+Constructors
+
+
+
+
+<init>
+
+Builder ( notary : Party )
A transaction builder that automatically sets the transaction type to NotaryChange
+and adds the list of participants to the signers set for every input state.
+
+
+
+
+Inherited Properties
+
+Functions
+
+Inherited Functions
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-transaction-type/-notary-change/-init-.html b/docs/build/html/api/net.corda.core.contracts/-transaction-type/-notary-change/-init-.html
new file mode 100644
index 0000000000..be939aa8c5
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-transaction-type/-notary-change/-init-.html
@@ -0,0 +1,16 @@
+
+
+TransactionType.NotaryChange. -
+
+
+
+net.corda.core.contracts / TransactionType / NotaryChange / <init>
+
+<init>
+NotaryChange ( )
+A special transaction type for reassigning a notary for a state. Validation does not involve running
+any contract code, it just checks that the states are unmodified apart from the notary field.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-transaction-type/-notary-change/get-required-signers.html b/docs/build/html/api/net.corda.core.contracts/-transaction-type/-notary-change/get-required-signers.html
new file mode 100644
index 0000000000..d45a17da5a
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-transaction-type/-notary-change/get-required-signers.html
@@ -0,0 +1,18 @@
+
+
+TransactionType.NotaryChange.getRequiredSigners -
+
+
+
+net.corda.core.contracts / TransactionType / NotaryChange / getRequiredSigners
+
+getRequiredSigners
+
+fun getRequiredSigners ( tx : LedgerTransaction ) : <ERROR CLASS>
+Overrides TransactionType.getRequiredSigners
+Return the list of public keys that that require signatures for the transaction type.
+Note: the notary key is checked separately for all transactions and need not be included.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-transaction-type/-notary-change/index.html b/docs/build/html/api/net.corda.core.contracts/-transaction-type/-notary-change/index.html
new file mode 100644
index 0000000000..9a9330403c
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-transaction-type/-notary-change/index.html
@@ -0,0 +1,94 @@
+
+
+TransactionType.NotaryChange -
+
+
+
+net.corda.core.contracts / TransactionType / NotaryChange
+
+NotaryChange
+class NotaryChange : TransactionType
+A special transaction type for reassigning a notary for a state. Validation does not involve running
+any contract code, it just checks that the states are unmodified apart from the notary field.
+
+
+Types
+
+
+
+
+Builder
+
+class Builder : TransactionBuilder
A transaction builder that automatically sets the transaction type to NotaryChange
+and adds the list of participants to the signers set for every input state.
+
+
+
+
+Constructors
+
+
+
+
+<init>
+
+NotaryChange ( )
A special transaction type for reassigning a notary for a state. Validation does not involve running
+any contract code, it just checks that the states are unmodified apart from the notary field.
+
+
+
+
+Functions
+
+
+
+
+getRequiredSigners
+
+fun getRequiredSigners ( tx : LedgerTransaction ) : <ERROR CLASS>
Return the list of public keys that that require signatures for the transaction type.
+Note: the notary key is checked separately for all transactions and need not be included.
+
+
+
+
+verifyTransaction
+
+fun verifyTransaction ( tx : LedgerTransaction ) : Unit
Check that the difference between inputs and outputs is only the notary field, and that all required signing
+public keys are present.
+
+
+
+
+Inherited Functions
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-transaction-type/-notary-change/verify-transaction.html b/docs/build/html/api/net.corda.core.contracts/-transaction-type/-notary-change/verify-transaction.html
new file mode 100644
index 0000000000..35b7904547
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-transaction-type/-notary-change/verify-transaction.html
@@ -0,0 +1,21 @@
+
+
+TransactionType.NotaryChange.verifyTransaction -
+
+
+
+net.corda.core.contracts / TransactionType / NotaryChange / verifyTransaction
+
+verifyTransaction
+
+fun verifyTransaction ( tx : LedgerTransaction ) : Unit
+Overrides TransactionType.verifyTransaction
+Check that the difference between inputs and outputs is only the notary field, and that all required signing
+public keys are present.
+Exceptions
+
+TransactionVerificationException.InvalidNotaryChange
- if the validity check fails.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-transaction-type/equals.html b/docs/build/html/api/net.corda.core.contracts/-transaction-type/equals.html
new file mode 100644
index 0000000000..6f59261296
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-transaction-type/equals.html
@@ -0,0 +1,15 @@
+
+
+TransactionType.equals -
+
+
+
+net.corda.core.contracts / TransactionType / equals
+
+equals
+
+open fun equals ( other : Any ? ) : Boolean
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-transaction-type/get-required-signers.html b/docs/build/html/api/net.corda.core.contracts/-transaction-type/get-required-signers.html
new file mode 100644
index 0000000000..c90e235706
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-transaction-type/get-required-signers.html
@@ -0,0 +1,17 @@
+
+
+TransactionType.getRequiredSigners -
+
+
+
+net.corda.core.contracts / TransactionType / getRequiredSigners
+
+getRequiredSigners
+
+abstract fun getRequiredSigners ( tx : LedgerTransaction ) : Set < PublicKey >
+Return the list of public keys that that require signatures for the transaction type.
+Note: the notary key is checked separately for all transactions and need not be included.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-transaction-type/hash-code.html b/docs/build/html/api/net.corda.core.contracts/-transaction-type/hash-code.html
new file mode 100644
index 0000000000..644fab1e7c
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-transaction-type/hash-code.html
@@ -0,0 +1,15 @@
+
+
+TransactionType.hashCode -
+
+
+
+net.corda.core.contracts / TransactionType / hashCode
+
+hashCode
+
+open fun hashCode ( ) : <ERROR CLASS>
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-transaction-type/index.html b/docs/build/html/api/net.corda.core.contracts/-transaction-type/index.html
new file mode 100644
index 0000000000..2c56380e17
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-transaction-type/index.html
@@ -0,0 +1,101 @@
+
+
+TransactionType -
+
+
+
+net.corda.core.contracts / TransactionType
+
+TransactionType
+sealed class TransactionType
+Defines transaction build & validation logic for a specific transaction type
+
+
+Types
+
+
+
+
+General
+
+class General : TransactionType
A general transaction type where transaction validity is determined by custom contract code
+
+
+
+
+NotaryChange
+
+class NotaryChange : TransactionType
A special transaction type for reassigning a notary for a state. Validation does not involve running
+any contract code, it just checks that the states are unmodified apart from the notary field.
+
+
+
+
+Functions
+
+
+
+
+equals
+
+open fun equals ( other : Any ? ) : Boolean
+
+
+
+getRequiredSigners
+
+abstract fun getRequiredSigners ( tx : LedgerTransaction ) : Set < PublicKey >
Return the list of public keys that that require signatures for the transaction type.
+Note: the notary key is checked separately for all transactions and need not be included.
+
+
+
+
+hashCode
+
+open fun hashCode ( ) : <ERROR CLASS>
+
+
+
+verify
+
+fun verify ( tx : LedgerTransaction ) : Unit
Check that the transaction is valid based on:
+
+
+
+
+verifySigners
+
+fun verifySigners ( tx : LedgerTransaction ) : Set < PublicKey >
Check that the list of signers includes all the necessary keys
+
+
+
+
+verifyTransaction
+
+abstract fun verifyTransaction ( tx : LedgerTransaction ) : Unit
Implement type specific transaction validation logic
+
+
+
+
+Inheritors
+
+
+
+
+General
+
+class General : TransactionType
A general transaction type where transaction validity is determined by custom contract code
+
+
+
+
+NotaryChange
+
+class NotaryChange : TransactionType
A special transaction type for reassigning a notary for a state. Validation does not involve running
+any contract code, it just checks that the states are unmodified apart from the notary field.
+
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-transaction-type/verify-signers.html b/docs/build/html/api/net.corda.core.contracts/-transaction-type/verify-signers.html
new file mode 100644
index 0000000000..3b01c3547f
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-transaction-type/verify-signers.html
@@ -0,0 +1,16 @@
+
+
+TransactionType.verifySigners -
+
+
+
+net.corda.core.contracts / TransactionType / verifySigners
+
+verifySigners
+
+fun verifySigners ( tx : LedgerTransaction ) : Set < PublicKey >
+Check that the list of signers includes all the necessary keys
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-transaction-type/verify-transaction.html b/docs/build/html/api/net.corda.core.contracts/-transaction-type/verify-transaction.html
new file mode 100644
index 0000000000..3ccb48cd65
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-transaction-type/verify-transaction.html
@@ -0,0 +1,16 @@
+
+
+TransactionType.verifyTransaction -
+
+
+
+net.corda.core.contracts / TransactionType / verifyTransaction
+
+verifyTransaction
+
+abstract fun verifyTransaction ( tx : LedgerTransaction ) : Unit
+Implement type specific transaction validation logic
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-transaction-type/verify.html b/docs/build/html/api/net.corda.core.contracts/-transaction-type/verify.html
new file mode 100644
index 0000000000..60f59e7e30
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-transaction-type/verify.html
@@ -0,0 +1,21 @@
+
+
+TransactionType.verify -
+
+
+
+net.corda.core.contracts / TransactionType / verify
+
+verify
+
+fun verify ( tx : LedgerTransaction ) : Unit
+Check that the transaction is valid based on:
+Note: Presence of signatures is not checked, only the public keys to be signed for.
+
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-transaction-verification-exception/-contract-rejection/-init-.html b/docs/build/html/api/net.corda.core.contracts/-transaction-verification-exception/-contract-rejection/-init-.html
new file mode 100644
index 0000000000..9447e4774d
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-transaction-verification-exception/-contract-rejection/-init-.html
@@ -0,0 +1,14 @@
+
+
+TransactionVerificationException.ContractRejection. -
+
+
+
+net.corda.core.contracts / TransactionVerificationException / ContractRejection / <init>
+
+<init>
+ContractRejection ( tx : LedgerTransaction , contract : Contract , cause : Throwable ? )
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-transaction-verification-exception/-contract-rejection/contract.html b/docs/build/html/api/net.corda.core.contracts/-transaction-verification-exception/-contract-rejection/contract.html
new file mode 100644
index 0000000000..9db8fa25a0
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-transaction-verification-exception/-contract-rejection/contract.html
@@ -0,0 +1,15 @@
+
+
+TransactionVerificationException.ContractRejection.contract -
+
+
+
+net.corda.core.contracts / TransactionVerificationException / ContractRejection / contract
+
+contract
+
+val contract : Contract
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-transaction-verification-exception/-contract-rejection/index.html b/docs/build/html/api/net.corda.core.contracts/-transaction-verification-exception/-contract-rejection/index.html
new file mode 100644
index 0000000000..8520a5ddd9
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-transaction-verification-exception/-contract-rejection/index.html
@@ -0,0 +1,47 @@
+
+
+TransactionVerificationException.ContractRejection -
+
+
+
+net.corda.core.contracts / TransactionVerificationException / ContractRejection
+
+ContractRejection
+class ContractRejection : TransactionVerificationException
+
+
+Constructors
+
+Properties
+
+Inherited Properties
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-transaction-verification-exception/-direction/-i-n-p-u-t.html b/docs/build/html/api/net.corda.core.contracts/-transaction-verification-exception/-direction/-i-n-p-u-t.html
new file mode 100644
index 0000000000..aeab55ba10
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-transaction-verification-exception/-direction/-i-n-p-u-t.html
@@ -0,0 +1,14 @@
+
+
+TransactionVerificationException.Direction.INPUT -
+
+
+
+net.corda.core.contracts / TransactionVerificationException / Direction / INPUT
+
+INPUT
+INPUT
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-transaction-verification-exception/-direction/-o-u-t-p-u-t.html b/docs/build/html/api/net.corda.core.contracts/-transaction-verification-exception/-direction/-o-u-t-p-u-t.html
new file mode 100644
index 0000000000..9f55869cc6
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-transaction-verification-exception/-direction/-o-u-t-p-u-t.html
@@ -0,0 +1,14 @@
+
+
+TransactionVerificationException.Direction.OUTPUT -
+
+
+
+net.corda.core.contracts / TransactionVerificationException / Direction / OUTPUT
+
+OUTPUT
+OUTPUT
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-transaction-verification-exception/-direction/index.html b/docs/build/html/api/net.corda.core.contracts/-transaction-verification-exception/-direction/index.html
new file mode 100644
index 0000000000..7f1bbac272
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-transaction-verification-exception/-direction/index.html
@@ -0,0 +1,31 @@
+
+
+TransactionVerificationException.Direction -
+
+
+
+net.corda.core.contracts / TransactionVerificationException / Direction
+
+Direction
+enum class Direction
+
+
+Enum Values
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-transaction-verification-exception/-invalid-notary-change/-init-.html b/docs/build/html/api/net.corda.core.contracts/-transaction-verification-exception/-invalid-notary-change/-init-.html
new file mode 100644
index 0000000000..fcc3de6cd4
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-transaction-verification-exception/-invalid-notary-change/-init-.html
@@ -0,0 +1,14 @@
+
+
+TransactionVerificationException.InvalidNotaryChange. -
+
+
+
+net.corda.core.contracts / TransactionVerificationException / InvalidNotaryChange / <init>
+
+<init>
+InvalidNotaryChange ( tx : LedgerTransaction )
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-transaction-verification-exception/-invalid-notary-change/index.html b/docs/build/html/api/net.corda.core.contracts/-transaction-verification-exception/-invalid-notary-change/index.html
new file mode 100644
index 0000000000..e168e77562
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-transaction-verification-exception/-invalid-notary-change/index.html
@@ -0,0 +1,36 @@
+
+
+TransactionVerificationException.InvalidNotaryChange -
+
+
+
+net.corda.core.contracts / TransactionVerificationException / InvalidNotaryChange
+
+InvalidNotaryChange
+class InvalidNotaryChange : TransactionVerificationException
+
+
+Constructors
+
+Inherited Properties
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-transaction-verification-exception/-more-than-one-notary/-init-.html b/docs/build/html/api/net.corda.core.contracts/-transaction-verification-exception/-more-than-one-notary/-init-.html
new file mode 100644
index 0000000000..8790233304
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-transaction-verification-exception/-more-than-one-notary/-init-.html
@@ -0,0 +1,14 @@
+
+
+TransactionVerificationException.MoreThanOneNotary. -
+
+
+
+net.corda.core.contracts / TransactionVerificationException / MoreThanOneNotary / <init>
+
+<init>
+MoreThanOneNotary ( tx : LedgerTransaction )
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-transaction-verification-exception/-more-than-one-notary/index.html b/docs/build/html/api/net.corda.core.contracts/-transaction-verification-exception/-more-than-one-notary/index.html
new file mode 100644
index 0000000000..db721b45ed
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-transaction-verification-exception/-more-than-one-notary/index.html
@@ -0,0 +1,36 @@
+
+
+TransactionVerificationException.MoreThanOneNotary -
+
+
+
+net.corda.core.contracts / TransactionVerificationException / MoreThanOneNotary
+
+MoreThanOneNotary
+class MoreThanOneNotary : TransactionVerificationException
+
+
+Constructors
+
+Inherited Properties
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-transaction-verification-exception/-notary-change-in-wrong-transaction-type/-init-.html b/docs/build/html/api/net.corda.core.contracts/-transaction-verification-exception/-notary-change-in-wrong-transaction-type/-init-.html
new file mode 100644
index 0000000000..db25c870e2
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-transaction-verification-exception/-notary-change-in-wrong-transaction-type/-init-.html
@@ -0,0 +1,14 @@
+
+
+TransactionVerificationException.NotaryChangeInWrongTransactionType. -
+
+
+
+net.corda.core.contracts / TransactionVerificationException / NotaryChangeInWrongTransactionType / <init>
+
+<init>
+NotaryChangeInWrongTransactionType ( tx : LedgerTransaction , outputNotary : Party )
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-transaction-verification-exception/-notary-change-in-wrong-transaction-type/index.html b/docs/build/html/api/net.corda.core.contracts/-transaction-verification-exception/-notary-change-in-wrong-transaction-type/index.html
new file mode 100644
index 0000000000..471127b831
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-transaction-verification-exception/-notary-change-in-wrong-transaction-type/index.html
@@ -0,0 +1,58 @@
+
+
+TransactionVerificationException.NotaryChangeInWrongTransactionType -
+
+
+
+net.corda.core.contracts / TransactionVerificationException / NotaryChangeInWrongTransactionType
+
+NotaryChangeInWrongTransactionType
+class NotaryChangeInWrongTransactionType : TransactionVerificationException
+
+
+Constructors
+
+Properties
+
+Inherited Properties
+
+Functions
+
+
+
+
+toString
+
+fun toString ( ) : String
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-transaction-verification-exception/-notary-change-in-wrong-transaction-type/output-notary.html b/docs/build/html/api/net.corda.core.contracts/-transaction-verification-exception/-notary-change-in-wrong-transaction-type/output-notary.html
new file mode 100644
index 0000000000..f9498c5961
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-transaction-verification-exception/-notary-change-in-wrong-transaction-type/output-notary.html
@@ -0,0 +1,15 @@
+
+
+TransactionVerificationException.NotaryChangeInWrongTransactionType.outputNotary -
+
+
+
+net.corda.core.contracts / TransactionVerificationException / NotaryChangeInWrongTransactionType / outputNotary
+
+outputNotary
+
+val outputNotary : Party
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-transaction-verification-exception/-notary-change-in-wrong-transaction-type/to-string.html b/docs/build/html/api/net.corda.core.contracts/-transaction-verification-exception/-notary-change-in-wrong-transaction-type/to-string.html
new file mode 100644
index 0000000000..46dd0818bd
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-transaction-verification-exception/-notary-change-in-wrong-transaction-type/to-string.html
@@ -0,0 +1,15 @@
+
+
+TransactionVerificationException.NotaryChangeInWrongTransactionType.toString -
+
+
+
+net.corda.core.contracts / TransactionVerificationException / NotaryChangeInWrongTransactionType / toString
+
+toString
+
+fun toString ( ) : String
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-transaction-verification-exception/-signers-missing/-init-.html b/docs/build/html/api/net.corda.core.contracts/-transaction-verification-exception/-signers-missing/-init-.html
new file mode 100644
index 0000000000..04d6228ce6
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-transaction-verification-exception/-signers-missing/-init-.html
@@ -0,0 +1,14 @@
+
+
+TransactionVerificationException.SignersMissing. -
+
+
+
+net.corda.core.contracts / TransactionVerificationException / SignersMissing / <init>
+
+<init>
+SignersMissing ( tx : LedgerTransaction , missing : List < PublicKey > )
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-transaction-verification-exception/-signers-missing/index.html b/docs/build/html/api/net.corda.core.contracts/-transaction-verification-exception/-signers-missing/index.html
new file mode 100644
index 0000000000..1af80d5f86
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-transaction-verification-exception/-signers-missing/index.html
@@ -0,0 +1,58 @@
+
+
+TransactionVerificationException.SignersMissing -
+
+
+
+net.corda.core.contracts / TransactionVerificationException / SignersMissing
+
+SignersMissing
+class SignersMissing : TransactionVerificationException
+
+
+Constructors
+
+Properties
+
+Inherited Properties
+
+Functions
+
+
+
+
+toString
+
+fun toString ( ) : String
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-transaction-verification-exception/-signers-missing/missing.html b/docs/build/html/api/net.corda.core.contracts/-transaction-verification-exception/-signers-missing/missing.html
new file mode 100644
index 0000000000..aae765143c
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-transaction-verification-exception/-signers-missing/missing.html
@@ -0,0 +1,15 @@
+
+
+TransactionVerificationException.SignersMissing.missing -
+
+
+
+net.corda.core.contracts / TransactionVerificationException / SignersMissing / missing
+
+missing
+
+val missing : List < PublicKey >
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-transaction-verification-exception/-signers-missing/to-string.html b/docs/build/html/api/net.corda.core.contracts/-transaction-verification-exception/-signers-missing/to-string.html
new file mode 100644
index 0000000000..509f3b2fb6
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-transaction-verification-exception/-signers-missing/to-string.html
@@ -0,0 +1,15 @@
+
+
+TransactionVerificationException.SignersMissing.toString -
+
+
+
+net.corda.core.contracts / TransactionVerificationException / SignersMissing / toString
+
+toString
+
+fun toString ( ) : String
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-transaction-verification-exception/-transaction-missing-encumbrance-exception/-init-.html b/docs/build/html/api/net.corda.core.contracts/-transaction-verification-exception/-transaction-missing-encumbrance-exception/-init-.html
new file mode 100644
index 0000000000..d02dd44afd
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-transaction-verification-exception/-transaction-missing-encumbrance-exception/-init-.html
@@ -0,0 +1,14 @@
+
+
+TransactionVerificationException.TransactionMissingEncumbranceException. -
+
+
+
+net.corda.core.contracts / TransactionVerificationException / TransactionMissingEncumbranceException / <init>
+
+<init>
+TransactionMissingEncumbranceException ( tx : LedgerTransaction , missing : Int , inOut : Direction )
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-transaction-verification-exception/-transaction-missing-encumbrance-exception/in-out.html b/docs/build/html/api/net.corda.core.contracts/-transaction-verification-exception/-transaction-missing-encumbrance-exception/in-out.html
new file mode 100644
index 0000000000..fc8d44866f
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-transaction-verification-exception/-transaction-missing-encumbrance-exception/in-out.html
@@ -0,0 +1,15 @@
+
+
+TransactionVerificationException.TransactionMissingEncumbranceException.inOut -
+
+
+
+net.corda.core.contracts / TransactionVerificationException / TransactionMissingEncumbranceException / inOut
+
+inOut
+
+val inOut : Direction
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-transaction-verification-exception/-transaction-missing-encumbrance-exception/index.html b/docs/build/html/api/net.corda.core.contracts/-transaction-verification-exception/-transaction-missing-encumbrance-exception/index.html
new file mode 100644
index 0000000000..92ddd06c52
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-transaction-verification-exception/-transaction-missing-encumbrance-exception/index.html
@@ -0,0 +1,59 @@
+
+
+TransactionVerificationException.TransactionMissingEncumbranceException -
+
+
+
+net.corda.core.contracts / TransactionVerificationException / TransactionMissingEncumbranceException
+
+TransactionMissingEncumbranceException
+class TransactionMissingEncumbranceException : TransactionVerificationException
+
+
+Constructors
+
+Properties
+
+Inherited Properties
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-transaction-verification-exception/-transaction-missing-encumbrance-exception/message.html b/docs/build/html/api/net.corda.core.contracts/-transaction-verification-exception/-transaction-missing-encumbrance-exception/message.html
new file mode 100644
index 0000000000..4bd3276ae7
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-transaction-verification-exception/-transaction-missing-encumbrance-exception/message.html
@@ -0,0 +1,15 @@
+
+
+TransactionVerificationException.TransactionMissingEncumbranceException.message -
+
+
+
+net.corda.core.contracts / TransactionVerificationException / TransactionMissingEncumbranceException / message
+
+message
+
+val message : String ?
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-transaction-verification-exception/-transaction-missing-encumbrance-exception/missing.html b/docs/build/html/api/net.corda.core.contracts/-transaction-verification-exception/-transaction-missing-encumbrance-exception/missing.html
new file mode 100644
index 0000000000..819976729c
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-transaction-verification-exception/-transaction-missing-encumbrance-exception/missing.html
@@ -0,0 +1,15 @@
+
+
+TransactionVerificationException.TransactionMissingEncumbranceException.missing -
+
+
+
+net.corda.core.contracts / TransactionVerificationException / TransactionMissingEncumbranceException / missing
+
+missing
+
+val missing : Int
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-transaction-verification-exception/index.html b/docs/build/html/api/net.corda.core.contracts/-transaction-verification-exception/index.html
new file mode 100644
index 0000000000..5dc4491ebc
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-transaction-verification-exception/index.html
@@ -0,0 +1,129 @@
+
+
+TransactionVerificationException -
+
+
+
+net.corda.core.contracts / TransactionVerificationException
+
+TransactionVerificationException
+sealed class TransactionVerificationException : Exception
+
+
+Types
+
+
+
+
+Direction
+
+enum class Direction
+
+
+
+Exceptions
+
+Properties
+
+Extension Properties
+
+
+
+
+rootCause
+
+val Throwable . rootCause : Throwable
+
+
+
+Inheritors
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-transaction-verification-exception/tx.html b/docs/build/html/api/net.corda.core.contracts/-transaction-verification-exception/tx.html
new file mode 100644
index 0000000000..31d6e2d57a
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-transaction-verification-exception/tx.html
@@ -0,0 +1,15 @@
+
+
+TransactionVerificationException.tx -
+
+
+
+net.corda.core.contracts / TransactionVerificationException / tx
+
+tx
+
+val tx : LedgerTransaction
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-type-only-command-data/-init-.html b/docs/build/html/api/net.corda.core.contracts/-type-only-command-data/-init-.html
new file mode 100644
index 0000000000..3c32bee861
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-type-only-command-data/-init-.html
@@ -0,0 +1,15 @@
+
+
+TypeOnlyCommandData. -
+
+
+
+net.corda.core.contracts / TypeOnlyCommandData / <init>
+
+<init>
+TypeOnlyCommandData ( )
+Commands that inherit from this are intended to have no data items: its only their presence that matters.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-type-only-command-data/equals.html b/docs/build/html/api/net.corda.core.contracts/-type-only-command-data/equals.html
new file mode 100644
index 0000000000..7545019715
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-type-only-command-data/equals.html
@@ -0,0 +1,15 @@
+
+
+TypeOnlyCommandData.equals -
+
+
+
+net.corda.core.contracts / TypeOnlyCommandData / equals
+
+equals
+
+open fun equals ( other : Any ? ) : Boolean
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-type-only-command-data/hash-code.html b/docs/build/html/api/net.corda.core.contracts/-type-only-command-data/hash-code.html
new file mode 100644
index 0000000000..f0e0090c75
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-type-only-command-data/hash-code.html
@@ -0,0 +1,15 @@
+
+
+TypeOnlyCommandData.hashCode -
+
+
+
+net.corda.core.contracts / TypeOnlyCommandData / hashCode
+
+hashCode
+
+open fun hashCode ( ) : <ERROR CLASS>
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-type-only-command-data/index.html b/docs/build/html/api/net.corda.core.contracts/-type-only-command-data/index.html
new file mode 100644
index 0000000000..ebc046e763
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-type-only-command-data/index.html
@@ -0,0 +1,85 @@
+
+
+TypeOnlyCommandData -
+
+
+
+net.corda.core.contracts / TypeOnlyCommandData
+
+TypeOnlyCommandData
+abstract class TypeOnlyCommandData : CommandData
+Commands that inherit from this are intended to have no data items: its only their presence that matters.
+
+
+Constructors
+
+
+
+
+<init>
+
+TypeOnlyCommandData ( )
Commands that inherit from this are intended to have no data items: its only their presence that matters.
+
+
+
+
+Functions
+
+
+
+
+equals
+
+open fun equals ( other : Any ? ) : Boolean
+
+
+
+hashCode
+
+open fun hashCode ( ) : <ERROR CLASS>
+
+
+
+Inheritors
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-u-s-d.html b/docs/build/html/api/net.corda.core.contracts/-u-s-d.html
new file mode 100644
index 0000000000..6b738130ed
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-u-s-d.html
@@ -0,0 +1,15 @@
+
+
+USD -
+
+
+
+net.corda.core.contracts / USD
+
+USD
+
+val USD : Currency
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-unique-identifier/-init-.html b/docs/build/html/api/net.corda.core.contracts/-unique-identifier/-init-.html
new file mode 100644
index 0000000000..7312298526
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-unique-identifier/-init-.html
@@ -0,0 +1,27 @@
+
+
+UniqueIdentifier. -
+
+
+
+net.corda.core.contracts / UniqueIdentifier / <init>
+
+<init>
+UniqueIdentifier ( externalId : String ? = null, id : UUID = UUID.randomUUID())
+This class provides a truly unique identifier of a trade, state, or other business object, bound to any existing
+external ID. Equality and comparison are based on the unique ID only; if two states somehow have the same UUID but
+different external IDs, it would indicate a problem with handling of IDs.
+Parameters
+
+externalId
- Any existing weak identifier such as trade reference ID.
+This should be set here the first time a UniqueIdentifier is created as part of state issuance,
+or ledger on-boarding activity. This ensure that the human readable identity is paired with the strong ID.
+
+
+id
- Should never be set by user code and left as default initialised.
+So that the first time a state is issued this should be given a new UUID.
+Subsequent copies and evolutions of a state should just copy the externalId and id fields unmodified.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-unique-identifier/compare-to.html b/docs/build/html/api/net.corda.core.contracts/-unique-identifier/compare-to.html
new file mode 100644
index 0000000000..b3d7dd49b5
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-unique-identifier/compare-to.html
@@ -0,0 +1,15 @@
+
+
+UniqueIdentifier.compareTo -
+
+
+
+net.corda.core.contracts / UniqueIdentifier / compareTo
+
+compareTo
+
+fun compareTo ( other : UniqueIdentifier ) : Int
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-unique-identifier/equals.html b/docs/build/html/api/net.corda.core.contracts/-unique-identifier/equals.html
new file mode 100644
index 0000000000..b9eebc128d
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-unique-identifier/equals.html
@@ -0,0 +1,15 @@
+
+
+UniqueIdentifier.equals -
+
+
+
+net.corda.core.contracts / UniqueIdentifier / equals
+
+equals
+
+fun equals ( other : Any ? ) : Boolean
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-unique-identifier/external-id.html b/docs/build/html/api/net.corda.core.contracts/-unique-identifier/external-id.html
new file mode 100644
index 0000000000..d8adcd385c
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-unique-identifier/external-id.html
@@ -0,0 +1,15 @@
+
+
+UniqueIdentifier.externalId -
+
+
+
+net.corda.core.contracts / UniqueIdentifier / externalId
+
+externalId
+
+val externalId : String ?
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-unique-identifier/from-string.html b/docs/build/html/api/net.corda.core.contracts/-unique-identifier/from-string.html
new file mode 100644
index 0000000000..6c06558398
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-unique-identifier/from-string.html
@@ -0,0 +1,16 @@
+
+
+UniqueIdentifier.fromString -
+
+
+
+net.corda.core.contracts / UniqueIdentifier / fromString
+
+fromString
+
+fun fromString ( name : String ) : UniqueIdentifier
+Helper function for unit tests where the UUID needs to be manually initialised for consistency.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-unique-identifier/hash-code.html b/docs/build/html/api/net.corda.core.contracts/-unique-identifier/hash-code.html
new file mode 100644
index 0000000000..28d8f0d1f4
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-unique-identifier/hash-code.html
@@ -0,0 +1,15 @@
+
+
+UniqueIdentifier.hashCode -
+
+
+
+net.corda.core.contracts / UniqueIdentifier / hashCode
+
+hashCode
+
+fun hashCode ( ) : Int
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-unique-identifier/id.html b/docs/build/html/api/net.corda.core.contracts/-unique-identifier/id.html
new file mode 100644
index 0000000000..4d0bec0460
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-unique-identifier/id.html
@@ -0,0 +1,15 @@
+
+
+UniqueIdentifier.id -
+
+
+
+net.corda.core.contracts / UniqueIdentifier / id
+
+id
+
+val id : UUID
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-unique-identifier/index.html b/docs/build/html/api/net.corda.core.contracts/-unique-identifier/index.html
new file mode 100644
index 0000000000..0580fb9c44
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-unique-identifier/index.html
@@ -0,0 +1,99 @@
+
+
+UniqueIdentifier -
+
+
+
+net.corda.core.contracts / UniqueIdentifier
+
+UniqueIdentifier
+data class UniqueIdentifier : Comparable < UniqueIdentifier >
+This class provides a truly unique identifier of a trade, state, or other business object, bound to any existing
+external ID. Equality and comparison are based on the unique ID only; if two states somehow have the same UUID but
+different external IDs, it would indicate a problem with handling of IDs.
+Parameters
+
+externalId
- Any existing weak identifier such as trade reference ID.
+This should be set here the first time a UniqueIdentifier is created as part of state issuance,
+or ledger on-boarding activity. This ensure that the human readable identity is paired with the strong ID.
+
+
+id
- Should never be set by user code and left as default initialised.
+So that the first time a state is issued this should be given a new UUID.
+Subsequent copies and evolutions of a state should just copy the externalId and id fields unmodified.
+
+
+Constructors
+
+
+
+
+<init>
+
+UniqueIdentifier ( externalId : String ? = null, id : UUID = UUID.randomUUID())
This class provides a truly unique identifier of a trade, state, or other business object, bound to any existing
+external ID. Equality and comparison are based on the unique ID only; if two states somehow have the same UUID but
+different external IDs, it would indicate a problem with handling of IDs.
+
+
+
+
+Properties
+
+Functions
+
+
+
+
+compareTo
+
+fun compareTo ( other : UniqueIdentifier ) : Int
+
+
+
+equals
+
+fun equals ( other : Any ? ) : Boolean
+
+
+
+hashCode
+
+fun hashCode ( ) : Int
+
+
+
+toString
+
+fun toString ( ) : String
+
+
+
+Companion Object Functions
+
+
+
+
+fromString
+
+fun fromString ( name : String ) : UniqueIdentifier
Helper function for unit tests where the UUID needs to be manually initialised for consistency.
+
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/-unique-identifier/to-string.html b/docs/build/html/api/net.corda.core.contracts/-unique-identifier/to-string.html
new file mode 100644
index 0000000000..df89ebce54
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/-unique-identifier/to-string.html
@@ -0,0 +1,15 @@
+
+
+UniqueIdentifier.toString -
+
+
+
+net.corda.core.contracts / UniqueIdentifier / toString
+
+toString
+
+fun toString ( ) : String
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/calculate-days-between.html b/docs/build/html/api/net.corda.core.contracts/calculate-days-between.html
new file mode 100644
index 0000000000..9d505fc1a2
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/calculate-days-between.html
@@ -0,0 +1,15 @@
+
+
+calculateDaysBetween -
+
+
+
+net.corda.core.contracts / calculateDaysBetween
+
+calculateDaysBetween
+
+fun calculateDaysBetween ( startDate : LocalDate , endDate : LocalDate , dcbYear : DayCountBasisYear , dcbDay : DayCountBasisDay ) : Int
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/commodity.html b/docs/build/html/api/net.corda.core.contracts/commodity.html
new file mode 100644
index 0000000000..60e8aa5162
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/commodity.html
@@ -0,0 +1,15 @@
+
+
+commodity -
+
+
+
+net.corda.core.contracts / commodity
+
+commodity
+
+fun commodity ( code : String ) : Commodity
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/currency.html b/docs/build/html/api/net.corda.core.contracts/currency.html
new file mode 100644
index 0000000000..f3611c4047
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/currency.html
@@ -0,0 +1,23 @@
+
+
+currency -
+
+
+
+net.corda.core.contracts / currency
+
+currency
+
+fun currency ( code : String ) : Currency
+Defines a simple domain specific language for the specification of financial contracts. Currently covers:
+Some utilities for working with commands.
+Code for working with currencies.
+An Amount type that represents a positive quantity of a specific currency.
+A simple language extension for specifying requirements in English, along with logic to enforce them.
+TODO: Look into replacing Currency and Amount with CurrencyUnit and MonetaryAmount from the javax.money API (JSR 354)
+
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/hash.html b/docs/build/html/api/net.corda.core.contracts/hash.html
new file mode 100644
index 0000000000..70d3af412d
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/hash.html
@@ -0,0 +1,16 @@
+
+
+hash -
+
+
+
+net.corda.core.contracts / hash
+
+hash
+
+fun ContractState . hash ( ) : SecureHash
+Returns the SHA-256 hash of the serialised contents of this state (not cached)
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/index.html b/docs/build/html/api/net.corda.core.contracts/index.html
new file mode 100644
index 0000000000..df5dc9dea2
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/index.html
@@ -0,0 +1,658 @@
+
+
+net.corda.core.contracts -
+
+
+
+net.corda.core.contracts
+
+Package net.corda.core.contracts
+Types
+
+
+
+
+AccrualAdjustment
+
+enum class AccrualAdjustment
Simple enum for returning accurals adjusted or unadjusted.
+We dont actually do anything with this yet though, so its ignored for now.
+
+
+
+
+Amount
+
+data class Amount < T > : Comparable < Amount < T > >
Amount represents a positive quantity of some token (currency, asset, etc.), measured in quantity of the smallest
+representable units. Note that quantity is not necessarily 1/100ths of a currency unit, but are the actual smallest
+amount used in whatever underlying thing the amount represents.
+
+
+
+
+Attachment
+
+interface Attachment : NamedByHash
An attachment is a ZIP (or an optionally signed JAR) that contains one or more files. Attachments are meant to
+contain public static data which can be referenced from transactions and utilised from contracts. Good examples
+of how attachments are meant to be used include:
+
+
+
+
+AuthenticatedObject
+
+data class AuthenticatedObject < out T : Any >
Wraps an object that was signed by a public key, which may be a well known/recognised institutional key.
+
+
+
+
+BilateralNettableState
+
+interface BilateralNettableState < N : BilateralNettableState < N > >
Interface for state objects that support being netted with other state objects.
+
+
+
+
+BusinessCalendar
+
+open class BusinessCalendar
A business calendar performs date calculations that take into account national holidays and weekends. This is a
+typical feature of financial contracts, in which a business may not want a payment event to fall on a day when
+no staff are around to handle problems.
+
+
+
+
+ClientToServiceCommand
+
+sealed class ClientToServiceCommand
A command from the monitoring client, to the node.
+
+
+
+
+Command
+
+data class Command
Command data/content plus pubkey pair: the signature is stored at the end of the serialized bytes
+
+
+
+
+CommandData
+
+interface CommandData
Marker interface for classes that represent commands
+
+
+
+
+Commodity
+
+data class Commodity
Class representing a commodity, as an equivalent to the Currency class. This exists purely to enable the
+CommodityContract contract, and is likely to change in future.
+
+
+
+
+Contract
+
+interface Contract
Implemented by a program that implements business logic on the shared ledger. All participants run this code for
+every LedgerTransaction they see on the network, for every input and output state. All contracts must accept the
+transaction for it to be accepted: failure of any aborts the entire thing. The time is taken from a trusted
+timestamp attached to the transaction itself i.e. it is NOT necessarily the current time.
+
+
+
+
+ContractState
+
+interface ContractState
A contract state (or just "state") contains opaque data used by a contract program. It can be thought of as a disk
+file that the program can use to persist data across transactions. States are immutable: once created they are never
+updated, instead, any changes must generate a new successor state. States can be updated (consumed) only once: the
+notary is responsible for ensuring there is no "double spending" by only signing a transaction if the input states
+are all free.
+
+
+
+
+DateRollConvention
+
+enum class DateRollConvention
This reflects what happens if a date on which a business event is supposed to happen actually falls upon a non-working day.
+Depending on the accounting requirement, we can move forward until we get to a business day, or backwards.
+There are some additional rules which are explained in the individual cases below.
+
+
+
+
+DateRollDirection
+
+enum class DateRollDirection
This is utilised in the DateRollConvention class to determine which way we should initially step when
+finding a business day.
+
+
+
+
+DayCountBasisDay
+
+enum class DayCountBasisDay
This forms the day part of the "Day Count Basis" used for interest calculation.
+Note that the first character cannot be a number (enum naming constraints), so we drop that
+in the toString lest some people get confused.
+
+
+
+
+DayCountBasisYear
+
+enum class DayCountBasisYear
This forms the year part of the "Day Count Basis" used for interest calculation.
+
+
+
+
+DealState
+
+interface DealState : LinearState
Interface representing an agreement that exposes various attributes that are common. Implementing it simplifies
+implementation of general protocols that manipulate many agreement types.
+
+
+
+
+DummyContract
+
+class DummyContract : Contract
+
+
+
+DummyState
+
+data class DummyState : ContractState
Dummy state for use in testing. Not part of any contract, not even the DummyContract .
+
+
+
+
+Expression
+
+data class Expression
Represents a textual expression of e.g. a formula
+
+
+
+
+ExpressionDeserializer
+
+object ExpressionDeserializer
+
+
+
+ExpressionSerializer
+
+object ExpressionSerializer
+
+
+
+Fix
+
+data class Fix : CommandData
A Fix represents a named interest rate, on a given day, for a given duration. It can be embedded in a tx.
+
+
+
+
+FixOf
+
+data class FixOf
A FixOf identifies the question side of a fix: what day, tenor and type of fix ("LIBOR", "EURIBOR" etc)
+
+
+
+
+FixableDealState
+
+interface FixableDealState : DealState
Interface adding fixing specific methods.
+
+
+
+
+Frequency
+
+enum class Frequency
Frequency at which an event occurs - the enumerator also casts to an integer specifying the number of times per year
+that would divide into (eg annually = 1, semiannual = 2, monthly = 12 etc).
+
+
+
+
+FungibleAsset
+
+interface FungibleAsset < T > : OwnableState
Interface for contract states representing assets which are fungible, countable and issued by a
+specific party. States contain assets which are equivalent (such as cash of the same currency),
+so records of their existence can be merged or split as needed where the issuer is the same. For
+instance, dollars issued by the Fed are fungible and countable (in cents), barrels of West Texas
+crude are fungible and countable (oil from two small containers can be poured into one large
+container), shares of the same class in a specific company are fungible and countable, and so on.
+
+
+
+
+IssuanceDefinition
+
+interface IssuanceDefinition
Marker interface for data classes that represent the issuance state for a contract. These are intended as templates
+from which the state object is initialised.
+
+
+
+
+IssueCommand
+
+interface IssueCommand : CommandData
A common issue command, to enforce that issue commands have a nonce value.
+
+
+
+
+Issued
+
+data class Issued < out P >
Definition for an issued product, which can be cash, a cash-like thing, assets, or generally anything else thats
+quantifiable with integer quantities.
+
+
+
+
+LinearState
+
+interface LinearState : ContractState
A state that evolves by superseding itself, all of which share the common "linearId".
+
+
+
+
+MoveCommand
+
+interface MoveCommand : CommandData
A common move command for contracts which can change owner.
+
+
+
+
+MultilateralNettableState
+
+interface MultilateralNettableState < out T : Any >
Interface for state objects that support being netted with other state objects.
+
+
+
+
+NamedByHash
+
+interface NamedByHash
Implemented by anything that can be named by a secure hash value (e.g. transactions, attachments).
+
+
+
+
+NetCommand
+
+interface NetCommand : CommandData
A common netting command for contracts whose states can be netted.
+
+
+
+
+NetType
+
+enum class NetType
Enum for the types of netting that can be applied to state objects. Exact behaviour
+for each type of netting is left to the contract to determine.
+
+
+
+
+NettableState
+
+interface NettableState < N : BilateralNettableState < N > , T : Any > : BilateralNettableState < N > , MultilateralNettableState < T >
+
+
+
+OwnableState
+
+interface OwnableState : ContractState
A contract state that can have a single owner.
+
+
+
+
+PartyAndReference
+
+data class PartyAndReference
Reference to something being stored or issued by a party e.g. in a vault or (more likely) on their normal
+ledger. The reference is intended to be encrypted so its meaningless to anyone other than the party.
+
+
+
+
+PaymentRule
+
+enum class PaymentRule
Whether the payment should be made before the due date, or after it.
+
+
+
+
+Requirements
+
+class Requirements
+
+
+
+SchedulableState
+
+interface SchedulableState : ContractState
+
+
+
+Scheduled
+
+interface Scheduled
Something which is scheduled to happen at a point in time
+
+
+
+
+ScheduledActivity
+
+data class ScheduledActivity : Scheduled
This class represents the lifecycle activity that a contract state of type LinearState would like to perform at a given point in time.
+e.g. run a fixing protocol.
+
+
+
+
+ScheduledStateRef
+
+data class ScheduledStateRef : Scheduled
Represents a contract state (unconsumed output) of type LinearState and a point in time that a lifecycle event is expected to take place
+for that contract state.
+
+
+
+
+StateAndRef
+
+data class StateAndRef < out T : ContractState >
A StateAndRef is simply a (state, ref) pair. For instance, a vault (which holds available assets) contains these.
+
+
+
+
+StateRef
+
+data class StateRef
A stateref is a pointer (reference) to a state, this is an equivalent of an "outpoint" in Bitcoin. It records which
+transaction defined the state and where in that transaction it was.
+
+
+
+
+Tenor
+
+data class Tenor
Placeholder class for the Tenor datatype - which is a standardised duration of time until maturity
+
+
+
+
+Timestamp
+
+data class Timestamp
If present in a transaction, contains a time that was verified by the uniqueness service. The true time must be
+between (after, before).
+
+
+
+
+TransactionForContract
+
+data class TransactionForContract
A transaction to be passed as input to a contract verification function. Defines helper methods to
+simplify verification logic in contracts.
+
+
+
+
+TransactionGraphSearch
+
+class TransactionGraphSearch : Callable < List < WireTransaction > >
Given a map of transaction id to SignedTransaction , performs a breadth first search of the dependency graph from
+the starting point down in order to find transactions that match the given query criteria.
+
+
+
+
+TransactionState
+
+data class TransactionState < out T : ContractState >
A wrapper for ContractState containing additional platform-level state information.
+This is the definitive state that is stored on the ledger and used in transaction outputs.
+
+
+
+
+TransactionType
+
+sealed class TransactionType
Defines transaction build & validation logic for a specific transaction type
+
+
+
+
+TypeOnlyCommandData
+
+abstract class TypeOnlyCommandData : CommandData
Commands that inherit from this are intended to have no data items: its only their presence that matters.
+
+
+
+
+UniqueIdentifier
+
+data class UniqueIdentifier : Comparable < UniqueIdentifier >
This class provides a truly unique identifier of a trade, state, or other business object, bound to any existing
+external ID. Equality and comparison are based on the unique ID only; if two states somehow have the same UUID but
+different external IDs, it would indicate a problem with handling of IDs.
+
+
+
+
+Exceptions
+
+Extensions for External Classes
+
+Properties
+
+Functions
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/issued by.html b/docs/build/html/api/net.corda.core.contracts/issued by.html
new file mode 100644
index 0000000000..901ac3b1c8
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/issued by.html
@@ -0,0 +1,17 @@
+
+
+issued by -
+
+
+
+net.corda.core.contracts / issued by
+
+issued by
+
+infix fun Commodity . issued by ( deposit : PartyAndReference ) : Issued < Commodity >
+
+infix fun Amount < Currency > . issued by ( deposit : PartyAndReference ) : Amount < Issued < Currency > >
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/issued-by.html b/docs/build/html/api/net.corda.core.contracts/issued-by.html
new file mode 100644
index 0000000000..38555ef43f
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/issued-by.html
@@ -0,0 +1,17 @@
+
+
+issuedBy -
+
+
+
+net.corda.core.contracts / issuedBy
+
+issuedBy
+
+infix fun Commodity . issuedBy ( deposit : PartyAndReference ) : Issued < Commodity >
+
+infix fun Amount < Currency > . issuedBy ( deposit : PartyAndReference ) : Amount < Issued < Currency > >
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/java.time.-local-date/index.html b/docs/build/html/api/net.corda.core.contracts/java.time.-local-date/index.html
new file mode 100644
index 0000000000..67de13f7f8
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/java.time.-local-date/index.html
@@ -0,0 +1,21 @@
+
+
+net.corda.core.contracts.java.time.LocalDate -
+
+
+
+net.corda.core.contracts / java.time.LocalDate
+
+Extensions for java.time.LocalDate
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/java.time.-local-date/is-working-day.html b/docs/build/html/api/net.corda.core.contracts/java.time.-local-date/is-working-day.html
new file mode 100644
index 0000000000..f6e00eb89a
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/java.time.-local-date/is-working-day.html
@@ -0,0 +1,15 @@
+
+
+isWorkingDay -
+
+
+
+net.corda.core.contracts / java.time.LocalDate / isWorkingDay
+
+isWorkingDay
+
+fun LocalDate . isWorkingDay ( accordingToCalendar : BusinessCalendar ) : Boolean
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/java.util.-currency/index.html b/docs/build/html/api/net.corda.core.contracts/java.util.-currency/index.html
new file mode 100644
index 0000000000..c5bf4cc607
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/java.util.-currency/index.html
@@ -0,0 +1,27 @@
+
+
+net.corda.core.contracts.java.util.Currency -
+
+
+
+net.corda.core.contracts / java.util.Currency
+
+Extensions for java.util.Currency
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/java.util.-currency/issued by.html b/docs/build/html/api/net.corda.core.contracts/java.util.-currency/issued by.html
new file mode 100644
index 0000000000..2233d83124
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/java.util.-currency/issued by.html
@@ -0,0 +1,15 @@
+
+
+issued by -
+
+
+
+net.corda.core.contracts / java.util.Currency / issued by
+
+issued by
+
+infix fun Currency . issued by ( deposit : PartyAndReference ) : Issued < Currency >
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/java.util.-currency/issued-by.html b/docs/build/html/api/net.corda.core.contracts/java.util.-currency/issued-by.html
new file mode 100644
index 0000000000..d6a809d0c1
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/java.util.-currency/issued-by.html
@@ -0,0 +1,15 @@
+
+
+issuedBy -
+
+
+
+net.corda.core.contracts / java.util.Currency / issuedBy
+
+issuedBy
+
+infix fun Currency . issuedBy ( deposit : PartyAndReference ) : Issued < Currency >
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/kotlin.-double/-d-o-l-l-a-r-s.html b/docs/build/html/api/net.corda.core.contracts/kotlin.-double/-d-o-l-l-a-r-s.html
new file mode 100644
index 0000000000..147fa5bef9
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/kotlin.-double/-d-o-l-l-a-r-s.html
@@ -0,0 +1,15 @@
+
+
+DOLLARS -
+
+
+
+net.corda.core.contracts / kotlin.Double / DOLLARS
+
+DOLLARS
+
+val Double . DOLLARS : Amount < Currency >
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/kotlin.-double/index.html b/docs/build/html/api/net.corda.core.contracts/kotlin.-double/index.html
new file mode 100644
index 0000000000..78c76770a8
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/kotlin.-double/index.html
@@ -0,0 +1,21 @@
+
+
+net.corda.core.contracts.kotlin.Double -
+
+
+
+net.corda.core.contracts / kotlin.Double
+
+Extensions for kotlin.Double
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/kotlin.-int/-d-o-l-l-a-r-s.html b/docs/build/html/api/net.corda.core.contracts/kotlin.-int/-d-o-l-l-a-r-s.html
new file mode 100644
index 0000000000..c51ac48a3e
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/kotlin.-int/-d-o-l-l-a-r-s.html
@@ -0,0 +1,15 @@
+
+
+DOLLARS -
+
+
+
+net.corda.core.contracts / kotlin.Int / DOLLARS
+
+DOLLARS
+
+val Int . DOLLARS : Amount < Currency >
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/kotlin.-int/-f-c-o-j.html b/docs/build/html/api/net.corda.core.contracts/kotlin.-int/-f-c-o-j.html
new file mode 100644
index 0000000000..0f42e26f14
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/kotlin.-int/-f-c-o-j.html
@@ -0,0 +1,15 @@
+
+
+FCOJ -
+
+
+
+net.corda.core.contracts / kotlin.Int / FCOJ
+
+FCOJ
+
+val Int . FCOJ : Amount < Commodity >
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/kotlin.-int/-p-o-u-n-d-s.html b/docs/build/html/api/net.corda.core.contracts/kotlin.-int/-p-o-u-n-d-s.html
new file mode 100644
index 0000000000..902e9b2fcb
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/kotlin.-int/-p-o-u-n-d-s.html
@@ -0,0 +1,15 @@
+
+
+POUNDS -
+
+
+
+net.corda.core.contracts / kotlin.Int / POUNDS
+
+POUNDS
+
+val Int . POUNDS : Amount < Currency >
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/kotlin.-int/-s-w-i-s-s_-f-r-a-n-c-s.html b/docs/build/html/api/net.corda.core.contracts/kotlin.-int/-s-w-i-s-s_-f-r-a-n-c-s.html
new file mode 100644
index 0000000000..d3fdeaea36
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/kotlin.-int/-s-w-i-s-s_-f-r-a-n-c-s.html
@@ -0,0 +1,15 @@
+
+
+SWISS_FRANCS -
+
+
+
+net.corda.core.contracts / kotlin.Int / SWISS_FRANCS
+
+SWISS_FRANCS
+
+val Int . SWISS_FRANCS : Amount < Currency >
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/kotlin.-int/index.html b/docs/build/html/api/net.corda.core.contracts/kotlin.-int/index.html
new file mode 100644
index 0000000000..3bd5f565a4
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/kotlin.-int/index.html
@@ -0,0 +1,39 @@
+
+
+net.corda.core.contracts.kotlin.Int -
+
+
+
+net.corda.core.contracts / kotlin.Int
+
+Extensions for kotlin.Int
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/kotlin.collections.-collection/index.html b/docs/build/html/api/net.corda.core.contracts/kotlin.collections.-collection/index.html
new file mode 100644
index 0000000000..5bbb5b201c
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/kotlin.collections.-collection/index.html
@@ -0,0 +1,30 @@
+
+
+net.corda.core.contracts.kotlin.collections.Collection -
+
+
+
+net.corda.core.contracts / kotlin.collections.Collection
+
+Extensions for kotlin.collections.Collection
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/kotlin.collections.-collection/require-single-command.html b/docs/build/html/api/net.corda.core.contracts/kotlin.collections.-collection/require-single-command.html
new file mode 100644
index 0000000000..cdeb723fc2
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/kotlin.collections.-collection/require-single-command.html
@@ -0,0 +1,17 @@
+
+
+requireSingleCommand -
+
+
+
+net.corda.core.contracts / kotlin.collections.Collection / requireSingleCommand
+
+requireSingleCommand
+
+inline fun < reified T : CommandData > Collection < AuthenticatedObject < CommandData > > . requireSingleCommand ( ) : <ERROR CLASS>
+
+fun < C : CommandData > Collection < AuthenticatedObject < CommandData > > . requireSingleCommand ( klass : Class < C > ) : <ERROR CLASS>
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/kotlin.collections.-collection/select.html b/docs/build/html/api/net.corda.core.contracts/kotlin.collections.-collection/select.html
new file mode 100644
index 0000000000..e7349e77f3
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/kotlin.collections.-collection/select.html
@@ -0,0 +1,21 @@
+
+
+select -
+
+
+
+net.corda.core.contracts / kotlin.collections.Collection / select
+
+select
+
+inline fun < reified T : CommandData > Collection < AuthenticatedObject < CommandData > > . select ( signer : PublicKey ? = null, party : Party ? = null) : <ERROR CLASS>
+Filters the command list by type, party and public key all at once.
+
+
+
+inline fun < reified T : CommandData > Collection < AuthenticatedObject < CommandData > > . select ( signers : Collection < PublicKey > ? , parties : Collection < Party > ? ) : <ERROR CLASS>
+Filters the command list by type, parties and public keys all at once.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/kotlin.collections.-iterable/filter-states-of-type.html b/docs/build/html/api/net.corda.core.contracts/kotlin.collections.-iterable/filter-states-of-type.html
new file mode 100644
index 0000000000..d8e54f7b5e
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/kotlin.collections.-iterable/filter-states-of-type.html
@@ -0,0 +1,16 @@
+
+
+filterStatesOfType -
+
+
+
+net.corda.core.contracts / kotlin.collections.Iterable / filterStatesOfType
+
+filterStatesOfType
+
+inline fun < reified T : ContractState > Iterable < StateAndRef < ContractState > > . filterStatesOfType ( ) : List < StateAndRef < T > >
+Filters a list of StateAndRef objects according to the type of the states
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/kotlin.collections.-iterable/index.html b/docs/build/html/api/net.corda.core.contracts/kotlin.collections.-iterable/index.html
new file mode 100644
index 0000000000..798f5ab2af
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/kotlin.collections.-iterable/index.html
@@ -0,0 +1,54 @@
+
+
+net.corda.core.contracts.kotlin.collections.Iterable -
+
+
+
+net.corda.core.contracts / kotlin.collections.Iterable
+
+Extensions for kotlin.collections.Iterable
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/kotlin.collections.-iterable/sum-fungible-or-null.html b/docs/build/html/api/net.corda.core.contracts/kotlin.collections.-iterable/sum-fungible-or-null.html
new file mode 100644
index 0000000000..9865f24dbe
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/kotlin.collections.-iterable/sum-fungible-or-null.html
@@ -0,0 +1,16 @@
+
+
+sumFungibleOrNull -
+
+
+
+net.corda.core.contracts / kotlin.collections.Iterable / sumFungibleOrNull
+
+sumFungibleOrNull
+
+fun < T > Iterable < ContractState > . sumFungibleOrNull ( ) : <ERROR CLASS>
+Sums the asset states in the list, returning null if there are none.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/kotlin.collections.-iterable/sum-fungible-or-zero.html b/docs/build/html/api/net.corda.core.contracts/kotlin.collections.-iterable/sum-fungible-or-zero.html
new file mode 100644
index 0000000000..b986195781
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/kotlin.collections.-iterable/sum-fungible-or-zero.html
@@ -0,0 +1,16 @@
+
+
+sumFungibleOrZero -
+
+
+
+net.corda.core.contracts / kotlin.collections.Iterable / sumFungibleOrZero
+
+sumFungibleOrZero
+
+fun < T > Iterable < ContractState > . sumFungibleOrZero ( token : Issued < T > ) : <ERROR CLASS>
+Sums the asset states in the list, returning zero of the given token if there are none.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/kotlin.collections.-iterable/sum-or-null.html b/docs/build/html/api/net.corda.core.contracts/kotlin.collections.-iterable/sum-or-null.html
new file mode 100644
index 0000000000..dec15d740e
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/kotlin.collections.-iterable/sum-or-null.html
@@ -0,0 +1,15 @@
+
+
+sumOrNull -
+
+
+
+net.corda.core.contracts / kotlin.collections.Iterable / sumOrNull
+
+sumOrNull
+
+fun < T > Iterable < Amount < T > > . sumOrNull ( ) : Nothing ?
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/kotlin.collections.-iterable/sum-or-throw.html b/docs/build/html/api/net.corda.core.contracts/kotlin.collections.-iterable/sum-or-throw.html
new file mode 100644
index 0000000000..12d5d4cc45
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/kotlin.collections.-iterable/sum-or-throw.html
@@ -0,0 +1,15 @@
+
+
+sumOrThrow -
+
+
+
+net.corda.core.contracts / kotlin.collections.Iterable / sumOrThrow
+
+sumOrThrow
+
+fun < T > Iterable < Amount < T > > . sumOrThrow ( ) : <ERROR CLASS>
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/kotlin.collections.-iterable/sum-or-zero.html b/docs/build/html/api/net.corda.core.contracts/kotlin.collections.-iterable/sum-or-zero.html
new file mode 100644
index 0000000000..5700b027a5
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/kotlin.collections.-iterable/sum-or-zero.html
@@ -0,0 +1,15 @@
+
+
+sumOrZero -
+
+
+
+net.corda.core.contracts / kotlin.collections.Iterable / sumOrZero
+
+sumOrZero
+
+fun < T > Iterable < Amount < T > > . sumOrZero ( currency : T ) : Amount < T >
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/require-that.html b/docs/build/html/api/net.corda.core.contracts/require-that.html
new file mode 100644
index 0000000000..af31c3c447
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/require-that.html
@@ -0,0 +1,15 @@
+
+
+requireThat -
+
+
+
+net.corda.core.contracts / requireThat
+
+requireThat
+
+inline fun < R > requireThat ( body : Requirements . ( ) -> R ) : R
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/verify-move-command.html b/docs/build/html/api/net.corda.core.contracts/verify-move-command.html
new file mode 100644
index 0000000000..cb92d05c85
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/verify-move-command.html
@@ -0,0 +1,21 @@
+
+
+verifyMoveCommand -
+
+
+
+net.corda.core.contracts / verifyMoveCommand
+
+verifyMoveCommand
+
+inline fun < reified T : MoveCommand > verifyMoveCommand ( inputs : List < OwnableState > , tx : TransactionForContract ) : MoveCommand
+
+inline fun < reified T : MoveCommand > verifyMoveCommand ( inputs : List < OwnableState > , commands : List < AuthenticatedObject < CommandData > > ) : MoveCommand
+Simple functionality for verifying a move command. Verifies that each input has a signature from its owning key.
+Parameters
+
+T
- the type of the move command.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/with notary.html b/docs/build/html/api/net.corda.core.contracts/with notary.html
new file mode 100644
index 0000000000..fd99223c2e
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/with notary.html
@@ -0,0 +1,16 @@
+
+
+with notary -
+
+
+
+net.corda.core.contracts / with notary
+
+with notary
+
+infix fun < T : ContractState > T . with notary ( newNotary : Party ) : TransactionState < T >
+Wraps the ContractState in a TransactionState object
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/with-notary.html b/docs/build/html/api/net.corda.core.contracts/with-notary.html
new file mode 100644
index 0000000000..337ee4bcab
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/with-notary.html
@@ -0,0 +1,15 @@
+
+
+withNotary -
+
+
+
+net.corda.core.contracts / withNotary
+
+withNotary
+
+infix fun < T : ContractState > T . withNotary ( newNotary : Party ) : TransactionState < T >
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.contracts/without-issuer.html b/docs/build/html/api/net.corda.core.contracts/without-issuer.html
new file mode 100644
index 0000000000..78ff69b8ab
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.contracts/without-issuer.html
@@ -0,0 +1,18 @@
+
+
+withoutIssuer -
+
+
+
+net.corda.core.contracts / withoutIssuer
+
+withoutIssuer
+
+fun < T > Amount < Issued < T > > . withoutIssuer ( ) : Amount < T >
+Strips the issuer and returns an Amount of the raw token directly. This is useful when you are mixing code that
+cares about specific issuers with code that will accept any, or which is imposing issuer constraints via some
+other mechanism and the additional type safety is not wanted.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.crypto/-digital-signature/-init-.html b/docs/build/html/api/net.corda.core.crypto/-digital-signature/-init-.html
new file mode 100644
index 0000000000..5c81c4d194
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.crypto/-digital-signature/-init-.html
@@ -0,0 +1,17 @@
+
+
+DigitalSignature. -
+
+
+
+net.corda.core.crypto / DigitalSignature / <init>
+
+<init>
+DigitalSignature ( bits : ByteArray )
+A wrapper around a digital signature. The covering field is a generic tag usable by whatever is interpreting the
+signature. It isnt used currently, but experience from Bitcoin suggests such a feature is useful, especially when
+building partially signed transactions.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.crypto/-digital-signature/-legally-identifiable/-init-.html b/docs/build/html/api/net.corda.core.crypto/-digital-signature/-legally-identifiable/-init-.html
new file mode 100644
index 0000000000..3f5b52b38a
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.crypto/-digital-signature/-legally-identifiable/-init-.html
@@ -0,0 +1,14 @@
+
+
+DigitalSignature.LegallyIdentifiable. -
+
+
+
+net.corda.core.crypto / DigitalSignature / LegallyIdentifiable / <init>
+
+<init>
+LegallyIdentifiable ( signer : Party , bits : ByteArray )
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.crypto/-digital-signature/-legally-identifiable/index.html b/docs/build/html/api/net.corda.core.crypto/-digital-signature/-legally-identifiable/index.html
new file mode 100644
index 0000000000..67a7a6dd00
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.crypto/-digital-signature/-legally-identifiable/index.html
@@ -0,0 +1,59 @@
+
+
+DigitalSignature.LegallyIdentifiable -
+
+
+
+net.corda.core.crypto / DigitalSignature / LegallyIdentifiable
+
+LegallyIdentifiable
+class LegallyIdentifiable : WithKey
+
+
+Constructors
+
+
+
+
+<init>
+
+LegallyIdentifiable ( signer : Party , bits : ByteArray )
+
+
+
+Properties
+
+Inherited Properties
+
+Inherited Functions
+
+
+
diff --git a/docs/build/html/api/net.corda.core.crypto/-digital-signature/-legally-identifiable/signer.html b/docs/build/html/api/net.corda.core.crypto/-digital-signature/-legally-identifiable/signer.html
new file mode 100644
index 0000000000..8a6f1f7fbe
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.crypto/-digital-signature/-legally-identifiable/signer.html
@@ -0,0 +1,15 @@
+
+
+DigitalSignature.LegallyIdentifiable.signer -
+
+
+
+net.corda.core.crypto / DigitalSignature / LegallyIdentifiable / signer
+
+signer
+
+val signer : Party
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.crypto/-digital-signature/-with-key/-init-.html b/docs/build/html/api/net.corda.core.crypto/-digital-signature/-with-key/-init-.html
new file mode 100644
index 0000000000..eade038434
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.crypto/-digital-signature/-with-key/-init-.html
@@ -0,0 +1,15 @@
+
+
+DigitalSignature.WithKey. -
+
+
+
+net.corda.core.crypto / DigitalSignature / WithKey / <init>
+
+<init>
+WithKey ( by : PublicKey , bits : ByteArray )
+A digital signature that identifies who the public key is owned by.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.crypto/-digital-signature/-with-key/by.html b/docs/build/html/api/net.corda.core.crypto/-digital-signature/-with-key/by.html
new file mode 100644
index 0000000000..5dfee2ac60
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.crypto/-digital-signature/-with-key/by.html
@@ -0,0 +1,15 @@
+
+
+DigitalSignature.WithKey.by -
+
+
+
+net.corda.core.crypto / DigitalSignature / WithKey / by
+
+by
+
+val by : PublicKey
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.crypto/-digital-signature/-with-key/index.html b/docs/build/html/api/net.corda.core.crypto/-digital-signature/-with-key/index.html
new file mode 100644
index 0000000000..fd16c3ee2c
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.crypto/-digital-signature/-with-key/index.html
@@ -0,0 +1,68 @@
+
+
+DigitalSignature.WithKey -
+
+
+
+net.corda.core.crypto / DigitalSignature / WithKey
+
+WithKey
+open class WithKey : DigitalSignature
+A digital signature that identifies who the public key is owned by.
+
+
+Constructors
+
+
+
+
+<init>
+
+WithKey ( by : PublicKey , bits : ByteArray )
A digital signature that identifies who the public key is owned by.
+
+
+
+
+Properties
+
+Functions
+
+Inheritors
+
+
+
+
+LegallyIdentifiable
+
+class LegallyIdentifiable : WithKey
+
+
+
+NullSignature
+
+object NullSignature : WithKey
A signature with a key and value of zero. Useful when you want a signature object that you know wont ever be used.
+
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.crypto/-digital-signature/-with-key/verify-with-e-c-d-s-a.html b/docs/build/html/api/net.corda.core.crypto/-digital-signature/-with-key/verify-with-e-c-d-s-a.html
new file mode 100644
index 0000000000..cce7934d6b
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.crypto/-digital-signature/-with-key/verify-with-e-c-d-s-a.html
@@ -0,0 +1,17 @@
+
+
+DigitalSignature.WithKey.verifyWithECDSA -
+
+
+
+net.corda.core.crypto / DigitalSignature / WithKey / verifyWithECDSA
+
+verifyWithECDSA
+
+fun verifyWithECDSA ( content : ByteArray ) : Unit
+
+fun verifyWithECDSA ( content : OpaqueBytes ) : Unit
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.crypto/-digital-signature/index.html b/docs/build/html/api/net.corda.core.crypto/-digital-signature/index.html
new file mode 100644
index 0000000000..e5a0fda1a3
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.crypto/-digital-signature/index.html
@@ -0,0 +1,125 @@
+
+
+DigitalSignature -
+
+
+
+net.corda.core.crypto / DigitalSignature
+
+DigitalSignature
+open class DigitalSignature : OpaqueBytes
+A wrapper around a digital signature. The covering field is a generic tag usable by whatever is interpreting the
+signature. It isnt used currently, but experience from Bitcoin suggests such a feature is useful, especially when
+building partially signed transactions.
+
+
+Types
+
+
+
+
+LegallyIdentifiable
+
+class LegallyIdentifiable : WithKey
+
+
+
+WithKey
+
+open class WithKey : DigitalSignature
A digital signature that identifies who the public key is owned by.
+
+
+
+
+Constructors
+
+
+
+
+<init>
+
+DigitalSignature ( bits : ByteArray )
A wrapper around a digital signature. The covering field is a generic tag usable by whatever is interpreting the
+signature. It isnt used currently, but experience from Bitcoin suggests such a feature is useful, especially when
+building partially signed transactions.
+
+
+
+
+Inherited Properties
+
+
+
+
+bits
+
+val bits : ByteArray
+
+
+
+size
+
+val size : Int
+
+
+
+Inherited Functions
+
+Extension Functions
+
+Inheritors
+
+
+
+
+WithKey
+
+open class WithKey : DigitalSignature
A digital signature that identifies who the public key is owned by.
+
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.crypto/-dummy-public-key/-init-.html b/docs/build/html/api/net.corda.core.crypto/-dummy-public-key/-init-.html
new file mode 100644
index 0000000000..d1a3ad2a4f
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.crypto/-dummy-public-key/-init-.html
@@ -0,0 +1,14 @@
+
+
+DummyPublicKey. -
+
+
+
+net.corda.core.crypto / DummyPublicKey / <init>
+
+<init>
+DummyPublicKey ( s : String )
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.crypto/-dummy-public-key/compare-to.html b/docs/build/html/api/net.corda.core.crypto/-dummy-public-key/compare-to.html
new file mode 100644
index 0000000000..60b290f4fe
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.crypto/-dummy-public-key/compare-to.html
@@ -0,0 +1,15 @@
+
+
+DummyPublicKey.compareTo -
+
+
+
+net.corda.core.crypto / DummyPublicKey / compareTo
+
+compareTo
+
+fun compareTo ( other : PublicKey ) : Int
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.crypto/-dummy-public-key/equals.html b/docs/build/html/api/net.corda.core.crypto/-dummy-public-key/equals.html
new file mode 100644
index 0000000000..227247915e
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.crypto/-dummy-public-key/equals.html
@@ -0,0 +1,15 @@
+
+
+DummyPublicKey.equals -
+
+
+
+net.corda.core.crypto / DummyPublicKey / equals
+
+equals
+
+fun equals ( other : Any ? ) : Boolean
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.crypto/-dummy-public-key/get-algorithm.html b/docs/build/html/api/net.corda.core.crypto/-dummy-public-key/get-algorithm.html
new file mode 100644
index 0000000000..ba4a98aa10
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.crypto/-dummy-public-key/get-algorithm.html
@@ -0,0 +1,15 @@
+
+
+DummyPublicKey.getAlgorithm -
+
+
+
+net.corda.core.crypto / DummyPublicKey / getAlgorithm
+
+getAlgorithm
+
+fun getAlgorithm ( ) : String
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.crypto/-dummy-public-key/get-encoded.html b/docs/build/html/api/net.corda.core.crypto/-dummy-public-key/get-encoded.html
new file mode 100644
index 0000000000..b888d9a182
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.crypto/-dummy-public-key/get-encoded.html
@@ -0,0 +1,15 @@
+
+
+DummyPublicKey.getEncoded -
+
+
+
+net.corda.core.crypto / DummyPublicKey / getEncoded
+
+getEncoded
+
+fun getEncoded ( ) : <ERROR CLASS>
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.crypto/-dummy-public-key/get-format.html b/docs/build/html/api/net.corda.core.crypto/-dummy-public-key/get-format.html
new file mode 100644
index 0000000000..b3e4a508bb
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.crypto/-dummy-public-key/get-format.html
@@ -0,0 +1,15 @@
+
+
+DummyPublicKey.getFormat -
+
+
+
+net.corda.core.crypto / DummyPublicKey / getFormat
+
+getFormat
+
+fun getFormat ( ) : String
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.crypto/-dummy-public-key/hash-code.html b/docs/build/html/api/net.corda.core.crypto/-dummy-public-key/hash-code.html
new file mode 100644
index 0000000000..b25da5c24c
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.crypto/-dummy-public-key/hash-code.html
@@ -0,0 +1,15 @@
+
+
+DummyPublicKey.hashCode -
+
+
+
+net.corda.core.crypto / DummyPublicKey / hashCode
+
+hashCode
+
+fun hashCode ( ) : Int
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.crypto/-dummy-public-key/index.html b/docs/build/html/api/net.corda.core.crypto/-dummy-public-key/index.html
new file mode 100644
index 0000000000..193f57dfba
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.crypto/-dummy-public-key/index.html
@@ -0,0 +1,120 @@
+
+
+DummyPublicKey -
+
+
+
+net.corda.core.crypto / DummyPublicKey
+
+DummyPublicKey
+class DummyPublicKey : PublicKey , Comparable < PublicKey >
+
+
+Constructors
+
+
+
+
+<init>
+
+DummyPublicKey ( s : String )
+
+
+
+Properties
+
+
+
+
+s
+
+val s : String
+
+
+
+Functions
+
+Extension Properties
+
+Extension Functions
+
+
+
diff --git a/docs/build/html/api/net.corda.core.crypto/-dummy-public-key/s.html b/docs/build/html/api/net.corda.core.crypto/-dummy-public-key/s.html
new file mode 100644
index 0000000000..729b988afb
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.crypto/-dummy-public-key/s.html
@@ -0,0 +1,15 @@
+
+
+DummyPublicKey.s -
+
+
+
+net.corda.core.crypto / DummyPublicKey / s
+
+s
+
+val s : String
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.crypto/-dummy-public-key/to-string.html b/docs/build/html/api/net.corda.core.crypto/-dummy-public-key/to-string.html
new file mode 100644
index 0000000000..dd357f4f98
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.crypto/-dummy-public-key/to-string.html
@@ -0,0 +1,15 @@
+
+
+DummyPublicKey.toString -
+
+
+
+net.corda.core.crypto / DummyPublicKey / toString
+
+toString
+
+fun toString ( ) : String
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.crypto/-merkle-tree-exception/-init-.html b/docs/build/html/api/net.corda.core.crypto/-merkle-tree-exception/-init-.html
new file mode 100644
index 0000000000..93c67e9aff
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.crypto/-merkle-tree-exception/-init-.html
@@ -0,0 +1,14 @@
+
+
+MerkleTreeException. -
+
+
+
+net.corda.core.crypto / MerkleTreeException / <init>
+
+<init>
+MerkleTreeException ( reason : String )
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.crypto/-merkle-tree-exception/index.html b/docs/build/html/api/net.corda.core.crypto/-merkle-tree-exception/index.html
new file mode 100644
index 0000000000..94740855c5
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.crypto/-merkle-tree-exception/index.html
@@ -0,0 +1,58 @@
+
+
+MerkleTreeException -
+
+
+
+net.corda.core.crypto / MerkleTreeException
+
+MerkleTreeException
+class MerkleTreeException : Exception
+
+
+Constructors
+
+
+
+
+<init>
+
+MerkleTreeException ( reason : String )
+
+
+
+Properties
+
+
+
+
+reason
+
+val reason : String
+
+
+
+Functions
+
+
+
+
+toString
+
+fun toString ( ) : String
+
+
+
+Extension Properties
+
+
+
+
+rootCause
+
+val Throwable . rootCause : Throwable
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.crypto/-merkle-tree-exception/reason.html b/docs/build/html/api/net.corda.core.crypto/-merkle-tree-exception/reason.html
new file mode 100644
index 0000000000..e5ce7cbc0d
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.crypto/-merkle-tree-exception/reason.html
@@ -0,0 +1,15 @@
+
+
+MerkleTreeException.reason -
+
+
+
+net.corda.core.crypto / MerkleTreeException / reason
+
+reason
+
+val reason : String
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.crypto/-merkle-tree-exception/to-string.html b/docs/build/html/api/net.corda.core.crypto/-merkle-tree-exception/to-string.html
new file mode 100644
index 0000000000..5027ff3ca9
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.crypto/-merkle-tree-exception/to-string.html
@@ -0,0 +1,15 @@
+
+
+MerkleTreeException.toString -
+
+
+
+net.corda.core.crypto / MerkleTreeException / toString
+
+toString
+
+fun toString ( ) : String
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.crypto/-null-public-key/compare-to.html b/docs/build/html/api/net.corda.core.crypto/-null-public-key/compare-to.html
new file mode 100644
index 0000000000..2b4f33e5b8
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.crypto/-null-public-key/compare-to.html
@@ -0,0 +1,15 @@
+
+
+NullPublicKey.compareTo -
+
+
+
+net.corda.core.crypto / NullPublicKey / compareTo
+
+compareTo
+
+fun compareTo ( other : PublicKey ) : Int
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.crypto/-null-public-key/get-algorithm.html b/docs/build/html/api/net.corda.core.crypto/-null-public-key/get-algorithm.html
new file mode 100644
index 0000000000..98aecd20ea
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.crypto/-null-public-key/get-algorithm.html
@@ -0,0 +1,15 @@
+
+
+NullPublicKey.getAlgorithm -
+
+
+
+net.corda.core.crypto / NullPublicKey / getAlgorithm
+
+getAlgorithm
+
+fun getAlgorithm ( ) : String
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.crypto/-null-public-key/get-encoded.html b/docs/build/html/api/net.corda.core.crypto/-null-public-key/get-encoded.html
new file mode 100644
index 0000000000..fcf1032964
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.crypto/-null-public-key/get-encoded.html
@@ -0,0 +1,15 @@
+
+
+NullPublicKey.getEncoded -
+
+
+
+net.corda.core.crypto / NullPublicKey / getEncoded
+
+getEncoded
+
+fun getEncoded ( ) : ByteArray
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.crypto/-null-public-key/get-format.html b/docs/build/html/api/net.corda.core.crypto/-null-public-key/get-format.html
new file mode 100644
index 0000000000..e36558ee5d
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.crypto/-null-public-key/get-format.html
@@ -0,0 +1,15 @@
+
+
+NullPublicKey.getFormat -
+
+
+
+net.corda.core.crypto / NullPublicKey / getFormat
+
+getFormat
+
+fun getFormat ( ) : String
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.crypto/-null-public-key/index.html b/docs/build/html/api/net.corda.core.crypto/-null-public-key/index.html
new file mode 100644
index 0000000000..dfa68567eb
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.crypto/-null-public-key/index.html
@@ -0,0 +1,86 @@
+
+
+NullPublicKey -
+
+
+
+net.corda.core.crypto / NullPublicKey
+
+NullPublicKey
+object NullPublicKey : PublicKey , Comparable < PublicKey >
+
+
+Functions
+
+Extension Properties
+
+Extension Functions
+
+
+
diff --git a/docs/build/html/api/net.corda.core.crypto/-null-public-key/to-string.html b/docs/build/html/api/net.corda.core.crypto/-null-public-key/to-string.html
new file mode 100644
index 0000000000..a8df06b2f8
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.crypto/-null-public-key/to-string.html
@@ -0,0 +1,15 @@
+
+
+NullPublicKey.toString -
+
+
+
+net.corda.core.crypto / NullPublicKey / toString
+
+toString
+
+fun toString ( ) : String
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.crypto/-null-signature.html b/docs/build/html/api/net.corda.core.crypto/-null-signature.html
new file mode 100644
index 0000000000..3b32809397
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.crypto/-null-signature.html
@@ -0,0 +1,55 @@
+
+
+NullSignature -
+
+
+
+net.corda.core.crypto / NullSignature
+
+NullSignature
+object NullSignature : WithKey
+A signature with a key and value of zero. Useful when you want a signature object that you know wont ever be used.
+
+
+Inherited Properties
+
+Inherited Functions
+
+Extension Functions
+
+
+
diff --git a/docs/build/html/api/net.corda.core.crypto/-partial-merkle-tree/-init-.html b/docs/build/html/api/net.corda.core.crypto/-partial-merkle-tree/-init-.html
new file mode 100644
index 0000000000..8557cb72fa
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.crypto/-partial-merkle-tree/-init-.html
@@ -0,0 +1,43 @@
+
+
+PartialMerkleTree. -
+
+
+
+net.corda.core.crypto / PartialMerkleTree / <init>
+
+<init>
+PartialMerkleTree ( root : PartialTree )
+Building and verification of Partial Merkle Tree.
+Partial Merkle Tree is a minimal tree needed to check that a given set of leaves belongs to a full Merkle Tree.
+Example of Merkle tree with 5 leaves.
+h15
+/ \
+h14 h55
+/ \ / \
+h12 h34 h5->d(h5)
+/ \ / \ / \
+l1 l2 l3 l4 l5->d(l5)
+l* denote hashes of leaves, h* - hashes of nodes below.
+h5->d(h5) denotes duplication of the left hand side node. These nodes are kept in a full tree as DuplicatedLeaf.
+When filtering the tree for l5, we dont want to keep both l5 and its duplicate (it can also be solved using null
+values in a tree, but this solution is clearer).
+Example of Partial tree based on the tree above.
+/ \
+_ _
+/ \ / \
+h12 _ _ d(h5)
+/ \ / \
+I3 l4 I5 d(l5)
+We want to check l3 and l5 - now turned into IncudedLeaf (I3 and I5 above). To verify that these two leaves belong to
+the tree with a hash root h15 we need to provide a Merkle branch (or partial tree). In our case we need hashes:
+h12, l4, d(l5) and d(h5). Verification is done by hashing the partial tree to obtain the root and checking it against
+the obtained h15 hash. Additionally we store included hashes used in calculation and compare them to leaves hashes we got
+(there can be a difference in obtained leaves ordering - thats why its a set comparison not hashing leaves into a tree).
+If both equalities hold, we can assume that l3 and l5 belong to the transaction with root h15.
+
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.crypto/-partial-merkle-tree/-partial-tree/-included-leaf/-init-.html b/docs/build/html/api/net.corda.core.crypto/-partial-merkle-tree/-partial-tree/-included-leaf/-init-.html
new file mode 100644
index 0000000000..0df266fb06
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.crypto/-partial-merkle-tree/-partial-tree/-included-leaf/-init-.html
@@ -0,0 +1,14 @@
+
+
+PartialMerkleTree.PartialTree.IncludedLeaf. -
+
+
+
+net.corda.core.crypto / PartialMerkleTree / PartialTree / IncludedLeaf / <init>
+
+<init>
+IncludedLeaf ( hash : SecureHash )
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.crypto/-partial-merkle-tree/-partial-tree/-included-leaf/hash.html b/docs/build/html/api/net.corda.core.crypto/-partial-merkle-tree/-partial-tree/-included-leaf/hash.html
new file mode 100644
index 0000000000..0924bb43a4
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.crypto/-partial-merkle-tree/-partial-tree/-included-leaf/hash.html
@@ -0,0 +1,15 @@
+
+
+PartialMerkleTree.PartialTree.IncludedLeaf.hash -
+
+
+
+net.corda.core.crypto / PartialMerkleTree / PartialTree / IncludedLeaf / hash
+
+hash
+
+val hash : SecureHash
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.crypto/-partial-merkle-tree/-partial-tree/-included-leaf/index.html b/docs/build/html/api/net.corda.core.crypto/-partial-merkle-tree/-partial-tree/-included-leaf/index.html
new file mode 100644
index 0000000000..73d6df8098
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.crypto/-partial-merkle-tree/-partial-tree/-included-leaf/index.html
@@ -0,0 +1,36 @@
+
+
+PartialMerkleTree.PartialTree.IncludedLeaf -
+
+
+
+net.corda.core.crypto / PartialMerkleTree / PartialTree / IncludedLeaf
+
+IncludedLeaf
+class IncludedLeaf : PartialTree
+
+
+Constructors
+
+Properties
+
+
+
diff --git a/docs/build/html/api/net.corda.core.crypto/-partial-merkle-tree/-partial-tree/-leaf/-init-.html b/docs/build/html/api/net.corda.core.crypto/-partial-merkle-tree/-partial-tree/-leaf/-init-.html
new file mode 100644
index 0000000000..c8d24a7c21
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.crypto/-partial-merkle-tree/-partial-tree/-leaf/-init-.html
@@ -0,0 +1,14 @@
+
+
+PartialMerkleTree.PartialTree.Leaf. -
+
+
+
+net.corda.core.crypto / PartialMerkleTree / PartialTree / Leaf / <init>
+
+<init>
+Leaf ( hash : SecureHash )
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.crypto/-partial-merkle-tree/-partial-tree/-leaf/hash.html b/docs/build/html/api/net.corda.core.crypto/-partial-merkle-tree/-partial-tree/-leaf/hash.html
new file mode 100644
index 0000000000..5e5f37f318
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.crypto/-partial-merkle-tree/-partial-tree/-leaf/hash.html
@@ -0,0 +1,15 @@
+
+
+PartialMerkleTree.PartialTree.Leaf.hash -
+
+
+
+net.corda.core.crypto / PartialMerkleTree / PartialTree / Leaf / hash
+
+hash
+
+val hash : SecureHash
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.crypto/-partial-merkle-tree/-partial-tree/-leaf/index.html b/docs/build/html/api/net.corda.core.crypto/-partial-merkle-tree/-partial-tree/-leaf/index.html
new file mode 100644
index 0000000000..7605e31253
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.crypto/-partial-merkle-tree/-partial-tree/-leaf/index.html
@@ -0,0 +1,36 @@
+
+
+PartialMerkleTree.PartialTree.Leaf -
+
+
+
+net.corda.core.crypto / PartialMerkleTree / PartialTree / Leaf
+
+Leaf
+class Leaf : PartialTree
+
+
+Constructors
+
+Properties
+
+
+
diff --git a/docs/build/html/api/net.corda.core.crypto/-partial-merkle-tree/-partial-tree/-node/-init-.html b/docs/build/html/api/net.corda.core.crypto/-partial-merkle-tree/-partial-tree/-node/-init-.html
new file mode 100644
index 0000000000..0dcd8b6dd7
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.crypto/-partial-merkle-tree/-partial-tree/-node/-init-.html
@@ -0,0 +1,14 @@
+
+
+PartialMerkleTree.PartialTree.Node. -
+
+
+
+net.corda.core.crypto / PartialMerkleTree / PartialTree / Node / <init>
+
+<init>
+Node ( left : PartialTree , right : PartialTree )
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.crypto/-partial-merkle-tree/-partial-tree/-node/index.html b/docs/build/html/api/net.corda.core.crypto/-partial-merkle-tree/-partial-tree/-node/index.html
new file mode 100644
index 0000000000..54e233d927
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.crypto/-partial-merkle-tree/-partial-tree/-node/index.html
@@ -0,0 +1,42 @@
+
+
+PartialMerkleTree.PartialTree.Node -
+
+
+
+net.corda.core.crypto / PartialMerkleTree / PartialTree / Node
+
+Node
+class Node : PartialTree
+
+
+Constructors
+
+Properties
+
+
+
diff --git a/docs/build/html/api/net.corda.core.crypto/-partial-merkle-tree/-partial-tree/-node/left.html b/docs/build/html/api/net.corda.core.crypto/-partial-merkle-tree/-partial-tree/-node/left.html
new file mode 100644
index 0000000000..31797ce24a
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.crypto/-partial-merkle-tree/-partial-tree/-node/left.html
@@ -0,0 +1,15 @@
+
+
+PartialMerkleTree.PartialTree.Node.left -
+
+
+
+net.corda.core.crypto / PartialMerkleTree / PartialTree / Node / left
+
+left
+
+val left : PartialTree
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.crypto/-partial-merkle-tree/-partial-tree/-node/right.html b/docs/build/html/api/net.corda.core.crypto/-partial-merkle-tree/-partial-tree/-node/right.html
new file mode 100644
index 0000000000..c905a453d5
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.crypto/-partial-merkle-tree/-partial-tree/-node/right.html
@@ -0,0 +1,15 @@
+
+
+PartialMerkleTree.PartialTree.Node.right -
+
+
+
+net.corda.core.crypto / PartialMerkleTree / PartialTree / Node / right
+
+right
+
+val right : PartialTree
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.crypto/-partial-merkle-tree/-partial-tree/index.html b/docs/build/html/api/net.corda.core.crypto/-partial-merkle-tree/-partial-tree/index.html
new file mode 100644
index 0000000000..65d0225d92
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.crypto/-partial-merkle-tree/-partial-tree/index.html
@@ -0,0 +1,65 @@
+
+
+PartialMerkleTree.PartialTree -
+
+
+
+net.corda.core.crypto / PartialMerkleTree / PartialTree
+
+PartialTree
+sealed class PartialTree
+The structure is a little different than that of Merkle Tree.
+Partial Tree might not be a full binary tree. Leaves represent either original Merkle tree leaves
+or cut subtree node with stored hash. We differentiate between the leaves that are included in a filtered
+transaction and leaves that just keep hashes needed for calculation. Reason for this approach: during verification
+its easier to extract hashes used as a base for this tree.
+
+
+Types
+
+
+
+
+IncludedLeaf
+
+class IncludedLeaf : PartialTree
+
+
+
+Leaf
+
+class Leaf : PartialTree
+
+
+
+Node
+
+class Node : PartialTree
+
+
+
+Inheritors
+
+
+
+
+IncludedLeaf
+
+class IncludedLeaf : PartialTree
+
+
+
+Leaf
+
+class Leaf : PartialTree
+
+
+
+Node
+
+class Node : PartialTree
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.crypto/-partial-merkle-tree/build.html b/docs/build/html/api/net.corda.core.crypto/-partial-merkle-tree/build.html
new file mode 100644
index 0000000000..8ae2691537
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.crypto/-partial-merkle-tree/build.html
@@ -0,0 +1,23 @@
+
+
+PartialMerkleTree.build -
+
+
+
+net.corda.core.crypto / PartialMerkleTree / build
+
+build
+
+fun build ( merkleRoot : MerkleTree , includeHashes : List < SecureHash > ) : PartialMerkleTree
+Parameters
+
+merkleRoot
- Root of full Merkle tree.
+
+
+includeHashes
- Hashes that should be included in a partial tree.
+Return
+Partial Merkle tree root.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.crypto/-partial-merkle-tree/index.html b/docs/build/html/api/net.corda.core.crypto/-partial-merkle-tree/index.html
new file mode 100644
index 0000000000..5f55d2dddc
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.crypto/-partial-merkle-tree/index.html
@@ -0,0 +1,105 @@
+
+
+PartialMerkleTree -
+
+
+
+net.corda.core.crypto / PartialMerkleTree
+
+PartialMerkleTree
+class PartialMerkleTree
+Building and verification of Partial Merkle Tree.
+Partial Merkle Tree is a minimal tree needed to check that a given set of leaves belongs to a full Merkle Tree.
+Example of Merkle tree with 5 leaves.
+h15
+/ \
+h14 h55
+/ \ / \
+h12 h34 h5->d(h5)
+/ \ / \ / \
+l1 l2 l3 l4 l5->d(l5)
+l* denote hashes of leaves, h* - hashes of nodes below.
+h5->d(h5) denotes duplication of the left hand side node. These nodes are kept in a full tree as DuplicatedLeaf.
+When filtering the tree for l5, we dont want to keep both l5 and its duplicate (it can also be solved using null
+values in a tree, but this solution is clearer).
+Example of Partial tree based on the tree above.
+/ \
+_ _
+/ \ / \
+h12 _ _ d(h5)
+/ \ / \
+I3 l4 I5 d(l5)
+We want to check l3 and l5 - now turned into IncudedLeaf (I3 and I5 above). To verify that these two leaves belong to
+the tree with a hash root h15 we need to provide a Merkle branch (or partial tree). In our case we need hashes:
+h12, l4, d(l5) and d(h5). Verification is done by hashing the partial tree to obtain the root and checking it against
+the obtained h15 hash. Additionally we store included hashes used in calculation and compare them to leaves hashes we got
+(there can be a difference in obtained leaves ordering - thats why its a set comparison not hashing leaves into a tree).
+If both equalities hold, we can assume that l3 and l5 belong to the transaction with root h15.
+
+
+
+
+Types
+
+
+
+
+PartialTree
+
+sealed class PartialTree
The structure is a little different than that of Merkle Tree.
+Partial Tree might not be a full binary tree. Leaves represent either original Merkle tree leaves
+or cut subtree node with stored hash. We differentiate between the leaves that are included in a filtered
+transaction and leaves that just keep hashes needed for calculation. Reason for this approach: during verification
+its easier to extract hashes used as a base for this tree.
+
+
+
+
+Constructors
+
+
+
+
+<init>
+
+PartialMerkleTree ( root : PartialTree )
Building and verification of Partial Merkle Tree.
+Partial Merkle Tree is a minimal tree needed to check that a given set of leaves belongs to a full Merkle Tree.
+
+
+
+
+Properties
+
+Functions
+
+Companion Object Functions
+
+
+
diff --git a/docs/build/html/api/net.corda.core.crypto/-partial-merkle-tree/root.html b/docs/build/html/api/net.corda.core.crypto/-partial-merkle-tree/root.html
new file mode 100644
index 0000000000..00dcec3a50
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.crypto/-partial-merkle-tree/root.html
@@ -0,0 +1,15 @@
+
+
+PartialMerkleTree.root -
+
+
+
+net.corda.core.crypto / PartialMerkleTree / root
+
+root
+
+val root : PartialTree
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.crypto/-partial-merkle-tree/verify.html b/docs/build/html/api/net.corda.core.crypto/-partial-merkle-tree/verify.html
new file mode 100644
index 0000000000..f9cdb10c11
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.crypto/-partial-merkle-tree/verify.html
@@ -0,0 +1,21 @@
+
+
+PartialMerkleTree.verify -
+
+
+
+net.corda.core.crypto / PartialMerkleTree / verify
+
+verify
+
+fun verify ( merkleRootHash : SecureHash , hashesToCheck : List < SecureHash > ) : Boolean
+Parameters
+
+merkleRootHash
- Hash that should be checked for equality with root calculated from this partial tree.
+
+
+hashesToCheck
- List of included leaves hashes that should be found in this partial tree.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.crypto/-party/-init-.html b/docs/build/html/api/net.corda.core.crypto/-party/-init-.html
new file mode 100644
index 0000000000..eacb39d1a0
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.crypto/-party/-init-.html
@@ -0,0 +1,15 @@
+
+
+Party. -
+
+
+
+net.corda.core.crypto / Party / <init>
+
+<init>
+Party ( name : String , owningKey : PublicKey )
+A Party is well known (name, pubkey) pair. In a real system this would probably be an X.509 certificate.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.crypto/-party/index.html b/docs/build/html/api/net.corda.core.crypto/-party/index.html
new file mode 100644
index 0000000000..f1b469c912
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.crypto/-party/index.html
@@ -0,0 +1,62 @@
+
+
+Party -
+
+
+
+net.corda.core.crypto / Party
+
+Party
+data class Party
+A Party is well known (name, pubkey) pair. In a real system this would probably be an X.509 certificate.
+
+
+Constructors
+
+
+
+
+<init>
+
+Party ( name : String , owningKey : PublicKey )
A Party is well known (name, pubkey) pair. In a real system this would probably be an X.509 certificate.
+
+
+
+
+Properties
+
+Functions
+
+
+
diff --git a/docs/build/html/api/net.corda.core.crypto/-party/name.html b/docs/build/html/api/net.corda.core.crypto/-party/name.html
new file mode 100644
index 0000000000..022ea2da86
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.crypto/-party/name.html
@@ -0,0 +1,15 @@
+
+
+Party.name -
+
+
+
+net.corda.core.crypto / Party / name
+
+name
+
+val name : String
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.crypto/-party/owning-key.html b/docs/build/html/api/net.corda.core.crypto/-party/owning-key.html
new file mode 100644
index 0000000000..ed2894c184
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.crypto/-party/owning-key.html
@@ -0,0 +1,15 @@
+
+
+Party.owningKey -
+
+
+
+net.corda.core.crypto / Party / owningKey
+
+owningKey
+
+val owningKey : PublicKey
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.crypto/-party/ref.html b/docs/build/html/api/net.corda.core.crypto/-party/ref.html
new file mode 100644
index 0000000000..7a978fcd08
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.crypto/-party/ref.html
@@ -0,0 +1,17 @@
+
+
+Party.ref -
+
+
+
+net.corda.core.crypto / Party / ref
+
+ref
+
+fun ref ( bytes : OpaqueBytes ) : PartyAndReference
+
+fun ref ( vararg bytes : Byte ) : PartyAndReference
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.crypto/-party/to-string.html b/docs/build/html/api/net.corda.core.crypto/-party/to-string.html
new file mode 100644
index 0000000000..5c86684eda
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.crypto/-party/to-string.html
@@ -0,0 +1,15 @@
+
+
+Party.toString -
+
+
+
+net.corda.core.crypto / Party / toString
+
+toString
+
+fun toString ( ) : String
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.crypto/-public-key-tree/-builder/-init-.html b/docs/build/html/api/net.corda.core.crypto/-public-key-tree/-builder/-init-.html
new file mode 100644
index 0000000000..b259e1f3fd
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.crypto/-public-key-tree/-builder/-init-.html
@@ -0,0 +1,15 @@
+
+
+PublicKeyTree.Builder. -
+
+
+
+net.corda.core.crypto / PublicKeyTree / Builder / <init>
+
+<init>
+Builder ( )
+A helper class for building a PublicKeyTree.Node .
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.crypto/-public-key-tree/-builder/add-key.html b/docs/build/html/api/net.corda.core.crypto/-public-key-tree/-builder/add-key.html
new file mode 100644
index 0000000000..c8878f45af
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.crypto/-public-key-tree/-builder/add-key.html
@@ -0,0 +1,16 @@
+
+
+PublicKeyTree.Builder.addKey -
+
+
+
+net.corda.core.crypto / PublicKeyTree / Builder / addKey
+
+addKey
+
+fun addKey ( publicKey : PublicKeyTree , weight : Int = 1) : Builder
+Adds a child PublicKeyTree node. Specifying a weight for the child is optional and will default to 1.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.crypto/-public-key-tree/-builder/add-keys.html b/docs/build/html/api/net.corda.core.crypto/-public-key-tree/-builder/add-keys.html
new file mode 100644
index 0000000000..5a9bc7af4f
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.crypto/-public-key-tree/-builder/add-keys.html
@@ -0,0 +1,15 @@
+
+
+PublicKeyTree.Builder.addKeys -
+
+
+
+net.corda.core.crypto / PublicKeyTree / Builder / addKeys
+
+addKeys
+
+fun addKeys ( vararg publicKeys : PublicKeyTree ) : Builder
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.crypto/-public-key-tree/-builder/add-leaves.html b/docs/build/html/api/net.corda.core.crypto/-public-key-tree/-builder/add-leaves.html
new file mode 100644
index 0000000000..a39bc90ed7
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.crypto/-public-key-tree/-builder/add-leaves.html
@@ -0,0 +1,17 @@
+
+
+PublicKeyTree.Builder.addLeaves -
+
+
+
+net.corda.core.crypto / PublicKeyTree / Builder / addLeaves
+
+addLeaves
+
+fun addLeaves ( publicKeys : List < PublicKey > ) : Builder
+
+fun addLeaves ( vararg publicKeys : PublicKey ) : Builder
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.crypto/-public-key-tree/-builder/build.html b/docs/build/html/api/net.corda.core.crypto/-public-key-tree/-builder/build.html
new file mode 100644
index 0000000000..5313ab4931
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.crypto/-public-key-tree/-builder/build.html
@@ -0,0 +1,17 @@
+
+
+PublicKeyTree.Builder.build -
+
+
+
+net.corda.core.crypto / PublicKeyTree / Builder / build
+
+build
+
+fun build ( threshold : Int ? = null) : PublicKeyTree
+Builds the PublicKeyTree.Node . If threshold is not specified, it will default to
+the size of the children, effectively generating an "N of N" requirement.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.crypto/-public-key-tree/-builder/index.html b/docs/build/html/api/net.corda.core.crypto/-public-key-tree/-builder/index.html
new file mode 100644
index 0000000000..e0f49523f7
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.crypto/-public-key-tree/-builder/index.html
@@ -0,0 +1,60 @@
+
+
+PublicKeyTree.Builder -
+
+
+
+net.corda.core.crypto / PublicKeyTree / Builder
+
+Builder
+class Builder
+A helper class for building a PublicKeyTree.Node .
+
+
+Constructors
+
+Functions
+
+
+
diff --git a/docs/build/html/api/net.corda.core.crypto/-public-key-tree/-leaf/-init-.html b/docs/build/html/api/net.corda.core.crypto/-public-key-tree/-leaf/-init-.html
new file mode 100644
index 0000000000..62f573f4af
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.crypto/-public-key-tree/-leaf/-init-.html
@@ -0,0 +1,15 @@
+
+
+PublicKeyTree.Leaf. -
+
+
+
+net.corda.core.crypto / PublicKeyTree / Leaf / <init>
+
+<init>
+Leaf ( publicKey : PublicKey )
+The leaf node of the public key tree – a wrapper around a PublicKey primitive
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.crypto/-public-key-tree/-leaf/equals.html b/docs/build/html/api/net.corda.core.crypto/-public-key-tree/-leaf/equals.html
new file mode 100644
index 0000000000..bddacd1a2b
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.crypto/-public-key-tree/-leaf/equals.html
@@ -0,0 +1,15 @@
+
+
+PublicKeyTree.Leaf.equals -
+
+
+
+net.corda.core.crypto / PublicKeyTree / Leaf / equals
+
+equals
+
+fun equals ( other : Any ? ) : Boolean
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.crypto/-public-key-tree/-leaf/get-keys.html b/docs/build/html/api/net.corda.core.crypto/-public-key-tree/-leaf/get-keys.html
new file mode 100644
index 0000000000..0157b9ee0d
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.crypto/-public-key-tree/-leaf/get-keys.html
@@ -0,0 +1,17 @@
+
+
+PublicKeyTree.Leaf.getKeys -
+
+
+
+net.corda.core.crypto / PublicKeyTree / Leaf / getKeys
+
+getKeys
+
+fun getKeys ( ) : Set < PublicKey >
+Overrides PublicKeyTree.getKeys
+Returns all PublicKey s contained within the tree leaves
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.crypto/-public-key-tree/-leaf/hash-code.html b/docs/build/html/api/net.corda.core.crypto/-public-key-tree/-leaf/hash-code.html
new file mode 100644
index 0000000000..35b7981be7
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.crypto/-public-key-tree/-leaf/hash-code.html
@@ -0,0 +1,15 @@
+
+
+PublicKeyTree.Leaf.hashCode -
+
+
+
+net.corda.core.crypto / PublicKeyTree / Leaf / hashCode
+
+hashCode
+
+fun hashCode ( ) : Int
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.crypto/-public-key-tree/-leaf/index.html b/docs/build/html/api/net.corda.core.crypto/-public-key-tree/-leaf/index.html
new file mode 100644
index 0000000000..4efee75cc9
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.crypto/-public-key-tree/-leaf/index.html
@@ -0,0 +1,93 @@
+
+
+PublicKeyTree.Leaf -
+
+
+
+net.corda.core.crypto / PublicKeyTree / Leaf
+
+Leaf
+class Leaf : PublicKeyTree
+The leaf node of the public key tree – a wrapper around a PublicKey primitive
+
+
+Constructors
+
+
+
+
+<init>
+
+Leaf ( publicKey : PublicKey )
The leaf node of the public key tree – a wrapper around a PublicKey primitive
+
+
+
+
+Properties
+
+Functions
+
+
+
+
+equals
+
+fun equals ( other : Any ? ) : Boolean
+
+
+
+getKeys
+
+fun getKeys ( ) : Set < PublicKey >
Returns all PublicKey s contained within the tree leaves
+
+
+
+
+hashCode
+
+fun hashCode ( ) : Int
+
+
+
+isFulfilledBy
+
+fun isFulfilledBy ( keys : Iterable < PublicKey > ) : <ERROR CLASS>
Checks whether keys match a sufficient amount of leaf nodes
+
+
+
+
+Inherited Functions
+
+
+
diff --git a/docs/build/html/api/net.corda.core.crypto/-public-key-tree/-leaf/is-fulfilled-by.html b/docs/build/html/api/net.corda.core.crypto/-public-key-tree/-leaf/is-fulfilled-by.html
new file mode 100644
index 0000000000..c48af736ff
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.crypto/-public-key-tree/-leaf/is-fulfilled-by.html
@@ -0,0 +1,17 @@
+
+
+PublicKeyTree.Leaf.isFulfilledBy -
+
+
+
+net.corda.core.crypto / PublicKeyTree / Leaf / isFulfilledBy
+
+isFulfilledBy
+
+fun isFulfilledBy ( keys : Iterable < PublicKey > ) : <ERROR CLASS>
+Overrides PublicKeyTree.isFulfilledBy
+Checks whether keys match a sufficient amount of leaf nodes
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.crypto/-public-key-tree/-leaf/public-key.html b/docs/build/html/api/net.corda.core.crypto/-public-key-tree/-leaf/public-key.html
new file mode 100644
index 0000000000..c511142083
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.crypto/-public-key-tree/-leaf/public-key.html
@@ -0,0 +1,15 @@
+
+
+PublicKeyTree.Leaf.publicKey -
+
+
+
+net.corda.core.crypto / PublicKeyTree / Leaf / publicKey
+
+publicKey
+
+val publicKey : PublicKey
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.crypto/-public-key-tree/-node/-init-.html b/docs/build/html/api/net.corda.core.crypto/-public-key-tree/-node/-init-.html
new file mode 100644
index 0000000000..72dd55993b
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.crypto/-public-key-tree/-node/-init-.html
@@ -0,0 +1,20 @@
+
+
+PublicKeyTree.Node. -
+
+
+
+net.corda.core.crypto / PublicKeyTree / Node / <init>
+
+<init>
+Node ( threshold : Int , children : List < PublicKeyTree > , weights : List < Int > )
+Represents a node in the PublicKeyTree . It maintains a list of child nodes – sub-trees, and associated
+weights carried by child node signatures.
+The threshold specifies the minimum total weight required (in the simple case – the minimum number of child
+signatures required) to satisfy the public key sub-tree rooted at this node.
+
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.crypto/-public-key-tree/-node/children.html b/docs/build/html/api/net.corda.core.crypto/-public-key-tree/-node/children.html
new file mode 100644
index 0000000000..f0ed86d63a
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.crypto/-public-key-tree/-node/children.html
@@ -0,0 +1,15 @@
+
+
+PublicKeyTree.Node.children -
+
+
+
+net.corda.core.crypto / PublicKeyTree / Node / children
+
+children
+
+val children : List < PublicKeyTree >
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.crypto/-public-key-tree/-node/equals.html b/docs/build/html/api/net.corda.core.crypto/-public-key-tree/-node/equals.html
new file mode 100644
index 0000000000..3426be9b3b
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.crypto/-public-key-tree/-node/equals.html
@@ -0,0 +1,15 @@
+
+
+PublicKeyTree.Node.equals -
+
+
+
+net.corda.core.crypto / PublicKeyTree / Node / equals
+
+equals
+
+fun equals ( other : Any ? ) : Boolean
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.crypto/-public-key-tree/-node/get-keys.html b/docs/build/html/api/net.corda.core.crypto/-public-key-tree/-node/get-keys.html
new file mode 100644
index 0000000000..cd8cfa099f
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.crypto/-public-key-tree/-node/get-keys.html
@@ -0,0 +1,17 @@
+
+
+PublicKeyTree.Node.getKeys -
+
+
+
+net.corda.core.crypto / PublicKeyTree / Node / getKeys
+
+getKeys
+
+fun getKeys ( ) : Set < PublicKey >
+Overrides PublicKeyTree.getKeys
+Returns all PublicKey s contained within the tree leaves
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.crypto/-public-key-tree/-node/hash-code.html b/docs/build/html/api/net.corda.core.crypto/-public-key-tree/-node/hash-code.html
new file mode 100644
index 0000000000..19b86e47a9
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.crypto/-public-key-tree/-node/hash-code.html
@@ -0,0 +1,15 @@
+
+
+PublicKeyTree.Node.hashCode -
+
+
+
+net.corda.core.crypto / PublicKeyTree / Node / hashCode
+
+hashCode
+
+fun hashCode ( ) : Int
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.crypto/-public-key-tree/-node/index.html b/docs/build/html/api/net.corda.core.crypto/-public-key-tree/-node/index.html
new file mode 100644
index 0000000000..b7a00e72e6
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.crypto/-public-key-tree/-node/index.html
@@ -0,0 +1,111 @@
+
+
+PublicKeyTree.Node -
+
+
+
+net.corda.core.crypto / PublicKeyTree / Node
+
+Node
+class Node : PublicKeyTree
+Represents a node in the PublicKeyTree . It maintains a list of child nodes – sub-trees, and associated
+weights carried by child node signatures.
+The threshold specifies the minimum total weight required (in the simple case – the minimum number of child
+signatures required) to satisfy the public key sub-tree rooted at this node.
+
+
+
+
+Constructors
+
+
+
+
+<init>
+
+Node ( threshold : Int , children : List < PublicKeyTree > , weights : List < Int > )
Represents a node in the PublicKeyTree . It maintains a list of child nodes – sub-trees, and associated
+weights carried by child node signatures.
+
+
+
+
+Properties
+
+Functions
+
+
+
+
+equals
+
+fun equals ( other : Any ? ) : Boolean
+
+
+
+getKeys
+
+fun getKeys ( ) : Set < PublicKey >
Returns all PublicKey s contained within the tree leaves
+
+
+
+
+hashCode
+
+fun hashCode ( ) : Int
+
+
+
+isFulfilledBy
+
+fun isFulfilledBy ( keys : Iterable < PublicKey > ) : Boolean
Checks whether keys match a sufficient amount of leaf nodes
+
+
+
+
+Inherited Functions
+
+
+
diff --git a/docs/build/html/api/net.corda.core.crypto/-public-key-tree/-node/is-fulfilled-by.html b/docs/build/html/api/net.corda.core.crypto/-public-key-tree/-node/is-fulfilled-by.html
new file mode 100644
index 0000000000..142081b798
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.crypto/-public-key-tree/-node/is-fulfilled-by.html
@@ -0,0 +1,17 @@
+
+
+PublicKeyTree.Node.isFulfilledBy -
+
+
+
+net.corda.core.crypto / PublicKeyTree / Node / isFulfilledBy
+
+isFulfilledBy
+
+fun isFulfilledBy ( keys : Iterable < PublicKey > ) : Boolean
+Overrides PublicKeyTree.isFulfilledBy
+Checks whether keys match a sufficient amount of leaf nodes
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.crypto/-public-key-tree/-node/threshold.html b/docs/build/html/api/net.corda.core.crypto/-public-key-tree/-node/threshold.html
new file mode 100644
index 0000000000..cd8692b9b6
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.crypto/-public-key-tree/-node/threshold.html
@@ -0,0 +1,15 @@
+
+
+PublicKeyTree.Node.threshold -
+
+
+
+net.corda.core.crypto / PublicKeyTree / Node / threshold
+
+threshold
+
+val threshold : Int
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.crypto/-public-key-tree/-node/weights.html b/docs/build/html/api/net.corda.core.crypto/-public-key-tree/-node/weights.html
new file mode 100644
index 0000000000..33308d2e15
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.crypto/-public-key-tree/-node/weights.html
@@ -0,0 +1,15 @@
+
+
+PublicKeyTree.Node.weights -
+
+
+
+net.corda.core.crypto / PublicKeyTree / Node / weights
+
+weights
+
+val weights : List < Int >
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.crypto/-public-key-tree/contains-any.html b/docs/build/html/api/net.corda.core.crypto/-public-key-tree/contains-any.html
new file mode 100644
index 0000000000..8a750d5b6c
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.crypto/-public-key-tree/contains-any.html
@@ -0,0 +1,16 @@
+
+
+PublicKeyTree.containsAny -
+
+
+
+net.corda.core.crypto / PublicKeyTree / containsAny
+
+containsAny
+
+fun containsAny ( keys : Iterable < PublicKey > ) : <ERROR CLASS>
+Checks whether any of the given keys matches a leaf on the tree
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.crypto/-public-key-tree/get-keys.html b/docs/build/html/api/net.corda.core.crypto/-public-key-tree/get-keys.html
new file mode 100644
index 0000000000..152c2bd9a0
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.crypto/-public-key-tree/get-keys.html
@@ -0,0 +1,16 @@
+
+
+PublicKeyTree.getKeys -
+
+
+
+net.corda.core.crypto / PublicKeyTree / getKeys
+
+getKeys
+
+abstract fun getKeys ( ) : Set < PublicKey >
+Returns all PublicKey s contained within the tree leaves
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.crypto/-public-key-tree/index.html b/docs/build/html/api/net.corda.core.crypto/-public-key-tree/index.html
new file mode 100644
index 0000000000..b983430549
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.crypto/-public-key-tree/index.html
@@ -0,0 +1,114 @@
+
+
+PublicKeyTree -
+
+
+
+net.corda.core.crypto / PublicKeyTree
+
+PublicKeyTree
+sealed class PublicKeyTree
+A tree data structure that enables the representation of composite public keys.
+In the simplest case it may just contain a single node encapsulating a PublicKey – a Leaf .
+For more complex scenarios, such as "Both Alice and Bob need to sign to consume a state S" , we can represent
+the requirement by creating a tree with a root Node , and Alice and Bob as children – Leaf s.
+The root node would specify weights for each of its children and a threshold – the minimum total weight required
+(e.g. the minimum number of child signatures required) to satisfy the tree signature requirement.
+Using these constructs we can express e.g. 1 of N (OR) or N of N (AND) signature requirements. By nesting we can
+create multi-level requirements such as "either the CEO or 3 of 5 of his assistants need to sign" .
+
+
+
+
+Types
+
+
+
+
+Builder
+
+class Builder
A helper class for building a PublicKeyTree.Node .
+
+
+
+
+Leaf
+
+class Leaf : PublicKeyTree
The leaf node of the public key tree – a wrapper around a PublicKey primitive
+
+
+
+
+Node
+
+class Node : PublicKeyTree
Represents a node in the PublicKeyTree. It maintains a list of child nodes – sub-trees, and associated
+weights carried by child node signatures.
+
+
+
+
+Functions
+
+
+
+
+containsAny
+
+fun containsAny ( keys : Iterable < PublicKey > ) : <ERROR CLASS>
Checks whether any of the given keys matches a leaf on the tree
+
+
+
+
+getKeys
+
+abstract fun getKeys ( ) : Set < PublicKey >
Returns all PublicKey s contained within the tree leaves
+
+
+
+
+isFulfilledBy
+
+abstract fun isFulfilledBy ( keys : Iterable < PublicKey > ) : Boolean
Checks whether keys match a sufficient amount of leaf nodes
+fun isFulfilledBy ( key : PublicKey ) : <ERROR CLASS>
+
+
+
+toBase58String
+
+fun toBase58String ( ) : String
+
+
+
+Companion Object Functions
+
+
+
+
+parseFromBase58
+
+fun parseFromBase58 ( encoded : String ) : <ERROR CLASS>
+
+
+
+Inheritors
+
+
+
+
+Leaf
+
+class Leaf : PublicKeyTree
The leaf node of the public key tree – a wrapper around a PublicKey primitive
+
+
+
+
+Node
+
+class Node : PublicKeyTree
Represents a node in the PublicKeyTree. It maintains a list of child nodes – sub-trees, and associated
+weights carried by child node signatures.
+
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.crypto/-public-key-tree/is-fulfilled-by.html b/docs/build/html/api/net.corda.core.crypto/-public-key-tree/is-fulfilled-by.html
new file mode 100644
index 0000000000..904b21d105
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.crypto/-public-key-tree/is-fulfilled-by.html
@@ -0,0 +1,20 @@
+
+
+PublicKeyTree.isFulfilledBy -
+
+
+
+net.corda.core.crypto / PublicKeyTree / isFulfilledBy
+
+isFulfilledBy
+
+abstract fun isFulfilledBy ( keys : Iterable < PublicKey > ) : Boolean
+Checks whether keys match a sufficient amount of leaf nodes
+
+
+
+fun isFulfilledBy ( key : PublicKey ) : <ERROR CLASS>
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.crypto/-public-key-tree/parse-from-base58.html b/docs/build/html/api/net.corda.core.crypto/-public-key-tree/parse-from-base58.html
new file mode 100644
index 0000000000..642d6cf5bc
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.crypto/-public-key-tree/parse-from-base58.html
@@ -0,0 +1,15 @@
+
+
+PublicKeyTree.parseFromBase58 -
+
+
+
+net.corda.core.crypto / PublicKeyTree / parseFromBase58
+
+parseFromBase58
+
+fun parseFromBase58 ( encoded : String ) : <ERROR CLASS>
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.crypto/-public-key-tree/to-base58-string.html b/docs/build/html/api/net.corda.core.crypto/-public-key-tree/to-base58-string.html
new file mode 100644
index 0000000000..014a0476d9
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.crypto/-public-key-tree/to-base58-string.html
@@ -0,0 +1,15 @@
+
+
+PublicKeyTree.toBase58String -
+
+
+
+net.corda.core.crypto / PublicKeyTree / toBase58String
+
+toBase58String
+
+fun toBase58String ( ) : String
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.crypto/-secure-hash/-s-h-a256/-init-.html b/docs/build/html/api/net.corda.core.crypto/-secure-hash/-s-h-a256/-init-.html
new file mode 100644
index 0000000000..33bc9c25e6
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.crypto/-secure-hash/-s-h-a256/-init-.html
@@ -0,0 +1,15 @@
+
+
+SecureHash.SHA256. -
+
+
+
+net.corda.core.crypto / SecureHash / SHA256 / <init>
+
+<init>
+SHA256 ( bits : ByteArray )
+SHA-256 is part of the SHA-2 hash function family. Generated hash is fixed size, 256-bits (32-bytes)
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.crypto/-secure-hash/-s-h-a256/index.html b/docs/build/html/api/net.corda.core.crypto/-secure-hash/-s-h-a256/index.html
new file mode 100644
index 0000000000..027b4cc9d2
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.crypto/-secure-hash/-s-h-a256/index.html
@@ -0,0 +1,44 @@
+
+
+SecureHash.SHA256 -
+
+
+
+net.corda.core.crypto / SecureHash / SHA256
+
+SHA256
+class SHA256 : SecureHash
+SHA-256 is part of the SHA-2 hash function family. Generated hash is fixed size, 256-bits (32-bytes)
+
+
+Constructors
+
+
+
+
+<init>
+
+SHA256 ( bits : ByteArray )
SHA-256 is part of the SHA-2 hash function family. Generated hash is fixed size, 256-bits (32-bytes)
+
+
+
+
+Inherited Functions
+
+
+
+
+prefixChars
+
+fun prefixChars ( prefixLen : Int = 6) : <ERROR CLASS>
+
+
+
+toString
+
+open fun toString ( ) : <ERROR CLASS>
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.crypto/-secure-hash/index.html b/docs/build/html/api/net.corda.core.crypto/-secure-hash/index.html
new file mode 100644
index 0000000000..1726fb4be6
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.crypto/-secure-hash/index.html
@@ -0,0 +1,151 @@
+
+
+SecureHash -
+
+
+
+net.corda.core.crypto / SecureHash
+
+SecureHash
+sealed class SecureHash : OpaqueBytes
+Container for a cryptographically secure hash value.
+Provides utilities for generating a cryptographic hash using different algorithms (currently only SHA-256 supported).
+
+
+Types
+
+
+
+
+SHA256
+
+class SHA256 : SecureHash
SHA-256 is part of the SHA-2 hash function family. Generated hash is fixed size, 256-bits (32-bytes)
+
+
+
+
+Inherited Properties
+
+
+
+
+bits
+
+val bits : ByteArray
+
+
+
+size
+
+val size : Int
+
+
+
+Functions
+
+
+
+
+prefixChars
+
+fun prefixChars ( prefixLen : Int = 6) : <ERROR CLASS>
+
+
+
+toString
+
+open fun toString ( ) : <ERROR CLASS>
+
+
+
+Inherited Functions
+
+Companion Object Functions
+
+
+
+
+parse
+
+fun parse ( str : String ) : <ERROR CLASS>
+
+
+
+randomSHA256
+
+fun randomSHA256 ( ) : SHA256
+
+
+
+sha256
+
+fun sha256 ( bits : ByteArray ) : SHA256
+fun sha256 ( str : String ) : <ERROR CLASS>
+
+
+
+sha256Twice
+
+fun sha256Twice ( bits : ByteArray ) : SHA256
+
+
+
+Extension Functions
+
+Inheritors
+
+
+
+
+SHA256
+
+class SHA256 : SecureHash
SHA-256 is part of the SHA-2 hash function family. Generated hash is fixed size, 256-bits (32-bytes)
+
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.crypto/-secure-hash/parse.html b/docs/build/html/api/net.corda.core.crypto/-secure-hash/parse.html
new file mode 100644
index 0000000000..43f9bc8269
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.crypto/-secure-hash/parse.html
@@ -0,0 +1,15 @@
+
+
+SecureHash.parse -
+
+
+
+net.corda.core.crypto / SecureHash / parse
+
+parse
+
+fun parse ( str : String ) : <ERROR CLASS>
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.crypto/-secure-hash/prefix-chars.html b/docs/build/html/api/net.corda.core.crypto/-secure-hash/prefix-chars.html
new file mode 100644
index 0000000000..20fe0027af
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.crypto/-secure-hash/prefix-chars.html
@@ -0,0 +1,15 @@
+
+
+SecureHash.prefixChars -
+
+
+
+net.corda.core.crypto / SecureHash / prefixChars
+
+prefixChars
+
+fun prefixChars ( prefixLen : Int = 6) : <ERROR CLASS>
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.crypto/-secure-hash/random-s-h-a256.html b/docs/build/html/api/net.corda.core.crypto/-secure-hash/random-s-h-a256.html
new file mode 100644
index 0000000000..d58ed0a189
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.crypto/-secure-hash/random-s-h-a256.html
@@ -0,0 +1,15 @@
+
+
+SecureHash.randomSHA256 -
+
+
+
+net.corda.core.crypto / SecureHash / randomSHA256
+
+randomSHA256
+
+fun randomSHA256 ( ) : SHA256
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.crypto/-secure-hash/sha256-twice.html b/docs/build/html/api/net.corda.core.crypto/-secure-hash/sha256-twice.html
new file mode 100644
index 0000000000..66bfbdf080
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.crypto/-secure-hash/sha256-twice.html
@@ -0,0 +1,15 @@
+
+
+SecureHash.sha256Twice -
+
+
+
+net.corda.core.crypto / SecureHash / sha256Twice
+
+sha256Twice
+
+fun sha256Twice ( bits : ByteArray ) : SHA256
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.crypto/-secure-hash/sha256.html b/docs/build/html/api/net.corda.core.crypto/-secure-hash/sha256.html
new file mode 100644
index 0000000000..6e2b2c7312
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.crypto/-secure-hash/sha256.html
@@ -0,0 +1,17 @@
+
+
+SecureHash.sha256 -
+
+
+
+net.corda.core.crypto / SecureHash / sha256
+
+sha256
+
+fun sha256 ( bits : ByteArray ) : SHA256
+
+fun sha256 ( str : String ) : <ERROR CLASS>
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.crypto/-secure-hash/to-string.html b/docs/build/html/api/net.corda.core.crypto/-secure-hash/to-string.html
new file mode 100644
index 0000000000..9f1a103d81
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.crypto/-secure-hash/to-string.html
@@ -0,0 +1,16 @@
+
+
+SecureHash.toString -
+
+
+
+net.corda.core.crypto / SecureHash / toString
+
+toString
+
+open fun toString ( ) : <ERROR CLASS>
+Overrides OpaqueBytes.toString
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.crypto/-signed-data/-init-.html b/docs/build/html/api/net.corda.core.crypto/-signed-data/-init-.html
new file mode 100644
index 0000000000..bc16f6aec6
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.crypto/-signed-data/-init-.html
@@ -0,0 +1,22 @@
+
+
+SignedData. -
+
+
+
+net.corda.core.crypto / SignedData / <init>
+
+<init>
+SignedData ( raw : SerializedBytes < T > , sig : WithKey )
+A serialized piece of data and its signature. Enforces signature validity in order to deserialize the data
+contained within.
+Parameters
+
+raw
- the raw serialized data.
+
+
+sig
- the (unverified) signature for the data.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.crypto/-signed-data/index.html b/docs/build/html/api/net.corda.core.crypto/-signed-data/index.html
new file mode 100644
index 0000000000..f12fba318b
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.crypto/-signed-data/index.html
@@ -0,0 +1,84 @@
+
+
+SignedData -
+
+
+
+net.corda.core.crypto / SignedData
+
+SignedData
+open class SignedData < T : Any >
+A serialized piece of data and its signature. Enforces signature validity in order to deserialize the data
+contained within.
+Parameters
+
+raw
- the raw serialized data.
+
+
+sig
- the (unverified) signature for the data.
+
+
+Constructors
+
+
+
+
+<init>
+
+SignedData ( raw : SerializedBytes < T > , sig : WithKey )
A serialized piece of data and its signature. Enforces signature validity in order to deserialize the data
+contained within.
+
+
+
+
+Properties
+
+Functions
+
+
+
+
+verified
+
+fun verified ( ) : T
Return the deserialized data if the signature can be verified.
+
+
+
+
+verifyData
+
+open fun verifyData ( data : T ) : Unit
Verify the wrapped data after the signature has been verified and the data deserialised. Provided as an extension
+point for subclasses.
+
+
+
+
+Inheritors
+
+
+
diff --git a/docs/build/html/api/net.corda.core.crypto/-signed-data/raw.html b/docs/build/html/api/net.corda.core.crypto/-signed-data/raw.html
new file mode 100644
index 0000000000..ad211f8bf7
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.crypto/-signed-data/raw.html
@@ -0,0 +1,15 @@
+
+
+SignedData.raw -
+
+
+
+net.corda.core.crypto / SignedData / raw
+
+raw
+
+val raw : SerializedBytes < T >
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.crypto/-signed-data/sig.html b/docs/build/html/api/net.corda.core.crypto/-signed-data/sig.html
new file mode 100644
index 0000000000..d0b72e7e0f
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.crypto/-signed-data/sig.html
@@ -0,0 +1,15 @@
+
+
+SignedData.sig -
+
+
+
+net.corda.core.crypto / SignedData / sig
+
+sig
+
+val sig : WithKey
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.crypto/-signed-data/verified.html b/docs/build/html/api/net.corda.core.crypto/-signed-data/verified.html
new file mode 100644
index 0000000000..d47cf41f1d
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.crypto/-signed-data/verified.html
@@ -0,0 +1,22 @@
+
+
+SignedData.verified -
+
+
+
+net.corda.core.crypto / SignedData / verified
+
+verified
+
+fun verified ( ) : T
+Return the deserialized data if the signature can be verified.
+Exceptions
+
+IllegalArgumentException
- if the data is invalid (only used if verifyData() is overloaded).
+
+
+SignatureException
- if the signature is invalid.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.crypto/-signed-data/verify-data.html b/docs/build/html/api/net.corda.core.crypto/-signed-data/verify-data.html
new file mode 100644
index 0000000000..b352b1cc1d
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.crypto/-signed-data/verify-data.html
@@ -0,0 +1,20 @@
+
+
+SignedData.verifyData -
+
+
+
+net.corda.core.crypto / SignedData / verifyData
+
+verifyData
+
+protected open fun verifyData ( data : T ) : Unit
+Verify the wrapped data after the signature has been verified and the data deserialised. Provided as an extension
+point for subclasses.
+Exceptions
+
+IllegalArgumentException
- if the data is invalid.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.crypto/-whitelist-trust-manager-provider/add-whitelist-entries.html b/docs/build/html/api/net.corda.core.crypto/-whitelist-trust-manager-provider/add-whitelist-entries.html
new file mode 100644
index 0000000000..60b799988e
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.crypto/-whitelist-trust-manager-provider/add-whitelist-entries.html
@@ -0,0 +1,18 @@
+
+
+WhitelistTrustManagerProvider.addWhitelistEntries -
+
+
+
+net.corda.core.crypto / WhitelistTrustManagerProvider / addWhitelistEntries
+
+addWhitelistEntries
+
+fun addWhitelistEntries ( serverNames : List < String > ) : Unit
+Adds a list of servers to the whitelist and also adds their fully resolved name/ip address after DNS lookup
+If the server name is not an actual DNS name this is silently ignored.
+The DNS request may block the calling thread.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.crypto/-whitelist-trust-manager-provider/add-whitelist-entry.html b/docs/build/html/api/net.corda.core.crypto/-whitelist-trust-manager-provider/add-whitelist-entry.html
new file mode 100644
index 0000000000..f11412eea2
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.crypto/-whitelist-trust-manager-provider/add-whitelist-entry.html
@@ -0,0 +1,17 @@
+
+
+WhitelistTrustManagerProvider.addWhitelistEntry -
+
+
+
+net.corda.core.crypto / WhitelistTrustManagerProvider / addWhitelistEntry
+
+addWhitelistEntry
+
+fun addWhitelistEntry ( serverName : String ) : Unit
+Adds an extra name to the whitelist if not already present
+If this is a new entry it will internally request a DNS lookup which may block the calling thread.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.crypto/-whitelist-trust-manager-provider/index.html b/docs/build/html/api/net.corda.core.crypto/-whitelist-trust-manager-provider/index.html
new file mode 100644
index 0000000000..73ac246a53
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.crypto/-whitelist-trust-manager-provider/index.html
@@ -0,0 +1,66 @@
+
+
+WhitelistTrustManagerProvider -
+
+
+
+net.corda.core.crypto / WhitelistTrustManagerProvider
+
+WhitelistTrustManagerProvider
+object WhitelistTrustManagerProvider : Provider
+Custom Security Provider that forces the TrustManagerFactory to be our custom one.
+Also holds the identity of the original TrustManager algorithm so
+that we can delegate most of the checking to the proper Java code. We simply add some more checks.
+The whitelist automatically includes the local server DNS name and IP address
+
+
+
+
+Properties
+
+Functions
+
+
+
+
+addWhitelistEntries
+
+fun addWhitelistEntries ( serverNames : List < String > ) : Unit
Adds a list of servers to the whitelist and also adds their fully resolved name/ip address after DNS lookup
+If the server name is not an actual DNS name this is silently ignored.
+The DNS request may block the calling thread.
+
+
+
+
+addWhitelistEntry
+
+fun addWhitelistEntry ( serverName : String ) : Unit
Adds an extra name to the whitelist if not already present
+If this is a new entry it will internally request a DNS lookup which may block the calling thread.
+
+
+
+
+register
+
+fun register ( ) : Unit
Security provider registration function for WhitelistTrustManagerProvider
+
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.crypto/-whitelist-trust-manager-provider/original-trust-provider-algorithm.html b/docs/build/html/api/net.corda.core.crypto/-whitelist-trust-manager-provider/original-trust-provider-algorithm.html
new file mode 100644
index 0000000000..2d0274d67b
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.crypto/-whitelist-trust-manager-provider/original-trust-provider-algorithm.html
@@ -0,0 +1,15 @@
+
+
+WhitelistTrustManagerProvider.originalTrustProviderAlgorithm -
+
+
+
+net.corda.core.crypto / WhitelistTrustManagerProvider / originalTrustProviderAlgorithm
+
+originalTrustProviderAlgorithm
+
+val originalTrustProviderAlgorithm : String
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.crypto/-whitelist-trust-manager-provider/register.html b/docs/build/html/api/net.corda.core.crypto/-whitelist-trust-manager-provider/register.html
new file mode 100644
index 0000000000..1b1d4d2da2
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.crypto/-whitelist-trust-manager-provider/register.html
@@ -0,0 +1,16 @@
+
+
+WhitelistTrustManagerProvider.register -
+
+
+
+net.corda.core.crypto / WhitelistTrustManagerProvider / register
+
+register
+
+fun register ( ) : Unit
+Security provider registration function for WhitelistTrustManagerProvider
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.crypto/-whitelist-trust-manager-provider/whitelist.html b/docs/build/html/api/net.corda.core.crypto/-whitelist-trust-manager-provider/whitelist.html
new file mode 100644
index 0000000000..de3c0300a3
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.crypto/-whitelist-trust-manager-provider/whitelist.html
@@ -0,0 +1,15 @@
+
+
+WhitelistTrustManagerProvider.whitelist -
+
+
+
+net.corda.core.crypto / WhitelistTrustManagerProvider / whitelist
+
+whitelist
+
+val whitelist : Set < String >
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.crypto/-whitelist-trust-manager-spi/-init-.html b/docs/build/html/api/net.corda.core.crypto/-whitelist-trust-manager-spi/-init-.html
new file mode 100644
index 0000000000..25c8900b6b
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.crypto/-whitelist-trust-manager-spi/-init-.html
@@ -0,0 +1,15 @@
+
+
+WhitelistTrustManagerSpi. -
+
+
+
+net.corda.core.crypto / WhitelistTrustManagerSpi / <init>
+
+<init>
+WhitelistTrustManagerSpi ( )
+Registered TrustManagerFactorySpi
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.crypto/-whitelist-trust-manager-spi/engine-get-trust-managers.html b/docs/build/html/api/net.corda.core.crypto/-whitelist-trust-manager-spi/engine-get-trust-managers.html
new file mode 100644
index 0000000000..63c6d040bf
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.crypto/-whitelist-trust-manager-spi/engine-get-trust-managers.html
@@ -0,0 +1,15 @@
+
+
+WhitelistTrustManagerSpi.engineGetTrustManagers -
+
+
+
+net.corda.core.crypto / WhitelistTrustManagerSpi / engineGetTrustManagers
+
+engineGetTrustManagers
+
+protected fun engineGetTrustManagers ( ) : Array < out TrustManager >
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.crypto/-whitelist-trust-manager-spi/engine-init.html b/docs/build/html/api/net.corda.core.crypto/-whitelist-trust-manager-spi/engine-init.html
new file mode 100644
index 0000000000..db2634a91b
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.crypto/-whitelist-trust-manager-spi/engine-init.html
@@ -0,0 +1,17 @@
+
+
+WhitelistTrustManagerSpi.engineInit -
+
+
+
+net.corda.core.crypto / WhitelistTrustManagerSpi / engineInit
+
+engineInit
+
+protected fun engineInit ( keyStore : KeyStore ? ) : Unit
+
+protected fun engineInit ( managerFactoryParameters : ManagerFactoryParameters ? ) : Unit
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.crypto/-whitelist-trust-manager-spi/index.html b/docs/build/html/api/net.corda.core.crypto/-whitelist-trust-manager-spi/index.html
new file mode 100644
index 0000000000..7f64e787c9
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.crypto/-whitelist-trust-manager-spi/index.html
@@ -0,0 +1,56 @@
+
+
+WhitelistTrustManagerSpi -
+
+
+
+net.corda.core.crypto / WhitelistTrustManagerSpi
+
+WhitelistTrustManagerSpi
+class WhitelistTrustManagerSpi : TrustManagerFactorySpi
+Registered TrustManagerFactorySpi
+
+
+Constructors
+
+
+
+
+<init>
+
+WhitelistTrustManagerSpi ( )
Registered TrustManagerFactorySpi
+
+
+
+
+Properties
+
+Functions
+
+
+
diff --git a/docs/build/html/api/net.corda.core.crypto/-whitelist-trust-manager-spi/original-provider.html b/docs/build/html/api/net.corda.core.crypto/-whitelist-trust-manager-spi/original-provider.html
new file mode 100644
index 0000000000..9a50661b41
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.crypto/-whitelist-trust-manager-spi/original-provider.html
@@ -0,0 +1,15 @@
+
+
+WhitelistTrustManagerSpi.originalProvider -
+
+
+
+net.corda.core.crypto / WhitelistTrustManagerSpi / originalProvider
+
+originalProvider
+
+val originalProvider : TrustManagerFactory
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.crypto/-whitelist-trust-manager/-init-.html b/docs/build/html/api/net.corda.core.crypto/-whitelist-trust-manager/-init-.html
new file mode 100644
index 0000000000..616c042a1b
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.crypto/-whitelist-trust-manager/-init-.html
@@ -0,0 +1,16 @@
+
+
+WhitelistTrustManager. -
+
+
+
+net.corda.core.crypto / WhitelistTrustManager / <init>
+
+<init>
+WhitelistTrustManager ( originalProvider : X509ExtendedTrustManager )
+Our TrustManager extension takes the standard certificate checker and first delegates all the
+chain checking to that. If everything is well formed we then simply add a check against our whitelist
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.crypto/-whitelist-trust-manager/check-client-trusted.html b/docs/build/html/api/net.corda.core.crypto/-whitelist-trust-manager/check-client-trusted.html
new file mode 100644
index 0000000000..36e7306bdb
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.crypto/-whitelist-trust-manager/check-client-trusted.html
@@ -0,0 +1,19 @@
+
+
+WhitelistTrustManager.checkClientTrusted -
+
+
+
+net.corda.core.crypto / WhitelistTrustManager / checkClientTrusted
+
+checkClientTrusted
+
+fun checkClientTrusted ( chain : Array < out X509Certificate > , authType : String , socket : Socket ? ) : Unit
+
+fun checkClientTrusted ( chain : Array < out X509Certificate > , authType : String , engine : SSLEngine ? ) : Unit
+
+fun checkClientTrusted ( chain : Array < out X509Certificate > , authType : String ) : Unit
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.crypto/-whitelist-trust-manager/check-server-trusted.html b/docs/build/html/api/net.corda.core.crypto/-whitelist-trust-manager/check-server-trusted.html
new file mode 100644
index 0000000000..92a797b74a
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.crypto/-whitelist-trust-manager/check-server-trusted.html
@@ -0,0 +1,19 @@
+
+
+WhitelistTrustManager.checkServerTrusted -
+
+
+
+net.corda.core.crypto / WhitelistTrustManager / checkServerTrusted
+
+checkServerTrusted
+
+fun checkServerTrusted ( chain : Array < out X509Certificate > , authType : String , socket : Socket ? ) : Unit
+
+fun checkServerTrusted ( chain : Array < out X509Certificate > , authType : String , engine : SSLEngine ? ) : Unit
+
+fun checkServerTrusted ( chain : Array < out X509Certificate > , authType : String ) : Unit
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.crypto/-whitelist-trust-manager/checker.html b/docs/build/html/api/net.corda.core.crypto/-whitelist-trust-manager/checker.html
new file mode 100644
index 0000000000..28c61519d7
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.crypto/-whitelist-trust-manager/checker.html
@@ -0,0 +1,15 @@
+
+
+WhitelistTrustManager.checker -
+
+
+
+net.corda.core.crypto / WhitelistTrustManager / checker
+
+checker
+
+val checker : HostnameChecker
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.crypto/-whitelist-trust-manager/get-accepted-issuers.html b/docs/build/html/api/net.corda.core.crypto/-whitelist-trust-manager/get-accepted-issuers.html
new file mode 100644
index 0000000000..0e2429fe7d
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.crypto/-whitelist-trust-manager/get-accepted-issuers.html
@@ -0,0 +1,15 @@
+
+
+WhitelistTrustManager.getAcceptedIssuers -
+
+
+
+net.corda.core.crypto / WhitelistTrustManager / getAcceptedIssuers
+
+getAcceptedIssuers
+
+fun getAcceptedIssuers ( ) : Array < out X509Certificate >
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.crypto/-whitelist-trust-manager/index.html b/docs/build/html/api/net.corda.core.crypto/-whitelist-trust-manager/index.html
new file mode 100644
index 0000000000..a1c3a46dae
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.crypto/-whitelist-trust-manager/index.html
@@ -0,0 +1,73 @@
+
+
+WhitelistTrustManager -
+
+
+
+net.corda.core.crypto / WhitelistTrustManager
+
+WhitelistTrustManager
+class WhitelistTrustManager : X509ExtendedTrustManager
+Our TrustManager extension takes the standard certificate checker and first delegates all the
+chain checking to that. If everything is well formed we then simply add a check against our whitelist
+
+
+Constructors
+
+
+
+
+<init>
+
+WhitelistTrustManager ( originalProvider : X509ExtendedTrustManager )
Our TrustManager extension takes the standard certificate checker and first delegates all the
+chain checking to that. If everything is well formed we then simply add a check against our whitelist
+
+
+
+
+Properties
+
+Functions
+
+
+
+
+checkClientTrusted
+
+fun checkClientTrusted ( chain : Array < out X509Certificate > , authType : String , socket : Socket ? ) : Unit
+fun checkClientTrusted ( chain : Array < out X509Certificate > , authType : String , engine : SSLEngine ? ) : Unit
+fun checkClientTrusted ( chain : Array < out X509Certificate > , authType : String ) : Unit
+
+
+
+checkServerTrusted
+
+fun checkServerTrusted ( chain : Array < out X509Certificate > , authType : String , socket : Socket ? ) : Unit
+fun checkServerTrusted ( chain : Array < out X509Certificate > , authType : String , engine : SSLEngine ? ) : Unit
+fun checkServerTrusted ( chain : Array < out X509Certificate > , authType : String ) : Unit
+
+
+
+getAcceptedIssuers
+
+fun getAcceptedIssuers ( ) : Array < out X509Certificate >
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.crypto/-whitelist-trust-manager/original-provider.html b/docs/build/html/api/net.corda.core.crypto/-whitelist-trust-manager/original-provider.html
new file mode 100644
index 0000000000..a5b6a20a98
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.crypto/-whitelist-trust-manager/original-provider.html
@@ -0,0 +1,15 @@
+
+
+WhitelistTrustManager.originalProvider -
+
+
+
+net.corda.core.crypto / WhitelistTrustManager / originalProvider
+
+originalProvider
+
+val originalProvider : X509ExtendedTrustManager
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.crypto/-x509-utilities/-c-a-cert-and-key/-init-.html b/docs/build/html/api/net.corda.core.crypto/-x509-utilities/-c-a-cert-and-key/-init-.html
new file mode 100644
index 0000000000..3cf6dc7554
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.crypto/-x509-utilities/-c-a-cert-and-key/-init-.html
@@ -0,0 +1,15 @@
+
+
+X509Utilities.CACertAndKey. -
+
+
+
+net.corda.core.crypto / X509Utilities / CACertAndKey / <init>
+
+<init>
+CACertAndKey ( certificate : X509Certificate , keyPair : KeyPair )
+Helper data class to pass around public certificate and KeyPair entities when using CA certs.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.crypto/-x509-utilities/-c-a-cert-and-key/certificate.html b/docs/build/html/api/net.corda.core.crypto/-x509-utilities/-c-a-cert-and-key/certificate.html
new file mode 100644
index 0000000000..ad21d52a21
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.crypto/-x509-utilities/-c-a-cert-and-key/certificate.html
@@ -0,0 +1,15 @@
+
+
+X509Utilities.CACertAndKey.certificate -
+
+
+
+net.corda.core.crypto / X509Utilities / CACertAndKey / certificate
+
+certificate
+
+val certificate : X509Certificate
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.crypto/-x509-utilities/-c-a-cert-and-key/index.html b/docs/build/html/api/net.corda.core.crypto/-x509-utilities/-c-a-cert-and-key/index.html
new file mode 100644
index 0000000000..bc0c5df535
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.crypto/-x509-utilities/-c-a-cert-and-key/index.html
@@ -0,0 +1,44 @@
+
+
+X509Utilities.CACertAndKey -
+
+
+
+net.corda.core.crypto / X509Utilities / CACertAndKey
+
+CACertAndKey
+data class CACertAndKey
+Helper data class to pass around public certificate and KeyPair entities when using CA certs.
+
+
+Constructors
+
+
+
+
+<init>
+
+CACertAndKey ( certificate : X509Certificate , keyPair : KeyPair )
Helper data class to pass around public certificate and KeyPair entities when using CA certs.
+
+
+
+
+Properties
+
+
+
diff --git a/docs/build/html/api/net.corda.core.crypto/-x509-utilities/-c-a-cert-and-key/key-pair.html b/docs/build/html/api/net.corda.core.crypto/-x509-utilities/-c-a-cert-and-key/key-pair.html
new file mode 100644
index 0000000000..8bfe904a24
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.crypto/-x509-utilities/-c-a-cert-and-key/key-pair.html
@@ -0,0 +1,15 @@
+
+
+X509Utilities.CACertAndKey.keyPair -
+
+
+
+net.corda.core.crypto / X509Utilities / CACertAndKey / keyPair
+
+keyPair
+
+val keyPair : KeyPair
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.crypto/-x509-utilities/-c-o-r-d-a_-c-l-i-e-n-t_-c-a.html b/docs/build/html/api/net.corda.core.crypto/-x509-utilities/-c-o-r-d-a_-c-l-i-e-n-t_-c-a.html
new file mode 100644
index 0000000000..ef60454524
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.crypto/-x509-utilities/-c-o-r-d-a_-c-l-i-e-n-t_-c-a.html
@@ -0,0 +1,15 @@
+
+
+X509Utilities.CORDA_CLIENT_CA -
+
+
+
+net.corda.core.crypto / X509Utilities / CORDA_CLIENT_CA
+
+CORDA_CLIENT_CA
+
+val CORDA_CLIENT_CA : String
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.crypto/-x509-utilities/-c-o-r-d-a_-c-l-i-e-n-t_-c-a_-p-r-i-v-a-t-e_-k-e-y.html b/docs/build/html/api/net.corda.core.crypto/-x509-utilities/-c-o-r-d-a_-c-l-i-e-n-t_-c-a_-p-r-i-v-a-t-e_-k-e-y.html
new file mode 100644
index 0000000000..dfc6ecbc63
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.crypto/-x509-utilities/-c-o-r-d-a_-c-l-i-e-n-t_-c-a_-p-r-i-v-a-t-e_-k-e-y.html
@@ -0,0 +1,15 @@
+
+
+X509Utilities.CORDA_CLIENT_CA_PRIVATE_KEY -
+
+
+
+net.corda.core.crypto / X509Utilities / CORDA_CLIENT_CA_PRIVATE_KEY
+
+CORDA_CLIENT_CA_PRIVATE_KEY
+
+val CORDA_CLIENT_CA_PRIVATE_KEY : String
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.crypto/-x509-utilities/-c-o-r-d-a_-i-n-t-e-r-m-e-d-i-a-t-e_-c-a.html b/docs/build/html/api/net.corda.core.crypto/-x509-utilities/-c-o-r-d-a_-i-n-t-e-r-m-e-d-i-a-t-e_-c-a.html
new file mode 100644
index 0000000000..37c4233658
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.crypto/-x509-utilities/-c-o-r-d-a_-i-n-t-e-r-m-e-d-i-a-t-e_-c-a.html
@@ -0,0 +1,15 @@
+
+
+X509Utilities.CORDA_INTERMEDIATE_CA -
+
+
+
+net.corda.core.crypto / X509Utilities / CORDA_INTERMEDIATE_CA
+
+CORDA_INTERMEDIATE_CA
+
+val CORDA_INTERMEDIATE_CA : String
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.crypto/-x509-utilities/-c-o-r-d-a_-i-n-t-e-r-m-e-d-i-a-t-e_-c-a_-p-r-i-v-a-t-e_-k-e-y.html b/docs/build/html/api/net.corda.core.crypto/-x509-utilities/-c-o-r-d-a_-i-n-t-e-r-m-e-d-i-a-t-e_-c-a_-p-r-i-v-a-t-e_-k-e-y.html
new file mode 100644
index 0000000000..4ea1a0bd0d
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.crypto/-x509-utilities/-c-o-r-d-a_-i-n-t-e-r-m-e-d-i-a-t-e_-c-a_-p-r-i-v-a-t-e_-k-e-y.html
@@ -0,0 +1,15 @@
+
+
+X509Utilities.CORDA_INTERMEDIATE_CA_PRIVATE_KEY -
+
+
+
+net.corda.core.crypto / X509Utilities / CORDA_INTERMEDIATE_CA_PRIVATE_KEY
+
+CORDA_INTERMEDIATE_CA_PRIVATE_KEY
+
+val CORDA_INTERMEDIATE_CA_PRIVATE_KEY : String
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.crypto/-x509-utilities/-c-o-r-d-a_-r-o-o-t_-c-a.html b/docs/build/html/api/net.corda.core.crypto/-x509-utilities/-c-o-r-d-a_-r-o-o-t_-c-a.html
new file mode 100644
index 0000000000..d31ef17c0c
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.crypto/-x509-utilities/-c-o-r-d-a_-r-o-o-t_-c-a.html
@@ -0,0 +1,15 @@
+
+
+X509Utilities.CORDA_ROOT_CA -
+
+
+
+net.corda.core.crypto / X509Utilities / CORDA_ROOT_CA
+
+CORDA_ROOT_CA
+
+val CORDA_ROOT_CA : String
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.crypto/-x509-utilities/-c-o-r-d-a_-r-o-o-t_-c-a_-p-r-i-v-a-t-e_-k-e-y.html b/docs/build/html/api/net.corda.core.crypto/-x509-utilities/-c-o-r-d-a_-r-o-o-t_-c-a_-p-r-i-v-a-t-e_-k-e-y.html
new file mode 100644
index 0000000000..08eb6aa49f
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.crypto/-x509-utilities/-c-o-r-d-a_-r-o-o-t_-c-a_-p-r-i-v-a-t-e_-k-e-y.html
@@ -0,0 +1,15 @@
+
+
+X509Utilities.CORDA_ROOT_CA_PRIVATE_KEY -
+
+
+
+net.corda.core.crypto / X509Utilities / CORDA_ROOT_CA_PRIVATE_KEY
+
+CORDA_ROOT_CA_PRIVATE_KEY
+
+val CORDA_ROOT_CA_PRIVATE_KEY : String
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.crypto/-x509-utilities/-e-c-d-s-a_-c-u-r-v-e.html b/docs/build/html/api/net.corda.core.crypto/-x509-utilities/-e-c-d-s-a_-c-u-r-v-e.html
new file mode 100644
index 0000000000..cd5a7afc2f
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.crypto/-x509-utilities/-e-c-d-s-a_-c-u-r-v-e.html
@@ -0,0 +1,15 @@
+
+
+X509Utilities.ECDSA_CURVE -
+
+
+
+net.corda.core.crypto / X509Utilities / ECDSA_CURVE
+
+ECDSA_CURVE
+
+val ECDSA_CURVE : String
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.crypto/-x509-utilities/-k-e-y-s-t-o-r-e_-t-y-p-e.html b/docs/build/html/api/net.corda.core.crypto/-x509-utilities/-k-e-y-s-t-o-r-e_-t-y-p-e.html
new file mode 100644
index 0000000000..c6e74be2a1
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.crypto/-x509-utilities/-k-e-y-s-t-o-r-e_-t-y-p-e.html
@@ -0,0 +1,15 @@
+
+
+X509Utilities.KEYSTORE_TYPE -
+
+
+
+net.corda.core.crypto / X509Utilities / KEYSTORE_TYPE
+
+KEYSTORE_TYPE
+
+val KEYSTORE_TYPE : String
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.crypto/-x509-utilities/-k-e-y_-g-e-n-e-r-a-t-i-o-n_-a-l-g-o-r-i-t-h-m.html b/docs/build/html/api/net.corda.core.crypto/-x509-utilities/-k-e-y_-g-e-n-e-r-a-t-i-o-n_-a-l-g-o-r-i-t-h-m.html
new file mode 100644
index 0000000000..0e657653fe
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.crypto/-x509-utilities/-k-e-y_-g-e-n-e-r-a-t-i-o-n_-a-l-g-o-r-i-t-h-m.html
@@ -0,0 +1,15 @@
+
+
+X509Utilities.KEY_GENERATION_ALGORITHM -
+
+
+
+net.corda.core.crypto / X509Utilities / KEY_GENERATION_ALGORITHM
+
+KEY_GENERATION_ALGORITHM
+
+val KEY_GENERATION_ALGORITHM : String
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.crypto/-x509-utilities/-s-i-g-n-a-t-u-r-e_-a-l-g-o-r-i-t-h-m.html b/docs/build/html/api/net.corda.core.crypto/-x509-utilities/-s-i-g-n-a-t-u-r-e_-a-l-g-o-r-i-t-h-m.html
new file mode 100644
index 0000000000..8539a9788c
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.crypto/-x509-utilities/-s-i-g-n-a-t-u-r-e_-a-l-g-o-r-i-t-h-m.html
@@ -0,0 +1,15 @@
+
+
+X509Utilities.SIGNATURE_ALGORITHM -
+
+
+
+net.corda.core.crypto / X509Utilities / SIGNATURE_ALGORITHM
+
+SIGNATURE_ALGORITHM
+
+val SIGNATURE_ALGORITHM : String
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.crypto/-x509-utilities/add-or-replace-certificate.html b/docs/build/html/api/net.corda.core.crypto/-x509-utilities/add-or-replace-certificate.html
new file mode 100644
index 0000000000..1193cee19a
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.crypto/-x509-utilities/add-or-replace-certificate.html
@@ -0,0 +1,22 @@
+
+
+X509Utilities.addOrReplaceCertificate -
+
+
+
+net.corda.core.crypto / X509Utilities / addOrReplaceCertificate
+
+addOrReplaceCertificate
+
+fun KeyStore . addOrReplaceCertificate ( alias : String , cert : Certificate ) : Unit
+Helper extension method to add, or overwrite any public certificate data in store
+Parameters
+
+alias
- name to record the public certificate under
+
+
+cert
- certificate to store
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.crypto/-x509-utilities/add-or-replace-key.html b/docs/build/html/api/net.corda.core.crypto/-x509-utilities/add-or-replace-key.html
new file mode 100644
index 0000000000..919bc2b193
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.crypto/-x509-utilities/add-or-replace-key.html
@@ -0,0 +1,29 @@
+
+
+X509Utilities.addOrReplaceKey -
+
+
+
+net.corda.core.crypto / X509Utilities / addOrReplaceKey
+
+addOrReplaceKey
+
+fun KeyStore . addOrReplaceKey ( alias : String , key : Key , password : CharArray , chain : Array < Certificate > ) : Unit
+Helper extension method to add, or overwrite any key data in store
+Parameters
+
+alias
- name to record the private key and certificate chain under
+
+
+key
- cryptographic key to store
+
+
+password
- password for unlocking the key entry in the future. This does not have to be the same password as any keys stored,
+but for SSL purposes this is recommended.
+
+
+chain
- the sequence of certificates starting with the public key certificate for this key and extending to the root CA cert
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.crypto/-x509-utilities/create-c-a-key-store-and-trust-store.html b/docs/build/html/api/net.corda.core.crypto/-x509-utilities/create-c-a-key-store-and-trust-store.html
new file mode 100644
index 0000000000..0df9e48025
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.crypto/-x509-utilities/create-c-a-key-store-and-trust-store.html
@@ -0,0 +1,36 @@
+
+
+X509Utilities.createCAKeyStoreAndTrustStore -
+
+
+
+net.corda.core.crypto / X509Utilities / createCAKeyStoreAndTrustStore
+
+createCAKeyStoreAndTrustStore
+
+fun createCAKeyStoreAndTrustStore ( keyStoreFilePath : Path , storePassword : String , keyPassword : String , trustStoreFilePath : Path , trustStorePassword : String ) : KeyStore
+All in one wrapper to manufacture a root CA cert and an Intermediate CA cert.
+Normally this would be run once and then the outputs would be re-used repeatedly to manufacture the server certs
+Parameters
+
+keyStoreFilePath
- The output KeyStore path to publish the private keys of the CA root and intermediate certs into.
+
+
+storePassword
- The storage password to protect access to the generated KeyStore and public certificates
+
+
+keyPassword
- The password that protects the CA private keys.
+Unlike the SSL libraries that tend to assume the password is the same as the keystore password.
+These CA private keys should be protected more effectively with a distinct password.
+
+
+trustStoreFilePath
- The output KeyStore to place the Root CA public certificate, which can be used as an SSL truststore
+
+
+trustStorePassword
- The password to protect the truststore
+Return
+The KeyStore object that was saved to file
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.crypto/-x509-utilities/create-certificate-signing-request.html b/docs/build/html/api/net.corda.core.crypto/-x509-utilities/create-certificate-signing-request.html
new file mode 100644
index 0000000000..a3ff687540
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.crypto/-x509-utilities/create-certificate-signing-request.html
@@ -0,0 +1,30 @@
+
+
+X509Utilities.createCertificateSigningRequest -
+
+
+
+net.corda.core.crypto / X509Utilities / createCertificateSigningRequest
+
+createCertificateSigningRequest
+
+fun createCertificateSigningRequest ( myLegalName : String , nearestCity : String , email : String , keyPair : KeyPair ) : <ERROR CLASS>
+Create certificate signing request using provided information.
+Parameters
+
+myLegalName
- The legal name of your organization. This should not be abbreviated and should include suffixes such as Inc, Corp, or LLC.
+
+
+nearestCity
- The city where your organization is located.
+
+
+email
- An email address used to contact your organization.
+
+
+keyPair
- Standard curve ECDSA KeyPair generated for TLS.
+Return
+The generated Certificate signing request.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.crypto/-x509-utilities/create-intermediate-cert.html b/docs/build/html/api/net.corda.core.crypto/-x509-utilities/create-intermediate-cert.html
new file mode 100644
index 0000000000..fdd0b192a3
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.crypto/-x509-utilities/create-intermediate-cert.html
@@ -0,0 +1,25 @@
+
+
+X509Utilities.createIntermediateCert -
+
+
+
+net.corda.core.crypto / X509Utilities / createIntermediateCert
+
+createIntermediateCert
+
+fun createIntermediateCert ( domain : String , certificateAuthority : CACertAndKey ) : CACertAndKey
+Create a de novo root intermediate X509 v3 CA cert and KeyPair.
+Parameters
+
+domain
- The Common (CN) field of the cert Subject will be populated with the domain string
+
+
+certificateAuthority
- The Public certificate and KeyPair of the root CA certificate above this used to sign it
+Return
+A data class is returned containing the new intermediate CA Cert and its KeyPair for signing downstream certificates.
+Note the generated certificate tree is capped at max depth of 1 below this to be in line with commercially available certificates
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.crypto/-x509-utilities/create-keystore-for-s-s-l.html b/docs/build/html/api/net.corda.core.crypto/-x509-utilities/create-keystore-for-s-s-l.html
new file mode 100644
index 0000000000..5267edf043
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.crypto/-x509-utilities/create-keystore-for-s-s-l.html
@@ -0,0 +1,34 @@
+
+
+X509Utilities.createKeystoreForSSL -
+
+
+
+net.corda.core.crypto / X509Utilities / createKeystoreForSSL
+
+createKeystoreForSSL
+
+fun createKeystoreForSSL ( : Path , : String , : String , : KeyStore , : String ) : KeyStore
+An all in wrapper to manufacture a server certificate and keys all stored in a KeyStore suitable for running TLS on the local machine
+Parameters
+
+keyStoreFilePath
- KeyStore path to save output to
+
+
+storePassword
- access password for KeyStore
+
+
+keyPassword
- PrivateKey access password for the generated keys.
+It is recommended that this is the same as the storePassword as most TLS libraries assume they are the same.
+
+
+caKeyStore
- KeyStore containing CA keys generated by createCAKeyStoreAndTrustStore
+
+
+caKeyPassword
- password to unlock private keys in the CA KeyStore
+Return
+The KeyStore created containing a private key, certificate chain and root CA public cert for use in TLS applications
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.crypto/-x509-utilities/create-self-signed-c-a-cert.html b/docs/build/html/api/net.corda.core.crypto/-x509-utilities/create-self-signed-c-a-cert.html
new file mode 100644
index 0000000000..ca83e30bfa
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.crypto/-x509-utilities/create-self-signed-c-a-cert.html
@@ -0,0 +1,22 @@
+
+
+X509Utilities.createSelfSignedCACert -
+
+
+
+net.corda.core.crypto / X509Utilities / createSelfSignedCACert
+
+createSelfSignedCACert
+
+fun createSelfSignedCACert ( myLegalName : String ) : CACertAndKey
+Create a de novo root self-signed X509 v3 CA cert and KeyPair .
+Parameters
+
+domain
- The Common (CN) field of the cert Subject will be populated with the domain string
+Return
+A data class is returned containing the new root CA Cert and its KeyPair for signing downstream certificates.
+Note the generated certificate tree is capped at max depth of 2 to be in line with commercially available certificates
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.crypto/-x509-utilities/create-server-cert.html b/docs/build/html/api/net.corda.core.crypto/-x509-utilities/create-server-cert.html
new file mode 100644
index 0000000000..f64b1e531e
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.crypto/-x509-utilities/create-server-cert.html
@@ -0,0 +1,34 @@
+
+
+X509Utilities.createServerCert -
+
+
+
+net.corda.core.crypto / X509Utilities / createServerCert
+
+createServerCert
+
+fun createServerCert ( subject : <ERROR CLASS> , publicKey : PublicKey , certificateAuthority : CACertAndKey , subjectAlternativeNameDomains : List < String > , subjectAlternativeNameIps : List < String > ) : X509Certificate
+Create an X509v3 certificate suitable for use in TLS roles.
+Parameters
+
+subject
- The contents to put in the subject field of the certificate
+
+
+publicKey
- The PublicKey to be wrapped in the certificate
+
+
+certificateAuthority
- The Public certificate and KeyPair of the parent CA that will sign this certificate
+
+
+subjectAlternativeNameDomains
- A set of alternate DNS names to be supported by the certificate during validation of the TLS handshakes
+
+
+subjectAlternativeNameIps
- A set of alternate IP addresses to be supported by the certificate during validation of the TLS handshakes
+Return
+The generated X509Certificate suitable for use as a Server/Client certificate in TLS.
+This certificate is not marked as a CA cert to be similar in nature to commercial certificates.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.crypto/-x509-utilities/generate-e-c-d-s-a-key-pair-for-s-s-l.html b/docs/build/html/api/net.corda.core.crypto/-x509-utilities/generate-e-c-d-s-a-key-pair-for-s-s-l.html
new file mode 100644
index 0000000000..d1bd4baecb
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.crypto/-x509-utilities/generate-e-c-d-s-a-key-pair-for-s-s-l.html
@@ -0,0 +1,18 @@
+
+
+X509Utilities.generateECDSAKeyPairForSSL -
+
+
+
+net.corda.core.crypto / X509Utilities / generateECDSAKeyPairForSSL
+
+generateECDSAKeyPairForSSL
+
+fun generateECDSAKeyPairForSSL ( ) : KeyPair
+Generate a standard curve ECDSA KeyPair suitable for TLS, although the rest of Corda uses newer curves.
+Return
+The generated Public/Private KeyPair
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.crypto/-x509-utilities/get-dev-x509-name.html b/docs/build/html/api/net.corda.core.crypto/-x509-utilities/get-dev-x509-name.html
new file mode 100644
index 0000000000..4a14af215d
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.crypto/-x509-utilities/get-dev-x509-name.html
@@ -0,0 +1,16 @@
+
+
+X509Utilities.getDevX509Name -
+
+
+
+net.corda.core.crypto / X509Utilities / getDevX509Name
+
+getDevX509Name
+
+fun getDevX509Name ( domain : String ) : <ERROR CLASS>
+Helper method to create Subject field contents
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.crypto/-x509-utilities/get-x509-name.html b/docs/build/html/api/net.corda.core.crypto/-x509-utilities/get-x509-name.html
new file mode 100644
index 0000000000..b6912131e4
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.crypto/-x509-utilities/get-x509-name.html
@@ -0,0 +1,15 @@
+
+
+X509Utilities.getX509Name -
+
+
+
+net.corda.core.crypto / X509Utilities / getX509Name
+
+getX509Name
+
+fun getX509Name ( myLegalName : String , nearestCity : String , email : String ) : <ERROR CLASS>
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.crypto/-x509-utilities/index.html b/docs/build/html/api/net.corda.core.crypto/-x509-utilities/index.html
new file mode 100644
index 0000000000..55ac975601
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.crypto/-x509-utilities/index.html
@@ -0,0 +1,239 @@
+
+
+X509Utilities -
+
+
+
+net.corda.core.crypto / X509Utilities
+
+X509Utilities
+object X509Utilities
+
+
+Types
+
+
+
+
+CACertAndKey
+
+data class CACertAndKey
Helper data class to pass around public certificate and KeyPair entities when using CA certs.
+
+
+
+
+Properties
+
+Functions
+
+
+
+
+addOrReplaceCertificate
+
+fun KeyStore . addOrReplaceCertificate ( alias : String , cert : Certificate ) : Unit
Helper extension method to add, or overwrite any public certificate data in store
+
+
+
+
+addOrReplaceKey
+
+fun KeyStore . addOrReplaceKey ( alias : String , key : Key , password : CharArray , chain : Array < Certificate > ) : Unit
Helper extension method to add, or overwrite any key data in store
+
+
+
+
+createCAKeyStoreAndTrustStore
+
+fun createCAKeyStoreAndTrustStore ( keyStoreFilePath : Path , storePassword : String , keyPassword : String , trustStoreFilePath : Path , trustStorePassword : String ) : KeyStore
All in one wrapper to manufacture a root CA cert and an Intermediate CA cert.
+Normally this would be run once and then the outputs would be re-used repeatedly to manufacture the server certs
+
+
+
+
+createCertificateSigningRequest
+
+fun createCertificateSigningRequest ( myLegalName : String , nearestCity : String , email : String , keyPair : KeyPair ) : <ERROR CLASS>
Create certificate signing request using provided information.
+
+
+
+
+createIntermediateCert
+
+fun createIntermediateCert ( domain : String , certificateAuthority : CACertAndKey ) : CACertAndKey
Create a de novo root intermediate X509 v3 CA cert and KeyPair.
+
+
+
+
+createKeystoreForSSL
+
+fun createKeystoreForSSL ( : Path , : String , : String , : KeyStore , : String ) : KeyStore
An all in wrapper to manufacture a server certificate and keys all stored in a KeyStore suitable for running TLS on the local machine
+
+
+
+
+createSelfSignedCACert
+
+fun createSelfSignedCACert ( myLegalName : String ) : CACertAndKey
Create a de novo root self-signed X509 v3 CA cert and KeyPair .
+
+
+
+
+createServerCert
+
+fun createServerCert ( subject : <ERROR CLASS> , publicKey : PublicKey , certificateAuthority : CACertAndKey , subjectAlternativeNameDomains : List < String > , subjectAlternativeNameIps : List < String > ) : X509Certificate
Create an X509v3 certificate suitable for use in TLS roles.
+
+
+
+
+generateECDSAKeyPairForSSL
+
+fun generateECDSAKeyPairForSSL ( ) : KeyPair
Generate a standard curve ECDSA KeyPair suitable for TLS, although the rest of Corda uses newer curves.
+
+
+
+
+getDevX509Name
+
+fun getDevX509Name ( domain : String ) : <ERROR CLASS>
Helper method to create Subject field contents
+
+
+
+
+getX509Name
+
+fun getX509Name ( myLegalName : String , nearestCity : String , email : String ) : <ERROR CLASS>
+
+
+
+loadCertificateAndKey
+
+fun loadCertificateAndKey ( keyStore : KeyStore , keyPassword : String , alias : String ) : CACertAndKey
Helper method to load a Certificate and KeyPair from their KeyStore.
+The access details should match those of the createCAKeyStoreAndTrustStore call used to manufacture the keys.
+
+
+
+
+loadCertificateFromKeyStore
+
+fun loadCertificateFromKeyStore ( keyStoreFilePath : Path , storePassword : String , alias : String ) : X509Certificate
Extract public X509 certificate from a KeyStore file assuming storage alias is know
+
+
+
+
+loadCertificateFromPEMFile
+
+fun loadCertificateFromPEMFile ( filename : Path ) : X509Certificate
Helper method to load back a .pem/.cer format file copy of a certificate
+
+
+
+
+loadKeyPairFromKeyStore
+
+fun loadKeyPairFromKeyStore ( keyStoreFilePath : Path , storePassword : String , keyPassword : String , alias : String ) : KeyPair
Extract public and private keys from a KeyStore file assuming storage alias is known.
+
+
+
+
+loadKeyStore
+
+fun loadKeyStore ( keyStoreFilePath : Path , storePassword : String ) : KeyStore
+fun loadKeyStore ( input : InputStream , storePassword : String ) : KeyStore
Helper method to open an existing keystore for modification/read
+
+
+
+
+loadOrCreateKeyPairFromKeyStore
+
+fun loadOrCreateKeyPairFromKeyStore ( keyStoreFilePath : Path , storePassword : String , keyPassword : String , alias : String , keyGenerator : ( ) -> CACertAndKey ) : KeyPair
Extract public and private keys from a KeyStore file assuming storage alias is known, or
+create a new pair of keys using the provided function if the keys not exist.
+
+
+
+
+loadOrCreateKeyStore
+
+fun loadOrCreateKeyStore ( keyStoreFilePath : Path , storePassword : String ) : KeyStore
Helper method to either open an existing keystore for modification, or create a new blank keystore.
+
+
+
+
+saveCertificateAsPEMFile
+
+fun saveCertificateAsPEMFile ( x509Certificate : X509Certificate , filename : Path ) : Unit
Helper method to store a .pem/.cer format file copy of a certificate if required for import into a PC/Mac, or for inspection
+
+
+
+
+saveKeyStore
+
+fun saveKeyStore ( keyStore : KeyStore , keyStoreFilePath : Path , storePassword : String ) : Unit
Helper method save KeyStore to storage
+
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.crypto/-x509-utilities/load-certificate-and-key.html b/docs/build/html/api/net.corda.core.crypto/-x509-utilities/load-certificate-and-key.html
new file mode 100644
index 0000000000..33920d6ff9
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.crypto/-x509-utilities/load-certificate-and-key.html
@@ -0,0 +1,27 @@
+
+
+X509Utilities.loadCertificateAndKey -
+
+
+
+net.corda.core.crypto / X509Utilities / loadCertificateAndKey
+
+loadCertificateAndKey
+
+fun loadCertificateAndKey ( keyStore : KeyStore , keyPassword : String , alias : String ) : CACertAndKey
+Helper method to load a Certificate and KeyPair from their KeyStore.
+The access details should match those of the createCAKeyStoreAndTrustStore call used to manufacture the keys.
+Parameters
+
+keyStore
- Source KeyStore to look in for the data
+
+
+keyPassword
- The password for the PrivateKey (not the store access password)
+
+
+alias
- The name to search for the data. Typically if generated with the methods here this will be one of
+CERT_PRIVATE_KEY_ALIAS, ROOT_CA_CERT_PRIVATE_KEY_ALIAS, INTERMEDIATE_CA_PRIVATE_KEY_ALIAS defined above
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.crypto/-x509-utilities/load-certificate-from-key-store.html b/docs/build/html/api/net.corda.core.crypto/-x509-utilities/load-certificate-from-key-store.html
new file mode 100644
index 0000000000..6bbe0b0160
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.crypto/-x509-utilities/load-certificate-from-key-store.html
@@ -0,0 +1,27 @@
+
+
+X509Utilities.loadCertificateFromKeyStore -
+
+
+
+net.corda.core.crypto / X509Utilities / loadCertificateFromKeyStore
+
+loadCertificateFromKeyStore
+
+fun loadCertificateFromKeyStore ( keyStoreFilePath : Path , storePassword : String , alias : String ) : X509Certificate
+Extract public X509 certificate from a KeyStore file assuming storage alias is know
+Parameters
+
+keyStoreFilePath
- Path to load KeyStore from
+
+
+storePassword
- Password to unlock the KeyStore
+
+
+alias
- The name to lookup the Key and Certificate chain from
+Return
+The X509Certificate found in the KeyStore under the specified alias
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.crypto/-x509-utilities/load-certificate-from-p-e-m-file.html b/docs/build/html/api/net.corda.core.crypto/-x509-utilities/load-certificate-from-p-e-m-file.html
new file mode 100644
index 0000000000..219f2a2614
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.crypto/-x509-utilities/load-certificate-from-p-e-m-file.html
@@ -0,0 +1,21 @@
+
+
+X509Utilities.loadCertificateFromPEMFile -
+
+
+
+net.corda.core.crypto / X509Utilities / loadCertificateFromPEMFile
+
+loadCertificateFromPEMFile
+
+fun loadCertificateFromPEMFile ( filename : Path ) : X509Certificate
+Helper method to load back a .pem/.cer format file copy of a certificate
+Parameters
+
+filename
- Source filename
+Return
+The X509Certificate that was encoded in the file
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.crypto/-x509-utilities/load-key-pair-from-key-store.html b/docs/build/html/api/net.corda.core.crypto/-x509-utilities/load-key-pair-from-key-store.html
new file mode 100644
index 0000000000..40d74396ba
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.crypto/-x509-utilities/load-key-pair-from-key-store.html
@@ -0,0 +1,30 @@
+
+
+X509Utilities.loadKeyPairFromKeyStore -
+
+
+
+net.corda.core.crypto / X509Utilities / loadKeyPairFromKeyStore
+
+loadKeyPairFromKeyStore
+
+fun loadKeyPairFromKeyStore ( keyStoreFilePath : Path , storePassword : String , keyPassword : String , alias : String ) : KeyPair
+Extract public and private keys from a KeyStore file assuming storage alias is known.
+Parameters
+
+keyStoreFilePath
- Path to load KeyStore from
+
+
+storePassword
- Password to unlock the KeyStore
+
+
+keyPassword
- Password to unlock the private key entries
+
+
+alias
- The name to lookup the Key and Certificate chain from
+Return
+The KeyPair found in the KeyStore under the specified alias
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.crypto/-x509-utilities/load-key-store.html b/docs/build/html/api/net.corda.core.crypto/-x509-utilities/load-key-store.html
new file mode 100644
index 0000000000..a56d7c9c00
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.crypto/-x509-utilities/load-key-store.html
@@ -0,0 +1,39 @@
+
+
+X509Utilities.loadKeyStore -
+
+
+
+net.corda.core.crypto / X509Utilities / loadKeyStore
+
+loadKeyStore
+
+fun loadKeyStore ( keyStoreFilePath : Path , storePassword : String ) : KeyStore
+Helper method to open an existing keystore for modification/read
+Parameters
+
+keyStoreFilePath
- location of KeyStore file which must exist, or this will throw FileNotFoundException
+
+
+storePassword
- password to open the store. This does not have to be the same password as any keys stored,
+but for SSL purposes this is recommended.
+Return
+returns the KeyStore opened
+
+
+
+fun loadKeyStore ( input : InputStream , storePassword : String ) : KeyStore
+Helper method to open an existing keystore for modification/read
+Parameters
+
+input
- stream containing a KeyStore e.g. loaded from a resource file
+
+
+storePassword
- password to open the store. This does not have to be the same password as any keys stored,
+but for SSL purposes this is recommended.
+Return
+returns the KeyStore opened
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.crypto/-x509-utilities/load-or-create-key-pair-from-key-store.html b/docs/build/html/api/net.corda.core.crypto/-x509-utilities/load-or-create-key-pair-from-key-store.html
new file mode 100644
index 0000000000..c155328ac7
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.crypto/-x509-utilities/load-or-create-key-pair-from-key-store.html
@@ -0,0 +1,34 @@
+
+
+X509Utilities.loadOrCreateKeyPairFromKeyStore -
+
+
+
+net.corda.core.crypto / X509Utilities / loadOrCreateKeyPairFromKeyStore
+
+loadOrCreateKeyPairFromKeyStore
+
+fun loadOrCreateKeyPairFromKeyStore ( keyStoreFilePath : Path , storePassword : String , keyPassword : String , alias : String , keyGenerator : ( ) -> CACertAndKey ) : KeyPair
+Extract public and private keys from a KeyStore file assuming storage alias is known, or
+create a new pair of keys using the provided function if the keys not exist.
+Parameters
+
+keyStoreFilePath
- Path to load KeyStore from
+
+
+storePassword
- Password to unlock the KeyStore
+
+
+keyPassword
- Password to unlock the private key entries
+
+
+alias
- The name to lookup the Key and Certificate chain from
+
+
+keyGenerator
- Function for generating new keys
+Return
+The KeyPair found in the KeyStore under the specified alias
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.crypto/-x509-utilities/load-or-create-key-store.html b/docs/build/html/api/net.corda.core.crypto/-x509-utilities/load-or-create-key-store.html
new file mode 100644
index 0000000000..420ccf75d5
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.crypto/-x509-utilities/load-or-create-key-store.html
@@ -0,0 +1,25 @@
+
+
+X509Utilities.loadOrCreateKeyStore -
+
+
+
+net.corda.core.crypto / X509Utilities / loadOrCreateKeyStore
+
+loadOrCreateKeyStore
+
+fun loadOrCreateKeyStore ( keyStoreFilePath : Path , storePassword : String ) : KeyStore
+Helper method to either open an existing keystore for modification, or create a new blank keystore.
+Parameters
+
+keyStoreFilePath
- location of KeyStore file
+
+
+storePassword
- password to open the store. This does not have to be the same password as any keys stored,
+but for SSL purposes this is recommended.
+Return
+returns the KeyStore opened/created
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.crypto/-x509-utilities/save-certificate-as-p-e-m-file.html b/docs/build/html/api/net.corda.core.crypto/-x509-utilities/save-certificate-as-p-e-m-file.html
new file mode 100644
index 0000000000..bc0279b83c
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.crypto/-x509-utilities/save-certificate-as-p-e-m-file.html
@@ -0,0 +1,22 @@
+
+
+X509Utilities.saveCertificateAsPEMFile -
+
+
+
+net.corda.core.crypto / X509Utilities / saveCertificateAsPEMFile
+
+saveCertificateAsPEMFile
+
+fun saveCertificateAsPEMFile ( x509Certificate : X509Certificate , filename : Path ) : Unit
+Helper method to store a .pem/.cer format file copy of a certificate if required for import into a PC/Mac, or for inspection
+Parameters
+
+x509Certificate
- certificate to save
+
+
+filename
- Target filename
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.crypto/-x509-utilities/save-key-store.html b/docs/build/html/api/net.corda.core.crypto/-x509-utilities/save-key-store.html
new file mode 100644
index 0000000000..6745b7cc03
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.crypto/-x509-utilities/save-key-store.html
@@ -0,0 +1,26 @@
+
+
+X509Utilities.saveKeyStore -
+
+
+
+net.corda.core.crypto / X509Utilities / saveKeyStore
+
+saveKeyStore
+
+fun saveKeyStore ( keyStore : KeyStore , keyStoreFilePath : Path , storePassword : String ) : Unit
+Helper method save KeyStore to storage
+Parameters
+
+keyStore
- the KeyStore to persist
+
+
+keyStoreFilePath
- the file location to save to
+
+
+storePassword
- password to access the store in future. This does not have to be the same password as any keys stored,
+but for SSL purposes this is recommended.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.crypto/ed25519-curve.html b/docs/build/html/api/net.corda.core.crypto/ed25519-curve.html
new file mode 100644
index 0000000000..6b10e2e455
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.crypto/ed25519-curve.html
@@ -0,0 +1,15 @@
+
+
+ed25519Curve -
+
+
+
+net.corda.core.crypto / ed25519Curve
+
+ed25519Curve
+
+val ed25519Curve : <ERROR CLASS>
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.crypto/entropy-to-key-pair.html b/docs/build/html/api/net.corda.core.crypto/entropy-to-key-pair.html
new file mode 100644
index 0000000000..3fd1d6590c
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.crypto/entropy-to-key-pair.html
@@ -0,0 +1,17 @@
+
+
+entropyToKeyPair -
+
+
+
+net.corda.core.crypto / entropyToKeyPair
+
+entropyToKeyPair
+
+fun entropyToKeyPair ( entropy : BigInteger ) : KeyPair
+Returns a key pair derived from the given private key entropy. This is useful for unit tests and other cases where
+you want hard-coded private keys.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.crypto/generate-key-pair.html b/docs/build/html/api/net.corda.core.crypto/generate-key-pair.html
new file mode 100644
index 0000000000..b1db4240a3
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.crypto/generate-key-pair.html
@@ -0,0 +1,16 @@
+
+
+generateKeyPair -
+
+
+
+net.corda.core.crypto / generateKeyPair
+
+generateKeyPair
+
+fun generateKeyPair ( ) : KeyPair
+A simple wrapper that will make it easier to swap out the EC algorithm we use in future
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.crypto/index.html b/docs/build/html/api/net.corda.core.crypto/index.html
new file mode 100644
index 0000000000..aef83d8fdf
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.crypto/index.html
@@ -0,0 +1,218 @@
+
+
+net.corda.core.crypto -
+
+
+
+net.corda.core.crypto
+
+Package net.corda.core.crypto
+Types
+
+
+
+
+DigitalSignature
+
+open class DigitalSignature : OpaqueBytes
A wrapper around a digital signature. The covering field is a generic tag usable by whatever is interpreting the
+signature. It isnt used currently, but experience from Bitcoin suggests such a feature is useful, especially when
+building partially signed transactions.
+
+
+
+
+DummyPublicKey
+
+class DummyPublicKey : PublicKey , Comparable < PublicKey >
+
+
+
+NullPublicKey
+
+object NullPublicKey : PublicKey , Comparable < PublicKey >
+
+
+
+NullSignature
+
+object NullSignature : WithKey
A signature with a key and value of zero. Useful when you want a signature object that you know wont ever be used.
+
+
+
+
+PartialMerkleTree
+
+class PartialMerkleTree
Building and verification of Partial Merkle Tree.
+Partial Merkle Tree is a minimal tree needed to check that a given set of leaves belongs to a full Merkle Tree.
+
+
+
+
+Party
+
+data class Party
A Party is well known (name, pubkey) pair. In a real system this would probably be an X.509 certificate.
+
+
+
+
+PublicKeyTree
+
+sealed class PublicKeyTree
A tree data structure that enables the representation of composite public keys.
+
+
+
+
+SecureHash
+
+sealed class SecureHash : OpaqueBytes
Container for a cryptographically secure hash value.
+Provides utilities for generating a cryptographic hash using different algorithms (currently only SHA-256 supported).
+
+
+
+
+SignedData
+
+open class SignedData < T : Any >
A serialized piece of data and its signature. Enforces signature validity in order to deserialize the data
+contained within.
+
+
+
+
+WhitelistTrustManager
+
+class WhitelistTrustManager : X509ExtendedTrustManager
Our TrustManager extension takes the standard certificate checker and first delegates all the
+chain checking to that. If everything is well formed we then simply add a check against our whitelist
+
+
+
+
+WhitelistTrustManagerProvider
+
+object WhitelistTrustManagerProvider : Provider
Custom Security Provider that forces the TrustManagerFactory to be our custom one.
+Also holds the identity of the original TrustManager algorithm so
+that we can delegate most of the checking to the proper Java code. We simply add some more checks.
+
+
+
+
+WhitelistTrustManagerSpi
+
+class WhitelistTrustManagerSpi : TrustManagerFactorySpi
Registered TrustManagerFactorySpi
+
+
+
+
+X509Utilities
+
+object X509Utilities
+
+
+
+Exceptions
+
+Extensions for External Classes
+
+Properties
+
+
+
+
+ed25519Curve
+
+val ed25519Curve : <ERROR CLASS>
+
+
+
+Functions
+
+
+
+
+entropyToKeyPair
+
+fun entropyToKeyPair ( entropy : BigInteger ) : KeyPair
Returns a key pair derived from the given private key entropy. This is useful for unit tests and other cases where
+you want hard-coded private keys.
+
+
+
+
+generateKeyPair
+
+fun generateKeyPair ( ) : KeyPair
A simple wrapper that will make it easier to swap out the EC algorithm we use in future
+
+
+
+
+newSecureRandom
+
+fun newSecureRandom ( ) : SecureRandom
+
+
+
+parsePublicKeyBase58
+
+fun parsePublicKeyBase58 ( base58String : String ) : <ERROR CLASS>
+
+
+
+registerWhitelistTrustManager
+
+fun registerWhitelistTrustManager ( ) : Unit
Call this to change the default verification algorithm and this use the WhitelistTrustManager
+implementation. This is a work around to the fact that ArtemisMQ and probably many other libraries
+dont correctly configure the SSLParameters with setEndpointIdentificationAlgorithm and thus dont check
+that the certificate matches with the DNS entry requested. This exposes us to man in the middle attacks.
+The issue has been raised with ArtemisMQ: https://issues.apache.org/jira/browse/ARTEMIS-656
+
+
+
+
+sha256
+
+fun OpaqueBytes . sha256 ( ) : SHA256
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.crypto/java.security.-key-pair/component1.html b/docs/build/html/api/net.corda.core.crypto/java.security.-key-pair/component1.html
new file mode 100644
index 0000000000..da75af1da7
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.crypto/java.security.-key-pair/component1.html
@@ -0,0 +1,15 @@
+
+
+component1 -
+
+
+
+net.corda.core.crypto / java.security.KeyPair / component1
+
+component1
+
+operator fun KeyPair . component1 ( ) : PrivateKey
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.crypto/java.security.-key-pair/component2.html b/docs/build/html/api/net.corda.core.crypto/java.security.-key-pair/component2.html
new file mode 100644
index 0000000000..f65051b017
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.crypto/java.security.-key-pair/component2.html
@@ -0,0 +1,15 @@
+
+
+component2 -
+
+
+
+net.corda.core.crypto / java.security.KeyPair / component2
+
+component2
+
+operator fun KeyPair . component2 ( ) : PublicKey
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.crypto/java.security.-key-pair/index.html b/docs/build/html/api/net.corda.core.crypto/java.security.-key-pair/index.html
new file mode 100644
index 0000000000..7e8bd46097
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.crypto/java.security.-key-pair/index.html
@@ -0,0 +1,36 @@
+
+
+net.corda.core.crypto.java.security.KeyPair -
+
+
+
+net.corda.core.crypto / java.security.KeyPair
+
+Extensions for java.security.KeyPair
+
+
+
diff --git a/docs/build/html/api/net.corda.core.crypto/java.security.-key-pair/sign-with-e-c-d-s-a.html b/docs/build/html/api/net.corda.core.crypto/java.security.-key-pair/sign-with-e-c-d-s-a.html
new file mode 100644
index 0000000000..b8f1945bd4
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.crypto/java.security.-key-pair/sign-with-e-c-d-s-a.html
@@ -0,0 +1,21 @@
+
+
+signWithECDSA -
+
+
+
+net.corda.core.crypto / java.security.KeyPair / signWithECDSA
+
+signWithECDSA
+
+fun KeyPair . signWithECDSA ( bitsToSign : ByteArray ) : WithKey
+
+fun KeyPair . signWithECDSA ( bitsToSign : OpaqueBytes ) : WithKey
+
+fun KeyPair . signWithECDSA ( bitsToSign : OpaqueBytes , party : Party ) : LegallyIdentifiable
+
+fun KeyPair . signWithECDSA ( bitsToSign : ByteArray , party : Party ) : LegallyIdentifiable
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.crypto/java.security.-private-key/index.html b/docs/build/html/api/net.corda.core.crypto/java.security.-private-key/index.html
new file mode 100644
index 0000000000..6b3feec0bb
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.crypto/java.security.-private-key/index.html
@@ -0,0 +1,22 @@
+
+
+net.corda.core.crypto.java.security.PrivateKey -
+
+
+
+net.corda.core.crypto / java.security.PrivateKey
+
+Extensions for java.security.PrivateKey
+
+
+
diff --git a/docs/build/html/api/net.corda.core.crypto/java.security.-private-key/sign-with-e-c-d-s-a.html b/docs/build/html/api/net.corda.core.crypto/java.security.-private-key/sign-with-e-c-d-s-a.html
new file mode 100644
index 0000000000..0158e472f2
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.crypto/java.security.-private-key/sign-with-e-c-d-s-a.html
@@ -0,0 +1,20 @@
+
+
+signWithECDSA -
+
+
+
+net.corda.core.crypto / java.security.PrivateKey / signWithECDSA
+
+signWithECDSA
+
+fun PrivateKey . signWithECDSA ( bits : ByteArray ) : DigitalSignature
+Utility to simplify the act of signing a byte array
+
+
+
+fun PrivateKey . signWithECDSA ( bitsToSign : ByteArray , publicKey : PublicKey ) : WithKey
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.crypto/java.security.-public-key/index.html b/docs/build/html/api/net.corda.core.crypto/java.security.-public-key/index.html
new file mode 100644
index 0000000000..e41c34e27f
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.crypto/java.security.-public-key/index.html
@@ -0,0 +1,42 @@
+
+
+net.corda.core.crypto.java.security.PublicKey -
+
+
+
+net.corda.core.crypto / java.security.PublicKey
+
+Extensions for java.security.PublicKey
+
+
+
diff --git a/docs/build/html/api/net.corda.core.crypto/java.security.-public-key/to-base58-string.html b/docs/build/html/api/net.corda.core.crypto/java.security.-public-key/to-base58-string.html
new file mode 100644
index 0000000000..37b3b274f3
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.crypto/java.security.-public-key/to-base58-string.html
@@ -0,0 +1,15 @@
+
+
+toBase58String -
+
+
+
+net.corda.core.crypto / java.security.PublicKey / toBase58String
+
+toBase58String
+
+fun PublicKey . toBase58String ( ) : <ERROR CLASS>
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.crypto/java.security.-public-key/to-string-short.html b/docs/build/html/api/net.corda.core.crypto/java.security.-public-key/to-string-short.html
new file mode 100644
index 0000000000..f60a399156
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.crypto/java.security.-public-key/to-string-short.html
@@ -0,0 +1,16 @@
+
+
+toStringShort -
+
+
+
+net.corda.core.crypto / java.security.PublicKey / toStringShort
+
+toStringShort
+
+fun PublicKey . toStringShort ( ) : String
+Render a public key to a string, using a short form if its an elliptic curve public key
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.crypto/java.security.-public-key/tree.html b/docs/build/html/api/net.corda.core.crypto/java.security.-public-key/tree.html
new file mode 100644
index 0000000000..bed7c723e7
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.crypto/java.security.-public-key/tree.html
@@ -0,0 +1,16 @@
+
+
+tree -
+
+
+
+net.corda.core.crypto / java.security.PublicKey / tree
+
+tree
+
+val PublicKey . tree : PublicKeyTree
+Creates a PublicKeyTree with a single leaf node containing the public key
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.crypto/java.security.-public-key/verify-with-e-c-d-s-a.html b/docs/build/html/api/net.corda.core.crypto/java.security.-public-key/verify-with-e-c-d-s-a.html
new file mode 100644
index 0000000000..60e18970b5
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.crypto/java.security.-public-key/verify-with-e-c-d-s-a.html
@@ -0,0 +1,16 @@
+
+
+verifyWithECDSA -
+
+
+
+net.corda.core.crypto / java.security.PublicKey / verifyWithECDSA
+
+verifyWithECDSA
+
+fun PublicKey . verifyWithECDSA ( content : ByteArray , signature : DigitalSignature ) : Unit
+Utility to simplify the act of verifying a signature
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.crypto/kotlin.-byte-array/index.html b/docs/build/html/api/net.corda.core.crypto/kotlin.-byte-array/index.html
new file mode 100644
index 0000000000..05e6818ae9
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.crypto/kotlin.-byte-array/index.html
@@ -0,0 +1,21 @@
+
+
+net.corda.core.crypto.kotlin.ByteArray -
+
+
+
+net.corda.core.crypto / kotlin.ByteArray
+
+Extensions for kotlin.ByteArray
+
+
+
diff --git a/docs/build/html/api/net.corda.core.crypto/kotlin.-byte-array/sha256.html b/docs/build/html/api/net.corda.core.crypto/kotlin.-byte-array/sha256.html
new file mode 100644
index 0000000000..2e002acf74
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.crypto/kotlin.-byte-array/sha256.html
@@ -0,0 +1,15 @@
+
+
+sha256 -
+
+
+
+net.corda.core.crypto / kotlin.ByteArray / sha256
+
+sha256
+
+fun ByteArray . sha256 ( ) : SHA256
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.crypto/kotlin.collections.-iterable/by-keys.html b/docs/build/html/api/net.corda.core.crypto/kotlin.collections.-iterable/by-keys.html
new file mode 100644
index 0000000000..9121f84ab2
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.crypto/kotlin.collections.-iterable/by-keys.html
@@ -0,0 +1,16 @@
+
+
+byKeys -
+
+
+
+net.corda.core.crypto / kotlin.collections.Iterable / byKeys
+
+byKeys
+
+fun Iterable < WithKey > . byKeys ( ) : <ERROR CLASS>
+Returns the set of all PublicKey s of the signatures
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.crypto/kotlin.collections.-iterable/get-keys.html b/docs/build/html/api/net.corda.core.crypto/kotlin.collections.-iterable/get-keys.html
new file mode 100644
index 0000000000..0586b9ef5e
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.crypto/kotlin.collections.-iterable/get-keys.html
@@ -0,0 +1,16 @@
+
+
+getKeys -
+
+
+
+net.corda.core.crypto / kotlin.collections.Iterable / getKeys
+
+getKeys
+
+fun Iterable < PublicKeyTree > . getKeys ( ) : <ERROR CLASS>
+Returns the set of all PublicKey s contained in the leaves of the PublicKeyTree s
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.crypto/kotlin.collections.-iterable/index.html b/docs/build/html/api/net.corda.core.crypto/kotlin.collections.-iterable/index.html
new file mode 100644
index 0000000000..96e6d845ef
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.crypto/kotlin.collections.-iterable/index.html
@@ -0,0 +1,35 @@
+
+
+net.corda.core.crypto.kotlin.collections.Iterable -
+
+
+
+net.corda.core.crypto / kotlin.collections.Iterable
+
+Extensions for kotlin.collections.Iterable
+
+
+
diff --git a/docs/build/html/api/net.corda.core.crypto/kotlin.collections.-iterable/to-strings-short.html b/docs/build/html/api/net.corda.core.crypto/kotlin.collections.-iterable/to-strings-short.html
new file mode 100644
index 0000000000..ac9e076287
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.crypto/kotlin.collections.-iterable/to-strings-short.html
@@ -0,0 +1,15 @@
+
+
+toStringsShort -
+
+
+
+net.corda.core.crypto / kotlin.collections.Iterable / toStringsShort
+
+toStringsShort
+
+fun Iterable < PublicKey > . toStringsShort ( ) : String
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.crypto/new-secure-random.html b/docs/build/html/api/net.corda.core.crypto/new-secure-random.html
new file mode 100644
index 0000000000..f0dd30192d
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.crypto/new-secure-random.html
@@ -0,0 +1,15 @@
+
+
+newSecureRandom -
+
+
+
+net.corda.core.crypto / newSecureRandom
+
+newSecureRandom
+
+fun newSecureRandom ( ) : SecureRandom
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.crypto/parse-public-key-base58.html b/docs/build/html/api/net.corda.core.crypto/parse-public-key-base58.html
new file mode 100644
index 0000000000..e170f4d767
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.crypto/parse-public-key-base58.html
@@ -0,0 +1,15 @@
+
+
+parsePublicKeyBase58 -
+
+
+
+net.corda.core.crypto / parsePublicKeyBase58
+
+parsePublicKeyBase58
+
+fun parsePublicKeyBase58 ( base58String : String ) : <ERROR CLASS>
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.crypto/register-whitelist-trust-manager.html b/docs/build/html/api/net.corda.core.crypto/register-whitelist-trust-manager.html
new file mode 100644
index 0000000000..1a69ac56d9
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.crypto/register-whitelist-trust-manager.html
@@ -0,0 +1,20 @@
+
+
+registerWhitelistTrustManager -
+
+
+
+net.corda.core.crypto / registerWhitelistTrustManager
+
+registerWhitelistTrustManager
+
+fun registerWhitelistTrustManager ( ) : Unit
+Call this to change the default verification algorithm and this use the WhitelistTrustManager
+implementation. This is a work around to the fact that ArtemisMQ and probably many other libraries
+dont correctly configure the SSLParameters with setEndpointIdentificationAlgorithm and thus dont check
+that the certificate matches with the DNS entry requested. This exposes us to man in the middle attacks.
+The issue has been raised with ArtemisMQ: https://issues.apache.org/jira/browse/ARTEMIS-656
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.crypto/sha256.html b/docs/build/html/api/net.corda.core.crypto/sha256.html
new file mode 100644
index 0000000000..949c6eed57
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.crypto/sha256.html
@@ -0,0 +1,15 @@
+
+
+sha256 -
+
+
+
+net.corda.core.crypto / sha256
+
+sha256
+
+fun OpaqueBytes . sha256 ( ) : SHA256
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.math/-cubic-spline-interpolator/-init-.html b/docs/build/html/api/net.corda.core.math/-cubic-spline-interpolator/-init-.html
new file mode 100644
index 0000000000..b5461442a6
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.math/-cubic-spline-interpolator/-init-.html
@@ -0,0 +1,19 @@
+
+
+CubicSplineInterpolator. -
+
+
+
+net.corda.core.math / CubicSplineInterpolator / <init>
+
+<init>
+CubicSplineInterpolator ( xs : DoubleArray , ys : DoubleArray )
+Interpolates values between the given data points using a SplineFunction .
+Implementation uses the Natural Cubic Spline algorithm as described in
+R. L. Burden and J. D. Faires (2011), Numerical Analysis . 9th ed. Boston, MA: Brooks/Cole, Cengage Learning. p149-150.
+
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.math/-cubic-spline-interpolator/create.html b/docs/build/html/api/net.corda.core.math/-cubic-spline-interpolator/create.html
new file mode 100644
index 0000000000..c5b30e60ce
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.math/-cubic-spline-interpolator/create.html
@@ -0,0 +1,16 @@
+
+
+CubicSplineInterpolator.create -
+
+
+
+net.corda.core.math / CubicSplineInterpolator / create
+
+create
+
+fun create ( xs : DoubleArray , ys : DoubleArray ) : CubicSplineInterpolator
+Overrides InterpolatorFactory.create
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.math/-cubic-spline-interpolator/index.html b/docs/build/html/api/net.corda.core.math/-cubic-spline-interpolator/index.html
new file mode 100644
index 0000000000..31d6c4ddd6
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.math/-cubic-spline-interpolator/index.html
@@ -0,0 +1,53 @@
+
+
+CubicSplineInterpolator -
+
+
+
+net.corda.core.math / CubicSplineInterpolator
+
+CubicSplineInterpolator
+class CubicSplineInterpolator : Interpolator
+Interpolates values between the given data points using a SplineFunction .
+Implementation uses the Natural Cubic Spline algorithm as described in
+R. L. Burden and J. D. Faires (2011), Numerical Analysis . 9th ed. Boston, MA: Brooks/Cole, Cengage Learning. p149-150.
+
+
+
+
+Constructors
+
+
+
+
+<init>
+
+CubicSplineInterpolator ( xs : DoubleArray , ys : DoubleArray )
Interpolates values between the given data points using a SplineFunction .
+
+
+
+
+Functions
+
+
+
+
+interpolate
+
+fun interpolate ( x : Double ) : Double
+
+
+
+Companion Object Functions
+
+
+
+
+create
+
+fun create ( xs : DoubleArray , ys : DoubleArray ) : CubicSplineInterpolator
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.math/-cubic-spline-interpolator/interpolate.html b/docs/build/html/api/net.corda.core.math/-cubic-spline-interpolator/interpolate.html
new file mode 100644
index 0000000000..7d459c89e6
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.math/-cubic-spline-interpolator/interpolate.html
@@ -0,0 +1,16 @@
+
+
+CubicSplineInterpolator.interpolate -
+
+
+
+net.corda.core.math / CubicSplineInterpolator / interpolate
+
+interpolate
+
+fun interpolate ( x : Double ) : Double
+Overrides Interpolator.interpolate
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.math/-interpolator-factory/create.html b/docs/build/html/api/net.corda.core.math/-interpolator-factory/create.html
new file mode 100644
index 0000000000..6567695783
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.math/-interpolator-factory/create.html
@@ -0,0 +1,15 @@
+
+
+InterpolatorFactory.create -
+
+
+
+net.corda.core.math / InterpolatorFactory / create
+
+create
+
+abstract fun create ( xs : DoubleArray , ys : DoubleArray ) : Interpolator
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.math/-interpolator-factory/index.html b/docs/build/html/api/net.corda.core.math/-interpolator-factory/index.html
new file mode 100644
index 0000000000..268071c221
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.math/-interpolator-factory/index.html
@@ -0,0 +1,25 @@
+
+
+InterpolatorFactory -
+
+
+
+net.corda.core.math / InterpolatorFactory
+
+InterpolatorFactory
+interface InterpolatorFactory
+
+
+Functions
+
+
+
+
+create
+
+abstract fun create ( xs : DoubleArray , ys : DoubleArray ) : Interpolator
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.math/-interpolator/index.html b/docs/build/html/api/net.corda.core.math/-interpolator/index.html
new file mode 100644
index 0000000000..1c1394f4cd
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.math/-interpolator/index.html
@@ -0,0 +1,44 @@
+
+
+Interpolator -
+
+
+
+net.corda.core.math / Interpolator
+
+Interpolator
+interface Interpolator
+
+
+Functions
+
+
+
+
+interpolate
+
+abstract fun interpolate ( x : Double ) : Double
+
+
+
+Inheritors
+
+
+
+
+CubicSplineInterpolator
+
+class CubicSplineInterpolator : Interpolator
Interpolates values between the given data points using a SplineFunction .
+
+
+
+
+LinearInterpolator
+
+class LinearInterpolator : Interpolator
Interpolates values between the given data points using straight lines.
+
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.math/-interpolator/interpolate.html b/docs/build/html/api/net.corda.core.math/-interpolator/interpolate.html
new file mode 100644
index 0000000000..f9349276cb
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.math/-interpolator/interpolate.html
@@ -0,0 +1,15 @@
+
+
+Interpolator.interpolate -
+
+
+
+net.corda.core.math / Interpolator / interpolate
+
+interpolate
+
+abstract fun interpolate ( x : Double ) : Double
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.math/-linear-interpolator/-init-.html b/docs/build/html/api/net.corda.core.math/-linear-interpolator/-init-.html
new file mode 100644
index 0000000000..5ed8d83ee9
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.math/-linear-interpolator/-init-.html
@@ -0,0 +1,15 @@
+
+
+LinearInterpolator. -
+
+
+
+net.corda.core.math / LinearInterpolator / <init>
+
+<init>
+LinearInterpolator ( xs : DoubleArray , ys : DoubleArray )
+Interpolates values between the given data points using straight lines.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.math/-linear-interpolator/create.html b/docs/build/html/api/net.corda.core.math/-linear-interpolator/create.html
new file mode 100644
index 0000000000..81705c80b5
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.math/-linear-interpolator/create.html
@@ -0,0 +1,16 @@
+
+
+LinearInterpolator.create -
+
+
+
+net.corda.core.math / LinearInterpolator / create
+
+create
+
+fun create ( xs : DoubleArray , ys : DoubleArray ) : LinearInterpolator
+Overrides InterpolatorFactory.create
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.math/-linear-interpolator/index.html b/docs/build/html/api/net.corda.core.math/-linear-interpolator/index.html
new file mode 100644
index 0000000000..aa51633491
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.math/-linear-interpolator/index.html
@@ -0,0 +1,49 @@
+
+
+LinearInterpolator -
+
+
+
+net.corda.core.math / LinearInterpolator
+
+LinearInterpolator
+class LinearInterpolator : Interpolator
+Interpolates values between the given data points using straight lines.
+
+
+Constructors
+
+
+
+
+<init>
+
+LinearInterpolator ( xs : DoubleArray , ys : DoubleArray )
Interpolates values between the given data points using straight lines.
+
+
+
+
+Functions
+
+
+
+
+interpolate
+
+fun interpolate ( x : Double ) : Double
+
+
+
+Companion Object Functions
+
+
+
+
+create
+
+fun create ( xs : DoubleArray , ys : DoubleArray ) : LinearInterpolator
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.math/-linear-interpolator/interpolate.html b/docs/build/html/api/net.corda.core.math/-linear-interpolator/interpolate.html
new file mode 100644
index 0000000000..7140e58dec
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.math/-linear-interpolator/interpolate.html
@@ -0,0 +1,16 @@
+
+
+LinearInterpolator.interpolate -
+
+
+
+net.corda.core.math / LinearInterpolator / interpolate
+
+interpolate
+
+fun interpolate ( x : Double ) : Double
+Overrides Interpolator.interpolate
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.math/-polynomial/-init-.html b/docs/build/html/api/net.corda.core.math/-polynomial/-init-.html
new file mode 100644
index 0000000000..392249df67
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.math/-polynomial/-init-.html
@@ -0,0 +1,18 @@
+
+
+Polynomial. -
+
+
+
+net.corda.core.math / Polynomial / <init>
+
+<init>
+Polynomial ( coefficients : DoubleArray )
+Represents a polynomial function of arbitrary degree.
+Parameters
+
+coefficients
- polynomial coefficients in the order of degree (constant first, followed by higher degree term coefficients).
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.math/-polynomial/get-value.html b/docs/build/html/api/net.corda.core.math/-polynomial/get-value.html
new file mode 100644
index 0000000000..c2f5f75a83
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.math/-polynomial/get-value.html
@@ -0,0 +1,15 @@
+
+
+Polynomial.getValue -
+
+
+
+net.corda.core.math / Polynomial / getValue
+
+getValue
+
+fun getValue ( x : Double ) : <ERROR CLASS>
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.math/-polynomial/index.html b/docs/build/html/api/net.corda.core.math/-polynomial/index.html
new file mode 100644
index 0000000000..d3862789d5
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.math/-polynomial/index.html
@@ -0,0 +1,41 @@
+
+
+Polynomial -
+
+
+
+net.corda.core.math / Polynomial
+
+Polynomial
+class Polynomial
+Represents a polynomial function of arbitrary degree.
+Parameters
+
+coefficients
- polynomial coefficients in the order of degree (constant first, followed by higher degree term coefficients).
+
+
+Constructors
+
+
+
+
+<init>
+
+Polynomial ( coefficients : DoubleArray )
Represents a polynomial function of arbitrary degree.
+
+
+
+
+Functions
+
+
+
+
+getValue
+
+fun getValue ( x : Double ) : <ERROR CLASS>
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.math/-spline-function/-init-.html b/docs/build/html/api/net.corda.core.math/-spline-function/-init-.html
new file mode 100644
index 0000000000..e6525dad8d
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.math/-spline-function/-init-.html
@@ -0,0 +1,19 @@
+
+
+SplineFunction. -
+
+
+
+net.corda.core.math / SplineFunction / <init>
+
+<init>
+SplineFunction ( segmentMap : TreeMap < Double , Polynomial > )
+A spline is function piecewise-defined by polynomial functions.
+Points at which polynomial pieces connect are known as knots .
+Parameters
+
+segmentMap
- a mapping between a knot and the polynomial that covers the subsequent interval.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.math/-spline-function/get-value.html b/docs/build/html/api/net.corda.core.math/-spline-function/get-value.html
new file mode 100644
index 0000000000..af9518beef
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.math/-spline-function/get-value.html
@@ -0,0 +1,15 @@
+
+
+SplineFunction.getValue -
+
+
+
+net.corda.core.math / SplineFunction / getValue
+
+getValue
+
+fun getValue ( x : Double ) : Double
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.math/-spline-function/index.html b/docs/build/html/api/net.corda.core.math/-spline-function/index.html
new file mode 100644
index 0000000000..9b31539241
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.math/-spline-function/index.html
@@ -0,0 +1,43 @@
+
+
+SplineFunction -
+
+
+
+net.corda.core.math / SplineFunction
+
+SplineFunction
+class SplineFunction
+A spline is function piecewise-defined by polynomial functions.
+Points at which polynomial pieces connect are known as knots .
+Parameters
+
+segmentMap
- a mapping between a knot and the polynomial that covers the subsequent interval.
+
+
+Constructors
+
+
+
+
+<init>
+
+SplineFunction ( segmentMap : TreeMap < Double , Polynomial > )
A spline is function piecewise-defined by polynomial functions.
+Points at which polynomial pieces connect are known as knots .
+
+
+
+
+Functions
+
+
+
+
+getValue
+
+fun getValue ( x : Double ) : Double
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.math/index.html b/docs/build/html/api/net.corda.core.math/index.html
new file mode 100644
index 0000000000..926be4de6e
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.math/index.html
@@ -0,0 +1,57 @@
+
+
+net.corda.core.math -
+
+
+
+net.corda.core.math
+
+Package net.corda.core.math
+Types
+
+
+
+
+CubicSplineInterpolator
+
+class CubicSplineInterpolator : Interpolator
Interpolates values between the given data points using a SplineFunction .
+
+
+
+
+Interpolator
+
+interface Interpolator
+
+
+
+InterpolatorFactory
+
+interface InterpolatorFactory
+
+
+
+LinearInterpolator
+
+class LinearInterpolator : Interpolator
Interpolates values between the given data points using straight lines.
+
+
+
+
+Polynomial
+
+class Polynomial
Represents a polynomial function of arbitrary degree.
+
+
+
+
+SplineFunction
+
+class SplineFunction
A spline is function piecewise-defined by polynomial functions.
+Points at which polynomial pieces connect are known as knots .
+
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.messaging/-ack.html b/docs/build/html/api/net.corda.core.messaging/-ack.html
new file mode 100644
index 0000000000..bdda5ca4c2
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.messaging/-ack.html
@@ -0,0 +1,16 @@
+
+
+Ack -
+
+
+
+net.corda.core.messaging / Ack
+
+Ack
+object Ack : DeserializeAsKotlinObjectDef
+A general Ack message that conveys no content other than its presence for use when you want an acknowledgement
+from a recipient. Using Unit can be ambiguous as it is similar to Void and so could mean no response.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.messaging/-all-possible-recipients.html b/docs/build/html/api/net.corda.core.messaging/-all-possible-recipients.html
new file mode 100644
index 0000000000..817e2f850e
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.messaging/-all-possible-recipients.html
@@ -0,0 +1,15 @@
+
+
+AllPossibleRecipients -
+
+
+
+net.corda.core.messaging / AllPossibleRecipients
+
+AllPossibleRecipients
+interface AllPossibleRecipients : MessageRecipients
+A special base class for the set of all possible recipients, without having to identify who they all are.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.messaging/-message-handler-registration.html b/docs/build/html/api/net.corda.core.messaging/-message-handler-registration.html
new file mode 100644
index 0000000000..4748c4dbef
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.messaging/-message-handler-registration.html
@@ -0,0 +1,26 @@
+
+
+MessageHandlerRegistration -
+
+
+
+net.corda.core.messaging / MessageHandlerRegistration
+
+MessageHandlerRegistration
+interface MessageHandlerRegistration
+
+
+Inheritors
+
+
+
+
+Handler
+
+data class Handler : MessageHandlerRegistration
A registration to handle messages of different types
+
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.messaging/-message-recipient-group.html b/docs/build/html/api/net.corda.core.messaging/-message-recipient-group.html
new file mode 100644
index 0000000000..f34bc6c074
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.messaging/-message-recipient-group.html
@@ -0,0 +1,15 @@
+
+
+MessageRecipientGroup -
+
+
+
+net.corda.core.messaging / MessageRecipientGroup
+
+MessageRecipientGroup
+interface MessageRecipientGroup : MessageRecipients
+A base class for a set of recipients specifically identified by the sender.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.messaging/-message-recipients.html b/docs/build/html/api/net.corda.core.messaging/-message-recipients.html
new file mode 100644
index 0000000000..aa8f81214c
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.messaging/-message-recipients.html
@@ -0,0 +1,41 @@
+
+
+MessageRecipients -
+
+
+
+net.corda.core.messaging / MessageRecipients
+
+MessageRecipients
+interface MessageRecipients
+The interface for a group of message recipients (which may contain only one recipient)
+
+
+Inheritors
+
+
+
+
+AllPossibleRecipients
+
+interface AllPossibleRecipients : MessageRecipients
A special base class for the set of all possible recipients, without having to identify who they all are.
+
+
+
+
+MessageRecipientGroup
+
+interface MessageRecipientGroup : MessageRecipients
A base class for a set of recipients specifically identified by the sender.
+
+
+
+
+SingleMessageRecipient
+
+interface SingleMessageRecipient : MessageRecipients
A base class for the case of point-to-point messages
+
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.messaging/-message/data.html b/docs/build/html/api/net.corda.core.messaging/-message/data.html
new file mode 100644
index 0000000000..79a041f098
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.messaging/-message/data.html
@@ -0,0 +1,15 @@
+
+
+Message.data -
+
+
+
+net.corda.core.messaging / Message / data
+
+data
+
+abstract val data : ByteArray
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.messaging/-message/debug-timestamp.html b/docs/build/html/api/net.corda.core.messaging/-message/debug-timestamp.html
new file mode 100644
index 0000000000..7a65618fd8
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.messaging/-message/debug-timestamp.html
@@ -0,0 +1,15 @@
+
+
+Message.debugTimestamp -
+
+
+
+net.corda.core.messaging / Message / debugTimestamp
+
+debugTimestamp
+
+abstract val debugTimestamp : Instant
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.messaging/-message/index.html b/docs/build/html/api/net.corda.core.messaging/-message/index.html
new file mode 100644
index 0000000000..c5b66cbe33
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.messaging/-message/index.html
@@ -0,0 +1,52 @@
+
+
+Message -
+
+
+
+net.corda.core.messaging / Message
+
+Message
+interface Message
+A message is defined, at this level, to be a (topic, timestamp, byte arrays) triple, where the topic is a string in
+Java-style reverse dns form, with "platform." being a prefix reserved by the platform for its own use. Vendor
+specific messages can be defined, but use your domain name as the prefix e.g. "uk.co.bigbank.messages.SomeMessage".
+The debugTimestamp field is intended to aid in tracking messages as they flow across the network, likewise, the
+message ID is intended to be an ad-hoc way to identify a message sent in the system through debug logs and so on.
+These IDs and timestamps should not be assumed to be globally unique, although due to the nanosecond precision of
+the timestamp field they probably will be, even if an implementation just uses a hash prefix as the message id.
+
+
+
+
+Properties
+
+
+
diff --git a/docs/build/html/api/net.corda.core.messaging/-message/topic-session.html b/docs/build/html/api/net.corda.core.messaging/-message/topic-session.html
new file mode 100644
index 0000000000..44082b0409
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.messaging/-message/topic-session.html
@@ -0,0 +1,15 @@
+
+
+Message.topicSession -
+
+
+
+net.corda.core.messaging / Message / topicSession
+
+topicSession
+
+abstract val topicSession : TopicSession
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.messaging/-message/unique-message-id.html b/docs/build/html/api/net.corda.core.messaging/-message/unique-message-id.html
new file mode 100644
index 0000000000..ccecbb7699
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.messaging/-message/unique-message-id.html
@@ -0,0 +1,15 @@
+
+
+Message.uniqueMessageId -
+
+
+
+net.corda.core.messaging / Message / uniqueMessageId
+
+uniqueMessageId
+
+abstract val uniqueMessageId : UUID
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.messaging/-messaging-service/add-message-handler.html b/docs/build/html/api/net.corda.core.messaging/-messaging-service/add-message-handler.html
new file mode 100644
index 0000000000..aca0684ebb
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.messaging/-messaging-service/add-message-handler.html
@@ -0,0 +1,44 @@
+
+
+MessagingService.addMessageHandler -
+
+
+
+net.corda.core.messaging / MessagingService / addMessageHandler
+
+addMessageHandler
+
+abstract fun addMessageHandler ( topic : String = "", sessionID : Long = DEFAULT_SESSION_ID, callback : ( Message , MessageHandlerRegistration ) -> Unit ) : MessageHandlerRegistration
+The provided function will be invoked for each received message whose topic matches the given string. The callback
+will run on threads provided by the messaging service, and the callback is expected to be thread safe as a result.
+The returned object is an opaque handle that may be used to un-register handlers later with removeMessageHandler .
+The handle is passed to the callback as well, to avoid race conditions whereby the callback wants to unregister
+itself and yet addMessageHandler hasnt returned the handle yet.
+
+
+Parameters
+
+topic
- identifier for the general subject of the message, for example "platform.network_map.fetch".
+The topic can be the empty string to match all messages (session ID must be DEFAULT_SESSION_ID ).
+
+
+sessionID
- identifier for the session the message is part of. For services listening before
+a session is established, use DEFAULT_SESSION_ID .
+
+
+
+abstract fun addMessageHandler ( topicSession : TopicSession , callback : ( Message , MessageHandlerRegistration ) -> Unit ) : MessageHandlerRegistration
+The provided function will be invoked for each received message whose topic and session matches. The callback
+will run on threads provided by the messaging service, and the callback is expected to be thread safe as a result.
+The returned object is an opaque handle that may be used to un-register handlers later with removeMessageHandler .
+The handle is passed to the callback as well, to avoid race conditions whereby the callback wants to unregister
+itself and yet addMessageHandler hasnt returned the handle yet.
+
+
+Parameters
+
+topicSession
- identifier for the topic and session to listen for messages arriving on.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.messaging/-messaging-service/create-message.html b/docs/build/html/api/net.corda.core.messaging/-messaging-service/create-message.html
new file mode 100644
index 0000000000..f04f3b4ed3
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.messaging/-messaging-service/create-message.html
@@ -0,0 +1,19 @@
+
+
+MessagingService.createMessage -
+
+
+
+net.corda.core.messaging / MessagingService / createMessage
+
+createMessage
+
+abstract fun createMessage ( topicSession : TopicSession , data : ByteArray , uuid : UUID = UUID.randomUUID()) : Message
+Returns an initialised Message with the current time, etc, already filled in.
+Parameters
+
+topicSession
- identifier for the topic and session the message is sent to.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.messaging/-messaging-service/index.html b/docs/build/html/api/net.corda.core.messaging/-messaging-service/index.html
new file mode 100644
index 0000000000..4a7f425bf3
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.messaging/-messaging-service/index.html
@@ -0,0 +1,132 @@
+
+
+MessagingService -
+
+
+
+net.corda.core.messaging / MessagingService
+
+MessagingService
+interface MessagingService
+A MessagingService sits at the boundary between a message routing / networking layer and the core platform code.
+A messaging system must provide the ability to send 1:many messages, potentially to an abstract "group", the
+membership of which is defined elsewhere. Messages are atomic and the system guarantees that a sent message
+eventually will arrive in the exact form it was sent, however, messages can be arbitrarily re-ordered or delayed.
+Example implementations might be a custom P2P layer, Akka, Apache Kafka, etc. It is assumed that the message layer
+is reliable and as such messages may be stored to disk once queued.
+
+
+
+
+Properties
+
+Functions
+
+
+
+
+addMessageHandler
+
+abstract fun addMessageHandler ( topic : String = "", sessionID : Long = DEFAULT_SESSION_ID, callback : ( Message , MessageHandlerRegistration ) -> Unit ) : MessageHandlerRegistration
The provided function will be invoked for each received message whose topic matches the given string. The callback
+will run on threads provided by the messaging service, and the callback is expected to be thread safe as a result.
+abstract fun addMessageHandler ( topicSession : TopicSession , callback : ( Message , MessageHandlerRegistration ) -> Unit ) : MessageHandlerRegistration
The provided function will be invoked for each received message whose topic and session matches. The callback
+will run on threads provided by the messaging service, and the callback is expected to be thread safe as a result.
+
+
+
+
+createMessage
+
+abstract fun createMessage ( topicSession : TopicSession , data : ByteArray , uuid : UUID = UUID.randomUUID()) : Message
Returns an initialised Message with the current time, etc, already filled in.
+
+
+
+
+removeMessageHandler
+
+abstract fun removeMessageHandler ( registration : MessageHandlerRegistration ) : Unit
Removes a handler given the object returned from addMessageHandler . The callback will no longer be invoked once
+this method has returned, although executions that are currently in flight will not be interrupted.
+
+
+
+
+send
+
+abstract fun send ( message : Message , target : MessageRecipients ) : Unit
Sends a message to the given receiver. The details of how receivers are identified is up to the messaging
+implementation: the type system provides an opaque high level view, with more fine grained control being
+available via type casting. Once this function returns the message is queued for delivery but not necessarily
+delivered: if the recipients are offline then the message could be queued hours or days later.
+
+
+
+
+Extension Functions
+
+
+
+
+createMessage
+
+fun MessagingService . createMessage ( topic : String , sessionID : Long = DEFAULT_SESSION_ID, data : ByteArray ) : Message
Returns an initialised Message with the current time, etc, already filled in.
+
+
+
+
+onNext
+
+fun < M : Any > MessagingService . onNext ( topic : String , sessionId : Long ) : <ERROR CLASS> < M >
Returns a ListenableFuture of the next message payload (Message.data ) which is received on the given topic and sessionId.
+The payload is deserilaized to an object of type M . Any exceptions thrown will be captured by the future.
+
+
+
+
+runOnNextMessage
+
+fun MessagingService . runOnNextMessage ( topic : String , sessionID : Long , callback : ( Message ) -> Unit ) : Unit
Registers a handler for the given topic and session ID that runs the given callback with the message and then removes
+itself. This is useful for one-shot handlers that arent supposed to stick around permanently. Note that this callback
+doesnt take the registration object, unlike the callback to MessagingService.addMessageHandler , as the handler is
+automatically deregistered before the callback runs.
+fun MessagingService . runOnNextMessage ( topicSession : TopicSession , callback : ( Message ) -> Unit ) : Unit
Registers a handler for the given topic and session that runs the given callback with the message and then removes
+itself. This is useful for one-shot handlers that arent supposed to stick around permanently. Note that this callback
+doesnt take the registration object, unlike the callback to MessagingService.addMessageHandler .
+
+
+
+
+send
+
+fun MessagingService . send ( topic : String , sessionID : Long , payload : Any , to : MessageRecipients , uuid : UUID = UUID.randomUUID()) : Unit
+fun MessagingService . send ( topicSession : TopicSession , payload : Any , to : MessageRecipients , uuid : UUID = UUID.randomUUID()) : Unit
+
+
+
+sendRequest
+
+fun < R : Any > MessagingService . sendRequest ( topic : String , request : ServiceRequestMessage , target : SingleMessageRecipient ) : <ERROR CLASS> < R >
Sends a ServiceRequestMessage to target and returns a ListenableFuture of the response.
+
+
+
+
+Inheritors
+
+
+
diff --git a/docs/build/html/api/net.corda.core.messaging/-messaging-service/my-address.html b/docs/build/html/api/net.corda.core.messaging/-messaging-service/my-address.html
new file mode 100644
index 0000000000..43a3f51f20
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.messaging/-messaging-service/my-address.html
@@ -0,0 +1,16 @@
+
+
+MessagingService.myAddress -
+
+
+
+net.corda.core.messaging / MessagingService / myAddress
+
+myAddress
+
+abstract val myAddress : SingleMessageRecipient
+Returns an address that refers to this node.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.messaging/-messaging-service/remove-message-handler.html b/docs/build/html/api/net.corda.core.messaging/-messaging-service/remove-message-handler.html
new file mode 100644
index 0000000000..efcabb2f82
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.messaging/-messaging-service/remove-message-handler.html
@@ -0,0 +1,23 @@
+
+
+MessagingService.removeMessageHandler -
+
+
+
+net.corda.core.messaging / MessagingService / removeMessageHandler
+
+removeMessageHandler
+
+abstract fun removeMessageHandler ( registration : MessageHandlerRegistration ) : Unit
+Removes a handler given the object returned from addMessageHandler . The callback will no longer be invoked once
+this method has returned, although executions that are currently in flight will not be interrupted.
+Exceptions
+
+IllegalArgumentException
- if the given registration isnt valid for this messaging service.
+
+
+IllegalStateException
- if the given registration was already de-registered.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.messaging/-messaging-service/send.html b/docs/build/html/api/net.corda.core.messaging/-messaging-service/send.html
new file mode 100644
index 0000000000..6dada0d1d5
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.messaging/-messaging-service/send.html
@@ -0,0 +1,23 @@
+
+
+MessagingService.send -
+
+
+
+net.corda.core.messaging / MessagingService / send
+
+send
+
+abstract fun send ( message : Message , target : MessageRecipients ) : Unit
+Sends a message to the given receiver. The details of how receivers are identified is up to the messaging
+implementation: the type system provides an opaque high level view, with more fine grained control being
+available via type casting. Once this function returns the message is queued for delivery but not necessarily
+delivered: if the recipients are offline then the message could be queued hours or days later.
+There is no way to know if a message has been received. If your protocol requires this, you need the recipient
+to send an ACK message back.
+
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.messaging/-single-message-recipient.html b/docs/build/html/api/net.corda.core.messaging/-single-message-recipient.html
new file mode 100644
index 0000000000..607f05402d
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.messaging/-single-message-recipient.html
@@ -0,0 +1,35 @@
+
+
+SingleMessageRecipient -
+
+
+
+net.corda.core.messaging / SingleMessageRecipient
+
+SingleMessageRecipient
+interface SingleMessageRecipient : MessageRecipients
+A base class for the case of point-to-point messages
+
+
+Inheritors
+
+
+
+
+NetworkMapAddress
+
+data class NetworkMapAddress : SingleMessageRecipient , ArtemisAddress
+
+
+
+NodeAddress
+
+data class NodeAddress : SingleMessageRecipient , ArtemisAddress
This is the class used to implement SingleMessageRecipient, for now. Note that in future this class
+may change or evolve and code that relies upon it being a simple host/port may not function correctly.
+For instance it may contain onion routing data.
+
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.messaging/-topic-session/-blank.html b/docs/build/html/api/net.corda.core.messaging/-topic-session/-blank.html
new file mode 100644
index 0000000000..03bca68d7b
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.messaging/-topic-session/-blank.html
@@ -0,0 +1,15 @@
+
+
+TopicSession.Blank -
+
+
+
+net.corda.core.messaging / TopicSession / Blank
+
+Blank
+
+val Blank : TopicSession
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.messaging/-topic-session/-init-.html b/docs/build/html/api/net.corda.core.messaging/-topic-session/-init-.html
new file mode 100644
index 0000000000..0c5fa2d1b0
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.messaging/-topic-session/-init-.html
@@ -0,0 +1,23 @@
+
+
+TopicSession. -
+
+
+
+net.corda.core.messaging / TopicSession / <init>
+
+<init>
+TopicSession ( topic : String , sessionID : Long = DEFAULT_SESSION_ID)
+An identifier for the endpoint MessagingService message handlers listen at.
+Parameters
+
+topic
- identifier for the general subject of the message, for example "platform.network_map.fetch".
+The topic can be the empty string to match all messages (session ID must be DEFAULT_SESSION_ID ).
+
+
+sessionID
- identifier for the session the message is part of. For services listening before
+a session is established, use DEFAULT_SESSION_ID .
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.messaging/-topic-session/index.html b/docs/build/html/api/net.corda.core.messaging/-topic-session/index.html
new file mode 100644
index 0000000000..58999dbb29
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.messaging/-topic-session/index.html
@@ -0,0 +1,80 @@
+
+
+TopicSession -
+
+
+
+net.corda.core.messaging / TopicSession
+
+TopicSession
+data class TopicSession
+An identifier for the endpoint MessagingService message handlers listen at.
+Parameters
+
+topic
- identifier for the general subject of the message, for example "platform.network_map.fetch".
+The topic can be the empty string to match all messages (session ID must be DEFAULT_SESSION_ID ).
+
+
+sessionID
- identifier for the session the message is part of. For services listening before
+a session is established, use DEFAULT_SESSION_ID .
+
+
+Constructors
+
+
+
+
+<init>
+
+TopicSession ( topic : String , sessionID : Long = DEFAULT_SESSION_ID)
An identifier for the endpoint MessagingService message handlers listen at.
+
+
+
+
+Properties
+
+
+
+
+sessionID
+
+val sessionID : Long
+
+
+
+topic
+
+val topic : String
+
+
+
+Functions
+
+
+
+
+isBlank
+
+fun isBlank ( ) : Boolean
+
+
+
+toString
+
+fun toString ( ) : String
+
+
+
+Companion Object Properties
+
+
+
+
+Blank
+
+val Blank : TopicSession
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.messaging/-topic-session/is-blank.html b/docs/build/html/api/net.corda.core.messaging/-topic-session/is-blank.html
new file mode 100644
index 0000000000..d9a285af6e
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.messaging/-topic-session/is-blank.html
@@ -0,0 +1,15 @@
+
+
+TopicSession.isBlank -
+
+
+
+net.corda.core.messaging / TopicSession / isBlank
+
+isBlank
+
+fun isBlank ( ) : Boolean
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.messaging/-topic-session/session-i-d.html b/docs/build/html/api/net.corda.core.messaging/-topic-session/session-i-d.html
new file mode 100644
index 0000000000..aed6cff818
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.messaging/-topic-session/session-i-d.html
@@ -0,0 +1,15 @@
+
+
+TopicSession.sessionID -
+
+
+
+net.corda.core.messaging / TopicSession / sessionID
+
+sessionID
+
+val sessionID : Long
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.messaging/-topic-session/to-string.html b/docs/build/html/api/net.corda.core.messaging/-topic-session/to-string.html
new file mode 100644
index 0000000000..da81cc8a34
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.messaging/-topic-session/to-string.html
@@ -0,0 +1,15 @@
+
+
+TopicSession.toString -
+
+
+
+net.corda.core.messaging / TopicSession / toString
+
+toString
+
+fun toString ( ) : String
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.messaging/-topic-session/topic.html b/docs/build/html/api/net.corda.core.messaging/-topic-session/topic.html
new file mode 100644
index 0000000000..5f6dfc33b5
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.messaging/-topic-session/topic.html
@@ -0,0 +1,15 @@
+
+
+TopicSession.topic -
+
+
+
+net.corda.core.messaging / TopicSession / topic
+
+topic
+
+val topic : String
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.messaging/-topic-string-validator/check.html b/docs/build/html/api/net.corda.core.messaging/-topic-string-validator/check.html
new file mode 100644
index 0000000000..14881a0dc3
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.messaging/-topic-string-validator/check.html
@@ -0,0 +1,18 @@
+
+
+TopicStringValidator.check -
+
+
+
+net.corda.core.messaging / TopicStringValidator / check
+
+check
+
+fun check ( tag : String ) : <ERROR CLASS>
+Exceptions
+
+IllegalArgumentException
- if the given topic contains invalid characters
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.messaging/-topic-string-validator/index.html b/docs/build/html/api/net.corda.core.messaging/-topic-string-validator/index.html
new file mode 100644
index 0000000000..45cb6e7e38
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.messaging/-topic-string-validator/index.html
@@ -0,0 +1,26 @@
+
+
+TopicStringValidator -
+
+
+
+net.corda.core.messaging / TopicStringValidator
+
+TopicStringValidator
+object TopicStringValidator
+A singleton thats useful for validating topic strings
+
+
+Functions
+
+
+
+
+check
+
+fun check ( tag : String ) : <ERROR CLASS>
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.messaging/create-message.html b/docs/build/html/api/net.corda.core.messaging/create-message.html
new file mode 100644
index 0000000000..b1905c4866
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.messaging/create-message.html
@@ -0,0 +1,24 @@
+
+
+createMessage -
+
+
+
+net.corda.core.messaging / createMessage
+
+createMessage
+
+fun MessagingService . createMessage ( topic : String , sessionID : Long = DEFAULT_SESSION_ID, data : ByteArray ) : Message
+Returns an initialised Message with the current time, etc, already filled in.
+Parameters
+
+topic
- identifier for the general subject of the message, for example "platform.network_map.fetch".
+Must not be blank.
+
+
+sessionID
- identifier for the session the message is part of. For messages sent to services before the
+construction of a session, use DEFAULT_SESSION_ID .
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.messaging/index.html b/docs/build/html/api/net.corda.core.messaging/index.html
new file mode 100644
index 0000000000..835fb04fa4
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.messaging/index.html
@@ -0,0 +1,128 @@
+
+
+net.corda.core.messaging -
+
+
+
+net.corda.core.messaging
+
+Package net.corda.core.messaging
+Types
+
+
+
+
+Ack
+
+object Ack : DeserializeAsKotlinObjectDef
A general Ack message that conveys no content other than its presence for use when you want an acknowledgement
+from a recipient. Using Unit can be ambiguous as it is similar to Void and so could mean no response.
+
+
+
+
+AllPossibleRecipients
+
+interface AllPossibleRecipients : MessageRecipients
A special base class for the set of all possible recipients, without having to identify who they all are.
+
+
+
+
+Message
+
+interface Message
A message is defined, at this level, to be a (topic, timestamp, byte arrays) triple, where the topic is a string in
+Java-style reverse dns form, with "platform." being a prefix reserved by the platform for its own use. Vendor
+specific messages can be defined, but use your domain name as the prefix e.g. "uk.co.bigbank.messages.SomeMessage".
+
+
+
+
+MessageHandlerRegistration
+
+interface MessageHandlerRegistration
+
+
+
+MessageRecipientGroup
+
+interface MessageRecipientGroup : MessageRecipients
A base class for a set of recipients specifically identified by the sender.
+
+
+
+
+MessageRecipients
+
+interface MessageRecipients
The interface for a group of message recipients (which may contain only one recipient)
+
+
+
+
+MessagingService
+
+interface MessagingService
A MessagingService sits at the boundary between a message routing / networking layer and the core platform code.
+
+
+
+
+SingleMessageRecipient
+
+interface SingleMessageRecipient : MessageRecipients
A base class for the case of point-to-point messages
+
+
+
+
+TopicSession
+
+data class TopicSession
An identifier for the endpoint MessagingService message handlers listen at.
+
+
+
+
+TopicStringValidator
+
+object TopicStringValidator
A singleton thats useful for validating topic strings
+
+
+
+
+Functions
+
+
+
+
+createMessage
+
+fun MessagingService . createMessage ( topic : String , sessionID : Long = DEFAULT_SESSION_ID, data : ByteArray ) : Message
Returns an initialised Message with the current time, etc, already filled in.
+
+
+
+
+onNext
+
+fun < M : Any > MessagingService . onNext ( topic : String , sessionId : Long ) : <ERROR CLASS> < M >
Returns a ListenableFuture of the next message payload (Message.data ) which is received on the given topic and sessionId.
+The payload is deserilaized to an object of type M . Any exceptions thrown will be captured by the future.
+
+
+
+
+runOnNextMessage
+
+fun MessagingService . runOnNextMessage ( topic : String , sessionID : Long , callback : ( Message ) -> Unit ) : Unit
Registers a handler for the given topic and session ID that runs the given callback with the message and then removes
+itself. This is useful for one-shot handlers that arent supposed to stick around permanently. Note that this callback
+doesnt take the registration object, unlike the callback to MessagingService.addMessageHandler , as the handler is
+automatically deregistered before the callback runs.
+fun MessagingService . runOnNextMessage ( topicSession : TopicSession , callback : ( Message ) -> Unit ) : Unit
Registers a handler for the given topic and session that runs the given callback with the message and then removes
+itself. This is useful for one-shot handlers that arent supposed to stick around permanently. Note that this callback
+doesnt take the registration object, unlike the callback to MessagingService.addMessageHandler .
+
+
+
+
+send
+
+fun MessagingService . send ( topic : String , sessionID : Long , payload : Any , to : MessageRecipients , uuid : UUID = UUID.randomUUID()) : Unit
+fun MessagingService . send ( topicSession : TopicSession , payload : Any , to : MessageRecipients , uuid : UUID = UUID.randomUUID()) : Unit
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.messaging/on-next.html b/docs/build/html/api/net.corda.core.messaging/on-next.html
new file mode 100644
index 0000000000..cacd203dcd
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.messaging/on-next.html
@@ -0,0 +1,17 @@
+
+
+onNext -
+
+
+
+net.corda.core.messaging / onNext
+
+onNext
+
+fun < M : Any > MessagingService . onNext ( topic : String , sessionId : Long ) : <ERROR CLASS> < M >
+Returns a ListenableFuture of the next message payload (Message.data ) which is received on the given topic and sessionId.
+The payload is deserilaized to an object of type M . Any exceptions thrown will be captured by the future.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.messaging/run-on-next-message.html b/docs/build/html/api/net.corda.core.messaging/run-on-next-message.html
new file mode 100644
index 0000000000..ce78f13ad2
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.messaging/run-on-next-message.html
@@ -0,0 +1,37 @@
+
+
+runOnNextMessage -
+
+
+
+net.corda.core.messaging / runOnNextMessage
+
+runOnNextMessage
+
+fun MessagingService . runOnNextMessage ( topic : String , sessionID : Long , callback : ( Message ) -> Unit ) : Unit
+Registers a handler for the given topic and session ID that runs the given callback with the message and then removes
+itself. This is useful for one-shot handlers that arent supposed to stick around permanently. Note that this callback
+doesnt take the registration object, unlike the callback to MessagingService.addMessageHandler , as the handler is
+automatically deregistered before the callback runs.
+Parameters
+
+topic
- identifier for the general subject of the message, for example "platform.network_map.fetch".
+The topic can be the empty string to match all messages (session ID must be DEFAULT_SESSION_ID ).
+
+
+sessionID
- identifier for the session the message is part of. For services listening before
+a session is established, use DEFAULT_SESSION_ID .
+
+
+
+inline fun MessagingService . runOnNextMessage ( topicSession : TopicSession , crossinline callback : ( Message ) -> Unit ) : Unit
+Registers a handler for the given topic and session that runs the given callback with the message and then removes
+itself. This is useful for one-shot handlers that arent supposed to stick around permanently. Note that this callback
+doesnt take the registration object, unlike the callback to MessagingService.addMessageHandler .
+Parameters
+
+topicSession
- identifier for the topic and session to listen for messages arriving on.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.messaging/send.html b/docs/build/html/api/net.corda.core.messaging/send.html
new file mode 100644
index 0000000000..28b9ae83c0
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.messaging/send.html
@@ -0,0 +1,17 @@
+
+
+send -
+
+
+
+net.corda.core.messaging / send
+
+send
+
+fun MessagingService . send ( topic : String , sessionID : Long , payload : Any , to : MessageRecipients , uuid : UUID = UUID.randomUUID()) : Unit
+
+fun MessagingService . send ( topicSession : TopicSession , payload : Any , to : MessageRecipients , uuid : UUID = UUID.randomUUID()) : Unit
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.node.services/-attachment-storage/import-attachment.html b/docs/build/html/api/net.corda.core.node.services/-attachment-storage/import-attachment.html
new file mode 100644
index 0000000000..91f8a35b07
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.node.services/-attachment-storage/import-attachment.html
@@ -0,0 +1,30 @@
+
+
+AttachmentStorage.importAttachment -
+
+
+
+net.corda.core.node.services / AttachmentStorage / importAttachment
+
+importAttachment
+
+abstract fun importAttachment ( jar : InputStream ) : SecureHash
+Inserts the given attachment into the store, does not close the input stream. This can be an intensive
+operation due to the need to copy the bytes to disk and hash them along the way.
+Note that you should not pass a JarInputStream into this method and it will throw if you do, because access
+to the raw byte stream is required.
+
+
+Exceptions
+
+FileAlreadyExistsException
- if the given byte stream has already been inserted.
+
+
+IllegalArgumentException
- if the given byte stream is empty or a JarInputStream .
+
+
+IOException
- if something went wrong.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.node.services/-attachment-storage/index.html b/docs/build/html/api/net.corda.core.node.services/-attachment-storage/index.html
new file mode 100644
index 0000000000..d2443ee00e
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.node.services/-attachment-storage/index.html
@@ -0,0 +1,48 @@
+
+
+AttachmentStorage -
+
+
+
+net.corda.core.node.services / AttachmentStorage
+
+AttachmentStorage
+interface AttachmentStorage
+An attachment store records potentially large binary objects, identified by their hash.
+
+
+Functions
+
+
+
+
+importAttachment
+
+abstract fun importAttachment ( jar : InputStream ) : SecureHash
Inserts the given attachment into the store, does not close the input stream. This can be an intensive
+operation due to the need to copy the bytes to disk and hash them along the way.
+
+
+
+
+openAttachment
+
+abstract fun openAttachment ( id : SecureHash ) : Attachment ?
Returns a handle to a locally stored attachment, or null if its not known. The handle can be used to open
+a stream for the data, which will be a zip/jar file.
+
+
+
+
+Inheritors
+
+
+
+
+NodeAttachmentService
+
+class NodeAttachmentService : AttachmentStorage , AcceptsFileUpload
Stores attachments in the specified local directory, which must exist. Doesnt allow new attachments to be uploaded.
+
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.node.services/-attachment-storage/open-attachment.html b/docs/build/html/api/net.corda.core.node.services/-attachment-storage/open-attachment.html
new file mode 100644
index 0000000000..5f8505ec95
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.node.services/-attachment-storage/open-attachment.html
@@ -0,0 +1,17 @@
+
+
+AttachmentStorage.openAttachment -
+
+
+
+net.corda.core.node.services / AttachmentStorage / openAttachment
+
+openAttachment
+
+abstract fun openAttachment ( id : SecureHash ) : Attachment ?
+Returns a handle to a locally stored attachment, or null if its not known. The handle can be used to open
+a stream for the data, which will be a zip/jar file.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.node.services/-d-e-f-a-u-l-t_-s-e-s-s-i-o-n_-i-d.html b/docs/build/html/api/net.corda.core.node.services/-d-e-f-a-u-l-t_-s-e-s-s-i-o-n_-i-d.html
new file mode 100644
index 0000000000..b018165370
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.node.services/-d-e-f-a-u-l-t_-s-e-s-s-i-o-n_-i-d.html
@@ -0,0 +1,17 @@
+
+
+DEFAULT_SESSION_ID -
+
+
+
+net.corda.core.node.services / DEFAULT_SESSION_ID
+
+DEFAULT_SESSION_ID
+
+val DEFAULT_SESSION_ID : Long
+Session ID to use for services listening for the first message in a session (before a
+specific session ID has been established).
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.node.services/-identity-service/index.html b/docs/build/html/api/net.corda.core.node.services/-identity-service/index.html
new file mode 100644
index 0000000000..1a68c2a877
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.node.services/-identity-service/index.html
@@ -0,0 +1,52 @@
+
+
+IdentityService -
+
+
+
+net.corda.core.node.services / IdentityService
+
+IdentityService
+interface IdentityService
+An identity service maintains an bidirectional map of Party s to their associated public keys and thus supports
+lookup of a party given its key. This is obviously very incomplete and does not reflect everything a real identity
+service would provide.
+
+
+Functions
+
+Inheritors
+
+
+
diff --git a/docs/build/html/api/net.corda.core.node.services/-identity-service/party-from-key.html b/docs/build/html/api/net.corda.core.node.services/-identity-service/party-from-key.html
new file mode 100644
index 0000000000..242d53bd4a
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.node.services/-identity-service/party-from-key.html
@@ -0,0 +1,15 @@
+
+
+IdentityService.partyFromKey -
+
+
+
+net.corda.core.node.services / IdentityService / partyFromKey
+
+partyFromKey
+
+abstract fun partyFromKey ( key : PublicKey ) : Party ?
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.node.services/-identity-service/party-from-name.html b/docs/build/html/api/net.corda.core.node.services/-identity-service/party-from-name.html
new file mode 100644
index 0000000000..968452dea1
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.node.services/-identity-service/party-from-name.html
@@ -0,0 +1,15 @@
+
+
+IdentityService.partyFromName -
+
+
+
+net.corda.core.node.services / IdentityService / partyFromName
+
+partyFromName
+
+abstract fun partyFromName ( name : String ) : Party ?
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.node.services/-identity-service/register-identity.html b/docs/build/html/api/net.corda.core.node.services/-identity-service/register-identity.html
new file mode 100644
index 0000000000..062da4eea7
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.node.services/-identity-service/register-identity.html
@@ -0,0 +1,15 @@
+
+
+IdentityService.registerIdentity -
+
+
+
+net.corda.core.node.services / IdentityService / registerIdentity
+
+registerIdentity
+
+abstract fun registerIdentity ( party : Party ) : Unit
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.node.services/-key-management-service/fresh-key.html b/docs/build/html/api/net.corda.core.node.services/-key-management-service/fresh-key.html
new file mode 100644
index 0000000000..ae06399950
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.node.services/-key-management-service/fresh-key.html
@@ -0,0 +1,16 @@
+
+
+KeyManagementService.freshKey -
+
+
+
+net.corda.core.node.services / KeyManagementService / freshKey
+
+freshKey
+
+abstract fun freshKey ( ) : KeyPair
+Generates a new random key and adds it to the exposed map.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.node.services/-key-management-service/index.html b/docs/build/html/api/net.corda.core.node.services/-key-management-service/index.html
new file mode 100644
index 0000000000..d83416f973
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.node.services/-key-management-service/index.html
@@ -0,0 +1,75 @@
+
+
+KeyManagementService -
+
+
+
+net.corda.core.node.services / KeyManagementService
+
+KeyManagementService
+interface KeyManagementService
+The KMS is responsible for storing and using private keys to sign things. An implementation of this may, for example,
+call out to a hardware security module that enforces various auditing and frequency-of-use requirements.
+The current interface is obviously not usable for those use cases: this is just where wed put a real signing
+interface if/when one is developed.
+
+
+
+
+Properties
+
+
+
+
+keys
+
+abstract val keys : Map < PublicKey , PrivateKey >
Returns a snapshot of the current pubkey->privkey mapping.
+
+
+
+
+Functions
+
+Inheritors
+
+
+
diff --git a/docs/build/html/api/net.corda.core.node.services/-key-management-service/keys.html b/docs/build/html/api/net.corda.core.node.services/-key-management-service/keys.html
new file mode 100644
index 0000000000..b3c594107f
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.node.services/-key-management-service/keys.html
@@ -0,0 +1,16 @@
+
+
+KeyManagementService.keys -
+
+
+
+net.corda.core.node.services / KeyManagementService / keys
+
+keys
+
+abstract val keys : Map < PublicKey , PrivateKey >
+Returns a snapshot of the current pubkey->privkey mapping.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.node.services/-key-management-service/to-key-pair.html b/docs/build/html/api/net.corda.core.node.services/-key-management-service/to-key-pair.html
new file mode 100644
index 0000000000..742ef3b3ba
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.node.services/-key-management-service/to-key-pair.html
@@ -0,0 +1,15 @@
+
+
+KeyManagementService.toKeyPair -
+
+
+
+net.corda.core.node.services / KeyManagementService / toKeyPair
+
+toKeyPair
+
+open fun toKeyPair ( publicKey : PublicKey ) : KeyPair
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.node.services/-key-management-service/to-private.html b/docs/build/html/api/net.corda.core.node.services/-key-management-service/to-private.html
new file mode 100644
index 0000000000..bbd5ddd684
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.node.services/-key-management-service/to-private.html
@@ -0,0 +1,15 @@
+
+
+KeyManagementService.toPrivate -
+
+
+
+net.corda.core.node.services / KeyManagementService / toPrivate
+
+toPrivate
+
+open fun toPrivate ( publicKey : PublicKey ) : PrivateKey
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.node.services/-network-cache-error/-deregistration-failed/-init-.html b/docs/build/html/api/net.corda.core.node.services/-network-cache-error/-deregistration-failed/-init-.html
new file mode 100644
index 0000000000..6b23414d7c
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.node.services/-network-cache-error/-deregistration-failed/-init-.html
@@ -0,0 +1,15 @@
+
+
+NetworkCacheError.DeregistrationFailed. -
+
+
+
+net.corda.core.node.services / NetworkCacheError / DeregistrationFailed / <init>
+
+<init>
+DeregistrationFailed ( )
+Indicates a failure to deregister, because of a rejected request from the remote node
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.node.services/-network-cache-error/-deregistration-failed/index.html b/docs/build/html/api/net.corda.core.node.services/-network-cache-error/-deregistration-failed/index.html
new file mode 100644
index 0000000000..0cbdca2fdb
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.node.services/-network-cache-error/-deregistration-failed/index.html
@@ -0,0 +1,27 @@
+
+
+NetworkCacheError.DeregistrationFailed -
+
+
+
+net.corda.core.node.services / NetworkCacheError / DeregistrationFailed
+
+DeregistrationFailed
+class DeregistrationFailed : NetworkCacheError
+Indicates a failure to deregister, because of a rejected request from the remote node
+
+
+Constructors
+
+
+
+
+<init>
+
+DeregistrationFailed ( )
Indicates a failure to deregister, because of a rejected request from the remote node
+
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.node.services/-network-cache-error/index.html b/docs/build/html/api/net.corda.core.node.services/-network-cache-error/index.html
new file mode 100644
index 0000000000..8d5c33b4fe
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.node.services/-network-cache-error/index.html
@@ -0,0 +1,49 @@
+
+
+NetworkCacheError -
+
+
+
+net.corda.core.node.services / NetworkCacheError
+
+NetworkCacheError
+sealed class NetworkCacheError : Exception
+
+
+Exceptions
+
+
+
+
+DeregistrationFailed
+
+class DeregistrationFailed : NetworkCacheError
Indicates a failure to deregister, because of a rejected request from the remote node
+
+
+
+
+Extension Properties
+
+
+
+
+rootCause
+
+val Throwable . rootCause : Throwable
+
+
+
+Inheritors
+
+
+
+
+DeregistrationFailed
+
+class DeregistrationFailed : NetworkCacheError
Indicates a failure to deregister, because of a rejected request from the remote node
+
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.node.services/-network-map-cache/-map-change-type/-added.html b/docs/build/html/api/net.corda.core.node.services/-network-map-cache/-map-change-type/-added.html
new file mode 100644
index 0000000000..f3664a3c9d
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.node.services/-network-map-cache/-map-change-type/-added.html
@@ -0,0 +1,14 @@
+
+
+NetworkMapCache.MapChangeType.Added -
+
+
+
+net.corda.core.node.services / NetworkMapCache / MapChangeType / Added
+
+Added
+Added
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.node.services/-network-map-cache/-map-change-type/-modified.html b/docs/build/html/api/net.corda.core.node.services/-network-map-cache/-map-change-type/-modified.html
new file mode 100644
index 0000000000..cebbf9a87d
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.node.services/-network-map-cache/-map-change-type/-modified.html
@@ -0,0 +1,14 @@
+
+
+NetworkMapCache.MapChangeType.Modified -
+
+
+
+net.corda.core.node.services / NetworkMapCache / MapChangeType / Modified
+
+Modified
+Modified
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.node.services/-network-map-cache/-map-change-type/-removed.html b/docs/build/html/api/net.corda.core.node.services/-network-map-cache/-map-change-type/-removed.html
new file mode 100644
index 0000000000..e203aa716a
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.node.services/-network-map-cache/-map-change-type/-removed.html
@@ -0,0 +1,14 @@
+
+
+NetworkMapCache.MapChangeType.Removed -
+
+
+
+net.corda.core.node.services / NetworkMapCache / MapChangeType / Removed
+
+Removed
+Removed
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.node.services/-network-map-cache/-map-change-type/index.html b/docs/build/html/api/net.corda.core.node.services/-network-map-cache/-map-change-type/index.html
new file mode 100644
index 0000000000..67f8858fb2
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.node.services/-network-map-cache/-map-change-type/index.html
@@ -0,0 +1,37 @@
+
+
+NetworkMapCache.MapChangeType -
+
+
+
+net.corda.core.node.services / NetworkMapCache / MapChangeType
+
+MapChangeType
+enum class MapChangeType
+
+
+Enum Values
+
+
+
diff --git a/docs/build/html/api/net.corda.core.node.services/-network-map-cache/-map-change/-init-.html b/docs/build/html/api/net.corda.core.node.services/-network-map-cache/-map-change/-init-.html
new file mode 100644
index 0000000000..d43f1bedae
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.node.services/-network-map-cache/-map-change/-init-.html
@@ -0,0 +1,14 @@
+
+
+NetworkMapCache.MapChange. -
+
+
+
+net.corda.core.node.services / NetworkMapCache / MapChange / <init>
+
+<init>
+MapChange ( node : NodeInfo , prevNodeInfo : NodeInfo ? , type : MapChangeType )
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.node.services/-network-map-cache/-map-change/index.html b/docs/build/html/api/net.corda.core.node.services/-network-map-cache/-map-change/index.html
new file mode 100644
index 0000000000..3ead349790
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.node.services/-network-map-cache/-map-change/index.html
@@ -0,0 +1,48 @@
+
+
+NetworkMapCache.MapChange -
+
+
+
+net.corda.core.node.services / NetworkMapCache / MapChange
+
+MapChange
+data class MapChange
+
+
+Constructors
+
+Properties
+
+
+
diff --git a/docs/build/html/api/net.corda.core.node.services/-network-map-cache/-map-change/node.html b/docs/build/html/api/net.corda.core.node.services/-network-map-cache/-map-change/node.html
new file mode 100644
index 0000000000..7b656ee6a2
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.node.services/-network-map-cache/-map-change/node.html
@@ -0,0 +1,15 @@
+
+
+NetworkMapCache.MapChange.node -
+
+
+
+net.corda.core.node.services / NetworkMapCache / MapChange / node
+
+node
+
+val node : NodeInfo
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.node.services/-network-map-cache/-map-change/prev-node-info.html b/docs/build/html/api/net.corda.core.node.services/-network-map-cache/-map-change/prev-node-info.html
new file mode 100644
index 0000000000..2df56094cc
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.node.services/-network-map-cache/-map-change/prev-node-info.html
@@ -0,0 +1,15 @@
+
+
+NetworkMapCache.MapChange.prevNodeInfo -
+
+
+
+net.corda.core.node.services / NetworkMapCache / MapChange / prevNodeInfo
+
+prevNodeInfo
+
+val prevNodeInfo : NodeInfo ?
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.node.services/-network-map-cache/-map-change/type.html b/docs/build/html/api/net.corda.core.node.services/-network-map-cache/-map-change/type.html
new file mode 100644
index 0000000000..9ae58767df
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.node.services/-network-map-cache/-map-change/type.html
@@ -0,0 +1,15 @@
+
+
+NetworkMapCache.MapChange.type -
+
+
+
+net.corda.core.node.services / NetworkMapCache / MapChange / type
+
+type
+
+val type : MapChangeType
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.node.services/-network-map-cache/add-map-service.html b/docs/build/html/api/net.corda.core.node.services/-network-map-cache/add-map-service.html
new file mode 100644
index 0000000000..0f44428cb4
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.node.services/-network-map-cache/add-map-service.html
@@ -0,0 +1,30 @@
+
+
+NetworkMapCache.addMapService -
+
+
+
+net.corda.core.node.services / NetworkMapCache / addMapService
+
+addMapService
+
+abstract fun addMapService ( net : MessagingService , networkMapAddress : SingleMessageRecipient , subscribe : Boolean , ifChangedSinceVer : Int ? = null) : <ERROR CLASS> < Unit >
+Add a network map service; fetches a copy of the latest map from the service and subscribes to any further
+updates.
+Parameters
+
+net
- the network messaging service.
+
+
+networkMapAddress
- the network map service to fetch current state from.
+
+
+subscribe
- if the cache should subscribe to updates.
+
+
+ifChangedSinceVer
- an optional version number to limit updating the map based on. If the latest map
+version is less than or equal to the given version, no update is fetched.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.node.services/-network-map-cache/add-node.html b/docs/build/html/api/net.corda.core.node.services/-network-map-cache/add-node.html
new file mode 100644
index 0000000000..3a468e64eb
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.node.services/-network-map-cache/add-node.html
@@ -0,0 +1,16 @@
+
+
+NetworkMapCache.addNode -
+
+
+
+net.corda.core.node.services / NetworkMapCache / addNode
+
+addNode
+
+abstract fun addNode ( node : NodeInfo ) : Unit
+Adds a node to the local cache (generally only used for adding ourselves).
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.node.services/-network-map-cache/changed.html b/docs/build/html/api/net.corda.core.node.services/-network-map-cache/changed.html
new file mode 100644
index 0000000000..4fddb095ad
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.node.services/-network-map-cache/changed.html
@@ -0,0 +1,16 @@
+
+
+NetworkMapCache.changed -
+
+
+
+net.corda.core.node.services / NetworkMapCache / changed
+
+changed
+
+abstract val changed : <ERROR CLASS> < MapChange >
+Tracks changes to the network map cache
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.node.services/-network-map-cache/deregister-for-updates.html b/docs/build/html/api/net.corda.core.node.services/-network-map-cache/deregister-for-updates.html
new file mode 100644
index 0000000000..6654e0fcd8
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.node.services/-network-map-cache/deregister-for-updates.html
@@ -0,0 +1,22 @@
+
+
+NetworkMapCache.deregisterForUpdates -
+
+
+
+net.corda.core.node.services / NetworkMapCache / deregisterForUpdates
+
+deregisterForUpdates
+
+abstract fun deregisterForUpdates ( net : MessagingService , service : NodeInfo ) : <ERROR CLASS> < Unit >
+Deregister from updates from the given map service.
+Parameters
+
+net
- the network messaging service.
+
+
+service
- the network map service to fetch current state from.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.node.services/-network-map-cache/get-node-by-legal-name.html b/docs/build/html/api/net.corda.core.node.services/-network-map-cache/get-node-by-legal-name.html
new file mode 100644
index 0000000000..3555c9e487
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.node.services/-network-map-cache/get-node-by-legal-name.html
@@ -0,0 +1,16 @@
+
+
+NetworkMapCache.getNodeByLegalName -
+
+
+
+net.corda.core.node.services / NetworkMapCache / getNodeByLegalName
+
+getNodeByLegalName
+
+abstract fun getNodeByLegalName ( name : String ) : NodeInfo ?
+Look up the node info for a legal name.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.node.services/-network-map-cache/get-node-by-public-key.html b/docs/build/html/api/net.corda.core.node.services/-network-map-cache/get-node-by-public-key.html
new file mode 100644
index 0000000000..4a7278c2fe
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.node.services/-network-map-cache/get-node-by-public-key.html
@@ -0,0 +1,16 @@
+
+
+NetworkMapCache.getNodeByPublicKey -
+
+
+
+net.corda.core.node.services / NetworkMapCache / getNodeByPublicKey
+
+getNodeByPublicKey
+
+abstract fun getNodeByPublicKey ( publicKey : PublicKey ) : NodeInfo ?
+Look up the node info for a public key.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.node.services/-network-map-cache/get-recommended.html b/docs/build/html/api/net.corda.core.node.services/-network-map-cache/get-recommended.html
new file mode 100644
index 0000000000..1149bbbaff
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.node.services/-network-map-cache/get-recommended.html
@@ -0,0 +1,18 @@
+
+
+NetworkMapCache.getRecommended -
+
+
+
+net.corda.core.node.services / NetworkMapCache / getRecommended
+
+getRecommended
+
+abstract fun getRecommended ( type : ServiceType , contract : Contract , vararg party : Party ) : NodeInfo ?
+Get a recommended node that advertises a service, and is suitable for the specified contract and parties.
+Implementations might understand, for example, the correct regulator to use for specific contracts/parties,
+or the appropriate oracle for a contract.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.node.services/-network-map-cache/get.html b/docs/build/html/api/net.corda.core.node.services/-network-map-cache/get.html
new file mode 100644
index 0000000000..8e26211b53
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.node.services/-network-map-cache/get.html
@@ -0,0 +1,21 @@
+
+
+NetworkMapCache.get -
+
+
+
+net.corda.core.node.services / NetworkMapCache / get
+
+get
+
+abstract fun get ( ) : Collection < NodeInfo >
+Get a copy of all nodes in the map.
+
+
+
+abstract fun get ( serviceType : ServiceType ) : Collection < NodeInfo >
+Get the collection of nodes which advertise a specific service.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.node.services/-network-map-cache/index.html b/docs/build/html/api/net.corda.core.node.services/-network-map-cache/index.html
new file mode 100644
index 0000000000..020717c1ee
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.node.services/-network-map-cache/index.html
@@ -0,0 +1,187 @@
+
+
+NetworkMapCache -
+
+
+
+net.corda.core.node.services / NetworkMapCache
+
+NetworkMapCache
+interface NetworkMapCache
+A network map contains lists of nodes on the network along with information about their identity keys, services
+they provide and host names or IP addresses where they can be connected to. The cache wraps around a map fetched
+from an authoritative service, and adds easy lookup of the data stored within it. Generally it would be initialised
+with a specified network map service, which it fetches data from and then subscribes to updates of.
+
+
+Types
+
+Properties
+
+
+
+
+changed
+
+abstract val changed : <ERROR CLASS> < MapChange >
Tracks changes to the network map cache
+
+
+
+
+mapServiceRegistered
+
+abstract val mapServiceRegistered : <ERROR CLASS> < Unit >
Future to track completion of the NetworkMapService registration.
+
+
+
+
+networkMapNodes
+
+abstract val networkMapNodes : List < NodeInfo >
A list of nodes that advertise a network map service
+
+
+
+
+notaryNodes
+
+abstract val notaryNodes : List < NodeInfo >
A list of nodes that advertise a notary service
+
+
+
+
+partyNodes
+
+abstract val partyNodes : List < NodeInfo >
A list of all nodes the cache is aware of
+
+
+
+
+regulators
+
+abstract val regulators : List < NodeInfo >
A list of nodes that advertise a regulatory service. Identifying the correct regulator for a trade is outside
+the scope of the network map service, and this is intended solely as a sanity check on configuration stored
+elsewhere.
+
+
+
+
+Functions
+
+
+
+
+addMapService
+
+abstract fun addMapService ( net : MessagingService , networkMapAddress : SingleMessageRecipient , subscribe : Boolean , ifChangedSinceVer : Int ? = null) : <ERROR CLASS> < Unit >
Add a network map service; fetches a copy of the latest map from the service and subscribes to any further
+updates.
+
+
+
+
+addNode
+
+abstract fun addNode ( node : NodeInfo ) : Unit
Adds a node to the local cache (generally only used for adding ourselves).
+
+
+
+
+deregisterForUpdates
+
+abstract fun deregisterForUpdates ( net : MessagingService , service : NodeInfo ) : <ERROR CLASS> < Unit >
Deregister from updates from the given map service.
+
+
+
+
+get
+
+abstract fun get ( ) : Collection < NodeInfo >
Get a copy of all nodes in the map.
+abstract fun get ( serviceType : ServiceType ) : Collection < NodeInfo >
Get the collection of nodes which advertise a specific service.
+
+
+
+
+getNodeByLegalName
+
+abstract fun getNodeByLegalName ( name : String ) : NodeInfo ?
Look up the node info for a legal name.
+
+
+
+
+getNodeByPublicKey
+
+abstract fun getNodeByPublicKey ( publicKey : PublicKey ) : NodeInfo ?
Look up the node info for a public key.
+
+
+
+
+getRecommended
+
+abstract fun getRecommended ( type : ServiceType , contract : Contract , vararg party : Party ) : NodeInfo ?
Get a recommended node that advertises a service, and is suitable for the specified contract and parties.
+Implementations might understand, for example, the correct regulator to use for specific contracts/parties,
+or the appropriate oracle for a contract.
+
+
+
+
+removeNode
+
+abstract fun removeNode ( node : NodeInfo ) : Unit
Removes a node from the local cache.
+
+
+
+
+runWithoutMapService
+
+abstract fun runWithoutMapService ( ) : Unit
For testing where the network map cache is manipulated marks the service as immediately ready.
+
+
+
+
+track
+
+abstract fun track ( ) : <ERROR CLASS> < List < NodeInfo > , <ERROR CLASS> < MapChange > >
Atomically get the current party nodes and a stream of updates. Note that the Observable buffers updates until the
+first subscriber is registered so as to avoid racing with early updates.
+
+
+
+
+Companion Object Properties
+
+
+
+
+logger
+
+val logger : <ERROR CLASS>
+
+
+
+Inheritors
+
+
+
diff --git a/docs/build/html/api/net.corda.core.node.services/-network-map-cache/logger.html b/docs/build/html/api/net.corda.core.node.services/-network-map-cache/logger.html
new file mode 100644
index 0000000000..d59cf1cf97
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.node.services/-network-map-cache/logger.html
@@ -0,0 +1,15 @@
+
+
+NetworkMapCache.logger -
+
+
+
+net.corda.core.node.services / NetworkMapCache / logger
+
+logger
+
+val logger : <ERROR CLASS>
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.node.services/-network-map-cache/map-service-registered.html b/docs/build/html/api/net.corda.core.node.services/-network-map-cache/map-service-registered.html
new file mode 100644
index 0000000000..3a5039b28d
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.node.services/-network-map-cache/map-service-registered.html
@@ -0,0 +1,16 @@
+
+
+NetworkMapCache.mapServiceRegistered -
+
+
+
+net.corda.core.node.services / NetworkMapCache / mapServiceRegistered
+
+mapServiceRegistered
+
+abstract val mapServiceRegistered : <ERROR CLASS> < Unit >
+Future to track completion of the NetworkMapService registration.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.node.services/-network-map-cache/network-map-nodes.html b/docs/build/html/api/net.corda.core.node.services/-network-map-cache/network-map-nodes.html
new file mode 100644
index 0000000000..1a7a385f5e
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.node.services/-network-map-cache/network-map-nodes.html
@@ -0,0 +1,16 @@
+
+
+NetworkMapCache.networkMapNodes -
+
+
+
+net.corda.core.node.services / NetworkMapCache / networkMapNodes
+
+networkMapNodes
+
+abstract val networkMapNodes : List < NodeInfo >
+A list of nodes that advertise a network map service
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.node.services/-network-map-cache/notary-nodes.html b/docs/build/html/api/net.corda.core.node.services/-network-map-cache/notary-nodes.html
new file mode 100644
index 0000000000..df255c6488
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.node.services/-network-map-cache/notary-nodes.html
@@ -0,0 +1,16 @@
+
+
+NetworkMapCache.notaryNodes -
+
+
+
+net.corda.core.node.services / NetworkMapCache / notaryNodes
+
+notaryNodes
+
+abstract val notaryNodes : List < NodeInfo >
+A list of nodes that advertise a notary service
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.node.services/-network-map-cache/party-nodes.html b/docs/build/html/api/net.corda.core.node.services/-network-map-cache/party-nodes.html
new file mode 100644
index 0000000000..6054a7ac73
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.node.services/-network-map-cache/party-nodes.html
@@ -0,0 +1,16 @@
+
+
+NetworkMapCache.partyNodes -
+
+
+
+net.corda.core.node.services / NetworkMapCache / partyNodes
+
+partyNodes
+
+abstract val partyNodes : List < NodeInfo >
+A list of all nodes the cache is aware of
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.node.services/-network-map-cache/regulators.html b/docs/build/html/api/net.corda.core.node.services/-network-map-cache/regulators.html
new file mode 100644
index 0000000000..4edcd8a036
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.node.services/-network-map-cache/regulators.html
@@ -0,0 +1,18 @@
+
+
+NetworkMapCache.regulators -
+
+
+
+net.corda.core.node.services / NetworkMapCache / regulators
+
+regulators
+
+abstract val regulators : List < NodeInfo >
+A list of nodes that advertise a regulatory service. Identifying the correct regulator for a trade is outside
+the scope of the network map service, and this is intended solely as a sanity check on configuration stored
+elsewhere.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.node.services/-network-map-cache/remove-node.html b/docs/build/html/api/net.corda.core.node.services/-network-map-cache/remove-node.html
new file mode 100644
index 0000000000..69bac9e92e
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.node.services/-network-map-cache/remove-node.html
@@ -0,0 +1,16 @@
+
+
+NetworkMapCache.removeNode -
+
+
+
+net.corda.core.node.services / NetworkMapCache / removeNode
+
+removeNode
+
+abstract fun removeNode ( node : NodeInfo ) : Unit
+Removes a node from the local cache.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.node.services/-network-map-cache/run-without-map-service.html b/docs/build/html/api/net.corda.core.node.services/-network-map-cache/run-without-map-service.html
new file mode 100644
index 0000000000..61dc32740f
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.node.services/-network-map-cache/run-without-map-service.html
@@ -0,0 +1,16 @@
+
+
+NetworkMapCache.runWithoutMapService -
+
+
+
+net.corda.core.node.services / NetworkMapCache / runWithoutMapService
+
+runWithoutMapService
+
+abstract fun runWithoutMapService ( ) : Unit
+For testing where the network map cache is manipulated marks the service as immediately ready.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.node.services/-network-map-cache/track.html b/docs/build/html/api/net.corda.core.node.services/-network-map-cache/track.html
new file mode 100644
index 0000000000..39d1565970
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.node.services/-network-map-cache/track.html
@@ -0,0 +1,17 @@
+
+
+NetworkMapCache.track -
+
+
+
+net.corda.core.node.services / NetworkMapCache / track
+
+track
+
+abstract fun track ( ) : <ERROR CLASS> < List < NodeInfo > , <ERROR CLASS> < MapChange > >
+Atomically get the current party nodes and a stream of updates. Note that the Observable buffers updates until the
+first subscriber is registered so as to avoid racing with early updates.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.node.services/-read-only-transaction-storage/get-transaction.html b/docs/build/html/api/net.corda.core.node.services/-read-only-transaction-storage/get-transaction.html
new file mode 100644
index 0000000000..ef76724985
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.node.services/-read-only-transaction-storage/get-transaction.html
@@ -0,0 +1,16 @@
+
+
+ReadOnlyTransactionStorage.getTransaction -
+
+
+
+net.corda.core.node.services / ReadOnlyTransactionStorage / getTransaction
+
+getTransaction
+
+abstract fun getTransaction ( id : SecureHash ) : SignedTransaction ?
+Return the transaction with the given id , or null if no such transaction exists.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.node.services/-read-only-transaction-storage/index.html b/docs/build/html/api/net.corda.core.node.services/-read-only-transaction-storage/index.html
new file mode 100644
index 0000000000..a02a7e7d19
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.node.services/-read-only-transaction-storage/index.html
@@ -0,0 +1,59 @@
+
+
+ReadOnlyTransactionStorage -
+
+
+
+net.corda.core.node.services / ReadOnlyTransactionStorage
+
+ReadOnlyTransactionStorage
+interface ReadOnlyTransactionStorage
+Thread-safe storage of transactions.
+
+
+Properties
+
+
+
+
+updates
+
+abstract val updates : <ERROR CLASS> < SignedTransaction >
Get a synchronous Observable of updates. When observations are pushed to the Observer, the vault will already
+incorporate the update.
+
+
+
+
+Functions
+
+Inheritors
+
+
+
+
+TransactionStorage
+
+interface TransactionStorage : ReadOnlyTransactionStorage
Thread-safe storage of transactions.
+
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.node.services/-read-only-transaction-storage/track.html b/docs/build/html/api/net.corda.core.node.services/-read-only-transaction-storage/track.html
new file mode 100644
index 0000000000..cbc6558a7d
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.node.services/-read-only-transaction-storage/track.html
@@ -0,0 +1,16 @@
+
+
+ReadOnlyTransactionStorage.track -
+
+
+
+net.corda.core.node.services / ReadOnlyTransactionStorage / track
+
+track
+
+abstract fun track ( ) : <ERROR CLASS> < List < SignedTransaction > , <ERROR CLASS> < SignedTransaction > >
+Returns all currently stored transactions and further fresh ones.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.node.services/-read-only-transaction-storage/updates.html b/docs/build/html/api/net.corda.core.node.services/-read-only-transaction-storage/updates.html
new file mode 100644
index 0000000000..119e134e43
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.node.services/-read-only-transaction-storage/updates.html
@@ -0,0 +1,17 @@
+
+
+ReadOnlyTransactionStorage.updates -
+
+
+
+net.corda.core.node.services / ReadOnlyTransactionStorage / updates
+
+updates
+
+abstract val updates : <ERROR CLASS> < SignedTransaction >
+Get a synchronous Observable of updates. When observations are pushed to the Observer, the vault will already
+incorporate the update.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.node.services/-scheduler-service/index.html b/docs/build/html/api/net.corda.core.node.services/-scheduler-service/index.html
new file mode 100644
index 0000000000..1143dde5ae
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.node.services/-scheduler-service/index.html
@@ -0,0 +1,53 @@
+
+
+SchedulerService -
+
+
+
+net.corda.core.node.services / SchedulerService
+
+SchedulerService
+interface SchedulerService
+Provides access to schedule activity at some point in time. This interface might well be expanded to
+increase the feature set in the future.
+If the point in time is in the past, the expectation is that the activity will happen shortly after it is scheduled.
+The main consumer initially is an observer of the vault to schedule activities based on transactions as they are
+recorded.
+
+
+
+
+Functions
+
+
+
+
+scheduleStateActivity
+
+abstract fun scheduleStateActivity ( action : ScheduledStateRef ) : Unit
Schedule a new activity for a TX output, probably because it was just produced.
+
+
+
+
+unscheduleStateActivity
+
+abstract fun unscheduleStateActivity ( ref : StateRef ) : Unit
Unschedule all activity for a TX output, probably because it was consumed.
+
+
+
+
+Inheritors
+
+
+
diff --git a/docs/build/html/api/net.corda.core.node.services/-scheduler-service/schedule-state-activity.html b/docs/build/html/api/net.corda.core.node.services/-scheduler-service/schedule-state-activity.html
new file mode 100644
index 0000000000..82b8c60177
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.node.services/-scheduler-service/schedule-state-activity.html
@@ -0,0 +1,20 @@
+
+
+SchedulerService.scheduleStateActivity -
+
+
+
+net.corda.core.node.services / SchedulerService / scheduleStateActivity
+
+scheduleStateActivity
+
+abstract fun scheduleStateActivity ( action : ScheduledStateRef ) : Unit
+Schedule a new activity for a TX output, probably because it was just produced.
+Only one activity can be scheduled for a particular StateRef at any one time. Scheduling a ScheduledStateRef
+replaces any previously scheduled ScheduledStateRef for any one StateRef .
+
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.node.services/-scheduler-service/unschedule-state-activity.html b/docs/build/html/api/net.corda.core.node.services/-scheduler-service/unschedule-state-activity.html
new file mode 100644
index 0000000000..2e0d6a9950
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.node.services/-scheduler-service/unschedule-state-activity.html
@@ -0,0 +1,16 @@
+
+
+SchedulerService.unscheduleStateActivity -
+
+
+
+net.corda.core.node.services / SchedulerService / unscheduleStateActivity
+
+unscheduleStateActivity
+
+abstract fun unscheduleStateActivity ( ref : StateRef ) : Unit
+Unschedule all activity for a TX output, probably because it was consumed.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.node.services/-service-info/-init-.html b/docs/build/html/api/net.corda.core.node.services/-service-info/-init-.html
new file mode 100644
index 0000000000..9aff55daba
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.node.services/-service-info/-init-.html
@@ -0,0 +1,22 @@
+
+
+ServiceInfo. -
+
+
+
+net.corda.core.node.services / ServiceInfo / <init>
+
+<init>
+ServiceInfo ( type : ServiceType , name : String ? = null)
+A container for additional information for an advertised service.
+Parameters
+
+type
- the ServiceType identifier
+
+
+name
- the service name, used for differentiating multiple services of the same type. Can also be used as a
+grouping identifier for nodes collectively running a distributed service.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.node.services/-service-info/index.html b/docs/build/html/api/net.corda.core.node.services/-service-info/index.html
new file mode 100644
index 0000000000..0b156fc0be
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.node.services/-service-info/index.html
@@ -0,0 +1,73 @@
+
+
+ServiceInfo -
+
+
+
+net.corda.core.node.services / ServiceInfo
+
+ServiceInfo
+data class ServiceInfo
+A container for additional information for an advertised service.
+Parameters
+
+type
- the ServiceType identifier
+
+
+name
- the service name, used for differentiating multiple services of the same type. Can also be used as a
+grouping identifier for nodes collectively running a distributed service.
+
+
+Constructors
+
+
+
+
+<init>
+
+ServiceInfo ( type : ServiceType , name : String ? = null)
A container for additional information for an advertised service.
+
+
+
+
+Properties
+
+Functions
+
+
+
+
+toString
+
+fun toString ( ) : String
+
+
+
+Companion Object Functions
+
+
+
+
+parse
+
+fun parse ( encoded : String ) : ServiceInfo
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.node.services/-service-info/name.html b/docs/build/html/api/net.corda.core.node.services/-service-info/name.html
new file mode 100644
index 0000000000..60ba6b1122
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.node.services/-service-info/name.html
@@ -0,0 +1,15 @@
+
+
+ServiceInfo.name -
+
+
+
+net.corda.core.node.services / ServiceInfo / name
+
+name
+
+val name : String ?
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.node.services/-service-info/parse.html b/docs/build/html/api/net.corda.core.node.services/-service-info/parse.html
new file mode 100644
index 0000000000..73e923e86c
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.node.services/-service-info/parse.html
@@ -0,0 +1,15 @@
+
+
+ServiceInfo.parse -
+
+
+
+net.corda.core.node.services / ServiceInfo / parse
+
+parse
+
+fun parse ( encoded : String ) : ServiceInfo
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.node.services/-service-info/to-string.html b/docs/build/html/api/net.corda.core.node.services/-service-info/to-string.html
new file mode 100644
index 0000000000..2286c0c135
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.node.services/-service-info/to-string.html
@@ -0,0 +1,15 @@
+
+
+ServiceInfo.toString -
+
+
+
+net.corda.core.node.services / ServiceInfo / toString
+
+toString
+
+fun toString ( ) : String
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.node.services/-service-info/type.html b/docs/build/html/api/net.corda.core.node.services/-service-info/type.html
new file mode 100644
index 0000000000..92ea1a790d
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.node.services/-service-info/type.html
@@ -0,0 +1,15 @@
+
+
+ServiceInfo.type -
+
+
+
+net.corda.core.node.services / ServiceInfo / type
+
+type
+
+val type : ServiceType
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.node.services/-service-type/corda.html b/docs/build/html/api/net.corda.core.node.services/-service-type/corda.html
new file mode 100644
index 0000000000..f9f7f96521
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.node.services/-service-type/corda.html
@@ -0,0 +1,15 @@
+
+
+ServiceType.corda -
+
+
+
+net.corda.core.node.services / ServiceType / corda
+
+corda
+
+val corda : ServiceType
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.node.services/-service-type/equals.html b/docs/build/html/api/net.corda.core.node.services/-service-type/equals.html
new file mode 100644
index 0000000000..f41658df99
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.node.services/-service-type/equals.html
@@ -0,0 +1,15 @@
+
+
+ServiceType.equals -
+
+
+
+net.corda.core.node.services / ServiceType / equals
+
+equals
+
+open operator fun equals ( other : Any ? ) : Boolean
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.node.services/-service-type/get-service-type.html b/docs/build/html/api/net.corda.core.node.services/-service-type/get-service-type.html
new file mode 100644
index 0000000000..618f647ffc
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.node.services/-service-type/get-service-type.html
@@ -0,0 +1,15 @@
+
+
+ServiceType.getServiceType -
+
+
+
+net.corda.core.node.services / ServiceType / getServiceType
+
+getServiceType
+
+fun getServiceType ( namespace : String , typeId : String ) : ServiceType
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.node.services/-service-type/get-sub-type.html b/docs/build/html/api/net.corda.core.node.services/-service-type/get-sub-type.html
new file mode 100644
index 0000000000..f62d53b85b
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.node.services/-service-type/get-sub-type.html
@@ -0,0 +1,15 @@
+
+
+ServiceType.getSubType -
+
+
+
+net.corda.core.node.services / ServiceType / getSubType
+
+getSubType
+
+fun getSubType ( subTypeId : String ) : ServiceType
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.node.services/-service-type/hash-code.html b/docs/build/html/api/net.corda.core.node.services/-service-type/hash-code.html
new file mode 100644
index 0000000000..4ef4ca90b0
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.node.services/-service-type/hash-code.html
@@ -0,0 +1,15 @@
+
+
+ServiceType.hashCode -
+
+
+
+net.corda.core.node.services / ServiceType / hashCode
+
+hashCode
+
+open fun hashCode ( ) : Int
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.node.services/-service-type/id.html b/docs/build/html/api/net.corda.core.node.services/-service-type/id.html
new file mode 100644
index 0000000000..e7c8fe16b4
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.node.services/-service-type/id.html
@@ -0,0 +1,15 @@
+
+
+ServiceType.id -
+
+
+
+net.corda.core.node.services / ServiceType / id
+
+id
+
+val id : String
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.node.services/-service-type/index.html b/docs/build/html/api/net.corda.core.node.services/-service-type/index.html
new file mode 100644
index 0000000000..a93b028e5f
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.node.services/-service-type/index.html
@@ -0,0 +1,109 @@
+
+
+ServiceType -
+
+
+
+net.corda.core.node.services / ServiceType
+
+ServiceType
+sealed class ServiceType
+Identifier for service types a node can expose over the network to other peers. These types are placed into network
+map advertisements. Services that are purely local and are not providing functionality to other parts of the network
+dont need a declared service type.
+
+
+Properties
+
+
+
+
+id
+
+val id : String
+
+
+
+Functions
+
+
+
+
+equals
+
+open operator fun equals ( other : Any ? ) : Boolean
+
+
+
+getSubType
+
+fun getSubType ( subTypeId : String ) : ServiceType
+
+
+
+hashCode
+
+open fun hashCode ( ) : Int
+
+
+
+isNotary
+
+fun isNotary ( ) : Boolean
+
+
+
+isSubTypeOf
+
+fun isSubTypeOf ( superType : ServiceType ) : Boolean
+
+
+
+toString
+
+open fun toString ( ) : String
+
+
+
+Companion Object Properties
+
+
+
+
+corda
+
+val corda : ServiceType
+
+
+
+notary
+
+val notary : ServiceType
+
+
+
+regulator
+
+val regulator : ServiceType
+
+
+
+Companion Object Functions
+
+
+
+
+getServiceType
+
+fun getServiceType ( namespace : String , typeId : String ) : ServiceType
+
+
+
+parse
+
+fun parse ( id : String ) : ServiceType
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.node.services/-service-type/is-notary.html b/docs/build/html/api/net.corda.core.node.services/-service-type/is-notary.html
new file mode 100644
index 0000000000..15af324f50
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.node.services/-service-type/is-notary.html
@@ -0,0 +1,15 @@
+
+
+ServiceType.isNotary -
+
+
+
+net.corda.core.node.services / ServiceType / isNotary
+
+isNotary
+
+fun isNotary ( ) : Boolean
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.node.services/-service-type/is-sub-type-of.html b/docs/build/html/api/net.corda.core.node.services/-service-type/is-sub-type-of.html
new file mode 100644
index 0000000000..00e43be5f2
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.node.services/-service-type/is-sub-type-of.html
@@ -0,0 +1,15 @@
+
+
+ServiceType.isSubTypeOf -
+
+
+
+net.corda.core.node.services / ServiceType / isSubTypeOf
+
+isSubTypeOf
+
+fun isSubTypeOf ( superType : ServiceType ) : Boolean
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.node.services/-service-type/notary.html b/docs/build/html/api/net.corda.core.node.services/-service-type/notary.html
new file mode 100644
index 0000000000..d81defd96a
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.node.services/-service-type/notary.html
@@ -0,0 +1,15 @@
+
+
+ServiceType.notary -
+
+
+
+net.corda.core.node.services / ServiceType / notary
+
+notary
+
+val notary : ServiceType
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.node.services/-service-type/parse.html b/docs/build/html/api/net.corda.core.node.services/-service-type/parse.html
new file mode 100644
index 0000000000..17030a248e
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.node.services/-service-type/parse.html
@@ -0,0 +1,15 @@
+
+
+ServiceType.parse -
+
+
+
+net.corda.core.node.services / ServiceType / parse
+
+parse
+
+fun parse ( id : String ) : ServiceType
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.node.services/-service-type/regulator.html b/docs/build/html/api/net.corda.core.node.services/-service-type/regulator.html
new file mode 100644
index 0000000000..4006f35267
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.node.services/-service-type/regulator.html
@@ -0,0 +1,15 @@
+
+
+ServiceType.regulator -
+
+
+
+net.corda.core.node.services / ServiceType / regulator
+
+regulator
+
+val regulator : ServiceType
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.node.services/-service-type/to-string.html b/docs/build/html/api/net.corda.core.node.services/-service-type/to-string.html
new file mode 100644
index 0000000000..6820c6c94f
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.node.services/-service-type/to-string.html
@@ -0,0 +1,15 @@
+
+
+ServiceType.toString -
+
+
+
+net.corda.core.node.services / ServiceType / toString
+
+toString
+
+open fun toString ( ) : String
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.node.services/-state-machine-recorded-transaction-mapping-storage/add-mapping.html b/docs/build/html/api/net.corda.core.node.services/-state-machine-recorded-transaction-mapping-storage/add-mapping.html
new file mode 100644
index 0000000000..510ce6c7a6
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.node.services/-state-machine-recorded-transaction-mapping-storage/add-mapping.html
@@ -0,0 +1,15 @@
+
+
+StateMachineRecordedTransactionMappingStorage.addMapping -
+
+
+
+net.corda.core.node.services / StateMachineRecordedTransactionMappingStorage / addMapping
+
+addMapping
+
+abstract fun addMapping ( stateMachineRunId : StateMachineRunId , transactionId : SecureHash ) : Unit
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.node.services/-state-machine-recorded-transaction-mapping-storage/index.html b/docs/build/html/api/net.corda.core.node.services/-state-machine-recorded-transaction-mapping-storage/index.html
new file mode 100644
index 0000000000..2cc30a72ab
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.node.services/-state-machine-recorded-transaction-mapping-storage/index.html
@@ -0,0 +1,52 @@
+
+
+StateMachineRecordedTransactionMappingStorage -
+
+
+
+net.corda.core.node.services / StateMachineRecordedTransactionMappingStorage
+
+StateMachineRecordedTransactionMappingStorage
+interface StateMachineRecordedTransactionMappingStorage
+This is the interface to storage storing state machine -> recorded tx mappings. Any time a transaction is recorded
+during a protocol run addMapping should be called.
+
+
+Functions
+
+Inheritors
+
+
+
+
+DBTransactionMappingStorage
+
+class DBTransactionMappingStorage : StateMachineRecordedTransactionMappingStorage
Database storage of a txhash -> state machine id mapping.
+
+
+
+
+InMemoryStateMachineRecordedTransactionMappingStorage
+
+class InMemoryStateMachineRecordedTransactionMappingStorage : StateMachineRecordedTransactionMappingStorage
This is a temporary in-memory storage of a state machine id -> txhash mapping
+
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.node.services/-state-machine-recorded-transaction-mapping-storage/track.html b/docs/build/html/api/net.corda.core.node.services/-state-machine-recorded-transaction-mapping-storage/track.html
new file mode 100644
index 0000000000..3b5b2cd937
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.node.services/-state-machine-recorded-transaction-mapping-storage/track.html
@@ -0,0 +1,15 @@
+
+
+StateMachineRecordedTransactionMappingStorage.track -
+
+
+
+net.corda.core.node.services / StateMachineRecordedTransactionMappingStorage / track
+
+track
+
+abstract fun track ( ) : <ERROR CLASS> < List < StateMachineTransactionMapping > , <ERROR CLASS> < StateMachineTransactionMapping > >
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.node.services/-state-machine-transaction-mapping/-init-.html b/docs/build/html/api/net.corda.core.node.services/-state-machine-transaction-mapping/-init-.html
new file mode 100644
index 0000000000..8c85438ab9
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.node.services/-state-machine-transaction-mapping/-init-.html
@@ -0,0 +1,14 @@
+
+
+StateMachineTransactionMapping. -
+
+
+
+net.corda.core.node.services / StateMachineTransactionMapping / <init>
+
+<init>
+StateMachineTransactionMapping ( stateMachineRunId : StateMachineRunId , transactionId : SecureHash )
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.node.services/-state-machine-transaction-mapping/index.html b/docs/build/html/api/net.corda.core.node.services/-state-machine-transaction-mapping/index.html
new file mode 100644
index 0000000000..5219af75d4
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.node.services/-state-machine-transaction-mapping/index.html
@@ -0,0 +1,42 @@
+
+
+StateMachineTransactionMapping -
+
+
+
+net.corda.core.node.services / StateMachineTransactionMapping
+
+StateMachineTransactionMapping
+data class StateMachineTransactionMapping
+
+
+Constructors
+
+Properties
+
+
+
diff --git a/docs/build/html/api/net.corda.core.node.services/-state-machine-transaction-mapping/state-machine-run-id.html b/docs/build/html/api/net.corda.core.node.services/-state-machine-transaction-mapping/state-machine-run-id.html
new file mode 100644
index 0000000000..8f18e1dc3c
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.node.services/-state-machine-transaction-mapping/state-machine-run-id.html
@@ -0,0 +1,15 @@
+
+
+StateMachineTransactionMapping.stateMachineRunId -
+
+
+
+net.corda.core.node.services / StateMachineTransactionMapping / stateMachineRunId
+
+stateMachineRunId
+
+val stateMachineRunId : StateMachineRunId
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.node.services/-state-machine-transaction-mapping/transaction-id.html b/docs/build/html/api/net.corda.core.node.services/-state-machine-transaction-mapping/transaction-id.html
new file mode 100644
index 0000000000..9497fd9edd
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.node.services/-state-machine-transaction-mapping/transaction-id.html
@@ -0,0 +1,15 @@
+
+
+StateMachineTransactionMapping.transactionId -
+
+
+
+net.corda.core.node.services / StateMachineTransactionMapping / transactionId
+
+transactionId
+
+val transactionId : SecureHash
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.node.services/-storage-service/attachments.html b/docs/build/html/api/net.corda.core.node.services/-storage-service/attachments.html
new file mode 100644
index 0000000000..9914885065
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.node.services/-storage-service/attachments.html
@@ -0,0 +1,16 @@
+
+
+StorageService.attachments -
+
+
+
+net.corda.core.node.services / StorageService / attachments
+
+attachments
+
+abstract val attachments : AttachmentStorage
+Provides access to storage of arbitrary JAR files (which may contain only data, no code).
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.node.services/-storage-service/index.html b/docs/build/html/api/net.corda.core.node.services/-storage-service/index.html
new file mode 100644
index 0000000000..70a011198f
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.node.services/-storage-service/index.html
@@ -0,0 +1,56 @@
+
+
+StorageService -
+
+
+
+net.corda.core.node.services / StorageService
+
+StorageService
+interface StorageService
+A sketch of an interface to a simple key/value storage system. Intended for persistence of simple blobs like
+transactions, serialised protocol state machines and so on. Again, this isnt intended to imply lack of SQL or
+anything like that, this interface is only big enough to support the prototyping work.
+
+
+Properties
+
+Inheritors
+
+
+
+
+TxWritableStorageService
+
+interface TxWritableStorageService : StorageService
Storage service, with extensions to allow validated transactions to be added to. For use only within ServiceHub .
+
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.node.services/-storage-service/state-machine-recorded-transaction-mapping.html b/docs/build/html/api/net.corda.core.node.services/-storage-service/state-machine-recorded-transaction-mapping.html
new file mode 100644
index 0000000000..fea80e2e5f
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.node.services/-storage-service/state-machine-recorded-transaction-mapping.html
@@ -0,0 +1,15 @@
+
+
+StorageService.stateMachineRecordedTransactionMapping -
+
+
+
+net.corda.core.node.services / StorageService / stateMachineRecordedTransactionMapping
+
+stateMachineRecordedTransactionMapping
+
+abstract val stateMachineRecordedTransactionMapping : StateMachineRecordedTransactionMappingStorage
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.node.services/-storage-service/validated-transactions.html b/docs/build/html/api/net.corda.core.node.services/-storage-service/validated-transactions.html
new file mode 100644
index 0000000000..bd438404e1
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.node.services/-storage-service/validated-transactions.html
@@ -0,0 +1,18 @@
+
+
+StorageService.validatedTransactions -
+
+
+
+net.corda.core.node.services / StorageService / validatedTransactions
+
+validatedTransactions
+
+abstract val validatedTransactions : ReadOnlyTransactionStorage
+A map of hash->tx where tx has been signature/contract validated and the states are known to be correct.
+The signatures arent technically needed after that point, but we keep them around so that we can relay
+the transaction data to other nodes that need it.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.node.services/-timestamp-checker/-init-.html b/docs/build/html/api/net.corda.core.node.services/-timestamp-checker/-init-.html
new file mode 100644
index 0000000000..014c416f48
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.node.services/-timestamp-checker/-init-.html
@@ -0,0 +1,15 @@
+
+
+TimestampChecker. -
+
+
+
+net.corda.core.node.services / TimestampChecker / <init>
+
+<init>
+TimestampChecker ( clock : Clock = Clock.systemUTC(), tolerance : Duration = 30.seconds)
+Checks if the given timestamp falls within the allowed tolerance interval.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.node.services/-timestamp-checker/clock.html b/docs/build/html/api/net.corda.core.node.services/-timestamp-checker/clock.html
new file mode 100644
index 0000000000..2f45f99e7c
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.node.services/-timestamp-checker/clock.html
@@ -0,0 +1,15 @@
+
+
+TimestampChecker.clock -
+
+
+
+net.corda.core.node.services / TimestampChecker / clock
+
+clock
+
+val clock : Clock
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.node.services/-timestamp-checker/index.html b/docs/build/html/api/net.corda.core.node.services/-timestamp-checker/index.html
new file mode 100644
index 0000000000..31fbd295f5
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.node.services/-timestamp-checker/index.html
@@ -0,0 +1,55 @@
+
+
+TimestampChecker -
+
+
+
+net.corda.core.node.services / TimestampChecker
+
+TimestampChecker
+class TimestampChecker
+Checks if the given timestamp falls within the allowed tolerance interval.
+
+
+Constructors
+
+
+
+
+<init>
+
+TimestampChecker ( clock : Clock = Clock.systemUTC(), tolerance : Duration = 30.seconds)
Checks if the given timestamp falls within the allowed tolerance interval.
+
+
+
+
+Properties
+
+Functions
+
+
+
diff --git a/docs/build/html/api/net.corda.core.node.services/-timestamp-checker/is-valid.html b/docs/build/html/api/net.corda.core.node.services/-timestamp-checker/is-valid.html
new file mode 100644
index 0000000000..90439c8de7
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.node.services/-timestamp-checker/is-valid.html
@@ -0,0 +1,15 @@
+
+
+TimestampChecker.isValid -
+
+
+
+net.corda.core.node.services / TimestampChecker / isValid
+
+isValid
+
+fun isValid ( timestampCommand : Timestamp ) : Boolean
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.node.services/-timestamp-checker/tolerance.html b/docs/build/html/api/net.corda.core.node.services/-timestamp-checker/tolerance.html
new file mode 100644
index 0000000000..61d7021849
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.node.services/-timestamp-checker/tolerance.html
@@ -0,0 +1,15 @@
+
+
+TimestampChecker.tolerance -
+
+
+
+net.corda.core.node.services / TimestampChecker / tolerance
+
+tolerance
+
+val tolerance : Duration
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.node.services/-transaction-storage/add-transaction.html b/docs/build/html/api/net.corda.core.node.services/-transaction-storage/add-transaction.html
new file mode 100644
index 0000000000..5a6fdd2081
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.node.services/-transaction-storage/add-transaction.html
@@ -0,0 +1,17 @@
+
+
+TransactionStorage.addTransaction -
+
+
+
+net.corda.core.node.services / TransactionStorage / addTransaction
+
+addTransaction
+
+abstract fun addTransaction ( transaction : SignedTransaction ) : Unit
+Add a new transaction to the store. If the store already has a transaction with the same id it will be
+overwritten.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.node.services/-transaction-storage/index.html b/docs/build/html/api/net.corda.core.node.services/-transaction-storage/index.html
new file mode 100644
index 0000000000..04e9f17edc
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.node.services/-transaction-storage/index.html
@@ -0,0 +1,71 @@
+
+
+TransactionStorage -
+
+
+
+net.corda.core.node.services / TransactionStorage
+
+TransactionStorage
+interface TransactionStorage : ReadOnlyTransactionStorage
+Thread-safe storage of transactions.
+
+
+Inherited Properties
+
+
+
+
+updates
+
+abstract val updates : <ERROR CLASS> < SignedTransaction >
Get a synchronous Observable of updates. When observations are pushed to the Observer, the vault will already
+incorporate the update.
+
+
+
+
+Functions
+
+
+
+
+addTransaction
+
+abstract fun addTransaction ( transaction : SignedTransaction ) : Unit
Add a new transaction to the store. If the store already has a transaction with the same id it will be
+overwritten.
+
+
+
+
+Inherited Functions
+
+Inheritors
+
+
+
diff --git a/docs/build/html/api/net.corda.core.node.services/-tx-writable-storage-service/index.html b/docs/build/html/api/net.corda.core.node.services/-tx-writable-storage-service/index.html
new file mode 100644
index 0000000000..c7d8060db7
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.node.services/-tx-writable-storage-service/index.html
@@ -0,0 +1,58 @@
+
+
+TxWritableStorageService -
+
+
+
+net.corda.core.node.services / TxWritableStorageService
+
+TxWritableStorageService
+interface TxWritableStorageService : StorageService
+Storage service, with extensions to allow validated transactions to be added to. For use only within ServiceHub .
+
+
+Properties
+
+
+
+
+validatedTransactions
+
+abstract val validatedTransactions : TransactionStorage
A map of hash->tx where tx has been signature/contract validated and the states are known to be correct.
+The signatures arent technically needed after that point, but we keep them around so that we can relay
+the transaction data to other nodes that need it.
+
+
+
+
+Inherited Properties
+
+Inheritors
+
+
+
diff --git a/docs/build/html/api/net.corda.core.node.services/-tx-writable-storage-service/validated-transactions.html b/docs/build/html/api/net.corda.core.node.services/-tx-writable-storage-service/validated-transactions.html
new file mode 100644
index 0000000000..f76262f196
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.node.services/-tx-writable-storage-service/validated-transactions.html
@@ -0,0 +1,19 @@
+
+
+TxWritableStorageService.validatedTransactions -
+
+
+
+net.corda.core.node.services / TxWritableStorageService / validatedTransactions
+
+validatedTransactions
+
+abstract val validatedTransactions : TransactionStorage
+Overrides StorageService.validatedTransactions
+A map of hash->tx where tx has been signature/contract validated and the states are known to be correct.
+The signatures arent technically needed after that point, but we keep them around so that we can relay
+the transaction data to other nodes that need it.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.node.services/-uniqueness-exception/-init-.html b/docs/build/html/api/net.corda.core.node.services/-uniqueness-exception/-init-.html
new file mode 100644
index 0000000000..0fe7e7c976
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.node.services/-uniqueness-exception/-init-.html
@@ -0,0 +1,14 @@
+
+
+UniquenessException. -
+
+
+
+net.corda.core.node.services / UniquenessException / <init>
+
+<init>
+UniquenessException ( error : Conflict )
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.node.services/-uniqueness-exception/error.html b/docs/build/html/api/net.corda.core.node.services/-uniqueness-exception/error.html
new file mode 100644
index 0000000000..7b1577cd45
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.node.services/-uniqueness-exception/error.html
@@ -0,0 +1,15 @@
+
+
+UniquenessException.error -
+
+
+
+net.corda.core.node.services / UniquenessException / error
+
+error
+
+val error : Conflict
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.node.services/-uniqueness-exception/index.html b/docs/build/html/api/net.corda.core.node.services/-uniqueness-exception/index.html
new file mode 100644
index 0000000000..14157338e2
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.node.services/-uniqueness-exception/index.html
@@ -0,0 +1,47 @@
+
+
+UniquenessException -
+
+
+
+net.corda.core.node.services / UniquenessException
+
+UniquenessException
+class UniquenessException : Exception
+
+
+Constructors
+
+Properties
+
+Extension Properties
+
+
+
+
+rootCause
+
+val Throwable . rootCause : Throwable
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.node.services/-uniqueness-provider/-conflict/-init-.html b/docs/build/html/api/net.corda.core.node.services/-uniqueness-provider/-conflict/-init-.html
new file mode 100644
index 0000000000..5b0c96d05c
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.node.services/-uniqueness-provider/-conflict/-init-.html
@@ -0,0 +1,15 @@
+
+
+UniquenessProvider.Conflict. -
+
+
+
+net.corda.core.node.services / UniquenessProvider / Conflict / <init>
+
+<init>
+Conflict ( stateHistory : Map < StateRef , ConsumingTx > )
+Specifies the consuming transaction for every conflicting state
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.node.services/-uniqueness-provider/-conflict/index.html b/docs/build/html/api/net.corda.core.node.services/-uniqueness-provider/-conflict/index.html
new file mode 100644
index 0000000000..10b559c4d2
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.node.services/-uniqueness-provider/-conflict/index.html
@@ -0,0 +1,38 @@
+
+
+UniquenessProvider.Conflict -
+
+
+
+net.corda.core.node.services / UniquenessProvider / Conflict
+
+Conflict
+data class Conflict
+Specifies the consuming transaction for every conflicting state
+
+
+Constructors
+
+
+
+
+<init>
+
+Conflict ( stateHistory : Map < StateRef , ConsumingTx > )
Specifies the consuming transaction for every conflicting state
+
+
+
+
+Properties
+
+
+
diff --git a/docs/build/html/api/net.corda.core.node.services/-uniqueness-provider/-conflict/state-history.html b/docs/build/html/api/net.corda.core.node.services/-uniqueness-provider/-conflict/state-history.html
new file mode 100644
index 0000000000..30a9b3c2f0
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.node.services/-uniqueness-provider/-conflict/state-history.html
@@ -0,0 +1,15 @@
+
+
+UniquenessProvider.Conflict.stateHistory -
+
+
+
+net.corda.core.node.services / UniquenessProvider / Conflict / stateHistory
+
+stateHistory
+
+val stateHistory : Map < StateRef , ConsumingTx >
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.node.services/-uniqueness-provider/-consuming-tx/-init-.html b/docs/build/html/api/net.corda.core.node.services/-uniqueness-provider/-consuming-tx/-init-.html
new file mode 100644
index 0000000000..22a244b79f
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.node.services/-uniqueness-provider/-consuming-tx/-init-.html
@@ -0,0 +1,22 @@
+
+
+UniquenessProvider.ConsumingTx. -
+
+
+
+net.corda.core.node.services / UniquenessProvider / ConsumingTx / <init>
+
+<init>
+ConsumingTx ( id : SecureHash , inputIndex : Int , requestingParty : Party )
+Specifies the transaction id, the position of the consumed state in the inputs, and
+the caller identity requesting the commit.
+TODO: need to do more design work to prevent privacy problems: knowing the id of a
+transaction, by the rules of our system the party can obtain it and see its contents.
+This allows a party to just submit invalid transactions with outputs it was aware of and
+find out where exactly they were spent.
+
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.node.services/-uniqueness-provider/-consuming-tx/id.html b/docs/build/html/api/net.corda.core.node.services/-uniqueness-provider/-consuming-tx/id.html
new file mode 100644
index 0000000000..e5dd8f8344
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.node.services/-uniqueness-provider/-consuming-tx/id.html
@@ -0,0 +1,15 @@
+
+
+UniquenessProvider.ConsumingTx.id -
+
+
+
+net.corda.core.node.services / UniquenessProvider / ConsumingTx / id
+
+id
+
+val id : SecureHash
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.node.services/-uniqueness-provider/-consuming-tx/index.html b/docs/build/html/api/net.corda.core.node.services/-uniqueness-provider/-consuming-tx/index.html
new file mode 100644
index 0000000000..a270adbdf3
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.node.services/-uniqueness-provider/-consuming-tx/index.html
@@ -0,0 +1,58 @@
+
+
+UniquenessProvider.ConsumingTx -
+
+
+
+net.corda.core.node.services / UniquenessProvider / ConsumingTx
+
+ConsumingTx
+data class ConsumingTx
+Specifies the transaction id, the position of the consumed state in the inputs, and
+the caller identity requesting the commit.
+TODO: need to do more design work to prevent privacy problems: knowing the id of a
+transaction, by the rules of our system the party can obtain it and see its contents.
+This allows a party to just submit invalid transactions with outputs it was aware of and
+find out where exactly they were spent.
+
+
+
+
+Constructors
+
+
+
+
+<init>
+
+ConsumingTx ( id : SecureHash , inputIndex : Int , requestingParty : Party )
Specifies the transaction id, the position of the consumed state in the inputs, and
+the caller identity requesting the commit.
+
+
+
+
+Properties
+
+
+
diff --git a/docs/build/html/api/net.corda.core.node.services/-uniqueness-provider/-consuming-tx/input-index.html b/docs/build/html/api/net.corda.core.node.services/-uniqueness-provider/-consuming-tx/input-index.html
new file mode 100644
index 0000000000..975eaed59f
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.node.services/-uniqueness-provider/-consuming-tx/input-index.html
@@ -0,0 +1,15 @@
+
+
+UniquenessProvider.ConsumingTx.inputIndex -
+
+
+
+net.corda.core.node.services / UniquenessProvider / ConsumingTx / inputIndex
+
+inputIndex
+
+val inputIndex : Int
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.node.services/-uniqueness-provider/-consuming-tx/requesting-party.html b/docs/build/html/api/net.corda.core.node.services/-uniqueness-provider/-consuming-tx/requesting-party.html
new file mode 100644
index 0000000000..fe9e8e137b
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.node.services/-uniqueness-provider/-consuming-tx/requesting-party.html
@@ -0,0 +1,15 @@
+
+
+UniquenessProvider.ConsumingTx.requestingParty -
+
+
+
+net.corda.core.node.services / UniquenessProvider / ConsumingTx / requestingParty
+
+requestingParty
+
+val requestingParty : Party
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.node.services/-uniqueness-provider/commit.html b/docs/build/html/api/net.corda.core.node.services/-uniqueness-provider/commit.html
new file mode 100644
index 0000000000..035f8a23bf
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.node.services/-uniqueness-provider/commit.html
@@ -0,0 +1,16 @@
+
+
+UniquenessProvider.commit -
+
+
+
+net.corda.core.node.services / UniquenessProvider / commit
+
+commit
+
+abstract fun commit ( states : List < StateRef > , txId : SecureHash , callerIdentity : Party ) : Unit
+Commits all input states of the given transaction
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.node.services/-uniqueness-provider/index.html b/docs/build/html/api/net.corda.core.node.services/-uniqueness-provider/index.html
new file mode 100644
index 0000000000..374e0404a0
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.node.services/-uniqueness-provider/index.html
@@ -0,0 +1,67 @@
+
+
+UniquenessProvider -
+
+
+
+net.corda.core.node.services / UniquenessProvider
+
+UniquenessProvider
+interface UniquenessProvider
+A service that records input states of the given transaction and provides conflict information
+if any of the inputs have already been used in another transaction.
+
+
+Types
+
+
+
+
+Conflict
+
+data class Conflict
Specifies the consuming transaction for every conflicting state
+
+
+
+
+ConsumingTx
+
+data class ConsumingTx
Specifies the transaction id, the position of the consumed state in the inputs, and
+the caller identity requesting the commit.
+
+
+
+
+Functions
+
+
+
+
+commit
+
+abstract fun commit ( states : List < StateRef > , txId : SecureHash , callerIdentity : Party ) : Unit
Commits all input states of the given transaction
+
+
+
+
+Inheritors
+
+
+
diff --git a/docs/build/html/api/net.corda.core.node.services/-vault-service/add-note-to-transaction.html b/docs/build/html/api/net.corda.core.node.services/-vault-service/add-note-to-transaction.html
new file mode 100644
index 0000000000..1fa176a352
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.node.services/-vault-service/add-note-to-transaction.html
@@ -0,0 +1,19 @@
+
+
+VaultService.addNoteToTransaction -
+
+
+
+net.corda.core.node.services / VaultService / addNoteToTransaction
+
+addNoteToTransaction
+
+abstract fun addNoteToTransaction ( txnId : SecureHash , noteText : String ) : Unit
+Add a note to an existing LedgerTransaction given by its unique SecureHash id
+Multiple notes may be attached to the same LedgerTransaction .
+These are additively and immutably persisted within the node local vault database in a single textual field
+using a semi-colon separator
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.node.services/-vault-service/cash-balances.html b/docs/build/html/api/net.corda.core.node.services/-vault-service/cash-balances.html
new file mode 100644
index 0000000000..6d4f4a8678
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.node.services/-vault-service/cash-balances.html
@@ -0,0 +1,17 @@
+
+
+VaultService.cashBalances -
+
+
+
+net.corda.core.node.services / VaultService / cashBalances
+
+cashBalances
+
+open val cashBalances : Map < Currency , Amount < Currency > >
+Returns a map of how much cash we have in each currency, ignoring details like issuer. Note: currencies for
+which we have no cash evaluate to null (not present in map), not 0.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.node.services/-vault-service/current-vault.html b/docs/build/html/api/net.corda.core.node.services/-vault-service/current-vault.html
new file mode 100644
index 0000000000..31e4dfeed3
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.node.services/-vault-service/current-vault.html
@@ -0,0 +1,17 @@
+
+
+VaultService.currentVault -
+
+
+
+net.corda.core.node.services / VaultService / currentVault
+
+currentVault
+
+abstract val currentVault : Vault
+Returns a read-only snapshot of the vault at the time the call is made. Note that if you consume states or
+keys in this vault, you must inform the vault service so it can update its internal state.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.node.services/-vault-service/generate-spend.html b/docs/build/html/api/net.corda.core.node.services/-vault-service/generate-spend.html
new file mode 100644
index 0000000000..9622a7fc3a
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.node.services/-vault-service/generate-spend.html
@@ -0,0 +1,18 @@
+
+
+VaultService.generateSpend -
+
+
+
+net.corda.core.node.services / VaultService / generateSpend
+
+generateSpend
+
+abstract fun generateSpend ( tx : TransactionBuilder , amount : Amount < Currency > , to : PublicKey , onlyFromParties : Set < Party > ? = null) : <ERROR CLASS> < TransactionBuilder , List < PublicKey > >
+InsufficientBalanceException is thrown when a Cash Spending transaction fails because
+there is insufficient quantity for a given currency (and optionally set of Issuer Parties).
+Note: an Amount of Currency is only fungible for a given Issuer Party within a FungibleAsset
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.node.services/-vault-service/get-transaction-notes.html b/docs/build/html/api/net.corda.core.node.services/-vault-service/get-transaction-notes.html
new file mode 100644
index 0000000000..c95a0cc13b
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.node.services/-vault-service/get-transaction-notes.html
@@ -0,0 +1,15 @@
+
+
+VaultService.getTransactionNotes -
+
+
+
+net.corda.core.node.services / VaultService / getTransactionNotes
+
+getTransactionNotes
+
+abstract fun getTransactionNotes ( txnId : SecureHash ) : Iterable < String >
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.node.services/-vault-service/index.html b/docs/build/html/api/net.corda.core.node.services/-vault-service/index.html
new file mode 100644
index 0000000000..d49c5bb4a3
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.node.services/-vault-service/index.html
@@ -0,0 +1,160 @@
+
+
+VaultService -
+
+
+
+net.corda.core.node.services / VaultService
+
+VaultService
+interface VaultService
+A VaultService is responsible for securely and safely persisting the current state of a vault to storage. The
+vault service vends immutable snapshots of the current vault for working with: if you build a transaction based
+on a vault that isnt current, be aware that it may end up being invalid if the states that were used have been
+consumed by someone else first
+Note that transactions weve seen are held by the storage service, not the vault.
+
+
+
+
+Properties
+
+
+
+
+cashBalances
+
+open val cashBalances : Map < Currency , Amount < Currency > >
Returns a map of how much cash we have in each currency, ignoring details like issuer. Note: currencies for
+which we have no cash evaluate to null (not present in map), not 0.
+
+
+
+
+currentVault
+
+abstract val currentVault : Vault
Returns a read-only snapshot of the vault at the time the call is made. Note that if you consume states or
+keys in this vault, you must inform the vault service so it can update its internal state.
+
+
+
+
+linearHeads
+
+abstract val linearHeads : Map < UniqueIdentifier , StateAndRef < LinearState > >
Returns a snapshot of the heads of LinearStates.
+
+
+
+
+updates
+
+abstract val updates : <ERROR CLASS> < Update >
Get a synchronous Observable of updates. When observations are pushed to the Observer, the Vault will already incorporate
+the update.
+
+
+
+
+Functions
+
+
+
+
+addNoteToTransaction
+
+abstract fun addNoteToTransaction ( txnId : SecureHash , noteText : String ) : Unit
Add a note to an existing LedgerTransaction given by its unique SecureHash id
+Multiple notes may be attached to the same LedgerTransaction .
+These are additively and immutably persisted within the node local vault database in a single textual field
+using a semi-colon separator
+
+
+
+
+generateSpend
+
+abstract fun generateSpend ( tx : TransactionBuilder , amount : Amount < Currency > , to : PublicKey , onlyFromParties : Set < Party > ? = null) : <ERROR CLASS> < TransactionBuilder , List < PublicKey > >
InsufficientBalanceException is thrown when a Cash Spending transaction fails because
+there is insufficient quantity for a given currency (and optionally set of Issuer Parties).
+Note: an Amount of Currency is only fungible for a given Issuer Party within a FungibleAsset
+
+
+
+
+getTransactionNotes
+
+abstract fun getTransactionNotes ( txnId : SecureHash ) : Iterable < String >
+
+
+
+linearHeadsOfType_
+
+open fun < T : LinearState > linearHeadsOfType_ ( stateType : Class < T > ) : Map < UniqueIdentifier , StateAndRef < T > >
Returns the linearHeads only when the type of the state would be considered an instanceof the given type.
+
+
+
+
+notify
+
+open fun notify ( tx : WireTransaction ) : Vault
Same as notifyAll but with a single transaction.
+
+
+
+
+notifyAll
+
+abstract fun notifyAll ( txns : Iterable < WireTransaction > ) : Vault
Possibly update the vault by marking as spent states that these transactions consume, and adding any relevant
+new states that they create. You should only insert transactions that have been successfully verified here
+
+
+
+
+statesForRefs
+
+open fun statesForRefs ( refs : List < StateRef > ) : Map < StateRef , TransactionState < * > ? >
+
+
+
+track
+
+abstract fun track ( ) : <ERROR CLASS> < Vault , <ERROR CLASS> < Update > >
Atomically get the current vault and a stream of updates. Note that the Observable buffers updates until the
+first subscriber is registered so as to avoid racing with early updates.
+
+
+
+
+whenConsumed
+
+open fun whenConsumed ( ref : StateRef ) : <ERROR CLASS> < Update >
Provide a Future for when a StateRef is consumed, which can be very useful in building tests.
+
+
+
+
+Extension Functions
+
+Inheritors
+
+
+
+
+NodeVaultService
+
+class NodeVaultService : SingletonSerializeAsToken , VaultService
Currently, the node vault service is a very simple RDBMS backed implementation. It will change significantly when
+we add further functionality as the design for the vault and vault service matures.
+
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.node.services/-vault-service/linear-heads-of-type_.html b/docs/build/html/api/net.corda.core.node.services/-vault-service/linear-heads-of-type_.html
new file mode 100644
index 0000000000..a12f26d8fb
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.node.services/-vault-service/linear-heads-of-type_.html
@@ -0,0 +1,16 @@
+
+
+VaultService.linearHeadsOfType_ -
+
+
+
+net.corda.core.node.services / VaultService / linearHeadsOfType_
+
+linearHeadsOfType_
+
+open fun < T : LinearState > linearHeadsOfType_ ( stateType : Class < T > ) : Map < UniqueIdentifier , StateAndRef < T > >
+Returns the linearHeads only when the type of the state would be considered an instanceof the given type.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.node.services/-vault-service/linear-heads.html b/docs/build/html/api/net.corda.core.node.services/-vault-service/linear-heads.html
new file mode 100644
index 0000000000..027962f0d7
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.node.services/-vault-service/linear-heads.html
@@ -0,0 +1,16 @@
+
+
+VaultService.linearHeads -
+
+
+
+net.corda.core.node.services / VaultService / linearHeads
+
+linearHeads
+
+abstract val linearHeads : Map < UniqueIdentifier , StateAndRef < LinearState > >
+Returns a snapshot of the heads of LinearStates.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.node.services/-vault-service/notify-all.html b/docs/build/html/api/net.corda.core.node.services/-vault-service/notify-all.html
new file mode 100644
index 0000000000..9f0dee09d7
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.node.services/-vault-service/notify-all.html
@@ -0,0 +1,21 @@
+
+
+VaultService.notifyAll -
+
+
+
+net.corda.core.node.services / VaultService / notifyAll
+
+notifyAll
+
+abstract fun notifyAll ( txns : Iterable < WireTransaction > ) : Vault
+Possibly update the vault by marking as spent states that these transactions consume, and adding any relevant
+new states that they create. You should only insert transactions that have been successfully verified here
+Returns the new vault that resulted from applying the transactions (note: it may quickly become out of date).
+TODO: Consider if theres a good way to enforce the must-be-verified requirement in the type system.
+
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.node.services/-vault-service/notify.html b/docs/build/html/api/net.corda.core.node.services/-vault-service/notify.html
new file mode 100644
index 0000000000..da23830ff6
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.node.services/-vault-service/notify.html
@@ -0,0 +1,16 @@
+
+
+VaultService.notify -
+
+
+
+net.corda.core.node.services / VaultService / notify
+
+notify
+
+open fun notify ( tx : WireTransaction ) : Vault
+Same as notifyAll but with a single transaction.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.node.services/-vault-service/states-for-refs.html b/docs/build/html/api/net.corda.core.node.services/-vault-service/states-for-refs.html
new file mode 100644
index 0000000000..91f8a03888
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.node.services/-vault-service/states-for-refs.html
@@ -0,0 +1,15 @@
+
+
+VaultService.statesForRefs -
+
+
+
+net.corda.core.node.services / VaultService / statesForRefs
+
+statesForRefs
+
+open fun statesForRefs ( refs : List < StateRef > ) : Map < StateRef , TransactionState < * > ? >
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.node.services/-vault-service/track.html b/docs/build/html/api/net.corda.core.node.services/-vault-service/track.html
new file mode 100644
index 0000000000..8d26243f88
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.node.services/-vault-service/track.html
@@ -0,0 +1,17 @@
+
+
+VaultService.track -
+
+
+
+net.corda.core.node.services / VaultService / track
+
+track
+
+abstract fun track ( ) : <ERROR CLASS> < Vault , <ERROR CLASS> < Update > >
+Atomically get the current vault and a stream of updates. Note that the Observable buffers updates until the
+first subscriber is registered so as to avoid racing with early updates.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.node.services/-vault-service/updates.html b/docs/build/html/api/net.corda.core.node.services/-vault-service/updates.html
new file mode 100644
index 0000000000..966df3c4a8
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.node.services/-vault-service/updates.html
@@ -0,0 +1,17 @@
+
+
+VaultService.updates -
+
+
+
+net.corda.core.node.services / VaultService / updates
+
+updates
+
+abstract val updates : <ERROR CLASS> < Update >
+Get a synchronous Observable of updates. When observations are pushed to the Observer, the Vault will already incorporate
+the update.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.node.services/-vault-service/when-consumed.html b/docs/build/html/api/net.corda.core.node.services/-vault-service/when-consumed.html
new file mode 100644
index 0000000000..ecc2379ecc
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.node.services/-vault-service/when-consumed.html
@@ -0,0 +1,16 @@
+
+
+VaultService.whenConsumed -
+
+
+
+net.corda.core.node.services / VaultService / whenConsumed
+
+whenConsumed
+
+open fun whenConsumed ( ref : StateRef ) : <ERROR CLASS> < Update >
+Provide a Future for when a StateRef is consumed, which can be very useful in building tests.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.node.services/-vault/-init-.html b/docs/build/html/api/net.corda.core.node.services/-vault/-init-.html
new file mode 100644
index 0000000000..60c5b46f76
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.node.services/-vault/-init-.html
@@ -0,0 +1,24 @@
+
+
+Vault. -
+
+
+
+net.corda.core.node.services / Vault / <init>
+
+<init>
+Vault ( states : Iterable < StateAndRef < ContractState > > , transactionNotes : Map < SecureHash , Set < String > > = emptyMap())
+A vault (name may be temporary) wraps a set of states that are useful for us to keep track of, for instance,
+because we own them. This class represents an immutable, stable state of a vault: it is guaranteed not to
+change out from underneath you, even though the canonical currently-best-known vault may change as we learn
+about new transactions from our peers and generate new transactions that consume states ourselves.
+This abstract class has no references to Cash contracts.
+states Holds the states that are active and relevant .
+Active means they havent been consumed yet (or we dont know about it).
+Relevant means they contain at least one of our pubkeys.
+
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.node.services/-vault/-no-update.html b/docs/build/html/api/net.corda.core.node.services/-vault/-no-update.html
new file mode 100644
index 0000000000..1083410445
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.node.services/-vault/-no-update.html
@@ -0,0 +1,15 @@
+
+
+Vault.NoUpdate -
+
+
+
+net.corda.core.node.services / Vault / NoUpdate
+
+NoUpdate
+
+val NoUpdate : Update
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.node.services/-vault/-update/-init-.html b/docs/build/html/api/net.corda.core.node.services/-vault/-update/-init-.html
new file mode 100644
index 0000000000..770d787349
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.node.services/-vault/-update/-init-.html
@@ -0,0 +1,21 @@
+
+
+Vault.Update. -
+
+
+
+net.corda.core.node.services / Vault / Update / <init>
+
+<init>
+Update ( consumed : Set < StateRef > , produced : Set < StateAndRef < ContractState > > )
+Represents an update observed by the vault that will be notified to observers. Include the StateRef s of
+transaction outputs that were consumed (inputs) and the ContractState s produced (outputs) to/by the transaction
+or transactions observed and the vault.
+If the vault observes multiple transactions simultaneously, where some transactions consume the outputs of some of the
+other transactions observed, then the changes are observed "net" of those.
+
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.node.services/-vault/-update/consumed.html b/docs/build/html/api/net.corda.core.node.services/-vault/-update/consumed.html
new file mode 100644
index 0000000000..cd0ad3b743
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.node.services/-vault/-update/consumed.html
@@ -0,0 +1,15 @@
+
+
+Vault.Update.consumed -
+
+
+
+net.corda.core.node.services / Vault / Update / consumed
+
+consumed
+
+val consumed : Set < StateRef >
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.node.services/-vault/-update/index.html b/docs/build/html/api/net.corda.core.node.services/-vault/-update/index.html
new file mode 100644
index 0000000000..60cef7cae5
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.node.services/-vault/-update/index.html
@@ -0,0 +1,71 @@
+
+
+Vault.Update -
+
+
+
+net.corda.core.node.services / Vault / Update
+
+Update
+data class Update
+Represents an update observed by the vault that will be notified to observers. Include the StateRef s of
+transaction outputs that were consumed (inputs) and the ContractState s produced (outputs) to/by the transaction
+or transactions observed and the vault.
+If the vault observes multiple transactions simultaneously, where some transactions consume the outputs of some of the
+other transactions observed, then the changes are observed "net" of those.
+
+
+
+
+Constructors
+
+
+
+
+<init>
+
+Update ( consumed : Set < StateRef > , produced : Set < StateAndRef < ContractState > > )
Represents an update observed by the vault that will be notified to observers. Include the StateRef s of
+transaction outputs that were consumed (inputs) and the ContractState s produced (outputs) to/by the transaction
+or transactions observed and the vault.
+
+
+
+
+Properties
+
+Functions
+
+
+
+
+plus
+
+operator fun plus ( rhs : Update ) : Update
Combine two updates into a single update with the combined inputs and outputs of the two updates but net
+any outputs of the left-hand-side (this) that are consumed by the inputs of the right-hand-side (rhs).
+
+
+
+
+toString
+
+fun toString ( ) : String
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.node.services/-vault/-update/plus.html b/docs/build/html/api/net.corda.core.node.services/-vault/-update/plus.html
new file mode 100644
index 0000000000..86e5bd5c0b
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.node.services/-vault/-update/plus.html
@@ -0,0 +1,20 @@
+
+
+Vault.Update.plus -
+
+
+
+net.corda.core.node.services / Vault / Update / plus
+
+plus
+
+operator fun plus ( rhs : Update ) : Update
+Combine two updates into a single update with the combined inputs and outputs of the two updates but net
+any outputs of the left-hand-side (this) that are consumed by the inputs of the right-hand-side (rhs).
+i.e. the net effect in terms of state live-ness of receiving the combined update is the same as receiving this followed by rhs.
+
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.node.services/-vault/-update/produced.html b/docs/build/html/api/net.corda.core.node.services/-vault/-update/produced.html
new file mode 100644
index 0000000000..e95a0fdf7e
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.node.services/-vault/-update/produced.html
@@ -0,0 +1,15 @@
+
+
+Vault.Update.produced -
+
+
+
+net.corda.core.node.services / Vault / Update / produced
+
+produced
+
+val produced : Set < StateAndRef < ContractState > >
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.node.services/-vault/-update/to-string.html b/docs/build/html/api/net.corda.core.node.services/-vault/-update/to-string.html
new file mode 100644
index 0000000000..de75ed30da
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.node.services/-vault/-update/to-string.html
@@ -0,0 +1,15 @@
+
+
+Vault.Update.toString -
+
+
+
+net.corda.core.node.services / Vault / Update / toString
+
+toString
+
+fun toString ( ) : String
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.node.services/-vault/index.html b/docs/build/html/api/net.corda.core.node.services/-vault/index.html
new file mode 100644
index 0000000000..6f451a5245
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.node.services/-vault/index.html
@@ -0,0 +1,92 @@
+
+
+Vault -
+
+
+
+net.corda.core.node.services / Vault
+
+Vault
+class Vault
+A vault (name may be temporary) wraps a set of states that are useful for us to keep track of, for instance,
+because we own them. This class represents an immutable, stable state of a vault: it is guaranteed not to
+change out from underneath you, even though the canonical currently-best-known vault may change as we learn
+about new transactions from our peers and generate new transactions that consume states ourselves.
+This abstract class has no references to Cash contracts.
+states Holds the states that are active and relevant .
+Active means they havent been consumed yet (or we dont know about it).
+Relevant means they contain at least one of our pubkeys.
+
+
+
+
+Types
+
+
+
+
+Update
+
+data class Update
Represents an update observed by the vault that will be notified to observers. Include the StateRef s of
+transaction outputs that were consumed (inputs) and the ContractState s produced (outputs) to/by the transaction
+or transactions observed and the vault.
+
+
+
+
+Constructors
+
+
+
+
+<init>
+
+Vault ( states : Iterable < StateAndRef < ContractState > > , transactionNotes : Map < SecureHash , Set < String > > = emptyMap())
A vault (name may be temporary) wraps a set of states that are useful for us to keep track of, for instance,
+because we own them. This class represents an immutable, stable state of a vault: it is guaranteed not to
+change out from underneath you, even though the canonical currently-best-known vault may change as we learn
+about new transactions from our peers and generate new transactions that consume states ourselves.
+
+
+
+
+Properties
+
+Functions
+
+Companion Object Properties
+
+
+
diff --git a/docs/build/html/api/net.corda.core.node.services/-vault/states-of-type.html b/docs/build/html/api/net.corda.core.node.services/-vault/states-of-type.html
new file mode 100644
index 0000000000..82a38681fb
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.node.services/-vault/states-of-type.html
@@ -0,0 +1,15 @@
+
+
+Vault.statesOfType -
+
+
+
+net.corda.core.node.services / Vault / statesOfType
+
+statesOfType
+
+inline fun < reified T : ContractState > statesOfType ( ) : List < StateAndRef < T > >
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.node.services/-vault/states.html b/docs/build/html/api/net.corda.core.node.services/-vault/states.html
new file mode 100644
index 0000000000..58306e7e0c
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.node.services/-vault/states.html
@@ -0,0 +1,15 @@
+
+
+Vault.states -
+
+
+
+net.corda.core.node.services / Vault / states
+
+states
+
+val states : Iterable < StateAndRef < ContractState > >
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.node.services/-vault/transaction-notes.html b/docs/build/html/api/net.corda.core.node.services/-vault/transaction-notes.html
new file mode 100644
index 0000000000..7b586b4ffd
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.node.services/-vault/transaction-notes.html
@@ -0,0 +1,15 @@
+
+
+Vault.transactionNotes -
+
+
+
+net.corda.core.node.services / Vault / transactionNotes
+
+transactionNotes
+
+val transactionNotes : Map < SecureHash , Set < String > >
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.node.services/deals-with.html b/docs/build/html/api/net.corda.core.node.services/deals-with.html
new file mode 100644
index 0000000000..0d56594ff3
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.node.services/deals-with.html
@@ -0,0 +1,15 @@
+
+
+dealsWith -
+
+
+
+net.corda.core.node.services / dealsWith
+
+dealsWith
+
+inline fun < reified T : DealState > VaultService . dealsWith ( party : Party ) : <ERROR CLASS>
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.node.services/index.html b/docs/build/html/api/net.corda.core.node.services/index.html
new file mode 100644
index 0000000000..a59c2e59a6
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.node.services/index.html
@@ -0,0 +1,211 @@
+
+
+net.corda.core.node.services -
+
+
+
+net.corda.core.node.services
+
+Package net.corda.core.node.services
+Types
+
+
+
+
+AttachmentStorage
+
+interface AttachmentStorage
An attachment store records potentially large binary objects, identified by their hash.
+
+
+
+
+IdentityService
+
+interface IdentityService
An identity service maintains an bidirectional map of Party s to their associated public keys and thus supports
+lookup of a party given its key. This is obviously very incomplete and does not reflect everything a real identity
+service would provide.
+
+
+
+
+KeyManagementService
+
+interface KeyManagementService
The KMS is responsible for storing and using private keys to sign things. An implementation of this may, for example,
+call out to a hardware security module that enforces various auditing and frequency-of-use requirements.
+
+
+
+
+NetworkMapCache
+
+interface NetworkMapCache
A network map contains lists of nodes on the network along with information about their identity keys, services
+they provide and host names or IP addresses where they can be connected to. The cache wraps around a map fetched
+from an authoritative service, and adds easy lookup of the data stored within it. Generally it would be initialised
+with a specified network map service, which it fetches data from and then subscribes to updates of.
+
+
+
+
+ReadOnlyTransactionStorage
+
+interface ReadOnlyTransactionStorage
Thread-safe storage of transactions.
+
+
+
+
+SchedulerService
+
+interface SchedulerService
Provides access to schedule activity at some point in time. This interface might well be expanded to
+increase the feature set in the future.
+
+
+
+
+ServiceInfo
+
+data class ServiceInfo
A container for additional information for an advertised service.
+
+
+
+
+ServiceType
+
+sealed class ServiceType
Identifier for service types a node can expose over the network to other peers. These types are placed into network
+map advertisements. Services that are purely local and are not providing functionality to other parts of the network
+dont need a declared service type.
+
+
+
+
+StateMachineRecordedTransactionMappingStorage
+
+interface StateMachineRecordedTransactionMappingStorage
This is the interface to storage storing state machine -> recorded tx mappings. Any time a transaction is recorded
+during a protocol run addMapping should be called.
+
+
+
+
+StateMachineTransactionMapping
+
+data class StateMachineTransactionMapping
+
+
+
+StorageService
+
+interface StorageService
A sketch of an interface to a simple key/value storage system. Intended for persistence of simple blobs like
+transactions, serialised protocol state machines and so on. Again, this isnt intended to imply lack of SQL or
+anything like that, this interface is only big enough to support the prototyping work.
+
+
+
+
+TimestampChecker
+
+class TimestampChecker
Checks if the given timestamp falls within the allowed tolerance interval.
+
+
+
+
+TransactionStorage
+
+interface TransactionStorage : ReadOnlyTransactionStorage
Thread-safe storage of transactions.
+
+
+
+
+TxWritableStorageService
+
+interface TxWritableStorageService : StorageService
Storage service, with extensions to allow validated transactions to be added to. For use only within ServiceHub .
+
+
+
+
+UniquenessProvider
+
+interface UniquenessProvider
A service that records input states of the given transaction and provides conflict information
+if any of the inputs have already been used in another transaction.
+
+
+
+
+Vault
+
+class Vault
A vault (name may be temporary) wraps a set of states that are useful for us to keep track of, for instance,
+because we own them. This class represents an immutable, stable state of a vault: it is guaranteed not to
+change out from underneath you, even though the canonical currently-best-known vault may change as we learn
+about new transactions from our peers and generate new transactions that consume states ourselves.
+
+
+
+
+VaultService
+
+interface VaultService
A VaultService is responsible for securely and safely persisting the current state of a vault to storage. The
+vault service vends immutable snapshots of the current vault for working with: if you build a transaction based
+on a vault that isnt current, be aware that it may end up being invalid if the states that were used have been
+consumed by someone else first
+
+
+
+
+Exceptions
+
+Extensions for External Classes
+
+Properties
+
+
+
+
+DEFAULT_SESSION_ID
+
+val DEFAULT_SESSION_ID : Long
Session ID to use for services listening for the first message in a session (before a
+specific session ID has been established).
+
+
+
+
+Functions
+
+
+
diff --git a/docs/build/html/api/net.corda.core.node.services/kotlin.collections.-iterable/contains-type.html b/docs/build/html/api/net.corda.core.node.services/kotlin.collections.-iterable/contains-type.html
new file mode 100644
index 0000000000..c0279d229a
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.node.services/kotlin.collections.-iterable/contains-type.html
@@ -0,0 +1,15 @@
+
+
+containsType -
+
+
+
+net.corda.core.node.services / kotlin.collections.Iterable / containsType
+
+containsType
+
+fun Iterable < ServiceInfo > . containsType ( type : ServiceType ) : <ERROR CLASS>
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.node.services/kotlin.collections.-iterable/index.html b/docs/build/html/api/net.corda.core.node.services/kotlin.collections.-iterable/index.html
new file mode 100644
index 0000000000..4c485bcdf7
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.node.services/kotlin.collections.-iterable/index.html
@@ -0,0 +1,21 @@
+
+
+net.corda.core.node.services.kotlin.collections.Iterable -
+
+
+
+net.corda.core.node.services / kotlin.collections.Iterable
+
+Extensions for kotlin.collections.Iterable
+
+
+
diff --git a/docs/build/html/api/net.corda.core.node.services/linear-heads-of-type.html b/docs/build/html/api/net.corda.core.node.services/linear-heads-of-type.html
new file mode 100644
index 0000000000..1fada0e6f9
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.node.services/linear-heads-of-type.html
@@ -0,0 +1,15 @@
+
+
+linearHeadsOfType -
+
+
+
+net.corda.core.node.services / linearHeadsOfType
+
+linearHeadsOfType
+
+inline fun < reified T : LinearState > VaultService . linearHeadsOfType ( ) : <ERROR CLASS>
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.node/-attachments-class-loader/-init-.html b/docs/build/html/api/net.corda.core.node/-attachments-class-loader/-init-.html
new file mode 100644
index 0000000000..984069d6da
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.node/-attachments-class-loader/-init-.html
@@ -0,0 +1,18 @@
+
+
+AttachmentsClassLoader. -
+
+
+
+net.corda.core.node / AttachmentsClassLoader / <init>
+
+<init>
+AttachmentsClassLoader ( attachments : List < Attachment > , parent : ClassLoader = ClassLoader.getSystemClassLoader())
+A custom ClassLoader that knows how to load classes from a set of attachments. The attachments themselves only
+need to provide JAR streams, and so could be fetched from a database, local disk, etc. Constructing an
+AttachmentsClassLoader is somewhat expensive, as every attachment is scanned to ensure that there are no overlapping
+file paths.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.node/-attachments-class-loader/-overlapping-attachments/-init-.html b/docs/build/html/api/net.corda.core.node/-attachments-class-loader/-overlapping-attachments/-init-.html
new file mode 100644
index 0000000000..0f81a274f6
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.node/-attachments-class-loader/-overlapping-attachments/-init-.html
@@ -0,0 +1,14 @@
+
+
+AttachmentsClassLoader.OverlappingAttachments. -
+
+
+
+net.corda.core.node / AttachmentsClassLoader / OverlappingAttachments / <init>
+
+<init>
+OverlappingAttachments ( path : String )
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.node/-attachments-class-loader/-overlapping-attachments/index.html b/docs/build/html/api/net.corda.core.node/-attachments-class-loader/-overlapping-attachments/index.html
new file mode 100644
index 0000000000..9618cfecd1
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.node/-attachments-class-loader/-overlapping-attachments/index.html
@@ -0,0 +1,47 @@
+
+
+AttachmentsClassLoader.OverlappingAttachments -
+
+
+
+net.corda.core.node / AttachmentsClassLoader / OverlappingAttachments
+
+OverlappingAttachments
+class OverlappingAttachments : Exception
+
+
+Constructors
+
+
+
+
+<init>
+
+OverlappingAttachments ( path : String )
+
+
+
+Properties
+
+
+
+
+path
+
+val path : String
+
+
+
+Functions
+
+
+
+
+toString
+
+fun toString ( ) : String
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.node/-attachments-class-loader/-overlapping-attachments/path.html b/docs/build/html/api/net.corda.core.node/-attachments-class-loader/-overlapping-attachments/path.html
new file mode 100644
index 0000000000..7a8c449435
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.node/-attachments-class-loader/-overlapping-attachments/path.html
@@ -0,0 +1,15 @@
+
+
+AttachmentsClassLoader.OverlappingAttachments.path -
+
+
+
+net.corda.core.node / AttachmentsClassLoader / OverlappingAttachments / path
+
+path
+
+val path : String
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.node/-attachments-class-loader/-overlapping-attachments/to-string.html b/docs/build/html/api/net.corda.core.node/-attachments-class-loader/-overlapping-attachments/to-string.html
new file mode 100644
index 0000000000..bd8711e147
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.node/-attachments-class-loader/-overlapping-attachments/to-string.html
@@ -0,0 +1,15 @@
+
+
+AttachmentsClassLoader.OverlappingAttachments.toString -
+
+
+
+net.corda.core.node / AttachmentsClassLoader / OverlappingAttachments / toString
+
+toString
+
+fun toString ( ) : String
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.node/-attachments-class-loader/find-class.html b/docs/build/html/api/net.corda.core.node/-attachments-class-loader/find-class.html
new file mode 100644
index 0000000000..ce6f50134e
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.node/-attachments-class-loader/find-class.html
@@ -0,0 +1,15 @@
+
+
+AttachmentsClassLoader.findClass -
+
+
+
+net.corda.core.node / AttachmentsClassLoader / findClass
+
+findClass
+
+protected fun findClass ( name : String ) : Class < * >
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.node/-attachments-class-loader/find-resource.html b/docs/build/html/api/net.corda.core.node/-attachments-class-loader/find-resource.html
new file mode 100644
index 0000000000..def0698c4d
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.node/-attachments-class-loader/find-resource.html
@@ -0,0 +1,15 @@
+
+
+AttachmentsClassLoader.findResource -
+
+
+
+net.corda.core.node / AttachmentsClassLoader / findResource
+
+findResource
+
+protected fun findResource ( name : String ) : URL ?
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.node/-attachments-class-loader/get-resource-as-stream.html b/docs/build/html/api/net.corda.core.node/-attachments-class-loader/get-resource-as-stream.html
new file mode 100644
index 0000000000..aa822f2098
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.node/-attachments-class-loader/get-resource-as-stream.html
@@ -0,0 +1,15 @@
+
+
+AttachmentsClassLoader.getResourceAsStream -
+
+
+
+net.corda.core.node / AttachmentsClassLoader / getResourceAsStream
+
+getResourceAsStream
+
+fun getResourceAsStream ( name : String ) : InputStream ?
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.node/-attachments-class-loader/index.html b/docs/build/html/api/net.corda.core.node/-attachments-class-loader/index.html
new file mode 100644
index 0000000000..2250f960c6
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.node/-attachments-class-loader/index.html
@@ -0,0 +1,67 @@
+
+
+AttachmentsClassLoader -
+
+
+
+net.corda.core.node / AttachmentsClassLoader
+
+AttachmentsClassLoader
+class AttachmentsClassLoader : SecureClassLoader
+A custom ClassLoader that knows how to load classes from a set of attachments. The attachments themselves only
+need to provide JAR streams, and so could be fetched from a database, local disk, etc. Constructing an
+AttachmentsClassLoader is somewhat expensive, as every attachment is scanned to ensure that there are no overlapping
+file paths.
+
+
+Exceptions
+
+Constructors
+
+
+
+
+<init>
+
+AttachmentsClassLoader ( attachments : List < Attachment > , parent : ClassLoader = ClassLoader.getSystemClassLoader())
A custom ClassLoader that knows how to load classes from a set of attachments. The attachments themselves only
+need to provide JAR streams, and so could be fetched from a database, local disk, etc. Constructing an
+AttachmentsClassLoader is somewhat expensive, as every attachment is scanned to ensure that there are no overlapping
+file paths.
+
+
+
+
+Functions
+
+
+
diff --git a/docs/build/html/api/net.corda.core.node/-city-database/get.html b/docs/build/html/api/net.corda.core.node/-city-database/get.html
new file mode 100644
index 0000000000..982292cce4
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.node/-city-database/get.html
@@ -0,0 +1,15 @@
+
+
+CityDatabase.get -
+
+
+
+net.corda.core.node / CityDatabase / get
+
+get
+
+operator fun get ( name : String ) : PhysicalLocation ?
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.node/-city-database/index.html b/docs/build/html/api/net.corda.core.node/-city-database/index.html
new file mode 100644
index 0000000000..bb20fdcae1
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.node/-city-database/index.html
@@ -0,0 +1,26 @@
+
+
+CityDatabase -
+
+
+
+net.corda.core.node / CityDatabase
+
+CityDatabase
+object CityDatabase
+A simple lookup table of city names to their coordinates. Lookups are case insensitive.
+
+
+Functions
+
+
+
diff --git a/docs/build/html/api/net.corda.core.node/-corda-plugin-registry/-init-.html b/docs/build/html/api/net.corda.core.node/-corda-plugin-registry/-init-.html
new file mode 100644
index 0000000000..337da04f7c
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.node/-corda-plugin-registry/-init-.html
@@ -0,0 +1,16 @@
+
+
+CordaPluginRegistry. -
+
+
+
+net.corda.core.node / CordaPluginRegistry / <init>
+
+<init>
+CordaPluginRegistry ( )
+Implement this interface on a class advertised in a META-INF/services/net.corda.core.node.CordaPluginRegistry file
+to extend a Corda node with additional application services.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.node/-corda-plugin-registry/index.html b/docs/build/html/api/net.corda.core.node/-corda-plugin-registry/index.html
new file mode 100644
index 0000000000..be3601da52
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.node/-corda-plugin-registry/index.html
@@ -0,0 +1,90 @@
+
+
+CordaPluginRegistry -
+
+
+
+net.corda.core.node / CordaPluginRegistry
+
+CordaPluginRegistry
+abstract class CordaPluginRegistry
+Implement this interface on a class advertised in a META-INF/services/net.corda.core.node.CordaPluginRegistry file
+to extend a Corda node with additional application services.
+
+
+Constructors
+
+
+
+
+<init>
+
+CordaPluginRegistry ( )
Implement this interface on a class advertised in a META-INF/services/net.corda.core.node.CordaPluginRegistry file
+to extend a Corda node with additional application services.
+
+
+
+
+Properties
+
+
+
+
+requiredProtocols
+
+open val requiredProtocols : Map < String , Set < String > >
A Map with an entry for each consumed protocol used by the webAPIs.
+The key of each map entry should contain the ProtocolLogic class name.
+The associated map values are the union of all concrete class names passed to the protocol constructor.
+Standard java.lang.* and kotlin.* types do not need to be included explicitly.
+This is used to extend the white listed protocols that can be initiated from the ServiceHub invokeProtocolAsync method.
+
+
+
+
+servicePlugins
+
+open val servicePlugins : List < Class < * > >
List of additional long lived services to be hosted within the node.
+They are expected to have a single parameter constructor that takes a PluginServiceHub as input.
+The PluginServiceHub will be fully constructed before the plugin service is created and will
+allow access to the protocol factory and protocol initiation entry points there.
+
+
+
+
+staticServeDirs
+
+open val staticServeDirs : Map < String , String >
Map of static serving endpoints to the matching resource directory. All endpoints will be prefixed with "/web" and postfixed with "\*.
+Resource directories can be either on disk directories (especially when debugging) in the form "a/b/c". Serving from a JAR can
+be specified with: javaClass.getResource("<folder-in-jar>").toExternalForm()
+
+
+
+
+webApis
+
+open val webApis : List < Class < * > >
List of JAX-RS classes inside the contract jar. They are expected to have a single parameter constructor that takes a ServiceHub as input.
+These are listed as Class<*>, because in the future they will be instantiated inside a ClassLoader so that
+Cordapp code can be loaded dynamically.
+
+
+
+
+Inheritors
+
+
+
+
+Plugin
+
+class Plugin : CordaPluginRegistry
+
+
+
+Plugin
+
+class Plugin : CordaPluginRegistry
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.node/-corda-plugin-registry/required-protocols.html b/docs/build/html/api/net.corda.core.node/-corda-plugin-registry/required-protocols.html
new file mode 100644
index 0000000000..e12c10b45a
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.node/-corda-plugin-registry/required-protocols.html
@@ -0,0 +1,20 @@
+
+
+CordaPluginRegistry.requiredProtocols -
+
+
+
+net.corda.core.node / CordaPluginRegistry / requiredProtocols
+
+requiredProtocols
+
+open val requiredProtocols : Map < String , Set < String > >
+A Map with an entry for each consumed protocol used by the webAPIs.
+The key of each map entry should contain the ProtocolLogic class name.
+The associated map values are the union of all concrete class names passed to the protocol constructor.
+Standard java.lang.* and kotlin.* types do not need to be included explicitly.
+This is used to extend the white listed protocols that can be initiated from the ServiceHub invokeProtocolAsync method.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.node/-corda-plugin-registry/service-plugins.html b/docs/build/html/api/net.corda.core.node/-corda-plugin-registry/service-plugins.html
new file mode 100644
index 0000000000..0110a94db6
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.node/-corda-plugin-registry/service-plugins.html
@@ -0,0 +1,19 @@
+
+
+CordaPluginRegistry.servicePlugins -
+
+
+
+net.corda.core.node / CordaPluginRegistry / servicePlugins
+
+servicePlugins
+
+open val servicePlugins : List < Class < * > >
+List of additional long lived services to be hosted within the node.
+They are expected to have a single parameter constructor that takes a PluginServiceHub as input.
+The PluginServiceHub will be fully constructed before the plugin service is created and will
+allow access to the protocol factory and protocol initiation entry points there.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.node/-corda-plugin-registry/static-serve-dirs.html b/docs/build/html/api/net.corda.core.node/-corda-plugin-registry/static-serve-dirs.html
new file mode 100644
index 0000000000..7c3f5b536f
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.node/-corda-plugin-registry/static-serve-dirs.html
@@ -0,0 +1,18 @@
+
+
+CordaPluginRegistry.staticServeDirs -
+
+
+
+net.corda.core.node / CordaPluginRegistry / staticServeDirs
+
+staticServeDirs
+
+open val staticServeDirs : Map < String , String >
+Map of static serving endpoints to the matching resource directory. All endpoints will be prefixed with "/web" and postfixed with "\*.
+Resource directories can be either on disk directories (especially when debugging) in the form "a/b/c". Serving from a JAR can
+be specified with: javaClass.getResource("<folder-in-jar>").toExternalForm()
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.node/-corda-plugin-registry/web-apis.html b/docs/build/html/api/net.corda.core.node/-corda-plugin-registry/web-apis.html
new file mode 100644
index 0000000000..99562f54f1
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.node/-corda-plugin-registry/web-apis.html
@@ -0,0 +1,18 @@
+
+
+CordaPluginRegistry.webApis -
+
+
+
+net.corda.core.node / CordaPluginRegistry / webApis
+
+webApis
+
+open val webApis : List < Class < * > >
+List of JAX-RS classes inside the contract jar. They are expected to have a single parameter constructor that takes a ServiceHub as input.
+These are listed as Class<*>, because in the future they will be instantiated inside a ClassLoader so that
+Cordapp code can be loaded dynamically.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.node/-node-info/-init-.html b/docs/build/html/api/net.corda.core.node/-node-info/-init-.html
new file mode 100644
index 0000000000..acf1c61b69
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.node/-node-info/-init-.html
@@ -0,0 +1,15 @@
+
+
+NodeInfo. -
+
+
+
+net.corda.core.node / NodeInfo / <init>
+
+<init>
+NodeInfo ( address : SingleMessageRecipient , legalIdentity : Party , advertisedServices : List < ServiceEntry > = emptyList(), physicalLocation : PhysicalLocation ? = null)
+Info about a network node that acts on behalf of some form of contract party.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.node/-node-info/address.html b/docs/build/html/api/net.corda.core.node/-node-info/address.html
new file mode 100644
index 0000000000..50c4fe8fa3
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.node/-node-info/address.html
@@ -0,0 +1,15 @@
+
+
+NodeInfo.address -
+
+
+
+net.corda.core.node / NodeInfo / address
+
+address
+
+val address : SingleMessageRecipient
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.node/-node-info/advertised-services.html b/docs/build/html/api/net.corda.core.node/-node-info/advertised-services.html
new file mode 100644
index 0000000000..cb628617ee
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.node/-node-info/advertised-services.html
@@ -0,0 +1,15 @@
+
+
+NodeInfo.advertisedServices -
+
+
+
+net.corda.core.node / NodeInfo / advertisedServices
+
+advertisedServices
+
+var advertisedServices : List < ServiceEntry >
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.node/-node-info/index.html b/docs/build/html/api/net.corda.core.node/-node-info/index.html
new file mode 100644
index 0000000000..45240f14ba
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.node/-node-info/index.html
@@ -0,0 +1,73 @@
+
+
+NodeInfo -
+
+
+
+net.corda.core.node / NodeInfo
+
+NodeInfo
+data class NodeInfo
+Info about a network node that acts on behalf of some form of contract party.
+
+
+Constructors
+
+Properties
+
+Functions
+
+
+
diff --git a/docs/build/html/api/net.corda.core.node/-node-info/legal-identity.html b/docs/build/html/api/net.corda.core.node/-node-info/legal-identity.html
new file mode 100644
index 0000000000..b052895622
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.node/-node-info/legal-identity.html
@@ -0,0 +1,15 @@
+
+
+NodeInfo.legalIdentity -
+
+
+
+net.corda.core.node / NodeInfo / legalIdentity
+
+legalIdentity
+
+val legalIdentity : Party
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.node/-node-info/notary-identity.html b/docs/build/html/api/net.corda.core.node/-node-info/notary-identity.html
new file mode 100644
index 0000000000..be377fc971
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.node/-node-info/notary-identity.html
@@ -0,0 +1,15 @@
+
+
+NodeInfo.notaryIdentity -
+
+
+
+net.corda.core.node / NodeInfo / notaryIdentity
+
+notaryIdentity
+
+val notaryIdentity : Party
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.node/-node-info/physical-location.html b/docs/build/html/api/net.corda.core.node/-node-info/physical-location.html
new file mode 100644
index 0000000000..59633c917a
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.node/-node-info/physical-location.html
@@ -0,0 +1,15 @@
+
+
+NodeInfo.physicalLocation -
+
+
+
+net.corda.core.node / NodeInfo / physicalLocation
+
+physicalLocation
+
+val physicalLocation : PhysicalLocation ?
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.node/-node-info/service-identities.html b/docs/build/html/api/net.corda.core.node/-node-info/service-identities.html
new file mode 100644
index 0000000000..c3e56c1b0b
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.node/-node-info/service-identities.html
@@ -0,0 +1,15 @@
+
+
+NodeInfo.serviceIdentities -
+
+
+
+net.corda.core.node / NodeInfo / serviceIdentities
+
+serviceIdentities
+
+fun serviceIdentities ( type : ServiceType ) : List < Party >
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.node/-physical-location/-init-.html b/docs/build/html/api/net.corda.core.node/-physical-location/-init-.html
new file mode 100644
index 0000000000..c55c171054
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.node/-physical-location/-init-.html
@@ -0,0 +1,16 @@
+
+
+PhysicalLocation. -
+
+
+
+net.corda.core.node / PhysicalLocation / <init>
+
+<init>
+PhysicalLocation ( coordinate : WorldCoordinate , description : String )
+A labelled WorldCoordinate , where the label is human meaningful. For example, the name of the nearest city.
+Labels should not refer to non-landmarks, for example, they should not contain the names of organisations.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.node/-physical-location/coordinate.html b/docs/build/html/api/net.corda.core.node/-physical-location/coordinate.html
new file mode 100644
index 0000000000..dd6040d012
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.node/-physical-location/coordinate.html
@@ -0,0 +1,15 @@
+
+
+PhysicalLocation.coordinate -
+
+
+
+net.corda.core.node / PhysicalLocation / coordinate
+
+coordinate
+
+val coordinate : WorldCoordinate
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.node/-physical-location/description.html b/docs/build/html/api/net.corda.core.node/-physical-location/description.html
new file mode 100644
index 0000000000..5db316e2e2
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.node/-physical-location/description.html
@@ -0,0 +1,15 @@
+
+
+PhysicalLocation.description -
+
+
+
+net.corda.core.node / PhysicalLocation / description
+
+description
+
+val description : String
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.node/-physical-location/index.html b/docs/build/html/api/net.corda.core.node/-physical-location/index.html
new file mode 100644
index 0000000000..842498b93c
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.node/-physical-location/index.html
@@ -0,0 +1,46 @@
+
+
+PhysicalLocation -
+
+
+
+net.corda.core.node / PhysicalLocation
+
+PhysicalLocation
+data class PhysicalLocation
+A labelled WorldCoordinate , where the label is human meaningful. For example, the name of the nearest city.
+Labels should not refer to non-landmarks, for example, they should not contain the names of organisations.
+
+
+Constructors
+
+
+
+
+<init>
+
+PhysicalLocation ( coordinate : WorldCoordinate , description : String )
A labelled WorldCoordinate , where the label is human meaningful. For example, the name of the nearest city.
+Labels should not refer to non-landmarks, for example, they should not contain the names of organisations.
+
+
+
+
+Properties
+
+
+
diff --git a/docs/build/html/api/net.corda.core.node/-plugin-service-hub/get-protocol-factory.html b/docs/build/html/api/net.corda.core.node/-plugin-service-hub/get-protocol-factory.html
new file mode 100644
index 0000000000..2d1fdebf8c
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.node/-plugin-service-hub/get-protocol-factory.html
@@ -0,0 +1,16 @@
+
+
+PluginServiceHub.getProtocolFactory -
+
+
+
+net.corda.core.node / PluginServiceHub / getProtocolFactory
+
+getProtocolFactory
+
+abstract fun getProtocolFactory ( markerClass : Class < * > ) : ( Party ) -> ProtocolLogic < * >
+Return the protocol factory that has been registered with markerClass , or null if no factory is found.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.node/-plugin-service-hub/index.html b/docs/build/html/api/net.corda.core.node/-plugin-service-hub/index.html
new file mode 100644
index 0000000000..d67c52a729
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.node/-plugin-service-hub/index.html
@@ -0,0 +1,176 @@
+
+
+PluginServiceHub -
+
+
+
+net.corda.core.node / PluginServiceHub
+
+PluginServiceHub
+interface PluginServiceHub : ServiceHub
+A service hub to be used by the CordaPluginRegistry
+
+
+Inherited Properties
+
+Functions
+
+
+
+
+getProtocolFactory
+
+abstract fun getProtocolFactory ( markerClass : Class < * > ) : ( Party ) -> ProtocolLogic < * >
Return the protocol factory that has been registered with markerClass , or null if no factory is found.
+
+
+
+
+registerProtocolInitiator
+
+abstract fun registerProtocolInitiator ( markerClass : KClass < * > , protocolFactory : ( Party ) -> ProtocolLogic < * > ) : Unit
Register the protocol factory we wish to use when a initiating party attempts to communicate with us. The
+registration is done against a marker KClass which is sent in the session handshake by the other party. If this
+marker class has been registered then the corresponding factory will be used to create the protocol which will
+communicate with the other side. If there is no mapping then the session attempt is rejected.
+
+
+
+
+Inherited Functions
+
+Extension Functions
+
+
+
+
+fillWithSomeTestCash
+
+fun ServiceHub . fillWithSomeTestCash ( howMuch : Amount < Currency > , outputNotary : Party = DUMMY_NOTARY, atLeastThisManyStates : Int = 3, atMostThisManyStates : Int = 10, rng : Random = Random(), ref : OpaqueBytes = OpaqueBytes(ByteArray(1, { 1 })), ownedBy : PublicKey ? = null, issuedBy : PartyAndReference = DUMMY_CASH_ISSUER, issuerKey : KeyPair = DUMMY_CASH_ISSUER_KEY) : Vault
Creates a random set of between (by default) 3 and 10 cash states that add up to the given amount and adds them
+to the vault. This is intended for unit tests. The cash is issued by DUMMY_CASH_ISSUER and owned by the legal
+identity key from the storage service.
+
+
+
+
+recordTransactions
+
+fun ServiceHub . recordTransactions ( vararg txs : SignedTransaction ) : Unit
Given some SignedTransaction s, writes them to the local storage for validated transactions and then
+sends them to the vault for further processing.
+
+
+
+
+Inheritors
+
+
+
diff --git a/docs/build/html/api/net.corda.core.node/-plugin-service-hub/register-protocol-initiator.html b/docs/build/html/api/net.corda.core.node/-plugin-service-hub/register-protocol-initiator.html
new file mode 100644
index 0000000000..653af71733
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.node/-plugin-service-hub/register-protocol-initiator.html
@@ -0,0 +1,28 @@
+
+
+PluginServiceHub.registerProtocolInitiator -
+
+
+
+net.corda.core.node / PluginServiceHub / registerProtocolInitiator
+
+registerProtocolInitiator
+
+abstract fun registerProtocolInitiator ( markerClass : KClass < * > , protocolFactory : ( Party ) -> ProtocolLogic < * > ) : Unit
+Register the protocol factory we wish to use when a initiating party attempts to communicate with us. The
+registration is done against a marker KClass which is sent in the session handshake by the other party. If this
+marker class has been registered then the corresponding factory will be used to create the protocol which will
+communicate with the other side. If there is no mapping then the session attempt is rejected.
+Parameters
+
+markerClass
- The marker KClass present in a session initiation attempt, which is a 1:1 mapping to a Class
+using the ::class construct. Conventionally this is a ProtocolLogic subclass, however any class can
+be used, with the default being the class of the initiating protocol. This enables the registration to be of the
+form: registerProtocolInitiator(InitiatorProtocol::class, ::InitiatedProtocol)
+
+
+protocolFactory
- The protocol factory generating the initiated protocol.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.node/-service-entry/-init-.html b/docs/build/html/api/net.corda.core.node/-service-entry/-init-.html
new file mode 100644
index 0000000000..2d13d55eab
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.node/-service-entry/-init-.html
@@ -0,0 +1,16 @@
+
+
+ServiceEntry. -
+
+
+
+net.corda.core.node / ServiceEntry / <init>
+
+<init>
+ServiceEntry ( info : ServiceInfo , identity : Party )
+Information for an advertised service including the service specific identity information.
+The identity can be used in protocols and is distinct from the Nodes legalIdentity
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.node/-service-entry/identity.html b/docs/build/html/api/net.corda.core.node/-service-entry/identity.html
new file mode 100644
index 0000000000..ddd8fb3068
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.node/-service-entry/identity.html
@@ -0,0 +1,15 @@
+
+
+ServiceEntry.identity -
+
+
+
+net.corda.core.node / ServiceEntry / identity
+
+identity
+
+val identity : Party
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.node/-service-entry/index.html b/docs/build/html/api/net.corda.core.node/-service-entry/index.html
new file mode 100644
index 0000000000..15c67583c2
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.node/-service-entry/index.html
@@ -0,0 +1,46 @@
+
+
+ServiceEntry -
+
+
+
+net.corda.core.node / ServiceEntry
+
+ServiceEntry
+data class ServiceEntry
+Information for an advertised service including the service specific identity information.
+The identity can be used in protocols and is distinct from the Nodes legalIdentity
+
+
+Constructors
+
+
+
+
+<init>
+
+ServiceEntry ( info : ServiceInfo , identity : Party )
Information for an advertised service including the service specific identity information.
+The identity can be used in protocols and is distinct from the Nodes legalIdentity
+
+
+
+
+Properties
+
+
+
diff --git a/docs/build/html/api/net.corda.core.node/-service-entry/info.html b/docs/build/html/api/net.corda.core.node/-service-entry/info.html
new file mode 100644
index 0000000000..410bc222bc
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.node/-service-entry/info.html
@@ -0,0 +1,15 @@
+
+
+ServiceEntry.info -
+
+
+
+net.corda.core.node / ServiceEntry / info
+
+info
+
+val info : ServiceInfo
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.node/-service-hub/clock.html b/docs/build/html/api/net.corda.core.node/-service-hub/clock.html
new file mode 100644
index 0000000000..c55e3384f3
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.node/-service-hub/clock.html
@@ -0,0 +1,15 @@
+
+
+ServiceHub.clock -
+
+
+
+net.corda.core.node / ServiceHub / clock
+
+clock
+
+abstract val clock : Clock
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.node/-service-hub/identity-service.html b/docs/build/html/api/net.corda.core.node/-service-hub/identity-service.html
new file mode 100644
index 0000000000..db8ef55435
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.node/-service-hub/identity-service.html
@@ -0,0 +1,15 @@
+
+
+ServiceHub.identityService -
+
+
+
+net.corda.core.node / ServiceHub / identityService
+
+identityService
+
+abstract val identityService : IdentityService
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.node/-service-hub/index.html b/docs/build/html/api/net.corda.core.node/-service-hub/index.html
new file mode 100644
index 0000000000..6526b1c435
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.node/-service-hub/index.html
@@ -0,0 +1,161 @@
+
+
+ServiceHub -
+
+
+
+net.corda.core.node / ServiceHub
+
+ServiceHub
+interface ServiceHub
+A service hub simply vends references to the other services a node has. Some of those services may be missing or
+mocked out. This class is useful to pass to chunks of pluggable code that might have need of many different kinds of
+functionality and you dont want to hard-code which types in the interface.
+Any services exposed to protocols (public view) need to implement SerializeAsToken or similar to avoid their internal
+state from being serialized in checkpoints.
+
+
+
+
+Properties
+
+Functions
+
+Extension Functions
+
+
+
+
+fillWithSomeTestCash
+
+fun ServiceHub . fillWithSomeTestCash ( howMuch : Amount < Currency > , outputNotary : Party = DUMMY_NOTARY, atLeastThisManyStates : Int = 3, atMostThisManyStates : Int = 10, rng : Random = Random(), ref : OpaqueBytes = OpaqueBytes(ByteArray(1, { 1 })), ownedBy : PublicKey ? = null, issuedBy : PartyAndReference = DUMMY_CASH_ISSUER, issuerKey : KeyPair = DUMMY_CASH_ISSUER_KEY) : Vault
Creates a random set of between (by default) 3 and 10 cash states that add up to the given amount and adds them
+to the vault. This is intended for unit tests. The cash is issued by DUMMY_CASH_ISSUER and owned by the legal
+identity key from the storage service.
+
+
+
+
+recordTransactions
+
+fun ServiceHub . recordTransactions ( vararg txs : SignedTransaction ) : Unit
Given some SignedTransaction s, writes them to the local storage for validated transactions and then
+sends them to the vault for further processing.
+
+
+
+
+Inheritors
+
+
+
diff --git a/docs/build/html/api/net.corda.core.node/-service-hub/invoke-protocol-async.html b/docs/build/html/api/net.corda.core.node/-service-hub/invoke-protocol-async.html
new file mode 100644
index 0000000000..c728973c7d
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.node/-service-hub/invoke-protocol-async.html
@@ -0,0 +1,19 @@
+
+
+ServiceHub.invokeProtocolAsync -
+
+
+
+net.corda.core.node / ServiceHub / invokeProtocolAsync
+
+invokeProtocolAsync
+
+abstract fun < T : Any > invokeProtocolAsync ( logicType : Class < out ProtocolLogic < T > > , vararg args : Any ? ) : <ERROR CLASS> < T >
+Will check logicType and args against a whitelist and if acceptable then construct and initiate the protocol.
+Exceptions
+
+IllegalProtocolLogicException
- or IllegalArgumentException if there are problems with the logicType or args .
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.node/-service-hub/key-management-service.html b/docs/build/html/api/net.corda.core.node/-service-hub/key-management-service.html
new file mode 100644
index 0000000000..699d99234e
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.node/-service-hub/key-management-service.html
@@ -0,0 +1,15 @@
+
+
+ServiceHub.keyManagementService -
+
+
+
+net.corda.core.node / ServiceHub / keyManagementService
+
+keyManagementService
+
+abstract val keyManagementService : KeyManagementService
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.node/-service-hub/legal-identity-key.html b/docs/build/html/api/net.corda.core.node/-service-hub/legal-identity-key.html
new file mode 100644
index 0000000000..55bedf82bd
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.node/-service-hub/legal-identity-key.html
@@ -0,0 +1,18 @@
+
+
+ServiceHub.legalIdentityKey -
+
+
+
+net.corda.core.node / ServiceHub / legalIdentityKey
+
+legalIdentityKey
+
+open val legalIdentityKey : KeyPair
+Helper property to shorten code for fetching the Nodes KeyPair associated with the
+public legalIdentity Party from the key management service.
+Typical use is during signing in protocols and for unit test signing.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.node/-service-hub/load-state.html b/docs/build/html/api/net.corda.core.node/-service-hub/load-state.html
new file mode 100644
index 0000000000..61db4a838b
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.node/-service-hub/load-state.html
@@ -0,0 +1,19 @@
+
+
+ServiceHub.loadState -
+
+
+
+net.corda.core.node / ServiceHub / loadState
+
+loadState
+
+open fun loadState ( stateRef : StateRef ) : TransactionState < * >
+Given a StateRef loads the referenced transaction and looks up the specified output ContractState .
+Exceptions
+
+TransactionResolutionException
- if the StateRef points to a non-existent transaction.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.node/-service-hub/my-info.html b/docs/build/html/api/net.corda.core.node/-service-hub/my-info.html
new file mode 100644
index 0000000000..67e2e5a064
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.node/-service-hub/my-info.html
@@ -0,0 +1,15 @@
+
+
+ServiceHub.myInfo -
+
+
+
+net.corda.core.node / ServiceHub / myInfo
+
+myInfo
+
+abstract val myInfo : NodeInfo
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.node/-service-hub/network-map-cache.html b/docs/build/html/api/net.corda.core.node/-service-hub/network-map-cache.html
new file mode 100644
index 0000000000..e51c6d48bc
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.node/-service-hub/network-map-cache.html
@@ -0,0 +1,15 @@
+
+
+ServiceHub.networkMapCache -
+
+
+
+net.corda.core.node / ServiceHub / networkMapCache
+
+networkMapCache
+
+abstract val networkMapCache : NetworkMapCache
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.node/-service-hub/network-service.html b/docs/build/html/api/net.corda.core.node/-service-hub/network-service.html
new file mode 100644
index 0000000000..ab76a02b04
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.node/-service-hub/network-service.html
@@ -0,0 +1,15 @@
+
+
+ServiceHub.networkService -
+
+
+
+net.corda.core.node / ServiceHub / networkService
+
+networkService
+
+abstract val networkService : MessagingService
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.node/-service-hub/notary-identity-key.html b/docs/build/html/api/net.corda.core.node/-service-hub/notary-identity-key.html
new file mode 100644
index 0000000000..c118600fb6
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.node/-service-hub/notary-identity-key.html
@@ -0,0 +1,20 @@
+
+
+ServiceHub.notaryIdentityKey -
+
+
+
+net.corda.core.node / ServiceHub / notaryIdentityKey
+
+notaryIdentityKey
+
+open val notaryIdentityKey : KeyPair
+Helper property to shorten code for fetching the Nodes KeyPair associated with the
+public notaryIdentity Party from the key management service. It is assumed that this is only
+used in contexts where the Node knows it is hosting a Notary Service. Otherwise, it will throw
+an IllegalArgumentException.
+Typical use is during signing in protocols and for unit test signing.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.node/-service-hub/record-transactions.html b/docs/build/html/api/net.corda.core.node/-service-hub/record-transactions.html
new file mode 100644
index 0000000000..f23a03a3a8
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.node/-service-hub/record-transactions.html
@@ -0,0 +1,20 @@
+
+
+ServiceHub.recordTransactions -
+
+
+
+net.corda.core.node / ServiceHub / recordTransactions
+
+recordTransactions
+
+abstract fun recordTransactions ( txs : Iterable < SignedTransaction > ) : Unit
+Given a list of SignedTransaction s, writes them to the local storage for validated transactions and then
+sends them to the vault for further processing.
+Parameters
+
+txs
- The transactions to record.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.node/-service-hub/scheduler-service.html b/docs/build/html/api/net.corda.core.node/-service-hub/scheduler-service.html
new file mode 100644
index 0000000000..f60a6e239a
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.node/-service-hub/scheduler-service.html
@@ -0,0 +1,15 @@
+
+
+ServiceHub.schedulerService -
+
+
+
+net.corda.core.node / ServiceHub / schedulerService
+
+schedulerService
+
+abstract val schedulerService : SchedulerService
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.node/-service-hub/storage-service.html b/docs/build/html/api/net.corda.core.node/-service-hub/storage-service.html
new file mode 100644
index 0000000000..4f93ebcaf5
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.node/-service-hub/storage-service.html
@@ -0,0 +1,15 @@
+
+
+ServiceHub.storageService -
+
+
+
+net.corda.core.node / ServiceHub / storageService
+
+storageService
+
+abstract val storageService : StorageService
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.node/-service-hub/vault-service.html b/docs/build/html/api/net.corda.core.node/-service-hub/vault-service.html
new file mode 100644
index 0000000000..f9f359ce53
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.node/-service-hub/vault-service.html
@@ -0,0 +1,15 @@
+
+
+ServiceHub.vaultService -
+
+
+
+net.corda.core.node / ServiceHub / vaultService
+
+vaultService
+
+abstract val vaultService : VaultService
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.node/-world-coordinate/-init-.html b/docs/build/html/api/net.corda.core.node/-world-coordinate/-init-.html
new file mode 100644
index 0000000000..bfba100c0d
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.node/-world-coordinate/-init-.html
@@ -0,0 +1,15 @@
+
+
+WorldCoordinate. -
+
+
+
+net.corda.core.node / WorldCoordinate / <init>
+
+<init>
+WorldCoordinate ( latitude : Double , longitude : Double )
+A latitude/longitude pair.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.node/-world-coordinate/index.html b/docs/build/html/api/net.corda.core.node/-world-coordinate/index.html
new file mode 100644
index 0000000000..b1ab4909ef
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.node/-world-coordinate/index.html
@@ -0,0 +1,57 @@
+
+
+WorldCoordinate -
+
+
+
+net.corda.core.node / WorldCoordinate
+
+WorldCoordinate
+data class WorldCoordinate
+A latitude/longitude pair.
+
+
+Constructors
+
+
+
+
+<init>
+
+WorldCoordinate ( latitude : Double , longitude : Double )
A latitude/longitude pair.
+
+
+
+
+Properties
+
+
+
+
+latitude
+
+val latitude : Double
+
+
+
+longitude
+
+val longitude : Double
+
+
+
+Functions
+
+
+
+
+project
+
+fun project ( screenWidth : Double , screenHeight : Double , topLatitude : Double , bottomLatitude : Double , leftLongitude : Double , rightLongitude : Double ) : <ERROR CLASS> < Double , Double >
Convert to screen coordinates using the Mercator projection. You should have a world map image that
+you know the precise extents of for this function to work.
+
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.node/-world-coordinate/latitude.html b/docs/build/html/api/net.corda.core.node/-world-coordinate/latitude.html
new file mode 100644
index 0000000000..fef86c2251
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.node/-world-coordinate/latitude.html
@@ -0,0 +1,15 @@
+
+
+WorldCoordinate.latitude -
+
+
+
+net.corda.core.node / WorldCoordinate / latitude
+
+latitude
+
+val latitude : Double
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.node/-world-coordinate/longitude.html b/docs/build/html/api/net.corda.core.node/-world-coordinate/longitude.html
new file mode 100644
index 0000000000..b5047f2da9
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.node/-world-coordinate/longitude.html
@@ -0,0 +1,15 @@
+
+
+WorldCoordinate.longitude -
+
+
+
+net.corda.core.node / WorldCoordinate / longitude
+
+longitude
+
+val longitude : Double
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.node/-world-coordinate/project.html b/docs/build/html/api/net.corda.core.node/-world-coordinate/project.html
new file mode 100644
index 0000000000..48b39c5dcd
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.node/-world-coordinate/project.html
@@ -0,0 +1,22 @@
+
+
+WorldCoordinate.project -
+
+
+
+net.corda.core.node / WorldCoordinate / project
+
+project
+
+fun project ( screenWidth : Double , screenHeight : Double , topLatitude : Double , bottomLatitude : Double , leftLongitude : Double , rightLongitude : Double ) : <ERROR CLASS> < Double , Double >
+Convert to screen coordinates using the Mercator projection. You should have a world map image that
+you know the precise extents of for this function to work.
+Note that no world map ever has latitude extents of -90 to 90 because at these extremes the mapping tends
+to infinity. Google Maps, for example, uses a square map image, and square maps yield latitude extents
+of 85.0511 to -85.0511 = arctan(sinh(π)).
+
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.node/index.html b/docs/build/html/api/net.corda.core.node/index.html
new file mode 100644
index 0000000000..db736fa54c
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.node/index.html
@@ -0,0 +1,100 @@
+
+
+net.corda.core.node -
+
+
+
+net.corda.core.node
+
+Package net.corda.core.node
+Types
+
+
+
+
+AttachmentsClassLoader
+
+class AttachmentsClassLoader : SecureClassLoader
A custom ClassLoader that knows how to load classes from a set of attachments. The attachments themselves only
+need to provide JAR streams, and so could be fetched from a database, local disk, etc. Constructing an
+AttachmentsClassLoader is somewhat expensive, as every attachment is scanned to ensure that there are no overlapping
+file paths.
+
+
+
+
+CityDatabase
+
+object CityDatabase
A simple lookup table of city names to their coordinates. Lookups are case insensitive.
+
+
+
+
+CordaPluginRegistry
+
+abstract class CordaPluginRegistry
Implement this interface on a class advertised in a META-INF/services/net.corda.core.node.CordaPluginRegistry file
+to extend a Corda node with additional application services.
+
+
+
+
+NodeInfo
+
+data class NodeInfo
Info about a network node that acts on behalf of some form of contract party.
+
+
+
+
+PhysicalLocation
+
+data class PhysicalLocation
A labelled WorldCoordinate , where the label is human meaningful. For example, the name of the nearest city.
+Labels should not refer to non-landmarks, for example, they should not contain the names of organisations.
+
+
+
+
+PluginServiceHub
+
+interface PluginServiceHub : ServiceHub
A service hub to be used by the CordaPluginRegistry
+
+
+
+
+ServiceEntry
+
+data class ServiceEntry
Information for an advertised service including the service specific identity information.
+The identity can be used in protocols and is distinct from the Nodes legalIdentity
+
+
+
+
+ServiceHub
+
+interface ServiceHub
A service hub simply vends references to the other services a node has. Some of those services may be missing or
+mocked out. This class is useful to pass to chunks of pluggable code that might have need of many different kinds of
+functionality and you dont want to hard-code which types in the interface.
+
+
+
+
+WorldCoordinate
+
+data class WorldCoordinate
A latitude/longitude pair.
+
+
+
+
+Functions
+
+
+
diff --git a/docs/build/html/api/net.corda.core.node/record-transactions.html b/docs/build/html/api/net.corda.core.node/record-transactions.html
new file mode 100644
index 0000000000..d1b16454e0
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.node/record-transactions.html
@@ -0,0 +1,20 @@
+
+
+recordTransactions -
+
+
+
+net.corda.core.node / recordTransactions
+
+recordTransactions
+
+fun ServiceHub . recordTransactions ( vararg txs : SignedTransaction ) : Unit
+Given some SignedTransaction s, writes them to the local storage for validated transactions and then
+sends them to the vault for further processing.
+Parameters
+
+txs
- The transactions to record.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.protocols/-app-context/-init-.html b/docs/build/html/api/net.corda.core.protocols/-app-context/-init-.html
new file mode 100644
index 0000000000..f3e158521f
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.protocols/-app-context/-init-.html
@@ -0,0 +1,16 @@
+
+
+AppContext. -
+
+
+
+net.corda.core.protocols / AppContext / <init>
+
+<init>
+AppContext ( attachments : List < SecureHash > )
+This is just some way to track what attachments need to be in the class loader, but may later include some app
+properties loaded from the attachments. And perhaps the authenticated user for an API call?
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.protocols/-app-context/attachments.html b/docs/build/html/api/net.corda.core.protocols/-app-context/attachments.html
new file mode 100644
index 0000000000..0ed0efb30d
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.protocols/-app-context/attachments.html
@@ -0,0 +1,15 @@
+
+
+AppContext.attachments -
+
+
+
+net.corda.core.protocols / AppContext / attachments
+
+attachments
+
+val attachments : List < SecureHash >
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.protocols/-app-context/class-loader.html b/docs/build/html/api/net.corda.core.protocols/-app-context/class-loader.html
new file mode 100644
index 0000000000..3194f36315
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.protocols/-app-context/class-loader.html
@@ -0,0 +1,15 @@
+
+
+AppContext.classLoader -
+
+
+
+net.corda.core.protocols / AppContext / classLoader
+
+classLoader
+
+val classLoader : ClassLoader
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.protocols/-app-context/index.html b/docs/build/html/api/net.corda.core.protocols/-app-context/index.html
new file mode 100644
index 0000000000..2dbd37d850
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.protocols/-app-context/index.html
@@ -0,0 +1,46 @@
+
+
+AppContext -
+
+
+
+net.corda.core.protocols / AppContext
+
+AppContext
+data class AppContext
+This is just some way to track what attachments need to be in the class loader, but may later include some app
+properties loaded from the attachments. And perhaps the authenticated user for an API call?
+
+
+Constructors
+
+
+
+
+<init>
+
+AppContext ( attachments : List < SecureHash > )
This is just some way to track what attachments need to be in the class loader, but may later include some app
+properties loaded from the attachments. And perhaps the authenticated user for an API call?
+
+
+
+
+Properties
+
+
+
diff --git a/docs/build/html/api/net.corda.core.protocols/-illegal-protocol-logic-exception/-init-.html b/docs/build/html/api/net.corda.core.protocols/-illegal-protocol-logic-exception/-init-.html
new file mode 100644
index 0000000000..fe9343ff32
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.protocols/-illegal-protocol-logic-exception/-init-.html
@@ -0,0 +1,14 @@
+
+
+IllegalProtocolLogicException. -
+
+
+
+net.corda.core.protocols / IllegalProtocolLogicException / <init>
+
+<init>
+IllegalProtocolLogicException ( type : Class < * > , msg : String )
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.protocols/-illegal-protocol-logic-exception/index.html b/docs/build/html/api/net.corda.core.protocols/-illegal-protocol-logic-exception/index.html
new file mode 100644
index 0000000000..7282a7b857
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.protocols/-illegal-protocol-logic-exception/index.html
@@ -0,0 +1,36 @@
+
+
+IllegalProtocolLogicException -
+
+
+
+net.corda.core.protocols / IllegalProtocolLogicException
+
+IllegalProtocolLogicException
+class IllegalProtocolLogicException : IllegalArgumentException
+
+
+Constructors
+
+
+
+
+<init>
+
+IllegalProtocolLogicException ( type : Class < * > , msg : String )
+
+
+
+Extension Properties
+
+
+
+
+rootCause
+
+val Throwable . rootCause : Throwable
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.protocols/-protocol-logic-ref-factory/-init-.html b/docs/build/html/api/net.corda.core.protocols/-protocol-logic-ref-factory/-init-.html
new file mode 100644
index 0000000000..76f62a15bb
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.protocols/-protocol-logic-ref-factory/-init-.html
@@ -0,0 +1,26 @@
+
+
+ProtocolLogicRefFactory. -
+
+
+
+net.corda.core.protocols / ProtocolLogicRefFactory / <init>
+
+<init>
+ProtocolLogicRefFactory ( )
+
+
+ProtocolLogicRefFactory ( protocolWhitelist : Map < String , Set < String > > )
+A class for conversion to and from ProtocolLogic and ProtocolLogicRef instances.
+Validation of types is performed on the way in and way out in case this object is passed between JVMs which might have differing
+whitelists.
+TODO: Ways to populate whitelist of "blessed" protocols per node/party
+TODO: Ways to populate argument types whitelist. Per node/party or global?
+TODO: Align with API related logic for passing in ProtocolLogic references (ProtocolRef)
+TODO: Actual support for AppContext / AttachmentsClassLoader
+
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.protocols/-protocol-logic-ref-factory/create-kotlin.html b/docs/build/html/api/net.corda.core.protocols/-protocol-logic-ref-factory/create-kotlin.html
new file mode 100644
index 0000000000..462cd8ddd8
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.protocols/-protocol-logic-ref-factory/create-kotlin.html
@@ -0,0 +1,24 @@
+
+
+ProtocolLogicRefFactory.createKotlin -
+
+
+
+net.corda.core.protocols / ProtocolLogicRefFactory / createKotlin
+
+createKotlin
+
+fun createKotlin ( protocolLogicClassName : String , args : Map < String , Any ? > , attachments : List < SecureHash > = emptyList()) : ProtocolLogicRef
+Create a ProtocolLogicRef for the Kotlin primary constructor of a named ProtocolLogic
+
+
+
+fun createKotlin ( type : Class < out ProtocolLogic < * > > , args : Map < String , Any ? > ) : ProtocolLogicRef
+Create a ProtocolLogicRef by trying to find a Kotlin constructor that matches the given args.
+TODO: Rethink language specific naming.
+
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.protocols/-protocol-logic-ref-factory/create.html b/docs/build/html/api/net.corda.core.protocols/-protocol-logic-ref-factory/create.html
new file mode 100644
index 0000000000..ecc87d416a
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.protocols/-protocol-logic-ref-factory/create.html
@@ -0,0 +1,16 @@
+
+
+ProtocolLogicRefFactory.create -
+
+
+
+net.corda.core.protocols / ProtocolLogicRefFactory / create
+
+create
+
+fun create ( type : Class < out ProtocolLogic < * > > , vararg args : Any ? ) : ProtocolLogicRef
+Create a ProtocolLogicRef for the Kotlin primary constructor or Java constructor and the given args.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.protocols/-protocol-logic-ref-factory/index.html b/docs/build/html/api/net.corda.core.protocols/-protocol-logic-ref-factory/index.html
new file mode 100644
index 0000000000..3fadbf9d47
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.protocols/-protocol-logic-ref-factory/index.html
@@ -0,0 +1,72 @@
+
+
+ProtocolLogicRefFactory -
+
+
+
+net.corda.core.protocols / ProtocolLogicRefFactory
+
+ProtocolLogicRefFactory
+class ProtocolLogicRefFactory : SingletonSerializeAsToken
+A class for conversion to and from ProtocolLogic and ProtocolLogicRef instances.
+Validation of types is performed on the way in and way out in case this object is passed between JVMs which might have differing
+whitelists.
+TODO: Ways to populate whitelist of "blessed" protocols per node/party
+TODO: Ways to populate argument types whitelist. Per node/party or global?
+TODO: Align with API related logic for passing in ProtocolLogic references (ProtocolRef)
+TODO: Actual support for AppContext / AttachmentsClassLoader
+
+
+
+
+Constructors
+
+
+
+
+<init>
+
+ProtocolLogicRefFactory ( )
ProtocolLogicRefFactory ( protocolWhitelist : Map < String , Set < String > > )
A class for conversion to and from ProtocolLogic and ProtocolLogicRef instances.
+
+
+
+
+Functions
+
+Inherited Functions
+
+
+
diff --git a/docs/build/html/api/net.corda.core.protocols/-protocol-logic-ref-factory/to-protocol-logic.html b/docs/build/html/api/net.corda.core.protocols/-protocol-logic-ref-factory/to-protocol-logic.html
new file mode 100644
index 0000000000..41016311f3
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.protocols/-protocol-logic-ref-factory/to-protocol-logic.html
@@ -0,0 +1,15 @@
+
+
+ProtocolLogicRefFactory.toProtocolLogic -
+
+
+
+net.corda.core.protocols / ProtocolLogicRefFactory / toProtocolLogic
+
+toProtocolLogic
+
+fun toProtocolLogic ( ref : ProtocolLogicRef ) : ProtocolLogic < * >
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.protocols/-protocol-logic-ref/app-context.html b/docs/build/html/api/net.corda.core.protocols/-protocol-logic-ref/app-context.html
new file mode 100644
index 0000000000..e7cca9a472
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.protocols/-protocol-logic-ref/app-context.html
@@ -0,0 +1,15 @@
+
+
+ProtocolLogicRef.appContext -
+
+
+
+net.corda.core.protocols / ProtocolLogicRef / appContext
+
+appContext
+
+val appContext : AppContext
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.protocols/-protocol-logic-ref/args.html b/docs/build/html/api/net.corda.core.protocols/-protocol-logic-ref/args.html
new file mode 100644
index 0000000000..abc39786c0
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.protocols/-protocol-logic-ref/args.html
@@ -0,0 +1,15 @@
+
+
+ProtocolLogicRef.args -
+
+
+
+net.corda.core.protocols / ProtocolLogicRef / args
+
+args
+
+val args : Map < String , Any ? >
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.protocols/-protocol-logic-ref/index.html b/docs/build/html/api/net.corda.core.protocols/-protocol-logic-ref/index.html
new file mode 100644
index 0000000000..50971caad7
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.protocols/-protocol-logic-ref/index.html
@@ -0,0 +1,41 @@
+
+
+ProtocolLogicRef -
+
+
+
+net.corda.core.protocols / ProtocolLogicRef
+
+ProtocolLogicRef
+data class ProtocolLogicRef
+A class representing a ProtocolLogic instance which would be possible to safely pass out of the contract sandbox.
+Only allows a String reference to the ProtocolLogic class, and only allows restricted argument types as per ProtocolLogicRefFactory .
+
+
+
+
+Properties
+
+
+
diff --git a/docs/build/html/api/net.corda.core.protocols/-protocol-logic-ref/protocol-logic-class-name.html b/docs/build/html/api/net.corda.core.protocols/-protocol-logic-ref/protocol-logic-class-name.html
new file mode 100644
index 0000000000..354af31ea2
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.protocols/-protocol-logic-ref/protocol-logic-class-name.html
@@ -0,0 +1,15 @@
+
+
+ProtocolLogicRef.protocolLogicClassName -
+
+
+
+net.corda.core.protocols / ProtocolLogicRef / protocolLogicClassName
+
+protocolLogicClassName
+
+val protocolLogicClassName : String
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.protocols/-protocol-logic/-init-.html b/docs/build/html/api/net.corda.core.protocols/-protocol-logic/-init-.html
new file mode 100644
index 0000000000..e9faae1a8d
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.protocols/-protocol-logic/-init-.html
@@ -0,0 +1,28 @@
+
+
+ProtocolLogic. -
+
+
+
+net.corda.core.protocols / ProtocolLogic / <init>
+
+<init>
+ProtocolLogic ( )
+A sub-class of ProtocolLogic implements a protocol flow using direct, straight line blocking code. Thus you
+can write complex protocol logic in an ordinary fashion, without having to think about callbacks, restarting after
+a node crash, how many instances of your protocol there are running and so on.
+Invoking the network will cause the call stack to be suspended onto the heap and then serialized to a database using
+the Quasar fibers framework. Because of this, if you need access to data that might change over time, you should
+request it just-in-time via the serviceHub property which is provided. Dont try and keep data you got from a
+service across calls to send/receive/sendAndReceive because the world might change in arbitrary ways out from
+underneath you, for instance, if the node is restarted or reconfigured
+Additionally, be aware of what data you pin either via the stack or in your ProtocolLogic implementation. Very large
+objects or datasets will hurt performance by increasing the amount of data stored in each checkpoint.
+If youd like to use another ProtocolLogic class as a component of your own, construct it on the fly and then pass
+it to the subProtocol method. It will return the result of that protocol when it completes.
+
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.protocols/-protocol-logic/call.html b/docs/build/html/api/net.corda.core.protocols/-protocol-logic/call.html
new file mode 100644
index 0000000000..e81c62f8cc
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.protocols/-protocol-logic/call.html
@@ -0,0 +1,16 @@
+
+
+ProtocolLogic.call -
+
+
+
+net.corda.core.protocols / ProtocolLogic / call
+
+call
+
+abstract fun call ( ) : T
+This is where you fill out your business logic.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.protocols/-protocol-logic/get-counterparty-marker.html b/docs/build/html/api/net.corda.core.protocols/-protocol-logic/get-counterparty-marker.html
new file mode 100644
index 0000000000..7558d8e17b
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.protocols/-protocol-logic/get-counterparty-marker.html
@@ -0,0 +1,18 @@
+
+
+ProtocolLogic.getCounterpartyMarker -
+
+
+
+net.corda.core.protocols / ProtocolLogic / getCounterpartyMarker
+
+getCounterpartyMarker
+
+open fun getCounterpartyMarker ( party : Party ) : Class < * >
+Return the marker Class which party has used to register the counterparty protocol that is to execute on the
+other side. The default implementation returns the class object of this ProtocolLogic, but any Class instance
+will do as long as the other side registers with it.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.protocols/-protocol-logic/index.html b/docs/build/html/api/net.corda.core.protocols/-protocol-logic/index.html
new file mode 100644
index 0000000000..7081adce7a
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.protocols/-protocol-logic/index.html
@@ -0,0 +1,237 @@
+
+
+ProtocolLogic -
+
+
+
+net.corda.core.protocols / ProtocolLogic
+
+ProtocolLogic
+abstract class ProtocolLogic < out T >
+A sub-class of ProtocolLogic implements a protocol flow using direct, straight line blocking code. Thus you
+can write complex protocol logic in an ordinary fashion, without having to think about callbacks, restarting after
+a node crash, how many instances of your protocol there are running and so on.
+Invoking the network will cause the call stack to be suspended onto the heap and then serialized to a database using
+the Quasar fibers framework. Because of this, if you need access to data that might change over time, you should
+request it just-in-time via the serviceHub property which is provided. Dont try and keep data you got from a
+service across calls to send/receive/sendAndReceive because the world might change in arbitrary ways out from
+underneath you, for instance, if the node is restarted or reconfigured
+Additionally, be aware of what data you pin either via the stack or in your ProtocolLogic implementation. Very large
+objects or datasets will hurt performance by increasing the amount of data stored in each checkpoint.
+If youd like to use another ProtocolLogic class as a component of your own, construct it on the fly and then pass
+it to the subProtocol method. It will return the result of that protocol when it completes.
+
+
+
+
+Constructors
+
+
+
+
+<init>
+
+ProtocolLogic ( )
A sub-class of ProtocolLogic implements a protocol flow using direct, straight line blocking code. Thus you
+can write complex protocol logic in an ordinary fashion, without having to think about callbacks, restarting after
+a node crash, how many instances of your protocol there are running and so on.
+
+
+
+
+Properties
+
+
+
+
+logger
+
+val logger : <ERROR CLASS>
This is where you should log things to.
+
+
+
+
+progressTracker
+
+open val progressTracker : ProgressTracker ?
Override this to provide a ProgressTracker . If one is provided and stepped, the framework will do something
+helpful with the progress reports. If this protocol is invoked as a sub-protocol of another, then the
+tracker will be made a child of the current step in the parent. If its null, this protocol doesnt track
+progress.
+
+
+
+
+psm
+
+lateinit var psm : ProtocolStateMachine < * >
Reference to the Fiber instance that is the top level controller for the entire flow.
+
+
+
+
+serviceHub
+
+val serviceHub : ServiceHub
Provides access to big, heavy classes that may be reconstructed from time to time, e.g. across restarts. It is
+only available once the protocol has started, which means it cannnot be accessed in the constructor. Either
+access this lazily or from inside call .
+
+
+
+
+Functions
+
+
+
+
+call
+
+abstract fun call ( ) : T
This is where you fill out your business logic.
+
+
+
+
+getCounterpartyMarker
+
+open fun getCounterpartyMarker ( party : Party ) : Class < * >
Return the marker Class which party has used to register the counterparty protocol that is to execute on the
+other side. The default implementation returns the class object of this ProtocolLogic, but any Class instance
+will do as long as the other side registers with it.
+
+
+
+
+receive
+
+fun < T : Any > receive ( otherParty : Party ) : UntrustworthyData < T >
+fun < T : Any > receive ( otherParty : Party , receiveType : Class < T > ) : UntrustworthyData < T >
+
+
+
+send
+
+fun send ( otherParty : Party , payload : Any ) : Unit
+
+
+
+sendAndReceive
+
+fun < T : Any > sendAndReceive ( otherParty : Party , payload : Any ) : UntrustworthyData < T >
+fun < T : Any > sendAndReceive ( otherParty : Party , payload : Any , receiveType : Class < T > ) : UntrustworthyData < T >
+
+
+
+subProtocol
+
+fun < R > subProtocol ( subLogic : ProtocolLogic < R > , shareParentSessions : Boolean = false) : R
Invokes the given subprotocol by simply passing through this ProtocolLogics reference to the
+ProtocolStateMachine and then calling the call method.
+
+
+
+
+track
+
+fun track ( ) : <ERROR CLASS> < String , <ERROR CLASS> < String > > ?
+
+
+
+Inheritors
+
+
+
+
+Acceptor
+
+abstract class Acceptor < T > : ProtocolLogic < Unit >
+
+
+
+BroadcastTransactionProtocol
+
+class BroadcastTransactionProtocol : ProtocolLogic < Unit >
Notify all involved parties about a transaction, including storing a copy. Normally this would be called via
+FinalityProtocol .
+
+
+
+
+Buyer
+
+class Buyer : ProtocolLogic < SignedTransaction >
+
+
+
+Client
+
+class Client : ProtocolLogic < LegallyIdentifiable >
A protocol to be used for obtaining a signature from a NotaryService ascertaining the transaction
+timestamp is correct and none of its inputs have been used in another completed transaction.
+
+
+
+
+FetchDataProtocol
+
+abstract class FetchDataProtocol < T : NamedByHash , in W : Any > : ProtocolLogic < Result < T > >
An abstract protocol for fetching typed data from a remote peer.
+
+
+
+
+FinalityProtocol
+
+class FinalityProtocol : ProtocolLogic < Unit >
Finalise a transaction by notarising it, then recording it locally, and then sending it to all involved parties.
+
+
+
+
+Instigator
+
+abstract class Instigator < out S : ContractState , T > : ProtocolLogic < StateAndRef < S > >
+
+
+
+NotifyTransactionHandler
+
+class NotifyTransactionHandler : ProtocolLogic < Unit >
+
+
+
+Primary
+
+abstract class Primary : ProtocolLogic < SignedTransaction >
Abstracted bilateral deal protocol participant that initiates communication/handshake.
+
+
+
+
+ResolveTransactionsProtocol
+
+class ResolveTransactionsProtocol : ProtocolLogic < List < LedgerTransaction > >
This protocol is used to verify the validity of a transaction by recursively checking the validity of all the
+dependencies. Once a transaction is checked its inserted into local storage so it can be relayed and wont be
+checked again.
+
+
+
+
+RunScheduled
+
+class RunScheduled : ProtocolLogic < Unit >
+
+
+
+Secondary
+
+abstract class Secondary < U > : ProtocolLogic < SignedTransaction >
Abstracted bilateral deal protocol participant that is recipient of initial communication.
+
+
+
+
+Seller
+
+class Seller : ProtocolLogic < SignedTransaction >
+
+
+
+Service
+
+class Service : ProtocolLogic < Unit >
Checks that the timestamp command is valid (if present) and commits the input state, or returns a conflict
+if any of the input states have been previously committed.
+
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.protocols/-protocol-logic/logger.html b/docs/build/html/api/net.corda.core.protocols/-protocol-logic/logger.html
new file mode 100644
index 0000000000..e596e26823
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.protocols/-protocol-logic/logger.html
@@ -0,0 +1,16 @@
+
+
+ProtocolLogic.logger -
+
+
+
+net.corda.core.protocols / ProtocolLogic / logger
+
+logger
+
+val logger : <ERROR CLASS>
+This is where you should log things to.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.protocols/-protocol-logic/progress-tracker.html b/docs/build/html/api/net.corda.core.protocols/-protocol-logic/progress-tracker.html
new file mode 100644
index 0000000000..df0539b6b7
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.protocols/-protocol-logic/progress-tracker.html
@@ -0,0 +1,23 @@
+
+
+ProtocolLogic.progressTracker -
+
+
+
+net.corda.core.protocols / ProtocolLogic / progressTracker
+
+progressTracker
+
+open val progressTracker : ProgressTracker ?
+Override this to provide a ProgressTracker . If one is provided and stepped, the framework will do something
+helpful with the progress reports. If this protocol is invoked as a sub-protocol of another, then the
+tracker will be made a child of the current step in the parent. If its null, this protocol doesnt track
+progress.
+Note that this has to return a tracker before the protocol is invoked. You cant change your mind half way
+through.
+
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.protocols/-protocol-logic/psm.html b/docs/build/html/api/net.corda.core.protocols/-protocol-logic/psm.html
new file mode 100644
index 0000000000..fb0893159e
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.protocols/-protocol-logic/psm.html
@@ -0,0 +1,16 @@
+
+
+ProtocolLogic.psm -
+
+
+
+net.corda.core.protocols / ProtocolLogic / psm
+
+psm
+
+lateinit var psm : ProtocolStateMachine < * >
+Reference to the Fiber instance that is the top level controller for the entire flow.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.protocols/-protocol-logic/receive.html b/docs/build/html/api/net.corda.core.protocols/-protocol-logic/receive.html
new file mode 100644
index 0000000000..5a6e3bb8ae
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.protocols/-protocol-logic/receive.html
@@ -0,0 +1,17 @@
+
+
+ProtocolLogic.receive -
+
+
+
+net.corda.core.protocols / ProtocolLogic / receive
+
+receive
+
+inline fun < reified T : Any > receive ( otherParty : Party ) : UntrustworthyData < T >
+
+fun < T : Any > receive ( otherParty : Party , receiveType : Class < T > ) : UntrustworthyData < T >
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.protocols/-protocol-logic/send-and-receive.html b/docs/build/html/api/net.corda.core.protocols/-protocol-logic/send-and-receive.html
new file mode 100644
index 0000000000..f992294490
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.protocols/-protocol-logic/send-and-receive.html
@@ -0,0 +1,17 @@
+
+
+ProtocolLogic.sendAndReceive -
+
+
+
+net.corda.core.protocols / ProtocolLogic / sendAndReceive
+
+sendAndReceive
+
+inline fun < reified T : Any > sendAndReceive ( otherParty : Party , payload : Any ) : UntrustworthyData < T >
+
+fun < T : Any > sendAndReceive ( otherParty : Party , payload : Any , receiveType : Class < T > ) : UntrustworthyData < T >
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.protocols/-protocol-logic/send.html b/docs/build/html/api/net.corda.core.protocols/-protocol-logic/send.html
new file mode 100644
index 0000000000..ce58479afa
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.protocols/-protocol-logic/send.html
@@ -0,0 +1,15 @@
+
+
+ProtocolLogic.send -
+
+
+
+net.corda.core.protocols / ProtocolLogic / send
+
+send
+
+fun send ( otherParty : Party , payload : Any ) : Unit
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.protocols/-protocol-logic/service-hub.html b/docs/build/html/api/net.corda.core.protocols/-protocol-logic/service-hub.html
new file mode 100644
index 0000000000..0423874619
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.protocols/-protocol-logic/service-hub.html
@@ -0,0 +1,18 @@
+
+
+ProtocolLogic.serviceHub -
+
+
+
+net.corda.core.protocols / ProtocolLogic / serviceHub
+
+serviceHub
+
+val serviceHub : ServiceHub
+Provides access to big, heavy classes that may be reconstructed from time to time, e.g. across restarts. It is
+only available once the protocol has started, which means it cannnot be accessed in the constructor. Either
+access this lazily or from inside call .
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.protocols/-protocol-logic/sub-protocol.html b/docs/build/html/api/net.corda.core.protocols/-protocol-logic/sub-protocol.html
new file mode 100644
index 0000000000..efb61456d2
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.protocols/-protocol-logic/sub-protocol.html
@@ -0,0 +1,22 @@
+
+
+ProtocolLogic.subProtocol -
+
+
+
+net.corda.core.protocols / ProtocolLogic / subProtocol
+
+subProtocol
+
+fun < R > subProtocol ( subLogic : ProtocolLogic < R > , shareParentSessions : Boolean = false) : R
+Invokes the given subprotocol by simply passing through this ProtocolLogic s reference to the
+ProtocolStateMachine and then calling the call method.
+Parameters
+
+shareParentSessions
- In certain situations the need arises to use the same sessions the parent protocol has
+already established. However this also prevents the subprotocol from creating new sessions with those parties.
+For this reason the default value is false.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.protocols/-protocol-logic/track.html b/docs/build/html/api/net.corda.core.protocols/-protocol-logic/track.html
new file mode 100644
index 0000000000..18fd7c5b01
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.protocols/-protocol-logic/track.html
@@ -0,0 +1,15 @@
+
+
+ProtocolLogic.track -
+
+
+
+net.corda.core.protocols / ProtocolLogic / track
+
+track
+
+fun track ( ) : <ERROR CLASS> < String , <ERROR CLASS> < String > > ?
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.protocols/-protocol-session-exception/-init-.html b/docs/build/html/api/net.corda.core.protocols/-protocol-session-exception/-init-.html
new file mode 100644
index 0000000000..9e79b11423
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.protocols/-protocol-session-exception/-init-.html
@@ -0,0 +1,14 @@
+
+
+ProtocolSessionException. -
+
+
+
+net.corda.core.protocols / ProtocolSessionException / <init>
+
+<init>
+ProtocolSessionException ( message : String )
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.protocols/-protocol-session-exception/index.html b/docs/build/html/api/net.corda.core.protocols/-protocol-session-exception/index.html
new file mode 100644
index 0000000000..43610690f3
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.protocols/-protocol-session-exception/index.html
@@ -0,0 +1,36 @@
+
+
+ProtocolSessionException -
+
+
+
+net.corda.core.protocols / ProtocolSessionException
+
+ProtocolSessionException
+class ProtocolSessionException : Exception
+
+
+Constructors
+
+
+
+
+<init>
+
+ProtocolSessionException ( message : String )
+
+
+
+Extension Properties
+
+
+
+
+rootCause
+
+val Throwable . rootCause : Throwable
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.protocols/-protocol-state-machine/id.html b/docs/build/html/api/net.corda.core.protocols/-protocol-state-machine/id.html
new file mode 100644
index 0000000000..613ef39e65
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.protocols/-protocol-state-machine/id.html
@@ -0,0 +1,16 @@
+
+
+ProtocolStateMachine.id -
+
+
+
+net.corda.core.protocols / ProtocolStateMachine / id
+
+id
+
+abstract val id : StateMachineRunId
+Unique ID for this machine run, valid across restarts
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.protocols/-protocol-state-machine/index.html b/docs/build/html/api/net.corda.core.protocols/-protocol-state-machine/index.html
new file mode 100644
index 0000000000..1411c45765
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.protocols/-protocol-state-machine/index.html
@@ -0,0 +1,86 @@
+
+
+ProtocolStateMachine -
+
+
+
+net.corda.core.protocols / ProtocolStateMachine
+
+ProtocolStateMachine
+interface ProtocolStateMachine < R >
+A ProtocolStateMachine instance is a suspendable fiber that delegates all actual logic to a ProtocolLogic instance.
+For any given flow there is only one PSM, even if that protocol invokes subprotocols.
+These classes are created by the StateMachineManager when a new protocol is started at the topmost level. If
+a protocol invokes a sub-protocol, then it will pass along the PSM to the child. The call method of the topmost
+logic element gets to return the value that the entire state machine resolves to.
+
+
+
+
+Properties
+
+
+
+
+id
+
+abstract val id : StateMachineRunId
Unique ID for this machine run, valid across restarts
+
+
+
+
+logger
+
+abstract val logger : <ERROR CLASS>
+
+
+
+resultFuture
+
+abstract val resultFuture : <ERROR CLASS> < R >
This future will complete when the call method returns.
+
+
+
+
+serviceHub
+
+abstract val serviceHub : ServiceHub
+
+
+
+Functions
+
+Inheritors
+
+
+
diff --git a/docs/build/html/api/net.corda.core.protocols/-protocol-state-machine/logger.html b/docs/build/html/api/net.corda.core.protocols/-protocol-state-machine/logger.html
new file mode 100644
index 0000000000..434dafc865
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.protocols/-protocol-state-machine/logger.html
@@ -0,0 +1,15 @@
+
+
+ProtocolStateMachine.logger -
+
+
+
+net.corda.core.protocols / ProtocolStateMachine / logger
+
+logger
+
+abstract val logger : <ERROR CLASS>
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.protocols/-protocol-state-machine/receive.html b/docs/build/html/api/net.corda.core.protocols/-protocol-state-machine/receive.html
new file mode 100644
index 0000000000..ec8143fc83
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.protocols/-protocol-state-machine/receive.html
@@ -0,0 +1,15 @@
+
+
+ProtocolStateMachine.receive -
+
+
+
+net.corda.core.protocols / ProtocolStateMachine / receive
+
+receive
+
+abstract fun < T : Any > receive ( otherParty : Party , receiveType : Class < T > , sessionProtocol : ProtocolLogic < * > ) : UntrustworthyData < T >
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.protocols/-protocol-state-machine/result-future.html b/docs/build/html/api/net.corda.core.protocols/-protocol-state-machine/result-future.html
new file mode 100644
index 0000000000..202b438ccb
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.protocols/-protocol-state-machine/result-future.html
@@ -0,0 +1,16 @@
+
+
+ProtocolStateMachine.resultFuture -
+
+
+
+net.corda.core.protocols / ProtocolStateMachine / resultFuture
+
+resultFuture
+
+abstract val resultFuture : <ERROR CLASS> < R >
+This future will complete when the call method returns.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.protocols/-protocol-state-machine/send-and-receive.html b/docs/build/html/api/net.corda.core.protocols/-protocol-state-machine/send-and-receive.html
new file mode 100644
index 0000000000..f63e01937f
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.protocols/-protocol-state-machine/send-and-receive.html
@@ -0,0 +1,15 @@
+
+
+ProtocolStateMachine.sendAndReceive -
+
+
+
+net.corda.core.protocols / ProtocolStateMachine / sendAndReceive
+
+sendAndReceive
+
+abstract fun < T : Any > sendAndReceive ( otherParty : Party , payload : Any , receiveType : Class < T > , sessionProtocol : ProtocolLogic < * > ) : UntrustworthyData < T >
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.protocols/-protocol-state-machine/send.html b/docs/build/html/api/net.corda.core.protocols/-protocol-state-machine/send.html
new file mode 100644
index 0000000000..93c0c98c44
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.protocols/-protocol-state-machine/send.html
@@ -0,0 +1,15 @@
+
+
+ProtocolStateMachine.send -
+
+
+
+net.corda.core.protocols / ProtocolStateMachine / send
+
+send
+
+abstract fun send ( otherParty : Party , payload : Any , sessionProtocol : ProtocolLogic < * > ) : Unit
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.protocols/-protocol-state-machine/service-hub.html b/docs/build/html/api/net.corda.core.protocols/-protocol-state-machine/service-hub.html
new file mode 100644
index 0000000000..d05d24e22f
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.protocols/-protocol-state-machine/service-hub.html
@@ -0,0 +1,15 @@
+
+
+ProtocolStateMachine.serviceHub -
+
+
+
+net.corda.core.protocols / ProtocolStateMachine / serviceHub
+
+serviceHub
+
+abstract val serviceHub : ServiceHub
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.protocols/-state-machine-run-id/create-random.html b/docs/build/html/api/net.corda.core.protocols/-state-machine-run-id/create-random.html
new file mode 100644
index 0000000000..3d5e524698
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.protocols/-state-machine-run-id/create-random.html
@@ -0,0 +1,15 @@
+
+
+StateMachineRunId.createRandom -
+
+
+
+net.corda.core.protocols / StateMachineRunId / createRandom
+
+createRandom
+
+fun createRandom ( ) : StateMachineRunId
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.protocols/-state-machine-run-id/index.html b/docs/build/html/api/net.corda.core.protocols/-state-machine-run-id/index.html
new file mode 100644
index 0000000000..ce9dc1ffe4
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.protocols/-state-machine-run-id/index.html
@@ -0,0 +1,53 @@
+
+
+StateMachineRunId -
+
+
+
+net.corda.core.protocols / StateMachineRunId
+
+StateMachineRunId
+data class StateMachineRunId
+
+
+Properties
+
+Functions
+
+
+
+
+toString
+
+fun toString ( ) : String
+
+
+
+Companion Object Functions
+
+
+
+
+createRandom
+
+fun createRandom ( ) : StateMachineRunId
+
+
+
+wrap
+
+fun wrap ( uuid : UUID ) : StateMachineRunId
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.protocols/-state-machine-run-id/to-string.html b/docs/build/html/api/net.corda.core.protocols/-state-machine-run-id/to-string.html
new file mode 100644
index 0000000000..f48b85242b
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.protocols/-state-machine-run-id/to-string.html
@@ -0,0 +1,15 @@
+
+
+StateMachineRunId.toString -
+
+
+
+net.corda.core.protocols / StateMachineRunId / toString
+
+toString
+
+fun toString ( ) : String
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.protocols/-state-machine-run-id/uuid.html b/docs/build/html/api/net.corda.core.protocols/-state-machine-run-id/uuid.html
new file mode 100644
index 0000000000..822dd9b675
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.protocols/-state-machine-run-id/uuid.html
@@ -0,0 +1,15 @@
+
+
+StateMachineRunId.uuid -
+
+
+
+net.corda.core.protocols / StateMachineRunId / uuid
+
+uuid
+
+val uuid : UUID
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.protocols/-state-machine-run-id/wrap.html b/docs/build/html/api/net.corda.core.protocols/-state-machine-run-id/wrap.html
new file mode 100644
index 0000000000..71c9adc3b6
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.protocols/-state-machine-run-id/wrap.html
@@ -0,0 +1,15 @@
+
+
+StateMachineRunId.wrap -
+
+
+
+net.corda.core.protocols / StateMachineRunId / wrap
+
+wrap
+
+fun wrap ( uuid : UUID ) : StateMachineRunId
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.protocols/index.html b/docs/build/html/api/net.corda.core.protocols/index.html
new file mode 100644
index 0000000000..932ad49a05
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.protocols/index.html
@@ -0,0 +1,78 @@
+
+
+net.corda.core.protocols -
+
+
+
+net.corda.core.protocols
+
+Package net.corda.core.protocols
+Types
+
+
+
+
+AppContext
+
+data class AppContext
This is just some way to track what attachments need to be in the class loader, but may later include some app
+properties loaded from the attachments. And perhaps the authenticated user for an API call?
+
+
+
+
+ProtocolLogic
+
+abstract class ProtocolLogic < out T >
A sub-class of ProtocolLogic implements a protocol flow using direct, straight line blocking code. Thus you
+can write complex protocol logic in an ordinary fashion, without having to think about callbacks, restarting after
+a node crash, how many instances of your protocol there are running and so on.
+
+
+
+
+ProtocolLogicRef
+
+data class ProtocolLogicRef
A class representing a ProtocolLogic instance which would be possible to safely pass out of the contract sandbox.
+
+
+
+
+ProtocolLogicRefFactory
+
+class ProtocolLogicRefFactory : SingletonSerializeAsToken
A class for conversion to and from ProtocolLogic and ProtocolLogicRef instances.
+
+
+
+
+ProtocolStateMachine
+
+interface ProtocolStateMachine < R >
A ProtocolStateMachine instance is a suspendable fiber that delegates all actual logic to a ProtocolLogic instance.
+For any given flow there is only one PSM, even if that protocol invokes subprotocols.
+
+
+
+
+StateMachineRunId
+
+data class StateMachineRunId
+
+
+
+Exceptions
+
+
+
diff --git a/docs/build/html/api/net.corda.core.schemas/-mapped-schema/-init-.html b/docs/build/html/api/net.corda.core.schemas/-mapped-schema/-init-.html
new file mode 100644
index 0000000000..dc2750d73d
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.schemas/-mapped-schema/-init-.html
@@ -0,0 +1,25 @@
+
+
+MappedSchema. -
+
+
+
+net.corda.core.schemas / MappedSchema / <init>
+
+<init>
+MappedSchema ( schemaFamily : Class < * > , version : Int , mappedTypes : Iterable < Class < * > > )
+A database schema that might be configured for this node. As well as a name and version for identifying the schema,
+also list the classes that may be used in the generated object graph in order to configure the ORM tool.
+Parameters
+
+schemaFamily
- A class to fully qualify the name of a schema family (i.e. excludes version)
+
+
+version
- The version number of this instance within the family.
+
+
+mappedTypes
- The JPA entity classes that the ORM layer needs to be configure with for this schema.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.schemas/-mapped-schema/index.html b/docs/build/html/api/net.corda.core.schemas/-mapped-schema/index.html
new file mode 100644
index 0000000000..310eb79d7b
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.schemas/-mapped-schema/index.html
@@ -0,0 +1,93 @@
+
+
+MappedSchema -
+
+
+
+net.corda.core.schemas / MappedSchema
+
+MappedSchema
+abstract class MappedSchema
+A database schema that might be configured for this node. As well as a name and version for identifying the schema,
+also list the classes that may be used in the generated object graph in order to configure the ORM tool.
+Parameters
+
+schemaFamily
- A class to fully qualify the name of a schema family (i.e. excludes version)
+
+
+version
- The version number of this instance within the family.
+
+
+mappedTypes
- The JPA entity classes that the ORM layer needs to be configure with for this schema.
+
+
+Constructors
+
+
+
+
+<init>
+
+MappedSchema ( schemaFamily : Class < * > , version : Int , mappedTypes : Iterable < Class < * > > )
A database schema that might be configured for this node. As well as a name and version for identifying the schema,
+also list the classes that may be used in the generated object graph in order to configure the ORM tool.
+
+
+
+
+Properties
+
+Functions
+
+
+
+
+toString
+
+open fun toString ( ) : String
+
+
+
+Inheritors
+
+
+
+
+CashSchemaV1
+
+object CashSchemaV1 : MappedSchema
First version of a cash contract ORM schema that maps all fields of the Cash contract state as it stood
+at the time of writing.
+
+
+
+
+CommercialPaperSchemaV1
+
+object CommercialPaperSchemaV1 : MappedSchema
First version of a commercial paper contract ORM schema that maps all fields of the CommercialPaper contract state
+as it stood at the time of writing.
+
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.schemas/-mapped-schema/mapped-types.html b/docs/build/html/api/net.corda.core.schemas/-mapped-schema/mapped-types.html
new file mode 100644
index 0000000000..2eb0175d31
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.schemas/-mapped-schema/mapped-types.html
@@ -0,0 +1,15 @@
+
+
+MappedSchema.mappedTypes -
+
+
+
+net.corda.core.schemas / MappedSchema / mappedTypes
+
+mappedTypes
+
+val mappedTypes : Iterable < Class < * > >
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.schemas/-mapped-schema/name.html b/docs/build/html/api/net.corda.core.schemas/-mapped-schema/name.html
new file mode 100644
index 0000000000..a51a86ab26
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.schemas/-mapped-schema/name.html
@@ -0,0 +1,15 @@
+
+
+MappedSchema.name -
+
+
+
+net.corda.core.schemas / MappedSchema / name
+
+name
+
+val name : String
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.schemas/-mapped-schema/to-string.html b/docs/build/html/api/net.corda.core.schemas/-mapped-schema/to-string.html
new file mode 100644
index 0000000000..f6e241c32b
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.schemas/-mapped-schema/to-string.html
@@ -0,0 +1,15 @@
+
+
+MappedSchema.toString -
+
+
+
+net.corda.core.schemas / MappedSchema / toString
+
+toString
+
+open fun toString ( ) : String
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.schemas/-mapped-schema/version.html b/docs/build/html/api/net.corda.core.schemas/-mapped-schema/version.html
new file mode 100644
index 0000000000..a502747b2e
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.schemas/-mapped-schema/version.html
@@ -0,0 +1,15 @@
+
+
+MappedSchema.version -
+
+
+
+net.corda.core.schemas / MappedSchema / version
+
+version
+
+val version : Int
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.schemas/-persistent-state-ref/--index--.html b/docs/build/html/api/net.corda.core.schemas/-persistent-state-ref/--index--.html
new file mode 100644
index 0000000000..d72e474b40
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.schemas/-persistent-state-ref/--index--.html
@@ -0,0 +1,15 @@
+
+
+PersistentStateRef.index -
+
+
+
+net.corda.core.schemas / PersistentStateRef / index
+
+index
+
+var index : Int ?
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.schemas/-persistent-state-ref/-init-.html b/docs/build/html/api/net.corda.core.schemas/-persistent-state-ref/-init-.html
new file mode 100644
index 0000000000..6a5d930448
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.schemas/-persistent-state-ref/-init-.html
@@ -0,0 +1,19 @@
+
+
+PersistentStateRef. -
+
+
+
+net.corda.core.schemas / PersistentStateRef / <init>
+
+<init>
+PersistentStateRef ( stateRef : StateRef )
+PersistentStateRef ( )
+
+
+PersistentStateRef ( txId : String ? , index : Int ? )
+Embedded StateRef representation used in state mapping.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.schemas/-persistent-state-ref/index.html b/docs/build/html/api/net.corda.core.schemas/-persistent-state-ref/index.html
new file mode 100644
index 0000000000..1e7365285b
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.schemas/-persistent-state-ref/index.html
@@ -0,0 +1,45 @@
+
+
+PersistentStateRef -
+
+
+
+net.corda.core.schemas / PersistentStateRef
+
+PersistentStateRef
+data class PersistentStateRef : Serializable
+Embedded StateRef representation used in state mapping.
+
+
+Constructors
+
+
+
+
+<init>
+
+PersistentStateRef ( stateRef : StateRef )
+PersistentStateRef ( )
PersistentStateRef ( txId : String ? , index : Int ? )
Embedded StateRef representation used in state mapping.
+
+
+
+
+Properties
+
+
+
+
+index
+
+var index : Int ?
+
+
+
+txId
+
+var txId : String ?
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.schemas/-persistent-state-ref/tx-id.html b/docs/build/html/api/net.corda.core.schemas/-persistent-state-ref/tx-id.html
new file mode 100644
index 0000000000..098e0f7b65
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.schemas/-persistent-state-ref/tx-id.html
@@ -0,0 +1,15 @@
+
+
+PersistentStateRef.txId -
+
+
+
+net.corda.core.schemas / PersistentStateRef / txId
+
+txId
+
+var txId : String ?
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.schemas/-persistent-state/-init-.html b/docs/build/html/api/net.corda.core.schemas/-persistent-state/-init-.html
new file mode 100644
index 0000000000..12b1a542cd
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.schemas/-persistent-state/-init-.html
@@ -0,0 +1,16 @@
+
+
+PersistentState. -
+
+
+
+net.corda.core.schemas / PersistentState / <init>
+
+<init>
+PersistentState ( stateRef : PersistentStateRef ? = null)
+A super class for all mapped states exported to a schema that ensures the StateRef appears on the database row. The
+StateRef will be set to the correct value by the framework (theres no need to set during mapping generation by the state itself).
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.schemas/-persistent-state/index.html b/docs/build/html/api/net.corda.core.schemas/-persistent-state/index.html
new file mode 100644
index 0000000000..1596e6c01a
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.schemas/-persistent-state/index.html
@@ -0,0 +1,57 @@
+
+
+PersistentState -
+
+
+
+net.corda.core.schemas / PersistentState
+
+PersistentState
+open class PersistentState
+A super class for all mapped states exported to a schema that ensures the StateRef appears on the database row. The
+StateRef will be set to the correct value by the framework (theres no need to set during mapping generation by the state itself).
+
+
+Constructors
+
+
+
+
+<init>
+
+PersistentState ( stateRef : PersistentStateRef ? = null)
A super class for all mapped states exported to a schema that ensures the StateRef appears on the database row. The
+StateRef will be set to the correct value by the framework (theres no need to set during mapping generation by the state itself).
+
+
+
+
+Properties
+
+Inheritors
+
+
+
diff --git a/docs/build/html/api/net.corda.core.schemas/-persistent-state/state-ref.html b/docs/build/html/api/net.corda.core.schemas/-persistent-state/state-ref.html
new file mode 100644
index 0000000000..cc11bd2cdc
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.schemas/-persistent-state/state-ref.html
@@ -0,0 +1,15 @@
+
+
+PersistentState.stateRef -
+
+
+
+net.corda.core.schemas / PersistentState / stateRef
+
+stateRef
+
+var stateRef : PersistentStateRef ?
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.schemas/-queryable-state/generate-mapped-object.html b/docs/build/html/api/net.corda.core.schemas/-queryable-state/generate-mapped-object.html
new file mode 100644
index 0000000000..0824ad1183
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.schemas/-queryable-state/generate-mapped-object.html
@@ -0,0 +1,16 @@
+
+
+QueryableState.generateMappedObject -
+
+
+
+net.corda.core.schemas / QueryableState / generateMappedObject
+
+generateMappedObject
+
+abstract fun generateMappedObject ( schema : MappedSchema ) : PersistentState
+Export a representation for the given schema.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.schemas/-queryable-state/index.html b/docs/build/html/api/net.corda.core.schemas/-queryable-state/index.html
new file mode 100644
index 0000000000..aa1d8d49ab
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.schemas/-queryable-state/index.html
@@ -0,0 +1,91 @@
+
+
+QueryableState -
+
+
+
+net.corda.core.schemas / QueryableState
+
+QueryableState
+interface QueryableState : ContractState
+A contract state that may be mapped to database schemas configured for this node to support querying for,
+or filtering of, states.
+
+
+Inherited Properties
+
+
+
+
+contract
+
+abstract val contract : Contract
An instance of the contract class that will verify this state.
+
+
+
+
+encumbrance
+
+open val encumbrance : Int ?
All contract states may be encumbered by up to one other state.
+
+
+
+
+participants
+
+abstract val participants : List < PublicKey >
A participant is any party that is able to consume this state in a valid transaction.
+
+
+
+
+Functions
+
+Extension Functions
+
+
+
+
+hash
+
+fun ContractState . hash ( ) : SecureHash
Returns the SHA-256 hash of the serialised contents of this state (not cached)
+
+
+
+
+Inheritors
+
+
+
diff --git a/docs/build/html/api/net.corda.core.schemas/-queryable-state/supported-schemas.html b/docs/build/html/api/net.corda.core.schemas/-queryable-state/supported-schemas.html
new file mode 100644
index 0000000000..568d1bc077
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.schemas/-queryable-state/supported-schemas.html
@@ -0,0 +1,16 @@
+
+
+QueryableState.supportedSchemas -
+
+
+
+net.corda.core.schemas / QueryableState / supportedSchemas
+
+supportedSchemas
+
+abstract fun supportedSchemas ( ) : Iterable < MappedSchema >
+Enumerate the schemas this state can export representations of itself as.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.schemas/index.html b/docs/build/html/api/net.corda.core.schemas/index.html
new file mode 100644
index 0000000000..bc086e19d3
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.schemas/index.html
@@ -0,0 +1,47 @@
+
+
+net.corda.core.schemas -
+
+
+
+net.corda.core.schemas
+
+Package net.corda.core.schemas
+Types
+
+
+
+
+MappedSchema
+
+abstract class MappedSchema
A database schema that might be configured for this node. As well as a name and version for identifying the schema,
+also list the classes that may be used in the generated object graph in order to configure the ORM tool.
+
+
+
+
+PersistentState
+
+open class PersistentState
A super class for all mapped states exported to a schema that ensures the StateRef appears on the database row. The
+StateRef will be set to the correct value by the framework (theres no need to set during mapping generation by the state itself).
+
+
+
+
+PersistentStateRef
+
+data class PersistentStateRef : Serializable
Embedded StateRef representation used in state mapping.
+
+
+
+
+QueryableState
+
+interface QueryableState : ContractState
A contract state that may be mapped to database schemas configured for this node to support querying for,
+or filtering of, states.
+
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.serialization/-a-t-t-a-c-h-m-e-n-t_-s-t-o-r-a-g-e.html b/docs/build/html/api/net.corda.core.serialization/-a-t-t-a-c-h-m-e-n-t_-s-t-o-r-a-g-e.html
new file mode 100644
index 0000000000..7d51f40fc1
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.serialization/-a-t-t-a-c-h-m-e-n-t_-s-t-o-r-a-g-e.html
@@ -0,0 +1,15 @@
+
+
+ATTACHMENT_STORAGE -
+
+
+
+net.corda.core.serialization / ATTACHMENT_STORAGE
+
+ATTACHMENT_STORAGE
+
+val ATTACHMENT_STORAGE : String
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.serialization/-deserialize-as-kotlin-object-def.html b/docs/build/html/api/net.corda.core.serialization/-deserialize-as-kotlin-object-def.html
new file mode 100644
index 0000000000..0c9a51945b
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.serialization/-deserialize-as-kotlin-object-def.html
@@ -0,0 +1,28 @@
+
+
+DeserializeAsKotlinObjectDef -
+
+
+
+net.corda.core.serialization / DeserializeAsKotlinObjectDef
+
+DeserializeAsKotlinObjectDef
+interface DeserializeAsKotlinObjectDef
+Marker interface for kotlin object definitions so that they are deserialized as the singleton instance.
+
+
+Inheritors
+
+
+
+
+Ack
+
+object Ack : DeserializeAsKotlinObjectDef
A general Ack message that conveys no content other than its presence for use when you want an acknowledgement
+from a recipient. Using Unit can be ambiguous as it is similar to Void and so could mean no response.
+
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.serialization/-ed25519-private-key-serializer/index.html b/docs/build/html/api/net.corda.core.serialization/-ed25519-private-key-serializer/index.html
new file mode 100644
index 0000000000..b0f0fb1f8c
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.serialization/-ed25519-private-key-serializer/index.html
@@ -0,0 +1,32 @@
+
+
+Ed25519PrivateKeySerializer -
+
+
+
+net.corda.core.serialization / Ed25519PrivateKeySerializer
+
+Ed25519PrivateKeySerializer
+object Ed25519PrivateKeySerializer
+For serialising an ed25519 private key
+
+
+Functions
+
+
+
+
+read
+
+fun read ( kryo : <ERROR CLASS> , input : <ERROR CLASS> , type : Class < <ERROR CLASS> > ) : <ERROR CLASS>
+
+
+
+write
+
+fun write ( kryo : <ERROR CLASS> , output : <ERROR CLASS> , obj : <ERROR CLASS> ) : Unit
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.serialization/-ed25519-private-key-serializer/read.html b/docs/build/html/api/net.corda.core.serialization/-ed25519-private-key-serializer/read.html
new file mode 100644
index 0000000000..ae1e8e35ff
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.serialization/-ed25519-private-key-serializer/read.html
@@ -0,0 +1,15 @@
+
+
+Ed25519PrivateKeySerializer.read -
+
+
+
+net.corda.core.serialization / Ed25519PrivateKeySerializer / read
+
+read
+
+fun read ( kryo : <ERROR CLASS> , input : <ERROR CLASS> , type : Class < <ERROR CLASS> > ) : <ERROR CLASS>
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.serialization/-ed25519-private-key-serializer/write.html b/docs/build/html/api/net.corda.core.serialization/-ed25519-private-key-serializer/write.html
new file mode 100644
index 0000000000..549017f24e
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.serialization/-ed25519-private-key-serializer/write.html
@@ -0,0 +1,15 @@
+
+
+Ed25519PrivateKeySerializer.write -
+
+
+
+net.corda.core.serialization / Ed25519PrivateKeySerializer / write
+
+write
+
+fun write ( kryo : <ERROR CLASS> , output : <ERROR CLASS> , obj : <ERROR CLASS> ) : Unit
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.serialization/-ed25519-public-key-serializer/index.html b/docs/build/html/api/net.corda.core.serialization/-ed25519-public-key-serializer/index.html
new file mode 100644
index 0000000000..43fd6ec80d
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.serialization/-ed25519-public-key-serializer/index.html
@@ -0,0 +1,32 @@
+
+
+Ed25519PublicKeySerializer -
+
+
+
+net.corda.core.serialization / Ed25519PublicKeySerializer
+
+Ed25519PublicKeySerializer
+object Ed25519PublicKeySerializer
+For serialising an ed25519 public key
+
+
+Functions
+
+
+
+
+read
+
+fun read ( kryo : <ERROR CLASS> , input : <ERROR CLASS> , type : Class < <ERROR CLASS> > ) : <ERROR CLASS>
+
+
+
+write
+
+fun write ( kryo : <ERROR CLASS> , output : <ERROR CLASS> , obj : <ERROR CLASS> ) : Unit
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.serialization/-ed25519-public-key-serializer/read.html b/docs/build/html/api/net.corda.core.serialization/-ed25519-public-key-serializer/read.html
new file mode 100644
index 0000000000..48fd7020c1
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.serialization/-ed25519-public-key-serializer/read.html
@@ -0,0 +1,15 @@
+
+
+Ed25519PublicKeySerializer.read -
+
+
+
+net.corda.core.serialization / Ed25519PublicKeySerializer / read
+
+read
+
+fun read ( kryo : <ERROR CLASS> , input : <ERROR CLASS> , type : Class < <ERROR CLASS> > ) : <ERROR CLASS>
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.serialization/-ed25519-public-key-serializer/write.html b/docs/build/html/api/net.corda.core.serialization/-ed25519-public-key-serializer/write.html
new file mode 100644
index 0000000000..074763447b
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.serialization/-ed25519-public-key-serializer/write.html
@@ -0,0 +1,15 @@
+
+
+Ed25519PublicKeySerializer.write -
+
+
+
+net.corda.core.serialization / Ed25519PublicKeySerializer / write
+
+write
+
+fun write ( kryo : <ERROR CLASS> , output : <ERROR CLASS> , obj : <ERROR CLASS> ) : Unit
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.serialization/-immutable-class-serializer/-init-.html b/docs/build/html/api/net.corda.core.serialization/-immutable-class-serializer/-init-.html
new file mode 100644
index 0000000000..b925780fbe
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.serialization/-immutable-class-serializer/-init-.html
@@ -0,0 +1,16 @@
+
+
+ImmutableClassSerializer. -
+
+
+
+net.corda.core.serialization / ImmutableClassSerializer / <init>
+
+<init>
+ImmutableClassSerializer ( klass : KClass < T > )
+Serializes properties and deserializes by using the constructor. This assumes that all backed properties are
+set via the constructor and the class is immutable.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.serialization/-immutable-class-serializer/constructor.html b/docs/build/html/api/net.corda.core.serialization/-immutable-class-serializer/constructor.html
new file mode 100644
index 0000000000..d525128d15
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.serialization/-immutable-class-serializer/constructor.html
@@ -0,0 +1,15 @@
+
+
+ImmutableClassSerializer.constructor -
+
+
+
+net.corda.core.serialization / ImmutableClassSerializer / constructor
+
+constructor
+
+val constructor : <ERROR CLASS>
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.serialization/-immutable-class-serializer/index.html b/docs/build/html/api/net.corda.core.serialization/-immutable-class-serializer/index.html
new file mode 100644
index 0000000000..1e5149326b
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.serialization/-immutable-class-serializer/index.html
@@ -0,0 +1,75 @@
+
+
+ImmutableClassSerializer -
+
+
+
+net.corda.core.serialization / ImmutableClassSerializer
+
+ImmutableClassSerializer
+class ImmutableClassSerializer < T : Any >
+Serializes properties and deserializes by using the constructor. This assumes that all backed properties are
+set via the constructor and the class is immutable.
+
+
+Constructors
+
+
+
+
+<init>
+
+ImmutableClassSerializer ( klass : KClass < T > )
Serializes properties and deserializes by using the constructor. This assumes that all backed properties are
+set via the constructor and the class is immutable.
+
+
+
+
+Properties
+
+
+
+
+constructor
+
+val constructor : <ERROR CLASS>
+
+
+
+klass
+
+val klass : KClass < T >
+
+
+
+props
+
+val props : <ERROR CLASS>
+
+
+
+propsByName
+
+val propsByName : <ERROR CLASS>
+
+
+
+Functions
+
+
+
+
+read
+
+fun read ( kryo : <ERROR CLASS> , input : <ERROR CLASS> , type : Class < T > ) : T
+
+
+
+write
+
+fun write ( kryo : <ERROR CLASS> , output : <ERROR CLASS> , obj : T ) : Unit
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.serialization/-immutable-class-serializer/klass.html b/docs/build/html/api/net.corda.core.serialization/-immutable-class-serializer/klass.html
new file mode 100644
index 0000000000..c64a4042a8
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.serialization/-immutable-class-serializer/klass.html
@@ -0,0 +1,15 @@
+
+
+ImmutableClassSerializer.klass -
+
+
+
+net.corda.core.serialization / ImmutableClassSerializer / klass
+
+klass
+
+val klass : KClass < T >
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.serialization/-immutable-class-serializer/props-by-name.html b/docs/build/html/api/net.corda.core.serialization/-immutable-class-serializer/props-by-name.html
new file mode 100644
index 0000000000..5596880916
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.serialization/-immutable-class-serializer/props-by-name.html
@@ -0,0 +1,15 @@
+
+
+ImmutableClassSerializer.propsByName -
+
+
+
+net.corda.core.serialization / ImmutableClassSerializer / propsByName
+
+propsByName
+
+val propsByName : <ERROR CLASS>
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.serialization/-immutable-class-serializer/props.html b/docs/build/html/api/net.corda.core.serialization/-immutable-class-serializer/props.html
new file mode 100644
index 0000000000..fd774183e4
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.serialization/-immutable-class-serializer/props.html
@@ -0,0 +1,15 @@
+
+
+ImmutableClassSerializer.props -
+
+
+
+net.corda.core.serialization / ImmutableClassSerializer / props
+
+props
+
+val props : <ERROR CLASS>
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.serialization/-immutable-class-serializer/read.html b/docs/build/html/api/net.corda.core.serialization/-immutable-class-serializer/read.html
new file mode 100644
index 0000000000..791b1a5416
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.serialization/-immutable-class-serializer/read.html
@@ -0,0 +1,15 @@
+
+
+ImmutableClassSerializer.read -
+
+
+
+net.corda.core.serialization / ImmutableClassSerializer / read
+
+read
+
+fun read ( kryo : <ERROR CLASS> , input : <ERROR CLASS> , type : Class < T > ) : T
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.serialization/-immutable-class-serializer/write.html b/docs/build/html/api/net.corda.core.serialization/-immutable-class-serializer/write.html
new file mode 100644
index 0000000000..47a3611998
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.serialization/-immutable-class-serializer/write.html
@@ -0,0 +1,15 @@
+
+
+ImmutableClassSerializer.write -
+
+
+
+net.corda.core.serialization / ImmutableClassSerializer / write
+
+write
+
+fun write ( kryo : <ERROR CLASS> , output : <ERROR CLASS> , obj : T ) : Unit
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.serialization/-kotlin-object-serializer/index.html b/docs/build/html/api/net.corda.core.serialization/-kotlin-object-serializer/index.html
new file mode 100644
index 0000000000..fea75efe2c
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.serialization/-kotlin-object-serializer/index.html
@@ -0,0 +1,32 @@
+
+
+KotlinObjectSerializer -
+
+
+
+net.corda.core.serialization / KotlinObjectSerializer
+
+KotlinObjectSerializer
+object KotlinObjectSerializer
+Serializer to deserialize kotlin object definitions marked with DeserializeAsKotlinObjectDef .
+
+
+Functions
+
+
+
diff --git a/docs/build/html/api/net.corda.core.serialization/-kotlin-object-serializer/read.html b/docs/build/html/api/net.corda.core.serialization/-kotlin-object-serializer/read.html
new file mode 100644
index 0000000000..89ddc480b9
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.serialization/-kotlin-object-serializer/read.html
@@ -0,0 +1,15 @@
+
+
+KotlinObjectSerializer.read -
+
+
+
+net.corda.core.serialization / KotlinObjectSerializer / read
+
+read
+
+fun read ( kryo : <ERROR CLASS> , input : <ERROR CLASS> , type : Class < DeserializeAsKotlinObjectDef > ) : DeserializeAsKotlinObjectDef
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.serialization/-kotlin-object-serializer/write.html b/docs/build/html/api/net.corda.core.serialization/-kotlin-object-serializer/write.html
new file mode 100644
index 0000000000..240688b3c8
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.serialization/-kotlin-object-serializer/write.html
@@ -0,0 +1,15 @@
+
+
+KotlinObjectSerializer.write -
+
+
+
+net.corda.core.serialization / KotlinObjectSerializer / write
+
+write
+
+fun write ( kryo : <ERROR CLASS> , output : <ERROR CLASS> , obj : DeserializeAsKotlinObjectDef ) : Unit
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.serialization/-missing-attachments-exception/-init-.html b/docs/build/html/api/net.corda.core.serialization/-missing-attachments-exception/-init-.html
new file mode 100644
index 0000000000..9b91be9639
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.serialization/-missing-attachments-exception/-init-.html
@@ -0,0 +1,15 @@
+
+
+MissingAttachmentsException. -
+
+
+
+net.corda.core.serialization / MissingAttachmentsException / <init>
+
+<init>
+MissingAttachmentsException ( ids : List < SecureHash > )
+Thrown during deserialisation to indicate that an attachment needed to construct the WireTransaction is not found
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.serialization/-missing-attachments-exception/ids.html b/docs/build/html/api/net.corda.core.serialization/-missing-attachments-exception/ids.html
new file mode 100644
index 0000000000..d64a227619
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.serialization/-missing-attachments-exception/ids.html
@@ -0,0 +1,15 @@
+
+
+MissingAttachmentsException.ids -
+
+
+
+net.corda.core.serialization / MissingAttachmentsException / ids
+
+ids
+
+val ids : List < SecureHash >
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.serialization/-missing-attachments-exception/index.html b/docs/build/html/api/net.corda.core.serialization/-missing-attachments-exception/index.html
new file mode 100644
index 0000000000..3e3c758ce6
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.serialization/-missing-attachments-exception/index.html
@@ -0,0 +1,49 @@
+
+
+MissingAttachmentsException -
+
+
+
+net.corda.core.serialization / MissingAttachmentsException
+
+MissingAttachmentsException
+class MissingAttachmentsException : Exception
+Thrown during deserialisation to indicate that an attachment needed to construct the WireTransaction is not found
+
+
+Constructors
+
+
+
+
+<init>
+
+MissingAttachmentsException ( ids : List < SecureHash > )
Thrown during deserialisation to indicate that an attachment needed to construct the WireTransaction is not found
+
+
+
+
+Properties
+
+Extension Properties
+
+
+
+
+rootCause
+
+val Throwable . rootCause : Throwable
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.serialization/-no-references-serializer/-init-.html b/docs/build/html/api/net.corda.core.serialization/-no-references-serializer/-init-.html
new file mode 100644
index 0000000000..7f45c885a2
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.serialization/-no-references-serializer/-init-.html
@@ -0,0 +1,14 @@
+
+
+NoReferencesSerializer. -
+
+
+
+net.corda.core.serialization / NoReferencesSerializer / <init>
+
+<init>
+NoReferencesSerializer ( baseSerializer : <ERROR CLASS> < T > )
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.serialization/-no-references-serializer/base-serializer.html b/docs/build/html/api/net.corda.core.serialization/-no-references-serializer/base-serializer.html
new file mode 100644
index 0000000000..de701ed1e6
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.serialization/-no-references-serializer/base-serializer.html
@@ -0,0 +1,15 @@
+
+
+NoReferencesSerializer.baseSerializer -
+
+
+
+net.corda.core.serialization / NoReferencesSerializer / baseSerializer
+
+baseSerializer
+
+val baseSerializer : <ERROR CLASS> < T >
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.serialization/-no-references-serializer/index.html b/docs/build/html/api/net.corda.core.serialization/-no-references-serializer/index.html
new file mode 100644
index 0000000000..50b134f0b8
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.serialization/-no-references-serializer/index.html
@@ -0,0 +1,53 @@
+
+
+NoReferencesSerializer -
+
+
+
+net.corda.core.serialization / NoReferencesSerializer
+
+NoReferencesSerializer
+class NoReferencesSerializer < T >
+
+
+Constructors
+
+
+
+
+<init>
+
+NoReferencesSerializer ( baseSerializer : <ERROR CLASS> < T > )
+
+
+
+Properties
+
+Functions
+
+
+
+
+read
+
+fun read ( kryo : <ERROR CLASS> , input : <ERROR CLASS> , type : Class < T > ) : T
+
+
+
+write
+
+fun write ( kryo : <ERROR CLASS> , output : <ERROR CLASS> , obj : T ) : Unit
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.serialization/-no-references-serializer/read.html b/docs/build/html/api/net.corda.core.serialization/-no-references-serializer/read.html
new file mode 100644
index 0000000000..4571c454bd
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.serialization/-no-references-serializer/read.html
@@ -0,0 +1,15 @@
+
+
+NoReferencesSerializer.read -
+
+
+
+net.corda.core.serialization / NoReferencesSerializer / read
+
+read
+
+fun read ( kryo : <ERROR CLASS> , input : <ERROR CLASS> , type : Class < T > ) : T
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.serialization/-no-references-serializer/write.html b/docs/build/html/api/net.corda.core.serialization/-no-references-serializer/write.html
new file mode 100644
index 0000000000..245716f710
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.serialization/-no-references-serializer/write.html
@@ -0,0 +1,15 @@
+
+
+NoReferencesSerializer.write -
+
+
+
+net.corda.core.serialization / NoReferencesSerializer / write
+
+write
+
+fun write ( kryo : <ERROR CLASS> , output : <ERROR CLASS> , obj : T ) : Unit
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.serialization/-opaque-bytes/-init-.html b/docs/build/html/api/net.corda.core.serialization/-opaque-bytes/-init-.html
new file mode 100644
index 0000000000..1e28a050c8
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.serialization/-opaque-bytes/-init-.html
@@ -0,0 +1,17 @@
+
+
+OpaqueBytes. -
+
+
+
+net.corda.core.serialization / OpaqueBytes / <init>
+
+<init>
+OpaqueBytes ( bits : ByteArray )
+A simple class that wraps a byte array and makes the equals/hashCode/toString methods work as you actually expect.
+In an ideal JVM this would be a value type and be completely overhead free. Project Valhalla is adding such
+functionality to Java, but it wont arrive for a few years yet
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.serialization/-opaque-bytes/bits.html b/docs/build/html/api/net.corda.core.serialization/-opaque-bytes/bits.html
new file mode 100644
index 0000000000..1bef5933c4
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.serialization/-opaque-bytes/bits.html
@@ -0,0 +1,15 @@
+
+
+OpaqueBytes.bits -
+
+
+
+net.corda.core.serialization / OpaqueBytes / bits
+
+bits
+
+val bits : ByteArray
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.serialization/-opaque-bytes/equals.html b/docs/build/html/api/net.corda.core.serialization/-opaque-bytes/equals.html
new file mode 100644
index 0000000000..67cc8d7056
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.serialization/-opaque-bytes/equals.html
@@ -0,0 +1,15 @@
+
+
+OpaqueBytes.equals -
+
+
+
+net.corda.core.serialization / OpaqueBytes / equals
+
+equals
+
+open fun equals ( other : Any ? ) : Boolean
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.serialization/-opaque-bytes/hash-code.html b/docs/build/html/api/net.corda.core.serialization/-opaque-bytes/hash-code.html
new file mode 100644
index 0000000000..66971e60fd
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.serialization/-opaque-bytes/hash-code.html
@@ -0,0 +1,15 @@
+
+
+OpaqueBytes.hashCode -
+
+
+
+net.corda.core.serialization / OpaqueBytes / hashCode
+
+hashCode
+
+open fun hashCode ( ) : Int
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.serialization/-opaque-bytes/index.html b/docs/build/html/api/net.corda.core.serialization/-opaque-bytes/index.html
new file mode 100644
index 0000000000..e7e96e0ae7
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.serialization/-opaque-bytes/index.html
@@ -0,0 +1,136 @@
+
+
+OpaqueBytes -
+
+
+
+net.corda.core.serialization / OpaqueBytes
+
+OpaqueBytes
+open class OpaqueBytes
+A simple class that wraps a byte array and makes the equals/hashCode/toString methods work as you actually expect.
+In an ideal JVM this would be a value type and be completely overhead free. Project Valhalla is adding such
+functionality to Java, but it wont arrive for a few years yet
+
+
+Constructors
+
+
+
+
+<init>
+
+OpaqueBytes ( bits : ByteArray )
A simple class that wraps a byte array and makes the equals/hashCode/toString methods work as you actually expect.
+In an ideal JVM this would be a value type and be completely overhead free. Project Valhalla is adding such
+functionality to Java, but it wont arrive for a few years yet
+
+
+
+
+Properties
+
+
+
+
+bits
+
+val bits : ByteArray
+
+
+
+size
+
+val size : Int
+
+
+
+Functions
+
+Companion Object Functions
+
+
+
+
+of
+
+fun of ( vararg b : Byte ) : OpaqueBytes
+
+
+
+Extension Functions
+
+
+
+
+deserialize
+
+fun < T : Any > OpaqueBytes . deserialize ( kryo : <ERROR CLASS> = THREAD_LOCAL_KRYO.get()) : T
+
+
+
+sha256
+
+fun OpaqueBytes . sha256 ( ) : SHA256
+
+
+
+Inheritors
+
+
+
+
+DigitalSignature
+
+open class DigitalSignature : OpaqueBytes
A wrapper around a digital signature. The covering field is a generic tag usable by whatever is interpreting the
+signature. It isnt used currently, but experience from Bitcoin suggests such a feature is useful, especially when
+building partially signed transactions.
+
+
+
+
+SecureHash
+
+sealed class SecureHash : OpaqueBytes
Container for a cryptographically secure hash value.
+Provides utilities for generating a cryptographic hash using different algorithms (currently only SHA-256 supported).
+
+
+
+
+SerializedBytes
+
+class SerializedBytes < T : Any > : OpaqueBytes
A type safe wrapper around a byte array that contains a serialised object. You can call SerializedBytes.deserialize
+to get the original object back.
+
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.serialization/-opaque-bytes/of.html b/docs/build/html/api/net.corda.core.serialization/-opaque-bytes/of.html
new file mode 100644
index 0000000000..0eeaa13554
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.serialization/-opaque-bytes/of.html
@@ -0,0 +1,15 @@
+
+
+OpaqueBytes.of -
+
+
+
+net.corda.core.serialization / OpaqueBytes / of
+
+of
+
+fun of ( vararg b : Byte ) : OpaqueBytes
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.serialization/-opaque-bytes/open.html b/docs/build/html/api/net.corda.core.serialization/-opaque-bytes/open.html
new file mode 100644
index 0000000000..3e830007a3
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.serialization/-opaque-bytes/open.html
@@ -0,0 +1,16 @@
+
+
+OpaqueBytes.open -
+
+
+
+net.corda.core.serialization / OpaqueBytes / open
+
+open
+
+fun open ( ) : ByteArrayInputStream
+Returns a ByteArrayInputStream of the bytes
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.serialization/-opaque-bytes/size.html b/docs/build/html/api/net.corda.core.serialization/-opaque-bytes/size.html
new file mode 100644
index 0000000000..ae309e90db
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.serialization/-opaque-bytes/size.html
@@ -0,0 +1,15 @@
+
+
+OpaqueBytes.size -
+
+
+
+net.corda.core.serialization / OpaqueBytes / size
+
+size
+
+val size : Int
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.serialization/-opaque-bytes/to-string.html b/docs/build/html/api/net.corda.core.serialization/-opaque-bytes/to-string.html
new file mode 100644
index 0000000000..527f2f9759
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.serialization/-opaque-bytes/to-string.html
@@ -0,0 +1,15 @@
+
+
+OpaqueBytes.toString -
+
+
+
+net.corda.core.serialization / OpaqueBytes / toString
+
+toString
+
+open fun toString ( ) : String
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.serialization/-ordered-serializer/index.html b/docs/build/html/api/net.corda.core.serialization/-ordered-serializer/index.html
new file mode 100644
index 0000000000..99fcc8ea5a
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.serialization/-ordered-serializer/index.html
@@ -0,0 +1,31 @@
+
+
+OrderedSerializer -
+
+
+
+net.corda.core.serialization / OrderedSerializer
+
+OrderedSerializer
+object OrderedSerializer
+
+
+Functions
+
+
+
+
+read
+
+fun read ( kryo : <ERROR CLASS> , input : <ERROR CLASS> , type : Class < HashMap < Any , Any > > ) : HashMap < Any , Any >
+
+
+
+write
+
+fun write ( kryo : <ERROR CLASS> , output : <ERROR CLASS> , obj : HashMap < Any , Any > ) : Unit
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.serialization/-ordered-serializer/read.html b/docs/build/html/api/net.corda.core.serialization/-ordered-serializer/read.html
new file mode 100644
index 0000000000..c728c484e7
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.serialization/-ordered-serializer/read.html
@@ -0,0 +1,15 @@
+
+
+OrderedSerializer.read -
+
+
+
+net.corda.core.serialization / OrderedSerializer / read
+
+read
+
+fun read ( kryo : <ERROR CLASS> , input : <ERROR CLASS> , type : Class < HashMap < Any , Any > > ) : HashMap < Any , Any >
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.serialization/-ordered-serializer/write.html b/docs/build/html/api/net.corda.core.serialization/-ordered-serializer/write.html
new file mode 100644
index 0000000000..5a15ca50b3
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.serialization/-ordered-serializer/write.html
@@ -0,0 +1,15 @@
+
+
+OrderedSerializer.write -
+
+
+
+net.corda.core.serialization / OrderedSerializer / write
+
+write
+
+fun write ( kryo : <ERROR CLASS> , output : <ERROR CLASS> , obj : HashMap < Any , Any > ) : Unit
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.serialization/-references-aware-java-serializer/index.html b/docs/build/html/api/net.corda.core.serialization/-references-aware-java-serializer/index.html
new file mode 100644
index 0000000000..32305dc4f3
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.serialization/-references-aware-java-serializer/index.html
@@ -0,0 +1,32 @@
+
+
+ReferencesAwareJavaSerializer -
+
+
+
+net.corda.core.serialization / ReferencesAwareJavaSerializer
+
+ReferencesAwareJavaSerializer
+object ReferencesAwareJavaSerializer
+Improvement to the builtin JavaSerializer by honouring the Kryo.getReferences setting.
+
+
+Functions
+
+
+
+
+read
+
+fun read ( kryo : <ERROR CLASS> , input : <ERROR CLASS> , type : Class < Any > ) : Any
+
+
+
+write
+
+fun write ( kryo : <ERROR CLASS> , output : <ERROR CLASS> , obj : Any ) : Unit
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.serialization/-references-aware-java-serializer/read.html b/docs/build/html/api/net.corda.core.serialization/-references-aware-java-serializer/read.html
new file mode 100644
index 0000000000..b0636d1f3b
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.serialization/-references-aware-java-serializer/read.html
@@ -0,0 +1,15 @@
+
+
+ReferencesAwareJavaSerializer.read -
+
+
+
+net.corda.core.serialization / ReferencesAwareJavaSerializer / read
+
+read
+
+fun read ( kryo : <ERROR CLASS> , input : <ERROR CLASS> , type : Class < Any > ) : Any
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.serialization/-references-aware-java-serializer/write.html b/docs/build/html/api/net.corda.core.serialization/-references-aware-java-serializer/write.html
new file mode 100644
index 0000000000..036b54b4b4
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.serialization/-references-aware-java-serializer/write.html
@@ -0,0 +1,15 @@
+
+
+ReferencesAwareJavaSerializer.write -
+
+
+
+net.corda.core.serialization / ReferencesAwareJavaSerializer / write
+
+write
+
+fun write ( kryo : <ERROR CLASS> , output : <ERROR CLASS> , obj : Any ) : Unit
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.serialization/-serialization-token/from-token.html b/docs/build/html/api/net.corda.core.serialization/-serialization-token/from-token.html
new file mode 100644
index 0000000000..e21a8f337e
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.serialization/-serialization-token/from-token.html
@@ -0,0 +1,15 @@
+
+
+SerializationToken.fromToken -
+
+
+
+net.corda.core.serialization / SerializationToken / fromToken
+
+fromToken
+
+abstract fun fromToken ( context : SerializeAsTokenContext ) : Any
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.serialization/-serialization-token/index.html b/docs/build/html/api/net.corda.core.serialization/-serialization-token/index.html
new file mode 100644
index 0000000000..67480b465c
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.serialization/-serialization-token/index.html
@@ -0,0 +1,39 @@
+
+
+SerializationToken -
+
+
+
+net.corda.core.serialization / SerializationToken
+
+SerializationToken
+interface SerializationToken
+This represents a token in the serialized stream for an instance of a type that implements SerializeAsToken .
+
+
+Functions
+
+Inheritors
+
+
+
+
+SingletonSerializationToken
+
+data class SingletonSerializationToken : SerializationToken
A class representing a SerializationToken for some object that is not serializable but can be looked up
+(when deserialized) via just the class name.
+
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.serialization/-serialize-as-token-context/-init-.html b/docs/build/html/api/net.corda.core.serialization/-serialize-as-token-context/-init-.html
new file mode 100644
index 0000000000..290f119370
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.serialization/-serialize-as-token-context/-init-.html
@@ -0,0 +1,21 @@
+
+
+SerializeAsTokenContext. -
+
+
+
+net.corda.core.serialization / SerializeAsTokenContext / <init>
+
+<init>
+SerializeAsTokenContext ( toBeTokenized : Any , kryo : <ERROR CLASS> = createKryo())
+A context for mapping SerializationTokens to/from SerializeAsTokens.
+A context is initialised with an object containing all the instances of SerializeAsToken to eagerly register all the tokens.
+In our case this can be the ServiceHub .
+Then it is a case of using the companion object methods on SerializeAsTokenSerializer to set and clear context as necessary
+on the Kryo instance when serializing to enable/disable tokenization.
+
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.serialization/-serialize-as-token-context/index.html b/docs/build/html/api/net.corda.core.serialization/-serialize-as-token-context/index.html
new file mode 100644
index 0000000000..dd89134ed0
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.serialization/-serialize-as-token-context/index.html
@@ -0,0 +1,33 @@
+
+
+SerializeAsTokenContext -
+
+
+
+net.corda.core.serialization / SerializeAsTokenContext
+
+SerializeAsTokenContext
+class SerializeAsTokenContext
+A context for mapping SerializationTokens to/from SerializeAsTokens.
+A context is initialised with an object containing all the instances of SerializeAsToken to eagerly register all the tokens.
+In our case this can be the ServiceHub .
+Then it is a case of using the companion object methods on SerializeAsTokenSerializer to set and clear context as necessary
+on the Kryo instance when serializing to enable/disable tokenization.
+
+
+
+
+Constructors
+
+
+
+
+<init>
+
+SerializeAsTokenContext ( toBeTokenized : Any , kryo : <ERROR CLASS> = createKryo())
A context for mapping SerializationTokens to/from SerializeAsTokens.
+
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.serialization/-serialize-as-token-serializer/-init-.html b/docs/build/html/api/net.corda.core.serialization/-serialize-as-token-serializer/-init-.html
new file mode 100644
index 0000000000..9f30df991d
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.serialization/-serialize-as-token-serializer/-init-.html
@@ -0,0 +1,18 @@
+
+
+SerializeAsTokenSerializer. -
+
+
+
+net.corda.core.serialization / SerializeAsTokenSerializer / <init>
+
+<init>
+SerializeAsTokenSerializer ( )
+A Kryo serializer for SerializeAsToken implementations.
+This is registered in createKryo .
+
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.serialization/-serialize-as-token-serializer/clear-context.html b/docs/build/html/api/net.corda.core.serialization/-serialize-as-token-serializer/clear-context.html
new file mode 100644
index 0000000000..854e69653d
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.serialization/-serialize-as-token-serializer/clear-context.html
@@ -0,0 +1,15 @@
+
+
+SerializeAsTokenSerializer.clearContext -
+
+
+
+net.corda.core.serialization / SerializeAsTokenSerializer / clearContext
+
+clearContext
+
+fun clearContext ( kryo : <ERROR CLASS> ) : Unit
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.serialization/-serialize-as-token-serializer/index.html b/docs/build/html/api/net.corda.core.serialization/-serialize-as-token-serializer/index.html
new file mode 100644
index 0000000000..ef68b9fd31
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.serialization/-serialize-as-token-serializer/index.html
@@ -0,0 +1,64 @@
+
+
+SerializeAsTokenSerializer -
+
+
+
+net.corda.core.serialization / SerializeAsTokenSerializer
+
+SerializeAsTokenSerializer
+class SerializeAsTokenSerializer < T : SerializeAsToken >
+A Kryo serializer for SerializeAsToken implementations.
+This is registered in createKryo .
+
+
+
+
+Constructors
+
+Functions
+
+
+
+
+read
+
+fun read ( kryo : <ERROR CLASS> , input : <ERROR CLASS> , type : Class < T > ) : T
+
+
+
+write
+
+fun write ( kryo : <ERROR CLASS> , output : <ERROR CLASS> , obj : T ) : Unit
+
+
+
+Companion Object Functions
+
+
+
diff --git a/docs/build/html/api/net.corda.core.serialization/-serialize-as-token-serializer/read.html b/docs/build/html/api/net.corda.core.serialization/-serialize-as-token-serializer/read.html
new file mode 100644
index 0000000000..6aa6c79331
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.serialization/-serialize-as-token-serializer/read.html
@@ -0,0 +1,15 @@
+
+
+SerializeAsTokenSerializer.read -
+
+
+
+net.corda.core.serialization / SerializeAsTokenSerializer / read
+
+read
+
+fun read ( kryo : <ERROR CLASS> , input : <ERROR CLASS> , type : Class < T > ) : T
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.serialization/-serialize-as-token-serializer/set-context.html b/docs/build/html/api/net.corda.core.serialization/-serialize-as-token-serializer/set-context.html
new file mode 100644
index 0000000000..72485ca66f
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.serialization/-serialize-as-token-serializer/set-context.html
@@ -0,0 +1,15 @@
+
+
+SerializeAsTokenSerializer.setContext -
+
+
+
+net.corda.core.serialization / SerializeAsTokenSerializer / setContext
+
+setContext
+
+fun setContext ( kryo : <ERROR CLASS> , context : SerializeAsTokenContext ) : Unit
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.serialization/-serialize-as-token-serializer/write.html b/docs/build/html/api/net.corda.core.serialization/-serialize-as-token-serializer/write.html
new file mode 100644
index 0000000000..064a91f8b4
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.serialization/-serialize-as-token-serializer/write.html
@@ -0,0 +1,15 @@
+
+
+SerializeAsTokenSerializer.write -
+
+
+
+net.corda.core.serialization / SerializeAsTokenSerializer / write
+
+write
+
+fun write ( kryo : <ERROR CLASS> , output : <ERROR CLASS> , obj : T ) : Unit
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.serialization/-serialize-as-token/index.html b/docs/build/html/api/net.corda.core.serialization/-serialize-as-token/index.html
new file mode 100644
index 0000000000..80378fa532
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.serialization/-serialize-as-token/index.html
@@ -0,0 +1,57 @@
+
+
+SerializeAsToken -
+
+
+
+net.corda.core.serialization / SerializeAsToken
+
+SerializeAsToken
+interface SerializeAsToken
+This interface should be implemented by classes that want to substitute a token representation of themselves if
+they are serialized because they have a lot of internal state that does not serialize (well).
+This models a similar pattern to the readReplace/writeReplace methods in Java serialization.
+
+
+
+
+Functions
+
+Inheritors
+
+
+
+
+NodeClock
+
+class NodeClock : Clock , SerializeAsToken
A Clock that tokenizes itself when serialized, and delegates to an underlying Clock implementation.
+
+
+
+
+SingletonSerializeAsToken
+
+abstract class SingletonSerializeAsToken : SerializeAsToken
A base class for implementing large objects / components / services that need to serialize themselves to a string token
+to indicate which instance the token is a serialized form of.
+
+
+
+
+TestClock
+
+class TestClock : MutableClock , SerializeAsToken
A Clock that can have the date advanced for use in demos.
+
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.serialization/-serialize-as-token/to-token.html b/docs/build/html/api/net.corda.core.serialization/-serialize-as-token/to-token.html
new file mode 100644
index 0000000000..9ceb196431
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.serialization/-serialize-as-token/to-token.html
@@ -0,0 +1,15 @@
+
+
+SerializeAsToken.toToken -
+
+
+
+net.corda.core.serialization / SerializeAsToken / toToken
+
+toToken
+
+abstract fun toToken ( context : SerializeAsTokenContext ) : SerializationToken
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.serialization/-serialized-bytes-serializer/index.html b/docs/build/html/api/net.corda.core.serialization/-serialized-bytes-serializer/index.html
new file mode 100644
index 0000000000..98f81d657a
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.serialization/-serialized-bytes-serializer/index.html
@@ -0,0 +1,33 @@
+
+
+SerializedBytesSerializer -
+
+
+
+net.corda.core.serialization / SerializedBytesSerializer
+
+SerializedBytesSerializer
+object SerializedBytesSerializer
+A serialiser that avoids writing the wrapper class to the byte stream, thus ensuring SerializedBytes is a pure
+type safety hack.
+
+
+Functions
+
+
+
diff --git a/docs/build/html/api/net.corda.core.serialization/-serialized-bytes-serializer/read.html b/docs/build/html/api/net.corda.core.serialization/-serialized-bytes-serializer/read.html
new file mode 100644
index 0000000000..d87e23228c
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.serialization/-serialized-bytes-serializer/read.html
@@ -0,0 +1,15 @@
+
+
+SerializedBytesSerializer.read -
+
+
+
+net.corda.core.serialization / SerializedBytesSerializer / read
+
+read
+
+fun read ( kryo : <ERROR CLASS> , input : <ERROR CLASS> , type : Class < SerializedBytes < Any > > ) : SerializedBytes < Any >
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.serialization/-serialized-bytes-serializer/write.html b/docs/build/html/api/net.corda.core.serialization/-serialized-bytes-serializer/write.html
new file mode 100644
index 0000000000..3b74494044
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.serialization/-serialized-bytes-serializer/write.html
@@ -0,0 +1,15 @@
+
+
+SerializedBytesSerializer.write -
+
+
+
+net.corda.core.serialization / SerializedBytesSerializer / write
+
+write
+
+fun write ( kryo : <ERROR CLASS> , output : <ERROR CLASS> , obj : SerializedBytes < Any > ) : Unit
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.serialization/-serialized-bytes/-init-.html b/docs/build/html/api/net.corda.core.serialization/-serialized-bytes/-init-.html
new file mode 100644
index 0000000000..5ad5f03f27
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.serialization/-serialized-bytes/-init-.html
@@ -0,0 +1,16 @@
+
+
+SerializedBytes. -
+
+
+
+net.corda.core.serialization / SerializedBytes / <init>
+
+<init>
+SerializedBytes ( bits : ByteArray )
+A type safe wrapper around a byte array that contains a serialised object. You can call SerializedBytes.deserialize
+to get the original object back.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.serialization/-serialized-bytes/hash.html b/docs/build/html/api/net.corda.core.serialization/-serialized-bytes/hash.html
new file mode 100644
index 0000000000..293bc75316
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.serialization/-serialized-bytes/hash.html
@@ -0,0 +1,15 @@
+
+
+SerializedBytes.hash -
+
+
+
+net.corda.core.serialization / SerializedBytes / hash
+
+hash
+
+val hash : SecureHash
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.serialization/-serialized-bytes/index.html b/docs/build/html/api/net.corda.core.serialization/-serialized-bytes/index.html
new file mode 100644
index 0000000000..8f0ae7f9bc
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.serialization/-serialized-bytes/index.html
@@ -0,0 +1,117 @@
+
+
+SerializedBytes -
+
+
+
+net.corda.core.serialization / SerializedBytes
+
+SerializedBytes
+class SerializedBytes < T : Any > : OpaqueBytes
+A type safe wrapper around a byte array that contains a serialised object. You can call SerializedBytes.deserialize
+to get the original object back.
+
+
+Constructors
+
+
+
+
+<init>
+
+SerializedBytes ( bits : ByteArray )
A type safe wrapper around a byte array that contains a serialised object. You can call SerializedBytes.deserialize
+to get the original object back.
+
+
+
+
+Properties
+
+Inherited Properties
+
+
+
+
+bits
+
+val bits : ByteArray
+
+
+
+size
+
+val size : Int
+
+
+
+Functions
+
+Inherited Functions
+
+Extension Functions
+
+
+
+
+deserialize
+
+fun SerializedBytes < WireTransaction > . deserialize ( kryo : <ERROR CLASS> = THREAD_LOCAL_KRYO.get()) : WireTransaction
+fun < T : Any > SerializedBytes < T > . deserialize ( kryo : <ERROR CLASS> = THREAD_LOCAL_KRYO.get()) : T
+fun < T : Any > OpaqueBytes . deserialize ( kryo : <ERROR CLASS> = THREAD_LOCAL_KRYO.get()) : T
+
+
+
+sha256
+
+fun OpaqueBytes . sha256 ( ) : SHA256
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.serialization/-serialized-bytes/write-to-file.html b/docs/build/html/api/net.corda.core.serialization/-serialized-bytes/write-to-file.html
new file mode 100644
index 0000000000..b55ecc6bd9
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.serialization/-serialized-bytes/write-to-file.html
@@ -0,0 +1,15 @@
+
+
+SerializedBytes.writeToFile -
+
+
+
+net.corda.core.serialization / SerializedBytes / writeToFile
+
+writeToFile
+
+fun writeToFile ( path : Path ) : Path
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.serialization/-singleton-serialization-token/-init-.html b/docs/build/html/api/net.corda.core.serialization/-singleton-serialization-token/-init-.html
new file mode 100644
index 0000000000..ccaaf8275c
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.serialization/-singleton-serialization-token/-init-.html
@@ -0,0 +1,14 @@
+
+
+SingletonSerializationToken. -
+
+
+
+net.corda.core.serialization / SingletonSerializationToken / <init>
+
+<init>
+SingletonSerializationToken ( toBeTokenized : SerializeAsToken )
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.serialization/-singleton-serialization-token/from-token.html b/docs/build/html/api/net.corda.core.serialization/-singleton-serialization-token/from-token.html
new file mode 100644
index 0000000000..4eb4e6228b
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.serialization/-singleton-serialization-token/from-token.html
@@ -0,0 +1,16 @@
+
+
+SingletonSerializationToken.fromToken -
+
+
+
+net.corda.core.serialization / SingletonSerializationToken / fromToken
+
+fromToken
+
+fun fromToken ( context : SerializeAsTokenContext ) : Any
+Overrides SerializationToken.fromToken
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.serialization/-singleton-serialization-token/index.html b/docs/build/html/api/net.corda.core.serialization/-singleton-serialization-token/index.html
new file mode 100644
index 0000000000..53795d7ca0
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.serialization/-singleton-serialization-token/index.html
@@ -0,0 +1,49 @@
+
+
+SingletonSerializationToken -
+
+
+
+net.corda.core.serialization / SingletonSerializationToken
+
+SingletonSerializationToken
+data class SingletonSerializationToken : SerializationToken
+A class representing a SerializationToken for some object that is not serializable but can be looked up
+(when deserialized) via just the class name.
+
+
+Constructors
+
+Functions
+
+Companion Object Functions
+
+
+
diff --git a/docs/build/html/api/net.corda.core.serialization/-singleton-serialization-token/register-with-context.html b/docs/build/html/api/net.corda.core.serialization/-singleton-serialization-token/register-with-context.html
new file mode 100644
index 0000000000..4eb80d5461
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.serialization/-singleton-serialization-token/register-with-context.html
@@ -0,0 +1,15 @@
+
+
+SingletonSerializationToken.registerWithContext -
+
+
+
+net.corda.core.serialization / SingletonSerializationToken / registerWithContext
+
+registerWithContext
+
+fun registerWithContext ( token : SingletonSerializationToken , toBeTokenized : SerializeAsToken , context : SerializeAsTokenContext ) : SerializationToken
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.serialization/-singleton-serialize-as-token/-init-.html b/docs/build/html/api/net.corda.core.serialization/-singleton-serialize-as-token/-init-.html
new file mode 100644
index 0000000000..e0c4e4592f
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.serialization/-singleton-serialize-as-token/-init-.html
@@ -0,0 +1,16 @@
+
+
+SingletonSerializeAsToken. -
+
+
+
+net.corda.core.serialization / SingletonSerializeAsToken / <init>
+
+<init>
+SingletonSerializeAsToken ( )
+A base class for implementing large objects / components / services that need to serialize themselves to a string token
+to indicate which instance the token is a serialized form of.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.serialization/-singleton-serialize-as-token/index.html b/docs/build/html/api/net.corda.core.serialization/-singleton-serialize-as-token/index.html
new file mode 100644
index 0000000000..90b9b3a361
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.serialization/-singleton-serialize-as-token/index.html
@@ -0,0 +1,169 @@
+
+
+SingletonSerializeAsToken -
+
+
+
+net.corda.core.serialization / SingletonSerializeAsToken
+
+SingletonSerializeAsToken
+abstract class SingletonSerializeAsToken : SerializeAsToken
+A base class for implementing large objects / components / services that need to serialize themselves to a string token
+to indicate which instance the token is a serialized form of.
+
+
+Constructors
+
+
+
+
+<init>
+
+SingletonSerializeAsToken ( )
A base class for implementing large objects / components / services that need to serialize themselves to a string token
+to indicate which instance the token is a serialized form of.
+
+
+
+
+Functions
+
+Inheritors
+
+
+
+
+AbstractNode
+
+abstract class AbstractNode : SingletonSerializeAsToken
A base node implementation that can be customised either for production (with real implementations that do real
+I/O), or a mock implementation suitable for unit test environments.
+
+
+
+
+AbstractNodeService
+
+abstract class AbstractNodeService : SingletonSerializeAsToken
Abstract superclass for services that a node can host, which provides helper functions.
+
+
+
+
+ArtemisMessagingComponent
+
+abstract class ArtemisMessagingComponent : SingletonSerializeAsToken
The base class for Artemis services that defines shared data structures and transport configuration
+
+
+
+
+E2ETestKeyManagementService
+
+class E2ETestKeyManagementService : SingletonSerializeAsToken , KeyManagementService
A simple in-memory KMS that doesnt bother saving keys to disk. A real implementation would:
+
+
+
+
+InMemoryIdentityService
+
+class InMemoryIdentityService : SingletonSerializeAsToken , IdentityService
Simple identity service which caches parties and provides functionality for efficient lookup.
+
+
+
+
+InMemoryNetworkMapCache
+
+open class InMemoryNetworkMapCache : SingletonSerializeAsToken , NetworkMapCache
Extremely simple in-memory cache of the network map.
+
+
+
+
+MonitoringService
+
+class MonitoringService : SingletonSerializeAsToken
Provides access to various metrics and ways to notify monitoring services of things, for sysadmin purposes.
+This is not an interface because it is too lightweight to bother mocking out.
+
+
+
+
+NodeSchedulerService
+
+class NodeSchedulerService : SchedulerService , SingletonSerializeAsToken
A first pass of a simple SchedulerService that works with MutableClock s for testing, demonstrations and simulations
+that also encompasses the Vault observer for processing transactions.
+
+
+
+
+NodeSchemaService
+
+class NodeSchemaService : SchemaService , SingletonSerializeAsToken
Most basic implementation of SchemaService .
+
+
+
+
+NodeVaultService
+
+class NodeVaultService : SingletonSerializeAsToken , VaultService
Currently, the node vault service is a very simple RDBMS backed implementation. It will change significantly when
+we add further functionality as the design for the vault and vault service matures.
+
+
+
+
+NotaryService
+
+abstract class NotaryService : SingletonSerializeAsToken
A Notary service acts as the final signer of a transaction ensuring two things:
+
+
+
+
+PersistentKeyManagementService
+
+class PersistentKeyManagementService : SingletonSerializeAsToken , KeyManagementService
A persistent re-implementation of E2ETestKeyManagementService to support node re-start.
+
+
+
+
+PersistentUniquenessProvider
+
+class PersistentUniquenessProvider : UniquenessProvider , SingletonSerializeAsToken
A RDBMS backed Uniqueness provider
+
+
+
+
+ProtocolLogicRefFactory
+
+class ProtocolLogicRefFactory : SingletonSerializeAsToken
A class for conversion to and from ProtocolLogic and ProtocolLogicRef instances.
+
+
+
+
+Service
+
+class Service : SingletonSerializeAsToken
A service that monitors the network for requests for changing the notary of a state,
+and immediately runs the NotaryChangeProtocol if the auto-accept criteria are met.
+
+
+
+
+Service
+
+class Service : SingletonSerializeAsToken
This class sets up network message handlers for requests from peers for data keyed by hash. It is a piece of simple
+glue that sits between the network layer and the database layer.
+
+
+
+
+StorageServiceImpl
+
+open class StorageServiceImpl : SingletonSerializeAsToken , TxWritableStorageService
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.serialization/-singleton-serialize-as-token/to-token.html b/docs/build/html/api/net.corda.core.serialization/-singleton-serialize-as-token/to-token.html
new file mode 100644
index 0000000000..b3441d490b
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.serialization/-singleton-serialize-as-token/to-token.html
@@ -0,0 +1,16 @@
+
+
+SingletonSerializeAsToken.toToken -
+
+
+
+net.corda.core.serialization / SingletonSerializeAsToken / toToken
+
+toToken
+
+open fun toToken ( context : SerializeAsTokenContext ) : SerializationToken
+Overrides SerializeAsToken.toToken
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.serialization/-t-h-r-e-a-d_-l-o-c-a-l_-k-r-y-o.html b/docs/build/html/api/net.corda.core.serialization/-t-h-r-e-a-d_-l-o-c-a-l_-k-r-y-o.html
new file mode 100644
index 0000000000..ffeeb90130
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.serialization/-t-h-r-e-a-d_-l-o-c-a-l_-k-r-y-o.html
@@ -0,0 +1,36 @@
+
+
+THREAD_LOCAL_KRYO -
+
+
+
+net.corda.core.serialization / THREAD_LOCAL_KRYO
+
+THREAD_LOCAL_KRYO
+
+val THREAD_LOCAL_KRYO : <ERROR CLASS>
+Serialization utilities, using the Kryo framework with a custom serialiser for immutable data classes and a dead
+simple, totally non-extensible binary (sub)format.
+This is NOT what should be used in any final platform product, rather, the final state should be a precisely
+specified and standardised binary format with attention paid to anti-malleability, versioning and performance.
+FIX SBE is a potential candidate: it prioritises performance over convenience and was designed for HFT. Google
+Protocol Buffers with a minor tightening to make field reordering illegal is another possibility.
+FIX SBE:
+https://real-logic.github.io/simple-binary-encoding/
+http://mechanical-sympathy.blogspot.co.at/2014/05/simple-binary-encoding.html
+Protocol buffers:
+https://developers.google.com/protocol-buffers/
+But for now we use Kryo to maximise prototyping speed.
+Note that this code ignores ALL concerns beyond convenience, in particular it ignores:
+This code will happily deserialise literally anything, including malicious streams that would reconstruct classes
+in invalid states, thus violating system invariants. It isnt designed to handle malicious streams and therefore,
+isnt usable beyond the prototyping stage. But thats fine: we can revisit serialisation technologies later after
+a formal evaluation process.
+
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.serialization/-wire-transaction-serializer/index.html b/docs/build/html/api/net.corda.core.serialization/-wire-transaction-serializer/index.html
new file mode 100644
index 0000000000..df18c4e973
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.serialization/-wire-transaction-serializer/index.html
@@ -0,0 +1,32 @@
+
+
+WireTransactionSerializer -
+
+
+
+net.corda.core.serialization / WireTransactionSerializer
+
+WireTransactionSerializer
+object WireTransactionSerializer
+A serialisation engine that knows how to deserialise code inside a sandbox
+
+
+Functions
+
+
+
diff --git a/docs/build/html/api/net.corda.core.serialization/-wire-transaction-serializer/read.html b/docs/build/html/api/net.corda.core.serialization/-wire-transaction-serializer/read.html
new file mode 100644
index 0000000000..509f367055
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.serialization/-wire-transaction-serializer/read.html
@@ -0,0 +1,15 @@
+
+
+WireTransactionSerializer.read -
+
+
+
+net.corda.core.serialization / WireTransactionSerializer / read
+
+read
+
+fun read ( kryo : <ERROR CLASS> , input : <ERROR CLASS> , type : Class < WireTransaction > ) : WireTransaction
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.serialization/-wire-transaction-serializer/write.html b/docs/build/html/api/net.corda.core.serialization/-wire-transaction-serializer/write.html
new file mode 100644
index 0000000000..cdc38d2b69
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.serialization/-wire-transaction-serializer/write.html
@@ -0,0 +1,15 @@
+
+
+WireTransactionSerializer.write -
+
+
+
+net.corda.core.serialization / WireTransactionSerializer / write
+
+write
+
+fun write ( kryo : <ERROR CLASS> , output : <ERROR CLASS> , obj : WireTransaction ) : Unit
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.serialization/attachment-storage.html b/docs/build/html/api/net.corda.core.serialization/attachment-storage.html
new file mode 100644
index 0000000000..deb92b4838
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.serialization/attachment-storage.html
@@ -0,0 +1,15 @@
+
+
+attachmentStorage -
+
+
+
+net.corda.core.serialization / attachmentStorage
+
+attachmentStorage
+
+var <ERROR CLASS> . attachmentStorage : AttachmentStorage ?
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.serialization/create-kryo.html b/docs/build/html/api/net.corda.core.serialization/create-kryo.html
new file mode 100644
index 0000000000..63d301605d
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.serialization/create-kryo.html
@@ -0,0 +1,15 @@
+
+
+createKryo -
+
+
+
+net.corda.core.serialization / createKryo
+
+createKryo
+
+fun createKryo ( k : <ERROR CLASS> = Kryo()) : <ERROR CLASS>
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.serialization/deserialize.html b/docs/build/html/api/net.corda.core.serialization/deserialize.html
new file mode 100644
index 0000000000..4b93b88578
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.serialization/deserialize.html
@@ -0,0 +1,19 @@
+
+
+deserialize -
+
+
+
+net.corda.core.serialization / deserialize
+
+deserialize
+
+fun < T : Any > OpaqueBytes . deserialize ( kryo : <ERROR CLASS> = THREAD_LOCAL_KRYO.get()) : T
+
+fun SerializedBytes < WireTransaction > . deserialize ( kryo : <ERROR CLASS> = THREAD_LOCAL_KRYO.get()) : WireTransaction
+
+fun < T : Any > SerializedBytes < T > . deserialize ( kryo : <ERROR CLASS> = THREAD_LOCAL_KRYO.get()) : T
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.serialization/extend-kryo-hash.html b/docs/build/html/api/net.corda.core.serialization/extend-kryo-hash.html
new file mode 100644
index 0000000000..eba60293e3
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.serialization/extend-kryo-hash.html
@@ -0,0 +1,15 @@
+
+
+extendKryoHash -
+
+
+
+net.corda.core.serialization / extendKryoHash
+
+extendKryoHash
+
+fun extendKryoHash ( kryo : <ERROR CLASS> ) : <ERROR CLASS>
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.serialization/index.html b/docs/build/html/api/net.corda.core.serialization/index.html
new file mode 100644
index 0000000000..8a5ed19e8f
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.serialization/index.html
@@ -0,0 +1,262 @@
+
+
+net.corda.core.serialization -
+
+
+
+net.corda.core.serialization
+
+Package net.corda.core.serialization
+Types
+
+
+
+
+DeserializeAsKotlinObjectDef
+
+interface DeserializeAsKotlinObjectDef
Marker interface for kotlin object definitions so that they are deserialized as the singleton instance.
+
+
+
+
+Ed25519PrivateKeySerializer
+
+object Ed25519PrivateKeySerializer
For serialising an ed25519 private key
+
+
+
+
+Ed25519PublicKeySerializer
+
+object Ed25519PublicKeySerializer
For serialising an ed25519 public key
+
+
+
+
+ImmutableClassSerializer
+
+class ImmutableClassSerializer < T : Any >
Serializes properties and deserializes by using the constructor. This assumes that all backed properties are
+set via the constructor and the class is immutable.
+
+
+
+
+KotlinObjectSerializer
+
+object KotlinObjectSerializer
Serializer to deserialize kotlin object definitions marked with DeserializeAsKotlinObjectDef .
+
+
+
+
+NoReferencesSerializer
+
+class NoReferencesSerializer < T >
+
+
+
+OpaqueBytes
+
+open class OpaqueBytes
A simple class that wraps a byte array and makes the equals/hashCode/toString methods work as you actually expect.
+In an ideal JVM this would be a value type and be completely overhead free. Project Valhalla is adding such
+functionality to Java, but it wont arrive for a few years yet
+
+
+
+
+OrderedSerializer
+
+object OrderedSerializer
+
+
+
+ReferencesAwareJavaSerializer
+
+object ReferencesAwareJavaSerializer
Improvement to the builtin JavaSerializer by honouring the Kryo.getReferences setting.
+
+
+
+
+SerializationToken
+
+interface SerializationToken
This represents a token in the serialized stream for an instance of a type that implements SerializeAsToken .
+
+
+
+
+SerializeAsToken
+
+interface SerializeAsToken
This interface should be implemented by classes that want to substitute a token representation of themselves if
+they are serialized because they have a lot of internal state that does not serialize (well).
+
+
+
+
+SerializeAsTokenContext
+
+class SerializeAsTokenContext
A context for mapping SerializationTokens to/from SerializeAsTokens.
+
+
+
+
+SerializeAsTokenSerializer
+
+class SerializeAsTokenSerializer < T : SerializeAsToken >
A Kryo serializer for SerializeAsToken implementations.
+
+
+
+
+SerializedBytes
+
+class SerializedBytes < T : Any > : OpaqueBytes
A type safe wrapper around a byte array that contains a serialised object. You can call SerializedBytes.deserialize
+to get the original object back.
+
+
+
+
+SerializedBytesSerializer
+
+object SerializedBytesSerializer
A serialiser that avoids writing the wrapper class to the byte stream, thus ensuring SerializedBytes is a pure
+type safety hack.
+
+
+
+
+SingletonSerializationToken
+
+data class SingletonSerializationToken : SerializationToken
A class representing a SerializationToken for some object that is not serializable but can be looked up
+(when deserialized) via just the class name.
+
+
+
+
+SingletonSerializeAsToken
+
+abstract class SingletonSerializeAsToken : SerializeAsToken
A base class for implementing large objects / components / services that need to serialize themselves to a string token
+to indicate which instance the token is a serialized form of.
+
+
+
+
+WireTransactionSerializer
+
+object WireTransactionSerializer
A serialisation engine that knows how to deserialise code inside a sandbox
+
+
+
+
+Exceptions
+
+Extensions for External Classes
+
+Properties
+
+
+
+
+ATTACHMENT_STORAGE
+
+val ATTACHMENT_STORAGE : String
+
+
+
+THREAD_LOCAL_KRYO
+
+val THREAD_LOCAL_KRYO : <ERROR CLASS>
Serialization utilities, using the Kryo framework with a custom serialiser for immutable data classes and a dead
+simple, totally non-extensible binary (sub)format.
+
+
+
+
+attachmentStorage
+
+var <ERROR CLASS> . attachmentStorage : AttachmentStorage ?
+
+
+
+Functions
+
+
+
+
+createKryo
+
+fun createKryo ( k : <ERROR CLASS> = Kryo()) : <ERROR CLASS>
+
+
+
+deserialize
+
+fun < T : Any > OpaqueBytes . deserialize ( kryo : <ERROR CLASS> = THREAD_LOCAL_KRYO.get()) : T
+fun SerializedBytes < WireTransaction > . deserialize ( kryo : <ERROR CLASS> = THREAD_LOCAL_KRYO.get()) : WireTransaction
+fun < T : Any > SerializedBytes < T > . deserialize ( kryo : <ERROR CLASS> = THREAD_LOCAL_KRYO.get()) : T
+
+
+
+extendKryoHash
+
+fun extendKryoHash ( kryo : <ERROR CLASS> ) : <ERROR CLASS>
+
+
+
+noReferencesWithin
+
+fun < T : Any > <ERROR CLASS> . noReferencesWithin ( ) : Unit
Use this method to mark any types which can have the same instance within it more than once. This will make sure
+the serialised form is stable across multiple serialise-deserialise cycles. Using this on a type with internal cyclic
+references will throw a stack overflow exception during serialisation.
+
+
+
+
+readBytesWithLength
+
+fun <ERROR CLASS> . readBytesWithLength ( ) : ByteArray
+
+
+
+serialize
+
+fun < T : Any > T . serialize ( kryo : <ERROR CLASS> = THREAD_LOCAL_KRYO.get()) : SerializedBytes < T >
Can be called on any object to convert it to a byte array (wrapped by SerializedBytes ), regardless of whether
+the type is marked as serializable or was designed for it (so be careful).
+
+
+
+
+useClassLoader
+
+fun < T > <ERROR CLASS> . useClassLoader ( cl : ClassLoader , body : ( ) -> T ) : T
+
+
+
+writeBytesWithLength
+
+fun <ERROR CLASS> . writeBytesWithLength ( byteArray : ByteArray ) : Unit
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.serialization/kotlin.-byte-array/deserialize.html b/docs/build/html/api/net.corda.core.serialization/kotlin.-byte-array/deserialize.html
new file mode 100644
index 0000000000..924f505706
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.serialization/kotlin.-byte-array/deserialize.html
@@ -0,0 +1,15 @@
+
+
+deserialize -
+
+
+
+net.corda.core.serialization / kotlin.ByteArray / deserialize
+
+deserialize
+
+fun < T : Any > ByteArray . deserialize ( kryo : <ERROR CLASS> = THREAD_LOCAL_KRYO.get()) : T
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.serialization/kotlin.-byte-array/index.html b/docs/build/html/api/net.corda.core.serialization/kotlin.-byte-array/index.html
new file mode 100644
index 0000000000..5179591e1c
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.serialization/kotlin.-byte-array/index.html
@@ -0,0 +1,33 @@
+
+
+net.corda.core.serialization.kotlin.ByteArray -
+
+
+
+net.corda.core.serialization / kotlin.ByteArray
+
+Extensions for kotlin.ByteArray
+
+
+
+
+deserialize
+
+fun < T : Any > ByteArray . deserialize ( kryo : <ERROR CLASS> = THREAD_LOCAL_KRYO.get()) : T
+
+
+
+opaque
+
+fun ByteArray . opaque ( ) : OpaqueBytes
+
+
+
+toHexString
+
+fun ByteArray . toHexString ( ) : <ERROR CLASS>
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.serialization/kotlin.-byte-array/opaque.html b/docs/build/html/api/net.corda.core.serialization/kotlin.-byte-array/opaque.html
new file mode 100644
index 0000000000..e301ac293a
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.serialization/kotlin.-byte-array/opaque.html
@@ -0,0 +1,15 @@
+
+
+opaque -
+
+
+
+net.corda.core.serialization / kotlin.ByteArray / opaque
+
+opaque
+
+fun ByteArray . opaque ( ) : OpaqueBytes
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.serialization/kotlin.-byte-array/to-hex-string.html b/docs/build/html/api/net.corda.core.serialization/kotlin.-byte-array/to-hex-string.html
new file mode 100644
index 0000000000..d5118e1f89
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.serialization/kotlin.-byte-array/to-hex-string.html
@@ -0,0 +1,15 @@
+
+
+toHexString -
+
+
+
+net.corda.core.serialization / kotlin.ByteArray / toHexString
+
+toHexString
+
+fun ByteArray . toHexString ( ) : <ERROR CLASS>
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.serialization/kotlin.-string/index.html b/docs/build/html/api/net.corda.core.serialization/kotlin.-string/index.html
new file mode 100644
index 0000000000..3bbaccbd56
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.serialization/kotlin.-string/index.html
@@ -0,0 +1,21 @@
+
+
+net.corda.core.serialization.kotlin.String -
+
+
+
+net.corda.core.serialization / kotlin.String
+
+Extensions for kotlin.String
+
+
+
+
+parseAsHex
+
+fun String . parseAsHex ( ) : <ERROR CLASS>
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.serialization/kotlin.-string/parse-as-hex.html b/docs/build/html/api/net.corda.core.serialization/kotlin.-string/parse-as-hex.html
new file mode 100644
index 0000000000..3b00309637
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.serialization/kotlin.-string/parse-as-hex.html
@@ -0,0 +1,15 @@
+
+
+parseAsHex -
+
+
+
+net.corda.core.serialization / kotlin.String / parseAsHex
+
+parseAsHex
+
+fun String . parseAsHex ( ) : <ERROR CLASS>
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.serialization/no-references-within.html b/docs/build/html/api/net.corda.core.serialization/no-references-within.html
new file mode 100644
index 0000000000..2192399631
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.serialization/no-references-within.html
@@ -0,0 +1,18 @@
+
+
+noReferencesWithin -
+
+
+
+net.corda.core.serialization / noReferencesWithin
+
+noReferencesWithin
+
+inline fun < reified T : Any > <ERROR CLASS> . noReferencesWithin ( ) : Unit
+Use this method to mark any types which can have the same instance within it more than once. This will make sure
+the serialised form is stable across multiple serialise-deserialise cycles. Using this on a type with internal cyclic
+references will throw a stack overflow exception during serialisation.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.serialization/read-bytes-with-length.html b/docs/build/html/api/net.corda.core.serialization/read-bytes-with-length.html
new file mode 100644
index 0000000000..1f7159109b
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.serialization/read-bytes-with-length.html
@@ -0,0 +1,15 @@
+
+
+readBytesWithLength -
+
+
+
+net.corda.core.serialization / readBytesWithLength
+
+readBytesWithLength
+
+fun <ERROR CLASS> . readBytesWithLength ( ) : ByteArray
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.serialization/serialize.html b/docs/build/html/api/net.corda.core.serialization/serialize.html
new file mode 100644
index 0000000000..ceffb527f4
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.serialization/serialize.html
@@ -0,0 +1,17 @@
+
+
+serialize -
+
+
+
+net.corda.core.serialization / serialize
+
+serialize
+
+fun < T : Any > T . serialize ( kryo : <ERROR CLASS> = THREAD_LOCAL_KRYO.get()) : SerializedBytes < T >
+Can be called on any object to convert it to a byte array (wrapped by SerializedBytes ), regardless of whether
+the type is marked as serializable or was designed for it (so be careful).
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.serialization/use-class-loader.html b/docs/build/html/api/net.corda.core.serialization/use-class-loader.html
new file mode 100644
index 0000000000..2bcc9d66e3
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.serialization/use-class-loader.html
@@ -0,0 +1,15 @@
+
+
+useClassLoader -
+
+
+
+net.corda.core.serialization / useClassLoader
+
+useClassLoader
+
+inline fun < T > <ERROR CLASS> . useClassLoader ( cl : ClassLoader , body : ( ) -> T ) : T
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.serialization/write-bytes-with-length.html b/docs/build/html/api/net.corda.core.serialization/write-bytes-with-length.html
new file mode 100644
index 0000000000..88f3be70c7
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.serialization/write-bytes-with-length.html
@@ -0,0 +1,15 @@
+
+
+writeBytesWithLength -
+
+
+
+net.corda.core.serialization / writeBytesWithLength
+
+writeBytesWithLength
+
+fun <ERROR CLASS> . writeBytesWithLength ( byteArray : ByteArray ) : Unit
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.testing/-amount-generator/-init-.html b/docs/build/html/api/net.corda.core.testing/-amount-generator/-init-.html
new file mode 100644
index 0000000000..e0eb665ecb
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.testing/-amount-generator/-init-.html
@@ -0,0 +1,14 @@
+
+
+AmountGenerator. -
+
+
+
+net.corda.core.testing / AmountGenerator / <init>
+
+<init>
+AmountGenerator ( tokenGenerator : <ERROR CLASS> < T > )
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.testing/-amount-generator/generate.html b/docs/build/html/api/net.corda.core.testing/-amount-generator/generate.html
new file mode 100644
index 0000000000..f0202f6246
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.testing/-amount-generator/generate.html
@@ -0,0 +1,15 @@
+
+
+AmountGenerator.generate -
+
+
+
+net.corda.core.testing / AmountGenerator / generate
+
+generate
+
+fun generate ( random : <ERROR CLASS> , status : <ERROR CLASS> ) : Amount < T >
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.testing/-amount-generator/index.html b/docs/build/html/api/net.corda.core.testing/-amount-generator/index.html
new file mode 100644
index 0000000000..781ff8380d
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.testing/-amount-generator/index.html
@@ -0,0 +1,47 @@
+
+
+AmountGenerator -
+
+
+
+net.corda.core.testing / AmountGenerator
+
+AmountGenerator
+class AmountGenerator < T >
+
+
+Constructors
+
+
+
+
+<init>
+
+AmountGenerator ( tokenGenerator : <ERROR CLASS> < T > )
+
+
+
+Properties
+
+Functions
+
+
+
+
+generate
+
+fun generate ( random : <ERROR CLASS> , status : <ERROR CLASS> ) : Amount < T >
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.testing/-amount-generator/token-generator.html b/docs/build/html/api/net.corda.core.testing/-amount-generator/token-generator.html
new file mode 100644
index 0000000000..5e4122b9af
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.testing/-amount-generator/token-generator.html
@@ -0,0 +1,15 @@
+
+
+AmountGenerator.tokenGenerator -
+
+
+
+net.corda.core.testing / AmountGenerator / tokenGenerator
+
+tokenGenerator
+
+val tokenGenerator : <ERROR CLASS> < T >
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.testing/-currency-generator/-init-.html b/docs/build/html/api/net.corda.core.testing/-currency-generator/-init-.html
new file mode 100644
index 0000000000..0865ffac03
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.testing/-currency-generator/-init-.html
@@ -0,0 +1,14 @@
+
+
+CurrencyGenerator. -
+
+
+
+net.corda.core.testing / CurrencyGenerator / <init>
+
+<init>
+CurrencyGenerator ( )
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.testing/-currency-generator/currencies.html b/docs/build/html/api/net.corda.core.testing/-currency-generator/currencies.html
new file mode 100644
index 0000000000..b1862ac2b7
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.testing/-currency-generator/currencies.html
@@ -0,0 +1,15 @@
+
+
+CurrencyGenerator.currencies -
+
+
+
+net.corda.core.testing / CurrencyGenerator / currencies
+
+currencies
+
+val currencies : <ERROR CLASS>
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.testing/-currency-generator/generate.html b/docs/build/html/api/net.corda.core.testing/-currency-generator/generate.html
new file mode 100644
index 0000000000..2c2225421b
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.testing/-currency-generator/generate.html
@@ -0,0 +1,15 @@
+
+
+CurrencyGenerator.generate -
+
+
+
+net.corda.core.testing / CurrencyGenerator / generate
+
+generate
+
+fun generate ( random : <ERROR CLASS> , status : <ERROR CLASS> ) : Currency
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.testing/-currency-generator/index.html b/docs/build/html/api/net.corda.core.testing/-currency-generator/index.html
new file mode 100644
index 0000000000..9b8c620659
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.testing/-currency-generator/index.html
@@ -0,0 +1,47 @@
+
+
+CurrencyGenerator -
+
+
+
+net.corda.core.testing / CurrencyGenerator
+
+CurrencyGenerator
+class CurrencyGenerator
+
+
+Constructors
+
+
+
+
+<init>
+
+CurrencyGenerator ( )
+
+
+
+Functions
+
+
+
+
+generate
+
+fun generate ( random : <ERROR CLASS> , status : <ERROR CLASS> ) : Currency
+
+
+
+Companion Object Properties
+
+
+
+
+currencies
+
+val currencies : <ERROR CLASS>
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.testing/-duration-generator/-init-.html b/docs/build/html/api/net.corda.core.testing/-duration-generator/-init-.html
new file mode 100644
index 0000000000..57d00b321f
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.testing/-duration-generator/-init-.html
@@ -0,0 +1,14 @@
+
+
+DurationGenerator. -
+
+
+
+net.corda.core.testing / DurationGenerator / <init>
+
+<init>
+DurationGenerator ( )
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.testing/-duration-generator/generate.html b/docs/build/html/api/net.corda.core.testing/-duration-generator/generate.html
new file mode 100644
index 0000000000..7279adcfba
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.testing/-duration-generator/generate.html
@@ -0,0 +1,15 @@
+
+
+DurationGenerator.generate -
+
+
+
+net.corda.core.testing / DurationGenerator / generate
+
+generate
+
+fun generate ( random : <ERROR CLASS> , status : <ERROR CLASS> ) : Duration
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.testing/-duration-generator/index.html b/docs/build/html/api/net.corda.core.testing/-duration-generator/index.html
new file mode 100644
index 0000000000..48e92cc841
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.testing/-duration-generator/index.html
@@ -0,0 +1,36 @@
+
+
+DurationGenerator -
+
+
+
+net.corda.core.testing / DurationGenerator
+
+DurationGenerator
+class DurationGenerator
+
+
+Constructors
+
+
+
+
+<init>
+
+DurationGenerator ( )
+
+
+
+Functions
+
+
+
+
+generate
+
+fun generate ( random : <ERROR CLASS> , status : <ERROR CLASS> ) : Duration
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.testing/-instant-generator/-init-.html b/docs/build/html/api/net.corda.core.testing/-instant-generator/-init-.html
new file mode 100644
index 0000000000..41acf72fd7
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.testing/-instant-generator/-init-.html
@@ -0,0 +1,14 @@
+
+
+InstantGenerator. -
+
+
+
+net.corda.core.testing / InstantGenerator / <init>
+
+<init>
+InstantGenerator ( )
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.testing/-instant-generator/generate.html b/docs/build/html/api/net.corda.core.testing/-instant-generator/generate.html
new file mode 100644
index 0000000000..1fa620e186
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.testing/-instant-generator/generate.html
@@ -0,0 +1,15 @@
+
+
+InstantGenerator.generate -
+
+
+
+net.corda.core.testing / InstantGenerator / generate
+
+generate
+
+fun generate ( random : <ERROR CLASS> , status : <ERROR CLASS> ) : Instant
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.testing/-instant-generator/index.html b/docs/build/html/api/net.corda.core.testing/-instant-generator/index.html
new file mode 100644
index 0000000000..557117cb2b
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.testing/-instant-generator/index.html
@@ -0,0 +1,36 @@
+
+
+InstantGenerator -
+
+
+
+net.corda.core.testing / InstantGenerator
+
+InstantGenerator
+class InstantGenerator
+
+
+Constructors
+
+
+
+
+<init>
+
+InstantGenerator ( )
+
+
+
+Functions
+
+
+
+
+generate
+
+fun generate ( random : <ERROR CLASS> , status : <ERROR CLASS> ) : Instant
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.testing/-issued-generator/-init-.html b/docs/build/html/api/net.corda.core.testing/-issued-generator/-init-.html
new file mode 100644
index 0000000000..2fe11f968f
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.testing/-issued-generator/-init-.html
@@ -0,0 +1,14 @@
+
+
+IssuedGenerator. -
+
+
+
+net.corda.core.testing / IssuedGenerator / <init>
+
+<init>
+IssuedGenerator ( productGenerator : <ERROR CLASS> < T > )
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.testing/-issued-generator/generate.html b/docs/build/html/api/net.corda.core.testing/-issued-generator/generate.html
new file mode 100644
index 0000000000..45298ad61f
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.testing/-issued-generator/generate.html
@@ -0,0 +1,15 @@
+
+
+IssuedGenerator.generate -
+
+
+
+net.corda.core.testing / IssuedGenerator / generate
+
+generate
+
+fun generate ( random : <ERROR CLASS> , status : <ERROR CLASS> ) : Issued < T >
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.testing/-issued-generator/index.html b/docs/build/html/api/net.corda.core.testing/-issued-generator/index.html
new file mode 100644
index 0000000000..56915a4ecb
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.testing/-issued-generator/index.html
@@ -0,0 +1,47 @@
+
+
+IssuedGenerator -
+
+
+
+net.corda.core.testing / IssuedGenerator
+
+IssuedGenerator
+class IssuedGenerator < T >
+
+
+Constructors
+
+
+
+
+<init>
+
+IssuedGenerator ( productGenerator : <ERROR CLASS> < T > )
+
+
+
+Properties
+
+Functions
+
+
+
+
+generate
+
+fun generate ( random : <ERROR CLASS> , status : <ERROR CLASS> ) : Issued < T >
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.testing/-issued-generator/product-generator.html b/docs/build/html/api/net.corda.core.testing/-issued-generator/product-generator.html
new file mode 100644
index 0000000000..57eda70628
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.testing/-issued-generator/product-generator.html
@@ -0,0 +1,15 @@
+
+
+IssuedGenerator.productGenerator -
+
+
+
+net.corda.core.testing / IssuedGenerator / productGenerator
+
+productGenerator
+
+val productGenerator : <ERROR CLASS> < T >
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.testing/-party-and-reference-generator/-init-.html b/docs/build/html/api/net.corda.core.testing/-party-and-reference-generator/-init-.html
new file mode 100644
index 0000000000..5d2913f2b5
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.testing/-party-and-reference-generator/-init-.html
@@ -0,0 +1,14 @@
+
+
+PartyAndReferenceGenerator. -
+
+
+
+net.corda.core.testing / PartyAndReferenceGenerator / <init>
+
+<init>
+PartyAndReferenceGenerator ( )
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.testing/-party-and-reference-generator/generate.html b/docs/build/html/api/net.corda.core.testing/-party-and-reference-generator/generate.html
new file mode 100644
index 0000000000..e76d635718
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.testing/-party-and-reference-generator/generate.html
@@ -0,0 +1,15 @@
+
+
+PartyAndReferenceGenerator.generate -
+
+
+
+net.corda.core.testing / PartyAndReferenceGenerator / generate
+
+generate
+
+fun generate ( random : <ERROR CLASS> , status : <ERROR CLASS> ) : PartyAndReference
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.testing/-party-and-reference-generator/index.html b/docs/build/html/api/net.corda.core.testing/-party-and-reference-generator/index.html
new file mode 100644
index 0000000000..7eddc4e96e
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.testing/-party-and-reference-generator/index.html
@@ -0,0 +1,36 @@
+
+
+PartyAndReferenceGenerator -
+
+
+
+net.corda.core.testing / PartyAndReferenceGenerator
+
+PartyAndReferenceGenerator
+class PartyAndReferenceGenerator
+
+
+Constructors
+
+
+
+
+<init>
+
+PartyAndReferenceGenerator ( )
+
+
+
+Functions
+
+
+
diff --git a/docs/build/html/api/net.corda.core.testing/-party-generator/-init-.html b/docs/build/html/api/net.corda.core.testing/-party-generator/-init-.html
new file mode 100644
index 0000000000..3513cd3eed
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.testing/-party-generator/-init-.html
@@ -0,0 +1,14 @@
+
+
+PartyGenerator. -
+
+
+
+net.corda.core.testing / PartyGenerator / <init>
+
+<init>
+PartyGenerator ( )
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.testing/-party-generator/generate.html b/docs/build/html/api/net.corda.core.testing/-party-generator/generate.html
new file mode 100644
index 0000000000..42e8c40b48
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.testing/-party-generator/generate.html
@@ -0,0 +1,15 @@
+
+
+PartyGenerator.generate -
+
+
+
+net.corda.core.testing / PartyGenerator / generate
+
+generate
+
+fun generate ( random : <ERROR CLASS> , status : <ERROR CLASS> ) : Party
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.testing/-party-generator/index.html b/docs/build/html/api/net.corda.core.testing/-party-generator/index.html
new file mode 100644
index 0000000000..a1f166305d
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.testing/-party-generator/index.html
@@ -0,0 +1,36 @@
+
+
+PartyGenerator -
+
+
+
+net.corda.core.testing / PartyGenerator
+
+PartyGenerator
+class PartyGenerator
+
+
+Constructors
+
+
+
+
+<init>
+
+PartyGenerator ( )
+
+
+
+Functions
+
+
+
+
+generate
+
+fun generate ( random : <ERROR CLASS> , status : <ERROR CLASS> ) : Party
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.testing/-private-key-generator/-init-.html b/docs/build/html/api/net.corda.core.testing/-private-key-generator/-init-.html
new file mode 100644
index 0000000000..d55498d32f
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.testing/-private-key-generator/-init-.html
@@ -0,0 +1,14 @@
+
+
+PrivateKeyGenerator. -
+
+
+
+net.corda.core.testing / PrivateKeyGenerator / <init>
+
+<init>
+PrivateKeyGenerator ( )
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.testing/-private-key-generator/generate.html b/docs/build/html/api/net.corda.core.testing/-private-key-generator/generate.html
new file mode 100644
index 0000000000..8961935360
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.testing/-private-key-generator/generate.html
@@ -0,0 +1,15 @@
+
+
+PrivateKeyGenerator.generate -
+
+
+
+net.corda.core.testing / PrivateKeyGenerator / generate
+
+generate
+
+fun generate ( random : <ERROR CLASS> , status : <ERROR CLASS> ) : PrivateKey
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.testing/-private-key-generator/index.html b/docs/build/html/api/net.corda.core.testing/-private-key-generator/index.html
new file mode 100644
index 0000000000..4157d83ea8
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.testing/-private-key-generator/index.html
@@ -0,0 +1,36 @@
+
+
+PrivateKeyGenerator -
+
+
+
+net.corda.core.testing / PrivateKeyGenerator
+
+PrivateKeyGenerator
+class PrivateKeyGenerator
+
+
+Constructors
+
+
+
+
+<init>
+
+PrivateKeyGenerator ( )
+
+
+
+Functions
+
+
+
+
+generate
+
+fun generate ( random : <ERROR CLASS> , status : <ERROR CLASS> ) : PrivateKey
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.testing/-public-key-generator/-init-.html b/docs/build/html/api/net.corda.core.testing/-public-key-generator/-init-.html
new file mode 100644
index 0000000000..6bffc87fbc
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.testing/-public-key-generator/-init-.html
@@ -0,0 +1,14 @@
+
+
+PublicKeyGenerator. -
+
+
+
+net.corda.core.testing / PublicKeyGenerator / <init>
+
+<init>
+PublicKeyGenerator ( )
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.testing/-public-key-generator/generate.html b/docs/build/html/api/net.corda.core.testing/-public-key-generator/generate.html
new file mode 100644
index 0000000000..8ded225bad
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.testing/-public-key-generator/generate.html
@@ -0,0 +1,15 @@
+
+
+PublicKeyGenerator.generate -
+
+
+
+net.corda.core.testing / PublicKeyGenerator / generate
+
+generate
+
+fun generate ( random : <ERROR CLASS> , status : <ERROR CLASS> ) : PublicKey
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.testing/-public-key-generator/index.html b/docs/build/html/api/net.corda.core.testing/-public-key-generator/index.html
new file mode 100644
index 0000000000..568e3fd5cb
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.testing/-public-key-generator/index.html
@@ -0,0 +1,36 @@
+
+
+PublicKeyGenerator -
+
+
+
+net.corda.core.testing / PublicKeyGenerator
+
+PublicKeyGenerator
+class PublicKeyGenerator
+
+
+Constructors
+
+
+
+
+<init>
+
+PublicKeyGenerator ( )
+
+
+
+Functions
+
+
+
+
+generate
+
+fun generate ( random : <ERROR CLASS> , status : <ERROR CLASS> ) : PublicKey
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.testing/-secure-hash-generator/-init-.html b/docs/build/html/api/net.corda.core.testing/-secure-hash-generator/-init-.html
new file mode 100644
index 0000000000..c9dd45f61a
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.testing/-secure-hash-generator/-init-.html
@@ -0,0 +1,14 @@
+
+
+SecureHashGenerator. -
+
+
+
+net.corda.core.testing / SecureHashGenerator / <init>
+
+<init>
+SecureHashGenerator ( )
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.testing/-secure-hash-generator/generate.html b/docs/build/html/api/net.corda.core.testing/-secure-hash-generator/generate.html
new file mode 100644
index 0000000000..1c446ab4cc
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.testing/-secure-hash-generator/generate.html
@@ -0,0 +1,15 @@
+
+
+SecureHashGenerator.generate -
+
+
+
+net.corda.core.testing / SecureHashGenerator / generate
+
+generate
+
+fun generate ( random : <ERROR CLASS> , status : <ERROR CLASS> ) : SecureHash
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.testing/-secure-hash-generator/index.html b/docs/build/html/api/net.corda.core.testing/-secure-hash-generator/index.html
new file mode 100644
index 0000000000..2b9d3546cd
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.testing/-secure-hash-generator/index.html
@@ -0,0 +1,36 @@
+
+
+SecureHashGenerator -
+
+
+
+net.corda.core.testing / SecureHashGenerator
+
+SecureHashGenerator
+class SecureHashGenerator
+
+
+Constructors
+
+
+
+
+<init>
+
+SecureHashGenerator ( )
+
+
+
+Functions
+
+
+
+
+generate
+
+fun generate ( random : <ERROR CLASS> , status : <ERROR CLASS> ) : SecureHash
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.testing/-state-ref-generator/-init-.html b/docs/build/html/api/net.corda.core.testing/-state-ref-generator/-init-.html
new file mode 100644
index 0000000000..1c3edd5052
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.testing/-state-ref-generator/-init-.html
@@ -0,0 +1,14 @@
+
+
+StateRefGenerator. -
+
+
+
+net.corda.core.testing / StateRefGenerator / <init>
+
+<init>
+StateRefGenerator ( )
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.testing/-state-ref-generator/generate.html b/docs/build/html/api/net.corda.core.testing/-state-ref-generator/generate.html
new file mode 100644
index 0000000000..5aad4dc319
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.testing/-state-ref-generator/generate.html
@@ -0,0 +1,15 @@
+
+
+StateRefGenerator.generate -
+
+
+
+net.corda.core.testing / StateRefGenerator / generate
+
+generate
+
+fun generate ( random : <ERROR CLASS> , status : <ERROR CLASS> ) : StateRef
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.testing/-state-ref-generator/index.html b/docs/build/html/api/net.corda.core.testing/-state-ref-generator/index.html
new file mode 100644
index 0000000000..2cbebbab52
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.testing/-state-ref-generator/index.html
@@ -0,0 +1,36 @@
+
+
+StateRefGenerator -
+
+
+
+net.corda.core.testing / StateRefGenerator
+
+StateRefGenerator
+class StateRefGenerator
+
+
+Constructors
+
+
+
+
+<init>
+
+StateRefGenerator ( )
+
+
+
+Functions
+
+
+
+
+generate
+
+fun generate ( random : <ERROR CLASS> , status : <ERROR CLASS> ) : StateRef
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.testing/-timestamp-generator/-init-.html b/docs/build/html/api/net.corda.core.testing/-timestamp-generator/-init-.html
new file mode 100644
index 0000000000..2054ea852d
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.testing/-timestamp-generator/-init-.html
@@ -0,0 +1,14 @@
+
+
+TimestampGenerator. -
+
+
+
+net.corda.core.testing / TimestampGenerator / <init>
+
+<init>
+TimestampGenerator ( )
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.testing/-timestamp-generator/generate.html b/docs/build/html/api/net.corda.core.testing/-timestamp-generator/generate.html
new file mode 100644
index 0000000000..a7ed01fead
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.testing/-timestamp-generator/generate.html
@@ -0,0 +1,15 @@
+
+
+TimestampGenerator.generate -
+
+
+
+net.corda.core.testing / TimestampGenerator / generate
+
+generate
+
+fun generate ( random : <ERROR CLASS> , status : <ERROR CLASS> ) : Timestamp
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.testing/-timestamp-generator/index.html b/docs/build/html/api/net.corda.core.testing/-timestamp-generator/index.html
new file mode 100644
index 0000000000..222d2be33d
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.testing/-timestamp-generator/index.html
@@ -0,0 +1,36 @@
+
+
+TimestampGenerator -
+
+
+
+net.corda.core.testing / TimestampGenerator
+
+TimestampGenerator
+class TimestampGenerator
+
+
+Constructors
+
+
+
+
+<init>
+
+TimestampGenerator ( )
+
+
+
+Functions
+
+
+
+
+generate
+
+fun generate ( random : <ERROR CLASS> , status : <ERROR CLASS> ) : Timestamp
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.testing/-transaction-state-generator/-init-.html b/docs/build/html/api/net.corda.core.testing/-transaction-state-generator/-init-.html
new file mode 100644
index 0000000000..de3ca3d62e
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.testing/-transaction-state-generator/-init-.html
@@ -0,0 +1,14 @@
+
+
+TransactionStateGenerator. -
+
+
+
+net.corda.core.testing / TransactionStateGenerator / <init>
+
+<init>
+TransactionStateGenerator ( stateGenerator : <ERROR CLASS> < T > )
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.testing/-transaction-state-generator/generate.html b/docs/build/html/api/net.corda.core.testing/-transaction-state-generator/generate.html
new file mode 100644
index 0000000000..b2c9e204c3
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.testing/-transaction-state-generator/generate.html
@@ -0,0 +1,15 @@
+
+
+TransactionStateGenerator.generate -
+
+
+
+net.corda.core.testing / TransactionStateGenerator / generate
+
+generate
+
+fun generate ( random : <ERROR CLASS> , status : <ERROR CLASS> ) : TransactionState < T >
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.testing/-transaction-state-generator/index.html b/docs/build/html/api/net.corda.core.testing/-transaction-state-generator/index.html
new file mode 100644
index 0000000000..42aa42cf3b
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.testing/-transaction-state-generator/index.html
@@ -0,0 +1,47 @@
+
+
+TransactionStateGenerator -
+
+
+
+net.corda.core.testing / TransactionStateGenerator
+
+TransactionStateGenerator
+class TransactionStateGenerator < T : ContractState >
+
+
+Constructors
+
+
+
+
+<init>
+
+TransactionStateGenerator ( stateGenerator : <ERROR CLASS> < T > )
+
+
+
+Properties
+
+Functions
+
+
+
diff --git a/docs/build/html/api/net.corda.core.testing/-transaction-state-generator/state-generator.html b/docs/build/html/api/net.corda.core.testing/-transaction-state-generator/state-generator.html
new file mode 100644
index 0000000000..b52cef9981
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.testing/-transaction-state-generator/state-generator.html
@@ -0,0 +1,15 @@
+
+
+TransactionStateGenerator.stateGenerator -
+
+
+
+net.corda.core.testing / TransactionStateGenerator / stateGenerator
+
+stateGenerator
+
+val stateGenerator : <ERROR CLASS> < T >
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.testing/generate-list.html b/docs/build/html/api/net.corda.core.testing/generate-list.html
new file mode 100644
index 0000000000..286fa0a8ef
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.testing/generate-list.html
@@ -0,0 +1,19 @@
+
+
+generateList -
+
+
+
+net.corda.core.testing / generateList
+
+generateList
+
+fun < A > <ERROR CLASS> < A > . generateList ( random : <ERROR CLASS> , status : <ERROR CLASS> ) : List < A >
+Generators for quickcheck
+TODO Split this into several files
+
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.testing/index.html b/docs/build/html/api/net.corda.core.testing/index.html
new file mode 100644
index 0000000000..b3a16b9fd9
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.testing/index.html
@@ -0,0 +1,106 @@
+
+
+net.corda.core.testing -
+
+
+
+net.corda.core.testing
+
+Package net.corda.core.testing
+Types
+
+Functions
+
+
+
+
+generateList
+
+fun < A > <ERROR CLASS> < A > . generateList ( random : <ERROR CLASS> , status : <ERROR CLASS> ) : List < A >
Generators for quickcheck
+
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.transactions/-base-transaction/-init-.html b/docs/build/html/api/net.corda.core.transactions/-base-transaction/-init-.html
new file mode 100644
index 0000000000..fe6b79db91
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.transactions/-base-transaction/-init-.html
@@ -0,0 +1,15 @@
+
+
+BaseTransaction. -
+
+
+
+net.corda.core.transactions / BaseTransaction / <init>
+
+<init>
+BaseTransaction ( inputs : List < * > , outputs : List < TransactionState < ContractState > > , notary : Party ? , mustSign : List < PublicKey > , type : TransactionType , timestamp : Timestamp ? )
+An abstract class defining fields shared by all transaction types in the system.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.transactions/-base-transaction/check-invariants.html b/docs/build/html/api/net.corda.core.transactions/-base-transaction/check-invariants.html
new file mode 100644
index 0000000000..94b9111594
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.transactions/-base-transaction/check-invariants.html
@@ -0,0 +1,15 @@
+
+
+BaseTransaction.checkInvariants -
+
+
+
+net.corda.core.transactions / BaseTransaction / checkInvariants
+
+checkInvariants
+
+protected fun checkInvariants ( ) : Unit
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.transactions/-base-transaction/equals.html b/docs/build/html/api/net.corda.core.transactions/-base-transaction/equals.html
new file mode 100644
index 0000000000..3fb8618784
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.transactions/-base-transaction/equals.html
@@ -0,0 +1,15 @@
+
+
+BaseTransaction.equals -
+
+
+
+net.corda.core.transactions / BaseTransaction / equals
+
+equals
+
+open fun equals ( other : Any ? ) : Boolean
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.transactions/-base-transaction/hash-code.html b/docs/build/html/api/net.corda.core.transactions/-base-transaction/hash-code.html
new file mode 100644
index 0000000000..9839a37312
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.transactions/-base-transaction/hash-code.html
@@ -0,0 +1,15 @@
+
+
+BaseTransaction.hashCode -
+
+
+
+net.corda.core.transactions / BaseTransaction / hashCode
+
+hashCode
+
+open fun hashCode ( ) : Int
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.transactions/-base-transaction/index.html b/docs/build/html/api/net.corda.core.transactions/-base-transaction/index.html
new file mode 100644
index 0000000000..4dccb48b60
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.transactions/-base-transaction/index.html
@@ -0,0 +1,136 @@
+
+
+BaseTransaction -
+
+
+
+net.corda.core.transactions / BaseTransaction
+
+BaseTransaction
+abstract class BaseTransaction : NamedByHash
+An abstract class defining fields shared by all transaction types in the system.
+
+
+Constructors
+
+Properties
+
+
+
+
+inputs
+
+open val inputs : List < * >
The inputs of this transaction. Note that in BaseTransaction subclasses the type of this list may change
+
+
+
+
+mustSign
+
+val mustSign : List < PublicKey >
Keys that are required to have signed the wrapping SignedTransaction , ordered to match the list of
+signatures. There is nothing that forces the list to be the correct list of signers for this
+transaction until the transaction is verified by using LedgerTransaction.verify . It includes the
+notary key, if the notary field is set.
+
+
+
+
+notary
+
+val notary : Party ?
If present, the notary for this transaction. If absent then the transaction is not notarised at all.
+This is intended for issuance/genesis transactions that dont consume any other states and thus cant
+double spend anything.
+
+
+
+
+outputs
+
+val outputs : List < TransactionState < ContractState > >
Ordered list of states defined by this transaction, along with the associated notaries.
+
+
+
+
+timestamp
+
+val timestamp : Timestamp ?
If specified, a time window in which this transaction may have been notarised. Contracts can check this
+time window to find out when a transaction is deemed to have occurred, from the ledgers perspective.
+
+
+
+
+type
+
+val type : TransactionType
Pointer to a class that defines the behaviour of this transaction: either normal, or "notary changing".
+
+
+
+
+Inherited Properties
+
+Functions
+
+
+
+
+checkInvariants
+
+fun checkInvariants ( ) : Unit
+
+
+
+equals
+
+open fun equals ( other : Any ? ) : Boolean
+
+
+
+hashCode
+
+open fun hashCode ( ) : Int
+
+
+
+Inheritors
+
+
+
+
+LedgerTransaction
+
+class LedgerTransaction : BaseTransaction
A LedgerTransaction is derived from a WireTransaction . It is the result of doing the following operations:
+
+
+
+
+WireTransaction
+
+class WireTransaction : BaseTransaction
A transaction ready for serialisation, without any signatures attached. A WireTransaction is usually wrapped
+by a SignedTransaction that carries the signatures over this payload. The hash of the wire transaction is
+the identity of the transaction, that is, its possible for two SignedTransaction s with different sets of
+signatures to have the same identity hash.
+
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.transactions/-base-transaction/inputs.html b/docs/build/html/api/net.corda.core.transactions/-base-transaction/inputs.html
new file mode 100644
index 0000000000..aae8edc869
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.transactions/-base-transaction/inputs.html
@@ -0,0 +1,16 @@
+
+
+BaseTransaction.inputs -
+
+
+
+net.corda.core.transactions / BaseTransaction / inputs
+
+inputs
+
+open val inputs : List < * >
+The inputs of this transaction. Note that in BaseTransaction subclasses the type of this list may change
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.transactions/-base-transaction/must-sign.html b/docs/build/html/api/net.corda.core.transactions/-base-transaction/must-sign.html
new file mode 100644
index 0000000000..a589368883
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.transactions/-base-transaction/must-sign.html
@@ -0,0 +1,19 @@
+
+
+BaseTransaction.mustSign -
+
+
+
+net.corda.core.transactions / BaseTransaction / mustSign
+
+mustSign
+
+val mustSign : List < PublicKey >
+Keys that are required to have signed the wrapping SignedTransaction , ordered to match the list of
+signatures. There is nothing that forces the list to be the correct list of signers for this
+transaction until the transaction is verified by using LedgerTransaction.verify . It includes the
+notary key, if the notary field is set.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.transactions/-base-transaction/notary.html b/docs/build/html/api/net.corda.core.transactions/-base-transaction/notary.html
new file mode 100644
index 0000000000..1f956f6b69
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.transactions/-base-transaction/notary.html
@@ -0,0 +1,18 @@
+
+
+BaseTransaction.notary -
+
+
+
+net.corda.core.transactions / BaseTransaction / notary
+
+notary
+
+val notary : Party ?
+If present, the notary for this transaction. If absent then the transaction is not notarised at all.
+This is intended for issuance/genesis transactions that dont consume any other states and thus cant
+double spend anything.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.transactions/-base-transaction/outputs.html b/docs/build/html/api/net.corda.core.transactions/-base-transaction/outputs.html
new file mode 100644
index 0000000000..0a7df8f204
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.transactions/-base-transaction/outputs.html
@@ -0,0 +1,16 @@
+
+
+BaseTransaction.outputs -
+
+
+
+net.corda.core.transactions / BaseTransaction / outputs
+
+outputs
+
+val outputs : List < TransactionState < ContractState > >
+Ordered list of states defined by this transaction, along with the associated notaries.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.transactions/-base-transaction/timestamp.html b/docs/build/html/api/net.corda.core.transactions/-base-transaction/timestamp.html
new file mode 100644
index 0000000000..9e61a33c59
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.transactions/-base-transaction/timestamp.html
@@ -0,0 +1,17 @@
+
+
+BaseTransaction.timestamp -
+
+
+
+net.corda.core.transactions / BaseTransaction / timestamp
+
+timestamp
+
+val timestamp : Timestamp ?
+If specified, a time window in which this transaction may have been notarised. Contracts can check this
+time window to find out when a transaction is deemed to have occurred, from the ledgers perspective.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.transactions/-base-transaction/type.html b/docs/build/html/api/net.corda.core.transactions/-base-transaction/type.html
new file mode 100644
index 0000000000..9fe2961ef9
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.transactions/-base-transaction/type.html
@@ -0,0 +1,16 @@
+
+
+BaseTransaction.type -
+
+
+
+net.corda.core.transactions / BaseTransaction / type
+
+type
+
+val type : TransactionType
+Pointer to a class that defines the behaviour of this transaction: either normal, or "notary changing".
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.transactions/-filter-funs/-init-.html b/docs/build/html/api/net.corda.core.transactions/-filter-funs/-init-.html
new file mode 100644
index 0000000000..3b1e3c7417
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.transactions/-filter-funs/-init-.html
@@ -0,0 +1,16 @@
+
+
+FilterFuns. -
+
+
+
+net.corda.core.transactions / FilterFuns / <init>
+
+<init>
+FilterFuns ( filterInputs : ( StateRef ) -> Boolean = { false }, filterOutputs : ( TransactionState < ContractState > ) -> Boolean = { false }, filterAttachments : ( SecureHash ) -> Boolean = { false }, filterCommands : ( Command ) -> Boolean = { false })
+Holds filter functions on transactions fields.
+Functions are used to build a partial tree only out of some subset of original transaction fields.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.transactions/-filter-funs/filter-attachments.html b/docs/build/html/api/net.corda.core.transactions/-filter-funs/filter-attachments.html
new file mode 100644
index 0000000000..9a7fb4a318
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.transactions/-filter-funs/filter-attachments.html
@@ -0,0 +1,15 @@
+
+
+FilterFuns.filterAttachments -
+
+
+
+net.corda.core.transactions / FilterFuns / filterAttachments
+
+filterAttachments
+
+val filterAttachments : ( SecureHash ) -> Boolean
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.transactions/-filter-funs/filter-commands.html b/docs/build/html/api/net.corda.core.transactions/-filter-funs/filter-commands.html
new file mode 100644
index 0000000000..4468a317de
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.transactions/-filter-funs/filter-commands.html
@@ -0,0 +1,15 @@
+
+
+FilterFuns.filterCommands -
+
+
+
+net.corda.core.transactions / FilterFuns / filterCommands
+
+filterCommands
+
+val filterCommands : ( Command ) -> Boolean
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.transactions/-filter-funs/filter-inputs.html b/docs/build/html/api/net.corda.core.transactions/-filter-funs/filter-inputs.html
new file mode 100644
index 0000000000..a6d051d502
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.transactions/-filter-funs/filter-inputs.html
@@ -0,0 +1,15 @@
+
+
+FilterFuns.filterInputs -
+
+
+
+net.corda.core.transactions / FilterFuns / filterInputs
+
+filterInputs
+
+val filterInputs : ( StateRef ) -> Boolean
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.transactions/-filter-funs/filter-outputs.html b/docs/build/html/api/net.corda.core.transactions/-filter-funs/filter-outputs.html
new file mode 100644
index 0000000000..5688aeb899
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.transactions/-filter-funs/filter-outputs.html
@@ -0,0 +1,15 @@
+
+
+FilterFuns.filterOutputs -
+
+
+
+net.corda.core.transactions / FilterFuns / filterOutputs
+
+filterOutputs
+
+val filterOutputs : ( TransactionState < ContractState > ) -> Boolean
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.transactions/-filter-funs/generic-filter.html b/docs/build/html/api/net.corda.core.transactions/-filter-funs/generic-filter.html
new file mode 100644
index 0000000000..9127114237
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.transactions/-filter-funs/generic-filter.html
@@ -0,0 +1,15 @@
+
+
+FilterFuns.genericFilter -
+
+
+
+net.corda.core.transactions / FilterFuns / genericFilter
+
+genericFilter
+
+fun < T : Any > genericFilter ( elem : T ) : Boolean
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.transactions/-filter-funs/index.html b/docs/build/html/api/net.corda.core.transactions/-filter-funs/index.html
new file mode 100644
index 0000000000..513643e70a
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.transactions/-filter-funs/index.html
@@ -0,0 +1,69 @@
+
+
+FilterFuns -
+
+
+
+net.corda.core.transactions / FilterFuns
+
+FilterFuns
+class FilterFuns
+Holds filter functions on transactions fields.
+Functions are used to build a partial tree only out of some subset of original transaction fields.
+
+
+Constructors
+
+
+
+
+<init>
+
+FilterFuns ( filterInputs : ( StateRef ) -> Boolean = { false }, filterOutputs : ( TransactionState < ContractState > ) -> Boolean = { false }, filterAttachments : ( SecureHash ) -> Boolean = { false }, filterCommands : ( Command ) -> Boolean = { false })
Holds filter functions on transactions fields.
+Functions are used to build a partial tree only out of some subset of original transaction fields.
+
+
+
+
+Properties
+
+Functions
+
+
+
+
+genericFilter
+
+fun < T : Any > genericFilter ( elem : T ) : Boolean
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.transactions/-filtered-leaves/-init-.html b/docs/build/html/api/net.corda.core.transactions/-filtered-leaves/-init-.html
new file mode 100644
index 0000000000..c3bc5cbfde
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.transactions/-filtered-leaves/-init-.html
@@ -0,0 +1,15 @@
+
+
+FilteredLeaves. -
+
+
+
+net.corda.core.transactions / FilteredLeaves / <init>
+
+<init>
+FilteredLeaves ( inputs : List < StateRef > , outputs : List < TransactionState < ContractState > > , attachments : List < SecureHash > , commands : List < Command > )
+Class that holds filtered leaves for a partial Merkle transaction. We assume mixed leaves types.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.transactions/-filtered-leaves/attachments.html b/docs/build/html/api/net.corda.core.transactions/-filtered-leaves/attachments.html
new file mode 100644
index 0000000000..85a7057742
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.transactions/-filtered-leaves/attachments.html
@@ -0,0 +1,15 @@
+
+
+FilteredLeaves.attachments -
+
+
+
+net.corda.core.transactions / FilteredLeaves / attachments
+
+attachments
+
+val attachments : List < SecureHash >
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.transactions/-filtered-leaves/commands.html b/docs/build/html/api/net.corda.core.transactions/-filtered-leaves/commands.html
new file mode 100644
index 0000000000..5ca5a85a59
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.transactions/-filtered-leaves/commands.html
@@ -0,0 +1,15 @@
+
+
+FilteredLeaves.commands -
+
+
+
+net.corda.core.transactions / FilteredLeaves / commands
+
+commands
+
+val commands : List < Command >
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.transactions/-filtered-leaves/get-filtered-hashes.html b/docs/build/html/api/net.corda.core.transactions/-filtered-leaves/get-filtered-hashes.html
new file mode 100644
index 0000000000..abba50fd8c
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.transactions/-filtered-leaves/get-filtered-hashes.html
@@ -0,0 +1,15 @@
+
+
+FilteredLeaves.getFilteredHashes -
+
+
+
+net.corda.core.transactions / FilteredLeaves / getFilteredHashes
+
+getFilteredHashes
+
+fun getFilteredHashes ( ) : List < SecureHash >
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.transactions/-filtered-leaves/index.html b/docs/build/html/api/net.corda.core.transactions/-filtered-leaves/index.html
new file mode 100644
index 0000000000..3f7dd7bb77
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.transactions/-filtered-leaves/index.html
@@ -0,0 +1,67 @@
+
+
+FilteredLeaves -
+
+
+
+net.corda.core.transactions / FilteredLeaves
+
+FilteredLeaves
+class FilteredLeaves
+Class that holds filtered leaves for a partial Merkle transaction. We assume mixed leaves types.
+
+
+Constructors
+
+Properties
+
+Functions
+
+
+
diff --git a/docs/build/html/api/net.corda.core.transactions/-filtered-leaves/inputs.html b/docs/build/html/api/net.corda.core.transactions/-filtered-leaves/inputs.html
new file mode 100644
index 0000000000..154f071259
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.transactions/-filtered-leaves/inputs.html
@@ -0,0 +1,15 @@
+
+
+FilteredLeaves.inputs -
+
+
+
+net.corda.core.transactions / FilteredLeaves / inputs
+
+inputs
+
+val inputs : List < StateRef >
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.transactions/-filtered-leaves/outputs.html b/docs/build/html/api/net.corda.core.transactions/-filtered-leaves/outputs.html
new file mode 100644
index 0000000000..65732f8f49
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.transactions/-filtered-leaves/outputs.html
@@ -0,0 +1,15 @@
+
+
+FilteredLeaves.outputs -
+
+
+
+net.corda.core.transactions / FilteredLeaves / outputs
+
+outputs
+
+val outputs : List < TransactionState < ContractState > >
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.transactions/-filtered-transaction/-init-.html b/docs/build/html/api/net.corda.core.transactions/-filtered-transaction/-init-.html
new file mode 100644
index 0000000000..3e17759265
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.transactions/-filtered-transaction/-init-.html
@@ -0,0 +1,21 @@
+
+
+FilteredTransaction. -
+
+
+
+net.corda.core.transactions / FilteredTransaction / <init>
+
+<init>
+FilteredTransaction ( filteredLeaves : FilteredLeaves , partialMerkleTree : PartialMerkleTree )
+Class representing merkleized filtered transaction.
+Parameters
+
+filteredLeaves
- Leaves included in a filtered transaction.
+
+
+partialMerkleTree
- Merkle branch needed to verify filteredLeaves.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.transactions/-filtered-transaction/build-merkle-transaction.html b/docs/build/html/api/net.corda.core.transactions/-filtered-transaction/build-merkle-transaction.html
new file mode 100644
index 0000000000..4cf9a905d9
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.transactions/-filtered-transaction/build-merkle-transaction.html
@@ -0,0 +1,22 @@
+
+
+FilteredTransaction.buildMerkleTransaction -
+
+
+
+net.corda.core.transactions / FilteredTransaction / buildMerkleTransaction
+
+buildMerkleTransaction
+
+fun buildMerkleTransaction ( wtx : WireTransaction , filterFuns : FilterFuns ) : FilteredTransaction
+Construction of filtered transaction with Partial Merkle Tree.
+Parameters
+
+wtx
- WireTransaction to be filtered.
+
+
+filterFuns
- filtering functions for inputs, outputs, attachments, commands.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.transactions/-filtered-transaction/filtered-leaves.html b/docs/build/html/api/net.corda.core.transactions/-filtered-transaction/filtered-leaves.html
new file mode 100644
index 0000000000..3d1fd2edd7
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.transactions/-filtered-transaction/filtered-leaves.html
@@ -0,0 +1,15 @@
+
+
+FilteredTransaction.filteredLeaves -
+
+
+
+net.corda.core.transactions / FilteredTransaction / filteredLeaves
+
+filteredLeaves
+
+val filteredLeaves : FilteredLeaves
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.transactions/-filtered-transaction/index.html b/docs/build/html/api/net.corda.core.transactions/-filtered-transaction/index.html
new file mode 100644
index 0000000000..e0f7ee02f9
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.transactions/-filtered-transaction/index.html
@@ -0,0 +1,74 @@
+
+
+FilteredTransaction -
+
+
+
+net.corda.core.transactions / FilteredTransaction
+
+FilteredTransaction
+class FilteredTransaction
+Class representing merkleized filtered transaction.
+Parameters
+
+filteredLeaves
- Leaves included in a filtered transaction.
+
+
+partialMerkleTree
- Merkle branch needed to verify filteredLeaves.
+
+
+Constructors
+
+Properties
+
+Functions
+
+
+
+
+verify
+
+fun verify ( merkleRootHash : SecureHash ) : Boolean
Runs verification of Partial Merkle Branch with merkleRootHash.
+
+
+
+
+Companion Object Functions
+
+
+
diff --git a/docs/build/html/api/net.corda.core.transactions/-filtered-transaction/partial-merkle-tree.html b/docs/build/html/api/net.corda.core.transactions/-filtered-transaction/partial-merkle-tree.html
new file mode 100644
index 0000000000..2f8630d7a9
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.transactions/-filtered-transaction/partial-merkle-tree.html
@@ -0,0 +1,15 @@
+
+
+FilteredTransaction.partialMerkleTree -
+
+
+
+net.corda.core.transactions / FilteredTransaction / partialMerkleTree
+
+partialMerkleTree
+
+val partialMerkleTree : PartialMerkleTree
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.transactions/-filtered-transaction/verify.html b/docs/build/html/api/net.corda.core.transactions/-filtered-transaction/verify.html
new file mode 100644
index 0000000000..4e248e3b12
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.transactions/-filtered-transaction/verify.html
@@ -0,0 +1,16 @@
+
+
+FilteredTransaction.verify -
+
+
+
+net.corda.core.transactions / FilteredTransaction / verify
+
+verify
+
+fun verify ( merkleRootHash : SecureHash ) : Boolean
+Runs verification of Partial Merkle Branch with merkleRootHash.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.transactions/-ledger-transaction/-init-.html b/docs/build/html/api/net.corda.core.transactions/-ledger-transaction/-init-.html
new file mode 100644
index 0000000000..841d77870e
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.transactions/-ledger-transaction/-init-.html
@@ -0,0 +1,23 @@
+
+
+LedgerTransaction. -
+
+
+
+net.corda.core.transactions / LedgerTransaction / <init>
+
+<init>
+LedgerTransaction ( inputs : List < StateAndRef < * > > , outputs : List < TransactionState < ContractState > > , commands : List < AuthenticatedObject < CommandData > > , attachments : List < Attachment > , id : SecureHash , notary : Party ? , signers : List < PublicKey > , timestamp : Timestamp ? , type : TransactionType )
+A LedgerTransaction is derived from a WireTransaction . It is the result of doing the following operations:
+Downloading and locally storing all the dependencies of the transaction.
+Resolving the input states and loading them into memory.
+Doing some basic key lookups on the Command s to see if any keys are from a recognised party, thus converting the
+Command objects into AuthenticatedObject .
+Deserialising the output states.
+All the above refer to inputs using a (txhash, output index) pair.
+
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.transactions/-ledger-transaction/attachments.html b/docs/build/html/api/net.corda.core.transactions/-ledger-transaction/attachments.html
new file mode 100644
index 0000000000..40451bcbd6
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.transactions/-ledger-transaction/attachments.html
@@ -0,0 +1,16 @@
+
+
+LedgerTransaction.attachments -
+
+
+
+net.corda.core.transactions / LedgerTransaction / attachments
+
+attachments
+
+val attachments : List < Attachment >
+A list of Attachment objects identified by the transaction that are needed for this transaction to verify.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.transactions/-ledger-transaction/commands.html b/docs/build/html/api/net.corda.core.transactions/-ledger-transaction/commands.html
new file mode 100644
index 0000000000..4bafb58284
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.transactions/-ledger-transaction/commands.html
@@ -0,0 +1,16 @@
+
+
+LedgerTransaction.commands -
+
+
+
+net.corda.core.transactions / LedgerTransaction / commands
+
+commands
+
+val commands : List < AuthenticatedObject < CommandData > >
+Arbitrary data passed to the program of each input state.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.transactions/-ledger-transaction/equals.html b/docs/build/html/api/net.corda.core.transactions/-ledger-transaction/equals.html
new file mode 100644
index 0000000000..71fbd10fec
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.transactions/-ledger-transaction/equals.html
@@ -0,0 +1,16 @@
+
+
+LedgerTransaction.equals -
+
+
+
+net.corda.core.transactions / LedgerTransaction / equals
+
+equals
+
+fun equals ( other : Any ? ) : Boolean
+Overrides BaseTransaction.equals
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.transactions/-ledger-transaction/hash-code.html b/docs/build/html/api/net.corda.core.transactions/-ledger-transaction/hash-code.html
new file mode 100644
index 0000000000..8ba0cb82a1
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.transactions/-ledger-transaction/hash-code.html
@@ -0,0 +1,16 @@
+
+
+LedgerTransaction.hashCode -
+
+
+
+net.corda.core.transactions / LedgerTransaction / hashCode
+
+hashCode
+
+fun hashCode ( ) : Int
+Overrides BaseTransaction.hashCode
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.transactions/-ledger-transaction/id.html b/docs/build/html/api/net.corda.core.transactions/-ledger-transaction/id.html
new file mode 100644
index 0000000000..12341ea3e0
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.transactions/-ledger-transaction/id.html
@@ -0,0 +1,17 @@
+
+
+LedgerTransaction.id -
+
+
+
+net.corda.core.transactions / LedgerTransaction / id
+
+id
+
+val id : SecureHash
+Overrides NamedByHash.id
+The hash of the original serialised WireTransaction.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.transactions/-ledger-transaction/index.html b/docs/build/html/api/net.corda.core.transactions/-ledger-transaction/index.html
new file mode 100644
index 0000000000..13dd8f3847
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.transactions/-ledger-transaction/index.html
@@ -0,0 +1,162 @@
+
+
+LedgerTransaction -
+
+
+
+net.corda.core.transactions / LedgerTransaction
+
+LedgerTransaction
+class LedgerTransaction : BaseTransaction
+A LedgerTransaction is derived from a WireTransaction . It is the result of doing the following operations:
+Downloading and locally storing all the dependencies of the transaction.
+Resolving the input states and loading them into memory.
+Doing some basic key lookups on the Command s to see if any keys are from a recognised party, thus converting the
+Command objects into AuthenticatedObject .
+Deserialising the output states.
+All the above refer to inputs using a (txhash, output index) pair.
+
+
+
+
+Constructors
+
+Properties
+
+
+
+
+attachments
+
+val attachments : List < Attachment >
A list of Attachment objects identified by the transaction that are needed for this transaction to verify.
+
+
+
+
+commands
+
+val commands : List < AuthenticatedObject < CommandData > >
Arbitrary data passed to the program of each input state.
+
+
+
+
+id
+
+val id : SecureHash
The hash of the original serialised WireTransaction.
+
+
+
+
+inputs
+
+val inputs : List < StateAndRef < * > >
The resolved input states which will be consumed/invalidated by the execution of this transaction.
+
+
+
+
+Inherited Properties
+
+
+
+
+mustSign
+
+val mustSign : List < PublicKey >
Keys that are required to have signed the wrapping SignedTransaction , ordered to match the list of
+signatures. There is nothing that forces the list to be the correct list of signers for this
+transaction until the transaction is verified by using LedgerTransaction.verify . It includes the
+notary key, if the notary field is set.
+
+
+
+
+notary
+
+val notary : Party ?
If present, the notary for this transaction. If absent then the transaction is not notarised at all.
+This is intended for issuance/genesis transactions that dont consume any other states and thus cant
+double spend anything.
+
+
+
+
+outputs
+
+val outputs : List < TransactionState < ContractState > >
Ordered list of states defined by this transaction, along with the associated notaries.
+
+
+
+
+timestamp
+
+val timestamp : Timestamp ?
If specified, a time window in which this transaction may have been notarised. Contracts can check this
+time window to find out when a transaction is deemed to have occurred, from the ledgers perspective.
+
+
+
+
+type
+
+val type : TransactionType
Pointer to a class that defines the behaviour of this transaction: either normal, or "notary changing".
+
+
+
+
+Functions
+
+
+
+
+equals
+
+fun equals ( other : Any ? ) : Boolean
+
+
+
+hashCode
+
+fun hashCode ( ) : Int
+
+
+
+outRef
+
+fun < T : ContractState > outRef ( index : Int ) : StateAndRef < T >
+
+
+
+toTransactionForContract
+
+fun toTransactionForContract ( ) : TransactionForContract
Strips the transaction down to a form that is usable by the contract verify functions
+
+
+
+
+verify
+
+fun verify ( ) : Unit
Verifies this transaction and throws an exception if not valid, depending on the type. For general transactions:
+
+
+
+
+Inherited Functions
+
+
+
diff --git a/docs/build/html/api/net.corda.core.transactions/-ledger-transaction/inputs.html b/docs/build/html/api/net.corda.core.transactions/-ledger-transaction/inputs.html
new file mode 100644
index 0000000000..58de7f5412
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.transactions/-ledger-transaction/inputs.html
@@ -0,0 +1,17 @@
+
+
+LedgerTransaction.inputs -
+
+
+
+net.corda.core.transactions / LedgerTransaction / inputs
+
+inputs
+
+val inputs : List < StateAndRef < * > >
+Overrides BaseTransaction.inputs
+The resolved input states which will be consumed/invalidated by the execution of this transaction.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.transactions/-ledger-transaction/out-ref.html b/docs/build/html/api/net.corda.core.transactions/-ledger-transaction/out-ref.html
new file mode 100644
index 0000000000..372aea5bc1
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.transactions/-ledger-transaction/out-ref.html
@@ -0,0 +1,15 @@
+
+
+LedgerTransaction.outRef -
+
+
+
+net.corda.core.transactions / LedgerTransaction / outRef
+
+outRef
+
+fun < T : ContractState > outRef ( index : Int ) : StateAndRef < T >
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.transactions/-ledger-transaction/to-transaction-for-contract.html b/docs/build/html/api/net.corda.core.transactions/-ledger-transaction/to-transaction-for-contract.html
new file mode 100644
index 0000000000..5bae3e9c14
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.transactions/-ledger-transaction/to-transaction-for-contract.html
@@ -0,0 +1,16 @@
+
+
+LedgerTransaction.toTransactionForContract -
+
+
+
+net.corda.core.transactions / LedgerTransaction / toTransactionForContract
+
+toTransactionForContract
+
+fun toTransactionForContract ( ) : TransactionForContract
+Strips the transaction down to a form that is usable by the contract verify functions
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.transactions/-ledger-transaction/verify.html b/docs/build/html/api/net.corda.core.transactions/-ledger-transaction/verify.html
new file mode 100644
index 0000000000..47c87a9349
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.transactions/-ledger-transaction/verify.html
@@ -0,0 +1,23 @@
+
+
+LedgerTransaction.verify -
+
+
+
+net.corda.core.transactions / LedgerTransaction / verify
+
+verify
+
+fun verify ( ) : Unit
+Verifies this transaction and throws an exception if not valid, depending on the type. For general transactions:
+
+
+Exceptions
+
+TransactionVerificationException
- if anything goes wrong.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.transactions/-merkle-tree/-duplicated-leaf/-init-.html b/docs/build/html/api/net.corda.core.transactions/-merkle-tree/-duplicated-leaf/-init-.html
new file mode 100644
index 0000000000..66dac7a043
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.transactions/-merkle-tree/-duplicated-leaf/-init-.html
@@ -0,0 +1,14 @@
+
+
+MerkleTree.DuplicatedLeaf. -
+
+
+
+net.corda.core.transactions / MerkleTree / DuplicatedLeaf / <init>
+
+<init>
+DuplicatedLeaf ( value : SecureHash )
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.transactions/-merkle-tree/-duplicated-leaf/index.html b/docs/build/html/api/net.corda.core.transactions/-merkle-tree/-duplicated-leaf/index.html
new file mode 100644
index 0000000000..06fe1997a5
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.transactions/-merkle-tree/-duplicated-leaf/index.html
@@ -0,0 +1,58 @@
+
+
+MerkleTree.DuplicatedLeaf -
+
+
+
+net.corda.core.transactions / MerkleTree / DuplicatedLeaf
+
+DuplicatedLeaf
+class DuplicatedLeaf : MerkleTree
+
+
+Constructors
+
+Properties
+
+Inherited Properties
+
+Inherited Functions
+
+
+
diff --git a/docs/build/html/api/net.corda.core.transactions/-merkle-tree/-duplicated-leaf/value.html b/docs/build/html/api/net.corda.core.transactions/-merkle-tree/-duplicated-leaf/value.html
new file mode 100644
index 0000000000..cf18158a98
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.transactions/-merkle-tree/-duplicated-leaf/value.html
@@ -0,0 +1,15 @@
+
+
+MerkleTree.DuplicatedLeaf.value -
+
+
+
+net.corda.core.transactions / MerkleTree / DuplicatedLeaf / value
+
+value
+
+val value : SecureHash
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.transactions/-merkle-tree/-leaf/-init-.html b/docs/build/html/api/net.corda.core.transactions/-merkle-tree/-leaf/-init-.html
new file mode 100644
index 0000000000..96fbdf8622
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.transactions/-merkle-tree/-leaf/-init-.html
@@ -0,0 +1,14 @@
+
+
+MerkleTree.Leaf. -
+
+
+
+net.corda.core.transactions / MerkleTree / Leaf / <init>
+
+<init>
+Leaf ( value : SecureHash )
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.transactions/-merkle-tree/-leaf/index.html b/docs/build/html/api/net.corda.core.transactions/-merkle-tree/-leaf/index.html
new file mode 100644
index 0000000000..6576830aa0
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.transactions/-merkle-tree/-leaf/index.html
@@ -0,0 +1,58 @@
+
+
+MerkleTree.Leaf -
+
+
+
+net.corda.core.transactions / MerkleTree / Leaf
+
+Leaf
+class Leaf : MerkleTree
+
+
+Constructors
+
+Properties
+
+Inherited Properties
+
+Inherited Functions
+
+
+
diff --git a/docs/build/html/api/net.corda.core.transactions/-merkle-tree/-leaf/value.html b/docs/build/html/api/net.corda.core.transactions/-merkle-tree/-leaf/value.html
new file mode 100644
index 0000000000..9e003c6674
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.transactions/-merkle-tree/-leaf/value.html
@@ -0,0 +1,15 @@
+
+
+MerkleTree.Leaf.value -
+
+
+
+net.corda.core.transactions / MerkleTree / Leaf / value
+
+value
+
+val value : SecureHash
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.transactions/-merkle-tree/-node/-init-.html b/docs/build/html/api/net.corda.core.transactions/-merkle-tree/-node/-init-.html
new file mode 100644
index 0000000000..8b08a4a940
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.transactions/-merkle-tree/-node/-init-.html
@@ -0,0 +1,14 @@
+
+
+MerkleTree.Node. -
+
+
+
+net.corda.core.transactions / MerkleTree / Node / <init>
+
+<init>
+Node ( value : SecureHash , left : MerkleTree , right : MerkleTree )
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.transactions/-merkle-tree/-node/index.html b/docs/build/html/api/net.corda.core.transactions/-merkle-tree/-node/index.html
new file mode 100644
index 0000000000..3324e8ad4b
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.transactions/-merkle-tree/-node/index.html
@@ -0,0 +1,70 @@
+
+
+MerkleTree.Node -
+
+
+
+net.corda.core.transactions / MerkleTree / Node
+
+Node
+class Node : MerkleTree
+
+
+Constructors
+
+Properties
+
+Inherited Properties
+
+Inherited Functions
+
+
+
diff --git a/docs/build/html/api/net.corda.core.transactions/-merkle-tree/-node/left.html b/docs/build/html/api/net.corda.core.transactions/-merkle-tree/-node/left.html
new file mode 100644
index 0000000000..f98f463586
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.transactions/-merkle-tree/-node/left.html
@@ -0,0 +1,15 @@
+
+
+MerkleTree.Node.left -
+
+
+
+net.corda.core.transactions / MerkleTree / Node / left
+
+left
+
+val left : MerkleTree
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.transactions/-merkle-tree/-node/right.html b/docs/build/html/api/net.corda.core.transactions/-merkle-tree/-node/right.html
new file mode 100644
index 0000000000..c3ea058ac4
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.transactions/-merkle-tree/-node/right.html
@@ -0,0 +1,15 @@
+
+
+MerkleTree.Node.right -
+
+
+
+net.corda.core.transactions / MerkleTree / Node / right
+
+right
+
+val right : MerkleTree
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.transactions/-merkle-tree/-node/value.html b/docs/build/html/api/net.corda.core.transactions/-merkle-tree/-node/value.html
new file mode 100644
index 0000000000..740dfcc66a
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.transactions/-merkle-tree/-node/value.html
@@ -0,0 +1,15 @@
+
+
+MerkleTree.Node.value -
+
+
+
+net.corda.core.transactions / MerkleTree / Node / value
+
+value
+
+val value : SecureHash
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.transactions/-merkle-tree/get-merkle-tree.html b/docs/build/html/api/net.corda.core.transactions/-merkle-tree/get-merkle-tree.html
new file mode 100644
index 0000000000..7073e6f829
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.transactions/-merkle-tree/get-merkle-tree.html
@@ -0,0 +1,16 @@
+
+
+MerkleTree.getMerkleTree -
+
+
+
+net.corda.core.transactions / MerkleTree / getMerkleTree
+
+getMerkleTree
+
+fun getMerkleTree ( allLeavesHashes : List < SecureHash > ) : MerkleTree
+Merkle tree building using hashes.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.transactions/-merkle-tree/hash-nodes.html b/docs/build/html/api/net.corda.core.transactions/-merkle-tree/hash-nodes.html
new file mode 100644
index 0000000000..9126178992
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.transactions/-merkle-tree/hash-nodes.html
@@ -0,0 +1,15 @@
+
+
+MerkleTree.hashNodes -
+
+
+
+net.corda.core.transactions / MerkleTree / hashNodes
+
+hashNodes
+
+fun hashNodes ( right : MerkleTree ) : MerkleTree
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.transactions/-merkle-tree/hash.html b/docs/build/html/api/net.corda.core.transactions/-merkle-tree/hash.html
new file mode 100644
index 0000000000..3f319cb502
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.transactions/-merkle-tree/hash.html
@@ -0,0 +1,15 @@
+
+
+MerkleTree.hash -
+
+
+
+net.corda.core.transactions / MerkleTree / hash
+
+hash
+
+val hash : SecureHash
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.transactions/-merkle-tree/index.html b/docs/build/html/api/net.corda.core.transactions/-merkle-tree/index.html
new file mode 100644
index 0000000000..e68ffcad6f
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.transactions/-merkle-tree/index.html
@@ -0,0 +1,101 @@
+
+
+MerkleTree -
+
+
+
+net.corda.core.transactions / MerkleTree
+
+MerkleTree
+sealed class MerkleTree
+Creation and verification of a Merkle Tree for a Wire Transaction.
+See: https://en.wikipedia.org/wiki/Merkle_tree
+Transaction is split into following blocks: inputs, outputs, commands, attachments refs. Merkle Tree is kept in
+a recursive data structure. Building is done bottom up, from all leaves hashes.
+If a row in a tree has an odd number of elements - the final hash is hashed with itself.
+
+
+
+
+Types
+
+
+
+
+DuplicatedLeaf
+
+class DuplicatedLeaf : MerkleTree
+
+
+
+Leaf
+
+class Leaf : MerkleTree
+
+
+
+Node
+
+class Node : MerkleTree
+
+
+
+Properties
+
+Functions
+
+
+
+
+hashNodes
+
+fun hashNodes ( right : MerkleTree ) : MerkleTree
+
+
+
+Companion Object Functions
+
+
+
+
+getMerkleTree
+
+fun getMerkleTree ( allLeavesHashes : List < SecureHash > ) : MerkleTree
Merkle tree building using hashes.
+
+
+
+
+Inheritors
+
+
+
+
+DuplicatedLeaf
+
+class DuplicatedLeaf : MerkleTree
+
+
+
+Leaf
+
+class Leaf : MerkleTree
+
+
+
+Node
+
+class Node : MerkleTree
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.transactions/-signed-transaction/-init-.html b/docs/build/html/api/net.corda.core.transactions/-signed-transaction/-init-.html
new file mode 100644
index 0000000000..50afe5f7c3
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.transactions/-signed-transaction/-init-.html
@@ -0,0 +1,21 @@
+
+
+SignedTransaction. -
+
+
+
+net.corda.core.transactions / SignedTransaction / <init>
+
+<init>
+SignedTransaction ( txBits : SerializedBytes < WireTransaction > , sigs : List < WithKey > , id : SecureHash )
+SignedTransaction wraps a serialized WireTransaction. It contains one or more signatures, each one for
+a public key that is mentioned inside a transaction command. SignedTransaction is the top level transaction type
+and the type most frequently passed around the network and stored. The identity of a transaction is the hash
+of a WireTransaction, therefore if you are storing data keyed by WT hash be aware that multiple different STs may
+map to the same key (and they could be different in important ways, like validity). The signatures on a
+SignedTransaction might be invalid or missing: the type does not imply validity.
+A transaction ID should be the hash of the WireTransaction Merkle tree root. Thus adding or removing a signature does not change it.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.transactions/-signed-transaction/-signatures-missing-exception/-init-.html b/docs/build/html/api/net.corda.core.transactions/-signed-transaction/-signatures-missing-exception/-init-.html
new file mode 100644
index 0000000000..9f5a7ee612
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.transactions/-signed-transaction/-signatures-missing-exception/-init-.html
@@ -0,0 +1,14 @@
+
+
+SignedTransaction.SignaturesMissingException. -
+
+
+
+net.corda.core.transactions / SignedTransaction / SignaturesMissingException / <init>
+
+<init>
+SignaturesMissingException ( missing : Set < PublicKey > , descriptions : List < String > , id : SecureHash )
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.transactions/-signed-transaction/-signatures-missing-exception/descriptions.html b/docs/build/html/api/net.corda.core.transactions/-signed-transaction/-signatures-missing-exception/descriptions.html
new file mode 100644
index 0000000000..48ad6ed577
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.transactions/-signed-transaction/-signatures-missing-exception/descriptions.html
@@ -0,0 +1,15 @@
+
+
+SignedTransaction.SignaturesMissingException.descriptions -
+
+
+
+net.corda.core.transactions / SignedTransaction / SignaturesMissingException / descriptions
+
+descriptions
+
+val descriptions : List < String >
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.transactions/-signed-transaction/-signatures-missing-exception/id.html b/docs/build/html/api/net.corda.core.transactions/-signed-transaction/-signatures-missing-exception/id.html
new file mode 100644
index 0000000000..da2c213df5
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.transactions/-signed-transaction/-signatures-missing-exception/id.html
@@ -0,0 +1,16 @@
+
+
+SignedTransaction.SignaturesMissingException.id -
+
+
+
+net.corda.core.transactions / SignedTransaction / SignaturesMissingException / id
+
+id
+
+val id : SecureHash
+Overrides NamedByHash.id
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.transactions/-signed-transaction/-signatures-missing-exception/index.html b/docs/build/html/api/net.corda.core.transactions/-signed-transaction/-signatures-missing-exception/index.html
new file mode 100644
index 0000000000..1cd3d2520d
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.transactions/-signed-transaction/-signatures-missing-exception/index.html
@@ -0,0 +1,59 @@
+
+
+SignedTransaction.SignaturesMissingException -
+
+
+
+net.corda.core.transactions / SignedTransaction / SignaturesMissingException
+
+SignaturesMissingException
+class SignaturesMissingException : NamedByHash , SignatureException
+
+
+Constructors
+
+Properties
+
+Functions
+
+
+
+
+toString
+
+fun toString ( ) : String
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.transactions/-signed-transaction/-signatures-missing-exception/missing.html b/docs/build/html/api/net.corda.core.transactions/-signed-transaction/-signatures-missing-exception/missing.html
new file mode 100644
index 0000000000..32209ee9ab
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.transactions/-signed-transaction/-signatures-missing-exception/missing.html
@@ -0,0 +1,15 @@
+
+
+SignedTransaction.SignaturesMissingException.missing -
+
+
+
+net.corda.core.transactions / SignedTransaction / SignaturesMissingException / missing
+
+missing
+
+val missing : Set < PublicKey >
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.transactions/-signed-transaction/-signatures-missing-exception/to-string.html b/docs/build/html/api/net.corda.core.transactions/-signed-transaction/-signatures-missing-exception/to-string.html
new file mode 100644
index 0000000000..06d864f280
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.transactions/-signed-transaction/-signatures-missing-exception/to-string.html
@@ -0,0 +1,15 @@
+
+
+SignedTransaction.SignaturesMissingException.toString -
+
+
+
+net.corda.core.transactions / SignedTransaction / SignaturesMissingException / toString
+
+toString
+
+fun toString ( ) : String
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.transactions/-signed-transaction/check-signatures-are-valid.html b/docs/build/html/api/net.corda.core.transactions/-signed-transaction/check-signatures-are-valid.html
new file mode 100644
index 0000000000..33045b31b6
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.transactions/-signed-transaction/check-signatures-are-valid.html
@@ -0,0 +1,22 @@
+
+
+SignedTransaction.checkSignaturesAreValid -
+
+
+
+net.corda.core.transactions / SignedTransaction / checkSignaturesAreValid
+
+checkSignaturesAreValid
+
+fun checkSignaturesAreValid ( ) : Unit
+Mathematically validates the signatures that are present on this transaction. This does not imply that
+the signatures are by the right keys, or that there are sufficient signatures, just that they arent
+corrupt. If you use this function directly youll need to do the other checks yourself. Probably you
+want verifySignatures instead.
+Exceptions
+
+SignatureException
- if a signature fails to verify.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.transactions/-signed-transaction/id.html b/docs/build/html/api/net.corda.core.transactions/-signed-transaction/id.html
new file mode 100644
index 0000000000..57784918a0
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.transactions/-signed-transaction/id.html
@@ -0,0 +1,16 @@
+
+
+SignedTransaction.id -
+
+
+
+net.corda.core.transactions / SignedTransaction / id
+
+id
+
+val id : SecureHash
+Overrides NamedByHash.id
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.transactions/-signed-transaction/index.html b/docs/build/html/api/net.corda.core.transactions/-signed-transaction/index.html
new file mode 100644
index 0000000000..c527b4e6e3
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.transactions/-signed-transaction/index.html
@@ -0,0 +1,135 @@
+
+
+SignedTransaction -
+
+
+
+net.corda.core.transactions / SignedTransaction
+
+SignedTransaction
+data class SignedTransaction : NamedByHash
+SignedTransaction wraps a serialized WireTransaction. It contains one or more signatures, each one for
+a public key that is mentioned inside a transaction command. SignedTransaction is the top level transaction type
+and the type most frequently passed around the network and stored. The identity of a transaction is the hash
+of a WireTransaction, therefore if you are storing data keyed by WT hash be aware that multiple different STs may
+map to the same key (and they could be different in important ways, like validity). The signatures on a
+SignedTransaction might be invalid or missing: the type does not imply validity.
+A transaction ID should be the hash of the WireTransaction Merkle tree root. Thus adding or removing a signature does not change it.
+
+
+Exceptions
+
+Constructors
+
+
+
+
+<init>
+
+SignedTransaction ( txBits : SerializedBytes < WireTransaction > , sigs : List < WithKey > , id : SecureHash )
SignedTransaction wraps a serialized WireTransaction. It contains one or more signatures, each one for
+a public key that is mentioned inside a transaction command. SignedTransaction is the top level transaction type
+and the type most frequently passed around the network and stored. The identity of a transaction is the hash
+of a WireTransaction, therefore if you are storing data keyed by WT hash be aware that multiple different STs may
+map to the same key (and they could be different in important ways, like validity). The signatures on a
+SignedTransaction might be invalid or missing: the type does not imply validity.
+A transaction ID should be the hash of the WireTransaction Merkle tree root. Thus adding or removing a signature does not change it.
+
+
+
+
+Properties
+
+Functions
+
+
+
+
+checkSignaturesAreValid
+
+fun checkSignaturesAreValid ( ) : Unit
Mathematically validates the signatures that are present on this transaction. This does not imply that
+the signatures are by the right keys, or that there are sufficient signatures, just that they arent
+corrupt. If you use this function directly youll need to do the other checks yourself. Probably you
+want verifySignatures instead.
+
+
+
+
+plus
+
+operator fun plus ( sig : WithKey ) : SignedTransaction
Alias for withAdditionalSignature to let you use Kotlin operator overloading.
+operator fun plus ( sigList : Collection < WithKey > ) : SignedTransaction
Alias for withAdditionalSignatures to let you use Kotlin operator overloading.
+
+
+
+
+toLedgerTransaction
+
+fun toLedgerTransaction ( services : ServiceHub ) : LedgerTransaction
Calls verifySignatures to check all required signatures are present, and then calls
+WireTransaction.toLedgerTransaction with the passed in ServiceHub to resolve the dependencies,
+returning an unverified LedgerTransaction.
+
+
+
+
+verifySignatures
+
+fun verifySignatures ( vararg allowedToBeMissing : PublicKey ) : WireTransaction
Verifies the signatures on this transaction and throws if any are missing which arent passed as parameters.
+In this context, "verifying" means checking they are valid signatures and that their public keys are in
+the contained transactions BaseTransaction.mustSign property.
+
+
+
+
+withAdditionalSignature
+
+fun withAdditionalSignature ( sig : WithKey ) : SignedTransaction
Returns the same transaction but with an additional (unchecked) signature.
+
+
+
+
+withAdditionalSignatures
+
+fun withAdditionalSignatures ( sigList : Iterable < WithKey > ) : SignedTransaction
Returns the same transaction but with an additional (unchecked) signatures.
+
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.transactions/-signed-transaction/plus.html b/docs/build/html/api/net.corda.core.transactions/-signed-transaction/plus.html
new file mode 100644
index 0000000000..5bcd5336f7
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.transactions/-signed-transaction/plus.html
@@ -0,0 +1,21 @@
+
+
+SignedTransaction.plus -
+
+
+
+net.corda.core.transactions / SignedTransaction / plus
+
+plus
+
+operator fun plus ( sig : WithKey ) : SignedTransaction
+Alias for withAdditionalSignature to let you use Kotlin operator overloading.
+
+
+
+operator fun plus ( sigList : Collection < WithKey > ) : SignedTransaction
+Alias for withAdditionalSignatures to let you use Kotlin operator overloading.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.transactions/-signed-transaction/sigs.html b/docs/build/html/api/net.corda.core.transactions/-signed-transaction/sigs.html
new file mode 100644
index 0000000000..cf0144f569
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.transactions/-signed-transaction/sigs.html
@@ -0,0 +1,15 @@
+
+
+SignedTransaction.sigs -
+
+
+
+net.corda.core.transactions / SignedTransaction / sigs
+
+sigs
+
+val sigs : List < WithKey >
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.transactions/-signed-transaction/to-ledger-transaction.html b/docs/build/html/api/net.corda.core.transactions/-signed-transaction/to-ledger-transaction.html
new file mode 100644
index 0000000000..d9c5e2a003
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.transactions/-signed-transaction/to-ledger-transaction.html
@@ -0,0 +1,30 @@
+
+
+SignedTransaction.toLedgerTransaction -
+
+
+
+net.corda.core.transactions / SignedTransaction / toLedgerTransaction
+
+toLedgerTransaction
+
+fun toLedgerTransaction ( services : ServiceHub ) : LedgerTransaction
+Calls verifySignatures to check all required signatures are present, and then calls
+WireTransaction.toLedgerTransaction with the passed in ServiceHub to resolve the dependencies,
+returning an unverified LedgerTransaction.
+Exceptions
+
+FileNotFoundException
- if a required attachment was not found in storage.
+
+
+TransactionResolutionException
- if an input points to a transaction not found in storage.
+
+
+SignatureException
- if any signatures were invalid or unrecognised
+
+
+SignaturesMissingException
- if any signatures that should have been present are missing.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.transactions/-signed-transaction/tx-bits.html b/docs/build/html/api/net.corda.core.transactions/-signed-transaction/tx-bits.html
new file mode 100644
index 0000000000..8652cc04da
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.transactions/-signed-transaction/tx-bits.html
@@ -0,0 +1,15 @@
+
+
+SignedTransaction.txBits -
+
+
+
+net.corda.core.transactions / SignedTransaction / txBits
+
+txBits
+
+val txBits : SerializedBytes < WireTransaction >
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.transactions/-signed-transaction/tx.html b/docs/build/html/api/net.corda.core.transactions/-signed-transaction/tx.html
new file mode 100644
index 0000000000..786658c46f
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.transactions/-signed-transaction/tx.html
@@ -0,0 +1,19 @@
+
+
+SignedTransaction.tx -
+
+
+
+net.corda.core.transactions / SignedTransaction / tx
+
+tx
+
+val tx : WireTransaction
+Lazily calculated access to the deserialised/hashed transaction data.
+Getter
+
Lazily calculated access to the deserialised/hashed transaction data.
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.transactions/-signed-transaction/verify-signatures.html b/docs/build/html/api/net.corda.core.transactions/-signed-transaction/verify-signatures.html
new file mode 100644
index 0000000000..d73d715ecd
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.transactions/-signed-transaction/verify-signatures.html
@@ -0,0 +1,29 @@
+
+
+SignedTransaction.verifySignatures -
+
+
+
+net.corda.core.transactions / SignedTransaction / verifySignatures
+
+verifySignatures
+
+fun verifySignatures ( vararg allowedToBeMissing : PublicKey ) : WireTransaction
+Verifies the signatures on this transaction and throws if any are missing which arent passed as parameters.
+In this context, "verifying" means checking they are valid signatures and that their public keys are in
+the contained transactions BaseTransaction.mustSign property.
+Normally you would not provide any keys to this function, but if youre in the process of building a partial
+transaction and you want to access the contents before youve signed it, you can specify your own keys here
+to bypass that check.
+
+
+Exceptions
+
+SignatureException
- if any signatures are invalid or unrecognised.
+
+
+SignaturesMissingException
- if any signatures should have been present but were not.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.transactions/-signed-transaction/with-additional-signature.html b/docs/build/html/api/net.corda.core.transactions/-signed-transaction/with-additional-signature.html
new file mode 100644
index 0000000000..e1aaa8b290
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.transactions/-signed-transaction/with-additional-signature.html
@@ -0,0 +1,16 @@
+
+
+SignedTransaction.withAdditionalSignature -
+
+
+
+net.corda.core.transactions / SignedTransaction / withAdditionalSignature
+
+withAdditionalSignature
+
+fun withAdditionalSignature ( sig : WithKey ) : SignedTransaction
+Returns the same transaction but with an additional (unchecked) signature.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.transactions/-signed-transaction/with-additional-signatures.html b/docs/build/html/api/net.corda.core.transactions/-signed-transaction/with-additional-signatures.html
new file mode 100644
index 0000000000..16a103b233
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.transactions/-signed-transaction/with-additional-signatures.html
@@ -0,0 +1,16 @@
+
+
+SignedTransaction.withAdditionalSignatures -
+
+
+
+net.corda.core.transactions / SignedTransaction / withAdditionalSignatures
+
+withAdditionalSignatures
+
+fun withAdditionalSignatures ( sigList : Iterable < WithKey > ) : SignedTransaction
+Returns the same transaction but with an additional (unchecked) signatures.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.transactions/-transaction-builder/-init-.html b/docs/build/html/api/net.corda.core.transactions/-transaction-builder/-init-.html
new file mode 100644
index 0000000000..42e03415a0
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.transactions/-transaction-builder/-init-.html
@@ -0,0 +1,31 @@
+
+
+TransactionBuilder. -
+
+
+
+net.corda.core.transactions / TransactionBuilder / <init>
+
+<init>
+TransactionBuilder ( type : TransactionType = TransactionType.General(), notary : Party ? = null, inputs : MutableList < StateRef > = arrayListOf(), attachments : MutableList < SecureHash > = arrayListOf(), outputs : MutableList < TransactionState < ContractState > > = arrayListOf(), commands : MutableList < Command > = arrayListOf(), signers : MutableSet < PublicKey > = mutableSetOf(), timestamp : Timestamp ? = null)
+A TransactionBuilder is a transaction class thats mutable (unlike the others which are all immutable). It is
+intended to be passed around contracts that may edit it by adding new states/commands. Then once the states
+and commands are right, this class can be used as a holding bucket to gather signatures from multiple parties.
+The builder can be customised for specific transaction types, e.g. where additional processing is needed
+before adding a state/command.
+
+
+Parameters
+
+notary
- Notary used for the transaction. If null, this indicates the transaction DOES NOT have a notary.
+When this is set to a non-null value, an output state can be added by just passing in a ContractState – a
+TransactionState with this notary specified will be generated automatically.
+
+
+signers
- The set of public keys the transaction needs signatures for. The logic for building the signers set
+can be customised for every TransactionType . E.g. in the general case it contains the command and notary public keys,
+but for the TransactionType.NotaryChange transactions it is the set of all input ContractState.participants .
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.transactions/-transaction-builder/add-attachment.html b/docs/build/html/api/net.corda.core.transactions/-transaction-builder/add-attachment.html
new file mode 100644
index 0000000000..63b8c648ff
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.transactions/-transaction-builder/add-attachment.html
@@ -0,0 +1,15 @@
+
+
+TransactionBuilder.addAttachment -
+
+
+
+net.corda.core.transactions / TransactionBuilder / addAttachment
+
+addAttachment
+
+fun addAttachment ( attachmentId : SecureHash ) : Unit
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.transactions/-transaction-builder/add-command.html b/docs/build/html/api/net.corda.core.transactions/-transaction-builder/add-command.html
new file mode 100644
index 0000000000..b7911549ed
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.transactions/-transaction-builder/add-command.html
@@ -0,0 +1,19 @@
+
+
+TransactionBuilder.addCommand -
+
+
+
+net.corda.core.transactions / TransactionBuilder / addCommand
+
+addCommand
+
+fun addCommand ( arg : Command ) : Unit
+
+fun addCommand ( data : CommandData , vararg keys : PublicKey ) : <ERROR CLASS>
+
+fun addCommand ( data : CommandData , keys : List < PublicKey > ) : Unit
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.transactions/-transaction-builder/add-input-state.html b/docs/build/html/api/net.corda.core.transactions/-transaction-builder/add-input-state.html
new file mode 100644
index 0000000000..a50a70e351
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.transactions/-transaction-builder/add-input-state.html
@@ -0,0 +1,15 @@
+
+
+TransactionBuilder.addInputState -
+
+
+
+net.corda.core.transactions / TransactionBuilder / addInputState
+
+addInputState
+
+open fun addInputState ( stateAndRef : StateAndRef < * > ) : Unit
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.transactions/-transaction-builder/add-output-state.html b/docs/build/html/api/net.corda.core.transactions/-transaction-builder/add-output-state.html
new file mode 100644
index 0000000000..252e96b5b5
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.transactions/-transaction-builder/add-output-state.html
@@ -0,0 +1,22 @@
+
+
+TransactionBuilder.addOutputState -
+
+
+
+net.corda.core.transactions / TransactionBuilder / addOutputState
+
+addOutputState
+
+fun addOutputState ( state : TransactionState < * > ) : Int
+
+fun addOutputState ( state : ContractState , notary : Party ) : Int
+
+
+
+fun addOutputState ( state : ContractState ) : Int
+A default notary must be specified during builder construction to use this method
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.transactions/-transaction-builder/add-signature-unchecked.html b/docs/build/html/api/net.corda.core.transactions/-transaction-builder/add-signature-unchecked.html
new file mode 100644
index 0000000000..64af89892d
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.transactions/-transaction-builder/add-signature-unchecked.html
@@ -0,0 +1,16 @@
+
+
+TransactionBuilder.addSignatureUnchecked -
+
+
+
+net.corda.core.transactions / TransactionBuilder / addSignatureUnchecked
+
+addSignatureUnchecked
+
+fun addSignatureUnchecked ( sig : WithKey ) : TransactionBuilder
+Adds the signature directly to the transaction, without checking it for validity.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.transactions/-transaction-builder/attachments.html b/docs/build/html/api/net.corda.core.transactions/-transaction-builder/attachments.html
new file mode 100644
index 0000000000..3860cb30f9
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.transactions/-transaction-builder/attachments.html
@@ -0,0 +1,17 @@
+
+
+TransactionBuilder.attachments -
+
+
+
+net.corda.core.transactions / TransactionBuilder / attachments
+
+attachments
+
+fun attachments ( ) : List < SecureHash >
+
+protected val attachments : MutableList < SecureHash >
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.transactions/-transaction-builder/check-and-add-signature.html b/docs/build/html/api/net.corda.core.transactions/-transaction-builder/check-and-add-signature.html
new file mode 100644
index 0000000000..d303eee088
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.transactions/-transaction-builder/check-and-add-signature.html
@@ -0,0 +1,23 @@
+
+
+TransactionBuilder.checkAndAddSignature -
+
+
+
+net.corda.core.transactions / TransactionBuilder / checkAndAddSignature
+
+checkAndAddSignature
+
+fun checkAndAddSignature ( sig : WithKey ) : Unit
+Checks that the given signature matches one of the commands and that it is a correct signature over the tx, then
+adds it.
+Exceptions
+
+SignatureException
- if the signature didnt match the transaction contents.
+
+
+IllegalArgumentException
- if the signature key doesnt appear in any command.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.transactions/-transaction-builder/check-signature.html b/docs/build/html/api/net.corda.core.transactions/-transaction-builder/check-signature.html
new file mode 100644
index 0000000000..db392a9273
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.transactions/-transaction-builder/check-signature.html
@@ -0,0 +1,22 @@
+
+
+TransactionBuilder.checkSignature -
+
+
+
+net.corda.core.transactions / TransactionBuilder / checkSignature
+
+checkSignature
+
+fun checkSignature ( sig : WithKey ) : Unit
+Checks that the given signature matches one of the commands and that it is a correct signature over the tx.
+Exceptions
+
+SignatureException
- if the signature didnt match the transaction contents.
+
+
+IllegalArgumentException
- if the signature key doesnt appear in any command.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.transactions/-transaction-builder/commands.html b/docs/build/html/api/net.corda.core.transactions/-transaction-builder/commands.html
new file mode 100644
index 0000000000..6a6e53769f
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.transactions/-transaction-builder/commands.html
@@ -0,0 +1,17 @@
+
+
+TransactionBuilder.commands -
+
+
+
+net.corda.core.transactions / TransactionBuilder / commands
+
+commands
+
+fun commands ( ) : List < Command >
+
+protected val commands : MutableList < Command >
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.transactions/-transaction-builder/copy.html b/docs/build/html/api/net.corda.core.transactions/-transaction-builder/copy.html
new file mode 100644
index 0000000000..0a9791de86
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.transactions/-transaction-builder/copy.html
@@ -0,0 +1,16 @@
+
+
+TransactionBuilder.copy -
+
+
+
+net.corda.core.transactions / TransactionBuilder / copy
+
+copy
+
+fun copy ( ) : TransactionBuilder
+Creates a copy of the builder.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.transactions/-transaction-builder/current-sigs.html b/docs/build/html/api/net.corda.core.transactions/-transaction-builder/current-sigs.html
new file mode 100644
index 0000000000..ca67c7f8c5
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.transactions/-transaction-builder/current-sigs.html
@@ -0,0 +1,16 @@
+
+
+TransactionBuilder.currentSigs -
+
+
+
+net.corda.core.transactions / TransactionBuilder / currentSigs
+
+currentSigs
+
+protected val currentSigs : <ERROR CLASS>
+The signatures that have been collected so far - might be incomplete
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.transactions/-transaction-builder/index.html b/docs/build/html/api/net.corda.core.transactions/-transaction-builder/index.html
new file mode 100644
index 0000000000..07b90dbf90
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.transactions/-transaction-builder/index.html
@@ -0,0 +1,251 @@
+
+
+TransactionBuilder -
+
+
+
+net.corda.core.transactions / TransactionBuilder
+
+TransactionBuilder
+open class TransactionBuilder
+A TransactionBuilder is a transaction class thats mutable (unlike the others which are all immutable). It is
+intended to be passed around contracts that may edit it by adding new states/commands. Then once the states
+and commands are right, this class can be used as a holding bucket to gather signatures from multiple parties.
+The builder can be customised for specific transaction types, e.g. where additional processing is needed
+before adding a state/command.
+
+
+Parameters
+
+notary
- Notary used for the transaction. If null, this indicates the transaction DOES NOT have a notary.
+When this is set to a non-null value, an output state can be added by just passing in a ContractState – a
+TransactionState with this notary specified will be generated automatically.
+
+
+signers
- The set of public keys the transaction needs signatures for. The logic for building the signers set
+can be customised for every TransactionType . E.g. in the general case it contains the command and notary public keys,
+but for the TransactionType.NotaryChange transactions it is the set of all input ContractState.participants .
+
+
+Constructors
+
+
+
+
+<init>
+
+TransactionBuilder ( type : TransactionType = TransactionType.General(), notary : Party ? = null, inputs : MutableList < StateRef > = arrayListOf(), attachments : MutableList < SecureHash > = arrayListOf(), outputs : MutableList < TransactionState < ContractState > > = arrayListOf(), commands : MutableList < Command > = arrayListOf(), signers : MutableSet < PublicKey > = mutableSetOf(), timestamp : Timestamp ? = null)
A TransactionBuilder is a transaction class thats mutable (unlike the others which are all immutable). It is
+intended to be passed around contracts that may edit it by adding new states/commands. Then once the states
+and commands are right, this class can be used as a holding bucket to gather signatures from multiple parties.
+
+
+
+
+Properties
+
+Functions
+
+Inheritors
+
+
+
+
+Builder
+
+class Builder : TransactionBuilder
Just uses the default TransactionBuilder with no special logic
+
+
+
+
+Builder
+
+class Builder : TransactionBuilder
A transaction builder that automatically sets the transaction type to NotaryChange
+and adds the list of participants to the signers set for every input state.
+
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.transactions/-transaction-builder/input-states.html b/docs/build/html/api/net.corda.core.transactions/-transaction-builder/input-states.html
new file mode 100644
index 0000000000..10f919510f
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.transactions/-transaction-builder/input-states.html
@@ -0,0 +1,15 @@
+
+
+TransactionBuilder.inputStates -
+
+
+
+net.corda.core.transactions / TransactionBuilder / inputStates
+
+inputStates
+
+fun inputStates ( ) : List < StateRef >
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.transactions/-transaction-builder/inputs.html b/docs/build/html/api/net.corda.core.transactions/-transaction-builder/inputs.html
new file mode 100644
index 0000000000..bb75a34965
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.transactions/-transaction-builder/inputs.html
@@ -0,0 +1,15 @@
+
+
+TransactionBuilder.inputs -
+
+
+
+net.corda.core.transactions / TransactionBuilder / inputs
+
+inputs
+
+protected val inputs : MutableList < StateRef >
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.transactions/-transaction-builder/notary.html b/docs/build/html/api/net.corda.core.transactions/-transaction-builder/notary.html
new file mode 100644
index 0000000000..81b6f95a5a
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.transactions/-transaction-builder/notary.html
@@ -0,0 +1,15 @@
+
+
+TransactionBuilder.notary -
+
+
+
+net.corda.core.transactions / TransactionBuilder / notary
+
+notary
+
+var notary : Party ?
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.transactions/-transaction-builder/output-states.html b/docs/build/html/api/net.corda.core.transactions/-transaction-builder/output-states.html
new file mode 100644
index 0000000000..effd64f573
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.transactions/-transaction-builder/output-states.html
@@ -0,0 +1,15 @@
+
+
+TransactionBuilder.outputStates -
+
+
+
+net.corda.core.transactions / TransactionBuilder / outputStates
+
+outputStates
+
+fun outputStates ( ) : List < TransactionState < * > >
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.transactions/-transaction-builder/outputs.html b/docs/build/html/api/net.corda.core.transactions/-transaction-builder/outputs.html
new file mode 100644
index 0000000000..335ea61c6a
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.transactions/-transaction-builder/outputs.html
@@ -0,0 +1,15 @@
+
+
+TransactionBuilder.outputs -
+
+
+
+net.corda.core.transactions / TransactionBuilder / outputs
+
+outputs
+
+protected val outputs : MutableList < TransactionState < ContractState > >
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.transactions/-transaction-builder/set-time.html b/docs/build/html/api/net.corda.core.transactions/-transaction-builder/set-time.html
new file mode 100644
index 0000000000..d1d4ca811f
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.transactions/-transaction-builder/set-time.html
@@ -0,0 +1,30 @@
+
+
+TransactionBuilder.setTime -
+
+
+
+net.corda.core.transactions / TransactionBuilder / setTime
+
+setTime
+
+fun setTime ( time : Instant , timeTolerance : Duration ) : Unit
+Places a TimestampCommand in this transaction, removing any existing command if there is one.
+The command requires a signature from the Notary service, which acts as a Timestamp Authority.
+The signature can be obtained using NotaryProtocol .
+The window of time in which the final timestamp may lie is defined as time +/- timeTolerance .
+If you want a non-symmetrical time window you must add the command via addCommand yourself. The tolerance
+should be chosen such that your code can finish building the transaction and sending it to the TSA within that
+window of time, taking into account factors such as network latency. Transactions being built by a group of
+collaborating parties may therefore require a higher time tolerance than a transaction being built by a single
+node.
+
+
+
+
+
+fun setTime ( newTimestamp : Timestamp ) : Unit
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.transactions/-transaction-builder/sign-with.html b/docs/build/html/api/net.corda.core.transactions/-transaction-builder/sign-with.html
new file mode 100644
index 0000000000..3912172ebb
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.transactions/-transaction-builder/sign-with.html
@@ -0,0 +1,15 @@
+
+
+TransactionBuilder.signWith -
+
+
+
+net.corda.core.transactions / TransactionBuilder / signWith
+
+signWith
+
+fun signWith ( key : KeyPair ) : TransactionBuilder
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.transactions/-transaction-builder/signers.html b/docs/build/html/api/net.corda.core.transactions/-transaction-builder/signers.html
new file mode 100644
index 0000000000..9fda7f152e
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.transactions/-transaction-builder/signers.html
@@ -0,0 +1,15 @@
+
+
+TransactionBuilder.signers -
+
+
+
+net.corda.core.transactions / TransactionBuilder / signers
+
+signers
+
+protected val signers : MutableSet < PublicKey >
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.transactions/-transaction-builder/time.html b/docs/build/html/api/net.corda.core.transactions/-transaction-builder/time.html
new file mode 100644
index 0000000000..7c0158cebe
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.transactions/-transaction-builder/time.html
@@ -0,0 +1,15 @@
+
+
+TransactionBuilder.time -
+
+
+
+net.corda.core.transactions / TransactionBuilder / time
+
+time
+
+val time : Timestamp ?
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.transactions/-transaction-builder/timestamp.html b/docs/build/html/api/net.corda.core.transactions/-transaction-builder/timestamp.html
new file mode 100644
index 0000000000..4dd250ac36
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.transactions/-transaction-builder/timestamp.html
@@ -0,0 +1,15 @@
+
+
+TransactionBuilder.timestamp -
+
+
+
+net.corda.core.transactions / TransactionBuilder / timestamp
+
+timestamp
+
+protected var timestamp : Timestamp ?
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.transactions/-transaction-builder/to-signed-transaction.html b/docs/build/html/api/net.corda.core.transactions/-transaction-builder/to-signed-transaction.html
new file mode 100644
index 0000000000..178eb4534e
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.transactions/-transaction-builder/to-signed-transaction.html
@@ -0,0 +1,15 @@
+
+
+TransactionBuilder.toSignedTransaction -
+
+
+
+net.corda.core.transactions / TransactionBuilder / toSignedTransaction
+
+toSignedTransaction
+
+fun toSignedTransaction ( checkSufficientSignatures : Boolean = true) : SignedTransaction
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.transactions/-transaction-builder/to-wire-transaction.html b/docs/build/html/api/net.corda.core.transactions/-transaction-builder/to-wire-transaction.html
new file mode 100644
index 0000000000..775d49f09f
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.transactions/-transaction-builder/to-wire-transaction.html
@@ -0,0 +1,15 @@
+
+
+TransactionBuilder.toWireTransaction -
+
+
+
+net.corda.core.transactions / TransactionBuilder / toWireTransaction
+
+toWireTransaction
+
+fun toWireTransaction ( ) : WireTransaction
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.transactions/-transaction-builder/type.html b/docs/build/html/api/net.corda.core.transactions/-transaction-builder/type.html
new file mode 100644
index 0000000000..f162cf218d
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.transactions/-transaction-builder/type.html
@@ -0,0 +1,15 @@
+
+
+TransactionBuilder.type -
+
+
+
+net.corda.core.transactions / TransactionBuilder / type
+
+type
+
+protected val type : TransactionType
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.transactions/-transaction-builder/with-items.html b/docs/build/html/api/net.corda.core.transactions/-transaction-builder/with-items.html
new file mode 100644
index 0000000000..b37430c864
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.transactions/-transaction-builder/with-items.html
@@ -0,0 +1,16 @@
+
+
+TransactionBuilder.withItems -
+
+
+
+net.corda.core.transactions / TransactionBuilder / withItems
+
+withItems
+
+fun withItems ( vararg items : Any ) : TransactionBuilder
+A more convenient way to add items to this transaction that calls the add* methods for you based on type
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.transactions/-wire-transaction/-init-.html b/docs/build/html/api/net.corda.core.transactions/-wire-transaction/-init-.html
new file mode 100644
index 0000000000..d5e24c22bf
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.transactions/-wire-transaction/-init-.html
@@ -0,0 +1,18 @@
+
+
+WireTransaction. -
+
+
+
+net.corda.core.transactions / WireTransaction / <init>
+
+<init>
+WireTransaction ( inputs : List < StateRef > , attachments : List < SecureHash > , outputs : List < TransactionState < ContractState > > , commands : List < Command > , notary : Party ? , signers : List < PublicKey > , type : TransactionType , timestamp : Timestamp ? )
+A transaction ready for serialisation, without any signatures attached. A WireTransaction is usually wrapped
+by a SignedTransaction that carries the signatures over this payload. The hash of the wire transaction is
+the identity of the transaction, that is, its possible for two SignedTransaction s with different sets of
+signatures to have the same identity hash.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.transactions/-wire-transaction/all-leaves-hashes.html b/docs/build/html/api/net.corda.core.transactions/-wire-transaction/all-leaves-hashes.html
new file mode 100644
index 0000000000..aabea0207c
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.transactions/-wire-transaction/all-leaves-hashes.html
@@ -0,0 +1,15 @@
+
+
+WireTransaction.allLeavesHashes -
+
+
+
+net.corda.core.transactions / WireTransaction / allLeavesHashes
+
+allLeavesHashes
+
+val allLeavesHashes : List < SecureHash >
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.transactions/-wire-transaction/attachments.html b/docs/build/html/api/net.corda.core.transactions/-wire-transaction/attachments.html
new file mode 100644
index 0000000000..7f8467ffaa
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.transactions/-wire-transaction/attachments.html
@@ -0,0 +1,16 @@
+
+
+WireTransaction.attachments -
+
+
+
+net.corda.core.transactions / WireTransaction / attachments
+
+attachments
+
+val attachments : List < SecureHash >
+Hashes of the ZIP/JAR files that are needed to interpret the contents of this wire transaction.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.transactions/-wire-transaction/cached-tree.html b/docs/build/html/api/net.corda.core.transactions/-wire-transaction/cached-tree.html
new file mode 100644
index 0000000000..2a753836f0
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.transactions/-wire-transaction/cached-tree.html
@@ -0,0 +1,15 @@
+
+
+WireTransaction.cachedTree -
+
+
+
+net.corda.core.transactions / WireTransaction / cachedTree
+
+cachedTree
+
+var cachedTree : MerkleTree ?
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.transactions/-wire-transaction/commands.html b/docs/build/html/api/net.corda.core.transactions/-wire-transaction/commands.html
new file mode 100644
index 0000000000..1da166d152
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.transactions/-wire-transaction/commands.html
@@ -0,0 +1,16 @@
+
+
+WireTransaction.commands -
+
+
+
+net.corda.core.transactions / WireTransaction / commands
+
+commands
+
+val commands : List < Command >
+Ordered list of (CommandData , PublicKey ) pairs that instruct the contracts what to do.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.transactions/-wire-transaction/deserialize.html b/docs/build/html/api/net.corda.core.transactions/-wire-transaction/deserialize.html
new file mode 100644
index 0000000000..3161d4c7b0
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.transactions/-wire-transaction/deserialize.html
@@ -0,0 +1,15 @@
+
+
+WireTransaction.deserialize -
+
+
+
+net.corda.core.transactions / WireTransaction / deserialize
+
+deserialize
+
+fun deserialize ( bits : SerializedBytes < WireTransaction > , kryo : <ERROR CLASS> = THREAD_LOCAL_KRYO.get()) : WireTransaction
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.transactions/-wire-transaction/equals.html b/docs/build/html/api/net.corda.core.transactions/-wire-transaction/equals.html
new file mode 100644
index 0000000000..e7ad05ae0d
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.transactions/-wire-transaction/equals.html
@@ -0,0 +1,16 @@
+
+
+WireTransaction.equals -
+
+
+
+net.corda.core.transactions / WireTransaction / equals
+
+equals
+
+fun equals ( other : Any ? ) : Boolean
+Overrides BaseTransaction.equals
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.transactions/-wire-transaction/hash-code.html b/docs/build/html/api/net.corda.core.transactions/-wire-transaction/hash-code.html
new file mode 100644
index 0000000000..12a1327378
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.transactions/-wire-transaction/hash-code.html
@@ -0,0 +1,16 @@
+
+
+WireTransaction.hashCode -
+
+
+
+net.corda.core.transactions / WireTransaction / hashCode
+
+hashCode
+
+fun hashCode ( ) : Int
+Overrides BaseTransaction.hashCode
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.transactions/-wire-transaction/id.html b/docs/build/html/api/net.corda.core.transactions/-wire-transaction/id.html
new file mode 100644
index 0000000000..0d7044836f
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.transactions/-wire-transaction/id.html
@@ -0,0 +1,16 @@
+
+
+WireTransaction.id -
+
+
+
+net.corda.core.transactions / WireTransaction / id
+
+id
+
+val id : SecureHash
+Overrides NamedByHash.id
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.transactions/-wire-transaction/index.html b/docs/build/html/api/net.corda.core.transactions/-wire-transaction/index.html
new file mode 100644
index 0000000000..46d164051f
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.transactions/-wire-transaction/index.html
@@ -0,0 +1,215 @@
+
+
+WireTransaction -
+
+
+
+net.corda.core.transactions / WireTransaction
+
+WireTransaction
+class WireTransaction : BaseTransaction
+A transaction ready for serialisation, without any signatures attached. A WireTransaction is usually wrapped
+by a SignedTransaction that carries the signatures over this payload. The hash of the wire transaction is
+the identity of the transaction, that is, its possible for two SignedTransaction s with different sets of
+signatures to have the same identity hash.
+
+
+Constructors
+
+
+
+
+<init>
+
+WireTransaction ( inputs : List < StateRef > , attachments : List < SecureHash > , outputs : List < TransactionState < ContractState > > , commands : List < Command > , notary : Party ? , signers : List < PublicKey > , type : TransactionType , timestamp : Timestamp ? )
A transaction ready for serialisation, without any signatures attached. A WireTransaction is usually wrapped
+by a SignedTransaction that carries the signatures over this payload. The hash of the wire transaction is
+the identity of the transaction, that is, its possible for two SignedTransaction s with different sets of
+signatures to have the same identity hash.
+
+
+
+
+Properties
+
+Inherited Properties
+
+
+
+
+mustSign
+
+val mustSign : List < PublicKey >
Keys that are required to have signed the wrapping SignedTransaction , ordered to match the list of
+signatures. There is nothing that forces the list to be the correct list of signers for this
+transaction until the transaction is verified by using LedgerTransaction.verify . It includes the
+notary key, if the notary field is set.
+
+
+
+
+notary
+
+val notary : Party ?
If present, the notary for this transaction. If absent then the transaction is not notarised at all.
+This is intended for issuance/genesis transactions that dont consume any other states and thus cant
+double spend anything.
+
+
+
+
+outputs
+
+val outputs : List < TransactionState < ContractState > >
Ordered list of states defined by this transaction, along with the associated notaries.
+
+
+
+
+timestamp
+
+val timestamp : Timestamp ?
If specified, a time window in which this transaction may have been notarised. Contracts can check this
+time window to find out when a transaction is deemed to have occurred, from the ledgers perspective.
+
+
+
+
+type
+
+val type : TransactionType
Pointer to a class that defines the behaviour of this transaction: either normal, or "notary changing".
+
+
+
+
+Functions
+
+Inherited Functions
+
+Companion Object Functions
+
+
+
+
+deserialize
+
+fun deserialize ( bits : SerializedBytes < WireTransaction > , kryo : <ERROR CLASS> = THREAD_LOCAL_KRYO.get()) : WireTransaction
+
+
+
+Extension Functions
+
+
+
diff --git a/docs/build/html/api/net.corda.core.transactions/-wire-transaction/inputs.html b/docs/build/html/api/net.corda.core.transactions/-wire-transaction/inputs.html
new file mode 100644
index 0000000000..507c3bf421
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.transactions/-wire-transaction/inputs.html
@@ -0,0 +1,17 @@
+
+
+WireTransaction.inputs -
+
+
+
+net.corda.core.transactions / WireTransaction / inputs
+
+inputs
+
+val inputs : List < StateRef >
+Overrides BaseTransaction.inputs
+Pointers to the input states on the ledger, identified by (tx identity hash, output index).
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.transactions/-wire-transaction/merkle-tree.html b/docs/build/html/api/net.corda.core.transactions/-wire-transaction/merkle-tree.html
new file mode 100644
index 0000000000..ca6596b999
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.transactions/-wire-transaction/merkle-tree.html
@@ -0,0 +1,15 @@
+
+
+WireTransaction.merkleTree -
+
+
+
+net.corda.core.transactions / WireTransaction / merkleTree
+
+merkleTree
+
+val merkleTree : MerkleTree
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.transactions/-wire-transaction/out-ref.html b/docs/build/html/api/net.corda.core.transactions/-wire-transaction/out-ref.html
new file mode 100644
index 0000000000..99e1f01de8
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.transactions/-wire-transaction/out-ref.html
@@ -0,0 +1,21 @@
+
+
+WireTransaction.outRef -
+
+
+
+net.corda.core.transactions / WireTransaction / outRef
+
+outRef
+
+fun < T : ContractState > outRef ( index : Int ) : StateAndRef < T >
+Returns a StateAndRef for the given output index.
+
+
+
+fun < T : ContractState > outRef ( state : ContractState ) : StateAndRef < T >
+Returns a StateAndRef for the requested output state, or throws IllegalArgumentException if not found.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.transactions/-wire-transaction/serialized.html b/docs/build/html/api/net.corda.core.transactions/-wire-transaction/serialized.html
new file mode 100644
index 0000000000..188d676bd2
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.transactions/-wire-transaction/serialized.html
@@ -0,0 +1,15 @@
+
+
+WireTransaction.serialized -
+
+
+
+net.corda.core.transactions / WireTransaction / serialized
+
+serialized
+
+val serialized : SerializedBytes < WireTransaction >
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.transactions/-wire-transaction/to-ledger-transaction.html b/docs/build/html/api/net.corda.core.transactions/-wire-transaction/to-ledger-transaction.html
new file mode 100644
index 0000000000..6529b1d98b
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.transactions/-wire-transaction/to-ledger-transaction.html
@@ -0,0 +1,23 @@
+
+
+WireTransaction.toLedgerTransaction -
+
+
+
+net.corda.core.transactions / WireTransaction / toLedgerTransaction
+
+toLedgerTransaction
+
+fun toLedgerTransaction ( services : ServiceHub ) : LedgerTransaction
+Looks up identities and attachments from storage to generate a LedgerTransaction . A transaction is expected to
+have been fully resolved using the resolution protocol by this point.
+Exceptions
+
+FileNotFoundException
- if a required attachment was not found in storage.
+
+
+TransactionResolutionException
- if an input points to a transaction not found in storage.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.transactions/-wire-transaction/to-string.html b/docs/build/html/api/net.corda.core.transactions/-wire-transaction/to-string.html
new file mode 100644
index 0000000000..da7bb78d2e
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.transactions/-wire-transaction/to-string.html
@@ -0,0 +1,15 @@
+
+
+WireTransaction.toString -
+
+
+
+net.corda.core.transactions / WireTransaction / toString
+
+toString
+
+fun toString ( ) : String
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.transactions/build-filtered-transaction.html b/docs/build/html/api/net.corda.core.transactions/build-filtered-transaction.html
new file mode 100644
index 0000000000..f8f0e00a3a
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.transactions/build-filtered-transaction.html
@@ -0,0 +1,16 @@
+
+
+buildFilteredTransaction -
+
+
+
+net.corda.core.transactions / buildFilteredTransaction
+
+buildFilteredTransaction
+
+fun WireTransaction . buildFilteredTransaction ( filterFuns : FilterFuns ) : FilteredTransaction
+Build filtered transaction using provided filtering functions.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.transactions/calculate-leaves-hashes.html b/docs/build/html/api/net.corda.core.transactions/calculate-leaves-hashes.html
new file mode 100644
index 0000000000..0585c97847
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.transactions/calculate-leaves-hashes.html
@@ -0,0 +1,16 @@
+
+
+calculateLeavesHashes -
+
+
+
+net.corda.core.transactions / calculateLeavesHashes
+
+calculateLeavesHashes
+
+fun WireTransaction . calculateLeavesHashes ( ) : List < SecureHash >
+Calculation of all leaves hashes that are needed for calculation of transaction id and partial Merkle branches.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.transactions/hash-concat.html b/docs/build/html/api/net.corda.core.transactions/hash-concat.html
new file mode 100644
index 0000000000..bf09a6bbf6
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.transactions/hash-concat.html
@@ -0,0 +1,15 @@
+
+
+hashConcat -
+
+
+
+net.corda.core.transactions / hashConcat
+
+hashConcat
+
+fun SecureHash . hashConcat ( other : SecureHash ) : <ERROR CLASS>
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.transactions/index.html b/docs/build/html/api/net.corda.core.transactions/index.html
new file mode 100644
index 0000000000..65c952ffd9
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.transactions/index.html
@@ -0,0 +1,122 @@
+
+
+net.corda.core.transactions -
+
+
+
+net.corda.core.transactions
+
+Package net.corda.core.transactions
+Types
+
+
+
+
+BaseTransaction
+
+abstract class BaseTransaction : NamedByHash
An abstract class defining fields shared by all transaction types in the system.
+
+
+
+
+FilterFuns
+
+class FilterFuns
Holds filter functions on transactions fields.
+Functions are used to build a partial tree only out of some subset of original transaction fields.
+
+
+
+
+FilteredLeaves
+
+class FilteredLeaves
Class that holds filtered leaves for a partial Merkle transaction. We assume mixed leaves types.
+
+
+
+
+FilteredTransaction
+
+class FilteredTransaction
Class representing merkleized filtered transaction.
+
+
+
+
+LedgerTransaction
+
+class LedgerTransaction : BaseTransaction
A LedgerTransaction is derived from a WireTransaction . It is the result of doing the following operations:
+
+
+
+
+MerkleTree
+
+sealed class MerkleTree
Creation and verification of a Merkle Tree for a Wire Transaction.
+
+
+
+
+SignedTransaction
+
+data class SignedTransaction : NamedByHash
SignedTransaction wraps a serialized WireTransaction. It contains one or more signatures, each one for
+a public key that is mentioned inside a transaction command. SignedTransaction is the top level transaction type
+and the type most frequently passed around the network and stored. The identity of a transaction is the hash
+of a WireTransaction, therefore if you are storing data keyed by WT hash be aware that multiple different STs may
+map to the same key (and they could be different in important ways, like validity). The signatures on a
+SignedTransaction might be invalid or missing: the type does not imply validity.
+A transaction ID should be the hash of the WireTransaction Merkle tree root. Thus adding or removing a signature does not change it.
+
+
+
+
+TransactionBuilder
+
+open class TransactionBuilder
A TransactionBuilder is a transaction class thats mutable (unlike the others which are all immutable). It is
+intended to be passed around contracts that may edit it by adding new states/commands. Then once the states
+and commands are right, this class can be used as a holding bucket to gather signatures from multiple parties.
+
+
+
+
+WireTransaction
+
+class WireTransaction : BaseTransaction
A transaction ready for serialisation, without any signatures attached. A WireTransaction is usually wrapped
+by a SignedTransaction that carries the signatures over this payload. The hash of the wire transaction is
+the identity of the transaction, that is, its possible for two SignedTransaction s with different sets of
+signatures to have the same identity hash.
+
+
+
+
+Functions
+
+
+
diff --git a/docs/build/html/api/net.corda.core.transactions/serialized-hash.html b/docs/build/html/api/net.corda.core.transactions/serialized-hash.html
new file mode 100644
index 0000000000..b1a9cd4d10
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.transactions/serialized-hash.html
@@ -0,0 +1,15 @@
+
+
+serializedHash -
+
+
+
+net.corda.core.transactions / serializedHash
+
+serializedHash
+
+fun < T : Any > serializedHash ( x : T ) : SecureHash
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.utilities/-api-utils/-init-.html b/docs/build/html/api/net.corda.core.utilities/-api-utils/-init-.html
new file mode 100644
index 0000000000..62266842e9
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.utilities/-api-utils/-init-.html
@@ -0,0 +1,15 @@
+
+
+ApiUtils. -
+
+
+
+net.corda.core.utilities / ApiUtils / <init>
+
+<init>
+ApiUtils ( services : ServiceHub )
+Utility functions to reduce boilerplate when developing HTTP APIs
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.utilities/-api-utils/index.html b/docs/build/html/api/net.corda.core.utilities/-api-utils/index.html
new file mode 100644
index 0000000000..3e64851b2d
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.utilities/-api-utils/index.html
@@ -0,0 +1,51 @@
+
+
+ApiUtils -
+
+
+
+net.corda.core.utilities / ApiUtils
+
+ApiUtils
+class ApiUtils
+Utility functions to reduce boilerplate when developing HTTP APIs
+
+
+Constructors
+
+
+
+
+<init>
+
+ApiUtils ( services : ServiceHub )
Utility functions to reduce boilerplate when developing HTTP APIs
+
+
+
+
+Properties
+
+Functions
+
+
+
+
+withParty
+
+fun withParty ( partyKeyStr : String , notFound : ( String ) -> <ERROR CLASS> = defaultNotFound, found : ( Party ) -> <ERROR CLASS> ) : <ERROR CLASS>
Get a party and then execute the passed function with the party public key as a parameter.
+Usage: withParty(key) { doSomethingWith(it) }
+
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.utilities/-api-utils/services.html b/docs/build/html/api/net.corda.core.utilities/-api-utils/services.html
new file mode 100644
index 0000000000..0911f7b8f2
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.utilities/-api-utils/services.html
@@ -0,0 +1,15 @@
+
+
+ApiUtils.services -
+
+
+
+net.corda.core.utilities / ApiUtils / services
+
+services
+
+val services : ServiceHub
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.utilities/-api-utils/with-party.html b/docs/build/html/api/net.corda.core.utilities/-api-utils/with-party.html
new file mode 100644
index 0000000000..39e869c57e
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.utilities/-api-utils/with-party.html
@@ -0,0 +1,17 @@
+
+
+ApiUtils.withParty -
+
+
+
+net.corda.core.utilities / ApiUtils / withParty
+
+withParty
+
+fun withParty ( partyKeyStr : String , notFound : ( String ) -> <ERROR CLASS> = defaultNotFound, found : ( Party ) -> <ERROR CLASS> ) : <ERROR CLASS>
+Get a party and then execute the passed function with the party public key as a parameter.
+Usage: withParty(key) { doSomethingWith(it) }
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.utilities/-d-u-m-m-y_-k-e-y_1.html b/docs/build/html/api/net.corda.core.utilities/-d-u-m-m-y_-k-e-y_1.html
new file mode 100644
index 0000000000..d42a2393de
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.utilities/-d-u-m-m-y_-k-e-y_1.html
@@ -0,0 +1,15 @@
+
+
+DUMMY_KEY_1 -
+
+
+
+net.corda.core.utilities / DUMMY_KEY_1
+
+DUMMY_KEY_1
+
+val DUMMY_KEY_1 : KeyPair
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.utilities/-d-u-m-m-y_-k-e-y_2.html b/docs/build/html/api/net.corda.core.utilities/-d-u-m-m-y_-k-e-y_2.html
new file mode 100644
index 0000000000..96575760f0
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.utilities/-d-u-m-m-y_-k-e-y_2.html
@@ -0,0 +1,15 @@
+
+
+DUMMY_KEY_2 -
+
+
+
+net.corda.core.utilities / DUMMY_KEY_2
+
+DUMMY_KEY_2
+
+val DUMMY_KEY_2 : KeyPair
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.utilities/-d-u-m-m-y_-n-o-t-a-r-y.html b/docs/build/html/api/net.corda.core.utilities/-d-u-m-m-y_-n-o-t-a-r-y.html
new file mode 100644
index 0000000000..9ffca8c18c
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.utilities/-d-u-m-m-y_-n-o-t-a-r-y.html
@@ -0,0 +1,15 @@
+
+
+DUMMY_NOTARY -
+
+
+
+net.corda.core.utilities / DUMMY_NOTARY
+
+DUMMY_NOTARY
+
+val DUMMY_NOTARY : Party
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.utilities/-d-u-m-m-y_-n-o-t-a-r-y_-k-e-y.html b/docs/build/html/api/net.corda.core.utilities/-d-u-m-m-y_-n-o-t-a-r-y_-k-e-y.html
new file mode 100644
index 0000000000..26c65a3b8c
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.utilities/-d-u-m-m-y_-n-o-t-a-r-y_-k-e-y.html
@@ -0,0 +1,15 @@
+
+
+DUMMY_NOTARY_KEY -
+
+
+
+net.corda.core.utilities / DUMMY_NOTARY_KEY
+
+DUMMY_NOTARY_KEY
+
+val DUMMY_NOTARY_KEY : KeyPair
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.utilities/-d-u-m-m-y_-p-u-b-k-e-y_1.html b/docs/build/html/api/net.corda.core.utilities/-d-u-m-m-y_-p-u-b-k-e-y_1.html
new file mode 100644
index 0000000000..12e7eb406c
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.utilities/-d-u-m-m-y_-p-u-b-k-e-y_1.html
@@ -0,0 +1,15 @@
+
+
+DUMMY_PUBKEY_1 -
+
+
+
+net.corda.core.utilities / DUMMY_PUBKEY_1
+
+DUMMY_PUBKEY_1
+
+val DUMMY_PUBKEY_1 : PublicKey
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.utilities/-d-u-m-m-y_-p-u-b-k-e-y_2.html b/docs/build/html/api/net.corda.core.utilities/-d-u-m-m-y_-p-u-b-k-e-y_2.html
new file mode 100644
index 0000000000..851ab0d17d
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.utilities/-d-u-m-m-y_-p-u-b-k-e-y_2.html
@@ -0,0 +1,15 @@
+
+
+DUMMY_PUBKEY_2 -
+
+
+
+net.corda.core.utilities / DUMMY_PUBKEY_2
+
+DUMMY_PUBKEY_2
+
+val DUMMY_PUBKEY_2 : PublicKey
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.utilities/-emoji/-c-o-d-e_-b-a-g_-o-f_-c-a-s-h.html b/docs/build/html/api/net.corda.core.utilities/-emoji/-c-o-d-e_-b-a-g_-o-f_-c-a-s-h.html
new file mode 100644
index 0000000000..8ca989a5c2
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.utilities/-emoji/-c-o-d-e_-b-a-g_-o-f_-c-a-s-h.html
@@ -0,0 +1,15 @@
+
+
+Emoji.CODE_BAG_OF_CASH -
+
+
+
+net.corda.core.utilities / Emoji / CODE_BAG_OF_CASH
+
+CODE_BAG_OF_CASH
+
+const val CODE_BAG_OF_CASH : String
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.utilities/-emoji/-c-o-d-e_-d-i-a-m-o-n-d.html b/docs/build/html/api/net.corda.core.utilities/-emoji/-c-o-d-e_-d-i-a-m-o-n-d.html
new file mode 100644
index 0000000000..628de60a4b
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.utilities/-emoji/-c-o-d-e_-d-i-a-m-o-n-d.html
@@ -0,0 +1,15 @@
+
+
+Emoji.CODE_DIAMOND -
+
+
+
+net.corda.core.utilities / Emoji / CODE_DIAMOND
+
+CODE_DIAMOND
+
+const val CODE_DIAMOND : String
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.utilities/-emoji/-c-o-d-e_-g-r-e-e-n_-t-i-c-k.html b/docs/build/html/api/net.corda.core.utilities/-emoji/-c-o-d-e_-g-r-e-e-n_-t-i-c-k.html
new file mode 100644
index 0000000000..988daed087
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.utilities/-emoji/-c-o-d-e_-g-r-e-e-n_-t-i-c-k.html
@@ -0,0 +1,15 @@
+
+
+Emoji.CODE_GREEN_TICK -
+
+
+
+net.corda.core.utilities / Emoji / CODE_GREEN_TICK
+
+CODE_GREEN_TICK
+
+const val CODE_GREEN_TICK : String
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.utilities/-emoji/-c-o-d-e_-l-e-f-t_-a-r-r-o-w.html b/docs/build/html/api/net.corda.core.utilities/-emoji/-c-o-d-e_-l-e-f-t_-a-r-r-o-w.html
new file mode 100644
index 0000000000..b09207e8a4
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.utilities/-emoji/-c-o-d-e_-l-e-f-t_-a-r-r-o-w.html
@@ -0,0 +1,15 @@
+
+
+Emoji.CODE_LEFT_ARROW -
+
+
+
+net.corda.core.utilities / Emoji / CODE_LEFT_ARROW
+
+CODE_LEFT_ARROW
+
+const val CODE_LEFT_ARROW : String
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.utilities/-emoji/-c-o-d-e_-n-e-w-s-p-a-p-e-r.html b/docs/build/html/api/net.corda.core.utilities/-emoji/-c-o-d-e_-n-e-w-s-p-a-p-e-r.html
new file mode 100644
index 0000000000..ee212dc8b9
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.utilities/-emoji/-c-o-d-e_-n-e-w-s-p-a-p-e-r.html
@@ -0,0 +1,15 @@
+
+
+Emoji.CODE_NEWSPAPER -
+
+
+
+net.corda.core.utilities / Emoji / CODE_NEWSPAPER
+
+CODE_NEWSPAPER
+
+const val CODE_NEWSPAPER : String
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.utilities/-emoji/-c-o-d-e_-p-a-p-e-r-c-l-i-p.html b/docs/build/html/api/net.corda.core.utilities/-emoji/-c-o-d-e_-p-a-p-e-r-c-l-i-p.html
new file mode 100644
index 0000000000..708308bd3c
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.utilities/-emoji/-c-o-d-e_-p-a-p-e-r-c-l-i-p.html
@@ -0,0 +1,15 @@
+
+
+Emoji.CODE_PAPERCLIP -
+
+
+
+net.corda.core.utilities / Emoji / CODE_PAPERCLIP
+
+CODE_PAPERCLIP
+
+const val CODE_PAPERCLIP : String
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.utilities/-emoji/-c-o-d-e_-r-i-g-h-t_-a-r-r-o-w.html b/docs/build/html/api/net.corda.core.utilities/-emoji/-c-o-d-e_-r-i-g-h-t_-a-r-r-o-w.html
new file mode 100644
index 0000000000..b4501ffb4a
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.utilities/-emoji/-c-o-d-e_-r-i-g-h-t_-a-r-r-o-w.html
@@ -0,0 +1,15 @@
+
+
+Emoji.CODE_RIGHT_ARROW -
+
+
+
+net.corda.core.utilities / Emoji / CODE_RIGHT_ARROW
+
+CODE_RIGHT_ARROW
+
+const val CODE_RIGHT_ARROW : String
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.utilities/-emoji/bag-of-cash.html b/docs/build/html/api/net.corda.core.utilities/-emoji/bag-of-cash.html
new file mode 100644
index 0000000000..1cfc2dbd4b
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.utilities/-emoji/bag-of-cash.html
@@ -0,0 +1,15 @@
+
+
+Emoji.bagOfCash -
+
+
+
+net.corda.core.utilities / Emoji / bagOfCash
+
+bagOfCash
+
+val bagOfCash : String
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.utilities/-emoji/diamond.html b/docs/build/html/api/net.corda.core.utilities/-emoji/diamond.html
new file mode 100644
index 0000000000..8204b866ad
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.utilities/-emoji/diamond.html
@@ -0,0 +1,15 @@
+
+
+Emoji.diamond -
+
+
+
+net.corda.core.utilities / Emoji / diamond
+
+diamond
+
+val diamond : String
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.utilities/-emoji/has-emoji-terminal.html b/docs/build/html/api/net.corda.core.utilities/-emoji/has-emoji-terminal.html
new file mode 100644
index 0000000000..a2da18a34e
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.utilities/-emoji/has-emoji-terminal.html
@@ -0,0 +1,15 @@
+
+
+Emoji.hasEmojiTerminal -
+
+
+
+net.corda.core.utilities / Emoji / hasEmojiTerminal
+
+hasEmojiTerminal
+
+val hasEmojiTerminal : <ERROR CLASS>
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.utilities/-emoji/index.html b/docs/build/html/api/net.corda.core.utilities/-emoji/index.html
new file mode 100644
index 0000000000..8b452fdc80
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.utilities/-emoji/index.html
@@ -0,0 +1,115 @@
+
+
+Emoji -
+
+
+
+net.corda.core.utilities / Emoji
+
+Emoji
+object Emoji
+A simple wrapper class that contains icons and support for printing them only when were connected to a terminal.
+
+
+Properties
+
+Functions
+
+
+
diff --git a/docs/build/html/api/net.corda.core.utilities/-emoji/left-arrow.html b/docs/build/html/api/net.corda.core.utilities/-emoji/left-arrow.html
new file mode 100644
index 0000000000..3bae2cea7c
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.utilities/-emoji/left-arrow.html
@@ -0,0 +1,15 @@
+
+
+Emoji.leftArrow -
+
+
+
+net.corda.core.utilities / Emoji / leftArrow
+
+leftArrow
+
+val leftArrow : String
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.utilities/-emoji/newspaper.html b/docs/build/html/api/net.corda.core.utilities/-emoji/newspaper.html
new file mode 100644
index 0000000000..0e22dfe576
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.utilities/-emoji/newspaper.html
@@ -0,0 +1,15 @@
+
+
+Emoji.newspaper -
+
+
+
+net.corda.core.utilities / Emoji / newspaper
+
+newspaper
+
+val newspaper : String
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.utilities/-emoji/paperclip.html b/docs/build/html/api/net.corda.core.utilities/-emoji/paperclip.html
new file mode 100644
index 0000000000..3ab8e7fff1
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.utilities/-emoji/paperclip.html
@@ -0,0 +1,15 @@
+
+
+Emoji.paperclip -
+
+
+
+net.corda.core.utilities / Emoji / paperclip
+
+paperclip
+
+val paperclip : String
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.utilities/-emoji/render-if-supported.html b/docs/build/html/api/net.corda.core.utilities/-emoji/render-if-supported.html
new file mode 100644
index 0000000000..0d4b40969c
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.utilities/-emoji/render-if-supported.html
@@ -0,0 +1,15 @@
+
+
+Emoji.renderIfSupported -
+
+
+
+net.corda.core.utilities / Emoji / renderIfSupported
+
+renderIfSupported
+
+fun renderIfSupported ( obj : Any ) : String
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.utilities/-emoji/right-arrow.html b/docs/build/html/api/net.corda.core.utilities/-emoji/right-arrow.html
new file mode 100644
index 0000000000..19e980d5f4
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.utilities/-emoji/right-arrow.html
@@ -0,0 +1,15 @@
+
+
+Emoji.rightArrow -
+
+
+
+net.corda.core.utilities / Emoji / rightArrow
+
+rightArrow
+
+val rightArrow : String
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.utilities/-log-helper/index.html b/docs/build/html/api/net.corda.core.utilities/-log-helper/index.html
new file mode 100644
index 0000000000..d0ed41b812
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.utilities/-log-helper/index.html
@@ -0,0 +1,36 @@
+
+
+LogHelper -
+
+
+
+net.corda.core.utilities / LogHelper
+
+LogHelper
+object LogHelper
+A configuration helper that allows modifying the log level for specific loggers
+
+
+Functions
+
+
+
+
+reset
+
+fun reset ( vararg names : String ) : Unit
Removes custom configuration for the specified logger names
+fun reset ( vararg classes : KClass < * > ) : <ERROR CLASS>
+
+
+
+setLevel
+
+fun setLevel ( vararg loggerNames : String ) : Unit
Takes a set of strings identifying logger names for which the logging level should be configured.
+If the logger name starts with a + or an ordinary character, the level is set to Level.ALL . If it starts
+with a - then logging is switched off.
+fun setLevel ( vararg classes : KClass < * > ) : <ERROR CLASS>
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.utilities/-log-helper/reset.html b/docs/build/html/api/net.corda.core.utilities/-log-helper/reset.html
new file mode 100644
index 0000000000..def9925f2f
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.utilities/-log-helper/reset.html
@@ -0,0 +1,20 @@
+
+
+LogHelper.reset -
+
+
+
+net.corda.core.utilities / LogHelper / reset
+
+reset
+
+fun reset ( vararg names : String ) : Unit
+Removes custom configuration for the specified logger names
+
+
+
+fun reset ( vararg classes : KClass < * > ) : <ERROR CLASS>
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.utilities/-log-helper/set-level.html b/docs/build/html/api/net.corda.core.utilities/-log-helper/set-level.html
new file mode 100644
index 0000000000..bd099e439d
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.utilities/-log-helper/set-level.html
@@ -0,0 +1,22 @@
+
+
+LogHelper.setLevel -
+
+
+
+net.corda.core.utilities / LogHelper / setLevel
+
+setLevel
+
+fun setLevel ( vararg loggerNames : String ) : Unit
+Takes a set of strings identifying logger names for which the logging level should be configured.
+If the logger name starts with a + or an ordinary character, the level is set to Level.ALL . If it starts
+with a - then logging is switched off.
+
+
+
+fun setLevel ( vararg classes : KClass < * > ) : <ERROR CLASS>
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.utilities/-non-empty-set-serializer/index.html b/docs/build/html/api/net.corda.core.utilities/-non-empty-set-serializer/index.html
new file mode 100644
index 0000000000..0e42a80b23
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.utilities/-non-empty-set-serializer/index.html
@@ -0,0 +1,33 @@
+
+
+NonEmptySetSerializer -
+
+
+
+net.corda.core.utilities / NonEmptySetSerializer
+
+NonEmptySetSerializer
+object NonEmptySetSerializer
+Custom serializer which understands it has to read in an item before
+trying to construct the set.
+
+
+Functions
+
+
+
diff --git a/docs/build/html/api/net.corda.core.utilities/-non-empty-set-serializer/read.html b/docs/build/html/api/net.corda.core.utilities/-non-empty-set-serializer/read.html
new file mode 100644
index 0000000000..9b9ba87a73
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.utilities/-non-empty-set-serializer/read.html
@@ -0,0 +1,15 @@
+
+
+NonEmptySetSerializer.read -
+
+
+
+net.corda.core.utilities / NonEmptySetSerializer / read
+
+read
+
+fun read ( kryo : <ERROR CLASS> , input : <ERROR CLASS> , type : Class < NonEmptySet < Any > > ) : NonEmptySet < Any >
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.utilities/-non-empty-set-serializer/write.html b/docs/build/html/api/net.corda.core.utilities/-non-empty-set-serializer/write.html
new file mode 100644
index 0000000000..3bccf1e25b
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.utilities/-non-empty-set-serializer/write.html
@@ -0,0 +1,15 @@
+
+
+NonEmptySetSerializer.write -
+
+
+
+net.corda.core.utilities / NonEmptySetSerializer / write
+
+write
+
+fun write ( kryo : <ERROR CLASS> , output : <ERROR CLASS> , obj : NonEmptySet < Any > ) : Unit
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.utilities/-non-empty-set/-init-.html b/docs/build/html/api/net.corda.core.utilities/-non-empty-set/-init-.html
new file mode 100644
index 0000000000..cec05897a0
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.utilities/-non-empty-set/-init-.html
@@ -0,0 +1,17 @@
+
+
+NonEmptySet. -
+
+
+
+net.corda.core.utilities / NonEmptySet / <init>
+
+<init>
+NonEmptySet ( initial : T )
+A set which is constrained to ensure it can never be empty. An initial value must be provided at
+construction, and attempting to remove the last element will cause an IllegalStateException.
+The underlying set is exposed for Kryo to access, but should not be accessed directly.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.utilities/-non-empty-set/-iterator/-init-.html b/docs/build/html/api/net.corda.core.utilities/-non-empty-set/-iterator/-init-.html
new file mode 100644
index 0000000000..43bb34481b
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.utilities/-non-empty-set/-iterator/-init-.html
@@ -0,0 +1,14 @@
+
+
+NonEmptySet.Iterator. -
+
+
+
+net.corda.core.utilities / NonEmptySet / Iterator / <init>
+
+<init>
+Iterator ( iterator : MutableIterator < T > )
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.utilities/-non-empty-set/-iterator/has-next.html b/docs/build/html/api/net.corda.core.utilities/-non-empty-set/-iterator/has-next.html
new file mode 100644
index 0000000000..55d466180e
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.utilities/-non-empty-set/-iterator/has-next.html
@@ -0,0 +1,15 @@
+
+
+NonEmptySet.Iterator.hasNext -
+
+
+
+net.corda.core.utilities / NonEmptySet / Iterator / hasNext
+
+hasNext
+
+fun hasNext ( ) : Boolean
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.utilities/-non-empty-set/-iterator/index.html b/docs/build/html/api/net.corda.core.utilities/-non-empty-set/-iterator/index.html
new file mode 100644
index 0000000000..95815362f0
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.utilities/-non-empty-set/-iterator/index.html
@@ -0,0 +1,59 @@
+
+
+NonEmptySet.Iterator -
+
+
+
+net.corda.core.utilities / NonEmptySet / Iterator
+
+Iterator
+inner class Iterator < out T , T > : MutableIterator < T >
+
+
+Constructors
+
+
+
+
+<init>
+
+Iterator ( iterator : MutableIterator < T > )
+
+
+
+Properties
+
+
+
+
+iterator
+
+val iterator : MutableIterator < T >
+
+
+
+Functions
+
+
+
+
+hasNext
+
+fun hasNext ( ) : Boolean
+
+
+
+next
+
+fun next ( ) : T
+
+
+
+remove
+
+fun remove ( ) : Unit
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.utilities/-non-empty-set/-iterator/iterator.html b/docs/build/html/api/net.corda.core.utilities/-non-empty-set/-iterator/iterator.html
new file mode 100644
index 0000000000..ecfca0dbe5
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.utilities/-non-empty-set/-iterator/iterator.html
@@ -0,0 +1,15 @@
+
+
+NonEmptySet.Iterator.iterator -
+
+
+
+net.corda.core.utilities / NonEmptySet / Iterator / iterator
+
+iterator
+
+val iterator : MutableIterator < T >
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.utilities/-non-empty-set/-iterator/next.html b/docs/build/html/api/net.corda.core.utilities/-non-empty-set/-iterator/next.html
new file mode 100644
index 0000000000..2dadcc829a
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.utilities/-non-empty-set/-iterator/next.html
@@ -0,0 +1,15 @@
+
+
+NonEmptySet.Iterator.next -
+
+
+
+net.corda.core.utilities / NonEmptySet / Iterator / next
+
+next
+
+fun next ( ) : T
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.utilities/-non-empty-set/-iterator/remove.html b/docs/build/html/api/net.corda.core.utilities/-non-empty-set/-iterator/remove.html
new file mode 100644
index 0000000000..e925bb6157
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.utilities/-non-empty-set/-iterator/remove.html
@@ -0,0 +1,15 @@
+
+
+NonEmptySet.Iterator.remove -
+
+
+
+net.corda.core.utilities / NonEmptySet / Iterator / remove
+
+remove
+
+fun remove ( ) : Unit
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.utilities/-non-empty-set/add-all.html b/docs/build/html/api/net.corda.core.utilities/-non-empty-set/add-all.html
new file mode 100644
index 0000000000..603c13bef2
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.utilities/-non-empty-set/add-all.html
@@ -0,0 +1,15 @@
+
+
+NonEmptySet.addAll -
+
+
+
+net.corda.core.utilities / NonEmptySet / addAll
+
+addAll
+
+fun addAll ( elements : Collection < T > ) : Boolean
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.utilities/-non-empty-set/add.html b/docs/build/html/api/net.corda.core.utilities/-non-empty-set/add.html
new file mode 100644
index 0000000000..f4c056d093
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.utilities/-non-empty-set/add.html
@@ -0,0 +1,15 @@
+
+
+NonEmptySet.add -
+
+
+
+net.corda.core.utilities / NonEmptySet / add
+
+add
+
+fun add ( element : T ) : Boolean
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.utilities/-non-empty-set/clear.html b/docs/build/html/api/net.corda.core.utilities/-non-empty-set/clear.html
new file mode 100644
index 0000000000..b6f9856578
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.utilities/-non-empty-set/clear.html
@@ -0,0 +1,15 @@
+
+
+NonEmptySet.clear -
+
+
+
+net.corda.core.utilities / NonEmptySet / clear
+
+clear
+
+fun clear ( ) : Nothing
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.utilities/-non-empty-set/contains-all.html b/docs/build/html/api/net.corda.core.utilities/-non-empty-set/contains-all.html
new file mode 100644
index 0000000000..bd86f4bf4f
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.utilities/-non-empty-set/contains-all.html
@@ -0,0 +1,15 @@
+
+
+NonEmptySet.containsAll -
+
+
+
+net.corda.core.utilities / NonEmptySet / containsAll
+
+containsAll
+
+fun containsAll ( elements : Collection < T > ) : Boolean
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.utilities/-non-empty-set/contains.html b/docs/build/html/api/net.corda.core.utilities/-non-empty-set/contains.html
new file mode 100644
index 0000000000..30c2ad1163
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.utilities/-non-empty-set/contains.html
@@ -0,0 +1,15 @@
+
+
+NonEmptySet.contains -
+
+
+
+net.corda.core.utilities / NonEmptySet / contains
+
+contains
+
+fun contains ( element : T ) : Boolean
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.utilities/-non-empty-set/equals.html b/docs/build/html/api/net.corda.core.utilities/-non-empty-set/equals.html
new file mode 100644
index 0000000000..42a0e197c7
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.utilities/-non-empty-set/equals.html
@@ -0,0 +1,15 @@
+
+
+NonEmptySet.equals -
+
+
+
+net.corda.core.utilities / NonEmptySet / equals
+
+equals
+
+fun equals ( other : Any ? ) : Boolean
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.utilities/-non-empty-set/hash-code.html b/docs/build/html/api/net.corda.core.utilities/-non-empty-set/hash-code.html
new file mode 100644
index 0000000000..45f30a9047
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.utilities/-non-empty-set/hash-code.html
@@ -0,0 +1,15 @@
+
+
+NonEmptySet.hashCode -
+
+
+
+net.corda.core.utilities / NonEmptySet / hashCode
+
+hashCode
+
+fun hashCode ( ) : Int
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.utilities/-non-empty-set/index.html b/docs/build/html/api/net.corda.core.utilities/-non-empty-set/index.html
new file mode 100644
index 0000000000..70b4e87c95
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.utilities/-non-empty-set/index.html
@@ -0,0 +1,150 @@
+
+
+NonEmptySet -
+
+
+
+net.corda.core.utilities / NonEmptySet
+
+NonEmptySet
+class NonEmptySet < T > : MutableSet < T >
+A set which is constrained to ensure it can never be empty. An initial value must be provided at
+construction, and attempting to remove the last element will cause an IllegalStateException.
+The underlying set is exposed for Kryo to access, but should not be accessed directly.
+
+
+Types
+
+
+
+
+Iterator
+
+inner class Iterator < out T , T > : MutableIterator < T >
+
+
+
+Constructors
+
+
+
+
+<init>
+
+NonEmptySet ( initial : T )
A set which is constrained to ensure it can never be empty. An initial value must be provided at
+construction, and attempting to remove the last element will cause an IllegalStateException.
+The underlying set is exposed for Kryo to access, but should not be accessed directly.
+
+
+
+
+Properties
+
+
+
+
+size
+
+val size : Int
+
+
+
+Functions
+
+
+
+
+add
+
+fun add ( element : T ) : Boolean
+
+
+
+addAll
+
+fun addAll ( elements : Collection < T > ) : Boolean
+
+
+
+clear
+
+fun clear ( ) : Nothing
+
+
+
+contains
+
+fun contains ( element : T ) : Boolean
+
+
+
+containsAll
+
+fun containsAll ( elements : Collection < T > ) : Boolean
+
+
+
+equals
+
+fun equals ( other : Any ? ) : Boolean
+
+
+
+hashCode
+
+fun hashCode ( ) : Int
+
+
+
+isEmpty
+
+fun isEmpty ( ) : Boolean
+
+
+
+iterator
+
+fun iterator ( ) : MutableIterator < T >
+
+
+
+remove
+
+fun remove ( element : T ) : Boolean
+
+
+
+removeAll
+
+fun removeAll ( elements : Collection < T > ) : Boolean
+
+
+
+retainAll
+
+fun retainAll ( elements : Collection < T > ) : Boolean
+
+
+
+toString
+
+fun toString ( ) : String
+
+
+
+Extension Functions
+
+
+
+
+noneOrSingle
+
+fun < T > Iterable < T > . noneOrSingle ( predicate : ( T ) -> Boolean ) : T ?
Returns the single element matching the given predicate , or null
if element was not found,
+or throws if more than one element was found.
+fun < T > Iterable < T > . noneOrSingle ( ) : T ?
Returns single element, or null
if element was not found, or throws if more than one element was found.
+
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.utilities/-non-empty-set/is-empty.html b/docs/build/html/api/net.corda.core.utilities/-non-empty-set/is-empty.html
new file mode 100644
index 0000000000..089e83e973
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.utilities/-non-empty-set/is-empty.html
@@ -0,0 +1,15 @@
+
+
+NonEmptySet.isEmpty -
+
+
+
+net.corda.core.utilities / NonEmptySet / isEmpty
+
+isEmpty
+
+fun isEmpty ( ) : Boolean
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.utilities/-non-empty-set/iterator.html b/docs/build/html/api/net.corda.core.utilities/-non-empty-set/iterator.html
new file mode 100644
index 0000000000..8a92e3bc54
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.utilities/-non-empty-set/iterator.html
@@ -0,0 +1,15 @@
+
+
+NonEmptySet.iterator -
+
+
+
+net.corda.core.utilities / NonEmptySet / iterator
+
+iterator
+
+fun iterator ( ) : MutableIterator < T >
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.utilities/-non-empty-set/remove-all.html b/docs/build/html/api/net.corda.core.utilities/-non-empty-set/remove-all.html
new file mode 100644
index 0000000000..315d3eec2b
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.utilities/-non-empty-set/remove-all.html
@@ -0,0 +1,15 @@
+
+
+NonEmptySet.removeAll -
+
+
+
+net.corda.core.utilities / NonEmptySet / removeAll
+
+removeAll
+
+fun removeAll ( elements : Collection < T > ) : Boolean
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.utilities/-non-empty-set/remove.html b/docs/build/html/api/net.corda.core.utilities/-non-empty-set/remove.html
new file mode 100644
index 0000000000..0baa9cc49b
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.utilities/-non-empty-set/remove.html
@@ -0,0 +1,15 @@
+
+
+NonEmptySet.remove -
+
+
+
+net.corda.core.utilities / NonEmptySet / remove
+
+remove
+
+fun remove ( element : T ) : Boolean
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.utilities/-non-empty-set/retain-all.html b/docs/build/html/api/net.corda.core.utilities/-non-empty-set/retain-all.html
new file mode 100644
index 0000000000..f00b3f61ef
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.utilities/-non-empty-set/retain-all.html
@@ -0,0 +1,15 @@
+
+
+NonEmptySet.retainAll -
+
+
+
+net.corda.core.utilities / NonEmptySet / retainAll
+
+retainAll
+
+fun retainAll ( elements : Collection < T > ) : Boolean
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.utilities/-non-empty-set/size.html b/docs/build/html/api/net.corda.core.utilities/-non-empty-set/size.html
new file mode 100644
index 0000000000..a5cd741c9c
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.utilities/-non-empty-set/size.html
@@ -0,0 +1,15 @@
+
+
+NonEmptySet.size -
+
+
+
+net.corda.core.utilities / NonEmptySet / size
+
+size
+
+val size : Int
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.utilities/-non-empty-set/to-string.html b/docs/build/html/api/net.corda.core.utilities/-non-empty-set/to-string.html
new file mode 100644
index 0000000000..f547cef85a
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.utilities/-non-empty-set/to-string.html
@@ -0,0 +1,15 @@
+
+
+NonEmptySet.toString -
+
+
+
+net.corda.core.utilities / NonEmptySet / toString
+
+toString
+
+fun toString ( ) : String
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.utilities/-progress-tracker/-change/-position/-init-.html b/docs/build/html/api/net.corda.core.utilities/-progress-tracker/-change/-position/-init-.html
new file mode 100644
index 0000000000..f29123ead6
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.utilities/-progress-tracker/-change/-position/-init-.html
@@ -0,0 +1,14 @@
+
+
+ProgressTracker.Change.Position. -
+
+
+
+net.corda.core.utilities / ProgressTracker / Change / Position / <init>
+
+<init>
+Position ( tracker : ProgressTracker , newStep : Step )
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.utilities/-progress-tracker/-change/-position/index.html b/docs/build/html/api/net.corda.core.utilities/-progress-tracker/-change/-position/index.html
new file mode 100644
index 0000000000..de581ee3c3
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.utilities/-progress-tracker/-change/-position/index.html
@@ -0,0 +1,53 @@
+
+
+ProgressTracker.Change.Position -
+
+
+
+net.corda.core.utilities / ProgressTracker / Change / Position
+
+Position
+class Position : Change
+
+
+Constructors
+
+Properties
+
+Functions
+
+
+
+
+toString
+
+fun toString ( ) : String
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.utilities/-progress-tracker/-change/-position/new-step.html b/docs/build/html/api/net.corda.core.utilities/-progress-tracker/-change/-position/new-step.html
new file mode 100644
index 0000000000..12cadfef64
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.utilities/-progress-tracker/-change/-position/new-step.html
@@ -0,0 +1,15 @@
+
+
+ProgressTracker.Change.Position.newStep -
+
+
+
+net.corda.core.utilities / ProgressTracker / Change / Position / newStep
+
+newStep
+
+val newStep : Step
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.utilities/-progress-tracker/-change/-position/to-string.html b/docs/build/html/api/net.corda.core.utilities/-progress-tracker/-change/-position/to-string.html
new file mode 100644
index 0000000000..6364808bae
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.utilities/-progress-tracker/-change/-position/to-string.html
@@ -0,0 +1,15 @@
+
+
+ProgressTracker.Change.Position.toString -
+
+
+
+net.corda.core.utilities / ProgressTracker / Change / Position / toString
+
+toString
+
+fun toString ( ) : String
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.utilities/-progress-tracker/-change/-position/tracker.html b/docs/build/html/api/net.corda.core.utilities/-progress-tracker/-change/-position/tracker.html
new file mode 100644
index 0000000000..85f934fd25
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.utilities/-progress-tracker/-change/-position/tracker.html
@@ -0,0 +1,15 @@
+
+
+ProgressTracker.Change.Position.tracker -
+
+
+
+net.corda.core.utilities / ProgressTracker / Change / Position / tracker
+
+tracker
+
+val tracker : ProgressTracker
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.utilities/-progress-tracker/-change/-rendering/-init-.html b/docs/build/html/api/net.corda.core.utilities/-progress-tracker/-change/-rendering/-init-.html
new file mode 100644
index 0000000000..8d6bb9e799
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.utilities/-progress-tracker/-change/-rendering/-init-.html
@@ -0,0 +1,14 @@
+
+
+ProgressTracker.Change.Rendering. -
+
+
+
+net.corda.core.utilities / ProgressTracker / Change / Rendering / <init>
+
+<init>
+Rendering ( tracker : ProgressTracker , ofStep : Step )
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.utilities/-progress-tracker/-change/-rendering/index.html b/docs/build/html/api/net.corda.core.utilities/-progress-tracker/-change/-rendering/index.html
new file mode 100644
index 0000000000..e6329c55d9
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.utilities/-progress-tracker/-change/-rendering/index.html
@@ -0,0 +1,53 @@
+
+
+ProgressTracker.Change.Rendering -
+
+
+
+net.corda.core.utilities / ProgressTracker / Change / Rendering
+
+Rendering
+class Rendering : Change
+
+
+Constructors
+
+Properties
+
+Functions
+
+
+
+
+toString
+
+fun toString ( ) : String
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.utilities/-progress-tracker/-change/-rendering/of-step.html b/docs/build/html/api/net.corda.core.utilities/-progress-tracker/-change/-rendering/of-step.html
new file mode 100644
index 0000000000..f9a431e3dd
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.utilities/-progress-tracker/-change/-rendering/of-step.html
@@ -0,0 +1,15 @@
+
+
+ProgressTracker.Change.Rendering.ofStep -
+
+
+
+net.corda.core.utilities / ProgressTracker / Change / Rendering / ofStep
+
+ofStep
+
+val ofStep : Step
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.utilities/-progress-tracker/-change/-rendering/to-string.html b/docs/build/html/api/net.corda.core.utilities/-progress-tracker/-change/-rendering/to-string.html
new file mode 100644
index 0000000000..81fe54a339
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.utilities/-progress-tracker/-change/-rendering/to-string.html
@@ -0,0 +1,15 @@
+
+
+ProgressTracker.Change.Rendering.toString -
+
+
+
+net.corda.core.utilities / ProgressTracker / Change / Rendering / toString
+
+toString
+
+fun toString ( ) : String
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.utilities/-progress-tracker/-change/-rendering/tracker.html b/docs/build/html/api/net.corda.core.utilities/-progress-tracker/-change/-rendering/tracker.html
new file mode 100644
index 0000000000..45a1c249bf
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.utilities/-progress-tracker/-change/-rendering/tracker.html
@@ -0,0 +1,15 @@
+
+
+ProgressTracker.Change.Rendering.tracker -
+
+
+
+net.corda.core.utilities / ProgressTracker / Change / Rendering / tracker
+
+tracker
+
+val tracker : ProgressTracker
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.utilities/-progress-tracker/-change/-structural/-init-.html b/docs/build/html/api/net.corda.core.utilities/-progress-tracker/-change/-structural/-init-.html
new file mode 100644
index 0000000000..7f2217e1ff
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.utilities/-progress-tracker/-change/-structural/-init-.html
@@ -0,0 +1,14 @@
+
+
+ProgressTracker.Change.Structural. -
+
+
+
+net.corda.core.utilities / ProgressTracker / Change / Structural / <init>
+
+<init>
+Structural ( tracker : ProgressTracker , parent : Step )
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.utilities/-progress-tracker/-change/-structural/index.html b/docs/build/html/api/net.corda.core.utilities/-progress-tracker/-change/-structural/index.html
new file mode 100644
index 0000000000..f3076a8f52
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.utilities/-progress-tracker/-change/-structural/index.html
@@ -0,0 +1,53 @@
+
+
+ProgressTracker.Change.Structural -
+
+
+
+net.corda.core.utilities / ProgressTracker / Change / Structural
+
+Structural
+class Structural : Change
+
+
+Constructors
+
+Properties
+
+Functions
+
+
+
+
+toString
+
+fun toString ( ) : String
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.utilities/-progress-tracker/-change/-structural/parent.html b/docs/build/html/api/net.corda.core.utilities/-progress-tracker/-change/-structural/parent.html
new file mode 100644
index 0000000000..74174be2d1
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.utilities/-progress-tracker/-change/-structural/parent.html
@@ -0,0 +1,15 @@
+
+
+ProgressTracker.Change.Structural.parent -
+
+
+
+net.corda.core.utilities / ProgressTracker / Change / Structural / parent
+
+parent
+
+val parent : Step
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.utilities/-progress-tracker/-change/-structural/to-string.html b/docs/build/html/api/net.corda.core.utilities/-progress-tracker/-change/-structural/to-string.html
new file mode 100644
index 0000000000..3af6340b40
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.utilities/-progress-tracker/-change/-structural/to-string.html
@@ -0,0 +1,15 @@
+
+
+ProgressTracker.Change.Structural.toString -
+
+
+
+net.corda.core.utilities / ProgressTracker / Change / Structural / toString
+
+toString
+
+fun toString ( ) : String
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.utilities/-progress-tracker/-change/-structural/tracker.html b/docs/build/html/api/net.corda.core.utilities/-progress-tracker/-change/-structural/tracker.html
new file mode 100644
index 0000000000..b8eeab314e
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.utilities/-progress-tracker/-change/-structural/tracker.html
@@ -0,0 +1,15 @@
+
+
+ProgressTracker.Change.Structural.tracker -
+
+
+
+net.corda.core.utilities / ProgressTracker / Change / Structural / tracker
+
+tracker
+
+val tracker : ProgressTracker
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.utilities/-progress-tracker/-change/index.html b/docs/build/html/api/net.corda.core.utilities/-progress-tracker/-change/index.html
new file mode 100644
index 0000000000..395ce3f589
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.utilities/-progress-tracker/-change/index.html
@@ -0,0 +1,60 @@
+
+
+ProgressTracker.Change -
+
+
+
+net.corda.core.utilities / ProgressTracker / Change
+
+Change
+sealed class Change
+
+
+Types
+
+
+
+
+Position
+
+class Position : Change
+
+
+
+Rendering
+
+class Rendering : Change
+
+
+
+Structural
+
+class Structural : Change
+
+
+
+Inheritors
+
+
+
+
+Position
+
+class Position : Change
+
+
+
+Rendering
+
+class Rendering : Change
+
+
+
+Structural
+
+class Structural : Change
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.utilities/-progress-tracker/-d-o-n-e/equals.html b/docs/build/html/api/net.corda.core.utilities/-progress-tracker/-d-o-n-e/equals.html
new file mode 100644
index 0000000000..d9ada85c21
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.utilities/-progress-tracker/-d-o-n-e/equals.html
@@ -0,0 +1,15 @@
+
+
+ProgressTracker.DONE.equals -
+
+
+
+net.corda.core.utilities / ProgressTracker / DONE / equals
+
+equals
+
+fun equals ( other : Any ? ) : Boolean
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.utilities/-progress-tracker/-d-o-n-e/index.html b/docs/build/html/api/net.corda.core.utilities/-progress-tracker/-d-o-n-e/index.html
new file mode 100644
index 0000000000..e4a76656d2
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.utilities/-progress-tracker/-d-o-n-e/index.html
@@ -0,0 +1,53 @@
+
+
+ProgressTracker.DONE -
+
+
+
+net.corda.core.utilities / ProgressTracker / DONE
+
+DONE
+object DONE : Step
+
+
+Inherited Properties
+
+
+
+
+changes
+
+open val changes : <ERROR CLASS> < Change >
+
+
+
+label
+
+open val label : String
+
+
+
+Functions
+
+
+
+
+equals
+
+fun equals ( other : Any ? ) : Boolean
+
+
+
+Inherited Functions
+
+
+
diff --git a/docs/build/html/api/net.corda.core.utilities/-progress-tracker/-init-.html b/docs/build/html/api/net.corda.core.utilities/-progress-tracker/-init-.html
new file mode 100644
index 0000000000..614dd97d3b
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.utilities/-progress-tracker/-init-.html
@@ -0,0 +1,32 @@
+
+
+ProgressTracker. -
+
+
+
+net.corda.core.utilities / ProgressTracker / <init>
+
+<init>
+ProgressTracker ( vararg steps : Step )
+A progress tracker helps surface information about the progress of an operation to a user interface or API of some
+kind. It lets you define a set of steps that represent an operation. A step is represented by an object (typically
+a singleton).
+Steps may logically be children of other steps, which models the case where a large top level operation involves
+sub-operations which may also have a notion of progress. If a step has children, then the tracker will report the
+steps children as the "next step" after the parent. In other words, a parent step is considered to involve actual
+reportable work and is a thing. If the parent step simply groups other steps, then youll have to step over it
+manually.
+Each step has a label. It is assumed by default that the label does not change. If you want a label to change, then
+you can emit a ProgressTracker.Change.Rendering object on the ProgressTracker.Step.changes observable stream
+after it changes. That object will propagate through to the top level trackers changes stream, which renderers can
+subscribe to in order to learn about progress.
+An operation can move both forwards and backwards through steps, thus, a ProgressTracker can represent operations
+that include loops.
+A progress tracker is not thread safe. You may move events from the thread making progress to another thread by
+using the Observable subscribeOn call.
+
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.utilities/-progress-tracker/-relabelable-step/-init-.html b/docs/build/html/api/net.corda.core.utilities/-progress-tracker/-relabelable-step/-init-.html
new file mode 100644
index 0000000000..3abf3bfbfc
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.utilities/-progress-tracker/-relabelable-step/-init-.html
@@ -0,0 +1,15 @@
+
+
+ProgressTracker.RelabelableStep. -
+
+
+
+net.corda.core.utilities / ProgressTracker / RelabelableStep / <init>
+
+<init>
+RelabelableStep ( currentLabel : String )
+This class makes it easier to relabel a step on the fly, to provide transient information.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.utilities/-progress-tracker/-relabelable-step/changes.html b/docs/build/html/api/net.corda.core.utilities/-progress-tracker/-relabelable-step/changes.html
new file mode 100644
index 0000000000..86020fcccf
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.utilities/-progress-tracker/-relabelable-step/changes.html
@@ -0,0 +1,16 @@
+
+
+ProgressTracker.RelabelableStep.changes -
+
+
+
+net.corda.core.utilities / ProgressTracker / RelabelableStep / changes
+
+changes
+
+open val changes : <ERROR CLASS>
+Overrides Step.changes
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.utilities/-progress-tracker/-relabelable-step/current-label.html b/docs/build/html/api/net.corda.core.utilities/-progress-tracker/-relabelable-step/current-label.html
new file mode 100644
index 0000000000..8668506af4
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.utilities/-progress-tracker/-relabelable-step/current-label.html
@@ -0,0 +1,15 @@
+
+
+ProgressTracker.RelabelableStep.currentLabel -
+
+
+
+net.corda.core.utilities / ProgressTracker / RelabelableStep / currentLabel
+
+currentLabel
+
+var currentLabel : String
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.utilities/-progress-tracker/-relabelable-step/index.html b/docs/build/html/api/net.corda.core.utilities/-progress-tracker/-relabelable-step/index.html
new file mode 100644
index 0000000000..5b38b0a8aa
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.utilities/-progress-tracker/-relabelable-step/index.html
@@ -0,0 +1,61 @@
+
+
+ProgressTracker.RelabelableStep -
+
+
+
+net.corda.core.utilities / ProgressTracker / RelabelableStep
+
+RelabelableStep
+inner class RelabelableStep : Step
+This class makes it easier to relabel a step on the fly, to provide transient information.
+
+
+Constructors
+
+
+
+
+<init>
+
+RelabelableStep ( currentLabel : String )
This class makes it easier to relabel a step on the fly, to provide transient information.
+
+
+
+
+Properties
+
+
+
+
+changes
+
+open val changes : <ERROR CLASS>
+
+
+
+currentLabel
+
+var currentLabel : String
+
+
+
+label
+
+open val label : String
+
+
+
+Inherited Functions
+
+
+
diff --git a/docs/build/html/api/net.corda.core.utilities/-progress-tracker/-relabelable-step/label.html b/docs/build/html/api/net.corda.core.utilities/-progress-tracker/-relabelable-step/label.html
new file mode 100644
index 0000000000..4e5bd7cac7
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.utilities/-progress-tracker/-relabelable-step/label.html
@@ -0,0 +1,16 @@
+
+
+ProgressTracker.RelabelableStep.label -
+
+
+
+net.corda.core.utilities / ProgressTracker / RelabelableStep / label
+
+label
+
+open val label : String
+Overrides Step.label
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.utilities/-progress-tracker/-step/-init-.html b/docs/build/html/api/net.corda.core.utilities/-progress-tracker/-step/-init-.html
new file mode 100644
index 0000000000..8433d066e6
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.utilities/-progress-tracker/-step/-init-.html
@@ -0,0 +1,15 @@
+
+
+ProgressTracker.Step. -
+
+
+
+net.corda.core.utilities / ProgressTracker / Step / <init>
+
+<init>
+Step ( label : String )
+The superclass of all step objects.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.utilities/-progress-tracker/-step/changes.html b/docs/build/html/api/net.corda.core.utilities/-progress-tracker/-step/changes.html
new file mode 100644
index 0000000000..05a0fbf149
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.utilities/-progress-tracker/-step/changes.html
@@ -0,0 +1,15 @@
+
+
+ProgressTracker.Step.changes -
+
+
+
+net.corda.core.utilities / ProgressTracker / Step / changes
+
+changes
+
+open val changes : <ERROR CLASS> < Change >
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.utilities/-progress-tracker/-step/child-progress-tracker.html b/docs/build/html/api/net.corda.core.utilities/-progress-tracker/-step/child-progress-tracker.html
new file mode 100644
index 0000000000..10f8bdfbca
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.utilities/-progress-tracker/-step/child-progress-tracker.html
@@ -0,0 +1,15 @@
+
+
+ProgressTracker.Step.childProgressTracker -
+
+
+
+net.corda.core.utilities / ProgressTracker / Step / childProgressTracker
+
+childProgressTracker
+
+open fun childProgressTracker ( ) : ProgressTracker ?
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.utilities/-progress-tracker/-step/index.html b/docs/build/html/api/net.corda.core.utilities/-progress-tracker/-step/index.html
new file mode 100644
index 0000000000..5954b35f43
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.utilities/-progress-tracker/-step/index.html
@@ -0,0 +1,265 @@
+
+
+ProgressTracker.Step -
+
+
+
+net.corda.core.utilities / ProgressTracker / Step
+
+Step
+class Step
+The superclass of all step objects.
+
+
+Constructors
+
+
+
+
+<init>
+
+Step ( label : String )
The superclass of all step objects.
+
+
+
+
+Properties
+
+
+
+
+changes
+
+open val changes : <ERROR CLASS> < Change >
+
+
+
+label
+
+open val label : String
+
+
+
+Functions
+
+Inheritors
+
+
+
diff --git a/docs/build/html/api/net.corda.core.utilities/-progress-tracker/-step/label.html b/docs/build/html/api/net.corda.core.utilities/-progress-tracker/-step/label.html
new file mode 100644
index 0000000000..ba234fc4aa
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.utilities/-progress-tracker/-step/label.html
@@ -0,0 +1,15 @@
+
+
+ProgressTracker.Step.label -
+
+
+
+net.corda.core.utilities / ProgressTracker / Step / label
+
+label
+
+open val label : String
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.utilities/-progress-tracker/-u-n-s-t-a-r-t-e-d/equals.html b/docs/build/html/api/net.corda.core.utilities/-progress-tracker/-u-n-s-t-a-r-t-e-d/equals.html
new file mode 100644
index 0000000000..d0d891b44e
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.utilities/-progress-tracker/-u-n-s-t-a-r-t-e-d/equals.html
@@ -0,0 +1,15 @@
+
+
+ProgressTracker.UNSTARTED.equals -
+
+
+
+net.corda.core.utilities / ProgressTracker / UNSTARTED / equals
+
+equals
+
+fun equals ( other : Any ? ) : Boolean
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.utilities/-progress-tracker/-u-n-s-t-a-r-t-e-d/index.html b/docs/build/html/api/net.corda.core.utilities/-progress-tracker/-u-n-s-t-a-r-t-e-d/index.html
new file mode 100644
index 0000000000..51418803db
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.utilities/-progress-tracker/-u-n-s-t-a-r-t-e-d/index.html
@@ -0,0 +1,53 @@
+
+
+ProgressTracker.UNSTARTED -
+
+
+
+net.corda.core.utilities / ProgressTracker / UNSTARTED
+
+UNSTARTED
+object UNSTARTED : Step
+
+
+Inherited Properties
+
+
+
+
+changes
+
+open val changes : <ERROR CLASS> < Change >
+
+
+
+label
+
+open val label : String
+
+
+
+Functions
+
+
+
+
+equals
+
+fun equals ( other : Any ? ) : Boolean
+
+
+
+Inherited Functions
+
+
+
diff --git a/docs/build/html/api/net.corda.core.utilities/-progress-tracker/all-steps.html b/docs/build/html/api/net.corda.core.utilities/-progress-tracker/all-steps.html
new file mode 100644
index 0000000000..95aa512708
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.utilities/-progress-tracker/all-steps.html
@@ -0,0 +1,17 @@
+
+
+ProgressTracker.allSteps -
+
+
+
+net.corda.core.utilities / ProgressTracker / allSteps
+
+allSteps
+
+val allSteps : List < <ERROR CLASS> < Int , Step > >
+A list of all steps in this ProgressTracker and the children, with the indent level provided starting at zero.
+Note that UNSTARTED is never counted, and DONE is only counted at the calling level.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.utilities/-progress-tracker/changes.html b/docs/build/html/api/net.corda.core.utilities/-progress-tracker/changes.html
new file mode 100644
index 0000000000..83ede8bd1d
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.utilities/-progress-tracker/changes.html
@@ -0,0 +1,17 @@
+
+
+ProgressTracker.changes -
+
+
+
+net.corda.core.utilities / ProgressTracker / changes
+
+changes
+
+val changes : <ERROR CLASS> < Change >
+An observable stream of changes: includes child steps, resets and any changes emitted by individual steps (e.g.
+if a step changed its label or rendering).
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.utilities/-progress-tracker/current-step-recursive.html b/docs/build/html/api/net.corda.core.utilities/-progress-tracker/current-step-recursive.html
new file mode 100644
index 0000000000..8478b08838
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.utilities/-progress-tracker/current-step-recursive.html
@@ -0,0 +1,16 @@
+
+
+ProgressTracker.currentStepRecursive -
+
+
+
+net.corda.core.utilities / ProgressTracker / currentStepRecursive
+
+currentStepRecursive
+
+val currentStepRecursive : Step
+Returns the current step, descending into children to find the deepest step we are up to.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.utilities/-progress-tracker/current-step.html b/docs/build/html/api/net.corda.core.utilities/-progress-tracker/current-step.html
new file mode 100644
index 0000000000..0f6043492a
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.utilities/-progress-tracker/current-step.html
@@ -0,0 +1,17 @@
+
+
+ProgressTracker.currentStep -
+
+
+
+net.corda.core.utilities / ProgressTracker / currentStep
+
+currentStep
+
+var currentStep : Step
+Reading returns the value of stepsstepIndex , writing moves the position of the current tracker. Once moved to
+the DONE state, this tracker is finished and the current step cannot be moved again.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.utilities/-progress-tracker/get-child-progress-tracker.html b/docs/build/html/api/net.corda.core.utilities/-progress-tracker/get-child-progress-tracker.html
new file mode 100644
index 0000000000..1bf45dba9a
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.utilities/-progress-tracker/get-child-progress-tracker.html
@@ -0,0 +1,15 @@
+
+
+ProgressTracker.getChildProgressTracker -
+
+
+
+net.corda.core.utilities / ProgressTracker / getChildProgressTracker
+
+getChildProgressTracker
+
+fun getChildProgressTracker ( step : Step ) : ProgressTracker ?
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.utilities/-progress-tracker/index.html b/docs/build/html/api/net.corda.core.utilities/-progress-tracker/index.html
new file mode 100644
index 0000000000..214ef585e7
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.utilities/-progress-tracker/index.html
@@ -0,0 +1,171 @@
+
+
+ProgressTracker -
+
+
+
+net.corda.core.utilities / ProgressTracker
+
+ProgressTracker
+class ProgressTracker
+A progress tracker helps surface information about the progress of an operation to a user interface or API of some
+kind. It lets you define a set of steps that represent an operation. A step is represented by an object (typically
+a singleton).
+Steps may logically be children of other steps, which models the case where a large top level operation involves
+sub-operations which may also have a notion of progress. If a step has children, then the tracker will report the
+steps children as the "next step" after the parent. In other words, a parent step is considered to involve actual
+reportable work and is a thing. If the parent step simply groups other steps, then youll have to step over it
+manually.
+Each step has a label. It is assumed by default that the label does not change. If you want a label to change, then
+you can emit a ProgressTracker.Change.Rendering object on the ProgressTracker.Step.changes observable stream
+after it changes. That object will propagate through to the top level trackers changes stream, which renderers can
+subscribe to in order to learn about progress.
+An operation can move both forwards and backwards through steps, thus, a ProgressTracker can represent operations
+that include loops.
+A progress tracker is not thread safe. You may move events from the thread making progress to another thread by
+using the Observable subscribeOn call.
+
+
+
+
+Types
+
+
+
+
+Change
+
+sealed class Change
+
+
+
+DONE
+
+object DONE : Step
+
+
+
+RelabelableStep
+
+inner class RelabelableStep : Step
This class makes it easier to relabel a step on the fly, to provide transient information.
+
+
+
+
+Step
+
+class Step
The superclass of all step objects.
+
+
+
+
+UNSTARTED
+
+object UNSTARTED : Step
+
+
+
+Constructors
+
+
+
+
+<init>
+
+ProgressTracker ( vararg steps : Step )
A progress tracker helps surface information about the progress of an operation to a user interface or API of some
+kind. It lets you define a set of steps that represent an operation. A step is represented by an object (typically
+a singleton).
+
+
+
+
+Properties
+
+
+
+
+allSteps
+
+val allSteps : List < <ERROR CLASS> < Int , Step > >
A list of all steps in this ProgressTracker and the children, with the indent level provided starting at zero.
+Note that UNSTARTED is never counted, and DONE is only counted at the calling level.
+
+
+
+
+changes
+
+val changes : <ERROR CLASS> < Change >
An observable stream of changes: includes child steps, resets and any changes emitted by individual steps (e.g.
+if a step changed its label or rendering).
+
+
+
+
+currentStep
+
+var currentStep : Step
Reading returns the value of stepsstepIndex , writing moves the position of the current tracker. Once moved to
+the DONE state, this tracker is finished and the current step cannot be moved again.
+
+
+
+
+currentStepRecursive
+
+val currentStepRecursive : Step
Returns the current step, descending into children to find the deepest step we are up to.
+
+
+
+
+parent
+
+var parent : ProgressTracker ?
The parent of this tracker: set automatically by the parent when a tracker is added as a child
+
+
+
+
+stepIndex
+
+var stepIndex : Int
The zero-based index of the current step in the steps array (i.e. with UNSTARTED and DONE)
+
+
+
+
+steps
+
+val steps : Array < Step >
The steps in this tracker, same as the steps passed to the constructor but with UNSTARTED and DONE inserted.
+
+
+
+
+topLevelTracker
+
+val topLevelTracker : ProgressTracker
+
+
+
+Functions
+
+
+
+
+getChildProgressTracker
+
+fun getChildProgressTracker ( step : Step ) : ProgressTracker ?
+
+
+
+nextStep
+
+fun nextStep ( ) : Step
Iterates the progress tracker. If the current step has a child, the child is iterated instead (recursively).
+Returns the latest step at the bottom of the step tree.
+
+
+
+
+setChildProgressTracker
+
+fun setChildProgressTracker ( step : Step , childProgressTracker : ProgressTracker ) : Unit
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.utilities/-progress-tracker/next-step.html b/docs/build/html/api/net.corda.core.utilities/-progress-tracker/next-step.html
new file mode 100644
index 0000000000..a75b339767
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.utilities/-progress-tracker/next-step.html
@@ -0,0 +1,17 @@
+
+
+ProgressTracker.nextStep -
+
+
+
+net.corda.core.utilities / ProgressTracker / nextStep
+
+nextStep
+
+fun nextStep ( ) : Step
+Iterates the progress tracker. If the current step has a child, the child is iterated instead (recursively).
+Returns the latest step at the bottom of the step tree.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.utilities/-progress-tracker/parent.html b/docs/build/html/api/net.corda.core.utilities/-progress-tracker/parent.html
new file mode 100644
index 0000000000..a0de81429e
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.utilities/-progress-tracker/parent.html
@@ -0,0 +1,16 @@
+
+
+ProgressTracker.parent -
+
+
+
+net.corda.core.utilities / ProgressTracker / parent
+
+parent
+
+var parent : ProgressTracker ?
+The parent of this tracker: set automatically by the parent when a tracker is added as a child
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.utilities/-progress-tracker/set-child-progress-tracker.html b/docs/build/html/api/net.corda.core.utilities/-progress-tracker/set-child-progress-tracker.html
new file mode 100644
index 0000000000..e3f6c14faa
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.utilities/-progress-tracker/set-child-progress-tracker.html
@@ -0,0 +1,15 @@
+
+
+ProgressTracker.setChildProgressTracker -
+
+
+
+net.corda.core.utilities / ProgressTracker / setChildProgressTracker
+
+setChildProgressTracker
+
+fun setChildProgressTracker ( step : Step , childProgressTracker : ProgressTracker ) : Unit
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.utilities/-progress-tracker/step-index.html b/docs/build/html/api/net.corda.core.utilities/-progress-tracker/step-index.html
new file mode 100644
index 0000000000..f3ac73308f
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.utilities/-progress-tracker/step-index.html
@@ -0,0 +1,16 @@
+
+
+ProgressTracker.stepIndex -
+
+
+
+net.corda.core.utilities / ProgressTracker / stepIndex
+
+stepIndex
+
+var stepIndex : Int
+The zero-based index of the current step in the steps array (i.e. with UNSTARTED and DONE)
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.utilities/-progress-tracker/steps.html b/docs/build/html/api/net.corda.core.utilities/-progress-tracker/steps.html
new file mode 100644
index 0000000000..675e4eaf8f
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.utilities/-progress-tracker/steps.html
@@ -0,0 +1,16 @@
+
+
+ProgressTracker.steps -
+
+
+
+net.corda.core.utilities / ProgressTracker / steps
+
+steps
+
+val steps : Array < Step >
+The steps in this tracker, same as the steps passed to the constructor but with UNSTARTED and DONE inserted.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.utilities/-progress-tracker/top-level-tracker.html b/docs/build/html/api/net.corda.core.utilities/-progress-tracker/top-level-tracker.html
new file mode 100644
index 0000000000..f2fb7f7026
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.utilities/-progress-tracker/top-level-tracker.html
@@ -0,0 +1,15 @@
+
+
+ProgressTracker.topLevelTracker -
+
+
+
+net.corda.core.utilities / ProgressTracker / topLevelTracker
+
+topLevelTracker
+
+val topLevelTracker : ProgressTracker
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.utilities/-t-e-s-t_-t-x_-t-i-m-e.html b/docs/build/html/api/net.corda.core.utilities/-t-e-s-t_-t-x_-t-i-m-e.html
new file mode 100644
index 0000000000..2793dea4da
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.utilities/-t-e-s-t_-t-x_-t-i-m-e.html
@@ -0,0 +1,15 @@
+
+
+TEST_TX_TIME -
+
+
+
+net.corda.core.utilities / TEST_TX_TIME
+
+TEST_TX_TIME
+
+val TEST_TX_TIME : Instant
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.utilities/-time-window/-init-.html b/docs/build/html/api/net.corda.core.utilities/-time-window/-init-.html
new file mode 100644
index 0000000000..4421945737
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.utilities/-time-window/-init-.html
@@ -0,0 +1,15 @@
+
+
+TimeWindow. -
+
+
+
+net.corda.core.utilities / TimeWindow / <init>
+
+<init>
+TimeWindow ( start : Instant , duration : Duration )
+A class representing a window in time from a particular instant, lasting a specified duration.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.utilities/-time-window/duration.html b/docs/build/html/api/net.corda.core.utilities/-time-window/duration.html
new file mode 100644
index 0000000000..884ca70abf
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.utilities/-time-window/duration.html
@@ -0,0 +1,15 @@
+
+
+TimeWindow.duration -
+
+
+
+net.corda.core.utilities / TimeWindow / duration
+
+duration
+
+val duration : Duration
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.utilities/-time-window/end.html b/docs/build/html/api/net.corda.core.utilities/-time-window/end.html
new file mode 100644
index 0000000000..de7c8d3bba
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.utilities/-time-window/end.html
@@ -0,0 +1,15 @@
+
+
+TimeWindow.end -
+
+
+
+net.corda.core.utilities / TimeWindow / end
+
+end
+
+val end : Instant
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.utilities/-time-window/index.html b/docs/build/html/api/net.corda.core.utilities/-time-window/index.html
new file mode 100644
index 0000000000..bbd01d3a4b
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.utilities/-time-window/index.html
@@ -0,0 +1,50 @@
+
+
+TimeWindow -
+
+
+
+net.corda.core.utilities / TimeWindow
+
+TimeWindow
+data class TimeWindow
+A class representing a window in time from a particular instant, lasting a specified duration.
+
+
+Constructors
+
+
+
+
+<init>
+
+TimeWindow ( start : Instant , duration : Duration )
A class representing a window in time from a particular instant, lasting a specified duration.
+
+
+
+
+Properties
+
+
+
diff --git a/docs/build/html/api/net.corda.core.utilities/-time-window/start.html b/docs/build/html/api/net.corda.core.utilities/-time-window/start.html
new file mode 100644
index 0000000000..8483bcb7aa
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.utilities/-time-window/start.html
@@ -0,0 +1,15 @@
+
+
+TimeWindow.start -
+
+
+
+net.corda.core.utilities / TimeWindow / start
+
+start
+
+val start : Instant
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.utilities/-untrustworthy-data/-init-.html b/docs/build/html/api/net.corda.core.utilities/-untrustworthy-data/-init-.html
new file mode 100644
index 0000000000..c9de5b7f4d
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.utilities/-untrustworthy-data/-init-.html
@@ -0,0 +1,24 @@
+
+
+UntrustworthyData. -
+
+
+
+net.corda.core.utilities / UntrustworthyData / <init>
+
+<init>
+UntrustworthyData ( fromUntrustedWorld : T )
+A small utility to approximate taint tracking: if a method gives you back one of these, it means the data came from
+a remote source that may be incentivised to pass us junk that violates basic assumptions and thus must be checked
+first. The wrapper helps you to avoid forgetting this vital step. Things you might want to check are:
+Is this object the one you actually expected? Did the other side hand you back something technically valid but
+not what you asked for?
+Is the object disobeying its own invariants?
+Are any objects reachable from this object mismatched or not what you expected?
+Is it suspiciously large or small?
+
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.utilities/-untrustworthy-data/data.html b/docs/build/html/api/net.corda.core.utilities/-untrustworthy-data/data.html
new file mode 100644
index 0000000000..de9885cf97
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.utilities/-untrustworthy-data/data.html
@@ -0,0 +1,15 @@
+
+
+UntrustworthyData.data -
+
+
+
+net.corda.core.utilities / UntrustworthyData / data
+
+data
+
+val data : T
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.utilities/-untrustworthy-data/index.html b/docs/build/html/api/net.corda.core.utilities/-untrustworthy-data/index.html
new file mode 100644
index 0000000000..2ab09caeee
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.utilities/-untrustworthy-data/index.html
@@ -0,0 +1,66 @@
+
+
+UntrustworthyData -
+
+
+
+net.corda.core.utilities / UntrustworthyData
+
+UntrustworthyData
+class UntrustworthyData < out T >
+A small utility to approximate taint tracking: if a method gives you back one of these, it means the data came from
+a remote source that may be incentivised to pass us junk that violates basic assumptions and thus must be checked
+first. The wrapper helps you to avoid forgetting this vital step. Things you might want to check are:
+Is this object the one you actually expected? Did the other side hand you back something technically valid but
+not what you asked for?
+Is the object disobeying its own invariants?
+Are any objects reachable from this object mismatched or not what you expected?
+Is it suspiciously large or small?
+
+
+
+
+Constructors
+
+
+
+
+<init>
+
+UntrustworthyData ( fromUntrustedWorld : T )
A small utility to approximate taint tracking: if a method gives you back one of these, it means the data came from
+a remote source that may be incentivised to pass us junk that violates basic assumptions and thus must be checked
+first. The wrapper helps you to avoid forgetting this vital step. Things you might want to check are:
+
+
+
+
+Properties
+
+
+
+
+data
+
+val data : T
+
+
+
+Functions
+
+
+
+
+unwrap
+
+fun < R > unwrap ( validator : ( T ) -> R ) : R
+
+
+
+validate
+
+fun < R > validate ( validator : ( T ) -> R ) : R
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.utilities/-untrustworthy-data/unwrap.html b/docs/build/html/api/net.corda.core.utilities/-untrustworthy-data/unwrap.html
new file mode 100644
index 0000000000..08e38948a6
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.utilities/-untrustworthy-data/unwrap.html
@@ -0,0 +1,15 @@
+
+
+UntrustworthyData.unwrap -
+
+
+
+net.corda.core.utilities / UntrustworthyData / unwrap
+
+unwrap
+
+inline fun < R > unwrap ( validator : ( T ) -> R ) : R
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.utilities/-untrustworthy-data/validate.html b/docs/build/html/api/net.corda.core.utilities/-untrustworthy-data/validate.html
new file mode 100644
index 0000000000..da4bf0e9ed
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.utilities/-untrustworthy-data/validate.html
@@ -0,0 +1,17 @@
+
+
+UntrustworthyData.validate -
+
+
+
+net.corda.core.utilities / UntrustworthyData / validate
+
+validate
+
+inline fun < R > validate ( validator : ( T ) -> R ) : R
+Deprecated: This old name was confusing, use unwrap instead
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.utilities/debug.html b/docs/build/html/api/net.corda.core.utilities/debug.html
new file mode 100644
index 0000000000..5a34c57482
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.utilities/debug.html
@@ -0,0 +1,15 @@
+
+
+debug -
+
+
+
+net.corda.core.utilities / debug
+
+debug
+
+inline fun <ERROR CLASS> . debug ( msg : ( ) -> String ) : Unit
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.utilities/index.html b/docs/build/html/api/net.corda.core.utilities/index.html
new file mode 100644
index 0000000000..9d8d7f09f6
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.utilities/index.html
@@ -0,0 +1,155 @@
+
+
+net.corda.core.utilities -
+
+
+
+net.corda.core.utilities
+
+Package net.corda.core.utilities
+Types
+
+
+
+
+ApiUtils
+
+class ApiUtils
Utility functions to reduce boilerplate when developing HTTP APIs
+
+
+
+
+Emoji
+
+object Emoji
A simple wrapper class that contains icons and support for printing them only when were connected to a terminal.
+
+
+
+
+LogHelper
+
+object LogHelper
A configuration helper that allows modifying the log level for specific loggers
+
+
+
+
+NonEmptySet
+
+class NonEmptySet < T > : MutableSet < T >
A set which is constrained to ensure it can never be empty. An initial value must be provided at
+construction, and attempting to remove the last element will cause an IllegalStateException.
+The underlying set is exposed for Kryo to access, but should not be accessed directly.
+
+
+
+
+NonEmptySetSerializer
+
+object NonEmptySetSerializer
Custom serializer which understands it has to read in an item before
+trying to construct the set.
+
+
+
+
+ProgressTracker
+
+class ProgressTracker
A progress tracker helps surface information about the progress of an operation to a user interface or API of some
+kind. It lets you define a set of steps that represent an operation. A step is represented by an object (typically
+a singleton).
+
+
+
+
+TimeWindow
+
+data class TimeWindow
A class representing a window in time from a particular instant, lasting a specified duration.
+
+
+
+
+UntrustworthyData
+
+class UntrustworthyData < out T >
A small utility to approximate taint tracking: if a method gives you back one of these, it means the data came from
+a remote source that may be incentivised to pass us junk that violates basic assumptions and thus must be checked
+first. The wrapper helps you to avoid forgetting this vital step. Things you might want to check are:
+
+
+
+
+Properties
+
+Functions
+
+
+
+
+debug
+
+fun <ERROR CLASS> . debug ( msg : ( ) -> String ) : Unit
+
+
+
+loggerFor
+
+fun < T : Any > loggerFor ( ) : <ERROR CLASS>
+
+
+
+nonEmptySetOf
+
+fun < T > nonEmptySetOf ( initial : T , vararg elements : T ) : NonEmptySet < T >
+
+
+
+trace
+
+fun <ERROR CLASS> . trace ( msg : ( ) -> String ) : Unit
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.utilities/logger-for.html b/docs/build/html/api/net.corda.core.utilities/logger-for.html
new file mode 100644
index 0000000000..2b6c5bcd3b
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.utilities/logger-for.html
@@ -0,0 +1,15 @@
+
+
+loggerFor -
+
+
+
+net.corda.core.utilities / loggerFor
+
+loggerFor
+
+inline fun < reified T : Any > loggerFor ( ) : <ERROR CLASS>
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.utilities/non-empty-set-of.html b/docs/build/html/api/net.corda.core.utilities/non-empty-set-of.html
new file mode 100644
index 0000000000..e60428f7d0
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.utilities/non-empty-set-of.html
@@ -0,0 +1,15 @@
+
+
+nonEmptySetOf -
+
+
+
+net.corda.core.utilities / nonEmptySetOf
+
+nonEmptySetOf
+
+fun < T > nonEmptySetOf ( initial : T , vararg elements : T ) : NonEmptySet < T >
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core.utilities/trace.html b/docs/build/html/api/net.corda.core.utilities/trace.html
new file mode 100644
index 0000000000..35932f05cd
--- /dev/null
+++ b/docs/build/html/api/net.corda.core.utilities/trace.html
@@ -0,0 +1,15 @@
+
+
+trace -
+
+
+
+net.corda.core.utilities / trace
+
+trace
+
+inline fun <ERROR CLASS> . trace ( msg : ( ) -> String ) : Unit
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core/-error-or/-init-.html b/docs/build/html/api/net.corda.core/-error-or/-init-.html
new file mode 100644
index 0000000000..a10613aa49
--- /dev/null
+++ b/docs/build/html/api/net.corda.core/-error-or/-init-.html
@@ -0,0 +1,14 @@
+
+
+ErrorOr. -
+
+
+
+net.corda.core / ErrorOr / <init>
+
+<init>
+ErrorOr ( value : A )
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core/-error-or/bind.html b/docs/build/html/api/net.corda.core/-error-or/bind.html
new file mode 100644
index 0000000000..72de33bb43
--- /dev/null
+++ b/docs/build/html/api/net.corda.core/-error-or/bind.html
@@ -0,0 +1,15 @@
+
+
+ErrorOr.bind -
+
+
+
+net.corda.core / ErrorOr / bind
+
+bind
+
+fun < B > bind ( function : ( A ) -> ErrorOr < B > ) : ErrorOr < Nothing >
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core/-error-or/catch.html b/docs/build/html/api/net.corda.core/-error-or/catch.html
new file mode 100644
index 0000000000..64a1c38ded
--- /dev/null
+++ b/docs/build/html/api/net.corda.core/-error-or/catch.html
@@ -0,0 +1,16 @@
+
+
+ErrorOr.catch -
+
+
+
+net.corda.core / ErrorOr / catch
+
+catch
+
+inline fun < T > catch ( body : ( ) -> T ) : ErrorOr < T >
+Runs the given lambda and wraps the result.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core/-error-or/combine.html b/docs/build/html/api/net.corda.core/-error-or/combine.html
new file mode 100644
index 0000000000..d33d274496
--- /dev/null
+++ b/docs/build/html/api/net.corda.core/-error-or/combine.html
@@ -0,0 +1,15 @@
+
+
+ErrorOr.combine -
+
+
+
+net.corda.core / ErrorOr / combine
+
+combine
+
+fun < B , C > combine ( other : ErrorOr < B > , function : ( A , B ) -> C ) : ErrorOr < C >
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core/-error-or/error.html b/docs/build/html/api/net.corda.core/-error-or/error.html
new file mode 100644
index 0000000000..8a86bf4777
--- /dev/null
+++ b/docs/build/html/api/net.corda.core/-error-or/error.html
@@ -0,0 +1,15 @@
+
+
+ErrorOr.error -
+
+
+
+net.corda.core / ErrorOr / error
+
+error
+
+val error : Throwable ?
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core/-error-or/get-or-throw.html b/docs/build/html/api/net.corda.core/-error-or/get-or-throw.html
new file mode 100644
index 0000000000..123602cc79
--- /dev/null
+++ b/docs/build/html/api/net.corda.core/-error-or/get-or-throw.html
@@ -0,0 +1,15 @@
+
+
+ErrorOr.getOrThrow -
+
+
+
+net.corda.core / ErrorOr / getOrThrow
+
+getOrThrow
+
+fun getOrThrow ( ) : A
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core/-error-or/index.html b/docs/build/html/api/net.corda.core/-error-or/index.html
new file mode 100644
index 0000000000..15bcf74faf
--- /dev/null
+++ b/docs/build/html/api/net.corda.core/-error-or/index.html
@@ -0,0 +1,96 @@
+
+
+ErrorOr -
+
+
+
+net.corda.core / ErrorOr
+
+ErrorOr
+data class ErrorOr < out A >
+Representation of an operation that may have thrown an error.
+
+
+Constructors
+
+
+
+
+<init>
+
+ErrorOr ( value : A )
+
+
+
+Properties
+
+
+
+
+error
+
+val error : Throwable ?
+
+
+
+value
+
+val value : A ?
+
+
+
+Functions
+
+
+
+
+bind
+
+fun < B > bind ( function : ( A ) -> ErrorOr < B > ) : ErrorOr < Nothing >
+
+
+
+combine
+
+fun < B , C > combine ( other : ErrorOr < B > , function : ( A , B ) -> C ) : ErrorOr < C >
+
+
+
+getOrThrow
+
+fun getOrThrow ( ) : A
+
+
+
+map
+
+fun < B > map ( function : ( A ) -> B ) : <ERROR CLASS>
+
+
+
+match
+
+fun < T > match ( onValue : ( A ) -> T , onError : ( Throwable ) -> T ) : T
+
+
+
+Companion Object Functions
+
+
+
+
+catch
+
+fun < T > catch ( body : ( ) -> T ) : ErrorOr < T >
Runs the given lambda and wraps the result.
+
+
+
+
+of
+
+fun of ( t : Throwable ) : ErrorOr < Nothing >
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core/-error-or/map.html b/docs/build/html/api/net.corda.core/-error-or/map.html
new file mode 100644
index 0000000000..66c1a3f955
--- /dev/null
+++ b/docs/build/html/api/net.corda.core/-error-or/map.html
@@ -0,0 +1,15 @@
+
+
+ErrorOr.map -
+
+
+
+net.corda.core / ErrorOr / map
+
+map
+
+fun < B > map ( function : ( A ) -> B ) : <ERROR CLASS>
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core/-error-or/match.html b/docs/build/html/api/net.corda.core/-error-or/match.html
new file mode 100644
index 0000000000..ac43ec900e
--- /dev/null
+++ b/docs/build/html/api/net.corda.core/-error-or/match.html
@@ -0,0 +1,15 @@
+
+
+ErrorOr.match -
+
+
+
+net.corda.core / ErrorOr / match
+
+match
+
+fun < T > match ( onValue : ( A ) -> T , onError : ( Throwable ) -> T ) : T
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core/-error-or/of.html b/docs/build/html/api/net.corda.core/-error-or/of.html
new file mode 100644
index 0000000000..a9debd9092
--- /dev/null
+++ b/docs/build/html/api/net.corda.core/-error-or/of.html
@@ -0,0 +1,15 @@
+
+
+ErrorOr.of -
+
+
+
+net.corda.core / ErrorOr / of
+
+of
+
+fun of ( t : Throwable ) : ErrorOr < Nothing >
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core/-error-or/value.html b/docs/build/html/api/net.corda.core/-error-or/value.html
new file mode 100644
index 0000000000..bbd937776f
--- /dev/null
+++ b/docs/build/html/api/net.corda.core/-error-or/value.html
@@ -0,0 +1,15 @@
+
+
+ErrorOr.value -
+
+
+
+net.corda.core / ErrorOr / value
+
+value
+
+val value : A ?
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core/-retryable-exception/-init-.html b/docs/build/html/api/net.corda.core/-retryable-exception/-init-.html
new file mode 100644
index 0000000000..13daa5bdad
--- /dev/null
+++ b/docs/build/html/api/net.corda.core/-retryable-exception/-init-.html
@@ -0,0 +1,19 @@
+
+
+RetryableException. -
+
+
+
+net.corda.core / RetryableException / <init>
+
+<init>
+RetryableException ( message : String )
+This represents a transient exception or condition that might no longer be thrown if the operation is re-run or called
+again.
+We avoid the use of the word transient here to hopefully reduce confusion with the term in relation to (Java) serialization.
+
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core/-retryable-exception/index.html b/docs/build/html/api/net.corda.core/-retryable-exception/index.html
new file mode 100644
index 0000000000..b426b31fdd
--- /dev/null
+++ b/docs/build/html/api/net.corda.core/-retryable-exception/index.html
@@ -0,0 +1,43 @@
+
+
+RetryableException -
+
+
+
+net.corda.core / RetryableException
+
+RetryableException
+abstract class RetryableException : Exception
+This represents a transient exception or condition that might no longer be thrown if the operation is re-run or called
+again.
+We avoid the use of the word transient here to hopefully reduce confusion with the term in relation to (Java) serialization.
+
+
+
+
+Constructors
+
+
+
+
+<init>
+
+RetryableException ( message : String )
This represents a transient exception or condition that might no longer be thrown if the operation is re-run or called
+again.
+
+
+
+
+Extension Properties
+
+
+
+
+rootCause
+
+val Throwable . rootCause : Throwable
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core/-run-on-caller-thread.html b/docs/build/html/api/net.corda.core/-run-on-caller-thread.html
new file mode 100644
index 0000000000..118e7760a7
--- /dev/null
+++ b/docs/build/html/api/net.corda.core/-run-on-caller-thread.html
@@ -0,0 +1,15 @@
+
+
+RunOnCallerThread -
+
+
+
+net.corda.core / RunOnCallerThread
+
+RunOnCallerThread
+
+val RunOnCallerThread : <ERROR CLASS>
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core/-thread-box/-init-.html b/docs/build/html/api/net.corda.core/-thread-box/-init-.html
new file mode 100644
index 0000000000..ed9ea0f732
--- /dev/null
+++ b/docs/build/html/api/net.corda.core/-thread-box/-init-.html
@@ -0,0 +1,27 @@
+
+
+ThreadBox. -
+
+
+
+net.corda.core / ThreadBox / <init>
+
+<init>
+ThreadBox ( content : T , lock : ReentrantLock = ReentrantLock())
+A threadbox is a simple utility that makes it harder to forget to take a lock before accessing some shared state.
+Simply define a private class to hold the data that must be grouped under the same lock, and then pass the only
+instance to the ThreadBox constructor. You can now use the locked method with a lambda to take the lock in a
+way that ensures itll be released if theres an exception.
+Note that this technique is not infallible: if you capture a reference to the fields in another lambda which then
+gets stored and invoked later, there may still be unsafe multi-threaded access going on, so watch out for that.
+This is just a simple guard rail that makes it harder to slip up.
+Example:
+private class MutableState { var i = 5 }
+private val state = ThreadBox(MutableState())
+val ii = state.locked { i }
+
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core/-thread-box/already-locked.html b/docs/build/html/api/net.corda.core/-thread-box/already-locked.html
new file mode 100644
index 0000000000..923bed6c66
--- /dev/null
+++ b/docs/build/html/api/net.corda.core/-thread-box/already-locked.html
@@ -0,0 +1,15 @@
+
+
+ThreadBox.alreadyLocked -
+
+
+
+net.corda.core / ThreadBox / alreadyLocked
+
+alreadyLocked
+
+inline fun < R > alreadyLocked ( body : T . ( ) -> R ) : R
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core/-thread-box/check-not-locked.html b/docs/build/html/api/net.corda.core/-thread-box/check-not-locked.html
new file mode 100644
index 0000000000..6fe2994ecc
--- /dev/null
+++ b/docs/build/html/api/net.corda.core/-thread-box/check-not-locked.html
@@ -0,0 +1,15 @@
+
+
+ThreadBox.checkNotLocked -
+
+
+
+net.corda.core / ThreadBox / checkNotLocked
+
+checkNotLocked
+
+fun checkNotLocked ( ) : <ERROR CLASS>
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core/-thread-box/content.html b/docs/build/html/api/net.corda.core/-thread-box/content.html
new file mode 100644
index 0000000000..dbf52adb34
--- /dev/null
+++ b/docs/build/html/api/net.corda.core/-thread-box/content.html
@@ -0,0 +1,15 @@
+
+
+ThreadBox.content -
+
+
+
+net.corda.core / ThreadBox / content
+
+content
+
+val content : T
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core/-thread-box/index.html b/docs/build/html/api/net.corda.core/-thread-box/index.html
new file mode 100644
index 0000000000..14f8f89225
--- /dev/null
+++ b/docs/build/html/api/net.corda.core/-thread-box/index.html
@@ -0,0 +1,82 @@
+
+
+ThreadBox -
+
+
+
+net.corda.core / ThreadBox
+
+ThreadBox
+class ThreadBox < out T >
+A threadbox is a simple utility that makes it harder to forget to take a lock before accessing some shared state.
+Simply define a private class to hold the data that must be grouped under the same lock, and then pass the only
+instance to the ThreadBox constructor. You can now use the locked method with a lambda to take the lock in a
+way that ensures itll be released if theres an exception.
+Note that this technique is not infallible: if you capture a reference to the fields in another lambda which then
+gets stored and invoked later, there may still be unsafe multi-threaded access going on, so watch out for that.
+This is just a simple guard rail that makes it harder to slip up.
+Example:
+private class MutableState { var i = 5 }
+private val state = ThreadBox(MutableState())
+val ii = state.locked { i }
+
+
+
+
+Constructors
+
+
+
+
+<init>
+
+ThreadBox ( content : T , lock : ReentrantLock = ReentrantLock())
A threadbox is a simple utility that makes it harder to forget to take a lock before accessing some shared state.
+Simply define a private class to hold the data that must be grouped under the same lock, and then pass the only
+instance to the ThreadBox constructor. You can now use the locked method with a lambda to take the lock in a
+way that ensures itll be released if theres an exception.
+
+
+
+
+Properties
+
+Functions
+
+
+
+
+alreadyLocked
+
+fun < R > alreadyLocked ( body : T . ( ) -> R ) : R
+
+
+
+checkNotLocked
+
+fun checkNotLocked ( ) : <ERROR CLASS>
+
+
+
+locked
+
+fun < R > locked ( body : T . ( ) -> R ) : R
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core/-thread-box/lock.html b/docs/build/html/api/net.corda.core/-thread-box/lock.html
new file mode 100644
index 0000000000..64c4dd962b
--- /dev/null
+++ b/docs/build/html/api/net.corda.core/-thread-box/lock.html
@@ -0,0 +1,15 @@
+
+
+ThreadBox.lock -
+
+
+
+net.corda.core / ThreadBox / lock
+
+lock
+
+val lock : ReentrantLock
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core/-thread-box/locked.html b/docs/build/html/api/net.corda.core/-thread-box/locked.html
new file mode 100644
index 0000000000..e051be0364
--- /dev/null
+++ b/docs/build/html/api/net.corda.core/-thread-box/locked.html
@@ -0,0 +1,15 @@
+
+
+ThreadBox.locked -
+
+
+
+net.corda.core / ThreadBox / locked
+
+locked
+
+inline fun < R > locked ( body : T . ( ) -> R ) : R
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core/-transient-property/-init-.html b/docs/build/html/api/net.corda.core/-transient-property/-init-.html
new file mode 100644
index 0000000000..e5a902d70c
--- /dev/null
+++ b/docs/build/html/api/net.corda.core/-transient-property/-init-.html
@@ -0,0 +1,17 @@
+
+
+TransientProperty. -
+
+
+
+net.corda.core / TransientProperty / <init>
+
+<init>
+TransientProperty ( initializer : ( ) -> T )
+A simple wrapper that enables the use of Kotlins "val x by TransientProperty { ... }" syntax. Such a property
+will not be serialized to disk, and if its missing (or the first time its accessed), the initializer will be
+used to set it up. Note that the initializer will be called with the TransientProperty object locked.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core/-transient-property/get-value.html b/docs/build/html/api/net.corda.core/-transient-property/get-value.html
new file mode 100644
index 0000000000..a8306c2228
--- /dev/null
+++ b/docs/build/html/api/net.corda.core/-transient-property/get-value.html
@@ -0,0 +1,15 @@
+
+
+TransientProperty.getValue -
+
+
+
+net.corda.core / TransientProperty / getValue
+
+getValue
+
+operator fun getValue ( thisRef : Any ? , property : KProperty < * > ) : T
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core/-transient-property/index.html b/docs/build/html/api/net.corda.core/-transient-property/index.html
new file mode 100644
index 0000000000..85a9c98a26
--- /dev/null
+++ b/docs/build/html/api/net.corda.core/-transient-property/index.html
@@ -0,0 +1,42 @@
+
+
+TransientProperty -
+
+
+
+net.corda.core / TransientProperty
+
+TransientProperty
+class TransientProperty < out T >
+A simple wrapper that enables the use of Kotlins "val x by TransientProperty { ... }" syntax. Such a property
+will not be serialized to disk, and if its missing (or the first time its accessed), the initializer will be
+used to set it up. Note that the initializer will be called with the TransientProperty object locked.
+
+
+Constructors
+
+
+
+
+<init>
+
+TransientProperty ( initializer : ( ) -> T )
A simple wrapper that enables the use of Kotlins "val x by TransientProperty { ... }" syntax. Such a property
+will not be serialized to disk, and if its missing (or the first time its accessed), the initializer will be
+used to set it up. Note that the initializer will be called with the TransientProperty object locked.
+
+
+
+
+Functions
+
+
+
+
+getValue
+
+operator fun getValue ( thisRef : Any ? , property : KProperty < * > ) : T
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core/buffer-until-subscribed.html b/docs/build/html/api/net.corda.core/buffer-until-subscribed.html
new file mode 100644
index 0000000000..b119c5ebb1
--- /dev/null
+++ b/docs/build/html/api/net.corda.core/buffer-until-subscribed.html
@@ -0,0 +1,19 @@
+
+
+bufferUntilSubscribed -
+
+
+
+net.corda.core / bufferUntilSubscribed
+
+bufferUntilSubscribed
+
+fun < T > <ERROR CLASS> < T > . bufferUntilSubscribed ( ) : <ERROR CLASS> < T >
+Returns an observable that buffers events until subscribed.
+See Also
+
UnicastSubject
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core/catch.html b/docs/build/html/api/net.corda.core/catch.html
new file mode 100644
index 0000000000..f4fb35554a
--- /dev/null
+++ b/docs/build/html/api/net.corda.core/catch.html
@@ -0,0 +1,16 @@
+
+
+catch -
+
+
+
+net.corda.core / catch
+
+catch
+
+inline fun < T > <ERROR CLASS> < T > . catch ( block : ( ) -> T ) : Unit
+Executes the given block and sets the future to either the result, or any exception that was thrown.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core/extract-zip-file.html b/docs/build/html/api/net.corda.core/extract-zip-file.html
new file mode 100644
index 0000000000..6c4eb715d0
--- /dev/null
+++ b/docs/build/html/api/net.corda.core/extract-zip-file.html
@@ -0,0 +1,16 @@
+
+
+extractZipFile -
+
+
+
+net.corda.core / extractZipFile
+
+extractZipFile
+
+fun extractZipFile ( : Path , : Path ) : Unit
+Given a path to a zip file, extracts it to the given directory.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core/failure.html b/docs/build/html/api/net.corda.core/failure.html
new file mode 100644
index 0000000000..d9d9051dbc
--- /dev/null
+++ b/docs/build/html/api/net.corda.core/failure.html
@@ -0,0 +1,17 @@
+
+
+failure -
+
+
+
+net.corda.core / failure
+
+failure
+
+fun < T > <ERROR CLASS> < T > . failure ( executor : Executor , body : ( Throwable ) -> Unit ) : <ERROR CLASS>
+
+infix fun < T > <ERROR CLASS> < T > . failure ( body : ( Throwable ) -> Unit ) : <ERROR CLASS> < T >
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core/flat-map.html b/docs/build/html/api/net.corda.core/flat-map.html
new file mode 100644
index 0000000000..ec098e3048
--- /dev/null
+++ b/docs/build/html/api/net.corda.core/flat-map.html
@@ -0,0 +1,15 @@
+
+
+flatMap -
+
+
+
+net.corda.core / flatMap
+
+flatMap
+
+infix fun < F , T > <ERROR CLASS> < F > . flatMap ( mapper : ( F ) -> <ERROR CLASS> < T > ) : <ERROR CLASS> < T >
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core/index.html b/docs/build/html/api/net.corda.core/index.html
new file mode 100644
index 0000000000..2a9b2c48c6
--- /dev/null
+++ b/docs/build/html/api/net.corda.core/index.html
@@ -0,0 +1,204 @@
+
+
+net.corda.core -
+
+
+
+net.corda.core
+
+Package net.corda.core
+Types
+
+
+
+
+ErrorOr
+
+data class ErrorOr < out A >
Representation of an operation that may have thrown an error.
+
+
+
+
+ThreadBox
+
+class ThreadBox < out T >
A threadbox is a simple utility that makes it harder to forget to take a lock before accessing some shared state.
+Simply define a private class to hold the data that must be grouped under the same lock, and then pass the only
+instance to the ThreadBox constructor. You can now use the locked method with a lambda to take the lock in a
+way that ensures itll be released if theres an exception.
+
+
+
+
+TransientProperty
+
+class TransientProperty < out T >
A simple wrapper that enables the use of Kotlins "val x by TransientProperty { ... }" syntax. Such a property
+will not be serialized to disk, and if its missing (or the first time its accessed), the initializer will be
+used to set it up. Note that the initializer will be called with the TransientProperty object locked.
+
+
+
+
+Exceptions
+
+
+
+
+RetryableException
+
+abstract class RetryableException : Exception
This represents a transient exception or condition that might no longer be thrown if the operation is re-run or called
+again.
+
+
+
+
+Extensions for External Classes
+
+Properties
+
+Functions
+
+
+
+
+bufferUntilSubscribed
+
+fun < T > <ERROR CLASS> < T > . bufferUntilSubscribed ( ) : <ERROR CLASS> < T >
Returns an observable that buffers events until subscribed.
+
+
+
+
+catch
+
+fun < T > <ERROR CLASS> < T > . catch ( block : ( ) -> T ) : Unit
Executes the given block and sets the future to either the result, or any exception that was thrown.
+
+
+
+
+extractZipFile
+
+fun extractZipFile ( : Path , : Path ) : Unit
Given a path to a zip file, extracts it to the given directory.
+
+
+
+
+failure
+
+fun < T > <ERROR CLASS> < T > . failure ( executor : Executor , body : ( Throwable ) -> Unit ) : <ERROR CLASS>
+infix fun < T > <ERROR CLASS> < T > . failure ( body : ( Throwable ) -> Unit ) : <ERROR CLASS> < T >
+
+
+
+flatMap
+
+infix fun < F , T > <ERROR CLASS> < F > . flatMap ( mapper : ( F ) -> <ERROR CLASS> < T > ) : <ERROR CLASS> < T >
+
+
+
+logElapsedTime
+
+fun < T > logElapsedTime ( label : String , logger : <ERROR CLASS> ? = null, body : ( ) -> T ) : T
+
+
+
+map
+
+infix fun < F , T > <ERROR CLASS> < F > . map ( mapper : ( F ) -> T ) : <ERROR CLASS> < T >
+
+
+
+random63BitValue
+
+fun random63BitValue ( ) : Long
Returns a random positive long generated using a secure RNG. This function sacrifies a bit of entropy in order to
+avoid potential bugs where the value is used in a context where negative numbers are not expected.
+
+
+
+
+success
+
+fun < T > <ERROR CLASS> < T > . success ( executor : Executor , body : ( T ) -> Unit ) : <ERROR CLASS>
+infix fun < T > <ERROR CLASS> < T > . success ( body : ( T ) -> Unit ) : <ERROR CLASS> < T >
+
+
+
+then
+
+fun < T > <ERROR CLASS> < T > . then ( executor : Executor , body : ( ) -> Unit ) : <ERROR CLASS>
+infix fun < T > <ERROR CLASS> < T > . then ( body : ( ) -> Unit ) : <ERROR CLASS> < T >
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core/java.io.-input-stream/copy-to.html b/docs/build/html/api/net.corda.core/java.io.-input-stream/copy-to.html
new file mode 100644
index 0000000000..977205b908
--- /dev/null
+++ b/docs/build/html/api/net.corda.core/java.io.-input-stream/copy-to.html
@@ -0,0 +1,15 @@
+
+
+copyTo -
+
+
+
+net.corda.core / java.io.InputStream / copyTo
+
+copyTo
+
+fun InputStream . copyTo ( target : Path , vararg options : CopyOption ) : Long
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core/java.io.-input-stream/index.html b/docs/build/html/api/net.corda.core/java.io.-input-stream/index.html
new file mode 100644
index 0000000000..a263eb0add
--- /dev/null
+++ b/docs/build/html/api/net.corda.core/java.io.-input-stream/index.html
@@ -0,0 +1,21 @@
+
+
+net.corda.core.java.io.InputStream -
+
+
+
+net.corda.core / java.io.InputStream
+
+Extensions for java.io.InputStream
+
+
+
diff --git a/docs/build/html/api/net.corda.core/java.nio.file.-path/create-directories.html b/docs/build/html/api/net.corda.core/java.nio.file.-path/create-directories.html
new file mode 100644
index 0000000000..f61e1170ce
--- /dev/null
+++ b/docs/build/html/api/net.corda.core/java.nio.file.-path/create-directories.html
@@ -0,0 +1,15 @@
+
+
+createDirectories -
+
+
+
+net.corda.core / java.nio.file.Path / createDirectories
+
+createDirectories
+
+fun Path . createDirectories ( vararg attrs : FileAttribute < * > ) : Path
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core/java.nio.file.-path/create-directory.html b/docs/build/html/api/net.corda.core/java.nio.file.-path/create-directory.html
new file mode 100644
index 0000000000..a366434228
--- /dev/null
+++ b/docs/build/html/api/net.corda.core/java.nio.file.-path/create-directory.html
@@ -0,0 +1,15 @@
+
+
+createDirectory -
+
+
+
+net.corda.core / java.nio.file.Path / createDirectory
+
+createDirectory
+
+fun Path . createDirectory ( vararg attrs : FileAttribute < * > ) : Path
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core/java.nio.file.-path/delete-if-exists.html b/docs/build/html/api/net.corda.core/java.nio.file.-path/delete-if-exists.html
new file mode 100644
index 0000000000..bfb259fa66
--- /dev/null
+++ b/docs/build/html/api/net.corda.core/java.nio.file.-path/delete-if-exists.html
@@ -0,0 +1,15 @@
+
+
+deleteIfExists -
+
+
+
+net.corda.core / java.nio.file.Path / deleteIfExists
+
+deleteIfExists
+
+fun Path . deleteIfExists ( ) : Boolean
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core/java.nio.file.-path/div.html b/docs/build/html/api/net.corda.core/java.nio.file.-path/div.html
new file mode 100644
index 0000000000..5677e33a88
--- /dev/null
+++ b/docs/build/html/api/net.corda.core/java.nio.file.-path/div.html
@@ -0,0 +1,16 @@
+
+
+div -
+
+
+
+net.corda.core / java.nio.file.Path / div
+
+div
+
+operator fun Path . div ( other : String ) : Path
+Allows you to write code like: Paths.get("someDir") / "subdir" / "filename" but using the Paths API to avoid platform separator problems.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core/java.nio.file.-path/exists.html b/docs/build/html/api/net.corda.core/java.nio.file.-path/exists.html
new file mode 100644
index 0000000000..cc8e072f7a
--- /dev/null
+++ b/docs/build/html/api/net.corda.core/java.nio.file.-path/exists.html
@@ -0,0 +1,15 @@
+
+
+exists -
+
+
+
+net.corda.core / java.nio.file.Path / exists
+
+exists
+
+fun Path . exists ( vararg options : LinkOption ) : Boolean
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core/java.nio.file.-path/index.html b/docs/build/html/api/net.corda.core/java.nio.file.-path/index.html
new file mode 100644
index 0000000000..3993ab831e
--- /dev/null
+++ b/docs/build/html/api/net.corda.core/java.nio.file.-path/index.html
@@ -0,0 +1,106 @@
+
+
+net.corda.core.java.nio.file.Path -
+
+
+
+net.corda.core / java.nio.file.Path
+
+Extensions for java.nio.file.Path
+
+
+
diff --git a/docs/build/html/api/net.corda.core/java.nio.file.-path/is-directory.html b/docs/build/html/api/net.corda.core/java.nio.file.-path/is-directory.html
new file mode 100644
index 0000000000..f7b38697a0
--- /dev/null
+++ b/docs/build/html/api/net.corda.core/java.nio.file.-path/is-directory.html
@@ -0,0 +1,15 @@
+
+
+isDirectory -
+
+
+
+net.corda.core / java.nio.file.Path / isDirectory
+
+isDirectory
+
+fun Path . isDirectory ( vararg options : LinkOption ) : Boolean
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core/java.nio.file.-path/is-regular-file.html b/docs/build/html/api/net.corda.core/java.nio.file.-path/is-regular-file.html
new file mode 100644
index 0000000000..6ca54cb9bc
--- /dev/null
+++ b/docs/build/html/api/net.corda.core/java.nio.file.-path/is-regular-file.html
@@ -0,0 +1,15 @@
+
+
+isRegularFile -
+
+
+
+net.corda.core / java.nio.file.Path / isRegularFile
+
+isRegularFile
+
+fun Path . isRegularFile ( vararg options : LinkOption ) : Boolean
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core/java.nio.file.-path/list.html b/docs/build/html/api/net.corda.core/java.nio.file.-path/list.html
new file mode 100644
index 0000000000..2ca1fa6ea0
--- /dev/null
+++ b/docs/build/html/api/net.corda.core/java.nio.file.-path/list.html
@@ -0,0 +1,15 @@
+
+
+list -
+
+
+
+net.corda.core / java.nio.file.Path / list
+
+list
+
+inline fun < R > Path . list ( block : ( Stream < Path > ) -> R ) : R
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core/java.nio.file.-path/move-to.html b/docs/build/html/api/net.corda.core/java.nio.file.-path/move-to.html
new file mode 100644
index 0000000000..95df612602
--- /dev/null
+++ b/docs/build/html/api/net.corda.core/java.nio.file.-path/move-to.html
@@ -0,0 +1,15 @@
+
+
+moveTo -
+
+
+
+net.corda.core / java.nio.file.Path / moveTo
+
+moveTo
+
+fun Path . moveTo ( target : Path , vararg options : CopyOption ) : Path
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core/java.nio.file.-path/read-all.html b/docs/build/html/api/net.corda.core/java.nio.file.-path/read-all.html
new file mode 100644
index 0000000000..802237d963
--- /dev/null
+++ b/docs/build/html/api/net.corda.core/java.nio.file.-path/read-all.html
@@ -0,0 +1,15 @@
+
+
+readAll -
+
+
+
+net.corda.core / java.nio.file.Path / readAll
+
+readAll
+
+fun Path . readAll ( ) : ByteArray
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core/java.nio.file.-path/read-lines.html b/docs/build/html/api/net.corda.core/java.nio.file.-path/read-lines.html
new file mode 100644
index 0000000000..97e3dbd43c
--- /dev/null
+++ b/docs/build/html/api/net.corda.core/java.nio.file.-path/read-lines.html
@@ -0,0 +1,15 @@
+
+
+readLines -
+
+
+
+net.corda.core / java.nio.file.Path / readLines
+
+readLines
+
+inline fun < R > Path . readLines ( charset : Charset = UTF_8, block : ( Stream < String > ) -> R ) : R
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core/java.nio.file.-path/read.html b/docs/build/html/api/net.corda.core/java.nio.file.-path/read.html
new file mode 100644
index 0000000000..acdceee82e
--- /dev/null
+++ b/docs/build/html/api/net.corda.core/java.nio.file.-path/read.html
@@ -0,0 +1,15 @@
+
+
+read -
+
+
+
+net.corda.core / java.nio.file.Path / read
+
+read
+
+inline fun < R > Path . read ( vararg options : OpenOption , block : ( InputStream ) -> R ) : R
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core/java.nio.file.-path/size.html b/docs/build/html/api/net.corda.core/java.nio.file.-path/size.html
new file mode 100644
index 0000000000..3c46e7b829
--- /dev/null
+++ b/docs/build/html/api/net.corda.core/java.nio.file.-path/size.html
@@ -0,0 +1,15 @@
+
+
+size -
+
+
+
+net.corda.core / java.nio.file.Path / size
+
+size
+
+val Path . size : Long
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core/java.nio.file.-path/write-lines.html b/docs/build/html/api/net.corda.core/java.nio.file.-path/write-lines.html
new file mode 100644
index 0000000000..221948d69a
--- /dev/null
+++ b/docs/build/html/api/net.corda.core/java.nio.file.-path/write-lines.html
@@ -0,0 +1,15 @@
+
+
+writeLines -
+
+
+
+net.corda.core / java.nio.file.Path / writeLines
+
+writeLines
+
+fun Path . writeLines ( lines : Iterable < CharSequence > , charset : Charset = UTF_8, vararg options : OpenOption ) : Path
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core/java.nio.file.-path/write.html b/docs/build/html/api/net.corda.core/java.nio.file.-path/write.html
new file mode 100644
index 0000000000..1639129dcf
--- /dev/null
+++ b/docs/build/html/api/net.corda.core/java.nio.file.-path/write.html
@@ -0,0 +1,15 @@
+
+
+write -
+
+
+
+net.corda.core / java.nio.file.Path / write
+
+write
+
+inline fun Path . write ( createDirs : Boolean = false, vararg options : OpenOption = emptyArray(), block : ( OutputStream ) -> Unit ) : Unit
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core/java.time.temporal.-temporal/index.html b/docs/build/html/api/net.corda.core/java.time.temporal.-temporal/index.html
new file mode 100644
index 0000000000..3c33201a78
--- /dev/null
+++ b/docs/build/html/api/net.corda.core/java.time.temporal.-temporal/index.html
@@ -0,0 +1,21 @@
+
+
+net.corda.core.java.time.temporal.Temporal -
+
+
+
+net.corda.core / java.time.temporal.Temporal
+
+Extensions for java.time.temporal.Temporal
+
+
+
diff --git a/docs/build/html/api/net.corda.core/java.time.temporal.-temporal/until.html b/docs/build/html/api/net.corda.core/java.time.temporal.-temporal/until.html
new file mode 100644
index 0000000000..014ee5479e
--- /dev/null
+++ b/docs/build/html/api/net.corda.core/java.time.temporal.-temporal/until.html
@@ -0,0 +1,15 @@
+
+
+until -
+
+
+
+net.corda.core / java.time.temporal.Temporal / until
+
+until
+
+infix fun Temporal . until ( endExclusive : Temporal ) : Duration
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core/kotlin.-double/bd.html b/docs/build/html/api/net.corda.core/kotlin.-double/bd.html
new file mode 100644
index 0000000000..d5fb48e85f
--- /dev/null
+++ b/docs/build/html/api/net.corda.core/kotlin.-double/bd.html
@@ -0,0 +1,15 @@
+
+
+bd -
+
+
+
+net.corda.core / kotlin.Double / bd
+
+bd
+
+val Double . bd : BigDecimal
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core/kotlin.-double/index.html b/docs/build/html/api/net.corda.core/kotlin.-double/index.html
new file mode 100644
index 0000000000..ea19c710c7
--- /dev/null
+++ b/docs/build/html/api/net.corda.core/kotlin.-double/index.html
@@ -0,0 +1,21 @@
+
+
+net.corda.core.kotlin.Double -
+
+
+
+net.corda.core / kotlin.Double
+
+Extensions for kotlin.Double
+
+
+
diff --git a/docs/build/html/api/net.corda.core/kotlin.-int/bd.html b/docs/build/html/api/net.corda.core/kotlin.-int/bd.html
new file mode 100644
index 0000000000..809d5a9a40
--- /dev/null
+++ b/docs/build/html/api/net.corda.core/kotlin.-int/bd.html
@@ -0,0 +1,15 @@
+
+
+bd -
+
+
+
+net.corda.core / kotlin.Int / bd
+
+bd
+
+val Int . bd : BigDecimal
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core/kotlin.-int/checked-add.html b/docs/build/html/api/net.corda.core/kotlin.-int/checked-add.html
new file mode 100644
index 0000000000..13e263320f
--- /dev/null
+++ b/docs/build/html/api/net.corda.core/kotlin.-int/checked-add.html
@@ -0,0 +1,16 @@
+
+
+checkedAdd -
+
+
+
+net.corda.core / kotlin.Int / checkedAdd
+
+checkedAdd
+
+infix fun Int . checkedAdd ( b : Int ) : Int
+Like the + operator but throws an exception in case of integer overflow.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core/kotlin.-int/days.html b/docs/build/html/api/net.corda.core/kotlin.-int/days.html
new file mode 100644
index 0000000000..bfccc9dbff
--- /dev/null
+++ b/docs/build/html/api/net.corda.core/kotlin.-int/days.html
@@ -0,0 +1,15 @@
+
+
+days -
+
+
+
+net.corda.core / kotlin.Int / days
+
+days
+
+val Int . days : Duration
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core/kotlin.-int/hours.html b/docs/build/html/api/net.corda.core/kotlin.-int/hours.html
new file mode 100644
index 0000000000..4cfc0dc87a
--- /dev/null
+++ b/docs/build/html/api/net.corda.core/kotlin.-int/hours.html
@@ -0,0 +1,15 @@
+
+
+hours -
+
+
+
+net.corda.core / kotlin.Int / hours
+
+hours
+
+val Int . hours : Duration
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core/kotlin.-int/index.html b/docs/build/html/api/net.corda.core/kotlin.-int/index.html
new file mode 100644
index 0000000000..35ce327a7f
--- /dev/null
+++ b/docs/build/html/api/net.corda.core/kotlin.-int/index.html
@@ -0,0 +1,58 @@
+
+
+net.corda.core.kotlin.Int -
+
+
+
+net.corda.core / kotlin.Int
+
+Extensions for kotlin.Int
+
+
+
diff --git a/docs/build/html/api/net.corda.core/kotlin.-int/millis.html b/docs/build/html/api/net.corda.core/kotlin.-int/millis.html
new file mode 100644
index 0000000000..14e1ad6f5d
--- /dev/null
+++ b/docs/build/html/api/net.corda.core/kotlin.-int/millis.html
@@ -0,0 +1,15 @@
+
+
+millis -
+
+
+
+net.corda.core / kotlin.Int / millis
+
+millis
+
+val Int . millis : Duration
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core/kotlin.-int/minutes.html b/docs/build/html/api/net.corda.core/kotlin.-int/minutes.html
new file mode 100644
index 0000000000..8ffc5c5daa
--- /dev/null
+++ b/docs/build/html/api/net.corda.core/kotlin.-int/minutes.html
@@ -0,0 +1,15 @@
+
+
+minutes -
+
+
+
+net.corda.core / kotlin.Int / minutes
+
+minutes
+
+val Int . minutes : Duration
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core/kotlin.-int/seconds.html b/docs/build/html/api/net.corda.core/kotlin.-int/seconds.html
new file mode 100644
index 0000000000..2d818e7f71
--- /dev/null
+++ b/docs/build/html/api/net.corda.core/kotlin.-int/seconds.html
@@ -0,0 +1,15 @@
+
+
+seconds -
+
+
+
+net.corda.core / kotlin.Int / seconds
+
+seconds
+
+val Int . seconds : Duration
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core/kotlin.-long/bd.html b/docs/build/html/api/net.corda.core/kotlin.-long/bd.html
new file mode 100644
index 0000000000..294066423f
--- /dev/null
+++ b/docs/build/html/api/net.corda.core/kotlin.-long/bd.html
@@ -0,0 +1,15 @@
+
+
+bd -
+
+
+
+net.corda.core / kotlin.Long / bd
+
+bd
+
+val Long . bd : BigDecimal
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core/kotlin.-long/checked-add.html b/docs/build/html/api/net.corda.core/kotlin.-long/checked-add.html
new file mode 100644
index 0000000000..f5867519a6
--- /dev/null
+++ b/docs/build/html/api/net.corda.core/kotlin.-long/checked-add.html
@@ -0,0 +1,16 @@
+
+
+checkedAdd -
+
+
+
+net.corda.core / kotlin.Long / checkedAdd
+
+checkedAdd
+
+infix fun Long . checkedAdd ( b : Long ) : Long
+Like the + operator but throws an exception in case of integer overflow.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core/kotlin.-long/index.html b/docs/build/html/api/net.corda.core/kotlin.-long/index.html
new file mode 100644
index 0000000000..2224e3abc6
--- /dev/null
+++ b/docs/build/html/api/net.corda.core/kotlin.-long/index.html
@@ -0,0 +1,28 @@
+
+
+net.corda.core.kotlin.Long -
+
+
+
+net.corda.core / kotlin.Long
+
+Extensions for kotlin.Long
+
+
+
+
+bd
+
+val Long . bd : BigDecimal
+
+
+
+checkedAdd
+
+infix fun Long . checkedAdd ( b : Long ) : Long
Like the + operator but throws an exception in case of integer overflow.
+
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core/kotlin.-string/abbreviate.html b/docs/build/html/api/net.corda.core/kotlin.-string/abbreviate.html
new file mode 100644
index 0000000000..43dc701e10
--- /dev/null
+++ b/docs/build/html/api/net.corda.core/kotlin.-string/abbreviate.html
@@ -0,0 +1,15 @@
+
+
+abbreviate -
+
+
+
+net.corda.core / kotlin.String / abbreviate
+
+abbreviate
+
+fun String . abbreviate ( maxWidth : Int ) : String
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core/kotlin.-string/bd.html b/docs/build/html/api/net.corda.core/kotlin.-string/bd.html
new file mode 100644
index 0000000000..384fcbc8a9
--- /dev/null
+++ b/docs/build/html/api/net.corda.core/kotlin.-string/bd.html
@@ -0,0 +1,15 @@
+
+
+bd -
+
+
+
+net.corda.core / kotlin.String / bd
+
+bd
+
+val String . bd : BigDecimal
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core/kotlin.-string/index.html b/docs/build/html/api/net.corda.core/kotlin.-string/index.html
new file mode 100644
index 0000000000..f2a65c539e
--- /dev/null
+++ b/docs/build/html/api/net.corda.core/kotlin.-string/index.html
@@ -0,0 +1,27 @@
+
+
+net.corda.core.kotlin.String -
+
+
+
+net.corda.core / kotlin.String
+
+Extensions for kotlin.String
+
+
+
+
+abbreviate
+
+fun String . abbreviate ( maxWidth : Int ) : String
+
+
+
+bd
+
+val String . bd : BigDecimal
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core/kotlin.-throwable/index.html b/docs/build/html/api/net.corda.core/kotlin.-throwable/index.html
new file mode 100644
index 0000000000..a37c92afaf
--- /dev/null
+++ b/docs/build/html/api/net.corda.core/kotlin.-throwable/index.html
@@ -0,0 +1,21 @@
+
+
+net.corda.core.kotlin.Throwable -
+
+
+
+net.corda.core / kotlin.Throwable
+
+Extensions for kotlin.Throwable
+
+
+
+
+rootCause
+
+val Throwable . rootCause : Throwable
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core/kotlin.-throwable/root-cause.html b/docs/build/html/api/net.corda.core/kotlin.-throwable/root-cause.html
new file mode 100644
index 0000000000..48bf011078
--- /dev/null
+++ b/docs/build/html/api/net.corda.core/kotlin.-throwable/root-cause.html
@@ -0,0 +1,15 @@
+
+
+rootCause -
+
+
+
+net.corda.core / kotlin.Throwable / rootCause
+
+rootCause
+
+val Throwable . rootCause : Throwable
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core/kotlin.collections.-iterable/index.html b/docs/build/html/api/net.corda.core/kotlin.collections.-iterable/index.html
new file mode 100644
index 0000000000..ed679b06c7
--- /dev/null
+++ b/docs/build/html/api/net.corda.core/kotlin.collections.-iterable/index.html
@@ -0,0 +1,31 @@
+
+
+net.corda.core.kotlin.collections.Iterable -
+
+
+
+net.corda.core / kotlin.collections.Iterable
+
+Extensions for kotlin.collections.Iterable
+
+
+
+
+noneOrSingle
+
+fun < T > Iterable < T > . noneOrSingle ( predicate : ( T ) -> Boolean ) : T ?
Returns the single element matching the given predicate , or null
if element was not found,
+or throws if more than one element was found.
+fun < T > Iterable < T > . noneOrSingle ( ) : T ?
Returns single element, or null
if element was not found, or throws if more than one element was found.
+
+
+
+
+sum
+
+fun Iterable < BigDecimal > . sum ( ) : BigDecimal
Allows summing big decimals that are in iterable collections
+
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core/kotlin.collections.-iterable/none-or-single.html b/docs/build/html/api/net.corda.core/kotlin.collections.-iterable/none-or-single.html
new file mode 100644
index 0000000000..190906e590
--- /dev/null
+++ b/docs/build/html/api/net.corda.core/kotlin.collections.-iterable/none-or-single.html
@@ -0,0 +1,22 @@
+
+
+noneOrSingle -
+
+
+
+net.corda.core / kotlin.collections.Iterable / noneOrSingle
+
+noneOrSingle
+
+fun < T > Iterable < T > . noneOrSingle ( predicate : ( T ) -> Boolean ) : T ?
+Returns the single element matching the given predicate , or null
if element was not found,
+or throws if more than one element was found.
+
+
+
+fun < T > Iterable < T > . noneOrSingle ( ) : T ?
+Returns single element, or null
if element was not found, or throws if more than one element was found.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core/kotlin.collections.-iterable/sum.html b/docs/build/html/api/net.corda.core/kotlin.collections.-iterable/sum.html
new file mode 100644
index 0000000000..46fb6ca67f
--- /dev/null
+++ b/docs/build/html/api/net.corda.core/kotlin.collections.-iterable/sum.html
@@ -0,0 +1,16 @@
+
+
+sum -
+
+
+
+net.corda.core / kotlin.collections.Iterable / sum
+
+sum
+
+fun Iterable < BigDecimal > . sum ( ) : BigDecimal
+Allows summing big decimals that are in iterable collections
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core/kotlin.collections.-list/index-of-or-throw.html b/docs/build/html/api/net.corda.core/kotlin.collections.-list/index-of-or-throw.html
new file mode 100644
index 0000000000..fb7d9f4616
--- /dev/null
+++ b/docs/build/html/api/net.corda.core/kotlin.collections.-list/index-of-or-throw.html
@@ -0,0 +1,16 @@
+
+
+indexOfOrThrow -
+
+
+
+net.corda.core / kotlin.collections.List / indexOfOrThrow
+
+indexOfOrThrow
+
+fun < T > List < T > . indexOfOrThrow ( item : T ) : Int
+Returns the index of the given item or throws IllegalArgumentException if not found.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core/kotlin.collections.-list/index.html b/docs/build/html/api/net.corda.core/kotlin.collections.-list/index.html
new file mode 100644
index 0000000000..7722e5a3c3
--- /dev/null
+++ b/docs/build/html/api/net.corda.core/kotlin.collections.-list/index.html
@@ -0,0 +1,22 @@
+
+
+net.corda.core.kotlin.collections.List -
+
+
+
+net.corda.core / kotlin.collections.List
+
+Extensions for kotlin.collections.List
+
+
+
diff --git a/docs/build/html/api/net.corda.core/log-elapsed-time.html b/docs/build/html/api/net.corda.core/log-elapsed-time.html
new file mode 100644
index 0000000000..11d0012ff4
--- /dev/null
+++ b/docs/build/html/api/net.corda.core/log-elapsed-time.html
@@ -0,0 +1,15 @@
+
+
+logElapsedTime -
+
+
+
+net.corda.core / logElapsedTime
+
+logElapsedTime
+
+fun < T > logElapsedTime ( label : String , logger : <ERROR CLASS> ? = null, body : ( ) -> T ) : T
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core/map.html b/docs/build/html/api/net.corda.core/map.html
new file mode 100644
index 0000000000..0169074397
--- /dev/null
+++ b/docs/build/html/api/net.corda.core/map.html
@@ -0,0 +1,15 @@
+
+
+map -
+
+
+
+net.corda.core / map
+
+map
+
+infix fun < F , T > <ERROR CLASS> < F > . map ( mapper : ( F ) -> T ) : <ERROR CLASS> < T >
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core/random63-bit-value.html b/docs/build/html/api/net.corda.core/random63-bit-value.html
new file mode 100644
index 0000000000..efcfec381d
--- /dev/null
+++ b/docs/build/html/api/net.corda.core/random63-bit-value.html
@@ -0,0 +1,17 @@
+
+
+random63BitValue -
+
+
+
+net.corda.core / random63BitValue
+
+random63BitValue
+
+fun random63BitValue ( ) : Long
+Returns a random positive long generated using a secure RNG. This function sacrifies a bit of entropy in order to
+avoid potential bugs where the value is used in a context where negative numbers are not expected.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core/success.html b/docs/build/html/api/net.corda.core/success.html
new file mode 100644
index 0000000000..6752ec48b7
--- /dev/null
+++ b/docs/build/html/api/net.corda.core/success.html
@@ -0,0 +1,17 @@
+
+
+success -
+
+
+
+net.corda.core / success
+
+success
+
+fun < T > <ERROR CLASS> < T > . success ( executor : Executor , body : ( T ) -> Unit ) : <ERROR CLASS>
+
+infix fun < T > <ERROR CLASS> < T > . success ( body : ( T ) -> Unit ) : <ERROR CLASS> < T >
+
+
+
+
diff --git a/docs/build/html/api/net.corda.core/then.html b/docs/build/html/api/net.corda.core/then.html
new file mode 100644
index 0000000000..59d787e887
--- /dev/null
+++ b/docs/build/html/api/net.corda.core/then.html
@@ -0,0 +1,17 @@
+
+
+then -
+
+
+
+net.corda.core / then
+
+then
+
+fun < T > <ERROR CLASS> < T > . then ( executor : Executor , body : ( ) -> Unit ) : <ERROR CLASS>
+
+infix fun < T > <ERROR CLASS> < T > . then ( body : ( ) -> Unit ) : <ERROR CLASS> < T >
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.api/-a-p-i-server/build-transaction.html b/docs/build/html/api/net.corda.node.api/-a-p-i-server/build-transaction.html
new file mode 100644
index 0000000000..e22243bf44
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.api/-a-p-i-server/build-transaction.html
@@ -0,0 +1,18 @@
+
+
+APIServer.buildTransaction -
+
+
+
+net.corda.node.api / APIServer / buildTransaction
+
+buildTransaction
+
+abstract fun buildTransaction ( type : ContractDefRef , steps : List < TransactionBuildStep > ) : SerializedBytes < WireTransaction >
+TransactionBuildSteps would be invocations of contract.generateXXX() methods that all share a common TransactionBuilder
+and a common contract type (e.g. Cash or CommercialPaper)
+which would automatically be passed as the first argument (wed need that to be a criteria/pattern of the generateXXX methods).
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.api/-a-p-i-server/commit-transaction.html b/docs/build/html/api/net.corda.node.api/-a-p-i-server/commit-transaction.html
new file mode 100644
index 0000000000..984b698db0
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.api/-a-p-i-server/commit-transaction.html
@@ -0,0 +1,17 @@
+
+
+APIServer.commitTransaction -
+
+
+
+net.corda.node.api / APIServer / commitTransaction
+
+commitTransaction
+
+abstract fun commitTransaction ( tx : SerializedBytes < WireTransaction > , signatures : List < WithKey > ) : SecureHash
+Attempt to commit transaction (returned from build transaction) with the necessary signatures for that to be
+successful, otherwise exception is thrown.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.api/-a-p-i-server/fetch-protocols-requiring-attention.html b/docs/build/html/api/net.corda.node.api/-a-p-i-server/fetch-protocols-requiring-attention.html
new file mode 100644
index 0000000000..7be4269a35
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.api/-a-p-i-server/fetch-protocols-requiring-attention.html
@@ -0,0 +1,16 @@
+
+
+APIServer.fetchProtocolsRequiringAttention -
+
+
+
+net.corda.node.api / APIServer / fetchProtocolsRequiringAttention
+
+fetchProtocolsRequiringAttention
+
+abstract fun fetchProtocolsRequiringAttention ( query : StatesQuery ) : Map < StateRef , ProtocolRequiringAttention >
+Fetch protocols that require a response to some prompt/question by a human (on the "bank" side).
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.api/-a-p-i-server/fetch-states.html b/docs/build/html/api/net.corda.node.api/-a-p-i-server/fetch-states.html
new file mode 100644
index 0000000000..a67ff6070b
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.api/-a-p-i-server/fetch-states.html
@@ -0,0 +1,15 @@
+
+
+APIServer.fetchStates -
+
+
+
+net.corda.node.api / APIServer / fetchStates
+
+fetchStates
+
+abstract fun fetchStates ( states : List < StateRef > ) : Map < StateRef , TransactionState < ContractState > ? >
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.api/-a-p-i-server/fetch-transactions.html b/docs/build/html/api/net.corda.node.api/-a-p-i-server/fetch-transactions.html
new file mode 100644
index 0000000000..9a3a6c6c5c
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.api/-a-p-i-server/fetch-transactions.html
@@ -0,0 +1,21 @@
+
+
+APIServer.fetchTransactions -
+
+
+
+net.corda.node.api / APIServer / fetchTransactions
+
+fetchTransactions
+
+abstract fun fetchTransactions ( txs : List < SecureHash > ) : Map < SecureHash , SignedTransaction ? >
+Query for immutable transactions (results can be cached indefinitely by their id/hash).
+Parameters
+
+txs
- The hashes (from StateRef.txhash returned from queryStates ) you would like full transactions for.
+Return
+null values indicate missing transactions from the requested list.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.api/-a-p-i-server/generate-transaction-signature.html b/docs/build/html/api/net.corda.node.api/-a-p-i-server/generate-transaction-signature.html
new file mode 100644
index 0000000000..905e065a92
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.api/-a-p-i-server/generate-transaction-signature.html
@@ -0,0 +1,16 @@
+
+
+APIServer.generateTransactionSignature -
+
+
+
+net.corda.node.api / APIServer / generateTransactionSignature
+
+generateTransactionSignature
+
+abstract fun generateTransactionSignature ( tx : SerializedBytes < WireTransaction > ) : WithKey
+Generate a signature for this transaction signed by us.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.api/-a-p-i-server/index.html b/docs/build/html/api/net.corda.node.api/-a-p-i-server/index.html
new file mode 100644
index 0000000000..6aff0621cc
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.api/-a-p-i-server/index.html
@@ -0,0 +1,125 @@
+
+
+APIServer -
+
+
+
+net.corda.node.api / APIServer
+
+APIServer
+interface APIServer
+Top level interface to external interaction with the distributed ledger.
+Wherever a list is returned by a fetchXXX method that corresponds with an input list, that output list will have optional elements
+where a null indicates "missing" and the elements returned will be in the order corresponding with the input list.
+
+
+
+
+Functions
+
+
+
+
+buildTransaction
+
+abstract fun buildTransaction ( type : ContractDefRef , steps : List < TransactionBuildStep > ) : SerializedBytes < WireTransaction >
TransactionBuildSteps would be invocations of contract.generateXXX() methods that all share a common TransactionBuilder
+and a common contract type (e.g. Cash or CommercialPaper)
+which would automatically be passed as the first argument (wed need that to be a criteria/pattern of the generateXXX methods).
+
+
+
+
+commitTransaction
+
+abstract fun commitTransaction ( tx : SerializedBytes < WireTransaction > , signatures : List < WithKey > ) : SecureHash
Attempt to commit transaction (returned from build transaction) with the necessary signatures for that to be
+successful, otherwise exception is thrown.
+
+
+
+
+fetchProtocolsRequiringAttention
+
+abstract fun fetchProtocolsRequiringAttention ( query : StatesQuery ) : Map < StateRef , ProtocolRequiringAttention >
Fetch protocols that require a response to some prompt/question by a human (on the "bank" side).
+
+
+
+
+fetchStates
+
+abstract fun fetchStates ( states : List < StateRef > ) : Map < StateRef , TransactionState < ContractState > ? >
+
+
+
+fetchTransactions
+
+abstract fun fetchTransactions ( txs : List < SecureHash > ) : Map < SecureHash , SignedTransaction ? >
Query for immutable transactions (results can be cached indefinitely by their id/hash).
+
+
+
+
+generateTransactionSignature
+
+abstract fun generateTransactionSignature ( tx : SerializedBytes < WireTransaction > ) : WithKey
Generate a signature for this transaction signed by us.
+
+
+
+
+info
+
+abstract fun info ( ) : NodeInfo
Report this nodes configuration and identities.
+Currently tunnels the NodeInfo as an encoding of the Kryo serialised form.
+TODO this functionality should be available via the RPC
+
+
+
+
+invokeProtocolSync
+
+abstract fun invokeProtocolSync ( type : ProtocolRef , args : Map < String , Any ? > ) : Any ?
This method would not return until the protocol is finished (hence the "Sync").
+
+
+
+
+provideProtocolResponse
+
+abstract fun provideProtocolResponse ( protocol : ProtocolInstanceRef , choice : SecureHash , args : Map < String , Any ? > ) : Unit
Provide the response that a protocol is waiting for.
+
+
+
+
+queryStates
+
+abstract fun queryStates ( query : StatesQuery ) : List < StateRef >
Query your "local" states (containing only outputs involving you) and return the hashes & indexes associated with them
+to probably be later inflated by fetchLedgerTransactions() or fetchStates() although because immutable you can cache them
+to avoid calling fetchLedgerTransactions() many times.
+
+
+
+
+serverTime
+
+abstract fun serverTime ( ) : LocalDateTime
Report current UTC time as understood by the platform.
+
+
+
+
+status
+
+abstract fun status ( ) : <ERROR CLASS>
Report whether this node is started up or not.
+
+
+
+
+Inheritors
+
+
+
diff --git a/docs/build/html/api/net.corda.node.api/-a-p-i-server/info.html b/docs/build/html/api/net.corda.node.api/-a-p-i-server/info.html
new file mode 100644
index 0000000000..fc2d9c8702
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.api/-a-p-i-server/info.html
@@ -0,0 +1,18 @@
+
+
+APIServer.info -
+
+
+
+net.corda.node.api / APIServer / info
+
+info
+
+abstract fun info ( ) : NodeInfo
+Report this nodes configuration and identities.
+Currently tunnels the NodeInfo as an encoding of the Kryo serialised form.
+TODO this functionality should be available via the RPC
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.api/-a-p-i-server/invoke-protocol-sync.html b/docs/build/html/api/net.corda.node.api/-a-p-i-server/invoke-protocol-sync.html
new file mode 100644
index 0000000000..b834a39b26
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.api/-a-p-i-server/invoke-protocol-sync.html
@@ -0,0 +1,21 @@
+
+
+APIServer.invokeProtocolSync -
+
+
+
+net.corda.node.api / APIServer / invokeProtocolSync
+
+invokeProtocolSync
+
+abstract fun invokeProtocolSync ( type : ProtocolRef , args : Map < String , Any ? > ) : Any ?
+This method would not return until the protocol is finished (hence the "Sync").
+Longer term wed add an Async version that returns some kind of ProtocolInvocationRef that could be queried and
+would appear on some kind of event message that is broadcast informing of progress.
+Will throw exception if protocol fails.
+
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.api/-a-p-i-server/provide-protocol-response.html b/docs/build/html/api/net.corda.node.api/-a-p-i-server/provide-protocol-response.html
new file mode 100644
index 0000000000..5c046157cd
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.api/-a-p-i-server/provide-protocol-response.html
@@ -0,0 +1,28 @@
+
+
+APIServer.provideProtocolResponse -
+
+
+
+net.corda.node.api / APIServer / provideProtocolResponse
+
+provideProtocolResponse
+
+abstract fun provideProtocolResponse ( protocol : ProtocolInstanceRef , choice : SecureHash , args : Map < String , Any ? > ) : Unit
+Provide the response that a protocol is waiting for.
+Parameters
+
+protocol
- Should refer to a previously supplied ProtocolRequiringAttention.
+
+
+stepId
- Which step of the protocol are we referring too.
+
+
+choice
- Should be one of the choices presented in the ProtocolRequiringAttention.
+
+
+args
- Any arguments required.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.api/-a-p-i-server/query-states.html b/docs/build/html/api/net.corda.node.api/-a-p-i-server/query-states.html
new file mode 100644
index 0000000000..366238932a
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.api/-a-p-i-server/query-states.html
@@ -0,0 +1,23 @@
+
+
+APIServer.queryStates -
+
+
+
+net.corda.node.api / APIServer / queryStates
+
+queryStates
+
+abstract fun queryStates ( query : StatesQuery ) : List < StateRef >
+Query your "local" states (containing only outputs involving you) and return the hashes & indexes associated with them
+to probably be later inflated by fetchLedgerTransactions() or fetchStates() although because immutable you can cache them
+to avoid calling fetchLedgerTransactions() many times.
+Parameters
+
+query
- Some "where clause" like expression.
+Return
+Zero or more matching States.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.api/-a-p-i-server/server-time.html b/docs/build/html/api/net.corda.node.api/-a-p-i-server/server-time.html
new file mode 100644
index 0000000000..082ab5e47e
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.api/-a-p-i-server/server-time.html
@@ -0,0 +1,16 @@
+
+
+APIServer.serverTime -
+
+
+
+net.corda.node.api / APIServer / serverTime
+
+serverTime
+
+abstract fun serverTime ( ) : LocalDateTime
+Report current UTC time as understood by the platform.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.api/-a-p-i-server/status.html b/docs/build/html/api/net.corda.node.api/-a-p-i-server/status.html
new file mode 100644
index 0000000000..1e749f7bc1
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.api/-a-p-i-server/status.html
@@ -0,0 +1,16 @@
+
+
+APIServer.status -
+
+
+
+net.corda.node.api / APIServer / status
+
+status
+
+abstract fun status ( ) : <ERROR CLASS>
+Report whether this node is started up or not.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.api/-contract-class-ref/-init-.html b/docs/build/html/api/net.corda.node.api/-contract-class-ref/-init-.html
new file mode 100644
index 0000000000..f08eca4eb4
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.api/-contract-class-ref/-init-.html
@@ -0,0 +1,14 @@
+
+
+ContractClassRef. -
+
+
+
+net.corda.node.api / ContractClassRef / <init>
+
+<init>
+ContractClassRef ( className : String )
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.api/-contract-class-ref/class-name.html b/docs/build/html/api/net.corda.node.api/-contract-class-ref/class-name.html
new file mode 100644
index 0000000000..b795a98d9e
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.api/-contract-class-ref/class-name.html
@@ -0,0 +1,15 @@
+
+
+ContractClassRef.className -
+
+
+
+net.corda.node.api / ContractClassRef / className
+
+className
+
+val className : String
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.api/-contract-class-ref/index.html b/docs/build/html/api/net.corda.node.api/-contract-class-ref/index.html
new file mode 100644
index 0000000000..6a07b181e5
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.api/-contract-class-ref/index.html
@@ -0,0 +1,36 @@
+
+
+ContractClassRef -
+
+
+
+net.corda.node.api / ContractClassRef
+
+ContractClassRef
+data class ContractClassRef : ContractDefRef
+
+
+Constructors
+
+
+
+
+<init>
+
+ContractClassRef ( className : String )
+
+
+
+Properties
+
+
+
+
+className
+
+val className : String
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.api/-contract-def-ref.html b/docs/build/html/api/net.corda.node.api/-contract-def-ref.html
new file mode 100644
index 0000000000..dba9a47cc3
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.api/-contract-def-ref.html
@@ -0,0 +1,32 @@
+
+
+ContractDefRef -
+
+
+
+net.corda.node.api / ContractDefRef
+
+ContractDefRef
+interface ContractDefRef
+Encapsulates the contract type. e.g. Cash or CommercialPaper etc.
+
+
+Inheritors
+
+
+
diff --git a/docs/build/html/api/net.corda.node.api/-contract-ledger-ref/-init-.html b/docs/build/html/api/net.corda.node.api/-contract-ledger-ref/-init-.html
new file mode 100644
index 0000000000..eda913fda4
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.api/-contract-ledger-ref/-init-.html
@@ -0,0 +1,14 @@
+
+
+ContractLedgerRef. -
+
+
+
+net.corda.node.api / ContractLedgerRef / <init>
+
+<init>
+ContractLedgerRef ( hash : SecureHash )
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.api/-contract-ledger-ref/hash.html b/docs/build/html/api/net.corda.node.api/-contract-ledger-ref/hash.html
new file mode 100644
index 0000000000..7d70c15508
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.api/-contract-ledger-ref/hash.html
@@ -0,0 +1,15 @@
+
+
+ContractLedgerRef.hash -
+
+
+
+net.corda.node.api / ContractLedgerRef / hash
+
+hash
+
+val hash : SecureHash
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.api/-contract-ledger-ref/index.html b/docs/build/html/api/net.corda.node.api/-contract-ledger-ref/index.html
new file mode 100644
index 0000000000..08b863290d
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.api/-contract-ledger-ref/index.html
@@ -0,0 +1,36 @@
+
+
+ContractLedgerRef -
+
+
+
+net.corda.node.api / ContractLedgerRef
+
+ContractLedgerRef
+data class ContractLedgerRef : ContractDefRef
+
+
+Constructors
+
+Properties
+
+
+
diff --git a/docs/build/html/api/net.corda.node.api/-protocol-class-ref/-init-.html b/docs/build/html/api/net.corda.node.api/-protocol-class-ref/-init-.html
new file mode 100644
index 0000000000..04b34ef4e5
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.api/-protocol-class-ref/-init-.html
@@ -0,0 +1,14 @@
+
+
+ProtocolClassRef. -
+
+
+
+net.corda.node.api / ProtocolClassRef / <init>
+
+<init>
+ProtocolClassRef ( className : String )
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.api/-protocol-class-ref/class-name.html b/docs/build/html/api/net.corda.node.api/-protocol-class-ref/class-name.html
new file mode 100644
index 0000000000..c5ded534ac
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.api/-protocol-class-ref/class-name.html
@@ -0,0 +1,15 @@
+
+
+ProtocolClassRef.className -
+
+
+
+net.corda.node.api / ProtocolClassRef / className
+
+className
+
+val className : String
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.api/-protocol-class-ref/index.html b/docs/build/html/api/net.corda.node.api/-protocol-class-ref/index.html
new file mode 100644
index 0000000000..e0eac6be6c
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.api/-protocol-class-ref/index.html
@@ -0,0 +1,36 @@
+
+
+ProtocolClassRef -
+
+
+
+net.corda.node.api / ProtocolClassRef
+
+ProtocolClassRef
+data class ProtocolClassRef : ProtocolRef
+
+
+Constructors
+
+
+
+
+<init>
+
+ProtocolClassRef ( className : String )
+
+
+
+Properties
+
+
+
+
+className
+
+val className : String
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.api/-protocol-instance-ref/-init-.html b/docs/build/html/api/net.corda.node.api/-protocol-instance-ref/-init-.html
new file mode 100644
index 0000000000..ebef2d73d9
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.api/-protocol-instance-ref/-init-.html
@@ -0,0 +1,14 @@
+
+
+ProtocolInstanceRef. -
+
+
+
+net.corda.node.api / ProtocolInstanceRef / <init>
+
+<init>
+ProtocolInstanceRef ( protocolInstance : SecureHash , protocolClass : ProtocolClassRef , protocolStepId : String )
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.api/-protocol-instance-ref/index.html b/docs/build/html/api/net.corda.node.api/-protocol-instance-ref/index.html
new file mode 100644
index 0000000000..9fee1af75d
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.api/-protocol-instance-ref/index.html
@@ -0,0 +1,48 @@
+
+
+ProtocolInstanceRef -
+
+
+
+net.corda.node.api / ProtocolInstanceRef
+
+ProtocolInstanceRef
+data class ProtocolInstanceRef
+
+
+Constructors
+
+Properties
+
+
+
diff --git a/docs/build/html/api/net.corda.node.api/-protocol-instance-ref/protocol-class.html b/docs/build/html/api/net.corda.node.api/-protocol-instance-ref/protocol-class.html
new file mode 100644
index 0000000000..c8dc4cc4a2
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.api/-protocol-instance-ref/protocol-class.html
@@ -0,0 +1,15 @@
+
+
+ProtocolInstanceRef.protocolClass -
+
+
+
+net.corda.node.api / ProtocolInstanceRef / protocolClass
+
+protocolClass
+
+val protocolClass : ProtocolClassRef
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.api/-protocol-instance-ref/protocol-instance.html b/docs/build/html/api/net.corda.node.api/-protocol-instance-ref/protocol-instance.html
new file mode 100644
index 0000000000..102a11fcc0
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.api/-protocol-instance-ref/protocol-instance.html
@@ -0,0 +1,15 @@
+
+
+ProtocolInstanceRef.protocolInstance -
+
+
+
+net.corda.node.api / ProtocolInstanceRef / protocolInstance
+
+protocolInstance
+
+val protocolInstance : SecureHash
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.api/-protocol-instance-ref/protocol-step-id.html b/docs/build/html/api/net.corda.node.api/-protocol-instance-ref/protocol-step-id.html
new file mode 100644
index 0000000000..cbda4acaa8
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.api/-protocol-instance-ref/protocol-step-id.html
@@ -0,0 +1,15 @@
+
+
+ProtocolInstanceRef.protocolStepId -
+
+
+
+net.corda.node.api / ProtocolInstanceRef / protocolStepId
+
+protocolStepId
+
+val protocolStepId : String
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.api/-protocol-ref.html b/docs/build/html/api/net.corda.node.api/-protocol-ref.html
new file mode 100644
index 0000000000..e1a79f0218
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.api/-protocol-ref.html
@@ -0,0 +1,26 @@
+
+
+ProtocolRef -
+
+
+
+net.corda.node.api / ProtocolRef
+
+ProtocolRef
+interface ProtocolRef
+Encapsulates the protocol to be instantiated. e.g. TwoPartyTradeProtocol.Buyer.
+
+
+Inheritors
+
+
+
diff --git a/docs/build/html/api/net.corda.node.api/-protocol-requiring-attention/-init-.html b/docs/build/html/api/net.corda.node.api/-protocol-requiring-attention/-init-.html
new file mode 100644
index 0000000000..8f6b1e0083
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.api/-protocol-requiring-attention/-init-.html
@@ -0,0 +1,15 @@
+
+
+ProtocolRequiringAttention. -
+
+
+
+net.corda.node.api / ProtocolRequiringAttention / <init>
+
+<init>
+ProtocolRequiringAttention ( ref : ProtocolInstanceRef , prompt : String , choiceIdsToMessages : Map < SecureHash , String > , dueBy : Instant )
+Thinking that Instant is OK for short lived protocol deadlines.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.api/-protocol-requiring-attention/choice-ids-to-messages.html b/docs/build/html/api/net.corda.node.api/-protocol-requiring-attention/choice-ids-to-messages.html
new file mode 100644
index 0000000000..bf1073d200
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.api/-protocol-requiring-attention/choice-ids-to-messages.html
@@ -0,0 +1,15 @@
+
+
+ProtocolRequiringAttention.choiceIdsToMessages -
+
+
+
+net.corda.node.api / ProtocolRequiringAttention / choiceIdsToMessages
+
+choiceIdsToMessages
+
+val choiceIdsToMessages : Map < SecureHash , String >
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.api/-protocol-requiring-attention/due-by.html b/docs/build/html/api/net.corda.node.api/-protocol-requiring-attention/due-by.html
new file mode 100644
index 0000000000..2f977c9c02
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.api/-protocol-requiring-attention/due-by.html
@@ -0,0 +1,15 @@
+
+
+ProtocolRequiringAttention.dueBy -
+
+
+
+net.corda.node.api / ProtocolRequiringAttention / dueBy
+
+dueBy
+
+val dueBy : Instant
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.api/-protocol-requiring-attention/index.html b/docs/build/html/api/net.corda.node.api/-protocol-requiring-attention/index.html
new file mode 100644
index 0000000000..f4eb91e3e9
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.api/-protocol-requiring-attention/index.html
@@ -0,0 +1,56 @@
+
+
+ProtocolRequiringAttention -
+
+
+
+net.corda.node.api / ProtocolRequiringAttention
+
+ProtocolRequiringAttention
+data class ProtocolRequiringAttention
+Thinking that Instant is OK for short lived protocol deadlines.
+
+
+Constructors
+
+
+
+
+<init>
+
+ProtocolRequiringAttention ( ref : ProtocolInstanceRef , prompt : String , choiceIdsToMessages : Map < SecureHash , String > , dueBy : Instant )
Thinking that Instant is OK for short lived protocol deadlines.
+
+
+
+
+Properties
+
+
+
diff --git a/docs/build/html/api/net.corda.node.api/-protocol-requiring-attention/prompt.html b/docs/build/html/api/net.corda.node.api/-protocol-requiring-attention/prompt.html
new file mode 100644
index 0000000000..8158320a93
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.api/-protocol-requiring-attention/prompt.html
@@ -0,0 +1,15 @@
+
+
+ProtocolRequiringAttention.prompt -
+
+
+
+net.corda.node.api / ProtocolRequiringAttention / prompt
+
+prompt
+
+val prompt : String
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.api/-protocol-requiring-attention/ref.html b/docs/build/html/api/net.corda.node.api/-protocol-requiring-attention/ref.html
new file mode 100644
index 0000000000..595dc30d6d
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.api/-protocol-requiring-attention/ref.html
@@ -0,0 +1,15 @@
+
+
+ProtocolRequiringAttention.ref -
+
+
+
+net.corda.node.api / ProtocolRequiringAttention / ref
+
+ref
+
+val ref : ProtocolInstanceRef
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.api/-states-query/-criteria/-all-deals.html b/docs/build/html/api/net.corda.node.api/-states-query/-criteria/-all-deals.html
new file mode 100644
index 0000000000..49d8061e2c
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.api/-states-query/-criteria/-all-deals.html
@@ -0,0 +1,14 @@
+
+
+StatesQuery.Criteria.AllDeals -
+
+
+
+net.corda.node.api / StatesQuery / Criteria / AllDeals
+
+AllDeals
+object AllDeals : Criteria
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.api/-states-query/-criteria/-deal/-init-.html b/docs/build/html/api/net.corda.node.api/-states-query/-criteria/-deal/-init-.html
new file mode 100644
index 0000000000..e5565796ac
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.api/-states-query/-criteria/-deal/-init-.html
@@ -0,0 +1,14 @@
+
+
+StatesQuery.Criteria.Deal. -
+
+
+
+net.corda.node.api / StatesQuery / Criteria / Deal / <init>
+
+<init>
+Deal ( ref : String )
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.api/-states-query/-criteria/-deal/index.html b/docs/build/html/api/net.corda.node.api/-states-query/-criteria/-deal/index.html
new file mode 100644
index 0000000000..8f9c0e0747
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.api/-states-query/-criteria/-deal/index.html
@@ -0,0 +1,36 @@
+
+
+StatesQuery.Criteria.Deal -
+
+
+
+net.corda.node.api / StatesQuery / Criteria / Deal
+
+Deal
+data class Deal : Criteria
+
+
+Constructors
+
+
+
+
+<init>
+
+Deal ( ref : String )
+
+
+
+Properties
+
+
+
+
+ref
+
+val ref : String
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.api/-states-query/-criteria/-deal/ref.html b/docs/build/html/api/net.corda.node.api/-states-query/-criteria/-deal/ref.html
new file mode 100644
index 0000000000..5e203cfab9
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.api/-states-query/-criteria/-deal/ref.html
@@ -0,0 +1,15 @@
+
+
+StatesQuery.Criteria.Deal.ref -
+
+
+
+net.corda.node.api / StatesQuery / Criteria / Deal / ref
+
+ref
+
+val ref : String
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.api/-states-query/-criteria/index.html b/docs/build/html/api/net.corda.node.api/-states-query/-criteria/index.html
new file mode 100644
index 0000000000..0f1acf714a
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.api/-states-query/-criteria/index.html
@@ -0,0 +1,48 @@
+
+
+StatesQuery.Criteria -
+
+
+
+net.corda.node.api / StatesQuery / Criteria
+
+Criteria
+interface Criteria
+
+
+Types
+
+
+
+
+AllDeals
+
+object AllDeals : Criteria
+
+
+
+Deal
+
+data class Deal : Criteria
+
+
+
+Inheritors
+
+
+
+
+AllDeals
+
+object AllDeals : Criteria
+
+
+
+Deal
+
+data class Deal : Criteria
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.api/-states-query/-selection/-init-.html b/docs/build/html/api/net.corda.node.api/-states-query/-selection/-init-.html
new file mode 100644
index 0000000000..8fdfc369cd
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.api/-states-query/-selection/-init-.html
@@ -0,0 +1,14 @@
+
+
+StatesQuery.Selection. -
+
+
+
+net.corda.node.api / StatesQuery / Selection / <init>
+
+<init>
+Selection ( criteria : Criteria )
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.api/-states-query/-selection/criteria.html b/docs/build/html/api/net.corda.node.api/-states-query/-selection/criteria.html
new file mode 100644
index 0000000000..fdf62c9f30
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.api/-states-query/-selection/criteria.html
@@ -0,0 +1,15 @@
+
+
+StatesQuery.Selection.criteria -
+
+
+
+net.corda.node.api / StatesQuery / Selection / criteria
+
+criteria
+
+val criteria : Criteria
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.api/-states-query/-selection/index.html b/docs/build/html/api/net.corda.node.api/-states-query/-selection/index.html
new file mode 100644
index 0000000000..f0c3f9cc02
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.api/-states-query/-selection/index.html
@@ -0,0 +1,36 @@
+
+
+StatesQuery.Selection -
+
+
+
+net.corda.node.api / StatesQuery / Selection
+
+Selection
+data class Selection : StatesQuery
+
+
+Constructors
+
+Properties
+
+
+
diff --git a/docs/build/html/api/net.corda.node.api/-states-query/index.html b/docs/build/html/api/net.corda.node.api/-states-query/index.html
new file mode 100644
index 0000000000..0a0975378a
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.api/-states-query/index.html
@@ -0,0 +1,54 @@
+
+
+StatesQuery -
+
+
+
+net.corda.node.api / StatesQuery
+
+StatesQuery
+interface StatesQuery
+Extremely rudimentary query language which should most likely be replaced with a product.
+
+
+Types
+
+
+
+
+Criteria
+
+interface Criteria
+
+
+
+Selection
+
+data class Selection : StatesQuery
+
+
+
+Companion Object Functions
+
+Inheritors
+
+
+
+
+Selection
+
+data class Selection : StatesQuery
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.api/-states-query/select.html b/docs/build/html/api/net.corda.node.api/-states-query/select.html
new file mode 100644
index 0000000000..c234d21093
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.api/-states-query/select.html
@@ -0,0 +1,15 @@
+
+
+StatesQuery.select -
+
+
+
+net.corda.node.api / StatesQuery / select
+
+select
+
+fun select ( criteria : Criteria ) : Selection
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.api/-transaction-build-step/-init-.html b/docs/build/html/api/net.corda.node.api/-transaction-build-step/-init-.html
new file mode 100644
index 0000000000..0626510511
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.api/-transaction-build-step/-init-.html
@@ -0,0 +1,15 @@
+
+
+TransactionBuildStep. -
+
+
+
+net.corda.node.api / TransactionBuildStep / <init>
+
+<init>
+TransactionBuildStep ( generateMethodName : String , args : Map < String , Any ? > )
+Encapsulate a generateXXX method call on a contract.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.api/-transaction-build-step/args.html b/docs/build/html/api/net.corda.node.api/-transaction-build-step/args.html
new file mode 100644
index 0000000000..12d5deea18
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.api/-transaction-build-step/args.html
@@ -0,0 +1,15 @@
+
+
+TransactionBuildStep.args -
+
+
+
+net.corda.node.api / TransactionBuildStep / args
+
+args
+
+val args : Map < String , Any ? >
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.api/-transaction-build-step/generate-method-name.html b/docs/build/html/api/net.corda.node.api/-transaction-build-step/generate-method-name.html
new file mode 100644
index 0000000000..0ce5156d29
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.api/-transaction-build-step/generate-method-name.html
@@ -0,0 +1,15 @@
+
+
+TransactionBuildStep.generateMethodName -
+
+
+
+net.corda.node.api / TransactionBuildStep / generateMethodName
+
+generateMethodName
+
+val generateMethodName : String
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.api/-transaction-build-step/index.html b/docs/build/html/api/net.corda.node.api/-transaction-build-step/index.html
new file mode 100644
index 0000000000..549bee51d3
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.api/-transaction-build-step/index.html
@@ -0,0 +1,44 @@
+
+
+TransactionBuildStep -
+
+
+
+net.corda.node.api / TransactionBuildStep
+
+TransactionBuildStep
+data class TransactionBuildStep
+Encapsulate a generateXXX method call on a contract.
+
+
+Constructors
+
+
+
+
+<init>
+
+TransactionBuildStep ( generateMethodName : String , args : Map < String , Any ? > )
Encapsulate a generateXXX method call on a contract.
+
+
+
+
+Properties
+
+
+
diff --git a/docs/build/html/api/net.corda.node.api/index.html b/docs/build/html/api/net.corda.node.api/index.html
new file mode 100644
index 0000000000..97a7bda346
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.api/index.html
@@ -0,0 +1,82 @@
+
+
+net.corda.node.api -
+
+
+
+net.corda.node.api
+
+Package net.corda.node.api
+Types
+
+
+
+
+APIServer
+
+interface APIServer
Top level interface to external interaction with the distributed ledger.
+
+
+
+
+ContractClassRef
+
+data class ContractClassRef : ContractDefRef
+
+
+
+ContractDefRef
+
+interface ContractDefRef
Encapsulates the contract type. e.g. Cash or CommercialPaper etc.
+
+
+
+
+ContractLedgerRef
+
+data class ContractLedgerRef : ContractDefRef
+
+
+
+ProtocolClassRef
+
+data class ProtocolClassRef : ProtocolRef
+
+
+
+ProtocolInstanceRef
+
+data class ProtocolInstanceRef
+
+
+
+ProtocolRef
+
+interface ProtocolRef
Encapsulates the protocol to be instantiated. e.g. TwoPartyTradeProtocol.Buyer.
+
+
+
+
+ProtocolRequiringAttention
+
+data class ProtocolRequiringAttention
Thinking that Instant is OK for short lived protocol deadlines.
+
+
+
+
+StatesQuery
+
+interface StatesQuery
Extremely rudimentary query language which should most likely be replaced with a product.
+
+
+
+
+TransactionBuildStep
+
+data class TransactionBuildStep
Encapsulate a generateXXX method call on a contract.
+
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.driver/-driver-d-s-l-exposed-interface/index.html b/docs/build/html/api/net.corda.node.driver/-driver-d-s-l-exposed-interface/index.html
new file mode 100644
index 0000000000..6e367a9c08
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.driver/-driver-d-s-l-exposed-interface/index.html
@@ -0,0 +1,44 @@
+
+
+DriverDSLExposedInterface -
+
+
+
+net.corda.node.driver / DriverDSLExposedInterface
+
+DriverDSLExposedInterface
+interface DriverDSLExposedInterface
+This is the interface thats exposed to DSL users.
+
+
+Functions
+
+Inheritors
+
+
+
diff --git a/docs/build/html/api/net.corda.node.driver/-driver-d-s-l-exposed-interface/start-node.html b/docs/build/html/api/net.corda.node.driver/-driver-d-s-l-exposed-interface/start-node.html
new file mode 100644
index 0000000000..eba3cc6de5
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.driver/-driver-d-s-l-exposed-interface/start-node.html
@@ -0,0 +1,28 @@
+
+
+DriverDSLExposedInterface.startNode -
+
+
+
+net.corda.node.driver / DriverDSLExposedInterface / startNode
+
+startNode
+
+abstract fun startNode ( providedName : String ? = null, advertisedServices : Set < ServiceInfo > = emptySet(), rpcUsers : List < User > = emptyList()) : Future < NodeInfoAndConfig >
+Starts a Node in a separate process.
+Parameters
+
+providedName
- Optional name of the node, which will be its legal name in Party . Defaults to something
+random. Note that this must be unique as the driver uses it as a primary key
+
+
+advertisedServices
- The set of services to be advertised by the node. Defaults to empty set.
+
+
+rpcUsers
- List of users who are authorised to use the RPC system. Defaults to empty list.
+Return
+The NodeInfo of the started up node retrieved from the network map service.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.driver/-driver-d-s-l-exposed-interface/wait-for-all-nodes-to-finish.html b/docs/build/html/api/net.corda.node.driver/-driver-d-s-l-exposed-interface/wait-for-all-nodes-to-finish.html
new file mode 100644
index 0000000000..00da58d26a
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.driver/-driver-d-s-l-exposed-interface/wait-for-all-nodes-to-finish.html
@@ -0,0 +1,15 @@
+
+
+DriverDSLExposedInterface.waitForAllNodesToFinish -
+
+
+
+net.corda.node.driver / DriverDSLExposedInterface / waitForAllNodesToFinish
+
+waitForAllNodesToFinish
+
+abstract fun waitForAllNodesToFinish ( ) : Unit
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.driver/-driver-d-s-l-internal-interface/index.html b/docs/build/html/api/net.corda.node.driver/-driver-d-s-l-internal-interface/index.html
new file mode 100644
index 0000000000..1d6554c52b
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.driver/-driver-d-s-l-internal-interface/index.html
@@ -0,0 +1,60 @@
+
+
+DriverDSLInternalInterface -
+
+
+
+net.corda.node.driver / DriverDSLInternalInterface
+
+DriverDSLInternalInterface
+interface DriverDSLInternalInterface : DriverDSLExposedInterface
+
+
+Functions
+
+
+
+
+shutdown
+
+abstract fun shutdown ( ) : Unit
+
+
+
+start
+
+abstract fun start ( ) : Unit
+
+
+
+Inherited Functions
+
+Inheritors
+
+
+
+
+DriverDSL
+
+open class DriverDSL : DriverDSLInternalInterface
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.driver/-driver-d-s-l-internal-interface/shutdown.html b/docs/build/html/api/net.corda.node.driver/-driver-d-s-l-internal-interface/shutdown.html
new file mode 100644
index 0000000000..68b32e9b30
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.driver/-driver-d-s-l-internal-interface/shutdown.html
@@ -0,0 +1,15 @@
+
+
+DriverDSLInternalInterface.shutdown -
+
+
+
+net.corda.node.driver / DriverDSLInternalInterface / shutdown
+
+shutdown
+
+abstract fun shutdown ( ) : Unit
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.driver/-driver-d-s-l-internal-interface/start.html b/docs/build/html/api/net.corda.node.driver/-driver-d-s-l-internal-interface/start.html
new file mode 100644
index 0000000000..a434470b78
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.driver/-driver-d-s-l-internal-interface/start.html
@@ -0,0 +1,15 @@
+
+
+DriverDSLInternalInterface.start -
+
+
+
+net.corda.node.driver / DriverDSLInternalInterface / start
+
+start
+
+abstract fun start ( ) : Unit
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.driver/-driver-d-s-l/-init-.html b/docs/build/html/api/net.corda.node.driver/-driver-d-s-l/-init-.html
new file mode 100644
index 0000000000..df2d451b30
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.driver/-driver-d-s-l/-init-.html
@@ -0,0 +1,14 @@
+
+
+DriverDSL. -
+
+
+
+net.corda.node.driver / DriverDSL / <init>
+
+<init>
+DriverDSL ( portAllocation : PortAllocation , debugPortAllocation : PortAllocation , driverDirectory : Path , useTestClock : Boolean , isDebug : Boolean )
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.driver/-driver-d-s-l/-state/-init-.html b/docs/build/html/api/net.corda.node.driver/-driver-d-s-l/-state/-init-.html
new file mode 100644
index 0000000000..92f6bac010
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.driver/-driver-d-s-l/-state/-init-.html
@@ -0,0 +1,14 @@
+
+
+DriverDSL.State. -
+
+
+
+net.corda.node.driver / DriverDSL / State / <init>
+
+<init>
+State ( )
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.driver/-driver-d-s-l/-state/clients.html b/docs/build/html/api/net.corda.node.driver/-driver-d-s-l/-state/clients.html
new file mode 100644
index 0000000000..89f96a6d08
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.driver/-driver-d-s-l/-state/clients.html
@@ -0,0 +1,15 @@
+
+
+DriverDSL.State.clients -
+
+
+
+net.corda.node.driver / DriverDSL / State / clients
+
+clients
+
+val clients : LinkedList < NodeMessagingClient >
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.driver/-driver-d-s-l/-state/index.html b/docs/build/html/api/net.corda.node.driver/-driver-d-s-l/-state/index.html
new file mode 100644
index 0000000000..43a338b752
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.driver/-driver-d-s-l/-state/index.html
@@ -0,0 +1,48 @@
+
+
+DriverDSL.State -
+
+
+
+net.corda.node.driver / DriverDSL / State
+
+State
+class State
+
+
+Constructors
+
+
+
+
+<init>
+
+State ( )
+
+
+
+Properties
+
+
+
diff --git a/docs/build/html/api/net.corda.node.driver/-driver-d-s-l/-state/local-server.html b/docs/build/html/api/net.corda.node.driver/-driver-d-s-l/-state/local-server.html
new file mode 100644
index 0000000000..476ddc2089
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.driver/-driver-d-s-l/-state/local-server.html
@@ -0,0 +1,15 @@
+
+
+DriverDSL.State.localServer -
+
+
+
+net.corda.node.driver / DriverDSL / State / localServer
+
+localServer
+
+var localServer : ArtemisMessagingServer ?
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.driver/-driver-d-s-l/-state/registered-processes.html b/docs/build/html/api/net.corda.node.driver/-driver-d-s-l/-state/registered-processes.html
new file mode 100644
index 0000000000..a8bc4f9699
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.driver/-driver-d-s-l/-state/registered-processes.html
@@ -0,0 +1,15 @@
+
+
+DriverDSL.State.registeredProcesses -
+
+
+
+net.corda.node.driver / DriverDSL / State / registeredProcesses
+
+registeredProcesses
+
+val registeredProcesses : LinkedList < Process >
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.driver/-driver-d-s-l/debug-port-allocation.html b/docs/build/html/api/net.corda.node.driver/-driver-d-s-l/debug-port-allocation.html
new file mode 100644
index 0000000000..ca85a7247f
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.driver/-driver-d-s-l/debug-port-allocation.html
@@ -0,0 +1,15 @@
+
+
+DriverDSL.debugPortAllocation -
+
+
+
+net.corda.node.driver / DriverDSL / debugPortAllocation
+
+debugPortAllocation
+
+val debugPortAllocation : PortAllocation
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.driver/-driver-d-s-l/driver-directory.html b/docs/build/html/api/net.corda.node.driver/-driver-d-s-l/driver-directory.html
new file mode 100644
index 0000000000..c9da568c9a
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.driver/-driver-d-s-l/driver-directory.html
@@ -0,0 +1,15 @@
+
+
+DriverDSL.driverDirectory -
+
+
+
+net.corda.node.driver / DriverDSL / driverDirectory
+
+driverDirectory
+
+val driverDirectory : Path
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.driver/-driver-d-s-l/index.html b/docs/build/html/api/net.corda.node.driver/-driver-d-s-l/index.html
new file mode 100644
index 0000000000..3c8c8d3455
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.driver/-driver-d-s-l/index.html
@@ -0,0 +1,129 @@
+
+
+DriverDSL -
+
+
+
+net.corda.node.driver / DriverDSL
+
+DriverDSL
+open class DriverDSL : DriverDSLInternalInterface
+
+
+Types
+
+
+
+
+State
+
+class State
+
+
+
+Constructors
+
+Properties
+
+Functions
+
+Companion Object Properties
+
+
+
+
+name
+
+val name : Array < String >
+
+
+
+Companion Object Functions
+
+
+
+
+pickA
+
+fun < A > pickA ( array : Array < A > ) : A
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.driver/-driver-d-s-l/is-debug.html b/docs/build/html/api/net.corda.node.driver/-driver-d-s-l/is-debug.html
new file mode 100644
index 0000000000..d188343c7b
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.driver/-driver-d-s-l/is-debug.html
@@ -0,0 +1,15 @@
+
+
+DriverDSL.isDebug -
+
+
+
+net.corda.node.driver / DriverDSL / isDebug
+
+isDebug
+
+val isDebug : Boolean
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.driver/-driver-d-s-l/name.html b/docs/build/html/api/net.corda.node.driver/-driver-d-s-l/name.html
new file mode 100644
index 0000000000..fcb00ed3c0
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.driver/-driver-d-s-l/name.html
@@ -0,0 +1,15 @@
+
+
+DriverDSL.name -
+
+
+
+net.corda.node.driver / DriverDSL / name
+
+name
+
+val name : Array < String >
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.driver/-driver-d-s-l/pick-a.html b/docs/build/html/api/net.corda.node.driver/-driver-d-s-l/pick-a.html
new file mode 100644
index 0000000000..394dbcd325
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.driver/-driver-d-s-l/pick-a.html
@@ -0,0 +1,15 @@
+
+
+DriverDSL.pickA -
+
+
+
+net.corda.node.driver / DriverDSL / pickA
+
+pickA
+
+fun < A > pickA ( array : Array < A > ) : A
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.driver/-driver-d-s-l/port-allocation.html b/docs/build/html/api/net.corda.node.driver/-driver-d-s-l/port-allocation.html
new file mode 100644
index 0000000000..d6119d59b4
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.driver/-driver-d-s-l/port-allocation.html
@@ -0,0 +1,15 @@
+
+
+DriverDSL.portAllocation -
+
+
+
+net.corda.node.driver / DriverDSL / portAllocation
+
+portAllocation
+
+val portAllocation : PortAllocation
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.driver/-driver-d-s-l/register-process.html b/docs/build/html/api/net.corda.node.driver/-driver-d-s-l/register-process.html
new file mode 100644
index 0000000000..92089bf09e
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.driver/-driver-d-s-l/register-process.html
@@ -0,0 +1,15 @@
+
+
+DriverDSL.registerProcess -
+
+
+
+net.corda.node.driver / DriverDSL / registerProcess
+
+registerProcess
+
+fun registerProcess ( process : Process ) : Unit
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.driver/-driver-d-s-l/shutdown.html b/docs/build/html/api/net.corda.node.driver/-driver-d-s-l/shutdown.html
new file mode 100644
index 0000000000..5c455ba22f
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.driver/-driver-d-s-l/shutdown.html
@@ -0,0 +1,16 @@
+
+
+DriverDSL.shutdown -
+
+
+
+net.corda.node.driver / DriverDSL / shutdown
+
+shutdown
+
+open fun shutdown ( ) : Unit
+Overrides DriverDSLInternalInterface.shutdown
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.driver/-driver-d-s-l/start-node.html b/docs/build/html/api/net.corda.node.driver/-driver-d-s-l/start-node.html
new file mode 100644
index 0000000000..af66fb8541
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.driver/-driver-d-s-l/start-node.html
@@ -0,0 +1,29 @@
+
+
+DriverDSL.startNode -
+
+
+
+net.corda.node.driver / DriverDSL / startNode
+
+startNode
+
+open fun startNode ( providedName : String ? , advertisedServices : Set < ServiceInfo > , rpcUsers : List < User > ) : Future < NodeInfoAndConfig >
+Overrides DriverDSLExposedInterface.startNode
+Starts a Node in a separate process.
+Parameters
+
+providedName
- Optional name of the node, which will be its legal name in Party . Defaults to something
+random. Note that this must be unique as the driver uses it as a primary key
+
+
+advertisedServices
- The set of services to be advertised by the node. Defaults to empty set.
+
+
+rpcUsers
- List of users who are authorised to use the RPC system. Defaults to empty list.
+Return
+The NodeInfo of the started up node retrieved from the network map service.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.driver/-driver-d-s-l/start.html b/docs/build/html/api/net.corda.node.driver/-driver-d-s-l/start.html
new file mode 100644
index 0000000000..177d63b210
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.driver/-driver-d-s-l/start.html
@@ -0,0 +1,16 @@
+
+
+DriverDSL.start -
+
+
+
+net.corda.node.driver / DriverDSL / start
+
+start
+
+open fun start ( ) : Unit
+Overrides DriverDSLInternalInterface.start
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.driver/-driver-d-s-l/use-test-clock.html b/docs/build/html/api/net.corda.node.driver/-driver-d-s-l/use-test-clock.html
new file mode 100644
index 0000000000..7c8178f157
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.driver/-driver-d-s-l/use-test-clock.html
@@ -0,0 +1,15 @@
+
+
+DriverDSL.useTestClock -
+
+
+
+net.corda.node.driver / DriverDSL / useTestClock
+
+useTestClock
+
+val useTestClock : Boolean
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.driver/-driver-d-s-l/wait-for-all-nodes-to-finish.html b/docs/build/html/api/net.corda.node.driver/-driver-d-s-l/wait-for-all-nodes-to-finish.html
new file mode 100644
index 0000000000..174e4e2f6d
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.driver/-driver-d-s-l/wait-for-all-nodes-to-finish.html
@@ -0,0 +1,16 @@
+
+
+DriverDSL.waitForAllNodesToFinish -
+
+
+
+net.corda.node.driver / DriverDSL / waitForAllNodesToFinish
+
+waitForAllNodesToFinish
+
+open fun waitForAllNodesToFinish ( ) : Unit
+Overrides DriverDSLExposedInterface.waitForAllNodesToFinish
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.driver/-node-info-and-config/-init-.html b/docs/build/html/api/net.corda.node.driver/-node-info-and-config/-init-.html
new file mode 100644
index 0000000000..40e560e7bb
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.driver/-node-info-and-config/-init-.html
@@ -0,0 +1,14 @@
+
+
+NodeInfoAndConfig. -
+
+
+
+net.corda.node.driver / NodeInfoAndConfig / <init>
+
+<init>
+NodeInfoAndConfig ( nodeInfo : NodeInfo , config : <ERROR CLASS> )
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.driver/-node-info-and-config/config.html b/docs/build/html/api/net.corda.node.driver/-node-info-and-config/config.html
new file mode 100644
index 0000000000..55e3e6c218
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.driver/-node-info-and-config/config.html
@@ -0,0 +1,15 @@
+
+
+NodeInfoAndConfig.config -
+
+
+
+net.corda.node.driver / NodeInfoAndConfig / config
+
+config
+
+val config : <ERROR CLASS>
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.driver/-node-info-and-config/index.html b/docs/build/html/api/net.corda.node.driver/-node-info-and-config/index.html
new file mode 100644
index 0000000000..4f66949465
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.driver/-node-info-and-config/index.html
@@ -0,0 +1,42 @@
+
+
+NodeInfoAndConfig -
+
+
+
+net.corda.node.driver / NodeInfoAndConfig
+
+NodeInfoAndConfig
+data class NodeInfoAndConfig
+
+
+Constructors
+
+
+
+
+<init>
+
+NodeInfoAndConfig ( nodeInfo : NodeInfo , config : <ERROR CLASS> )
+
+
+
+Properties
+
+
+
diff --git a/docs/build/html/api/net.corda.node.driver/-node-info-and-config/node-info.html b/docs/build/html/api/net.corda.node.driver/-node-info-and-config/node-info.html
new file mode 100644
index 0000000000..097b9321fd
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.driver/-node-info-and-config/node-info.html
@@ -0,0 +1,15 @@
+
+
+NodeInfoAndConfig.nodeInfo -
+
+
+
+net.corda.node.driver / NodeInfoAndConfig / nodeInfo
+
+nodeInfo
+
+val nodeInfo : NodeInfo
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.driver/-port-allocation/-incremental/-init-.html b/docs/build/html/api/net.corda.node.driver/-port-allocation/-incremental/-init-.html
new file mode 100644
index 0000000000..b78488e03b
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.driver/-port-allocation/-incremental/-init-.html
@@ -0,0 +1,14 @@
+
+
+PortAllocation.Incremental. -
+
+
+
+net.corda.node.driver / PortAllocation / Incremental / <init>
+
+<init>
+Incremental ( portCounter : Int )
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.driver/-port-allocation/-incremental/index.html b/docs/build/html/api/net.corda.node.driver/-port-allocation/-incremental/index.html
new file mode 100644
index 0000000000..687752d9c5
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.driver/-port-allocation/-incremental/index.html
@@ -0,0 +1,47 @@
+
+
+PortAllocation.Incremental -
+
+
+
+net.corda.node.driver / PortAllocation / Incremental
+
+Incremental
+class Incremental : PortAllocation
+
+
+Constructors
+
+
+
+
+<init>
+
+Incremental ( portCounter : Int )
+
+
+
+Functions
+
+
+
+
+nextPort
+
+fun nextPort ( ) : Int
+
+
+
+Inherited Functions
+
+
+
diff --git a/docs/build/html/api/net.corda.node.driver/-port-allocation/-incremental/next-port.html b/docs/build/html/api/net.corda.node.driver/-port-allocation/-incremental/next-port.html
new file mode 100644
index 0000000000..15f9f2136e
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.driver/-port-allocation/-incremental/next-port.html
@@ -0,0 +1,16 @@
+
+
+PortAllocation.Incremental.nextPort -
+
+
+
+net.corda.node.driver / PortAllocation / Incremental / nextPort
+
+nextPort
+
+fun nextPort ( ) : Int
+Overrides PortAllocation.nextPort
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.driver/-port-allocation/-random-free/-init-.html b/docs/build/html/api/net.corda.node.driver/-port-allocation/-random-free/-init-.html
new file mode 100644
index 0000000000..eb45f3293a
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.driver/-port-allocation/-random-free/-init-.html
@@ -0,0 +1,14 @@
+
+
+PortAllocation.RandomFree. -
+
+
+
+net.corda.node.driver / PortAllocation / RandomFree / <init>
+
+<init>
+RandomFree ( )
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.driver/-port-allocation/-random-free/index.html b/docs/build/html/api/net.corda.node.driver/-port-allocation/-random-free/index.html
new file mode 100644
index 0000000000..e6830f33c1
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.driver/-port-allocation/-random-free/index.html
@@ -0,0 +1,47 @@
+
+
+PortAllocation.RandomFree -
+
+
+
+net.corda.node.driver / PortAllocation / RandomFree
+
+RandomFree
+class RandomFree : PortAllocation
+
+
+Constructors
+
+
+
+
+<init>
+
+RandomFree ( )
+
+
+
+Functions
+
+
+
+
+nextPort
+
+fun nextPort ( ) : Int
+
+
+
+Inherited Functions
+
+
+
diff --git a/docs/build/html/api/net.corda.node.driver/-port-allocation/-random-free/next-port.html b/docs/build/html/api/net.corda.node.driver/-port-allocation/-random-free/next-port.html
new file mode 100644
index 0000000000..91bb251e39
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.driver/-port-allocation/-random-free/next-port.html
@@ -0,0 +1,16 @@
+
+
+PortAllocation.RandomFree.nextPort -
+
+
+
+net.corda.node.driver / PortAllocation / RandomFree / nextPort
+
+nextPort
+
+fun nextPort ( ) : Int
+Overrides PortAllocation.nextPort
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.driver/-port-allocation/index.html b/docs/build/html/api/net.corda.node.driver/-port-allocation/index.html
new file mode 100644
index 0000000000..a8ff529d6f
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.driver/-port-allocation/index.html
@@ -0,0 +1,65 @@
+
+
+PortAllocation -
+
+
+
+net.corda.node.driver / PortAllocation
+
+PortAllocation
+sealed class PortAllocation
+
+
+Types
+
+
+
+
+Incremental
+
+class Incremental : PortAllocation
+
+
+
+RandomFree
+
+class RandomFree : PortAllocation
+
+
+
+Functions
+
+
+
+
+nextHostAndPort
+
+fun nextHostAndPort ( ) : <ERROR CLASS>
+
+
+
+nextPort
+
+abstract fun nextPort ( ) : Int
+
+
+
+Inheritors
+
+
+
+
+Incremental
+
+class Incremental : PortAllocation
+
+
+
+RandomFree
+
+class RandomFree : PortAllocation
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.driver/-port-allocation/next-host-and-port.html b/docs/build/html/api/net.corda.node.driver/-port-allocation/next-host-and-port.html
new file mode 100644
index 0000000000..91eb2189f6
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.driver/-port-allocation/next-host-and-port.html
@@ -0,0 +1,15 @@
+
+
+PortAllocation.nextHostAndPort -
+
+
+
+net.corda.node.driver / PortAllocation / nextHostAndPort
+
+nextHostAndPort
+
+fun nextHostAndPort ( ) : <ERROR CLASS>
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.driver/-port-allocation/next-port.html b/docs/build/html/api/net.corda.node.driver/-port-allocation/next-port.html
new file mode 100644
index 0000000000..fc8469a52f
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.driver/-port-allocation/next-port.html
@@ -0,0 +1,15 @@
+
+
+PortAllocation.nextPort -
+
+
+
+net.corda.node.driver / PortAllocation / nextPort
+
+nextPort
+
+abstract fun nextPort ( ) : Int
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.driver/address-must-be-bound.html b/docs/build/html/api/net.corda.node.driver/address-must-be-bound.html
new file mode 100644
index 0000000000..2f510f1331
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.driver/address-must-be-bound.html
@@ -0,0 +1,15 @@
+
+
+addressMustBeBound -
+
+
+
+net.corda.node.driver / addressMustBeBound
+
+addressMustBeBound
+
+fun addressMustBeBound ( hostAndPort : <ERROR CLASS> ) : Unit
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.driver/address-must-not-be-bound.html b/docs/build/html/api/net.corda.node.driver/address-must-not-be-bound.html
new file mode 100644
index 0000000000..4ffa8d361d
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.driver/address-must-not-be-bound.html
@@ -0,0 +1,15 @@
+
+
+addressMustNotBeBound -
+
+
+
+net.corda.node.driver / addressMustNotBeBound
+
+addressMustNotBeBound
+
+fun addressMustNotBeBound ( hostAndPort : <ERROR CLASS> ) : Unit
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.driver/driver.html b/docs/build/html/api/net.corda.node.driver/driver.html
new file mode 100644
index 0000000000..b51631b259
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.driver/driver.html
@@ -0,0 +1,48 @@
+
+
+driver -
+
+
+
+net.corda.node.driver / driver
+
+driver
+
+fun < A > driver ( driverDirectory : Path = Paths.get("build", getTimestampAsDirectoryName()), portAllocation : PortAllocation = PortAllocation.Incremental(10000), debugPortAllocation : PortAllocation = PortAllocation.Incremental(5005), useTestClock : Boolean = false, isDebug : Boolean = false, dsl : DriverDSLExposedInterface . ( ) -> A ) : A
+driver allows one to start up nodes like this:
+driver {
+val noService = startNode("NoService")
+val notary = startNode("Notary")
+(...)
+}
+Note that DriverDSL.startNode does not wait for the node to start up synchronously, but rather returns a Future
+of the NodeInfo that may be waited on, which completes when the new node registered with the network map service.
+The driver implicitly bootstraps a NetworkMapService that may be accessed through a local cache DriverDSL.networkMapCache .
+
+
+Parameters
+
+driverDirectory
- The base directory node directories go into, defaults to "build//". The node
+directories themselves are "//", where legalName defaults to "-"
+and may be specified in DriverDSL.startNode .
+
+
+portAllocation
- The port allocation strategy to use for the messaging and the web server addresses. Defaults to incremental.
+
+
+debugPortAllocation
- The port allocation strategy to use for jvm debugging. Defaults to incremental.
+
+
+useTestClock
- If true the test clock will be used in Node.
+
+
+isDebug
- Indicates whether the spawned nodes should start in jdwt debug mode.
+
+
+dsl
- The dsl itself.
+Return
+The value returned in the dsl closure.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.driver/generic-driver.html b/docs/build/html/api/net.corda.node.driver/generic-driver.html
new file mode 100644
index 0000000000..79ee23dfc1
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.driver/generic-driver.html
@@ -0,0 +1,22 @@
+
+
+genericDriver -
+
+
+
+net.corda.node.driver / genericDriver
+
+genericDriver
+
+fun < DI : DriverDSLExposedInterface , D : DriverDSLInternalInterface , A > genericDriver ( driverDsl : D , coerce : ( D ) -> DI , dsl : DI . ( ) -> A ) : A
+This is a helper method to allow extending of the DSL, along the lines of
+interface SomeOtherExposedDSLInterface : DriverDSLExposedInterface
+interface SomeOtherInternalDSLInterface : DriverDSLInternalInterface, SomeOtherExposedDSLInterface
+class SomeOtherDSL(val driverDSL : DriverDSL) : DriverDSLInternalInterface by driverDSL, SomeOtherInternalDSLInterface
+Parameters
+
+coerce
- We need this explicit coercion witness because we cant put an extra DI : D bound in a where
clause.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.driver/index.html b/docs/build/html/api/net.corda.node.driver/index.html
new file mode 100644
index 0000000000..be3b00865a
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.driver/index.html
@@ -0,0 +1,96 @@
+
+
+net.corda.node.driver -
+
+
+
+net.corda.node.driver
+
+Package net.corda.node.driver
+Types
+
+Functions
+
+
+
+
+addressMustBeBound
+
+fun addressMustBeBound ( hostAndPort : <ERROR CLASS> ) : Unit
+
+
+
+addressMustNotBeBound
+
+fun addressMustNotBeBound ( hostAndPort : <ERROR CLASS> ) : Unit
+
+
+
+driver
+
+fun < A > driver ( driverDirectory : Path = Paths.get("build", getTimestampAsDirectoryName()), portAllocation : PortAllocation = PortAllocation.Incremental(10000), debugPortAllocation : PortAllocation = PortAllocation.Incremental(5005), useTestClock : Boolean = false, isDebug : Boolean = false, dsl : DriverDSLExposedInterface . ( ) -> A ) : A
driver allows one to start up nodes like this:
+driver {
+val noService = startNode("NoService")
+val notary = startNode("Notary")
+
+
+
+
+genericDriver
+
+fun < DI : DriverDSLExposedInterface , D : DriverDSLInternalInterface , A > genericDriver ( driverDsl : D , coerce : ( D ) -> DI , dsl : DI . ( ) -> A ) : A
This is a helper method to allow extending of the DSL, along the lines of
+interface SomeOtherExposedDSLInterface : DriverDSLExposedInterface
+interface SomeOtherInternalDSLInterface : DriverDSLInternalInterface, SomeOtherExposedDSLInterface
+class SomeOtherDSL(val driverDSL : DriverDSL) : DriverDSLInternalInterface by driverDSL, SomeOtherInternalDSLInterface
+
+
+
+
+poll
+
+fun < A > poll ( pollName : String , pollIntervalMs : Long = 500, warnCount : Int = 120, f : ( ) -> A ? ) : A
+
+
+
+writeConfig
+
+fun writeConfig ( path : Path , filename : String , config : <ERROR CLASS> ) : Unit
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.driver/poll.html b/docs/build/html/api/net.corda.node.driver/poll.html
new file mode 100644
index 0000000000..354b893db1
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.driver/poll.html
@@ -0,0 +1,15 @@
+
+
+poll -
+
+
+
+net.corda.node.driver / poll
+
+poll
+
+fun < A > poll ( pollName : String , pollIntervalMs : Long = 500, warnCount : Int = 120, f : ( ) -> A ? ) : A
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.driver/write-config.html b/docs/build/html/api/net.corda.node.driver/write-config.html
new file mode 100644
index 0000000000..1051d725f5
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.driver/write-config.html
@@ -0,0 +1,15 @@
+
+
+writeConfig -
+
+
+
+net.corda.node.driver / writeConfig
+
+writeConfig
+
+fun writeConfig ( path : Path , filename : String , config : <ERROR CLASS> ) : Unit
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.internal/-a-p-i-server-impl/-init-.html b/docs/build/html/api/net.corda.node.internal/-a-p-i-server-impl/-init-.html
new file mode 100644
index 0000000000..25c71c7d1f
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.internal/-a-p-i-server-impl/-init-.html
@@ -0,0 +1,14 @@
+
+
+APIServerImpl. -
+
+
+
+net.corda.node.internal / APIServerImpl / <init>
+
+<init>
+APIServerImpl ( node : AbstractNode )
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.internal/-a-p-i-server-impl/build-transaction.html b/docs/build/html/api/net.corda.node.internal/-a-p-i-server-impl/build-transaction.html
new file mode 100644
index 0000000000..1a5b2fae6b
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.internal/-a-p-i-server-impl/build-transaction.html
@@ -0,0 +1,19 @@
+
+
+APIServerImpl.buildTransaction -
+
+
+
+net.corda.node.internal / APIServerImpl / buildTransaction
+
+buildTransaction
+
+fun buildTransaction ( type : ContractDefRef , steps : List < TransactionBuildStep > ) : SerializedBytes < WireTransaction >
+Overrides APIServer.buildTransaction
+TransactionBuildSteps would be invocations of contract.generateXXX() methods that all share a common TransactionBuilder
+and a common contract type (e.g. Cash or CommercialPaper)
+which would automatically be passed as the first argument (wed need that to be a criteria/pattern of the generateXXX methods).
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.internal/-a-p-i-server-impl/commit-transaction.html b/docs/build/html/api/net.corda.node.internal/-a-p-i-server-impl/commit-transaction.html
new file mode 100644
index 0000000000..f9acc31a23
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.internal/-a-p-i-server-impl/commit-transaction.html
@@ -0,0 +1,18 @@
+
+
+APIServerImpl.commitTransaction -
+
+
+
+net.corda.node.internal / APIServerImpl / commitTransaction
+
+commitTransaction
+
+fun commitTransaction ( tx : SerializedBytes < WireTransaction > , signatures : List < WithKey > ) : SecureHash
+Overrides APIServer.commitTransaction
+Attempt to commit transaction (returned from build transaction) with the necessary signatures for that to be
+successful, otherwise exception is thrown.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.internal/-a-p-i-server-impl/fetch-protocols-requiring-attention.html b/docs/build/html/api/net.corda.node.internal/-a-p-i-server-impl/fetch-protocols-requiring-attention.html
new file mode 100644
index 0000000000..82f3e8b5e9
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.internal/-a-p-i-server-impl/fetch-protocols-requiring-attention.html
@@ -0,0 +1,17 @@
+
+
+APIServerImpl.fetchProtocolsRequiringAttention -
+
+
+
+net.corda.node.internal / APIServerImpl / fetchProtocolsRequiringAttention
+
+fetchProtocolsRequiringAttention
+
+fun fetchProtocolsRequiringAttention ( query : StatesQuery ) : Map < StateRef , ProtocolRequiringAttention >
+Overrides APIServer.fetchProtocolsRequiringAttention
+Fetch protocols that require a response to some prompt/question by a human (on the "bank" side).
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.internal/-a-p-i-server-impl/fetch-states.html b/docs/build/html/api/net.corda.node.internal/-a-p-i-server-impl/fetch-states.html
new file mode 100644
index 0000000000..8d4acf66ff
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.internal/-a-p-i-server-impl/fetch-states.html
@@ -0,0 +1,16 @@
+
+
+APIServerImpl.fetchStates -
+
+
+
+net.corda.node.internal / APIServerImpl / fetchStates
+
+fetchStates
+
+fun fetchStates ( states : List < StateRef > ) : Map < StateRef , TransactionState < ContractState > ? >
+Overrides APIServer.fetchStates
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.internal/-a-p-i-server-impl/fetch-transactions.html b/docs/build/html/api/net.corda.node.internal/-a-p-i-server-impl/fetch-transactions.html
new file mode 100644
index 0000000000..da89f632f4
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.internal/-a-p-i-server-impl/fetch-transactions.html
@@ -0,0 +1,22 @@
+
+
+APIServerImpl.fetchTransactions -
+
+
+
+net.corda.node.internal / APIServerImpl / fetchTransactions
+
+fetchTransactions
+
+fun fetchTransactions ( txs : List < SecureHash > ) : Map < SecureHash , SignedTransaction ? >
+Overrides APIServer.fetchTransactions
+Query for immutable transactions (results can be cached indefinitely by their id/hash).
+Parameters
+
+txs
- The hashes (from StateRef.txhash returned from queryStates ) you would like full transactions for.
+Return
+null values indicate missing transactions from the requested list.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.internal/-a-p-i-server-impl/generate-transaction-signature.html b/docs/build/html/api/net.corda.node.internal/-a-p-i-server-impl/generate-transaction-signature.html
new file mode 100644
index 0000000000..ebc8fd6cf8
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.internal/-a-p-i-server-impl/generate-transaction-signature.html
@@ -0,0 +1,17 @@
+
+
+APIServerImpl.generateTransactionSignature -
+
+
+
+net.corda.node.internal / APIServerImpl / generateTransactionSignature
+
+generateTransactionSignature
+
+fun generateTransactionSignature ( tx : SerializedBytes < WireTransaction > ) : WithKey
+Overrides APIServer.generateTransactionSignature
+Generate a signature for this transaction signed by us.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.internal/-a-p-i-server-impl/index.html b/docs/build/html/api/net.corda.node.internal/-a-p-i-server-impl/index.html
new file mode 100644
index 0000000000..60b334354d
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.internal/-a-p-i-server-impl/index.html
@@ -0,0 +1,131 @@
+
+
+APIServerImpl -
+
+
+
+net.corda.node.internal / APIServerImpl
+
+APIServerImpl
+class APIServerImpl : APIServer
+
+
+Constructors
+
+Properties
+
+Functions
+
+
+
+
+buildTransaction
+
+fun buildTransaction ( type : ContractDefRef , steps : List < TransactionBuildStep > ) : SerializedBytes < WireTransaction >
TransactionBuildSteps would be invocations of contract.generateXXX() methods that all share a common TransactionBuilder
+and a common contract type (e.g. Cash or CommercialPaper)
+which would automatically be passed as the first argument (wed need that to be a criteria/pattern of the generateXXX methods).
+
+
+
+
+commitTransaction
+
+fun commitTransaction ( tx : SerializedBytes < WireTransaction > , signatures : List < WithKey > ) : SecureHash
Attempt to commit transaction (returned from build transaction) with the necessary signatures for that to be
+successful, otherwise exception is thrown.
+
+
+
+
+fetchProtocolsRequiringAttention
+
+fun fetchProtocolsRequiringAttention ( query : StatesQuery ) : Map < StateRef , ProtocolRequiringAttention >
Fetch protocols that require a response to some prompt/question by a human (on the "bank" side).
+
+
+
+
+fetchStates
+
+fun fetchStates ( states : List < StateRef > ) : Map < StateRef , TransactionState < ContractState > ? >
+
+
+
+fetchTransactions
+
+fun fetchTransactions ( txs : List < SecureHash > ) : Map < SecureHash , SignedTransaction ? >
Query for immutable transactions (results can be cached indefinitely by their id/hash).
+
+
+
+
+generateTransactionSignature
+
+fun generateTransactionSignature ( tx : SerializedBytes < WireTransaction > ) : WithKey
Generate a signature for this transaction signed by us.
+
+
+
+
+info
+
+fun info ( ) : NodeInfo
Report this nodes configuration and identities.
+Currently tunnels the NodeInfo as an encoding of the Kryo serialised form.
+TODO this functionality should be available via the RPC
+
+
+
+
+invokeProtocolSync
+
+fun invokeProtocolSync ( type : ProtocolRef , args : Map < String , Any ? > ) : Any ?
This method would not return until the protocol is finished (hence the "Sync").
+
+
+
+
+provideProtocolResponse
+
+fun provideProtocolResponse ( protocol : ProtocolInstanceRef , choice : SecureHash , args : Map < String , Any ? > ) : Unit
Provide the response that a protocol is waiting for.
+
+
+
+
+queryStates
+
+fun queryStates ( query : StatesQuery ) : List < StateRef >
Query your "local" states (containing only outputs involving you) and return the hashes & indexes associated with them
+to probably be later inflated by fetchLedgerTransactions() or fetchStates() although because immutable you can cache them
+to avoid calling fetchLedgerTransactions() many times.
+
+
+
+
+serverTime
+
+fun serverTime ( ) : LocalDateTime
Report current UTC time as understood by the platform.
+
+
+
+
+status
+
+fun status ( ) : <ERROR CLASS>
Report whether this node is started up or not.
+
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.internal/-a-p-i-server-impl/info.html b/docs/build/html/api/net.corda.node.internal/-a-p-i-server-impl/info.html
new file mode 100644
index 0000000000..e3aee1c539
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.internal/-a-p-i-server-impl/info.html
@@ -0,0 +1,19 @@
+
+
+APIServerImpl.info -
+
+
+
+net.corda.node.internal / APIServerImpl / info
+
+info
+
+fun info ( ) : NodeInfo
+Overrides APIServer.info
+Report this nodes configuration and identities.
+Currently tunnels the NodeInfo as an encoding of the Kryo serialised form.
+TODO this functionality should be available via the RPC
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.internal/-a-p-i-server-impl/invoke-protocol-sync.html b/docs/build/html/api/net.corda.node.internal/-a-p-i-server-impl/invoke-protocol-sync.html
new file mode 100644
index 0000000000..3c71e8fa37
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.internal/-a-p-i-server-impl/invoke-protocol-sync.html
@@ -0,0 +1,22 @@
+
+
+APIServerImpl.invokeProtocolSync -
+
+
+
+net.corda.node.internal / APIServerImpl / invokeProtocolSync
+
+invokeProtocolSync
+
+fun invokeProtocolSync ( type : ProtocolRef , args : Map < String , Any ? > ) : Any ?
+Overrides APIServer.invokeProtocolSync
+This method would not return until the protocol is finished (hence the "Sync").
+Longer term wed add an Async version that returns some kind of ProtocolInvocationRef that could be queried and
+would appear on some kind of event message that is broadcast informing of progress.
+Will throw exception if protocol fails.
+
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.internal/-a-p-i-server-impl/node.html b/docs/build/html/api/net.corda.node.internal/-a-p-i-server-impl/node.html
new file mode 100644
index 0000000000..b04e51dcb1
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.internal/-a-p-i-server-impl/node.html
@@ -0,0 +1,15 @@
+
+
+APIServerImpl.node -
+
+
+
+net.corda.node.internal / APIServerImpl / node
+
+node
+
+val node : AbstractNode
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.internal/-a-p-i-server-impl/provide-protocol-response.html b/docs/build/html/api/net.corda.node.internal/-a-p-i-server-impl/provide-protocol-response.html
new file mode 100644
index 0000000000..2e75323e51
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.internal/-a-p-i-server-impl/provide-protocol-response.html
@@ -0,0 +1,29 @@
+
+
+APIServerImpl.provideProtocolResponse -
+
+
+
+net.corda.node.internal / APIServerImpl / provideProtocolResponse
+
+provideProtocolResponse
+
+fun provideProtocolResponse ( protocol : ProtocolInstanceRef , choice : SecureHash , args : Map < String , Any ? > ) : Unit
+Overrides APIServer.provideProtocolResponse
+Provide the response that a protocol is waiting for.
+Parameters
+
+protocol
- Should refer to a previously supplied ProtocolRequiringAttention.
+
+
+stepId
- Which step of the protocol are we referring too.
+
+
+choice
- Should be one of the choices presented in the ProtocolRequiringAttention.
+
+
+args
- Any arguments required.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.internal/-a-p-i-server-impl/query-states.html b/docs/build/html/api/net.corda.node.internal/-a-p-i-server-impl/query-states.html
new file mode 100644
index 0000000000..81c2b254de
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.internal/-a-p-i-server-impl/query-states.html
@@ -0,0 +1,24 @@
+
+
+APIServerImpl.queryStates -
+
+
+
+net.corda.node.internal / APIServerImpl / queryStates
+
+queryStates
+
+fun queryStates ( query : StatesQuery ) : List < StateRef >
+Overrides APIServer.queryStates
+Query your "local" states (containing only outputs involving you) and return the hashes & indexes associated with them
+to probably be later inflated by fetchLedgerTransactions() or fetchStates() although because immutable you can cache them
+to avoid calling fetchLedgerTransactions() many times.
+Parameters
+
+query
- Some "where clause" like expression.
+Return
+Zero or more matching States.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.internal/-a-p-i-server-impl/server-time.html b/docs/build/html/api/net.corda.node.internal/-a-p-i-server-impl/server-time.html
new file mode 100644
index 0000000000..61c4d968b5
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.internal/-a-p-i-server-impl/server-time.html
@@ -0,0 +1,17 @@
+
+
+APIServerImpl.serverTime -
+
+
+
+net.corda.node.internal / APIServerImpl / serverTime
+
+serverTime
+
+fun serverTime ( ) : LocalDateTime
+Overrides APIServer.serverTime
+Report current UTC time as understood by the platform.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.internal/-a-p-i-server-impl/status.html b/docs/build/html/api/net.corda.node.internal/-a-p-i-server-impl/status.html
new file mode 100644
index 0000000000..cab13d8a97
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.internal/-a-p-i-server-impl/status.html
@@ -0,0 +1,17 @@
+
+
+APIServerImpl.status -
+
+
+
+net.corda.node.internal / APIServerImpl / status
+
+status
+
+fun status ( ) : <ERROR CLASS>
+Overrides APIServer.status
+Report whether this node is started up or not.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.internal/-abstract-node/-database-configuration-exception/-init-.html b/docs/build/html/api/net.corda.node.internal/-abstract-node/-database-configuration-exception/-init-.html
new file mode 100644
index 0000000000..ce5ff7d66e
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.internal/-abstract-node/-database-configuration-exception/-init-.html
@@ -0,0 +1,14 @@
+
+
+AbstractNode.DatabaseConfigurationException. -
+
+
+
+net.corda.node.internal / AbstractNode / DatabaseConfigurationException / <init>
+
+<init>
+DatabaseConfigurationException ( msg : String )
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.internal/-abstract-node/-database-configuration-exception/index.html b/docs/build/html/api/net.corda.node.internal/-abstract-node/-database-configuration-exception/index.html
new file mode 100644
index 0000000000..3f58744949
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.internal/-abstract-node/-database-configuration-exception/index.html
@@ -0,0 +1,25 @@
+
+
+AbstractNode.DatabaseConfigurationException -
+
+
+
+net.corda.node.internal / AbstractNode / DatabaseConfigurationException
+
+DatabaseConfigurationException
+class DatabaseConfigurationException : Exception
+
+
+Constructors
+
+
+
+
+<init>
+
+DatabaseConfigurationException ( msg : String )
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.internal/-abstract-node/-init-.html b/docs/build/html/api/net.corda.node.internal/-abstract-node/-init-.html
new file mode 100644
index 0000000000..84d895164c
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.internal/-abstract-node/-init-.html
@@ -0,0 +1,20 @@
+
+
+AbstractNode. -
+
+
+
+net.corda.node.internal / AbstractNode / <init>
+
+<init>
+AbstractNode ( configuration : NodeConfiguration , networkMapService : SingleMessageRecipient ? , advertisedServices : Set < ServiceInfo > , platformClock : Clock )
+A base node implementation that can be customised either for production (with real implementations that do real
+I/O), or a mock implementation suitable for unit test environments.
+Marked as SingletonSerializeAsToken to prevent the invisible reference to AbstractNode in the ServiceHub accidentally
+sweeping up the Node into the Kryo checkpoint serialization via any protocols holding a reference to ServiceHub.
+
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.internal/-abstract-node/-p-r-i-v-a-t-e_-k-e-y_-f-i-l-e_-n-a-m-e.html b/docs/build/html/api/net.corda.node.internal/-abstract-node/-p-r-i-v-a-t-e_-k-e-y_-f-i-l-e_-n-a-m-e.html
new file mode 100644
index 0000000000..3638d86704
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.internal/-abstract-node/-p-r-i-v-a-t-e_-k-e-y_-f-i-l-e_-n-a-m-e.html
@@ -0,0 +1,15 @@
+
+
+AbstractNode.PRIVATE_KEY_FILE_NAME -
+
+
+
+net.corda.node.internal / AbstractNode / PRIVATE_KEY_FILE_NAME
+
+PRIVATE_KEY_FILE_NAME
+
+val PRIVATE_KEY_FILE_NAME : String
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.internal/-abstract-node/-p-u-b-l-i-c_-i-d-e-n-t-i-t-y_-f-i-l-e_-n-a-m-e.html b/docs/build/html/api/net.corda.node.internal/-abstract-node/-p-u-b-l-i-c_-i-d-e-n-t-i-t-y_-f-i-l-e_-n-a-m-e.html
new file mode 100644
index 0000000000..3b0aaca2a2
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.internal/-abstract-node/-p-u-b-l-i-c_-i-d-e-n-t-i-t-y_-f-i-l-e_-n-a-m-e.html
@@ -0,0 +1,15 @@
+
+
+AbstractNode.PUBLIC_IDENTITY_FILE_NAME -
+
+
+
+net.corda.node.internal / AbstractNode / PUBLIC_IDENTITY_FILE_NAME
+
+PUBLIC_IDENTITY_FILE_NAME
+
+val PUBLIC_IDENTITY_FILE_NAME : String
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.internal/-abstract-node/_services-that-accept-uploads.html b/docs/build/html/api/net.corda.node.internal/-abstract-node/_services-that-accept-uploads.html
new file mode 100644
index 0000000000..7195fd4cab
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.internal/-abstract-node/_services-that-accept-uploads.html
@@ -0,0 +1,15 @@
+
+
+AbstractNode._servicesThatAcceptUploads -
+
+
+
+net.corda.node.internal / AbstractNode / _servicesThatAcceptUploads
+
+_servicesThatAcceptUploads
+
+protected val _servicesThatAcceptUploads : ArrayList < AcceptsFileUpload >
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.internal/-abstract-node/acceptable-live-fiber-count-on-stop.html b/docs/build/html/api/net.corda.node.internal/-abstract-node/acceptable-live-fiber-count-on-stop.html
new file mode 100644
index 0000000000..133b3973a5
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.internal/-abstract-node/acceptable-live-fiber-count-on-stop.html
@@ -0,0 +1,15 @@
+
+
+AbstractNode.acceptableLiveFiberCountOnStop -
+
+
+
+net.corda.node.internal / AbstractNode / acceptableLiveFiberCountOnStop
+
+acceptableLiveFiberCountOnStop
+
+protected open fun acceptableLiveFiberCountOnStop ( ) : Int
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.internal/-abstract-node/advertised-services.html b/docs/build/html/api/net.corda.node.internal/-abstract-node/advertised-services.html
new file mode 100644
index 0000000000..93a16ff017
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.internal/-abstract-node/advertised-services.html
@@ -0,0 +1,15 @@
+
+
+AbstractNode.advertisedServices -
+
+
+
+net.corda.node.internal / AbstractNode / advertisedServices
+
+advertisedServices
+
+val advertisedServices : Set < ServiceInfo >
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.internal/-abstract-node/api.html b/docs/build/html/api/net.corda.node.internal/-abstract-node/api.html
new file mode 100644
index 0000000000..9cc3fe46ba
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.internal/-abstract-node/api.html
@@ -0,0 +1,15 @@
+
+
+AbstractNode.api -
+
+
+
+net.corda.node.internal / AbstractNode / api
+
+api
+
+lateinit var api : APIServer
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.internal/-abstract-node/checkpoint-storage.html b/docs/build/html/api/net.corda.node.internal/-abstract-node/checkpoint-storage.html
new file mode 100644
index 0000000000..b7eae822d5
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.internal/-abstract-node/checkpoint-storage.html
@@ -0,0 +1,15 @@
+
+
+AbstractNode.checkpointStorage -
+
+
+
+net.corda.node.internal / AbstractNode / checkpointStorage
+
+checkpointStorage
+
+lateinit var checkpointStorage : CheckpointStorage
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.internal/-abstract-node/configuration.html b/docs/build/html/api/net.corda.node.internal/-abstract-node/configuration.html
new file mode 100644
index 0000000000..7bda9f7bb0
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.internal/-abstract-node/configuration.html
@@ -0,0 +1,15 @@
+
+
+AbstractNode.configuration -
+
+
+
+net.corda.node.internal / AbstractNode / configuration
+
+configuration
+
+open val configuration : NodeConfiguration
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.internal/-abstract-node/construct-storage-service.html b/docs/build/html/api/net.corda.node.internal/-abstract-node/construct-storage-service.html
new file mode 100644
index 0000000000..d850ceafdc
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.internal/-abstract-node/construct-storage-service.html
@@ -0,0 +1,15 @@
+
+
+AbstractNode.constructStorageService -
+
+
+
+net.corda.node.internal / AbstractNode / constructStorageService
+
+constructStorageService
+
+protected open fun constructStorageService ( attachments : NodeAttachmentService , transactionStorage : TransactionStorage , stateMachineRecordedTransactionMappingStorage : StateMachineRecordedTransactionMappingStorage ) : StorageServiceImpl
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.internal/-abstract-node/create-node-dir.html b/docs/build/html/api/net.corda.node.internal/-abstract-node/create-node-dir.html
new file mode 100644
index 0000000000..790fbd516f
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.internal/-abstract-node/create-node-dir.html
@@ -0,0 +1,15 @@
+
+
+AbstractNode.createNodeDir -
+
+
+
+net.corda.node.internal / AbstractNode / createNodeDir
+
+createNodeDir
+
+protected fun createNodeDir ( ) : Unit
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.internal/-abstract-node/custom-services.html b/docs/build/html/api/net.corda.node.internal/-abstract-node/custom-services.html
new file mode 100644
index 0000000000..e6942e627d
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.internal/-abstract-node/custom-services.html
@@ -0,0 +1,15 @@
+
+
+AbstractNode.customServices -
+
+
+
+net.corda.node.internal / AbstractNode / customServices
+
+customServices
+
+val customServices : ArrayList < Any >
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.internal/-abstract-node/database.html b/docs/build/html/api/net.corda.node.internal/-abstract-node/database.html
new file mode 100644
index 0000000000..e34422c0e0
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.internal/-abstract-node/database.html
@@ -0,0 +1,15 @@
+
+
+AbstractNode.database -
+
+
+
+net.corda.node.internal / AbstractNode / database
+
+database
+
+lateinit var database : <ERROR CLASS>
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.internal/-abstract-node/db-closer.html b/docs/build/html/api/net.corda.node.internal/-abstract-node/db-closer.html
new file mode 100644
index 0000000000..d4760f9509
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.internal/-abstract-node/db-closer.html
@@ -0,0 +1,15 @@
+
+
+AbstractNode.dbCloser -
+
+
+
+net.corda.node.internal / AbstractNode / dbCloser
+
+dbCloser
+
+protected var dbCloser : Runnable ?
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.internal/-abstract-node/find-my-location.html b/docs/build/html/api/net.corda.node.internal/-abstract-node/find-my-location.html
new file mode 100644
index 0000000000..0691030d2f
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.internal/-abstract-node/find-my-location.html
@@ -0,0 +1,15 @@
+
+
+AbstractNode.findMyLocation -
+
+
+
+net.corda.node.internal / AbstractNode / findMyLocation
+
+findMyLocation
+
+open fun findMyLocation ( ) : PhysicalLocation ?
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.internal/-abstract-node/find-service.html b/docs/build/html/api/net.corda.node.internal/-abstract-node/find-service.html
new file mode 100644
index 0000000000..d7de0dd021
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.internal/-abstract-node/find-service.html
@@ -0,0 +1,16 @@
+
+
+AbstractNode.findService -
+
+
+
+net.corda.node.internal / AbstractNode / findService
+
+findService
+
+inline fun < reified T : Any > findService ( ) : <ERROR CLASS>
+Locates and returns a service of the given type if loaded, or throws an exception if not found.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.internal/-abstract-node/generate-key-pair.html b/docs/build/html/api/net.corda.node.internal/-abstract-node/generate-key-pair.html
new file mode 100644
index 0000000000..549c19c8cf
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.internal/-abstract-node/generate-key-pair.html
@@ -0,0 +1,15 @@
+
+
+AbstractNode.generateKeyPair -
+
+
+
+net.corda.node.internal / AbstractNode / generateKeyPair
+
+generateKeyPair
+
+protected open fun generateKeyPair ( ) : KeyPair
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.internal/-abstract-node/identity.html b/docs/build/html/api/net.corda.node.internal/-abstract-node/identity.html
new file mode 100644
index 0000000000..d78d0e6ae2
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.internal/-abstract-node/identity.html
@@ -0,0 +1,15 @@
+
+
+AbstractNode.identity -
+
+
+
+net.corda.node.internal / AbstractNode / identity
+
+identity
+
+lateinit var identity : IdentityService
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.internal/-abstract-node/in-node-network-map-service.html b/docs/build/html/api/net.corda.node.internal/-abstract-node/in-node-network-map-service.html
new file mode 100644
index 0000000000..1bc17414b5
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.internal/-abstract-node/in-node-network-map-service.html
@@ -0,0 +1,15 @@
+
+
+AbstractNode.inNodeNetworkMapService -
+
+
+
+net.corda.node.internal / AbstractNode / inNodeNetworkMapService
+
+inNodeNetworkMapService
+
+var inNodeNetworkMapService : NetworkMapService ?
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.internal/-abstract-node/in-node-notary-service.html b/docs/build/html/api/net.corda.node.internal/-abstract-node/in-node-notary-service.html
new file mode 100644
index 0000000000..4261b4226e
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.internal/-abstract-node/in-node-notary-service.html
@@ -0,0 +1,15 @@
+
+
+AbstractNode.inNodeNotaryService -
+
+
+
+net.corda.node.internal / AbstractNode / inNodeNotaryService
+
+inNodeNotaryService
+
+var inNodeNotaryService : NotaryService ?
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.internal/-abstract-node/index.html b/docs/build/html/api/net.corda.node.internal/-abstract-node/index.html
new file mode 100644
index 0000000000..8ef8dcddae
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.internal/-abstract-node/index.html
@@ -0,0 +1,455 @@
+
+
+AbstractNode -
+
+
+
+net.corda.node.internal / AbstractNode
+
+AbstractNode
+abstract class AbstractNode : SingletonSerializeAsToken
+A base node implementation that can be customised either for production (with real implementations that do real
+I/O), or a mock implementation suitable for unit test environments.
+Marked as SingletonSerializeAsToken to prevent the invisible reference to AbstractNode in the ServiceHub accidentally
+sweeping up the Node into the Kryo checkpoint serialization via any protocols holding a reference to ServiceHub.
+
+
+
+
+Exceptions
+
+Constructors
+
+
+
+
+<init>
+
+AbstractNode ( configuration : NodeConfiguration , networkMapService : SingleMessageRecipient ? , advertisedServices : Set < ServiceInfo > , platformClock : Clock )
A base node implementation that can be customised either for production (with real implementations that do real
+I/O), or a mock implementation suitable for unit test environments.
+
+
+
+
+Properties
+
+Functions
+
+Inherited Functions
+
+Companion Object Properties
+
+Inheritors
+
+
+
+
+Node
+
+class Node : AbstractNode
A Node manages a standalone server that takes part in the P2P network. It creates the services found in ServiceHub ,
+loads important data off disk and starts listening for connections.
+
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.internal/-abstract-node/info.html b/docs/build/html/api/net.corda.node.internal/-abstract-node/info.html
new file mode 100644
index 0000000000..f99a149da1
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.internal/-abstract-node/info.html
@@ -0,0 +1,15 @@
+
+
+AbstractNode.info -
+
+
+
+net.corda.node.internal / AbstractNode / info
+
+info
+
+val info : NodeInfo
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.internal/-abstract-node/initialise-database-persistence.html b/docs/build/html/api/net.corda.node.internal/-abstract-node/initialise-database-persistence.html
new file mode 100644
index 0000000000..6edd0c2118
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.internal/-abstract-node/initialise-database-persistence.html
@@ -0,0 +1,15 @@
+
+
+AbstractNode.initialiseDatabasePersistence -
+
+
+
+net.corda.node.internal / AbstractNode / initialiseDatabasePersistence
+
+initialiseDatabasePersistence
+
+protected open fun initialiseDatabasePersistence ( insideTransaction : ( ) -> Unit ) : Unit
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.internal/-abstract-node/initialise-storage-service.html b/docs/build/html/api/net.corda.node.internal/-abstract-node/initialise-storage-service.html
new file mode 100644
index 0000000000..f3bccfea1f
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.internal/-abstract-node/initialise-storage-service.html
@@ -0,0 +1,15 @@
+
+
+AbstractNode.initialiseStorageService -
+
+
+
+net.corda.node.internal / AbstractNode / initialiseStorageService
+
+initialiseStorageService
+
+protected open fun initialiseStorageService ( dir : Path ) : <ERROR CLASS> < TxWritableStorageService , CheckpointStorage >
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.internal/-abstract-node/is-previous-checkpoints-present.html b/docs/build/html/api/net.corda.node.internal/-abstract-node/is-previous-checkpoints-present.html
new file mode 100644
index 0000000000..d7b8da5965
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.internal/-abstract-node/is-previous-checkpoints-present.html
@@ -0,0 +1,15 @@
+
+
+AbstractNode.isPreviousCheckpointsPresent -
+
+
+
+net.corda.node.internal / AbstractNode / isPreviousCheckpointsPresent
+
+isPreviousCheckpointsPresent
+
+var isPreviousCheckpointsPresent : Boolean
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.internal/-abstract-node/key-management.html b/docs/build/html/api/net.corda.node.internal/-abstract-node/key-management.html
new file mode 100644
index 0000000000..150cb2cb1e
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.internal/-abstract-node/key-management.html
@@ -0,0 +1,15 @@
+
+
+AbstractNode.keyManagement -
+
+
+
+net.corda.node.internal / AbstractNode / keyManagement
+
+keyManagement
+
+lateinit var keyManagement : KeyManagementService
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.internal/-abstract-node/log.html b/docs/build/html/api/net.corda.node.internal/-abstract-node/log.html
new file mode 100644
index 0000000000..f0576f3291
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.internal/-abstract-node/log.html
@@ -0,0 +1,15 @@
+
+
+AbstractNode.log -
+
+
+
+net.corda.node.internal / AbstractNode / log
+
+log
+
+protected abstract val log : <ERROR CLASS>
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.internal/-abstract-node/make-attachment-storage.html b/docs/build/html/api/net.corda.node.internal/-abstract-node/make-attachment-storage.html
new file mode 100644
index 0000000000..9de02752fc
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.internal/-abstract-node/make-attachment-storage.html
@@ -0,0 +1,15 @@
+
+
+AbstractNode.makeAttachmentStorage -
+
+
+
+net.corda.node.internal / AbstractNode / makeAttachmentStorage
+
+makeAttachmentStorage
+
+protected fun makeAttachmentStorage ( dir : Path ) : NodeAttachmentService
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.internal/-abstract-node/make-identity-service.html b/docs/build/html/api/net.corda.node.internal/-abstract-node/make-identity-service.html
new file mode 100644
index 0000000000..2b06062b14
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.internal/-abstract-node/make-identity-service.html
@@ -0,0 +1,15 @@
+
+
+AbstractNode.makeIdentityService -
+
+
+
+net.corda.node.internal / AbstractNode / makeIdentityService
+
+makeIdentityService
+
+protected open fun makeIdentityService ( ) : IdentityService
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.internal/-abstract-node/make-key-management-service.html b/docs/build/html/api/net.corda.node.internal/-abstract-node/make-key-management-service.html
new file mode 100644
index 0000000000..be06e4b550
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.internal/-abstract-node/make-key-management-service.html
@@ -0,0 +1,15 @@
+
+
+AbstractNode.makeKeyManagementService -
+
+
+
+net.corda.node.internal / AbstractNode / makeKeyManagementService
+
+makeKeyManagementService
+
+protected open fun makeKeyManagementService ( ) : KeyManagementService
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.internal/-abstract-node/make-messaging-service.html b/docs/build/html/api/net.corda.node.internal/-abstract-node/make-messaging-service.html
new file mode 100644
index 0000000000..871347b141
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.internal/-abstract-node/make-messaging-service.html
@@ -0,0 +1,15 @@
+
+
+AbstractNode.makeMessagingService -
+
+
+
+net.corda.node.internal / AbstractNode / makeMessagingService
+
+makeMessagingService
+
+protected abstract fun makeMessagingService ( ) : MessagingServiceInternal
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.internal/-abstract-node/make-network-map-service.html b/docs/build/html/api/net.corda.node.internal/-abstract-node/make-network-map-service.html
new file mode 100644
index 0000000000..7894ff366f
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.internal/-abstract-node/make-network-map-service.html
@@ -0,0 +1,15 @@
+
+
+AbstractNode.makeNetworkMapService -
+
+
+
+net.corda.node.internal / AbstractNode / makeNetworkMapService
+
+makeNetworkMapService
+
+protected open fun makeNetworkMapService ( ) : Unit
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.internal/-abstract-node/make-notary-service.html b/docs/build/html/api/net.corda.node.internal/-abstract-node/make-notary-service.html
new file mode 100644
index 0000000000..de1ae89199
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.internal/-abstract-node/make-notary-service.html
@@ -0,0 +1,15 @@
+
+
+AbstractNode.makeNotaryService -
+
+
+
+net.corda.node.internal / AbstractNode / makeNotaryService
+
+makeNotaryService
+
+protected open fun makeNotaryService ( type : ServiceType ) : NotaryService
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.internal/-abstract-node/make-schema-service.html b/docs/build/html/api/net.corda.node.internal/-abstract-node/make-schema-service.html
new file mode 100644
index 0000000000..2cb22f6c0d
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.internal/-abstract-node/make-schema-service.html
@@ -0,0 +1,15 @@
+
+
+AbstractNode.makeSchemaService -
+
+
+
+net.corda.node.internal / AbstractNode / makeSchemaService
+
+makeSchemaService
+
+protected open fun makeSchemaService ( ) : SchemaService
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.internal/-abstract-node/make-uniqueness-provider.html b/docs/build/html/api/net.corda.node.internal/-abstract-node/make-uniqueness-provider.html
new file mode 100644
index 0000000000..520e6d3dd5
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.internal/-abstract-node/make-uniqueness-provider.html
@@ -0,0 +1,15 @@
+
+
+AbstractNode.makeUniquenessProvider -
+
+
+
+net.corda.node.internal / AbstractNode / makeUniquenessProvider
+
+makeUniquenessProvider
+
+protected abstract fun makeUniquenessProvider ( ) : UniquenessProvider
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.internal/-abstract-node/make-vault-service.html b/docs/build/html/api/net.corda.node.internal/-abstract-node/make-vault-service.html
new file mode 100644
index 0000000000..03d76b1fb5
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.internal/-abstract-node/make-vault-service.html
@@ -0,0 +1,15 @@
+
+
+AbstractNode.makeVaultService -
+
+
+
+net.corda.node.internal / AbstractNode / makeVaultService
+
+makeVaultService
+
+protected open fun makeVaultService ( ) : VaultService
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.internal/-abstract-node/net-map-cache.html b/docs/build/html/api/net.corda.node.internal/-abstract-node/net-map-cache.html
new file mode 100644
index 0000000000..06006925f7
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.internal/-abstract-node/net-map-cache.html
@@ -0,0 +1,15 @@
+
+
+AbstractNode.netMapCache -
+
+
+
+net.corda.node.internal / AbstractNode / netMapCache
+
+netMapCache
+
+lateinit var netMapCache : NetworkMapCache
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.internal/-abstract-node/net.html b/docs/build/html/api/net.corda.node.internal/-abstract-node/net.html
new file mode 100644
index 0000000000..47b5e8099c
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.internal/-abstract-node/net.html
@@ -0,0 +1,15 @@
+
+
+AbstractNode.net -
+
+
+
+net.corda.node.internal / AbstractNode / net
+
+net
+
+lateinit var net : MessagingServiceInternal
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.internal/-abstract-node/network-map-registration-future.html b/docs/build/html/api/net.corda.node.internal/-abstract-node/network-map-registration-future.html
new file mode 100644
index 0000000000..c739d9397b
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.internal/-abstract-node/network-map-registration-future.html
@@ -0,0 +1,15 @@
+
+
+AbstractNode.networkMapRegistrationFuture -
+
+
+
+net.corda.node.internal / AbstractNode / networkMapRegistrationFuture
+
+networkMapRegistrationFuture
+
+val networkMapRegistrationFuture : <ERROR CLASS> < Unit >
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.internal/-abstract-node/network-map-seq.html b/docs/build/html/api/net.corda.node.internal/-abstract-node/network-map-seq.html
new file mode 100644
index 0000000000..1c7530621c
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.internal/-abstract-node/network-map-seq.html
@@ -0,0 +1,16 @@
+
+
+AbstractNode.networkMapSeq -
+
+
+
+net.corda.node.internal / AbstractNode / networkMapSeq
+
+networkMapSeq
+
+var networkMapSeq : Long
+Sequence number of changes sent to the network map service, when registering/de-registering this node.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.internal/-abstract-node/network-map-service.html b/docs/build/html/api/net.corda.node.internal/-abstract-node/network-map-service.html
new file mode 100644
index 0000000000..b8c026d951
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.internal/-abstract-node/network-map-service.html
@@ -0,0 +1,15 @@
+
+
+AbstractNode.networkMapService -
+
+
+
+net.corda.node.internal / AbstractNode / networkMapService
+
+networkMapService
+
+val networkMapService : SingleMessageRecipient ?
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.internal/-abstract-node/no-network-map-configured.html b/docs/build/html/api/net.corda.node.internal/-abstract-node/no-network-map-configured.html
new file mode 100644
index 0000000000..7720edf425
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.internal/-abstract-node/no-network-map-configured.html
@@ -0,0 +1,16 @@
+
+
+AbstractNode.noNetworkMapConfigured -
+
+
+
+net.corda.node.internal / AbstractNode / noNetworkMapConfigured
+
+noNetworkMapConfigured
+
+protected open fun noNetworkMapConfigured ( ) : <ERROR CLASS> < Unit >
+This is overriden by the mock node implementation to enable operation without any network map service
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.internal/-abstract-node/obtain-legal-identity-key.html b/docs/build/html/api/net.corda.node.internal/-abstract-node/obtain-legal-identity-key.html
new file mode 100644
index 0000000000..8b03968ab2
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.internal/-abstract-node/obtain-legal-identity-key.html
@@ -0,0 +1,15 @@
+
+
+AbstractNode.obtainLegalIdentityKey -
+
+
+
+net.corda.node.internal / AbstractNode / obtainLegalIdentityKey
+
+obtainLegalIdentityKey
+
+protected fun obtainLegalIdentityKey ( ) : KeyPair
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.internal/-abstract-node/obtain-legal-identity.html b/docs/build/html/api/net.corda.node.internal/-abstract-node/obtain-legal-identity.html
new file mode 100644
index 0000000000..4af6798575
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.internal/-abstract-node/obtain-legal-identity.html
@@ -0,0 +1,15 @@
+
+
+AbstractNode.obtainLegalIdentity -
+
+
+
+net.corda.node.internal / AbstractNode / obtainLegalIdentity
+
+obtainLegalIdentity
+
+protected fun obtainLegalIdentity ( ) : Party
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.internal/-abstract-node/party-keys.html b/docs/build/html/api/net.corda.node.internal/-abstract-node/party-keys.html
new file mode 100644
index 0000000000..2c6d0758d5
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.internal/-abstract-node/party-keys.html
@@ -0,0 +1,15 @@
+
+
+AbstractNode.partyKeys -
+
+
+
+net.corda.node.internal / AbstractNode / partyKeys
+
+partyKeys
+
+protected val partyKeys : <ERROR CLASS>
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.internal/-abstract-node/platform-clock.html b/docs/build/html/api/net.corda.node.internal/-abstract-node/platform-clock.html
new file mode 100644
index 0000000000..adb052f0f4
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.internal/-abstract-node/platform-clock.html
@@ -0,0 +1,15 @@
+
+
+AbstractNode.platformClock -
+
+
+
+net.corda.node.internal / AbstractNode / platformClock
+
+platformClock
+
+val platformClock : Clock
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.internal/-abstract-node/plugin-registries.html b/docs/build/html/api/net.corda.node.internal/-abstract-node/plugin-registries.html
new file mode 100644
index 0000000000..66cbf5c38f
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.internal/-abstract-node/plugin-registries.html
@@ -0,0 +1,19 @@
+
+
+AbstractNode.pluginRegistries -
+
+
+
+net.corda.node.internal / AbstractNode / pluginRegistries
+
+pluginRegistries
+
+protected val pluginRegistries : List < CordaPluginRegistry >
+Fetch CordaPluginRegistry classes registered in META-INF/services/net.corda.core.node.CordaPluginRegistry files that exist in the classpath
+Getter
+
Fetch CordaPluginRegistry classes registered in META-INF/services/net.corda.core.node.CordaPluginRegistry files that exist in the classpath
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.internal/-abstract-node/protocol-logic-factory.html b/docs/build/html/api/net.corda.node.internal/-abstract-node/protocol-logic-factory.html
new file mode 100644
index 0000000000..ac8c6661e6
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.internal/-abstract-node/protocol-logic-factory.html
@@ -0,0 +1,15 @@
+
+
+AbstractNode.protocolLogicFactory -
+
+
+
+net.corda.node.internal / AbstractNode / protocolLogicFactory
+
+protocolLogicFactory
+
+lateinit var protocolLogicFactory : ProtocolLogicRefFactory
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.internal/-abstract-node/run-on-stop.html b/docs/build/html/api/net.corda.node.internal/-abstract-node/run-on-stop.html
new file mode 100644
index 0000000000..a372e9e780
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.internal/-abstract-node/run-on-stop.html
@@ -0,0 +1,15 @@
+
+
+AbstractNode.runOnStop -
+
+
+
+net.corda.node.internal / AbstractNode / runOnStop
+
+runOnStop
+
+protected val runOnStop : ArrayList < Runnable >
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.internal/-abstract-node/scheduler.html b/docs/build/html/api/net.corda.node.internal/-abstract-node/scheduler.html
new file mode 100644
index 0000000000..7b6d922dc6
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.internal/-abstract-node/scheduler.html
@@ -0,0 +1,15 @@
+
+
+AbstractNode.scheduler -
+
+
+
+net.corda.node.internal / AbstractNode / scheduler
+
+scheduler
+
+lateinit var scheduler : NodeSchedulerService
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.internal/-abstract-node/schemas.html b/docs/build/html/api/net.corda.node.internal/-abstract-node/schemas.html
new file mode 100644
index 0000000000..44d5458aaa
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.internal/-abstract-node/schemas.html
@@ -0,0 +1,15 @@
+
+
+AbstractNode.schemas -
+
+
+
+net.corda.node.internal / AbstractNode / schemas
+
+schemas
+
+lateinit var schemas : SchemaService
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.internal/-abstract-node/server-thread.html b/docs/build/html/api/net.corda.node.internal/-abstract-node/server-thread.html
new file mode 100644
index 0000000000..355737f7d1
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.internal/-abstract-node/server-thread.html
@@ -0,0 +1,15 @@
+
+
+AbstractNode.serverThread -
+
+
+
+net.corda.node.internal / AbstractNode / serverThread
+
+serverThread
+
+protected abstract val serverThread : AffinityExecutor
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.internal/-abstract-node/services-that-accept-uploads.html b/docs/build/html/api/net.corda.node.internal/-abstract-node/services-that-accept-uploads.html
new file mode 100644
index 0000000000..675305a134
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.internal/-abstract-node/services-that-accept-uploads.html
@@ -0,0 +1,15 @@
+
+
+AbstractNode.servicesThatAcceptUploads -
+
+
+
+net.corda.node.internal / AbstractNode / servicesThatAcceptUploads
+
+servicesThatAcceptUploads
+
+val servicesThatAcceptUploads : List < AcceptsFileUpload >
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.internal/-abstract-node/services.html b/docs/build/html/api/net.corda.node.internal/-abstract-node/services.html
new file mode 100644
index 0000000000..07dcc7ec3b
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.internal/-abstract-node/services.html
@@ -0,0 +1,15 @@
+
+
+AbstractNode.services -
+
+
+
+net.corda.node.internal / AbstractNode / services
+
+services
+
+val services : ServiceHubInternal
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.internal/-abstract-node/setup.html b/docs/build/html/api/net.corda.node.internal/-abstract-node/setup.html
new file mode 100644
index 0000000000..9e84bc39e2
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.internal/-abstract-node/setup.html
@@ -0,0 +1,16 @@
+
+
+AbstractNode.setup -
+
+
+
+net.corda.node.internal / AbstractNode / setup
+
+setup
+
+open fun setup ( ) : AbstractNode
+Run any tasks that are needed to ensure the node is in a correct state before running start().
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.internal/-abstract-node/smm.html b/docs/build/html/api/net.corda.node.internal/-abstract-node/smm.html
new file mode 100644
index 0000000000..0cdcabf87f
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.internal/-abstract-node/smm.html
@@ -0,0 +1,15 @@
+
+
+AbstractNode.smm -
+
+
+
+net.corda.node.internal / AbstractNode / smm
+
+smm
+
+lateinit var smm : StateMachineManager
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.internal/-abstract-node/start-messaging-service.html b/docs/build/html/api/net.corda.node.internal/-abstract-node/start-messaging-service.html
new file mode 100644
index 0000000000..e37f891060
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.internal/-abstract-node/start-messaging-service.html
@@ -0,0 +1,15 @@
+
+
+AbstractNode.startMessagingService -
+
+
+
+net.corda.node.internal / AbstractNode / startMessagingService
+
+startMessagingService
+
+protected abstract fun startMessagingService ( rpcOps : RPCOps ) : Unit
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.internal/-abstract-node/start.html b/docs/build/html/api/net.corda.node.internal/-abstract-node/start.html
new file mode 100644
index 0000000000..f0181cc871
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.internal/-abstract-node/start.html
@@ -0,0 +1,15 @@
+
+
+AbstractNode.start -
+
+
+
+net.corda.node.internal / AbstractNode / start
+
+start
+
+open fun start ( ) : AbstractNode
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.internal/-abstract-node/started.html b/docs/build/html/api/net.corda.node.internal/-abstract-node/started.html
new file mode 100644
index 0000000000..a7eada7854
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.internal/-abstract-node/started.html
@@ -0,0 +1,16 @@
+
+
+AbstractNode.started -
+
+
+
+net.corda.node.internal / AbstractNode / started
+
+started
+
+var started : Boolean
+Set to true once start has been successfully called.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.internal/-abstract-node/stop.html b/docs/build/html/api/net.corda.node.internal/-abstract-node/stop.html
new file mode 100644
index 0000000000..abb99d239f
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.internal/-abstract-node/stop.html
@@ -0,0 +1,15 @@
+
+
+AbstractNode.stop -
+
+
+
+net.corda.node.internal / AbstractNode / stop
+
+stop
+
+open fun stop ( ) : Unit
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.internal/-abstract-node/storage.html b/docs/build/html/api/net.corda.node.internal/-abstract-node/storage.html
new file mode 100644
index 0000000000..820624f4ca
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.internal/-abstract-node/storage.html
@@ -0,0 +1,15 @@
+
+
+AbstractNode.storage -
+
+
+
+net.corda.node.internal / AbstractNode / storage
+
+storage
+
+lateinit var storage : TxWritableStorageService
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.internal/-abstract-node/uniqueness-provider.html b/docs/build/html/api/net.corda.node.internal/-abstract-node/uniqueness-provider.html
new file mode 100644
index 0000000000..09f8d872f9
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.internal/-abstract-node/uniqueness-provider.html
@@ -0,0 +1,15 @@
+
+
+AbstractNode.uniquenessProvider -
+
+
+
+net.corda.node.internal / AbstractNode / uniquenessProvider
+
+uniquenessProvider
+
+var uniquenessProvider : UniquenessProvider ?
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.internal/-abstract-node/vault.html b/docs/build/html/api/net.corda.node.internal/-abstract-node/vault.html
new file mode 100644
index 0000000000..4a0a8b2b6e
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.internal/-abstract-node/vault.html
@@ -0,0 +1,15 @@
+
+
+AbstractNode.vault -
+
+
+
+net.corda.node.internal / AbstractNode / vault
+
+vault
+
+lateinit var vault : VaultService
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.internal/-configuration-exception/-init-.html b/docs/build/html/api/net.corda.node.internal/-configuration-exception/-init-.html
new file mode 100644
index 0000000000..2e485dfe6f
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.internal/-configuration-exception/-init-.html
@@ -0,0 +1,14 @@
+
+
+ConfigurationException. -
+
+
+
+net.corda.node.internal / ConfigurationException / <init>
+
+<init>
+ConfigurationException ( message : String )
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.internal/-configuration-exception/index.html b/docs/build/html/api/net.corda.node.internal/-configuration-exception/index.html
new file mode 100644
index 0000000000..4cf89a38a6
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.internal/-configuration-exception/index.html
@@ -0,0 +1,36 @@
+
+
+ConfigurationException -
+
+
+
+net.corda.node.internal / ConfigurationException
+
+ConfigurationException
+class ConfigurationException : Exception
+
+
+Constructors
+
+
+
+
+<init>
+
+ConfigurationException ( message : String )
+
+
+
+Extension Properties
+
+
+
+
+rootCause
+
+val Throwable . rootCause : Throwable
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.internal/-corda-r-p-c-ops-impl/-c-a-s-h_-p-e-r-m-i-s-s-i-o-n.html b/docs/build/html/api/net.corda.node.internal/-corda-r-p-c-ops-impl/-c-a-s-h_-p-e-r-m-i-s-s-i-o-n.html
new file mode 100644
index 0000000000..c310be6306
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.internal/-corda-r-p-c-ops-impl/-c-a-s-h_-p-e-r-m-i-s-s-i-o-n.html
@@ -0,0 +1,15 @@
+
+
+CordaRPCOpsImpl.CASH_PERMISSION -
+
+
+
+net.corda.node.internal / CordaRPCOpsImpl / CASH_PERMISSION
+
+CASH_PERMISSION
+
+const val CASH_PERMISSION : String
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.internal/-corda-r-p-c-ops-impl/-init-.html b/docs/build/html/api/net.corda.node.internal/-corda-r-p-c-ops-impl/-init-.html
new file mode 100644
index 0000000000..f2701e1adf
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.internal/-corda-r-p-c-ops-impl/-init-.html
@@ -0,0 +1,16 @@
+
+
+CordaRPCOpsImpl. -
+
+
+
+net.corda.node.internal / CordaRPCOpsImpl / <init>
+
+<init>
+CordaRPCOpsImpl ( services : ServiceHub , smm : StateMachineManager , database : <ERROR CLASS> )
+Server side implementations of RPCs available to MQ based client tools. Execution takes place on the server
+thread (i.e. serially). Arguments are serialised and deserialised automatically.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.internal/-corda-r-p-c-ops-impl/-input-state-ref-resolve-failed/-init-.html b/docs/build/html/api/net.corda.node.internal/-corda-r-p-c-ops-impl/-input-state-ref-resolve-failed/-init-.html
new file mode 100644
index 0000000000..5a898d6ce5
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.internal/-corda-r-p-c-ops-impl/-input-state-ref-resolve-failed/-init-.html
@@ -0,0 +1,14 @@
+
+
+CordaRPCOpsImpl.InputStateRefResolveFailed. -
+
+
+
+net.corda.node.internal / CordaRPCOpsImpl / InputStateRefResolveFailed / <init>
+
+<init>
+InputStateRefResolveFailed ( stateRefs : List < StateRef > )
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.internal/-corda-r-p-c-ops-impl/-input-state-ref-resolve-failed/index.html b/docs/build/html/api/net.corda.node.internal/-corda-r-p-c-ops-impl/-input-state-ref-resolve-failed/index.html
new file mode 100644
index 0000000000..ec8f828f4c
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.internal/-corda-r-p-c-ops-impl/-input-state-ref-resolve-failed/index.html
@@ -0,0 +1,25 @@
+
+
+CordaRPCOpsImpl.InputStateRefResolveFailed -
+
+
+
+net.corda.node.internal / CordaRPCOpsImpl / InputStateRefResolveFailed
+
+InputStateRefResolveFailed
+class InputStateRefResolveFailed : Exception
+
+
+Constructors
+
+
+
+
+<init>
+
+InputStateRefResolveFailed ( stateRefs : List < StateRef > )
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.internal/-corda-r-p-c-ops-impl/add-vault-transaction-note.html b/docs/build/html/api/net.corda.node.internal/-corda-r-p-c-ops-impl/add-vault-transaction-note.html
new file mode 100644
index 0000000000..6d3b82d2e2
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.internal/-corda-r-p-c-ops-impl/add-vault-transaction-note.html
@@ -0,0 +1,16 @@
+
+
+CordaRPCOpsImpl.addVaultTransactionNote -
+
+
+
+net.corda.node.internal / CordaRPCOpsImpl / addVaultTransactionNote
+
+addVaultTransactionNote
+
+fun addVaultTransactionNote ( txnId : SecureHash , txnNote : String ) : Unit
+Overrides CordaRPCOps.addVaultTransactionNote
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.internal/-corda-r-p-c-ops-impl/database.html b/docs/build/html/api/net.corda.node.internal/-corda-r-p-c-ops-impl/database.html
new file mode 100644
index 0000000000..65f92a98c0
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.internal/-corda-r-p-c-ops-impl/database.html
@@ -0,0 +1,15 @@
+
+
+CordaRPCOpsImpl.database -
+
+
+
+net.corda.node.internal / CordaRPCOpsImpl / database
+
+database
+
+val database : <ERROR CLASS>
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.internal/-corda-r-p-c-ops-impl/execute-command.html b/docs/build/html/api/net.corda.node.internal/-corda-r-p-c-ops-impl/execute-command.html
new file mode 100644
index 0000000000..7e3959f23a
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.internal/-corda-r-p-c-ops-impl/execute-command.html
@@ -0,0 +1,18 @@
+
+
+CordaRPCOpsImpl.executeCommand -
+
+
+
+net.corda.node.internal / CordaRPCOpsImpl / executeCommand
+
+executeCommand
+
+fun executeCommand ( command : ClientToServiceCommand ) : TransactionBuildResult
+Overrides CordaRPCOps.executeCommand
+Executes the given command if the user is permissioned to do so, possibly triggering cash creation etc.
+TODO: The signature of this is weird because its the remains of an old service call, we should have a call for each command instead.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.internal/-corda-r-p-c-ops-impl/get-vault-transaction-notes.html b/docs/build/html/api/net.corda.node.internal/-corda-r-p-c-ops-impl/get-vault-transaction-notes.html
new file mode 100644
index 0000000000..e42a1046bb
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.internal/-corda-r-p-c-ops-impl/get-vault-transaction-notes.html
@@ -0,0 +1,16 @@
+
+
+CordaRPCOpsImpl.getVaultTransactionNotes -
+
+
+
+net.corda.node.internal / CordaRPCOpsImpl / getVaultTransactionNotes
+
+getVaultTransactionNotes
+
+fun getVaultTransactionNotes ( txnId : SecureHash ) : Iterable < String >
+Overrides CordaRPCOps.getVaultTransactionNotes
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.internal/-corda-r-p-c-ops-impl/index.html b/docs/build/html/api/net.corda.node.internal/-corda-r-p-c-ops-impl/index.html
new file mode 100644
index 0000000000..34f6379c55
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.internal/-corda-r-p-c-ops-impl/index.html
@@ -0,0 +1,149 @@
+
+
+CordaRPCOpsImpl -
+
+
+
+net.corda.node.internal / CordaRPCOpsImpl
+
+CordaRPCOpsImpl
+class CordaRPCOpsImpl : CordaRPCOps
+Server side implementations of RPCs available to MQ based client tools. Execution takes place on the server
+thread (i.e. serially). Arguments are serialised and deserialised automatically.
+
+
+Exceptions
+
+Constructors
+
+
+
+
+<init>
+
+CordaRPCOpsImpl ( services : ServiceHub , smm : StateMachineManager , database : <ERROR CLASS> )
Server side implementations of RPCs available to MQ based client tools. Execution takes place on the server
+thread (i.e. serially). Arguments are serialised and deserialised automatically.
+
+
+
+
+Properties
+
+Functions
+
+
+
+
+addVaultTransactionNote
+
+fun addVaultTransactionNote ( txnId : SecureHash , txnNote : String ) : Unit
+
+
+
+executeCommand
+
+fun executeCommand ( command : ClientToServiceCommand ) : TransactionBuildResult
Executes the given command if the user is permissioned to do so, possibly triggering cash creation etc.
+TODO: The signature of this is weird because its the remains of an old service call, we should have a call for each command instead.
+
+
+
+
+getVaultTransactionNotes
+
+fun getVaultTransactionNotes ( txnId : SecureHash ) : Iterable < String >
+
+
+
+networkMapUpdates
+
+fun networkMapUpdates ( ) : <ERROR CLASS> < List < NodeInfo > , <ERROR CLASS> < MapChange > >
Returns all parties currently visible on the network with their advertised services and an observable of future updates to the network.
+
+
+
+
+nodeIdentity
+
+fun nodeIdentity ( ) : NodeInfo
Returns Nodes identity, assuming this will not change while the node is running.
+
+
+
+
+stateMachineRecordedTransactionMapping
+
+fun stateMachineRecordedTransactionMapping ( ) : <ERROR CLASS> < List < StateMachineTransactionMapping > , <ERROR CLASS> < StateMachineTransactionMapping > >
Returns a snapshot list of existing state machine id - recorded transaction hash mappings, and a stream of future
+such mappings as well.
+
+
+
+
+stateMachinesAndUpdates
+
+fun stateMachinesAndUpdates ( ) : <ERROR CLASS> < List < StateMachineInfo > , <ERROR CLASS> < StateMachineUpdate > >
Returns a pair of currently in-progress state machine infos and an observable of future state machine adds/removes.
+
+
+
+
+vaultAndUpdates
+
+fun vaultAndUpdates ( ) : <ERROR CLASS> < List < StateAndRef < ContractState > > , <ERROR CLASS> < Update > >
Returns a pair of head states in the vault and an observable of future updates to the vault.
+
+
+
+
+verifiedTransactions
+
+fun verifiedTransactions ( ) : <ERROR CLASS> < List < SignedTransaction > , <ERROR CLASS> < SignedTransaction > >
Returns a pair of all recorded transactions and an observable of future recorded ones.
+
+
+
+
+Companion Object Properties
+
+
+
diff --git a/docs/build/html/api/net.corda.node.internal/-corda-r-p-c-ops-impl/network-map-updates.html b/docs/build/html/api/net.corda.node.internal/-corda-r-p-c-ops-impl/network-map-updates.html
new file mode 100644
index 0000000000..df76f13581
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.internal/-corda-r-p-c-ops-impl/network-map-updates.html
@@ -0,0 +1,17 @@
+
+
+CordaRPCOpsImpl.networkMapUpdates -
+
+
+
+net.corda.node.internal / CordaRPCOpsImpl / networkMapUpdates
+
+networkMapUpdates
+
+fun networkMapUpdates ( ) : <ERROR CLASS> < List < NodeInfo > , <ERROR CLASS> < MapChange > >
+Overrides CordaRPCOps.networkMapUpdates
+Returns all parties currently visible on the network with their advertised services and an observable of future updates to the network.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.internal/-corda-r-p-c-ops-impl/node-identity.html b/docs/build/html/api/net.corda.node.internal/-corda-r-p-c-ops-impl/node-identity.html
new file mode 100644
index 0000000000..2e04d8dfda
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.internal/-corda-r-p-c-ops-impl/node-identity.html
@@ -0,0 +1,17 @@
+
+
+CordaRPCOpsImpl.nodeIdentity -
+
+
+
+net.corda.node.internal / CordaRPCOpsImpl / nodeIdentity
+
+nodeIdentity
+
+fun nodeIdentity ( ) : NodeInfo
+Overrides CordaRPCOps.nodeIdentity
+Returns Nodes identity, assuming this will not change while the node is running.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.internal/-corda-r-p-c-ops-impl/protocol-version.html b/docs/build/html/api/net.corda.node.internal/-corda-r-p-c-ops-impl/protocol-version.html
new file mode 100644
index 0000000000..04faf8fccf
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.internal/-corda-r-p-c-ops-impl/protocol-version.html
@@ -0,0 +1,20 @@
+
+
+CordaRPCOpsImpl.protocolVersion -
+
+
+
+net.corda.node.internal / CordaRPCOpsImpl / protocolVersion
+
+protocolVersion
+
+val protocolVersion : Int
+Overrides RPCOps.protocolVersion
+Returns the RPC protocol version. Exists since version 0 so guaranteed to be present.
+Getter
+
Returns the RPC protocol version. Exists since version 0 so guaranteed to be present.
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.internal/-corda-r-p-c-ops-impl/services.html b/docs/build/html/api/net.corda.node.internal/-corda-r-p-c-ops-impl/services.html
new file mode 100644
index 0000000000..a92b63ea70
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.internal/-corda-r-p-c-ops-impl/services.html
@@ -0,0 +1,15 @@
+
+
+CordaRPCOpsImpl.services -
+
+
+
+net.corda.node.internal / CordaRPCOpsImpl / services
+
+services
+
+val services : ServiceHub
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.internal/-corda-r-p-c-ops-impl/smm.html b/docs/build/html/api/net.corda.node.internal/-corda-r-p-c-ops-impl/smm.html
new file mode 100644
index 0000000000..b38e8cb3df
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.internal/-corda-r-p-c-ops-impl/smm.html
@@ -0,0 +1,15 @@
+
+
+CordaRPCOpsImpl.smm -
+
+
+
+net.corda.node.internal / CordaRPCOpsImpl / smm
+
+smm
+
+val smm : StateMachineManager
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.internal/-corda-r-p-c-ops-impl/state-machine-recorded-transaction-mapping.html b/docs/build/html/api/net.corda.node.internal/-corda-r-p-c-ops-impl/state-machine-recorded-transaction-mapping.html
new file mode 100644
index 0000000000..33a76b1b1b
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.internal/-corda-r-p-c-ops-impl/state-machine-recorded-transaction-mapping.html
@@ -0,0 +1,18 @@
+
+
+CordaRPCOpsImpl.stateMachineRecordedTransactionMapping -
+
+
+
+net.corda.node.internal / CordaRPCOpsImpl / stateMachineRecordedTransactionMapping
+
+stateMachineRecordedTransactionMapping
+
+fun stateMachineRecordedTransactionMapping ( ) : <ERROR CLASS> < List < StateMachineTransactionMapping > , <ERROR CLASS> < StateMachineTransactionMapping > >
+Overrides CordaRPCOps.stateMachineRecordedTransactionMapping
+Returns a snapshot list of existing state machine id - recorded transaction hash mappings, and a stream of future
+such mappings as well.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.internal/-corda-r-p-c-ops-impl/state-machines-and-updates.html b/docs/build/html/api/net.corda.node.internal/-corda-r-p-c-ops-impl/state-machines-and-updates.html
new file mode 100644
index 0000000000..718f6f2a9f
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.internal/-corda-r-p-c-ops-impl/state-machines-and-updates.html
@@ -0,0 +1,17 @@
+
+
+CordaRPCOpsImpl.stateMachinesAndUpdates -
+
+
+
+net.corda.node.internal / CordaRPCOpsImpl / stateMachinesAndUpdates
+
+stateMachinesAndUpdates
+
+fun stateMachinesAndUpdates ( ) : <ERROR CLASS> < List < StateMachineInfo > , <ERROR CLASS> < StateMachineUpdate > >
+Overrides CordaRPCOps.stateMachinesAndUpdates
+Returns a pair of currently in-progress state machine infos and an observable of future state machine adds/removes.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.internal/-corda-r-p-c-ops-impl/vault-and-updates.html b/docs/build/html/api/net.corda.node.internal/-corda-r-p-c-ops-impl/vault-and-updates.html
new file mode 100644
index 0000000000..56219d2b2a
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.internal/-corda-r-p-c-ops-impl/vault-and-updates.html
@@ -0,0 +1,17 @@
+
+
+CordaRPCOpsImpl.vaultAndUpdates -
+
+
+
+net.corda.node.internal / CordaRPCOpsImpl / vaultAndUpdates
+
+vaultAndUpdates
+
+fun vaultAndUpdates ( ) : <ERROR CLASS> < List < StateAndRef < ContractState > > , <ERROR CLASS> < Update > >
+Overrides CordaRPCOps.vaultAndUpdates
+Returns a pair of head states in the vault and an observable of future updates to the vault.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.internal/-corda-r-p-c-ops-impl/verified-transactions.html b/docs/build/html/api/net.corda.node.internal/-corda-r-p-c-ops-impl/verified-transactions.html
new file mode 100644
index 0000000000..386b35b59a
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.internal/-corda-r-p-c-ops-impl/verified-transactions.html
@@ -0,0 +1,17 @@
+
+
+CordaRPCOpsImpl.verifiedTransactions -
+
+
+
+net.corda.node.internal / CordaRPCOpsImpl / verifiedTransactions
+
+verifiedTransactions
+
+fun verifiedTransactions ( ) : <ERROR CLASS> < List < SignedTransaction > , <ERROR CLASS> < SignedTransaction > >
+Overrides CordaRPCOps.verifiedTransactions
+Returns a pair of all recorded transactions and an observable of future recorded ones.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.internal/-node/-d-e-f-a-u-l-t_-p-o-r-t.html b/docs/build/html/api/net.corda.node.internal/-node/-d-e-f-a-u-l-t_-p-o-r-t.html
new file mode 100644
index 0000000000..63d6d59149
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.internal/-node/-d-e-f-a-u-l-t_-p-o-r-t.html
@@ -0,0 +1,16 @@
+
+
+Node.DEFAULT_PORT -
+
+
+
+net.corda.node.internal / Node / DEFAULT_PORT
+
+DEFAULT_PORT
+
+val DEFAULT_PORT : Int
+The port that is used by default if none is specified. As you know, 31337 is the most elite number.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.internal/-node/-init-.html b/docs/build/html/api/net.corda.node.internal/-node/-init-.html
new file mode 100644
index 0000000000..0c4a3056fa
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.internal/-node/-init-.html
@@ -0,0 +1,30 @@
+
+
+Node. -
+
+
+
+net.corda.node.internal / Node / <init>
+
+<init>
+Node ( configuration : FullNodeConfiguration , networkMapAddress : SingleMessageRecipient ? , advertisedServices : Set < ServiceInfo > , clock : Clock = NodeClock())
+A Node manages a standalone server that takes part in the P2P network. It creates the services found in ServiceHub ,
+loads important data off disk and starts listening for connections.
+Parameters
+
+configuration
- This is typically loaded from a TypeSafe HOCON configuration file.
+
+
+networkMapAddress
- An external network map service to use. Should only ever be null when creating the first
+network map service, while bootstrapping a network.
+
+
+advertisedServices
- The services this node advertises. This must be a subset of the services it runs,
+but nodes are not required to advertise services they run (hence subset).
+
+
+clock
- The clock used within the node and by all protocols etc.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.internal/-node/configuration.html b/docs/build/html/api/net.corda.node.internal/-node/configuration.html
new file mode 100644
index 0000000000..b9c9b9cacb
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.internal/-node/configuration.html
@@ -0,0 +1,16 @@
+
+
+Node.configuration -
+
+
+
+net.corda.node.internal / Node / configuration
+
+configuration
+
+val configuration : FullNodeConfiguration
+Overrides AbstractNode.configuration
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.internal/-node/index.html b/docs/build/html/api/net.corda.node.internal/-node/index.html
new file mode 100644
index 0000000000..f106af0e75
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.internal/-node/index.html
@@ -0,0 +1,462 @@
+
+
+Node -
+
+
+
+net.corda.node.internal / Node
+
+Node
+class Node : AbstractNode
+A Node manages a standalone server that takes part in the P2P network. It creates the services found in ServiceHub ,
+loads important data off disk and starts listening for connections.
+Parameters
+
+configuration
- This is typically loaded from a TypeSafe HOCON configuration file.
+
+
+networkMapAddress
- An external network map service to use. Should only ever be null when creating the first
+network map service, while bootstrapping a network.
+
+
+advertisedServices
- The services this node advertises. This must be a subset of the services it runs,
+but nodes are not required to advertise services they run (hence subset).
+
+
+clock
- The clock used within the node and by all protocols etc.
+
+
+Constructors
+
+Properties
+
+Inherited Properties
+
+Functions
+
+
+
+
+initialiseDatabasePersistence
+
+fun initialiseDatabasePersistence ( insideTransaction : ( ) -> Unit ) : Unit
If the node is persisting to an embedded H2 database, then expose this via TCP with a JDBC URL of the form:
+jdbc:h2:tcp://:/node
+with username and password as per the DataSource connection details. The key element to enabling this support is to
+ensure that you specify a JDBC connection URL of the form jdbc:h2:file: in the node config and that you include
+the H2 option AUTO_SERVER_PORT set to the port you desire to use (0 will give a dynamically allocated port number)
+but exclude the H2 option AUTO_SERVER=TRUE.
+This is not using the H2 "automatic mixed mode" directly but leans on many of the underpinnings. For more details
+on H2 URLs and configuration see: http://www.h2database.com/html/features.html#database_url
+
+
+
+
+makeMessagingService
+
+fun makeMessagingService ( ) : MessagingServiceInternal
+
+
+
+makeUniquenessProvider
+
+fun makeUniquenessProvider ( ) : PersistentUniquenessProvider
+
+
+
+run
+
+fun run ( ) : Unit
Starts a blocking event loop for message dispatch.
+
+
+
+
+setup
+
+fun setup ( ) : Node
Run any tasks that are needed to ensure the node is in a correct state before running start().
+
+
+
+
+start
+
+fun start ( ) : Node
+
+
+
+startMessagingService
+
+fun startMessagingService ( rpcOps : RPCOps ) : Unit
+
+
+
+stop
+
+fun stop ( ) : Unit
+
+
+
+Inherited Functions
+
+Companion Object Properties
+
+
+
+
+DEFAULT_PORT
+
+val DEFAULT_PORT : Int
The port that is used by default if none is specified. As you know, 31337 is the most elite number.
+
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.internal/-node/initialise-database-persistence.html b/docs/build/html/api/net.corda.node.internal/-node/initialise-database-persistence.html
new file mode 100644
index 0000000000..d7dd2521bd
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.internal/-node/initialise-database-persistence.html
@@ -0,0 +1,24 @@
+
+
+Node.initialiseDatabasePersistence -
+
+
+
+net.corda.node.internal / Node / initialiseDatabasePersistence
+
+initialiseDatabasePersistence
+
+protected fun initialiseDatabasePersistence ( insideTransaction : ( ) -> Unit ) : Unit
+Overrides AbstractNode.initialiseDatabasePersistence
+If the node is persisting to an embedded H2 database, then expose this via TCP with a JDBC URL of the form:
+jdbc:h2:tcp://:/node
+with username and password as per the DataSource connection details. The key element to enabling this support is to
+ensure that you specify a JDBC connection URL of the form jdbc:h2:file: in the node config and that you include
+the H2 option AUTO_SERVER_PORT set to the port you desire to use (0 will give a dynamically allocated port number)
+but exclude the H2 option AUTO_SERVER=TRUE.
+This is not using the H2 "automatic mixed mode" directly but leans on many of the underpinnings. For more details
+on H2 URLs and configuration see: http://www.h2database.com/html/features.html#database_url
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.internal/-node/log.html b/docs/build/html/api/net.corda.node.internal/-node/log.html
new file mode 100644
index 0000000000..a495e66e80
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.internal/-node/log.html
@@ -0,0 +1,16 @@
+
+
+Node.log -
+
+
+
+net.corda.node.internal / Node / log
+
+log
+
+protected val log : <ERROR CLASS>
+Overrides AbstractNode.log
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.internal/-node/make-messaging-service.html b/docs/build/html/api/net.corda.node.internal/-node/make-messaging-service.html
new file mode 100644
index 0000000000..25c5a7d583
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.internal/-node/make-messaging-service.html
@@ -0,0 +1,16 @@
+
+
+Node.makeMessagingService -
+
+
+
+net.corda.node.internal / Node / makeMessagingService
+
+makeMessagingService
+
+protected fun makeMessagingService ( ) : MessagingServiceInternal
+Overrides AbstractNode.makeMessagingService
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.internal/-node/make-uniqueness-provider.html b/docs/build/html/api/net.corda.node.internal/-node/make-uniqueness-provider.html
new file mode 100644
index 0000000000..9beed19c32
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.internal/-node/make-uniqueness-provider.html
@@ -0,0 +1,16 @@
+
+
+Node.makeUniquenessProvider -
+
+
+
+net.corda.node.internal / Node / makeUniquenessProvider
+
+makeUniquenessProvider
+
+protected fun makeUniquenessProvider ( ) : PersistentUniquenessProvider
+Overrides AbstractNode.makeUniquenessProvider
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.internal/-node/message-broker.html b/docs/build/html/api/net.corda.node.internal/-node/message-broker.html
new file mode 100644
index 0000000000..4ddac53235
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.internal/-node/message-broker.html
@@ -0,0 +1,15 @@
+
+
+Node.messageBroker -
+
+
+
+net.corda.node.internal / Node / messageBroker
+
+messageBroker
+
+var messageBroker : ArtemisMessagingServer ?
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.internal/-node/run.html b/docs/build/html/api/net.corda.node.internal/-node/run.html
new file mode 100644
index 0000000000..b6f30bcff5
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.internal/-node/run.html
@@ -0,0 +1,16 @@
+
+
+Node.run -
+
+
+
+net.corda.node.internal / Node / run
+
+run
+
+fun run ( ) : Unit
+Starts a blocking event loop for message dispatch.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.internal/-node/server-thread.html b/docs/build/html/api/net.corda.node.internal/-node/server-thread.html
new file mode 100644
index 0000000000..60fef39369
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.internal/-node/server-thread.html
@@ -0,0 +1,16 @@
+
+
+Node.serverThread -
+
+
+
+net.corda.node.internal / Node / serverThread
+
+serverThread
+
+protected val serverThread : ServiceAffinityExecutor
+Overrides AbstractNode.serverThread
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.internal/-node/setup.html b/docs/build/html/api/net.corda.node.internal/-node/setup.html
new file mode 100644
index 0000000000..6a7f640302
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.internal/-node/setup.html
@@ -0,0 +1,17 @@
+
+
+Node.setup -
+
+
+
+net.corda.node.internal / Node / setup
+
+setup
+
+fun setup ( ) : Node
+Overrides AbstractNode.setup
+Run any tasks that are needed to ensure the node is in a correct state before running start().
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.internal/-node/start-messaging-service.html b/docs/build/html/api/net.corda.node.internal/-node/start-messaging-service.html
new file mode 100644
index 0000000000..2376ed3c2b
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.internal/-node/start-messaging-service.html
@@ -0,0 +1,16 @@
+
+
+Node.startMessagingService -
+
+
+
+net.corda.node.internal / Node / startMessagingService
+
+startMessagingService
+
+protected fun startMessagingService ( rpcOps : RPCOps ) : Unit
+Overrides AbstractNode.startMessagingService
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.internal/-node/start.html b/docs/build/html/api/net.corda.node.internal/-node/start.html
new file mode 100644
index 0000000000..5bdc63db72
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.internal/-node/start.html
@@ -0,0 +1,16 @@
+
+
+Node.start -
+
+
+
+net.corda.node.internal / Node / start
+
+start
+
+fun start ( ) : Node
+Overrides AbstractNode.start
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.internal/-node/stop.html b/docs/build/html/api/net.corda.node.internal/-node/stop.html
new file mode 100644
index 0000000000..3016759aae
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.internal/-node/stop.html
@@ -0,0 +1,16 @@
+
+
+Node.stop -
+
+
+
+net.corda.node.internal / Node / stop
+
+stop
+
+fun stop ( ) : Unit
+Overrides AbstractNode.stop
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.internal/-node/web-server.html b/docs/build/html/api/net.corda.node.internal/-node/web-server.html
new file mode 100644
index 0000000000..47850cb2ba
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.internal/-node/web-server.html
@@ -0,0 +1,15 @@
+
+
+Node.webServer -
+
+
+
+net.corda.node.internal / Node / webServer
+
+webServer
+
+lateinit var webServer : <ERROR CLASS>
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.internal/index.html b/docs/build/html/api/net.corda.node.internal/index.html
new file mode 100644
index 0000000000..078b7c8a40
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.internal/index.html
@@ -0,0 +1,57 @@
+
+
+net.corda.node.internal -
+
+
+
+net.corda.node.internal
+
+Package net.corda.node.internal
+Types
+
+
+
+
+APIServerImpl
+
+class APIServerImpl : APIServer
+
+
+
+AbstractNode
+
+abstract class AbstractNode : SingletonSerializeAsToken
A base node implementation that can be customised either for production (with real implementations that do real
+I/O), or a mock implementation suitable for unit test environments.
+
+
+
+
+CordaRPCOpsImpl
+
+class CordaRPCOpsImpl : CordaRPCOps
Server side implementations of RPCs available to MQ based client tools. Execution takes place on the server
+thread (i.e. serially). Arguments are serialised and deserialised automatically.
+
+
+
+
+Node
+
+class Node : AbstractNode
A Node manages a standalone server that takes part in the P2P network. It creates the services found in ServiceHub ,
+loads important data off disk and starts listening for connections.
+
+
+
+
+Exceptions
+
+
+
diff --git a/docs/build/html/api/net.corda.node.serialization/-node-clock/-init-.html b/docs/build/html/api/net.corda.node.serialization/-node-clock/-init-.html
new file mode 100644
index 0000000000..e8fc1d9fb6
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.serialization/-node-clock/-init-.html
@@ -0,0 +1,15 @@
+
+
+NodeClock. -
+
+
+
+net.corda.node.serialization / NodeClock / <init>
+
+<init>
+NodeClock ( delegateClock : Clock = Clock.systemUTC())
+A Clock that tokenizes itself when serialized, and delegates to an underlying Clock implementation.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.serialization/-node-clock/get-zone.html b/docs/build/html/api/net.corda.node.serialization/-node-clock/get-zone.html
new file mode 100644
index 0000000000..3dae470f8b
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.serialization/-node-clock/get-zone.html
@@ -0,0 +1,15 @@
+
+
+NodeClock.getZone -
+
+
+
+net.corda.node.serialization / NodeClock / getZone
+
+getZone
+
+fun getZone ( ) : ZoneId
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.serialization/-node-clock/index.html b/docs/build/html/api/net.corda.node.serialization/-node-clock/index.html
new file mode 100644
index 0000000000..d88759e923
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.serialization/-node-clock/index.html
@@ -0,0 +1,69 @@
+
+
+NodeClock -
+
+
+
+net.corda.node.serialization / NodeClock
+
+NodeClock
+class NodeClock : Clock , SerializeAsToken
+A Clock that tokenizes itself when serialized, and delegates to an underlying Clock implementation.
+
+
+Constructors
+
+
+
+
+<init>
+
+NodeClock ( delegateClock : Clock = Clock.systemUTC())
A Clock that tokenizes itself when serialized, and delegates to an underlying Clock implementation.
+
+
+
+
+Functions
+
+Extension Functions
+
+
+
+
+awaitWithDeadline
+
+fun Clock . awaitWithDeadline ( deadline : Instant , future : Future < * > = GuavaSettableFuture.create<Any>()) : Boolean
Wait until the given Future is complete or the deadline is reached, with support for MutableClock implementations
+used in demos or testing. This will substitute a Fiber compatible Future so the current Strand is not blocked.
+
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.serialization/-node-clock/instant.html b/docs/build/html/api/net.corda.node.serialization/-node-clock/instant.html
new file mode 100644
index 0000000000..72b3564cb6
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.serialization/-node-clock/instant.html
@@ -0,0 +1,15 @@
+
+
+NodeClock.instant -
+
+
+
+net.corda.node.serialization / NodeClock / instant
+
+instant
+
+fun instant ( ) : Instant
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.serialization/-node-clock/to-token.html b/docs/build/html/api/net.corda.node.serialization/-node-clock/to-token.html
new file mode 100644
index 0000000000..53914f4d17
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.serialization/-node-clock/to-token.html
@@ -0,0 +1,16 @@
+
+
+NodeClock.toToken -
+
+
+
+net.corda.node.serialization / NodeClock / toToken
+
+toToken
+
+fun toToken ( context : SerializeAsTokenContext ) : SerializationToken
+Overrides SerializeAsToken.toToken
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.serialization/-node-clock/with-zone.html b/docs/build/html/api/net.corda.node.serialization/-node-clock/with-zone.html
new file mode 100644
index 0000000000..3ea6350fb1
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.serialization/-node-clock/with-zone.html
@@ -0,0 +1,15 @@
+
+
+NodeClock.withZone -
+
+
+
+net.corda.node.serialization / NodeClock / withZone
+
+withZone
+
+fun withZone ( zone : ZoneId ) : Clock
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.serialization/index.html b/docs/build/html/api/net.corda.node.serialization/index.html
new file mode 100644
index 0000000000..6c0e19eafb
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.serialization/index.html
@@ -0,0 +1,23 @@
+
+
+net.corda.node.serialization -
+
+
+
+net.corda.node.serialization
+
+Package net.corda.node.serialization
+Types
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.api/-abstract-node-service/-init-.html b/docs/build/html/api/net.corda.node.services.api/-abstract-node-service/-init-.html
new file mode 100644
index 0000000000..a1a4e3e26e
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.api/-abstract-node-service/-init-.html
@@ -0,0 +1,15 @@
+
+
+AbstractNodeService. -
+
+
+
+net.corda.node.services.api / AbstractNodeService / <init>
+
+<init>
+AbstractNodeService ( services : ServiceHubInternal )
+Abstract superclass for services that a node can host, which provides helper functions.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.api/-abstract-node-service/add-message-handler.html b/docs/build/html/api/net.corda.node.services.api/-abstract-node-service/add-message-handler.html
new file mode 100644
index 0000000000..e9039927e2
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.api/-abstract-node-service/add-message-handler.html
@@ -0,0 +1,40 @@
+
+
+AbstractNodeService.addMessageHandler -
+
+
+
+net.corda.node.services.api / AbstractNodeService / addMessageHandler
+
+addMessageHandler
+
+protected inline fun < reified Q : ServiceRequestMessage , reified R : Any > addMessageHandler ( topic : String , crossinline handler : ( Q ) -> R , crossinline exceptionConsumer : ( Message , Exception ) -> Unit ) : MessageHandlerRegistration
+Register a handler for a message topic. In comparison to using net.addMessageHandler() this manages a lot of
+common boilerplate code. Exceptions are caught and passed to the provided consumer. If you just want a simple
+acknowledgement response with no content, use Ack .
+Parameters
+
+topic
- the topic, without the default session ID postfix (".0).
+
+
+handler
- a function to handle the deserialised request and return an optional response (if return type not Unit)
+
+
+exceptionConsumer
- a function to which any thrown exception is passed.
+
+
+
+protected inline fun < reified Q : ServiceRequestMessage , reified R : Any > addMessageHandler ( topic : String , crossinline handler : ( Q ) -> R ) : MessageHandlerRegistration
+Register a handler for a message topic. In comparison to using net.addMessageHandler() this manages a lot of
+common boilerplate code. Exceptions are propagated to the messaging layer. If you just want a simple
+acknowledgement response with no content, use Ack .
+Parameters
+
+topic
- the topic, without the default session ID postfix (".0).
+
+
+handler
- a function to handle the deserialised request and return an optional response (if return type not Unit).
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.api/-abstract-node-service/index.html b/docs/build/html/api/net.corda.node.services.api/-abstract-node-service/index.html
new file mode 100644
index 0000000000..b60008c844
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.api/-abstract-node-service/index.html
@@ -0,0 +1,84 @@
+
+
+AbstractNodeService -
+
+
+
+net.corda.node.services.api / AbstractNodeService
+
+AbstractNodeService
+abstract class AbstractNodeService : SingletonSerializeAsToken
+Abstract superclass for services that a node can host, which provides helper functions.
+
+
+Constructors
+
+
+
+
+<init>
+
+AbstractNodeService ( services : ServiceHubInternal )
Abstract superclass for services that a node can host, which provides helper functions.
+
+
+
+
+Properties
+
+Functions
+
+
+
+
+addMessageHandler
+
+fun < Q : ServiceRequestMessage , R : Any > addMessageHandler ( topic : String , handler : ( Q ) -> R , exceptionConsumer : ( Message , Exception ) -> Unit ) : MessageHandlerRegistration
Register a handler for a message topic. In comparison to using net.addMessageHandler() this manages a lot of
+common boilerplate code. Exceptions are caught and passed to the provided consumer. If you just want a simple
+acknowledgement response with no content, use Ack .
+fun < Q : ServiceRequestMessage , R : Any > addMessageHandler ( topic : String , handler : ( Q ) -> R ) : MessageHandlerRegistration
Register a handler for a message topic. In comparison to using net.addMessageHandler() this manages a lot of
+common boilerplate code. Exceptions are propagated to the messaging layer. If you just want a simple
+acknowledgement response with no content, use Ack .
+
+
+
+
+Inherited Functions
+
+Inheritors
+
+
+
+
+AbstractNetworkMapService
+
+abstract class AbstractNetworkMapService : NetworkMapService , AbstractNodeService
Abstracted out core functionality as the basis for a persistent implementation, as well as existing in-memory implementation.
+
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.api/-abstract-node-service/net.html b/docs/build/html/api/net.corda.node.services.api/-abstract-node-service/net.html
new file mode 100644
index 0000000000..c795f8ed07
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.api/-abstract-node-service/net.html
@@ -0,0 +1,15 @@
+
+
+AbstractNodeService.net -
+
+
+
+net.corda.node.services.api / AbstractNodeService / net
+
+net
+
+val net : MessagingServiceInternal
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.api/-abstract-node-service/services.html b/docs/build/html/api/net.corda.node.services.api/-abstract-node-service/services.html
new file mode 100644
index 0000000000..91198be37f
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.api/-abstract-node-service/services.html
@@ -0,0 +1,15 @@
+
+
+AbstractNodeService.services -
+
+
+
+net.corda.node.services.api / AbstractNodeService / services
+
+services
+
+val services : ServiceHubInternal
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.api/-accepts-file-upload/acceptable-file-extensions.html b/docs/build/html/api/net.corda.node.services.api/-accepts-file-upload/acceptable-file-extensions.html
new file mode 100644
index 0000000000..8a8e817f51
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.api/-accepts-file-upload/acceptable-file-extensions.html
@@ -0,0 +1,16 @@
+
+
+AcceptsFileUpload.acceptableFileExtensions -
+
+
+
+net.corda.node.services.api / AcceptsFileUpload / acceptableFileExtensions
+
+acceptableFileExtensions
+
+abstract val acceptableFileExtensions : List < String >
+What file extensions are acceptable for the file to be handed to upload()
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.api/-accepts-file-upload/data-type-prefix.html b/docs/build/html/api/net.corda.node.services.api/-accepts-file-upload/data-type-prefix.html
new file mode 100644
index 0000000000..9586c3f8d1
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.api/-accepts-file-upload/data-type-prefix.html
@@ -0,0 +1,16 @@
+
+
+AcceptsFileUpload.dataTypePrefix -
+
+
+
+net.corda.node.services.api / AcceptsFileUpload / dataTypePrefix
+
+dataTypePrefix
+
+abstract val dataTypePrefix : String
+A string that prefixes the URLs, e.g. "attachments" or "interest-rates". Should be OK for URLs.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.api/-accepts-file-upload/index.html b/docs/build/html/api/net.corda.node.services.api/-accepts-file-upload/index.html
new file mode 100644
index 0000000000..77a3e89cfc
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.api/-accepts-file-upload/index.html
@@ -0,0 +1,62 @@
+
+
+AcceptsFileUpload -
+
+
+
+net.corda.node.services.api / AcceptsFileUpload
+
+AcceptsFileUpload
+interface AcceptsFileUpload
+A service that implements AcceptsFileUpload can have new binary data provided to it via an HTTP upload.
+TODO: In future, also accept uploads over the MQ interface too.
+
+
+
+
+Properties
+
+
+
+
+acceptableFileExtensions
+
+abstract val acceptableFileExtensions : List < String >
What file extensions are acceptable for the file to be handed to upload()
+
+
+
+
+dataTypePrefix
+
+abstract val dataTypePrefix : String
A string that prefixes the URLs, e.g. "attachments" or "interest-rates". Should be OK for URLs.
+
+
+
+
+Functions
+
+
+
+
+upload
+
+abstract fun upload ( data : InputStream ) : String
Accepts the data in the given input stream, and returns some sort of useful return message that will be sent
+back to the user in the response.
+
+
+
+
+Inheritors
+
+
+
+
+NodeAttachmentService
+
+class NodeAttachmentService : AttachmentStorage , AcceptsFileUpload
Stores attachments in the specified local directory, which must exist. Doesnt allow new attachments to be uploaded.
+
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.api/-accepts-file-upload/upload.html b/docs/build/html/api/net.corda.node.services.api/-accepts-file-upload/upload.html
new file mode 100644
index 0000000000..a009230fb3
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.api/-accepts-file-upload/upload.html
@@ -0,0 +1,17 @@
+
+
+AcceptsFileUpload.upload -
+
+
+
+net.corda.node.services.api / AcceptsFileUpload / upload
+
+upload
+
+abstract fun upload ( data : InputStream ) : String
+Accepts the data in the given input stream, and returns some sort of useful return message that will be sent
+back to the user in the response.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.api/-checkpoint-storage/add-checkpoint.html b/docs/build/html/api/net.corda.node.services.api/-checkpoint-storage/add-checkpoint.html
new file mode 100644
index 0000000000..d794e6a6ce
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.api/-checkpoint-storage/add-checkpoint.html
@@ -0,0 +1,16 @@
+
+
+CheckpointStorage.addCheckpoint -
+
+
+
+net.corda.node.services.api / CheckpointStorage / addCheckpoint
+
+addCheckpoint
+
+abstract fun addCheckpoint ( checkpoint : Checkpoint ) : Unit
+Add a new checkpoint to the store.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.api/-checkpoint-storage/for-each.html b/docs/build/html/api/net.corda.node.services.api/-checkpoint-storage/for-each.html
new file mode 100644
index 0000000000..bd37e94c60
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.api/-checkpoint-storage/for-each.html
@@ -0,0 +1,18 @@
+
+
+CheckpointStorage.forEach -
+
+
+
+net.corda.node.services.api / CheckpointStorage / forEach
+
+forEach
+
+abstract fun forEach ( block : ( Checkpoint ) -> Boolean ) : Unit
+Allows the caller to process safely in a thread safe fashion the set of all checkpoints.
+The checkpoints are only valid during the lifetime of a single call to the block, to allow memory management.
+Return false from the block to terminate further iteration.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.api/-checkpoint-storage/index.html b/docs/build/html/api/net.corda.node.services.api/-checkpoint-storage/index.html
new file mode 100644
index 0000000000..6a59205459
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.api/-checkpoint-storage/index.html
@@ -0,0 +1,56 @@
+
+
+CheckpointStorage -
+
+
+
+net.corda.node.services.api / CheckpointStorage
+
+CheckpointStorage
+interface CheckpointStorage
+Thread-safe storage of fiber checkpoints.
+
+
+Functions
+
+
+
+
+addCheckpoint
+
+abstract fun addCheckpoint ( checkpoint : Checkpoint ) : Unit
Add a new checkpoint to the store.
+
+
+
+
+forEach
+
+abstract fun forEach ( block : ( Checkpoint ) -> Boolean ) : Unit
Allows the caller to process safely in a thread safe fashion the set of all checkpoints.
+The checkpoints are only valid during the lifetime of a single call to the block, to allow memory management.
+Return false from the block to terminate further iteration.
+
+
+
+
+removeCheckpoint
+
+abstract fun removeCheckpoint ( checkpoint : Checkpoint ) : Unit
Remove existing checkpoint from the store. It is an error to attempt to remove a checkpoint which doesnt exist
+in the store. Doing so will throw an IllegalArgumentException .
+
+
+
+
+Inheritors
+
+
+
+
+DBCheckpointStorage
+
+class DBCheckpointStorage : CheckpointStorage
Simple checkpoint key value storage in DB using the underlying JDBCHashMap and transactional context of the call sites.
+
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.api/-checkpoint-storage/remove-checkpoint.html b/docs/build/html/api/net.corda.node.services.api/-checkpoint-storage/remove-checkpoint.html
new file mode 100644
index 0000000000..516eb810a7
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.api/-checkpoint-storage/remove-checkpoint.html
@@ -0,0 +1,17 @@
+
+
+CheckpointStorage.removeCheckpoint -
+
+
+
+net.corda.node.services.api / CheckpointStorage / removeCheckpoint
+
+removeCheckpoint
+
+abstract fun removeCheckpoint ( checkpoint : Checkpoint ) : Unit
+Remove existing checkpoint from the store. It is an error to attempt to remove a checkpoint which doesnt exist
+in the store. Doing so will throw an IllegalArgumentException .
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.api/-checkpoint/-init-.html b/docs/build/html/api/net.corda.node.services.api/-checkpoint/-init-.html
new file mode 100644
index 0000000000..2ed3ecc655
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.api/-checkpoint/-init-.html
@@ -0,0 +1,14 @@
+
+
+Checkpoint. -
+
+
+
+net.corda.node.services.api / Checkpoint / <init>
+
+<init>
+Checkpoint ( serializedFiber : SerializedBytes < ProtocolStateMachineImpl < * > > )
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.api/-checkpoint/equals.html b/docs/build/html/api/net.corda.node.services.api/-checkpoint/equals.html
new file mode 100644
index 0000000000..b21a2c9b83
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.api/-checkpoint/equals.html
@@ -0,0 +1,15 @@
+
+
+Checkpoint.equals -
+
+
+
+net.corda.node.services.api / Checkpoint / equals
+
+equals
+
+fun equals ( other : Any ? ) : Boolean
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.api/-checkpoint/hash-code.html b/docs/build/html/api/net.corda.node.services.api/-checkpoint/hash-code.html
new file mode 100644
index 0000000000..52a01b5729
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.api/-checkpoint/hash-code.html
@@ -0,0 +1,15 @@
+
+
+Checkpoint.hashCode -
+
+
+
+net.corda.node.services.api / Checkpoint / hashCode
+
+hashCode
+
+fun hashCode ( ) : Int
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.api/-checkpoint/id.html b/docs/build/html/api/net.corda.node.services.api/-checkpoint/id.html
new file mode 100644
index 0000000000..d014927851
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.api/-checkpoint/id.html
@@ -0,0 +1,15 @@
+
+
+Checkpoint.id -
+
+
+
+net.corda.node.services.api / Checkpoint / id
+
+id
+
+val id : SecureHash
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.api/-checkpoint/index.html b/docs/build/html/api/net.corda.node.services.api/-checkpoint/index.html
new file mode 100644
index 0000000000..a9986dc63f
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.api/-checkpoint/index.html
@@ -0,0 +1,65 @@
+
+
+Checkpoint -
+
+
+
+net.corda.node.services.api / Checkpoint
+
+Checkpoint
+class Checkpoint
+
+
+Constructors
+
+Properties
+
+Functions
+
+
+
+
+equals
+
+fun equals ( other : Any ? ) : Boolean
+
+
+
+hashCode
+
+fun hashCode ( ) : Int
+
+
+
+toString
+
+fun toString ( ) : String
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.api/-checkpoint/serialized-fiber.html b/docs/build/html/api/net.corda.node.services.api/-checkpoint/serialized-fiber.html
new file mode 100644
index 0000000000..8ea302c02c
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.api/-checkpoint/serialized-fiber.html
@@ -0,0 +1,15 @@
+
+
+Checkpoint.serializedFiber -
+
+
+
+net.corda.node.services.api / Checkpoint / serializedFiber
+
+serializedFiber
+
+val serializedFiber : SerializedBytes < ProtocolStateMachineImpl < * > >
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.api/-checkpoint/to-string.html b/docs/build/html/api/net.corda.node.services.api/-checkpoint/to-string.html
new file mode 100644
index 0000000000..24e2dca446
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.api/-checkpoint/to-string.html
@@ -0,0 +1,15 @@
+
+
+Checkpoint.toString -
+
+
+
+net.corda.node.services.api / Checkpoint / toString
+
+toString
+
+fun toString ( ) : String
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.api/-messaging-service-builder/index.html b/docs/build/html/api/net.corda.node.services.api/-messaging-service-builder/index.html
new file mode 100644
index 0000000000..31ffabadde
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.api/-messaging-service-builder/index.html
@@ -0,0 +1,33 @@
+
+
+MessagingServiceBuilder -
+
+
+
+net.corda.node.services.api / MessagingServiceBuilder
+
+MessagingServiceBuilder
+interface MessagingServiceBuilder < out T : MessagingServiceInternal >
+This class lets you start up a MessagingService . Its purpose is to stop you from getting access to the methods
+on the messaging service interface until you have successfully started up the system. One of these objects should
+be the only way to obtain a reference to a MessagingService . Startup may be a slow process: some implementations
+may let you cast the returned future to an object that lets you get status info.
+A specific implementation of the controller class will have extra features that let you customise it before starting
+it up.
+
+
+
+
+Functions
+
+
+
+
+start
+
+abstract fun start ( ) : <ERROR CLASS> < out T >
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.api/-messaging-service-builder/start.html b/docs/build/html/api/net.corda.node.services.api/-messaging-service-builder/start.html
new file mode 100644
index 0000000000..35758bc500
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.api/-messaging-service-builder/start.html
@@ -0,0 +1,15 @@
+
+
+MessagingServiceBuilder.start -
+
+
+
+net.corda.node.services.api / MessagingServiceBuilder / start
+
+start
+
+abstract fun start ( ) : <ERROR CLASS> < out T >
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.api/-messaging-service-internal/index.html b/docs/build/html/api/net.corda.node.services.api/-messaging-service-internal/index.html
new file mode 100644
index 0000000000..22e053e120
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.api/-messaging-service-internal/index.html
@@ -0,0 +1,142 @@
+
+
+MessagingServiceInternal -
+
+
+
+net.corda.node.services.api / MessagingServiceInternal
+
+MessagingServiceInternal
+interface MessagingServiceInternal : MessagingService
+
+
+Inherited Properties
+
+Functions
+
+
+
+
+stop
+
+abstract fun stop ( ) : Unit
Initiates shutdown: if called from a thread that isnt controlled by the executor passed to the constructor
+then this will block until all in-flight messages have finished being handled and acknowledged. If called
+from a thread thats a part of the AffinityExecutor given to the constructor, it returns immediately and
+shutdown is asynchronous.
+
+
+
+
+Inherited Functions
+
+
+
+
+addMessageHandler
+
+abstract fun addMessageHandler ( topic : String = "", sessionID : Long = DEFAULT_SESSION_ID, callback : ( Message , MessageHandlerRegistration ) -> Unit ) : MessageHandlerRegistration
The provided function will be invoked for each received message whose topic matches the given string. The callback
+will run on threads provided by the messaging service, and the callback is expected to be thread safe as a result.
+abstract fun addMessageHandler ( topicSession : TopicSession , callback : ( Message , MessageHandlerRegistration ) -> Unit ) : MessageHandlerRegistration
The provided function will be invoked for each received message whose topic and session matches. The callback
+will run on threads provided by the messaging service, and the callback is expected to be thread safe as a result.
+
+
+
+
+createMessage
+
+abstract fun createMessage ( topicSession : TopicSession , data : ByteArray , uuid : UUID = UUID.randomUUID()) : Message
Returns an initialised Message with the current time, etc, already filled in.
+
+
+
+
+removeMessageHandler
+
+abstract fun removeMessageHandler ( registration : MessageHandlerRegistration ) : Unit
Removes a handler given the object returned from addMessageHandler . The callback will no longer be invoked once
+this method has returned, although executions that are currently in flight will not be interrupted.
+
+
+
+
+send
+
+abstract fun send ( message : Message , target : MessageRecipients ) : Unit
Sends a message to the given receiver. The details of how receivers are identified is up to the messaging
+implementation: the type system provides an opaque high level view, with more fine grained control being
+available via type casting. Once this function returns the message is queued for delivery but not necessarily
+delivered: if the recipients are offline then the message could be queued hours or days later.
+
+
+
+
+Extension Functions
+
+
+
+
+createMessage
+
+fun MessagingService . createMessage ( topic : String , sessionID : Long = DEFAULT_SESSION_ID, data : ByteArray ) : Message
Returns an initialised Message with the current time, etc, already filled in.
+
+
+
+
+onNext
+
+fun < M : Any > MessagingService . onNext ( topic : String , sessionId : Long ) : <ERROR CLASS> < M >
Returns a ListenableFuture of the next message payload (Message.data ) which is received on the given topic and sessionId.
+The payload is deserilaized to an object of type M . Any exceptions thrown will be captured by the future.
+
+
+
+
+runOnNextMessage
+
+fun MessagingService . runOnNextMessage ( topic : String , sessionID : Long , callback : ( Message ) -> Unit ) : Unit
Registers a handler for the given topic and session ID that runs the given callback with the message and then removes
+itself. This is useful for one-shot handlers that arent supposed to stick around permanently. Note that this callback
+doesnt take the registration object, unlike the callback to MessagingService.addMessageHandler , as the handler is
+automatically deregistered before the callback runs.
+fun MessagingService . runOnNextMessage ( topicSession : TopicSession , callback : ( Message ) -> Unit ) : Unit
Registers a handler for the given topic and session that runs the given callback with the message and then removes
+itself. This is useful for one-shot handlers that arent supposed to stick around permanently. Note that this callback
+doesnt take the registration object, unlike the callback to MessagingService.addMessageHandler .
+
+
+
+
+send
+
+fun MessagingService . send ( topic : String , sessionID : Long , payload : Any , to : MessageRecipients , uuid : UUID = UUID.randomUUID()) : Unit
+fun MessagingService . send ( topicSession : TopicSession , payload : Any , to : MessageRecipients , uuid : UUID = UUID.randomUUID()) : Unit
+
+
+
+sendRequest
+
+fun < R : Any > MessagingService . sendRequest ( topic : String , request : ServiceRequestMessage , target : SingleMessageRecipient ) : <ERROR CLASS> < R >
Sends a ServiceRequestMessage to target and returns a ListenableFuture of the response.
+
+
+
+
+Inheritors
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.api/-messaging-service-internal/stop.html b/docs/build/html/api/net.corda.node.services.api/-messaging-service-internal/stop.html
new file mode 100644
index 0000000000..bf5cf0f9ae
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.api/-messaging-service-internal/stop.html
@@ -0,0 +1,19 @@
+
+
+MessagingServiceInternal.stop -
+
+
+
+net.corda.node.services.api / MessagingServiceInternal / stop
+
+stop
+
+abstract fun stop ( ) : Unit
+Initiates shutdown: if called from a thread that isnt controlled by the executor passed to the constructor
+then this will block until all in-flight messages have finished being handled and acknowledged. If called
+from a thread thats a part of the AffinityExecutor given to the constructor, it returns immediately and
+shutdown is asynchronous.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.api/-monitoring-service/-init-.html b/docs/build/html/api/net.corda.node.services.api/-monitoring-service/-init-.html
new file mode 100644
index 0000000000..5f91043d01
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.api/-monitoring-service/-init-.html
@@ -0,0 +1,16 @@
+
+
+MonitoringService. -
+
+
+
+net.corda.node.services.api / MonitoringService / <init>
+
+<init>
+MonitoringService ( metrics : <ERROR CLASS> )
+Provides access to various metrics and ways to notify monitoring services of things, for sysadmin purposes.
+This is not an interface because it is too lightweight to bother mocking out.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.api/-monitoring-service/index.html b/docs/build/html/api/net.corda.node.services.api/-monitoring-service/index.html
new file mode 100644
index 0000000000..a70c38d735
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.api/-monitoring-service/index.html
@@ -0,0 +1,51 @@
+
+
+MonitoringService -
+
+
+
+net.corda.node.services.api / MonitoringService
+
+MonitoringService
+class MonitoringService : SingletonSerializeAsToken
+Provides access to various metrics and ways to notify monitoring services of things, for sysadmin purposes.
+This is not an interface because it is too lightweight to bother mocking out.
+
+
+Constructors
+
+
+
+
+<init>
+
+MonitoringService ( metrics : <ERROR CLASS> )
Provides access to various metrics and ways to notify monitoring services of things, for sysadmin purposes.
+This is not an interface because it is too lightweight to bother mocking out.
+
+
+
+
+Properties
+
+
+
+
+metrics
+
+val metrics : <ERROR CLASS>
+
+
+
+Inherited Functions
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.api/-monitoring-service/metrics.html b/docs/build/html/api/net.corda.node.services.api/-monitoring-service/metrics.html
new file mode 100644
index 0000000000..a26498d5af
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.api/-monitoring-service/metrics.html
@@ -0,0 +1,15 @@
+
+
+MonitoringService.metrics -
+
+
+
+net.corda.node.services.api / MonitoringService / metrics
+
+metrics
+
+val metrics : <ERROR CLASS>
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.api/-regulator-service/index.html b/docs/build/html/api/net.corda.node.services.api/-regulator-service/index.html
new file mode 100644
index 0000000000..15ca29bf2e
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.api/-regulator-service/index.html
@@ -0,0 +1,26 @@
+
+
+RegulatorService -
+
+
+
+net.corda.node.services.api / RegulatorService
+
+RegulatorService
+interface RegulatorService
+Placeholder interface for regulator services.
+
+
+Companion Object Properties
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.api/-regulator-service/type.html b/docs/build/html/api/net.corda.node.services.api/-regulator-service/type.html
new file mode 100644
index 0000000000..17e67f2f3b
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.api/-regulator-service/type.html
@@ -0,0 +1,15 @@
+
+
+RegulatorService.type -
+
+
+
+net.corda.node.services.api / RegulatorService / type
+
+type
+
+val type : ServiceType
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.api/-schema-service/-schema-options/-init-.html b/docs/build/html/api/net.corda.node.services.api/-schema-service/-schema-options/-init-.html
new file mode 100644
index 0000000000..ea7a8545dc
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.api/-schema-service/-schema-options/-init-.html
@@ -0,0 +1,15 @@
+
+
+SchemaService.SchemaOptions. -
+
+
+
+net.corda.node.services.api / SchemaService / SchemaOptions / <init>
+
+<init>
+SchemaOptions ( databaseSchema : String ? , tablePrefix : String ? )
+Represents any options configured on the node for a schema.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.api/-schema-service/-schema-options/database-schema.html b/docs/build/html/api/net.corda.node.services.api/-schema-service/-schema-options/database-schema.html
new file mode 100644
index 0000000000..89d7a38193
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.api/-schema-service/-schema-options/database-schema.html
@@ -0,0 +1,15 @@
+
+
+SchemaService.SchemaOptions.databaseSchema -
+
+
+
+net.corda.node.services.api / SchemaService / SchemaOptions / databaseSchema
+
+databaseSchema
+
+val databaseSchema : String ?
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.api/-schema-service/-schema-options/index.html b/docs/build/html/api/net.corda.node.services.api/-schema-service/-schema-options/index.html
new file mode 100644
index 0000000000..050a242290
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.api/-schema-service/-schema-options/index.html
@@ -0,0 +1,44 @@
+
+
+SchemaService.SchemaOptions -
+
+
+
+net.corda.node.services.api / SchemaService / SchemaOptions
+
+SchemaOptions
+data class SchemaOptions
+Represents any options configured on the node for a schema.
+
+
+Constructors
+
+
+
+
+<init>
+
+SchemaOptions ( databaseSchema : String ? , tablePrefix : String ? )
Represents any options configured on the node for a schema.
+
+
+
+
+Properties
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.api/-schema-service/-schema-options/table-prefix.html b/docs/build/html/api/net.corda.node.services.api/-schema-service/-schema-options/table-prefix.html
new file mode 100644
index 0000000000..7c0c782b07
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.api/-schema-service/-schema-options/table-prefix.html
@@ -0,0 +1,15 @@
+
+
+SchemaService.SchemaOptions.tablePrefix -
+
+
+
+net.corda.node.services.api / SchemaService / SchemaOptions / tablePrefix
+
+tablePrefix
+
+val tablePrefix : String ?
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.api/-schema-service/generate-mapped-object.html b/docs/build/html/api/net.corda.node.services.api/-schema-service/generate-mapped-object.html
new file mode 100644
index 0000000000..a5560f014e
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.api/-schema-service/generate-mapped-object.html
@@ -0,0 +1,17 @@
+
+
+SchemaService.generateMappedObject -
+
+
+
+net.corda.node.services.api / SchemaService / generateMappedObject
+
+generateMappedObject
+
+abstract fun generateMappedObject ( state : QueryableState , schema : MappedSchema ) : PersistentState
+Map a state to a PersistentState for the given schema, either via direct support from the state
+or via custom logic in this service.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.api/-schema-service/index.html b/docs/build/html/api/net.corda.node.services.api/-schema-service/index.html
new file mode 100644
index 0000000000..9b674fe3fb
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.api/-schema-service/index.html
@@ -0,0 +1,72 @@
+
+
+SchemaService -
+
+
+
+net.corda.node.services.api / SchemaService
+
+SchemaService
+interface SchemaService
+A configuration and customisation point for Object Relational Mapping of contract state objects.
+
+
+Types
+
+
+
+
+SchemaOptions
+
+data class SchemaOptions
Represents any options configured on the node for a schema.
+
+
+
+
+Properties
+
+
+
+
+schemaOptions
+
+abstract val schemaOptions : Map < MappedSchema , SchemaOptions >
Options configured for this nodes schemas. A missing entry for a schema implies all properties are null.
+
+
+
+
+Functions
+
+Inheritors
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.api/-schema-service/schema-options.html b/docs/build/html/api/net.corda.node.services.api/-schema-service/schema-options.html
new file mode 100644
index 0000000000..11548087d5
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.api/-schema-service/schema-options.html
@@ -0,0 +1,16 @@
+
+
+SchemaService.schemaOptions -
+
+
+
+net.corda.node.services.api / SchemaService / schemaOptions
+
+schemaOptions
+
+abstract val schemaOptions : Map < MappedSchema , SchemaOptions >
+Options configured for this nodes schemas. A missing entry for a schema implies all properties are null.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.api/-schema-service/select-schemas.html b/docs/build/html/api/net.corda.node.services.api/-schema-service/select-schemas.html
new file mode 100644
index 0000000000..33282297a7
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.api/-schema-service/select-schemas.html
@@ -0,0 +1,17 @@
+
+
+SchemaService.selectSchemas -
+
+
+
+net.corda.node.services.api / SchemaService / selectSchemas
+
+selectSchemas
+
+abstract fun selectSchemas ( state : QueryableState ) : Iterable < MappedSchema >
+Given a state, select schemas to map it to that are supported by generateMappedObject and that are configured
+for this node.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.api/-service-hub-internal/-init-.html b/docs/build/html/api/net.corda.node.services.api/-service-hub-internal/-init-.html
new file mode 100644
index 0000000000..af9eeda53e
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.api/-service-hub-internal/-init-.html
@@ -0,0 +1,14 @@
+
+
+ServiceHubInternal. -
+
+
+
+net.corda.node.services.api / ServiceHubInternal / <init>
+
+<init>
+ServiceHubInternal ( )
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.api/-service-hub-internal/index.html b/docs/build/html/api/net.corda.node.services.api/-service-hub-internal/index.html
new file mode 100644
index 0000000000..08f37bacd5
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.api/-service-hub-internal/index.html
@@ -0,0 +1,119 @@
+
+
+ServiceHubInternal -
+
+
+
+net.corda.node.services.api / ServiceHubInternal
+
+ServiceHubInternal
+abstract class ServiceHubInternal : PluginServiceHub
+
+
+Constructors
+
+
+
+
+<init>
+
+ServiceHubInternal ( )
+
+
+
+Properties
+
+Functions
+
+
+
+
+invokeProtocolAsync
+
+open fun < T : Any > invokeProtocolAsync ( logicType : Class < out ProtocolLogic < T > > , vararg args : Any ? ) : <ERROR CLASS> < T >
Will check logicType and args against a whitelist and if acceptable then construct and initiate the protocol.
+
+
+
+
+startProtocol
+
+abstract fun < T > startProtocol ( logic : ProtocolLogic < T > ) : <ERROR CLASS> < T >
TODO: borrowing this method from service manager work in another branch. Its required to avoid circular dependency
+between SMM and the scheduler. That particular problem should also be resolved by the service manager work
+itself, at which point this method would not be needed (by the scheduler).
+
+
+
+
+Inherited Functions
+
+
+
+
+getProtocolFactory
+
+abstract fun getProtocolFactory ( markerClass : Class < * > ) : ( Party ) -> ProtocolLogic < * >
Return the protocol factory that has been registered with markerClass , or null if no factory is found.
+
+
+
+
+registerProtocolInitiator
+
+abstract fun registerProtocolInitiator ( markerClass : KClass < * > , protocolFactory : ( Party ) -> ProtocolLogic < * > ) : Unit
Register the protocol factory we wish to use when a initiating party attempts to communicate with us. The
+registration is done against a marker KClass which is sent in the session handshake by the other party. If this
+marker class has been registered then the corresponding factory will be used to create the protocol which will
+communicate with the other side. If there is no mapping then the session attempt is rejected.
+
+
+
+
+Extension Functions
+
+
+
+
+fillWithSomeTestCash
+
+fun ServiceHub . fillWithSomeTestCash ( howMuch : Amount < Currency > , outputNotary : Party = DUMMY_NOTARY, atLeastThisManyStates : Int = 3, atMostThisManyStates : Int = 10, rng : Random = Random(), ref : OpaqueBytes = OpaqueBytes(ByteArray(1, { 1 })), ownedBy : PublicKey ? = null, issuedBy : PartyAndReference = DUMMY_CASH_ISSUER, issuerKey : KeyPair = DUMMY_CASH_ISSUER_KEY) : Vault
Creates a random set of between (by default) 3 and 10 cash states that add up to the given amount and adds them
+to the vault. This is intended for unit tests. The cash is issued by DUMMY_CASH_ISSUER and owned by the legal
+identity key from the storage service.
+
+
+
+
+recordTransactions
+
+fun ServiceHub . recordTransactions ( vararg txs : SignedTransaction ) : Unit
Given some SignedTransaction s, writes them to the local storage for validated transactions and then
+sends them to the vault for further processing.
+
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.api/-service-hub-internal/invoke-protocol-async.html b/docs/build/html/api/net.corda.node.services.api/-service-hub-internal/invoke-protocol-async.html
new file mode 100644
index 0000000000..417b7f3670
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.api/-service-hub-internal/invoke-protocol-async.html
@@ -0,0 +1,20 @@
+
+
+ServiceHubInternal.invokeProtocolAsync -
+
+
+
+net.corda.node.services.api / ServiceHubInternal / invokeProtocolAsync
+
+invokeProtocolAsync
+
+open fun < T : Any > invokeProtocolAsync ( logicType : Class < out ProtocolLogic < T > > , vararg args : Any ? ) : <ERROR CLASS> < T >
+Overrides ServiceHub.invokeProtocolAsync
+Will check logicType and args against a whitelist and if acceptable then construct and initiate the protocol.
+Exceptions
+
+IllegalProtocolLogicException
- or IllegalArgumentException if there are problems with the logicType or args .
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.api/-service-hub-internal/monitoring-service.html b/docs/build/html/api/net.corda.node.services.api/-service-hub-internal/monitoring-service.html
new file mode 100644
index 0000000000..d6cec4be45
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.api/-service-hub-internal/monitoring-service.html
@@ -0,0 +1,15 @@
+
+
+ServiceHubInternal.monitoringService -
+
+
+
+net.corda.node.services.api / ServiceHubInternal / monitoringService
+
+monitoringService
+
+abstract val monitoringService : MonitoringService
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.api/-service-hub-internal/network-service.html b/docs/build/html/api/net.corda.node.services.api/-service-hub-internal/network-service.html
new file mode 100644
index 0000000000..5177f408cf
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.api/-service-hub-internal/network-service.html
@@ -0,0 +1,16 @@
+
+
+ServiceHubInternal.networkService -
+
+
+
+net.corda.node.services.api / ServiceHubInternal / networkService
+
+networkService
+
+abstract val networkService : MessagingServiceInternal
+Overrides ServiceHub.networkService
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.api/-service-hub-internal/protocol-logic-ref-factory.html b/docs/build/html/api/net.corda.node.services.api/-service-hub-internal/protocol-logic-ref-factory.html
new file mode 100644
index 0000000000..22224dfe74
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.api/-service-hub-internal/protocol-logic-ref-factory.html
@@ -0,0 +1,15 @@
+
+
+ServiceHubInternal.protocolLogicRefFactory -
+
+
+
+net.corda.node.services.api / ServiceHubInternal / protocolLogicRefFactory
+
+protocolLogicRefFactory
+
+abstract val protocolLogicRefFactory : ProtocolLogicRefFactory
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.api/-service-hub-internal/schema-service.html b/docs/build/html/api/net.corda.node.services.api/-service-hub-internal/schema-service.html
new file mode 100644
index 0000000000..6dbf984151
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.api/-service-hub-internal/schema-service.html
@@ -0,0 +1,15 @@
+
+
+ServiceHubInternal.schemaService -
+
+
+
+net.corda.node.services.api / ServiceHubInternal / schemaService
+
+schemaService
+
+abstract val schemaService : SchemaService
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.api/-service-hub-internal/start-protocol.html b/docs/build/html/api/net.corda.node.services.api/-service-hub-internal/start-protocol.html
new file mode 100644
index 0000000000..102b12aaa1
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.api/-service-hub-internal/start-protocol.html
@@ -0,0 +1,18 @@
+
+
+ServiceHubInternal.startProtocol -
+
+
+
+net.corda.node.services.api / ServiceHubInternal / startProtocol
+
+startProtocol
+
+abstract fun < T > startProtocol ( logic : ProtocolLogic < T > ) : <ERROR CLASS> < T >
+TODO: borrowing this method from service manager work in another branch. Its required to avoid circular dependency
+between SMM and the scheduler. That particular problem should also be resolved by the service manager work
+itself, at which point this method would not be needed (by the scheduler).
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.api/index.html b/docs/build/html/api/net.corda.node.services.api/index.html
new file mode 100644
index 0000000000..3fb3f530cb
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.api/index.html
@@ -0,0 +1,87 @@
+
+
+net.corda.node.services.api -
+
+
+
+net.corda.node.services.api
+
+Package net.corda.node.services.api
+Types
+
+
+
+
+AbstractNodeService
+
+abstract class AbstractNodeService : SingletonSerializeAsToken
Abstract superclass for services that a node can host, which provides helper functions.
+
+
+
+
+AcceptsFileUpload
+
+interface AcceptsFileUpload
A service that implements AcceptsFileUpload can have new binary data provided to it via an HTTP upload.
+
+
+
+
+Checkpoint
+
+class Checkpoint
+
+
+
+CheckpointStorage
+
+interface CheckpointStorage
Thread-safe storage of fiber checkpoints.
+
+
+
+
+MessagingServiceBuilder
+
+interface MessagingServiceBuilder < out T : MessagingServiceInternal >
This class lets you start up a MessagingService . Its purpose is to stop you from getting access to the methods
+on the messaging service interface until you have successfully started up the system. One of these objects should
+be the only way to obtain a reference to a MessagingService . Startup may be a slow process: some implementations
+may let you cast the returned future to an object that lets you get status info.
+
+
+
+
+MessagingServiceInternal
+
+interface MessagingServiceInternal : MessagingService
+
+
+
+MonitoringService
+
+class MonitoringService : SingletonSerializeAsToken
Provides access to various metrics and ways to notify monitoring services of things, for sysadmin purposes.
+This is not an interface because it is too lightweight to bother mocking out.
+
+
+
+
+RegulatorService
+
+interface RegulatorService
Placeholder interface for regulator services.
+
+
+
+
+SchemaService
+
+interface SchemaService
A configuration and customisation point for Object Relational Mapping of contract state objects.
+
+
+
+
+ServiceHubInternal
+
+abstract class ServiceHubInternal : PluginServiceHub
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.config/-config-helper/index.html b/docs/build/html/api/net.corda.node.services.config/-config-helper/index.html
new file mode 100644
index 0000000000..e442539c88
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.config/-config-helper/index.html
@@ -0,0 +1,36 @@
+
+
+ConfigHelper -
+
+
+
+net.corda.node.services.config / ConfigHelper
+
+ConfigHelper
+object ConfigHelper
+
+
+Properties
+
+
+
+
+log
+
+val log : <ERROR CLASS>
+
+
+
+Functions
+
+
+
+
+loadConfig
+
+fun loadConfig ( baseDirectoryPath : Path , configFileOverride : Path ? = null, allowMissingConfig : Boolean = false, configOverrides : Map < String , Any ? > = emptyMap()) : <ERROR CLASS>
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.config/-config-helper/load-config.html b/docs/build/html/api/net.corda.node.services.config/-config-helper/load-config.html
new file mode 100644
index 0000000000..0b72a0ecb6
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.config/-config-helper/load-config.html
@@ -0,0 +1,15 @@
+
+
+ConfigHelper.loadConfig -
+
+
+
+net.corda.node.services.config / ConfigHelper / loadConfig
+
+loadConfig
+
+fun loadConfig ( baseDirectoryPath : Path , configFileOverride : Path ? = null, allowMissingConfig : Boolean = false, configOverrides : Map < String , Any ? > = emptyMap()) : <ERROR CLASS>
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.config/-config-helper/log.html b/docs/build/html/api/net.corda.node.services.config/-config-helper/log.html
new file mode 100644
index 0000000000..7d52a7d28f
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.config/-config-helper/log.html
@@ -0,0 +1,15 @@
+
+
+ConfigHelper.log -
+
+
+
+net.corda.node.services.config / ConfigHelper / log
+
+log
+
+val log : <ERROR CLASS>
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.config/-full-node-configuration/-init-.html b/docs/build/html/api/net.corda.node.services.config/-full-node-configuration/-init-.html
new file mode 100644
index 0000000000..b9306aea07
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.config/-full-node-configuration/-init-.html
@@ -0,0 +1,14 @@
+
+
+FullNodeConfiguration. -
+
+
+
+net.corda.node.services.config / FullNodeConfiguration / <init>
+
+<init>
+FullNodeConfiguration ( config : <ERROR CLASS> )
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.config/-full-node-configuration/artemis-address.html b/docs/build/html/api/net.corda.node.services.config/-full-node-configuration/artemis-address.html
new file mode 100644
index 0000000000..9fc60b5522
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.config/-full-node-configuration/artemis-address.html
@@ -0,0 +1,15 @@
+
+
+FullNodeConfiguration.artemisAddress -
+
+
+
+net.corda.node.services.config / FullNodeConfiguration / artemisAddress
+
+artemisAddress
+
+val artemisAddress : <ERROR CLASS>
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.config/-full-node-configuration/basedir.html b/docs/build/html/api/net.corda.node.services.config/-full-node-configuration/basedir.html
new file mode 100644
index 0000000000..1842a801cf
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.config/-full-node-configuration/basedir.html
@@ -0,0 +1,16 @@
+
+
+FullNodeConfiguration.basedir -
+
+
+
+net.corda.node.services.config / FullNodeConfiguration / basedir
+
+basedir
+
+val basedir : Path
+Overrides NodeConfiguration.basedir
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.config/-full-node-configuration/config.html b/docs/build/html/api/net.corda.node.services.config/-full-node-configuration/config.html
new file mode 100644
index 0000000000..4f6af2b255
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.config/-full-node-configuration/config.html
@@ -0,0 +1,15 @@
+
+
+FullNodeConfiguration.config -
+
+
+
+net.corda.node.services.config / FullNodeConfiguration / config
+
+config
+
+val config : <ERROR CLASS>
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.config/-full-node-configuration/create-node.html b/docs/build/html/api/net.corda.node.services.config/-full-node-configuration/create-node.html
new file mode 100644
index 0000000000..121537533a
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.config/-full-node-configuration/create-node.html
@@ -0,0 +1,15 @@
+
+
+FullNodeConfiguration.createNode -
+
+
+
+net.corda.node.services.config / FullNodeConfiguration / createNode
+
+createNode
+
+fun createNode ( ) : Node
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.config/-full-node-configuration/data-source-properties.html b/docs/build/html/api/net.corda.node.services.config/-full-node-configuration/data-source-properties.html
new file mode 100644
index 0000000000..0d90b1e1bd
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.config/-full-node-configuration/data-source-properties.html
@@ -0,0 +1,16 @@
+
+
+FullNodeConfiguration.dataSourceProperties -
+
+
+
+net.corda.node.services.config / FullNodeConfiguration / dataSourceProperties
+
+dataSourceProperties
+
+val dataSourceProperties : Properties
+Overrides NodeConfiguration.dataSourceProperties
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.config/-full-node-configuration/dev-mode.html b/docs/build/html/api/net.corda.node.services.config/-full-node-configuration/dev-mode.html
new file mode 100644
index 0000000000..cb3c09c51a
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.config/-full-node-configuration/dev-mode.html
@@ -0,0 +1,16 @@
+
+
+FullNodeConfiguration.devMode -
+
+
+
+net.corda.node.services.config / FullNodeConfiguration / devMode
+
+devMode
+
+val devMode : Boolean
+Overrides NodeConfiguration.devMode
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.config/-full-node-configuration/email-address.html b/docs/build/html/api/net.corda.node.services.config/-full-node-configuration/email-address.html
new file mode 100644
index 0000000000..9cb758b50a
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.config/-full-node-configuration/email-address.html
@@ -0,0 +1,16 @@
+
+
+FullNodeConfiguration.emailAddress -
+
+
+
+net.corda.node.services.config / FullNodeConfiguration / emailAddress
+
+emailAddress
+
+val emailAddress : String
+Overrides NodeConfiguration.emailAddress
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.config/-full-node-configuration/export-j-m-xto.html b/docs/build/html/api/net.corda.node.services.config/-full-node-configuration/export-j-m-xto.html
new file mode 100644
index 0000000000..0bf04ebaa8
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.config/-full-node-configuration/export-j-m-xto.html
@@ -0,0 +1,16 @@
+
+
+FullNodeConfiguration.exportJMXto -
+
+
+
+net.corda.node.services.config / FullNodeConfiguration / exportJMXto
+
+exportJMXto
+
+val exportJMXto : String
+Overrides NodeConfiguration.exportJMXto
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.config/-full-node-configuration/extra-advertised-service-ids.html b/docs/build/html/api/net.corda.node.services.config/-full-node-configuration/extra-advertised-service-ids.html
new file mode 100644
index 0000000000..18ae2b3124
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.config/-full-node-configuration/extra-advertised-service-ids.html
@@ -0,0 +1,15 @@
+
+
+FullNodeConfiguration.extraAdvertisedServiceIds -
+
+
+
+net.corda.node.services.config / FullNodeConfiguration / extraAdvertisedServiceIds
+
+extraAdvertisedServiceIds
+
+val extraAdvertisedServiceIds : String
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.config/-full-node-configuration/index.html b/docs/build/html/api/net.corda.node.services.config/-full-node-configuration/index.html
new file mode 100644
index 0000000000..2a367d1751
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.config/-full-node-configuration/index.html
@@ -0,0 +1,173 @@
+
+
+FullNodeConfiguration -
+
+
+
+net.corda.node.services.config / FullNodeConfiguration
+
+FullNodeConfiguration
+class FullNodeConfiguration : NodeConfiguration
+
+
+Constructors
+
+
+
+
+<init>
+
+FullNodeConfiguration ( config : <ERROR CLASS> )
+
+
+
+Properties
+
+Inherited Properties
+
+Functions
+
+Extension Functions
+
+
+
+
+configureWithDevSSLCertificate
+
+fun NodeSSLConfiguration . configureWithDevSSLCertificate ( ) : Unit
Strictly for dev only automatically construct a server certificate/private key signed from
+the CA certs in Node resources. Then provision KeyStores into certificates folder under node path.
+
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.config/-full-node-configuration/key-store-password.html b/docs/build/html/api/net.corda.node.services.config/-full-node-configuration/key-store-password.html
new file mode 100644
index 0000000000..7a1ab41891
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.config/-full-node-configuration/key-store-password.html
@@ -0,0 +1,16 @@
+
+
+FullNodeConfiguration.keyStorePassword -
+
+
+
+net.corda.node.services.config / FullNodeConfiguration / keyStorePassword
+
+keyStorePassword
+
+val keyStorePassword : String
+Overrides NodeSSLConfiguration.keyStorePassword
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.config/-full-node-configuration/messaging-server-address.html b/docs/build/html/api/net.corda.node.services.config/-full-node-configuration/messaging-server-address.html
new file mode 100644
index 0000000000..034eeb8089
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.config/-full-node-configuration/messaging-server-address.html
@@ -0,0 +1,15 @@
+
+
+FullNodeConfiguration.messagingServerAddress -
+
+
+
+net.corda.node.services.config / FullNodeConfiguration / messagingServerAddress
+
+messagingServerAddress
+
+val messagingServerAddress : <ERROR CLASS> ?
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.config/-full-node-configuration/my-legal-name.html b/docs/build/html/api/net.corda.node.services.config/-full-node-configuration/my-legal-name.html
new file mode 100644
index 0000000000..8616f002e2
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.config/-full-node-configuration/my-legal-name.html
@@ -0,0 +1,16 @@
+
+
+FullNodeConfiguration.myLegalName -
+
+
+
+net.corda.node.services.config / FullNodeConfiguration / myLegalName
+
+myLegalName
+
+val myLegalName : String
+Overrides NodeConfiguration.myLegalName
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.config/-full-node-configuration/nearest-city.html b/docs/build/html/api/net.corda.node.services.config/-full-node-configuration/nearest-city.html
new file mode 100644
index 0000000000..c7115d214c
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.config/-full-node-configuration/nearest-city.html
@@ -0,0 +1,16 @@
+
+
+FullNodeConfiguration.nearestCity -
+
+
+
+net.corda.node.services.config / FullNodeConfiguration / nearestCity
+
+nearestCity
+
+val nearestCity : String
+Overrides NodeConfiguration.nearestCity
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.config/-full-node-configuration/network-map-address.html b/docs/build/html/api/net.corda.node.services.config/-full-node-configuration/network-map-address.html
new file mode 100644
index 0000000000..a516a8c5df
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.config/-full-node-configuration/network-map-address.html
@@ -0,0 +1,15 @@
+
+
+FullNodeConfiguration.networkMapAddress -
+
+
+
+net.corda.node.services.config / FullNodeConfiguration / networkMapAddress
+
+networkMapAddress
+
+val networkMapAddress : <ERROR CLASS> ?
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.config/-full-node-configuration/trust-store-password.html b/docs/build/html/api/net.corda.node.services.config/-full-node-configuration/trust-store-password.html
new file mode 100644
index 0000000000..1e3973e827
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.config/-full-node-configuration/trust-store-password.html
@@ -0,0 +1,16 @@
+
+
+FullNodeConfiguration.trustStorePassword -
+
+
+
+net.corda.node.services.config / FullNodeConfiguration / trustStorePassword
+
+trustStorePassword
+
+val trustStorePassword : String
+Overrides NodeSSLConfiguration.trustStorePassword
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.config/-full-node-configuration/use-h-t-t-p-s.html b/docs/build/html/api/net.corda.node.services.config/-full-node-configuration/use-h-t-t-p-s.html
new file mode 100644
index 0000000000..7c72f4597c
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.config/-full-node-configuration/use-h-t-t-p-s.html
@@ -0,0 +1,15 @@
+
+
+FullNodeConfiguration.useHTTPS -
+
+
+
+net.corda.node.services.config / FullNodeConfiguration / useHTTPS
+
+useHTTPS
+
+val useHTTPS : Boolean
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.config/-full-node-configuration/use-test-clock.html b/docs/build/html/api/net.corda.node.services.config/-full-node-configuration/use-test-clock.html
new file mode 100644
index 0000000000..e937059310
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.config/-full-node-configuration/use-test-clock.html
@@ -0,0 +1,15 @@
+
+
+FullNodeConfiguration.useTestClock -
+
+
+
+net.corda.node.services.config / FullNodeConfiguration / useTestClock
+
+useTestClock
+
+val useTestClock : Boolean
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.config/-full-node-configuration/web-address.html b/docs/build/html/api/net.corda.node.services.config/-full-node-configuration/web-address.html
new file mode 100644
index 0000000000..856e081a87
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.config/-full-node-configuration/web-address.html
@@ -0,0 +1,15 @@
+
+
+FullNodeConfiguration.webAddress -
+
+
+
+net.corda.node.services.config / FullNodeConfiguration / webAddress
+
+webAddress
+
+val webAddress : <ERROR CLASS>
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.config/-node-configuration/basedir.html b/docs/build/html/api/net.corda.node.services.config/-node-configuration/basedir.html
new file mode 100644
index 0000000000..e2c12bdb4c
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.config/-node-configuration/basedir.html
@@ -0,0 +1,15 @@
+
+
+NodeConfiguration.basedir -
+
+
+
+net.corda.node.services.config / NodeConfiguration / basedir
+
+basedir
+
+abstract val basedir : Path
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.config/-node-configuration/certificates-path.html b/docs/build/html/api/net.corda.node.services.config/-node-configuration/certificates-path.html
new file mode 100644
index 0000000000..bf9004ad2f
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.config/-node-configuration/certificates-path.html
@@ -0,0 +1,16 @@
+
+
+NodeConfiguration.certificatesPath -
+
+
+
+net.corda.node.services.config / NodeConfiguration / certificatesPath
+
+certificatesPath
+
+open val certificatesPath : Path
+Overrides NodeSSLConfiguration.certificatesPath
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.config/-node-configuration/data-source-properties.html b/docs/build/html/api/net.corda.node.services.config/-node-configuration/data-source-properties.html
new file mode 100644
index 0000000000..ac461b8bfb
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.config/-node-configuration/data-source-properties.html
@@ -0,0 +1,15 @@
+
+
+NodeConfiguration.dataSourceProperties -
+
+
+
+net.corda.node.services.config / NodeConfiguration / dataSourceProperties
+
+dataSourceProperties
+
+open val dataSourceProperties : Properties
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.config/-node-configuration/dev-mode.html b/docs/build/html/api/net.corda.node.services.config/-node-configuration/dev-mode.html
new file mode 100644
index 0000000000..548290a057
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.config/-node-configuration/dev-mode.html
@@ -0,0 +1,15 @@
+
+
+NodeConfiguration.devMode -
+
+
+
+net.corda.node.services.config / NodeConfiguration / devMode
+
+devMode
+
+abstract val devMode : Boolean
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.config/-node-configuration/email-address.html b/docs/build/html/api/net.corda.node.services.config/-node-configuration/email-address.html
new file mode 100644
index 0000000000..dfdc66591d
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.config/-node-configuration/email-address.html
@@ -0,0 +1,15 @@
+
+
+NodeConfiguration.emailAddress -
+
+
+
+net.corda.node.services.config / NodeConfiguration / emailAddress
+
+emailAddress
+
+abstract val emailAddress : String
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.config/-node-configuration/export-j-m-xto.html b/docs/build/html/api/net.corda.node.services.config/-node-configuration/export-j-m-xto.html
new file mode 100644
index 0000000000..2dc6884a93
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.config/-node-configuration/export-j-m-xto.html
@@ -0,0 +1,15 @@
+
+
+NodeConfiguration.exportJMXto -
+
+
+
+net.corda.node.services.config / NodeConfiguration / exportJMXto
+
+exportJMXto
+
+abstract val exportJMXto : String
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.config/-node-configuration/index.html b/docs/build/html/api/net.corda.node.services.config/-node-configuration/index.html
new file mode 100644
index 0000000000..a270454790
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.config/-node-configuration/index.html
@@ -0,0 +1,126 @@
+
+
+NodeConfiguration -
+
+
+
+net.corda.node.services.config / NodeConfiguration
+
+NodeConfiguration
+interface NodeConfiguration : NodeSSLConfiguration
+
+
+Properties
+
+Inherited Properties
+
+Extension Functions
+
+
+
+
+configureWithDevSSLCertificate
+
+fun NodeSSLConfiguration . configureWithDevSSLCertificate ( ) : Unit
Strictly for dev only automatically construct a server certificate/private key signed from
+the CA certs in Node resources. Then provision KeyStores into certificates folder under node path.
+
+
+
+
+Inheritors
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.config/-node-configuration/my-legal-name.html b/docs/build/html/api/net.corda.node.services.config/-node-configuration/my-legal-name.html
new file mode 100644
index 0000000000..4d096973c4
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.config/-node-configuration/my-legal-name.html
@@ -0,0 +1,15 @@
+
+
+NodeConfiguration.myLegalName -
+
+
+
+net.corda.node.services.config / NodeConfiguration / myLegalName
+
+myLegalName
+
+abstract val myLegalName : String
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.config/-node-configuration/nearest-city.html b/docs/build/html/api/net.corda.node.services.config/-node-configuration/nearest-city.html
new file mode 100644
index 0000000000..c6754745a5
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.config/-node-configuration/nearest-city.html
@@ -0,0 +1,15 @@
+
+
+NodeConfiguration.nearestCity -
+
+
+
+net.corda.node.services.config / NodeConfiguration / nearestCity
+
+nearestCity
+
+abstract val nearestCity : String
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.config/-node-configuration/rpc-users-file.html b/docs/build/html/api/net.corda.node.services.config/-node-configuration/rpc-users-file.html
new file mode 100644
index 0000000000..dafe19a5d6
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.config/-node-configuration/rpc-users-file.html
@@ -0,0 +1,15 @@
+
+
+NodeConfiguration.rpcUsersFile -
+
+
+
+net.corda.node.services.config / NodeConfiguration / rpcUsersFile
+
+rpcUsersFile
+
+open val rpcUsersFile : Path
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.config/-node-s-s-l-configuration/certificates-path.html b/docs/build/html/api/net.corda.node.services.config/-node-s-s-l-configuration/certificates-path.html
new file mode 100644
index 0000000000..ad12bae066
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.config/-node-s-s-l-configuration/certificates-path.html
@@ -0,0 +1,15 @@
+
+
+NodeSSLConfiguration.certificatesPath -
+
+
+
+net.corda.node.services.config / NodeSSLConfiguration / certificatesPath
+
+certificatesPath
+
+abstract val certificatesPath : Path
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.config/-node-s-s-l-configuration/index.html b/docs/build/html/api/net.corda.node.services.config/-node-s-s-l-configuration/index.html
new file mode 100644
index 0000000000..8e16b115ba
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.config/-node-s-s-l-configuration/index.html
@@ -0,0 +1,73 @@
+
+
+NodeSSLConfiguration -
+
+
+
+net.corda.node.services.config / NodeSSLConfiguration
+
+NodeSSLConfiguration
+interface NodeSSLConfiguration
+
+
+Properties
+
+Extension Functions
+
+
+
+
+configureWithDevSSLCertificate
+
+fun NodeSSLConfiguration . configureWithDevSSLCertificate ( ) : Unit
Strictly for dev only automatically construct a server certificate/private key signed from
+the CA certs in Node resources. Then provision KeyStores into certificates folder under node path.
+
+
+
+
+Inheritors
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.config/-node-s-s-l-configuration/key-store-password.html b/docs/build/html/api/net.corda.node.services.config/-node-s-s-l-configuration/key-store-password.html
new file mode 100644
index 0000000000..7dc6524f70
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.config/-node-s-s-l-configuration/key-store-password.html
@@ -0,0 +1,15 @@
+
+
+NodeSSLConfiguration.keyStorePassword -
+
+
+
+net.corda.node.services.config / NodeSSLConfiguration / keyStorePassword
+
+keyStorePassword
+
+abstract val keyStorePassword : String
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.config/-node-s-s-l-configuration/key-store-path.html b/docs/build/html/api/net.corda.node.services.config/-node-s-s-l-configuration/key-store-path.html
new file mode 100644
index 0000000000..012e597b63
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.config/-node-s-s-l-configuration/key-store-path.html
@@ -0,0 +1,15 @@
+
+
+NodeSSLConfiguration.keyStorePath -
+
+
+
+net.corda.node.services.config / NodeSSLConfiguration / keyStorePath
+
+keyStorePath
+
+open val keyStorePath : Path
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.config/-node-s-s-l-configuration/trust-store-password.html b/docs/build/html/api/net.corda.node.services.config/-node-s-s-l-configuration/trust-store-password.html
new file mode 100644
index 0000000000..e5e3e5c11e
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.config/-node-s-s-l-configuration/trust-store-password.html
@@ -0,0 +1,15 @@
+
+
+NodeSSLConfiguration.trustStorePassword -
+
+
+
+net.corda.node.services.config / NodeSSLConfiguration / trustStorePassword
+
+trustStorePassword
+
+abstract val trustStorePassword : String
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.config/-node-s-s-l-configuration/trust-store-path.html b/docs/build/html/api/net.corda.node.services.config/-node-s-s-l-configuration/trust-store-path.html
new file mode 100644
index 0000000000..55d43f8f41
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.config/-node-s-s-l-configuration/trust-store-path.html
@@ -0,0 +1,15 @@
+
+
+NodeSSLConfiguration.trustStorePath -
+
+
+
+net.corda.node.services.config / NodeSSLConfiguration / trustStorePath
+
+trustStorePath
+
+open val trustStorePath : Path
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.config/-optional-config/-init-.html b/docs/build/html/api/net.corda.node.services.config/-optional-config/-init-.html
new file mode 100644
index 0000000000..a404a1e640
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.config/-optional-config/-init-.html
@@ -0,0 +1,15 @@
+
+
+OptionalConfig. -
+
+
+
+net.corda.node.services.config / OptionalConfig / <init>
+
+<init>
+OptionalConfig ( conf : <ERROR CLASS> , lambda : ( ) -> T )
+Helper class for optional configurations
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.config/-optional-config/conf.html b/docs/build/html/api/net.corda.node.services.config/-optional-config/conf.html
new file mode 100644
index 0000000000..749cbdb28d
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.config/-optional-config/conf.html
@@ -0,0 +1,15 @@
+
+
+OptionalConfig.conf -
+
+
+
+net.corda.node.services.config / OptionalConfig / conf
+
+conf
+
+val conf : <ERROR CLASS>
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.config/-optional-config/get-value.html b/docs/build/html/api/net.corda.node.services.config/-optional-config/get-value.html
new file mode 100644
index 0000000000..a19665f7ad
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.config/-optional-config/get-value.html
@@ -0,0 +1,15 @@
+
+
+OptionalConfig.getValue -
+
+
+
+net.corda.node.services.config / OptionalConfig / getValue
+
+getValue
+
+operator fun getValue ( receiver : Any , metadata : KProperty < * > ) : T
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.config/-optional-config/index.html b/docs/build/html/api/net.corda.node.services.config/-optional-config/index.html
new file mode 100644
index 0000000000..a597bc2aea
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.config/-optional-config/index.html
@@ -0,0 +1,55 @@
+
+
+OptionalConfig -
+
+
+
+net.corda.node.services.config / OptionalConfig
+
+OptionalConfig
+class OptionalConfig < out T >
+Helper class for optional configurations
+
+
+Constructors
+
+
+
+
+<init>
+
+OptionalConfig ( conf : <ERROR CLASS> , lambda : ( ) -> T )
Helper class for optional configurations
+
+
+
+
+Properties
+
+
+
+
+conf
+
+val conf : <ERROR CLASS>
+
+
+
+lambda
+
+val lambda : ( ) -> T
+
+
+
+Functions
+
+
+
+
+getValue
+
+operator fun getValue ( receiver : Any , metadata : KProperty < * > ) : T
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.config/-optional-config/lambda.html b/docs/build/html/api/net.corda.node.services.config/-optional-config/lambda.html
new file mode 100644
index 0000000000..c0bb072aa7
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.config/-optional-config/lambda.html
@@ -0,0 +1,15 @@
+
+
+OptionalConfig.lambda -
+
+
+
+net.corda.node.services.config / OptionalConfig / lambda
+
+lambda
+
+val lambda : ( ) -> T
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.config/configure-test-s-s-l.html b/docs/build/html/api/net.corda.node.services.config/configure-test-s-s-l.html
new file mode 100644
index 0000000000..54de21c74f
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.config/configure-test-s-s-l.html
@@ -0,0 +1,15 @@
+
+
+configureTestSSL -
+
+
+
+net.corda.node.services.config / configureTestSSL
+
+configureTestSSL
+
+fun configureTestSSL ( ) : NodeSSLConfiguration
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.config/configure-with-dev-s-s-l-certificate.html b/docs/build/html/api/net.corda.node.services.config/configure-with-dev-s-s-l-certificate.html
new file mode 100644
index 0000000000..ef71c216fd
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.config/configure-with-dev-s-s-l-certificate.html
@@ -0,0 +1,17 @@
+
+
+configureWithDevSSLCertificate -
+
+
+
+net.corda.node.services.config / configureWithDevSSLCertificate
+
+configureWithDevSSLCertificate
+
+fun NodeSSLConfiguration . configureWithDevSSLCertificate ( ) : Unit
+Strictly for dev only automatically construct a server certificate/private key signed from
+the CA certs in Node resources. Then provision KeyStores into certificates folder under node path.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.config/get-or-else.html b/docs/build/html/api/net.corda.node.services.config/get-or-else.html
new file mode 100644
index 0000000000..e1e0bb44c6
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.config/get-or-else.html
@@ -0,0 +1,15 @@
+
+
+getOrElse -
+
+
+
+net.corda.node.services.config / getOrElse
+
+getOrElse
+
+fun < T > <ERROR CLASS> . getOrElse ( lambda : ( ) -> T ) : OptionalConfig < T >
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.config/get-properties.html b/docs/build/html/api/net.corda.node.services.config/get-properties.html
new file mode 100644
index 0000000000..5f0b315cb4
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.config/get-properties.html
@@ -0,0 +1,15 @@
+
+
+getProperties -
+
+
+
+net.corda.node.services.config / getProperties
+
+getProperties
+
+fun <ERROR CLASS> . getProperties ( path : String ) : Properties
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.config/get-value.html b/docs/build/html/api/net.corda.node.services.config/get-value.html
new file mode 100644
index 0000000000..3d6b7f5846
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.config/get-value.html
@@ -0,0 +1,15 @@
+
+
+getValue -
+
+
+
+net.corda.node.services.config / getValue
+
+getValue
+
+operator fun < T > <ERROR CLASS> . getValue ( receiver : Any , metadata : KProperty < * > ) : T
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.config/index.html b/docs/build/html/api/net.corda.node.services.config/index.html
new file mode 100644
index 0000000000..b0f6f6b2cb
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.config/index.html
@@ -0,0 +1,84 @@
+
+
+net.corda.node.services.config -
+
+
+
+net.corda.node.services.config
+
+Package net.corda.node.services.config
+Types
+
+Functions
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.events/-node-scheduler-service/-init-.html b/docs/build/html/api/net.corda.node.services.events/-node-scheduler-service/-init-.html
new file mode 100644
index 0000000000..df5b3f7ecf
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.events/-node-scheduler-service/-init-.html
@@ -0,0 +1,34 @@
+
+
+NodeSchedulerService. -
+
+
+
+net.corda.node.services.events / NodeSchedulerService / <init>
+
+<init>
+NodeSchedulerService ( database : <ERROR CLASS> , services : ServiceHubInternal , protocolLogicRefFactory : ProtocolLogicRefFactory , schedulerTimerExecutor : Executor = Executors.newSingleThreadExecutor())
+A first pass of a simple SchedulerService that works with MutableClock s for testing, demonstrations and simulations
+that also encompasses the Vault observer for processing transactions.
+This will observe transactions as they are stored and schedule and unschedule activities based on the States consumed
+or produced.
+Currently does not provide any system state other than the ContractState so the expectation is that a transaction
+is the outcome of the activity in order to schedule another activity. Once we have implemented more persistence
+in the nodes, maybe we can consider multiple activities and whether the activities have been completed or not,
+but that starts to sound a lot like off-ledger state.
+
+
+Parameters
+
+services
- Core node services.
+
+
+protocolLogicRefFactory
- Factory for restoring ProtocolLogic instances from references.
+
+
+schedulerTimerExecutor
- The executor the scheduler blocks on waiting for the clock to advance to the next
+activity. Only replace this for unit testing purposes. This is not the executor the ProtocolLogic is launched on.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.events/-node-scheduler-service/-run-scheduled/-init-.html b/docs/build/html/api/net.corda.node.services.events/-node-scheduler-service/-run-scheduled/-init-.html
new file mode 100644
index 0000000000..df1232cf74
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.events/-node-scheduler-service/-run-scheduled/-init-.html
@@ -0,0 +1,14 @@
+
+
+NodeSchedulerService.RunScheduled. -
+
+
+
+net.corda.node.services.events / NodeSchedulerService / RunScheduled / <init>
+
+<init>
+RunScheduled ( scheduledState : ScheduledStateRef , scheduler : NodeSchedulerService )
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.events/-node-scheduler-service/-run-scheduled/-r-u-n-n-i-n-g.html b/docs/build/html/api/net.corda.node.services.events/-node-scheduler-service/-run-scheduled/-r-u-n-n-i-n-g.html
new file mode 100644
index 0000000000..5f401d4f98
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.events/-node-scheduler-service/-run-scheduled/-r-u-n-n-i-n-g.html
@@ -0,0 +1,42 @@
+
+
+NodeSchedulerService.RunScheduled.RUNNING -
+
+
+
+net.corda.node.services.events / NodeSchedulerService / RunScheduled / RUNNING
+
+RUNNING
+object RUNNING : Step
+
+
+Inherited Properties
+
+
+
+
+changes
+
+open val changes : <ERROR CLASS> < Change >
+
+
+
+label
+
+open val label : String
+
+
+
+Inherited Functions
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.events/-node-scheduler-service/-run-scheduled/call.html b/docs/build/html/api/net.corda.node.services.events/-node-scheduler-service/-run-scheduled/call.html
new file mode 100644
index 0000000000..204dad82b9
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.events/-node-scheduler-service/-run-scheduled/call.html
@@ -0,0 +1,17 @@
+
+
+NodeSchedulerService.RunScheduled.call -
+
+
+
+net.corda.node.services.events / NodeSchedulerService / RunScheduled / call
+
+call
+
+fun call ( ) : Unit
+Overrides ProtocolLogic.call
+This is where you fill out your business logic.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.events/-node-scheduler-service/-run-scheduled/index.html b/docs/build/html/api/net.corda.node.services.events/-node-scheduler-service/-run-scheduled/index.html
new file mode 100644
index 0000000000..a295aadaec
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.events/-node-scheduler-service/-run-scheduled/index.html
@@ -0,0 +1,162 @@
+
+
+NodeSchedulerService.RunScheduled -
+
+
+
+net.corda.node.services.events / NodeSchedulerService / RunScheduled
+
+RunScheduled
+class RunScheduled : ProtocolLogic < Unit >
+
+
+Types
+
+Constructors
+
+Properties
+
+Inherited Properties
+
+
+
+
+logger
+
+val logger : <ERROR CLASS>
This is where you should log things to.
+
+
+
+
+psm
+
+lateinit var psm : ProtocolStateMachine < * >
Reference to the Fiber instance that is the top level controller for the entire flow.
+
+
+
+
+serviceHub
+
+val serviceHub : ServiceHub
Provides access to big, heavy classes that may be reconstructed from time to time, e.g. across restarts. It is
+only available once the protocol has started, which means it cannnot be accessed in the constructor. Either
+access this lazily or from inside call .
+
+
+
+
+Functions
+
+
+
+
+call
+
+fun call ( ) : Unit
This is where you fill out your business logic.
+
+
+
+
+Inherited Functions
+
+Companion Object Functions
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.events/-node-scheduler-service/-run-scheduled/progress-tracker.html b/docs/build/html/api/net.corda.node.services.events/-node-scheduler-service/-run-scheduled/progress-tracker.html
new file mode 100644
index 0000000000..eee14e5ed4
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.events/-node-scheduler-service/-run-scheduled/progress-tracker.html
@@ -0,0 +1,24 @@
+
+
+NodeSchedulerService.RunScheduled.progressTracker -
+
+
+
+net.corda.node.services.events / NodeSchedulerService / RunScheduled / progressTracker
+
+progressTracker
+
+val progressTracker : ProgressTracker
+Overrides ProtocolLogic.progressTracker
+Override this to provide a ProgressTracker . If one is provided and stepped, the framework will do something
+helpful with the progress reports. If this protocol is invoked as a sub-protocol of another, then the
+tracker will be made a child of the current step in the parent. If its null, this protocol doesnt track
+progress.
+Note that this has to return a tracker before the protocol is invoked. You cant change your mind half way
+through.
+
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.events/-node-scheduler-service/-run-scheduled/scheduled-state.html b/docs/build/html/api/net.corda.node.services.events/-node-scheduler-service/-run-scheduled/scheduled-state.html
new file mode 100644
index 0000000000..e155621cab
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.events/-node-scheduler-service/-run-scheduled/scheduled-state.html
@@ -0,0 +1,15 @@
+
+
+NodeSchedulerService.RunScheduled.scheduledState -
+
+
+
+net.corda.node.services.events / NodeSchedulerService / RunScheduled / scheduledState
+
+scheduledState
+
+val scheduledState : ScheduledStateRef
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.events/-node-scheduler-service/-run-scheduled/scheduler.html b/docs/build/html/api/net.corda.node.services.events/-node-scheduler-service/-run-scheduled/scheduler.html
new file mode 100644
index 0000000000..bb31bd07c0
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.events/-node-scheduler-service/-run-scheduled/scheduler.html
@@ -0,0 +1,15 @@
+
+
+NodeSchedulerService.RunScheduled.scheduler -
+
+
+
+net.corda.node.services.events / NodeSchedulerService / RunScheduled / scheduler
+
+scheduler
+
+val scheduler : NodeSchedulerService
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.events/-node-scheduler-service/-run-scheduled/tracker.html b/docs/build/html/api/net.corda.node.services.events/-node-scheduler-service/-run-scheduled/tracker.html
new file mode 100644
index 0000000000..a2666c6971
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.events/-node-scheduler-service/-run-scheduled/tracker.html
@@ -0,0 +1,15 @@
+
+
+NodeSchedulerService.RunScheduled.tracker -
+
+
+
+net.corda.node.services.events / NodeSchedulerService / RunScheduled / tracker
+
+tracker
+
+fun tracker ( ) : ProgressTracker
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.events/-node-scheduler-service/index.html b/docs/build/html/api/net.corda.node.services.events/-node-scheduler-service/index.html
new file mode 100644
index 0000000000..abb3569720
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.events/-node-scheduler-service/index.html
@@ -0,0 +1,94 @@
+
+
+NodeSchedulerService -
+
+
+
+net.corda.node.services.events / NodeSchedulerService
+
+NodeSchedulerService
+class NodeSchedulerService : SchedulerService , SingletonSerializeAsToken
+A first pass of a simple SchedulerService that works with MutableClock s for testing, demonstrations and simulations
+that also encompasses the Vault observer for processing transactions.
+This will observe transactions as they are stored and schedule and unschedule activities based on the States consumed
+or produced.
+Currently does not provide any system state other than the ContractState so the expectation is that a transaction
+is the outcome of the activity in order to schedule another activity. Once we have implemented more persistence
+in the nodes, maybe we can consider multiple activities and whether the activities have been completed or not,
+but that starts to sound a lot like off-ledger state.
+
+
+Parameters
+
+services
- Core node services.
+
+
+protocolLogicRefFactory
- Factory for restoring ProtocolLogic instances from references.
+
+
+schedulerTimerExecutor
- The executor the scheduler blocks on waiting for the clock to advance to the next
+activity. Only replace this for unit testing purposes. This is not the executor the ProtocolLogic is launched on.
+
+
+Types
+
+Constructors
+
+Functions
+
+
+
+
+scheduleStateActivity
+
+fun scheduleStateActivity ( action : ScheduledStateRef ) : Unit
Schedule a new activity for a TX output, probably because it was just produced.
+
+
+
+
+start
+
+fun start ( ) : Unit
+
+
+
+unscheduleStateActivity
+
+fun unscheduleStateActivity ( ref : StateRef ) : Unit
Unschedule all activity for a TX output, probably because it was consumed.
+
+
+
+
+Inherited Functions
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.events/-node-scheduler-service/schedule-state-activity.html b/docs/build/html/api/net.corda.node.services.events/-node-scheduler-service/schedule-state-activity.html
new file mode 100644
index 0000000000..c4887a6ce2
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.events/-node-scheduler-service/schedule-state-activity.html
@@ -0,0 +1,21 @@
+
+
+NodeSchedulerService.scheduleStateActivity -
+
+
+
+net.corda.node.services.events / NodeSchedulerService / scheduleStateActivity
+
+scheduleStateActivity
+
+fun scheduleStateActivity ( action : ScheduledStateRef ) : Unit
+Overrides SchedulerService.scheduleStateActivity
+Schedule a new activity for a TX output, probably because it was just produced.
+Only one activity can be scheduled for a particular StateRef at any one time. Scheduling a ScheduledStateRef
+replaces any previously scheduled ScheduledStateRef for any one StateRef .
+
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.events/-node-scheduler-service/start.html b/docs/build/html/api/net.corda.node.services.events/-node-scheduler-service/start.html
new file mode 100644
index 0000000000..0a2c4e28be
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.events/-node-scheduler-service/start.html
@@ -0,0 +1,15 @@
+
+
+NodeSchedulerService.start -
+
+
+
+net.corda.node.services.events / NodeSchedulerService / start
+
+start
+
+fun start ( ) : Unit
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.events/-node-scheduler-service/unschedule-state-activity.html b/docs/build/html/api/net.corda.node.services.events/-node-scheduler-service/unschedule-state-activity.html
new file mode 100644
index 0000000000..23709990b8
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.events/-node-scheduler-service/unschedule-state-activity.html
@@ -0,0 +1,17 @@
+
+
+NodeSchedulerService.unscheduleStateActivity -
+
+
+
+net.corda.node.services.events / NodeSchedulerService / unscheduleStateActivity
+
+unscheduleStateActivity
+
+fun unscheduleStateActivity ( ref : StateRef ) : Unit
+Overrides SchedulerService.unscheduleStateActivity
+Unschedule all activity for a TX output, probably because it was consumed.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.events/-scheduled-activity-observer/-init-.html b/docs/build/html/api/net.corda.node.services.events/-scheduled-activity-observer/-init-.html
new file mode 100644
index 0000000000..99c05d39ca
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.events/-scheduled-activity-observer/-init-.html
@@ -0,0 +1,16 @@
+
+
+ScheduledActivityObserver. -
+
+
+
+net.corda.node.services.events / ScheduledActivityObserver / <init>
+
+<init>
+ScheduledActivityObserver ( services : ServiceHubInternal )
+This observes the vault and schedules and unschedules activities appropriately based on state production and
+consumption.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.events/-scheduled-activity-observer/index.html b/docs/build/html/api/net.corda.node.services.events/-scheduled-activity-observer/index.html
new file mode 100644
index 0000000000..22b1b4d6b5
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.events/-scheduled-activity-observer/index.html
@@ -0,0 +1,40 @@
+
+
+ScheduledActivityObserver -
+
+
+
+net.corda.node.services.events / ScheduledActivityObserver
+
+ScheduledActivityObserver
+class ScheduledActivityObserver
+This observes the vault and schedules and unschedules activities appropriately based on state production and
+consumption.
+
+
+Constructors
+
+
+
+
+<init>
+
+ScheduledActivityObserver ( services : ServiceHubInternal )
This observes the vault and schedules and unschedules activities appropriately based on state production and
+consumption.
+
+
+
+
+Properties
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.events/-scheduled-activity-observer/services.html b/docs/build/html/api/net.corda.node.services.events/-scheduled-activity-observer/services.html
new file mode 100644
index 0000000000..cb09721573
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.events/-scheduled-activity-observer/services.html
@@ -0,0 +1,15 @@
+
+
+ScheduledActivityObserver.services -
+
+
+
+net.corda.node.services.events / ScheduledActivityObserver / services
+
+services
+
+val services : ServiceHubInternal
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.events/index.html b/docs/build/html/api/net.corda.node.services.events/index.html
new file mode 100644
index 0000000000..004a2741f6
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.events/index.html
@@ -0,0 +1,32 @@
+
+
+net.corda.node.services.events -
+
+
+
+net.corda.node.services.events
+
+Package net.corda.node.services.events
+Types
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.identity/-in-memory-identity-service/-init-.html b/docs/build/html/api/net.corda.node.services.identity/-in-memory-identity-service/-init-.html
new file mode 100644
index 0000000000..aa309bf819
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.identity/-in-memory-identity-service/-init-.html
@@ -0,0 +1,15 @@
+
+
+InMemoryIdentityService. -
+
+
+
+net.corda.node.services.identity / InMemoryIdentityService / <init>
+
+<init>
+InMemoryIdentityService ( )
+Simple identity service which caches parties and provides functionality for efficient lookup.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.identity/-in-memory-identity-service/index.html b/docs/build/html/api/net.corda.node.services.identity/-in-memory-identity-service/index.html
new file mode 100644
index 0000000000..06d6739ed3
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.identity/-in-memory-identity-service/index.html
@@ -0,0 +1,61 @@
+
+
+InMemoryIdentityService -
+
+
+
+net.corda.node.services.identity / InMemoryIdentityService
+
+InMemoryIdentityService
+class InMemoryIdentityService : SingletonSerializeAsToken , IdentityService
+Simple identity service which caches parties and provides functionality for efficient lookup.
+
+
+Constructors
+
+
+
+
+<init>
+
+InMemoryIdentityService ( )
Simple identity service which caches parties and provides functionality for efficient lookup.
+
+
+
+
+Functions
+
+Inherited Functions
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.identity/-in-memory-identity-service/party-from-key.html b/docs/build/html/api/net.corda.node.services.identity/-in-memory-identity-service/party-from-key.html
new file mode 100644
index 0000000000..af4474c6fe
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.identity/-in-memory-identity-service/party-from-key.html
@@ -0,0 +1,16 @@
+
+
+InMemoryIdentityService.partyFromKey -
+
+
+
+net.corda.node.services.identity / InMemoryIdentityService / partyFromKey
+
+partyFromKey
+
+fun partyFromKey ( key : PublicKey ) : Party ?
+Overrides IdentityService.partyFromKey
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.identity/-in-memory-identity-service/party-from-name.html b/docs/build/html/api/net.corda.node.services.identity/-in-memory-identity-service/party-from-name.html
new file mode 100644
index 0000000000..84f56cf105
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.identity/-in-memory-identity-service/party-from-name.html
@@ -0,0 +1,16 @@
+
+
+InMemoryIdentityService.partyFromName -
+
+
+
+net.corda.node.services.identity / InMemoryIdentityService / partyFromName
+
+partyFromName
+
+fun partyFromName ( name : String ) : Party ?
+Overrides IdentityService.partyFromName
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.identity/-in-memory-identity-service/register-identity.html b/docs/build/html/api/net.corda.node.services.identity/-in-memory-identity-service/register-identity.html
new file mode 100644
index 0000000000..f6f48c71df
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.identity/-in-memory-identity-service/register-identity.html
@@ -0,0 +1,16 @@
+
+
+InMemoryIdentityService.registerIdentity -
+
+
+
+net.corda.node.services.identity / InMemoryIdentityService / registerIdentity
+
+registerIdentity
+
+fun registerIdentity ( party : Party ) : Unit
+Overrides IdentityService.registerIdentity
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.identity/index.html b/docs/build/html/api/net.corda.node.services.identity/index.html
new file mode 100644
index 0000000000..3015c02be9
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.identity/index.html
@@ -0,0 +1,23 @@
+
+
+net.corda.node.services.identity -
+
+
+
+net.corda.node.services.identity
+
+Package net.corda.node.services.identity
+Types
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.keys/-e2-e-test-key-management-service/-init-.html b/docs/build/html/api/net.corda.node.services.keys/-e2-e-test-key-management-service/-init-.html
new file mode 100644
index 0000000000..ca49989f4d
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.keys/-e2-e-test-key-management-service/-init-.html
@@ -0,0 +1,23 @@
+
+
+E2ETestKeyManagementService. -
+
+
+
+net.corda.node.services.keys / E2ETestKeyManagementService / <init>
+
+<init>
+E2ETestKeyManagementService ( initialKeys : Set < KeyPair > )
+A simple in-memory KMS that doesnt bother saving keys to disk. A real implementation would:
+Probably be accessed via the network layer as an internal node service i.e. via a message queue, so it can run
+on a separate/firewalled service.
+Use the protocol framework so requests to fetch keys can be suspended whilst a human signs off on the request.
+Use deterministic key derivation.
+Possibly have some sort of TREZOR-like two-factor authentication ability.
+etc.
+
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.keys/-e2-e-test-key-management-service/fresh-key.html b/docs/build/html/api/net.corda.node.services.keys/-e2-e-test-key-management-service/fresh-key.html
new file mode 100644
index 0000000000..2d23ecaac0
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.keys/-e2-e-test-key-management-service/fresh-key.html
@@ -0,0 +1,17 @@
+
+
+E2ETestKeyManagementService.freshKey -
+
+
+
+net.corda.node.services.keys / E2ETestKeyManagementService / freshKey
+
+freshKey
+
+fun freshKey ( ) : KeyPair
+Overrides KeyManagementService.freshKey
+Generates a new random key and adds it to the exposed map.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.keys/-e2-e-test-key-management-service/index.html b/docs/build/html/api/net.corda.node.services.keys/-e2-e-test-key-management-service/index.html
new file mode 100644
index 0000000000..d542ebff72
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.keys/-e2-e-test-key-management-service/index.html
@@ -0,0 +1,82 @@
+
+
+E2ETestKeyManagementService -
+
+
+
+net.corda.node.services.keys / E2ETestKeyManagementService
+
+E2ETestKeyManagementService
+class E2ETestKeyManagementService : SingletonSerializeAsToken , KeyManagementService
+A simple in-memory KMS that doesnt bother saving keys to disk. A real implementation would:
+Probably be accessed via the network layer as an internal node service i.e. via a message queue, so it can run
+on a separate/firewalled service.
+Use the protocol framework so requests to fetch keys can be suspended whilst a human signs off on the request.
+Use deterministic key derivation.
+Possibly have some sort of TREZOR-like two-factor authentication ability.
+etc.
+
+
+
+
+Constructors
+
+
+
+
+<init>
+
+E2ETestKeyManagementService ( initialKeys : Set < KeyPair > )
A simple in-memory KMS that doesnt bother saving keys to disk. A real implementation would:
+
+
+
+
+Properties
+
+
+
+
+keys
+
+val keys : Map < PublicKey , PrivateKey >
Returns a snapshot of the current pubkey->privkey mapping.
+
+
+
+
+Functions
+
+
+
+
+freshKey
+
+fun freshKey ( ) : KeyPair
Generates a new random key and adds it to the exposed map.
+
+
+
+
+Inherited Functions
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.keys/-e2-e-test-key-management-service/keys.html b/docs/build/html/api/net.corda.node.services.keys/-e2-e-test-key-management-service/keys.html
new file mode 100644
index 0000000000..8c9f19eb68
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.keys/-e2-e-test-key-management-service/keys.html
@@ -0,0 +1,20 @@
+
+
+E2ETestKeyManagementService.keys -
+
+
+
+net.corda.node.services.keys / E2ETestKeyManagementService / keys
+
+keys
+
+val keys : Map < PublicKey , PrivateKey >
+Overrides KeyManagementService.keys
+Returns a snapshot of the current pubkey->privkey mapping.
+Getter
+
Returns a snapshot of the current pubkey->privkey mapping.
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.keys/-persistent-key-management-service/-init-.html b/docs/build/html/api/net.corda.node.services.keys/-persistent-key-management-service/-init-.html
new file mode 100644
index 0000000000..2b2981b065
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.keys/-persistent-key-management-service/-init-.html
@@ -0,0 +1,19 @@
+
+
+PersistentKeyManagementService. -
+
+
+
+net.corda.node.services.keys / PersistentKeyManagementService / <init>
+
+<init>
+PersistentKeyManagementService ( initialKeys : Set < KeyPair > )
+A persistent re-implementation of E2ETestKeyManagementService to support node re-start.
+This is not the long-term implementation. See the list of items in the above class.
+This class needs database transactions to be in-flight during method calls and init.
+
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.keys/-persistent-key-management-service/fresh-key.html b/docs/build/html/api/net.corda.node.services.keys/-persistent-key-management-service/fresh-key.html
new file mode 100644
index 0000000000..ca20512e1a
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.keys/-persistent-key-management-service/fresh-key.html
@@ -0,0 +1,17 @@
+
+
+PersistentKeyManagementService.freshKey -
+
+
+
+net.corda.node.services.keys / PersistentKeyManagementService / freshKey
+
+freshKey
+
+fun freshKey ( ) : KeyPair
+Overrides KeyManagementService.freshKey
+Generates a new random key and adds it to the exposed map.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.keys/-persistent-key-management-service/index.html b/docs/build/html/api/net.corda.node.services.keys/-persistent-key-management-service/index.html
new file mode 100644
index 0000000000..bb050e7532
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.keys/-persistent-key-management-service/index.html
@@ -0,0 +1,78 @@
+
+
+PersistentKeyManagementService -
+
+
+
+net.corda.node.services.keys / PersistentKeyManagementService
+
+PersistentKeyManagementService
+class PersistentKeyManagementService : SingletonSerializeAsToken , KeyManagementService
+A persistent re-implementation of E2ETestKeyManagementService to support node re-start.
+This is not the long-term implementation. See the list of items in the above class.
+This class needs database transactions to be in-flight during method calls and init.
+
+
+
+
+Constructors
+
+Properties
+
+
+
+
+keys
+
+val keys : Map < PublicKey , PrivateKey >
Returns a snapshot of the current pubkey->privkey mapping.
+
+
+
+
+Functions
+
+
+
+
+freshKey
+
+fun freshKey ( ) : KeyPair
Generates a new random key and adds it to the exposed map.
+
+
+
+
+Inherited Functions
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.keys/-persistent-key-management-service/keys.html b/docs/build/html/api/net.corda.node.services.keys/-persistent-key-management-service/keys.html
new file mode 100644
index 0000000000..4248f1c373
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.keys/-persistent-key-management-service/keys.html
@@ -0,0 +1,20 @@
+
+
+PersistentKeyManagementService.keys -
+
+
+
+net.corda.node.services.keys / PersistentKeyManagementService / keys
+
+keys
+
+val keys : Map < PublicKey , PrivateKey >
+Overrides KeyManagementService.keys
+Returns a snapshot of the current pubkey->privkey mapping.
+Getter
+
Returns a snapshot of the current pubkey->privkey mapping.
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.keys/index.html b/docs/build/html/api/net.corda.node.services.keys/index.html
new file mode 100644
index 0000000000..59de124185
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.keys/index.html
@@ -0,0 +1,30 @@
+
+
+net.corda.node.services.keys -
+
+
+
+net.corda.node.services.keys
+
+Package net.corda.node.services.keys
+Types
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.messaging/-artemis-messaging-component/-artemis-address/host-and-port.html b/docs/build/html/api/net.corda.node.services.messaging/-artemis-messaging-component/-artemis-address/host-and-port.html
new file mode 100644
index 0000000000..3c6e3e4a60
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.messaging/-artemis-messaging-component/-artemis-address/host-and-port.html
@@ -0,0 +1,15 @@
+
+
+ArtemisMessagingComponent.ArtemisAddress.hostAndPort -
+
+
+
+net.corda.node.services.messaging / ArtemisMessagingComponent / ArtemisAddress / hostAndPort
+
+hostAndPort
+
+abstract val hostAndPort : <ERROR CLASS>
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.messaging/-artemis-messaging-component/-artemis-address/index.html b/docs/build/html/api/net.corda.node.services.messaging/-artemis-messaging-component/-artemis-address/index.html
new file mode 100644
index 0000000000..b47df12e22
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.messaging/-artemis-messaging-component/-artemis-address/index.html
@@ -0,0 +1,51 @@
+
+
+ArtemisMessagingComponent.ArtemisAddress -
+
+
+
+net.corda.node.services.messaging / ArtemisMessagingComponent / ArtemisAddress
+
+ArtemisAddress
+protected interface ArtemisAddress
+
+
+Properties
+
+
+
+
+hostAndPort
+
+abstract val hostAndPort : <ERROR CLASS>
+
+
+
+queueName
+
+abstract val queueName : <ERROR CLASS>
+
+
+
+Inheritors
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.messaging/-artemis-messaging-component/-artemis-address/queue-name.html b/docs/build/html/api/net.corda.node.services.messaging/-artemis-messaging-component/-artemis-address/queue-name.html
new file mode 100644
index 0000000000..e28e813e6d
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.messaging/-artemis-messaging-component/-artemis-address/queue-name.html
@@ -0,0 +1,15 @@
+
+
+ArtemisMessagingComponent.ArtemisAddress.queueName -
+
+
+
+net.corda.node.services.messaging / ArtemisMessagingComponent / ArtemisAddress / queueName
+
+queueName
+
+abstract val queueName : <ERROR CLASS>
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.messaging/-artemis-messaging-component/-c-l-i-e-n-t-s_-p-r-e-f-i-x.html b/docs/build/html/api/net.corda.node.services.messaging/-artemis-messaging-component/-c-l-i-e-n-t-s_-p-r-e-f-i-x.html
new file mode 100644
index 0000000000..ff486c4bf0
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.messaging/-artemis-messaging-component/-c-l-i-e-n-t-s_-p-r-e-f-i-x.html
@@ -0,0 +1,15 @@
+
+
+ArtemisMessagingComponent.CLIENTS_PREFIX -
+
+
+
+net.corda.node.services.messaging / ArtemisMessagingComponent / CLIENTS_PREFIX
+
+CLIENTS_PREFIX
+
+const val CLIENTS_PREFIX : String
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.messaging/-artemis-messaging-component/-connection-direction/-i-n-b-o-u-n-d.html b/docs/build/html/api/net.corda.node.services.messaging/-artemis-messaging-component/-connection-direction/-i-n-b-o-u-n-d.html
new file mode 100644
index 0000000000..6a65feb57f
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.messaging/-artemis-messaging-component/-connection-direction/-i-n-b-o-u-n-d.html
@@ -0,0 +1,14 @@
+
+
+ArtemisMessagingComponent.ConnectionDirection.INBOUND -
+
+
+
+net.corda.node.services.messaging / ArtemisMessagingComponent / ConnectionDirection / INBOUND
+
+INBOUND
+INBOUND
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.messaging/-artemis-messaging-component/-connection-direction/-o-u-t-b-o-u-n-d.html b/docs/build/html/api/net.corda.node.services.messaging/-artemis-messaging-component/-connection-direction/-o-u-t-b-o-u-n-d.html
new file mode 100644
index 0000000000..c4165d0e39
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.messaging/-artemis-messaging-component/-connection-direction/-o-u-t-b-o-u-n-d.html
@@ -0,0 +1,14 @@
+
+
+ArtemisMessagingComponent.ConnectionDirection.OUTBOUND -
+
+
+
+net.corda.node.services.messaging / ArtemisMessagingComponent / ConnectionDirection / OUTBOUND
+
+OUTBOUND
+OUTBOUND
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.messaging/-artemis-messaging-component/-connection-direction/index.html b/docs/build/html/api/net.corda.node.services.messaging/-artemis-messaging-component/-connection-direction/index.html
new file mode 100644
index 0000000000..d5e67b3f35
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.messaging/-artemis-messaging-component/-connection-direction/index.html
@@ -0,0 +1,31 @@
+
+
+ArtemisMessagingComponent.ConnectionDirection -
+
+
+
+net.corda.node.services.messaging / ArtemisMessagingComponent / ConnectionDirection
+
+ConnectionDirection
+protected enum class ConnectionDirection
+
+
+Enum Values
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.messaging/-artemis-messaging-component/-init-.html b/docs/build/html/api/net.corda.node.services.messaging/-artemis-messaging-component/-init-.html
new file mode 100644
index 0000000000..c4306fade1
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.messaging/-artemis-messaging-component/-init-.html
@@ -0,0 +1,15 @@
+
+
+ArtemisMessagingComponent. -
+
+
+
+net.corda.node.services.messaging / ArtemisMessagingComponent / <init>
+
+<init>
+ArtemisMessagingComponent ( )
+The base class for Artemis services that defines shared data structures and transport configuration
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.messaging/-artemis-messaging-component/-n-e-t-w-o-r-k_-m-a-p_-a-d-d-r-e-s-s.html b/docs/build/html/api/net.corda.node.services.messaging/-artemis-messaging-component/-n-e-t-w-o-r-k_-m-a-p_-a-d-d-r-e-s-s.html
new file mode 100644
index 0000000000..7b26e6cbfa
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.messaging/-artemis-messaging-component/-n-e-t-w-o-r-k_-m-a-p_-a-d-d-r-e-s-s.html
@@ -0,0 +1,15 @@
+
+
+ArtemisMessagingComponent.NETWORK_MAP_ADDRESS -
+
+
+
+net.corda.node.services.messaging / ArtemisMessagingComponent / NETWORK_MAP_ADDRESS
+
+NETWORK_MAP_ADDRESS
+
+protected val NETWORK_MAP_ADDRESS : <ERROR CLASS>
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.messaging/-artemis-messaging-component/-network-map-address/-init-.html b/docs/build/html/api/net.corda.node.services.messaging/-artemis-messaging-component/-network-map-address/-init-.html
new file mode 100644
index 0000000000..d0008998fe
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.messaging/-artemis-messaging-component/-network-map-address/-init-.html
@@ -0,0 +1,14 @@
+
+
+ArtemisMessagingComponent.NetworkMapAddress. -
+
+
+
+net.corda.node.services.messaging / ArtemisMessagingComponent / NetworkMapAddress / <init>
+
+<init>
+NetworkMapAddress ( hostAndPort : <ERROR CLASS> )
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.messaging/-artemis-messaging-component/-network-map-address/host-and-port.html b/docs/build/html/api/net.corda.node.services.messaging/-artemis-messaging-component/-network-map-address/host-and-port.html
new file mode 100644
index 0000000000..1c8c214c18
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.messaging/-artemis-messaging-component/-network-map-address/host-and-port.html
@@ -0,0 +1,16 @@
+
+
+ArtemisMessagingComponent.NetworkMapAddress.hostAndPort -
+
+
+
+net.corda.node.services.messaging / ArtemisMessagingComponent / NetworkMapAddress / hostAndPort
+
+hostAndPort
+
+val hostAndPort : <ERROR CLASS>
+Overrides ArtemisAddress.hostAndPort
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.messaging/-artemis-messaging-component/-network-map-address/index.html b/docs/build/html/api/net.corda.node.services.messaging/-artemis-messaging-component/-network-map-address/index.html
new file mode 100644
index 0000000000..e1d3f668d6
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.messaging/-artemis-messaging-component/-network-map-address/index.html
@@ -0,0 +1,42 @@
+
+
+ArtemisMessagingComponent.NetworkMapAddress -
+
+
+
+net.corda.node.services.messaging / ArtemisMessagingComponent / NetworkMapAddress
+
+NetworkMapAddress
+protected data class NetworkMapAddress : SingleMessageRecipient , ArtemisAddress
+
+
+Constructors
+
+
+
+
+<init>
+
+NetworkMapAddress ( hostAndPort : <ERROR CLASS> )
+
+
+
+Properties
+
+
+
+
+hostAndPort
+
+val hostAndPort : <ERROR CLASS>
+
+
+
+queueName
+
+val queueName : <ERROR CLASS>
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.messaging/-artemis-messaging-component/-network-map-address/queue-name.html b/docs/build/html/api/net.corda.node.services.messaging/-artemis-messaging-component/-network-map-address/queue-name.html
new file mode 100644
index 0000000000..f27d6ab070
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.messaging/-artemis-messaging-component/-network-map-address/queue-name.html
@@ -0,0 +1,16 @@
+
+
+ArtemisMessagingComponent.NetworkMapAddress.queueName -
+
+
+
+net.corda.node.services.messaging / ArtemisMessagingComponent / NetworkMapAddress / queueName
+
+queueName
+
+val queueName : <ERROR CLASS>
+Overrides ArtemisAddress.queueName
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.messaging/-artemis-messaging-component/-node-address/-init-.html b/docs/build/html/api/net.corda.node.services.messaging/-artemis-messaging-component/-node-address/-init-.html
new file mode 100644
index 0000000000..2c91cd865c
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.messaging/-artemis-messaging-component/-node-address/-init-.html
@@ -0,0 +1,17 @@
+
+
+ArtemisMessagingComponent.NodeAddress. -
+
+
+
+net.corda.node.services.messaging / ArtemisMessagingComponent / NodeAddress / <init>
+
+<init>
+NodeAddress ( identity : PublicKey , hostAndPort : <ERROR CLASS> )
+This is the class used to implement SingleMessageRecipient , for now. Note that in future this class
+may change or evolve and code that relies upon it being a simple host/port may not function correctly.
+For instance it may contain onion routing data.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.messaging/-artemis-messaging-component/-node-address/host-and-port.html b/docs/build/html/api/net.corda.node.services.messaging/-artemis-messaging-component/-node-address/host-and-port.html
new file mode 100644
index 0000000000..d0eaf171b1
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.messaging/-artemis-messaging-component/-node-address/host-and-port.html
@@ -0,0 +1,16 @@
+
+
+ArtemisMessagingComponent.NodeAddress.hostAndPort -
+
+
+
+net.corda.node.services.messaging / ArtemisMessagingComponent / NodeAddress / hostAndPort
+
+hostAndPort
+
+val hostAndPort : <ERROR CLASS>
+Overrides ArtemisAddress.hostAndPort
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.messaging/-artemis-messaging-component/-node-address/identity.html b/docs/build/html/api/net.corda.node.services.messaging/-artemis-messaging-component/-node-address/identity.html
new file mode 100644
index 0000000000..e8870706f0
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.messaging/-artemis-messaging-component/-node-address/identity.html
@@ -0,0 +1,15 @@
+
+
+ArtemisMessagingComponent.NodeAddress.identity -
+
+
+
+net.corda.node.services.messaging / ArtemisMessagingComponent / NodeAddress / identity
+
+identity
+
+val identity : PublicKey
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.messaging/-artemis-messaging-component/-node-address/index.html b/docs/build/html/api/net.corda.node.services.messaging/-artemis-messaging-component/-node-address/index.html
new file mode 100644
index 0000000000..5efb0989b7
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.messaging/-artemis-messaging-component/-node-address/index.html
@@ -0,0 +1,65 @@
+
+
+ArtemisMessagingComponent.NodeAddress -
+
+
+
+net.corda.node.services.messaging / ArtemisMessagingComponent / NodeAddress
+
+NodeAddress
+data class NodeAddress : SingleMessageRecipient , ArtemisAddress
+This is the class used to implement SingleMessageRecipient , for now. Note that in future this class
+may change or evolve and code that relies upon it being a simple host/port may not function correctly.
+For instance it may contain onion routing data.
+
+
+Constructors
+
+
+
+
+<init>
+
+NodeAddress ( identity : PublicKey , hostAndPort : <ERROR CLASS> )
This is the class used to implement SingleMessageRecipient , for now. Note that in future this class
+may change or evolve and code that relies upon it being a simple host/port may not function correctly.
+For instance it may contain onion routing data.
+
+
+
+
+Properties
+
+Functions
+
+
+
+
+toString
+
+fun toString ( ) : String
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.messaging/-artemis-messaging-component/-node-address/queue-name.html b/docs/build/html/api/net.corda.node.services.messaging/-artemis-messaging-component/-node-address/queue-name.html
new file mode 100644
index 0000000000..236e872d8e
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.messaging/-artemis-messaging-component/-node-address/queue-name.html
@@ -0,0 +1,16 @@
+
+
+ArtemisMessagingComponent.NodeAddress.queueName -
+
+
+
+net.corda.node.services.messaging / ArtemisMessagingComponent / NodeAddress / queueName
+
+queueName
+
+val queueName : <ERROR CLASS>
+Overrides ArtemisAddress.queueName
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.messaging/-artemis-messaging-component/-node-address/to-string.html b/docs/build/html/api/net.corda.node.services.messaging/-artemis-messaging-component/-node-address/to-string.html
new file mode 100644
index 0000000000..4540aa4beb
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.messaging/-artemis-messaging-component/-node-address/to-string.html
@@ -0,0 +1,15 @@
+
+
+ArtemisMessagingComponent.NodeAddress.toString -
+
+
+
+net.corda.node.services.messaging / ArtemisMessagingComponent / NodeAddress / toString
+
+toString
+
+fun toString ( ) : String
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.messaging/-artemis-messaging-component/-p-e-e-r-s_-p-r-e-f-i-x.html b/docs/build/html/api/net.corda.node.services.messaging/-artemis-messaging-component/-p-e-e-r-s_-p-r-e-f-i-x.html
new file mode 100644
index 0000000000..65d89436a2
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.messaging/-artemis-messaging-component/-p-e-e-r-s_-p-r-e-f-i-x.html
@@ -0,0 +1,15 @@
+
+
+ArtemisMessagingComponent.PEERS_PREFIX -
+
+
+
+net.corda.node.services.messaging / ArtemisMessagingComponent / PEERS_PREFIX
+
+PEERS_PREFIX
+
+const val PEERS_PREFIX : String
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.messaging/-artemis-messaging-component/-r-p-c_-r-e-q-u-e-s-t-s_-q-u-e-u-e.html b/docs/build/html/api/net.corda.node.services.messaging/-artemis-messaging-component/-r-p-c_-r-e-q-u-e-s-t-s_-q-u-e-u-e.html
new file mode 100644
index 0000000000..a71a02bddc
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.messaging/-artemis-messaging-component/-r-p-c_-r-e-q-u-e-s-t-s_-q-u-e-u-e.html
@@ -0,0 +1,15 @@
+
+
+ArtemisMessagingComponent.RPC_REQUESTS_QUEUE -
+
+
+
+net.corda.node.services.messaging / ArtemisMessagingComponent / RPC_REQUESTS_QUEUE
+
+RPC_REQUESTS_QUEUE
+
+const val RPC_REQUESTS_QUEUE : String
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.messaging/-artemis-messaging-component/check-store-passwords.html b/docs/build/html/api/net.corda.node.services.messaging/-artemis-messaging-component/check-store-passwords.html
new file mode 100644
index 0000000000..46a6064614
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.messaging/-artemis-messaging-component/check-store-passwords.html
@@ -0,0 +1,17 @@
+
+
+ArtemisMessagingComponent.checkStorePasswords -
+
+
+
+net.corda.node.services.messaging / ArtemisMessagingComponent / checkStorePasswords
+
+checkStorePasswords
+
+fun checkStorePasswords ( ) : Unit
+Returns nothing if the keystore was opened OK or throws if not. Useful to check the password, as
+unfortunately Artemis tends to bury the exception when the password is wrong.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.messaging/-artemis-messaging-component/config.html b/docs/build/html/api/net.corda.node.services.messaging/-artemis-messaging-component/config.html
new file mode 100644
index 0000000000..8bf12f29b1
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.messaging/-artemis-messaging-component/config.html
@@ -0,0 +1,16 @@
+
+
+ArtemisMessagingComponent.config -
+
+
+
+net.corda.node.services.messaging / ArtemisMessagingComponent / config
+
+config
+
+abstract val config : NodeSSLConfiguration
+The config object is used to pass in the passwords for the certificate KeyStore and TrustStore
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.messaging/-artemis-messaging-component/configure-with-dev-s-s-l-certificate.html b/docs/build/html/api/net.corda.node.services.messaging/-artemis-messaging-component/configure-with-dev-s-s-l-certificate.html
new file mode 100644
index 0000000000..78aa34da49
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.messaging/-artemis-messaging-component/configure-with-dev-s-s-l-certificate.html
@@ -0,0 +1,15 @@
+
+
+ArtemisMessagingComponent.configureWithDevSSLCertificate -
+
+
+
+net.corda.node.services.messaging / ArtemisMessagingComponent / configureWithDevSSLCertificate
+
+configureWithDevSSLCertificate
+
+fun configureWithDevSSLCertificate ( ) : Unit
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.messaging/-artemis-messaging-component/expected-on-default-file-system.html b/docs/build/html/api/net.corda.node.services.messaging/-artemis-messaging-component/expected-on-default-file-system.html
new file mode 100644
index 0000000000..8b5bc6d0b9
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.messaging/-artemis-messaging-component/expected-on-default-file-system.html
@@ -0,0 +1,15 @@
+
+
+ArtemisMessagingComponent.expectedOnDefaultFileSystem -
+
+
+
+net.corda.node.services.messaging / ArtemisMessagingComponent / expectedOnDefaultFileSystem
+
+expectedOnDefaultFileSystem
+
+protected fun Path . expectedOnDefaultFileSystem ( ) : Unit
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.messaging/-artemis-messaging-component/index.html b/docs/build/html/api/net.corda.node.services.messaging/-artemis-messaging-component/index.html
new file mode 100644
index 0000000000..cbc2a68986
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.messaging/-artemis-messaging-component/index.html
@@ -0,0 +1,201 @@
+
+
+ArtemisMessagingComponent -
+
+
+
+net.corda.node.services.messaging / ArtemisMessagingComponent
+
+ArtemisMessagingComponent
+abstract class ArtemisMessagingComponent : SingletonSerializeAsToken
+The base class for Artemis services that defines shared data structures and transport configuration
+
+
+Types
+
+Constructors
+
+
+
+
+<init>
+
+ArtemisMessagingComponent ( )
The base class for Artemis services that defines shared data structures and transport configuration
+
+
+
+
+Properties
+
+
+
+
+config
+
+abstract val config : NodeSSLConfiguration
The config object is used to pass in the passwords for the certificate KeyStore and TrustStore
+
+
+
+
+Functions
+
+Inherited Functions
+
+Companion Object Properties
+
+Companion Object Functions
+
+
+
+
+toHostAndPort
+
+fun toHostAndPort ( target : MessageRecipients ) : <ERROR CLASS>
Assuming the passed in target address is actually an ArtemisAddress will extract the host and port of the node. This should
+only be used in unit tests and the internals of the messaging services to keep addressing opaque for the future.
+N.B. Marked as JvmStatic to allow use in the inherited classes.
+
+
+
+
+toQueueName
+
+fun toQueueName ( target : MessageRecipients ) : <ERROR CLASS>
Assuming the passed in target address is actually an ArtemisAddress will extract the queue name used.
+For now the queue name is the Base58 version of the nodes identity.
+This should only be used in the internals of the messaging services to keep addressing opaque for the future.
+N.B. Marked as JvmStatic to allow use in the inherited classes.
+
+
+
+
+Inheritors
+
+
+
+
+ArtemisMessagingServer
+
+class ArtemisMessagingServer : ArtemisMessagingComponent
This class configures and manages an Apache Artemis message queue broker.
+
+
+
+
+CordaRPCClient
+
+class CordaRPCClient : Closeable , ArtemisMessagingComponent
An RPC client connects to the specified server and allows you to make calls to the server that perform various
+useful tasks. See the documentation for proxy or review the docsite to learn more about how this API works.
+
+
+
+
+NodeMessagingClient
+
+class NodeMessagingClient : ArtemisMessagingComponent , MessagingServiceInternal
This class implements the MessagingService API using Apache Artemis, the successor to their ActiveMQ product.
+Artemis is a message queue broker and here we run a client connecting to the specified broker instance
+ArtemisMessagingServer . Its primarily concerned with peer-to-peer messaging.
+
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.messaging/-artemis-messaging-component/parse-key-from-queue-name.html b/docs/build/html/api/net.corda.node.services.messaging/-artemis-messaging-component/parse-key-from-queue-name.html
new file mode 100644
index 0000000000..26e2ef7764
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.messaging/-artemis-messaging-component/parse-key-from-queue-name.html
@@ -0,0 +1,15 @@
+
+
+ArtemisMessagingComponent.parseKeyFromQueueName -
+
+
+
+net.corda.node.services.messaging / ArtemisMessagingComponent / parseKeyFromQueueName
+
+parseKeyFromQueueName
+
+protected fun parseKeyFromQueueName ( name : String ) : PublicKey
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.messaging/-artemis-messaging-component/tcp-transport.html b/docs/build/html/api/net.corda.node.services.messaging/-artemis-messaging-component/tcp-transport.html
new file mode 100644
index 0000000000..7b82acc3a2
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.messaging/-artemis-messaging-component/tcp-transport.html
@@ -0,0 +1,15 @@
+
+
+ArtemisMessagingComponent.tcpTransport -
+
+
+
+net.corda.node.services.messaging / ArtemisMessagingComponent / tcpTransport
+
+tcpTransport
+
+protected fun tcpTransport ( direction : ConnectionDirection , host : String , port : Int ) : <ERROR CLASS>
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.messaging/-artemis-messaging-component/to-host-and-port.html b/docs/build/html/api/net.corda.node.services.messaging/-artemis-messaging-component/to-host-and-port.html
new file mode 100644
index 0000000000..767ed7ffbb
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.messaging/-artemis-messaging-component/to-host-and-port.html
@@ -0,0 +1,18 @@
+
+
+ArtemisMessagingComponent.toHostAndPort -
+
+
+
+net.corda.node.services.messaging / ArtemisMessagingComponent / toHostAndPort
+
+toHostAndPort
+
+fun toHostAndPort ( target : MessageRecipients ) : <ERROR CLASS>
+Assuming the passed in target address is actually an ArtemisAddress will extract the host and port of the node. This should
+only be used in unit tests and the internals of the messaging services to keep addressing opaque for the future.
+N.B. Marked as JvmStatic to allow use in the inherited classes.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.messaging/-artemis-messaging-component/to-queue-name.html b/docs/build/html/api/net.corda.node.services.messaging/-artemis-messaging-component/to-queue-name.html
new file mode 100644
index 0000000000..939ebf7839
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.messaging/-artemis-messaging-component/to-queue-name.html
@@ -0,0 +1,19 @@
+
+
+ArtemisMessagingComponent.toQueueName -
+
+
+
+net.corda.node.services.messaging / ArtemisMessagingComponent / toQueueName
+
+toQueueName
+
+protected fun toQueueName ( target : MessageRecipients ) : <ERROR CLASS>
+Assuming the passed in target address is actually an ArtemisAddress will extract the queue name used.
+For now the queue name is the Base58 version of the nodes identity.
+This should only be used in the internals of the messaging services to keep addressing opaque for the future.
+N.B. Marked as JvmStatic to allow use in the inherited classes.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.messaging/-artemis-messaging-server/-init-.html b/docs/build/html/api/net.corda.node.services.messaging/-artemis-messaging-server/-init-.html
new file mode 100644
index 0000000000..527b2be3ad
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.messaging/-artemis-messaging-server/-init-.html
@@ -0,0 +1,22 @@
+
+
+ArtemisMessagingServer. -
+
+
+
+net.corda.node.services.messaging / ArtemisMessagingServer / <init>
+
+<init>
+ArtemisMessagingServer ( config : NodeConfiguration , myHostPort : <ERROR CLASS> , networkMapCache : NetworkMapCache , userService : RPCUserService )
+This class configures and manages an Apache Artemis message queue broker.
+Nodes communication is managed using an Artemis specific protocol, but it supports other protocols like AMQP/1.0
+as well for interop.
+The current implementation is skeletal and lacks features like security or firewall tunnelling (that is, you must
+be able to receive TCP connections in order to receive messages). It is good enough for local communication within
+a fully connected network, trusted network or on localhost.
+
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.messaging/-artemis-messaging-server/-node-login-module/-init-.html b/docs/build/html/api/net.corda.node.services.messaging/-artemis-messaging-server/-node-login-module/-init-.html
new file mode 100644
index 0000000000..5ad589923d
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.messaging/-artemis-messaging-server/-node-login-module/-init-.html
@@ -0,0 +1,14 @@
+
+
+ArtemisMessagingServer.NodeLoginModule. -
+
+
+
+net.corda.node.services.messaging / ArtemisMessagingServer / NodeLoginModule / <init>
+
+<init>
+NodeLoginModule ( )
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.messaging/-artemis-messaging-server/-node-login-module/-n-o-d-e_-u-s-e-r.html b/docs/build/html/api/net.corda.node.services.messaging/-artemis-messaging-server/-node-login-module/-n-o-d-e_-u-s-e-r.html
new file mode 100644
index 0000000000..c5966e525e
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.messaging/-artemis-messaging-server/-node-login-module/-n-o-d-e_-u-s-e-r.html
@@ -0,0 +1,15 @@
+
+
+ArtemisMessagingServer.NodeLoginModule.NODE_USER -
+
+
+
+net.corda.node.services.messaging / ArtemisMessagingServer / NodeLoginModule / NODE_USER
+
+NODE_USER
+
+const val NODE_USER : String
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.messaging/-artemis-messaging-server/-node-login-module/abort.html b/docs/build/html/api/net.corda.node.services.messaging/-artemis-messaging-server/-node-login-module/abort.html
new file mode 100644
index 0000000000..632848f39c
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.messaging/-artemis-messaging-server/-node-login-module/abort.html
@@ -0,0 +1,15 @@
+
+
+ArtemisMessagingServer.NodeLoginModule.abort -
+
+
+
+net.corda.node.services.messaging / ArtemisMessagingServer / NodeLoginModule / abort
+
+abort
+
+fun abort ( ) : Boolean
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.messaging/-artemis-messaging-server/-node-login-module/commit.html b/docs/build/html/api/net.corda.node.services.messaging/-artemis-messaging-server/-node-login-module/commit.html
new file mode 100644
index 0000000000..bca3ee46ba
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.messaging/-artemis-messaging-server/-node-login-module/commit.html
@@ -0,0 +1,15 @@
+
+
+ArtemisMessagingServer.NodeLoginModule.commit -
+
+
+
+net.corda.node.services.messaging / ArtemisMessagingServer / NodeLoginModule / commit
+
+commit
+
+fun commit ( ) : Boolean
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.messaging/-artemis-messaging-server/-node-login-module/index.html b/docs/build/html/api/net.corda.node.services.messaging/-artemis-messaging-server/-node-login-module/index.html
new file mode 100644
index 0000000000..11ac2a83ec
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.messaging/-artemis-messaging-server/-node-login-module/index.html
@@ -0,0 +1,71 @@
+
+
+ArtemisMessagingServer.NodeLoginModule -
+
+
+
+net.corda.node.services.messaging / ArtemisMessagingServer / NodeLoginModule
+
+NodeLoginModule
+class NodeLoginModule : LoginModule
+
+
+Constructors
+
+
+
+
+<init>
+
+NodeLoginModule ( )
+
+
+
+Functions
+
+
+
+
+abort
+
+fun abort ( ) : Boolean
+
+
+
+commit
+
+fun commit ( ) : Boolean
+
+
+
+initialize
+
+fun initialize ( subject : Subject , callbackHandler : CallbackHandler , sharedState : Map < String , * > , options : Map < String , * > ) : Unit
+
+
+
+login
+
+fun login ( ) : Boolean
+
+
+
+logout
+
+fun logout ( ) : Boolean
+
+
+
+Companion Object Properties
+
+
+
+
+NODE_USER
+
+const val NODE_USER : String
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.messaging/-artemis-messaging-server/-node-login-module/initialize.html b/docs/build/html/api/net.corda.node.services.messaging/-artemis-messaging-server/-node-login-module/initialize.html
new file mode 100644
index 0000000000..2911d84fb4
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.messaging/-artemis-messaging-server/-node-login-module/initialize.html
@@ -0,0 +1,15 @@
+
+
+ArtemisMessagingServer.NodeLoginModule.initialize -
+
+
+
+net.corda.node.services.messaging / ArtemisMessagingServer / NodeLoginModule / initialize
+
+initialize
+
+fun initialize ( subject : Subject , callbackHandler : CallbackHandler , sharedState : Map < String , * > , options : Map < String , * > ) : Unit
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.messaging/-artemis-messaging-server/-node-login-module/login.html b/docs/build/html/api/net.corda.node.services.messaging/-artemis-messaging-server/-node-login-module/login.html
new file mode 100644
index 0000000000..e4ee5aee99
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.messaging/-artemis-messaging-server/-node-login-module/login.html
@@ -0,0 +1,15 @@
+
+
+ArtemisMessagingServer.NodeLoginModule.login -
+
+
+
+net.corda.node.services.messaging / ArtemisMessagingServer / NodeLoginModule / login
+
+login
+
+fun login ( ) : Boolean
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.messaging/-artemis-messaging-server/-node-login-module/logout.html b/docs/build/html/api/net.corda.node.services.messaging/-artemis-messaging-server/-node-login-module/logout.html
new file mode 100644
index 0000000000..a7f71d1621
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.messaging/-artemis-messaging-server/-node-login-module/logout.html
@@ -0,0 +1,15 @@
+
+
+ArtemisMessagingServer.NodeLoginModule.logout -
+
+
+
+net.corda.node.services.messaging / ArtemisMessagingServer / NodeLoginModule / logout
+
+logout
+
+fun logout ( ) : Boolean
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.messaging/-artemis-messaging-server/bridge-to-network-map-service.html b/docs/build/html/api/net.corda.node.services.messaging/-artemis-messaging-server/bridge-to-network-map-service.html
new file mode 100644
index 0000000000..dde3de1fd4
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.messaging/-artemis-messaging-server/bridge-to-network-map-service.html
@@ -0,0 +1,15 @@
+
+
+ArtemisMessagingServer.bridgeToNetworkMapService -
+
+
+
+net.corda.node.services.messaging / ArtemisMessagingServer / bridgeToNetworkMapService
+
+bridgeToNetworkMapService
+
+fun bridgeToNetworkMapService ( networkMapService : SingleMessageRecipient ? ) : Unit
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.messaging/-artemis-messaging-server/config.html b/docs/build/html/api/net.corda.node.services.messaging/-artemis-messaging-server/config.html
new file mode 100644
index 0000000000..f4c880c8c7
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.messaging/-artemis-messaging-server/config.html
@@ -0,0 +1,17 @@
+
+
+ArtemisMessagingServer.config -
+
+
+
+net.corda.node.services.messaging / ArtemisMessagingServer / config
+
+config
+
+val config : NodeConfiguration
+Overrides ArtemisMessagingComponent.config
+The config object is used to pass in the passwords for the certificate KeyStore and TrustStore
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.messaging/-artemis-messaging-server/index.html b/docs/build/html/api/net.corda.node.services.messaging/-artemis-messaging-server/index.html
new file mode 100644
index 0000000000..62ed3bf7e5
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.messaging/-artemis-messaging-server/index.html
@@ -0,0 +1,135 @@
+
+
+ArtemisMessagingServer -
+
+
+
+net.corda.node.services.messaging / ArtemisMessagingServer
+
+ArtemisMessagingServer
+class ArtemisMessagingServer : ArtemisMessagingComponent
+This class configures and manages an Apache Artemis message queue broker.
+Nodes communication is managed using an Artemis specific protocol, but it supports other protocols like AMQP/1.0
+as well for interop.
+The current implementation is skeletal and lacks features like security or firewall tunnelling (that is, you must
+be able to receive TCP connections in order to receive messages). It is good enough for local communication within
+a fully connected network, trusted network or on localhost.
+
+
+
+
+Types
+
+Constructors
+
+Properties
+
+Functions
+
+Inherited Functions
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.messaging/-artemis-messaging-server/my-host-port.html b/docs/build/html/api/net.corda.node.services.messaging/-artemis-messaging-server/my-host-port.html
new file mode 100644
index 0000000000..a19b9eec36
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.messaging/-artemis-messaging-server/my-host-port.html
@@ -0,0 +1,15 @@
+
+
+ArtemisMessagingServer.myHostPort -
+
+
+
+net.corda.node.services.messaging / ArtemisMessagingServer / myHostPort
+
+myHostPort
+
+val myHostPort : <ERROR CLASS>
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.messaging/-artemis-messaging-server/network-map-cache.html b/docs/build/html/api/net.corda.node.services.messaging/-artemis-messaging-server/network-map-cache.html
new file mode 100644
index 0000000000..83322bb124
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.messaging/-artemis-messaging-server/network-map-cache.html
@@ -0,0 +1,15 @@
+
+
+ArtemisMessagingServer.networkMapCache -
+
+
+
+net.corda.node.services.messaging / ArtemisMessagingServer / networkMapCache
+
+networkMapCache
+
+val networkMapCache : NetworkMapCache
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.messaging/-artemis-messaging-server/start.html b/docs/build/html/api/net.corda.node.services.messaging/-artemis-messaging-server/start.html
new file mode 100644
index 0000000000..7d9861da01
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.messaging/-artemis-messaging-server/start.html
@@ -0,0 +1,15 @@
+
+
+ArtemisMessagingServer.start -
+
+
+
+net.corda.node.services.messaging / ArtemisMessagingServer / start
+
+start
+
+fun start ( ) : Unit
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.messaging/-artemis-messaging-server/stop.html b/docs/build/html/api/net.corda.node.services.messaging/-artemis-messaging-server/stop.html
new file mode 100644
index 0000000000..67e7193f0b
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.messaging/-artemis-messaging-server/stop.html
@@ -0,0 +1,15 @@
+
+
+ArtemisMessagingServer.stop -
+
+
+
+net.corda.node.services.messaging / ArtemisMessagingServer / stop
+
+stop
+
+fun stop ( ) : Unit
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.messaging/-artemis-messaging-server/user-service.html b/docs/build/html/api/net.corda.node.services.messaging/-artemis-messaging-server/user-service.html
new file mode 100644
index 0000000000..1a7ea4b348
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.messaging/-artemis-messaging-server/user-service.html
@@ -0,0 +1,15 @@
+
+
+ArtemisMessagingServer.userService -
+
+
+
+net.corda.node.services.messaging / ArtemisMessagingServer / userService
+
+userService
+
+val userService : RPCUserService
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.messaging/-c-u-r-r-e-n-t_-r-p-c_-u-s-e-r.html b/docs/build/html/api/net.corda.node.services.messaging/-c-u-r-r-e-n-t_-r-p-c_-u-s-e-r.html
new file mode 100644
index 0000000000..ec23a0e970
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.messaging/-c-u-r-r-e-n-t_-r-p-c_-u-s-e-r.html
@@ -0,0 +1,17 @@
+
+
+CURRENT_RPC_USER -
+
+
+
+net.corda.node.services.messaging / CURRENT_RPC_USER
+
+CURRENT_RPC_USER
+
+val CURRENT_RPC_USER : ThreadLocal < User >
+This is available to RPC implementations to query the validated User that is calling it. Each user has a set of
+permissions theyre entitled to which can be used to control access.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.messaging/-client-r-p-c-request-message/-init-.html b/docs/build/html/api/net.corda.node.services.messaging/-client-r-p-c-request-message/-init-.html
new file mode 100644
index 0000000000..07837db7f7
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.messaging/-client-r-p-c-request-message/-init-.html
@@ -0,0 +1,15 @@
+
+
+ClientRPCRequestMessage. -
+
+
+
+net.corda.node.services.messaging / ClientRPCRequestMessage / <init>
+
+<init>
+ClientRPCRequestMessage ( args : SerializedBytes < Array < Any > > , replyToAddress : String , observationsToAddress : String ? , methodName : String , user : User )
+The contents of an RPC request message, separated from the MQ layer.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.messaging/-client-r-p-c-request-message/-m-e-t-h-o-d_-n-a-m-e.html b/docs/build/html/api/net.corda.node.services.messaging/-client-r-p-c-request-message/-m-e-t-h-o-d_-n-a-m-e.html
new file mode 100644
index 0000000000..ea7a591f1c
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.messaging/-client-r-p-c-request-message/-m-e-t-h-o-d_-n-a-m-e.html
@@ -0,0 +1,15 @@
+
+
+ClientRPCRequestMessage.METHOD_NAME -
+
+
+
+net.corda.node.services.messaging / ClientRPCRequestMessage / METHOD_NAME
+
+METHOD_NAME
+
+const val METHOD_NAME : String
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.messaging/-client-r-p-c-request-message/-o-b-s-e-r-v-a-t-i-o-n-s_-t-o.html b/docs/build/html/api/net.corda.node.services.messaging/-client-r-p-c-request-message/-o-b-s-e-r-v-a-t-i-o-n-s_-t-o.html
new file mode 100644
index 0000000000..ec3dde6cf8
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.messaging/-client-r-p-c-request-message/-o-b-s-e-r-v-a-t-i-o-n-s_-t-o.html
@@ -0,0 +1,15 @@
+
+
+ClientRPCRequestMessage.OBSERVATIONS_TO -
+
+
+
+net.corda.node.services.messaging / ClientRPCRequestMessage / OBSERVATIONS_TO
+
+OBSERVATIONS_TO
+
+const val OBSERVATIONS_TO : String
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.messaging/-client-r-p-c-request-message/-r-e-p-l-y_-t-o.html b/docs/build/html/api/net.corda.node.services.messaging/-client-r-p-c-request-message/-r-e-p-l-y_-t-o.html
new file mode 100644
index 0000000000..0c4232b843
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.messaging/-client-r-p-c-request-message/-r-e-p-l-y_-t-o.html
@@ -0,0 +1,15 @@
+
+
+ClientRPCRequestMessage.REPLY_TO -
+
+
+
+net.corda.node.services.messaging / ClientRPCRequestMessage / REPLY_TO
+
+REPLY_TO
+
+const val REPLY_TO : String
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.messaging/-client-r-p-c-request-message/args.html b/docs/build/html/api/net.corda.node.services.messaging/-client-r-p-c-request-message/args.html
new file mode 100644
index 0000000000..6595fb365e
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.messaging/-client-r-p-c-request-message/args.html
@@ -0,0 +1,15 @@
+
+
+ClientRPCRequestMessage.args -
+
+
+
+net.corda.node.services.messaging / ClientRPCRequestMessage / args
+
+args
+
+val args : SerializedBytes < Array < Any > >
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.messaging/-client-r-p-c-request-message/index.html b/docs/build/html/api/net.corda.node.services.messaging/-client-r-p-c-request-message/index.html
new file mode 100644
index 0000000000..e12574869d
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.messaging/-client-r-p-c-request-message/index.html
@@ -0,0 +1,85 @@
+
+
+ClientRPCRequestMessage -
+
+
+
+net.corda.node.services.messaging / ClientRPCRequestMessage
+
+ClientRPCRequestMessage
+data class ClientRPCRequestMessage
+The contents of an RPC request message, separated from the MQ layer.
+
+
+Constructors
+
+
+
+
+<init>
+
+ClientRPCRequestMessage ( args : SerializedBytes < Array < Any > > , replyToAddress : String , observationsToAddress : String ? , methodName : String , user : User )
The contents of an RPC request message, separated from the MQ layer.
+
+
+
+
+Properties
+
+Companion Object Properties
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.messaging/-client-r-p-c-request-message/method-name.html b/docs/build/html/api/net.corda.node.services.messaging/-client-r-p-c-request-message/method-name.html
new file mode 100644
index 0000000000..efcd207bb6
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.messaging/-client-r-p-c-request-message/method-name.html
@@ -0,0 +1,15 @@
+
+
+ClientRPCRequestMessage.methodName -
+
+
+
+net.corda.node.services.messaging / ClientRPCRequestMessage / methodName
+
+methodName
+
+val methodName : String
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.messaging/-client-r-p-c-request-message/observations-to-address.html b/docs/build/html/api/net.corda.node.services.messaging/-client-r-p-c-request-message/observations-to-address.html
new file mode 100644
index 0000000000..c9eca451b3
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.messaging/-client-r-p-c-request-message/observations-to-address.html
@@ -0,0 +1,15 @@
+
+
+ClientRPCRequestMessage.observationsToAddress -
+
+
+
+net.corda.node.services.messaging / ClientRPCRequestMessage / observationsToAddress
+
+observationsToAddress
+
+val observationsToAddress : String ?
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.messaging/-client-r-p-c-request-message/reply-to-address.html b/docs/build/html/api/net.corda.node.services.messaging/-client-r-p-c-request-message/reply-to-address.html
new file mode 100644
index 0000000000..0c42e048ba
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.messaging/-client-r-p-c-request-message/reply-to-address.html
@@ -0,0 +1,15 @@
+
+
+ClientRPCRequestMessage.replyToAddress -
+
+
+
+net.corda.node.services.messaging / ClientRPCRequestMessage / replyToAddress
+
+replyToAddress
+
+val replyToAddress : String
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.messaging/-client-r-p-c-request-message/user.html b/docs/build/html/api/net.corda.node.services.messaging/-client-r-p-c-request-message/user.html
new file mode 100644
index 0000000000..72e0af55d9
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.messaging/-client-r-p-c-request-message/user.html
@@ -0,0 +1,15 @@
+
+
+ClientRPCRequestMessage.user -
+
+
+
+net.corda.node.services.messaging / ClientRPCRequestMessage / user
+
+user
+
+val user : User
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.messaging/-corda-r-p-c-ops/add-vault-transaction-note.html b/docs/build/html/api/net.corda.node.services.messaging/-corda-r-p-c-ops/add-vault-transaction-note.html
new file mode 100644
index 0000000000..2cebfc3281
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.messaging/-corda-r-p-c-ops/add-vault-transaction-note.html
@@ -0,0 +1,15 @@
+
+
+CordaRPCOps.addVaultTransactionNote -
+
+
+
+net.corda.node.services.messaging / CordaRPCOps / addVaultTransactionNote
+
+addVaultTransactionNote
+
+abstract fun addVaultTransactionNote ( txnId : SecureHash , txnNote : String ) : Unit
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.messaging/-corda-r-p-c-ops/execute-command.html b/docs/build/html/api/net.corda.node.services.messaging/-corda-r-p-c-ops/execute-command.html
new file mode 100644
index 0000000000..5ddfd68981
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.messaging/-corda-r-p-c-ops/execute-command.html
@@ -0,0 +1,17 @@
+
+
+CordaRPCOps.executeCommand -
+
+
+
+net.corda.node.services.messaging / CordaRPCOps / executeCommand
+
+executeCommand
+
+abstract fun executeCommand ( command : ClientToServiceCommand ) : TransactionBuildResult
+Executes the given command if the user is permissioned to do so, possibly triggering cash creation etc.
+TODO: The signature of this is weird because its the remains of an old service call, we should have a call for each command instead.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.messaging/-corda-r-p-c-ops/get-vault-transaction-notes.html b/docs/build/html/api/net.corda.node.services.messaging/-corda-r-p-c-ops/get-vault-transaction-notes.html
new file mode 100644
index 0000000000..21370ccc27
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.messaging/-corda-r-p-c-ops/get-vault-transaction-notes.html
@@ -0,0 +1,15 @@
+
+
+CordaRPCOps.getVaultTransactionNotes -
+
+
+
+net.corda.node.services.messaging / CordaRPCOps / getVaultTransactionNotes
+
+getVaultTransactionNotes
+
+abstract fun getVaultTransactionNotes ( txnId : SecureHash ) : Iterable < String >
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.messaging/-corda-r-p-c-ops/index.html b/docs/build/html/api/net.corda.node.services.messaging/-corda-r-p-c-ops/index.html
new file mode 100644
index 0000000000..b1fd6b548d
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.messaging/-corda-r-p-c-ops/index.html
@@ -0,0 +1,109 @@
+
+
+CordaRPCOps -
+
+
+
+net.corda.node.services.messaging / CordaRPCOps
+
+CordaRPCOps
+interface CordaRPCOps : RPCOps
+RPC operations that the node exposes to clients using the Java client library. These can be called from
+client apps and are implemented by the node in the ServerRPCOps class.
+
+
+Inherited Properties
+
+
+
+
+protocolVersion
+
+abstract val protocolVersion : Int
Returns the RPC protocol version. Exists since version 0 so guaranteed to be present.
+
+
+
+
+Functions
+
+
+
+
+addVaultTransactionNote
+
+abstract fun addVaultTransactionNote ( txnId : SecureHash , txnNote : String ) : Unit
+
+
+
+executeCommand
+
+abstract fun executeCommand ( command : ClientToServiceCommand ) : TransactionBuildResult
Executes the given command if the user is permissioned to do so, possibly triggering cash creation etc.
+TODO: The signature of this is weird because its the remains of an old service call, we should have a call for each command instead.
+
+
+
+
+getVaultTransactionNotes
+
+abstract fun getVaultTransactionNotes ( txnId : SecureHash ) : Iterable < String >
+
+
+
+networkMapUpdates
+
+abstract fun networkMapUpdates ( ) : <ERROR CLASS> < List < NodeInfo > , <ERROR CLASS> < MapChange > >
Returns all parties currently visible on the network with their advertised services and an observable of future updates to the network.
+
+
+
+
+nodeIdentity
+
+abstract fun nodeIdentity ( ) : NodeInfo
Returns Nodes identity, assuming this will not change while the node is running.
+
+
+
+
+stateMachineRecordedTransactionMapping
+
+abstract fun stateMachineRecordedTransactionMapping ( ) : <ERROR CLASS> < List < StateMachineTransactionMapping > , <ERROR CLASS> < StateMachineTransactionMapping > >
Returns a snapshot list of existing state machine id - recorded transaction hash mappings, and a stream of future
+such mappings as well.
+
+
+
+
+stateMachinesAndUpdates
+
+abstract fun stateMachinesAndUpdates ( ) : <ERROR CLASS> < List < StateMachineInfo > , <ERROR CLASS> < StateMachineUpdate > >
Returns a pair of currently in-progress state machine infos and an observable of future state machine adds/removes.
+
+
+
+
+vaultAndUpdates
+
+abstract fun vaultAndUpdates ( ) : <ERROR CLASS> < List < StateAndRef < ContractState > > , <ERROR CLASS> < Update > >
Returns a pair of head states in the vault and an observable of future updates to the vault.
+
+
+
+
+verifiedTransactions
+
+abstract fun verifiedTransactions ( ) : <ERROR CLASS> < List < SignedTransaction > , <ERROR CLASS> < SignedTransaction > >
Returns a pair of all recorded transactions and an observable of future recorded ones.
+
+
+
+
+Inheritors
+
+
+
+
+CordaRPCOpsImpl
+
+class CordaRPCOpsImpl : CordaRPCOps
Server side implementations of RPCs available to MQ based client tools. Execution takes place on the server
+thread (i.e. serially). Arguments are serialised and deserialised automatically.
+
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.messaging/-corda-r-p-c-ops/network-map-updates.html b/docs/build/html/api/net.corda.node.services.messaging/-corda-r-p-c-ops/network-map-updates.html
new file mode 100644
index 0000000000..29fab37e1d
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.messaging/-corda-r-p-c-ops/network-map-updates.html
@@ -0,0 +1,16 @@
+
+
+CordaRPCOps.networkMapUpdates -
+
+
+
+net.corda.node.services.messaging / CordaRPCOps / networkMapUpdates
+
+networkMapUpdates
+
+@RPCReturnsObservables abstract fun networkMapUpdates ( ) : <ERROR CLASS> < List < NodeInfo > , <ERROR CLASS> < MapChange > >
+Returns all parties currently visible on the network with their advertised services and an observable of future updates to the network.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.messaging/-corda-r-p-c-ops/node-identity.html b/docs/build/html/api/net.corda.node.services.messaging/-corda-r-p-c-ops/node-identity.html
new file mode 100644
index 0000000000..c32c1d391f
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.messaging/-corda-r-p-c-ops/node-identity.html
@@ -0,0 +1,16 @@
+
+
+CordaRPCOps.nodeIdentity -
+
+
+
+net.corda.node.services.messaging / CordaRPCOps / nodeIdentity
+
+nodeIdentity
+
+abstract fun nodeIdentity ( ) : NodeInfo
+Returns Nodes identity, assuming this will not change while the node is running.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.messaging/-corda-r-p-c-ops/state-machine-recorded-transaction-mapping.html b/docs/build/html/api/net.corda.node.services.messaging/-corda-r-p-c-ops/state-machine-recorded-transaction-mapping.html
new file mode 100644
index 0000000000..d5751b125e
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.messaging/-corda-r-p-c-ops/state-machine-recorded-transaction-mapping.html
@@ -0,0 +1,17 @@
+
+
+CordaRPCOps.stateMachineRecordedTransactionMapping -
+
+
+
+net.corda.node.services.messaging / CordaRPCOps / stateMachineRecordedTransactionMapping
+
+stateMachineRecordedTransactionMapping
+
+@RPCReturnsObservables abstract fun stateMachineRecordedTransactionMapping ( ) : <ERROR CLASS> < List < StateMachineTransactionMapping > , <ERROR CLASS> < StateMachineTransactionMapping > >
+Returns a snapshot list of existing state machine id - recorded transaction hash mappings, and a stream of future
+such mappings as well.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.messaging/-corda-r-p-c-ops/state-machines-and-updates.html b/docs/build/html/api/net.corda.node.services.messaging/-corda-r-p-c-ops/state-machines-and-updates.html
new file mode 100644
index 0000000000..ff6a546aff
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.messaging/-corda-r-p-c-ops/state-machines-and-updates.html
@@ -0,0 +1,16 @@
+
+
+CordaRPCOps.stateMachinesAndUpdates -
+
+
+
+net.corda.node.services.messaging / CordaRPCOps / stateMachinesAndUpdates
+
+stateMachinesAndUpdates
+
+@RPCReturnsObservables abstract fun stateMachinesAndUpdates ( ) : <ERROR CLASS> < List < StateMachineInfo > , <ERROR CLASS> < StateMachineUpdate > >
+Returns a pair of currently in-progress state machine infos and an observable of future state machine adds/removes.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.messaging/-corda-r-p-c-ops/vault-and-updates.html b/docs/build/html/api/net.corda.node.services.messaging/-corda-r-p-c-ops/vault-and-updates.html
new file mode 100644
index 0000000000..954b59d84c
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.messaging/-corda-r-p-c-ops/vault-and-updates.html
@@ -0,0 +1,16 @@
+
+
+CordaRPCOps.vaultAndUpdates -
+
+
+
+net.corda.node.services.messaging / CordaRPCOps / vaultAndUpdates
+
+vaultAndUpdates
+
+@RPCReturnsObservables abstract fun vaultAndUpdates ( ) : <ERROR CLASS> < List < StateAndRef < ContractState > > , <ERROR CLASS> < Update > >
+Returns a pair of head states in the vault and an observable of future updates to the vault.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.messaging/-corda-r-p-c-ops/verified-transactions.html b/docs/build/html/api/net.corda.node.services.messaging/-corda-r-p-c-ops/verified-transactions.html
new file mode 100644
index 0000000000..558c29a8ea
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.messaging/-corda-r-p-c-ops/verified-transactions.html
@@ -0,0 +1,16 @@
+
+
+CordaRPCOps.verifiedTransactions -
+
+
+
+net.corda.node.services.messaging / CordaRPCOps / verifiedTransactions
+
+verifiedTransactions
+
+@RPCReturnsObservables abstract fun verifiedTransactions ( ) : <ERROR CLASS> < List < SignedTransaction > , <ERROR CLASS> < SignedTransaction > >
+Returns a pair of all recorded transactions and an observable of future recorded ones.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.messaging/-marshalled-observation/-init-.html b/docs/build/html/api/net.corda.node.services.messaging/-marshalled-observation/-init-.html
new file mode 100644
index 0000000000..3bcd264569
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.messaging/-marshalled-observation/-init-.html
@@ -0,0 +1,15 @@
+
+
+MarshalledObservation. -
+
+
+
+net.corda.node.services.messaging / MarshalledObservation / <init>
+
+<init>
+MarshalledObservation ( forHandle : Int , what : <ERROR CLASS> < out <ERROR CLASS> > )
+Used in the RPC wire protocol to wrap an observation with the handle of the observable its intended for.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.messaging/-marshalled-observation/for-handle.html b/docs/build/html/api/net.corda.node.services.messaging/-marshalled-observation/for-handle.html
new file mode 100644
index 0000000000..39c5d2b05f
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.messaging/-marshalled-observation/for-handle.html
@@ -0,0 +1,15 @@
+
+
+MarshalledObservation.forHandle -
+
+
+
+net.corda.node.services.messaging / MarshalledObservation / forHandle
+
+forHandle
+
+val forHandle : Int
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.messaging/-marshalled-observation/index.html b/docs/build/html/api/net.corda.node.services.messaging/-marshalled-observation/index.html
new file mode 100644
index 0000000000..493dbab6a2
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.messaging/-marshalled-observation/index.html
@@ -0,0 +1,44 @@
+
+
+MarshalledObservation -
+
+
+
+net.corda.node.services.messaging / MarshalledObservation
+
+MarshalledObservation
+data class MarshalledObservation
+Used in the RPC wire protocol to wrap an observation with the handle of the observable its intended for.
+
+
+Constructors
+
+
+
+
+<init>
+
+MarshalledObservation ( forHandle : Int , what : <ERROR CLASS> < out <ERROR CLASS> > )
Used in the RPC wire protocol to wrap an observation with the handle of the observable its intended for.
+
+
+
+
+Properties
+
+
+
+
+forHandle
+
+val forHandle : Int
+
+
+
+what
+
+val what : <ERROR CLASS> < out <ERROR CLASS> >
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.messaging/-marshalled-observation/what.html b/docs/build/html/api/net.corda.node.services.messaging/-marshalled-observation/what.html
new file mode 100644
index 0000000000..8794014de0
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.messaging/-marshalled-observation/what.html
@@ -0,0 +1,15 @@
+
+
+MarshalledObservation.what -
+
+
+
+net.corda.node.services.messaging / MarshalledObservation / what
+
+what
+
+val what : <ERROR CLASS> < out <ERROR CLASS> >
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.messaging/-node-messaging-client/-handler/-init-.html b/docs/build/html/api/net.corda.node.services.messaging/-node-messaging-client/-handler/-init-.html
new file mode 100644
index 0000000000..abcc822991
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.messaging/-node-messaging-client/-handler/-init-.html
@@ -0,0 +1,15 @@
+
+
+NodeMessagingClient.Handler. -
+
+
+
+net.corda.node.services.messaging / NodeMessagingClient / Handler / <init>
+
+<init>
+Handler ( topicSession : TopicSession , callback : ( Message , MessageHandlerRegistration ) -> Unit )
+A registration to handle messages of different types
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.messaging/-node-messaging-client/-handler/callback.html b/docs/build/html/api/net.corda.node.services.messaging/-node-messaging-client/-handler/callback.html
new file mode 100644
index 0000000000..9c9a183753
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.messaging/-node-messaging-client/-handler/callback.html
@@ -0,0 +1,15 @@
+
+
+NodeMessagingClient.Handler.callback -
+
+
+
+net.corda.node.services.messaging / NodeMessagingClient / Handler / callback
+
+callback
+
+val callback : ( Message , MessageHandlerRegistration ) -> Unit
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.messaging/-node-messaging-client/-handler/index.html b/docs/build/html/api/net.corda.node.services.messaging/-node-messaging-client/-handler/index.html
new file mode 100644
index 0000000000..46c388796a
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.messaging/-node-messaging-client/-handler/index.html
@@ -0,0 +1,44 @@
+
+
+NodeMessagingClient.Handler -
+
+
+
+net.corda.node.services.messaging / NodeMessagingClient / Handler
+
+Handler
+data class Handler : MessageHandlerRegistration
+A registration to handle messages of different types
+
+
+Constructors
+
+Properties
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.messaging/-node-messaging-client/-handler/topic-session.html b/docs/build/html/api/net.corda.node.services.messaging/-node-messaging-client/-handler/topic-session.html
new file mode 100644
index 0000000000..686fe22b29
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.messaging/-node-messaging-client/-handler/topic-session.html
@@ -0,0 +1,15 @@
+
+
+NodeMessagingClient.Handler.topicSession -
+
+
+
+net.corda.node.services.messaging / NodeMessagingClient / Handler / topicSession
+
+topicSession
+
+val topicSession : TopicSession
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.messaging/-node-messaging-client/-init-.html b/docs/build/html/api/net.corda.node.services.messaging/-node-messaging-client/-init-.html
new file mode 100644
index 0000000000..75b8f09884
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.messaging/-node-messaging-client/-init-.html
@@ -0,0 +1,35 @@
+
+
+NodeMessagingClient. -
+
+
+
+net.corda.node.services.messaging / NodeMessagingClient / <init>
+
+<init>
+NodeMessagingClient ( config : NodeConfiguration , serverHostPort : <ERROR CLASS> , myIdentity : PublicKey ? , executor : AffinityExecutor , database : <ERROR CLASS> )
+This class implements the MessagingService API using Apache Artemis, the successor to their ActiveMQ product.
+Artemis is a message queue broker and here we run a client connecting to the specified broker instance
+ArtemisMessagingServer . Its primarily concerned with peer-to-peer messaging.
+Message handlers are run on the provided AffinityExecutor synchronously, that is, the Artemis callback threads
+are blocked until the handler is scheduled and completed. This allows backpressure to propagate from the given
+executor through into Artemis and from there, back through to senders.
+An implementation of CordaRPCOps can be provided. If given, clients using the CordaMQClient RPC library can
+invoke methods on the provided implementation. There is more documentation on this in the docsite and the
+CordaRPCClient class.
+
+
+Parameters
+
+serverHostPort
- The address of the broker instance to connect to (might be running in the same process)
+
+
+myIdentity
- Either the public key to be used as the ArtemisMQ address and queue name for the node globally, or null to indicate
+that this is a NetworkMapService node which will be bound globally to the name "networkmap"
+
+
+executor
- An executor to run received message tasks upon.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.messaging/-node-messaging-client/-s-e-s-s-i-o-n_-i-d_-p-r-o-p-e-r-t-y.html b/docs/build/html/api/net.corda.node.services.messaging/-node-messaging-client/-s-e-s-s-i-o-n_-i-d_-p-r-o-p-e-r-t-y.html
new file mode 100644
index 0000000000..b409b957da
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.messaging/-node-messaging-client/-s-e-s-s-i-o-n_-i-d_-p-r-o-p-e-r-t-y.html
@@ -0,0 +1,15 @@
+
+
+NodeMessagingClient.SESSION_ID_PROPERTY -
+
+
+
+net.corda.node.services.messaging / NodeMessagingClient / SESSION_ID_PROPERTY
+
+SESSION_ID_PROPERTY
+
+val SESSION_ID_PROPERTY : String
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.messaging/-node-messaging-client/-t-o-p-i-c_-p-r-o-p-e-r-t-y.html b/docs/build/html/api/net.corda.node.services.messaging/-node-messaging-client/-t-o-p-i-c_-p-r-o-p-e-r-t-y.html
new file mode 100644
index 0000000000..56f8a48dd8
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.messaging/-node-messaging-client/-t-o-p-i-c_-p-r-o-p-e-r-t-y.html
@@ -0,0 +1,15 @@
+
+
+NodeMessagingClient.TOPIC_PROPERTY -
+
+
+
+net.corda.node.services.messaging / NodeMessagingClient / TOPIC_PROPERTY
+
+TOPIC_PROPERTY
+
+val TOPIC_PROPERTY : String
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.messaging/-node-messaging-client/add-message-handler.html b/docs/build/html/api/net.corda.node.services.messaging/-node-messaging-client/add-message-handler.html
new file mode 100644
index 0000000000..3679a79a2f
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.messaging/-node-messaging-client/add-message-handler.html
@@ -0,0 +1,46 @@
+
+
+NodeMessagingClient.addMessageHandler -
+
+
+
+net.corda.node.services.messaging / NodeMessagingClient / addMessageHandler
+
+addMessageHandler
+
+fun addMessageHandler ( topic : String , sessionID : Long , callback : ( Message , MessageHandlerRegistration ) -> Unit ) : MessageHandlerRegistration
+Overrides MessagingService.addMessageHandler
+The provided function will be invoked for each received message whose topic matches the given string. The callback
+will run on threads provided by the messaging service, and the callback is expected to be thread safe as a result.
+The returned object is an opaque handle that may be used to un-register handlers later with removeMessageHandler .
+The handle is passed to the callback as well, to avoid race conditions whereby the callback wants to unregister
+itself and yet addMessageHandler hasnt returned the handle yet.
+
+
+Parameters
+
+topic
- identifier for the general subject of the message, for example "platform.network_map.fetch".
+The topic can be the empty string to match all messages (session ID must be DEFAULT_SESSION_ID ).
+
+
+sessionID
- identifier for the session the message is part of. For services listening before
+a session is established, use DEFAULT_SESSION_ID .
+
+
+
+fun addMessageHandler ( topicSession : TopicSession , callback : ( Message , MessageHandlerRegistration ) -> Unit ) : MessageHandlerRegistration
+Overrides MessagingService.addMessageHandler
+The provided function will be invoked for each received message whose topic and session matches. The callback
+will run on threads provided by the messaging service, and the callback is expected to be thread safe as a result.
+The returned object is an opaque handle that may be used to un-register handlers later with removeMessageHandler .
+The handle is passed to the callback as well, to avoid race conditions whereby the callback wants to unregister
+itself and yet addMessageHandler hasnt returned the handle yet.
+
+
+Parameters
+
+topicSession
- identifier for the topic and session to listen for messages arriving on.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.messaging/-node-messaging-client/config.html b/docs/build/html/api/net.corda.node.services.messaging/-node-messaging-client/config.html
new file mode 100644
index 0000000000..579412fe1e
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.messaging/-node-messaging-client/config.html
@@ -0,0 +1,17 @@
+
+
+NodeMessagingClient.config -
+
+
+
+net.corda.node.services.messaging / NodeMessagingClient / config
+
+config
+
+val config : NodeConfiguration
+Overrides ArtemisMessagingComponent.config
+The config object is used to pass in the passwords for the certificate KeyStore and TrustStore
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.messaging/-node-messaging-client/create-message.html b/docs/build/html/api/net.corda.node.services.messaging/-node-messaging-client/create-message.html
new file mode 100644
index 0000000000..38cc2fc47b
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.messaging/-node-messaging-client/create-message.html
@@ -0,0 +1,20 @@
+
+
+NodeMessagingClient.createMessage -
+
+
+
+net.corda.node.services.messaging / NodeMessagingClient / createMessage
+
+createMessage
+
+fun createMessage ( topicSession : TopicSession , data : ByteArray , uuid : UUID ) : Message
+Overrides MessagingService.createMessage
+Returns an initialised Message with the current time, etc, already filled in.
+Parameters
+
+topicSession
- identifier for the topic and session the message is sent to.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.messaging/-node-messaging-client/database.html b/docs/build/html/api/net.corda.node.services.messaging/-node-messaging-client/database.html
new file mode 100644
index 0000000000..e159f8d782
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.messaging/-node-messaging-client/database.html
@@ -0,0 +1,15 @@
+
+
+NodeMessagingClient.database -
+
+
+
+net.corda.node.services.messaging / NodeMessagingClient / database
+
+database
+
+val database : <ERROR CLASS>
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.messaging/-node-messaging-client/dispatcher.html b/docs/build/html/api/net.corda.node.services.messaging/-node-messaging-client/dispatcher.html
new file mode 100644
index 0000000000..bd07be83c0
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.messaging/-node-messaging-client/dispatcher.html
@@ -0,0 +1,15 @@
+
+
+NodeMessagingClient.dispatcher -
+
+
+
+net.corda.node.services.messaging / NodeMessagingClient / dispatcher
+
+dispatcher
+
+var dispatcher : RPCDispatcher ?
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.messaging/-node-messaging-client/executor.html b/docs/build/html/api/net.corda.node.services.messaging/-node-messaging-client/executor.html
new file mode 100644
index 0000000000..cd45c48ac3
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.messaging/-node-messaging-client/executor.html
@@ -0,0 +1,15 @@
+
+
+NodeMessagingClient.executor -
+
+
+
+net.corda.node.services.messaging / NodeMessagingClient / executor
+
+executor
+
+val executor : AffinityExecutor
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.messaging/-node-messaging-client/index.html b/docs/build/html/api/net.corda.node.services.messaging/-node-messaging-client/index.html
new file mode 100644
index 0000000000..7d59eee736
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.messaging/-node-messaging-client/index.html
@@ -0,0 +1,294 @@
+
+
+NodeMessagingClient -
+
+
+
+net.corda.node.services.messaging / NodeMessagingClient
+
+NodeMessagingClient
+class NodeMessagingClient : ArtemisMessagingComponent , MessagingServiceInternal
+This class implements the MessagingService API using Apache Artemis, the successor to their ActiveMQ product.
+Artemis is a message queue broker and here we run a client connecting to the specified broker instance
+ArtemisMessagingServer . Its primarily concerned with peer-to-peer messaging.
+Message handlers are run on the provided AffinityExecutor synchronously, that is, the Artemis callback threads
+are blocked until the handler is scheduled and completed. This allows backpressure to propagate from the given
+executor through into Artemis and from there, back through to senders.
+An implementation of CordaRPCOps can be provided. If given, clients using the CordaMQClient RPC library can
+invoke methods on the provided implementation. There is more documentation on this in the docsite and the
+CordaRPCClient class.
+
+
+Parameters
+
+serverHostPort
- The address of the broker instance to connect to (might be running in the same process)
+
+
+myIdentity
- Either the public key to be used as the ArtemisMQ address and queue name for the node globally, or null to indicate
+that this is a NetworkMapService node which will be bound globally to the name "networkmap"
+
+
+executor
- An executor to run received message tasks upon.
+
+
+Types
+
+Constructors
+
+
+
+
+<init>
+
+NodeMessagingClient ( config : NodeConfiguration , serverHostPort : <ERROR CLASS> , myIdentity : PublicKey ? , executor : AffinityExecutor , database : <ERROR CLASS> )
This class implements the MessagingService API using Apache Artemis, the successor to their ActiveMQ product.
+Artemis is a message queue broker and here we run a client connecting to the specified broker instance
+ArtemisMessagingServer . Its primarily concerned with peer-to-peer messaging.
+
+
+
+
+Properties
+
+Functions
+
+
+
+
+addMessageHandler
+
+fun addMessageHandler ( topic : String , sessionID : Long , callback : ( Message , MessageHandlerRegistration ) -> Unit ) : MessageHandlerRegistration
The provided function will be invoked for each received message whose topic matches the given string. The callback
+will run on threads provided by the messaging service, and the callback is expected to be thread safe as a result.
+fun addMessageHandler ( topicSession : TopicSession , callback : ( Message , MessageHandlerRegistration ) -> Unit ) : MessageHandlerRegistration
The provided function will be invoked for each received message whose topic and session matches. The callback
+will run on threads provided by the messaging service, and the callback is expected to be thread safe as a result.
+
+
+
+
+createMessage
+
+fun createMessage ( topicSession : TopicSession , data : ByteArray , uuid : UUID ) : Message
Returns an initialised Message with the current time, etc, already filled in.
+
+
+
+
+removeMessageHandler
+
+fun removeMessageHandler ( registration : MessageHandlerRegistration ) : Unit
Removes a handler given the object returned from addMessageHandler . The callback will no longer be invoked once
+this method has returned, although executions that are currently in flight will not be interrupted.
+
+
+
+
+run
+
+fun run ( ) : Unit
Starts the p2p event loop: this method only returns once stop has been called.
+
+
+
+
+send
+
+fun send ( message : Message , target : MessageRecipients ) : Unit
Sends a message to the given receiver. The details of how receivers are identified is up to the messaging
+implementation: the type system provides an opaque high level view, with more fine grained control being
+available via type casting. Once this function returns the message is queued for delivery but not necessarily
+delivered: if the recipients are offline then the message could be queued hours or days later.
+
+
+
+
+start
+
+fun start ( rpcOps : RPCOps , userService : RPCUserService ) : Unit
+
+
+
+stop
+
+fun stop ( ) : Unit
Initiates shutdown: if called from a thread that isnt controlled by the executor passed to the constructor
+then this will block until all in-flight messages have finished being handled and acknowledged. If called
+from a thread thats a part of the AffinityExecutor given to the constructor, it returns immediately and
+shutdown is asynchronous.
+
+
+
+
+Inherited Functions
+
+Companion Object Properties
+
+Companion Object Functions
+
+
+
+
+makeNetworkMapAddress
+
+fun makeNetworkMapAddress ( hostAndPort : <ERROR CLASS> ) : SingleMessageRecipient
This should be the only way to generate an ArtemisAddress and that only of the remote NetworkMapService node.
+All other addresses come from the NetworkMapCache, or myAddress below.
+The node will populate with their own identity based address when they register with the NetworkMapService.
+
+
+
+
+Extension Functions
+
+
+
+
+createMessage
+
+fun MessagingService . createMessage ( topic : String , sessionID : Long = DEFAULT_SESSION_ID, data : ByteArray ) : Message
Returns an initialised Message with the current time, etc, already filled in.
+
+
+
+
+onNext
+
+fun < M : Any > MessagingService . onNext ( topic : String , sessionId : Long ) : <ERROR CLASS> < M >
Returns a ListenableFuture of the next message payload (Message.data ) which is received on the given topic and sessionId.
+The payload is deserilaized to an object of type M . Any exceptions thrown will be captured by the future.
+
+
+
+
+runOnNextMessage
+
+fun MessagingService . runOnNextMessage ( topic : String , sessionID : Long , callback : ( Message ) -> Unit ) : Unit
Registers a handler for the given topic and session ID that runs the given callback with the message and then removes
+itself. This is useful for one-shot handlers that arent supposed to stick around permanently. Note that this callback
+doesnt take the registration object, unlike the callback to MessagingService.addMessageHandler , as the handler is
+automatically deregistered before the callback runs.
+fun MessagingService . runOnNextMessage ( topicSession : TopicSession , callback : ( Message ) -> Unit ) : Unit
Registers a handler for the given topic and session that runs the given callback with the message and then removes
+itself. This is useful for one-shot handlers that arent supposed to stick around permanently. Note that this callback
+doesnt take the registration object, unlike the callback to MessagingService.addMessageHandler .
+
+
+
+
+send
+
+fun MessagingService . send ( topic : String , sessionID : Long , payload : Any , to : MessageRecipients , uuid : UUID = UUID.randomUUID()) : Unit
+fun MessagingService . send ( topicSession : TopicSession , payload : Any , to : MessageRecipients , uuid : UUID = UUID.randomUUID()) : Unit
+
+
+
+sendRequest
+
+fun < R : Any > MessagingService . sendRequest ( topic : String , request : ServiceRequestMessage , target : SingleMessageRecipient ) : <ERROR CLASS> < R >
Sends a ServiceRequestMessage to target and returns a ListenableFuture of the response.
+
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.messaging/-node-messaging-client/log.html b/docs/build/html/api/net.corda.node.services.messaging/-node-messaging-client/log.html
new file mode 100644
index 0000000000..0039a0e9ef
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.messaging/-node-messaging-client/log.html
@@ -0,0 +1,15 @@
+
+
+NodeMessagingClient.log -
+
+
+
+net.corda.node.services.messaging / NodeMessagingClient / log
+
+log
+
+val log : <ERROR CLASS>
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.messaging/-node-messaging-client/make-network-map-address.html b/docs/build/html/api/net.corda.node.services.messaging/-node-messaging-client/make-network-map-address.html
new file mode 100644
index 0000000000..b527af19b6
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.messaging/-node-messaging-client/make-network-map-address.html
@@ -0,0 +1,18 @@
+
+
+NodeMessagingClient.makeNetworkMapAddress -
+
+
+
+net.corda.node.services.messaging / NodeMessagingClient / makeNetworkMapAddress
+
+makeNetworkMapAddress
+
+fun makeNetworkMapAddress ( hostAndPort : <ERROR CLASS> ) : SingleMessageRecipient
+This should be the only way to generate an ArtemisAddress and that only of the remote NetworkMapService node.
+All other addresses come from the NetworkMapCache, or myAddress below.
+The node will populate with their own identity based address when they register with the NetworkMapService.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.messaging/-node-messaging-client/my-address.html b/docs/build/html/api/net.corda.node.services.messaging/-node-messaging-client/my-address.html
new file mode 100644
index 0000000000..454cf86f62
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.messaging/-node-messaging-client/my-address.html
@@ -0,0 +1,17 @@
+
+
+NodeMessagingClient.myAddress -
+
+
+
+net.corda.node.services.messaging / NodeMessagingClient / myAddress
+
+myAddress
+
+val myAddress : SingleMessageRecipient
+Overrides MessagingService.myAddress
+Apart from the NetworkMapService this is the only other address accessible to the node outside of lookups against the NetworkMapCache.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.messaging/-node-messaging-client/my-identity.html b/docs/build/html/api/net.corda.node.services.messaging/-node-messaging-client/my-identity.html
new file mode 100644
index 0000000000..bc063b6e94
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.messaging/-node-messaging-client/my-identity.html
@@ -0,0 +1,15 @@
+
+
+NodeMessagingClient.myIdentity -
+
+
+
+net.corda.node.services.messaging / NodeMessagingClient / myIdentity
+
+myIdentity
+
+val myIdentity : PublicKey ?
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.messaging/-node-messaging-client/remove-message-handler.html b/docs/build/html/api/net.corda.node.services.messaging/-node-messaging-client/remove-message-handler.html
new file mode 100644
index 0000000000..50b49af961
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.messaging/-node-messaging-client/remove-message-handler.html
@@ -0,0 +1,24 @@
+
+
+NodeMessagingClient.removeMessageHandler -
+
+
+
+net.corda.node.services.messaging / NodeMessagingClient / removeMessageHandler
+
+removeMessageHandler
+
+fun removeMessageHandler ( registration : MessageHandlerRegistration ) : Unit
+Overrides MessagingService.removeMessageHandler
+Removes a handler given the object returned from addMessageHandler . The callback will no longer be invoked once
+this method has returned, although executions that are currently in flight will not be interrupted.
+Exceptions
+
+IllegalArgumentException
- if the given registration isnt valid for this messaging service.
+
+
+IllegalStateException
- if the given registration was already de-registered.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.messaging/-node-messaging-client/run.html b/docs/build/html/api/net.corda.node.services.messaging/-node-messaging-client/run.html
new file mode 100644
index 0000000000..2c8331fb9e
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.messaging/-node-messaging-client/run.html
@@ -0,0 +1,16 @@
+
+
+NodeMessagingClient.run -
+
+
+
+net.corda.node.services.messaging / NodeMessagingClient / run
+
+run
+
+fun run ( ) : Unit
+Starts the p2p event loop: this method only returns once stop has been called.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.messaging/-node-messaging-client/send.html b/docs/build/html/api/net.corda.node.services.messaging/-node-messaging-client/send.html
new file mode 100644
index 0000000000..766f9dd303
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.messaging/-node-messaging-client/send.html
@@ -0,0 +1,24 @@
+
+
+NodeMessagingClient.send -
+
+
+
+net.corda.node.services.messaging / NodeMessagingClient / send
+
+send
+
+fun send ( message : Message , target : MessageRecipients ) : Unit
+Overrides MessagingService.send
+Sends a message to the given receiver. The details of how receivers are identified is up to the messaging
+implementation: the type system provides an opaque high level view, with more fine grained control being
+available via type casting. Once this function returns the message is queued for delivery but not necessarily
+delivered: if the recipients are offline then the message could be queued hours or days later.
+There is no way to know if a message has been received. If your protocol requires this, you need the recipient
+to send an ACK message back.
+
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.messaging/-node-messaging-client/server-host-port.html b/docs/build/html/api/net.corda.node.services.messaging/-node-messaging-client/server-host-port.html
new file mode 100644
index 0000000000..b6b4ac2a2e
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.messaging/-node-messaging-client/server-host-port.html
@@ -0,0 +1,15 @@
+
+
+NodeMessagingClient.serverHostPort -
+
+
+
+net.corda.node.services.messaging / NodeMessagingClient / serverHostPort
+
+serverHostPort
+
+val serverHostPort : <ERROR CLASS>
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.messaging/-node-messaging-client/start.html b/docs/build/html/api/net.corda.node.services.messaging/-node-messaging-client/start.html
new file mode 100644
index 0000000000..f3e9128586
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.messaging/-node-messaging-client/start.html
@@ -0,0 +1,15 @@
+
+
+NodeMessagingClient.start -
+
+
+
+net.corda.node.services.messaging / NodeMessagingClient / start
+
+start
+
+fun start ( rpcOps : RPCOps , userService : RPCUserService ) : Unit
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.messaging/-node-messaging-client/stop.html b/docs/build/html/api/net.corda.node.services.messaging/-node-messaging-client/stop.html
new file mode 100644
index 0000000000..121eef1b4b
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.messaging/-node-messaging-client/stop.html
@@ -0,0 +1,20 @@
+
+
+NodeMessagingClient.stop -
+
+
+
+net.corda.node.services.messaging / NodeMessagingClient / stop
+
+stop
+
+fun stop ( ) : Unit
+Overrides MessagingServiceInternal.stop
+Initiates shutdown: if called from a thread that isnt controlled by the executor passed to the constructor
+then this will block until all in-flight messages have finished being handled and acknowledged. If called
+from a thread thats a part of the AffinityExecutor given to the constructor, it returns immediately and
+shutdown is asynchronous.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.messaging/-permission-exception/-init-.html b/docs/build/html/api/net.corda.node.services.messaging/-permission-exception/-init-.html
new file mode 100644
index 0000000000..367201172f
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.messaging/-permission-exception/-init-.html
@@ -0,0 +1,14 @@
+
+
+PermissionException. -
+
+
+
+net.corda.node.services.messaging / PermissionException / <init>
+
+<init>
+PermissionException ( msg : String )
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.messaging/-permission-exception/index.html b/docs/build/html/api/net.corda.node.services.messaging/-permission-exception/index.html
new file mode 100644
index 0000000000..b0a3fd8527
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.messaging/-permission-exception/index.html
@@ -0,0 +1,36 @@
+
+
+PermissionException -
+
+
+
+net.corda.node.services.messaging / PermissionException
+
+PermissionException
+class PermissionException : RuntimeException
+
+
+Constructors
+
+
+
+
+<init>
+
+PermissionException ( msg : String )
+
+
+
+Extension Properties
+
+
+
+
+rootCause
+
+val Throwable . rootCause : Throwable
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.messaging/-r-p-c-dispatcher/-init-.html b/docs/build/html/api/net.corda.node.services.messaging/-r-p-c-dispatcher/-init-.html
new file mode 100644
index 0000000000..44bc60cafa
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.messaging/-r-p-c-dispatcher/-init-.html
@@ -0,0 +1,18 @@
+
+
+RPCDispatcher. -
+
+
+
+net.corda.node.services.messaging / RPCDispatcher / <init>
+
+<init>
+RPCDispatcher ( ops : RPCOps , userService : RPCUserService )
+Intended to service transient clients only (not p2p nodes) for short-lived, transient request/response pairs.
+If you need robustness, this is the wrong system. If you dont want a response, this is probably the
+wrong system (you could just send a message). If you want complex customisation of how requests/responses
+are handled, this is probably the wrong system.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.messaging/-r-p-c-dispatcher/dispatch.html b/docs/build/html/api/net.corda.node.services.messaging/-r-p-c-dispatcher/dispatch.html
new file mode 100644
index 0000000000..22dbbb9606
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.messaging/-r-p-c-dispatcher/dispatch.html
@@ -0,0 +1,15 @@
+
+
+RPCDispatcher.dispatch -
+
+
+
+net.corda.node.services.messaging / RPCDispatcher / dispatch
+
+dispatch
+
+fun dispatch ( msg : ClientRPCRequestMessage ) : Unit
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.messaging/-r-p-c-dispatcher/get-user.html b/docs/build/html/api/net.corda.node.services.messaging/-r-p-c-dispatcher/get-user.html
new file mode 100644
index 0000000000..72e3e35fc5
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.messaging/-r-p-c-dispatcher/get-user.html
@@ -0,0 +1,15 @@
+
+
+RPCDispatcher.getUser -
+
+
+
+net.corda.node.services.messaging / RPCDispatcher / getUser
+
+getUser
+
+protected open fun getUser ( message : <ERROR CLASS> ) : User
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.messaging/-r-p-c-dispatcher/index.html b/docs/build/html/api/net.corda.node.services.messaging/-r-p-c-dispatcher/index.html
new file mode 100644
index 0000000000..80fd971448
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.messaging/-r-p-c-dispatcher/index.html
@@ -0,0 +1,79 @@
+
+
+RPCDispatcher -
+
+
+
+net.corda.node.services.messaging / RPCDispatcher
+
+RPCDispatcher
+abstract class RPCDispatcher
+Intended to service transient clients only (not p2p nodes) for short-lived, transient request/response pairs.
+If you need robustness, this is the wrong system. If you dont want a response, this is probably the
+wrong system (you could just send a message). If you want complex customisation of how requests/responses
+are handled, this is probably the wrong system.
+
+
+Constructors
+
+
+
+
+<init>
+
+RPCDispatcher ( ops : RPCOps , userService : RPCUserService )
Intended to service transient clients only (not p2p nodes) for short-lived, transient request/response pairs.
+If you need robustness, this is the wrong system. If you dont want a response, this is probably the
+wrong system (you could just send a message). If you want complex customisation of how requests/responses
+are handled, this is probably the wrong system.
+
+
+
+
+Properties
+
+Functions
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.messaging/-r-p-c-dispatcher/ops.html b/docs/build/html/api/net.corda.node.services.messaging/-r-p-c-dispatcher/ops.html
new file mode 100644
index 0000000000..a5a6e5729e
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.messaging/-r-p-c-dispatcher/ops.html
@@ -0,0 +1,15 @@
+
+
+RPCDispatcher.ops -
+
+
+
+net.corda.node.services.messaging / RPCDispatcher / ops
+
+ops
+
+val ops : RPCOps
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.messaging/-r-p-c-dispatcher/send.html b/docs/build/html/api/net.corda.node.services.messaging/-r-p-c-dispatcher/send.html
new file mode 100644
index 0000000000..1f66579691
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.messaging/-r-p-c-dispatcher/send.html
@@ -0,0 +1,15 @@
+
+
+RPCDispatcher.send -
+
+
+
+net.corda.node.services.messaging / RPCDispatcher / send
+
+send
+
+abstract fun send ( bits : SerializedBytes < * > , toAddress : String ) : Unit
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.messaging/-r-p-c-dispatcher/start.html b/docs/build/html/api/net.corda.node.services.messaging/-r-p-c-dispatcher/start.html
new file mode 100644
index 0000000000..db37eb9878
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.messaging/-r-p-c-dispatcher/start.html
@@ -0,0 +1,15 @@
+
+
+RPCDispatcher.start -
+
+
+
+net.corda.node.services.messaging / RPCDispatcher / start
+
+start
+
+fun start ( rpcConsumer : <ERROR CLASS> , rpcNotificationConsumer : <ERROR CLASS> ? , onExecutor : AffinityExecutor ) : Unit
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.messaging/-r-p-c-dispatcher/user-service.html b/docs/build/html/api/net.corda.node.services.messaging/-r-p-c-dispatcher/user-service.html
new file mode 100644
index 0000000000..3e60c0cbb2
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.messaging/-r-p-c-dispatcher/user-service.html
@@ -0,0 +1,15 @@
+
+
+RPCDispatcher.userService -
+
+
+
+net.corda.node.services.messaging / RPCDispatcher / userService
+
+userService
+
+val userService : RPCUserService
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.messaging/-r-p-c-exception/-deadline-exceeded/-init-.html b/docs/build/html/api/net.corda.node.services.messaging/-r-p-c-exception/-deadline-exceeded/-init-.html
new file mode 100644
index 0000000000..77bf16d54e
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.messaging/-r-p-c-exception/-deadline-exceeded/-init-.html
@@ -0,0 +1,14 @@
+
+
+RPCException.DeadlineExceeded. -
+
+
+
+net.corda.node.services.messaging / RPCException / DeadlineExceeded / <init>
+
+<init>
+DeadlineExceeded ( rpcName : String )
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.messaging/-r-p-c-exception/-deadline-exceeded/index.html b/docs/build/html/api/net.corda.node.services.messaging/-r-p-c-exception/-deadline-exceeded/index.html
new file mode 100644
index 0000000000..713612ae65
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.messaging/-r-p-c-exception/-deadline-exceeded/index.html
@@ -0,0 +1,25 @@
+
+
+RPCException.DeadlineExceeded -
+
+
+
+net.corda.node.services.messaging / RPCException / DeadlineExceeded
+
+DeadlineExceeded
+class DeadlineExceeded : RPCException
+
+
+Constructors
+
+
+
+
+<init>
+
+DeadlineExceeded ( rpcName : String )
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.messaging/-r-p-c-exception/-init-.html b/docs/build/html/api/net.corda.node.services.messaging/-r-p-c-exception/-init-.html
new file mode 100644
index 0000000000..67f06f21a2
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.messaging/-r-p-c-exception/-init-.html
@@ -0,0 +1,19 @@
+
+
+RPCException. -
+
+
+
+net.corda.node.services.messaging / RPCException / <init>
+
+<init>
+RPCException ( msg : String )
+
+
+RPCException ( msg : String , cause : Throwable ? )
+Thrown to indicate a fatal error in the RPC system itself, as opposed to an error generated by the invoked
+method.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.messaging/-r-p-c-exception/index.html b/docs/build/html/api/net.corda.node.services.messaging/-r-p-c-exception/index.html
new file mode 100644
index 0000000000..4551675aad
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.messaging/-r-p-c-exception/index.html
@@ -0,0 +1,62 @@
+
+
+RPCException -
+
+
+
+net.corda.node.services.messaging / RPCException
+
+RPCException
+open class RPCException : RuntimeException
+Thrown to indicate a fatal error in the RPC system itself, as opposed to an error generated by the invoked
+method.
+
+
+Exceptions
+
+Constructors
+
+
+
+
+<init>
+
+RPCException ( msg : String )
RPCException ( msg : String , cause : Throwable ? )
Thrown to indicate a fatal error in the RPC system itself, as opposed to an error generated by the invoked
+method.
+
+
+
+
+Extension Properties
+
+
+
+
+rootCause
+
+val Throwable . rootCause : Throwable
+
+
+
+Inheritors
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.messaging/-r-p-c-ops/index.html b/docs/build/html/api/net.corda.node.services.messaging/-r-p-c-ops/index.html
new file mode 100644
index 0000000000..c6679f0172
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.messaging/-r-p-c-ops/index.html
@@ -0,0 +1,41 @@
+
+
+RPCOps -
+
+
+
+net.corda.node.services.messaging / RPCOps
+
+RPCOps
+interface RPCOps
+Base interface that all RPC servers must implement. Note: in Corda theres only one RPC interface. This base
+interface is here in case we split the RPC system out into a separate library one day.
+
+
+Properties
+
+
+
+
+protocolVersion
+
+abstract val protocolVersion : Int
Returns the RPC protocol version. Exists since version 0 so guaranteed to be present.
+
+
+
+
+Inheritors
+
+
+
+
+CordaRPCOps
+
+interface CordaRPCOps : RPCOps
RPC operations that the node exposes to clients using the Java client library. These can be called from
+client apps and are implemented by the node in the ServerRPCOps class.
+
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.messaging/-r-p-c-ops/protocol-version.html b/docs/build/html/api/net.corda.node.services.messaging/-r-p-c-ops/protocol-version.html
new file mode 100644
index 0000000000..455804a3c7
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.messaging/-r-p-c-ops/protocol-version.html
@@ -0,0 +1,16 @@
+
+
+RPCOps.protocolVersion -
+
+
+
+net.corda.node.services.messaging / RPCOps / protocolVersion
+
+protocolVersion
+
+abstract val protocolVersion : Int
+Returns the RPC protocol version. Exists since version 0 so guaranteed to be present.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.messaging/-r-p-c-returns-observables/-init-.html b/docs/build/html/api/net.corda.node.services.messaging/-r-p-c-returns-observables/-init-.html
new file mode 100644
index 0000000000..67e9540977
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.messaging/-r-p-c-returns-observables/-init-.html
@@ -0,0 +1,17 @@
+
+
+RPCReturnsObservables. -
+
+
+
+net.corda.node.services.messaging / RPCReturnsObservables / <init>
+
+<init>
+RPCReturnsObservables ( )
+If an RPC is tagged with this annotation it may return one or more observables anywhere in its response graph.
+Calling such a method comes with consequences: its slower, and consumes server side resources as observations
+will buffer up on the server until theyre consumed by the client.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.messaging/-r-p-c-returns-observables/index.html b/docs/build/html/api/net.corda.node.services.messaging/-r-p-c-returns-observables/index.html
new file mode 100644
index 0000000000..56bb223fb4
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.messaging/-r-p-c-returns-observables/index.html
@@ -0,0 +1,31 @@
+
+
+RPCReturnsObservables -
+
+
+
+net.corda.node.services.messaging / RPCReturnsObservables
+
+RPCReturnsObservables
+@Target ( [AnnotationTarget.FUNCTION]) annotation class RPCReturnsObservables
+If an RPC is tagged with this annotation it may return one or more observables anywhere in its response graph.
+Calling such a method comes with consequences: its slower, and consumes server side resources as observations
+will buffer up on the server until theyre consumed by the client.
+
+
+Constructors
+
+
+
+
+<init>
+
+RPCReturnsObservables ( )
If an RPC is tagged with this annotation it may return one or more observables anywhere in its response graph.
+Calling such a method comes with consequences: its slower, and consumes server side resources as observations
+will buffer up on the server until theyre consumed by the client.
+
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.messaging/-r-p-c-since-version/-init-.html b/docs/build/html/api/net.corda.node.services.messaging/-r-p-c-since-version/-init-.html
new file mode 100644
index 0000000000..55eb4198f1
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.messaging/-r-p-c-since-version/-init-.html
@@ -0,0 +1,15 @@
+
+
+RPCSinceVersion. -
+
+
+
+net.corda.node.services.messaging / RPCSinceVersion / <init>
+
+<init>
+RPCSinceVersion ( version : Int )
+Records the protocol version in which this RPC was added.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.messaging/-r-p-c-since-version/index.html b/docs/build/html/api/net.corda.node.services.messaging/-r-p-c-since-version/index.html
new file mode 100644
index 0000000000..a0f2829ec8
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.messaging/-r-p-c-since-version/index.html
@@ -0,0 +1,38 @@
+
+
+RPCSinceVersion -
+
+
+
+net.corda.node.services.messaging / RPCSinceVersion
+
+RPCSinceVersion
+@Target ( [AnnotationTarget.FUNCTION]) annotation class RPCSinceVersion
+Records the protocol version in which this RPC was added.
+
+
+Constructors
+
+
+
+
+<init>
+
+RPCSinceVersion ( version : Int )
Records the protocol version in which this RPC was added.
+
+
+
+
+Properties
+
+
+
+
+version
+
+val version : Int
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.messaging/-r-p-c-since-version/version.html b/docs/build/html/api/net.corda.node.services.messaging/-r-p-c-since-version/version.html
new file mode 100644
index 0000000000..ba799b89e3
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.messaging/-r-p-c-since-version/version.html
@@ -0,0 +1,15 @@
+
+
+RPCSinceVersion.version -
+
+
+
+net.corda.node.services.messaging / RPCSinceVersion / version
+
+version
+
+val version : Int
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.messaging/-state-machine-info/-init-.html b/docs/build/html/api/net.corda.node.services.messaging/-state-machine-info/-init-.html
new file mode 100644
index 0000000000..ceda79ce6d
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.messaging/-state-machine-info/-init-.html
@@ -0,0 +1,14 @@
+
+
+StateMachineInfo. -
+
+
+
+net.corda.node.services.messaging / StateMachineInfo / <init>
+
+<init>
+StateMachineInfo ( id : StateMachineRunId , protocolLogicClassName : String , progressTrackerStepAndUpdates : <ERROR CLASS> < String , <ERROR CLASS> < String > > ? )
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.messaging/-state-machine-info/from-protocol-state-machine-impl.html b/docs/build/html/api/net.corda.node.services.messaging/-state-machine-info/from-protocol-state-machine-impl.html
new file mode 100644
index 0000000000..031ba1d0b3
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.messaging/-state-machine-info/from-protocol-state-machine-impl.html
@@ -0,0 +1,15 @@
+
+
+StateMachineInfo.fromProtocolStateMachineImpl -
+
+
+
+net.corda.node.services.messaging / StateMachineInfo / fromProtocolStateMachineImpl
+
+fromProtocolStateMachineImpl
+
+fun fromProtocolStateMachineImpl ( psm : ProtocolStateMachineImpl < * > ) : StateMachineInfo
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.messaging/-state-machine-info/id.html b/docs/build/html/api/net.corda.node.services.messaging/-state-machine-info/id.html
new file mode 100644
index 0000000000..32e929bd37
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.messaging/-state-machine-info/id.html
@@ -0,0 +1,15 @@
+
+
+StateMachineInfo.id -
+
+
+
+net.corda.node.services.messaging / StateMachineInfo / id
+
+id
+
+val id : StateMachineRunId
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.messaging/-state-machine-info/index.html b/docs/build/html/api/net.corda.node.services.messaging/-state-machine-info/index.html
new file mode 100644
index 0000000000..4fb8f6f16e
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.messaging/-state-machine-info/index.html
@@ -0,0 +1,59 @@
+
+
+StateMachineInfo -
+
+
+
+net.corda.node.services.messaging / StateMachineInfo
+
+StateMachineInfo
+data class StateMachineInfo
+
+
+Constructors
+
+
+
+
+<init>
+
+StateMachineInfo ( id : StateMachineRunId , protocolLogicClassName : String , progressTrackerStepAndUpdates : <ERROR CLASS> < String , <ERROR CLASS> < String > > ? )
+
+
+
+Properties
+
+Companion Object Functions
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.messaging/-state-machine-info/progress-tracker-step-and-updates.html b/docs/build/html/api/net.corda.node.services.messaging/-state-machine-info/progress-tracker-step-and-updates.html
new file mode 100644
index 0000000000..5ff91b6d21
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.messaging/-state-machine-info/progress-tracker-step-and-updates.html
@@ -0,0 +1,15 @@
+
+
+StateMachineInfo.progressTrackerStepAndUpdates -
+
+
+
+net.corda.node.services.messaging / StateMachineInfo / progressTrackerStepAndUpdates
+
+progressTrackerStepAndUpdates
+
+val progressTrackerStepAndUpdates : <ERROR CLASS> < String , <ERROR CLASS> < String > > ?
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.messaging/-state-machine-info/protocol-logic-class-name.html b/docs/build/html/api/net.corda.node.services.messaging/-state-machine-info/protocol-logic-class-name.html
new file mode 100644
index 0000000000..b24f82f903
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.messaging/-state-machine-info/protocol-logic-class-name.html
@@ -0,0 +1,15 @@
+
+
+StateMachineInfo.protocolLogicClassName -
+
+
+
+net.corda.node.services.messaging / StateMachineInfo / protocolLogicClassName
+
+protocolLogicClassName
+
+val protocolLogicClassName : String
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.messaging/-state-machine-update/-added/-init-.html b/docs/build/html/api/net.corda.node.services.messaging/-state-machine-update/-added/-init-.html
new file mode 100644
index 0000000000..8ff18eba10
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.messaging/-state-machine-update/-added/-init-.html
@@ -0,0 +1,14 @@
+
+
+StateMachineUpdate.Added. -
+
+
+
+net.corda.node.services.messaging / StateMachineUpdate / Added / <init>
+
+<init>
+Added ( stateMachineInfo : StateMachineInfo )
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.messaging/-state-machine-update/-added/index.html b/docs/build/html/api/net.corda.node.services.messaging/-state-machine-update/-added/index.html
new file mode 100644
index 0000000000..f1d84c7565
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.messaging/-state-machine-update/-added/index.html
@@ -0,0 +1,47 @@
+
+
+StateMachineUpdate.Added -
+
+
+
+net.corda.node.services.messaging / StateMachineUpdate / Added
+
+Added
+class Added : StateMachineUpdate
+
+
+Constructors
+
+Properties
+
+Inherited Properties
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.messaging/-state-machine-update/-added/state-machine-info.html b/docs/build/html/api/net.corda.node.services.messaging/-state-machine-update/-added/state-machine-info.html
new file mode 100644
index 0000000000..6e812833c7
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.messaging/-state-machine-update/-added/state-machine-info.html
@@ -0,0 +1,15 @@
+
+
+StateMachineUpdate.Added.stateMachineInfo -
+
+
+
+net.corda.node.services.messaging / StateMachineUpdate / Added / stateMachineInfo
+
+stateMachineInfo
+
+val stateMachineInfo : StateMachineInfo
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.messaging/-state-machine-update/-removed/-init-.html b/docs/build/html/api/net.corda.node.services.messaging/-state-machine-update/-removed/-init-.html
new file mode 100644
index 0000000000..1f581552d9
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.messaging/-state-machine-update/-removed/-init-.html
@@ -0,0 +1,14 @@
+
+
+StateMachineUpdate.Removed. -
+
+
+
+net.corda.node.services.messaging / StateMachineUpdate / Removed / <init>
+
+<init>
+Removed ( id : StateMachineRunId )
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.messaging/-state-machine-update/-removed/index.html b/docs/build/html/api/net.corda.node.services.messaging/-state-machine-update/-removed/index.html
new file mode 100644
index 0000000000..e1b13d9d45
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.messaging/-state-machine-update/-removed/index.html
@@ -0,0 +1,36 @@
+
+
+StateMachineUpdate.Removed -
+
+
+
+net.corda.node.services.messaging / StateMachineUpdate / Removed
+
+Removed
+class Removed : StateMachineUpdate
+
+
+Constructors
+
+Inherited Properties
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.messaging/-state-machine-update/from-state-machine-change.html b/docs/build/html/api/net.corda.node.services.messaging/-state-machine-update/from-state-machine-change.html
new file mode 100644
index 0000000000..5086db0365
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.messaging/-state-machine-update/from-state-machine-change.html
@@ -0,0 +1,15 @@
+
+
+StateMachineUpdate.fromStateMachineChange -
+
+
+
+net.corda.node.services.messaging / StateMachineUpdate / fromStateMachineChange
+
+fromStateMachineChange
+
+fun fromStateMachineChange ( change : Change ) : StateMachineUpdate
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.messaging/-state-machine-update/id.html b/docs/build/html/api/net.corda.node.services.messaging/-state-machine-update/id.html
new file mode 100644
index 0000000000..463d125bc5
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.messaging/-state-machine-update/id.html
@@ -0,0 +1,15 @@
+
+
+StateMachineUpdate.id -
+
+
+
+net.corda.node.services.messaging / StateMachineUpdate / id
+
+id
+
+val id : StateMachineRunId
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.messaging/-state-machine-update/index.html b/docs/build/html/api/net.corda.node.services.messaging/-state-machine-update/index.html
new file mode 100644
index 0000000000..4eadb712f1
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.messaging/-state-machine-update/index.html
@@ -0,0 +1,70 @@
+
+
+StateMachineUpdate -
+
+
+
+net.corda.node.services.messaging / StateMachineUpdate
+
+StateMachineUpdate
+sealed class StateMachineUpdate
+
+
+Types
+
+
+
+
+Added
+
+class Added : StateMachineUpdate
+
+
+
+Removed
+
+class Removed : StateMachineUpdate
+
+
+
+Properties
+
+Companion Object Functions
+
+Inheritors
+
+
+
+
+Added
+
+class Added : StateMachineUpdate
+
+
+
+Removed
+
+class Removed : StateMachineUpdate
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.messaging/-transaction-build-result/-failed/-init-.html b/docs/build/html/api/net.corda.node.services.messaging/-transaction-build-result/-failed/-init-.html
new file mode 100644
index 0000000000..5c9c8aba49
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.messaging/-transaction-build-result/-failed/-init-.html
@@ -0,0 +1,16 @@
+
+
+TransactionBuildResult.Failed. -
+
+
+
+net.corda.node.services.messaging / TransactionBuildResult / Failed / <init>
+
+<init>
+Failed ( message : String ? )
+State indicating the action undertaken failed, either directly (it is not something which requires a
+state machine), or before a state machine was started.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.messaging/-transaction-build-result/-failed/index.html b/docs/build/html/api/net.corda.node.services.messaging/-transaction-build-result/-failed/index.html
new file mode 100644
index 0000000000..0c197f029f
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.messaging/-transaction-build-result/-failed/index.html
@@ -0,0 +1,51 @@
+
+
+TransactionBuildResult.Failed -
+
+
+
+net.corda.node.services.messaging / TransactionBuildResult / Failed
+
+Failed
+class Failed : TransactionBuildResult
+State indicating the action undertaken failed, either directly (it is not something which requires a
+state machine), or before a state machine was started.
+
+
+Constructors
+
+
+
+
+<init>
+
+Failed ( message : String ? )
State indicating the action undertaken failed, either directly (it is not something which requires a
+state machine), or before a state machine was started.
+
+
+
+
+Properties
+
+
+
+
+message
+
+val message : String ?
+
+
+
+Functions
+
+
+
+
+toString
+
+fun toString ( ) : String
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.messaging/-transaction-build-result/-failed/message.html b/docs/build/html/api/net.corda.node.services.messaging/-transaction-build-result/-failed/message.html
new file mode 100644
index 0000000000..42185ce30f
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.messaging/-transaction-build-result/-failed/message.html
@@ -0,0 +1,15 @@
+
+
+TransactionBuildResult.Failed.message -
+
+
+
+net.corda.node.services.messaging / TransactionBuildResult / Failed / message
+
+message
+
+val message : String ?
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.messaging/-transaction-build-result/-failed/to-string.html b/docs/build/html/api/net.corda.node.services.messaging/-transaction-build-result/-failed/to-string.html
new file mode 100644
index 0000000000..0e26bbdca7
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.messaging/-transaction-build-result/-failed/to-string.html
@@ -0,0 +1,15 @@
+
+
+TransactionBuildResult.Failed.toString -
+
+
+
+net.corda.node.services.messaging / TransactionBuildResult / Failed / toString
+
+toString
+
+fun toString ( ) : String
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.messaging/-transaction-build-result/-protocol-started/-init-.html b/docs/build/html/api/net.corda.node.services.messaging/-transaction-build-result/-protocol-started/-init-.html
new file mode 100644
index 0000000000..5c6c5213b8
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.messaging/-transaction-build-result/-protocol-started/-init-.html
@@ -0,0 +1,21 @@
+
+
+TransactionBuildResult.ProtocolStarted. -
+
+
+
+net.corda.node.services.messaging / TransactionBuildResult / ProtocolStarted / <init>
+
+<init>
+ProtocolStarted ( id : StateMachineRunId , transaction : SignedTransaction ? , message : String ? )
+State indicating that a protocol is managing this request, and that the client should track protocol state machine
+updates for further information. The monitor will separately receive notification of the state machine having been
+added, as it would any other state machine. This response is used solely to enable the monitor to identify
+the state machine (and its progress) as associated with the request.
+Parameters
+
+transaction
- the transaction created as a result, in the case where the protocol has completed.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.messaging/-transaction-build-result/-protocol-started/id.html b/docs/build/html/api/net.corda.node.services.messaging/-transaction-build-result/-protocol-started/id.html
new file mode 100644
index 0000000000..4c238af35b
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.messaging/-transaction-build-result/-protocol-started/id.html
@@ -0,0 +1,15 @@
+
+
+TransactionBuildResult.ProtocolStarted.id -
+
+
+
+net.corda.node.services.messaging / TransactionBuildResult / ProtocolStarted / id
+
+id
+
+val id : StateMachineRunId
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.messaging/-transaction-build-result/-protocol-started/index.html b/docs/build/html/api/net.corda.node.services.messaging/-transaction-build-result/-protocol-started/index.html
new file mode 100644
index 0000000000..542f3109f1
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.messaging/-transaction-build-result/-protocol-started/index.html
@@ -0,0 +1,70 @@
+
+
+TransactionBuildResult.ProtocolStarted -
+
+
+
+net.corda.node.services.messaging / TransactionBuildResult / ProtocolStarted
+
+ProtocolStarted
+class ProtocolStarted : TransactionBuildResult
+State indicating that a protocol is managing this request, and that the client should track protocol state machine
+updates for further information. The monitor will separately receive notification of the state machine having been
+added, as it would any other state machine. This response is used solely to enable the monitor to identify
+the state machine (and its progress) as associated with the request.
+Parameters
+
+transaction
- the transaction created as a result, in the case where the protocol has completed.
+
+
+Constructors
+
+
+
+
+<init>
+
+ProtocolStarted ( id : StateMachineRunId , transaction : SignedTransaction ? , message : String ? )
State indicating that a protocol is managing this request, and that the client should track protocol state machine
+updates for further information. The monitor will separately receive notification of the state machine having been
+added, as it would any other state machine. This response is used solely to enable the monitor to identify
+the state machine (and its progress) as associated with the request.
+
+
+
+
+Properties
+
+Functions
+
+
+
+
+toString
+
+fun toString ( ) : String
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.messaging/-transaction-build-result/-protocol-started/message.html b/docs/build/html/api/net.corda.node.services.messaging/-transaction-build-result/-protocol-started/message.html
new file mode 100644
index 0000000000..1b0238aaec
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.messaging/-transaction-build-result/-protocol-started/message.html
@@ -0,0 +1,15 @@
+
+
+TransactionBuildResult.ProtocolStarted.message -
+
+
+
+net.corda.node.services.messaging / TransactionBuildResult / ProtocolStarted / message
+
+message
+
+val message : String ?
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.messaging/-transaction-build-result/-protocol-started/to-string.html b/docs/build/html/api/net.corda.node.services.messaging/-transaction-build-result/-protocol-started/to-string.html
new file mode 100644
index 0000000000..cae026e204
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.messaging/-transaction-build-result/-protocol-started/to-string.html
@@ -0,0 +1,15 @@
+
+
+TransactionBuildResult.ProtocolStarted.toString -
+
+
+
+net.corda.node.services.messaging / TransactionBuildResult / ProtocolStarted / toString
+
+toString
+
+fun toString ( ) : String
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.messaging/-transaction-build-result/-protocol-started/transaction.html b/docs/build/html/api/net.corda.node.services.messaging/-transaction-build-result/-protocol-started/transaction.html
new file mode 100644
index 0000000000..ab22f683f4
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.messaging/-transaction-build-result/-protocol-started/transaction.html
@@ -0,0 +1,15 @@
+
+
+TransactionBuildResult.ProtocolStarted.transaction -
+
+
+
+net.corda.node.services.messaging / TransactionBuildResult / ProtocolStarted / transaction
+
+transaction
+
+val transaction : SignedTransaction ?
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.messaging/-transaction-build-result/index.html b/docs/build/html/api/net.corda.node.services.messaging/-transaction-build-result/index.html
new file mode 100644
index 0000000000..5f78231fa7
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.messaging/-transaction-build-result/index.html
@@ -0,0 +1,60 @@
+
+
+TransactionBuildResult -
+
+
+
+net.corda.node.services.messaging / TransactionBuildResult
+
+TransactionBuildResult
+sealed class TransactionBuildResult
+
+
+Types
+
+
+
+
+Failed
+
+class Failed : TransactionBuildResult
State indicating the action undertaken failed, either directly (it is not something which requires a
+state machine), or before a state machine was started.
+
+
+
+
+ProtocolStarted
+
+class ProtocolStarted : TransactionBuildResult
State indicating that a protocol is managing this request, and that the client should track protocol state machine
+updates for further information. The monitor will separately receive notification of the state machine having been
+added, as it would any other state machine. This response is used solely to enable the monitor to identify
+the state machine (and its progress) as associated with the request.
+
+
+
+
+Inheritors
+
+
+
+
+Failed
+
+class Failed : TransactionBuildResult
State indicating the action undertaken failed, either directly (it is not something which requires a
+state machine), or before a state machine was started.
+
+
+
+
+ProtocolStarted
+
+class ProtocolStarted : TransactionBuildResult
State indicating that a protocol is managing this request, and that the client should track protocol state machine
+updates for further information. The monitor will separately receive notification of the state machine having been
+added, as it would any other state machine. This response is used solely to enable the monitor to identify
+the state machine (and its progress) as associated with the request.
+
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.messaging/create-r-p-c-kryo.html b/docs/build/html/api/net.corda.node.services.messaging/create-r-p-c-kryo.html
new file mode 100644
index 0000000000..d6e058cb2d
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.messaging/create-r-p-c-kryo.html
@@ -0,0 +1,15 @@
+
+
+createRPCKryo -
+
+
+
+net.corda.node.services.messaging / createRPCKryo
+
+createRPCKryo
+
+fun createRPCKryo ( observableSerializer : <ERROR CLASS> < <ERROR CLASS> < Any > > ? = null) : <ERROR CLASS>
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.messaging/index.html b/docs/build/html/api/net.corda.node.services.messaging/index.html
new file mode 100644
index 0000000000..df5f251573
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.messaging/index.html
@@ -0,0 +1,175 @@
+
+
+net.corda.node.services.messaging -
+
+
+
+net.corda.node.services.messaging
+
+Package net.corda.node.services.messaging
+Types
+
+
+
+
+ArtemisMessagingComponent
+
+abstract class ArtemisMessagingComponent : SingletonSerializeAsToken
The base class for Artemis services that defines shared data structures and transport configuration
+
+
+
+
+ArtemisMessagingServer
+
+class ArtemisMessagingServer : ArtemisMessagingComponent
This class configures and manages an Apache Artemis message queue broker.
+
+
+
+
+ClientRPCRequestMessage
+
+data class ClientRPCRequestMessage
The contents of an RPC request message, separated from the MQ layer.
+
+
+
+
+CordaRPCOps
+
+interface CordaRPCOps : RPCOps
RPC operations that the node exposes to clients using the Java client library. These can be called from
+client apps and are implemented by the node in the ServerRPCOps class.
+
+
+
+
+MarshalledObservation
+
+data class MarshalledObservation
Used in the RPC wire protocol to wrap an observation with the handle of the observable its intended for.
+
+
+
+
+NodeMessagingClient
+
+class NodeMessagingClient : ArtemisMessagingComponent , MessagingServiceInternal
This class implements the MessagingService API using Apache Artemis, the successor to their ActiveMQ product.
+Artemis is a message queue broker and here we run a client connecting to the specified broker instance
+ArtemisMessagingServer . Its primarily concerned with peer-to-peer messaging.
+
+
+
+
+RPCDispatcher
+
+abstract class RPCDispatcher
Intended to service transient clients only (not p2p nodes) for short-lived, transient request/response pairs.
+If you need robustness, this is the wrong system. If you dont want a response, this is probably the
+wrong system (you could just send a message). If you want complex customisation of how requests/responses
+are handled, this is probably the wrong system.
+
+
+
+
+RPCOps
+
+interface RPCOps
Base interface that all RPC servers must implement. Note: in Corda theres only one RPC interface. This base
+interface is here in case we split the RPC system out into a separate library one day.
+
+
+
+
+StateMachineInfo
+
+data class StateMachineInfo
+
+
+
+StateMachineUpdate
+
+sealed class StateMachineUpdate
+
+
+
+TransactionBuildResult
+
+sealed class TransactionBuildResult
+
+
+
+Annotations
+
+
+
+
+RPCReturnsObservables
+
+annotation class RPCReturnsObservables
If an RPC is tagged with this annotation it may return one or more observables anywhere in its response graph.
+Calling such a method comes with consequences: its slower, and consumes server side resources as observations
+will buffer up on the server until theyre consumed by the client.
+
+
+
+
+RPCSinceVersion
+
+annotation class RPCSinceVersion
Records the protocol version in which this RPC was added.
+
+
+
+
+Exceptions
+
+Properties
+
+
+
+
+CURRENT_RPC_USER
+
+val CURRENT_RPC_USER : ThreadLocal < User >
This is available to RPC implementations to query the validated User that is calling it. Each user has a set of
+permissions theyre entitled to which can be used to control access.
+
+
+
+
+rpcLog
+
+val rpcLog : <ERROR CLASS>
Global RPC logger
+
+
+
+
+Functions
+
+
+
+
+createRPCKryo
+
+fun createRPCKryo ( observableSerializer : <ERROR CLASS> < <ERROR CLASS> < Any > > ? = null) : <ERROR CLASS>
+
+
+
+requirePermission
+
+fun requirePermission ( permission : String ) : Unit
Helper method which checks that the current RPC user is entitled for the given permission. Throws a PermissionException otherwise.
+
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.messaging/require-permission.html b/docs/build/html/api/net.corda.node.services.messaging/require-permission.html
new file mode 100644
index 0000000000..f3451ce167
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.messaging/require-permission.html
@@ -0,0 +1,16 @@
+
+
+requirePermission -
+
+
+
+net.corda.node.services.messaging / requirePermission
+
+requirePermission
+
+fun requirePermission ( permission : String ) : Unit
+Helper method which checks that the current RPC user is entitled for the given permission. Throws a PermissionException otherwise.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.messaging/rpc-log.html b/docs/build/html/api/net.corda.node.services.messaging/rpc-log.html
new file mode 100644
index 0000000000..b662c23d22
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.messaging/rpc-log.html
@@ -0,0 +1,19 @@
+
+
+rpcLog -
+
+
+
+net.corda.node.services.messaging / rpcLog
+
+rpcLog
+
+val rpcLog : <ERROR CLASS>
+Global RPC logger
+Getter
+
Global RPC logger
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.network/-abstract-network-map-service/-init-.html b/docs/build/html/api/net.corda.node.services.network/-abstract-network-map-service/-init-.html
new file mode 100644
index 0000000000..db5cb95143
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.network/-abstract-network-map-service/-init-.html
@@ -0,0 +1,19 @@
+
+
+AbstractNetworkMapService. -
+
+
+
+net.corda.node.services.network / AbstractNetworkMapService / <init>
+
+<init>
+AbstractNetworkMapService ( services : ServiceHubInternal )
+Abstracted out core functionality as the basis for a persistent implementation, as well as existing in-memory implementation.
+Design is slightly refactored to track time and map version of last acknowledge per subscriber to facilitate
+subscriber clean up and is simpler to persist than the previous implementation based on a set of missing messages acks.
+
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.network/-abstract-network-map-service/_map-version.html b/docs/build/html/api/net.corda.node.services.network/-abstract-network-map-service/_map-version.html
new file mode 100644
index 0000000000..f76c4247e4
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.network/-abstract-network-map-service/_map-version.html
@@ -0,0 +1,15 @@
+
+
+AbstractNetworkMapService._mapVersion -
+
+
+
+net.corda.node.services.network / AbstractNetworkMapService / _mapVersion
+
+_mapVersion
+
+protected val _mapVersion : AtomicInteger
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.network/-abstract-network-map-service/get-unacknowledged-count.html b/docs/build/html/api/net.corda.node.services.network/-abstract-network-map-service/get-unacknowledged-count.html
new file mode 100644
index 0000000000..c0ec829088
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.network/-abstract-network-map-service/get-unacknowledged-count.html
@@ -0,0 +1,15 @@
+
+
+AbstractNetworkMapService.getUnacknowledgedCount -
+
+
+
+net.corda.node.services.network / AbstractNetworkMapService / getUnacknowledgedCount
+
+getUnacknowledgedCount
+
+fun getUnacknowledgedCount ( subscriber : SingleMessageRecipient , mapVersion : Int ) : Int ?
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.network/-abstract-network-map-service/index.html b/docs/build/html/api/net.corda.node.services.network/-abstract-network-map-service/index.html
new file mode 100644
index 0000000000..2785fb2128
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.network/-abstract-network-map-service/index.html
@@ -0,0 +1,192 @@
+
+
+AbstractNetworkMapService -
+
+
+
+net.corda.node.services.network / AbstractNetworkMapService
+
+AbstractNetworkMapService
+abstract class AbstractNetworkMapService : NetworkMapService , AbstractNodeService
+Abstracted out core functionality as the basis for a persistent implementation, as well as existing in-memory implementation.
+Design is slightly refactored to track time and map version of last acknowledge per subscriber to facilitate
+subscriber clean up and is simpler to persist than the previous implementation based on a set of missing messages acks.
+
+
+
+
+Constructors
+
+
+
+
+<init>
+
+AbstractNetworkMapService ( services : ServiceHubInternal )
Abstracted out core functionality as the basis for a persistent implementation, as well as existing in-memory implementation.
+
+
+
+
+Properties
+
+Inherited Properties
+
+Functions
+
+Inherited Functions
+
+
+
+
+addMessageHandler
+
+fun < Q : ServiceRequestMessage , R : Any > addMessageHandler ( topic : String , handler : ( Q ) -> R , exceptionConsumer : ( Message , Exception ) -> Unit ) : MessageHandlerRegistration
Register a handler for a message topic. In comparison to using net.addMessageHandler() this manages a lot of
+common boilerplate code. Exceptions are caught and passed to the provided consumer. If you just want a simple
+acknowledgement response with no content, use Ack .
+fun < Q : ServiceRequestMessage , R : Any > addMessageHandler ( topic : String , handler : ( Q ) -> R ) : MessageHandlerRegistration
Register a handler for a message topic. In comparison to using net.addMessageHandler() this manages a lot of
+common boilerplate code. Exceptions are propagated to the messaging layer. If you just want a simple
+acknowledgement response with no content, use Ack .
+
+
+
+
+Inheritors
+
+
+
+
+InMemoryNetworkMapService
+
+class InMemoryNetworkMapService : AbstractNetworkMapService
+
+
+
+PersistentNetworkMapService
+
+class PersistentNetworkMapService : AbstractNetworkMapService
A network map service backed by a database to survive restarts of the node hosting it.
+
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.network/-abstract-network-map-service/map-version.html b/docs/build/html/api/net.corda.node.services.network/-abstract-network-map-service/map-version.html
new file mode 100644
index 0000000000..5bc7aed94a
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.network/-abstract-network-map-service/map-version.html
@@ -0,0 +1,15 @@
+
+
+AbstractNetworkMapService.mapVersion -
+
+
+
+net.corda.node.services.network / AbstractNetworkMapService / mapVersion
+
+mapVersion
+
+val mapVersion : Int
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.network/-abstract-network-map-service/max-size-registration-request-bytes.html b/docs/build/html/api/net.corda.node.services.network/-abstract-network-map-service/max-size-registration-request-bytes.html
new file mode 100644
index 0000000000..6c5987b6b7
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.network/-abstract-network-map-service/max-size-registration-request-bytes.html
@@ -0,0 +1,17 @@
+
+
+AbstractNetworkMapService.maxSizeRegistrationRequestBytes -
+
+
+
+net.corda.node.services.network / AbstractNetworkMapService / maxSizeRegistrationRequestBytes
+
+maxSizeRegistrationRequestBytes
+
+val maxSizeRegistrationRequestBytes : Int
+Maximum credible size for a registration request. Generally requests are around 500-600 bytes, so this gives a
+10 times overhead.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.network/-abstract-network-map-service/max-unacknowledged-updates.html b/docs/build/html/api/net.corda.node.services.network/-abstract-network-map-service/max-unacknowledged-updates.html
new file mode 100644
index 0000000000..0a6ccce368
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.network/-abstract-network-map-service/max-unacknowledged-updates.html
@@ -0,0 +1,16 @@
+
+
+AbstractNetworkMapService.maxUnacknowledgedUpdates -
+
+
+
+net.corda.node.services.network / AbstractNetworkMapService / maxUnacknowledgedUpdates
+
+maxUnacknowledgedUpdates
+
+val maxUnacknowledgedUpdates : Int
+Maximum number of unacknowledged updates to send to a node before automatically unregistering them for updates
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.network/-abstract-network-map-service/nodes.html b/docs/build/html/api/net.corda.node.services.network/-abstract-network-map-service/nodes.html
new file mode 100644
index 0000000000..f05cc0920d
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.network/-abstract-network-map-service/nodes.html
@@ -0,0 +1,16 @@
+
+
+AbstractNetworkMapService.nodes -
+
+
+
+net.corda.node.services.network / AbstractNetworkMapService / nodes
+
+nodes
+
+open val nodes : List < NodeInfo >
+Overrides NetworkMapService.nodes
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.network/-abstract-network-map-service/notify-subscribers.html b/docs/build/html/api/net.corda.node.services.network/-abstract-network-map-service/notify-subscribers.html
new file mode 100644
index 0000000000..535bdee352
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.network/-abstract-network-map-service/notify-subscribers.html
@@ -0,0 +1,15 @@
+
+
+AbstractNetworkMapService.notifySubscribers -
+
+
+
+net.corda.node.services.network / AbstractNetworkMapService / notifySubscribers
+
+notifySubscribers
+
+fun notifySubscribers ( wireReg : WireNodeRegistration , mapVersion : Int ) : Unit
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.network/-abstract-network-map-service/process-acknowledge.html b/docs/build/html/api/net.corda.node.services.network/-abstract-network-map-service/process-acknowledge.html
new file mode 100644
index 0000000000..03d80cf501
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.network/-abstract-network-map-service/process-acknowledge.html
@@ -0,0 +1,15 @@
+
+
+AbstractNetworkMapService.processAcknowledge -
+
+
+
+net.corda.node.services.network / AbstractNetworkMapService / processAcknowledge
+
+processAcknowledge
+
+fun processAcknowledge ( req : UpdateAcknowledge ) : Unit
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.network/-abstract-network-map-service/process-fetch-all-request.html b/docs/build/html/api/net.corda.node.services.network/-abstract-network-map-service/process-fetch-all-request.html
new file mode 100644
index 0000000000..4ed2316edd
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.network/-abstract-network-map-service/process-fetch-all-request.html
@@ -0,0 +1,15 @@
+
+
+AbstractNetworkMapService.processFetchAllRequest -
+
+
+
+net.corda.node.services.network / AbstractNetworkMapService / processFetchAllRequest
+
+processFetchAllRequest
+
+fun processFetchAllRequest ( req : FetchMapRequest ) : FetchMapResponse
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.network/-abstract-network-map-service/process-query-request.html b/docs/build/html/api/net.corda.node.services.network/-abstract-network-map-service/process-query-request.html
new file mode 100644
index 0000000000..e9f4e9749d
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.network/-abstract-network-map-service/process-query-request.html
@@ -0,0 +1,15 @@
+
+
+AbstractNetworkMapService.processQueryRequest -
+
+
+
+net.corda.node.services.network / AbstractNetworkMapService / processQueryRequest
+
+processQueryRequest
+
+fun processQueryRequest ( req : QueryIdentityRequest ) : QueryIdentityResponse
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.network/-abstract-network-map-service/process-registration-change-request.html b/docs/build/html/api/net.corda.node.services.network/-abstract-network-map-service/process-registration-change-request.html
new file mode 100644
index 0000000000..695cfc85a2
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.network/-abstract-network-map-service/process-registration-change-request.html
@@ -0,0 +1,15 @@
+
+
+AbstractNetworkMapService.processRegistrationChangeRequest -
+
+
+
+net.corda.node.services.network / AbstractNetworkMapService / processRegistrationChangeRequest
+
+processRegistrationChangeRequest
+
+fun processRegistrationChangeRequest ( req : RegistrationRequest ) : RegistrationResponse
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.network/-abstract-network-map-service/process-subscription-request.html b/docs/build/html/api/net.corda.node.services.network/-abstract-network-map-service/process-subscription-request.html
new file mode 100644
index 0000000000..cbed65db3a
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.network/-abstract-network-map-service/process-subscription-request.html
@@ -0,0 +1,15 @@
+
+
+AbstractNetworkMapService.processSubscriptionRequest -
+
+
+
+net.corda.node.services.network / AbstractNetworkMapService / processSubscriptionRequest
+
+processSubscriptionRequest
+
+fun processSubscriptionRequest ( req : SubscribeRequest ) : SubscribeResponse
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.network/-abstract-network-map-service/registered-nodes.html b/docs/build/html/api/net.corda.node.services.network/-abstract-network-map-service/registered-nodes.html
new file mode 100644
index 0000000000..47e78cc59d
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.network/-abstract-network-map-service/registered-nodes.html
@@ -0,0 +1,15 @@
+
+
+AbstractNetworkMapService.registeredNodes -
+
+
+
+net.corda.node.services.network / AbstractNetworkMapService / registeredNodes
+
+registeredNodes
+
+protected abstract val registeredNodes : MutableMap < Party , NodeRegistrationInfo >
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.network/-abstract-network-map-service/setup.html b/docs/build/html/api/net.corda.node.services.network/-abstract-network-map-service/setup.html
new file mode 100644
index 0000000000..e5177d6aa4
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.network/-abstract-network-map-service/setup.html
@@ -0,0 +1,15 @@
+
+
+AbstractNetworkMapService.setup -
+
+
+
+net.corda.node.services.network / AbstractNetworkMapService / setup
+
+setup
+
+protected fun setup ( ) : Unit
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.network/-abstract-network-map-service/subscribers.html b/docs/build/html/api/net.corda.node.services.network/-abstract-network-map-service/subscribers.html
new file mode 100644
index 0000000000..e558bb3d8f
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.network/-abstract-network-map-service/subscribers.html
@@ -0,0 +1,15 @@
+
+
+AbstractNetworkMapService.subscribers -
+
+
+
+net.corda.node.services.network / AbstractNetworkMapService / subscribers
+
+subscribers
+
+protected abstract val subscribers : ThreadBox < MutableMap < SingleMessageRecipient , LastAcknowledgeInfo > >
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.network/-abstract-network-map-service/unregister-network-handlers.html b/docs/build/html/api/net.corda.node.services.network/-abstract-network-map-service/unregister-network-handlers.html
new file mode 100644
index 0000000000..1ae630f7d7
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.network/-abstract-network-map-service/unregister-network-handlers.html
@@ -0,0 +1,15 @@
+
+
+AbstractNetworkMapService.unregisterNetworkHandlers -
+
+
+
+net.corda.node.services.network / AbstractNetworkMapService / unregisterNetworkHandlers
+
+unregisterNetworkHandlers
+
+fun unregisterNetworkHandlers ( ) : Unit
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.network/-in-memory-network-map-cache/-init-.html b/docs/build/html/api/net.corda.node.services.network/-in-memory-network-map-cache/-init-.html
new file mode 100644
index 0000000000..1d8597f15f
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.network/-in-memory-network-map-cache/-init-.html
@@ -0,0 +1,15 @@
+
+
+InMemoryNetworkMapCache. -
+
+
+
+net.corda.node.services.network / InMemoryNetworkMapCache / <init>
+
+<init>
+InMemoryNetworkMapCache ( )
+Extremely simple in-memory cache of the network map.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.network/-in-memory-network-map-cache/add-map-service.html b/docs/build/html/api/net.corda.node.services.network/-in-memory-network-map-cache/add-map-service.html
new file mode 100644
index 0000000000..c60b8cb65c
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.network/-in-memory-network-map-cache/add-map-service.html
@@ -0,0 +1,31 @@
+
+
+InMemoryNetworkMapCache.addMapService -
+
+
+
+net.corda.node.services.network / InMemoryNetworkMapCache / addMapService
+
+addMapService
+
+open fun addMapService ( net : MessagingService , networkMapAddress : SingleMessageRecipient , subscribe : Boolean , ifChangedSinceVer : Int ? ) : <ERROR CLASS> < Unit >
+Overrides NetworkMapCache.addMapService
+Add a network map service; fetches a copy of the latest map from the service and subscribes to any further
+updates.
+Parameters
+
+net
- the network messaging service.
+
+
+networkMapAddress
- the network map service to fetch current state from.
+
+
+subscribe
- if the cache should subscribe to updates.
+
+
+ifChangedSinceVer
- an optional version number to limit updating the map based on. If the latest map
+version is less than or equal to the given version, no update is fetched.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.network/-in-memory-network-map-cache/add-node.html b/docs/build/html/api/net.corda.node.services.network/-in-memory-network-map-cache/add-node.html
new file mode 100644
index 0000000000..a3dfb2751d
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.network/-in-memory-network-map-cache/add-node.html
@@ -0,0 +1,17 @@
+
+
+InMemoryNetworkMapCache.addNode -
+
+
+
+net.corda.node.services.network / InMemoryNetworkMapCache / addNode
+
+addNode
+
+open fun addNode ( node : NodeInfo ) : Unit
+Overrides NetworkMapCache.addNode
+Adds a node to the local cache (generally only used for adding ourselves).
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.network/-in-memory-network-map-cache/changed.html b/docs/build/html/api/net.corda.node.services.network/-in-memory-network-map-cache/changed.html
new file mode 100644
index 0000000000..0d62aa91ef
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.network/-in-memory-network-map-cache/changed.html
@@ -0,0 +1,17 @@
+
+
+InMemoryNetworkMapCache.changed -
+
+
+
+net.corda.node.services.network / InMemoryNetworkMapCache / changed
+
+changed
+
+open val changed : <ERROR CLASS> < MapChange >
+Overrides NetworkMapCache.changed
+Tracks changes to the network map cache
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.network/-in-memory-network-map-cache/deregister-for-updates.html b/docs/build/html/api/net.corda.node.services.network/-in-memory-network-map-cache/deregister-for-updates.html
new file mode 100644
index 0000000000..b59a3a98fe
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.network/-in-memory-network-map-cache/deregister-for-updates.html
@@ -0,0 +1,20 @@
+
+
+InMemoryNetworkMapCache.deregisterForUpdates -
+
+
+
+net.corda.node.services.network / InMemoryNetworkMapCache / deregisterForUpdates
+
+deregisterForUpdates
+
+open fun deregisterForUpdates ( net : MessagingService , service : NodeInfo ) : <ERROR CLASS> < Unit >
+Overrides NetworkMapCache.deregisterForUpdates
+Unsubscribes from updates from the given map service.
+Parameters
+
+service
- the network map service to listen to updates from.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.network/-in-memory-network-map-cache/get-node-by-legal-name.html b/docs/build/html/api/net.corda.node.services.network/-in-memory-network-map-cache/get-node-by-legal-name.html
new file mode 100644
index 0000000000..49c753e75d
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.network/-in-memory-network-map-cache/get-node-by-legal-name.html
@@ -0,0 +1,17 @@
+
+
+InMemoryNetworkMapCache.getNodeByLegalName -
+
+
+
+net.corda.node.services.network / InMemoryNetworkMapCache / getNodeByLegalName
+
+getNodeByLegalName
+
+open fun getNodeByLegalName ( name : String ) : <ERROR CLASS>
+Overrides NetworkMapCache.getNodeByLegalName
+Look up the node info for a legal name.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.network/-in-memory-network-map-cache/get-node-by-public-key.html b/docs/build/html/api/net.corda.node.services.network/-in-memory-network-map-cache/get-node-by-public-key.html
new file mode 100644
index 0000000000..fee34234b9
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.network/-in-memory-network-map-cache/get-node-by-public-key.html
@@ -0,0 +1,17 @@
+
+
+InMemoryNetworkMapCache.getNodeByPublicKey -
+
+
+
+net.corda.node.services.network / InMemoryNetworkMapCache / getNodeByPublicKey
+
+getNodeByPublicKey
+
+open fun getNodeByPublicKey ( publicKey : PublicKey ) : NodeInfo ?
+Overrides NetworkMapCache.getNodeByPublicKey
+Look up the node info for a public key.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.network/-in-memory-network-map-cache/get-recommended.html b/docs/build/html/api/net.corda.node.services.network/-in-memory-network-map-cache/get-recommended.html
new file mode 100644
index 0000000000..514ece6b11
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.network/-in-memory-network-map-cache/get-recommended.html
@@ -0,0 +1,19 @@
+
+
+InMemoryNetworkMapCache.getRecommended -
+
+
+
+net.corda.node.services.network / InMemoryNetworkMapCache / getRecommended
+
+getRecommended
+
+open fun getRecommended ( type : ServiceType , contract : Contract , vararg party : Party ) : NodeInfo ?
+Overrides NetworkMapCache.getRecommended
+Get a recommended node that advertises a service, and is suitable for the specified contract and parties.
+Implementations might understand, for example, the correct regulator to use for specific contracts/parties,
+or the appropriate oracle for a contract.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.network/-in-memory-network-map-cache/get.html b/docs/build/html/api/net.corda.node.services.network/-in-memory-network-map-cache/get.html
new file mode 100644
index 0000000000..efe5bb82b5
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.network/-in-memory-network-map-cache/get.html
@@ -0,0 +1,23 @@
+
+
+InMemoryNetworkMapCache.get -
+
+
+
+net.corda.node.services.network / InMemoryNetworkMapCache / get
+
+get
+
+open fun get ( ) : <ERROR CLASS>
+Overrides NetworkMapCache.get
+Get a copy of all nodes in the map.
+
+
+
+open fun get ( serviceType : ServiceType ) : <ERROR CLASS>
+Overrides NetworkMapCache.get
+Get the collection of nodes which advertise a specific service.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.network/-in-memory-network-map-cache/index.html b/docs/build/html/api/net.corda.node.services.network/-in-memory-network-map-cache/index.html
new file mode 100644
index 0000000000..03f868015e
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.network/-in-memory-network-map-cache/index.html
@@ -0,0 +1,179 @@
+
+
+InMemoryNetworkMapCache -
+
+
+
+net.corda.node.services.network / InMemoryNetworkMapCache
+
+InMemoryNetworkMapCache
+open class InMemoryNetworkMapCache : SingletonSerializeAsToken , NetworkMapCache
+Extremely simple in-memory cache of the network map.
+
+
+Constructors
+
+
+
+
+<init>
+
+InMemoryNetworkMapCache ( )
Extremely simple in-memory cache of the network map.
+
+
+
+
+Properties
+
+
+
+
+changed
+
+open val changed : <ERROR CLASS> < MapChange >
Tracks changes to the network map cache
+
+
+
+
+mapServiceRegistered
+
+open val mapServiceRegistered : <ERROR CLASS> < Unit >
Future to track completion of the NetworkMapService registration.
+
+
+
+
+networkMapNodes
+
+open val networkMapNodes : List < NodeInfo >
A list of nodes that advertise a network map service
+
+
+
+
+notaryNodes
+
+open val notaryNodes : List < NodeInfo >
A list of nodes that advertise a notary service
+
+
+
+
+partyNodes
+
+open val partyNodes : List < NodeInfo >
A list of all nodes the cache is aware of
+
+
+
+
+registeredNodes
+
+var registeredNodes : MutableMap < Party , NodeInfo >
+
+
+
+regulators
+
+open val regulators : List < NodeInfo >
A list of nodes that advertise a regulatory service. Identifying the correct regulator for a trade is outside
+the scope of the network map service, and this is intended solely as a sanity check on configuration stored
+elsewhere.
+
+
+
+
+Functions
+
+
+
+
+addMapService
+
+open fun addMapService ( net : MessagingService , networkMapAddress : SingleMessageRecipient , subscribe : Boolean , ifChangedSinceVer : Int ? ) : <ERROR CLASS> < Unit >
Add a network map service; fetches a copy of the latest map from the service and subscribes to any further
+updates.
+
+
+
+
+addNode
+
+open fun addNode ( node : NodeInfo ) : Unit
Adds a node to the local cache (generally only used for adding ourselves).
+
+
+
+
+deregisterForUpdates
+
+open fun deregisterForUpdates ( net : MessagingService , service : NodeInfo ) : <ERROR CLASS> < Unit >
Unsubscribes from updates from the given map service.
+
+
+
+
+get
+
+open fun get ( ) : <ERROR CLASS>
Get a copy of all nodes in the map.
+open fun get ( serviceType : ServiceType ) : <ERROR CLASS>
Get the collection of nodes which advertise a specific service.
+
+
+
+
+getNodeByLegalName
+
+open fun getNodeByLegalName ( name : String ) : <ERROR CLASS>
Look up the node info for a legal name.
+
+
+
+
+getNodeByPublicKey
+
+open fun getNodeByPublicKey ( publicKey : PublicKey ) : NodeInfo ?
Look up the node info for a public key.
+
+
+
+
+getRecommended
+
+open fun getRecommended ( type : ServiceType , contract : Contract , vararg party : Party ) : NodeInfo ?
Get a recommended node that advertises a service, and is suitable for the specified contract and parties.
+Implementations might understand, for example, the correct regulator to use for specific contracts/parties,
+or the appropriate oracle for a contract.
+
+
+
+
+processUpdatePush
+
+fun processUpdatePush ( req : Update ) : Unit
+
+
+
+removeNode
+
+open fun removeNode ( node : NodeInfo ) : Unit
Removes a node from the local cache.
+
+
+
+
+runWithoutMapService
+
+open fun runWithoutMapService ( ) : Unit
For testing where the network map cache is manipulated marks the service as immediately ready.
+
+
+
+
+track
+
+open fun track ( ) : <ERROR CLASS> < List < NodeInfo > , <ERROR CLASS> < MapChange > >
Atomically get the current party nodes and a stream of updates. Note that the Observable buffers updates until the
+first subscriber is registered so as to avoid racing with early updates.
+
+
+
+
+Inherited Functions
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.network/-in-memory-network-map-cache/map-service-registered.html b/docs/build/html/api/net.corda.node.services.network/-in-memory-network-map-cache/map-service-registered.html
new file mode 100644
index 0000000000..1c9a18e54a
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.network/-in-memory-network-map-cache/map-service-registered.html
@@ -0,0 +1,20 @@
+
+
+InMemoryNetworkMapCache.mapServiceRegistered -
+
+
+
+net.corda.node.services.network / InMemoryNetworkMapCache / mapServiceRegistered
+
+mapServiceRegistered
+
+open val mapServiceRegistered : <ERROR CLASS> < Unit >
+Overrides NetworkMapCache.mapServiceRegistered
+Future to track completion of the NetworkMapService registration.
+Getter
+
Future to track completion of the NetworkMapService registration.
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.network/-in-memory-network-map-cache/network-map-nodes.html b/docs/build/html/api/net.corda.node.services.network/-in-memory-network-map-cache/network-map-nodes.html
new file mode 100644
index 0000000000..6a95fd77e3
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.network/-in-memory-network-map-cache/network-map-nodes.html
@@ -0,0 +1,20 @@
+
+
+InMemoryNetworkMapCache.networkMapNodes -
+
+
+
+net.corda.node.services.network / InMemoryNetworkMapCache / networkMapNodes
+
+networkMapNodes
+
+open val networkMapNodes : List < NodeInfo >
+Overrides NetworkMapCache.networkMapNodes
+A list of nodes that advertise a network map service
+Getter
+
A list of nodes that advertise a network map service
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.network/-in-memory-network-map-cache/notary-nodes.html b/docs/build/html/api/net.corda.node.services.network/-in-memory-network-map-cache/notary-nodes.html
new file mode 100644
index 0000000000..79ea5f33f8
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.network/-in-memory-network-map-cache/notary-nodes.html
@@ -0,0 +1,20 @@
+
+
+InMemoryNetworkMapCache.notaryNodes -
+
+
+
+net.corda.node.services.network / InMemoryNetworkMapCache / notaryNodes
+
+notaryNodes
+
+open val notaryNodes : List < NodeInfo >
+Overrides NetworkMapCache.notaryNodes
+A list of nodes that advertise a notary service
+Getter
+
A list of nodes that advertise a notary service
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.network/-in-memory-network-map-cache/party-nodes.html b/docs/build/html/api/net.corda.node.services.network/-in-memory-network-map-cache/party-nodes.html
new file mode 100644
index 0000000000..adefcc9437
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.network/-in-memory-network-map-cache/party-nodes.html
@@ -0,0 +1,20 @@
+
+
+InMemoryNetworkMapCache.partyNodes -
+
+
+
+net.corda.node.services.network / InMemoryNetworkMapCache / partyNodes
+
+partyNodes
+
+open val partyNodes : List < NodeInfo >
+Overrides NetworkMapCache.partyNodes
+A list of all nodes the cache is aware of
+Getter
+
A list of all nodes the cache is aware of
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.network/-in-memory-network-map-cache/process-update-push.html b/docs/build/html/api/net.corda.node.services.network/-in-memory-network-map-cache/process-update-push.html
new file mode 100644
index 0000000000..1dbeb60665
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.network/-in-memory-network-map-cache/process-update-push.html
@@ -0,0 +1,15 @@
+
+
+InMemoryNetworkMapCache.processUpdatePush -
+
+
+
+net.corda.node.services.network / InMemoryNetworkMapCache / processUpdatePush
+
+processUpdatePush
+
+fun processUpdatePush ( req : Update ) : Unit
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.network/-in-memory-network-map-cache/registered-nodes.html b/docs/build/html/api/net.corda.node.services.network/-in-memory-network-map-cache/registered-nodes.html
new file mode 100644
index 0000000000..f6b1de59b7
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.network/-in-memory-network-map-cache/registered-nodes.html
@@ -0,0 +1,15 @@
+
+
+InMemoryNetworkMapCache.registeredNodes -
+
+
+
+net.corda.node.services.network / InMemoryNetworkMapCache / registeredNodes
+
+registeredNodes
+
+protected var registeredNodes : MutableMap < Party , NodeInfo >
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.network/-in-memory-network-map-cache/regulators.html b/docs/build/html/api/net.corda.node.services.network/-in-memory-network-map-cache/regulators.html
new file mode 100644
index 0000000000..ade2fc3b07
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.network/-in-memory-network-map-cache/regulators.html
@@ -0,0 +1,24 @@
+
+
+InMemoryNetworkMapCache.regulators -
+
+
+
+net.corda.node.services.network / InMemoryNetworkMapCache / regulators
+
+regulators
+
+open val regulators : List < NodeInfo >
+Overrides NetworkMapCache.regulators
+A list of nodes that advertise a regulatory service. Identifying the correct regulator for a trade is outside
+the scope of the network map service, and this is intended solely as a sanity check on configuration stored
+elsewhere.
+Getter
+
A list of nodes that advertise a regulatory service. Identifying the correct regulator for a trade is outside
+the scope of the network map service, and this is intended solely as a sanity check on configuration stored
+elsewhere.
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.network/-in-memory-network-map-cache/remove-node.html b/docs/build/html/api/net.corda.node.services.network/-in-memory-network-map-cache/remove-node.html
new file mode 100644
index 0000000000..7aa741948f
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.network/-in-memory-network-map-cache/remove-node.html
@@ -0,0 +1,17 @@
+
+
+InMemoryNetworkMapCache.removeNode -
+
+
+
+net.corda.node.services.network / InMemoryNetworkMapCache / removeNode
+
+removeNode
+
+open fun removeNode ( node : NodeInfo ) : Unit
+Overrides NetworkMapCache.removeNode
+Removes a node from the local cache.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.network/-in-memory-network-map-cache/run-without-map-service.html b/docs/build/html/api/net.corda.node.services.network/-in-memory-network-map-cache/run-without-map-service.html
new file mode 100644
index 0000000000..98f27d162f
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.network/-in-memory-network-map-cache/run-without-map-service.html
@@ -0,0 +1,17 @@
+
+
+InMemoryNetworkMapCache.runWithoutMapService -
+
+
+
+net.corda.node.services.network / InMemoryNetworkMapCache / runWithoutMapService
+
+runWithoutMapService
+
+open fun runWithoutMapService ( ) : Unit
+Overrides NetworkMapCache.runWithoutMapService
+For testing where the network map cache is manipulated marks the service as immediately ready.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.network/-in-memory-network-map-cache/track.html b/docs/build/html/api/net.corda.node.services.network/-in-memory-network-map-cache/track.html
new file mode 100644
index 0000000000..9f5777ead1
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.network/-in-memory-network-map-cache/track.html
@@ -0,0 +1,18 @@
+
+
+InMemoryNetworkMapCache.track -
+
+
+
+net.corda.node.services.network / InMemoryNetworkMapCache / track
+
+track
+
+open fun track ( ) : <ERROR CLASS> < List < NodeInfo > , <ERROR CLASS> < MapChange > >
+Overrides NetworkMapCache.track
+Atomically get the current party nodes and a stream of updates. Note that the Observable buffers updates until the
+first subscriber is registered so as to avoid racing with early updates.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.network/-in-memory-network-map-service/-init-.html b/docs/build/html/api/net.corda.node.services.network/-in-memory-network-map-service/-init-.html
new file mode 100644
index 0000000000..d2babad7ae
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.network/-in-memory-network-map-service/-init-.html
@@ -0,0 +1,14 @@
+
+
+InMemoryNetworkMapService. -
+
+
+
+net.corda.node.services.network / InMemoryNetworkMapService / <init>
+
+<init>
+InMemoryNetworkMapService ( services : ServiceHubInternal )
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.network/-in-memory-network-map-service/index.html b/docs/build/html/api/net.corda.node.services.network/-in-memory-network-map-service/index.html
new file mode 100644
index 0000000000..84ba4b1d67
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.network/-in-memory-network-map-service/index.html
@@ -0,0 +1,139 @@
+
+
+InMemoryNetworkMapService -
+
+
+
+net.corda.node.services.network / InMemoryNetworkMapService
+
+InMemoryNetworkMapService
+class InMemoryNetworkMapService : AbstractNetworkMapService
+
+
+Constructors
+
+Properties
+
+Inherited Properties
+
+
+
+
+_mapVersion
+
+val _mapVersion : AtomicInteger
+
+
+
+mapVersion
+
+val mapVersion : Int
+
+
+
+maxSizeRegistrationRequestBytes
+
+val maxSizeRegistrationRequestBytes : Int
Maximum credible size for a registration request. Generally requests are around 500-600 bytes, so this gives a
+10 times overhead.
+
+
+
+
+maxUnacknowledgedUpdates
+
+val maxUnacknowledgedUpdates : Int
Maximum number of unacknowledged updates to send to a node before automatically unregistering them for updates
+
+
+
+
+nodes
+
+open val nodes : List < NodeInfo >
+
+
+
+Inherited Functions
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.network/-in-memory-network-map-service/registered-nodes.html b/docs/build/html/api/net.corda.node.services.network/-in-memory-network-map-service/registered-nodes.html
new file mode 100644
index 0000000000..06d0e786fb
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.network/-in-memory-network-map-service/registered-nodes.html
@@ -0,0 +1,16 @@
+
+
+InMemoryNetworkMapService.registeredNodes -
+
+
+
+net.corda.node.services.network / InMemoryNetworkMapService / registeredNodes
+
+registeredNodes
+
+protected val registeredNodes : MutableMap < Party , NodeRegistrationInfo >
+Overrides AbstractNetworkMapService.registeredNodes
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.network/-in-memory-network-map-service/subscribers.html b/docs/build/html/api/net.corda.node.services.network/-in-memory-network-map-service/subscribers.html
new file mode 100644
index 0000000000..8789ca56bc
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.network/-in-memory-network-map-service/subscribers.html
@@ -0,0 +1,16 @@
+
+
+InMemoryNetworkMapService.subscribers -
+
+
+
+net.corda.node.services.network / InMemoryNetworkMapService / subscribers
+
+subscribers
+
+protected val subscribers : <ERROR CLASS>
+Overrides AbstractNetworkMapService.subscribers
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.network/-last-acknowledge-info/-init-.html b/docs/build/html/api/net.corda.node.services.network/-last-acknowledge-info/-init-.html
new file mode 100644
index 0000000000..8fe17cdb45
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.network/-last-acknowledge-info/-init-.html
@@ -0,0 +1,14 @@
+
+
+LastAcknowledgeInfo. -
+
+
+
+net.corda.node.services.network / LastAcknowledgeInfo / <init>
+
+<init>
+LastAcknowledgeInfo ( mapVersion : Int )
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.network/-last-acknowledge-info/index.html b/docs/build/html/api/net.corda.node.services.network/-last-acknowledge-info/index.html
new file mode 100644
index 0000000000..71aba6d5b0
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.network/-last-acknowledge-info/index.html
@@ -0,0 +1,36 @@
+
+
+LastAcknowledgeInfo -
+
+
+
+net.corda.node.services.network / LastAcknowledgeInfo
+
+LastAcknowledgeInfo
+data class LastAcknowledgeInfo
+
+
+Constructors
+
+
+
+
+<init>
+
+LastAcknowledgeInfo ( mapVersion : Int )
+
+
+
+Properties
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.network/-last-acknowledge-info/map-version.html b/docs/build/html/api/net.corda.node.services.network/-last-acknowledge-info/map-version.html
new file mode 100644
index 0000000000..64ec50d469
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.network/-last-acknowledge-info/map-version.html
@@ -0,0 +1,15 @@
+
+
+LastAcknowledgeInfo.mapVersion -
+
+
+
+net.corda.node.services.network / LastAcknowledgeInfo / mapVersion
+
+mapVersion
+
+val mapVersion : Int
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.network/-network-map-service/-d-e-f-a-u-l-t_-e-x-p-i-r-a-t-i-o-n_-p-e-r-i-o-d.html b/docs/build/html/api/net.corda.node.services.network/-network-map-service/-d-e-f-a-u-l-t_-e-x-p-i-r-a-t-i-o-n_-p-e-r-i-o-d.html
new file mode 100644
index 0000000000..33133fc32e
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.network/-network-map-service/-d-e-f-a-u-l-t_-e-x-p-i-r-a-t-i-o-n_-p-e-r-i-o-d.html
@@ -0,0 +1,15 @@
+
+
+NetworkMapService.DEFAULT_EXPIRATION_PERIOD -
+
+
+
+net.corda.node.services.network / NetworkMapService / DEFAULT_EXPIRATION_PERIOD
+
+DEFAULT_EXPIRATION_PERIOD
+
+val DEFAULT_EXPIRATION_PERIOD : Period
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.network/-network-map-service/-f-e-t-c-h_-p-r-o-t-o-c-o-l_-t-o-p-i-c.html b/docs/build/html/api/net.corda.node.services.network/-network-map-service/-f-e-t-c-h_-p-r-o-t-o-c-o-l_-t-o-p-i-c.html
new file mode 100644
index 0000000000..7f7a51a4e0
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.network/-network-map-service/-f-e-t-c-h_-p-r-o-t-o-c-o-l_-t-o-p-i-c.html
@@ -0,0 +1,15 @@
+
+
+NetworkMapService.FETCH_PROTOCOL_TOPIC -
+
+
+
+net.corda.node.services.network / NetworkMapService / FETCH_PROTOCOL_TOPIC
+
+FETCH_PROTOCOL_TOPIC
+
+val FETCH_PROTOCOL_TOPIC : String
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.network/-network-map-service/-fetch-map-request/-init-.html b/docs/build/html/api/net.corda.node.services.network/-network-map-service/-fetch-map-request/-init-.html
new file mode 100644
index 0000000000..8bab611ef1
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.network/-network-map-service/-fetch-map-request/-init-.html
@@ -0,0 +1,14 @@
+
+
+NetworkMapService.FetchMapRequest. -
+
+
+
+net.corda.node.services.network / NetworkMapService / FetchMapRequest / <init>
+
+<init>
+FetchMapRequest ( subscribe : Boolean , ifChangedSinceVersion : Int ? , replyTo : SingleMessageRecipient , sessionID : Long = random63BitValue())
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.network/-network-map-service/-fetch-map-request/if-changed-since-version.html b/docs/build/html/api/net.corda.node.services.network/-network-map-service/-fetch-map-request/if-changed-since-version.html
new file mode 100644
index 0000000000..b5b699eebf
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.network/-network-map-service/-fetch-map-request/if-changed-since-version.html
@@ -0,0 +1,15 @@
+
+
+NetworkMapService.FetchMapRequest.ifChangedSinceVersion -
+
+
+
+net.corda.node.services.network / NetworkMapService / FetchMapRequest / ifChangedSinceVersion
+
+ifChangedSinceVersion
+
+val ifChangedSinceVersion : Int ?
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.network/-network-map-service/-fetch-map-request/index.html b/docs/build/html/api/net.corda.node.services.network/-network-map-service/-fetch-map-request/index.html
new file mode 100644
index 0000000000..2068cca400
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.network/-network-map-service/-fetch-map-request/index.html
@@ -0,0 +1,54 @@
+
+
+NetworkMapService.FetchMapRequest -
+
+
+
+net.corda.node.services.network / NetworkMapService / FetchMapRequest
+
+FetchMapRequest
+class FetchMapRequest : ServiceRequestMessage
+
+
+Constructors
+
+
+
+
+<init>
+
+FetchMapRequest ( subscribe : Boolean , ifChangedSinceVersion : Int ? , replyTo : SingleMessageRecipient , sessionID : Long = random63BitValue())
+
+
+
+Properties
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.network/-network-map-service/-fetch-map-request/reply-to.html b/docs/build/html/api/net.corda.node.services.network/-network-map-service/-fetch-map-request/reply-to.html
new file mode 100644
index 0000000000..297544965f
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.network/-network-map-service/-fetch-map-request/reply-to.html
@@ -0,0 +1,16 @@
+
+
+NetworkMapService.FetchMapRequest.replyTo -
+
+
+
+net.corda.node.services.network / NetworkMapService / FetchMapRequest / replyTo
+
+replyTo
+
+val replyTo : SingleMessageRecipient
+Overrides ServiceRequestMessage.replyTo
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.network/-network-map-service/-fetch-map-request/session-i-d.html b/docs/build/html/api/net.corda.node.services.network/-network-map-service/-fetch-map-request/session-i-d.html
new file mode 100644
index 0000000000..1578a7fffe
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.network/-network-map-service/-fetch-map-request/session-i-d.html
@@ -0,0 +1,16 @@
+
+
+NetworkMapService.FetchMapRequest.sessionID -
+
+
+
+net.corda.node.services.network / NetworkMapService / FetchMapRequest / sessionID
+
+sessionID
+
+val sessionID : Long
+Overrides ServiceRequestMessage.sessionID
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.network/-network-map-service/-fetch-map-request/subscribe.html b/docs/build/html/api/net.corda.node.services.network/-network-map-service/-fetch-map-request/subscribe.html
new file mode 100644
index 0000000000..466ca018a6
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.network/-network-map-service/-fetch-map-request/subscribe.html
@@ -0,0 +1,15 @@
+
+
+NetworkMapService.FetchMapRequest.subscribe -
+
+
+
+net.corda.node.services.network / NetworkMapService / FetchMapRequest / subscribe
+
+subscribe
+
+val subscribe : Boolean
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.network/-network-map-service/-fetch-map-response/-init-.html b/docs/build/html/api/net.corda.node.services.network/-network-map-service/-fetch-map-response/-init-.html
new file mode 100644
index 0000000000..1a9a2a44fc
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.network/-network-map-service/-fetch-map-response/-init-.html
@@ -0,0 +1,14 @@
+
+
+NetworkMapService.FetchMapResponse. -
+
+
+
+net.corda.node.services.network / NetworkMapService / FetchMapResponse / <init>
+
+<init>
+FetchMapResponse ( nodes : Collection < NodeRegistration > ? , version : Int )
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.network/-network-map-service/-fetch-map-response/index.html b/docs/build/html/api/net.corda.node.services.network/-network-map-service/-fetch-map-response/index.html
new file mode 100644
index 0000000000..71d5be77f5
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.network/-network-map-service/-fetch-map-response/index.html
@@ -0,0 +1,42 @@
+
+
+NetworkMapService.FetchMapResponse -
+
+
+
+net.corda.node.services.network / NetworkMapService / FetchMapResponse
+
+FetchMapResponse
+data class FetchMapResponse
+
+
+Constructors
+
+Properties
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.network/-network-map-service/-fetch-map-response/nodes.html b/docs/build/html/api/net.corda.node.services.network/-network-map-service/-fetch-map-response/nodes.html
new file mode 100644
index 0000000000..f8c0058bc7
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.network/-network-map-service/-fetch-map-response/nodes.html
@@ -0,0 +1,15 @@
+
+
+NetworkMapService.FetchMapResponse.nodes -
+
+
+
+net.corda.node.services.network / NetworkMapService / FetchMapResponse / nodes
+
+nodes
+
+val nodes : Collection < NodeRegistration > ?
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.network/-network-map-service/-fetch-map-response/version.html b/docs/build/html/api/net.corda.node.services.network/-network-map-service/-fetch-map-response/version.html
new file mode 100644
index 0000000000..a29a372487
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.network/-network-map-service/-fetch-map-response/version.html
@@ -0,0 +1,15 @@
+
+
+NetworkMapService.FetchMapResponse.version -
+
+
+
+net.corda.node.services.network / NetworkMapService / FetchMapResponse / version
+
+version
+
+val version : Int
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.network/-network-map-service/-p-u-s-h_-a-c-k_-p-r-o-t-o-c-o-l_-t-o-p-i-c.html b/docs/build/html/api/net.corda.node.services.network/-network-map-service/-p-u-s-h_-a-c-k_-p-r-o-t-o-c-o-l_-t-o-p-i-c.html
new file mode 100644
index 0000000000..e130bfc229
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.network/-network-map-service/-p-u-s-h_-a-c-k_-p-r-o-t-o-c-o-l_-t-o-p-i-c.html
@@ -0,0 +1,15 @@
+
+
+NetworkMapService.PUSH_ACK_PROTOCOL_TOPIC -
+
+
+
+net.corda.node.services.network / NetworkMapService / PUSH_ACK_PROTOCOL_TOPIC
+
+PUSH_ACK_PROTOCOL_TOPIC
+
+val PUSH_ACK_PROTOCOL_TOPIC : String
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.network/-network-map-service/-p-u-s-h_-p-r-o-t-o-c-o-l_-t-o-p-i-c.html b/docs/build/html/api/net.corda.node.services.network/-network-map-service/-p-u-s-h_-p-r-o-t-o-c-o-l_-t-o-p-i-c.html
new file mode 100644
index 0000000000..a5cb66cfb3
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.network/-network-map-service/-p-u-s-h_-p-r-o-t-o-c-o-l_-t-o-p-i-c.html
@@ -0,0 +1,15 @@
+
+
+NetworkMapService.PUSH_PROTOCOL_TOPIC -
+
+
+
+net.corda.node.services.network / NetworkMapService / PUSH_PROTOCOL_TOPIC
+
+PUSH_PROTOCOL_TOPIC
+
+val PUSH_PROTOCOL_TOPIC : String
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.network/-network-map-service/-q-u-e-r-y_-p-r-o-t-o-c-o-l_-t-o-p-i-c.html b/docs/build/html/api/net.corda.node.services.network/-network-map-service/-q-u-e-r-y_-p-r-o-t-o-c-o-l_-t-o-p-i-c.html
new file mode 100644
index 0000000000..497c9300cc
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.network/-network-map-service/-q-u-e-r-y_-p-r-o-t-o-c-o-l_-t-o-p-i-c.html
@@ -0,0 +1,15 @@
+
+
+NetworkMapService.QUERY_PROTOCOL_TOPIC -
+
+
+
+net.corda.node.services.network / NetworkMapService / QUERY_PROTOCOL_TOPIC
+
+QUERY_PROTOCOL_TOPIC
+
+val QUERY_PROTOCOL_TOPIC : String
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.network/-network-map-service/-query-identity-request/-init-.html b/docs/build/html/api/net.corda.node.services.network/-network-map-service/-query-identity-request/-init-.html
new file mode 100644
index 0000000000..454fce6e94
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.network/-network-map-service/-query-identity-request/-init-.html
@@ -0,0 +1,14 @@
+
+
+NetworkMapService.QueryIdentityRequest. -
+
+
+
+net.corda.node.services.network / NetworkMapService / QueryIdentityRequest / <init>
+
+<init>
+QueryIdentityRequest ( identity : Party , replyTo : SingleMessageRecipient , sessionID : Long )
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.network/-network-map-service/-query-identity-request/identity.html b/docs/build/html/api/net.corda.node.services.network/-network-map-service/-query-identity-request/identity.html
new file mode 100644
index 0000000000..fc212e7852
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.network/-network-map-service/-query-identity-request/identity.html
@@ -0,0 +1,15 @@
+
+
+NetworkMapService.QueryIdentityRequest.identity -
+
+
+
+net.corda.node.services.network / NetworkMapService / QueryIdentityRequest / identity
+
+identity
+
+val identity : Party
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.network/-network-map-service/-query-identity-request/index.html b/docs/build/html/api/net.corda.node.services.network/-network-map-service/-query-identity-request/index.html
new file mode 100644
index 0000000000..a28641ea6e
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.network/-network-map-service/-query-identity-request/index.html
@@ -0,0 +1,48 @@
+
+
+NetworkMapService.QueryIdentityRequest -
+
+
+
+net.corda.node.services.network / NetworkMapService / QueryIdentityRequest
+
+QueryIdentityRequest
+class QueryIdentityRequest : ServiceRequestMessage
+
+
+Constructors
+
+Properties
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.network/-network-map-service/-query-identity-request/reply-to.html b/docs/build/html/api/net.corda.node.services.network/-network-map-service/-query-identity-request/reply-to.html
new file mode 100644
index 0000000000..3d888b91d9
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.network/-network-map-service/-query-identity-request/reply-to.html
@@ -0,0 +1,16 @@
+
+
+NetworkMapService.QueryIdentityRequest.replyTo -
+
+
+
+net.corda.node.services.network / NetworkMapService / QueryIdentityRequest / replyTo
+
+replyTo
+
+val replyTo : SingleMessageRecipient
+Overrides ServiceRequestMessage.replyTo
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.network/-network-map-service/-query-identity-request/session-i-d.html b/docs/build/html/api/net.corda.node.services.network/-network-map-service/-query-identity-request/session-i-d.html
new file mode 100644
index 0000000000..b1a04a8f79
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.network/-network-map-service/-query-identity-request/session-i-d.html
@@ -0,0 +1,16 @@
+
+
+NetworkMapService.QueryIdentityRequest.sessionID -
+
+
+
+net.corda.node.services.network / NetworkMapService / QueryIdentityRequest / sessionID
+
+sessionID
+
+val sessionID : Long
+Overrides ServiceRequestMessage.sessionID
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.network/-network-map-service/-query-identity-response/-init-.html b/docs/build/html/api/net.corda.node.services.network/-network-map-service/-query-identity-response/-init-.html
new file mode 100644
index 0000000000..9ea1c54bb8
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.network/-network-map-service/-query-identity-response/-init-.html
@@ -0,0 +1,14 @@
+
+
+NetworkMapService.QueryIdentityResponse. -
+
+
+
+net.corda.node.services.network / NetworkMapService / QueryIdentityResponse / <init>
+
+<init>
+QueryIdentityResponse ( node : NodeInfo ? )
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.network/-network-map-service/-query-identity-response/index.html b/docs/build/html/api/net.corda.node.services.network/-network-map-service/-query-identity-response/index.html
new file mode 100644
index 0000000000..72eaf7efac
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.network/-network-map-service/-query-identity-response/index.html
@@ -0,0 +1,36 @@
+
+
+NetworkMapService.QueryIdentityResponse -
+
+
+
+net.corda.node.services.network / NetworkMapService / QueryIdentityResponse
+
+QueryIdentityResponse
+data class QueryIdentityResponse
+
+
+Constructors
+
+Properties
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.network/-network-map-service/-query-identity-response/node.html b/docs/build/html/api/net.corda.node.services.network/-network-map-service/-query-identity-response/node.html
new file mode 100644
index 0000000000..0a1a5672cd
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.network/-network-map-service/-query-identity-response/node.html
@@ -0,0 +1,15 @@
+
+
+NetworkMapService.QueryIdentityResponse.node -
+
+
+
+net.corda.node.services.network / NetworkMapService / QueryIdentityResponse / node
+
+node
+
+val node : NodeInfo ?
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.network/-network-map-service/-r-e-g-i-s-t-e-r_-p-r-o-t-o-c-o-l_-t-o-p-i-c.html b/docs/build/html/api/net.corda.node.services.network/-network-map-service/-r-e-g-i-s-t-e-r_-p-r-o-t-o-c-o-l_-t-o-p-i-c.html
new file mode 100644
index 0000000000..c1ddcf6242
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.network/-network-map-service/-r-e-g-i-s-t-e-r_-p-r-o-t-o-c-o-l_-t-o-p-i-c.html
@@ -0,0 +1,15 @@
+
+
+NetworkMapService.REGISTER_PROTOCOL_TOPIC -
+
+
+
+net.corda.node.services.network / NetworkMapService / REGISTER_PROTOCOL_TOPIC
+
+REGISTER_PROTOCOL_TOPIC
+
+val REGISTER_PROTOCOL_TOPIC : String
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.network/-network-map-service/-registration-request/-init-.html b/docs/build/html/api/net.corda.node.services.network/-network-map-service/-registration-request/-init-.html
new file mode 100644
index 0000000000..44177328f9
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.network/-network-map-service/-registration-request/-init-.html
@@ -0,0 +1,14 @@
+
+
+NetworkMapService.RegistrationRequest. -
+
+
+
+net.corda.node.services.network / NetworkMapService / RegistrationRequest / <init>
+
+<init>
+RegistrationRequest ( wireReg : WireNodeRegistration , replyTo : SingleMessageRecipient , sessionID : Long = random63BitValue())
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.network/-network-map-service/-registration-request/index.html b/docs/build/html/api/net.corda.node.services.network/-network-map-service/-registration-request/index.html
new file mode 100644
index 0000000000..d437dfc808
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.network/-network-map-service/-registration-request/index.html
@@ -0,0 +1,48 @@
+
+
+NetworkMapService.RegistrationRequest -
+
+
+
+net.corda.node.services.network / NetworkMapService / RegistrationRequest
+
+RegistrationRequest
+class RegistrationRequest : ServiceRequestMessage
+
+
+Constructors
+
+Properties
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.network/-network-map-service/-registration-request/reply-to.html b/docs/build/html/api/net.corda.node.services.network/-network-map-service/-registration-request/reply-to.html
new file mode 100644
index 0000000000..150c7b06bb
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.network/-network-map-service/-registration-request/reply-to.html
@@ -0,0 +1,16 @@
+
+
+NetworkMapService.RegistrationRequest.replyTo -
+
+
+
+net.corda.node.services.network / NetworkMapService / RegistrationRequest / replyTo
+
+replyTo
+
+val replyTo : SingleMessageRecipient
+Overrides ServiceRequestMessage.replyTo
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.network/-network-map-service/-registration-request/session-i-d.html b/docs/build/html/api/net.corda.node.services.network/-network-map-service/-registration-request/session-i-d.html
new file mode 100644
index 0000000000..e7b704ad4a
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.network/-network-map-service/-registration-request/session-i-d.html
@@ -0,0 +1,16 @@
+
+
+NetworkMapService.RegistrationRequest.sessionID -
+
+
+
+net.corda.node.services.network / NetworkMapService / RegistrationRequest / sessionID
+
+sessionID
+
+val sessionID : Long
+Overrides ServiceRequestMessage.sessionID
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.network/-network-map-service/-registration-request/wire-reg.html b/docs/build/html/api/net.corda.node.services.network/-network-map-service/-registration-request/wire-reg.html
new file mode 100644
index 0000000000..7524f6210e
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.network/-network-map-service/-registration-request/wire-reg.html
@@ -0,0 +1,15 @@
+
+
+NetworkMapService.RegistrationRequest.wireReg -
+
+
+
+net.corda.node.services.network / NetworkMapService / RegistrationRequest / wireReg
+
+wireReg
+
+val wireReg : WireNodeRegistration
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.network/-network-map-service/-registration-response/-init-.html b/docs/build/html/api/net.corda.node.services.network/-network-map-service/-registration-response/-init-.html
new file mode 100644
index 0000000000..a9f455fdfd
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.network/-network-map-service/-registration-response/-init-.html
@@ -0,0 +1,14 @@
+
+
+NetworkMapService.RegistrationResponse. -
+
+
+
+net.corda.node.services.network / NetworkMapService / RegistrationResponse / <init>
+
+<init>
+RegistrationResponse ( success : Boolean )
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.network/-network-map-service/-registration-response/index.html b/docs/build/html/api/net.corda.node.services.network/-network-map-service/-registration-response/index.html
new file mode 100644
index 0000000000..8badf87085
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.network/-network-map-service/-registration-response/index.html
@@ -0,0 +1,36 @@
+
+
+NetworkMapService.RegistrationResponse -
+
+
+
+net.corda.node.services.network / NetworkMapService / RegistrationResponse
+
+RegistrationResponse
+data class RegistrationResponse
+
+
+Constructors
+
+
+
+
+<init>
+
+RegistrationResponse ( success : Boolean )
+
+
+
+Properties
+
+
+
+
+success
+
+val success : Boolean
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.network/-network-map-service/-registration-response/success.html b/docs/build/html/api/net.corda.node.services.network/-network-map-service/-registration-response/success.html
new file mode 100644
index 0000000000..1622ed9225
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.network/-network-map-service/-registration-response/success.html
@@ -0,0 +1,15 @@
+
+
+NetworkMapService.RegistrationResponse.success -
+
+
+
+net.corda.node.services.network / NetworkMapService / RegistrationResponse / success
+
+success
+
+val success : Boolean
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.network/-network-map-service/-s-u-b-s-c-r-i-p-t-i-o-n_-p-r-o-t-o-c-o-l_-t-o-p-i-c.html b/docs/build/html/api/net.corda.node.services.network/-network-map-service/-s-u-b-s-c-r-i-p-t-i-o-n_-p-r-o-t-o-c-o-l_-t-o-p-i-c.html
new file mode 100644
index 0000000000..3ad00bfbe3
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.network/-network-map-service/-s-u-b-s-c-r-i-p-t-i-o-n_-p-r-o-t-o-c-o-l_-t-o-p-i-c.html
@@ -0,0 +1,15 @@
+
+
+NetworkMapService.SUBSCRIPTION_PROTOCOL_TOPIC -
+
+
+
+net.corda.node.services.network / NetworkMapService / SUBSCRIPTION_PROTOCOL_TOPIC
+
+SUBSCRIPTION_PROTOCOL_TOPIC
+
+val SUBSCRIPTION_PROTOCOL_TOPIC : String
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.network/-network-map-service/-subscribe-request/-init-.html b/docs/build/html/api/net.corda.node.services.network/-network-map-service/-subscribe-request/-init-.html
new file mode 100644
index 0000000000..00a6df640c
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.network/-network-map-service/-subscribe-request/-init-.html
@@ -0,0 +1,14 @@
+
+
+NetworkMapService.SubscribeRequest. -
+
+
+
+net.corda.node.services.network / NetworkMapService / SubscribeRequest / <init>
+
+<init>
+SubscribeRequest ( subscribe : Boolean , replyTo : SingleMessageRecipient , sessionID : Long = random63BitValue())
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.network/-network-map-service/-subscribe-request/index.html b/docs/build/html/api/net.corda.node.services.network/-network-map-service/-subscribe-request/index.html
new file mode 100644
index 0000000000..8171c424f8
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.network/-network-map-service/-subscribe-request/index.html
@@ -0,0 +1,48 @@
+
+
+NetworkMapService.SubscribeRequest -
+
+
+
+net.corda.node.services.network / NetworkMapService / SubscribeRequest
+
+SubscribeRequest
+class SubscribeRequest : ServiceRequestMessage
+
+
+Constructors
+
+Properties
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.network/-network-map-service/-subscribe-request/reply-to.html b/docs/build/html/api/net.corda.node.services.network/-network-map-service/-subscribe-request/reply-to.html
new file mode 100644
index 0000000000..e953da2f04
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.network/-network-map-service/-subscribe-request/reply-to.html
@@ -0,0 +1,16 @@
+
+
+NetworkMapService.SubscribeRequest.replyTo -
+
+
+
+net.corda.node.services.network / NetworkMapService / SubscribeRequest / replyTo
+
+replyTo
+
+val replyTo : SingleMessageRecipient
+Overrides ServiceRequestMessage.replyTo
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.network/-network-map-service/-subscribe-request/session-i-d.html b/docs/build/html/api/net.corda.node.services.network/-network-map-service/-subscribe-request/session-i-d.html
new file mode 100644
index 0000000000..3c51680370
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.network/-network-map-service/-subscribe-request/session-i-d.html
@@ -0,0 +1,16 @@
+
+
+NetworkMapService.SubscribeRequest.sessionID -
+
+
+
+net.corda.node.services.network / NetworkMapService / SubscribeRequest / sessionID
+
+sessionID
+
+val sessionID : Long
+Overrides ServiceRequestMessage.sessionID
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.network/-network-map-service/-subscribe-request/subscribe.html b/docs/build/html/api/net.corda.node.services.network/-network-map-service/-subscribe-request/subscribe.html
new file mode 100644
index 0000000000..960804dfb6
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.network/-network-map-service/-subscribe-request/subscribe.html
@@ -0,0 +1,15 @@
+
+
+NetworkMapService.SubscribeRequest.subscribe -
+
+
+
+net.corda.node.services.network / NetworkMapService / SubscribeRequest / subscribe
+
+subscribe
+
+val subscribe : Boolean
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.network/-network-map-service/-subscribe-response/-init-.html b/docs/build/html/api/net.corda.node.services.network/-network-map-service/-subscribe-response/-init-.html
new file mode 100644
index 0000000000..4c9b92eb44
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.network/-network-map-service/-subscribe-response/-init-.html
@@ -0,0 +1,14 @@
+
+
+NetworkMapService.SubscribeResponse. -
+
+
+
+net.corda.node.services.network / NetworkMapService / SubscribeResponse / <init>
+
+<init>
+SubscribeResponse ( confirmed : Boolean )
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.network/-network-map-service/-subscribe-response/confirmed.html b/docs/build/html/api/net.corda.node.services.network/-network-map-service/-subscribe-response/confirmed.html
new file mode 100644
index 0000000000..a4c35368c6
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.network/-network-map-service/-subscribe-response/confirmed.html
@@ -0,0 +1,15 @@
+
+
+NetworkMapService.SubscribeResponse.confirmed -
+
+
+
+net.corda.node.services.network / NetworkMapService / SubscribeResponse / confirmed
+
+confirmed
+
+val confirmed : Boolean
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.network/-network-map-service/-subscribe-response/index.html b/docs/build/html/api/net.corda.node.services.network/-network-map-service/-subscribe-response/index.html
new file mode 100644
index 0000000000..f5f322e431
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.network/-network-map-service/-subscribe-response/index.html
@@ -0,0 +1,36 @@
+
+
+NetworkMapService.SubscribeResponse -
+
+
+
+net.corda.node.services.network / NetworkMapService / SubscribeResponse
+
+SubscribeResponse
+data class SubscribeResponse
+
+
+Constructors
+
+
+
+
+<init>
+
+SubscribeResponse ( confirmed : Boolean )
+
+
+
+Properties
+
+
+
+
+confirmed
+
+val confirmed : Boolean
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.network/-network-map-service/-update-acknowledge/-init-.html b/docs/build/html/api/net.corda.node.services.network/-network-map-service/-update-acknowledge/-init-.html
new file mode 100644
index 0000000000..cdbe5c1543
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.network/-network-map-service/-update-acknowledge/-init-.html
@@ -0,0 +1,14 @@
+
+
+NetworkMapService.UpdateAcknowledge. -
+
+
+
+net.corda.node.services.network / NetworkMapService / UpdateAcknowledge / <init>
+
+<init>
+UpdateAcknowledge ( mapVersion : Int , replyTo : MessageRecipients )
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.network/-network-map-service/-update-acknowledge/index.html b/docs/build/html/api/net.corda.node.services.network/-network-map-service/-update-acknowledge/index.html
new file mode 100644
index 0000000000..c5237077f0
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.network/-network-map-service/-update-acknowledge/index.html
@@ -0,0 +1,42 @@
+
+
+NetworkMapService.UpdateAcknowledge -
+
+
+
+net.corda.node.services.network / NetworkMapService / UpdateAcknowledge
+
+UpdateAcknowledge
+data class UpdateAcknowledge
+
+
+Constructors
+
+Properties
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.network/-network-map-service/-update-acknowledge/map-version.html b/docs/build/html/api/net.corda.node.services.network/-network-map-service/-update-acknowledge/map-version.html
new file mode 100644
index 0000000000..a6d968b6ff
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.network/-network-map-service/-update-acknowledge/map-version.html
@@ -0,0 +1,15 @@
+
+
+NetworkMapService.UpdateAcknowledge.mapVersion -
+
+
+
+net.corda.node.services.network / NetworkMapService / UpdateAcknowledge / mapVersion
+
+mapVersion
+
+val mapVersion : Int
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.network/-network-map-service/-update-acknowledge/reply-to.html b/docs/build/html/api/net.corda.node.services.network/-network-map-service/-update-acknowledge/reply-to.html
new file mode 100644
index 0000000000..a2bd903913
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.network/-network-map-service/-update-acknowledge/reply-to.html
@@ -0,0 +1,15 @@
+
+
+NetworkMapService.UpdateAcknowledge.replyTo -
+
+
+
+net.corda.node.services.network / NetworkMapService / UpdateAcknowledge / replyTo
+
+replyTo
+
+val replyTo : MessageRecipients
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.network/-network-map-service/-update/-init-.html b/docs/build/html/api/net.corda.node.services.network/-network-map-service/-update/-init-.html
new file mode 100644
index 0000000000..7834cbd595
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.network/-network-map-service/-update/-init-.html
@@ -0,0 +1,14 @@
+
+
+NetworkMapService.Update. -
+
+
+
+net.corda.node.services.network / NetworkMapService / Update / <init>
+
+<init>
+Update ( wireReg : WireNodeRegistration , mapVersion : Int , replyTo : MessageRecipients )
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.network/-network-map-service/-update/index.html b/docs/build/html/api/net.corda.node.services.network/-network-map-service/-update/index.html
new file mode 100644
index 0000000000..f017c7cbd0
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.network/-network-map-service/-update/index.html
@@ -0,0 +1,48 @@
+
+
+NetworkMapService.Update -
+
+
+
+net.corda.node.services.network / NetworkMapService / Update
+
+Update
+data class Update
+
+
+Constructors
+
+Properties
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.network/-network-map-service/-update/map-version.html b/docs/build/html/api/net.corda.node.services.network/-network-map-service/-update/map-version.html
new file mode 100644
index 0000000000..6baded31c3
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.network/-network-map-service/-update/map-version.html
@@ -0,0 +1,15 @@
+
+
+NetworkMapService.Update.mapVersion -
+
+
+
+net.corda.node.services.network / NetworkMapService / Update / mapVersion
+
+mapVersion
+
+val mapVersion : Int
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.network/-network-map-service/-update/reply-to.html b/docs/build/html/api/net.corda.node.services.network/-network-map-service/-update/reply-to.html
new file mode 100644
index 0000000000..d9774ebf42
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.network/-network-map-service/-update/reply-to.html
@@ -0,0 +1,15 @@
+
+
+NetworkMapService.Update.replyTo -
+
+
+
+net.corda.node.services.network / NetworkMapService / Update / replyTo
+
+replyTo
+
+val replyTo : MessageRecipients
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.network/-network-map-service/-update/wire-reg.html b/docs/build/html/api/net.corda.node.services.network/-network-map-service/-update/wire-reg.html
new file mode 100644
index 0000000000..19bc85cf66
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.network/-network-map-service/-update/wire-reg.html
@@ -0,0 +1,15 @@
+
+
+NetworkMapService.Update.wireReg -
+
+
+
+net.corda.node.services.network / NetworkMapService / Update / wireReg
+
+wireReg
+
+val wireReg : WireNodeRegistration
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.network/-network-map-service/index.html b/docs/build/html/api/net.corda.node.services.network/-network-map-service/index.html
new file mode 100644
index 0000000000..f1e05278ef
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.network/-network-map-service/index.html
@@ -0,0 +1,165 @@
+
+
+NetworkMapService -
+
+
+
+net.corda.node.services.network / NetworkMapService
+
+NetworkMapService
+interface NetworkMapService
+A network map contains lists of nodes on the network along with information about their identity keys, services
+they provide and host names or IP addresses where they can be connected to. This information is cached locally within
+nodes, by the NetworkMapCache . Currently very basic consensus controls are applied, using signed changes which
+replace each other based on a serial number present in the change.
+
+
+Types
+
+Properties
+
+Companion Object Properties
+
+Inheritors
+
+
+
+
+AbstractNetworkMapService
+
+abstract class AbstractNetworkMapService : NetworkMapService , AbstractNodeService
Abstracted out core functionality as the basis for a persistent implementation, as well as existing in-memory implementation.
+
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.network/-network-map-service/logger.html b/docs/build/html/api/net.corda.node.services.network/-network-map-service/logger.html
new file mode 100644
index 0000000000..bd5972945d
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.network/-network-map-service/logger.html
@@ -0,0 +1,15 @@
+
+
+NetworkMapService.logger -
+
+
+
+net.corda.node.services.network / NetworkMapService / logger
+
+logger
+
+val logger : <ERROR CLASS>
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.network/-network-map-service/nodes.html b/docs/build/html/api/net.corda.node.services.network/-network-map-service/nodes.html
new file mode 100644
index 0000000000..ae67ae7393
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.network/-network-map-service/nodes.html
@@ -0,0 +1,15 @@
+
+
+NetworkMapService.nodes -
+
+
+
+net.corda.node.services.network / NetworkMapService / nodes
+
+nodes
+
+abstract val nodes : List < NodeInfo >
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.network/-network-map-service/type.html b/docs/build/html/api/net.corda.node.services.network/-network-map-service/type.html
new file mode 100644
index 0000000000..5cc09524c7
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.network/-network-map-service/type.html
@@ -0,0 +1,15 @@
+
+
+NetworkMapService.type -
+
+
+
+net.corda.node.services.network / NetworkMapService / type
+
+type
+
+val type : ServiceType
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.network/-node-map-error/-invalid-signature/-init-.html b/docs/build/html/api/net.corda.node.services.network/-node-map-error/-invalid-signature/-init-.html
new file mode 100644
index 0000000000..733038c358
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.network/-node-map-error/-invalid-signature/-init-.html
@@ -0,0 +1,15 @@
+
+
+NodeMapError.InvalidSignature. -
+
+
+
+net.corda.node.services.network / NodeMapError / InvalidSignature / <init>
+
+<init>
+InvalidSignature ( )
+Thrown if the signature on the node info does not match the public key for the identity
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.network/-node-map-error/-invalid-signature/index.html b/docs/build/html/api/net.corda.node.services.network/-node-map-error/-invalid-signature/index.html
new file mode 100644
index 0000000000..ec149a7f19
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.network/-node-map-error/-invalid-signature/index.html
@@ -0,0 +1,27 @@
+
+
+NodeMapError.InvalidSignature -
+
+
+
+net.corda.node.services.network / NodeMapError / InvalidSignature
+
+InvalidSignature
+class InvalidSignature : NodeMapError
+Thrown if the signature on the node info does not match the public key for the identity
+
+
+Constructors
+
+
+
+
+<init>
+
+InvalidSignature ( )
Thrown if the signature on the node info does not match the public key for the identity
+
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.network/-node-map-error/-invalid-subscriber/-init-.html b/docs/build/html/api/net.corda.node.services.network/-node-map-error/-invalid-subscriber/-init-.html
new file mode 100644
index 0000000000..b8d63ed1c7
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.network/-node-map-error/-invalid-subscriber/-init-.html
@@ -0,0 +1,15 @@
+
+
+NodeMapError.InvalidSubscriber. -
+
+
+
+net.corda.node.services.network / NodeMapError / InvalidSubscriber / <init>
+
+<init>
+InvalidSubscriber ( )
+Thrown if the replyTo of a subscription change message is not a single message recipient
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.network/-node-map-error/-invalid-subscriber/index.html b/docs/build/html/api/net.corda.node.services.network/-node-map-error/-invalid-subscriber/index.html
new file mode 100644
index 0000000000..e15e18bcda
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.network/-node-map-error/-invalid-subscriber/index.html
@@ -0,0 +1,27 @@
+
+
+NodeMapError.InvalidSubscriber -
+
+
+
+net.corda.node.services.network / NodeMapError / InvalidSubscriber
+
+InvalidSubscriber
+class InvalidSubscriber : NodeMapError
+Thrown if the replyTo of a subscription change message is not a single message recipient
+
+
+Constructors
+
+
+
+
+<init>
+
+InvalidSubscriber ( )
Thrown if the replyTo of a subscription change message is not a single message recipient
+
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.network/-node-map-error/-unknown-change-type/-init-.html b/docs/build/html/api/net.corda.node.services.network/-node-map-error/-unknown-change-type/-init-.html
new file mode 100644
index 0000000000..efc6831306
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.network/-node-map-error/-unknown-change-type/-init-.html
@@ -0,0 +1,15 @@
+
+
+NodeMapError.UnknownChangeType. -
+
+
+
+net.corda.node.services.network / NodeMapError / UnknownChangeType / <init>
+
+<init>
+UnknownChangeType ( )
+Thrown if a change arrives which is of an unknown type
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.network/-node-map-error/-unknown-change-type/index.html b/docs/build/html/api/net.corda.node.services.network/-node-map-error/-unknown-change-type/index.html
new file mode 100644
index 0000000000..6e94c937cf
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.network/-node-map-error/-unknown-change-type/index.html
@@ -0,0 +1,27 @@
+
+
+NodeMapError.UnknownChangeType -
+
+
+
+net.corda.node.services.network / NodeMapError / UnknownChangeType
+
+UnknownChangeType
+class UnknownChangeType : NodeMapError
+Thrown if a change arrives which is of an unknown type
+
+
+Constructors
+
+
+
+
+<init>
+
+UnknownChangeType ( )
Thrown if a change arrives which is of an unknown type
+
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.network/-node-map-error/index.html b/docs/build/html/api/net.corda.node.services.network/-node-map-error/index.html
new file mode 100644
index 0000000000..2e83c82ebe
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.network/-node-map-error/index.html
@@ -0,0 +1,77 @@
+
+
+NodeMapError -
+
+
+
+net.corda.node.services.network / NodeMapError
+
+NodeMapError
+sealed class NodeMapError : Exception
+
+
+Exceptions
+
+
+
+
+InvalidSignature
+
+class InvalidSignature : NodeMapError
Thrown if the signature on the node info does not match the public key for the identity
+
+
+
+
+InvalidSubscriber
+
+class InvalidSubscriber : NodeMapError
Thrown if the replyTo of a subscription change message is not a single message recipient
+
+
+
+
+UnknownChangeType
+
+class UnknownChangeType : NodeMapError
Thrown if a change arrives which is of an unknown type
+
+
+
+
+Extension Properties
+
+
+
+
+rootCause
+
+val Throwable . rootCause : Throwable
+
+
+
+Inheritors
+
+
+
+
+InvalidSignature
+
+class InvalidSignature : NodeMapError
Thrown if the signature on the node info does not match the public key for the identity
+
+
+
+
+InvalidSubscriber
+
+class InvalidSubscriber : NodeMapError
Thrown if the replyTo of a subscription change message is not a single message recipient
+
+
+
+
+UnknownChangeType
+
+class UnknownChangeType : NodeMapError
Thrown if a change arrives which is of an unknown type
+
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.network/-node-registration-info/-init-.html b/docs/build/html/api/net.corda.node.services.network/-node-registration-info/-init-.html
new file mode 100644
index 0000000000..1aeed0e213
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.network/-node-registration-info/-init-.html
@@ -0,0 +1,14 @@
+
+
+NodeRegistrationInfo. -
+
+
+
+net.corda.node.services.network / NodeRegistrationInfo / <init>
+
+<init>
+NodeRegistrationInfo ( reg : NodeRegistration , mapVersion : Int )
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.network/-node-registration-info/index.html b/docs/build/html/api/net.corda.node.services.network/-node-registration-info/index.html
new file mode 100644
index 0000000000..c229cb8361
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.network/-node-registration-info/index.html
@@ -0,0 +1,42 @@
+
+
+NodeRegistrationInfo -
+
+
+
+net.corda.node.services.network / NodeRegistrationInfo
+
+NodeRegistrationInfo
+data class NodeRegistrationInfo
+
+
+Constructors
+
+Properties
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.network/-node-registration-info/map-version.html b/docs/build/html/api/net.corda.node.services.network/-node-registration-info/map-version.html
new file mode 100644
index 0000000000..b9ea8a8ee5
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.network/-node-registration-info/map-version.html
@@ -0,0 +1,15 @@
+
+
+NodeRegistrationInfo.mapVersion -
+
+
+
+net.corda.node.services.network / NodeRegistrationInfo / mapVersion
+
+mapVersion
+
+val mapVersion : Int
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.network/-node-registration-info/reg.html b/docs/build/html/api/net.corda.node.services.network/-node-registration-info/reg.html
new file mode 100644
index 0000000000..f5ac4b3c9b
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.network/-node-registration-info/reg.html
@@ -0,0 +1,15 @@
+
+
+NodeRegistrationInfo.reg -
+
+
+
+net.corda.node.services.network / NodeRegistrationInfo / reg
+
+reg
+
+val reg : NodeRegistration
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.network/-node-registration/-init-.html b/docs/build/html/api/net.corda.node.services.network/-node-registration/-init-.html
new file mode 100644
index 0000000000..2c50ea4bfe
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.network/-node-registration/-init-.html
@@ -0,0 +1,30 @@
+
+
+NodeRegistration. -
+
+
+
+net.corda.node.services.network / NodeRegistration / <init>
+
+<init>
+NodeRegistration ( node : NodeInfo , serial : Long , type : AddOrRemove , expires : Instant )
+A node registration state in the network map.
+Parameters
+
+node
- the node being added/removed.
+
+
+serial
- an increasing value which represents the version of this registration. Not expected to be sequential,
+but later versions of the registration must have higher values (or they will be ignored by the map service).
+Similar to the serial number on DNS records.
+
+
+type
- add if the node is being added to the map, or remove if a previous node is being removed (indicated as
+going offline).
+
+
+expires
- when the registration expires. Only used when adding a node to a map.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.network/-node-registration/expires.html b/docs/build/html/api/net.corda.node.services.network/-node-registration/expires.html
new file mode 100644
index 0000000000..13effd2998
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.network/-node-registration/expires.html
@@ -0,0 +1,15 @@
+
+
+NodeRegistration.expires -
+
+
+
+net.corda.node.services.network / NodeRegistration / expires
+
+expires
+
+var expires : Instant
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.network/-node-registration/index.html b/docs/build/html/api/net.corda.node.services.network/-node-registration/index.html
new file mode 100644
index 0000000000..f830dc18a8
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.network/-node-registration/index.html
@@ -0,0 +1,89 @@
+
+
+NodeRegistration -
+
+
+
+net.corda.node.services.network / NodeRegistration
+
+NodeRegistration
+class NodeRegistration
+A node registration state in the network map.
+Parameters
+
+node
- the node being added/removed.
+
+
+serial
- an increasing value which represents the version of this registration. Not expected to be sequential,
+but later versions of the registration must have higher values (or they will be ignored by the map service).
+Similar to the serial number on DNS records.
+
+
+type
- add if the node is being added to the map, or remove if a previous node is being removed (indicated as
+going offline).
+
+
+expires
- when the registration expires. Only used when adding a node to a map.
+
+
+Constructors
+
+Properties
+
+Functions
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.network/-node-registration/node.html b/docs/build/html/api/net.corda.node.services.network/-node-registration/node.html
new file mode 100644
index 0000000000..1f2f8f9dd9
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.network/-node-registration/node.html
@@ -0,0 +1,15 @@
+
+
+NodeRegistration.node -
+
+
+
+net.corda.node.services.network / NodeRegistration / node
+
+node
+
+val node : NodeInfo
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.network/-node-registration/serial.html b/docs/build/html/api/net.corda.node.services.network/-node-registration/serial.html
new file mode 100644
index 0000000000..742242077a
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.network/-node-registration/serial.html
@@ -0,0 +1,15 @@
+
+
+NodeRegistration.serial -
+
+
+
+net.corda.node.services.network / NodeRegistration / serial
+
+serial
+
+val serial : Long
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.network/-node-registration/to-string.html b/docs/build/html/api/net.corda.node.services.network/-node-registration/to-string.html
new file mode 100644
index 0000000000..266f5b9c4a
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.network/-node-registration/to-string.html
@@ -0,0 +1,15 @@
+
+
+NodeRegistration.toString -
+
+
+
+net.corda.node.services.network / NodeRegistration / toString
+
+toString
+
+fun toString ( ) : String
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.network/-node-registration/to-wire.html b/docs/build/html/api/net.corda.node.services.network/-node-registration/to-wire.html
new file mode 100644
index 0000000000..3d06fd30e0
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.network/-node-registration/to-wire.html
@@ -0,0 +1,16 @@
+
+
+NodeRegistration.toWire -
+
+
+
+net.corda.node.services.network / NodeRegistration / toWire
+
+toWire
+
+fun toWire ( privateKey : PrivateKey ) : WireNodeRegistration
+Build a node registration in wire format.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.network/-node-registration/type.html b/docs/build/html/api/net.corda.node.services.network/-node-registration/type.html
new file mode 100644
index 0000000000..68452ff666
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.network/-node-registration/type.html
@@ -0,0 +1,15 @@
+
+
+NodeRegistration.type -
+
+
+
+net.corda.node.services.network / NodeRegistration / type
+
+type
+
+val type : AddOrRemove
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.network/-persistent-network-map-service/-init-.html b/docs/build/html/api/net.corda.node.services.network/-persistent-network-map-service/-init-.html
new file mode 100644
index 0000000000..028ad90dca
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.network/-persistent-network-map-service/-init-.html
@@ -0,0 +1,20 @@
+
+
+PersistentNetworkMapService. -
+
+
+
+net.corda.node.services.network / PersistentNetworkMapService / <init>
+
+<init>
+PersistentNetworkMapService ( services : ServiceHubInternal )
+A network map service backed by a database to survive restarts of the node hosting it.
+Majority of the logic is inherited from AbstractNetworkMapService .
+This class needs database transactions to be in-flight during method calls and init, otherwise it will throw
+exceptions.
+
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.network/-persistent-network-map-service/index.html b/docs/build/html/api/net.corda.node.services.network/-persistent-network-map-service/index.html
new file mode 100644
index 0000000000..bc78844eee
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.network/-persistent-network-map-service/index.html
@@ -0,0 +1,146 @@
+
+
+PersistentNetworkMapService -
+
+
+
+net.corda.node.services.network / PersistentNetworkMapService
+
+PersistentNetworkMapService
+class PersistentNetworkMapService : AbstractNetworkMapService
+A network map service backed by a database to survive restarts of the node hosting it.
+Majority of the logic is inherited from AbstractNetworkMapService .
+This class needs database transactions to be in-flight during method calls and init, otherwise it will throw
+exceptions.
+
+
+
+
+Constructors
+
+
+
+
+<init>
+
+PersistentNetworkMapService ( services : ServiceHubInternal )
A network map service backed by a database to survive restarts of the node hosting it.
+
+
+
+
+Properties
+
+Inherited Properties
+
+
+
+
+_mapVersion
+
+val _mapVersion : AtomicInteger
+
+
+
+mapVersion
+
+val mapVersion : Int
+
+
+
+maxSizeRegistrationRequestBytes
+
+val maxSizeRegistrationRequestBytes : Int
Maximum credible size for a registration request. Generally requests are around 500-600 bytes, so this gives a
+10 times overhead.
+
+
+
+
+maxUnacknowledgedUpdates
+
+val maxUnacknowledgedUpdates : Int
Maximum number of unacknowledged updates to send to a node before automatically unregistering them for updates
+
+
+
+
+nodes
+
+open val nodes : List < NodeInfo >
+
+
+
+Inherited Functions
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.network/-persistent-network-map-service/registered-nodes.html b/docs/build/html/api/net.corda.node.services.network/-persistent-network-map-service/registered-nodes.html
new file mode 100644
index 0000000000..1f4598faa9
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.network/-persistent-network-map-service/registered-nodes.html
@@ -0,0 +1,16 @@
+
+
+PersistentNetworkMapService.registeredNodes -
+
+
+
+net.corda.node.services.network / PersistentNetworkMapService / registeredNodes
+
+registeredNodes
+
+protected val registeredNodes : MutableMap < Party , NodeRegistrationInfo >
+Overrides AbstractNetworkMapService.registeredNodes
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.network/-persistent-network-map-service/subscribers.html b/docs/build/html/api/net.corda.node.services.network/-persistent-network-map-service/subscribers.html
new file mode 100644
index 0000000000..dea0dd9ccc
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.network/-persistent-network-map-service/subscribers.html
@@ -0,0 +1,16 @@
+
+
+PersistentNetworkMapService.subscribers -
+
+
+
+net.corda.node.services.network / PersistentNetworkMapService / subscribers
+
+subscribers
+
+protected val subscribers : ThreadBox < JDBCHashMap < SingleMessageRecipient , LastAcknowledgeInfo > >
+Overrides AbstractNetworkMapService.subscribers
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.network/-wire-node-registration/-init-.html b/docs/build/html/api/net.corda.node.services.network/-wire-node-registration/-init-.html
new file mode 100644
index 0000000000..b45cdf624e
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.network/-wire-node-registration/-init-.html
@@ -0,0 +1,15 @@
+
+
+WireNodeRegistration. -
+
+
+
+net.corda.node.services.network / WireNodeRegistration / <init>
+
+<init>
+WireNodeRegistration ( raw : SerializedBytes < NodeRegistration > , sig : WithKey )
+A node registration and its signature as a pair.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.network/-wire-node-registration/index.html b/docs/build/html/api/net.corda.node.services.network/-wire-node-registration/index.html
new file mode 100644
index 0000000000..9d7525f068
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.network/-wire-node-registration/index.html
@@ -0,0 +1,69 @@
+
+
+WireNodeRegistration -
+
+
+
+net.corda.node.services.network / WireNodeRegistration
+
+WireNodeRegistration
+class WireNodeRegistration : SignedData < NodeRegistration >
+A node registration and its signature as a pair.
+
+
+Constructors
+
+Inherited Properties
+
+Functions
+
+
+
+
+verifyData
+
+fun verifyData ( data : NodeRegistration ) : Unit
Verify the wrapped data after the signature has been verified and the data deserialised. Provided as an extension
+point for subclasses.
+
+
+
+
+Inherited Functions
+
+
+
+
+verified
+
+fun verified ( ) : T
Return the deserialized data if the signature can be verified.
+
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.network/-wire-node-registration/verify-data.html b/docs/build/html/api/net.corda.node.services.network/-wire-node-registration/verify-data.html
new file mode 100644
index 0000000000..df4d84aeb2
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.network/-wire-node-registration/verify-data.html
@@ -0,0 +1,20 @@
+
+
+WireNodeRegistration.verifyData -
+
+
+
+net.corda.node.services.network / WireNodeRegistration / verifyData
+
+verifyData
+
+protected fun verifyData ( data : NodeRegistration ) : Unit
+Verify the wrapped data after the signature has been verified and the data deserialised. Provided as an extension
+point for subclasses.
+Exceptions
+
+IllegalArgumentException
- if the data is invalid.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.network/index.html b/docs/build/html/api/net.corda.node.services.network/index.html
new file mode 100644
index 0000000000..1e5d6e799c
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.network/index.html
@@ -0,0 +1,90 @@
+
+
+net.corda.node.services.network -
+
+
+
+net.corda.node.services.network
+
+Package net.corda.node.services.network
+Types
+
+Exceptions
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.persistence/-d-b-checkpoint-storage/-init-.html b/docs/build/html/api/net.corda.node.services.persistence/-d-b-checkpoint-storage/-init-.html
new file mode 100644
index 0000000000..3a55c3e8ea
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.persistence/-d-b-checkpoint-storage/-init-.html
@@ -0,0 +1,15 @@
+
+
+DBCheckpointStorage. -
+
+
+
+net.corda.node.services.persistence / DBCheckpointStorage / <init>
+
+<init>
+DBCheckpointStorage ( )
+Simple checkpoint key value storage in DB using the underlying JDBCHashMap and transactional context of the call sites.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.persistence/-d-b-checkpoint-storage/add-checkpoint.html b/docs/build/html/api/net.corda.node.services.persistence/-d-b-checkpoint-storage/add-checkpoint.html
new file mode 100644
index 0000000000..523d066987
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.persistence/-d-b-checkpoint-storage/add-checkpoint.html
@@ -0,0 +1,17 @@
+
+
+DBCheckpointStorage.addCheckpoint -
+
+
+
+net.corda.node.services.persistence / DBCheckpointStorage / addCheckpoint
+
+addCheckpoint
+
+fun addCheckpoint ( checkpoint : Checkpoint ) : Unit
+Overrides CheckpointStorage.addCheckpoint
+Add a new checkpoint to the store.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.persistence/-d-b-checkpoint-storage/for-each.html b/docs/build/html/api/net.corda.node.services.persistence/-d-b-checkpoint-storage/for-each.html
new file mode 100644
index 0000000000..822d9cdbaa
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.persistence/-d-b-checkpoint-storage/for-each.html
@@ -0,0 +1,19 @@
+
+
+DBCheckpointStorage.forEach -
+
+
+
+net.corda.node.services.persistence / DBCheckpointStorage / forEach
+
+forEach
+
+fun forEach ( block : ( Checkpoint ) -> Boolean ) : Unit
+Overrides CheckpointStorage.forEach
+Allows the caller to process safely in a thread safe fashion the set of all checkpoints.
+The checkpoints are only valid during the lifetime of a single call to the block, to allow memory management.
+Return false from the block to terminate further iteration.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.persistence/-d-b-checkpoint-storage/index.html b/docs/build/html/api/net.corda.node.services.persistence/-d-b-checkpoint-storage/index.html
new file mode 100644
index 0000000000..59b94c924f
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.persistence/-d-b-checkpoint-storage/index.html
@@ -0,0 +1,56 @@
+
+
+DBCheckpointStorage -
+
+
+
+net.corda.node.services.persistence / DBCheckpointStorage
+
+DBCheckpointStorage
+class DBCheckpointStorage : CheckpointStorage
+Simple checkpoint key value storage in DB using the underlying JDBCHashMap and transactional context of the call sites.
+
+
+Constructors
+
+
+
+
+<init>
+
+DBCheckpointStorage ( )
Simple checkpoint key value storage in DB using the underlying JDBCHashMap and transactional context of the call sites.
+
+
+
+
+Functions
+
+
+
+
+addCheckpoint
+
+fun addCheckpoint ( checkpoint : Checkpoint ) : Unit
Add a new checkpoint to the store.
+
+
+
+
+forEach
+
+fun forEach ( block : ( Checkpoint ) -> Boolean ) : Unit
Allows the caller to process safely in a thread safe fashion the set of all checkpoints.
+The checkpoints are only valid during the lifetime of a single call to the block, to allow memory management.
+Return false from the block to terminate further iteration.
+
+
+
+
+removeCheckpoint
+
+fun removeCheckpoint ( checkpoint : Checkpoint ) : Unit
Remove existing checkpoint from the store. It is an error to attempt to remove a checkpoint which doesnt exist
+in the store. Doing so will throw an IllegalArgumentException .
+
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.persistence/-d-b-checkpoint-storage/remove-checkpoint.html b/docs/build/html/api/net.corda.node.services.persistence/-d-b-checkpoint-storage/remove-checkpoint.html
new file mode 100644
index 0000000000..1fc6b1a46f
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.persistence/-d-b-checkpoint-storage/remove-checkpoint.html
@@ -0,0 +1,18 @@
+
+
+DBCheckpointStorage.removeCheckpoint -
+
+
+
+net.corda.node.services.persistence / DBCheckpointStorage / removeCheckpoint
+
+removeCheckpoint
+
+fun removeCheckpoint ( checkpoint : Checkpoint ) : Unit
+Overrides CheckpointStorage.removeCheckpoint
+Remove existing checkpoint from the store. It is an error to attempt to remove a checkpoint which doesnt exist
+in the store. Doing so will throw an IllegalArgumentException .
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.persistence/-d-b-transaction-mapping-storage/-init-.html b/docs/build/html/api/net.corda.node.services.persistence/-d-b-transaction-mapping-storage/-init-.html
new file mode 100644
index 0000000000..106f5e6639
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.persistence/-d-b-transaction-mapping-storage/-init-.html
@@ -0,0 +1,19 @@
+
+
+DBTransactionMappingStorage. -
+
+
+
+net.corda.node.services.persistence / DBTransactionMappingStorage / <init>
+
+<init>
+DBTransactionMappingStorage ( )
+Database storage of a txhash -> state machine id mapping.
+Mappings are added as transactions are persisted by ServiceHub.recordTransaction , and never deleted. Used in the
+RPC API to correlate transaction creation with protocols.
+
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.persistence/-d-b-transaction-mapping-storage/add-mapping.html b/docs/build/html/api/net.corda.node.services.persistence/-d-b-transaction-mapping-storage/add-mapping.html
new file mode 100644
index 0000000000..ad37094dc4
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.persistence/-d-b-transaction-mapping-storage/add-mapping.html
@@ -0,0 +1,16 @@
+
+
+DBTransactionMappingStorage.addMapping -
+
+
+
+net.corda.node.services.persistence / DBTransactionMappingStorage / addMapping
+
+addMapping
+
+fun addMapping ( stateMachineRunId : StateMachineRunId , transactionId : SecureHash ) : Unit
+Overrides StateMachineRecordedTransactionMappingStorage.addMapping
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.persistence/-d-b-transaction-mapping-storage/index.html b/docs/build/html/api/net.corda.node.services.persistence/-d-b-transaction-mapping-storage/index.html
new file mode 100644
index 0000000000..0822f1a7b3
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.persistence/-d-b-transaction-mapping-storage/index.html
@@ -0,0 +1,48 @@
+
+
+DBTransactionMappingStorage -
+
+
+
+net.corda.node.services.persistence / DBTransactionMappingStorage
+
+DBTransactionMappingStorage
+class DBTransactionMappingStorage : StateMachineRecordedTransactionMappingStorage
+Database storage of a txhash -> state machine id mapping.
+Mappings are added as transactions are persisted by ServiceHub.recordTransaction , and never deleted. Used in the
+RPC API to correlate transaction creation with protocols.
+
+
+
+
+Constructors
+
+
+
+
+<init>
+
+DBTransactionMappingStorage ( )
Database storage of a txhash -> state machine id mapping.
+
+
+
+
+Functions
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.persistence/-d-b-transaction-mapping-storage/track.html b/docs/build/html/api/net.corda.node.services.persistence/-d-b-transaction-mapping-storage/track.html
new file mode 100644
index 0000000000..f63e7bb9fb
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.persistence/-d-b-transaction-mapping-storage/track.html
@@ -0,0 +1,16 @@
+
+
+DBTransactionMappingStorage.track -
+
+
+
+net.corda.node.services.persistence / DBTransactionMappingStorage / track
+
+track
+
+fun track ( ) : <ERROR CLASS> < List < StateMachineTransactionMapping > , <ERROR CLASS> < StateMachineTransactionMapping > >
+Overrides StateMachineRecordedTransactionMappingStorage.track
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.persistence/-d-b-transaction-storage/-init-.html b/docs/build/html/api/net.corda.node.services.persistence/-d-b-transaction-storage/-init-.html
new file mode 100644
index 0000000000..2d856600aa
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.persistence/-d-b-transaction-storage/-init-.html
@@ -0,0 +1,14 @@
+
+
+DBTransactionStorage. -
+
+
+
+net.corda.node.services.persistence / DBTransactionStorage / <init>
+
+<init>
+DBTransactionStorage ( )
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.persistence/-d-b-transaction-storage/add-transaction.html b/docs/build/html/api/net.corda.node.services.persistence/-d-b-transaction-storage/add-transaction.html
new file mode 100644
index 0000000000..86e280a957
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.persistence/-d-b-transaction-storage/add-transaction.html
@@ -0,0 +1,18 @@
+
+
+DBTransactionStorage.addTransaction -
+
+
+
+net.corda.node.services.persistence / DBTransactionStorage / addTransaction
+
+addTransaction
+
+fun addTransaction ( transaction : SignedTransaction ) : Unit
+Overrides TransactionStorage.addTransaction
+Add a new transaction to the store. If the store already has a transaction with the same id it will be
+overwritten.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.persistence/-d-b-transaction-storage/get-transaction.html b/docs/build/html/api/net.corda.node.services.persistence/-d-b-transaction-storage/get-transaction.html
new file mode 100644
index 0000000000..396942ae15
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.persistence/-d-b-transaction-storage/get-transaction.html
@@ -0,0 +1,17 @@
+
+
+DBTransactionStorage.getTransaction -
+
+
+
+net.corda.node.services.persistence / DBTransactionStorage / getTransaction
+
+getTransaction
+
+fun getTransaction ( id : SecureHash ) : SignedTransaction ?
+Overrides ReadOnlyTransactionStorage.getTransaction
+Return the transaction with the given id , or null if no such transaction exists.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.persistence/-d-b-transaction-storage/index.html b/docs/build/html/api/net.corda.node.services.persistence/-d-b-transaction-storage/index.html
new file mode 100644
index 0000000000..e1e685563f
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.persistence/-d-b-transaction-storage/index.html
@@ -0,0 +1,77 @@
+
+
+DBTransactionStorage -
+
+
+
+net.corda.node.services.persistence / DBTransactionStorage
+
+DBTransactionStorage
+class DBTransactionStorage : TransactionStorage
+
+
+Constructors
+
+
+
+
+<init>
+
+DBTransactionStorage ( )
+
+
+
+Properties
+
+Functions
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.persistence/-d-b-transaction-storage/track.html b/docs/build/html/api/net.corda.node.services.persistence/-d-b-transaction-storage/track.html
new file mode 100644
index 0000000000..cf0938d95b
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.persistence/-d-b-transaction-storage/track.html
@@ -0,0 +1,17 @@
+
+
+DBTransactionStorage.track -
+
+
+
+net.corda.node.services.persistence / DBTransactionStorage / track
+
+track
+
+fun track ( ) : <ERROR CLASS> < List < SignedTransaction > , <ERROR CLASS> < SignedTransaction > >
+Overrides ReadOnlyTransactionStorage.track
+Returns all currently stored transactions and further fresh ones.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.persistence/-d-b-transaction-storage/transactions.html b/docs/build/html/api/net.corda.node.services.persistence/-d-b-transaction-storage/transactions.html
new file mode 100644
index 0000000000..f6a5e1469a
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.persistence/-d-b-transaction-storage/transactions.html
@@ -0,0 +1,15 @@
+
+
+DBTransactionStorage.transactions -
+
+
+
+net.corda.node.services.persistence / DBTransactionStorage / transactions
+
+transactions
+
+val transactions : Iterable < SignedTransaction >
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.persistence/-d-b-transaction-storage/updates-publisher.html b/docs/build/html/api/net.corda.node.services.persistence/-d-b-transaction-storage/updates-publisher.html
new file mode 100644
index 0000000000..3e8dbce5b7
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.persistence/-d-b-transaction-storage/updates-publisher.html
@@ -0,0 +1,15 @@
+
+
+DBTransactionStorage.updatesPublisher -
+
+
+
+net.corda.node.services.persistence / DBTransactionStorage / updatesPublisher
+
+updatesPublisher
+
+val updatesPublisher : <ERROR CLASS>
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.persistence/-d-b-transaction-storage/updates.html b/docs/build/html/api/net.corda.node.services.persistence/-d-b-transaction-storage/updates.html
new file mode 100644
index 0000000000..992f82832e
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.persistence/-d-b-transaction-storage/updates.html
@@ -0,0 +1,22 @@
+
+
+DBTransactionStorage.updates -
+
+
+
+net.corda.node.services.persistence / DBTransactionStorage / updates
+
+updates
+
+val updates : <ERROR CLASS> < SignedTransaction >
+Overrides ReadOnlyTransactionStorage.updates
+Get a synchronous Observable of updates. When observations are pushed to the Observer, the vault will already
+incorporate the update.
+Getter
+
Get a synchronous Observable of updates. When observations are pushed to the Observer, the vault will already
+incorporate the update.
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.persistence/-data-vending/-plugin/-init-.html b/docs/build/html/api/net.corda.node.services.persistence/-data-vending/-plugin/-init-.html
new file mode 100644
index 0000000000..beaf298173
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.persistence/-data-vending/-plugin/-init-.html
@@ -0,0 +1,14 @@
+
+
+DataVending.Plugin. -
+
+
+
+net.corda.node.services.persistence / DataVending / Plugin / <init>
+
+<init>
+Plugin ( )
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.persistence/-data-vending/-plugin/index.html b/docs/build/html/api/net.corda.node.services.persistence/-data-vending/-plugin/index.html
new file mode 100644
index 0000000000..aa7b5ef1ab
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.persistence/-data-vending/-plugin/index.html
@@ -0,0 +1,74 @@
+
+
+DataVending.Plugin -
+
+
+
+net.corda.node.services.persistence / DataVending / Plugin
+
+Plugin
+class Plugin : CordaPluginRegistry
+
+
+Constructors
+
+
+
+
+<init>
+
+Plugin ( )
+
+
+
+Properties
+
+
+
+
+servicePlugins
+
+val servicePlugins : List < Class < * > >
List of additional long lived services to be hosted within the node.
+They are expected to have a single parameter constructor that takes a PluginServiceHub as input.
+The PluginServiceHub will be fully constructed before the plugin service is created and will
+allow access to the protocol factory and protocol initiation entry points there.
+
+
+
+
+Inherited Properties
+
+
+
+
+requiredProtocols
+
+open val requiredProtocols : Map < String , Set < String > >
A Map with an entry for each consumed protocol used by the webAPIs.
+The key of each map entry should contain the ProtocolLogic class name.
+The associated map values are the union of all concrete class names passed to the protocol constructor.
+Standard java.lang.* and kotlin.* types do not need to be included explicitly.
+This is used to extend the white listed protocols that can be initiated from the ServiceHub invokeProtocolAsync method.
+
+
+
+
+staticServeDirs
+
+open val staticServeDirs : Map < String , String >
Map of static serving endpoints to the matching resource directory. All endpoints will be prefixed with "/web" and postfixed with "\*.
+Resource directories can be either on disk directories (especially when debugging) in the form "a/b/c". Serving from a JAR can
+be specified with: javaClass.getResource("<folder-in-jar>").toExternalForm()
+
+
+
+
+webApis
+
+open val webApis : List < Class < * > >
List of JAX-RS classes inside the contract jar. They are expected to have a single parameter constructor that takes a ServiceHub as input.
+These are listed as Class<*>, because in the future they will be instantiated inside a ClassLoader so that
+Cordapp code can be loaded dynamically.
+
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.persistence/-data-vending/-plugin/service-plugins.html b/docs/build/html/api/net.corda.node.services.persistence/-data-vending/-plugin/service-plugins.html
new file mode 100644
index 0000000000..e15facf90b
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.persistence/-data-vending/-plugin/service-plugins.html
@@ -0,0 +1,20 @@
+
+
+DataVending.Plugin.servicePlugins -
+
+
+
+net.corda.node.services.persistence / DataVending / Plugin / servicePlugins
+
+servicePlugins
+
+val servicePlugins : List < Class < * > >
+Overrides CordaPluginRegistry.servicePlugins
+List of additional long lived services to be hosted within the node.
+They are expected to have a single parameter constructor that takes a PluginServiceHub as input.
+The PluginServiceHub will be fully constructed before the plugin service is created and will
+allow access to the protocol factory and protocol initiation entry points there.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.persistence/-data-vending/-service/-init-.html b/docs/build/html/api/net.corda.node.services.persistence/-data-vending/-service/-init-.html
new file mode 100644
index 0000000000..fc61e58f57
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.persistence/-data-vending/-service/-init-.html
@@ -0,0 +1,24 @@
+
+
+DataVending.Service. -
+
+
+
+net.corda.node.services.persistence / DataVending / Service / <init>
+
+<init>
+Service ( services : PluginServiceHub )
+This class sets up network message handlers for requests from peers for data keyed by hash. It is a piece of simple
+glue that sits between the network layer and the database layer.
+Note that in our data model, to be able to name a thing by hash automatically gives the power to request it. There
+are no access control lists. If you want to keep some data private, then you must be careful who you give its name
+to, and trust that they will not pass the name onwards. If someone suspects some data might exist but does not have
+its name, then the 256-bit search space theyd have to cover makes it physically impossible to enumerate, and as
+such the hash of a piece of data can be seen as a type of password allowing access to it.
+Additionally, because nodes do not store invalid transactions, requesting such a transaction will always yield null.
+
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.persistence/-data-vending/-service/-notify-transaction-handler/-init-.html b/docs/build/html/api/net.corda.node.services.persistence/-data-vending/-service/-notify-transaction-handler/-init-.html
new file mode 100644
index 0000000000..1551801b4c
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.persistence/-data-vending/-service/-notify-transaction-handler/-init-.html
@@ -0,0 +1,14 @@
+
+
+DataVending.Service.NotifyTransactionHandler. -
+
+
+
+net.corda.node.services.persistence / DataVending / Service / NotifyTransactionHandler / <init>
+
+<init>
+NotifyTransactionHandler ( otherParty : Party )
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.persistence/-data-vending/-service/-notify-transaction-handler/call.html b/docs/build/html/api/net.corda.node.services.persistence/-data-vending/-service/-notify-transaction-handler/call.html
new file mode 100644
index 0000000000..bc8afce4d8
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.persistence/-data-vending/-service/-notify-transaction-handler/call.html
@@ -0,0 +1,17 @@
+
+
+DataVending.Service.NotifyTransactionHandler.call -
+
+
+
+net.corda.node.services.persistence / DataVending / Service / NotifyTransactionHandler / call
+
+call
+
+fun call ( ) : Unit
+Overrides ProtocolLogic.call
+This is where you fill out your business logic.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.persistence/-data-vending/-service/-notify-transaction-handler/index.html b/docs/build/html/api/net.corda.node.services.persistence/-data-vending/-service/-notify-transaction-handler/index.html
new file mode 100644
index 0000000000..f405617fc0
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.persistence/-data-vending/-service/-notify-transaction-handler/index.html
@@ -0,0 +1,134 @@
+
+
+DataVending.Service.NotifyTransactionHandler -
+
+
+
+net.corda.node.services.persistence / DataVending / Service / NotifyTransactionHandler
+
+NotifyTransactionHandler
+class NotifyTransactionHandler : ProtocolLogic < Unit >
+
+
+Constructors
+
+
+
+
+<init>
+
+NotifyTransactionHandler ( otherParty : Party )
+
+
+
+Properties
+
+Inherited Properties
+
+
+
+
+logger
+
+val logger : <ERROR CLASS>
This is where you should log things to.
+
+
+
+
+progressTracker
+
+open val progressTracker : ProgressTracker ?
Override this to provide a ProgressTracker . If one is provided and stepped, the framework will do something
+helpful with the progress reports. If this protocol is invoked as a sub-protocol of another, then the
+tracker will be made a child of the current step in the parent. If its null, this protocol doesnt track
+progress.
+
+
+
+
+psm
+
+lateinit var psm : ProtocolStateMachine < * >
Reference to the Fiber instance that is the top level controller for the entire flow.
+
+
+
+
+serviceHub
+
+val serviceHub : ServiceHub
Provides access to big, heavy classes that may be reconstructed from time to time, e.g. across restarts. It is
+only available once the protocol has started, which means it cannnot be accessed in the constructor. Either
+access this lazily or from inside call .
+
+
+
+
+Functions
+
+
+
+
+call
+
+fun call ( ) : Unit
This is where you fill out your business logic.
+
+
+
+
+Inherited Functions
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.persistence/-data-vending/-service/-notify-transaction-handler/other-party.html b/docs/build/html/api/net.corda.node.services.persistence/-data-vending/-service/-notify-transaction-handler/other-party.html
new file mode 100644
index 0000000000..729af37782
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.persistence/-data-vending/-service/-notify-transaction-handler/other-party.html
@@ -0,0 +1,15 @@
+
+
+DataVending.Service.NotifyTransactionHandler.otherParty -
+
+
+
+net.corda.node.services.persistence / DataVending / Service / NotifyTransactionHandler / otherParty
+
+otherParty
+
+val otherParty : Party
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.persistence/-data-vending/-service/-transaction-rejected-error/-init-.html b/docs/build/html/api/net.corda.node.services.persistence/-data-vending/-service/-transaction-rejected-error/-init-.html
new file mode 100644
index 0000000000..989315b7c4
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.persistence/-data-vending/-service/-transaction-rejected-error/-init-.html
@@ -0,0 +1,14 @@
+
+
+DataVending.Service.TransactionRejectedError. -
+
+
+
+net.corda.node.services.persistence / DataVending / Service / TransactionRejectedError / <init>
+
+<init>
+TransactionRejectedError ( msg : String )
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.persistence/-data-vending/-service/-transaction-rejected-error/index.html b/docs/build/html/api/net.corda.node.services.persistence/-data-vending/-service/-transaction-rejected-error/index.html
new file mode 100644
index 0000000000..419488049d
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.persistence/-data-vending/-service/-transaction-rejected-error/index.html
@@ -0,0 +1,25 @@
+
+
+DataVending.Service.TransactionRejectedError -
+
+
+
+net.corda.node.services.persistence / DataVending / Service / TransactionRejectedError
+
+TransactionRejectedError
+class TransactionRejectedError : Exception
+
+
+Constructors
+
+
+
+
+<init>
+
+TransactionRejectedError ( msg : String )
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.persistence/-data-vending/-service/index.html b/docs/build/html/api/net.corda.node.services.persistence/-data-vending/-service/index.html
new file mode 100644
index 0000000000..dda3b00be2
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.persistence/-data-vending/-service/index.html
@@ -0,0 +1,81 @@
+
+
+DataVending.Service -
+
+
+
+net.corda.node.services.persistence / DataVending / Service
+
+Service
+class Service : SingletonSerializeAsToken
+This class sets up network message handlers for requests from peers for data keyed by hash. It is a piece of simple
+glue that sits between the network layer and the database layer.
+Note that in our data model, to be able to name a thing by hash automatically gives the power to request it. There
+are no access control lists. If you want to keep some data private, then you must be careful who you give its name
+to, and trust that they will not pass the name onwards. If someone suspects some data might exist but does not have
+its name, then the 256-bit search space theyd have to cover makes it physically impossible to enumerate, and as
+such the hash of a piece of data can be seen as a type of password allowing access to it.
+Additionally, because nodes do not store invalid transactions, requesting such a transaction will always yield null.
+
+
+
+
+Types
+
+Exceptions
+
+Constructors
+
+
+
+
+<init>
+
+Service ( services : PluginServiceHub )
This class sets up network message handlers for requests from peers for data keyed by hash. It is a piece of simple
+glue that sits between the network layer and the database layer.
+
+
+
+
+Inherited Functions
+
+Companion Object Properties
+
+
+
+
+logger
+
+val logger : <ERROR CLASS>
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.persistence/-data-vending/-service/logger.html b/docs/build/html/api/net.corda.node.services.persistence/-data-vending/-service/logger.html
new file mode 100644
index 0000000000..09c7c3895e
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.persistence/-data-vending/-service/logger.html
@@ -0,0 +1,15 @@
+
+
+DataVending.Service.logger -
+
+
+
+net.corda.node.services.persistence / DataVending / Service / logger
+
+logger
+
+val logger : <ERROR CLASS>
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.persistence/-data-vending/index.html b/docs/build/html/api/net.corda.node.services.persistence/-data-vending/index.html
new file mode 100644
index 0000000000..32231a0459
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.persistence/-data-vending/index.html
@@ -0,0 +1,33 @@
+
+
+DataVending -
+
+
+
+net.corda.node.services.persistence / DataVending
+
+DataVending
+object DataVending
+
+
+Types
+
+
+
+
+Plugin
+
+class Plugin : CordaPluginRegistry
+
+
+
+Service
+
+class Service : SingletonSerializeAsToken
This class sets up network message handlers for requests from peers for data keyed by hash. It is a piece of simple
+glue that sits between the network layer and the database layer.
+
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.persistence/-in-memory-state-machine-recorded-transaction-mapping-storage/-init-.html b/docs/build/html/api/net.corda.node.services.persistence/-in-memory-state-machine-recorded-transaction-mapping-storage/-init-.html
new file mode 100644
index 0000000000..7e6d4b9c05
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.persistence/-in-memory-state-machine-recorded-transaction-mapping-storage/-init-.html
@@ -0,0 +1,18 @@
+
+
+InMemoryStateMachineRecordedTransactionMappingStorage. -
+
+
+
+net.corda.node.services.persistence / InMemoryStateMachineRecordedTransactionMappingStorage / <init>
+
+<init>
+InMemoryStateMachineRecordedTransactionMappingStorage ( )
+This is a temporary in-memory storage of a state machine id -> txhash mapping
+TODO persist this instead
+
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.persistence/-in-memory-state-machine-recorded-transaction-mapping-storage/add-mapping.html b/docs/build/html/api/net.corda.node.services.persistence/-in-memory-state-machine-recorded-transaction-mapping-storage/add-mapping.html
new file mode 100644
index 0000000000..e90df1913e
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.persistence/-in-memory-state-machine-recorded-transaction-mapping-storage/add-mapping.html
@@ -0,0 +1,16 @@
+
+
+InMemoryStateMachineRecordedTransactionMappingStorage.addMapping -
+
+
+
+net.corda.node.services.persistence / InMemoryStateMachineRecordedTransactionMappingStorage / addMapping
+
+addMapping
+
+fun addMapping ( stateMachineRunId : StateMachineRunId , transactionId : SecureHash ) : Unit
+Overrides StateMachineRecordedTransactionMappingStorage.addMapping
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.persistence/-in-memory-state-machine-recorded-transaction-mapping-storage/index.html b/docs/build/html/api/net.corda.node.services.persistence/-in-memory-state-machine-recorded-transaction-mapping-storage/index.html
new file mode 100644
index 0000000000..c184615352
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.persistence/-in-memory-state-machine-recorded-transaction-mapping-storage/index.html
@@ -0,0 +1,47 @@
+
+
+InMemoryStateMachineRecordedTransactionMappingStorage -
+
+
+
+net.corda.node.services.persistence / InMemoryStateMachineRecordedTransactionMappingStorage
+
+InMemoryStateMachineRecordedTransactionMappingStorage
+class InMemoryStateMachineRecordedTransactionMappingStorage : StateMachineRecordedTransactionMappingStorage
+This is a temporary in-memory storage of a state machine id -> txhash mapping
+TODO persist this instead
+
+
+
+
+Constructors
+
+
+
+
+<init>
+
+InMemoryStateMachineRecordedTransactionMappingStorage ( )
This is a temporary in-memory storage of a state machine id -> txhash mapping
+
+
+
+
+Functions
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.persistence/-in-memory-state-machine-recorded-transaction-mapping-storage/track.html b/docs/build/html/api/net.corda.node.services.persistence/-in-memory-state-machine-recorded-transaction-mapping-storage/track.html
new file mode 100644
index 0000000000..333b27ebbb
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.persistence/-in-memory-state-machine-recorded-transaction-mapping-storage/track.html
@@ -0,0 +1,16 @@
+
+
+InMemoryStateMachineRecordedTransactionMappingStorage.track -
+
+
+
+net.corda.node.services.persistence / InMemoryStateMachineRecordedTransactionMappingStorage / track
+
+track
+
+fun track ( ) : <ERROR CLASS> < List < StateMachineTransactionMapping > , <ERROR CLASS> < StateMachineTransactionMapping > >
+Overrides StateMachineRecordedTransactionMappingStorage.track
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.persistence/-node-attachment-service/-init-.html b/docs/build/html/api/net.corda.node.services.persistence/-node-attachment-service/-init-.html
new file mode 100644
index 0000000000..b8894434f2
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.persistence/-node-attachment-service/-init-.html
@@ -0,0 +1,15 @@
+
+
+NodeAttachmentService. -
+
+
+
+net.corda.node.services.persistence / NodeAttachmentService / <init>
+
+<init>
+NodeAttachmentService ( storePath : Path , metrics : <ERROR CLASS> )
+Stores attachments in the specified local directory, which must exist. Doesnt allow new attachments to be uploaded.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.persistence/-node-attachment-service/-on-disk-hash-mismatch/-init-.html b/docs/build/html/api/net.corda.node.services.persistence/-node-attachment-service/-on-disk-hash-mismatch/-init-.html
new file mode 100644
index 0000000000..530c3d15bf
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.persistence/-node-attachment-service/-on-disk-hash-mismatch/-init-.html
@@ -0,0 +1,14 @@
+
+
+NodeAttachmentService.OnDiskHashMismatch. -
+
+
+
+net.corda.node.services.persistence / NodeAttachmentService / OnDiskHashMismatch / <init>
+
+<init>
+OnDiskHashMismatch ( file : Path , actual : SecureHash )
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.persistence/-node-attachment-service/-on-disk-hash-mismatch/actual.html b/docs/build/html/api/net.corda.node.services.persistence/-node-attachment-service/-on-disk-hash-mismatch/actual.html
new file mode 100644
index 0000000000..2e51528b8c
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.persistence/-node-attachment-service/-on-disk-hash-mismatch/actual.html
@@ -0,0 +1,15 @@
+
+
+NodeAttachmentService.OnDiskHashMismatch.actual -
+
+
+
+net.corda.node.services.persistence / NodeAttachmentService / OnDiskHashMismatch / actual
+
+actual
+
+val actual : SecureHash
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.persistence/-node-attachment-service/-on-disk-hash-mismatch/file.html b/docs/build/html/api/net.corda.node.services.persistence/-node-attachment-service/-on-disk-hash-mismatch/file.html
new file mode 100644
index 0000000000..8cd6017894
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.persistence/-node-attachment-service/-on-disk-hash-mismatch/file.html
@@ -0,0 +1,15 @@
+
+
+NodeAttachmentService.OnDiskHashMismatch.file -
+
+
+
+net.corda.node.services.persistence / NodeAttachmentService / OnDiskHashMismatch / file
+
+file
+
+val file : Path
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.persistence/-node-attachment-service/-on-disk-hash-mismatch/index.html b/docs/build/html/api/net.corda.node.services.persistence/-node-attachment-service/-on-disk-hash-mismatch/index.html
new file mode 100644
index 0000000000..840c8dc05b
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.persistence/-node-attachment-service/-on-disk-hash-mismatch/index.html
@@ -0,0 +1,53 @@
+
+
+NodeAttachmentService.OnDiskHashMismatch -
+
+
+
+net.corda.node.services.persistence / NodeAttachmentService / OnDiskHashMismatch
+
+OnDiskHashMismatch
+class OnDiskHashMismatch : Exception
+
+
+Constructors
+
+Properties
+
+Functions
+
+
+
+
+toString
+
+fun toString ( ) : String
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.persistence/-node-attachment-service/-on-disk-hash-mismatch/to-string.html b/docs/build/html/api/net.corda.node.services.persistence/-node-attachment-service/-on-disk-hash-mismatch/to-string.html
new file mode 100644
index 0000000000..abbe8c4851
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.persistence/-node-attachment-service/-on-disk-hash-mismatch/to-string.html
@@ -0,0 +1,15 @@
+
+
+NodeAttachmentService.OnDiskHashMismatch.toString -
+
+
+
+net.corda.node.services.persistence / NodeAttachmentService / OnDiskHashMismatch / toString
+
+toString
+
+fun toString ( ) : String
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.persistence/-node-attachment-service/acceptable-file-extensions.html b/docs/build/html/api/net.corda.node.services.persistence/-node-attachment-service/acceptable-file-extensions.html
new file mode 100644
index 0000000000..f1c1dddcd3
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.persistence/-node-attachment-service/acceptable-file-extensions.html
@@ -0,0 +1,17 @@
+
+
+NodeAttachmentService.acceptableFileExtensions -
+
+
+
+net.corda.node.services.persistence / NodeAttachmentService / acceptableFileExtensions
+
+acceptableFileExtensions
+
+val acceptableFileExtensions : <ERROR CLASS>
+Overrides AcceptsFileUpload.acceptableFileExtensions
+What file extensions are acceptable for the file to be handed to upload()
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.persistence/-node-attachment-service/automatically-extract-attachments.html b/docs/build/html/api/net.corda.node.services.persistence/-node-attachment-service/automatically-extract-attachments.html
new file mode 100644
index 0000000000..9b7d240ade
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.persistence/-node-attachment-service/automatically-extract-attachments.html
@@ -0,0 +1,18 @@
+
+
+NodeAttachmentService.automaticallyExtractAttachments -
+
+
+
+net.corda.node.services.persistence / NodeAttachmentService / automaticallyExtractAttachments
+
+automaticallyExtractAttachments
+
+var automaticallyExtractAttachments : Boolean
+If true, newly inserted attachments will be unzipped to a subdirectory of the storePath . This is intended for
+human browsing convenience: the attachment itself will still be the file (that is, edits to the extracted directory
+will not have any effect).
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.persistence/-node-attachment-service/check-attachments-on-load.html b/docs/build/html/api/net.corda.node.services.persistence/-node-attachment-service/check-attachments-on-load.html
new file mode 100644
index 0000000000..f6c317dc14
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.persistence/-node-attachment-service/check-attachments-on-load.html
@@ -0,0 +1,15 @@
+
+
+NodeAttachmentService.checkAttachmentsOnLoad -
+
+
+
+net.corda.node.services.persistence / NodeAttachmentService / checkAttachmentsOnLoad
+
+checkAttachmentsOnLoad
+
+var checkAttachmentsOnLoad : Boolean
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.persistence/-node-attachment-service/data-type-prefix.html b/docs/build/html/api/net.corda.node.services.persistence/-node-attachment-service/data-type-prefix.html
new file mode 100644
index 0000000000..1975521268
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.persistence/-node-attachment-service/data-type-prefix.html
@@ -0,0 +1,17 @@
+
+
+NodeAttachmentService.dataTypePrefix -
+
+
+
+net.corda.node.services.persistence / NodeAttachmentService / dataTypePrefix
+
+dataTypePrefix
+
+val dataTypePrefix : String
+Overrides AcceptsFileUpload.dataTypePrefix
+A string that prefixes the URLs, e.g. "attachments" or "interest-rates". Should be OK for URLs.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.persistence/-node-attachment-service/import-attachment.html b/docs/build/html/api/net.corda.node.services.persistence/-node-attachment-service/import-attachment.html
new file mode 100644
index 0000000000..5f28d70533
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.persistence/-node-attachment-service/import-attachment.html
@@ -0,0 +1,31 @@
+
+
+NodeAttachmentService.importAttachment -
+
+
+
+net.corda.node.services.persistence / NodeAttachmentService / importAttachment
+
+importAttachment
+
+fun importAttachment ( jar : InputStream ) : SecureHash
+Overrides AttachmentStorage.importAttachment
+Inserts the given attachment into the store, does not close the input stream. This can be an intensive
+operation due to the need to copy the bytes to disk and hash them along the way.
+Note that you should not pass a JarInputStream into this method and it will throw if you do, because access
+to the raw byte stream is required.
+
+
+Exceptions
+
+FileAlreadyExistsException
- if the given byte stream has already been inserted.
+
+
+IllegalArgumentException
- if the given byte stream is empty or a JarInputStream .
+
+
+IOException
- if something went wrong.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.persistence/-node-attachment-service/index.html b/docs/build/html/api/net.corda.node.services.persistence/-node-attachment-service/index.html
new file mode 100644
index 0000000000..c5e0e74127
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.persistence/-node-attachment-service/index.html
@@ -0,0 +1,107 @@
+
+
+NodeAttachmentService -
+
+
+
+net.corda.node.services.persistence / NodeAttachmentService
+
+NodeAttachmentService
+class NodeAttachmentService : AttachmentStorage , AcceptsFileUpload
+Stores attachments in the specified local directory, which must exist. Doesnt allow new attachments to be uploaded.
+
+
+Exceptions
+
+Constructors
+
+
+
+
+<init>
+
+NodeAttachmentService ( storePath : Path , metrics : <ERROR CLASS> )
Stores attachments in the specified local directory, which must exist. Doesnt allow new attachments to be uploaded.
+
+
+
+
+Properties
+
+
+
+
+acceptableFileExtensions
+
+val acceptableFileExtensions : <ERROR CLASS>
What file extensions are acceptable for the file to be handed to upload()
+
+
+
+
+automaticallyExtractAttachments
+
+var automaticallyExtractAttachments : Boolean
If true, newly inserted attachments will be unzipped to a subdirectory of the storePath . This is intended for
+human browsing convenience: the attachment itself will still be the file (that is, edits to the extracted directory
+will not have any effect).
+
+
+
+
+checkAttachmentsOnLoad
+
+var checkAttachmentsOnLoad : Boolean
+
+
+
+dataTypePrefix
+
+val dataTypePrefix : String
A string that prefixes the URLs, e.g. "attachments" or "interest-rates". Should be OK for URLs.
+
+
+
+
+storePath
+
+val storePath : Path
+
+
+
+Functions
+
+
+
+
+importAttachment
+
+fun importAttachment ( jar : InputStream ) : SecureHash
Inserts the given attachment into the store, does not close the input stream. This can be an intensive
+operation due to the need to copy the bytes to disk and hash them along the way.
+
+
+
+
+openAttachment
+
+fun openAttachment ( id : SecureHash ) : Attachment ?
Returns a handle to a locally stored attachment, or null if its not known. The handle can be used to open
+a stream for the data, which will be a zip/jar file.
+
+
+
+
+upload
+
+fun upload ( data : InputStream ) : <ERROR CLASS>
Accepts the data in the given input stream, and returns some sort of useful return message that will be sent
+back to the user in the response.
+
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.persistence/-node-attachment-service/open-attachment.html b/docs/build/html/api/net.corda.node.services.persistence/-node-attachment-service/open-attachment.html
new file mode 100644
index 0000000000..e5e239b35f
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.persistence/-node-attachment-service/open-attachment.html
@@ -0,0 +1,18 @@
+
+
+NodeAttachmentService.openAttachment -
+
+
+
+net.corda.node.services.persistence / NodeAttachmentService / openAttachment
+
+openAttachment
+
+fun openAttachment ( id : SecureHash ) : Attachment ?
+Overrides AttachmentStorage.openAttachment
+Returns a handle to a locally stored attachment, or null if its not known. The handle can be used to open
+a stream for the data, which will be a zip/jar file.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.persistence/-node-attachment-service/store-path.html b/docs/build/html/api/net.corda.node.services.persistence/-node-attachment-service/store-path.html
new file mode 100644
index 0000000000..8025adf429
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.persistence/-node-attachment-service/store-path.html
@@ -0,0 +1,15 @@
+
+
+NodeAttachmentService.storePath -
+
+
+
+net.corda.node.services.persistence / NodeAttachmentService / storePath
+
+storePath
+
+val storePath : Path
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.persistence/-node-attachment-service/upload.html b/docs/build/html/api/net.corda.node.services.persistence/-node-attachment-service/upload.html
new file mode 100644
index 0000000000..74c11bcc9b
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.persistence/-node-attachment-service/upload.html
@@ -0,0 +1,18 @@
+
+
+NodeAttachmentService.upload -
+
+
+
+net.corda.node.services.persistence / NodeAttachmentService / upload
+
+upload
+
+fun upload ( data : InputStream ) : <ERROR CLASS>
+Overrides AcceptsFileUpload.upload
+Accepts the data in the given input stream, and returns some sort of useful return message that will be sent
+back to the user in the response.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.persistence/-storage-service-impl/-init-.html b/docs/build/html/api/net.corda.node.services.persistence/-storage-service-impl/-init-.html
new file mode 100644
index 0000000000..89f9e30eef
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.persistence/-storage-service-impl/-init-.html
@@ -0,0 +1,14 @@
+
+
+StorageServiceImpl. -
+
+
+
+net.corda.node.services.persistence / StorageServiceImpl / <init>
+
+<init>
+StorageServiceImpl ( attachments : AttachmentStorage , validatedTransactions : TransactionStorage , stateMachineRecordedTransactionMapping : StateMachineRecordedTransactionMappingStorage )
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.persistence/-storage-service-impl/attachments.html b/docs/build/html/api/net.corda.node.services.persistence/-storage-service-impl/attachments.html
new file mode 100644
index 0000000000..cb4c5bad15
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.persistence/-storage-service-impl/attachments.html
@@ -0,0 +1,17 @@
+
+
+StorageServiceImpl.attachments -
+
+
+
+net.corda.node.services.persistence / StorageServiceImpl / attachments
+
+attachments
+
+open val attachments : AttachmentStorage
+Overrides StorageService.attachments
+Provides access to storage of arbitrary JAR files (which may contain only data, no code).
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.persistence/-storage-service-impl/index.html b/docs/build/html/api/net.corda.node.services.persistence/-storage-service-impl/index.html
new file mode 100644
index 0000000000..1ea7e1fdce
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.persistence/-storage-service-impl/index.html
@@ -0,0 +1,63 @@
+
+
+StorageServiceImpl -
+
+
+
+net.corda.node.services.persistence / StorageServiceImpl
+
+StorageServiceImpl
+open class StorageServiceImpl : SingletonSerializeAsToken , TxWritableStorageService
+
+
+Constructors
+
+Properties
+
+Inherited Functions
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.persistence/-storage-service-impl/state-machine-recorded-transaction-mapping.html b/docs/build/html/api/net.corda.node.services.persistence/-storage-service-impl/state-machine-recorded-transaction-mapping.html
new file mode 100644
index 0000000000..5ad1fdc266
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.persistence/-storage-service-impl/state-machine-recorded-transaction-mapping.html
@@ -0,0 +1,16 @@
+
+
+StorageServiceImpl.stateMachineRecordedTransactionMapping -
+
+
+
+net.corda.node.services.persistence / StorageServiceImpl / stateMachineRecordedTransactionMapping
+
+stateMachineRecordedTransactionMapping
+
+open val stateMachineRecordedTransactionMapping : StateMachineRecordedTransactionMappingStorage
+Overrides StorageService.stateMachineRecordedTransactionMapping
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.persistence/-storage-service-impl/validated-transactions.html b/docs/build/html/api/net.corda.node.services.persistence/-storage-service-impl/validated-transactions.html
new file mode 100644
index 0000000000..babc6160df
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.persistence/-storage-service-impl/validated-transactions.html
@@ -0,0 +1,19 @@
+
+
+StorageServiceImpl.validatedTransactions -
+
+
+
+net.corda.node.services.persistence / StorageServiceImpl / validatedTransactions
+
+validatedTransactions
+
+open val validatedTransactions : TransactionStorage
+Overrides TxWritableStorageService.validatedTransactions
+A map of hash->tx where tx has been signature/contract validated and the states are known to be correct.
+The signatures arent technically needed after that point, but we keep them around so that we can relay
+the transaction data to other nodes that need it.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.persistence/index.html b/docs/build/html/api/net.corda.node.services.persistence/index.html
new file mode 100644
index 0000000000..61d1286cd1
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.persistence/index.html
@@ -0,0 +1,62 @@
+
+
+net.corda.node.services.persistence -
+
+
+
+net.corda.node.services.persistence
+
+Package net.corda.node.services.persistence
+Types
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.schema/-hibernate-observer/-init-.html b/docs/build/html/api/net.corda.node.services.schema/-hibernate-observer/-init-.html
new file mode 100644
index 0000000000..7dbd9d7e63
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.schema/-hibernate-observer/-init-.html
@@ -0,0 +1,15 @@
+
+
+HibernateObserver. -
+
+
+
+net.corda.node.services.schema / HibernateObserver / <init>
+
+<init>
+HibernateObserver ( services : ServiceHubInternal )
+A vault observer that extracts Object Relational Mappings for contract states that support it, and persists them with Hibernate.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.schema/-hibernate-observer/-node-database-connection-provider/-init-.html b/docs/build/html/api/net.corda.node.services.schema/-hibernate-observer/-node-database-connection-provider/-init-.html
new file mode 100644
index 0000000000..44a4a2cacc
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.schema/-hibernate-observer/-node-database-connection-provider/-init-.html
@@ -0,0 +1,14 @@
+
+
+HibernateObserver.NodeDatabaseConnectionProvider. -
+
+
+
+net.corda.node.services.schema / HibernateObserver / NodeDatabaseConnectionProvider / <init>
+
+<init>
+NodeDatabaseConnectionProvider ( )
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.schema/-hibernate-observer/-node-database-connection-provider/close-connection.html b/docs/build/html/api/net.corda.node.services.schema/-hibernate-observer/-node-database-connection-provider/close-connection.html
new file mode 100644
index 0000000000..7196626e19
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.schema/-hibernate-observer/-node-database-connection-provider/close-connection.html
@@ -0,0 +1,15 @@
+
+
+HibernateObserver.NodeDatabaseConnectionProvider.closeConnection -
+
+
+
+net.corda.node.services.schema / HibernateObserver / NodeDatabaseConnectionProvider / closeConnection
+
+closeConnection
+
+fun closeConnection ( conn : Connection ) : Unit
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.schema/-hibernate-observer/-node-database-connection-provider/get-connection.html b/docs/build/html/api/net.corda.node.services.schema/-hibernate-observer/-node-database-connection-provider/get-connection.html
new file mode 100644
index 0000000000..503d350b34
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.schema/-hibernate-observer/-node-database-connection-provider/get-connection.html
@@ -0,0 +1,15 @@
+
+
+HibernateObserver.NodeDatabaseConnectionProvider.getConnection -
+
+
+
+net.corda.node.services.schema / HibernateObserver / NodeDatabaseConnectionProvider / getConnection
+
+getConnection
+
+fun getConnection ( ) : Connection
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.schema/-hibernate-observer/-node-database-connection-provider/index.html b/docs/build/html/api/net.corda.node.services.schema/-hibernate-observer/-node-database-connection-provider/index.html
new file mode 100644
index 0000000000..b565a84bd8
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.schema/-hibernate-observer/-node-database-connection-provider/index.html
@@ -0,0 +1,60 @@
+
+
+HibernateObserver.NodeDatabaseConnectionProvider -
+
+
+
+net.corda.node.services.schema / HibernateObserver / NodeDatabaseConnectionProvider
+
+NodeDatabaseConnectionProvider
+class NodeDatabaseConnectionProvider
+
+
+Constructors
+
+
+
+
+<init>
+
+NodeDatabaseConnectionProvider ( )
+
+
+
+Functions
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.schema/-hibernate-observer/-node-database-connection-provider/is-unwrappable-as.html b/docs/build/html/api/net.corda.node.services.schema/-hibernate-observer/-node-database-connection-provider/is-unwrappable-as.html
new file mode 100644
index 0000000000..92b6aab1c7
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.schema/-hibernate-observer/-node-database-connection-provider/is-unwrappable-as.html
@@ -0,0 +1,15 @@
+
+
+HibernateObserver.NodeDatabaseConnectionProvider.isUnwrappableAs -
+
+
+
+net.corda.node.services.schema / HibernateObserver / NodeDatabaseConnectionProvider / isUnwrappableAs
+
+isUnwrappableAs
+
+fun isUnwrappableAs ( unwrapType : Class < * > ? ) : Boolean
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.schema/-hibernate-observer/-node-database-connection-provider/supports-aggressive-release.html b/docs/build/html/api/net.corda.node.services.schema/-hibernate-observer/-node-database-connection-provider/supports-aggressive-release.html
new file mode 100644
index 0000000000..2cd3fb4126
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.schema/-hibernate-observer/-node-database-connection-provider/supports-aggressive-release.html
@@ -0,0 +1,15 @@
+
+
+HibernateObserver.NodeDatabaseConnectionProvider.supportsAggressiveRelease -
+
+
+
+net.corda.node.services.schema / HibernateObserver / NodeDatabaseConnectionProvider / supportsAggressiveRelease
+
+supportsAggressiveRelease
+
+fun supportsAggressiveRelease ( ) : Boolean
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.schema/-hibernate-observer/-node-database-connection-provider/unwrap.html b/docs/build/html/api/net.corda.node.services.schema/-hibernate-observer/-node-database-connection-provider/unwrap.html
new file mode 100644
index 0000000000..09f5c4c257
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.schema/-hibernate-observer/-node-database-connection-provider/unwrap.html
@@ -0,0 +1,15 @@
+
+
+HibernateObserver.NodeDatabaseConnectionProvider.unwrap -
+
+
+
+net.corda.node.services.schema / HibernateObserver / NodeDatabaseConnectionProvider / unwrap
+
+unwrap
+
+fun < T > unwrap ( unwrapType : Class < T > ) : T
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.schema/-hibernate-observer/index.html b/docs/build/html/api/net.corda.node.services.schema/-hibernate-observer/index.html
new file mode 100644
index 0000000000..f5aa67475d
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.schema/-hibernate-observer/index.html
@@ -0,0 +1,66 @@
+
+
+HibernateObserver -
+
+
+
+net.corda.node.services.schema / HibernateObserver
+
+HibernateObserver
+class HibernateObserver
+A vault observer that extracts Object Relational Mappings for contract states that support it, and persists them with Hibernate.
+
+
+Types
+
+Constructors
+
+
+
+
+<init>
+
+HibernateObserver ( services : ServiceHubInternal )
A vault observer that extracts Object Relational Mappings for contract states that support it, and persists them with Hibernate.
+
+
+
+
+Properties
+
+Companion Object Properties
+
+
+
+
+logger
+
+val logger : <ERROR CLASS>
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.schema/-hibernate-observer/logger.html b/docs/build/html/api/net.corda.node.services.schema/-hibernate-observer/logger.html
new file mode 100644
index 0000000000..a33272a6cf
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.schema/-hibernate-observer/logger.html
@@ -0,0 +1,15 @@
+
+
+HibernateObserver.logger -
+
+
+
+net.corda.node.services.schema / HibernateObserver / logger
+
+logger
+
+val logger : <ERROR CLASS>
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.schema/-hibernate-observer/schema-service.html b/docs/build/html/api/net.corda.node.services.schema/-hibernate-observer/schema-service.html
new file mode 100644
index 0000000000..855fd41c83
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.schema/-hibernate-observer/schema-service.html
@@ -0,0 +1,15 @@
+
+
+HibernateObserver.schemaService -
+
+
+
+net.corda.node.services.schema / HibernateObserver / schemaService
+
+schemaService
+
+val schemaService : SchemaService
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.schema/-hibernate-observer/session-factories.html b/docs/build/html/api/net.corda.node.services.schema/-hibernate-observer/session-factories.html
new file mode 100644
index 0000000000..eac87b4325
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.schema/-hibernate-observer/session-factories.html
@@ -0,0 +1,15 @@
+
+
+HibernateObserver.sessionFactories -
+
+
+
+net.corda.node.services.schema / HibernateObserver / sessionFactories
+
+sessionFactories
+
+val sessionFactories : ConcurrentHashMap < MappedSchema , <ERROR CLASS> >
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.schema/-node-schema-service/-init-.html b/docs/build/html/api/net.corda.node.services.schema/-node-schema-service/-init-.html
new file mode 100644
index 0000000000..51cb82028d
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.schema/-node-schema-service/-init-.html
@@ -0,0 +1,20 @@
+
+
+NodeSchemaService. -
+
+
+
+net.corda.node.services.schema / NodeSchemaService / <init>
+
+<init>
+NodeSchemaService ( )
+Most basic implementation of SchemaService .
+TODO: support loading schema options from node configuration.
+TODO: support configuring what schemas are to be selected for persistence.
+TODO: support plugins for schema version upgrading or custom mapping not supported by original QueryableState .
+
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.schema/-node-schema-service/generate-mapped-object.html b/docs/build/html/api/net.corda.node.services.schema/-node-schema-service/generate-mapped-object.html
new file mode 100644
index 0000000000..876e19ce74
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.schema/-node-schema-service/generate-mapped-object.html
@@ -0,0 +1,18 @@
+
+
+NodeSchemaService.generateMappedObject -
+
+
+
+net.corda.node.services.schema / NodeSchemaService / generateMappedObject
+
+generateMappedObject
+
+fun generateMappedObject ( state : QueryableState , schema : MappedSchema ) : PersistentState
+Overrides SchemaService.generateMappedObject
+Map a state to a PersistentState for the given schema, either via direct support from the state
+or via custom logic in this service.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.schema/-node-schema-service/index.html b/docs/build/html/api/net.corda.node.services.schema/-node-schema-service/index.html
new file mode 100644
index 0000000000..518b8589b1
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.schema/-node-schema-service/index.html
@@ -0,0 +1,76 @@
+
+
+NodeSchemaService -
+
+
+
+net.corda.node.services.schema / NodeSchemaService
+
+NodeSchemaService
+class NodeSchemaService : SchemaService , SingletonSerializeAsToken
+Most basic implementation of SchemaService .
+TODO: support loading schema options from node configuration.
+TODO: support configuring what schemas are to be selected for persistence.
+TODO: support plugins for schema version upgrading or custom mapping not supported by original QueryableState .
+
+
+
+
+Constructors
+
+Properties
+
+Functions
+
+Inherited Functions
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.schema/-node-schema-service/schema-options.html b/docs/build/html/api/net.corda.node.services.schema/-node-schema-service/schema-options.html
new file mode 100644
index 0000000000..6d8d6e3fb7
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.schema/-node-schema-service/schema-options.html
@@ -0,0 +1,17 @@
+
+
+NodeSchemaService.schemaOptions -
+
+
+
+net.corda.node.services.schema / NodeSchemaService / schemaOptions
+
+schemaOptions
+
+val schemaOptions : Map < MappedSchema , SchemaOptions >
+Overrides SchemaService.schemaOptions
+Options configured for this nodes schemas. A missing entry for a schema implies all properties are null.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.schema/-node-schema-service/select-schemas.html b/docs/build/html/api/net.corda.node.services.schema/-node-schema-service/select-schemas.html
new file mode 100644
index 0000000000..ffbf9a5daf
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.schema/-node-schema-service/select-schemas.html
@@ -0,0 +1,18 @@
+
+
+NodeSchemaService.selectSchemas -
+
+
+
+net.corda.node.services.schema / NodeSchemaService / selectSchemas
+
+selectSchemas
+
+fun selectSchemas ( state : QueryableState ) : Iterable < MappedSchema >
+Overrides SchemaService.selectSchemas
+Given a state, select schemas to map it to that are supported by generateMappedObject and that are configured
+for this node.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.schema/index.html b/docs/build/html/api/net.corda.node.services.schema/index.html
new file mode 100644
index 0000000000..460d6f9fd1
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.schema/index.html
@@ -0,0 +1,30 @@
+
+
+net.corda.node.services.schema -
+
+
+
+net.corda.node.services.schema
+
+Package net.corda.node.services.schema
+Types
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.statemachine/-protocol-i-o-request/index.html b/docs/build/html/api/net.corda.node.services.statemachine/-protocol-i-o-request/index.html
new file mode 100644
index 0000000000..9f92977a0d
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.statemachine/-protocol-i-o-request/index.html
@@ -0,0 +1,48 @@
+
+
+ProtocolIORequest -
+
+
+
+net.corda.node.services.statemachine / ProtocolIORequest
+
+ProtocolIORequest
+interface ProtocolIORequest
+
+
+Properties
+
+Inheritors
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.statemachine/-protocol-i-o-request/session.html b/docs/build/html/api/net.corda.node.services.statemachine/-protocol-i-o-request/session.html
new file mode 100644
index 0000000000..fc03a060fb
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.statemachine/-protocol-i-o-request/session.html
@@ -0,0 +1,15 @@
+
+
+ProtocolIORequest.session -
+
+
+
+net.corda.node.services.statemachine / ProtocolIORequest / session
+
+session
+
+abstract val session : ProtocolSession
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.statemachine/-protocol-i-o-request/stack-trace-in-case-of-problems.html b/docs/build/html/api/net.corda.node.services.statemachine/-protocol-i-o-request/stack-trace-in-case-of-problems.html
new file mode 100644
index 0000000000..866adc54b0
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.statemachine/-protocol-i-o-request/stack-trace-in-case-of-problems.html
@@ -0,0 +1,15 @@
+
+
+ProtocolIORequest.stackTraceInCaseOfProblems -
+
+
+
+net.corda.node.services.statemachine / ProtocolIORequest / stackTraceInCaseOfProblems
+
+stackTraceInCaseOfProblems
+
+abstract val stackTraceInCaseOfProblems : StackSnapshot
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.statemachine/-protocol-state-machine-impl/-init-.html b/docs/build/html/api/net.corda.node.services.statemachine/-protocol-state-machine-impl/-init-.html
new file mode 100644
index 0000000000..e3dfc6876b
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.statemachine/-protocol-state-machine-impl/-init-.html
@@ -0,0 +1,14 @@
+
+
+ProtocolStateMachineImpl. -
+
+
+
+net.corda.node.services.statemachine / ProtocolStateMachineImpl / <init>
+
+<init>
+ProtocolStateMachineImpl ( id : StateMachineRunId , logic : ProtocolLogic < R > , scheduler : FiberScheduler )
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.statemachine/-protocol-state-machine-impl/current-state-machine.html b/docs/build/html/api/net.corda.node.services.statemachine/-protocol-state-machine-impl/current-state-machine.html
new file mode 100644
index 0000000000..9464218da3
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.statemachine/-protocol-state-machine-impl/current-state-machine.html
@@ -0,0 +1,16 @@
+
+
+ProtocolStateMachineImpl.currentStateMachine -
+
+
+
+net.corda.node.services.statemachine / ProtocolStateMachineImpl / currentStateMachine
+
+currentStateMachine
+
+fun currentStateMachine ( ) : ProtocolStateMachineImpl < * > ?
+Return the current ProtocolStateMachineImpl or null if executing outside of one.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.statemachine/-protocol-state-machine-impl/id.html b/docs/build/html/api/net.corda.node.services.statemachine/-protocol-state-machine-impl/id.html
new file mode 100644
index 0000000000..0e85dca6ed
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.statemachine/-protocol-state-machine-impl/id.html
@@ -0,0 +1,17 @@
+
+
+ProtocolStateMachineImpl.id -
+
+
+
+net.corda.node.services.statemachine / ProtocolStateMachineImpl / id
+
+id
+
+val id : StateMachineRunId
+Overrides ProtocolStateMachine.id
+Unique ID for this machine run, valid across restarts
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.statemachine/-protocol-state-machine-impl/index.html b/docs/build/html/api/net.corda.node.services.statemachine/-protocol-state-machine-impl/index.html
new file mode 100644
index 0000000000..4077930117
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.statemachine/-protocol-state-machine-impl/index.html
@@ -0,0 +1,103 @@
+
+
+ProtocolStateMachineImpl -
+
+
+
+net.corda.node.services.statemachine / ProtocolStateMachineImpl
+
+ProtocolStateMachineImpl
+class ProtocolStateMachineImpl < R > : ProtocolStateMachine < R >
+
+
+Constructors
+
+Properties
+
+Functions
+
+Companion Object Functions
+
+
+
+
+currentStateMachine
+
+fun currentStateMachine ( ) : ProtocolStateMachineImpl < * > ?
Return the current ProtocolStateMachineImpl or null if executing outside of one.
+
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.statemachine/-protocol-state-machine-impl/logger.html b/docs/build/html/api/net.corda.node.services.statemachine/-protocol-state-machine-impl/logger.html
new file mode 100644
index 0000000000..407e06526a
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.statemachine/-protocol-state-machine-impl/logger.html
@@ -0,0 +1,16 @@
+
+
+ProtocolStateMachineImpl.logger -
+
+
+
+net.corda.node.services.statemachine / ProtocolStateMachineImpl / logger
+
+logger
+
+val logger : <ERROR CLASS>
+Overrides ProtocolStateMachine.logger
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.statemachine/-protocol-state-machine-impl/logic.html b/docs/build/html/api/net.corda.node.services.statemachine/-protocol-state-machine-impl/logic.html
new file mode 100644
index 0000000000..6cc24b4bd0
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.statemachine/-protocol-state-machine-impl/logic.html
@@ -0,0 +1,15 @@
+
+
+ProtocolStateMachineImpl.logic -
+
+
+
+net.corda.node.services.statemachine / ProtocolStateMachineImpl / logic
+
+logic
+
+val logic : ProtocolLogic < R >
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.statemachine/-protocol-state-machine-impl/receive.html b/docs/build/html/api/net.corda.node.services.statemachine/-protocol-state-machine-impl/receive.html
new file mode 100644
index 0000000000..cd47d05e7a
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.statemachine/-protocol-state-machine-impl/receive.html
@@ -0,0 +1,16 @@
+
+
+ProtocolStateMachineImpl.receive -
+
+
+
+net.corda.node.services.statemachine / ProtocolStateMachineImpl / receive
+
+receive
+
+fun < T : Any > receive ( otherParty : Party , receiveType : Class < T > , sessionProtocol : ProtocolLogic < * > ) : UntrustworthyData < T >
+Overrides ProtocolStateMachine.receive
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.statemachine/-protocol-state-machine-impl/result-future.html b/docs/build/html/api/net.corda.node.services.statemachine/-protocol-state-machine-impl/result-future.html
new file mode 100644
index 0000000000..f85a9a3281
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.statemachine/-protocol-state-machine-impl/result-future.html
@@ -0,0 +1,20 @@
+
+
+ProtocolStateMachineImpl.resultFuture -
+
+
+
+net.corda.node.services.statemachine / ProtocolStateMachineImpl / resultFuture
+
+resultFuture
+
+val resultFuture : <ERROR CLASS> < R >
+Overrides ProtocolStateMachine.resultFuture
+This future will complete when the call method returns.
+Getter
+
This future will complete when the call method returns.
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.statemachine/-protocol-state-machine-impl/run.html b/docs/build/html/api/net.corda.node.services.statemachine/-protocol-state-machine-impl/run.html
new file mode 100644
index 0000000000..decf507d2f
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.statemachine/-protocol-state-machine-impl/run.html
@@ -0,0 +1,15 @@
+
+
+ProtocolStateMachineImpl.run -
+
+
+
+net.corda.node.services.statemachine / ProtocolStateMachineImpl / run
+
+run
+
+fun run ( ) : R
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.statemachine/-protocol-state-machine-impl/send-and-receive.html b/docs/build/html/api/net.corda.node.services.statemachine/-protocol-state-machine-impl/send-and-receive.html
new file mode 100644
index 0000000000..581421724d
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.statemachine/-protocol-state-machine-impl/send-and-receive.html
@@ -0,0 +1,16 @@
+
+
+ProtocolStateMachineImpl.sendAndReceive -
+
+
+
+net.corda.node.services.statemachine / ProtocolStateMachineImpl / sendAndReceive
+
+sendAndReceive
+
+fun < T : Any > sendAndReceive ( otherParty : Party , payload : Any , receiveType : Class < T > , sessionProtocol : ProtocolLogic < * > ) : UntrustworthyData < T >
+Overrides ProtocolStateMachine.sendAndReceive
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.statemachine/-protocol-state-machine-impl/send.html b/docs/build/html/api/net.corda.node.services.statemachine/-protocol-state-machine-impl/send.html
new file mode 100644
index 0000000000..3b29c9ed81
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.statemachine/-protocol-state-machine-impl/send.html
@@ -0,0 +1,16 @@
+
+
+ProtocolStateMachineImpl.send -
+
+
+
+net.corda.node.services.statemachine / ProtocolStateMachineImpl / send
+
+send
+
+fun send ( otherParty : Party , payload : Any , sessionProtocol : ProtocolLogic < * > ) : Unit
+Overrides ProtocolStateMachine.send
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.statemachine/-protocol-state-machine-impl/service-hub.html b/docs/build/html/api/net.corda.node.services.statemachine/-protocol-state-machine-impl/service-hub.html
new file mode 100644
index 0000000000..add605f480
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.statemachine/-protocol-state-machine-impl/service-hub.html
@@ -0,0 +1,16 @@
+
+
+ProtocolStateMachineImpl.serviceHub -
+
+
+
+net.corda.node.services.statemachine / ProtocolStateMachineImpl / serviceHub
+
+serviceHub
+
+lateinit var serviceHub : ServiceHubInternal
+Overrides ProtocolStateMachine.serviceHub
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.statemachine/-receive-only/-init-.html b/docs/build/html/api/net.corda.node.services.statemachine/-receive-only/-init-.html
new file mode 100644
index 0000000000..19aa34109b
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.statemachine/-receive-only/-init-.html
@@ -0,0 +1,14 @@
+
+
+ReceiveOnly. -
+
+
+
+net.corda.node.services.statemachine / ReceiveOnly / <init>
+
+<init>
+ReceiveOnly ( session : ProtocolSession , receiveType : Class < T > )
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.statemachine/-receive-only/index.html b/docs/build/html/api/net.corda.node.services.statemachine/-receive-only/index.html
new file mode 100644
index 0000000000..a400373855
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.statemachine/-receive-only/index.html
@@ -0,0 +1,48 @@
+
+
+ReceiveOnly -
+
+
+
+net.corda.node.services.statemachine / ReceiveOnly
+
+ReceiveOnly
+data class ReceiveOnly < T : SessionMessage > : ReceiveRequest < T >
+
+
+Constructors
+
+Properties
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.statemachine/-receive-only/receive-type.html b/docs/build/html/api/net.corda.node.services.statemachine/-receive-only/receive-type.html
new file mode 100644
index 0000000000..56c700400e
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.statemachine/-receive-only/receive-type.html
@@ -0,0 +1,16 @@
+
+
+ReceiveOnly.receiveType -
+
+
+
+net.corda.node.services.statemachine / ReceiveOnly / receiveType
+
+receiveType
+
+val receiveType : Class < T >
+Overrides ReceiveRequest.receiveType
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.statemachine/-receive-only/session.html b/docs/build/html/api/net.corda.node.services.statemachine/-receive-only/session.html
new file mode 100644
index 0000000000..dd22382f49
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.statemachine/-receive-only/session.html
@@ -0,0 +1,16 @@
+
+
+ReceiveOnly.session -
+
+
+
+net.corda.node.services.statemachine / ReceiveOnly / session
+
+session
+
+val session : ProtocolSession
+Overrides ProtocolIORequest.session
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.statemachine/-receive-only/stack-trace-in-case-of-problems.html b/docs/build/html/api/net.corda.node.services.statemachine/-receive-only/stack-trace-in-case-of-problems.html
new file mode 100644
index 0000000000..bde1c646db
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.statemachine/-receive-only/stack-trace-in-case-of-problems.html
@@ -0,0 +1,16 @@
+
+
+ReceiveOnly.stackTraceInCaseOfProblems -
+
+
+
+net.corda.node.services.statemachine / ReceiveOnly / stackTraceInCaseOfProblems
+
+stackTraceInCaseOfProblems
+
+val stackTraceInCaseOfProblems : StackSnapshot
+Overrides ProtocolIORequest.stackTraceInCaseOfProblems
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.statemachine/-receive-request/index.html b/docs/build/html/api/net.corda.node.services.statemachine/-receive-request/index.html
new file mode 100644
index 0000000000..54a6744707
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.statemachine/-receive-request/index.html
@@ -0,0 +1,59 @@
+
+
+ReceiveRequest -
+
+
+
+net.corda.node.services.statemachine / ReceiveRequest
+
+ReceiveRequest
+interface ReceiveRequest < T : SessionMessage > : ProtocolIORequest
+
+
+Properties
+
+Inherited Properties
+
+Inheritors
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.statemachine/-receive-request/receive-type.html b/docs/build/html/api/net.corda.node.services.statemachine/-receive-request/receive-type.html
new file mode 100644
index 0000000000..175dff80f2
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.statemachine/-receive-request/receive-type.html
@@ -0,0 +1,15 @@
+
+
+ReceiveRequest.receiveType -
+
+
+
+net.corda.node.services.statemachine / ReceiveRequest / receiveType
+
+receiveType
+
+abstract val receiveType : Class < T >
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.statemachine/-send-and-receive/-init-.html b/docs/build/html/api/net.corda.node.services.statemachine/-send-and-receive/-init-.html
new file mode 100644
index 0000000000..720cb987ce
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.statemachine/-send-and-receive/-init-.html
@@ -0,0 +1,14 @@
+
+
+SendAndReceive. -
+
+
+
+net.corda.node.services.statemachine / SendAndReceive / <init>
+
+<init>
+SendAndReceive ( session : ProtocolSession , message : SessionMessage , receiveType : Class < T > )
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.statemachine/-send-and-receive/index.html b/docs/build/html/api/net.corda.node.services.statemachine/-send-and-receive/index.html
new file mode 100644
index 0000000000..8fb8422c9d
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.statemachine/-send-and-receive/index.html
@@ -0,0 +1,54 @@
+
+
+SendAndReceive -
+
+
+
+net.corda.node.services.statemachine / SendAndReceive
+
+SendAndReceive
+data class SendAndReceive < T : SessionMessage > : SendRequest , ReceiveRequest < T >
+
+
+Constructors
+
+Properties
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.statemachine/-send-and-receive/message.html b/docs/build/html/api/net.corda.node.services.statemachine/-send-and-receive/message.html
new file mode 100644
index 0000000000..628fcb3342
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.statemachine/-send-and-receive/message.html
@@ -0,0 +1,16 @@
+
+
+SendAndReceive.message -
+
+
+
+net.corda.node.services.statemachine / SendAndReceive / message
+
+message
+
+val message : SessionMessage
+Overrides SendRequest.message
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.statemachine/-send-and-receive/receive-type.html b/docs/build/html/api/net.corda.node.services.statemachine/-send-and-receive/receive-type.html
new file mode 100644
index 0000000000..3d4ccd69e4
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.statemachine/-send-and-receive/receive-type.html
@@ -0,0 +1,16 @@
+
+
+SendAndReceive.receiveType -
+
+
+
+net.corda.node.services.statemachine / SendAndReceive / receiveType
+
+receiveType
+
+val receiveType : Class < T >
+Overrides ReceiveRequest.receiveType
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.statemachine/-send-and-receive/session.html b/docs/build/html/api/net.corda.node.services.statemachine/-send-and-receive/session.html
new file mode 100644
index 0000000000..d1ba954bcf
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.statemachine/-send-and-receive/session.html
@@ -0,0 +1,16 @@
+
+
+SendAndReceive.session -
+
+
+
+net.corda.node.services.statemachine / SendAndReceive / session
+
+session
+
+val session : ProtocolSession
+Overrides ProtocolIORequest.session
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.statemachine/-send-and-receive/stack-trace-in-case-of-problems.html b/docs/build/html/api/net.corda.node.services.statemachine/-send-and-receive/stack-trace-in-case-of-problems.html
new file mode 100644
index 0000000000..0573e8b409
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.statemachine/-send-and-receive/stack-trace-in-case-of-problems.html
@@ -0,0 +1,16 @@
+
+
+SendAndReceive.stackTraceInCaseOfProblems -
+
+
+
+net.corda.node.services.statemachine / SendAndReceive / stackTraceInCaseOfProblems
+
+stackTraceInCaseOfProblems
+
+val stackTraceInCaseOfProblems : StackSnapshot
+Overrides ProtocolIORequest.stackTraceInCaseOfProblems
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.statemachine/-send-only/-init-.html b/docs/build/html/api/net.corda.node.services.statemachine/-send-only/-init-.html
new file mode 100644
index 0000000000..744b45f6bd
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.statemachine/-send-only/-init-.html
@@ -0,0 +1,14 @@
+
+
+SendOnly. -
+
+
+
+net.corda.node.services.statemachine / SendOnly / <init>
+
+<init>
+SendOnly ( session : ProtocolSession , message : SessionMessage )
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.statemachine/-send-only/index.html b/docs/build/html/api/net.corda.node.services.statemachine/-send-only/index.html
new file mode 100644
index 0000000000..2d5229f00a
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.statemachine/-send-only/index.html
@@ -0,0 +1,48 @@
+
+
+SendOnly -
+
+
+
+net.corda.node.services.statemachine / SendOnly
+
+SendOnly
+data class SendOnly : SendRequest
+
+
+Constructors
+
+Properties
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.statemachine/-send-only/message.html b/docs/build/html/api/net.corda.node.services.statemachine/-send-only/message.html
new file mode 100644
index 0000000000..0a0dc9a911
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.statemachine/-send-only/message.html
@@ -0,0 +1,16 @@
+
+
+SendOnly.message -
+
+
+
+net.corda.node.services.statemachine / SendOnly / message
+
+message
+
+val message : SessionMessage
+Overrides SendRequest.message
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.statemachine/-send-only/session.html b/docs/build/html/api/net.corda.node.services.statemachine/-send-only/session.html
new file mode 100644
index 0000000000..bd53e1f014
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.statemachine/-send-only/session.html
@@ -0,0 +1,16 @@
+
+
+SendOnly.session -
+
+
+
+net.corda.node.services.statemachine / SendOnly / session
+
+session
+
+val session : ProtocolSession
+Overrides ProtocolIORequest.session
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.statemachine/-send-only/stack-trace-in-case-of-problems.html b/docs/build/html/api/net.corda.node.services.statemachine/-send-only/stack-trace-in-case-of-problems.html
new file mode 100644
index 0000000000..2344049c53
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.statemachine/-send-only/stack-trace-in-case-of-problems.html
@@ -0,0 +1,16 @@
+
+
+SendOnly.stackTraceInCaseOfProblems -
+
+
+
+net.corda.node.services.statemachine / SendOnly / stackTraceInCaseOfProblems
+
+stackTraceInCaseOfProblems
+
+val stackTraceInCaseOfProblems : StackSnapshot
+Overrides ProtocolIORequest.stackTraceInCaseOfProblems
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.statemachine/-send-request/index.html b/docs/build/html/api/net.corda.node.services.statemachine/-send-request/index.html
new file mode 100644
index 0000000000..6235207531
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.statemachine/-send-request/index.html
@@ -0,0 +1,59 @@
+
+
+SendRequest -
+
+
+
+net.corda.node.services.statemachine / SendRequest
+
+SendRequest
+interface SendRequest : ProtocolIORequest
+
+
+Properties
+
+Inherited Properties
+
+Inheritors
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.statemachine/-send-request/message.html b/docs/build/html/api/net.corda.node.services.statemachine/-send-request/message.html
new file mode 100644
index 0000000000..734e56f1b8
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.statemachine/-send-request/message.html
@@ -0,0 +1,15 @@
+
+
+SendRequest.message -
+
+
+
+net.corda.node.services.statemachine / SendRequest / message
+
+message
+
+abstract val message : SessionMessage
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.statemachine/-stack-snapshot/-init-.html b/docs/build/html/api/net.corda.node.services.statemachine/-stack-snapshot/-init-.html
new file mode 100644
index 0000000000..c08da5583a
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.statemachine/-stack-snapshot/-init-.html
@@ -0,0 +1,14 @@
+
+
+StackSnapshot. -
+
+
+
+net.corda.node.services.statemachine / StackSnapshot / <init>
+
+<init>
+StackSnapshot ( )
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.statemachine/-stack-snapshot/index.html b/docs/build/html/api/net.corda.node.services.statemachine/-stack-snapshot/index.html
new file mode 100644
index 0000000000..695aba0341
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.statemachine/-stack-snapshot/index.html
@@ -0,0 +1,36 @@
+
+
+StackSnapshot -
+
+
+
+net.corda.node.services.statemachine / StackSnapshot
+
+StackSnapshot
+class StackSnapshot : Throwable
+
+
+Constructors
+
+
+
+
+<init>
+
+StackSnapshot ( )
+
+
+
+Extension Properties
+
+
+
+
+rootCause
+
+val Throwable . rootCause : Throwable
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.statemachine/-state-machine-manager/-change/-init-.html b/docs/build/html/api/net.corda.node.services.statemachine/-state-machine-manager/-change/-init-.html
new file mode 100644
index 0000000000..cf4b3ad433
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.statemachine/-state-machine-manager/-change/-init-.html
@@ -0,0 +1,14 @@
+
+
+StateMachineManager.Change. -
+
+
+
+net.corda.node.services.statemachine / StateMachineManager / Change / <init>
+
+<init>
+Change ( logic : ProtocolLogic < * > , addOrRemove : AddOrRemove , id : StateMachineRunId )
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.statemachine/-state-machine-manager/-change/add-or-remove.html b/docs/build/html/api/net.corda.node.services.statemachine/-state-machine-manager/-change/add-or-remove.html
new file mode 100644
index 0000000000..a19766fdef
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.statemachine/-state-machine-manager/-change/add-or-remove.html
@@ -0,0 +1,15 @@
+
+
+StateMachineManager.Change.addOrRemove -
+
+
+
+net.corda.node.services.statemachine / StateMachineManager / Change / addOrRemove
+
+addOrRemove
+
+val addOrRemove : AddOrRemove
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.statemachine/-state-machine-manager/-change/id.html b/docs/build/html/api/net.corda.node.services.statemachine/-state-machine-manager/-change/id.html
new file mode 100644
index 0000000000..cf27f48d5b
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.statemachine/-state-machine-manager/-change/id.html
@@ -0,0 +1,15 @@
+
+
+StateMachineManager.Change.id -
+
+
+
+net.corda.node.services.statemachine / StateMachineManager / Change / id
+
+id
+
+val id : StateMachineRunId
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.statemachine/-state-machine-manager/-change/index.html b/docs/build/html/api/net.corda.node.services.statemachine/-state-machine-manager/-change/index.html
new file mode 100644
index 0000000000..d0c052b916
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.statemachine/-state-machine-manager/-change/index.html
@@ -0,0 +1,48 @@
+
+
+StateMachineManager.Change -
+
+
+
+net.corda.node.services.statemachine / StateMachineManager / Change
+
+Change
+data class Change
+
+
+Constructors
+
+Properties
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.statemachine/-state-machine-manager/-change/logic.html b/docs/build/html/api/net.corda.node.services.statemachine/-state-machine-manager/-change/logic.html
new file mode 100644
index 0000000000..8a38bfc17f
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.statemachine/-state-machine-manager/-change/logic.html
@@ -0,0 +1,15 @@
+
+
+StateMachineManager.Change.logic -
+
+
+
+net.corda.node.services.statemachine / StateMachineManager / Change / logic
+
+logic
+
+val logic : ProtocolLogic < * >
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.statemachine/-state-machine-manager/-existing-session-message/index.html b/docs/build/html/api/net.corda.node.services.statemachine/-state-machine-manager/-existing-session-message/index.html
new file mode 100644
index 0000000000..093e9bcd7b
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.statemachine/-state-machine-manager/-existing-session-message/index.html
@@ -0,0 +1,48 @@
+
+
+StateMachineManager.ExistingSessionMessage -
+
+
+
+net.corda.node.services.statemachine / StateMachineManager / ExistingSessionMessage
+
+ExistingSessionMessage
+interface ExistingSessionMessage : SessionMessage
+
+
+Properties
+
+Inheritors
+
+
+
+
+SessionData
+
+data class SessionData : ExistingSessionMessage
+
+
+
+SessionEnd
+
+data class SessionEnd : ExistingSessionMessage
+
+
+
+SessionInitResponse
+
+interface SessionInitResponse : ExistingSessionMessage
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.statemachine/-state-machine-manager/-existing-session-message/recipient-session-id.html b/docs/build/html/api/net.corda.node.services.statemachine/-state-machine-manager/-existing-session-message/recipient-session-id.html
new file mode 100644
index 0000000000..9099faecd7
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.statemachine/-state-machine-manager/-existing-session-message/recipient-session-id.html
@@ -0,0 +1,15 @@
+
+
+StateMachineManager.ExistingSessionMessage.recipientSessionId -
+
+
+
+net.corda.node.services.statemachine / StateMachineManager / ExistingSessionMessage / recipientSessionId
+
+recipientSessionId
+
+abstract val recipientSessionId : Long
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.statemachine/-state-machine-manager/-fiber-scheduler/-init-.html b/docs/build/html/api/net.corda.node.services.statemachine/-state-machine-manager/-fiber-scheduler/-init-.html
new file mode 100644
index 0000000000..df8d0bfa1d
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.statemachine/-state-machine-manager/-fiber-scheduler/-init-.html
@@ -0,0 +1,14 @@
+
+
+StateMachineManager.FiberScheduler. -
+
+
+
+net.corda.node.services.statemachine / StateMachineManager / FiberScheduler / <init>
+
+<init>
+FiberScheduler ( )
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.statemachine/-state-machine-manager/-fiber-scheduler/index.html b/docs/build/html/api/net.corda.node.services.statemachine/-state-machine-manager/-fiber-scheduler/index.html
new file mode 100644
index 0000000000..6a4cf0a2f6
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.statemachine/-state-machine-manager/-fiber-scheduler/index.html
@@ -0,0 +1,25 @@
+
+
+StateMachineManager.FiberScheduler -
+
+
+
+net.corda.node.services.statemachine / StateMachineManager / FiberScheduler
+
+FiberScheduler
+inner class FiberScheduler
+
+
+Constructors
+
+
+
+
+<init>
+
+FiberScheduler ( )
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.statemachine/-state-machine-manager/-init-.html b/docs/build/html/api/net.corda.node.services.statemachine/-state-machine-manager/-init-.html
new file mode 100644
index 0000000000..ea419bfe5a
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.statemachine/-state-machine-manager/-init-.html
@@ -0,0 +1,32 @@
+
+
+StateMachineManager. -
+
+
+
+net.corda.node.services.statemachine / StateMachineManager / <init>
+
+<init>
+StateMachineManager ( serviceHub : ServiceHubInternal , tokenizableServices : List < Any > , checkpointStorage : CheckpointStorage , executor : AffinityExecutor , database : <ERROR CLASS> )
+A StateMachineManager is responsible for coordination and persistence of multiple ProtocolStateMachine objects.
+Each such object represents an instantiation of a (two-party) protocol that has reached a particular point.
+An implementation of this class will persist state machines to long term storage so they can survive process restarts
+and, if run with a single-threaded executor, will ensure no two state machines run concurrently with each other
+(bad for performance, good for programmer mental health).
+A "state machine" is a class with a single call method. The call method and any others it invokes are rewritten by
+a bytecode rewriting engine called Quasar, to ensure the code can be suspended and resumed at any point.
+The SMM will always invoke the protocol fibers on the given AffinityExecutor , regardless of which thread actually
+starts them via add .
+TODO: Consider the issue of continuation identity more deeply: is it a safe assumption that a serialised
+continuation is always unique?
+TODO: Think about how to bring the system to a clean stop so it can be upgraded without any serialised stacks on disk
+TODO: Timeouts
+TODO: Surfacing of exceptions via an API and/or management UI
+TODO: Ability to control checkpointing explicitly, for cases where you know replaying a message cant hurt
+TODO: Implement stub/skel classes that provide a basic RPC framework on top of this.
+
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.statemachine/-state-machine-manager/-protocol-session/-init-.html b/docs/build/html/api/net.corda.node.services.statemachine/-state-machine-manager/-protocol-session/-init-.html
new file mode 100644
index 0000000000..23e1b85646
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.statemachine/-state-machine-manager/-protocol-session/-init-.html
@@ -0,0 +1,14 @@
+
+
+StateMachineManager.ProtocolSession. -
+
+
+
+net.corda.node.services.statemachine / StateMachineManager / ProtocolSession / <init>
+
+<init>
+ProtocolSession ( protocol : ProtocolLogic < * > , otherParty : Party , ourSessionId : Long , otherPartySessionId : Long ? , waitingForResponse : Boolean = false)
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.statemachine/-state-machine-manager/-protocol-session/index.html b/docs/build/html/api/net.corda.node.services.statemachine/-state-machine-manager/-protocol-session/index.html
new file mode 100644
index 0000000000..2f2e473057
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.statemachine/-state-machine-manager/-protocol-session/index.html
@@ -0,0 +1,72 @@
+
+
+StateMachineManager.ProtocolSession -
+
+
+
+net.corda.node.services.statemachine / StateMachineManager / ProtocolSession
+
+ProtocolSession
+data class ProtocolSession
+
+
+Constructors
+
+
+
+
+<init>
+
+ProtocolSession ( protocol : ProtocolLogic < * > , otherParty : Party , ourSessionId : Long , otherPartySessionId : Long ? , waitingForResponse : Boolean = false)
+
+
+
+Properties
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.statemachine/-state-machine-manager/-protocol-session/other-party-session-id.html b/docs/build/html/api/net.corda.node.services.statemachine/-state-machine-manager/-protocol-session/other-party-session-id.html
new file mode 100644
index 0000000000..8aa6cca0c9
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.statemachine/-state-machine-manager/-protocol-session/other-party-session-id.html
@@ -0,0 +1,15 @@
+
+
+StateMachineManager.ProtocolSession.otherPartySessionId -
+
+
+
+net.corda.node.services.statemachine / StateMachineManager / ProtocolSession / otherPartySessionId
+
+otherPartySessionId
+
+var otherPartySessionId : Long ?
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.statemachine/-state-machine-manager/-protocol-session/other-party.html b/docs/build/html/api/net.corda.node.services.statemachine/-state-machine-manager/-protocol-session/other-party.html
new file mode 100644
index 0000000000..f23c9fad1d
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.statemachine/-state-machine-manager/-protocol-session/other-party.html
@@ -0,0 +1,15 @@
+
+
+StateMachineManager.ProtocolSession.otherParty -
+
+
+
+net.corda.node.services.statemachine / StateMachineManager / ProtocolSession / otherParty
+
+otherParty
+
+val otherParty : Party
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.statemachine/-state-machine-manager/-protocol-session/our-session-id.html b/docs/build/html/api/net.corda.node.services.statemachine/-state-machine-manager/-protocol-session/our-session-id.html
new file mode 100644
index 0000000000..6d8593bbe0
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.statemachine/-state-machine-manager/-protocol-session/our-session-id.html
@@ -0,0 +1,15 @@
+
+
+StateMachineManager.ProtocolSession.ourSessionId -
+
+
+
+net.corda.node.services.statemachine / StateMachineManager / ProtocolSession / ourSessionId
+
+ourSessionId
+
+val ourSessionId : Long
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.statemachine/-state-machine-manager/-protocol-session/protocol.html b/docs/build/html/api/net.corda.node.services.statemachine/-state-machine-manager/-protocol-session/protocol.html
new file mode 100644
index 0000000000..1b5c2cb99c
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.statemachine/-state-machine-manager/-protocol-session/protocol.html
@@ -0,0 +1,15 @@
+
+
+StateMachineManager.ProtocolSession.protocol -
+
+
+
+net.corda.node.services.statemachine / StateMachineManager / ProtocolSession / protocol
+
+protocol
+
+val protocol : ProtocolLogic < * >
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.statemachine/-state-machine-manager/-protocol-session/psm.html b/docs/build/html/api/net.corda.node.services.statemachine/-state-machine-manager/-protocol-session/psm.html
new file mode 100644
index 0000000000..50e86adefa
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.statemachine/-state-machine-manager/-protocol-session/psm.html
@@ -0,0 +1,15 @@
+
+
+StateMachineManager.ProtocolSession.psm -
+
+
+
+net.corda.node.services.statemachine / StateMachineManager / ProtocolSession / psm
+
+psm
+
+val psm : ProtocolStateMachineImpl < * >
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.statemachine/-state-machine-manager/-protocol-session/received-messages.html b/docs/build/html/api/net.corda.node.services.statemachine/-state-machine-manager/-protocol-session/received-messages.html
new file mode 100644
index 0000000000..1ba21f3460
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.statemachine/-state-machine-manager/-protocol-session/received-messages.html
@@ -0,0 +1,15 @@
+
+
+StateMachineManager.ProtocolSession.receivedMessages -
+
+
+
+net.corda.node.services.statemachine / StateMachineManager / ProtocolSession / receivedMessages
+
+receivedMessages
+
+val receivedMessages : ConcurrentLinkedQueue < ExistingSessionMessage >
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.statemachine/-state-machine-manager/-protocol-session/waiting-for-response.html b/docs/build/html/api/net.corda.node.services.statemachine/-state-machine-manager/-protocol-session/waiting-for-response.html
new file mode 100644
index 0000000000..6c728e05e0
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.statemachine/-state-machine-manager/-protocol-session/waiting-for-response.html
@@ -0,0 +1,15 @@
+
+
+StateMachineManager.ProtocolSession.waitingForResponse -
+
+
+
+net.corda.node.services.statemachine / StateMachineManager / ProtocolSession / waitingForResponse
+
+waitingForResponse
+
+var waitingForResponse : Boolean
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.statemachine/-state-machine-manager/-session-confirm/-init-.html b/docs/build/html/api/net.corda.node.services.statemachine/-state-machine-manager/-session-confirm/-init-.html
new file mode 100644
index 0000000000..cf28829d35
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.statemachine/-state-machine-manager/-session-confirm/-init-.html
@@ -0,0 +1,14 @@
+
+
+StateMachineManager.SessionConfirm. -
+
+
+
+net.corda.node.services.statemachine / StateMachineManager / SessionConfirm / <init>
+
+<init>
+SessionConfirm ( initiatorSessionId : Long , initiatedSessionId : Long )
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.statemachine/-state-machine-manager/-session-confirm/index.html b/docs/build/html/api/net.corda.node.services.statemachine/-state-machine-manager/-session-confirm/index.html
new file mode 100644
index 0000000000..c82e1ba825
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.statemachine/-state-machine-manager/-session-confirm/index.html
@@ -0,0 +1,48 @@
+
+
+StateMachineManager.SessionConfirm -
+
+
+
+net.corda.node.services.statemachine / StateMachineManager / SessionConfirm
+
+SessionConfirm
+data class SessionConfirm : SessionInitResponse
+
+
+Constructors
+
+
+
+
+<init>
+
+SessionConfirm ( initiatorSessionId : Long , initiatedSessionId : Long )
+
+
+
+Properties
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.statemachine/-state-machine-manager/-session-confirm/initiated-session-id.html b/docs/build/html/api/net.corda.node.services.statemachine/-state-machine-manager/-session-confirm/initiated-session-id.html
new file mode 100644
index 0000000000..d15be75d4c
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.statemachine/-state-machine-manager/-session-confirm/initiated-session-id.html
@@ -0,0 +1,15 @@
+
+
+StateMachineManager.SessionConfirm.initiatedSessionId -
+
+
+
+net.corda.node.services.statemachine / StateMachineManager / SessionConfirm / initiatedSessionId
+
+initiatedSessionId
+
+val initiatedSessionId : Long
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.statemachine/-state-machine-manager/-session-confirm/initiator-session-id.html b/docs/build/html/api/net.corda.node.services.statemachine/-state-machine-manager/-session-confirm/initiator-session-id.html
new file mode 100644
index 0000000000..7c6d263f05
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.statemachine/-state-machine-manager/-session-confirm/initiator-session-id.html
@@ -0,0 +1,15 @@
+
+
+StateMachineManager.SessionConfirm.initiatorSessionId -
+
+
+
+net.corda.node.services.statemachine / StateMachineManager / SessionConfirm / initiatorSessionId
+
+initiatorSessionId
+
+val initiatorSessionId : Long
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.statemachine/-state-machine-manager/-session-confirm/recipient-session-id.html b/docs/build/html/api/net.corda.node.services.statemachine/-state-machine-manager/-session-confirm/recipient-session-id.html
new file mode 100644
index 0000000000..fa1e169350
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.statemachine/-state-machine-manager/-session-confirm/recipient-session-id.html
@@ -0,0 +1,16 @@
+
+
+StateMachineManager.SessionConfirm.recipientSessionId -
+
+
+
+net.corda.node.services.statemachine / StateMachineManager / SessionConfirm / recipientSessionId
+
+recipientSessionId
+
+val recipientSessionId : Long
+Overrides ExistingSessionMessage.recipientSessionId
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.statemachine/-state-machine-manager/-session-data/-init-.html b/docs/build/html/api/net.corda.node.services.statemachine/-state-machine-manager/-session-data/-init-.html
new file mode 100644
index 0000000000..89215c2605
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.statemachine/-state-machine-manager/-session-data/-init-.html
@@ -0,0 +1,14 @@
+
+
+StateMachineManager.SessionData. -
+
+
+
+net.corda.node.services.statemachine / StateMachineManager / SessionData / <init>
+
+<init>
+SessionData ( recipientSessionId : Long , payload : Any )
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.statemachine/-state-machine-manager/-session-data/index.html b/docs/build/html/api/net.corda.node.services.statemachine/-state-machine-manager/-session-data/index.html
new file mode 100644
index 0000000000..625b318147
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.statemachine/-state-machine-manager/-session-data/index.html
@@ -0,0 +1,53 @@
+
+
+StateMachineManager.SessionData -
+
+
+
+net.corda.node.services.statemachine / StateMachineManager / SessionData
+
+SessionData
+data class SessionData : ExistingSessionMessage
+
+
+Constructors
+
+
+
+
+<init>
+
+SessionData ( recipientSessionId : Long , payload : Any )
+
+
+
+Properties
+
+Functions
+
+
+
+
+toString
+
+fun toString ( ) : String
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.statemachine/-state-machine-manager/-session-data/payload.html b/docs/build/html/api/net.corda.node.services.statemachine/-state-machine-manager/-session-data/payload.html
new file mode 100644
index 0000000000..3034ce04c8
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.statemachine/-state-machine-manager/-session-data/payload.html
@@ -0,0 +1,15 @@
+
+
+StateMachineManager.SessionData.payload -
+
+
+
+net.corda.node.services.statemachine / StateMachineManager / SessionData / payload
+
+payload
+
+val payload : Any
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.statemachine/-state-machine-manager/-session-data/recipient-session-id.html b/docs/build/html/api/net.corda.node.services.statemachine/-state-machine-manager/-session-data/recipient-session-id.html
new file mode 100644
index 0000000000..d609658b3b
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.statemachine/-state-machine-manager/-session-data/recipient-session-id.html
@@ -0,0 +1,16 @@
+
+
+StateMachineManager.SessionData.recipientSessionId -
+
+
+
+net.corda.node.services.statemachine / StateMachineManager / SessionData / recipientSessionId
+
+recipientSessionId
+
+val recipientSessionId : Long
+Overrides ExistingSessionMessage.recipientSessionId
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.statemachine/-state-machine-manager/-session-data/to-string.html b/docs/build/html/api/net.corda.node.services.statemachine/-state-machine-manager/-session-data/to-string.html
new file mode 100644
index 0000000000..bedeedd551
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.statemachine/-state-machine-manager/-session-data/to-string.html
@@ -0,0 +1,15 @@
+
+
+StateMachineManager.SessionData.toString -
+
+
+
+net.corda.node.services.statemachine / StateMachineManager / SessionData / toString
+
+toString
+
+fun toString ( ) : String
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.statemachine/-state-machine-manager/-session-end/-init-.html b/docs/build/html/api/net.corda.node.services.statemachine/-state-machine-manager/-session-end/-init-.html
new file mode 100644
index 0000000000..e2c2c0a62e
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.statemachine/-state-machine-manager/-session-end/-init-.html
@@ -0,0 +1,14 @@
+
+
+StateMachineManager.SessionEnd. -
+
+
+
+net.corda.node.services.statemachine / StateMachineManager / SessionEnd / <init>
+
+<init>
+SessionEnd ( recipientSessionId : Long )
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.statemachine/-state-machine-manager/-session-end/index.html b/docs/build/html/api/net.corda.node.services.statemachine/-state-machine-manager/-session-end/index.html
new file mode 100644
index 0000000000..deefacc4e9
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.statemachine/-state-machine-manager/-session-end/index.html
@@ -0,0 +1,36 @@
+
+
+StateMachineManager.SessionEnd -
+
+
+
+net.corda.node.services.statemachine / StateMachineManager / SessionEnd
+
+SessionEnd
+data class SessionEnd : ExistingSessionMessage
+
+
+Constructors
+
+
+
+
+<init>
+
+SessionEnd ( recipientSessionId : Long )
+
+
+
+Properties
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.statemachine/-state-machine-manager/-session-end/recipient-session-id.html b/docs/build/html/api/net.corda.node.services.statemachine/-state-machine-manager/-session-end/recipient-session-id.html
new file mode 100644
index 0000000000..d95cd36633
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.statemachine/-state-machine-manager/-session-end/recipient-session-id.html
@@ -0,0 +1,16 @@
+
+
+StateMachineManager.SessionEnd.recipientSessionId -
+
+
+
+net.corda.node.services.statemachine / StateMachineManager / SessionEnd / recipientSessionId
+
+recipientSessionId
+
+val recipientSessionId : Long
+Overrides ExistingSessionMessage.recipientSessionId
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.statemachine/-state-machine-manager/-session-init-response.html b/docs/build/html/api/net.corda.node.services.statemachine/-state-machine-manager/-session-init-response.html
new file mode 100644
index 0000000000..60a0cca79c
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.statemachine/-state-machine-manager/-session-init-response.html
@@ -0,0 +1,42 @@
+
+
+StateMachineManager.SessionInitResponse -
+
+
+
+net.corda.node.services.statemachine / StateMachineManager / SessionInitResponse
+
+SessionInitResponse
+interface SessionInitResponse : ExistingSessionMessage
+
+
+Inherited Properties
+
+Inheritors
+
+
+
+
+SessionConfirm
+
+data class SessionConfirm : SessionInitResponse
+
+
+
+SessionReject
+
+data class SessionReject : SessionInitResponse
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.statemachine/-state-machine-manager/-session-init/-init-.html b/docs/build/html/api/net.corda.node.services.statemachine/-state-machine-manager/-session-init/-init-.html
new file mode 100644
index 0000000000..de6d3af280
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.statemachine/-state-machine-manager/-session-init/-init-.html
@@ -0,0 +1,14 @@
+
+
+StateMachineManager.SessionInit. -
+
+
+
+net.corda.node.services.statemachine / StateMachineManager / SessionInit / <init>
+
+<init>
+SessionInit ( initiatorSessionId : Long , initiatorParty : Party , protocolName : String , firstPayload : Any ? )
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.statemachine/-state-machine-manager/-session-init/first-payload.html b/docs/build/html/api/net.corda.node.services.statemachine/-state-machine-manager/-session-init/first-payload.html
new file mode 100644
index 0000000000..33e93dbd9d
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.statemachine/-state-machine-manager/-session-init/first-payload.html
@@ -0,0 +1,15 @@
+
+
+StateMachineManager.SessionInit.firstPayload -
+
+
+
+net.corda.node.services.statemachine / StateMachineManager / SessionInit / firstPayload
+
+firstPayload
+
+val firstPayload : Any ?
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.statemachine/-state-machine-manager/-session-init/index.html b/docs/build/html/api/net.corda.node.services.statemachine/-state-machine-manager/-session-init/index.html
new file mode 100644
index 0000000000..4ad7a01af3
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.statemachine/-state-machine-manager/-session-init/index.html
@@ -0,0 +1,54 @@
+
+
+StateMachineManager.SessionInit -
+
+
+
+net.corda.node.services.statemachine / StateMachineManager / SessionInit
+
+SessionInit
+data class SessionInit : SessionMessage
+
+
+Constructors
+
+
+
+
+<init>
+
+SessionInit ( initiatorSessionId : Long , initiatorParty : Party , protocolName : String , firstPayload : Any ? )
+
+
+
+Properties
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.statemachine/-state-machine-manager/-session-init/initiator-party.html b/docs/build/html/api/net.corda.node.services.statemachine/-state-machine-manager/-session-init/initiator-party.html
new file mode 100644
index 0000000000..0502c7d92e
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.statemachine/-state-machine-manager/-session-init/initiator-party.html
@@ -0,0 +1,15 @@
+
+
+StateMachineManager.SessionInit.initiatorParty -
+
+
+
+net.corda.node.services.statemachine / StateMachineManager / SessionInit / initiatorParty
+
+initiatorParty
+
+val initiatorParty : Party
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.statemachine/-state-machine-manager/-session-init/initiator-session-id.html b/docs/build/html/api/net.corda.node.services.statemachine/-state-machine-manager/-session-init/initiator-session-id.html
new file mode 100644
index 0000000000..9d1d4c7a86
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.statemachine/-state-machine-manager/-session-init/initiator-session-id.html
@@ -0,0 +1,15 @@
+
+
+StateMachineManager.SessionInit.initiatorSessionId -
+
+
+
+net.corda.node.services.statemachine / StateMachineManager / SessionInit / initiatorSessionId
+
+initiatorSessionId
+
+val initiatorSessionId : Long
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.statemachine/-state-machine-manager/-session-init/protocol-name.html b/docs/build/html/api/net.corda.node.services.statemachine/-state-machine-manager/-session-init/protocol-name.html
new file mode 100644
index 0000000000..383eeed2de
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.statemachine/-state-machine-manager/-session-init/protocol-name.html
@@ -0,0 +1,15 @@
+
+
+StateMachineManager.SessionInit.protocolName -
+
+
+
+net.corda.node.services.statemachine / StateMachineManager / SessionInit / protocolName
+
+protocolName
+
+val protocolName : String
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.statemachine/-state-machine-manager/-session-message.html b/docs/build/html/api/net.corda.node.services.statemachine/-state-machine-manager/-session-message.html
new file mode 100644
index 0000000000..a39ae4108a
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.statemachine/-state-machine-manager/-session-message.html
@@ -0,0 +1,31 @@
+
+
+StateMachineManager.SessionMessage -
+
+
+
+net.corda.node.services.statemachine / StateMachineManager / SessionMessage
+
+SessionMessage
+interface SessionMessage
+
+
+Inheritors
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.statemachine/-state-machine-manager/-session-reject/-init-.html b/docs/build/html/api/net.corda.node.services.statemachine/-state-machine-manager/-session-reject/-init-.html
new file mode 100644
index 0000000000..b1347efbb3
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.statemachine/-state-machine-manager/-session-reject/-init-.html
@@ -0,0 +1,14 @@
+
+
+StateMachineManager.SessionReject. -
+
+
+
+net.corda.node.services.statemachine / StateMachineManager / SessionReject / <init>
+
+<init>
+SessionReject ( initiatorSessionId : Long , errorMessage : String )
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.statemachine/-state-machine-manager/-session-reject/error-message.html b/docs/build/html/api/net.corda.node.services.statemachine/-state-machine-manager/-session-reject/error-message.html
new file mode 100644
index 0000000000..4973db92e7
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.statemachine/-state-machine-manager/-session-reject/error-message.html
@@ -0,0 +1,15 @@
+
+
+StateMachineManager.SessionReject.errorMessage -
+
+
+
+net.corda.node.services.statemachine / StateMachineManager / SessionReject / errorMessage
+
+errorMessage
+
+val errorMessage : String
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.statemachine/-state-machine-manager/-session-reject/index.html b/docs/build/html/api/net.corda.node.services.statemachine/-state-machine-manager/-session-reject/index.html
new file mode 100644
index 0000000000..fb820a34e7
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.statemachine/-state-machine-manager/-session-reject/index.html
@@ -0,0 +1,48 @@
+
+
+StateMachineManager.SessionReject -
+
+
+
+net.corda.node.services.statemachine / StateMachineManager / SessionReject
+
+SessionReject
+data class SessionReject : SessionInitResponse
+
+
+Constructors
+
+
+
+
+<init>
+
+SessionReject ( initiatorSessionId : Long , errorMessage : String )
+
+
+
+Properties
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.statemachine/-state-machine-manager/-session-reject/initiator-session-id.html b/docs/build/html/api/net.corda.node.services.statemachine/-state-machine-manager/-session-reject/initiator-session-id.html
new file mode 100644
index 0000000000..06f6e398af
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.statemachine/-state-machine-manager/-session-reject/initiator-session-id.html
@@ -0,0 +1,15 @@
+
+
+StateMachineManager.SessionReject.initiatorSessionId -
+
+
+
+net.corda.node.services.statemachine / StateMachineManager / SessionReject / initiatorSessionId
+
+initiatorSessionId
+
+val initiatorSessionId : Long
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.statemachine/-state-machine-manager/-session-reject/recipient-session-id.html b/docs/build/html/api/net.corda.node.services.statemachine/-state-machine-manager/-session-reject/recipient-session-id.html
new file mode 100644
index 0000000000..17aff05206
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.statemachine/-state-machine-manager/-session-reject/recipient-session-id.html
@@ -0,0 +1,16 @@
+
+
+StateMachineManager.SessionReject.recipientSessionId -
+
+
+
+net.corda.node.services.statemachine / StateMachineManager / SessionReject / recipientSessionId
+
+recipientSessionId
+
+val recipientSessionId : Long
+Overrides ExistingSessionMessage.recipientSessionId
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.statemachine/-state-machine-manager/add.html b/docs/build/html/api/net.corda.node.services.statemachine/-state-machine-manager/add.html
new file mode 100644
index 0000000000..036918ce19
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.statemachine/-state-machine-manager/add.html
@@ -0,0 +1,18 @@
+
+
+StateMachineManager.add -
+
+
+
+net.corda.node.services.statemachine / StateMachineManager / add
+
+add
+
+fun < T > add ( logic : ProtocolLogic < T > ) : ProtocolStateMachine < T >
+Kicks off a brand new state machine of the given class.
+The state machine will be persisted when it suspends, with automated restart if the StateMachineManager is
+restarted with checkpointed state machines in the storage service.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.statemachine/-state-machine-manager/all-state-machines.html b/docs/build/html/api/net.corda.node.services.statemachine/-state-machine-manager/all-state-machines.html
new file mode 100644
index 0000000000..b19016c73c
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.statemachine/-state-machine-manager/all-state-machines.html
@@ -0,0 +1,15 @@
+
+
+StateMachineManager.allStateMachines -
+
+
+
+net.corda.node.services.statemachine / StateMachineManager / allStateMachines
+
+allStateMachines
+
+val allStateMachines : List < ProtocolLogic < * > >
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.statemachine/-state-machine-manager/changes.html b/docs/build/html/api/net.corda.node.services.statemachine/-state-machine-manager/changes.html
new file mode 100644
index 0000000000..61163eeb9d
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.statemachine/-state-machine-manager/changes.html
@@ -0,0 +1,17 @@
+
+
+StateMachineManager.changes -
+
+
+
+net.corda.node.services.statemachine / StateMachineManager / changes
+
+changes
+
+val changes : <ERROR CLASS> < Change >
+An observable that emits triples of the changing protocol, the type of change, and a process-specific ID number
+which may change across restarts.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.statemachine/-state-machine-manager/checkpoint-storage.html b/docs/build/html/api/net.corda.node.services.statemachine/-state-machine-manager/checkpoint-storage.html
new file mode 100644
index 0000000000..cae0f68d1b
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.statemachine/-state-machine-manager/checkpoint-storage.html
@@ -0,0 +1,15 @@
+
+
+StateMachineManager.checkpointStorage -
+
+
+
+net.corda.node.services.statemachine / StateMachineManager / checkpointStorage
+
+checkpointStorage
+
+val checkpointStorage : CheckpointStorage
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.statemachine/-state-machine-manager/database.html b/docs/build/html/api/net.corda.node.services.statemachine/-state-machine-manager/database.html
new file mode 100644
index 0000000000..322d5f5394
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.statemachine/-state-machine-manager/database.html
@@ -0,0 +1,15 @@
+
+
+StateMachineManager.database -
+
+
+
+net.corda.node.services.statemachine / StateMachineManager / database
+
+database
+
+val database : <ERROR CLASS>
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.statemachine/-state-machine-manager/executor.html b/docs/build/html/api/net.corda.node.services.statemachine/-state-machine-manager/executor.html
new file mode 100644
index 0000000000..e2f56dd670
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.statemachine/-state-machine-manager/executor.html
@@ -0,0 +1,15 @@
+
+
+StateMachineManager.executor -
+
+
+
+net.corda.node.services.statemachine / StateMachineManager / executor
+
+executor
+
+val executor : AffinityExecutor
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.statemachine/-state-machine-manager/find-state-machines.html b/docs/build/html/api/net.corda.node.services.statemachine/-state-machine-manager/find-state-machines.html
new file mode 100644
index 0000000000..8e26c63926
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.statemachine/-state-machine-manager/find-state-machines.html
@@ -0,0 +1,16 @@
+
+
+StateMachineManager.findStateMachines -
+
+
+
+net.corda.node.services.statemachine / StateMachineManager / findStateMachines
+
+findStateMachines
+
+fun < P : ProtocolLogic < T > , T > findStateMachines ( protocolClass : Class < P > ) : List < <ERROR CLASS> < P , <ERROR CLASS> < T > > >
+Returns a list of all state machines executing the given protocol logic at the top level (subprotocols do not count)
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.statemachine/-state-machine-manager/index.html b/docs/build/html/api/net.corda.node.services.statemachine/-state-machine-manager/index.html
new file mode 100644
index 0000000000..b07d14aabf
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.statemachine/-state-machine-manager/index.html
@@ -0,0 +1,208 @@
+
+
+StateMachineManager -
+
+
+
+net.corda.node.services.statemachine / StateMachineManager
+
+StateMachineManager
+class StateMachineManager
+A StateMachineManager is responsible for coordination and persistence of multiple ProtocolStateMachine objects.
+Each such object represents an instantiation of a (two-party) protocol that has reached a particular point.
+An implementation of this class will persist state machines to long term storage so they can survive process restarts
+and, if run with a single-threaded executor, will ensure no two state machines run concurrently with each other
+(bad for performance, good for programmer mental health).
+A "state machine" is a class with a single call method. The call method and any others it invokes are rewritten by
+a bytecode rewriting engine called Quasar, to ensure the code can be suspended and resumed at any point.
+The SMM will always invoke the protocol fibers on the given AffinityExecutor , regardless of which thread actually
+starts them via add .
+TODO: Consider the issue of continuation identity more deeply: is it a safe assumption that a serialised
+continuation is always unique?
+TODO: Think about how to bring the system to a clean stop so it can be upgraded without any serialised stacks on disk
+TODO: Timeouts
+TODO: Surfacing of exceptions via an API and/or management UI
+TODO: Ability to control checkpointing explicitly, for cases where you know replaying a message cant hurt
+TODO: Implement stub/skel classes that provide a basic RPC framework on top of this.
+
+
+
+
+Types
+
+Constructors
+
+
+
+
+<init>
+
+StateMachineManager ( serviceHub : ServiceHubInternal , tokenizableServices : List < Any > , checkpointStorage : CheckpointStorage , executor : AffinityExecutor , database : <ERROR CLASS> )
A StateMachineManager is responsible for coordination and persistence of multiple ProtocolStateMachine objects.
+Each such object represents an instantiation of a (two-party) protocol that has reached a particular point.
+
+
+
+
+Properties
+
+Functions
+
+
+
+
+add
+
+fun < T > add ( logic : ProtocolLogic < T > ) : ProtocolStateMachine < T >
Kicks off a brand new state machine of the given class.
+The state machine will be persisted when it suspends, with automated restart if the StateMachineManager is
+restarted with checkpointed state machines in the storage service.
+
+
+
+
+findStateMachines
+
+fun < P : ProtocolLogic < T > , T > findStateMachines ( protocolClass : Class < P > ) : List < <ERROR CLASS> < P , <ERROR CLASS> < T > > >
Returns a list of all state machines executing the given protocol logic at the top level (subprotocols do not count)
+
+
+
+
+start
+
+fun start ( ) : Unit
+
+
+
+stop
+
+fun stop ( allowedUnsuspendedFiberCount : Int = 0) : Unit
Start the shutdown process, bringing the StateMachineManager to a controlled stop. When this method returns,
+all Fibers have been suspended and checkpointed, or have completed.
+
+
+
+
+track
+
+fun track ( ) : <ERROR CLASS> < List < ProtocolStateMachineImpl < * > > , <ERROR CLASS> < Change > >
Atomic get snapshot + subscribe. This is needed so we dont miss updates between subscriptions to changes and
+calls to allStateMachines
+
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.statemachine/-state-machine-manager/scheduler.html b/docs/build/html/api/net.corda.node.services.statemachine/-state-machine-manager/scheduler.html
new file mode 100644
index 0000000000..d91b9f721a
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.statemachine/-state-machine-manager/scheduler.html
@@ -0,0 +1,15 @@
+
+
+StateMachineManager.scheduler -
+
+
+
+net.corda.node.services.statemachine / StateMachineManager / scheduler
+
+scheduler
+
+val scheduler : FiberScheduler
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.statemachine/-state-machine-manager/service-hub.html b/docs/build/html/api/net.corda.node.services.statemachine/-state-machine-manager/service-hub.html
new file mode 100644
index 0000000000..656b3ac629
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.statemachine/-state-machine-manager/service-hub.html
@@ -0,0 +1,15 @@
+
+
+StateMachineManager.serviceHub -
+
+
+
+net.corda.node.services.statemachine / StateMachineManager / serviceHub
+
+serviceHub
+
+val serviceHub : ServiceHubInternal
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.statemachine/-state-machine-manager/start.html b/docs/build/html/api/net.corda.node.services.statemachine/-state-machine-manager/start.html
new file mode 100644
index 0000000000..470aec16e8
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.statemachine/-state-machine-manager/start.html
@@ -0,0 +1,15 @@
+
+
+StateMachineManager.start -
+
+
+
+net.corda.node.services.statemachine / StateMachineManager / start
+
+start
+
+fun start ( ) : Unit
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.statemachine/-state-machine-manager/stop.html b/docs/build/html/api/net.corda.node.services.statemachine/-state-machine-manager/stop.html
new file mode 100644
index 0000000000..c27f9c279b
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.statemachine/-state-machine-manager/stop.html
@@ -0,0 +1,20 @@
+
+
+StateMachineManager.stop -
+
+
+
+net.corda.node.services.statemachine / StateMachineManager / stop
+
+stop
+
+fun stop ( allowedUnsuspendedFiberCount : Int = 0) : Unit
+Start the shutdown process, bringing the StateMachineManager to a controlled stop. When this method returns,
+all Fibers have been suspended and checkpointed, or have completed.
+Parameters
+
+allowedUnsuspendedFiberCount
- Optional parameter is used in some tests.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.statemachine/-state-machine-manager/track.html b/docs/build/html/api/net.corda.node.services.statemachine/-state-machine-manager/track.html
new file mode 100644
index 0000000000..c2cf26e9c2
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.statemachine/-state-machine-manager/track.html
@@ -0,0 +1,17 @@
+
+
+StateMachineManager.track -
+
+
+
+net.corda.node.services.statemachine / StateMachineManager / track
+
+track
+
+fun track ( ) : <ERROR CLASS> < List < ProtocolStateMachineImpl < * > > , <ERROR CLASS> < Change > >
+Atomic get snapshot + subscribe. This is needed so we dont miss updates between subscriptions to changes and
+calls to allStateMachines
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.statemachine/index.html b/docs/build/html/api/net.corda.node.services.statemachine/index.html
new file mode 100644
index 0000000000..0d4379d8ff
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.statemachine/index.html
@@ -0,0 +1,77 @@
+
+
+net.corda.node.services.statemachine -
+
+
+
+net.corda.node.services.statemachine
+
+Package net.corda.node.services.statemachine
+Types
+
+Exceptions
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.transactions/-in-memory-uniqueness-provider/-init-.html b/docs/build/html/api/net.corda.node.services.transactions/-in-memory-uniqueness-provider/-init-.html
new file mode 100644
index 0000000000..c0589dd0c7
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.transactions/-in-memory-uniqueness-provider/-init-.html
@@ -0,0 +1,15 @@
+
+
+InMemoryUniquenessProvider. -
+
+
+
+net.corda.node.services.transactions / InMemoryUniquenessProvider / <init>
+
+<init>
+InMemoryUniquenessProvider ( )
+A dummy Uniqueness provider that stores the whole history of consumed states in memory
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.transactions/-in-memory-uniqueness-provider/commit.html b/docs/build/html/api/net.corda.node.services.transactions/-in-memory-uniqueness-provider/commit.html
new file mode 100644
index 0000000000..2f7f89a2b7
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.transactions/-in-memory-uniqueness-provider/commit.html
@@ -0,0 +1,17 @@
+
+
+InMemoryUniquenessProvider.commit -
+
+
+
+net.corda.node.services.transactions / InMemoryUniquenessProvider / commit
+
+commit
+
+fun commit ( states : List < StateRef > , txId : SecureHash , callerIdentity : Party ) : Unit
+Overrides UniquenessProvider.commit
+Commits all input states of the given transaction
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.transactions/-in-memory-uniqueness-provider/index.html b/docs/build/html/api/net.corda.node.services.transactions/-in-memory-uniqueness-provider/index.html
new file mode 100644
index 0000000000..84c5af9c29
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.transactions/-in-memory-uniqueness-provider/index.html
@@ -0,0 +1,39 @@
+
+
+InMemoryUniquenessProvider -
+
+
+
+net.corda.node.services.transactions / InMemoryUniquenessProvider
+
+InMemoryUniquenessProvider
+class InMemoryUniquenessProvider : UniquenessProvider
+A dummy Uniqueness provider that stores the whole history of consumed states in memory
+
+
+Constructors
+
+
+
+
+<init>
+
+InMemoryUniquenessProvider ( )
A dummy Uniqueness provider that stores the whole history of consumed states in memory
+
+
+
+
+Functions
+
+
+
+
+commit
+
+fun commit ( states : List < StateRef > , txId : SecureHash , callerIdentity : Party ) : Unit
Commits all input states of the given transaction
+
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.transactions/-notary-service/-init-.html b/docs/build/html/api/net.corda.node.services.transactions/-notary-service/-init-.html
new file mode 100644
index 0000000000..32abcbc0e0
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.transactions/-notary-service/-init-.html
@@ -0,0 +1,22 @@
+
+
+NotaryService. -
+
+
+
+net.corda.node.services.transactions / NotaryService / <init>
+
+<init>
+NotaryService ( services : ServiceHubInternal )
+A Notary service acts as the final signer of a transaction ensuring two things:
+The (optional) timestamp of the transaction is valid.
+None of the referenced input states have previously been consumed by a transaction signed by this Notary
+O
+A transaction has to be signed by a Notary to be considered valid (except for output-only transactions without a timestamp).
+This is the base implementation that can be customised with specific Notary transaction commit protocol.
+
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.transactions/-notary-service/create-protocol.html b/docs/build/html/api/net.corda.node.services.transactions/-notary-service/create-protocol.html
new file mode 100644
index 0000000000..f619de14f7
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.transactions/-notary-service/create-protocol.html
@@ -0,0 +1,16 @@
+
+
+NotaryService.createProtocol -
+
+
+
+net.corda.node.services.transactions / NotaryService / createProtocol
+
+createProtocol
+
+abstract fun createProtocol ( otherParty : Party ) : Service
+Implement a factory that specifies the transaction commit protocol for the notary service to use
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.transactions/-notary-service/index.html b/docs/build/html/api/net.corda.node.services.transactions/-notary-service/index.html
new file mode 100644
index 0000000000..987ee90162
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.transactions/-notary-service/index.html
@@ -0,0 +1,76 @@
+
+
+NotaryService -
+
+
+
+net.corda.node.services.transactions / NotaryService
+
+NotaryService
+abstract class NotaryService : SingletonSerializeAsToken
+A Notary service acts as the final signer of a transaction ensuring two things:
+The (optional) timestamp of the transaction is valid.
+None of the referenced input states have previously been consumed by a transaction signed by this Notary
+O
+A transaction has to be signed by a Notary to be considered valid (except for output-only transactions without a timestamp).
+This is the base implementation that can be customised with specific Notary transaction commit protocol.
+
+
+
+
+Constructors
+
+
+
+
+<init>
+
+NotaryService ( services : ServiceHubInternal )
A Notary service acts as the final signer of a transaction ensuring two things:
+
+
+
+
+Functions
+
+
+
+
+createProtocol
+
+abstract fun createProtocol ( otherParty : Party ) : Service
Implement a factory that specifies the transaction commit protocol for the notary service to use
+
+
+
+
+Inherited Functions
+
+Inheritors
+
+
+
+
+SimpleNotaryService
+
+class SimpleNotaryService : NotaryService
A simple Notary service that does not perform transaction validation
+
+
+
+
+ValidatingNotaryService
+
+class ValidatingNotaryService : NotaryService
A Notary service that validates the transaction chain of he submitted transaction before committing it
+
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.transactions/-persistent-uniqueness-provider/-init-.html b/docs/build/html/api/net.corda.node.services.transactions/-persistent-uniqueness-provider/-init-.html
new file mode 100644
index 0000000000..8683fae98f
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.transactions/-persistent-uniqueness-provider/-init-.html
@@ -0,0 +1,15 @@
+
+
+PersistentUniquenessProvider. -
+
+
+
+net.corda.node.services.transactions / PersistentUniquenessProvider / <init>
+
+<init>
+PersistentUniquenessProvider ( )
+A RDBMS backed Uniqueness provider
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.transactions/-persistent-uniqueness-provider/commit.html b/docs/build/html/api/net.corda.node.services.transactions/-persistent-uniqueness-provider/commit.html
new file mode 100644
index 0000000000..24fa013365
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.transactions/-persistent-uniqueness-provider/commit.html
@@ -0,0 +1,17 @@
+
+
+PersistentUniquenessProvider.commit -
+
+
+
+net.corda.node.services.transactions / PersistentUniquenessProvider / commit
+
+commit
+
+fun commit ( states : List < StateRef > , txId : SecureHash , callerIdentity : Party ) : Unit
+Overrides UniquenessProvider.commit
+Commits all input states of the given transaction
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.transactions/-persistent-uniqueness-provider/index.html b/docs/build/html/api/net.corda.node.services.transactions/-persistent-uniqueness-provider/index.html
new file mode 100644
index 0000000000..8bb67e3fcb
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.transactions/-persistent-uniqueness-provider/index.html
@@ -0,0 +1,50 @@
+
+
+PersistentUniquenessProvider -
+
+
+
+net.corda.node.services.transactions / PersistentUniquenessProvider
+
+PersistentUniquenessProvider
+class PersistentUniquenessProvider : UniquenessProvider , SingletonSerializeAsToken
+A RDBMS backed Uniqueness provider
+
+
+Constructors
+
+
+
+
+<init>
+
+PersistentUniquenessProvider ( )
A RDBMS backed Uniqueness provider
+
+
+
+
+Functions
+
+
+
+
+commit
+
+fun commit ( states : List < StateRef > , txId : SecureHash , callerIdentity : Party ) : Unit
Commits all input states of the given transaction
+
+
+
+
+Inherited Functions
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.transactions/-simple-notary-service/-init-.html b/docs/build/html/api/net.corda.node.services.transactions/-simple-notary-service/-init-.html
new file mode 100644
index 0000000000..77c6118a18
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.transactions/-simple-notary-service/-init-.html
@@ -0,0 +1,15 @@
+
+
+SimpleNotaryService. -
+
+
+
+net.corda.node.services.transactions / SimpleNotaryService / <init>
+
+<init>
+SimpleNotaryService ( services : ServiceHubInternal , timestampChecker : TimestampChecker , uniquenessProvider : UniquenessProvider )
+A simple Notary service that does not perform transaction validation
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.transactions/-simple-notary-service/create-protocol.html b/docs/build/html/api/net.corda.node.services.transactions/-simple-notary-service/create-protocol.html
new file mode 100644
index 0000000000..11a5a02100
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.transactions/-simple-notary-service/create-protocol.html
@@ -0,0 +1,17 @@
+
+
+SimpleNotaryService.createProtocol -
+
+
+
+net.corda.node.services.transactions / SimpleNotaryService / createProtocol
+
+createProtocol
+
+fun createProtocol ( otherParty : Party ) : Service
+Overrides NotaryService.createProtocol
+Implement a factory that specifies the transaction commit protocol for the notary service to use
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.transactions/-simple-notary-service/index.html b/docs/build/html/api/net.corda.node.services.transactions/-simple-notary-service/index.html
new file mode 100644
index 0000000000..f256a71e1a
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.transactions/-simple-notary-service/index.html
@@ -0,0 +1,67 @@
+
+
+SimpleNotaryService -
+
+
+
+net.corda.node.services.transactions / SimpleNotaryService
+
+SimpleNotaryService
+class SimpleNotaryService : NotaryService
+A simple Notary service that does not perform transaction validation
+
+
+Constructors
+
+Properties
+
+Functions
+
+
+
+
+createProtocol
+
+fun createProtocol ( otherParty : Party ) : Service
Implement a factory that specifies the transaction commit protocol for the notary service to use
+
+
+
+
+Companion Object Properties
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.transactions/-simple-notary-service/timestamp-checker.html b/docs/build/html/api/net.corda.node.services.transactions/-simple-notary-service/timestamp-checker.html
new file mode 100644
index 0000000000..e03a8f9af9
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.transactions/-simple-notary-service/timestamp-checker.html
@@ -0,0 +1,15 @@
+
+
+SimpleNotaryService.timestampChecker -
+
+
+
+net.corda.node.services.transactions / SimpleNotaryService / timestampChecker
+
+timestampChecker
+
+val timestampChecker : TimestampChecker
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.transactions/-simple-notary-service/type.html b/docs/build/html/api/net.corda.node.services.transactions/-simple-notary-service/type.html
new file mode 100644
index 0000000000..c46312053d
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.transactions/-simple-notary-service/type.html
@@ -0,0 +1,15 @@
+
+
+SimpleNotaryService.type -
+
+
+
+net.corda.node.services.transactions / SimpleNotaryService / type
+
+type
+
+val type : ServiceType
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.transactions/-simple-notary-service/uniqueness-provider.html b/docs/build/html/api/net.corda.node.services.transactions/-simple-notary-service/uniqueness-provider.html
new file mode 100644
index 0000000000..9dd2a7bfd3
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.transactions/-simple-notary-service/uniqueness-provider.html
@@ -0,0 +1,15 @@
+
+
+SimpleNotaryService.uniquenessProvider -
+
+
+
+net.corda.node.services.transactions / SimpleNotaryService / uniquenessProvider
+
+uniquenessProvider
+
+val uniquenessProvider : UniquenessProvider
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.transactions/-validating-notary-service/-init-.html b/docs/build/html/api/net.corda.node.services.transactions/-validating-notary-service/-init-.html
new file mode 100644
index 0000000000..3cf3611d89
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.transactions/-validating-notary-service/-init-.html
@@ -0,0 +1,15 @@
+
+
+ValidatingNotaryService. -
+
+
+
+net.corda.node.services.transactions / ValidatingNotaryService / <init>
+
+<init>
+ValidatingNotaryService ( services : ServiceHubInternal , timestampChecker : TimestampChecker , uniquenessProvider : UniquenessProvider )
+A Notary service that validates the transaction chain of he submitted transaction before committing it
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.transactions/-validating-notary-service/create-protocol.html b/docs/build/html/api/net.corda.node.services.transactions/-validating-notary-service/create-protocol.html
new file mode 100644
index 0000000000..dc1a5e752a
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.transactions/-validating-notary-service/create-protocol.html
@@ -0,0 +1,17 @@
+
+
+ValidatingNotaryService.createProtocol -
+
+
+
+net.corda.node.services.transactions / ValidatingNotaryService / createProtocol
+
+createProtocol
+
+fun createProtocol ( otherParty : Party ) : ValidatingNotaryProtocol
+Overrides NotaryService.createProtocol
+Implement a factory that specifies the transaction commit protocol for the notary service to use
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.transactions/-validating-notary-service/index.html b/docs/build/html/api/net.corda.node.services.transactions/-validating-notary-service/index.html
new file mode 100644
index 0000000000..7a2cd12ea3
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.transactions/-validating-notary-service/index.html
@@ -0,0 +1,67 @@
+
+
+ValidatingNotaryService -
+
+
+
+net.corda.node.services.transactions / ValidatingNotaryService
+
+ValidatingNotaryService
+class ValidatingNotaryService : NotaryService
+A Notary service that validates the transaction chain of he submitted transaction before committing it
+
+
+Constructors
+
+Properties
+
+Functions
+
+Companion Object Properties
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.transactions/-validating-notary-service/timestamp-checker.html b/docs/build/html/api/net.corda.node.services.transactions/-validating-notary-service/timestamp-checker.html
new file mode 100644
index 0000000000..41b0028c86
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.transactions/-validating-notary-service/timestamp-checker.html
@@ -0,0 +1,15 @@
+
+
+ValidatingNotaryService.timestampChecker -
+
+
+
+net.corda.node.services.transactions / ValidatingNotaryService / timestampChecker
+
+timestampChecker
+
+val timestampChecker : TimestampChecker
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.transactions/-validating-notary-service/type.html b/docs/build/html/api/net.corda.node.services.transactions/-validating-notary-service/type.html
new file mode 100644
index 0000000000..ea3bececb8
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.transactions/-validating-notary-service/type.html
@@ -0,0 +1,15 @@
+
+
+ValidatingNotaryService.type -
+
+
+
+net.corda.node.services.transactions / ValidatingNotaryService / type
+
+type
+
+val type : ServiceType
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.transactions/-validating-notary-service/uniqueness-provider.html b/docs/build/html/api/net.corda.node.services.transactions/-validating-notary-service/uniqueness-provider.html
new file mode 100644
index 0000000000..49696fa98a
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.transactions/-validating-notary-service/uniqueness-provider.html
@@ -0,0 +1,15 @@
+
+
+ValidatingNotaryService.uniquenessProvider -
+
+
+
+net.corda.node.services.transactions / ValidatingNotaryService / uniquenessProvider
+
+uniquenessProvider
+
+val uniquenessProvider : UniquenessProvider
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.transactions/index.html b/docs/build/html/api/net.corda.node.services.transactions/index.html
new file mode 100644
index 0000000000..1d23265a95
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.transactions/index.html
@@ -0,0 +1,51 @@
+
+
+net.corda.node.services.transactions -
+
+
+
+net.corda.node.services.transactions
+
+Package net.corda.node.services.transactions
+Types
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.vault/-cash-balance-as-metrics-observer/-init-.html b/docs/build/html/api/net.corda.node.services.vault/-cash-balance-as-metrics-observer/-init-.html
new file mode 100644
index 0000000000..c2f6f708bf
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.vault/-cash-balance-as-metrics-observer/-init-.html
@@ -0,0 +1,15 @@
+
+
+CashBalanceAsMetricsObserver. -
+
+
+
+net.corda.node.services.vault / CashBalanceAsMetricsObserver / <init>
+
+<init>
+CashBalanceAsMetricsObserver ( serviceHubInternal : ServiceHubInternal )
+This class observes the vault and reflect current cash balances as exposed metrics in the monitoring service.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.vault/-cash-balance-as-metrics-observer/index.html b/docs/build/html/api/net.corda.node.services.vault/-cash-balance-as-metrics-observer/index.html
new file mode 100644
index 0000000000..5951c427a3
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.vault/-cash-balance-as-metrics-observer/index.html
@@ -0,0 +1,38 @@
+
+
+CashBalanceAsMetricsObserver -
+
+
+
+net.corda.node.services.vault / CashBalanceAsMetricsObserver
+
+CashBalanceAsMetricsObserver
+class CashBalanceAsMetricsObserver
+This class observes the vault and reflect current cash balances as exposed metrics in the monitoring service.
+
+
+Constructors
+
+
+
+
+<init>
+
+CashBalanceAsMetricsObserver ( serviceHubInternal : ServiceHubInternal )
This class observes the vault and reflect current cash balances as exposed metrics in the monitoring service.
+
+
+
+
+Properties
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.vault/-cash-balance-as-metrics-observer/service-hub-internal.html b/docs/build/html/api/net.corda.node.services.vault/-cash-balance-as-metrics-observer/service-hub-internal.html
new file mode 100644
index 0000000000..0633a6f6ab
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.vault/-cash-balance-as-metrics-observer/service-hub-internal.html
@@ -0,0 +1,15 @@
+
+
+CashBalanceAsMetricsObserver.serviceHubInternal -
+
+
+
+net.corda.node.services.vault / CashBalanceAsMetricsObserver / serviceHubInternal
+
+serviceHubInternal
+
+val serviceHubInternal : ServiceHubInternal
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.vault/-node-vault-service/-init-.html b/docs/build/html/api/net.corda.node.services.vault/-node-vault-service/-init-.html
new file mode 100644
index 0000000000..fe44331dc7
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.vault/-node-vault-service/-init-.html
@@ -0,0 +1,23 @@
+
+
+NodeVaultService. -
+
+
+
+net.corda.node.services.vault / NodeVaultService / <init>
+
+<init>
+NodeVaultService ( services : ServiceHub )
+Currently, the node vault service is a very simple RDBMS backed implementation. It will change significantly when
+we add further functionality as the design for the vault and vault service matures.
+This class needs database transactions to be in-flight during method calls and init, and will throw exceptions if
+this is not the case.
+TODO: move query / filter criteria into the database query.
+TODO: keep an audit trail with time stamps of previously unconsumed states "as of" a particular point in time.
+TODO: have transaction storage do some caching.
+
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.vault/-node-vault-service/add-note-to-transaction.html b/docs/build/html/api/net.corda.node.services.vault/-node-vault-service/add-note-to-transaction.html
new file mode 100644
index 0000000000..8018c14dec
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.vault/-node-vault-service/add-note-to-transaction.html
@@ -0,0 +1,20 @@
+
+
+NodeVaultService.addNoteToTransaction -
+
+
+
+net.corda.node.services.vault / NodeVaultService / addNoteToTransaction
+
+addNoteToTransaction
+
+fun addNoteToTransaction ( txnId : SecureHash , noteText : String ) : Unit
+Overrides VaultService.addNoteToTransaction
+Add a note to an existing LedgerTransaction given by its unique SecureHash id
+Multiple notes may be attached to the same LedgerTransaction .
+These are additively and immutably persisted within the node local vault database in a single textual field
+using a semi-colon separator
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.vault/-node-vault-service/current-vault.html b/docs/build/html/api/net.corda.node.services.vault/-node-vault-service/current-vault.html
new file mode 100644
index 0000000000..f527cf409f
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.vault/-node-vault-service/current-vault.html
@@ -0,0 +1,22 @@
+
+
+NodeVaultService.currentVault -
+
+
+
+net.corda.node.services.vault / NodeVaultService / currentVault
+
+currentVault
+
+val currentVault : Vault
+Overrides VaultService.currentVault
+Returns a read-only snapshot of the vault at the time the call is made. Note that if you consume states or
+keys in this vault, you must inform the vault service so it can update its internal state.
+Getter
+
Returns a read-only snapshot of the vault at the time the call is made. Note that if you consume states or
+keys in this vault, you must inform the vault service so it can update its internal state.
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.vault/-node-vault-service/generate-spend.html b/docs/build/html/api/net.corda.node.services.vault/-node-vault-service/generate-spend.html
new file mode 100644
index 0000000000..9ce6bbd69e
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.vault/-node-vault-service/generate-spend.html
@@ -0,0 +1,22 @@
+
+
+NodeVaultService.generateSpend -
+
+
+
+net.corda.node.services.vault / NodeVaultService / generateSpend
+
+generateSpend
+
+fun generateSpend ( tx : TransactionBuilder , amount : Amount < Currency > , to : PublicKey , onlyFromParties : Set < Party > ? ) : <ERROR CLASS> < TransactionBuilder , List < PublicKey > >
+Overrides VaultService.generateSpend
+Generate a transaction that moves an amount of currency to the given pubkey.
+Parameters
+
+onlyFromParties
- if non-null, the asset states will be filtered to only include those issued by the set
+of given parties. This can be useful if the party youre trying to pay has expectations
+about which type of asset claims they are willing to accept.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.vault/-node-vault-service/get-transaction-notes.html b/docs/build/html/api/net.corda.node.services.vault/-node-vault-service/get-transaction-notes.html
new file mode 100644
index 0000000000..a62649c26d
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.vault/-node-vault-service/get-transaction-notes.html
@@ -0,0 +1,16 @@
+
+
+NodeVaultService.getTransactionNotes -
+
+
+
+net.corda.node.services.vault / NodeVaultService / getTransactionNotes
+
+getTransactionNotes
+
+fun getTransactionNotes ( txnId : SecureHash ) : Iterable < String >
+Overrides VaultService.getTransactionNotes
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.vault/-node-vault-service/index.html b/docs/build/html/api/net.corda.node.services.vault/-node-vault-service/index.html
new file mode 100644
index 0000000000..c1105b6e98
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.vault/-node-vault-service/index.html
@@ -0,0 +1,187 @@
+
+
+NodeVaultService -
+
+
+
+net.corda.node.services.vault / NodeVaultService
+
+NodeVaultService
+class NodeVaultService : SingletonSerializeAsToken , VaultService
+Currently, the node vault service is a very simple RDBMS backed implementation. It will change significantly when
+we add further functionality as the design for the vault and vault service matures.
+This class needs database transactions to be in-flight during method calls and init, and will throw exceptions if
+this is not the case.
+TODO: move query / filter criteria into the database query.
+TODO: keep an audit trail with time stamps of previously unconsumed states "as of" a particular point in time.
+TODO: have transaction storage do some caching.
+
+
+
+
+Constructors
+
+
+
+
+<init>
+
+NodeVaultService ( services : ServiceHub )
Currently, the node vault service is a very simple RDBMS backed implementation. It will change significantly when
+we add further functionality as the design for the vault and vault service matures.
+
+
+
+
+Properties
+
+
+
+
+currentVault
+
+val currentVault : Vault
Returns a read-only snapshot of the vault at the time the call is made. Note that if you consume states or
+keys in this vault, you must inform the vault service so it can update its internal state.
+
+
+
+
+linearHeads
+
+val linearHeads : Map < UniqueIdentifier , StateAndRef < LinearState > >
Returns a snapshot of the heads of LinearStates.
+
+
+
+
+updates
+
+val updates : <ERROR CLASS> < Update >
Get a synchronous Observable of updates. When observations are pushed to the Observer, the Vault will already incorporate
+the update.
+
+
+
+
+Inherited Properties
+
+
+
+
+cashBalances
+
+open val cashBalances : Map < Currency , Amount < Currency > >
Returns a map of how much cash we have in each currency, ignoring details like issuer. Note: currencies for
+which we have no cash evaluate to null (not present in map), not 0.
+
+
+
+
+Functions
+
+
+
+
+addNoteToTransaction
+
+fun addNoteToTransaction ( txnId : SecureHash , noteText : String ) : Unit
Add a note to an existing LedgerTransaction given by its unique SecureHash id
+Multiple notes may be attached to the same LedgerTransaction .
+These are additively and immutably persisted within the node local vault database in a single textual field
+using a semi-colon separator
+
+
+
+
+generateSpend
+
+fun generateSpend ( tx : TransactionBuilder , amount : Amount < Currency > , to : PublicKey , onlyFromParties : Set < Party > ? ) : <ERROR CLASS> < TransactionBuilder , List < PublicKey > >
Generate a transaction that moves an amount of currency to the given pubkey.
+
+
+
+
+getTransactionNotes
+
+fun getTransactionNotes ( txnId : SecureHash ) : Iterable < String >
+
+
+
+notifyAll
+
+fun notifyAll ( txns : Iterable < WireTransaction > ) : Vault
Possibly update the vault by marking as spent states that these transactions consume, and adding any relevant
+new states that they create. You should only insert transactions that have been successfully verified here
+
+
+
+
+track
+
+fun track ( ) : <ERROR CLASS> < Vault , <ERROR CLASS> < Update > >
Atomically get the current vault and a stream of updates. Note that the Observable buffers updates until the
+first subscriber is registered so as to avoid racing with early updates.
+
+
+
+
+Inherited Functions
+
+Companion Object Properties
+
+
+
+
+log
+
+val log : <ERROR CLASS>
+
+
+
+Extension Functions
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.vault/-node-vault-service/linear-heads.html b/docs/build/html/api/net.corda.node.services.vault/-node-vault-service/linear-heads.html
new file mode 100644
index 0000000000..9684378a12
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.vault/-node-vault-service/linear-heads.html
@@ -0,0 +1,23 @@
+
+
+NodeVaultService.linearHeads -
+
+
+
+net.corda.node.services.vault / NodeVaultService / linearHeads
+
+linearHeads
+
+val linearHeads : Map < UniqueIdentifier , StateAndRef < LinearState > >
+Overrides VaultService.linearHeads
+Returns a snapshot of the heads of LinearStates.
+TODO: Represent this using an actual JDBCHashMap or look at vault design further.
+
+
+Getter
+
Returns a snapshot of the heads of LinearStates.
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.vault/-node-vault-service/log.html b/docs/build/html/api/net.corda.node.services.vault/-node-vault-service/log.html
new file mode 100644
index 0000000000..bcd5d2e0e0
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.vault/-node-vault-service/log.html
@@ -0,0 +1,15 @@
+
+
+NodeVaultService.log -
+
+
+
+net.corda.node.services.vault / NodeVaultService / log
+
+log
+
+val log : <ERROR CLASS>
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.vault/-node-vault-service/notify-all.html b/docs/build/html/api/net.corda.node.services.vault/-node-vault-service/notify-all.html
new file mode 100644
index 0000000000..d18ccf21d7
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.vault/-node-vault-service/notify-all.html
@@ -0,0 +1,22 @@
+
+
+NodeVaultService.notifyAll -
+
+
+
+net.corda.node.services.vault / NodeVaultService / notifyAll
+
+notifyAll
+
+fun notifyAll ( txns : Iterable < WireTransaction > ) : Vault
+Overrides VaultService.notifyAll
+Possibly update the vault by marking as spent states that these transactions consume, and adding any relevant
+new states that they create. You should only insert transactions that have been successfully verified here
+Returns the new vault that resulted from applying the transactions (note: it may quickly become out of date).
+TODO: Consider if theres a good way to enforce the must-be-verified requirement in the type system.
+
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.vault/-node-vault-service/track.html b/docs/build/html/api/net.corda.node.services.vault/-node-vault-service/track.html
new file mode 100644
index 0000000000..e25764bc4d
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.vault/-node-vault-service/track.html
@@ -0,0 +1,18 @@
+
+
+NodeVaultService.track -
+
+
+
+net.corda.node.services.vault / NodeVaultService / track
+
+track
+
+fun track ( ) : <ERROR CLASS> < Vault , <ERROR CLASS> < Update > >
+Overrides VaultService.track
+Atomically get the current vault and a stream of updates. Note that the Observable buffers updates until the
+first subscriber is registered so as to avoid racing with early updates.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.vault/-node-vault-service/updates.html b/docs/build/html/api/net.corda.node.services.vault/-node-vault-service/updates.html
new file mode 100644
index 0000000000..c910cc2563
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.vault/-node-vault-service/updates.html
@@ -0,0 +1,22 @@
+
+
+NodeVaultService.updates -
+
+
+
+net.corda.node.services.vault / NodeVaultService / updates
+
+updates
+
+val updates : <ERROR CLASS> < Update >
+Overrides VaultService.updates
+Get a synchronous Observable of updates. When observations are pushed to the Observer, the Vault will already incorporate
+the update.
+Getter
+
Get a synchronous Observable of updates. When observations are pushed to the Observer, the Vault will already incorporate
+the update.
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services.vault/index.html b/docs/build/html/api/net.corda.node.services.vault/index.html
new file mode 100644
index 0000000000..fbf8ccb76e
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services.vault/index.html
@@ -0,0 +1,31 @@
+
+
+net.corda.node.services.vault -
+
+
+
+net.corda.node.services.vault
+
+Package net.corda.node.services.vault
+Types
+
+
+
+
+CashBalanceAsMetricsObserver
+
+class CashBalanceAsMetricsObserver
This class observes the vault and reflect current cash balances as exposed metrics in the monitoring service.
+
+
+
+
+NodeVaultService
+
+class NodeVaultService : SingletonSerializeAsToken , VaultService
Currently, the node vault service is a very simple RDBMS backed implementation. It will change significantly when
+we add further functionality as the design for the vault and vault service matures.
+
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services/-notary-change/-plugin/-init-.html b/docs/build/html/api/net.corda.node.services/-notary-change/-plugin/-init-.html
new file mode 100644
index 0000000000..31e428fa35
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services/-notary-change/-plugin/-init-.html
@@ -0,0 +1,14 @@
+
+
+NotaryChange.Plugin. -
+
+
+
+net.corda.node.services / NotaryChange / Plugin / <init>
+
+<init>
+Plugin ( )
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services/-notary-change/-plugin/index.html b/docs/build/html/api/net.corda.node.services/-notary-change/-plugin/index.html
new file mode 100644
index 0000000000..ac9f05fa3d
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services/-notary-change/-plugin/index.html
@@ -0,0 +1,74 @@
+
+
+NotaryChange.Plugin -
+
+
+
+net.corda.node.services / NotaryChange / Plugin
+
+Plugin
+class Plugin : CordaPluginRegistry
+
+
+Constructors
+
+
+
+
+<init>
+
+Plugin ( )
+
+
+
+Properties
+
+
+
+
+servicePlugins
+
+val servicePlugins : List < Class < * > >
List of additional long lived services to be hosted within the node.
+They are expected to have a single parameter constructor that takes a PluginServiceHub as input.
+The PluginServiceHub will be fully constructed before the plugin service is created and will
+allow access to the protocol factory and protocol initiation entry points there.
+
+
+
+
+Inherited Properties
+
+
+
+
+requiredProtocols
+
+open val requiredProtocols : Map < String , Set < String > >
A Map with an entry for each consumed protocol used by the webAPIs.
+The key of each map entry should contain the ProtocolLogic class name.
+The associated map values are the union of all concrete class names passed to the protocol constructor.
+Standard java.lang.* and kotlin.* types do not need to be included explicitly.
+This is used to extend the white listed protocols that can be initiated from the ServiceHub invokeProtocolAsync method.
+
+
+
+
+staticServeDirs
+
+open val staticServeDirs : Map < String , String >
Map of static serving endpoints to the matching resource directory. All endpoints will be prefixed with "/web" and postfixed with "\*.
+Resource directories can be either on disk directories (especially when debugging) in the form "a/b/c". Serving from a JAR can
+be specified with: javaClass.getResource("<folder-in-jar>").toExternalForm()
+
+
+
+
+webApis
+
+open val webApis : List < Class < * > >
List of JAX-RS classes inside the contract jar. They are expected to have a single parameter constructor that takes a ServiceHub as input.
+These are listed as Class<*>, because in the future they will be instantiated inside a ClassLoader so that
+Cordapp code can be loaded dynamically.
+
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services/-notary-change/-plugin/service-plugins.html b/docs/build/html/api/net.corda.node.services/-notary-change/-plugin/service-plugins.html
new file mode 100644
index 0000000000..047137921e
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services/-notary-change/-plugin/service-plugins.html
@@ -0,0 +1,20 @@
+
+
+NotaryChange.Plugin.servicePlugins -
+
+
+
+net.corda.node.services / NotaryChange / Plugin / servicePlugins
+
+servicePlugins
+
+val servicePlugins : List < Class < * > >
+Overrides CordaPluginRegistry.servicePlugins
+List of additional long lived services to be hosted within the node.
+They are expected to have a single parameter constructor that takes a PluginServiceHub as input.
+The PluginServiceHub will be fully constructed before the plugin service is created and will
+allow access to the protocol factory and protocol initiation entry points there.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services/-notary-change/-service/-init-.html b/docs/build/html/api/net.corda.node.services/-notary-change/-service/-init-.html
new file mode 100644
index 0000000000..77ba7299bc
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services/-notary-change/-service/-init-.html
@@ -0,0 +1,16 @@
+
+
+NotaryChange.Service. -
+
+
+
+net.corda.node.services / NotaryChange / Service / <init>
+
+<init>
+Service ( services : PluginServiceHub )
+A service that monitors the network for requests for changing the notary of a state,
+and immediately runs the NotaryChangeProtocol if the auto-accept criteria are met.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services/-notary-change/-service/index.html b/docs/build/html/api/net.corda.node.services/-notary-change/-service/index.html
new file mode 100644
index 0000000000..01a210171c
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services/-notary-change/-service/index.html
@@ -0,0 +1,40 @@
+
+
+NotaryChange.Service -
+
+
+
+net.corda.node.services / NotaryChange / Service
+
+Service
+class Service : SingletonSerializeAsToken
+A service that monitors the network for requests for changing the notary of a state,
+and immediately runs the NotaryChangeProtocol if the auto-accept criteria are met.
+
+
+Constructors
+
+
+
+
+<init>
+
+Service ( services : PluginServiceHub )
A service that monitors the network for requests for changing the notary of a state,
+and immediately runs the NotaryChangeProtocol if the auto-accept criteria are met.
+
+
+
+
+Inherited Functions
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services/-notary-change/index.html b/docs/build/html/api/net.corda.node.services/-notary-change/index.html
new file mode 100644
index 0000000000..3d40c6505b
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services/-notary-change/index.html
@@ -0,0 +1,33 @@
+
+
+NotaryChange -
+
+
+
+net.corda.node.services / NotaryChange
+
+NotaryChange
+object NotaryChange
+
+
+Types
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services/-properties-file-r-p-c-user-service/-init-.html b/docs/build/html/api/net.corda.node.services/-properties-file-r-p-c-user-service/-init-.html
new file mode 100644
index 0000000000..40ec79188e
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services/-properties-file-r-p-c-user-service/-init-.html
@@ -0,0 +1,14 @@
+
+
+PropertiesFileRPCUserService. -
+
+
+
+net.corda.node.services / PropertiesFileRPCUserService / <init>
+
+<init>
+PropertiesFileRPCUserService ( file : Path )
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services/-properties-file-r-p-c-user-service/get-user.html b/docs/build/html/api/net.corda.node.services/-properties-file-r-p-c-user-service/get-user.html
new file mode 100644
index 0000000000..91cf7ea2a5
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services/-properties-file-r-p-c-user-service/get-user.html
@@ -0,0 +1,16 @@
+
+
+PropertiesFileRPCUserService.getUser -
+
+
+
+net.corda.node.services / PropertiesFileRPCUserService / getUser
+
+getUser
+
+fun getUser ( usename : String ) : User ?
+Overrides RPCUserService.getUser
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services/-properties-file-r-p-c-user-service/index.html b/docs/build/html/api/net.corda.node.services/-properties-file-r-p-c-user-service/index.html
new file mode 100644
index 0000000000..a7e9439717
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services/-properties-file-r-p-c-user-service/index.html
@@ -0,0 +1,47 @@
+
+
+PropertiesFileRPCUserService -
+
+
+
+net.corda.node.services / PropertiesFileRPCUserService
+
+PropertiesFileRPCUserService
+class PropertiesFileRPCUserService : RPCUserService
+
+
+Constructors
+
+
+
+
+<init>
+
+PropertiesFileRPCUserService ( file : Path )
+
+
+
+Properties
+
+Functions
+
+
+
+
+getUser
+
+fun getUser ( usename : String ) : User ?
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services/-properties-file-r-p-c-user-service/users.html b/docs/build/html/api/net.corda.node.services/-properties-file-r-p-c-user-service/users.html
new file mode 100644
index 0000000000..04b841c186
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services/-properties-file-r-p-c-user-service/users.html
@@ -0,0 +1,16 @@
+
+
+PropertiesFileRPCUserService.users -
+
+
+
+net.corda.node.services / PropertiesFileRPCUserService / users
+
+users
+
+val users : List < User >
+Overrides RPCUserService.users
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services/-r-p-c-user-service/get-user.html b/docs/build/html/api/net.corda.node.services/-r-p-c-user-service/get-user.html
new file mode 100644
index 0000000000..39fee58d19
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services/-r-p-c-user-service/get-user.html
@@ -0,0 +1,15 @@
+
+
+RPCUserService.getUser -
+
+
+
+net.corda.node.services / RPCUserService / getUser
+
+getUser
+
+abstract fun getUser ( usename : String ) : User ?
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services/-r-p-c-user-service/index.html b/docs/build/html/api/net.corda.node.services/-r-p-c-user-service/index.html
new file mode 100644
index 0000000000..2e042df7da
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services/-r-p-c-user-service/index.html
@@ -0,0 +1,50 @@
+
+
+RPCUserService -
+
+
+
+net.corda.node.services / RPCUserService
+
+RPCUserService
+interface RPCUserService
+Service for retrieving User objects representing RPC users who are authorised to use the RPC system. A User
+contains their login username and password along with a set of permissions for RPC services they are allowed access
+to. These permissions are represented as String s to allow RPC implementations to add their own permissioning.
+
+
+Properties
+
+
+
+
+users
+
+abstract val users : List < User >
+
+
+
+Functions
+
+
+
+
+getUser
+
+abstract fun getUser ( usename : String ) : User ?
+
+
+
+Inheritors
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services/-r-p-c-user-service/users.html b/docs/build/html/api/net.corda.node.services/-r-p-c-user-service/users.html
new file mode 100644
index 0000000000..109f8233a0
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services/-r-p-c-user-service/users.html
@@ -0,0 +1,15 @@
+
+
+RPCUserService.users -
+
+
+
+net.corda.node.services / RPCUserService / users
+
+users
+
+abstract val users : List < User >
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services/-user/-init-.html b/docs/build/html/api/net.corda.node.services/-user/-init-.html
new file mode 100644
index 0000000000..38ea96b7aa
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services/-user/-init-.html
@@ -0,0 +1,14 @@
+
+
+User. -
+
+
+
+net.corda.node.services / User / <init>
+
+<init>
+User ( username : String , password : String , permissions : Set < String > )
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services/-user/index.html b/docs/build/html/api/net.corda.node.services/-user/index.html
new file mode 100644
index 0000000000..e222a0a789
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services/-user/index.html
@@ -0,0 +1,59 @@
+
+
+User -
+
+
+
+net.corda.node.services / User
+
+User
+data class User
+
+
+Constructors
+
+
+
+
+<init>
+
+User ( username : String , password : String , permissions : Set < String > )
+
+
+
+Properties
+
+
+
+
+password
+
+val password : String
+
+
+
+permissions
+
+val permissions : Set < String >
+
+
+
+username
+
+val username : String
+
+
+
+Functions
+
+
+
+
+toString
+
+fun toString ( ) : String
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services/-user/password.html b/docs/build/html/api/net.corda.node.services/-user/password.html
new file mode 100644
index 0000000000..1997ac9c74
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services/-user/password.html
@@ -0,0 +1,15 @@
+
+
+User.password -
+
+
+
+net.corda.node.services / User / password
+
+password
+
+val password : String
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services/-user/permissions.html b/docs/build/html/api/net.corda.node.services/-user/permissions.html
new file mode 100644
index 0000000000..5da28e61cb
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services/-user/permissions.html
@@ -0,0 +1,15 @@
+
+
+User.permissions -
+
+
+
+net.corda.node.services / User / permissions
+
+permissions
+
+val permissions : Set < String >
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services/-user/to-string.html b/docs/build/html/api/net.corda.node.services/-user/to-string.html
new file mode 100644
index 0000000000..88605522e7
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services/-user/to-string.html
@@ -0,0 +1,15 @@
+
+
+User.toString -
+
+
+
+net.corda.node.services / User / toString
+
+toString
+
+fun toString ( ) : String
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services/-user/username.html b/docs/build/html/api/net.corda.node.services/-user/username.html
new file mode 100644
index 0000000000..921bde10cc
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services/-user/username.html
@@ -0,0 +1,15 @@
+
+
+User.username -
+
+
+
+net.corda.node.services / User / username
+
+username
+
+val username : String
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.services/index.html b/docs/build/html/api/net.corda.node.services/index.html
new file mode 100644
index 0000000000..ee35548085
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.services/index.html
@@ -0,0 +1,43 @@
+
+
+net.corda.node.services -
+
+
+
+net.corda.node.services
+
+Package net.corda.node.services
+Types
+
+
+
+
+NotaryChange
+
+object NotaryChange
+
+
+
+PropertiesFileRPCUserService
+
+class PropertiesFileRPCUserService : RPCUserService
+
+
+
+RPCUserService
+
+interface RPCUserService
Service for retrieving User objects representing RPC users who are authorised to use the RPC system. A User
+contains their login username and password along with a set of permissions for RPC services they are allowed access
+to. These permissions are represented as String s to allow RPC implementations to add their own permissioning.
+
+
+
+
+User
+
+data class User
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.servlets/-attachment-download-servlet/-init-.html b/docs/build/html/api/net.corda.node.servlets/-attachment-download-servlet/-init-.html
new file mode 100644
index 0000000000..8fbabbbb13
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.servlets/-attachment-download-servlet/-init-.html
@@ -0,0 +1,22 @@
+
+
+AttachmentDownloadServlet. -
+
+
+
+net.corda.node.servlets / AttachmentDownloadServlet / <init>
+
+<init>
+AttachmentDownloadServlet ( )
+Allows the node administrator to either download full attachment zips, or individual files within those zips.
+GET /attachments/123abcdef12121 -> download the zip identified by this hash
+GET /attachments/123abcdef12121/foo.txt -> download that file specifically
+Files are always forced to be downloads, they may not be embedded into web pages for security reasons.
+TODO: See if theres a way to prevent access by JavaScript.
+TODO: Provide an endpoint that exposes attachment file listings, to make attachments browseable.
+
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.servlets/-attachment-download-servlet/do-get.html b/docs/build/html/api/net.corda.node.servlets/-attachment-download-servlet/do-get.html
new file mode 100644
index 0000000000..a4658b9f72
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.servlets/-attachment-download-servlet/do-get.html
@@ -0,0 +1,15 @@
+
+
+AttachmentDownloadServlet.doGet -
+
+
+
+net.corda.node.servlets / AttachmentDownloadServlet / doGet
+
+doGet
+
+fun doGet ( req : <ERROR CLASS> , resp : <ERROR CLASS> ) : Unit
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.servlets/-attachment-download-servlet/index.html b/docs/build/html/api/net.corda.node.servlets/-attachment-download-servlet/index.html
new file mode 100644
index 0000000000..56c4fa5745
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.servlets/-attachment-download-servlet/index.html
@@ -0,0 +1,45 @@
+
+
+AttachmentDownloadServlet -
+
+
+
+net.corda.node.servlets / AttachmentDownloadServlet
+
+AttachmentDownloadServlet
+class AttachmentDownloadServlet
+Allows the node administrator to either download full attachment zips, or individual files within those zips.
+GET /attachments/123abcdef12121 -> download the zip identified by this hash
+GET /attachments/123abcdef12121/foo.txt -> download that file specifically
+Files are always forced to be downloads, they may not be embedded into web pages for security reasons.
+TODO: See if theres a way to prevent access by JavaScript.
+TODO: Provide an endpoint that exposes attachment file listings, to make attachments browseable.
+
+
+
+
+Constructors
+
+
+
+
+<init>
+
+AttachmentDownloadServlet ( )
Allows the node administrator to either download full attachment zips, or individual files within those zips.
+
+
+
+
+Functions
+
+
+
+
+doGet
+
+fun doGet ( req : <ERROR CLASS> , resp : <ERROR CLASS> ) : Unit
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.servlets/-config/-init-.html b/docs/build/html/api/net.corda.node.servlets/-config/-init-.html
new file mode 100644
index 0000000000..6e504021e2
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.servlets/-config/-init-.html
@@ -0,0 +1,16 @@
+
+
+Config. -
+
+
+
+net.corda.node.servlets / Config / <init>
+
+<init>
+Config ( services : ServiceHub )
+Primary purpose is to install Kotlin extensions for Jackson ObjectMapper so data classes work
+and to organise serializers / deserializers for java.time.* classes as necessary.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.servlets/-config/default-object-mapper.html b/docs/build/html/api/net.corda.node.servlets/-config/default-object-mapper.html
new file mode 100644
index 0000000000..aa29191295
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.servlets/-config/default-object-mapper.html
@@ -0,0 +1,15 @@
+
+
+Config.defaultObjectMapper -
+
+
+
+net.corda.node.servlets / Config / defaultObjectMapper
+
+defaultObjectMapper
+
+val defaultObjectMapper : <ERROR CLASS>
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.servlets/-config/get-context.html b/docs/build/html/api/net.corda.node.servlets/-config/get-context.html
new file mode 100644
index 0000000000..812820738c
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.servlets/-config/get-context.html
@@ -0,0 +1,15 @@
+
+
+Config.getContext -
+
+
+
+net.corda.node.servlets / Config / getContext
+
+getContext
+
+fun getContext ( type : Class < * > ) : <ERROR CLASS>
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.servlets/-config/index.html b/docs/build/html/api/net.corda.node.servlets/-config/index.html
new file mode 100644
index 0000000000..f0629949df
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.servlets/-config/index.html
@@ -0,0 +1,57 @@
+
+
+Config -
+
+
+
+net.corda.node.servlets / Config
+
+Config
+class Config
+Primary purpose is to install Kotlin extensions for Jackson ObjectMapper so data classes work
+and to organise serializers / deserializers for java.time.* classes as necessary.
+
+
+Constructors
+
+
+
+
+<init>
+
+Config ( services : ServiceHub )
Primary purpose is to install Kotlin extensions for Jackson ObjectMapper so data classes work
+and to organise serializers / deserializers for java.time.* classes as necessary.
+
+
+
+
+Properties
+
+Functions
+
+
+
diff --git a/docs/build/html/api/net.corda.node.servlets/-config/services.html b/docs/build/html/api/net.corda.node.servlets/-config/services.html
new file mode 100644
index 0000000000..634b56cde6
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.servlets/-config/services.html
@@ -0,0 +1,15 @@
+
+
+Config.services -
+
+
+
+net.corda.node.servlets / Config / services
+
+services
+
+val services : ServiceHub
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.servlets/-data-upload-servlet/-init-.html b/docs/build/html/api/net.corda.node.servlets/-data-upload-servlet/-init-.html
new file mode 100644
index 0000000000..0cfca71d3d
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.servlets/-data-upload-servlet/-init-.html
@@ -0,0 +1,15 @@
+
+
+DataUploadServlet. -
+
+
+
+net.corda.node.servlets / DataUploadServlet / <init>
+
+<init>
+DataUploadServlet ( )
+Accepts binary streams, finds the right AcceptsFileUpload implementor and hands the stream off to it.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.servlets/-data-upload-servlet/do-post.html b/docs/build/html/api/net.corda.node.servlets/-data-upload-servlet/do-post.html
new file mode 100644
index 0000000000..7e0d96f5e9
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.servlets/-data-upload-servlet/do-post.html
@@ -0,0 +1,15 @@
+
+
+DataUploadServlet.doPost -
+
+
+
+net.corda.node.servlets / DataUploadServlet / doPost
+
+doPost
+
+fun doPost ( req : <ERROR CLASS> , resp : <ERROR CLASS> ) : Unit
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.servlets/-data-upload-servlet/index.html b/docs/build/html/api/net.corda.node.servlets/-data-upload-servlet/index.html
new file mode 100644
index 0000000000..cf6f8b37c0
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.servlets/-data-upload-servlet/index.html
@@ -0,0 +1,38 @@
+
+
+DataUploadServlet -
+
+
+
+net.corda.node.servlets / DataUploadServlet
+
+DataUploadServlet
+class DataUploadServlet
+Accepts binary streams, finds the right AcceptsFileUpload implementor and hands the stream off to it.
+
+
+Constructors
+
+
+
+
+<init>
+
+DataUploadServlet ( )
Accepts binary streams, finds the right AcceptsFileUpload implementor and hands the stream off to it.
+
+
+
+
+Functions
+
+
+
+
+doPost
+
+fun doPost ( req : <ERROR CLASS> , resp : <ERROR CLASS> ) : Unit
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.servlets/-response-filter/-init-.html b/docs/build/html/api/net.corda.node.servlets/-response-filter/-init-.html
new file mode 100644
index 0000000000..45ec9ea46c
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.servlets/-response-filter/-init-.html
@@ -0,0 +1,15 @@
+
+
+ResponseFilter. -
+
+
+
+net.corda.node.servlets / ResponseFilter / <init>
+
+<init>
+ResponseFilter ( )
+This adds headers needed for cross site scripting on API clients.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.servlets/-response-filter/filter.html b/docs/build/html/api/net.corda.node.servlets/-response-filter/filter.html
new file mode 100644
index 0000000000..4fd92e1f12
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.servlets/-response-filter/filter.html
@@ -0,0 +1,15 @@
+
+
+ResponseFilter.filter -
+
+
+
+net.corda.node.servlets / ResponseFilter / filter
+
+filter
+
+fun filter ( requestContext : <ERROR CLASS> , responseContext : <ERROR CLASS> ) : Unit
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.servlets/-response-filter/index.html b/docs/build/html/api/net.corda.node.servlets/-response-filter/index.html
new file mode 100644
index 0000000000..0acf1a15ce
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.servlets/-response-filter/index.html
@@ -0,0 +1,38 @@
+
+
+ResponseFilter -
+
+
+
+net.corda.node.servlets / ResponseFilter
+
+ResponseFilter
+class ResponseFilter
+This adds headers needed for cross site scripting on API clients.
+
+
+Constructors
+
+
+
+
+<init>
+
+ResponseFilter ( )
This adds headers needed for cross site scripting on API clients.
+
+
+
+
+Functions
+
+
+
+
+filter
+
+fun filter ( requestContext : <ERROR CLASS> , responseContext : <ERROR CLASS> ) : Unit
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.servlets/index.html b/docs/build/html/api/net.corda.node.servlets/index.html
new file mode 100644
index 0000000000..343ae9b370
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.servlets/index.html
@@ -0,0 +1,45 @@
+
+
+net.corda.node.servlets -
+
+
+
+net.corda.node.servlets
+
+Package net.corda.node.servlets
+Types
+
+
+
+
+AttachmentDownloadServlet
+
+class AttachmentDownloadServlet
Allows the node administrator to either download full attachment zips, or individual files within those zips.
+
+
+
+
+Config
+
+class Config
Primary purpose is to install Kotlin extensions for Jackson ObjectMapper so data classes work
+and to organise serializers / deserializers for java.time.* classes as necessary.
+
+
+
+
+DataUploadServlet
+
+class DataUploadServlet
Accepts binary streams, finds the right AcceptsFileUpload implementor and hands the stream off to it.
+
+
+
+
+ResponseFilter
+
+class ResponseFilter
This adds headers needed for cross site scripting on API clients.
+
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.utilities.certsigning/-certificate-signer/-init-.html b/docs/build/html/api/net.corda.node.utilities.certsigning/-certificate-signer/-init-.html
new file mode 100644
index 0000000000..d90f3e7ce9
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.utilities.certsigning/-certificate-signer/-init-.html
@@ -0,0 +1,18 @@
+
+
+CertificateSigner. -
+
+
+
+net.corda.node.utilities.certsigning / CertificateSigner / <init>
+
+<init>
+CertificateSigner ( config : NodeConfiguration , certService : CertificateSigningService )
+This check the certificatePath for certificates required to connect to the Corda network.
+If the certificates are not found, a PKCS10CertificationRequest will be submitted to Corda network permissioning server using CertificateSigningService .
+This process will enter a slow polling loop until the request has been approved, and then
+the certificate chain will be downloaded and stored in KeyStore reside in certificatePath .
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.utilities.certsigning/-certificate-signer/build-key-store.html b/docs/build/html/api/net.corda.node.utilities.certsigning/-certificate-signer/build-key-store.html
new file mode 100644
index 0000000000..9f0249bc79
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.utilities.certsigning/-certificate-signer/build-key-store.html
@@ -0,0 +1,15 @@
+
+
+CertificateSigner.buildKeyStore -
+
+
+
+net.corda.node.utilities.certsigning / CertificateSigner / buildKeyStore
+
+buildKeyStore
+
+fun buildKeyStore ( ) : Unit
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.utilities.certsigning/-certificate-signer/cert-service.html b/docs/build/html/api/net.corda.node.utilities.certsigning/-certificate-signer/cert-service.html
new file mode 100644
index 0000000000..b82d7ee58c
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.utilities.certsigning/-certificate-signer/cert-service.html
@@ -0,0 +1,15 @@
+
+
+CertificateSigner.certService -
+
+
+
+net.corda.node.utilities.certsigning / CertificateSigner / certService
+
+certService
+
+val certService : CertificateSigningService
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.utilities.certsigning/-certificate-signer/config.html b/docs/build/html/api/net.corda.node.utilities.certsigning/-certificate-signer/config.html
new file mode 100644
index 0000000000..e62dac6551
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.utilities.certsigning/-certificate-signer/config.html
@@ -0,0 +1,15 @@
+
+
+CertificateSigner.config -
+
+
+
+net.corda.node.utilities.certsigning / CertificateSigner / config
+
+config
+
+val config : NodeConfiguration
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.utilities.certsigning/-certificate-signer/index.html b/docs/build/html/api/net.corda.node.utilities.certsigning/-certificate-signer/index.html
new file mode 100644
index 0000000000..a5bf36dfab
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.utilities.certsigning/-certificate-signer/index.html
@@ -0,0 +1,78 @@
+
+
+CertificateSigner -
+
+
+
+net.corda.node.utilities.certsigning / CertificateSigner
+
+CertificateSigner
+class CertificateSigner
+This check the certificatePath for certificates required to connect to the Corda network.
+If the certificates are not found, a PKCS10CertificationRequest will be submitted to Corda network permissioning server using CertificateSigningService .
+This process will enter a slow polling loop until the request has been approved, and then
+the certificate chain will be downloaded and stored in KeyStore reside in certificatePath .
+
+
+Constructors
+
+Properties
+
+Functions
+
+Companion Object Properties
+
+
+
diff --git a/docs/build/html/api/net.corda.node.utilities.certsigning/-certificate-signer/log.html b/docs/build/html/api/net.corda.node.utilities.certsigning/-certificate-signer/log.html
new file mode 100644
index 0000000000..f4e69f433c
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.utilities.certsigning/-certificate-signer/log.html
@@ -0,0 +1,15 @@
+
+
+CertificateSigner.log -
+
+
+
+net.corda.node.utilities.certsigning / CertificateSigner / log
+
+log
+
+val log : <ERROR CLASS>
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.utilities.certsigning/-certificate-signer/poll-interval.html b/docs/build/html/api/net.corda.node.utilities.certsigning/-certificate-signer/poll-interval.html
new file mode 100644
index 0000000000..e6f2825b9c
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.utilities.certsigning/-certificate-signer/poll-interval.html
@@ -0,0 +1,15 @@
+
+
+CertificateSigner.pollInterval -
+
+
+
+net.corda.node.utilities.certsigning / CertificateSigner / pollInterval
+
+pollInterval
+
+val pollInterval : Duration
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.utilities.certsigning/-certificate-signing-service/index.html b/docs/build/html/api/net.corda.node.utilities.certsigning/-certificate-signing-service/index.html
new file mode 100644
index 0000000000..8da750b63e
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.utilities.certsigning/-certificate-signing-service/index.html
@@ -0,0 +1,44 @@
+
+
+CertificateSigningService -
+
+
+
+net.corda.node.utilities.certsigning / CertificateSigningService
+
+CertificateSigningService
+interface CertificateSigningService
+
+
+Functions
+
+
+
+
+retrieveCertificates
+
+abstract fun retrieveCertificates ( requestId : String ) : Array < Certificate > ?
Poll Certificate Signing Server for the request and returns a chain of certificates if request has been approved, null otherwise.
+
+
+
+
+submitRequest
+
+abstract fun submitRequest ( request : <ERROR CLASS> ) : String
Submits a CSR to the signing service and returns an opaque request ID.
+
+
+
+
+Inheritors
+
+
+
diff --git a/docs/build/html/api/net.corda.node.utilities.certsigning/-certificate-signing-service/retrieve-certificates.html b/docs/build/html/api/net.corda.node.utilities.certsigning/-certificate-signing-service/retrieve-certificates.html
new file mode 100644
index 0000000000..468434c8d5
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.utilities.certsigning/-certificate-signing-service/retrieve-certificates.html
@@ -0,0 +1,16 @@
+
+
+CertificateSigningService.retrieveCertificates -
+
+
+
+net.corda.node.utilities.certsigning / CertificateSigningService / retrieveCertificates
+
+retrieveCertificates
+
+abstract fun retrieveCertificates ( requestId : String ) : Array < Certificate > ?
+Poll Certificate Signing Server for the request and returns a chain of certificates if request has been approved, null otherwise.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.utilities.certsigning/-certificate-signing-service/submit-request.html b/docs/build/html/api/net.corda.node.utilities.certsigning/-certificate-signing-service/submit-request.html
new file mode 100644
index 0000000000..a2282095ab
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.utilities.certsigning/-certificate-signing-service/submit-request.html
@@ -0,0 +1,16 @@
+
+
+CertificateSigningService.submitRequest -
+
+
+
+net.corda.node.utilities.certsigning / CertificateSigningService / submitRequest
+
+submitRequest
+
+abstract fun submitRequest ( request : <ERROR CLASS> ) : String
+Submits a CSR to the signing service and returns an opaque request ID.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.utilities.certsigning/-h-t-t-p-certificate-signing-service/-init-.html b/docs/build/html/api/net.corda.node.utilities.certsigning/-h-t-t-p-certificate-signing-service/-init-.html
new file mode 100644
index 0000000000..71d8c99222
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.utilities.certsigning/-h-t-t-p-certificate-signing-service/-init-.html
@@ -0,0 +1,14 @@
+
+
+HTTPCertificateSigningService. -
+
+
+
+net.corda.node.utilities.certsigning / HTTPCertificateSigningService / <init>
+
+<init>
+HTTPCertificateSigningService ( server : URL )
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.utilities.certsigning/-h-t-t-p-certificate-signing-service/client-version.html b/docs/build/html/api/net.corda.node.utilities.certsigning/-h-t-t-p-certificate-signing-service/client-version.html
new file mode 100644
index 0000000000..7ce7a91d48
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.utilities.certsigning/-h-t-t-p-certificate-signing-service/client-version.html
@@ -0,0 +1,15 @@
+
+
+HTTPCertificateSigningService.clientVersion -
+
+
+
+net.corda.node.utilities.certsigning / HTTPCertificateSigningService / clientVersion
+
+clientVersion
+
+val clientVersion : String
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.utilities.certsigning/-h-t-t-p-certificate-signing-service/index.html b/docs/build/html/api/net.corda.node.utilities.certsigning/-h-t-t-p-certificate-signing-service/index.html
new file mode 100644
index 0000000000..d405723f52
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.utilities.certsigning/-h-t-t-p-certificate-signing-service/index.html
@@ -0,0 +1,66 @@
+
+
+HTTPCertificateSigningService -
+
+
+
+net.corda.node.utilities.certsigning / HTTPCertificateSigningService
+
+HTTPCertificateSigningService
+class HTTPCertificateSigningService : CertificateSigningService
+
+
+Constructors
+
+
+
+
+<init>
+
+HTTPCertificateSigningService ( server : URL )
+
+
+
+Properties
+
+Functions
+
+
+
+
+retrieveCertificates
+
+fun retrieveCertificates ( requestId : String ) : Array < Certificate > ?
Poll Certificate Signing Server for the request and returns a chain of certificates if request has been approved, null otherwise.
+
+
+
+
+submitRequest
+
+fun submitRequest ( request : <ERROR CLASS> ) : String
Submits a CSR to the signing service and returns an opaque request ID.
+
+
+
+
+Companion Object Properties
+
+
+
diff --git a/docs/build/html/api/net.corda.node.utilities.certsigning/-h-t-t-p-certificate-signing-service/retrieve-certificates.html b/docs/build/html/api/net.corda.node.utilities.certsigning/-h-t-t-p-certificate-signing-service/retrieve-certificates.html
new file mode 100644
index 0000000000..4dee5ed5af
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.utilities.certsigning/-h-t-t-p-certificate-signing-service/retrieve-certificates.html
@@ -0,0 +1,17 @@
+
+
+HTTPCertificateSigningService.retrieveCertificates -
+
+
+
+net.corda.node.utilities.certsigning / HTTPCertificateSigningService / retrieveCertificates
+
+retrieveCertificates
+
+fun retrieveCertificates ( requestId : String ) : Array < Certificate > ?
+Overrides CertificateSigningService.retrieveCertificates
+Poll Certificate Signing Server for the request and returns a chain of certificates if request has been approved, null otherwise.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.utilities.certsigning/-h-t-t-p-certificate-signing-service/server.html b/docs/build/html/api/net.corda.node.utilities.certsigning/-h-t-t-p-certificate-signing-service/server.html
new file mode 100644
index 0000000000..e2e0044f79
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.utilities.certsigning/-h-t-t-p-certificate-signing-service/server.html
@@ -0,0 +1,15 @@
+
+
+HTTPCertificateSigningService.server -
+
+
+
+net.corda.node.utilities.certsigning / HTTPCertificateSigningService / server
+
+server
+
+val server : URL
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.utilities.certsigning/-h-t-t-p-certificate-signing-service/submit-request.html b/docs/build/html/api/net.corda.node.utilities.certsigning/-h-t-t-p-certificate-signing-service/submit-request.html
new file mode 100644
index 0000000000..06bdd44011
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.utilities.certsigning/-h-t-t-p-certificate-signing-service/submit-request.html
@@ -0,0 +1,17 @@
+
+
+HTTPCertificateSigningService.submitRequest -
+
+
+
+net.corda.node.utilities.certsigning / HTTPCertificateSigningService / submitRequest
+
+submitRequest
+
+fun submitRequest ( request : <ERROR CLASS> ) : String
+Overrides CertificateSigningService.submitRequest
+Submits a CSR to the signing service and returns an opaque request ID.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.utilities.certsigning/-params-spec/base-directory-arg.html b/docs/build/html/api/net.corda.node.utilities.certsigning/-params-spec/base-directory-arg.html
new file mode 100644
index 0000000000..1d8c86d831
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.utilities.certsigning/-params-spec/base-directory-arg.html
@@ -0,0 +1,15 @@
+
+
+ParamsSpec.baseDirectoryArg -
+
+
+
+net.corda.node.utilities.certsigning / ParamsSpec / baseDirectoryArg
+
+baseDirectoryArg
+
+val baseDirectoryArg : <ERROR CLASS>
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.utilities.certsigning/-params-spec/config-file-arg.html b/docs/build/html/api/net.corda.node.utilities.certsigning/-params-spec/config-file-arg.html
new file mode 100644
index 0000000000..1457a00676
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.utilities.certsigning/-params-spec/config-file-arg.html
@@ -0,0 +1,15 @@
+
+
+ParamsSpec.configFileArg -
+
+
+
+net.corda.node.utilities.certsigning / ParamsSpec / configFileArg
+
+configFileArg
+
+val configFileArg : <ERROR CLASS>
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.utilities.certsigning/-params-spec/index.html b/docs/build/html/api/net.corda.node.utilities.certsigning/-params-spec/index.html
new file mode 100644
index 0000000000..fbfc7a4afe
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.utilities.certsigning/-params-spec/index.html
@@ -0,0 +1,37 @@
+
+
+ParamsSpec -
+
+
+
+net.corda.node.utilities.certsigning / ParamsSpec
+
+ParamsSpec
+object ParamsSpec
+
+
+Properties
+
+
+
diff --git a/docs/build/html/api/net.corda.node.utilities.certsigning/-params-spec/parser.html b/docs/build/html/api/net.corda.node.utilities.certsigning/-params-spec/parser.html
new file mode 100644
index 0000000000..07b9e967ac
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.utilities.certsigning/-params-spec/parser.html
@@ -0,0 +1,15 @@
+
+
+ParamsSpec.parser -
+
+
+
+net.corda.node.utilities.certsigning / ParamsSpec / parser
+
+parser
+
+val parser : <ERROR CLASS>
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.utilities.certsigning/index.html b/docs/build/html/api/net.corda.node.utilities.certsigning/index.html
new file mode 100644
index 0000000000..53114b2487
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.utilities.certsigning/index.html
@@ -0,0 +1,55 @@
+
+
+net.corda.node.utilities.certsigning -
+
+
+
+net.corda.node.utilities.certsigning
+
+Package net.corda.node.utilities.certsigning
+Types
+
+Functions
+
+
+
+
+main
+
+fun main ( args : Array < String > ) : Unit
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.utilities.certsigning/main.html b/docs/build/html/api/net.corda.node.utilities.certsigning/main.html
new file mode 100644
index 0000000000..45f587dfe0
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.utilities.certsigning/main.html
@@ -0,0 +1,15 @@
+
+
+main -
+
+
+
+net.corda.node.utilities.certsigning / main
+
+main
+
+fun main ( args : Array < String > ) : Unit
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.utilities/-a-n-s-i-progress-observer/-init-.html b/docs/build/html/api/net.corda.node.utilities/-a-n-s-i-progress-observer/-init-.html
new file mode 100644
index 0000000000..edc48257a0
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.utilities/-a-n-s-i-progress-observer/-init-.html
@@ -0,0 +1,16 @@
+
+
+ANSIProgressObserver. -
+
+
+
+net.corda.node.utilities / ANSIProgressObserver / <init>
+
+<init>
+ANSIProgressObserver ( smm : StateMachineManager )
+This observes the StateMachineManager and follows the progress of ProtocolLogic s until they complete in the order
+they are added to the StateMachineManager .
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.utilities/-a-n-s-i-progress-observer/index.html b/docs/build/html/api/net.corda.node.utilities/-a-n-s-i-progress-observer/index.html
new file mode 100644
index 0000000000..a0aefb1c78
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.utilities/-a-n-s-i-progress-observer/index.html
@@ -0,0 +1,40 @@
+
+
+ANSIProgressObserver -
+
+
+
+net.corda.node.utilities / ANSIProgressObserver
+
+ANSIProgressObserver
+class ANSIProgressObserver
+This observes the StateMachineManager and follows the progress of ProtocolLogic s until they complete in the order
+they are added to the StateMachineManager .
+
+
+Constructors
+
+Properties
+
+
+
diff --git a/docs/build/html/api/net.corda.node.utilities/-a-n-s-i-progress-observer/smm.html b/docs/build/html/api/net.corda.node.utilities/-a-n-s-i-progress-observer/smm.html
new file mode 100644
index 0000000000..02d3ca07fb
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.utilities/-a-n-s-i-progress-observer/smm.html
@@ -0,0 +1,15 @@
+
+
+ANSIProgressObserver.smm -
+
+
+
+net.corda.node.utilities / ANSIProgressObserver / smm
+
+smm
+
+val smm : StateMachineManager
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.utilities/-a-n-s-i-progress-renderer/index.html b/docs/build/html/api/net.corda.node.utilities/-a-n-s-i-progress-renderer/index.html
new file mode 100644
index 0000000000..1f7f329a8c
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.utilities/-a-n-s-i-progress-renderer/index.html
@@ -0,0 +1,33 @@
+
+
+ANSIProgressRenderer -
+
+
+
+net.corda.node.utilities / ANSIProgressRenderer
+
+ANSIProgressRenderer
+object ANSIProgressRenderer
+Knows how to render a ProgressTracker to the terminal using coloured, emoji-fied output. Useful when writing small
+command line tools, demos, tests etc. Just set the progressTracker field and it will go ahead and start drawing
+if the terminal supports it. Otherwise it just prints out the name of the step whenever it changes.
+When a progress tracker is on the screen, it takes over the bottom part and reconfigures logging so that, assuming
+1 log event == 1 line, the progress tracker is always glued to the bottom and logging scrolls above it.
+TODO: More thread safety
+
+
+
+
+Properties
+
+
+
diff --git a/docs/build/html/api/net.corda.node.utilities/-a-n-s-i-progress-renderer/progress-tracker.html b/docs/build/html/api/net.corda.node.utilities/-a-n-s-i-progress-renderer/progress-tracker.html
new file mode 100644
index 0000000000..2f8e005717
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.utilities/-a-n-s-i-progress-renderer/progress-tracker.html
@@ -0,0 +1,15 @@
+
+
+ANSIProgressRenderer.progressTracker -
+
+
+
+net.corda.node.utilities / ANSIProgressRenderer / progressTracker
+
+progressTracker
+
+var progressTracker : ProgressTracker ?
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.utilities/-abstract-j-d-b-c-hash-map/-init-.html b/docs/build/html/api/net.corda.node.utilities/-abstract-j-d-b-c-hash-map/-init-.html
new file mode 100644
index 0000000000..9063f06485
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.utilities/-abstract-j-d-b-c-hash-map/-init-.html
@@ -0,0 +1,38 @@
+
+
+AbstractJDBCHashMap. -
+
+
+
+net.corda.node.utilities / AbstractJDBCHashMap / <init>
+
+<init>
+AbstractJDBCHashMap ( table : T , loadOnInit : Boolean = false)
+A base class for a JDBC table backed hash map that iterates in insertion order by using
+an ever increasing sequence number on entries. Iterators supports remove() but entries are not really mutable and
+do not support setValue() method from MutableMap.MutableEntry .
+You should only use keys that have overridden Object.hashCode and that have a good hash code distribution. Beware
+changing the hashCode() implementation once objects have been persisted. A process to re-hash the entries persisted
+would be necessary if you do this.
+Subclasses must provide their own mapping to and from keys/values and the database table columns, but there are
+inherited columns that all tables must provide to support iteration order and hashing.
+The map operates in one of two modes.
+loadOnInit=true where the entire table is materialised in the JVM and only writes need to perform database access.
+loadOnInit=false where all entries with the same key hash code are materialised in the JVM on demand when accessed
+via any method other than via keys/values/entries properties, and thus the whole map is not materialised.
+All operations require a databaseTransaction to be started.
+The keys/values/entries collections are really designed just for iterating and other uses might turn out to be
+costly in terms of performance. Beware when loadOnInit=true, the iterator first sorts the entries which could be
+costly too.
+This class is not thread safe.
+TODO: buckets grows forever. Support some form of LRU cache option (e.g. use LinkedHashMap.removeEldestEntry feature).
+TODO: consider caching size once calculated for the first time.
+TODO: buckets just use a list and so are vulnerable to poor hash code implementations with collisions.
+TODO: if iterators are used extensively when loadOnInit=true, consider maintaining a collection of keys in iteration order to avoid sorting each time.
+TODO: revisit whether we need the loadOnInit==true functionality and remove if not.
+
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.utilities/-abstract-j-d-b-c-hash-map/add-key-to-insert.html b/docs/build/html/api/net.corda.node.utilities/-abstract-j-d-b-c-hash-map/add-key-to-insert.html
new file mode 100644
index 0000000000..828b6528b3
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.utilities/-abstract-j-d-b-c-hash-map/add-key-to-insert.html
@@ -0,0 +1,21 @@
+
+
+AbstractJDBCHashMap.addKeyToInsert -
+
+
+
+net.corda.node.utilities / AbstractJDBCHashMap / addKeyToInsert
+
+addKeyToInsert
+
+protected abstract fun addKeyToInsert ( insert : <ERROR CLASS> , entry : Entry < K , V > , finalizables : MutableList < ( ) -> Unit > ) : Unit
+Implementation should marshall the key to the insert statement.
+If some cleanup is required after the insert statement is executed, such as closing a Blob, then add a closure
+to the finalizables to do so.
+See example implementations in JDBCHashMap .
+
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.utilities/-abstract-j-d-b-c-hash-map/add-value-to-insert.html b/docs/build/html/api/net.corda.node.utilities/-abstract-j-d-b-c-hash-map/add-value-to-insert.html
new file mode 100644
index 0000000000..2b2bee921e
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.utilities/-abstract-j-d-b-c-hash-map/add-value-to-insert.html
@@ -0,0 +1,21 @@
+
+
+AbstractJDBCHashMap.addValueToInsert -
+
+
+
+net.corda.node.utilities / AbstractJDBCHashMap / addValueToInsert
+
+addValueToInsert
+
+protected abstract fun addValueToInsert ( insert : <ERROR CLASS> , entry : Entry < K , V > , finalizables : MutableList < ( ) -> Unit > ) : Unit
+Implementation should marshall the value to the insert statement.
+If some cleanup is required after the insert statement is executed, such as closing a Blob, then add a closure
+to the finalizables to do so.
+See example implementations in JDBCHashMap .
+
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.utilities/-abstract-j-d-b-c-hash-map/clear.html b/docs/build/html/api/net.corda.node.utilities/-abstract-j-d-b-c-hash-map/clear.html
new file mode 100644
index 0000000000..00f8dd7e9d
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.utilities/-abstract-j-d-b-c-hash-map/clear.html
@@ -0,0 +1,15 @@
+
+
+AbstractJDBCHashMap.clear -
+
+
+
+net.corda.node.utilities / AbstractJDBCHashMap / clear
+
+clear
+
+open fun clear ( ) : Unit
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.utilities/-abstract-j-d-b-c-hash-map/contains-key.html b/docs/build/html/api/net.corda.node.utilities/-abstract-j-d-b-c-hash-map/contains-key.html
new file mode 100644
index 0000000000..202f667a62
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.utilities/-abstract-j-d-b-c-hash-map/contains-key.html
@@ -0,0 +1,15 @@
+
+
+AbstractJDBCHashMap.containsKey -
+
+
+
+net.corda.node.utilities / AbstractJDBCHashMap / containsKey
+
+containsKey
+
+open fun containsKey ( key : K ) : Boolean
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.utilities/-abstract-j-d-b-c-hash-map/contains-value.html b/docs/build/html/api/net.corda.node.utilities/-abstract-j-d-b-c-hash-map/contains-value.html
new file mode 100644
index 0000000000..973211f3d0
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.utilities/-abstract-j-d-b-c-hash-map/contains-value.html
@@ -0,0 +1,15 @@
+
+
+AbstractJDBCHashMap.containsValue -
+
+
+
+net.corda.node.utilities / AbstractJDBCHashMap / containsValue
+
+containsValue
+
+open fun containsValue ( value : V ) : Boolean
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.utilities/-abstract-j-d-b-c-hash-map/entries.html b/docs/build/html/api/net.corda.node.utilities/-abstract-j-d-b-c-hash-map/entries.html
new file mode 100644
index 0000000000..0dbb167e27
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.utilities/-abstract-j-d-b-c-hash-map/entries.html
@@ -0,0 +1,15 @@
+
+
+AbstractJDBCHashMap.entries -
+
+
+
+net.corda.node.utilities / AbstractJDBCHashMap / entries
+
+entries
+
+open val entries : MutableSet < MutableEntry < K , V > >
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.utilities/-abstract-j-d-b-c-hash-map/get.html b/docs/build/html/api/net.corda.node.utilities/-abstract-j-d-b-c-hash-map/get.html
new file mode 100644
index 0000000000..29cfd17567
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.utilities/-abstract-j-d-b-c-hash-map/get.html
@@ -0,0 +1,15 @@
+
+
+AbstractJDBCHashMap.get -
+
+
+
+net.corda.node.utilities / AbstractJDBCHashMap / get
+
+get
+
+open fun get ( key : K ) : V ?
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.utilities/-abstract-j-d-b-c-hash-map/index.html b/docs/build/html/api/net.corda.node.utilities/-abstract-j-d-b-c-hash-map/index.html
new file mode 100644
index 0000000000..6420c7aba2
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.utilities/-abstract-j-d-b-c-hash-map/index.html
@@ -0,0 +1,192 @@
+
+
+AbstractJDBCHashMap -
+
+
+
+net.corda.node.utilities / AbstractJDBCHashMap
+
+AbstractJDBCHashMap
+abstract class AbstractJDBCHashMap < K : Any , V : Any , out T : JDBCHashedTable > : MutableMap < K , V > , AbstractMap < K , V >
+A base class for a JDBC table backed hash map that iterates in insertion order by using
+an ever increasing sequence number on entries. Iterators supports remove() but entries are not really mutable and
+do not support setValue() method from MutableMap.MutableEntry .
+You should only use keys that have overridden Object.hashCode and that have a good hash code distribution. Beware
+changing the hashCode() implementation once objects have been persisted. A process to re-hash the entries persisted
+would be necessary if you do this.
+Subclasses must provide their own mapping to and from keys/values and the database table columns, but there are
+inherited columns that all tables must provide to support iteration order and hashing.
+The map operates in one of two modes.
+loadOnInit=true where the entire table is materialised in the JVM and only writes need to perform database access.
+loadOnInit=false where all entries with the same key hash code are materialised in the JVM on demand when accessed
+via any method other than via keys/values/entries properties, and thus the whole map is not materialised.
+All operations require a databaseTransaction to be started.
+The keys/values/entries collections are really designed just for iterating and other uses might turn out to be
+costly in terms of performance. Beware when loadOnInit=true, the iterator first sorts the entries which could be
+costly too.
+This class is not thread safe.
+TODO: buckets grows forever. Support some form of LRU cache option (e.g. use LinkedHashMap.removeEldestEntry feature).
+TODO: consider caching size once calculated for the first time.
+TODO: buckets just use a list and so are vulnerable to poor hash code implementations with collisions.
+TODO: if iterators are used extensively when loadOnInit=true, consider maintaining a collection of keys in iteration order to avoid sorting each time.
+TODO: revisit whether we need the loadOnInit==true functionality and remove if not.
+
+
+
+
+Constructors
+
+
+
+
+<init>
+
+AbstractJDBCHashMap ( table : T , loadOnInit : Boolean = false)
A base class for a JDBC table backed hash map that iterates in insertion order by using
+an ever increasing sequence number on entries. Iterators supports remove() but entries are not really mutable and
+do not support setValue() method from MutableMap.MutableEntry .
+
+
+
+
+Properties
+
+
+
+
+entries
+
+open val entries : MutableSet < MutableEntry < K , V > >
+
+
+
+keys
+
+open val keys : MutableSet < K >
+
+
+
+loadOnInit
+
+val loadOnInit : Boolean
+
+
+
+size
+
+open val size : Int
+
+
+
+table
+
+val table : T
+
+
+
+values
+
+open val values : MutableCollection < V >
+
+
+
+Functions
+
+
+
+
+addKeyToInsert
+
+abstract fun addKeyToInsert ( insert : <ERROR CLASS> , entry : Entry < K , V > , finalizables : MutableList < ( ) -> Unit > ) : Unit
Implementation should marshall the key to the insert statement.
+
+
+
+
+addValueToInsert
+
+abstract fun addValueToInsert ( insert : <ERROR CLASS> , entry : Entry < K , V > , finalizables : MutableList < ( ) -> Unit > ) : Unit
Implementation should marshall the value to the insert statement.
+
+
+
+
+clear
+
+open fun clear ( ) : Unit
+
+
+
+containsKey
+
+open fun containsKey ( key : K ) : Boolean
+
+
+
+containsValue
+
+open fun containsValue ( value : V ) : Boolean
+
+
+
+get
+
+open fun get ( key : K ) : V ?
+
+
+
+isEmpty
+
+open fun isEmpty ( ) : Boolean
+
+
+
+keyFromRow
+
+abstract fun keyFromRow ( row : <ERROR CLASS> ) : K
Implementation should return the key object marshalled from the database table row.
+
+
+
+
+put
+
+open fun put ( key : K , value : V ) : V ?
+
+
+
+remove
+
+open fun remove ( key : K ) : V ?
+
+
+
+valueFromRow
+
+abstract fun valueFromRow ( row : <ERROR CLASS> ) : V
Implementation should return the value object marshalled from the database table row.
+
+
+
+
+Companion Object Properties
+
+
+
+
+log
+
+val log : <ERROR CLASS>
+
+
+
+Inheritors
+
+
+
+
+JDBCHashMap
+
+class JDBCHashMap < K : Any , V : Any > : AbstractJDBCHashMap < K , V , BlobMapTable >
A convenient JDBC table backed hash map with iteration order based on insertion order.
+See AbstractJDBCHashMap for further implementation details.
+
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.utilities/-abstract-j-d-b-c-hash-map/is-empty.html b/docs/build/html/api/net.corda.node.utilities/-abstract-j-d-b-c-hash-map/is-empty.html
new file mode 100644
index 0000000000..23f20b6cc9
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.utilities/-abstract-j-d-b-c-hash-map/is-empty.html
@@ -0,0 +1,15 @@
+
+
+AbstractJDBCHashMap.isEmpty -
+
+
+
+net.corda.node.utilities / AbstractJDBCHashMap / isEmpty
+
+isEmpty
+
+open fun isEmpty ( ) : Boolean
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.utilities/-abstract-j-d-b-c-hash-map/key-from-row.html b/docs/build/html/api/net.corda.node.utilities/-abstract-j-d-b-c-hash-map/key-from-row.html
new file mode 100644
index 0000000000..1c9e5476c2
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.utilities/-abstract-j-d-b-c-hash-map/key-from-row.html
@@ -0,0 +1,19 @@
+
+
+AbstractJDBCHashMap.keyFromRow -
+
+
+
+net.corda.node.utilities / AbstractJDBCHashMap / keyFromRow
+
+keyFromRow
+
+protected abstract fun keyFromRow ( row : <ERROR CLASS> ) : K
+Implementation should return the key object marshalled from the database table row.
+See example implementations in JDBCHashMap .
+
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.utilities/-abstract-j-d-b-c-hash-map/keys.html b/docs/build/html/api/net.corda.node.utilities/-abstract-j-d-b-c-hash-map/keys.html
new file mode 100644
index 0000000000..62efbfefa2
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.utilities/-abstract-j-d-b-c-hash-map/keys.html
@@ -0,0 +1,15 @@
+
+
+AbstractJDBCHashMap.keys -
+
+
+
+net.corda.node.utilities / AbstractJDBCHashMap / keys
+
+keys
+
+open val keys : MutableSet < K >
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.utilities/-abstract-j-d-b-c-hash-map/load-on-init.html b/docs/build/html/api/net.corda.node.utilities/-abstract-j-d-b-c-hash-map/load-on-init.html
new file mode 100644
index 0000000000..e23ae23b04
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.utilities/-abstract-j-d-b-c-hash-map/load-on-init.html
@@ -0,0 +1,15 @@
+
+
+AbstractJDBCHashMap.loadOnInit -
+
+
+
+net.corda.node.utilities / AbstractJDBCHashMap / loadOnInit
+
+loadOnInit
+
+val loadOnInit : Boolean
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.utilities/-abstract-j-d-b-c-hash-map/log.html b/docs/build/html/api/net.corda.node.utilities/-abstract-j-d-b-c-hash-map/log.html
new file mode 100644
index 0000000000..ca1482c32a
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.utilities/-abstract-j-d-b-c-hash-map/log.html
@@ -0,0 +1,15 @@
+
+
+AbstractJDBCHashMap.log -
+
+
+
+net.corda.node.utilities / AbstractJDBCHashMap / log
+
+log
+
+protected val log : <ERROR CLASS>
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.utilities/-abstract-j-d-b-c-hash-map/put.html b/docs/build/html/api/net.corda.node.utilities/-abstract-j-d-b-c-hash-map/put.html
new file mode 100644
index 0000000000..4ebdde25e1
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.utilities/-abstract-j-d-b-c-hash-map/put.html
@@ -0,0 +1,15 @@
+
+
+AbstractJDBCHashMap.put -
+
+
+
+net.corda.node.utilities / AbstractJDBCHashMap / put
+
+put
+
+open fun put ( key : K , value : V ) : V ?
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.utilities/-abstract-j-d-b-c-hash-map/remove.html b/docs/build/html/api/net.corda.node.utilities/-abstract-j-d-b-c-hash-map/remove.html
new file mode 100644
index 0000000000..c6bf4647c2
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.utilities/-abstract-j-d-b-c-hash-map/remove.html
@@ -0,0 +1,15 @@
+
+
+AbstractJDBCHashMap.remove -
+
+
+
+net.corda.node.utilities / AbstractJDBCHashMap / remove
+
+remove
+
+open fun remove ( key : K ) : V ?
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.utilities/-abstract-j-d-b-c-hash-map/size.html b/docs/build/html/api/net.corda.node.utilities/-abstract-j-d-b-c-hash-map/size.html
new file mode 100644
index 0000000000..bff815e98e
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.utilities/-abstract-j-d-b-c-hash-map/size.html
@@ -0,0 +1,15 @@
+
+
+AbstractJDBCHashMap.size -
+
+
+
+net.corda.node.utilities / AbstractJDBCHashMap / size
+
+size
+
+open val size : Int
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.utilities/-abstract-j-d-b-c-hash-map/table.html b/docs/build/html/api/net.corda.node.utilities/-abstract-j-d-b-c-hash-map/table.html
new file mode 100644
index 0000000000..49ad441c93
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.utilities/-abstract-j-d-b-c-hash-map/table.html
@@ -0,0 +1,15 @@
+
+
+AbstractJDBCHashMap.table -
+
+
+
+net.corda.node.utilities / AbstractJDBCHashMap / table
+
+table
+
+val table : T
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.utilities/-abstract-j-d-b-c-hash-map/value-from-row.html b/docs/build/html/api/net.corda.node.utilities/-abstract-j-d-b-c-hash-map/value-from-row.html
new file mode 100644
index 0000000000..b9b833746f
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.utilities/-abstract-j-d-b-c-hash-map/value-from-row.html
@@ -0,0 +1,19 @@
+
+
+AbstractJDBCHashMap.valueFromRow -
+
+
+
+net.corda.node.utilities / AbstractJDBCHashMap / valueFromRow
+
+valueFromRow
+
+protected abstract fun valueFromRow ( row : <ERROR CLASS> ) : V
+Implementation should return the value object marshalled from the database table row.
+See example implementations in JDBCHashMap .
+
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.utilities/-abstract-j-d-b-c-hash-map/values.html b/docs/build/html/api/net.corda.node.utilities/-abstract-j-d-b-c-hash-map/values.html
new file mode 100644
index 0000000000..8e31af6357
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.utilities/-abstract-j-d-b-c-hash-map/values.html
@@ -0,0 +1,15 @@
+
+
+AbstractJDBCHashMap.values -
+
+
+
+net.corda.node.utilities / AbstractJDBCHashMap / values
+
+values
+
+open val values : MutableCollection < V >
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.utilities/-abstract-j-d-b-c-hash-set/-init-.html b/docs/build/html/api/net.corda.node.utilities/-abstract-j-d-b-c-hash-set/-init-.html
new file mode 100644
index 0000000000..ea88094f78
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.utilities/-abstract-j-d-b-c-hash-set/-init-.html
@@ -0,0 +1,19 @@
+
+
+AbstractJDBCHashSet. -
+
+
+
+net.corda.node.utilities / AbstractJDBCHashSet / <init>
+
+<init>
+AbstractJDBCHashSet ( table : T , loadOnInit : Boolean = false)
+Base class for JDBC backed hash set that delegates to a JDBC backed hash map where the values are all
+Unit and not actually persisted. Iteration order is order of insertion. Iterators can remove().
+See AbstractJDBCHashMap for implementation details.
+
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.utilities/-abstract-j-d-b-c-hash-set/add-element-to-insert.html b/docs/build/html/api/net.corda.node.utilities/-abstract-j-d-b-c-hash-set/add-element-to-insert.html
new file mode 100644
index 0000000000..08f32fbe85
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.utilities/-abstract-j-d-b-c-hash-set/add-element-to-insert.html
@@ -0,0 +1,21 @@
+
+
+AbstractJDBCHashSet.addElementToInsert -
+
+
+
+net.corda.node.utilities / AbstractJDBCHashSet / addElementToInsert
+
+addElementToInsert
+
+protected abstract fun addElementToInsert ( insert : <ERROR CLASS> , entry : K , finalizables : MutableList < ( ) -> Unit > ) : Unit
+Implementation should marshall the element to the insert statement.
+If some cleanup is required after the insert statement is executed, such as closing a Blob, then add a closure
+to the finalizables to do so.
+See example implementations in JDBCHashSet .
+
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.utilities/-abstract-j-d-b-c-hash-set/add.html b/docs/build/html/api/net.corda.node.utilities/-abstract-j-d-b-c-hash-set/add.html
new file mode 100644
index 0000000000..205578460c
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.utilities/-abstract-j-d-b-c-hash-set/add.html
@@ -0,0 +1,15 @@
+
+
+AbstractJDBCHashSet.add -
+
+
+
+net.corda.node.utilities / AbstractJDBCHashSet / add
+
+add
+
+open fun add ( element : K ) : Boolean
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.utilities/-abstract-j-d-b-c-hash-set/clear.html b/docs/build/html/api/net.corda.node.utilities/-abstract-j-d-b-c-hash-set/clear.html
new file mode 100644
index 0000000000..fc9fa4938a
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.utilities/-abstract-j-d-b-c-hash-set/clear.html
@@ -0,0 +1,15 @@
+
+
+AbstractJDBCHashSet.clear -
+
+
+
+net.corda.node.utilities / AbstractJDBCHashSet / clear
+
+clear
+
+open fun clear ( ) : Unit
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.utilities/-abstract-j-d-b-c-hash-set/contains.html b/docs/build/html/api/net.corda.node.utilities/-abstract-j-d-b-c-hash-set/contains.html
new file mode 100644
index 0000000000..c38d875b89
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.utilities/-abstract-j-d-b-c-hash-set/contains.html
@@ -0,0 +1,15 @@
+
+
+AbstractJDBCHashSet.contains -
+
+
+
+net.corda.node.utilities / AbstractJDBCHashSet / contains
+
+contains
+
+open fun contains ( element : K ) : Boolean
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.utilities/-abstract-j-d-b-c-hash-set/element-from-row.html b/docs/build/html/api/net.corda.node.utilities/-abstract-j-d-b-c-hash-set/element-from-row.html
new file mode 100644
index 0000000000..7c3874feb0
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.utilities/-abstract-j-d-b-c-hash-set/element-from-row.html
@@ -0,0 +1,19 @@
+
+
+AbstractJDBCHashSet.elementFromRow -
+
+
+
+net.corda.node.utilities / AbstractJDBCHashSet / elementFromRow
+
+elementFromRow
+
+protected abstract fun elementFromRow ( row : <ERROR CLASS> ) : K
+Implementation should return the element object marshalled from the database table row.
+See example implementations in JDBCHashSet .
+
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.utilities/-abstract-j-d-b-c-hash-set/index.html b/docs/build/html/api/net.corda.node.utilities/-abstract-j-d-b-c-hash-set/index.html
new file mode 100644
index 0000000000..d281b1ecb2
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.utilities/-abstract-j-d-b-c-hash-set/index.html
@@ -0,0 +1,137 @@
+
+
+AbstractJDBCHashSet -
+
+
+
+net.corda.node.utilities / AbstractJDBCHashSet
+
+AbstractJDBCHashSet
+abstract class AbstractJDBCHashSet < K : Any , out T : JDBCHashedTable > : MutableSet < K > , AbstractSet < K >
+Base class for JDBC backed hash set that delegates to a JDBC backed hash map where the values are all
+Unit and not actually persisted. Iteration order is order of insertion. Iterators can remove().
+See AbstractJDBCHashMap for implementation details.
+
+
+
+
+Constructors
+
+
+
+
+<init>
+
+AbstractJDBCHashSet ( table : T , loadOnInit : Boolean = false)
Base class for JDBC backed hash set that delegates to a JDBC backed hash map where the values are all
+Unit and not actually persisted. Iteration order is order of insertion. Iterators can remove().
+
+
+
+
+Properties
+
+Functions
+
+
+
+
+add
+
+open fun add ( element : K ) : Boolean
+
+
+
+addElementToInsert
+
+abstract fun addElementToInsert ( insert : <ERROR CLASS> , entry : K , finalizables : MutableList < ( ) -> Unit > ) : Unit
Implementation should marshall the element to the insert statement.
+
+
+
+
+clear
+
+open fun clear ( ) : Unit
+
+
+
+contains
+
+open fun contains ( element : K ) : Boolean
+
+
+
+elementFromRow
+
+abstract fun elementFromRow ( row : <ERROR CLASS> ) : K
Implementation should return the element object marshalled from the database table row.
+
+
+
+
+isEmpty
+
+open fun isEmpty ( ) : Boolean
+
+
+
+iterator
+
+open fun iterator ( ) : MutableIterator < K >
+
+
+
+remove
+
+open fun remove ( element : K ) : Boolean
+
+
+
+Extension Functions
+
+
+
+
+noneOrSingle
+
+fun < T > Iterable < T > . noneOrSingle ( predicate : ( T ) -> Boolean ) : T ?
Returns the single element matching the given predicate , or null
if element was not found,
+or throws if more than one element was found.
+fun < T > Iterable < T > . noneOrSingle ( ) : T ?
Returns single element, or null
if element was not found, or throws if more than one element was found.
+
+
+
+
+Inheritors
+
+
+
+
+JDBCHashSet
+
+class JDBCHashSet < K : Any > : AbstractJDBCHashSet < K , BlobSetTable >
A convenient JDBC table backed hash set with iteration order based on insertion order.
+See AbstractJDBCHashSet and AbstractJDBCHashMap for further implementation details.
+
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.utilities/-abstract-j-d-b-c-hash-set/inner-map.html b/docs/build/html/api/net.corda.node.utilities/-abstract-j-d-b-c-hash-set/inner-map.html
new file mode 100644
index 0000000000..80af95f44f
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.utilities/-abstract-j-d-b-c-hash-set/inner-map.html
@@ -0,0 +1,15 @@
+
+
+AbstractJDBCHashSet.innerMap -
+
+
+
+net.corda.node.utilities / AbstractJDBCHashSet / innerMap
+
+innerMap
+
+protected val innerMap : AbstractJDBCHashMap < K , Unit , T >
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.utilities/-abstract-j-d-b-c-hash-set/is-empty.html b/docs/build/html/api/net.corda.node.utilities/-abstract-j-d-b-c-hash-set/is-empty.html
new file mode 100644
index 0000000000..69109c0c91
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.utilities/-abstract-j-d-b-c-hash-set/is-empty.html
@@ -0,0 +1,15 @@
+
+
+AbstractJDBCHashSet.isEmpty -
+
+
+
+net.corda.node.utilities / AbstractJDBCHashSet / isEmpty
+
+isEmpty
+
+open fun isEmpty ( ) : Boolean
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.utilities/-abstract-j-d-b-c-hash-set/iterator.html b/docs/build/html/api/net.corda.node.utilities/-abstract-j-d-b-c-hash-set/iterator.html
new file mode 100644
index 0000000000..2e7476f4dc
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.utilities/-abstract-j-d-b-c-hash-set/iterator.html
@@ -0,0 +1,15 @@
+
+
+AbstractJDBCHashSet.iterator -
+
+
+
+net.corda.node.utilities / AbstractJDBCHashSet / iterator
+
+iterator
+
+open fun iterator ( ) : MutableIterator < K >
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.utilities/-abstract-j-d-b-c-hash-set/remove.html b/docs/build/html/api/net.corda.node.utilities/-abstract-j-d-b-c-hash-set/remove.html
new file mode 100644
index 0000000000..e9c3377bfb
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.utilities/-abstract-j-d-b-c-hash-set/remove.html
@@ -0,0 +1,15 @@
+
+
+AbstractJDBCHashSet.remove -
+
+
+
+net.corda.node.utilities / AbstractJDBCHashSet / remove
+
+remove
+
+open fun remove ( element : K ) : Boolean
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.utilities/-abstract-j-d-b-c-hash-set/size.html b/docs/build/html/api/net.corda.node.utilities/-abstract-j-d-b-c-hash-set/size.html
new file mode 100644
index 0000000000..0793f104f2
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.utilities/-abstract-j-d-b-c-hash-set/size.html
@@ -0,0 +1,15 @@
+
+
+AbstractJDBCHashSet.size -
+
+
+
+net.corda.node.utilities / AbstractJDBCHashSet / size
+
+size
+
+open val size : Int
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.utilities/-abstract-j-d-b-c-hash-set/table.html b/docs/build/html/api/net.corda.node.utilities/-abstract-j-d-b-c-hash-set/table.html
new file mode 100644
index 0000000000..bac62fe004
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.utilities/-abstract-j-d-b-c-hash-set/table.html
@@ -0,0 +1,15 @@
+
+
+AbstractJDBCHashSet.table -
+
+
+
+net.corda.node.utilities / AbstractJDBCHashSet / table
+
+table
+
+protected val table : T
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.utilities/-add-or-remove/-a-d-d.html b/docs/build/html/api/net.corda.node.utilities/-add-or-remove/-a-d-d.html
new file mode 100644
index 0000000000..f61a0d05f0
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.utilities/-add-or-remove/-a-d-d.html
@@ -0,0 +1,14 @@
+
+
+AddOrRemove.ADD -
+
+
+
+net.corda.node.utilities / AddOrRemove / ADD
+
+ADD
+ADD
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.utilities/-add-or-remove/-r-e-m-o-v-e.html b/docs/build/html/api/net.corda.node.utilities/-add-or-remove/-r-e-m-o-v-e.html
new file mode 100644
index 0000000000..a1bc4f340e
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.utilities/-add-or-remove/-r-e-m-o-v-e.html
@@ -0,0 +1,14 @@
+
+
+AddOrRemove.REMOVE -
+
+
+
+net.corda.node.utilities / AddOrRemove / REMOVE
+
+REMOVE
+REMOVE
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.utilities/-add-or-remove/index.html b/docs/build/html/api/net.corda.node.utilities/-add-or-remove/index.html
new file mode 100644
index 0000000000..4202ae5748
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.utilities/-add-or-remove/index.html
@@ -0,0 +1,32 @@
+
+
+AddOrRemove -
+
+
+
+net.corda.node.utilities / AddOrRemove
+
+AddOrRemove
+enum class AddOrRemove
+Enum for when adding/removing something, for example adding or removing an entry in a directory.
+
+
+Enum Values
+
+
+
diff --git a/docs/build/html/api/net.corda.node.utilities/-affinity-executor/-gate/-init-.html b/docs/build/html/api/net.corda.node.utilities/-affinity-executor/-gate/-init-.html
new file mode 100644
index 0000000000..404c4447f5
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.utilities/-affinity-executor/-gate/-init-.html
@@ -0,0 +1,19 @@
+
+
+AffinityExecutor.Gate. -
+
+
+
+net.corda.node.utilities / AffinityExecutor / Gate / <init>
+
+<init>
+Gate ( alwaysQueue : Boolean = false)
+An executor useful for unit tests: allows the current thread to block until a command arrives from another
+thread, which is then executed. Inbound closures/commands stack up until they are cleared by looping.
+Parameters
+
+alwaysQueue
- If true, executeASAP will never short-circuit and will always queue up.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.utilities/-affinity-executor/-gate/execute.html b/docs/build/html/api/net.corda.node.utilities/-affinity-executor/-gate/execute.html
new file mode 100644
index 0000000000..3ae9ed1914
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.utilities/-affinity-executor/-gate/execute.html
@@ -0,0 +1,15 @@
+
+
+AffinityExecutor.Gate.execute -
+
+
+
+net.corda.node.utilities / AffinityExecutor / Gate / execute
+
+execute
+
+fun execute ( command : Runnable ) : Unit
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.utilities/-affinity-executor/-gate/flush.html b/docs/build/html/api/net.corda.node.utilities/-affinity-executor/-gate/flush.html
new file mode 100644
index 0000000000..2927102974
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.utilities/-affinity-executor/-gate/flush.html
@@ -0,0 +1,17 @@
+
+
+AffinityExecutor.Gate.flush -
+
+
+
+net.corda.node.utilities / AffinityExecutor / Gate / flush
+
+flush
+
+fun flush ( ) : Unit
+Overrides AffinityExecutor.flush
+Run the executor until there are no tasks pending and none executing.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.utilities/-affinity-executor/-gate/index.html b/docs/build/html/api/net.corda.node.utilities/-affinity-executor/-gate/index.html
new file mode 100644
index 0000000000..fd04560bd3
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.utilities/-affinity-executor/-gate/index.html
@@ -0,0 +1,101 @@
+
+
+AffinityExecutor.Gate -
+
+
+
+net.corda.node.utilities / AffinityExecutor / Gate
+
+Gate
+class Gate : AffinityExecutor
+An executor useful for unit tests: allows the current thread to block until a command arrives from another
+thread, which is then executed. Inbound closures/commands stack up until they are cleared by looping.
+Parameters
+
+alwaysQueue
- If true, executeASAP will never short-circuit and will always queue up.
+
+
+Constructors
+
+
+
+
+<init>
+
+Gate ( alwaysQueue : Boolean = false)
An executor useful for unit tests: allows the current thread to block until a command arrives from another
+thread, which is then executed. Inbound closures/commands stack up until they are cleared by looping.
+
+
+
+
+Properties
+
+
+
+
+isOnThread
+
+val isOnThread : Boolean
Returns true if the current thread is equal to the thread this executor is backed by.
+
+
+
+
+taskQueueSize
+
+val taskQueueSize : Int
+
+
+
+Functions
+
+
+
+
+execute
+
+fun execute ( command : Runnable ) : Unit
+
+
+
+flush
+
+fun flush ( ) : Unit
Run the executor until there are no tasks pending and none executing.
+
+
+
+
+waitAndRun
+
+fun waitAndRun ( ) : Unit
+
+
+
+Inherited Functions
+
+
+
+
+checkOnThread
+
+open fun checkOnThread ( ) : Unit
Throws an IllegalStateException if the current thread is not one of the threads this executor is backed by.
+
+
+
+
+executeASAP
+
+open fun executeASAP ( runnable : ( ) -> Unit ) : Unit
If isOnThread() then runnable is invoked immediately, otherwise the closure is queued onto the backing thread.
+
+
+
+
+fetchFrom
+
+open fun < T > fetchFrom ( fetcher : ( ) -> T ) : T
Runs the given function on the executor, blocking until the result is available. Be careful not to deadlock this
+way Make sure the executor cant possibly be waiting for the calling thread.
+
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.utilities/-affinity-executor/-gate/is-on-thread.html b/docs/build/html/api/net.corda.node.utilities/-affinity-executor/-gate/is-on-thread.html
new file mode 100644
index 0000000000..216530c432
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.utilities/-affinity-executor/-gate/is-on-thread.html
@@ -0,0 +1,20 @@
+
+
+AffinityExecutor.Gate.isOnThread -
+
+
+
+net.corda.node.utilities / AffinityExecutor / Gate / isOnThread
+
+isOnThread
+
+val isOnThread : Boolean
+Overrides AffinityExecutor.isOnThread
+Returns true if the current thread is equal to the thread this executor is backed by.
+Getter
+
Returns true if the current thread is equal to the thread this executor is backed by.
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.utilities/-affinity-executor/-gate/task-queue-size.html b/docs/build/html/api/net.corda.node.utilities/-affinity-executor/-gate/task-queue-size.html
new file mode 100644
index 0000000000..f3a29cd514
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.utilities/-affinity-executor/-gate/task-queue-size.html
@@ -0,0 +1,15 @@
+
+
+AffinityExecutor.Gate.taskQueueSize -
+
+
+
+net.corda.node.utilities / AffinityExecutor / Gate / taskQueueSize
+
+taskQueueSize
+
+val taskQueueSize : Int
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.utilities/-affinity-executor/-gate/wait-and-run.html b/docs/build/html/api/net.corda.node.utilities/-affinity-executor/-gate/wait-and-run.html
new file mode 100644
index 0000000000..89262ca346
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.utilities/-affinity-executor/-gate/wait-and-run.html
@@ -0,0 +1,15 @@
+
+
+AffinityExecutor.Gate.waitAndRun -
+
+
+
+net.corda.node.utilities / AffinityExecutor / Gate / waitAndRun
+
+waitAndRun
+
+fun waitAndRun ( ) : Unit
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.utilities/-affinity-executor/-service-affinity-executor/-init-.html b/docs/build/html/api/net.corda.node.utilities/-affinity-executor/-service-affinity-executor/-init-.html
new file mode 100644
index 0000000000..6055f3cfdb
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.utilities/-affinity-executor/-service-affinity-executor/-init-.html
@@ -0,0 +1,16 @@
+
+
+AffinityExecutor.ServiceAffinityExecutor. -
+
+
+
+net.corda.node.utilities / AffinityExecutor / ServiceAffinityExecutor / <init>
+
+<init>
+ServiceAffinityExecutor ( threadName : String , numThreads : Int )
+An executor backed by thread pool (which may often have a single thread) which makes it easy to schedule
+tasks in the future and verify code is running on the executor.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.utilities/-affinity-executor/-service-affinity-executor/after-execute.html b/docs/build/html/api/net.corda.node.utilities/-affinity-executor/-service-affinity-executor/after-execute.html
new file mode 100644
index 0000000000..560fcaf268
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.utilities/-affinity-executor/-service-affinity-executor/after-execute.html
@@ -0,0 +1,15 @@
+
+
+AffinityExecutor.ServiceAffinityExecutor.afterExecute -
+
+
+
+net.corda.node.utilities / AffinityExecutor / ServiceAffinityExecutor / afterExecute
+
+afterExecute
+
+protected open fun afterExecute ( r : Runnable , t : Throwable ? ) : Unit
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.utilities/-affinity-executor/-service-affinity-executor/flush.html b/docs/build/html/api/net.corda.node.utilities/-affinity-executor/-service-affinity-executor/flush.html
new file mode 100644
index 0000000000..431d060c2c
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.utilities/-affinity-executor/-service-affinity-executor/flush.html
@@ -0,0 +1,17 @@
+
+
+AffinityExecutor.ServiceAffinityExecutor.flush -
+
+
+
+net.corda.node.utilities / AffinityExecutor / ServiceAffinityExecutor / flush
+
+flush
+
+open fun flush ( ) : Unit
+Overrides AffinityExecutor.flush
+Run the executor until there are no tasks pending and none executing.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.utilities/-affinity-executor/-service-affinity-executor/index.html b/docs/build/html/api/net.corda.node.utilities/-affinity-executor/-service-affinity-executor/index.html
new file mode 100644
index 0000000000..a7d27a7657
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.utilities/-affinity-executor/-service-affinity-executor/index.html
@@ -0,0 +1,97 @@
+
+
+AffinityExecutor.ServiceAffinityExecutor -
+
+
+
+net.corda.node.utilities / AffinityExecutor / ServiceAffinityExecutor
+
+ServiceAffinityExecutor
+open class ServiceAffinityExecutor : AffinityExecutor , ThreadPoolExecutor
+An executor backed by thread pool (which may often have a single thread) which makes it easy to schedule
+tasks in the future and verify code is running on the executor.
+
+
+Constructors
+
+
+
+
+<init>
+
+ServiceAffinityExecutor ( threadName : String , numThreads : Int )
An executor backed by thread pool (which may often have a single thread) which makes it easy to schedule
+tasks in the future and verify code is running on the executor.
+
+
+
+
+Properties
+
+
+
+
+isOnThread
+
+open val isOnThread : Boolean
Returns true if the current thread is equal to the thread this executor is backed by.
+
+
+
+
+Functions
+
+
+
+
+afterExecute
+
+open fun afterExecute ( r : Runnable , t : Throwable ? ) : Unit
+
+
+
+flush
+
+open fun flush ( ) : Unit
Run the executor until there are no tasks pending and none executing.
+
+
+
+
+Inherited Functions
+
+
+
+
+checkOnThread
+
+open fun checkOnThread ( ) : Unit
Throws an IllegalStateException if the current thread is not one of the threads this executor is backed by.
+
+
+
+
+executeASAP
+
+open fun executeASAP ( runnable : ( ) -> Unit ) : Unit
If isOnThread() then runnable is invoked immediately, otherwise the closure is queued onto the backing thread.
+
+
+
+
+fetchFrom
+
+open fun < T > fetchFrom ( fetcher : ( ) -> T ) : T
Runs the given function on the executor, blocking until the result is available. Be careful not to deadlock this
+way Make sure the executor cant possibly be waiting for the calling thread.
+
+
+
+
+Companion Object Properties
+
+
+
+
+logger
+
+val logger : <ERROR CLASS>
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.utilities/-affinity-executor/-service-affinity-executor/is-on-thread.html b/docs/build/html/api/net.corda.node.utilities/-affinity-executor/-service-affinity-executor/is-on-thread.html
new file mode 100644
index 0000000000..e58878a03f
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.utilities/-affinity-executor/-service-affinity-executor/is-on-thread.html
@@ -0,0 +1,20 @@
+
+
+AffinityExecutor.ServiceAffinityExecutor.isOnThread -
+
+
+
+net.corda.node.utilities / AffinityExecutor / ServiceAffinityExecutor / isOnThread
+
+isOnThread
+
+open val isOnThread : Boolean
+Overrides AffinityExecutor.isOnThread
+Returns true if the current thread is equal to the thread this executor is backed by.
+Getter
+
Returns true if the current thread is equal to the thread this executor is backed by.
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.utilities/-affinity-executor/-service-affinity-executor/logger.html b/docs/build/html/api/net.corda.node.utilities/-affinity-executor/-service-affinity-executor/logger.html
new file mode 100644
index 0000000000..1652a8f31e
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.utilities/-affinity-executor/-service-affinity-executor/logger.html
@@ -0,0 +1,15 @@
+
+
+AffinityExecutor.ServiceAffinityExecutor.logger -
+
+
+
+net.corda.node.utilities / AffinityExecutor / ServiceAffinityExecutor / logger
+
+logger
+
+val logger : <ERROR CLASS>
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.utilities/-affinity-executor/check-on-thread.html b/docs/build/html/api/net.corda.node.utilities/-affinity-executor/check-on-thread.html
new file mode 100644
index 0000000000..e6986d946d
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.utilities/-affinity-executor/check-on-thread.html
@@ -0,0 +1,16 @@
+
+
+AffinityExecutor.checkOnThread -
+
+
+
+net.corda.node.utilities / AffinityExecutor / checkOnThread
+
+checkOnThread
+
+open fun checkOnThread ( ) : Unit
+Throws an IllegalStateException if the current thread is not one of the threads this executor is backed by.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.utilities/-affinity-executor/execute-a-s-a-p.html b/docs/build/html/api/net.corda.node.utilities/-affinity-executor/execute-a-s-a-p.html
new file mode 100644
index 0000000000..c9181aeca6
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.utilities/-affinity-executor/execute-a-s-a-p.html
@@ -0,0 +1,16 @@
+
+
+AffinityExecutor.executeASAP -
+
+
+
+net.corda.node.utilities / AffinityExecutor / executeASAP
+
+executeASAP
+
+open fun executeASAP ( runnable : ( ) -> Unit ) : Unit
+If isOnThread() then runnable is invoked immediately, otherwise the closure is queued onto the backing thread.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.utilities/-affinity-executor/fetch-from.html b/docs/build/html/api/net.corda.node.utilities/-affinity-executor/fetch-from.html
new file mode 100644
index 0000000000..3fd487a60a
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.utilities/-affinity-executor/fetch-from.html
@@ -0,0 +1,17 @@
+
+
+AffinityExecutor.fetchFrom -
+
+
+
+net.corda.node.utilities / AffinityExecutor / fetchFrom
+
+fetchFrom
+
+open fun < T > fetchFrom ( fetcher : ( ) -> T ) : T
+Runs the given function on the executor, blocking until the result is available. Be careful not to deadlock this
+way Make sure the executor cant possibly be waiting for the calling thread.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.utilities/-affinity-executor/flush.html b/docs/build/html/api/net.corda.node.utilities/-affinity-executor/flush.html
new file mode 100644
index 0000000000..2095ac4f4d
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.utilities/-affinity-executor/flush.html
@@ -0,0 +1,16 @@
+
+
+AffinityExecutor.flush -
+
+
+
+net.corda.node.utilities / AffinityExecutor / flush
+
+flush
+
+abstract fun flush ( ) : Unit
+Run the executor until there are no tasks pending and none executing.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.utilities/-affinity-executor/index.html b/docs/build/html/api/net.corda.node.utilities/-affinity-executor/index.html
new file mode 100644
index 0000000000..eb253d24cc
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.utilities/-affinity-executor/index.html
@@ -0,0 +1,104 @@
+
+
+AffinityExecutor -
+
+
+
+net.corda.node.utilities / AffinityExecutor
+
+AffinityExecutor
+interface AffinityExecutor : Executor
+An extended executor interface that supports thread affinity assertions and short circuiting. This can be useful
+for ensuring code runs on the right thread, and also for unit testing.
+
+
+Types
+
+
+
+
+Gate
+
+class Gate : AffinityExecutor
An executor useful for unit tests: allows the current thread to block until a command arrives from another
+thread, which is then executed. Inbound closures/commands stack up until they are cleared by looping.
+
+
+
+
+ServiceAffinityExecutor
+
+open class ServiceAffinityExecutor : AffinityExecutor , ThreadPoolExecutor
An executor backed by thread pool (which may often have a single thread) which makes it easy to schedule
+tasks in the future and verify code is running on the executor.
+
+
+
+
+Properties
+
+
+
+
+isOnThread
+
+abstract val isOnThread : Boolean
Returns true if the current thread is equal to the thread this executor is backed by.
+
+
+
+
+Functions
+
+
+
+
+checkOnThread
+
+open fun checkOnThread ( ) : Unit
Throws an IllegalStateException if the current thread is not one of the threads this executor is backed by.
+
+
+
+
+executeASAP
+
+open fun executeASAP ( runnable : ( ) -> Unit ) : Unit
If isOnThread() then runnable is invoked immediately, otherwise the closure is queued onto the backing thread.
+
+
+
+
+fetchFrom
+
+open fun < T > fetchFrom ( fetcher : ( ) -> T ) : T
Runs the given function on the executor, blocking until the result is available. Be careful not to deadlock this
+way Make sure the executor cant possibly be waiting for the calling thread.
+
+
+
+
+flush
+
+abstract fun flush ( ) : Unit
Run the executor until there are no tasks pending and none executing.
+
+
+
+
+Inheritors
+
+
+
+
+Gate
+
+class Gate : AffinityExecutor
An executor useful for unit tests: allows the current thread to block until a command arrives from another
+thread, which is then executed. Inbound closures/commands stack up until they are cleared by looping.
+
+
+
+
+ServiceAffinityExecutor
+
+open class ServiceAffinityExecutor : AffinityExecutor , ThreadPoolExecutor
An executor backed by thread pool (which may often have a single thread) which makes it easy to schedule
+tasks in the future and verify code is running on the executor.
+
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.utilities/-affinity-executor/is-on-thread.html b/docs/build/html/api/net.corda.node.utilities/-affinity-executor/is-on-thread.html
new file mode 100644
index 0000000000..800ba6b242
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.utilities/-affinity-executor/is-on-thread.html
@@ -0,0 +1,16 @@
+
+
+AffinityExecutor.isOnThread -
+
+
+
+net.corda.node.utilities / AffinityExecutor / isOnThread
+
+isOnThread
+
+abstract val isOnThread : Boolean
+Returns true if the current thread is equal to the thread this executor is backed by.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.utilities/-fiber-box/-init-.html b/docs/build/html/api/net.corda.node.utilities/-fiber-box/-init-.html
new file mode 100644
index 0000000000..d688d5ba8e
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.utilities/-fiber-box/-init-.html
@@ -0,0 +1,35 @@
+
+
+FiberBox. -
+
+
+
+net.corda.node.utilities / FiberBox / <init>
+
+<init>
+FiberBox ( content : T , lock : Lock = ReentrantLock())
+Modelled on ThreadBox , but with support for waiting that is compatible with Quasar Fiber s and MutableClock s.
+It supports 3 main operations, all of which operate in a similar context to the locked method
+of ThreadBox . i.e. in the context of the content.
+read operations which acquire the associated lock but do not notify any waiters (see readWithDeadline )
+and is a direct equivalent of ThreadBox.locked .
+write operations which are the same as read operations but additionally notify any waiters that the content may have changed.
+readWithDeadline operations acquire the lock and are evaluated repeatedly until they no longer throw any subclass
+of RetryableException . Between iterations it will wait until woken by a write or the deadline is reached. It will eventually
+re-throw a RetryableException if the deadline passes without any successful iterations.
+The construct also supports MutableClock s so it can cope with artificial progress towards the deadline, for simulations
+or testing.
+Currently this is intended for use within a node as a simplified way for Oracles to implement subscriptions for changing
+data by running a protocol internally to implement the request handler (see NodeInterestRates.Oracle ), which can then
+effectively relinquish control until the data becomes available. This isnt the most scalable design and is intended
+to be temporary. In addition, its enitrely possible to envisage a time when we want public ProtocolLogic
+implementations to be able to wait for some condition to become true outside of message send/receive. At that point
+we may revisit this implementation and indeed the whole model for this, when we understand that requirement more fully.
+TODO: We should consider using a Semaphore or CountDownLatch here to make it a little easier to understand, but it seems
+as though the current version of Qasar does not support suspending on either of their implementations.
+
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.utilities/-fiber-box/index.html b/docs/build/html/api/net.corda.node.utilities/-fiber-box/index.html
new file mode 100644
index 0000000000..11ad137631
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.utilities/-fiber-box/index.html
@@ -0,0 +1,70 @@
+
+
+FiberBox -
+
+
+
+net.corda.node.utilities / FiberBox
+
+FiberBox
+class FiberBox < out T >
+Modelled on ThreadBox , but with support for waiting that is compatible with Quasar Fiber s and MutableClock s.
+It supports 3 main operations, all of which operate in a similar context to the locked method
+of ThreadBox . i.e. in the context of the content.
+read operations which acquire the associated lock but do not notify any waiters (see readWithDeadline )
+and is a direct equivalent of ThreadBox.locked .
+write operations which are the same as read operations but additionally notify any waiters that the content may have changed.
+readWithDeadline operations acquire the lock and are evaluated repeatedly until they no longer throw any subclass
+of RetryableException . Between iterations it will wait until woken by a write or the deadline is reached. It will eventually
+re-throw a RetryableException if the deadline passes without any successful iterations.
+The construct also supports MutableClock s so it can cope with artificial progress towards the deadline, for simulations
+or testing.
+Currently this is intended for use within a node as a simplified way for Oracles to implement subscriptions for changing
+data by running a protocol internally to implement the request handler (see NodeInterestRates.Oracle ), which can then
+effectively relinquish control until the data becomes available. This isnt the most scalable design and is intended
+to be temporary. In addition, its enitrely possible to envisage a time when we want public ProtocolLogic
+implementations to be able to wait for some condition to become true outside of message send/receive. At that point
+we may revisit this implementation and indeed the whole model for this, when we understand that requirement more fully.
+TODO: We should consider using a Semaphore or CountDownLatch here to make it a little easier to understand, but it seems
+as though the current version of Qasar does not support suspending on either of their implementations.
+
+
+
+
+Constructors
+
+
+
+
+<init>
+
+FiberBox ( content : T , lock : Lock = ReentrantLock())
Modelled on ThreadBox , but with support for waiting that is compatible with Quasar Fiber s and MutableClock s.
+
+
+
+
+Functions
+
+
+
+
+read
+
+fun < R > read ( body : T . ( ) -> R ) : R
+
+
+
+readWithDeadline
+
+fun < R > readWithDeadline ( clock : Clock , deadline : Instant , body : T . ( ) -> R ) : R
+
+
+
+write
+
+fun < R > write ( body : T . ( ) -> R ) : R
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.utilities/-fiber-box/read-with-deadline.html b/docs/build/html/api/net.corda.node.utilities/-fiber-box/read-with-deadline.html
new file mode 100644
index 0000000000..00533ae2aa
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.utilities/-fiber-box/read-with-deadline.html
@@ -0,0 +1,15 @@
+
+
+FiberBox.readWithDeadline -
+
+
+
+net.corda.node.utilities / FiberBox / readWithDeadline
+
+readWithDeadline
+
+fun < R > readWithDeadline ( clock : Clock , deadline : Instant , body : T . ( ) -> R ) : R
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.utilities/-fiber-box/read.html b/docs/build/html/api/net.corda.node.utilities/-fiber-box/read.html
new file mode 100644
index 0000000000..ae8fd3e42c
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.utilities/-fiber-box/read.html
@@ -0,0 +1,15 @@
+
+
+FiberBox.read -
+
+
+
+net.corda.node.utilities / FiberBox / read
+
+read
+
+fun < R > read ( body : T . ( ) -> R ) : R
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.utilities/-fiber-box/write.html b/docs/build/html/api/net.corda.node.utilities/-fiber-box/write.html
new file mode 100644
index 0000000000..4614091724
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.utilities/-fiber-box/write.html
@@ -0,0 +1,15 @@
+
+
+FiberBox.write -
+
+
+
+net.corda.node.utilities / FiberBox / write
+
+write
+
+fun < R > write ( body : T . ( ) -> R ) : R
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.utilities/-instant-column-type/index.html b/docs/build/html/api/net.corda.node.utilities/-instant-column-type/index.html
new file mode 100644
index 0000000000..f99accee84
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.utilities/-instant-column-type/index.html
@@ -0,0 +1,44 @@
+
+
+InstantColumnType -
+
+
+
+net.corda.node.utilities / InstantColumnType
+
+InstantColumnType
+object InstantColumnType
+ColumnType for marshalling to/from database on behalf of java.time.Instant .
+
+
+Functions
+
+
+
diff --git a/docs/build/html/api/net.corda.node.utilities/-instant-column-type/non-null-value-to-string.html b/docs/build/html/api/net.corda.node.utilities/-instant-column-type/non-null-value-to-string.html
new file mode 100644
index 0000000000..4dbb76717b
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.utilities/-instant-column-type/non-null-value-to-string.html
@@ -0,0 +1,15 @@
+
+
+InstantColumnType.nonNullValueToString -
+
+
+
+net.corda.node.utilities / InstantColumnType / nonNullValueToString
+
+nonNullValueToString
+
+fun nonNullValueToString ( value : Any ) : String
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.utilities/-instant-column-type/not-null-value-to-d-b.html b/docs/build/html/api/net.corda.node.utilities/-instant-column-type/not-null-value-to-d-b.html
new file mode 100644
index 0000000000..a344316f50
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.utilities/-instant-column-type/not-null-value-to-d-b.html
@@ -0,0 +1,15 @@
+
+
+InstantColumnType.notNullValueToDB -
+
+
+
+net.corda.node.utilities / InstantColumnType / notNullValueToDB
+
+notNullValueToDB
+
+fun notNullValueToDB ( value : Any ) : Any
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.utilities/-instant-column-type/sql-type.html b/docs/build/html/api/net.corda.node.utilities/-instant-column-type/sql-type.html
new file mode 100644
index 0000000000..7ee10fd90b
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.utilities/-instant-column-type/sql-type.html
@@ -0,0 +1,15 @@
+
+
+InstantColumnType.sqlType -
+
+
+
+net.corda.node.utilities / InstantColumnType / sqlType
+
+sqlType
+
+fun sqlType ( ) : String
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.utilities/-instant-column-type/value-from-d-b.html b/docs/build/html/api/net.corda.node.utilities/-instant-column-type/value-from-d-b.html
new file mode 100644
index 0000000000..e135b8156f
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.utilities/-instant-column-type/value-from-d-b.html
@@ -0,0 +1,15 @@
+
+
+InstantColumnType.valueFromDB -
+
+
+
+net.corda.node.utilities / InstantColumnType / valueFromDB
+
+valueFromDB
+
+fun valueFromDB ( value : Any ) : Any
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.utilities/-j-d-b-c-hash-map/-blob-map-table/-init-.html b/docs/build/html/api/net.corda.node.utilities/-j-d-b-c-hash-map/-blob-map-table/-init-.html
new file mode 100644
index 0000000000..b9c0f18771
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.utilities/-j-d-b-c-hash-map/-blob-map-table/-init-.html
@@ -0,0 +1,14 @@
+
+
+JDBCHashMap.BlobMapTable. -
+
+
+
+net.corda.node.utilities / JDBCHashMap / BlobMapTable / <init>
+
+<init>
+BlobMapTable ( tableName : String )
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.utilities/-j-d-b-c-hash-map/-blob-map-table/index.html b/docs/build/html/api/net.corda.node.utilities/-j-d-b-c-hash-map/-blob-map-table/index.html
new file mode 100644
index 0000000000..97f5782c3b
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.utilities/-j-d-b-c-hash-map/-blob-map-table/index.html
@@ -0,0 +1,59 @@
+
+
+JDBCHashMap.BlobMapTable -
+
+
+
+net.corda.node.utilities / JDBCHashMap / BlobMapTable
+
+BlobMapTable
+class BlobMapTable : JDBCHashedTable
+
+
+Constructors
+
+
+
+
+<init>
+
+BlobMapTable ( tableName : String )
+
+
+
+Properties
+
+
+
+
+key
+
+val key : <ERROR CLASS>
+
+
+
+value
+
+val value : <ERROR CLASS>
+
+
+
+Inherited Properties
+
+
+
+
+keyHash
+
+val keyHash : <ERROR CLASS>
+
+
+
+seqNo
+
+val seqNo : <ERROR CLASS>
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.utilities/-j-d-b-c-hash-map/-blob-map-table/key.html b/docs/build/html/api/net.corda.node.utilities/-j-d-b-c-hash-map/-blob-map-table/key.html
new file mode 100644
index 0000000000..caf200b336
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.utilities/-j-d-b-c-hash-map/-blob-map-table/key.html
@@ -0,0 +1,15 @@
+
+
+JDBCHashMap.BlobMapTable.key -
+
+
+
+net.corda.node.utilities / JDBCHashMap / BlobMapTable / key
+
+key
+
+val key : <ERROR CLASS>
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.utilities/-j-d-b-c-hash-map/-blob-map-table/value.html b/docs/build/html/api/net.corda.node.utilities/-j-d-b-c-hash-map/-blob-map-table/value.html
new file mode 100644
index 0000000000..491264c6e1
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.utilities/-j-d-b-c-hash-map/-blob-map-table/value.html
@@ -0,0 +1,15 @@
+
+
+JDBCHashMap.BlobMapTable.value -
+
+
+
+net.corda.node.utilities / JDBCHashMap / BlobMapTable / value
+
+value
+
+val value : <ERROR CLASS>
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.utilities/-j-d-b-c-hash-map/-init-.html b/docs/build/html/api/net.corda.node.utilities/-j-d-b-c-hash-map/-init-.html
new file mode 100644
index 0000000000..11efdb2efc
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.utilities/-j-d-b-c-hash-map/-init-.html
@@ -0,0 +1,21 @@
+
+
+JDBCHashMap. -
+
+
+
+net.corda.node.utilities / JDBCHashMap / <init>
+
+<init>
+JDBCHashMap ( tableName : String , loadOnInit : Boolean = false)
+A convenient JDBC table backed hash map with iteration order based on insertion order.
+See AbstractJDBCHashMap for further implementation details.
+In this subclass, keys and values are represented by Blobs of Kryo serialized forms of the key and value objects.
+If you can extend AbstractJDBCHashMap and implement less Kryo dependent key and/or value mappings then that is
+likely preferrable.
+
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.utilities/-j-d-b-c-hash-map/add-key-to-insert.html b/docs/build/html/api/net.corda.node.utilities/-j-d-b-c-hash-map/add-key-to-insert.html
new file mode 100644
index 0000000000..1f56dc37ad
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.utilities/-j-d-b-c-hash-map/add-key-to-insert.html
@@ -0,0 +1,21 @@
+
+
+JDBCHashMap.addKeyToInsert -
+
+
+
+net.corda.node.utilities / JDBCHashMap / addKeyToInsert
+
+addKeyToInsert
+
+protected fun addKeyToInsert ( insert : <ERROR CLASS> , entry : Entry < K , V > , finalizables : MutableList < ( ) -> Unit > ) : Unit
+Implementation should marshall the key to the insert statement.
+If some cleanup is required after the insert statement is executed, such as closing a Blob, then add a closure
+to the finalizables to do so.
+See example implementations in JDBCHashMap .
+
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.utilities/-j-d-b-c-hash-map/add-value-to-insert.html b/docs/build/html/api/net.corda.node.utilities/-j-d-b-c-hash-map/add-value-to-insert.html
new file mode 100644
index 0000000000..a419789faa
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.utilities/-j-d-b-c-hash-map/add-value-to-insert.html
@@ -0,0 +1,21 @@
+
+
+JDBCHashMap.addValueToInsert -
+
+
+
+net.corda.node.utilities / JDBCHashMap / addValueToInsert
+
+addValueToInsert
+
+protected fun addValueToInsert ( insert : <ERROR CLASS> , entry : Entry < K , V > , finalizables : MutableList < ( ) -> Unit > ) : Unit
+Implementation should marshall the value to the insert statement.
+If some cleanup is required after the insert statement is executed, such as closing a Blob, then add a closure
+to the finalizables to do so.
+See example implementations in JDBCHashMap .
+
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.utilities/-j-d-b-c-hash-map/index.html b/docs/build/html/api/net.corda.node.utilities/-j-d-b-c-hash-map/index.html
new file mode 100644
index 0000000000..930e41290c
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.utilities/-j-d-b-c-hash-map/index.html
@@ -0,0 +1,136 @@
+
+
+JDBCHashMap -
+
+
+
+net.corda.node.utilities / JDBCHashMap
+
+JDBCHashMap
+class JDBCHashMap < K : Any , V : Any > : AbstractJDBCHashMap < K , V , BlobMapTable >
+A convenient JDBC table backed hash map with iteration order based on insertion order.
+See AbstractJDBCHashMap for further implementation details.
+In this subclass, keys and values are represented by Blobs of Kryo serialized forms of the key and value objects.
+If you can extend AbstractJDBCHashMap and implement less Kryo dependent key and/or value mappings then that is
+likely preferrable.
+
+
+
+
+Types
+
+Constructors
+
+
+
+
+<init>
+
+JDBCHashMap ( tableName : String , loadOnInit : Boolean = false)
A convenient JDBC table backed hash map with iteration order based on insertion order.
+See AbstractJDBCHashMap for further implementation details.
+
+
+
+
+Inherited Properties
+
+
+
+
+entries
+
+open val entries : MutableSet < MutableEntry < K , V > >
+
+
+
+keys
+
+open val keys : MutableSet < K >
+
+
+
+loadOnInit
+
+val loadOnInit : Boolean
+
+
+
+size
+
+open val size : Int
+
+
+
+table
+
+val table : T
+
+
+
+values
+
+open val values : MutableCollection < V >
+
+
+
+Functions
+
+
+
+
+addKeyToInsert
+
+fun addKeyToInsert ( insert : <ERROR CLASS> , entry : Entry < K , V > , finalizables : MutableList < ( ) -> Unit > ) : Unit
Implementation should marshall the key to the insert statement.
+
+
+
+
+addValueToInsert
+
+fun addValueToInsert ( insert : <ERROR CLASS> , entry : Entry < K , V > , finalizables : MutableList < ( ) -> Unit > ) : Unit
Implementation should marshall the value to the insert statement.
+
+
+
+
+keyFromRow
+
+fun keyFromRow ( row : <ERROR CLASS> ) : K
Implementation should return the key object marshalled from the database table row.
+
+
+
+
+valueFromRow
+
+fun valueFromRow ( row : <ERROR CLASS> ) : V
Implementation should return the value object marshalled from the database table row.
+
+
+
+
+Inherited Functions
+
+
+
+
+clear
+
+open fun clear ( ) : Unit
+
+
+
+isEmpty
+
+open fun isEmpty ( ) : Boolean
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.utilities/-j-d-b-c-hash-map/key-from-row.html b/docs/build/html/api/net.corda.node.utilities/-j-d-b-c-hash-map/key-from-row.html
new file mode 100644
index 0000000000..3e5246482e
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.utilities/-j-d-b-c-hash-map/key-from-row.html
@@ -0,0 +1,20 @@
+
+
+JDBCHashMap.keyFromRow -
+
+
+
+net.corda.node.utilities / JDBCHashMap / keyFromRow
+
+keyFromRow
+
+protected fun keyFromRow ( row : <ERROR CLASS> ) : K
+Overrides AbstractJDBCHashMap.keyFromRow
+Implementation should return the key object marshalled from the database table row.
+See example implementations in JDBCHashMap .
+
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.utilities/-j-d-b-c-hash-map/value-from-row.html b/docs/build/html/api/net.corda.node.utilities/-j-d-b-c-hash-map/value-from-row.html
new file mode 100644
index 0000000000..2e95b0d940
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.utilities/-j-d-b-c-hash-map/value-from-row.html
@@ -0,0 +1,20 @@
+
+
+JDBCHashMap.valueFromRow -
+
+
+
+net.corda.node.utilities / JDBCHashMap / valueFromRow
+
+valueFromRow
+
+protected fun valueFromRow ( row : <ERROR CLASS> ) : V
+Overrides AbstractJDBCHashMap.valueFromRow
+Implementation should return the value object marshalled from the database table row.
+See example implementations in JDBCHashMap .
+
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.utilities/-j-d-b-c-hash-set/-blob-set-table/-init-.html b/docs/build/html/api/net.corda.node.utilities/-j-d-b-c-hash-set/-blob-set-table/-init-.html
new file mode 100644
index 0000000000..1b8c437af7
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.utilities/-j-d-b-c-hash-set/-blob-set-table/-init-.html
@@ -0,0 +1,14 @@
+
+
+JDBCHashSet.BlobSetTable. -
+
+
+
+net.corda.node.utilities / JDBCHashSet / BlobSetTable / <init>
+
+<init>
+BlobSetTable ( tableName : String )
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.utilities/-j-d-b-c-hash-set/-blob-set-table/index.html b/docs/build/html/api/net.corda.node.utilities/-j-d-b-c-hash-set/-blob-set-table/index.html
new file mode 100644
index 0000000000..fbe398c667
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.utilities/-j-d-b-c-hash-set/-blob-set-table/index.html
@@ -0,0 +1,53 @@
+
+
+JDBCHashSet.BlobSetTable -
+
+
+
+net.corda.node.utilities / JDBCHashSet / BlobSetTable
+
+BlobSetTable
+class BlobSetTable : JDBCHashedTable
+
+
+Constructors
+
+
+
+
+<init>
+
+BlobSetTable ( tableName : String )
+
+
+
+Properties
+
+
+
+
+key
+
+val key : <ERROR CLASS>
+
+
+
+Inherited Properties
+
+
+
+
+keyHash
+
+val keyHash : <ERROR CLASS>
+
+
+
+seqNo
+
+val seqNo : <ERROR CLASS>
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.utilities/-j-d-b-c-hash-set/-blob-set-table/key.html b/docs/build/html/api/net.corda.node.utilities/-j-d-b-c-hash-set/-blob-set-table/key.html
new file mode 100644
index 0000000000..4a827afb1a
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.utilities/-j-d-b-c-hash-set/-blob-set-table/key.html
@@ -0,0 +1,15 @@
+
+
+JDBCHashSet.BlobSetTable.key -
+
+
+
+net.corda.node.utilities / JDBCHashSet / BlobSetTable / key
+
+key
+
+val key : <ERROR CLASS>
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.utilities/-j-d-b-c-hash-set/-init-.html b/docs/build/html/api/net.corda.node.utilities/-j-d-b-c-hash-set/-init-.html
new file mode 100644
index 0000000000..38dae23856
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.utilities/-j-d-b-c-hash-set/-init-.html
@@ -0,0 +1,21 @@
+
+
+JDBCHashSet. -
+
+
+
+net.corda.node.utilities / JDBCHashSet / <init>
+
+<init>
+JDBCHashSet ( tableName : String , loadOnInit : Boolean = false)
+A convenient JDBC table backed hash set with iteration order based on insertion order.
+See AbstractJDBCHashSet and AbstractJDBCHashMap for further implementation details.
+In this subclass, elements are represented by Blobs of Kryo serialized forms of the element objects.
+If you can extend AbstractJDBCHashSet and implement less Kryo dependent element mappings then that is
+likely preferrable.
+
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.utilities/-j-d-b-c-hash-set/add-element-to-insert.html b/docs/build/html/api/net.corda.node.utilities/-j-d-b-c-hash-set/add-element-to-insert.html
new file mode 100644
index 0000000000..78f2d00b61
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.utilities/-j-d-b-c-hash-set/add-element-to-insert.html
@@ -0,0 +1,21 @@
+
+
+JDBCHashSet.addElementToInsert -
+
+
+
+net.corda.node.utilities / JDBCHashSet / addElementToInsert
+
+addElementToInsert
+
+protected fun addElementToInsert ( insert : <ERROR CLASS> , entry : K , finalizables : MutableList < ( ) -> Unit > ) : Unit
+Implementation should marshall the element to the insert statement.
+If some cleanup is required after the insert statement is executed, such as closing a Blob, then add a closure
+to the finalizables to do so.
+See example implementations in JDBCHashSet .
+
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.utilities/-j-d-b-c-hash-set/element-from-row.html b/docs/build/html/api/net.corda.node.utilities/-j-d-b-c-hash-set/element-from-row.html
new file mode 100644
index 0000000000..083c420d3c
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.utilities/-j-d-b-c-hash-set/element-from-row.html
@@ -0,0 +1,20 @@
+
+
+JDBCHashSet.elementFromRow -
+
+
+
+net.corda.node.utilities / JDBCHashSet / elementFromRow
+
+elementFromRow
+
+protected fun elementFromRow ( row : <ERROR CLASS> ) : K
+Overrides AbstractJDBCHashSet.elementFromRow
+Implementation should return the element object marshalled from the database table row.
+See example implementations in JDBCHashSet .
+
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.utilities/-j-d-b-c-hash-set/index.html b/docs/build/html/api/net.corda.node.utilities/-j-d-b-c-hash-set/index.html
new file mode 100644
index 0000000000..f5db2a3734
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.utilities/-j-d-b-c-hash-set/index.html
@@ -0,0 +1,124 @@
+
+
+JDBCHashSet -
+
+
+
+net.corda.node.utilities / JDBCHashSet
+
+JDBCHashSet
+class JDBCHashSet < K : Any > : AbstractJDBCHashSet < K , BlobSetTable >
+A convenient JDBC table backed hash set with iteration order based on insertion order.
+See AbstractJDBCHashSet and AbstractJDBCHashMap for further implementation details.
+In this subclass, elements are represented by Blobs of Kryo serialized forms of the element objects.
+If you can extend AbstractJDBCHashSet and implement less Kryo dependent element mappings then that is
+likely preferrable.
+
+
+
+
+Types
+
+Constructors
+
+
+
+
+<init>
+
+JDBCHashSet ( tableName : String , loadOnInit : Boolean = false)
A convenient JDBC table backed hash set with iteration order based on insertion order.
+See AbstractJDBCHashSet and AbstractJDBCHashMap for further implementation details.
+
+
+
+
+Inherited Properties
+
+Functions
+
+
+
+
+addElementToInsert
+
+fun addElementToInsert ( insert : <ERROR CLASS> , entry : K , finalizables : MutableList < ( ) -> Unit > ) : Unit
Implementation should marshall the element to the insert statement.
+
+
+
+
+elementFromRow
+
+fun elementFromRow ( row : <ERROR CLASS> ) : K
Implementation should return the element object marshalled from the database table row.
+
+
+
+
+Inherited Functions
+
+
+
+
+clear
+
+open fun clear ( ) : Unit
+
+
+
+isEmpty
+
+open fun isEmpty ( ) : Boolean
+
+
+
+iterator
+
+open fun iterator ( ) : MutableIterator < K >
+
+
+
+Extension Functions
+
+
+
+
+noneOrSingle
+
+fun < T > Iterable < T > . noneOrSingle ( predicate : ( T ) -> Boolean ) : T ?
Returns the single element matching the given predicate , or null
if element was not found,
+or throws if more than one element was found.
+fun < T > Iterable < T > . noneOrSingle ( ) : T ?
Returns single element, or null
if element was not found, or throws if more than one element was found.
+
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.utilities/-j-d-b-c-hashed-table/-init-.html b/docs/build/html/api/net.corda.node.utilities/-j-d-b-c-hashed-table/-init-.html
new file mode 100644
index 0000000000..722e8aab48
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.utilities/-j-d-b-c-hashed-table/-init-.html
@@ -0,0 +1,14 @@
+
+
+JDBCHashedTable. -
+
+
+
+net.corda.node.utilities / JDBCHashedTable / <init>
+
+<init>
+JDBCHashedTable ( tableName : String )
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.utilities/-j-d-b-c-hashed-table/index.html b/docs/build/html/api/net.corda.node.utilities/-j-d-b-c-hashed-table/index.html
new file mode 100644
index 0000000000..af9c8c5598
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.utilities/-j-d-b-c-hashed-table/index.html
@@ -0,0 +1,59 @@
+
+
+JDBCHashedTable -
+
+
+
+net.corda.node.utilities / JDBCHashedTable
+
+JDBCHashedTable
+open class JDBCHashedTable
+
+
+Constructors
+
+
+
+
+<init>
+
+JDBCHashedTable ( tableName : String )
+
+
+
+Properties
+
+
+
+
+keyHash
+
+val keyHash : <ERROR CLASS>
+
+
+
+seqNo
+
+val seqNo : <ERROR CLASS>
+
+
+
+Inheritors
+
+
+
+
+BlobMapTable
+
+class BlobMapTable : JDBCHashedTable
+
+
+
+BlobSetTable
+
+class BlobSetTable : JDBCHashedTable
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.utilities/-j-d-b-c-hashed-table/key-hash.html b/docs/build/html/api/net.corda.node.utilities/-j-d-b-c-hashed-table/key-hash.html
new file mode 100644
index 0000000000..55cd3c15a9
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.utilities/-j-d-b-c-hashed-table/key-hash.html
@@ -0,0 +1,15 @@
+
+
+JDBCHashedTable.keyHash -
+
+
+
+net.corda.node.utilities / JDBCHashedTable / keyHash
+
+keyHash
+
+val keyHash : <ERROR CLASS>
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.utilities/-j-d-b-c-hashed-table/seq-no.html b/docs/build/html/api/net.corda.node.utilities/-j-d-b-c-hashed-table/seq-no.html
new file mode 100644
index 0000000000..33c461eb38
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.utilities/-j-d-b-c-hashed-table/seq-no.html
@@ -0,0 +1,15 @@
+
+
+JDBCHashedTable.seqNo -
+
+
+
+net.corda.node.utilities / JDBCHashedTable / seqNo
+
+seqNo
+
+val seqNo : <ERROR CLASS>
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.utilities/-json-support/-calendar-deserializer/deserialize.html b/docs/build/html/api/net.corda.node.utilities/-json-support/-calendar-deserializer/deserialize.html
new file mode 100644
index 0000000000..4603c774c8
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.utilities/-json-support/-calendar-deserializer/deserialize.html
@@ -0,0 +1,15 @@
+
+
+JsonSupport.CalendarDeserializer.deserialize -
+
+
+
+net.corda.node.utilities / JsonSupport / CalendarDeserializer / deserialize
+
+deserialize
+
+fun deserialize ( parser : <ERROR CLASS> , context : <ERROR CLASS> ) : BusinessCalendar
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.utilities/-json-support/-calendar-deserializer/index.html b/docs/build/html/api/net.corda.node.utilities/-json-support/-calendar-deserializer/index.html
new file mode 100644
index 0000000000..052d0dc8aa
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.utilities/-json-support/-calendar-deserializer/index.html
@@ -0,0 +1,25 @@
+
+
+JsonSupport.CalendarDeserializer -
+
+
+
+net.corda.node.utilities / JsonSupport / CalendarDeserializer
+
+CalendarDeserializer
+object CalendarDeserializer
+
+
+Functions
+
+
+
diff --git a/docs/build/html/api/net.corda.node.utilities/-json-support/-local-date-deserializer/deserialize.html b/docs/build/html/api/net.corda.node.utilities/-json-support/-local-date-deserializer/deserialize.html
new file mode 100644
index 0000000000..681e6b2a76
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.utilities/-json-support/-local-date-deserializer/deserialize.html
@@ -0,0 +1,15 @@
+
+
+JsonSupport.LocalDateDeserializer.deserialize -
+
+
+
+net.corda.node.utilities / JsonSupport / LocalDateDeserializer / deserialize
+
+deserialize
+
+fun deserialize ( parser : <ERROR CLASS> , context : <ERROR CLASS> ) : LocalDate
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.utilities/-json-support/-local-date-deserializer/index.html b/docs/build/html/api/net.corda.node.utilities/-json-support/-local-date-deserializer/index.html
new file mode 100644
index 0000000000..7d6acebddb
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.utilities/-json-support/-local-date-deserializer/index.html
@@ -0,0 +1,25 @@
+
+
+JsonSupport.LocalDateDeserializer -
+
+
+
+net.corda.node.utilities / JsonSupport / LocalDateDeserializer
+
+LocalDateDeserializer
+object LocalDateDeserializer
+
+
+Functions
+
+
+
+
+deserialize
+
+fun deserialize ( parser : <ERROR CLASS> , context : <ERROR CLASS> ) : LocalDate
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.utilities/-json-support/-local-date-key-deserializer/deserialize-key.html b/docs/build/html/api/net.corda.node.utilities/-json-support/-local-date-key-deserializer/deserialize-key.html
new file mode 100644
index 0000000000..1c45304015
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.utilities/-json-support/-local-date-key-deserializer/deserialize-key.html
@@ -0,0 +1,15 @@
+
+
+JsonSupport.LocalDateKeyDeserializer.deserializeKey -
+
+
+
+net.corda.node.utilities / JsonSupport / LocalDateKeyDeserializer / deserializeKey
+
+deserializeKey
+
+fun deserializeKey ( text : String , p1 : <ERROR CLASS> ) : Any ?
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.utilities/-json-support/-local-date-key-deserializer/index.html b/docs/build/html/api/net.corda.node.utilities/-json-support/-local-date-key-deserializer/index.html
new file mode 100644
index 0000000000..bf6164fd96
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.utilities/-json-support/-local-date-key-deserializer/index.html
@@ -0,0 +1,25 @@
+
+
+JsonSupport.LocalDateKeyDeserializer -
+
+
+
+net.corda.node.utilities / JsonSupport / LocalDateKeyDeserializer
+
+LocalDateKeyDeserializer
+object LocalDateKeyDeserializer
+
+
+Functions
+
+
+
+
+deserializeKey
+
+fun deserializeKey ( text : String , p1 : <ERROR CLASS> ) : Any ?
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.utilities/-json-support/-node-info-deserializer/deserialize.html b/docs/build/html/api/net.corda.node.utilities/-json-support/-node-info-deserializer/deserialize.html
new file mode 100644
index 0000000000..289839d81f
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.utilities/-json-support/-node-info-deserializer/deserialize.html
@@ -0,0 +1,15 @@
+
+
+JsonSupport.NodeInfoDeserializer.deserialize -
+
+
+
+net.corda.node.utilities / JsonSupport / NodeInfoDeserializer / deserialize
+
+deserialize
+
+fun deserialize ( parser : <ERROR CLASS> , context : <ERROR CLASS> ) : NodeInfo
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.utilities/-json-support/-node-info-deserializer/index.html b/docs/build/html/api/net.corda.node.utilities/-json-support/-node-info-deserializer/index.html
new file mode 100644
index 0000000000..9663969138
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.utilities/-json-support/-node-info-deserializer/index.html
@@ -0,0 +1,25 @@
+
+
+JsonSupport.NodeInfoDeserializer -
+
+
+
+net.corda.node.utilities / JsonSupport / NodeInfoDeserializer
+
+NodeInfoDeserializer
+object NodeInfoDeserializer
+
+
+Functions
+
+
+
+
+deserialize
+
+fun deserialize ( parser : <ERROR CLASS> , context : <ERROR CLASS> ) : NodeInfo
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.utilities/-json-support/-node-info-serializer/index.html b/docs/build/html/api/net.corda.node.utilities/-json-support/-node-info-serializer/index.html
new file mode 100644
index 0000000000..662609eff5
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.utilities/-json-support/-node-info-serializer/index.html
@@ -0,0 +1,25 @@
+
+
+JsonSupport.NodeInfoSerializer -
+
+
+
+net.corda.node.utilities / JsonSupport / NodeInfoSerializer
+
+NodeInfoSerializer
+object NodeInfoSerializer
+
+
+Functions
+
+
+
+
+serialize
+
+fun serialize ( value : NodeInfo , gen : <ERROR CLASS> , serializers : <ERROR CLASS> ) : Unit
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.utilities/-json-support/-node-info-serializer/serialize.html b/docs/build/html/api/net.corda.node.utilities/-json-support/-node-info-serializer/serialize.html
new file mode 100644
index 0000000000..42a27bdaa1
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.utilities/-json-support/-node-info-serializer/serialize.html
@@ -0,0 +1,15 @@
+
+
+JsonSupport.NodeInfoSerializer.serialize -
+
+
+
+net.corda.node.utilities / JsonSupport / NodeInfoSerializer / serialize
+
+serialize
+
+fun serialize ( value : NodeInfo , gen : <ERROR CLASS> , serializers : <ERROR CLASS> ) : Unit
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.utilities/-json-support/-party-deserializer/deserialize.html b/docs/build/html/api/net.corda.node.utilities/-json-support/-party-deserializer/deserialize.html
new file mode 100644
index 0000000000..666ddf9251
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.utilities/-json-support/-party-deserializer/deserialize.html
@@ -0,0 +1,15 @@
+
+
+JsonSupport.PartyDeserializer.deserialize -
+
+
+
+net.corda.node.utilities / JsonSupport / PartyDeserializer / deserialize
+
+deserialize
+
+fun deserialize ( parser : <ERROR CLASS> , context : <ERROR CLASS> ) : Party
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.utilities/-json-support/-party-deserializer/index.html b/docs/build/html/api/net.corda.node.utilities/-json-support/-party-deserializer/index.html
new file mode 100644
index 0000000000..088281fce8
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.utilities/-json-support/-party-deserializer/index.html
@@ -0,0 +1,25 @@
+
+
+JsonSupport.PartyDeserializer -
+
+
+
+net.corda.node.utilities / JsonSupport / PartyDeserializer
+
+PartyDeserializer
+object PartyDeserializer
+
+
+Functions
+
+
+
+
+deserialize
+
+fun deserialize ( parser : <ERROR CLASS> , context : <ERROR CLASS> ) : Party
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.utilities/-json-support/-party-serializer/index.html b/docs/build/html/api/net.corda.node.utilities/-json-support/-party-serializer/index.html
new file mode 100644
index 0000000000..a47d533965
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.utilities/-json-support/-party-serializer/index.html
@@ -0,0 +1,25 @@
+
+
+JsonSupport.PartySerializer -
+
+
+
+net.corda.node.utilities / JsonSupport / PartySerializer
+
+PartySerializer
+object PartySerializer
+
+
+Functions
+
+
+
+
+serialize
+
+fun serialize ( obj : Party , generator : <ERROR CLASS> , provider : <ERROR CLASS> ) : Unit
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.utilities/-json-support/-party-serializer/serialize.html b/docs/build/html/api/net.corda.node.utilities/-json-support/-party-serializer/serialize.html
new file mode 100644
index 0000000000..8a41a01f7a
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.utilities/-json-support/-party-serializer/serialize.html
@@ -0,0 +1,15 @@
+
+
+JsonSupport.PartySerializer.serialize -
+
+
+
+net.corda.node.utilities / JsonSupport / PartySerializer / serialize
+
+serialize
+
+fun serialize ( obj : Party , generator : <ERROR CLASS> , provider : <ERROR CLASS> ) : Unit
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.utilities/-json-support/-public-key-deserializer/deserialize.html b/docs/build/html/api/net.corda.node.utilities/-json-support/-public-key-deserializer/deserialize.html
new file mode 100644
index 0000000000..f5b075ed4e
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.utilities/-json-support/-public-key-deserializer/deserialize.html
@@ -0,0 +1,15 @@
+
+
+JsonSupport.PublicKeyDeserializer.deserialize -
+
+
+
+net.corda.node.utilities / JsonSupport / PublicKeyDeserializer / deserialize
+
+deserialize
+
+fun deserialize ( parser : <ERROR CLASS> , context : <ERROR CLASS> ) : <ERROR CLASS>
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.utilities/-json-support/-public-key-deserializer/index.html b/docs/build/html/api/net.corda.node.utilities/-json-support/-public-key-deserializer/index.html
new file mode 100644
index 0000000000..630861d8e7
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.utilities/-json-support/-public-key-deserializer/index.html
@@ -0,0 +1,25 @@
+
+
+JsonSupport.PublicKeyDeserializer -
+
+
+
+net.corda.node.utilities / JsonSupport / PublicKeyDeserializer
+
+PublicKeyDeserializer
+object PublicKeyDeserializer
+
+
+Functions
+
+
+
+
+deserialize
+
+fun deserialize ( parser : <ERROR CLASS> , context : <ERROR CLASS> ) : <ERROR CLASS>
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.utilities/-json-support/-public-key-serializer/index.html b/docs/build/html/api/net.corda.node.utilities/-json-support/-public-key-serializer/index.html
new file mode 100644
index 0000000000..f50e01d633
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.utilities/-json-support/-public-key-serializer/index.html
@@ -0,0 +1,25 @@
+
+
+JsonSupport.PublicKeySerializer -
+
+
+
+net.corda.node.utilities / JsonSupport / PublicKeySerializer
+
+PublicKeySerializer
+object PublicKeySerializer
+
+
+Functions
+
+
+
+
+serialize
+
+fun serialize ( obj : <ERROR CLASS> , generator : <ERROR CLASS> , provider : <ERROR CLASS> ) : Unit
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.utilities/-json-support/-public-key-serializer/serialize.html b/docs/build/html/api/net.corda.node.utilities/-json-support/-public-key-serializer/serialize.html
new file mode 100644
index 0000000000..22713b5706
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.utilities/-json-support/-public-key-serializer/serialize.html
@@ -0,0 +1,15 @@
+
+
+JsonSupport.PublicKeySerializer.serialize -
+
+
+
+net.corda.node.utilities / JsonSupport / PublicKeySerializer / serialize
+
+serialize
+
+fun serialize ( obj : <ERROR CLASS> , generator : <ERROR CLASS> , provider : <ERROR CLASS> ) : Unit
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.utilities/-json-support/-public-key-tree-deserializer/deserialize.html b/docs/build/html/api/net.corda.node.utilities/-json-support/-public-key-tree-deserializer/deserialize.html
new file mode 100644
index 0000000000..5ca5a56dc9
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.utilities/-json-support/-public-key-tree-deserializer/deserialize.html
@@ -0,0 +1,15 @@
+
+
+JsonSupport.PublicKeyTreeDeserializer.deserialize -
+
+
+
+net.corda.node.utilities / JsonSupport / PublicKeyTreeDeserializer / deserialize
+
+deserialize
+
+fun deserialize ( parser : <ERROR CLASS> , context : <ERROR CLASS> ) : PublicKeyTree
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.utilities/-json-support/-public-key-tree-deserializer/index.html b/docs/build/html/api/net.corda.node.utilities/-json-support/-public-key-tree-deserializer/index.html
new file mode 100644
index 0000000000..938b6ad81d
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.utilities/-json-support/-public-key-tree-deserializer/index.html
@@ -0,0 +1,25 @@
+
+
+JsonSupport.PublicKeyTreeDeserializer -
+
+
+
+net.corda.node.utilities / JsonSupport / PublicKeyTreeDeserializer
+
+PublicKeyTreeDeserializer
+object PublicKeyTreeDeserializer
+
+
+Functions
+
+
+
diff --git a/docs/build/html/api/net.corda.node.utilities/-json-support/-public-key-tree-serializer/index.html b/docs/build/html/api/net.corda.node.utilities/-json-support/-public-key-tree-serializer/index.html
new file mode 100644
index 0000000000..2b19810aa2
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.utilities/-json-support/-public-key-tree-serializer/index.html
@@ -0,0 +1,25 @@
+
+
+JsonSupport.PublicKeyTreeSerializer -
+
+
+
+net.corda.node.utilities / JsonSupport / PublicKeyTreeSerializer
+
+PublicKeyTreeSerializer
+object PublicKeyTreeSerializer
+
+
+Functions
+
+
+
+
+serialize
+
+fun serialize ( obj : PublicKeyTree , generator : <ERROR CLASS> , provider : <ERROR CLASS> ) : Unit
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.utilities/-json-support/-public-key-tree-serializer/serialize.html b/docs/build/html/api/net.corda.node.utilities/-json-support/-public-key-tree-serializer/serialize.html
new file mode 100644
index 0000000000..88b5be36c9
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.utilities/-json-support/-public-key-tree-serializer/serialize.html
@@ -0,0 +1,15 @@
+
+
+JsonSupport.PublicKeyTreeSerializer.serialize -
+
+
+
+net.corda.node.utilities / JsonSupport / PublicKeyTreeSerializer / serialize
+
+serialize
+
+fun serialize ( obj : PublicKeyTree , generator : <ERROR CLASS> , provider : <ERROR CLASS> ) : Unit
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.utilities/-json-support/-secure-hash-deserializer/-init-.html b/docs/build/html/api/net.corda.node.utilities/-json-support/-secure-hash-deserializer/-init-.html
new file mode 100644
index 0000000000..738b48b55a
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.utilities/-json-support/-secure-hash-deserializer/-init-.html
@@ -0,0 +1,15 @@
+
+
+JsonSupport.SecureHashDeserializer. -
+
+
+
+net.corda.node.utilities / JsonSupport / SecureHashDeserializer / <init>
+
+<init>
+SecureHashDeserializer ( )
+Implemented as a class so that we can instantiate for T.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.utilities/-json-support/-secure-hash-deserializer/deserialize.html b/docs/build/html/api/net.corda.node.utilities/-json-support/-secure-hash-deserializer/deserialize.html
new file mode 100644
index 0000000000..656df6de12
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.utilities/-json-support/-secure-hash-deserializer/deserialize.html
@@ -0,0 +1,15 @@
+
+
+JsonSupport.SecureHashDeserializer.deserialize -
+
+
+
+net.corda.node.utilities / JsonSupport / SecureHashDeserializer / deserialize
+
+deserialize
+
+fun deserialize ( parser : <ERROR CLASS> , context : <ERROR CLASS> ) : T
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.utilities/-json-support/-secure-hash-deserializer/index.html b/docs/build/html/api/net.corda.node.utilities/-json-support/-secure-hash-deserializer/index.html
new file mode 100644
index 0000000000..4023db7ebc
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.utilities/-json-support/-secure-hash-deserializer/index.html
@@ -0,0 +1,38 @@
+
+
+JsonSupport.SecureHashDeserializer -
+
+
+
+net.corda.node.utilities / JsonSupport / SecureHashDeserializer
+
+SecureHashDeserializer
+class SecureHashDeserializer < T : SecureHash >
+Implemented as a class so that we can instantiate for T.
+
+
+Constructors
+
+
+
+
+<init>
+
+SecureHashDeserializer ( )
Implemented as a class so that we can instantiate for T.
+
+
+
+
+Functions
+
+
+
+
+deserialize
+
+fun deserialize ( parser : <ERROR CLASS> , context : <ERROR CLASS> ) : T
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.utilities/-json-support/-secure-hash-serializer/index.html b/docs/build/html/api/net.corda.node.utilities/-json-support/-secure-hash-serializer/index.html
new file mode 100644
index 0000000000..be0a1050a2
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.utilities/-json-support/-secure-hash-serializer/index.html
@@ -0,0 +1,25 @@
+
+
+JsonSupport.SecureHashSerializer -
+
+
+
+net.corda.node.utilities / JsonSupport / SecureHashSerializer
+
+SecureHashSerializer
+object SecureHashSerializer
+
+
+Functions
+
+
+
+
+serialize
+
+fun serialize ( obj : SecureHash , generator : <ERROR CLASS> , provider : <ERROR CLASS> ) : Unit
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.utilities/-json-support/-secure-hash-serializer/serialize.html b/docs/build/html/api/net.corda.node.utilities/-json-support/-secure-hash-serializer/serialize.html
new file mode 100644
index 0000000000..cdda492d14
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.utilities/-json-support/-secure-hash-serializer/serialize.html
@@ -0,0 +1,15 @@
+
+
+JsonSupport.SecureHashSerializer.serialize -
+
+
+
+net.corda.node.utilities / JsonSupport / SecureHashSerializer / serialize
+
+serialize
+
+fun serialize ( obj : SecureHash , generator : <ERROR CLASS> , provider : <ERROR CLASS> ) : Unit
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.utilities/-json-support/-service-hub-object-mapper/-init-.html b/docs/build/html/api/net.corda.node.utilities/-json-support/-service-hub-object-mapper/-init-.html
new file mode 100644
index 0000000000..7435a7c8c2
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.utilities/-json-support/-service-hub-object-mapper/-init-.html
@@ -0,0 +1,14 @@
+
+
+JsonSupport.ServiceHubObjectMapper. -
+
+
+
+net.corda.node.utilities / JsonSupport / ServiceHubObjectMapper / <init>
+
+<init>
+ServiceHubObjectMapper ( identities : IdentityService )
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.utilities/-json-support/-service-hub-object-mapper/identities.html b/docs/build/html/api/net.corda.node.utilities/-json-support/-service-hub-object-mapper/identities.html
new file mode 100644
index 0000000000..1a6362f633
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.utilities/-json-support/-service-hub-object-mapper/identities.html
@@ -0,0 +1,15 @@
+
+
+JsonSupport.ServiceHubObjectMapper.identities -
+
+
+
+net.corda.node.utilities / JsonSupport / ServiceHubObjectMapper / identities
+
+identities
+
+val identities : IdentityService
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.utilities/-json-support/-service-hub-object-mapper/index.html b/docs/build/html/api/net.corda.node.utilities/-json-support/-service-hub-object-mapper/index.html
new file mode 100644
index 0000000000..11b5a03296
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.utilities/-json-support/-service-hub-object-mapper/index.html
@@ -0,0 +1,36 @@
+
+
+JsonSupport.ServiceHubObjectMapper -
+
+
+
+net.corda.node.utilities / JsonSupport / ServiceHubObjectMapper
+
+ServiceHubObjectMapper
+class ServiceHubObjectMapper
+
+
+Constructors
+
+Properties
+
+
+
diff --git a/docs/build/html/api/net.corda.node.utilities/-json-support/-to-string-serializer/index.html b/docs/build/html/api/net.corda.node.utilities/-json-support/-to-string-serializer/index.html
new file mode 100644
index 0000000000..97e84770cb
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.utilities/-json-support/-to-string-serializer/index.html
@@ -0,0 +1,25 @@
+
+
+JsonSupport.ToStringSerializer -
+
+
+
+net.corda.node.utilities / JsonSupport / ToStringSerializer
+
+ToStringSerializer
+object ToStringSerializer
+
+
+Functions
+
+
+
+
+serialize
+
+fun serialize ( obj : Any , generator : <ERROR CLASS> , provider : <ERROR CLASS> ) : Unit
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.utilities/-json-support/-to-string-serializer/serialize.html b/docs/build/html/api/net.corda.node.utilities/-json-support/-to-string-serializer/serialize.html
new file mode 100644
index 0000000000..9059e6210d
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.utilities/-json-support/-to-string-serializer/serialize.html
@@ -0,0 +1,15 @@
+
+
+JsonSupport.ToStringSerializer.serialize -
+
+
+
+net.corda.node.utilities / JsonSupport / ToStringSerializer / serialize
+
+serialize
+
+fun serialize ( obj : Any , generator : <ERROR CLASS> , provider : <ERROR CLASS> ) : Unit
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.utilities/-json-support/create-default-mapper.html b/docs/build/html/api/net.corda.node.utilities/-json-support/create-default-mapper.html
new file mode 100644
index 0000000000..593da87e08
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.utilities/-json-support/create-default-mapper.html
@@ -0,0 +1,15 @@
+
+
+JsonSupport.createDefaultMapper -
+
+
+
+net.corda.node.utilities / JsonSupport / createDefaultMapper
+
+createDefaultMapper
+
+fun createDefaultMapper ( identities : IdentityService ) : <ERROR CLASS>
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.utilities/-json-support/index.html b/docs/build/html/api/net.corda.node.utilities/-json-support/index.html
new file mode 100644
index 0000000000..985dfd89a6
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.utilities/-json-support/index.html
@@ -0,0 +1,123 @@
+
+
+JsonSupport -
+
+
+
+net.corda.node.utilities / JsonSupport
+
+JsonSupport
+object JsonSupport
+Utilities and serialisers for working with JSON representations of basic types. This adds Jackson support for
+the java.time API, some core types, and Kotlin data classes.
+
+
+Types
+
+Functions
+
+
+
diff --git a/docs/build/html/api/net.corda.node.utilities/-local-date-column-type/index.html b/docs/build/html/api/net.corda.node.utilities/-local-date-column-type/index.html
new file mode 100644
index 0000000000..cf6559770b
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.utilities/-local-date-column-type/index.html
@@ -0,0 +1,44 @@
+
+
+LocalDateColumnType -
+
+
+
+net.corda.node.utilities / LocalDateColumnType
+
+LocalDateColumnType
+object LocalDateColumnType
+ColumnType for marshalling to/from database on behalf of java.time.LocalDate .
+
+
+Functions
+
+
+
diff --git a/docs/build/html/api/net.corda.node.utilities/-local-date-column-type/non-null-value-to-string.html b/docs/build/html/api/net.corda.node.utilities/-local-date-column-type/non-null-value-to-string.html
new file mode 100644
index 0000000000..7293861324
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.utilities/-local-date-column-type/non-null-value-to-string.html
@@ -0,0 +1,15 @@
+
+
+LocalDateColumnType.nonNullValueToString -
+
+
+
+net.corda.node.utilities / LocalDateColumnType / nonNullValueToString
+
+nonNullValueToString
+
+fun nonNullValueToString ( value : Any ) : String
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.utilities/-local-date-column-type/not-null-value-to-d-b.html b/docs/build/html/api/net.corda.node.utilities/-local-date-column-type/not-null-value-to-d-b.html
new file mode 100644
index 0000000000..3ec23b836e
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.utilities/-local-date-column-type/not-null-value-to-d-b.html
@@ -0,0 +1,15 @@
+
+
+LocalDateColumnType.notNullValueToDB -
+
+
+
+net.corda.node.utilities / LocalDateColumnType / notNullValueToDB
+
+notNullValueToDB
+
+fun notNullValueToDB ( value : Any ) : Any
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.utilities/-local-date-column-type/sql-type.html b/docs/build/html/api/net.corda.node.utilities/-local-date-column-type/sql-type.html
new file mode 100644
index 0000000000..c3dc746d01
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.utilities/-local-date-column-type/sql-type.html
@@ -0,0 +1,15 @@
+
+
+LocalDateColumnType.sqlType -
+
+
+
+net.corda.node.utilities / LocalDateColumnType / sqlType
+
+sqlType
+
+fun sqlType ( ) : String
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.utilities/-local-date-column-type/value-from-d-b.html b/docs/build/html/api/net.corda.node.utilities/-local-date-column-type/value-from-d-b.html
new file mode 100644
index 0000000000..bd819a2fbc
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.utilities/-local-date-column-type/value-from-d-b.html
@@ -0,0 +1,15 @@
+
+
+LocalDateColumnType.valueFromDB -
+
+
+
+net.corda.node.utilities / LocalDateColumnType / valueFromDB
+
+valueFromDB
+
+fun valueFromDB ( value : Any ) : Any
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.utilities/-local-date-time-column-type/index.html b/docs/build/html/api/net.corda.node.utilities/-local-date-time-column-type/index.html
new file mode 100644
index 0000000000..7d3adc2d59
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.utilities/-local-date-time-column-type/index.html
@@ -0,0 +1,44 @@
+
+
+LocalDateTimeColumnType -
+
+
+
+net.corda.node.utilities / LocalDateTimeColumnType
+
+LocalDateTimeColumnType
+object LocalDateTimeColumnType
+ColumnType for marshalling to/from database on behalf of java.time.LocalDateTime .
+
+
+Functions
+
+
+
diff --git a/docs/build/html/api/net.corda.node.utilities/-local-date-time-column-type/non-null-value-to-string.html b/docs/build/html/api/net.corda.node.utilities/-local-date-time-column-type/non-null-value-to-string.html
new file mode 100644
index 0000000000..3dae5cee1e
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.utilities/-local-date-time-column-type/non-null-value-to-string.html
@@ -0,0 +1,15 @@
+
+
+LocalDateTimeColumnType.nonNullValueToString -
+
+
+
+net.corda.node.utilities / LocalDateTimeColumnType / nonNullValueToString
+
+nonNullValueToString
+
+fun nonNullValueToString ( value : Any ) : String
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.utilities/-local-date-time-column-type/not-null-value-to-d-b.html b/docs/build/html/api/net.corda.node.utilities/-local-date-time-column-type/not-null-value-to-d-b.html
new file mode 100644
index 0000000000..d47475c7a6
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.utilities/-local-date-time-column-type/not-null-value-to-d-b.html
@@ -0,0 +1,15 @@
+
+
+LocalDateTimeColumnType.notNullValueToDB -
+
+
+
+net.corda.node.utilities / LocalDateTimeColumnType / notNullValueToDB
+
+notNullValueToDB
+
+fun notNullValueToDB ( value : Any ) : Any
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.utilities/-local-date-time-column-type/sql-type.html b/docs/build/html/api/net.corda.node.utilities/-local-date-time-column-type/sql-type.html
new file mode 100644
index 0000000000..c0b526ba42
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.utilities/-local-date-time-column-type/sql-type.html
@@ -0,0 +1,15 @@
+
+
+LocalDateTimeColumnType.sqlType -
+
+
+
+net.corda.node.utilities / LocalDateTimeColumnType / sqlType
+
+sqlType
+
+fun sqlType ( ) : String
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.utilities/-local-date-time-column-type/value-from-d-b.html b/docs/build/html/api/net.corda.node.utilities/-local-date-time-column-type/value-from-d-b.html
new file mode 100644
index 0000000000..c89aadff7d
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.utilities/-local-date-time-column-type/value-from-d-b.html
@@ -0,0 +1,15 @@
+
+
+LocalDateTimeColumnType.valueFromDB -
+
+
+
+net.corda.node.utilities / LocalDateTimeColumnType / valueFromDB
+
+valueFromDB
+
+fun valueFromDB ( value : Any ) : Any
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.utilities/-mutable-clock/-init-.html b/docs/build/html/api/net.corda.node.utilities/-mutable-clock/-init-.html
new file mode 100644
index 0000000000..c237bfc7e0
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.utilities/-mutable-clock/-init-.html
@@ -0,0 +1,19 @@
+
+
+MutableClock. -
+
+
+
+net.corda.node.utilities / MutableClock / <init>
+
+<init>
+MutableClock ( )
+An abstract class with helper methods for a type of Clock that might have its concept of "now"
+adjusted externally.
+e.g. for testing (so unit tests do not have to wait for timeouts in realtime) or for demos and simulations.
+
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.utilities/-mutable-clock/index.html b/docs/build/html/api/net.corda.node.utilities/-mutable-clock/index.html
new file mode 100644
index 0000000000..babbdd7cbf
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.utilities/-mutable-clock/index.html
@@ -0,0 +1,88 @@
+
+
+MutableClock -
+
+
+
+net.corda.node.utilities / MutableClock
+
+MutableClock
+abstract class MutableClock : Clock
+An abstract class with helper methods for a type of Clock that might have its concept of "now"
+adjusted externally.
+e.g. for testing (so unit tests do not have to wait for timeouts in realtime) or for demos and simulations.
+
+
+
+
+Constructors
+
+
+
+
+<init>
+
+MutableClock ( )
An abstract class with helper methods for a type of Clock that might have its concept of "now"
+adjusted externally.
+
+
+
+
+Properties
+
+
+
+
+mutationCount
+
+val mutationCount : Long
This tracks how many direct mutations of "now" have occurred for this Clock , but not the passage of time.
+
+
+
+
+mutations
+
+val mutations : <ERROR CLASS> < Long >
This is an observer on the mutation count of this Clock , which reflects the occurence of mutations.
+
+
+
+
+Functions
+
+
+
+
+notifyMutationObservers
+
+fun notifyMutationObservers ( ) : Unit
Must be called by subclasses when they mutate (but not just with the passage of time as per the "wall clock").
+
+
+
+
+Extension Functions
+
+
+
+
+awaitWithDeadline
+
+fun Clock . awaitWithDeadline ( deadline : Instant , future : Future < * > = GuavaSettableFuture.create<Any>()) : Boolean
Wait until the given Future is complete or the deadline is reached, with support for MutableClock implementations
+used in demos or testing. This will substitute a Fiber compatible Future so the current Strand is not blocked.
+
+
+
+
+Inheritors
+
+
+
diff --git a/docs/build/html/api/net.corda.node.utilities/-mutable-clock/mutation-count.html b/docs/build/html/api/net.corda.node.utilities/-mutable-clock/mutation-count.html
new file mode 100644
index 0000000000..0a7473c715
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.utilities/-mutable-clock/mutation-count.html
@@ -0,0 +1,19 @@
+
+
+MutableClock.mutationCount -
+
+
+
+net.corda.node.utilities / MutableClock / mutationCount
+
+mutationCount
+
+val mutationCount : Long
+This tracks how many direct mutations of "now" have occurred for this Clock , but not the passage of time.
+It starts at zero, and increments by one per mutation.
+
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.utilities/-mutable-clock/mutations.html b/docs/build/html/api/net.corda.node.utilities/-mutable-clock/mutations.html
new file mode 100644
index 0000000000..2f8caf252d
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.utilities/-mutable-clock/mutations.html
@@ -0,0 +1,19 @@
+
+
+MutableClock.mutations -
+
+
+
+net.corda.node.utilities / MutableClock / mutations
+
+mutations
+
+val mutations : <ERROR CLASS> < Long >
+This is an observer on the mutation count of this Clock , which reflects the occurence of mutations.
+Getter
+
This is an observer on the mutation count of this Clock , which reflects the occurence of mutations.
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.utilities/-mutable-clock/notify-mutation-observers.html b/docs/build/html/api/net.corda.node.utilities/-mutable-clock/notify-mutation-observers.html
new file mode 100644
index 0000000000..53c82810bc
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.utilities/-mutable-clock/notify-mutation-observers.html
@@ -0,0 +1,16 @@
+
+
+MutableClock.notifyMutationObservers -
+
+
+
+net.corda.node.utilities / MutableClock / notifyMutationObservers
+
+notifyMutationObservers
+
+protected fun notifyMutationObservers ( ) : Unit
+Must be called by subclasses when they mutate (but not just with the passage of time as per the "wall clock").
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.utilities/-n-o-d-e_-d-a-t-a-b-a-s-e_-p-r-e-f-i-x.html b/docs/build/html/api/net.corda.node.utilities/-n-o-d-e_-d-a-t-a-b-a-s-e_-p-r-e-f-i-x.html
new file mode 100644
index 0000000000..26b28e8130
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.utilities/-n-o-d-e_-d-a-t-a-b-a-s-e_-p-r-e-f-i-x.html
@@ -0,0 +1,16 @@
+
+
+NODE_DATABASE_PREFIX -
+
+
+
+net.corda.node.utilities / NODE_DATABASE_PREFIX
+
+NODE_DATABASE_PREFIX
+
+const val NODE_DATABASE_PREFIX : String
+Table prefix for all tables owned by the node module.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.utilities/-party-columns/-init-.html b/docs/build/html/api/net.corda.node.utilities/-party-columns/-init-.html
new file mode 100644
index 0000000000..dbfc48165f
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.utilities/-party-columns/-init-.html
@@ -0,0 +1,14 @@
+
+
+PartyColumns. -
+
+
+
+net.corda.node.utilities / PartyColumns / <init>
+
+<init>
+PartyColumns ( name : <ERROR CLASS> < String > , owningKey : <ERROR CLASS> < PublicKey > )
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.utilities/-party-columns/index.html b/docs/build/html/api/net.corda.node.utilities/-party-columns/index.html
new file mode 100644
index 0000000000..8f66be42bb
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.utilities/-party-columns/index.html
@@ -0,0 +1,42 @@
+
+
+PartyColumns -
+
+
+
+net.corda.node.utilities / PartyColumns
+
+PartyColumns
+data class PartyColumns
+
+
+Constructors
+
+
+
+
+<init>
+
+PartyColumns ( name : <ERROR CLASS> < String > , owningKey : <ERROR CLASS> < PublicKey > )
+
+
+
+Properties
+
+
+
+
+name
+
+val name : <ERROR CLASS> < String >
+
+
+
+owningKey
+
+val owningKey : <ERROR CLASS> < PublicKey >
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.utilities/-party-columns/name.html b/docs/build/html/api/net.corda.node.utilities/-party-columns/name.html
new file mode 100644
index 0000000000..fdd3a9f55f
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.utilities/-party-columns/name.html
@@ -0,0 +1,15 @@
+
+
+PartyColumns.name -
+
+
+
+net.corda.node.utilities / PartyColumns / name
+
+name
+
+val name : <ERROR CLASS> < String >
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.utilities/-party-columns/owning-key.html b/docs/build/html/api/net.corda.node.utilities/-party-columns/owning-key.html
new file mode 100644
index 0000000000..ccc44f03be
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.utilities/-party-columns/owning-key.html
@@ -0,0 +1,15 @@
+
+
+PartyColumns.owningKey -
+
+
+
+net.corda.node.utilities / PartyColumns / owningKey
+
+owningKey
+
+val owningKey : <ERROR CLASS> < PublicKey >
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.utilities/-public-key-column-type/index.html b/docs/build/html/api/net.corda.node.utilities/-public-key-column-type/index.html
new file mode 100644
index 0000000000..6c7dcc5baf
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.utilities/-public-key-column-type/index.html
@@ -0,0 +1,38 @@
+
+
+PublicKeyColumnType -
+
+
+
+net.corda.node.utilities / PublicKeyColumnType
+
+PublicKeyColumnType
+object PublicKeyColumnType
+ColumnType for marshalling to/from database on behalf of PublicKey .
+
+
+Functions
+
+
+
diff --git a/docs/build/html/api/net.corda.node.utilities/-public-key-column-type/not-null-value-to-d-b.html b/docs/build/html/api/net.corda.node.utilities/-public-key-column-type/not-null-value-to-d-b.html
new file mode 100644
index 0000000000..10c50e8db1
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.utilities/-public-key-column-type/not-null-value-to-d-b.html
@@ -0,0 +1,15 @@
+
+
+PublicKeyColumnType.notNullValueToDB -
+
+
+
+net.corda.node.utilities / PublicKeyColumnType / notNullValueToDB
+
+notNullValueToDB
+
+fun notNullValueToDB ( value : Any ) : Any
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.utilities/-public-key-column-type/sql-type.html b/docs/build/html/api/net.corda.node.utilities/-public-key-column-type/sql-type.html
new file mode 100644
index 0000000000..cbdc92445c
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.utilities/-public-key-column-type/sql-type.html
@@ -0,0 +1,15 @@
+
+
+PublicKeyColumnType.sqlType -
+
+
+
+net.corda.node.utilities / PublicKeyColumnType / sqlType
+
+sqlType
+
+fun sqlType ( ) : String
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.utilities/-public-key-column-type/value-from-d-b.html b/docs/build/html/api/net.corda.node.utilities/-public-key-column-type/value-from-d-b.html
new file mode 100644
index 0000000000..e5e5aca2e8
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.utilities/-public-key-column-type/value-from-d-b.html
@@ -0,0 +1,15 @@
+
+
+PublicKeyColumnType.valueFromDB -
+
+
+
+net.corda.node.utilities / PublicKeyColumnType / valueFromDB
+
+valueFromDB
+
+fun valueFromDB ( value : Any ) : Any
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.utilities/-secure-hash-column-type/index.html b/docs/build/html/api/net.corda.node.utilities/-secure-hash-column-type/index.html
new file mode 100644
index 0000000000..6671d80d4e
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.utilities/-secure-hash-column-type/index.html
@@ -0,0 +1,38 @@
+
+
+SecureHashColumnType -
+
+
+
+net.corda.node.utilities / SecureHashColumnType
+
+SecureHashColumnType
+object SecureHashColumnType
+ColumnType for marshalling to/from database on behalf of SecureHash .
+
+
+Functions
+
+
+
diff --git a/docs/build/html/api/net.corda.node.utilities/-secure-hash-column-type/not-null-value-to-d-b.html b/docs/build/html/api/net.corda.node.utilities/-secure-hash-column-type/not-null-value-to-d-b.html
new file mode 100644
index 0000000000..671b02c447
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.utilities/-secure-hash-column-type/not-null-value-to-d-b.html
@@ -0,0 +1,15 @@
+
+
+SecureHashColumnType.notNullValueToDB -
+
+
+
+net.corda.node.utilities / SecureHashColumnType / notNullValueToDB
+
+notNullValueToDB
+
+fun notNullValueToDB ( value : Any ) : Any
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.utilities/-secure-hash-column-type/sql-type.html b/docs/build/html/api/net.corda.node.utilities/-secure-hash-column-type/sql-type.html
new file mode 100644
index 0000000000..5141b39e39
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.utilities/-secure-hash-column-type/sql-type.html
@@ -0,0 +1,15 @@
+
+
+SecureHashColumnType.sqlType -
+
+
+
+net.corda.node.utilities / SecureHashColumnType / sqlType
+
+sqlType
+
+fun sqlType ( ) : String
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.utilities/-secure-hash-column-type/value-from-d-b.html b/docs/build/html/api/net.corda.node.utilities/-secure-hash-column-type/value-from-d-b.html
new file mode 100644
index 0000000000..26ef508cb8
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.utilities/-secure-hash-column-type/value-from-d-b.html
@@ -0,0 +1,15 @@
+
+
+SecureHashColumnType.valueFromDB -
+
+
+
+net.corda.node.utilities / SecureHashColumnType / valueFromDB
+
+valueFromDB
+
+fun valueFromDB ( value : Any ) : Any
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.utilities/-state-ref-columns/--index--.html b/docs/build/html/api/net.corda.node.utilities/-state-ref-columns/--index--.html
new file mode 100644
index 0000000000..5bd93e2c83
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.utilities/-state-ref-columns/--index--.html
@@ -0,0 +1,15 @@
+
+
+StateRefColumns.index -
+
+
+
+net.corda.node.utilities / StateRefColumns / index
+
+index
+
+val index : <ERROR CLASS> < Int >
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.utilities/-state-ref-columns/-init-.html b/docs/build/html/api/net.corda.node.utilities/-state-ref-columns/-init-.html
new file mode 100644
index 0000000000..f3f9686945
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.utilities/-state-ref-columns/-init-.html
@@ -0,0 +1,14 @@
+
+
+StateRefColumns. -
+
+
+
+net.corda.node.utilities / StateRefColumns / <init>
+
+<init>
+StateRefColumns ( txId : <ERROR CLASS> < SecureHash > , index : <ERROR CLASS> < Int > )
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.utilities/-state-ref-columns/index.html b/docs/build/html/api/net.corda.node.utilities/-state-ref-columns/index.html
new file mode 100644
index 0000000000..b08f0493a3
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.utilities/-state-ref-columns/index.html
@@ -0,0 +1,42 @@
+
+
+StateRefColumns -
+
+
+
+net.corda.node.utilities / StateRefColumns
+
+StateRefColumns
+data class StateRefColumns
+
+
+Constructors
+
+
+
+
+<init>
+
+StateRefColumns ( txId : <ERROR CLASS> < SecureHash > , index : <ERROR CLASS> < Int > )
+
+
+
+Properties
+
+
+
+
+index
+
+val index : <ERROR CLASS> < Int >
+
+
+
+txId
+
+val txId : <ERROR CLASS> < SecureHash >
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.utilities/-state-ref-columns/tx-id.html b/docs/build/html/api/net.corda.node.utilities/-state-ref-columns/tx-id.html
new file mode 100644
index 0000000000..8bd18c9ea9
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.utilities/-state-ref-columns/tx-id.html
@@ -0,0 +1,15 @@
+
+
+StateRefColumns.txId -
+
+
+
+net.corda.node.utilities / StateRefColumns / txId
+
+txId
+
+val txId : <ERROR CLASS> < SecureHash >
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.utilities/-strand-local-transaction-manager/-init-.html b/docs/build/html/api/net.corda.node.utilities/-strand-local-transaction-manager/-init-.html
new file mode 100644
index 0000000000..b32326355a
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.utilities/-strand-local-transaction-manager/-init-.html
@@ -0,0 +1,23 @@
+
+
+StrandLocalTransactionManager. -
+
+
+
+net.corda.node.utilities / StrandLocalTransactionManager / <init>
+
+<init>
+StrandLocalTransactionManager ( initWithDatabase : <ERROR CLASS> )
+A relatively close copy of the ThreadLocalTransactionManager in Exposed but with the following adjustments to suit
+our environment:
+Because the construction of a Database instance results in replacing the singleton TransactionManager instance,
+our tests involving two MockNode s effectively replace the database instances of each other and continue to trample
+over each other. So here we use a companion object to hold them as ThreadLocal and StrandLocalTransactionManager
+is otherwise effectively stateless so its replacement does not matter. The ThreadLocal is then set correctly and
+explicitly just prior to initiating a transaction in databaseTransaction and createDatabaseTransaction above.
+
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.utilities/-strand-local-transaction-manager/current-or-null.html b/docs/build/html/api/net.corda.node.utilities/-strand-local-transaction-manager/current-or-null.html
new file mode 100644
index 0000000000..30a81d9fbe
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.utilities/-strand-local-transaction-manager/current-or-null.html
@@ -0,0 +1,15 @@
+
+
+StrandLocalTransactionManager.currentOrNull -
+
+
+
+net.corda.node.utilities / StrandLocalTransactionManager / currentOrNull
+
+currentOrNull
+
+fun currentOrNull ( ) : <ERROR CLASS> ?
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.utilities/-strand-local-transaction-manager/database.html b/docs/build/html/api/net.corda.node.utilities/-strand-local-transaction-manager/database.html
new file mode 100644
index 0000000000..e1ff7267dc
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.utilities/-strand-local-transaction-manager/database.html
@@ -0,0 +1,15 @@
+
+
+StrandLocalTransactionManager.database -
+
+
+
+net.corda.node.utilities / StrandLocalTransactionManager / database
+
+database
+
+var database : <ERROR CLASS>
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.utilities/-strand-local-transaction-manager/index.html b/docs/build/html/api/net.corda.node.utilities/-strand-local-transaction-manager/index.html
new file mode 100644
index 0000000000..08682bc477
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.utilities/-strand-local-transaction-manager/index.html
@@ -0,0 +1,81 @@
+
+
+StrandLocalTransactionManager -
+
+
+
+net.corda.node.utilities / StrandLocalTransactionManager
+
+StrandLocalTransactionManager
+class StrandLocalTransactionManager
+A relatively close copy of the ThreadLocalTransactionManager in Exposed but with the following adjustments to suit
+our environment:
+Because the construction of a Database instance results in replacing the singleton TransactionManager instance,
+our tests involving two MockNode s effectively replace the database instances of each other and continue to trample
+over each other. So here we use a companion object to hold them as ThreadLocal and StrandLocalTransactionManager
+is otherwise effectively stateless so its replacement does not matter. The ThreadLocal is then set correctly and
+explicitly just prior to initiating a transaction in databaseTransaction and createDatabaseTransaction above.
+
+
+
+
+Constructors
+
+
+
+
+<init>
+
+StrandLocalTransactionManager ( initWithDatabase : <ERROR CLASS> )
A relatively close copy of the ThreadLocalTransactionManager in Exposed but with the following adjustments to suit
+our environment:
+
+
+
+
+Functions
+
+
+
+
+currentOrNull
+
+fun currentOrNull ( ) : <ERROR CLASS> ?
+
+
+
+newTransaction
+
+fun newTransaction ( isolation : Int ) : <ERROR CLASS>
+
+
+
+Companion Object Properties
+
+
+
+
+database
+
+var database : <ERROR CLASS>
+
+
+
+Companion Object Functions
+
+
+
+
+restoreThreadLocalTx
+
+fun restoreThreadLocalTx ( context : <ERROR CLASS> < <ERROR CLASS> ? , <ERROR CLASS> ? > ) : Unit
+
+
+
+setThreadLocalTx
+
+fun setThreadLocalTx ( tx : <ERROR CLASS> ? ) : <ERROR CLASS> < <ERROR CLASS> ? , <ERROR CLASS> ? >
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.utilities/-strand-local-transaction-manager/new-transaction.html b/docs/build/html/api/net.corda.node.utilities/-strand-local-transaction-manager/new-transaction.html
new file mode 100644
index 0000000000..d0e9b18a92
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.utilities/-strand-local-transaction-manager/new-transaction.html
@@ -0,0 +1,15 @@
+
+
+StrandLocalTransactionManager.newTransaction -
+
+
+
+net.corda.node.utilities / StrandLocalTransactionManager / newTransaction
+
+newTransaction
+
+fun newTransaction ( isolation : Int ) : <ERROR CLASS>
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.utilities/-strand-local-transaction-manager/restore-thread-local-tx.html b/docs/build/html/api/net.corda.node.utilities/-strand-local-transaction-manager/restore-thread-local-tx.html
new file mode 100644
index 0000000000..968da3e924
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.utilities/-strand-local-transaction-manager/restore-thread-local-tx.html
@@ -0,0 +1,15 @@
+
+
+StrandLocalTransactionManager.restoreThreadLocalTx -
+
+
+
+net.corda.node.utilities / StrandLocalTransactionManager / restoreThreadLocalTx
+
+restoreThreadLocalTx
+
+fun restoreThreadLocalTx ( context : <ERROR CLASS> < <ERROR CLASS> ? , <ERROR CLASS> ? > ) : Unit
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.utilities/-strand-local-transaction-manager/set-thread-local-tx.html b/docs/build/html/api/net.corda.node.utilities/-strand-local-transaction-manager/set-thread-local-tx.html
new file mode 100644
index 0000000000..ff233ea3b2
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.utilities/-strand-local-transaction-manager/set-thread-local-tx.html
@@ -0,0 +1,15 @@
+
+
+StrandLocalTransactionManager.setThreadLocalTx -
+
+
+
+net.corda.node.utilities / StrandLocalTransactionManager / setThreadLocalTx
+
+setThreadLocalTx
+
+fun setThreadLocalTx ( tx : <ERROR CLASS> ? ) : <ERROR CLASS> < <ERROR CLASS> ? , <ERROR CLASS> ? >
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.utilities/-test-clock/-init-.html b/docs/build/html/api/net.corda.node.utilities/-test-clock/-init-.html
new file mode 100644
index 0000000000..c3eda44e84
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.utilities/-test-clock/-init-.html
@@ -0,0 +1,15 @@
+
+
+TestClock. -
+
+
+
+net.corda.node.utilities / TestClock / <init>
+
+<init>
+TestClock ( delegateClock : Clock = Clock.systemUTC())
+A Clock that can have the date advanced for use in demos.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.utilities/-test-clock/get-zone.html b/docs/build/html/api/net.corda.node.utilities/-test-clock/get-zone.html
new file mode 100644
index 0000000000..ca6b57151b
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.utilities/-test-clock/get-zone.html
@@ -0,0 +1,15 @@
+
+
+TestClock.getZone -
+
+
+
+net.corda.node.utilities / TestClock / getZone
+
+getZone
+
+fun getZone ( ) : ZoneId
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.utilities/-test-clock/index.html b/docs/build/html/api/net.corda.node.utilities/-test-clock/index.html
new file mode 100644
index 0000000000..292307d5c6
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.utilities/-test-clock/index.html
@@ -0,0 +1,106 @@
+
+
+TestClock -
+
+
+
+net.corda.node.utilities / TestClock
+
+TestClock
+class TestClock : MutableClock , SerializeAsToken
+A Clock that can have the date advanced for use in demos.
+
+
+Constructors
+
+
+
+
+<init>
+
+TestClock ( delegateClock : Clock = Clock.systemUTC())
A Clock that can have the date advanced for use in demos.
+
+
+
+
+Inherited Properties
+
+
+
+
+mutationCount
+
+val mutationCount : Long
This tracks how many direct mutations of "now" have occurred for this Clock , but not the passage of time.
+
+
+
+
+mutations
+
+val mutations : <ERROR CLASS> < Long >
This is an observer on the mutation count of this Clock , which reflects the occurence of mutations.
+
+
+
+
+Functions
+
+Inherited Functions
+
+
+
+
+notifyMutationObservers
+
+fun notifyMutationObservers ( ) : Unit
Must be called by subclasses when they mutate (but not just with the passage of time as per the "wall clock").
+
+
+
+
+Extension Functions
+
+
+
+
+awaitWithDeadline
+
+fun Clock . awaitWithDeadline ( deadline : Instant , future : Future < * > = GuavaSettableFuture.create<Any>()) : Boolean
Wait until the given Future is complete or the deadline is reached, with support for MutableClock implementations
+used in demos or testing. This will substitute a Fiber compatible Future so the current Strand is not blocked.
+
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.utilities/-test-clock/instant.html b/docs/build/html/api/net.corda.node.utilities/-test-clock/instant.html
new file mode 100644
index 0000000000..ca9d9e5002
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.utilities/-test-clock/instant.html
@@ -0,0 +1,15 @@
+
+
+TestClock.instant -
+
+
+
+net.corda.node.utilities / TestClock / instant
+
+instant
+
+fun instant ( ) : Instant
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.utilities/-test-clock/to-token.html b/docs/build/html/api/net.corda.node.utilities/-test-clock/to-token.html
new file mode 100644
index 0000000000..c9c32dbff1
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.utilities/-test-clock/to-token.html
@@ -0,0 +1,16 @@
+
+
+TestClock.toToken -
+
+
+
+net.corda.node.utilities / TestClock / toToken
+
+toToken
+
+fun toToken ( context : SerializeAsTokenContext ) : SerializationToken
+Overrides SerializeAsToken.toToken
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.utilities/-test-clock/update-date.html b/docs/build/html/api/net.corda.node.utilities/-test-clock/update-date.html
new file mode 100644
index 0000000000..6c78d79867
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.utilities/-test-clock/update-date.html
@@ -0,0 +1,15 @@
+
+
+TestClock.updateDate -
+
+
+
+net.corda.node.utilities / TestClock / updateDate
+
+updateDate
+
+fun updateDate ( date : LocalDate ) : Boolean
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.utilities/-test-clock/with-zone.html b/docs/build/html/api/net.corda.node.utilities/-test-clock/with-zone.html
new file mode 100644
index 0000000000..95f9e9feb3
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.utilities/-test-clock/with-zone.html
@@ -0,0 +1,15 @@
+
+
+TestClock.withZone -
+
+
+
+net.corda.node.utilities / TestClock / withZone
+
+withZone
+
+fun withZone ( zone : ZoneId ) : Clock
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.utilities/-u-u-i-d-string-column-type/index.html b/docs/build/html/api/net.corda.node.utilities/-u-u-i-d-string-column-type/index.html
new file mode 100644
index 0000000000..df0a61de38
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.utilities/-u-u-i-d-string-column-type/index.html
@@ -0,0 +1,38 @@
+
+
+UUIDStringColumnType -
+
+
+
+net.corda.node.utilities / UUIDStringColumnType
+
+UUIDStringColumnType
+object UUIDStringColumnType
+ColumnType for marshalling to/from database on behalf of UUID , always using a string representation.
+
+
+Functions
+
+
+
diff --git a/docs/build/html/api/net.corda.node.utilities/-u-u-i-d-string-column-type/not-null-value-to-d-b.html b/docs/build/html/api/net.corda.node.utilities/-u-u-i-d-string-column-type/not-null-value-to-d-b.html
new file mode 100644
index 0000000000..983ebac6ae
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.utilities/-u-u-i-d-string-column-type/not-null-value-to-d-b.html
@@ -0,0 +1,15 @@
+
+
+UUIDStringColumnType.notNullValueToDB -
+
+
+
+net.corda.node.utilities / UUIDStringColumnType / notNullValueToDB
+
+notNullValueToDB
+
+fun notNullValueToDB ( value : Any ) : Any
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.utilities/-u-u-i-d-string-column-type/sql-type.html b/docs/build/html/api/net.corda.node.utilities/-u-u-i-d-string-column-type/sql-type.html
new file mode 100644
index 0000000000..266fd5d6fc
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.utilities/-u-u-i-d-string-column-type/sql-type.html
@@ -0,0 +1,15 @@
+
+
+UUIDStringColumnType.sqlType -
+
+
+
+net.corda.node.utilities / UUIDStringColumnType / sqlType
+
+sqlType
+
+fun sqlType ( ) : String
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.utilities/-u-u-i-d-string-column-type/value-from-d-b.html b/docs/build/html/api/net.corda.node.utilities/-u-u-i-d-string-column-type/value-from-d-b.html
new file mode 100644
index 0000000000..c1d9fd25a0
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.utilities/-u-u-i-d-string-column-type/value-from-d-b.html
@@ -0,0 +1,15 @@
+
+
+UUIDStringColumnType.valueFromDB -
+
+
+
+net.corda.node.utilities / UUIDStringColumnType / valueFromDB
+
+valueFromDB
+
+fun valueFromDB ( value : Any ) : Any
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.utilities/bytes-from-blob.html b/docs/build/html/api/net.corda.node.utilities/bytes-from-blob.html
new file mode 100644
index 0000000000..9b5ded472a
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.utilities/bytes-from-blob.html
@@ -0,0 +1,15 @@
+
+
+bytesFromBlob -
+
+
+
+net.corda.node.utilities / bytesFromBlob
+
+bytesFromBlob
+
+fun < T : Any > bytesFromBlob ( blob : Blob ) : SerializedBytes < T >
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.utilities/bytes-to-blob.html b/docs/build/html/api/net.corda.node.utilities/bytes-to-blob.html
new file mode 100644
index 0000000000..b4bdcc7ee6
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.utilities/bytes-to-blob.html
@@ -0,0 +1,15 @@
+
+
+bytesToBlob -
+
+
+
+net.corda.node.utilities / bytesToBlob
+
+bytesToBlob
+
+fun bytesToBlob ( value : SerializedBytes < * > , finalizables : MutableList < ( ) -> Unit > ) : Blob
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.utilities/configure-database.html b/docs/build/html/api/net.corda.node.utilities/configure-database.html
new file mode 100644
index 0000000000..e8877cd212
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.utilities/configure-database.html
@@ -0,0 +1,15 @@
+
+
+configureDatabase -
+
+
+
+net.corda.node.utilities / configureDatabase
+
+configureDatabase
+
+fun configureDatabase ( props : Properties ) : <ERROR CLASS> < Closeable , <ERROR CLASS> >
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.utilities/create-database-transaction.html b/docs/build/html/api/net.corda.node.utilities/create-database-transaction.html
new file mode 100644
index 0000000000..7690753563
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.utilities/create-database-transaction.html
@@ -0,0 +1,15 @@
+
+
+createDatabaseTransaction -
+
+
+
+net.corda.node.utilities / createDatabaseTransaction
+
+createDatabaseTransaction
+
+fun createDatabaseTransaction ( db : <ERROR CLASS> ) : <ERROR CLASS>
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.utilities/database-transaction.html b/docs/build/html/api/net.corda.node.utilities/database-transaction.html
new file mode 100644
index 0000000000..89eeffc218
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.utilities/database-transaction.html
@@ -0,0 +1,15 @@
+
+
+databaseTransaction -
+
+
+
+net.corda.node.utilities / databaseTransaction
+
+databaseTransaction
+
+fun < T > databaseTransaction ( db : <ERROR CLASS> , statement : <ERROR CLASS> . ( ) -> T ) : T
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.utilities/deserialize-from-blob.html b/docs/build/html/api/net.corda.node.utilities/deserialize-from-blob.html
new file mode 100644
index 0000000000..d9bdba2cff
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.utilities/deserialize-from-blob.html
@@ -0,0 +1,15 @@
+
+
+deserializeFromBlob -
+
+
+
+net.corda.node.utilities / deserializeFromBlob
+
+deserializeFromBlob
+
+fun < T : Any > deserializeFromBlob ( blob : Blob ) : T
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.utilities/index.html b/docs/build/html/api/net.corda.node.utilities/index.html
new file mode 100644
index 0000000000..b097bbdbcb
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.utilities/index.html
@@ -0,0 +1,304 @@
+
+
+net.corda.node.utilities -
+
+
+
+net.corda.node.utilities
+
+Package net.corda.node.utilities
+Types
+
+
+
+
+ANSIProgressObserver
+
+class ANSIProgressObserver
This observes the StateMachineManager and follows the progress of ProtocolLogic s until they complete in the order
+they are added to the StateMachineManager .
+
+
+
+
+ANSIProgressRenderer
+
+object ANSIProgressRenderer
Knows how to render a ProgressTracker to the terminal using coloured, emoji-fied output. Useful when writing small
+command line tools, demos, tests etc. Just set the progressTracker field and it will go ahead and start drawing
+if the terminal supports it. Otherwise it just prints out the name of the step whenever it changes.
+
+
+
+
+AbstractJDBCHashMap
+
+abstract class AbstractJDBCHashMap < K : Any , V : Any , out T : JDBCHashedTable > : MutableMap < K , V > , AbstractMap < K , V >
A base class for a JDBC table backed hash map that iterates in insertion order by using
+an ever increasing sequence number on entries. Iterators supports remove() but entries are not really mutable and
+do not support setValue() method from MutableMap.MutableEntry .
+
+
+
+
+AbstractJDBCHashSet
+
+abstract class AbstractJDBCHashSet < K : Any , out T : JDBCHashedTable > : MutableSet < K > , AbstractSet < K >
Base class for JDBC backed hash set that delegates to a JDBC backed hash map where the values are all
+Unit and not actually persisted. Iteration order is order of insertion. Iterators can remove().
+
+
+
+
+AddOrRemove
+
+enum class AddOrRemove
Enum for when adding/removing something, for example adding or removing an entry in a directory.
+
+
+
+
+AffinityExecutor
+
+interface AffinityExecutor : Executor
An extended executor interface that supports thread affinity assertions and short circuiting. This can be useful
+for ensuring code runs on the right thread, and also for unit testing.
+
+
+
+
+FiberBox
+
+class FiberBox < out T >
Modelled on ThreadBox , but with support for waiting that is compatible with Quasar Fiber s and MutableClock s.
+
+
+
+
+InstantColumnType
+
+object InstantColumnType
ColumnType for marshalling to/from database on behalf of java.time.Instant .
+
+
+
+
+JDBCHashMap
+
+class JDBCHashMap < K : Any , V : Any > : AbstractJDBCHashMap < K , V , BlobMapTable >
A convenient JDBC table backed hash map with iteration order based on insertion order.
+See AbstractJDBCHashMap for further implementation details.
+
+
+
+
+JDBCHashSet
+
+class JDBCHashSet < K : Any > : AbstractJDBCHashSet < K , BlobSetTable >
A convenient JDBC table backed hash set with iteration order based on insertion order.
+See AbstractJDBCHashSet and AbstractJDBCHashMap for further implementation details.
+
+
+
+
+JDBCHashedTable
+
+open class JDBCHashedTable
+
+
+
+JsonSupport
+
+object JsonSupport
Utilities and serialisers for working with JSON representations of basic types. This adds Jackson support for
+the java.time API, some core types, and Kotlin data classes.
+
+
+
+
+LocalDateColumnType
+
+object LocalDateColumnType
ColumnType for marshalling to/from database on behalf of java.time.LocalDate .
+
+
+
+
+LocalDateTimeColumnType
+
+object LocalDateTimeColumnType
ColumnType for marshalling to/from database on behalf of java.time.LocalDateTime .
+
+
+
+
+MutableClock
+
+abstract class MutableClock : Clock
An abstract class with helper methods for a type of Clock that might have its concept of "now"
+adjusted externally.
+
+
+
+
+PartyColumns
+
+data class PartyColumns
+
+
+
+PublicKeyColumnType
+
+object PublicKeyColumnType
ColumnType for marshalling to/from database on behalf of PublicKey .
+
+
+
+
+SecureHashColumnType
+
+object SecureHashColumnType
ColumnType for marshalling to/from database on behalf of SecureHash .
+
+
+
+
+StateRefColumns
+
+data class StateRefColumns
+
+
+
+StrandLocalTransactionManager
+
+class StrandLocalTransactionManager
A relatively close copy of the ThreadLocalTransactionManager in Exposed but with the following adjustments to suit
+our environment:
+
+
+
+
+TestClock
+
+class TestClock : MutableClock , SerializeAsToken
A Clock that can have the date advanced for use in demos.
+
+
+
+
+UUIDStringColumnType
+
+object UUIDStringColumnType
ColumnType for marshalling to/from database on behalf of UUID , always using a string representation.
+
+
+
+
+Extensions for External Classes
+
+Properties
+
+
+
+
+NODE_DATABASE_PREFIX
+
+const val NODE_DATABASE_PREFIX : String
Table prefix for all tables owned by the node module.
+
+
+
+
+Functions
+
+
+
+
+bytesFromBlob
+
+fun < T : Any > bytesFromBlob ( blob : Blob ) : SerializedBytes < T >
+
+
+
+bytesToBlob
+
+fun bytesToBlob ( value : SerializedBytes < * > , finalizables : MutableList < ( ) -> Unit > ) : Blob
+
+
+
+configureDatabase
+
+fun configureDatabase ( props : Properties ) : <ERROR CLASS> < Closeable , <ERROR CLASS> >
+
+
+
+createDatabaseTransaction
+
+fun createDatabaseTransaction ( db : <ERROR CLASS> ) : <ERROR CLASS>
+
+
+
+databaseTransaction
+
+fun < T > databaseTransaction ( db : <ERROR CLASS> , statement : <ERROR CLASS> . ( ) -> T ) : T
+
+
+
+deserializeFromBlob
+
+fun < T : Any > deserializeFromBlob ( blob : Blob ) : T
+
+
+
+instant
+
+fun <ERROR CLASS> . instant ( name : String ) : <ERROR CLASS>
+
+
+
+isolatedTransaction
+
+fun < T > isolatedTransaction ( database : <ERROR CLASS> , block : <ERROR CLASS> . ( ) -> T ) : T
+
+
+
+localDate
+
+fun <ERROR CLASS> . localDate ( name : String ) : <ERROR CLASS>
+
+
+
+localDateTime
+
+fun <ERROR CLASS> . localDateTime ( name : String ) : <ERROR CLASS>
+
+
+
+party
+
+fun <ERROR CLASS> . party ( nameColumnName : String , keyColumnName : String ) : <ERROR CLASS>
+
+
+
+publicKey
+
+fun <ERROR CLASS> . publicKey ( name : String ) : <ERROR CLASS>
Table column helpers for use with Exposed, as per varchar etc.
+
+
+
+
+secureHash
+
+fun <ERROR CLASS> . secureHash ( name : String ) : <ERROR CLASS>
+
+
+
+serializeToBlob
+
+fun serializeToBlob ( value : Any , finalizables : MutableList < ( ) -> Unit > ) : Blob
+
+
+
+stateRef
+
+fun <ERROR CLASS> . stateRef ( txIdColumnName : String , indexColumnName : String ) : <ERROR CLASS>
+
+
+
+uuidString
+
+fun <ERROR CLASS> . uuidString ( name : String ) : <ERROR CLASS>
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.utilities/instant.html b/docs/build/html/api/net.corda.node.utilities/instant.html
new file mode 100644
index 0000000000..10fbb82799
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.utilities/instant.html
@@ -0,0 +1,15 @@
+
+
+instant -
+
+
+
+net.corda.node.utilities / instant
+
+instant
+
+fun <ERROR CLASS> . instant ( name : String ) : <ERROR CLASS>
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.utilities/isolated-transaction.html b/docs/build/html/api/net.corda.node.utilities/isolated-transaction.html
new file mode 100644
index 0000000000..64f5c4f909
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.utilities/isolated-transaction.html
@@ -0,0 +1,15 @@
+
+
+isolatedTransaction -
+
+
+
+net.corda.node.utilities / isolatedTransaction
+
+isolatedTransaction
+
+fun < T > isolatedTransaction ( database : <ERROR CLASS> , block : <ERROR CLASS> . ( ) -> T ) : T
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.utilities/java.time.-clock/await-with-deadline.html b/docs/build/html/api/net.corda.node.utilities/java.time.-clock/await-with-deadline.html
new file mode 100644
index 0000000000..69fbd02050
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.utilities/java.time.-clock/await-with-deadline.html
@@ -0,0 +1,19 @@
+
+
+awaitWithDeadline -
+
+
+
+net.corda.node.utilities / java.time.Clock / awaitWithDeadline
+
+awaitWithDeadline
+
+fun Clock . awaitWithDeadline ( deadline : Instant , future : Future < * > = GuavaSettableFuture.create<Any>()) : Boolean
+Wait until the given Future is complete or the deadline is reached, with support for MutableClock implementations
+used in demos or testing. This will substitute a Fiber compatible Future so the current Strand is not blocked.
+Return
+true if the Future is complete, false if the deadline was reached.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.utilities/java.time.-clock/index.html b/docs/build/html/api/net.corda.node.utilities/java.time.-clock/index.html
new file mode 100644
index 0000000000..f9a2048289
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.utilities/java.time.-clock/index.html
@@ -0,0 +1,23 @@
+
+
+net.corda.node.utilities.java.time.Clock -
+
+
+
+net.corda.node.utilities / java.time.Clock
+
+Extensions for java.time.Clock
+
+
+
+
+awaitWithDeadline
+
+fun Clock . awaitWithDeadline ( deadline : Instant , future : Future < * > = GuavaSettableFuture.create<Any>()) : Boolean
Wait until the given Future is complete or the deadline is reached, with support for MutableClock implementations
+used in demos or testing. This will substitute a Fiber compatible Future so the current Strand is not blocked.
+
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.utilities/local-date-time.html b/docs/build/html/api/net.corda.node.utilities/local-date-time.html
new file mode 100644
index 0000000000..46a6aadc9a
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.utilities/local-date-time.html
@@ -0,0 +1,15 @@
+
+
+localDateTime -
+
+
+
+net.corda.node.utilities / localDateTime
+
+localDateTime
+
+fun <ERROR CLASS> . localDateTime ( name : String ) : <ERROR CLASS>
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.utilities/local-date.html b/docs/build/html/api/net.corda.node.utilities/local-date.html
new file mode 100644
index 0000000000..5e448d2e0d
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.utilities/local-date.html
@@ -0,0 +1,15 @@
+
+
+localDate -
+
+
+
+net.corda.node.utilities / localDate
+
+localDate
+
+fun <ERROR CLASS> . localDate ( name : String ) : <ERROR CLASS>
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.utilities/party.html b/docs/build/html/api/net.corda.node.utilities/party.html
new file mode 100644
index 0000000000..fa3f46f587
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.utilities/party.html
@@ -0,0 +1,15 @@
+
+
+party -
+
+
+
+net.corda.node.utilities / party
+
+party
+
+fun <ERROR CLASS> . party ( nameColumnName : String , keyColumnName : String ) : <ERROR CLASS>
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.utilities/public-key.html b/docs/build/html/api/net.corda.node.utilities/public-key.html
new file mode 100644
index 0000000000..14f72c8abb
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.utilities/public-key.html
@@ -0,0 +1,16 @@
+
+
+publicKey -
+
+
+
+net.corda.node.utilities / publicKey
+
+publicKey
+
+fun <ERROR CLASS> . publicKey ( name : String ) : <ERROR CLASS>
+Table column helpers for use with Exposed, as per varchar etc.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.utilities/secure-hash.html b/docs/build/html/api/net.corda.node.utilities/secure-hash.html
new file mode 100644
index 0000000000..de5bda88fd
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.utilities/secure-hash.html
@@ -0,0 +1,15 @@
+
+
+secureHash -
+
+
+
+net.corda.node.utilities / secureHash
+
+secureHash
+
+fun <ERROR CLASS> . secureHash ( name : String ) : <ERROR CLASS>
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.utilities/serialize-to-blob.html b/docs/build/html/api/net.corda.node.utilities/serialize-to-blob.html
new file mode 100644
index 0000000000..6eaeb23626
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.utilities/serialize-to-blob.html
@@ -0,0 +1,15 @@
+
+
+serializeToBlob -
+
+
+
+net.corda.node.utilities / serializeToBlob
+
+serializeToBlob
+
+fun serializeToBlob ( value : Any , finalizables : MutableList < ( ) -> Unit > ) : Blob
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.utilities/state-ref.html b/docs/build/html/api/net.corda.node.utilities/state-ref.html
new file mode 100644
index 0000000000..b3b6e8c4fd
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.utilities/state-ref.html
@@ -0,0 +1,15 @@
+
+
+stateRef -
+
+
+
+net.corda.node.utilities / stateRef
+
+stateRef
+
+fun <ERROR CLASS> . stateRef ( txIdColumnName : String , indexColumnName : String ) : <ERROR CLASS>
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node.utilities/uuid-string.html b/docs/build/html/api/net.corda.node.utilities/uuid-string.html
new file mode 100644
index 0000000000..587c9fd780
--- /dev/null
+++ b/docs/build/html/api/net.corda.node.utilities/uuid-string.html
@@ -0,0 +1,15 @@
+
+
+uuidString -
+
+
+
+net.corda.node.utilities / uuidString
+
+uuidString
+
+fun <ERROR CLASS> . uuidString ( name : String ) : <ERROR CLASS>
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node/-params-spec/base-directory-arg.html b/docs/build/html/api/net.corda.node/-params-spec/base-directory-arg.html
new file mode 100644
index 0000000000..ed3a819398
--- /dev/null
+++ b/docs/build/html/api/net.corda.node/-params-spec/base-directory-arg.html
@@ -0,0 +1,15 @@
+
+
+ParamsSpec.baseDirectoryArg -
+
+
+
+net.corda.node / ParamsSpec / baseDirectoryArg
+
+baseDirectoryArg
+
+val baseDirectoryArg : <ERROR CLASS>
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node/-params-spec/config-file-arg.html b/docs/build/html/api/net.corda.node/-params-spec/config-file-arg.html
new file mode 100644
index 0000000000..2c08f49471
--- /dev/null
+++ b/docs/build/html/api/net.corda.node/-params-spec/config-file-arg.html
@@ -0,0 +1,15 @@
+
+
+ParamsSpec.configFileArg -
+
+
+
+net.corda.node / ParamsSpec / configFileArg
+
+configFileArg
+
+val configFileArg : <ERROR CLASS>
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node/-params-spec/index.html b/docs/build/html/api/net.corda.node/-params-spec/index.html
new file mode 100644
index 0000000000..50ced457ee
--- /dev/null
+++ b/docs/build/html/api/net.corda.node/-params-spec/index.html
@@ -0,0 +1,37 @@
+
+
+ParamsSpec -
+
+
+
+net.corda.node / ParamsSpec
+
+ParamsSpec
+object ParamsSpec
+
+
+Properties
+
+
+
diff --git a/docs/build/html/api/net.corda.node/-params-spec/parser.html b/docs/build/html/api/net.corda.node/-params-spec/parser.html
new file mode 100644
index 0000000000..976d30703f
--- /dev/null
+++ b/docs/build/html/api/net.corda.node/-params-spec/parser.html
@@ -0,0 +1,15 @@
+
+
+ParamsSpec.parser -
+
+
+
+net.corda.node / ParamsSpec / parser
+
+parser
+
+val parser : <ERROR CLASS>
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node/index.html b/docs/build/html/api/net.corda.node/index.html
new file mode 100644
index 0000000000..d173473766
--- /dev/null
+++ b/docs/build/html/api/net.corda.node/index.html
@@ -0,0 +1,33 @@
+
+
+net.corda.node -
+
+
+
+net.corda.node
+
+Package net.corda.node
+Types
+
+Functions
+
+
+
+
+main
+
+fun main ( args : Array < String > ) : Unit
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.node/main.html b/docs/build/html/api/net.corda.node/main.html
new file mode 100644
index 0000000000..5c88165316
--- /dev/null
+++ b/docs/build/html/api/net.corda.node/main.html
@@ -0,0 +1,15 @@
+
+
+main -
+
+
+
+net.corda.node / main
+
+main
+
+fun main ( args : Array < String > ) : Unit
+
+
+
+
diff --git a/docs/build/html/api/net.corda.protocols/-abstract-state-replacement-protocol/-acceptor/-a-p-p-r-o-v-i-n-g.html b/docs/build/html/api/net.corda.protocols/-abstract-state-replacement-protocol/-acceptor/-a-p-p-r-o-v-i-n-g.html
new file mode 100644
index 0000000000..f093d2f8bb
--- /dev/null
+++ b/docs/build/html/api/net.corda.protocols/-abstract-state-replacement-protocol/-acceptor/-a-p-p-r-o-v-i-n-g.html
@@ -0,0 +1,42 @@
+
+
+AbstractStateReplacementProtocol.Acceptor.APPROVING -
+
+
+
+net.corda.protocols / AbstractStateReplacementProtocol / Acceptor / APPROVING
+
+APPROVING
+object APPROVING : Step
+
+
+Inherited Properties
+
+
+
+
+changes
+
+open val changes : <ERROR CLASS> < Change >
+
+
+
+label
+
+open val label : String
+
+
+
+Inherited Functions
+
+
+
diff --git a/docs/build/html/api/net.corda.protocols/-abstract-state-replacement-protocol/-acceptor/-init-.html b/docs/build/html/api/net.corda.protocols/-abstract-state-replacement-protocol/-acceptor/-init-.html
new file mode 100644
index 0000000000..5cdaf4c212
--- /dev/null
+++ b/docs/build/html/api/net.corda.protocols/-abstract-state-replacement-protocol/-acceptor/-init-.html
@@ -0,0 +1,14 @@
+
+
+AbstractStateReplacementProtocol.Acceptor. -
+
+
+
+net.corda.protocols / AbstractStateReplacementProtocol / Acceptor / <init>
+
+<init>
+Acceptor ( otherSide : Party , progressTracker : ProgressTracker = tracker())
+
+
+
+
diff --git a/docs/build/html/api/net.corda.protocols/-abstract-state-replacement-protocol/-acceptor/-r-e-j-e-c-t-i-n-g.html b/docs/build/html/api/net.corda.protocols/-abstract-state-replacement-protocol/-acceptor/-r-e-j-e-c-t-i-n-g.html
new file mode 100644
index 0000000000..6a5bfb52ce
--- /dev/null
+++ b/docs/build/html/api/net.corda.protocols/-abstract-state-replacement-protocol/-acceptor/-r-e-j-e-c-t-i-n-g.html
@@ -0,0 +1,42 @@
+
+
+AbstractStateReplacementProtocol.Acceptor.REJECTING -
+
+
+
+net.corda.protocols / AbstractStateReplacementProtocol / Acceptor / REJECTING
+
+REJECTING
+object REJECTING : Step
+
+
+Inherited Properties
+
+
+
+
+changes
+
+open val changes : <ERROR CLASS> < Change >
+
+
+
+label
+
+open val label : String
+
+
+
+Inherited Functions
+
+
+
diff --git a/docs/build/html/api/net.corda.protocols/-abstract-state-replacement-protocol/-acceptor/-v-e-r-i-f-y-i-n-g.html b/docs/build/html/api/net.corda.protocols/-abstract-state-replacement-protocol/-acceptor/-v-e-r-i-f-y-i-n-g.html
new file mode 100644
index 0000000000..930be53aa1
--- /dev/null
+++ b/docs/build/html/api/net.corda.protocols/-abstract-state-replacement-protocol/-acceptor/-v-e-r-i-f-y-i-n-g.html
@@ -0,0 +1,42 @@
+
+
+AbstractStateReplacementProtocol.Acceptor.VERIFYING -
+
+
+
+net.corda.protocols / AbstractStateReplacementProtocol / Acceptor / VERIFYING
+
+VERIFYING
+object VERIFYING : Step
+
+
+Inherited Properties
+
+
+
+
+changes
+
+open val changes : <ERROR CLASS> < Change >
+
+
+
+label
+
+open val label : String
+
+
+
+Inherited Functions
+
+
+
diff --git a/docs/build/html/api/net.corda.protocols/-abstract-state-replacement-protocol/-acceptor/call.html b/docs/build/html/api/net.corda.protocols/-abstract-state-replacement-protocol/-acceptor/call.html
new file mode 100644
index 0000000000..33d0330e73
--- /dev/null
+++ b/docs/build/html/api/net.corda.protocols/-abstract-state-replacement-protocol/-acceptor/call.html
@@ -0,0 +1,17 @@
+
+
+AbstractStateReplacementProtocol.Acceptor.call -
+
+
+
+net.corda.protocols / AbstractStateReplacementProtocol / Acceptor / call
+
+call
+
+open fun call ( ) : Unit
+Overrides ProtocolLogic.call
+This is where you fill out your business logic.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.protocols/-abstract-state-replacement-protocol/-acceptor/index.html b/docs/build/html/api/net.corda.protocols/-abstract-state-replacement-protocol/-acceptor/index.html
new file mode 100644
index 0000000000..d5c3896c82
--- /dev/null
+++ b/docs/build/html/api/net.corda.protocols/-abstract-state-replacement-protocol/-acceptor/index.html
@@ -0,0 +1,188 @@
+
+
+AbstractStateReplacementProtocol.Acceptor -
+
+
+
+net.corda.protocols / AbstractStateReplacementProtocol / Acceptor
+
+Acceptor
+abstract class Acceptor < T > : ProtocolLogic < Unit >
+
+
+Types
+
+Constructors
+
+Properties
+
+
+
+
+otherSide
+
+val otherSide : Party
+
+
+
+progressTracker
+
+open val progressTracker : ProgressTracker
Override this to provide a ProgressTracker . If one is provided and stepped, the framework will do something
+helpful with the progress reports. If this protocol is invoked as a sub-protocol of another, then the
+tracker will be made a child of the current step in the parent. If its null, this protocol doesnt track
+progress.
+
+
+
+
+Inherited Properties
+
+
+
+
+logger
+
+val logger : <ERROR CLASS>
This is where you should log things to.
+
+
+
+
+psm
+
+lateinit var psm : ProtocolStateMachine < * >
Reference to the Fiber instance that is the top level controller for the entire flow.
+
+
+
+
+serviceHub
+
+val serviceHub : ServiceHub
Provides access to big, heavy classes that may be reconstructed from time to time, e.g. across restarts. It is
+only available once the protocol has started, which means it cannnot be accessed in the constructor. Either
+access this lazily or from inside call .
+
+
+
+
+Functions
+
+
+
+
+call
+
+open fun call ( ) : Unit
This is where you fill out your business logic.
+
+
+
+
+verifyProposal
+
+abstract fun verifyProposal ( maybeProposal : UntrustworthyData < Proposal < T > > ) : Proposal < T >
Check the state change proposal to confirm that its acceptable to this node. Rules for verification depend
+on the change proposed, and may further depend on the node itself (for example configuration). The
+proposal is returned if acceptable, otherwise an exception is thrown.
+
+
+
+
+Inherited Functions
+
+Companion Object Functions
+
+Inheritors
+
+
+
diff --git a/docs/build/html/api/net.corda.protocols/-abstract-state-replacement-protocol/-acceptor/other-side.html b/docs/build/html/api/net.corda.protocols/-abstract-state-replacement-protocol/-acceptor/other-side.html
new file mode 100644
index 0000000000..e40f706cd2
--- /dev/null
+++ b/docs/build/html/api/net.corda.protocols/-abstract-state-replacement-protocol/-acceptor/other-side.html
@@ -0,0 +1,15 @@
+
+
+AbstractStateReplacementProtocol.Acceptor.otherSide -
+
+
+
+net.corda.protocols / AbstractStateReplacementProtocol / Acceptor / otherSide
+
+otherSide
+
+val otherSide : Party
+
+
+
+
diff --git a/docs/build/html/api/net.corda.protocols/-abstract-state-replacement-protocol/-acceptor/progress-tracker.html b/docs/build/html/api/net.corda.protocols/-abstract-state-replacement-protocol/-acceptor/progress-tracker.html
new file mode 100644
index 0000000000..bf234e64d0
--- /dev/null
+++ b/docs/build/html/api/net.corda.protocols/-abstract-state-replacement-protocol/-acceptor/progress-tracker.html
@@ -0,0 +1,24 @@
+
+
+AbstractStateReplacementProtocol.Acceptor.progressTracker -
+
+
+
+net.corda.protocols / AbstractStateReplacementProtocol / Acceptor / progressTracker
+
+progressTracker
+
+open val progressTracker : ProgressTracker
+Overrides ProtocolLogic.progressTracker
+Override this to provide a ProgressTracker . If one is provided and stepped, the framework will do something
+helpful with the progress reports. If this protocol is invoked as a sub-protocol of another, then the
+tracker will be made a child of the current step in the parent. If its null, this protocol doesnt track
+progress.
+Note that this has to return a tracker before the protocol is invoked. You cant change your mind half way
+through.
+
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.protocols/-abstract-state-replacement-protocol/-acceptor/tracker.html b/docs/build/html/api/net.corda.protocols/-abstract-state-replacement-protocol/-acceptor/tracker.html
new file mode 100644
index 0000000000..91b809265d
--- /dev/null
+++ b/docs/build/html/api/net.corda.protocols/-abstract-state-replacement-protocol/-acceptor/tracker.html
@@ -0,0 +1,15 @@
+
+
+AbstractStateReplacementProtocol.Acceptor.tracker -
+
+
+
+net.corda.protocols / AbstractStateReplacementProtocol / Acceptor / tracker
+
+tracker
+
+fun tracker ( ) : ProgressTracker
+
+
+
+
diff --git a/docs/build/html/api/net.corda.protocols/-abstract-state-replacement-protocol/-acceptor/verify-proposal.html b/docs/build/html/api/net.corda.protocols/-abstract-state-replacement-protocol/-acceptor/verify-proposal.html
new file mode 100644
index 0000000000..f1cc4d96d9
--- /dev/null
+++ b/docs/build/html/api/net.corda.protocols/-abstract-state-replacement-protocol/-acceptor/verify-proposal.html
@@ -0,0 +1,18 @@
+
+
+AbstractStateReplacementProtocol.Acceptor.verifyProposal -
+
+
+
+net.corda.protocols / AbstractStateReplacementProtocol / Acceptor / verifyProposal
+
+verifyProposal
+
+protected abstract fun verifyProposal ( maybeProposal : UntrustworthyData < Proposal < T > > ) : Proposal < T >
+Check the state change proposal to confirm that its acceptable to this node. Rules for verification depend
+on the change proposed, and may further depend on the node itself (for example configuration). The
+proposal is returned if acceptable, otherwise an exception is thrown.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.protocols/-abstract-state-replacement-protocol/-init-.html b/docs/build/html/api/net.corda.protocols/-abstract-state-replacement-protocol/-init-.html
new file mode 100644
index 0000000000..84322f2b08
--- /dev/null
+++ b/docs/build/html/api/net.corda.protocols/-abstract-state-replacement-protocol/-init-.html
@@ -0,0 +1,23 @@
+
+
+AbstractStateReplacementProtocol. -
+
+
+
+net.corda.protocols / AbstractStateReplacementProtocol / <init>
+
+<init>
+AbstractStateReplacementProtocol ( )
+Abstract protocol to be used for replacing one state with another, for example when changing the notary of a state.
+Notably this requires a one to one replacement of states, states cannot be split, merged or issued as part of these
+protocols.
+The Instigator assembles the transaction for state replacement and sends out change proposals to all participants
+(Acceptor ) of that state. If participants agree to the proposed change, they each sign the transaction.
+Finally, Instigator sends the transaction containing all signatures back to each participant so they can record it and
+use the new updated state for future transactions.
+
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.protocols/-abstract-state-replacement-protocol/-instigator/-init-.html b/docs/build/html/api/net.corda.protocols/-abstract-state-replacement-protocol/-instigator/-init-.html
new file mode 100644
index 0000000000..0f962201fb
--- /dev/null
+++ b/docs/build/html/api/net.corda.protocols/-abstract-state-replacement-protocol/-instigator/-init-.html
@@ -0,0 +1,14 @@
+
+
+AbstractStateReplacementProtocol.Instigator. -
+
+
+
+net.corda.protocols / AbstractStateReplacementProtocol / Instigator / <init>
+
+<init>
+Instigator ( originalState : StateAndRef < S > , modification : T , progressTracker : ProgressTracker = tracker())
+
+
+
+
diff --git a/docs/build/html/api/net.corda.protocols/-abstract-state-replacement-protocol/-instigator/-n-o-t-a-r-y.html b/docs/build/html/api/net.corda.protocols/-abstract-state-replacement-protocol/-instigator/-n-o-t-a-r-y.html
new file mode 100644
index 0000000000..6adddbd918
--- /dev/null
+++ b/docs/build/html/api/net.corda.protocols/-abstract-state-replacement-protocol/-instigator/-n-o-t-a-r-y.html
@@ -0,0 +1,42 @@
+
+
+AbstractStateReplacementProtocol.Instigator.NOTARY -
+
+
+
+net.corda.protocols / AbstractStateReplacementProtocol / Instigator / NOTARY
+
+NOTARY
+object NOTARY : Step
+
+
+Inherited Properties
+
+
+
+
+changes
+
+open val changes : <ERROR CLASS> < Change >
+
+
+
+label
+
+open val label : String
+
+
+
+Inherited Functions
+
+
+
diff --git a/docs/build/html/api/net.corda.protocols/-abstract-state-replacement-protocol/-instigator/-s-i-g-n-i-n-g.html b/docs/build/html/api/net.corda.protocols/-abstract-state-replacement-protocol/-instigator/-s-i-g-n-i-n-g.html
new file mode 100644
index 0000000000..c7677c31e7
--- /dev/null
+++ b/docs/build/html/api/net.corda.protocols/-abstract-state-replacement-protocol/-instigator/-s-i-g-n-i-n-g.html
@@ -0,0 +1,42 @@
+
+
+AbstractStateReplacementProtocol.Instigator.SIGNING -
+
+
+
+net.corda.protocols / AbstractStateReplacementProtocol / Instigator / SIGNING
+
+SIGNING
+object SIGNING : Step
+
+
+Inherited Properties
+
+
+
+
+changes
+
+open val changes : <ERROR CLASS> < Change >
+
+
+
+label
+
+open val label : String
+
+
+
+Inherited Functions
+
+
+
diff --git a/docs/build/html/api/net.corda.protocols/-abstract-state-replacement-protocol/-instigator/assemble-proposal.html b/docs/build/html/api/net.corda.protocols/-abstract-state-replacement-protocol/-instigator/assemble-proposal.html
new file mode 100644
index 0000000000..2d4b5ebf17
--- /dev/null
+++ b/docs/build/html/api/net.corda.protocols/-abstract-state-replacement-protocol/-instigator/assemble-proposal.html
@@ -0,0 +1,15 @@
+
+
+AbstractStateReplacementProtocol.Instigator.assembleProposal -
+
+
+
+net.corda.protocols / AbstractStateReplacementProtocol / Instigator / assembleProposal
+
+assembleProposal
+
+protected abstract fun assembleProposal ( stateRef : StateRef , modification : T , stx : SignedTransaction ) : Proposal < T >
+
+
+
+
diff --git a/docs/build/html/api/net.corda.protocols/-abstract-state-replacement-protocol/-instigator/assemble-tx.html b/docs/build/html/api/net.corda.protocols/-abstract-state-replacement-protocol/-instigator/assemble-tx.html
new file mode 100644
index 0000000000..fa615aad51
--- /dev/null
+++ b/docs/build/html/api/net.corda.protocols/-abstract-state-replacement-protocol/-instigator/assemble-tx.html
@@ -0,0 +1,15 @@
+
+
+AbstractStateReplacementProtocol.Instigator.assembleTx -
+
+
+
+net.corda.protocols / AbstractStateReplacementProtocol / Instigator / assembleTx
+
+assembleTx
+
+protected abstract fun assembleTx ( ) : <ERROR CLASS> < SignedTransaction , List < PublicKey > >
+
+
+
+
diff --git a/docs/build/html/api/net.corda.protocols/-abstract-state-replacement-protocol/-instigator/call.html b/docs/build/html/api/net.corda.protocols/-abstract-state-replacement-protocol/-instigator/call.html
new file mode 100644
index 0000000000..dbe0a59c2e
--- /dev/null
+++ b/docs/build/html/api/net.corda.protocols/-abstract-state-replacement-protocol/-instigator/call.html
@@ -0,0 +1,17 @@
+
+
+AbstractStateReplacementProtocol.Instigator.call -
+
+
+
+net.corda.protocols / AbstractStateReplacementProtocol / Instigator / call
+
+call
+
+open fun call ( ) : StateAndRef < S >
+Overrides ProtocolLogic.call
+This is where you fill out your business logic.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.protocols/-abstract-state-replacement-protocol/-instigator/index.html b/docs/build/html/api/net.corda.protocols/-abstract-state-replacement-protocol/-instigator/index.html
new file mode 100644
index 0000000000..e08783ae4a
--- /dev/null
+++ b/docs/build/html/api/net.corda.protocols/-abstract-state-replacement-protocol/-instigator/index.html
@@ -0,0 +1,191 @@
+
+
+AbstractStateReplacementProtocol.Instigator -
+
+
+
+net.corda.protocols / AbstractStateReplacementProtocol / Instigator
+
+Instigator
+abstract class Instigator < out S : ContractState , T > : ProtocolLogic < StateAndRef < S > >
+
+
+Types
+
+Constructors
+
+Properties
+
+
+
+
+modification
+
+val modification : T
+
+
+
+originalState
+
+val originalState : StateAndRef < S >
+
+
+
+progressTracker
+
+open val progressTracker : ProgressTracker
Override this to provide a ProgressTracker . If one is provided and stepped, the framework will do something
+helpful with the progress reports. If this protocol is invoked as a sub-protocol of another, then the
+tracker will be made a child of the current step in the parent. If its null, this protocol doesnt track
+progress.
+
+
+
+
+Inherited Properties
+
+
+
+
+logger
+
+val logger : <ERROR CLASS>
This is where you should log things to.
+
+
+
+
+psm
+
+lateinit var psm : ProtocolStateMachine < * >
Reference to the Fiber instance that is the top level controller for the entire flow.
+
+
+
+
+serviceHub
+
+val serviceHub : ServiceHub
Provides access to big, heavy classes that may be reconstructed from time to time, e.g. across restarts. It is
+only available once the protocol has started, which means it cannnot be accessed in the constructor. Either
+access this lazily or from inside call .
+
+
+
+
+Functions
+
+Inherited Functions
+
+Companion Object Functions
+
+Inheritors
+
+
+
diff --git a/docs/build/html/api/net.corda.protocols/-abstract-state-replacement-protocol/-instigator/modification.html b/docs/build/html/api/net.corda.protocols/-abstract-state-replacement-protocol/-instigator/modification.html
new file mode 100644
index 0000000000..848e5579ec
--- /dev/null
+++ b/docs/build/html/api/net.corda.protocols/-abstract-state-replacement-protocol/-instigator/modification.html
@@ -0,0 +1,15 @@
+
+
+AbstractStateReplacementProtocol.Instigator.modification -
+
+
+
+net.corda.protocols / AbstractStateReplacementProtocol / Instigator / modification
+
+modification
+
+val modification : T
+
+
+
+
diff --git a/docs/build/html/api/net.corda.protocols/-abstract-state-replacement-protocol/-instigator/original-state.html b/docs/build/html/api/net.corda.protocols/-abstract-state-replacement-protocol/-instigator/original-state.html
new file mode 100644
index 0000000000..16f007e224
--- /dev/null
+++ b/docs/build/html/api/net.corda.protocols/-abstract-state-replacement-protocol/-instigator/original-state.html
@@ -0,0 +1,15 @@
+
+
+AbstractStateReplacementProtocol.Instigator.originalState -
+
+
+
+net.corda.protocols / AbstractStateReplacementProtocol / Instigator / originalState
+
+originalState
+
+val originalState : StateAndRef < S >
+
+
+
+
diff --git a/docs/build/html/api/net.corda.protocols/-abstract-state-replacement-protocol/-instigator/progress-tracker.html b/docs/build/html/api/net.corda.protocols/-abstract-state-replacement-protocol/-instigator/progress-tracker.html
new file mode 100644
index 0000000000..36920f43b3
--- /dev/null
+++ b/docs/build/html/api/net.corda.protocols/-abstract-state-replacement-protocol/-instigator/progress-tracker.html
@@ -0,0 +1,24 @@
+
+
+AbstractStateReplacementProtocol.Instigator.progressTracker -
+
+
+
+net.corda.protocols / AbstractStateReplacementProtocol / Instigator / progressTracker
+
+progressTracker
+
+open val progressTracker : ProgressTracker
+Overrides ProtocolLogic.progressTracker
+Override this to provide a ProgressTracker . If one is provided and stepped, the framework will do something
+helpful with the progress reports. If this protocol is invoked as a sub-protocol of another, then the
+tracker will be made a child of the current step in the parent. If its null, this protocol doesnt track
+progress.
+Note that this has to return a tracker before the protocol is invoked. You cant change your mind half way
+through.
+
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.protocols/-abstract-state-replacement-protocol/-instigator/tracker.html b/docs/build/html/api/net.corda.protocols/-abstract-state-replacement-protocol/-instigator/tracker.html
new file mode 100644
index 0000000000..6446758a8a
--- /dev/null
+++ b/docs/build/html/api/net.corda.protocols/-abstract-state-replacement-protocol/-instigator/tracker.html
@@ -0,0 +1,15 @@
+
+
+AbstractStateReplacementProtocol.Instigator.tracker -
+
+
+
+net.corda.protocols / AbstractStateReplacementProtocol / Instigator / tracker
+
+tracker
+
+fun tracker ( ) : ProgressTracker
+
+
+
+
diff --git a/docs/build/html/api/net.corda.protocols/-abstract-state-replacement-protocol/-proposal/index.html b/docs/build/html/api/net.corda.protocols/-abstract-state-replacement-protocol/-proposal/index.html
new file mode 100644
index 0000000000..b7cca85e7d
--- /dev/null
+++ b/docs/build/html/api/net.corda.protocols/-abstract-state-replacement-protocol/-proposal/index.html
@@ -0,0 +1,48 @@
+
+
+AbstractStateReplacementProtocol.Proposal -
+
+
+
+net.corda.protocols / AbstractStateReplacementProtocol / Proposal
+
+Proposal
+interface Proposal < out T >
+
+
+Properties
+
+Inheritors
+
+
+
diff --git a/docs/build/html/api/net.corda.protocols/-abstract-state-replacement-protocol/-proposal/modification.html b/docs/build/html/api/net.corda.protocols/-abstract-state-replacement-protocol/-proposal/modification.html
new file mode 100644
index 0000000000..96f0efbb35
--- /dev/null
+++ b/docs/build/html/api/net.corda.protocols/-abstract-state-replacement-protocol/-proposal/modification.html
@@ -0,0 +1,15 @@
+
+
+AbstractStateReplacementProtocol.Proposal.modification -
+
+
+
+net.corda.protocols / AbstractStateReplacementProtocol / Proposal / modification
+
+modification
+
+abstract val modification : T
+
+
+
+
diff --git a/docs/build/html/api/net.corda.protocols/-abstract-state-replacement-protocol/-proposal/state-ref.html b/docs/build/html/api/net.corda.protocols/-abstract-state-replacement-protocol/-proposal/state-ref.html
new file mode 100644
index 0000000000..d9d6740a14
--- /dev/null
+++ b/docs/build/html/api/net.corda.protocols/-abstract-state-replacement-protocol/-proposal/state-ref.html
@@ -0,0 +1,15 @@
+
+
+AbstractStateReplacementProtocol.Proposal.stateRef -
+
+
+
+net.corda.protocols / AbstractStateReplacementProtocol / Proposal / stateRef
+
+stateRef
+
+abstract val stateRef : StateRef
+
+
+
+
diff --git a/docs/build/html/api/net.corda.protocols/-abstract-state-replacement-protocol/-proposal/stx.html b/docs/build/html/api/net.corda.protocols/-abstract-state-replacement-protocol/-proposal/stx.html
new file mode 100644
index 0000000000..43aac520be
--- /dev/null
+++ b/docs/build/html/api/net.corda.protocols/-abstract-state-replacement-protocol/-proposal/stx.html
@@ -0,0 +1,15 @@
+
+
+AbstractStateReplacementProtocol.Proposal.stx -
+
+
+
+net.corda.protocols / AbstractStateReplacementProtocol / Proposal / stx
+
+stx
+
+abstract val stx : SignedTransaction
+
+
+
+
diff --git a/docs/build/html/api/net.corda.protocols/-abstract-state-replacement-protocol/-result/error.html b/docs/build/html/api/net.corda.protocols/-abstract-state-replacement-protocol/-result/error.html
new file mode 100644
index 0000000000..c2e5ac3761
--- /dev/null
+++ b/docs/build/html/api/net.corda.protocols/-abstract-state-replacement-protocol/-result/error.html
@@ -0,0 +1,15 @@
+
+
+AbstractStateReplacementProtocol.Result.error -
+
+
+
+net.corda.protocols / AbstractStateReplacementProtocol / Result / error
+
+error
+
+val error : StateReplacementRefused ?
+
+
+
+
diff --git a/docs/build/html/api/net.corda.protocols/-abstract-state-replacement-protocol/-result/index.html b/docs/build/html/api/net.corda.protocols/-abstract-state-replacement-protocol/-result/index.html
new file mode 100644
index 0000000000..3daae8e0aa
--- /dev/null
+++ b/docs/build/html/api/net.corda.protocols/-abstract-state-replacement-protocol/-result/index.html
@@ -0,0 +1,48 @@
+
+
+AbstractStateReplacementProtocol.Result -
+
+
+
+net.corda.protocols / AbstractStateReplacementProtocol / Result
+
+Result
+data class Result
+
+
+Properties
+
+Companion Object Functions
+
+
+
diff --git a/docs/build/html/api/net.corda.protocols/-abstract-state-replacement-protocol/-result/no-error.html b/docs/build/html/api/net.corda.protocols/-abstract-state-replacement-protocol/-result/no-error.html
new file mode 100644
index 0000000000..b84f81005d
--- /dev/null
+++ b/docs/build/html/api/net.corda.protocols/-abstract-state-replacement-protocol/-result/no-error.html
@@ -0,0 +1,15 @@
+
+
+AbstractStateReplacementProtocol.Result.noError -
+
+
+
+net.corda.protocols / AbstractStateReplacementProtocol / Result / noError
+
+noError
+
+fun noError ( sig : WithKey ) : Result
+
+
+
+
diff --git a/docs/build/html/api/net.corda.protocols/-abstract-state-replacement-protocol/-result/sig.html b/docs/build/html/api/net.corda.protocols/-abstract-state-replacement-protocol/-result/sig.html
new file mode 100644
index 0000000000..5365c74a6a
--- /dev/null
+++ b/docs/build/html/api/net.corda.protocols/-abstract-state-replacement-protocol/-result/sig.html
@@ -0,0 +1,15 @@
+
+
+AbstractStateReplacementProtocol.Result.sig -
+
+
+
+net.corda.protocols / AbstractStateReplacementProtocol / Result / sig
+
+sig
+
+val sig : WithKey ?
+
+
+
+
diff --git a/docs/build/html/api/net.corda.protocols/-abstract-state-replacement-protocol/-result/with-error.html b/docs/build/html/api/net.corda.protocols/-abstract-state-replacement-protocol/-result/with-error.html
new file mode 100644
index 0000000000..9e78576368
--- /dev/null
+++ b/docs/build/html/api/net.corda.protocols/-abstract-state-replacement-protocol/-result/with-error.html
@@ -0,0 +1,15 @@
+
+
+AbstractStateReplacementProtocol.Result.withError -
+
+
+
+net.corda.protocols / AbstractStateReplacementProtocol / Result / withError
+
+withError
+
+fun withError ( error : StateReplacementRefused ) : Result
+
+
+
+
diff --git a/docs/build/html/api/net.corda.protocols/-abstract-state-replacement-protocol/index.html b/docs/build/html/api/net.corda.protocols/-abstract-state-replacement-protocol/index.html
new file mode 100644
index 0000000000..dfcfa58629
--- /dev/null
+++ b/docs/build/html/api/net.corda.protocols/-abstract-state-replacement-protocol/index.html
@@ -0,0 +1,79 @@
+
+
+AbstractStateReplacementProtocol -
+
+
+
+net.corda.protocols / AbstractStateReplacementProtocol
+
+AbstractStateReplacementProtocol
+abstract class AbstractStateReplacementProtocol < T >
+Abstract protocol to be used for replacing one state with another, for example when changing the notary of a state.
+Notably this requires a one to one replacement of states, states cannot be split, merged or issued as part of these
+protocols.
+The Instigator assembles the transaction for state replacement and sends out change proposals to all participants
+(Acceptor ) of that state. If participants agree to the proposed change, they each sign the transaction.
+Finally, Instigator sends the transaction containing all signatures back to each participant so they can record it and
+use the new updated state for future transactions.
+
+
+
+
+Types
+
+Constructors
+
+
+
+
+<init>
+
+AbstractStateReplacementProtocol ( )
Abstract protocol to be used for replacing one state with another, for example when changing the notary of a state.
+Notably this requires a one to one replacement of states, states cannot be split, merged or issued as part of these
+protocols.
+
+
+
+
+Inheritors
+
+
+
+
+NotaryChangeProtocol
+
+object NotaryChangeProtocol : AbstractStateReplacementProtocol < Party >
A protocol to be used for changing a states Notary. This is required since all input states to a transaction
+must point to the same notary.
+
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.protocols/-broadcast-transaction-protocol/-init-.html b/docs/build/html/api/net.corda.protocols/-broadcast-transaction-protocol/-init-.html
new file mode 100644
index 0000000000..53e6baa65a
--- /dev/null
+++ b/docs/build/html/api/net.corda.protocols/-broadcast-transaction-protocol/-init-.html
@@ -0,0 +1,27 @@
+
+
+BroadcastTransactionProtocol. -
+
+
+
+net.corda.protocols / BroadcastTransactionProtocol / <init>
+
+<init>
+BroadcastTransactionProtocol ( notarisedTransaction : SignedTransaction , events : Set < ClientToServiceCommand > , participants : Set < Party > )
+Notify all involved parties about a transaction, including storing a copy. Normally this would be called via
+FinalityProtocol .
+Parameters
+
+notarisedTransaction
- transaction which has been notarised (if needed) and is ready to notify nodes about.
+
+
+events
- information on the event(s) which triggered the transaction.
+
+
+participants
- a list of participants involved in the transaction.
+Return
+a list of participants who were successfully notified of the transaction.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.protocols/-broadcast-transaction-protocol/-notify-tx-request/-init-.html b/docs/build/html/api/net.corda.protocols/-broadcast-transaction-protocol/-notify-tx-request/-init-.html
new file mode 100644
index 0000000000..2e2e26e2ec
--- /dev/null
+++ b/docs/build/html/api/net.corda.protocols/-broadcast-transaction-protocol/-notify-tx-request/-init-.html
@@ -0,0 +1,14 @@
+
+
+BroadcastTransactionProtocol.NotifyTxRequest. -
+
+
+
+net.corda.protocols / BroadcastTransactionProtocol / NotifyTxRequest / <init>
+
+<init>
+NotifyTxRequest ( tx : SignedTransaction , events : Set < ClientToServiceCommand > )
+
+
+
+
diff --git a/docs/build/html/api/net.corda.protocols/-broadcast-transaction-protocol/-notify-tx-request/events.html b/docs/build/html/api/net.corda.protocols/-broadcast-transaction-protocol/-notify-tx-request/events.html
new file mode 100644
index 0000000000..b2530f9c38
--- /dev/null
+++ b/docs/build/html/api/net.corda.protocols/-broadcast-transaction-protocol/-notify-tx-request/events.html
@@ -0,0 +1,15 @@
+
+
+BroadcastTransactionProtocol.NotifyTxRequest.events -
+
+
+
+net.corda.protocols / BroadcastTransactionProtocol / NotifyTxRequest / events
+
+events
+
+val events : Set < ClientToServiceCommand >
+
+
+
+
diff --git a/docs/build/html/api/net.corda.protocols/-broadcast-transaction-protocol/-notify-tx-request/index.html b/docs/build/html/api/net.corda.protocols/-broadcast-transaction-protocol/-notify-tx-request/index.html
new file mode 100644
index 0000000000..a68dadf9d7
--- /dev/null
+++ b/docs/build/html/api/net.corda.protocols/-broadcast-transaction-protocol/-notify-tx-request/index.html
@@ -0,0 +1,42 @@
+
+
+BroadcastTransactionProtocol.NotifyTxRequest -
+
+
+
+net.corda.protocols / BroadcastTransactionProtocol / NotifyTxRequest
+
+NotifyTxRequest
+data class NotifyTxRequest
+
+
+Constructors
+
+Properties
+
+
+
diff --git a/docs/build/html/api/net.corda.protocols/-broadcast-transaction-protocol/-notify-tx-request/tx.html b/docs/build/html/api/net.corda.protocols/-broadcast-transaction-protocol/-notify-tx-request/tx.html
new file mode 100644
index 0000000000..602a388606
--- /dev/null
+++ b/docs/build/html/api/net.corda.protocols/-broadcast-transaction-protocol/-notify-tx-request/tx.html
@@ -0,0 +1,15 @@
+
+
+BroadcastTransactionProtocol.NotifyTxRequest.tx -
+
+
+
+net.corda.protocols / BroadcastTransactionProtocol / NotifyTxRequest / tx
+
+tx
+
+val tx : SignedTransaction
+
+
+
+
diff --git a/docs/build/html/api/net.corda.protocols/-broadcast-transaction-protocol/call.html b/docs/build/html/api/net.corda.protocols/-broadcast-transaction-protocol/call.html
new file mode 100644
index 0000000000..d5ccbb6a17
--- /dev/null
+++ b/docs/build/html/api/net.corda.protocols/-broadcast-transaction-protocol/call.html
@@ -0,0 +1,17 @@
+
+
+BroadcastTransactionProtocol.call -
+
+
+
+net.corda.protocols / BroadcastTransactionProtocol / call
+
+call
+
+fun call ( ) : Unit
+Overrides ProtocolLogic.call
+This is where you fill out your business logic.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.protocols/-broadcast-transaction-protocol/events.html b/docs/build/html/api/net.corda.protocols/-broadcast-transaction-protocol/events.html
new file mode 100644
index 0000000000..5ca04213c7
--- /dev/null
+++ b/docs/build/html/api/net.corda.protocols/-broadcast-transaction-protocol/events.html
@@ -0,0 +1,15 @@
+
+
+BroadcastTransactionProtocol.events -
+
+
+
+net.corda.protocols / BroadcastTransactionProtocol / events
+
+events
+
+val events : Set < ClientToServiceCommand >
+
+
+
+
diff --git a/docs/build/html/api/net.corda.protocols/-broadcast-transaction-protocol/index.html b/docs/build/html/api/net.corda.protocols/-broadcast-transaction-protocol/index.html
new file mode 100644
index 0000000000..19c829faf1
--- /dev/null
+++ b/docs/build/html/api/net.corda.protocols/-broadcast-transaction-protocol/index.html
@@ -0,0 +1,172 @@
+
+
+BroadcastTransactionProtocol -
+
+
+
+net.corda.protocols / BroadcastTransactionProtocol
+
+BroadcastTransactionProtocol
+class BroadcastTransactionProtocol : ProtocolLogic < Unit >
+Notify all involved parties about a transaction, including storing a copy. Normally this would be called via
+FinalityProtocol .
+Parameters
+
+notarisedTransaction
- transaction which has been notarised (if needed) and is ready to notify nodes about.
+
+
+events
- information on the event(s) which triggered the transaction.
+
+
+participants
- a list of participants involved in the transaction.
+Return
+a list of participants who were successfully notified of the transaction.
+
+
+Types
+
+Constructors
+
+Properties
+
+Inherited Properties
+
+
+
+
+logger
+
+val logger : <ERROR CLASS>
This is where you should log things to.
+
+
+
+
+progressTracker
+
+open val progressTracker : ProgressTracker ?
Override this to provide a ProgressTracker . If one is provided and stepped, the framework will do something
+helpful with the progress reports. If this protocol is invoked as a sub-protocol of another, then the
+tracker will be made a child of the current step in the parent. If its null, this protocol doesnt track
+progress.
+
+
+
+
+psm
+
+lateinit var psm : ProtocolStateMachine < * >
Reference to the Fiber instance that is the top level controller for the entire flow.
+
+
+
+
+serviceHub
+
+val serviceHub : ServiceHub
Provides access to big, heavy classes that may be reconstructed from time to time, e.g. across restarts. It is
+only available once the protocol has started, which means it cannnot be accessed in the constructor. Either
+access this lazily or from inside call .
+
+
+
+
+Functions
+
+
+
+
+call
+
+fun call ( ) : Unit
This is where you fill out your business logic.
+
+
+
+
+Inherited Functions
+
+
+
diff --git a/docs/build/html/api/net.corda.protocols/-broadcast-transaction-protocol/notarised-transaction.html b/docs/build/html/api/net.corda.protocols/-broadcast-transaction-protocol/notarised-transaction.html
new file mode 100644
index 0000000000..59eed0f709
--- /dev/null
+++ b/docs/build/html/api/net.corda.protocols/-broadcast-transaction-protocol/notarised-transaction.html
@@ -0,0 +1,15 @@
+
+
+BroadcastTransactionProtocol.notarisedTransaction -
+
+
+
+net.corda.protocols / BroadcastTransactionProtocol / notarisedTransaction
+
+notarisedTransaction
+
+val notarisedTransaction : SignedTransaction
+
+
+
+
diff --git a/docs/build/html/api/net.corda.protocols/-broadcast-transaction-protocol/participants.html b/docs/build/html/api/net.corda.protocols/-broadcast-transaction-protocol/participants.html
new file mode 100644
index 0000000000..7221b3469e
--- /dev/null
+++ b/docs/build/html/api/net.corda.protocols/-broadcast-transaction-protocol/participants.html
@@ -0,0 +1,15 @@
+
+
+BroadcastTransactionProtocol.participants -
+
+
+
+net.corda.protocols / BroadcastTransactionProtocol / participants
+
+participants
+
+val participants : Set < Party >
+
+
+
+
diff --git a/docs/build/html/api/net.corda.protocols/-fetch-attachments-protocol/-init-.html b/docs/build/html/api/net.corda.protocols/-fetch-attachments-protocol/-init-.html
new file mode 100644
index 0000000000..2efe154d65
--- /dev/null
+++ b/docs/build/html/api/net.corda.protocols/-fetch-attachments-protocol/-init-.html
@@ -0,0 +1,16 @@
+
+
+FetchAttachmentsProtocol. -
+
+
+
+net.corda.protocols / FetchAttachmentsProtocol / <init>
+
+<init>
+FetchAttachmentsProtocol ( requests : Set < SecureHash > , otherSide : Party )
+Given a set of hashes either loads from from local storage or requests them from the other peer. Downloaded
+attachments are saved to local storage automatically.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.protocols/-fetch-attachments-protocol/convert.html b/docs/build/html/api/net.corda.protocols/-fetch-attachments-protocol/convert.html
new file mode 100644
index 0000000000..7e0894dd2b
--- /dev/null
+++ b/docs/build/html/api/net.corda.protocols/-fetch-attachments-protocol/convert.html
@@ -0,0 +1,15 @@
+
+
+FetchAttachmentsProtocol.convert -
+
+
+
+net.corda.protocols / FetchAttachmentsProtocol / convert
+
+convert
+
+protected fun convert ( wire : ByteArray ) : Attachment
+
+
+
+
diff --git a/docs/build/html/api/net.corda.protocols/-fetch-attachments-protocol/index.html b/docs/build/html/api/net.corda.protocols/-fetch-attachments-protocol/index.html
new file mode 100644
index 0000000000..967b7368e4
--- /dev/null
+++ b/docs/build/html/api/net.corda.protocols/-fetch-attachments-protocol/index.html
@@ -0,0 +1,81 @@
+
+
+FetchAttachmentsProtocol -
+
+
+
+net.corda.protocols / FetchAttachmentsProtocol
+
+FetchAttachmentsProtocol
+class FetchAttachmentsProtocol : FetchDataProtocol < Attachment , ByteArray >
+Given a set of hashes either loads from from local storage or requests them from the other peer. Downloaded
+attachments are saved to local storage automatically.
+
+
+Constructors
+
+
+
+
+<init>
+
+FetchAttachmentsProtocol ( requests : Set < SecureHash > , otherSide : Party )
Given a set of hashes either loads from from local storage or requests them from the other peer. Downloaded
+attachments are saved to local storage automatically.
+
+
+
+
+Inherited Properties
+
+Functions
+
+Inherited Functions
+
+
+
+
+call
+
+open fun call ( ) : Result < T >
This is where you fill out your business logic.
+
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.protocols/-fetch-attachments-protocol/load.html b/docs/build/html/api/net.corda.protocols/-fetch-attachments-protocol/load.html
new file mode 100644
index 0000000000..26caad342d
--- /dev/null
+++ b/docs/build/html/api/net.corda.protocols/-fetch-attachments-protocol/load.html
@@ -0,0 +1,16 @@
+
+
+FetchAttachmentsProtocol.load -
+
+
+
+net.corda.protocols / FetchAttachmentsProtocol / load
+
+load
+
+protected fun load ( txid : SecureHash ) : Attachment ?
+Overrides FetchDataProtocol.load
+
+
+
+
diff --git a/docs/build/html/api/net.corda.protocols/-fetch-attachments-protocol/maybe-write-to-disk.html b/docs/build/html/api/net.corda.protocols/-fetch-attachments-protocol/maybe-write-to-disk.html
new file mode 100644
index 0000000000..f4167a5b31
--- /dev/null
+++ b/docs/build/html/api/net.corda.protocols/-fetch-attachments-protocol/maybe-write-to-disk.html
@@ -0,0 +1,15 @@
+
+
+FetchAttachmentsProtocol.maybeWriteToDisk -
+
+
+
+net.corda.protocols / FetchAttachmentsProtocol / maybeWriteToDisk
+
+maybeWriteToDisk
+
+protected fun maybeWriteToDisk ( downloaded : List < Attachment > ) : Unit
+
+
+
+
diff --git a/docs/build/html/api/net.corda.protocols/-fetch-data-protocol/-bad-answer/-init-.html b/docs/build/html/api/net.corda.protocols/-fetch-data-protocol/-bad-answer/-init-.html
new file mode 100644
index 0000000000..2938de55b9
--- /dev/null
+++ b/docs/build/html/api/net.corda.protocols/-fetch-data-protocol/-bad-answer/-init-.html
@@ -0,0 +1,14 @@
+
+
+FetchDataProtocol.BadAnswer. -
+
+
+
+net.corda.protocols / FetchDataProtocol / BadAnswer / <init>
+
+<init>
+BadAnswer ( )
+
+
+
+
diff --git a/docs/build/html/api/net.corda.protocols/-fetch-data-protocol/-bad-answer/index.html b/docs/build/html/api/net.corda.protocols/-fetch-data-protocol/-bad-answer/index.html
new file mode 100644
index 0000000000..31041c0efd
--- /dev/null
+++ b/docs/build/html/api/net.corda.protocols/-fetch-data-protocol/-bad-answer/index.html
@@ -0,0 +1,42 @@
+
+
+FetchDataProtocol.BadAnswer -
+
+
+
+net.corda.protocols / FetchDataProtocol / BadAnswer
+
+BadAnswer
+open class BadAnswer : Exception
+
+
+Constructors
+
+
+
+
+<init>
+
+BadAnswer ( )
+
+
+
+Inheritors
+
+
+
diff --git a/docs/build/html/api/net.corda.protocols/-fetch-data-protocol/-downloaded-vs-requested-data-mismatch/-init-.html b/docs/build/html/api/net.corda.protocols/-fetch-data-protocol/-downloaded-vs-requested-data-mismatch/-init-.html
new file mode 100644
index 0000000000..1578868922
--- /dev/null
+++ b/docs/build/html/api/net.corda.protocols/-fetch-data-protocol/-downloaded-vs-requested-data-mismatch/-init-.html
@@ -0,0 +1,14 @@
+
+
+FetchDataProtocol.DownloadedVsRequestedDataMismatch. -
+
+
+
+net.corda.protocols / FetchDataProtocol / DownloadedVsRequestedDataMismatch / <init>
+
+<init>
+DownloadedVsRequestedDataMismatch ( requested : SecureHash , got : SecureHash )
+
+
+
+
diff --git a/docs/build/html/api/net.corda.protocols/-fetch-data-protocol/-downloaded-vs-requested-data-mismatch/got.html b/docs/build/html/api/net.corda.protocols/-fetch-data-protocol/-downloaded-vs-requested-data-mismatch/got.html
new file mode 100644
index 0000000000..c16550ad9d
--- /dev/null
+++ b/docs/build/html/api/net.corda.protocols/-fetch-data-protocol/-downloaded-vs-requested-data-mismatch/got.html
@@ -0,0 +1,15 @@
+
+
+FetchDataProtocol.DownloadedVsRequestedDataMismatch.got -
+
+
+
+net.corda.protocols / FetchDataProtocol / DownloadedVsRequestedDataMismatch / got
+
+got
+
+val got : SecureHash
+
+
+
+
diff --git a/docs/build/html/api/net.corda.protocols/-fetch-data-protocol/-downloaded-vs-requested-data-mismatch/index.html b/docs/build/html/api/net.corda.protocols/-fetch-data-protocol/-downloaded-vs-requested-data-mismatch/index.html
new file mode 100644
index 0000000000..672072665c
--- /dev/null
+++ b/docs/build/html/api/net.corda.protocols/-fetch-data-protocol/-downloaded-vs-requested-data-mismatch/index.html
@@ -0,0 +1,42 @@
+
+
+FetchDataProtocol.DownloadedVsRequestedDataMismatch -
+
+
+
+net.corda.protocols / FetchDataProtocol / DownloadedVsRequestedDataMismatch
+
+DownloadedVsRequestedDataMismatch
+class DownloadedVsRequestedDataMismatch : BadAnswer
+
+
+Constructors
+
+Properties
+
+
+
diff --git a/docs/build/html/api/net.corda.protocols/-fetch-data-protocol/-downloaded-vs-requested-data-mismatch/requested.html b/docs/build/html/api/net.corda.protocols/-fetch-data-protocol/-downloaded-vs-requested-data-mismatch/requested.html
new file mode 100644
index 0000000000..fa6819ed1f
--- /dev/null
+++ b/docs/build/html/api/net.corda.protocols/-fetch-data-protocol/-downloaded-vs-requested-data-mismatch/requested.html
@@ -0,0 +1,15 @@
+
+
+FetchDataProtocol.DownloadedVsRequestedDataMismatch.requested -
+
+
+
+net.corda.protocols / FetchDataProtocol / DownloadedVsRequestedDataMismatch / requested
+
+requested
+
+val requested : SecureHash
+
+
+
+
diff --git a/docs/build/html/api/net.corda.protocols/-fetch-data-protocol/-hash-not-found/-init-.html b/docs/build/html/api/net.corda.protocols/-fetch-data-protocol/-hash-not-found/-init-.html
new file mode 100644
index 0000000000..f5d5afa03e
--- /dev/null
+++ b/docs/build/html/api/net.corda.protocols/-fetch-data-protocol/-hash-not-found/-init-.html
@@ -0,0 +1,14 @@
+
+
+FetchDataProtocol.HashNotFound. -
+
+
+
+net.corda.protocols / FetchDataProtocol / HashNotFound / <init>
+
+<init>
+HashNotFound ( requested : SecureHash )
+
+
+
+
diff --git a/docs/build/html/api/net.corda.protocols/-fetch-data-protocol/-hash-not-found/index.html b/docs/build/html/api/net.corda.protocols/-fetch-data-protocol/-hash-not-found/index.html
new file mode 100644
index 0000000000..adb7b7c3d4
--- /dev/null
+++ b/docs/build/html/api/net.corda.protocols/-fetch-data-protocol/-hash-not-found/index.html
@@ -0,0 +1,36 @@
+
+
+FetchDataProtocol.HashNotFound -
+
+
+
+net.corda.protocols / FetchDataProtocol / HashNotFound
+
+HashNotFound
+class HashNotFound : BadAnswer
+
+
+Constructors
+
+Properties
+
+
+
diff --git a/docs/build/html/api/net.corda.protocols/-fetch-data-protocol/-hash-not-found/requested.html b/docs/build/html/api/net.corda.protocols/-fetch-data-protocol/-hash-not-found/requested.html
new file mode 100644
index 0000000000..1d76f28a6f
--- /dev/null
+++ b/docs/build/html/api/net.corda.protocols/-fetch-data-protocol/-hash-not-found/requested.html
@@ -0,0 +1,15 @@
+
+
+FetchDataProtocol.HashNotFound.requested -
+
+
+
+net.corda.protocols / FetchDataProtocol / HashNotFound / requested
+
+requested
+
+val requested : SecureHash
+
+
+
+
diff --git a/docs/build/html/api/net.corda.protocols/-fetch-data-protocol/-init-.html b/docs/build/html/api/net.corda.protocols/-fetch-data-protocol/-init-.html
new file mode 100644
index 0000000000..28ab0a61cd
--- /dev/null
+++ b/docs/build/html/api/net.corda.protocols/-fetch-data-protocol/-init-.html
@@ -0,0 +1,30 @@
+
+
+FetchDataProtocol. -
+
+
+
+net.corda.protocols / FetchDataProtocol / <init>
+
+<init>
+FetchDataProtocol ( requests : Set < SecureHash > , otherSide : Party )
+An abstract protocol for fetching typed data from a remote peer.
+Given a set of hashes (IDs), either loads them from local disk or asks the remote peer to provide them.
+A malicious response in which the data provided by the remote peer does not hash to the requested hash results in
+DownloadedVsRequestedDataMismatch being thrown. If the remote peer doesnt have an entry, it results in a
+HashNotFound exception being thrown.
+By default this class does not insert data into any local database, if you want to do that after missing items were
+fetched then override maybeWriteToDisk . You must override load . If the wire type is not the same as the
+ultimate type, you must also override convert .
+
+
+Parameters
+
+T
- The ultimate type of the data being fetched.
+
+
+W
- The wire type of the data being fetched, for when it isnt the same as the ultimate type.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.protocols/-fetch-data-protocol/-request/-init-.html b/docs/build/html/api/net.corda.protocols/-fetch-data-protocol/-request/-init-.html
new file mode 100644
index 0000000000..3eb8647b5c
--- /dev/null
+++ b/docs/build/html/api/net.corda.protocols/-fetch-data-protocol/-request/-init-.html
@@ -0,0 +1,14 @@
+
+
+FetchDataProtocol.Request. -
+
+
+
+net.corda.protocols / FetchDataProtocol / Request / <init>
+
+<init>
+Request ( hashes : List < SecureHash > )
+
+
+
+
diff --git a/docs/build/html/api/net.corda.protocols/-fetch-data-protocol/-request/hashes.html b/docs/build/html/api/net.corda.protocols/-fetch-data-protocol/-request/hashes.html
new file mode 100644
index 0000000000..a32905ca8f
--- /dev/null
+++ b/docs/build/html/api/net.corda.protocols/-fetch-data-protocol/-request/hashes.html
@@ -0,0 +1,15 @@
+
+
+FetchDataProtocol.Request.hashes -
+
+
+
+net.corda.protocols / FetchDataProtocol / Request / hashes
+
+hashes
+
+val hashes : List < SecureHash >
+
+
+
+
diff --git a/docs/build/html/api/net.corda.protocols/-fetch-data-protocol/-request/index.html b/docs/build/html/api/net.corda.protocols/-fetch-data-protocol/-request/index.html
new file mode 100644
index 0000000000..5005ab8046
--- /dev/null
+++ b/docs/build/html/api/net.corda.protocols/-fetch-data-protocol/-request/index.html
@@ -0,0 +1,36 @@
+
+
+FetchDataProtocol.Request -
+
+
+
+net.corda.protocols / FetchDataProtocol / Request
+
+Request
+data class Request
+
+
+Constructors
+
+Properties
+
+
+
diff --git a/docs/build/html/api/net.corda.protocols/-fetch-data-protocol/-result/-init-.html b/docs/build/html/api/net.corda.protocols/-fetch-data-protocol/-result/-init-.html
new file mode 100644
index 0000000000..26a02ab675
--- /dev/null
+++ b/docs/build/html/api/net.corda.protocols/-fetch-data-protocol/-result/-init-.html
@@ -0,0 +1,14 @@
+
+
+FetchDataProtocol.Result. -
+
+
+
+net.corda.protocols / FetchDataProtocol / Result / <init>
+
+<init>
+Result ( fromDisk : List < T > , downloaded : List < T > )
+
+
+
+
diff --git a/docs/build/html/api/net.corda.protocols/-fetch-data-protocol/-result/downloaded.html b/docs/build/html/api/net.corda.protocols/-fetch-data-protocol/-result/downloaded.html
new file mode 100644
index 0000000000..3ebe641d8a
--- /dev/null
+++ b/docs/build/html/api/net.corda.protocols/-fetch-data-protocol/-result/downloaded.html
@@ -0,0 +1,15 @@
+
+
+FetchDataProtocol.Result.downloaded -
+
+
+
+net.corda.protocols / FetchDataProtocol / Result / downloaded
+
+downloaded
+
+val downloaded : List < T >
+
+
+
+
diff --git a/docs/build/html/api/net.corda.protocols/-fetch-data-protocol/-result/from-disk.html b/docs/build/html/api/net.corda.protocols/-fetch-data-protocol/-result/from-disk.html
new file mode 100644
index 0000000000..27b818a12f
--- /dev/null
+++ b/docs/build/html/api/net.corda.protocols/-fetch-data-protocol/-result/from-disk.html
@@ -0,0 +1,15 @@
+
+
+FetchDataProtocol.Result.fromDisk -
+
+
+
+net.corda.protocols / FetchDataProtocol / Result / fromDisk
+
+fromDisk
+
+val fromDisk : List < T >
+
+
+
+
diff --git a/docs/build/html/api/net.corda.protocols/-fetch-data-protocol/-result/index.html b/docs/build/html/api/net.corda.protocols/-fetch-data-protocol/-result/index.html
new file mode 100644
index 0000000000..0c20da8a34
--- /dev/null
+++ b/docs/build/html/api/net.corda.protocols/-fetch-data-protocol/-result/index.html
@@ -0,0 +1,42 @@
+
+
+FetchDataProtocol.Result -
+
+
+
+net.corda.protocols / FetchDataProtocol / Result
+
+Result
+data class Result < out T : NamedByHash >
+
+
+Constructors
+
+
+
+
+<init>
+
+Result ( fromDisk : List < T > , downloaded : List < T > )
+
+
+
+Properties
+
+
+
+
+downloaded
+
+val downloaded : List < T >
+
+
+
+fromDisk
+
+val fromDisk : List < T >
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.protocols/-fetch-data-protocol/call.html b/docs/build/html/api/net.corda.protocols/-fetch-data-protocol/call.html
new file mode 100644
index 0000000000..a4725e5100
--- /dev/null
+++ b/docs/build/html/api/net.corda.protocols/-fetch-data-protocol/call.html
@@ -0,0 +1,17 @@
+
+
+FetchDataProtocol.call -
+
+
+
+net.corda.protocols / FetchDataProtocol / call
+
+call
+
+open fun call ( ) : Result < T >
+Overrides ProtocolLogic.call
+This is where you fill out your business logic.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.protocols/-fetch-data-protocol/convert.html b/docs/build/html/api/net.corda.protocols/-fetch-data-protocol/convert.html
new file mode 100644
index 0000000000..788670d3a6
--- /dev/null
+++ b/docs/build/html/api/net.corda.protocols/-fetch-data-protocol/convert.html
@@ -0,0 +1,15 @@
+
+
+FetchDataProtocol.convert -
+
+
+
+net.corda.protocols / FetchDataProtocol / convert
+
+convert
+
+protected open fun convert ( wire : W ) : T
+
+
+
+
diff --git a/docs/build/html/api/net.corda.protocols/-fetch-data-protocol/index.html b/docs/build/html/api/net.corda.protocols/-fetch-data-protocol/index.html
new file mode 100644
index 0000000000..84afd0714e
--- /dev/null
+++ b/docs/build/html/api/net.corda.protocols/-fetch-data-protocol/index.html
@@ -0,0 +1,235 @@
+
+
+FetchDataProtocol -
+
+
+
+net.corda.protocols / FetchDataProtocol
+
+FetchDataProtocol
+abstract class FetchDataProtocol < T : NamedByHash , in W : Any > : ProtocolLogic < Result < T > >
+An abstract protocol for fetching typed data from a remote peer.
+Given a set of hashes (IDs), either loads them from local disk or asks the remote peer to provide them.
+A malicious response in which the data provided by the remote peer does not hash to the requested hash results in
+DownloadedVsRequestedDataMismatch being thrown. If the remote peer doesnt have an entry, it results in a
+HashNotFound exception being thrown.
+By default this class does not insert data into any local database, if you want to do that after missing items were
+fetched then override maybeWriteToDisk . You must override load . If the wire type is not the same as the
+ultimate type, you must also override convert .
+
+
+Parameters
+
+T
- The ultimate type of the data being fetched.
+
+
+W
- The wire type of the data being fetched, for when it isnt the same as the ultimate type.
+
+
+Types
+
+Exceptions
+
+Constructors
+
+
+
+
+<init>
+
+FetchDataProtocol ( requests : Set < SecureHash > , otherSide : Party )
An abstract protocol for fetching typed data from a remote peer.
+
+
+
+
+Properties
+
+Inherited Properties
+
+
+
+
+logger
+
+val logger : <ERROR CLASS>
This is where you should log things to.
+
+
+
+
+progressTracker
+
+open val progressTracker : ProgressTracker ?
Override this to provide a ProgressTracker . If one is provided and stepped, the framework will do something
+helpful with the progress reports. If this protocol is invoked as a sub-protocol of another, then the
+tracker will be made a child of the current step in the parent. If its null, this protocol doesnt track
+progress.
+
+
+
+
+psm
+
+lateinit var psm : ProtocolStateMachine < * >
Reference to the Fiber instance that is the top level controller for the entire flow.
+
+
+
+
+serviceHub
+
+val serviceHub : ServiceHub
Provides access to big, heavy classes that may be reconstructed from time to time, e.g. across restarts. It is
+only available once the protocol has started, which means it cannnot be accessed in the constructor. Either
+access this lazily or from inside call .
+
+
+
+
+Functions
+
+
+
+
+call
+
+open fun call ( ) : Result < T >
This is where you fill out your business logic.
+
+
+
+
+convert
+
+open fun convert ( wire : W ) : T
+
+
+
+load
+
+abstract fun load ( txid : SecureHash ) : T ?
+
+
+
+maybeWriteToDisk
+
+open fun maybeWriteToDisk ( downloaded : List < T > ) : Unit
+
+
+
+Inherited Functions
+
+Inheritors
+
+
+
+
+FetchAttachmentsProtocol
+
+class FetchAttachmentsProtocol : FetchDataProtocol < Attachment , ByteArray >
Given a set of hashes either loads from from local storage or requests them from the other peer. Downloaded
+attachments are saved to local storage automatically.
+
+
+
+
+FetchTransactionsProtocol
+
+class FetchTransactionsProtocol : FetchDataProtocol < SignedTransaction , SignedTransaction >
Given a set of tx hashes (IDs), either loads them from local disk or asks the remote peer to provide them.
+
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.protocols/-fetch-data-protocol/load.html b/docs/build/html/api/net.corda.protocols/-fetch-data-protocol/load.html
new file mode 100644
index 0000000000..6a489c7c54
--- /dev/null
+++ b/docs/build/html/api/net.corda.protocols/-fetch-data-protocol/load.html
@@ -0,0 +1,15 @@
+
+
+FetchDataProtocol.load -
+
+
+
+net.corda.protocols / FetchDataProtocol / load
+
+load
+
+protected abstract fun load ( txid : SecureHash ) : T ?
+
+
+
+
diff --git a/docs/build/html/api/net.corda.protocols/-fetch-data-protocol/maybe-write-to-disk.html b/docs/build/html/api/net.corda.protocols/-fetch-data-protocol/maybe-write-to-disk.html
new file mode 100644
index 0000000000..b85d303bb0
--- /dev/null
+++ b/docs/build/html/api/net.corda.protocols/-fetch-data-protocol/maybe-write-to-disk.html
@@ -0,0 +1,15 @@
+
+
+FetchDataProtocol.maybeWriteToDisk -
+
+
+
+net.corda.protocols / FetchDataProtocol / maybeWriteToDisk
+
+maybeWriteToDisk
+
+protected open fun maybeWriteToDisk ( downloaded : List < T > ) : Unit
+
+
+
+
diff --git a/docs/build/html/api/net.corda.protocols/-fetch-data-protocol/other-side.html b/docs/build/html/api/net.corda.protocols/-fetch-data-protocol/other-side.html
new file mode 100644
index 0000000000..f52e818265
--- /dev/null
+++ b/docs/build/html/api/net.corda.protocols/-fetch-data-protocol/other-side.html
@@ -0,0 +1,15 @@
+
+
+FetchDataProtocol.otherSide -
+
+
+
+net.corda.protocols / FetchDataProtocol / otherSide
+
+otherSide
+
+protected val otherSide : Party
+
+
+
+
diff --git a/docs/build/html/api/net.corda.protocols/-fetch-data-protocol/requests.html b/docs/build/html/api/net.corda.protocols/-fetch-data-protocol/requests.html
new file mode 100644
index 0000000000..7a0258eefc
--- /dev/null
+++ b/docs/build/html/api/net.corda.protocols/-fetch-data-protocol/requests.html
@@ -0,0 +1,15 @@
+
+
+FetchDataProtocol.requests -
+
+
+
+net.corda.protocols / FetchDataProtocol / requests
+
+requests
+
+protected val requests : Set < SecureHash >
+
+
+
+
diff --git a/docs/build/html/api/net.corda.protocols/-fetch-transactions-protocol/-init-.html b/docs/build/html/api/net.corda.protocols/-fetch-transactions-protocol/-init-.html
new file mode 100644
index 0000000000..5649d6bbed
--- /dev/null
+++ b/docs/build/html/api/net.corda.protocols/-fetch-transactions-protocol/-init-.html
@@ -0,0 +1,21 @@
+
+
+FetchTransactionsProtocol. -
+
+
+
+net.corda.protocols / FetchTransactionsProtocol / <init>
+
+<init>
+FetchTransactionsProtocol ( requests : Set < SecureHash > , otherSide : Party )
+Given a set of tx hashes (IDs), either loads them from local disk or asks the remote peer to provide them.
+A malicious response in which the data provided by the remote peer does not hash to the requested hash results in
+FetchDataProtocol.DownloadedVsRequestedDataMismatch being thrown. If the remote peer doesnt have an entry, it
+results in a FetchDataProtocol.HashNotFound exception. Note that returned transactions are not inserted into
+the database, because its up to the caller to actually verify the transactions are valid.
+
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.protocols/-fetch-transactions-protocol/index.html b/docs/build/html/api/net.corda.protocols/-fetch-transactions-protocol/index.html
new file mode 100644
index 0000000000..65714259a3
--- /dev/null
+++ b/docs/build/html/api/net.corda.protocols/-fetch-transactions-protocol/index.html
@@ -0,0 +1,73 @@
+
+
+FetchTransactionsProtocol -
+
+
+
+net.corda.protocols / FetchTransactionsProtocol
+
+FetchTransactionsProtocol
+class FetchTransactionsProtocol : FetchDataProtocol < SignedTransaction , SignedTransaction >
+Given a set of tx hashes (IDs), either loads them from local disk or asks the remote peer to provide them.
+A malicious response in which the data provided by the remote peer does not hash to the requested hash results in
+FetchDataProtocol.DownloadedVsRequestedDataMismatch being thrown. If the remote peer doesnt have an entry, it
+results in a FetchDataProtocol.HashNotFound exception. Note that returned transactions are not inserted into
+the database, because its up to the caller to actually verify the transactions are valid.
+
+
+
+
+Constructors
+
+
+
+
+<init>
+
+FetchTransactionsProtocol ( requests : Set < SecureHash > , otherSide : Party )
Given a set of tx hashes (IDs), either loads them from local disk or asks the remote peer to provide them.
+
+
+
+
+Inherited Properties
+
+Functions
+
+Inherited Functions
+
+
+
+
+call
+
+open fun call ( ) : Result < T >
This is where you fill out your business logic.
+
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.protocols/-fetch-transactions-protocol/load.html b/docs/build/html/api/net.corda.protocols/-fetch-transactions-protocol/load.html
new file mode 100644
index 0000000000..c5e6431c60
--- /dev/null
+++ b/docs/build/html/api/net.corda.protocols/-fetch-transactions-protocol/load.html
@@ -0,0 +1,16 @@
+
+
+FetchTransactionsProtocol.load -
+
+
+
+net.corda.protocols / FetchTransactionsProtocol / load
+
+load
+
+protected fun load ( txid : SecureHash ) : SignedTransaction ?
+Overrides FetchDataProtocol.load
+
+
+
+
diff --git a/docs/build/html/api/net.corda.protocols/-finality-protocol/-b-r-o-a-d-c-a-s-t-i-n-g.html b/docs/build/html/api/net.corda.protocols/-finality-protocol/-b-r-o-a-d-c-a-s-t-i-n-g.html
new file mode 100644
index 0000000000..c8f56fd329
--- /dev/null
+++ b/docs/build/html/api/net.corda.protocols/-finality-protocol/-b-r-o-a-d-c-a-s-t-i-n-g.html
@@ -0,0 +1,42 @@
+
+
+FinalityProtocol.BROADCASTING -
+
+
+
+net.corda.protocols / FinalityProtocol / BROADCASTING
+
+BROADCASTING
+object BROADCASTING : Step
+
+
+Inherited Properties
+
+
+
+
+changes
+
+open val changes : <ERROR CLASS> < Change >
+
+
+
+label
+
+open val label : String
+
+
+
+Inherited Functions
+
+
+
diff --git a/docs/build/html/api/net.corda.protocols/-finality-protocol/-init-.html b/docs/build/html/api/net.corda.protocols/-finality-protocol/-init-.html
new file mode 100644
index 0000000000..397515a7a9
--- /dev/null
+++ b/docs/build/html/api/net.corda.protocols/-finality-protocol/-init-.html
@@ -0,0 +1,26 @@
+
+
+FinalityProtocol. -
+
+
+
+net.corda.protocols / FinalityProtocol / <init>
+
+<init>
+FinalityProtocol ( transaction : SignedTransaction , events : Set < ClientToServiceCommand > , participants : Set < Party > , progressTracker : ProgressTracker = tracker())
+Finalise a transaction by notarising it, then recording it locally, and then sending it to all involved parties.
+Parameters
+
+transaction
- to commit.
+
+
+events
- information on the event(s) which triggered the transaction.
+
+
+participants
- a list of participants involved in the transaction.
+Return
+a list of participants who were successfully notified of the transaction.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.protocols/-finality-protocol/-n-o-t-a-r-i-s-i-n-g.html b/docs/build/html/api/net.corda.protocols/-finality-protocol/-n-o-t-a-r-i-s-i-n-g.html
new file mode 100644
index 0000000000..c2cc3f813c
--- /dev/null
+++ b/docs/build/html/api/net.corda.protocols/-finality-protocol/-n-o-t-a-r-i-s-i-n-g.html
@@ -0,0 +1,42 @@
+
+
+FinalityProtocol.NOTARISING -
+
+
+
+net.corda.protocols / FinalityProtocol / NOTARISING
+
+NOTARISING
+object NOTARISING : Step
+
+
+Inherited Properties
+
+
+
+
+changes
+
+open val changes : <ERROR CLASS> < Change >
+
+
+
+label
+
+open val label : String
+
+
+
+Inherited Functions
+
+
+
diff --git a/docs/build/html/api/net.corda.protocols/-finality-protocol/call.html b/docs/build/html/api/net.corda.protocols/-finality-protocol/call.html
new file mode 100644
index 0000000000..3dedef4edf
--- /dev/null
+++ b/docs/build/html/api/net.corda.protocols/-finality-protocol/call.html
@@ -0,0 +1,17 @@
+
+
+FinalityProtocol.call -
+
+
+
+net.corda.protocols / FinalityProtocol / call
+
+call
+
+fun call ( ) : Unit
+Overrides ProtocolLogic.call
+This is where you fill out your business logic.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.protocols/-finality-protocol/events.html b/docs/build/html/api/net.corda.protocols/-finality-protocol/events.html
new file mode 100644
index 0000000000..f5fe09d5d4
--- /dev/null
+++ b/docs/build/html/api/net.corda.protocols/-finality-protocol/events.html
@@ -0,0 +1,15 @@
+
+
+FinalityProtocol.events -
+
+
+
+net.corda.protocols / FinalityProtocol / events
+
+events
+
+val events : Set < ClientToServiceCommand >
+
+
+
+
diff --git a/docs/build/html/api/net.corda.protocols/-finality-protocol/index.html b/docs/build/html/api/net.corda.protocols/-finality-protocol/index.html
new file mode 100644
index 0000000000..17c4803cb4
--- /dev/null
+++ b/docs/build/html/api/net.corda.protocols/-finality-protocol/index.html
@@ -0,0 +1,187 @@
+
+
+FinalityProtocol -
+
+
+
+net.corda.protocols / FinalityProtocol
+
+FinalityProtocol
+class FinalityProtocol : ProtocolLogic < Unit >
+Finalise a transaction by notarising it, then recording it locally, and then sending it to all involved parties.
+Parameters
+
+transaction
- to commit.
+
+
+events
- information on the event(s) which triggered the transaction.
+
+
+participants
- a list of participants involved in the transaction.
+Return
+a list of participants who were successfully notified of the transaction.
+
+
+Types
+
+Constructors
+
+Properties
+
+Inherited Properties
+
+
+
+
+logger
+
+val logger : <ERROR CLASS>
This is where you should log things to.
+
+
+
+
+psm
+
+lateinit var psm : ProtocolStateMachine < * >
Reference to the Fiber instance that is the top level controller for the entire flow.
+
+
+
+
+serviceHub
+
+val serviceHub : ServiceHub
Provides access to big, heavy classes that may be reconstructed from time to time, e.g. across restarts. It is
+only available once the protocol has started, which means it cannnot be accessed in the constructor. Either
+access this lazily or from inside call .
+
+
+
+
+Functions
+
+
+
+
+call
+
+fun call ( ) : Unit
This is where you fill out your business logic.
+
+
+
+
+Inherited Functions
+
+Companion Object Functions
+
+
+
diff --git a/docs/build/html/api/net.corda.protocols/-finality-protocol/participants.html b/docs/build/html/api/net.corda.protocols/-finality-protocol/participants.html
new file mode 100644
index 0000000000..6b27b20ee2
--- /dev/null
+++ b/docs/build/html/api/net.corda.protocols/-finality-protocol/participants.html
@@ -0,0 +1,15 @@
+
+
+FinalityProtocol.participants -
+
+
+
+net.corda.protocols / FinalityProtocol / participants
+
+participants
+
+val participants : Set < Party >
+
+
+
+
diff --git a/docs/build/html/api/net.corda.protocols/-finality-protocol/progress-tracker.html b/docs/build/html/api/net.corda.protocols/-finality-protocol/progress-tracker.html
new file mode 100644
index 0000000000..b276cbe572
--- /dev/null
+++ b/docs/build/html/api/net.corda.protocols/-finality-protocol/progress-tracker.html
@@ -0,0 +1,24 @@
+
+
+FinalityProtocol.progressTracker -
+
+
+
+net.corda.protocols / FinalityProtocol / progressTracker
+
+progressTracker
+
+val progressTracker : ProgressTracker
+Overrides ProtocolLogic.progressTracker
+Override this to provide a ProgressTracker . If one is provided and stepped, the framework will do something
+helpful with the progress reports. If this protocol is invoked as a sub-protocol of another, then the
+tracker will be made a child of the current step in the parent. If its null, this protocol doesnt track
+progress.
+Note that this has to return a tracker before the protocol is invoked. You cant change your mind half way
+through.
+
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.protocols/-finality-protocol/tracker.html b/docs/build/html/api/net.corda.protocols/-finality-protocol/tracker.html
new file mode 100644
index 0000000000..ce8670a46c
--- /dev/null
+++ b/docs/build/html/api/net.corda.protocols/-finality-protocol/tracker.html
@@ -0,0 +1,15 @@
+
+
+FinalityProtocol.tracker -
+
+
+
+net.corda.protocols / FinalityProtocol / tracker
+
+tracker
+
+fun tracker ( ) : ProgressTracker
+
+
+
+
diff --git a/docs/build/html/api/net.corda.protocols/-finality-protocol/transaction.html b/docs/build/html/api/net.corda.protocols/-finality-protocol/transaction.html
new file mode 100644
index 0000000000..912866da13
--- /dev/null
+++ b/docs/build/html/api/net.corda.protocols/-finality-protocol/transaction.html
@@ -0,0 +1,15 @@
+
+
+FinalityProtocol.transaction -
+
+
+
+net.corda.protocols / FinalityProtocol / transaction
+
+transaction
+
+val transaction : SignedTransaction
+
+
+
+
diff --git a/docs/build/html/api/net.corda.protocols/-notary-change-protocol/-acceptor/-init-.html b/docs/build/html/api/net.corda.protocols/-notary-change-protocol/-acceptor/-init-.html
new file mode 100644
index 0000000000..e091cb7630
--- /dev/null
+++ b/docs/build/html/api/net.corda.protocols/-notary-change-protocol/-acceptor/-init-.html
@@ -0,0 +1,14 @@
+
+
+NotaryChangeProtocol.Acceptor. -
+
+
+
+net.corda.protocols / NotaryChangeProtocol / Acceptor / <init>
+
+<init>
+Acceptor ( otherSide : Party , progressTracker : ProgressTracker = tracker())
+
+
+
+
diff --git a/docs/build/html/api/net.corda.protocols/-notary-change-protocol/-acceptor/index.html b/docs/build/html/api/net.corda.protocols/-notary-change-protocol/-acceptor/index.html
new file mode 100644
index 0000000000..7fe2de8348
--- /dev/null
+++ b/docs/build/html/api/net.corda.protocols/-notary-change-protocol/-acceptor/index.html
@@ -0,0 +1,75 @@
+
+
+NotaryChangeProtocol.Acceptor -
+
+
+
+net.corda.protocols / NotaryChangeProtocol / Acceptor
+
+Acceptor
+class Acceptor : Acceptor < Party >
+
+
+Constructors
+
+Properties
+
+
+
+
+progressTracker
+
+val progressTracker : ProgressTracker
Override this to provide a ProgressTracker . If one is provided and stepped, the framework will do something
+helpful with the progress reports. If this protocol is invoked as a sub-protocol of another, then the
+tracker will be made a child of the current step in the parent. If its null, this protocol doesnt track
+progress.
+
+
+
+
+Inherited Properties
+
+Functions
+
+Inherited Functions
+
+
+
+
+call
+
+open fun call ( ) : Unit
This is where you fill out your business logic.
+
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.protocols/-notary-change-protocol/-acceptor/progress-tracker.html b/docs/build/html/api/net.corda.protocols/-notary-change-protocol/-acceptor/progress-tracker.html
new file mode 100644
index 0000000000..c703526c2b
--- /dev/null
+++ b/docs/build/html/api/net.corda.protocols/-notary-change-protocol/-acceptor/progress-tracker.html
@@ -0,0 +1,24 @@
+
+
+NotaryChangeProtocol.Acceptor.progressTracker -
+
+
+
+net.corda.protocols / NotaryChangeProtocol / Acceptor / progressTracker
+
+progressTracker
+
+val progressTracker : ProgressTracker
+Overrides Acceptor.progressTracker
+Override this to provide a ProgressTracker . If one is provided and stepped, the framework will do something
+helpful with the progress reports. If this protocol is invoked as a sub-protocol of another, then the
+tracker will be made a child of the current step in the parent. If its null, this protocol doesnt track
+progress.
+Note that this has to return a tracker before the protocol is invoked. You cant change your mind half way
+through.
+
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.protocols/-notary-change-protocol/-acceptor/verify-proposal.html b/docs/build/html/api/net.corda.protocols/-notary-change-protocol/-acceptor/verify-proposal.html
new file mode 100644
index 0000000000..db8fe11247
--- /dev/null
+++ b/docs/build/html/api/net.corda.protocols/-notary-change-protocol/-acceptor/verify-proposal.html
@@ -0,0 +1,21 @@
+
+
+NotaryChangeProtocol.Acceptor.verifyProposal -
+
+
+
+net.corda.protocols / NotaryChangeProtocol / Acceptor / verifyProposal
+
+verifyProposal
+
+protected fun verifyProposal ( maybeProposal : UntrustworthyData < Proposal < Party > > ) : Proposal < Party >
+Check the notary change proposal.
+For example, if the proposed new notary has the same behaviour (e.g. both are non-validating)
+and is also in a geographically convenient location we can just automatically approve the change.
+TODO: In more difficult cases this should call for human attention to manually verify and approve the proposal
+
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.protocols/-notary-change-protocol/-instigator/-init-.html b/docs/build/html/api/net.corda.protocols/-notary-change-protocol/-instigator/-init-.html
new file mode 100644
index 0000000000..849a9b8a6e
--- /dev/null
+++ b/docs/build/html/api/net.corda.protocols/-notary-change-protocol/-instigator/-init-.html
@@ -0,0 +1,14 @@
+
+
+NotaryChangeProtocol.Instigator. -
+
+
+
+net.corda.protocols / NotaryChangeProtocol / Instigator / <init>
+
+<init>
+Instigator ( originalState : StateAndRef < T > , newNotary : Party , progressTracker : ProgressTracker = tracker())
+
+
+
+
diff --git a/docs/build/html/api/net.corda.protocols/-notary-change-protocol/-instigator/assemble-proposal.html b/docs/build/html/api/net.corda.protocols/-notary-change-protocol/-instigator/assemble-proposal.html
new file mode 100644
index 0000000000..5d82325615
--- /dev/null
+++ b/docs/build/html/api/net.corda.protocols/-notary-change-protocol/-instigator/assemble-proposal.html
@@ -0,0 +1,15 @@
+
+
+NotaryChangeProtocol.Instigator.assembleProposal -
+
+
+
+net.corda.protocols / NotaryChangeProtocol / Instigator / assembleProposal
+
+assembleProposal
+
+protected fun assembleProposal ( stateRef : StateRef , modification : Party , stx : SignedTransaction ) : Proposal < Party >
+
+
+
+
diff --git a/docs/build/html/api/net.corda.protocols/-notary-change-protocol/-instigator/assemble-tx.html b/docs/build/html/api/net.corda.protocols/-notary-change-protocol/-instigator/assemble-tx.html
new file mode 100644
index 0000000000..6f3a519b0c
--- /dev/null
+++ b/docs/build/html/api/net.corda.protocols/-notary-change-protocol/-instigator/assemble-tx.html
@@ -0,0 +1,16 @@
+
+
+NotaryChangeProtocol.Instigator.assembleTx -
+
+
+
+net.corda.protocols / NotaryChangeProtocol / Instigator / assembleTx
+
+assembleTx
+
+protected fun assembleTx ( ) : <ERROR CLASS> < SignedTransaction , List < PublicKey > >
+Overrides Instigator.assembleTx
+
+
+
+
diff --git a/docs/build/html/api/net.corda.protocols/-notary-change-protocol/-instigator/index.html b/docs/build/html/api/net.corda.protocols/-notary-change-protocol/-instigator/index.html
new file mode 100644
index 0000000000..5088a0f1c8
--- /dev/null
+++ b/docs/build/html/api/net.corda.protocols/-notary-change-protocol/-instigator/index.html
@@ -0,0 +1,81 @@
+
+
+NotaryChangeProtocol.Instigator -
+
+
+
+net.corda.protocols / NotaryChangeProtocol / Instigator
+
+Instigator
+class Instigator < T : ContractState > : Instigator < T , Party >
+
+
+Constructors
+
+Inherited Properties
+
+
+
+
+modification
+
+val modification : T
+
+
+
+originalState
+
+val originalState : StateAndRef < S >
+
+
+
+progressTracker
+
+open val progressTracker : ProgressTracker
Override this to provide a ProgressTracker . If one is provided and stepped, the framework will do something
+helpful with the progress reports. If this protocol is invoked as a sub-protocol of another, then the
+tracker will be made a child of the current step in the parent. If its null, this protocol doesnt track
+progress.
+
+
+
+
+Functions
+
+Inherited Functions
+
+
+
+
+call
+
+open fun call ( ) : StateAndRef < S >
This is where you fill out your business logic.
+
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.protocols/-notary-change-protocol/-proposal/-init-.html b/docs/build/html/api/net.corda.protocols/-notary-change-protocol/-proposal/-init-.html
new file mode 100644
index 0000000000..5f803f8426
--- /dev/null
+++ b/docs/build/html/api/net.corda.protocols/-notary-change-protocol/-proposal/-init-.html
@@ -0,0 +1,14 @@
+
+
+NotaryChangeProtocol.Proposal. -
+
+
+
+net.corda.protocols / NotaryChangeProtocol / Proposal / <init>
+
+<init>
+Proposal ( stateRef : StateRef , modification : Party , stx : SignedTransaction )
+
+
+
+
diff --git a/docs/build/html/api/net.corda.protocols/-notary-change-protocol/-proposal/index.html b/docs/build/html/api/net.corda.protocols/-notary-change-protocol/-proposal/index.html
new file mode 100644
index 0000000000..ecd0b75731
--- /dev/null
+++ b/docs/build/html/api/net.corda.protocols/-notary-change-protocol/-proposal/index.html
@@ -0,0 +1,48 @@
+
+
+NotaryChangeProtocol.Proposal -
+
+
+
+net.corda.protocols / NotaryChangeProtocol / Proposal
+
+Proposal
+data class Proposal : Proposal < Party >
+
+
+Constructors
+
+Properties
+
+
+
diff --git a/docs/build/html/api/net.corda.protocols/-notary-change-protocol/-proposal/modification.html b/docs/build/html/api/net.corda.protocols/-notary-change-protocol/-proposal/modification.html
new file mode 100644
index 0000000000..ffd04d97bc
--- /dev/null
+++ b/docs/build/html/api/net.corda.protocols/-notary-change-protocol/-proposal/modification.html
@@ -0,0 +1,16 @@
+
+
+NotaryChangeProtocol.Proposal.modification -
+
+
+
+net.corda.protocols / NotaryChangeProtocol / Proposal / modification
+
+modification
+
+val modification : Party
+Overrides Proposal.modification
+
+
+
+
diff --git a/docs/build/html/api/net.corda.protocols/-notary-change-protocol/-proposal/state-ref.html b/docs/build/html/api/net.corda.protocols/-notary-change-protocol/-proposal/state-ref.html
new file mode 100644
index 0000000000..3a28718c50
--- /dev/null
+++ b/docs/build/html/api/net.corda.protocols/-notary-change-protocol/-proposal/state-ref.html
@@ -0,0 +1,16 @@
+
+
+NotaryChangeProtocol.Proposal.stateRef -
+
+
+
+net.corda.protocols / NotaryChangeProtocol / Proposal / stateRef
+
+stateRef
+
+val stateRef : StateRef
+Overrides Proposal.stateRef
+
+
+
+
diff --git a/docs/build/html/api/net.corda.protocols/-notary-change-protocol/-proposal/stx.html b/docs/build/html/api/net.corda.protocols/-notary-change-protocol/-proposal/stx.html
new file mode 100644
index 0000000000..1f2efbdaa2
--- /dev/null
+++ b/docs/build/html/api/net.corda.protocols/-notary-change-protocol/-proposal/stx.html
@@ -0,0 +1,16 @@
+
+
+NotaryChangeProtocol.Proposal.stx -
+
+
+
+net.corda.protocols / NotaryChangeProtocol / Proposal / stx
+
+stx
+
+val stx : SignedTransaction
+Overrides Proposal.stx
+
+
+
+
diff --git a/docs/build/html/api/net.corda.protocols/-notary-change-protocol/index.html b/docs/build/html/api/net.corda.protocols/-notary-change-protocol/index.html
new file mode 100644
index 0000000000..8e053f2160
--- /dev/null
+++ b/docs/build/html/api/net.corda.protocols/-notary-change-protocol/index.html
@@ -0,0 +1,45 @@
+
+
+NotaryChangeProtocol -
+
+
+
+net.corda.protocols / NotaryChangeProtocol
+
+NotaryChangeProtocol
+object NotaryChangeProtocol : AbstractStateReplacementProtocol < Party >
+A protocol to be used for changing a states Notary. This is required since all input states to a transaction
+must point to the same notary.
+The Instigator assembles the transaction for notary replacement and sends out change proposals to all participants
+(Acceptor ) of that state. If participants agree to the proposed change, they each sign the transaction.
+Finally, Instigator sends the transaction containing all signatures back to each participant so they can record it and
+use the new updated state for future transactions.
+
+
+
+
+Types
+
+
+
diff --git a/docs/build/html/api/net.corda.protocols/-notary-error/-conflict/-init-.html b/docs/build/html/api/net.corda.protocols/-notary-error/-conflict/-init-.html
new file mode 100644
index 0000000000..7fe1b7fb31
--- /dev/null
+++ b/docs/build/html/api/net.corda.protocols/-notary-error/-conflict/-init-.html
@@ -0,0 +1,14 @@
+
+
+NotaryError.Conflict. -
+
+
+
+net.corda.protocols / NotaryError / Conflict / <init>
+
+<init>
+Conflict ( tx : WireTransaction , conflict : SignedData < Conflict > )
+
+
+
+
diff --git a/docs/build/html/api/net.corda.protocols/-notary-error/-conflict/conflict.html b/docs/build/html/api/net.corda.protocols/-notary-error/-conflict/conflict.html
new file mode 100644
index 0000000000..a43c9bea63
--- /dev/null
+++ b/docs/build/html/api/net.corda.protocols/-notary-error/-conflict/conflict.html
@@ -0,0 +1,15 @@
+
+
+NotaryError.Conflict.conflict -
+
+
+
+net.corda.protocols / NotaryError / Conflict / conflict
+
+conflict
+
+val conflict : SignedData < Conflict >
+
+
+
+
diff --git a/docs/build/html/api/net.corda.protocols/-notary-error/-conflict/index.html b/docs/build/html/api/net.corda.protocols/-notary-error/-conflict/index.html
new file mode 100644
index 0000000000..a4e52b08ed
--- /dev/null
+++ b/docs/build/html/api/net.corda.protocols/-notary-error/-conflict/index.html
@@ -0,0 +1,53 @@
+
+
+NotaryError.Conflict -
+
+
+
+net.corda.protocols / NotaryError / Conflict
+
+Conflict
+class Conflict : NotaryError
+
+
+Constructors
+
+Properties
+
+Functions
+
+
+
+
+toString
+
+fun toString ( ) : String
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.protocols/-notary-error/-conflict/to-string.html b/docs/build/html/api/net.corda.protocols/-notary-error/-conflict/to-string.html
new file mode 100644
index 0000000000..6451ea9446
--- /dev/null
+++ b/docs/build/html/api/net.corda.protocols/-notary-error/-conflict/to-string.html
@@ -0,0 +1,15 @@
+
+
+NotaryError.Conflict.toString -
+
+
+
+net.corda.protocols / NotaryError / Conflict / toString
+
+toString
+
+fun toString ( ) : String
+
+
+
+
diff --git a/docs/build/html/api/net.corda.protocols/-notary-error/-conflict/tx.html b/docs/build/html/api/net.corda.protocols/-notary-error/-conflict/tx.html
new file mode 100644
index 0000000000..5417b69846
--- /dev/null
+++ b/docs/build/html/api/net.corda.protocols/-notary-error/-conflict/tx.html
@@ -0,0 +1,15 @@
+
+
+NotaryError.Conflict.tx -
+
+
+
+net.corda.protocols / NotaryError / Conflict / tx
+
+tx
+
+val tx : WireTransaction
+
+
+
+
diff --git a/docs/build/html/api/net.corda.protocols/-notary-error/-signatures-missing/-init-.html b/docs/build/html/api/net.corda.protocols/-notary-error/-signatures-missing/-init-.html
new file mode 100644
index 0000000000..4712869bb1
--- /dev/null
+++ b/docs/build/html/api/net.corda.protocols/-notary-error/-signatures-missing/-init-.html
@@ -0,0 +1,14 @@
+
+
+NotaryError.SignaturesMissing. -
+
+
+
+net.corda.protocols / NotaryError / SignaturesMissing / <init>
+
+<init>
+SignaturesMissing ( missingSigners : Set < PublicKey > )
+
+
+
+
diff --git a/docs/build/html/api/net.corda.protocols/-notary-error/-signatures-missing/index.html b/docs/build/html/api/net.corda.protocols/-notary-error/-signatures-missing/index.html
new file mode 100644
index 0000000000..c8f4308541
--- /dev/null
+++ b/docs/build/html/api/net.corda.protocols/-notary-error/-signatures-missing/index.html
@@ -0,0 +1,36 @@
+
+
+NotaryError.SignaturesMissing -
+
+
+
+net.corda.protocols / NotaryError / SignaturesMissing
+
+SignaturesMissing
+class SignaturesMissing : NotaryError
+
+
+Constructors
+
+Properties
+
+
+
diff --git a/docs/build/html/api/net.corda.protocols/-notary-error/-signatures-missing/missing-signers.html b/docs/build/html/api/net.corda.protocols/-notary-error/-signatures-missing/missing-signers.html
new file mode 100644
index 0000000000..922fdcf333
--- /dev/null
+++ b/docs/build/html/api/net.corda.protocols/-notary-error/-signatures-missing/missing-signers.html
@@ -0,0 +1,15 @@
+
+
+NotaryError.SignaturesMissing.missingSigners -
+
+
+
+net.corda.protocols / NotaryError / SignaturesMissing / missingSigners
+
+missingSigners
+
+val missingSigners : Set < PublicKey >
+
+
+
+
diff --git a/docs/build/html/api/net.corda.protocols/-notary-error/-timestamp-invalid/-init-.html b/docs/build/html/api/net.corda.protocols/-notary-error/-timestamp-invalid/-init-.html
new file mode 100644
index 0000000000..7f2d1e69e5
--- /dev/null
+++ b/docs/build/html/api/net.corda.protocols/-notary-error/-timestamp-invalid/-init-.html
@@ -0,0 +1,15 @@
+
+
+NotaryError.TimestampInvalid. -
+
+
+
+net.corda.protocols / NotaryError / TimestampInvalid / <init>
+
+<init>
+TimestampInvalid ( )
+Thrown if the time specified in the timestamp command is outside the allowed tolerance
+
+
+
+
diff --git a/docs/build/html/api/net.corda.protocols/-notary-error/-timestamp-invalid/index.html b/docs/build/html/api/net.corda.protocols/-notary-error/-timestamp-invalid/index.html
new file mode 100644
index 0000000000..7ab8b5d20c
--- /dev/null
+++ b/docs/build/html/api/net.corda.protocols/-notary-error/-timestamp-invalid/index.html
@@ -0,0 +1,27 @@
+
+
+NotaryError.TimestampInvalid -
+
+
+
+net.corda.protocols / NotaryError / TimestampInvalid
+
+TimestampInvalid
+class TimestampInvalid : NotaryError
+Thrown if the time specified in the timestamp command is outside the allowed tolerance
+
+
+Constructors
+
+
+
+
+<init>
+
+TimestampInvalid ( )
Thrown if the time specified in the timestamp command is outside the allowed tolerance
+
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.protocols/-notary-error/-transaction-invalid/-init-.html b/docs/build/html/api/net.corda.protocols/-notary-error/-transaction-invalid/-init-.html
new file mode 100644
index 0000000000..846ab2e0c1
--- /dev/null
+++ b/docs/build/html/api/net.corda.protocols/-notary-error/-transaction-invalid/-init-.html
@@ -0,0 +1,14 @@
+
+
+NotaryError.TransactionInvalid. -
+
+
+
+net.corda.protocols / NotaryError / TransactionInvalid / <init>
+
+<init>
+TransactionInvalid ( )
+
+
+
+
diff --git a/docs/build/html/api/net.corda.protocols/-notary-error/-transaction-invalid/index.html b/docs/build/html/api/net.corda.protocols/-notary-error/-transaction-invalid/index.html
new file mode 100644
index 0000000000..73ce2597c8
--- /dev/null
+++ b/docs/build/html/api/net.corda.protocols/-notary-error/-transaction-invalid/index.html
@@ -0,0 +1,25 @@
+
+
+NotaryError.TransactionInvalid -
+
+
+
+net.corda.protocols / NotaryError / TransactionInvalid
+
+TransactionInvalid
+class TransactionInvalid : NotaryError
+
+
+Constructors
+
+
+
+
+<init>
+
+TransactionInvalid ( )
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.protocols/-notary-error/index.html b/docs/build/html/api/net.corda.protocols/-notary-error/index.html
new file mode 100644
index 0000000000..b13269511a
--- /dev/null
+++ b/docs/build/html/api/net.corda.protocols/-notary-error/index.html
@@ -0,0 +1,74 @@
+
+
+NotaryError -
+
+
+
+net.corda.protocols / NotaryError
+
+NotaryError
+sealed class NotaryError
+
+
+Types
+
+
+
+
+Conflict
+
+class Conflict : NotaryError
+
+
+
+SignaturesMissing
+
+class SignaturesMissing : NotaryError
+
+
+
+TimestampInvalid
+
+class TimestampInvalid : NotaryError
Thrown if the time specified in the timestamp command is outside the allowed tolerance
+
+
+
+
+TransactionInvalid
+
+class TransactionInvalid : NotaryError
+
+
+
+Inheritors
+
+
+
+
+Conflict
+
+class Conflict : NotaryError
+
+
+
+SignaturesMissing
+
+class SignaturesMissing : NotaryError
+
+
+
+TimestampInvalid
+
+class TimestampInvalid : NotaryError
Thrown if the time specified in the timestamp command is outside the allowed tolerance
+
+
+
+
+TransactionInvalid
+
+class TransactionInvalid : NotaryError
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.protocols/-notary-exception/-init-.html b/docs/build/html/api/net.corda.protocols/-notary-exception/-init-.html
new file mode 100644
index 0000000000..beabae8ce9
--- /dev/null
+++ b/docs/build/html/api/net.corda.protocols/-notary-exception/-init-.html
@@ -0,0 +1,14 @@
+
+
+NotaryException. -
+
+
+
+net.corda.protocols / NotaryException / <init>
+
+<init>
+NotaryException ( error : NotaryError )
+
+
+
+
diff --git a/docs/build/html/api/net.corda.protocols/-notary-exception/error.html b/docs/build/html/api/net.corda.protocols/-notary-exception/error.html
new file mode 100644
index 0000000000..0bf4ab4e63
--- /dev/null
+++ b/docs/build/html/api/net.corda.protocols/-notary-exception/error.html
@@ -0,0 +1,15 @@
+
+
+NotaryException.error -
+
+
+
+net.corda.protocols / NotaryException / error
+
+error
+
+val error : NotaryError
+
+
+
+
diff --git a/docs/build/html/api/net.corda.protocols/-notary-exception/index.html b/docs/build/html/api/net.corda.protocols/-notary-exception/index.html
new file mode 100644
index 0000000000..bc10aa9de3
--- /dev/null
+++ b/docs/build/html/api/net.corda.protocols/-notary-exception/index.html
@@ -0,0 +1,58 @@
+
+
+NotaryException -
+
+
+
+net.corda.protocols / NotaryException
+
+NotaryException
+class NotaryException : Exception
+
+
+Constructors
+
+Properties
+
+Functions
+
+
+
+
+toString
+
+fun toString ( ) : String
+
+
+
+Extension Properties
+
+
+
+
+rootCause
+
+val Throwable . rootCause : Throwable
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.protocols/-notary-exception/to-string.html b/docs/build/html/api/net.corda.protocols/-notary-exception/to-string.html
new file mode 100644
index 0000000000..b94b77a357
--- /dev/null
+++ b/docs/build/html/api/net.corda.protocols/-notary-exception/to-string.html
@@ -0,0 +1,15 @@
+
+
+NotaryException.toString -
+
+
+
+net.corda.protocols / NotaryException / toString
+
+toString
+
+fun toString ( ) : String
+
+
+
+
diff --git a/docs/build/html/api/net.corda.protocols/-notary-protocol/-client/-init-.html b/docs/build/html/api/net.corda.protocols/-notary-protocol/-client/-init-.html
new file mode 100644
index 0000000000..25ff86d18e
--- /dev/null
+++ b/docs/build/html/api/net.corda.protocols/-notary-protocol/-client/-init-.html
@@ -0,0 +1,20 @@
+
+
+NotaryProtocol.Client. -
+
+
+
+net.corda.protocols / NotaryProtocol / Client / <init>
+
+<init>
+Client ( stx : SignedTransaction , progressTracker : ProgressTracker = Client.tracker())
+A protocol to be used for obtaining a signature from a NotaryService ascertaining the transaction
+timestamp is correct and none of its inputs have been used in another completed transaction.
+Exceptions
+
+NotaryException
- in case the any of the inputs to the transaction have been consumed
+by another transaction or the timestamp is invalid.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.protocols/-notary-protocol/-client/-r-e-q-u-e-s-t-i-n-g.html b/docs/build/html/api/net.corda.protocols/-notary-protocol/-client/-r-e-q-u-e-s-t-i-n-g.html
new file mode 100644
index 0000000000..c6cbccea2c
--- /dev/null
+++ b/docs/build/html/api/net.corda.protocols/-notary-protocol/-client/-r-e-q-u-e-s-t-i-n-g.html
@@ -0,0 +1,42 @@
+
+
+NotaryProtocol.Client.REQUESTING -
+
+
+
+net.corda.protocols / NotaryProtocol / Client / REQUESTING
+
+REQUESTING
+object REQUESTING : Step
+
+
+Inherited Properties
+
+
+
+
+changes
+
+open val changes : <ERROR CLASS> < Change >
+
+
+
+label
+
+open val label : String
+
+
+
+Inherited Functions
+
+
+
diff --git a/docs/build/html/api/net.corda.protocols/-notary-protocol/-client/-v-a-l-i-d-a-t-i-n-g.html b/docs/build/html/api/net.corda.protocols/-notary-protocol/-client/-v-a-l-i-d-a-t-i-n-g.html
new file mode 100644
index 0000000000..e897f19ba0
--- /dev/null
+++ b/docs/build/html/api/net.corda.protocols/-notary-protocol/-client/-v-a-l-i-d-a-t-i-n-g.html
@@ -0,0 +1,42 @@
+
+
+NotaryProtocol.Client.VALIDATING -
+
+
+
+net.corda.protocols / NotaryProtocol / Client / VALIDATING
+
+VALIDATING
+object VALIDATING : Step
+
+
+Inherited Properties
+
+
+
+
+changes
+
+open val changes : <ERROR CLASS> < Change >
+
+
+
+label
+
+open val label : String
+
+
+
+Inherited Functions
+
+
+
diff --git a/docs/build/html/api/net.corda.protocols/-notary-protocol/-client/call.html b/docs/build/html/api/net.corda.protocols/-notary-protocol/-client/call.html
new file mode 100644
index 0000000000..c6d9b32870
--- /dev/null
+++ b/docs/build/html/api/net.corda.protocols/-notary-protocol/-client/call.html
@@ -0,0 +1,17 @@
+
+
+NotaryProtocol.Client.call -
+
+
+
+net.corda.protocols / NotaryProtocol / Client / call
+
+call
+
+open fun call ( ) : LegallyIdentifiable
+Overrides ProtocolLogic.call
+This is where you fill out your business logic.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.protocols/-notary-protocol/-client/index.html b/docs/build/html/api/net.corda.protocols/-notary-protocol/-client/index.html
new file mode 100644
index 0000000000..82cb2b07a7
--- /dev/null
+++ b/docs/build/html/api/net.corda.protocols/-notary-protocol/-client/index.html
@@ -0,0 +1,170 @@
+
+
+NotaryProtocol.Client -
+
+
+
+net.corda.protocols / NotaryProtocol / Client
+
+Client
+class Client : ProtocolLogic < LegallyIdentifiable >
+A protocol to be used for obtaining a signature from a NotaryService ascertaining the transaction
+timestamp is correct and none of its inputs have been used in another completed transaction.
+Exceptions
+
+NotaryException
- in case the any of the inputs to the transaction have been consumed
+by another transaction or the timestamp is invalid.
+
+
+Types
+
+Constructors
+
+
+
+
+<init>
+
+Client ( stx : SignedTransaction , progressTracker : ProgressTracker = Client.tracker())
A protocol to be used for obtaining a signature from a NotaryService ascertaining the transaction
+timestamp is correct and none of its inputs have been used in another completed transaction.
+
+
+
+
+Properties
+
+
+
+
+notaryParty
+
+lateinit var notaryParty : Party
+
+
+
+progressTracker
+
+open val progressTracker : ProgressTracker
Override this to provide a ProgressTracker . If one is provided and stepped, the framework will do something
+helpful with the progress reports. If this protocol is invoked as a sub-protocol of another, then the
+tracker will be made a child of the current step in the parent. If its null, this protocol doesnt track
+progress.
+
+
+
+
+Inherited Properties
+
+
+
+
+logger
+
+val logger : <ERROR CLASS>
This is where you should log things to.
+
+
+
+
+psm
+
+lateinit var psm : ProtocolStateMachine < * >
Reference to the Fiber instance that is the top level controller for the entire flow.
+
+
+
+
+serviceHub
+
+val serviceHub : ServiceHub
Provides access to big, heavy classes that may be reconstructed from time to time, e.g. across restarts. It is
+only available once the protocol has started, which means it cannnot be accessed in the constructor. Either
+access this lazily or from inside call .
+
+
+
+
+Functions
+
+Inherited Functions
+
+Companion Object Functions
+
+
+
diff --git a/docs/build/html/api/net.corda.protocols/-notary-protocol/-client/notary-party.html b/docs/build/html/api/net.corda.protocols/-notary-protocol/-client/notary-party.html
new file mode 100644
index 0000000000..acf92f0cf7
--- /dev/null
+++ b/docs/build/html/api/net.corda.protocols/-notary-protocol/-client/notary-party.html
@@ -0,0 +1,15 @@
+
+
+NotaryProtocol.Client.notaryParty -
+
+
+
+net.corda.protocols / NotaryProtocol / Client / notaryParty
+
+notaryParty
+
+lateinit var notaryParty : Party
+
+
+
+
diff --git a/docs/build/html/api/net.corda.protocols/-notary-protocol/-client/progress-tracker.html b/docs/build/html/api/net.corda.protocols/-notary-protocol/-client/progress-tracker.html
new file mode 100644
index 0000000000..fa58feeac5
--- /dev/null
+++ b/docs/build/html/api/net.corda.protocols/-notary-protocol/-client/progress-tracker.html
@@ -0,0 +1,24 @@
+
+
+NotaryProtocol.Client.progressTracker -
+
+
+
+net.corda.protocols / NotaryProtocol / Client / progressTracker
+
+progressTracker
+
+open val progressTracker : ProgressTracker
+Overrides ProtocolLogic.progressTracker
+Override this to provide a ProgressTracker . If one is provided and stepped, the framework will do something
+helpful with the progress reports. If this protocol is invoked as a sub-protocol of another, then the
+tracker will be made a child of the current step in the parent. If its null, this protocol doesnt track
+progress.
+Note that this has to return a tracker before the protocol is invoked. You cant change your mind half way
+through.
+
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.protocols/-notary-protocol/-client/tracker.html b/docs/build/html/api/net.corda.protocols/-notary-protocol/-client/tracker.html
new file mode 100644
index 0000000000..79f76249b7
--- /dev/null
+++ b/docs/build/html/api/net.corda.protocols/-notary-protocol/-client/tracker.html
@@ -0,0 +1,15 @@
+
+
+NotaryProtocol.Client.tracker -
+
+
+
+net.corda.protocols / NotaryProtocol / Client / tracker
+
+tracker
+
+fun tracker ( ) : ProgressTracker
+
+
+
+
diff --git a/docs/build/html/api/net.corda.protocols/-notary-protocol/-result/-error/-init-.html b/docs/build/html/api/net.corda.protocols/-notary-protocol/-result/-error/-init-.html
new file mode 100644
index 0000000000..0624a4f8c1
--- /dev/null
+++ b/docs/build/html/api/net.corda.protocols/-notary-protocol/-result/-error/-init-.html
@@ -0,0 +1,14 @@
+
+
+NotaryProtocol.Result.Error. -
+
+
+
+net.corda.protocols / NotaryProtocol / Result / Error / <init>
+
+<init>
+Error ( error : NotaryError )
+
+
+
+
diff --git a/docs/build/html/api/net.corda.protocols/-notary-protocol/-result/-error/error.html b/docs/build/html/api/net.corda.protocols/-notary-protocol/-result/-error/error.html
new file mode 100644
index 0000000000..12b9532b84
--- /dev/null
+++ b/docs/build/html/api/net.corda.protocols/-notary-protocol/-result/-error/error.html
@@ -0,0 +1,15 @@
+
+
+NotaryProtocol.Result.Error.error -
+
+
+
+net.corda.protocols / NotaryProtocol / Result / Error / error
+
+error
+
+val error : NotaryError
+
+
+
+
diff --git a/docs/build/html/api/net.corda.protocols/-notary-protocol/-result/-error/index.html b/docs/build/html/api/net.corda.protocols/-notary-protocol/-result/-error/index.html
new file mode 100644
index 0000000000..1001d7a02b
--- /dev/null
+++ b/docs/build/html/api/net.corda.protocols/-notary-protocol/-result/-error/index.html
@@ -0,0 +1,36 @@
+
+
+NotaryProtocol.Result.Error -
+
+
+
+net.corda.protocols / NotaryProtocol / Result / Error
+
+Error
+class Error : Result
+
+
+Constructors
+
+Properties
+
+
+
diff --git a/docs/build/html/api/net.corda.protocols/-notary-protocol/-result/-success/-init-.html b/docs/build/html/api/net.corda.protocols/-notary-protocol/-result/-success/-init-.html
new file mode 100644
index 0000000000..13cff5b439
--- /dev/null
+++ b/docs/build/html/api/net.corda.protocols/-notary-protocol/-result/-success/-init-.html
@@ -0,0 +1,14 @@
+
+
+NotaryProtocol.Result.Success. -
+
+
+
+net.corda.protocols / NotaryProtocol / Result / Success / <init>
+
+<init>
+Success ( sig : LegallyIdentifiable )
+
+
+
+
diff --git a/docs/build/html/api/net.corda.protocols/-notary-protocol/-result/-success/index.html b/docs/build/html/api/net.corda.protocols/-notary-protocol/-result/-success/index.html
new file mode 100644
index 0000000000..88d624d4e8
--- /dev/null
+++ b/docs/build/html/api/net.corda.protocols/-notary-protocol/-result/-success/index.html
@@ -0,0 +1,36 @@
+
+
+NotaryProtocol.Result.Success -
+
+
+
+net.corda.protocols / NotaryProtocol / Result / Success
+
+Success
+class Success : Result
+
+
+Constructors
+
+Properties
+
+
+
diff --git a/docs/build/html/api/net.corda.protocols/-notary-protocol/-result/-success/sig.html b/docs/build/html/api/net.corda.protocols/-notary-protocol/-result/-success/sig.html
new file mode 100644
index 0000000000..282c6f3ec7
--- /dev/null
+++ b/docs/build/html/api/net.corda.protocols/-notary-protocol/-result/-success/sig.html
@@ -0,0 +1,15 @@
+
+
+NotaryProtocol.Result.Success.sig -
+
+
+
+net.corda.protocols / NotaryProtocol / Result / Success / sig
+
+sig
+
+val sig : LegallyIdentifiable
+
+
+
+
diff --git a/docs/build/html/api/net.corda.protocols/-notary-protocol/-result/index.html b/docs/build/html/api/net.corda.protocols/-notary-protocol/-result/index.html
new file mode 100644
index 0000000000..9ce77e08bc
--- /dev/null
+++ b/docs/build/html/api/net.corda.protocols/-notary-protocol/-result/index.html
@@ -0,0 +1,48 @@
+
+
+NotaryProtocol.Result -
+
+
+
+net.corda.protocols / NotaryProtocol / Result
+
+Result
+sealed class Result
+
+
+Types
+
+
+
+
+Error
+
+class Error : Result
+
+
+
+Success
+
+class Success : Result
+
+
+
+Inheritors
+
+
+
+
+Error
+
+class Error : Result
+
+
+
+Success
+
+class Success : Result
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.protocols/-notary-protocol/-service/-init-.html b/docs/build/html/api/net.corda.protocols/-notary-protocol/-service/-init-.html
new file mode 100644
index 0000000000..95411d7f83
--- /dev/null
+++ b/docs/build/html/api/net.corda.protocols/-notary-protocol/-service/-init-.html
@@ -0,0 +1,20 @@
+
+
+NotaryProtocol.Service. -
+
+
+
+net.corda.protocols / NotaryProtocol / Service / <init>
+
+<init>
+Service ( otherSide : Party , timestampChecker : TimestampChecker , uniquenessProvider : UniquenessProvider )
+Checks that the timestamp command is valid (if present) and commits the input state, or returns a conflict
+if any of the input states have been previously committed.
+Extend this class, overriding beforeCommit to add custom transaction processing/validation logic.
+TODO: the notary service should only be able to see timestamp commands and inputs
+
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.protocols/-notary-protocol/-service/before-commit.html b/docs/build/html/api/net.corda.protocols/-notary-protocol/-service/before-commit.html
new file mode 100644
index 0000000000..474e16b535
--- /dev/null
+++ b/docs/build/html/api/net.corda.protocols/-notary-protocol/-service/before-commit.html
@@ -0,0 +1,21 @@
+
+
+NotaryProtocol.Service.beforeCommit -
+
+
+
+net.corda.protocols / NotaryProtocol / Service / beforeCommit
+
+beforeCommit
+
+open fun beforeCommit ( stx : SignedTransaction , reqIdentity : Party ) : Unit
+No pre-commit processing is done. Transaction is not checked for contract-validity, as that would require fully
+resolving it into a TransactionForVerification , for which the caller would have to reveal the whole transaction
+history chain.
+As a result, the Notary will commit invalid transactions as well, but as it also records the identity of
+the caller, it is possible to raise a dispute and verify the validity of the transaction and subsequently
+undo the commit of the input states (the exact mechanism still needs to be worked out).
+
+
+
+
diff --git a/docs/build/html/api/net.corda.protocols/-notary-protocol/-service/call.html b/docs/build/html/api/net.corda.protocols/-notary-protocol/-service/call.html
new file mode 100644
index 0000000000..ac45ba09e1
--- /dev/null
+++ b/docs/build/html/api/net.corda.protocols/-notary-protocol/-service/call.html
@@ -0,0 +1,17 @@
+
+
+NotaryProtocol.Service.call -
+
+
+
+net.corda.protocols / NotaryProtocol / Service / call
+
+call
+
+open fun call ( ) : Unit
+Overrides ProtocolLogic.call
+This is where you fill out your business logic.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.protocols/-notary-protocol/-service/index.html b/docs/build/html/api/net.corda.protocols/-notary-protocol/-service/index.html
new file mode 100644
index 0000000000..f4935919e1
--- /dev/null
+++ b/docs/build/html/api/net.corda.protocols/-notary-protocol/-service/index.html
@@ -0,0 +1,181 @@
+
+
+NotaryProtocol.Service -
+
+
+
+net.corda.protocols / NotaryProtocol / Service
+
+Service
+class Service : ProtocolLogic < Unit >
+Checks that the timestamp command is valid (if present) and commits the input state, or returns a conflict
+if any of the input states have been previously committed.
+Extend this class, overriding beforeCommit to add custom transaction processing/validation logic.
+TODO: the notary service should only be able to see timestamp commands and inputs
+
+
+
+
+Constructors
+
+
+
+
+<init>
+
+Service ( otherSide : Party , timestampChecker : TimestampChecker , uniquenessProvider : UniquenessProvider )
Checks that the timestamp command is valid (if present) and commits the input state, or returns a conflict
+if any of the input states have been previously committed.
+
+
+
+
+Properties
+
+Inherited Properties
+
+
+
+
+logger
+
+val logger : <ERROR CLASS>
This is where you should log things to.
+
+
+
+
+progressTracker
+
+open val progressTracker : ProgressTracker ?
Override this to provide a ProgressTracker . If one is provided and stepped, the framework will do something
+helpful with the progress reports. If this protocol is invoked as a sub-protocol of another, then the
+tracker will be made a child of the current step in the parent. If its null, this protocol doesnt track
+progress.
+
+
+
+
+psm
+
+lateinit var psm : ProtocolStateMachine < * >
Reference to the Fiber instance that is the top level controller for the entire flow.
+
+
+
+
+serviceHub
+
+val serviceHub : ServiceHub
Provides access to big, heavy classes that may be reconstructed from time to time, e.g. across restarts. It is
+only available once the protocol has started, which means it cannnot be accessed in the constructor. Either
+access this lazily or from inside call .
+
+
+
+
+Functions
+
+
+
+
+beforeCommit
+
+open fun beforeCommit ( stx : SignedTransaction , reqIdentity : Party ) : Unit
No pre-commit processing is done. Transaction is not checked for contract-validity, as that would require fully
+resolving it into a TransactionForVerification , for which the caller would have to reveal the whole transaction
+history chain.
+As a result, the Notary will commit invalid transactions as well, but as it also records the identity of
+the caller, it is possible to raise a dispute and verify the validity of the transaction and subsequently
+undo the commit of the input states (the exact mechanism still needs to be worked out).
+
+
+
+
+call
+
+open fun call ( ) : Unit
This is where you fill out your business logic.
+
+
+
+
+Inherited Functions
+
+Inheritors
+
+
+
+
+ValidatingNotaryProtocol
+
+class ValidatingNotaryProtocol : Service
A notary commit protocol that makes sure a given transaction is valid before committing it. This does mean that the calling
+party has to reveal the whole transaction history; however, we avoid complex conflict resolution logic where a party
+has its input states "blocked" by a transaction from another party, and needs to establish whether that transaction was
+indeed valid.
+
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.protocols/-notary-protocol/-service/other-side.html b/docs/build/html/api/net.corda.protocols/-notary-protocol/-service/other-side.html
new file mode 100644
index 0000000000..d47ff65c26
--- /dev/null
+++ b/docs/build/html/api/net.corda.protocols/-notary-protocol/-service/other-side.html
@@ -0,0 +1,15 @@
+
+
+NotaryProtocol.Service.otherSide -
+
+
+
+net.corda.protocols / NotaryProtocol / Service / otherSide
+
+otherSide
+
+val otherSide : Party
+
+
+
+
diff --git a/docs/build/html/api/net.corda.protocols/-notary-protocol/-service/timestamp-checker.html b/docs/build/html/api/net.corda.protocols/-notary-protocol/-service/timestamp-checker.html
new file mode 100644
index 0000000000..1e6f0c16fa
--- /dev/null
+++ b/docs/build/html/api/net.corda.protocols/-notary-protocol/-service/timestamp-checker.html
@@ -0,0 +1,15 @@
+
+
+NotaryProtocol.Service.timestampChecker -
+
+
+
+net.corda.protocols / NotaryProtocol / Service / timestampChecker
+
+timestampChecker
+
+val timestampChecker : TimestampChecker
+
+
+
+
diff --git a/docs/build/html/api/net.corda.protocols/-notary-protocol/-service/uniqueness-provider.html b/docs/build/html/api/net.corda.protocols/-notary-protocol/-service/uniqueness-provider.html
new file mode 100644
index 0000000000..ec4f91b236
--- /dev/null
+++ b/docs/build/html/api/net.corda.protocols/-notary-protocol/-service/uniqueness-provider.html
@@ -0,0 +1,15 @@
+
+
+NotaryProtocol.Service.uniquenessProvider -
+
+
+
+net.corda.protocols / NotaryProtocol / Service / uniquenessProvider
+
+uniquenessProvider
+
+val uniquenessProvider : UniquenessProvider
+
+
+
+
diff --git a/docs/build/html/api/net.corda.protocols/-notary-protocol/-sign-request/-init-.html b/docs/build/html/api/net.corda.protocols/-notary-protocol/-sign-request/-init-.html
new file mode 100644
index 0000000000..e2aa9d835b
--- /dev/null
+++ b/docs/build/html/api/net.corda.protocols/-notary-protocol/-sign-request/-init-.html
@@ -0,0 +1,15 @@
+
+
+NotaryProtocol.SignRequest. -
+
+
+
+net.corda.protocols / NotaryProtocol / SignRequest / <init>
+
+<init>
+SignRequest ( tx : SignedTransaction , callerIdentity : Party )
+TODO: The caller must authenticate instead of just specifying its identity
+
+
+
+
diff --git a/docs/build/html/api/net.corda.protocols/-notary-protocol/-sign-request/caller-identity.html b/docs/build/html/api/net.corda.protocols/-notary-protocol/-sign-request/caller-identity.html
new file mode 100644
index 0000000000..19408f85af
--- /dev/null
+++ b/docs/build/html/api/net.corda.protocols/-notary-protocol/-sign-request/caller-identity.html
@@ -0,0 +1,15 @@
+
+
+NotaryProtocol.SignRequest.callerIdentity -
+
+
+
+net.corda.protocols / NotaryProtocol / SignRequest / callerIdentity
+
+callerIdentity
+
+val callerIdentity : Party
+
+
+
+
diff --git a/docs/build/html/api/net.corda.protocols/-notary-protocol/-sign-request/index.html b/docs/build/html/api/net.corda.protocols/-notary-protocol/-sign-request/index.html
new file mode 100644
index 0000000000..10b3dfe610
--- /dev/null
+++ b/docs/build/html/api/net.corda.protocols/-notary-protocol/-sign-request/index.html
@@ -0,0 +1,44 @@
+
+
+NotaryProtocol.SignRequest -
+
+
+
+net.corda.protocols / NotaryProtocol / SignRequest
+
+SignRequest
+data class SignRequest
+TODO: The caller must authenticate instead of just specifying its identity
+
+
+Constructors
+
+
+
+
+<init>
+
+SignRequest ( tx : SignedTransaction , callerIdentity : Party )
TODO: The caller must authenticate instead of just specifying its identity
+
+
+
+
+Properties
+
+
+
diff --git a/docs/build/html/api/net.corda.protocols/-notary-protocol/-sign-request/tx.html b/docs/build/html/api/net.corda.protocols/-notary-protocol/-sign-request/tx.html
new file mode 100644
index 0000000000..2e8802f670
--- /dev/null
+++ b/docs/build/html/api/net.corda.protocols/-notary-protocol/-sign-request/tx.html
@@ -0,0 +1,15 @@
+
+
+NotaryProtocol.SignRequest.tx -
+
+
+
+net.corda.protocols / NotaryProtocol / SignRequest / tx
+
+tx
+
+val tx : SignedTransaction
+
+
+
+
diff --git a/docs/build/html/api/net.corda.protocols/-notary-protocol/index.html b/docs/build/html/api/net.corda.protocols/-notary-protocol/index.html
new file mode 100644
index 0000000000..4ab8b751ff
--- /dev/null
+++ b/docs/build/html/api/net.corda.protocols/-notary-protocol/index.html
@@ -0,0 +1,48 @@
+
+
+NotaryProtocol -
+
+
+
+net.corda.protocols / NotaryProtocol
+
+NotaryProtocol
+object NotaryProtocol
+
+
+Types
+
+
+
+
+Client
+
+class Client : ProtocolLogic < LegallyIdentifiable >
A protocol to be used for obtaining a signature from a NotaryService ascertaining the transaction
+timestamp is correct and none of its inputs have been used in another completed transaction.
+
+
+
+
+Result
+
+sealed class Result
+
+
+
+Service
+
+class Service : ProtocolLogic < Unit >
Checks that the timestamp command is valid (if present) and commits the input state, or returns a conflict
+if any of the input states have been previously committed.
+
+
+
+
+SignRequest
+
+data class SignRequest
TODO: The caller must authenticate instead of just specifying its identity
+
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.protocols/-resolve-transactions-protocol/-excessively-large-transaction-graph/-init-.html b/docs/build/html/api/net.corda.protocols/-resolve-transactions-protocol/-excessively-large-transaction-graph/-init-.html
new file mode 100644
index 0000000000..2b68907cbf
--- /dev/null
+++ b/docs/build/html/api/net.corda.protocols/-resolve-transactions-protocol/-excessively-large-transaction-graph/-init-.html
@@ -0,0 +1,14 @@
+
+
+ResolveTransactionsProtocol.ExcessivelyLargeTransactionGraph. -
+
+
+
+net.corda.protocols / ResolveTransactionsProtocol / ExcessivelyLargeTransactionGraph / <init>
+
+<init>
+ExcessivelyLargeTransactionGraph ( )
+
+
+
+
diff --git a/docs/build/html/api/net.corda.protocols/-resolve-transactions-protocol/-excessively-large-transaction-graph/index.html b/docs/build/html/api/net.corda.protocols/-resolve-transactions-protocol/-excessively-large-transaction-graph/index.html
new file mode 100644
index 0000000000..cee0e6d358
--- /dev/null
+++ b/docs/build/html/api/net.corda.protocols/-resolve-transactions-protocol/-excessively-large-transaction-graph/index.html
@@ -0,0 +1,25 @@
+
+
+ResolveTransactionsProtocol.ExcessivelyLargeTransactionGraph -
+
+
+
+net.corda.protocols / ResolveTransactionsProtocol / ExcessivelyLargeTransactionGraph
+
+ExcessivelyLargeTransactionGraph
+class ExcessivelyLargeTransactionGraph : Exception
+
+
+Constructors
+
+
+
+
+<init>
+
+ExcessivelyLargeTransactionGraph ( )
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.protocols/-resolve-transactions-protocol/-init-.html b/docs/build/html/api/net.corda.protocols/-resolve-transactions-protocol/-init-.html
new file mode 100644
index 0000000000..8817bfc250
--- /dev/null
+++ b/docs/build/html/api/net.corda.protocols/-resolve-transactions-protocol/-init-.html
@@ -0,0 +1,30 @@
+
+
+ResolveTransactionsProtocol. -
+
+
+
+net.corda.protocols / ResolveTransactionsProtocol / <init>
+
+<init>
+ResolveTransactionsProtocol ( stx : SignedTransaction , otherSide : Party )
+ResolveTransactionsProtocol ( wtx : WireTransaction , otherSide : Party )
+Resolve the full history of a transaction and verify it with its dependencies.
+
+
+ResolveTransactionsProtocol ( txHashes : Set < SecureHash > , otherSide : Party )
+This protocol is used to verify the validity of a transaction by recursively checking the validity of all the
+dependencies. Once a transaction is checked its inserted into local storage so it can be relayed and wont be
+checked again.
+A couple of constructors are provided that accept a single transaction. When these are used, the dependencies of that
+transaction are resolved and then the transaction itself is verified. Again, if successful, the results are inserted
+into the database as long as a SignedTransaction was provided. If only the WireTransaction form was provided
+then this isnt enough to put into the local database, so only the dependencies are checked and inserted. This way
+to use the protocol is helpful when resolving and verifying a finished but partially signed transaction.
+The protocol returns a list of verified LedgerTransaction objects, in a depth-first order.
+
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.protocols/-resolve-transactions-protocol/call.html b/docs/build/html/api/net.corda.protocols/-resolve-transactions-protocol/call.html
new file mode 100644
index 0000000000..61bf464537
--- /dev/null
+++ b/docs/build/html/api/net.corda.protocols/-resolve-transactions-protocol/call.html
@@ -0,0 +1,17 @@
+
+
+ResolveTransactionsProtocol.call -
+
+
+
+net.corda.protocols / ResolveTransactionsProtocol / call
+
+call
+
+fun call ( ) : List < LedgerTransaction >
+Overrides ProtocolLogic.call
+This is where you fill out your business logic.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.protocols/-resolve-transactions-protocol/index.html b/docs/build/html/api/net.corda.protocols/-resolve-transactions-protocol/index.html
new file mode 100644
index 0000000000..95d64cf3d7
--- /dev/null
+++ b/docs/build/html/api/net.corda.protocols/-resolve-transactions-protocol/index.html
@@ -0,0 +1,162 @@
+
+
+ResolveTransactionsProtocol -
+
+
+
+net.corda.protocols / ResolveTransactionsProtocol
+
+ResolveTransactionsProtocol
+class ResolveTransactionsProtocol : ProtocolLogic < List < LedgerTransaction > >
+This protocol is used to verify the validity of a transaction by recursively checking the validity of all the
+dependencies. Once a transaction is checked its inserted into local storage so it can be relayed and wont be
+checked again.
+A couple of constructors are provided that accept a single transaction. When these are used, the dependencies of that
+transaction are resolved and then the transaction itself is verified. Again, if successful, the results are inserted
+into the database as long as a SignedTransaction was provided. If only the WireTransaction form was provided
+then this isnt enough to put into the local database, so only the dependencies are checked and inserted. This way
+to use the protocol is helpful when resolving and verifying a finished but partially signed transaction.
+The protocol returns a list of verified LedgerTransaction objects, in a depth-first order.
+
+
+
+
+Exceptions
+
+Constructors
+
+
+
+
+<init>
+
+ResolveTransactionsProtocol ( stx : SignedTransaction , otherSide : Party )
+ResolveTransactionsProtocol ( wtx : WireTransaction , otherSide : Party )
Resolve the full history of a transaction and verify it with its dependencies.
+ResolveTransactionsProtocol ( txHashes : Set < SecureHash > , otherSide : Party )
This protocol is used to verify the validity of a transaction by recursively checking the validity of all the
+dependencies. Once a transaction is checked its inserted into local storage so it can be relayed and wont be
+checked again.
+
+
+
+
+Properties
+
+
+
+
+transactionCountLimit
+
+var transactionCountLimit : Int
The maximum number of transactions this protocol will try to download before bailing out.
+
+
+
+
+Inherited Properties
+
+
+
+
+logger
+
+val logger : <ERROR CLASS>
This is where you should log things to.
+
+
+
+
+progressTracker
+
+open val progressTracker : ProgressTracker ?
Override this to provide a ProgressTracker . If one is provided and stepped, the framework will do something
+helpful with the progress reports. If this protocol is invoked as a sub-protocol of another, then the
+tracker will be made a child of the current step in the parent. If its null, this protocol doesnt track
+progress.
+
+
+
+
+psm
+
+lateinit var psm : ProtocolStateMachine < * >
Reference to the Fiber instance that is the top level controller for the entire flow.
+
+
+
+
+serviceHub
+
+val serviceHub : ServiceHub
Provides access to big, heavy classes that may be reconstructed from time to time, e.g. across restarts. It is
+only available once the protocol has started, which means it cannnot be accessed in the constructor. Either
+access this lazily or from inside call .
+
+
+
+
+Functions
+
+
+
+
+call
+
+fun call ( ) : List < LedgerTransaction >
This is where you fill out your business logic.
+
+
+
+
+Inherited Functions
+
+
+
diff --git a/docs/build/html/api/net.corda.protocols/-resolve-transactions-protocol/transaction-count-limit.html b/docs/build/html/api/net.corda.protocols/-resolve-transactions-protocol/transaction-count-limit.html
new file mode 100644
index 0000000000..0240a63f8b
--- /dev/null
+++ b/docs/build/html/api/net.corda.protocols/-resolve-transactions-protocol/transaction-count-limit.html
@@ -0,0 +1,16 @@
+
+
+ResolveTransactionsProtocol.transactionCountLimit -
+
+
+
+net.corda.protocols / ResolveTransactionsProtocol / transactionCountLimit
+
+transactionCountLimit
+
+var transactionCountLimit : Int
+The maximum number of transactions this protocol will try to download before bailing out.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.protocols/-service-request-message/index.html b/docs/build/html/api/net.corda.protocols/-service-request-message/index.html
new file mode 100644
index 0000000000..fc47bebded
--- /dev/null
+++ b/docs/build/html/api/net.corda.protocols/-service-request-message/index.html
@@ -0,0 +1,61 @@
+
+
+ServiceRequestMessage -
+
+
+
+net.corda.protocols / ServiceRequestMessage
+
+ServiceRequestMessage
+interface ServiceRequestMessage
+Abstract superclass for request messages sent to services which expect a reply.
+
+
+Properties
+
+Inheritors
+
+
+
diff --git a/docs/build/html/api/net.corda.protocols/-service-request-message/reply-to.html b/docs/build/html/api/net.corda.protocols/-service-request-message/reply-to.html
new file mode 100644
index 0000000000..56e3969344
--- /dev/null
+++ b/docs/build/html/api/net.corda.protocols/-service-request-message/reply-to.html
@@ -0,0 +1,15 @@
+
+
+ServiceRequestMessage.replyTo -
+
+
+
+net.corda.protocols / ServiceRequestMessage / replyTo
+
+replyTo
+
+abstract val replyTo : SingleMessageRecipient
+
+
+
+
diff --git a/docs/build/html/api/net.corda.protocols/-service-request-message/session-i-d.html b/docs/build/html/api/net.corda.protocols/-service-request-message/session-i-d.html
new file mode 100644
index 0000000000..dc7064a176
--- /dev/null
+++ b/docs/build/html/api/net.corda.protocols/-service-request-message/session-i-d.html
@@ -0,0 +1,15 @@
+
+
+ServiceRequestMessage.sessionID -
+
+
+
+net.corda.protocols / ServiceRequestMessage / sessionID
+
+sessionID
+
+abstract val sessionID : Long
+
+
+
+
diff --git a/docs/build/html/api/net.corda.protocols/-state-replacement-exception/-init-.html b/docs/build/html/api/net.corda.protocols/-state-replacement-exception/-init-.html
new file mode 100644
index 0000000000..0fd690543c
--- /dev/null
+++ b/docs/build/html/api/net.corda.protocols/-state-replacement-exception/-init-.html
@@ -0,0 +1,14 @@
+
+
+StateReplacementException. -
+
+
+
+net.corda.protocols / StateReplacementException / <init>
+
+<init>
+StateReplacementException ( error : StateReplacementRefused )
+
+
+
+
diff --git a/docs/build/html/api/net.corda.protocols/-state-replacement-exception/error.html b/docs/build/html/api/net.corda.protocols/-state-replacement-exception/error.html
new file mode 100644
index 0000000000..c72219cb85
--- /dev/null
+++ b/docs/build/html/api/net.corda.protocols/-state-replacement-exception/error.html
@@ -0,0 +1,15 @@
+
+
+StateReplacementException.error -
+
+
+
+net.corda.protocols / StateReplacementException / error
+
+error
+
+val error : StateReplacementRefused
+
+
+
+
diff --git a/docs/build/html/api/net.corda.protocols/-state-replacement-exception/index.html b/docs/build/html/api/net.corda.protocols/-state-replacement-exception/index.html
new file mode 100644
index 0000000000..e65181bf47
--- /dev/null
+++ b/docs/build/html/api/net.corda.protocols/-state-replacement-exception/index.html
@@ -0,0 +1,47 @@
+
+
+StateReplacementException -
+
+
+
+net.corda.protocols / StateReplacementException
+
+StateReplacementException
+class StateReplacementException : Exception
+
+
+Constructors
+
+Properties
+
+Extension Properties
+
+
+
+
+rootCause
+
+val Throwable . rootCause : Throwable
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.protocols/-state-replacement-refused/-init-.html b/docs/build/html/api/net.corda.protocols/-state-replacement-refused/-init-.html
new file mode 100644
index 0000000000..ac33a950f3
--- /dev/null
+++ b/docs/build/html/api/net.corda.protocols/-state-replacement-refused/-init-.html
@@ -0,0 +1,15 @@
+
+
+StateReplacementRefused. -
+
+
+
+net.corda.protocols / StateReplacementRefused / <init>
+
+<init>
+StateReplacementRefused ( identity : Party , state : StateRef , detail : String ? )
+Thrown when a participant refuses the proposed state replacement
+
+
+
+
diff --git a/docs/build/html/api/net.corda.protocols/-state-replacement-refused/detail.html b/docs/build/html/api/net.corda.protocols/-state-replacement-refused/detail.html
new file mode 100644
index 0000000000..915231936d
--- /dev/null
+++ b/docs/build/html/api/net.corda.protocols/-state-replacement-refused/detail.html
@@ -0,0 +1,15 @@
+
+
+StateReplacementRefused.detail -
+
+
+
+net.corda.protocols / StateReplacementRefused / detail
+
+detail
+
+val detail : String ?
+
+
+
+
diff --git a/docs/build/html/api/net.corda.protocols/-state-replacement-refused/identity.html b/docs/build/html/api/net.corda.protocols/-state-replacement-refused/identity.html
new file mode 100644
index 0000000000..9211c8fe20
--- /dev/null
+++ b/docs/build/html/api/net.corda.protocols/-state-replacement-refused/identity.html
@@ -0,0 +1,15 @@
+
+
+StateReplacementRefused.identity -
+
+
+
+net.corda.protocols / StateReplacementRefused / identity
+
+identity
+
+val identity : Party
+
+
+
+
diff --git a/docs/build/html/api/net.corda.protocols/-state-replacement-refused/index.html b/docs/build/html/api/net.corda.protocols/-state-replacement-refused/index.html
new file mode 100644
index 0000000000..b5bb94aa36
--- /dev/null
+++ b/docs/build/html/api/net.corda.protocols/-state-replacement-refused/index.html
@@ -0,0 +1,61 @@
+
+
+StateReplacementRefused -
+
+
+
+net.corda.protocols / StateReplacementRefused
+
+StateReplacementRefused
+class StateReplacementRefused
+Thrown when a participant refuses the proposed state replacement
+
+
+Constructors
+
+
+
+
+<init>
+
+StateReplacementRefused ( identity : Party , state : StateRef , detail : String ? )
Thrown when a participant refuses the proposed state replacement
+
+
+
+
+Properties
+
+Functions
+
+
+
+
+toString
+
+fun toString ( ) : String
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.protocols/-state-replacement-refused/state.html b/docs/build/html/api/net.corda.protocols/-state-replacement-refused/state.html
new file mode 100644
index 0000000000..bc41afdad2
--- /dev/null
+++ b/docs/build/html/api/net.corda.protocols/-state-replacement-refused/state.html
@@ -0,0 +1,15 @@
+
+
+StateReplacementRefused.state -
+
+
+
+net.corda.protocols / StateReplacementRefused / state
+
+state
+
+val state : StateRef
+
+
+
+
diff --git a/docs/build/html/api/net.corda.protocols/-state-replacement-refused/to-string.html b/docs/build/html/api/net.corda.protocols/-state-replacement-refused/to-string.html
new file mode 100644
index 0000000000..b18f3e687f
--- /dev/null
+++ b/docs/build/html/api/net.corda.protocols/-state-replacement-refused/to-string.html
@@ -0,0 +1,15 @@
+
+
+StateReplacementRefused.toString -
+
+
+
+net.corda.protocols / StateReplacementRefused / toString
+
+toString
+
+fun toString ( ) : String
+
+
+
+
diff --git a/docs/build/html/api/net.corda.protocols/-two-party-deal-protocol/-acceptor/-init-.html b/docs/build/html/api/net.corda.protocols/-two-party-deal-protocol/-acceptor/-init-.html
new file mode 100644
index 0000000000..14141cbfc5
--- /dev/null
+++ b/docs/build/html/api/net.corda.protocols/-two-party-deal-protocol/-acceptor/-init-.html
@@ -0,0 +1,15 @@
+
+
+TwoPartyDealProtocol.Acceptor. -
+
+
+
+net.corda.protocols / TwoPartyDealProtocol / Acceptor / <init>
+
+<init>
+Acceptor ( otherParty : Party , progressTracker : ProgressTracker = Secondary.tracker())
+One side of the protocol for inserting a pre-agreed deal.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.protocols/-two-party-deal-protocol/-acceptor/assemble-shared-t-x.html b/docs/build/html/api/net.corda.protocols/-two-party-deal-protocol/-acceptor/assemble-shared-t-x.html
new file mode 100644
index 0000000000..3bc31e5222
--- /dev/null
+++ b/docs/build/html/api/net.corda.protocols/-two-party-deal-protocol/-acceptor/assemble-shared-t-x.html
@@ -0,0 +1,15 @@
+
+
+TwoPartyDealProtocol.Acceptor.assembleSharedTX -
+
+
+
+net.corda.protocols / TwoPartyDealProtocol / Acceptor / assembleSharedTX
+
+assembleSharedTX
+
+protected open fun assembleSharedTX ( handshake : Handshake < AutoOffer > ) : <ERROR CLASS> < TransactionBuilder , List < PublicKey > >
+
+
+
+
diff --git a/docs/build/html/api/net.corda.protocols/-two-party-deal-protocol/-acceptor/index.html b/docs/build/html/api/net.corda.protocols/-two-party-deal-protocol/-acceptor/index.html
new file mode 100644
index 0000000000..2d7feb32ff
--- /dev/null
+++ b/docs/build/html/api/net.corda.protocols/-two-party-deal-protocol/-acceptor/index.html
@@ -0,0 +1,77 @@
+
+
+TwoPartyDealProtocol.Acceptor -
+
+
+
+net.corda.protocols / TwoPartyDealProtocol / Acceptor
+
+Acceptor
+class Acceptor : Secondary < AutoOffer >
+One side of the protocol for inserting a pre-agreed deal.
+
+
+Constructors
+
+
+
+
+<init>
+
+Acceptor ( otherParty : Party , progressTracker : ProgressTracker = Secondary.tracker())
One side of the protocol for inserting a pre-agreed deal.
+
+
+
+
+Properties
+
+
+
+
+otherParty
+
+open val otherParty : Party
+
+
+
+progressTracker
+
+open val progressTracker : ProgressTracker
Override this to provide a ProgressTracker . If one is provided and stepped, the framework will do something
+helpful with the progress reports. If this protocol is invoked as a sub-protocol of another, then the
+tracker will be made a child of the current step in the parent. If its null, this protocol doesnt track
+progress.
+
+
+
+
+Functions
+
+Inherited Functions
+
+
+
diff --git a/docs/build/html/api/net.corda.protocols/-two-party-deal-protocol/-acceptor/other-party.html b/docs/build/html/api/net.corda.protocols/-two-party-deal-protocol/-acceptor/other-party.html
new file mode 100644
index 0000000000..e20cc8b711
--- /dev/null
+++ b/docs/build/html/api/net.corda.protocols/-two-party-deal-protocol/-acceptor/other-party.html
@@ -0,0 +1,16 @@
+
+
+TwoPartyDealProtocol.Acceptor.otherParty -
+
+
+
+net.corda.protocols / TwoPartyDealProtocol / Acceptor / otherParty
+
+otherParty
+
+open val otherParty : Party
+Overrides Secondary.otherParty
+
+
+
+
diff --git a/docs/build/html/api/net.corda.protocols/-two-party-deal-protocol/-acceptor/progress-tracker.html b/docs/build/html/api/net.corda.protocols/-two-party-deal-protocol/-acceptor/progress-tracker.html
new file mode 100644
index 0000000000..2a2c4190b1
--- /dev/null
+++ b/docs/build/html/api/net.corda.protocols/-two-party-deal-protocol/-acceptor/progress-tracker.html
@@ -0,0 +1,24 @@
+
+
+TwoPartyDealProtocol.Acceptor.progressTracker -
+
+
+
+net.corda.protocols / TwoPartyDealProtocol / Acceptor / progressTracker
+
+progressTracker
+
+open val progressTracker : ProgressTracker
+Overrides Secondary.progressTracker
+Override this to provide a ProgressTracker . If one is provided and stepped, the framework will do something
+helpful with the progress reports. If this protocol is invoked as a sub-protocol of another, then the
+tracker will be made a child of the current step in the parent. If its null, this protocol doesnt track
+progress.
+Note that this has to return a tracker before the protocol is invoked. You cant change your mind half way
+through.
+
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.protocols/-two-party-deal-protocol/-acceptor/validate-handshake.html b/docs/build/html/api/net.corda.protocols/-two-party-deal-protocol/-acceptor/validate-handshake.html
new file mode 100644
index 0000000000..202a0f82c7
--- /dev/null
+++ b/docs/build/html/api/net.corda.protocols/-two-party-deal-protocol/-acceptor/validate-handshake.html
@@ -0,0 +1,15 @@
+
+
+TwoPartyDealProtocol.Acceptor.validateHandshake -
+
+
+
+net.corda.protocols / TwoPartyDealProtocol / Acceptor / validateHandshake
+
+validateHandshake
+
+protected open fun validateHandshake ( handshake : Handshake < AutoOffer > ) : Handshake < AutoOffer >
+
+
+
+
diff --git a/docs/build/html/api/net.corda.protocols/-two-party-deal-protocol/-auto-offer/-init-.html b/docs/build/html/api/net.corda.protocols/-two-party-deal-protocol/-auto-offer/-init-.html
new file mode 100644
index 0000000000..baf68266b2
--- /dev/null
+++ b/docs/build/html/api/net.corda.protocols/-two-party-deal-protocol/-auto-offer/-init-.html
@@ -0,0 +1,14 @@
+
+
+TwoPartyDealProtocol.AutoOffer. -
+
+
+
+net.corda.protocols / TwoPartyDealProtocol / AutoOffer / <init>
+
+<init>
+AutoOffer ( notary : Party , dealBeingOffered : DealState )
+
+
+
+
diff --git a/docs/build/html/api/net.corda.protocols/-two-party-deal-protocol/-auto-offer/deal-being-offered.html b/docs/build/html/api/net.corda.protocols/-two-party-deal-protocol/-auto-offer/deal-being-offered.html
new file mode 100644
index 0000000000..c45f5fb5f4
--- /dev/null
+++ b/docs/build/html/api/net.corda.protocols/-two-party-deal-protocol/-auto-offer/deal-being-offered.html
@@ -0,0 +1,15 @@
+
+
+TwoPartyDealProtocol.AutoOffer.dealBeingOffered -
+
+
+
+net.corda.protocols / TwoPartyDealProtocol / AutoOffer / dealBeingOffered
+
+dealBeingOffered
+
+val dealBeingOffered : DealState
+
+
+
+
diff --git a/docs/build/html/api/net.corda.protocols/-two-party-deal-protocol/-auto-offer/index.html b/docs/build/html/api/net.corda.protocols/-two-party-deal-protocol/-auto-offer/index.html
new file mode 100644
index 0000000000..8ffebbd33b
--- /dev/null
+++ b/docs/build/html/api/net.corda.protocols/-two-party-deal-protocol/-auto-offer/index.html
@@ -0,0 +1,42 @@
+
+
+TwoPartyDealProtocol.AutoOffer -
+
+
+
+net.corda.protocols / TwoPartyDealProtocol / AutoOffer
+
+AutoOffer
+data class AutoOffer
+
+
+Constructors
+
+Properties
+
+
+
diff --git a/docs/build/html/api/net.corda.protocols/-two-party-deal-protocol/-auto-offer/notary.html b/docs/build/html/api/net.corda.protocols/-two-party-deal-protocol/-auto-offer/notary.html
new file mode 100644
index 0000000000..a6e07b2b39
--- /dev/null
+++ b/docs/build/html/api/net.corda.protocols/-two-party-deal-protocol/-auto-offer/notary.html
@@ -0,0 +1,15 @@
+
+
+TwoPartyDealProtocol.AutoOffer.notary -
+
+
+
+net.corda.protocols / TwoPartyDealProtocol / AutoOffer / notary
+
+notary
+
+val notary : Party
+
+
+
+
diff --git a/docs/build/html/api/net.corda.protocols/-two-party-deal-protocol/-deal-mismatch-exception/-init-.html b/docs/build/html/api/net.corda.protocols/-two-party-deal-protocol/-deal-mismatch-exception/-init-.html
new file mode 100644
index 0000000000..0830290558
--- /dev/null
+++ b/docs/build/html/api/net.corda.protocols/-two-party-deal-protocol/-deal-mismatch-exception/-init-.html
@@ -0,0 +1,14 @@
+
+
+TwoPartyDealProtocol.DealMismatchException. -
+
+
+
+net.corda.protocols / TwoPartyDealProtocol / DealMismatchException / <init>
+
+<init>
+DealMismatchException ( expectedDeal : ContractState , actualDeal : ContractState )
+
+
+
+
diff --git a/docs/build/html/api/net.corda.protocols/-two-party-deal-protocol/-deal-mismatch-exception/actual-deal.html b/docs/build/html/api/net.corda.protocols/-two-party-deal-protocol/-deal-mismatch-exception/actual-deal.html
new file mode 100644
index 0000000000..a5f597ce86
--- /dev/null
+++ b/docs/build/html/api/net.corda.protocols/-two-party-deal-protocol/-deal-mismatch-exception/actual-deal.html
@@ -0,0 +1,15 @@
+
+
+TwoPartyDealProtocol.DealMismatchException.actualDeal -
+
+
+
+net.corda.protocols / TwoPartyDealProtocol / DealMismatchException / actualDeal
+
+actualDeal
+
+val actualDeal : ContractState
+
+
+
+
diff --git a/docs/build/html/api/net.corda.protocols/-two-party-deal-protocol/-deal-mismatch-exception/expected-deal.html b/docs/build/html/api/net.corda.protocols/-two-party-deal-protocol/-deal-mismatch-exception/expected-deal.html
new file mode 100644
index 0000000000..03ae76f560
--- /dev/null
+++ b/docs/build/html/api/net.corda.protocols/-two-party-deal-protocol/-deal-mismatch-exception/expected-deal.html
@@ -0,0 +1,15 @@
+
+
+TwoPartyDealProtocol.DealMismatchException.expectedDeal -
+
+
+
+net.corda.protocols / TwoPartyDealProtocol / DealMismatchException / expectedDeal
+
+expectedDeal
+
+val expectedDeal : ContractState
+
+
+
+
diff --git a/docs/build/html/api/net.corda.protocols/-two-party-deal-protocol/-deal-mismatch-exception/index.html b/docs/build/html/api/net.corda.protocols/-two-party-deal-protocol/-deal-mismatch-exception/index.html
new file mode 100644
index 0000000000..8935edb3bb
--- /dev/null
+++ b/docs/build/html/api/net.corda.protocols/-two-party-deal-protocol/-deal-mismatch-exception/index.html
@@ -0,0 +1,53 @@
+
+
+TwoPartyDealProtocol.DealMismatchException -
+
+
+
+net.corda.protocols / TwoPartyDealProtocol / DealMismatchException
+
+DealMismatchException
+class DealMismatchException : Exception
+
+
+Constructors
+
+Properties
+
+Functions
+
+
+
+
+toString
+
+fun toString ( ) : String
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.protocols/-two-party-deal-protocol/-deal-mismatch-exception/to-string.html b/docs/build/html/api/net.corda.protocols/-two-party-deal-protocol/-deal-mismatch-exception/to-string.html
new file mode 100644
index 0000000000..c37b952e0e
--- /dev/null
+++ b/docs/build/html/api/net.corda.protocols/-two-party-deal-protocol/-deal-mismatch-exception/to-string.html
@@ -0,0 +1,15 @@
+
+
+TwoPartyDealProtocol.DealMismatchException.toString -
+
+
+
+net.corda.protocols / TwoPartyDealProtocol / DealMismatchException / toString
+
+toString
+
+fun toString ( ) : String
+
+
+
+
diff --git a/docs/build/html/api/net.corda.protocols/-two-party-deal-protocol/-deal-ref-mismatch-exception/-init-.html b/docs/build/html/api/net.corda.protocols/-two-party-deal-protocol/-deal-ref-mismatch-exception/-init-.html
new file mode 100644
index 0000000000..47b1081b5d
--- /dev/null
+++ b/docs/build/html/api/net.corda.protocols/-two-party-deal-protocol/-deal-ref-mismatch-exception/-init-.html
@@ -0,0 +1,14 @@
+
+
+TwoPartyDealProtocol.DealRefMismatchException. -
+
+
+
+net.corda.protocols / TwoPartyDealProtocol / DealRefMismatchException / <init>
+
+<init>
+DealRefMismatchException ( expectedDeal : StateRef , actualDeal : StateRef )
+
+
+
+
diff --git a/docs/build/html/api/net.corda.protocols/-two-party-deal-protocol/-deal-ref-mismatch-exception/actual-deal.html b/docs/build/html/api/net.corda.protocols/-two-party-deal-protocol/-deal-ref-mismatch-exception/actual-deal.html
new file mode 100644
index 0000000000..3f3e1c3eec
--- /dev/null
+++ b/docs/build/html/api/net.corda.protocols/-two-party-deal-protocol/-deal-ref-mismatch-exception/actual-deal.html
@@ -0,0 +1,15 @@
+
+
+TwoPartyDealProtocol.DealRefMismatchException.actualDeal -
+
+
+
+net.corda.protocols / TwoPartyDealProtocol / DealRefMismatchException / actualDeal
+
+actualDeal
+
+val actualDeal : StateRef
+
+
+
+
diff --git a/docs/build/html/api/net.corda.protocols/-two-party-deal-protocol/-deal-ref-mismatch-exception/expected-deal.html b/docs/build/html/api/net.corda.protocols/-two-party-deal-protocol/-deal-ref-mismatch-exception/expected-deal.html
new file mode 100644
index 0000000000..a7c6779b82
--- /dev/null
+++ b/docs/build/html/api/net.corda.protocols/-two-party-deal-protocol/-deal-ref-mismatch-exception/expected-deal.html
@@ -0,0 +1,15 @@
+
+
+TwoPartyDealProtocol.DealRefMismatchException.expectedDeal -
+
+
+
+net.corda.protocols / TwoPartyDealProtocol / DealRefMismatchException / expectedDeal
+
+expectedDeal
+
+val expectedDeal : StateRef
+
+
+
+
diff --git a/docs/build/html/api/net.corda.protocols/-two-party-deal-protocol/-deal-ref-mismatch-exception/index.html b/docs/build/html/api/net.corda.protocols/-two-party-deal-protocol/-deal-ref-mismatch-exception/index.html
new file mode 100644
index 0000000000..b062012fd9
--- /dev/null
+++ b/docs/build/html/api/net.corda.protocols/-two-party-deal-protocol/-deal-ref-mismatch-exception/index.html
@@ -0,0 +1,53 @@
+
+
+TwoPartyDealProtocol.DealRefMismatchException -
+
+
+
+net.corda.protocols / TwoPartyDealProtocol / DealRefMismatchException
+
+DealRefMismatchException
+class DealRefMismatchException : Exception
+
+
+Constructors
+
+Properties
+
+Functions
+
+
+
+
+toString
+
+fun toString ( ) : String
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.protocols/-two-party-deal-protocol/-deal-ref-mismatch-exception/to-string.html b/docs/build/html/api/net.corda.protocols/-two-party-deal-protocol/-deal-ref-mismatch-exception/to-string.html
new file mode 100644
index 0000000000..fb3a144d14
--- /dev/null
+++ b/docs/build/html/api/net.corda.protocols/-two-party-deal-protocol/-deal-ref-mismatch-exception/to-string.html
@@ -0,0 +1,15 @@
+
+
+TwoPartyDealProtocol.DealRefMismatchException.toString -
+
+
+
+net.corda.protocols / TwoPartyDealProtocol / DealRefMismatchException / toString
+
+toString
+
+fun toString ( ) : String
+
+
+
+
diff --git a/docs/build/html/api/net.corda.protocols/-two-party-deal-protocol/-handshake/-init-.html b/docs/build/html/api/net.corda.protocols/-two-party-deal-protocol/-handshake/-init-.html
new file mode 100644
index 0000000000..f9818906c5
--- /dev/null
+++ b/docs/build/html/api/net.corda.protocols/-two-party-deal-protocol/-handshake/-init-.html
@@ -0,0 +1,14 @@
+
+
+TwoPartyDealProtocol.Handshake. -
+
+
+
+net.corda.protocols / TwoPartyDealProtocol / Handshake / <init>
+
+<init>
+Handshake ( payload : T , publicKey : PublicKey )
+
+
+
+
diff --git a/docs/build/html/api/net.corda.protocols/-two-party-deal-protocol/-handshake/index.html b/docs/build/html/api/net.corda.protocols/-two-party-deal-protocol/-handshake/index.html
new file mode 100644
index 0000000000..19c23778b7
--- /dev/null
+++ b/docs/build/html/api/net.corda.protocols/-two-party-deal-protocol/-handshake/index.html
@@ -0,0 +1,42 @@
+
+
+TwoPartyDealProtocol.Handshake -
+
+
+
+net.corda.protocols / TwoPartyDealProtocol / Handshake
+
+Handshake
+data class Handshake < out T >
+
+
+Constructors
+
+Properties
+
+
+
diff --git a/docs/build/html/api/net.corda.protocols/-two-party-deal-protocol/-handshake/payload.html b/docs/build/html/api/net.corda.protocols/-two-party-deal-protocol/-handshake/payload.html
new file mode 100644
index 0000000000..e22c4c75e6
--- /dev/null
+++ b/docs/build/html/api/net.corda.protocols/-two-party-deal-protocol/-handshake/payload.html
@@ -0,0 +1,15 @@
+
+
+TwoPartyDealProtocol.Handshake.payload -
+
+
+
+net.corda.protocols / TwoPartyDealProtocol / Handshake / payload
+
+payload
+
+val payload : T
+
+
+
+
diff --git a/docs/build/html/api/net.corda.protocols/-two-party-deal-protocol/-handshake/public-key.html b/docs/build/html/api/net.corda.protocols/-two-party-deal-protocol/-handshake/public-key.html
new file mode 100644
index 0000000000..bf14fc3c4e
--- /dev/null
+++ b/docs/build/html/api/net.corda.protocols/-two-party-deal-protocol/-handshake/public-key.html
@@ -0,0 +1,15 @@
+
+
+TwoPartyDealProtocol.Handshake.publicKey -
+
+
+
+net.corda.protocols / TwoPartyDealProtocol / Handshake / publicKey
+
+publicKey
+
+val publicKey : PublicKey
+
+
+
+
diff --git a/docs/build/html/api/net.corda.protocols/-two-party-deal-protocol/-instigator/-init-.html b/docs/build/html/api/net.corda.protocols/-two-party-deal-protocol/-instigator/-init-.html
new file mode 100644
index 0000000000..eca62ba837
--- /dev/null
+++ b/docs/build/html/api/net.corda.protocols/-two-party-deal-protocol/-instigator/-init-.html
@@ -0,0 +1,15 @@
+
+
+TwoPartyDealProtocol.Instigator. -
+
+
+
+net.corda.protocols / TwoPartyDealProtocol / Instigator / <init>
+
+<init>
+Instigator ( otherParty : Party , payload : AutoOffer , myKeyPair : KeyPair , progressTracker : ProgressTracker = Primary.tracker())
+One side of the protocol for inserting a pre-agreed deal.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.protocols/-two-party-deal-protocol/-instigator/index.html b/docs/build/html/api/net.corda.protocols/-two-party-deal-protocol/-instigator/index.html
new file mode 100644
index 0000000000..1305c6da31
--- /dev/null
+++ b/docs/build/html/api/net.corda.protocols/-two-party-deal-protocol/-instigator/index.html
@@ -0,0 +1,105 @@
+
+
+TwoPartyDealProtocol.Instigator -
+
+
+
+net.corda.protocols / TwoPartyDealProtocol / Instigator
+
+Instigator
+class Instigator : Primary
+One side of the protocol for inserting a pre-agreed deal.
+
+
+Constructors
+
+Properties
+
+
+
+
+myKeyPair
+
+open val myKeyPair : KeyPair
+
+
+
+notaryNode
+
+open val notaryNode : NodeInfo
+
+
+
+otherParty
+
+open val otherParty : Party
+
+
+
+payload
+
+open val payload : AutoOffer
+
+
+
+progressTracker
+
+open val progressTracker : ProgressTracker
Override this to provide a ProgressTracker . If one is provided and stepped, the framework will do something
+helpful with the progress reports. If this protocol is invoked as a sub-protocol of another, then the
+tracker will be made a child of the current step in the parent. If its null, this protocol doesnt track
+progress.
+
+
+
+
+Inherited Functions
+
+
+
diff --git a/docs/build/html/api/net.corda.protocols/-two-party-deal-protocol/-instigator/my-key-pair.html b/docs/build/html/api/net.corda.protocols/-two-party-deal-protocol/-instigator/my-key-pair.html
new file mode 100644
index 0000000000..f7882d983b
--- /dev/null
+++ b/docs/build/html/api/net.corda.protocols/-two-party-deal-protocol/-instigator/my-key-pair.html
@@ -0,0 +1,16 @@
+
+
+TwoPartyDealProtocol.Instigator.myKeyPair -
+
+
+
+net.corda.protocols / TwoPartyDealProtocol / Instigator / myKeyPair
+
+myKeyPair
+
+open val myKeyPair : KeyPair
+Overrides Primary.myKeyPair
+
+
+
+
diff --git a/docs/build/html/api/net.corda.protocols/-two-party-deal-protocol/-instigator/notary-node.html b/docs/build/html/api/net.corda.protocols/-two-party-deal-protocol/-instigator/notary-node.html
new file mode 100644
index 0000000000..3a7b0a58df
--- /dev/null
+++ b/docs/build/html/api/net.corda.protocols/-two-party-deal-protocol/-instigator/notary-node.html
@@ -0,0 +1,16 @@
+
+
+TwoPartyDealProtocol.Instigator.notaryNode -
+
+
+
+net.corda.protocols / TwoPartyDealProtocol / Instigator / notaryNode
+
+notaryNode
+
+open val notaryNode : NodeInfo
+Overrides Primary.notaryNode
+
+
+
+
diff --git a/docs/build/html/api/net.corda.protocols/-two-party-deal-protocol/-instigator/other-party.html b/docs/build/html/api/net.corda.protocols/-two-party-deal-protocol/-instigator/other-party.html
new file mode 100644
index 0000000000..f035919340
--- /dev/null
+++ b/docs/build/html/api/net.corda.protocols/-two-party-deal-protocol/-instigator/other-party.html
@@ -0,0 +1,16 @@
+
+
+TwoPartyDealProtocol.Instigator.otherParty -
+
+
+
+net.corda.protocols / TwoPartyDealProtocol / Instigator / otherParty
+
+otherParty
+
+open val otherParty : Party
+Overrides Primary.otherParty
+
+
+
+
diff --git a/docs/build/html/api/net.corda.protocols/-two-party-deal-protocol/-instigator/payload.html b/docs/build/html/api/net.corda.protocols/-two-party-deal-protocol/-instigator/payload.html
new file mode 100644
index 0000000000..5607da93e9
--- /dev/null
+++ b/docs/build/html/api/net.corda.protocols/-two-party-deal-protocol/-instigator/payload.html
@@ -0,0 +1,16 @@
+
+
+TwoPartyDealProtocol.Instigator.payload -
+
+
+
+net.corda.protocols / TwoPartyDealProtocol / Instigator / payload
+
+payload
+
+open val payload : AutoOffer
+Overrides Primary.payload
+
+
+
+
diff --git a/docs/build/html/api/net.corda.protocols/-two-party-deal-protocol/-instigator/progress-tracker.html b/docs/build/html/api/net.corda.protocols/-two-party-deal-protocol/-instigator/progress-tracker.html
new file mode 100644
index 0000000000..85433f0be9
--- /dev/null
+++ b/docs/build/html/api/net.corda.protocols/-two-party-deal-protocol/-instigator/progress-tracker.html
@@ -0,0 +1,24 @@
+
+
+TwoPartyDealProtocol.Instigator.progressTracker -
+
+
+
+net.corda.protocols / TwoPartyDealProtocol / Instigator / progressTracker
+
+progressTracker
+
+open val progressTracker : ProgressTracker
+Overrides Primary.progressTracker
+Override this to provide a ProgressTracker . If one is provided and stepped, the framework will do something
+helpful with the progress reports. If this protocol is invoked as a sub-protocol of another, then the
+tracker will be made a child of the current step in the parent. If its null, this protocol doesnt track
+progress.
+Note that this has to return a tracker before the protocol is invoked. You cant change your mind half way
+through.
+
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.protocols/-two-party-deal-protocol/-marker-for-bogus-regulator-protocol.html b/docs/build/html/api/net.corda.protocols/-two-party-deal-protocol/-marker-for-bogus-regulator-protocol.html
new file mode 100644
index 0000000000..8e7fd488b9
--- /dev/null
+++ b/docs/build/html/api/net.corda.protocols/-two-party-deal-protocol/-marker-for-bogus-regulator-protocol.html
@@ -0,0 +1,16 @@
+
+
+TwoPartyDealProtocol.MarkerForBogusRegulatorProtocol -
+
+
+
+net.corda.protocols / TwoPartyDealProtocol / MarkerForBogusRegulatorProtocol
+
+MarkerForBogusRegulatorProtocol
+interface MarkerForBogusRegulatorProtocol
+Primary at the end sends the signed tx to all the regulator parties. This a seperate workflow which needs a
+sepearate session with the regulator. This interface is used to do that in Primary.getCounterpartyMarker .
+
+
+
+
diff --git a/docs/build/html/api/net.corda.protocols/-two-party-deal-protocol/-primary/-a-w-a-i-t-i-n-g_-p-r-o-p-o-s-a-l.html b/docs/build/html/api/net.corda.protocols/-two-party-deal-protocol/-primary/-a-w-a-i-t-i-n-g_-p-r-o-p-o-s-a-l.html
new file mode 100644
index 0000000000..73862d800e
--- /dev/null
+++ b/docs/build/html/api/net.corda.protocols/-two-party-deal-protocol/-primary/-a-w-a-i-t-i-n-g_-p-r-o-p-o-s-a-l.html
@@ -0,0 +1,42 @@
+
+
+TwoPartyDealProtocol.Primary.AWAITING_PROPOSAL -
+
+
+
+net.corda.protocols / TwoPartyDealProtocol / Primary / AWAITING_PROPOSAL
+
+AWAITING_PROPOSAL
+object AWAITING_PROPOSAL : Step
+
+
+Inherited Properties
+
+
+
+
+changes
+
+open val changes : <ERROR CLASS> < Change >
+
+
+
+label
+
+open val label : String
+
+
+
+Inherited Functions
+
+
+
diff --git a/docs/build/html/api/net.corda.protocols/-two-party-deal-protocol/-primary/-c-o-p-y-i-n-g_-t-o_-r-e-g-u-l-a-t-o-r.html b/docs/build/html/api/net.corda.protocols/-two-party-deal-protocol/-primary/-c-o-p-y-i-n-g_-t-o_-r-e-g-u-l-a-t-o-r.html
new file mode 100644
index 0000000000..1fe5bfd5e1
--- /dev/null
+++ b/docs/build/html/api/net.corda.protocols/-two-party-deal-protocol/-primary/-c-o-p-y-i-n-g_-t-o_-r-e-g-u-l-a-t-o-r.html
@@ -0,0 +1,42 @@
+
+
+TwoPartyDealProtocol.Primary.COPYING_TO_REGULATOR -
+
+
+
+net.corda.protocols / TwoPartyDealProtocol / Primary / COPYING_TO_REGULATOR
+
+COPYING_TO_REGULATOR
+object COPYING_TO_REGULATOR : Step
+
+
+Inherited Properties
+
+
+
+
+changes
+
+open val changes : <ERROR CLASS> < Change >
+
+
+
+label
+
+open val label : String
+
+
+
+Inherited Functions
+
+
+
diff --git a/docs/build/html/api/net.corda.protocols/-two-party-deal-protocol/-primary/-init-.html b/docs/build/html/api/net.corda.protocols/-two-party-deal-protocol/-primary/-init-.html
new file mode 100644
index 0000000000..f6c3a5291c
--- /dev/null
+++ b/docs/build/html/api/net.corda.protocols/-two-party-deal-protocol/-primary/-init-.html
@@ -0,0 +1,19 @@
+
+
+TwoPartyDealProtocol.Primary. -
+
+
+
+net.corda.protocols / TwoPartyDealProtocol / Primary / <init>
+
+<init>
+Primary ( progressTracker : ProgressTracker = Primary.tracker())
+Abstracted bilateral deal protocol participant that initiates communication/handshake.
+Theres a good chance we can push at least some of this logic down into core protocol logic
+and helper methods etc.
+
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.protocols/-two-party-deal-protocol/-primary/-n-o-t-a-r-y.html b/docs/build/html/api/net.corda.protocols/-two-party-deal-protocol/-primary/-n-o-t-a-r-y.html
new file mode 100644
index 0000000000..073f5b39f5
--- /dev/null
+++ b/docs/build/html/api/net.corda.protocols/-two-party-deal-protocol/-primary/-n-o-t-a-r-y.html
@@ -0,0 +1,42 @@
+
+
+TwoPartyDealProtocol.Primary.NOTARY -
+
+
+
+net.corda.protocols / TwoPartyDealProtocol / Primary / NOTARY
+
+NOTARY
+object NOTARY : Step
+
+
+Inherited Properties
+
+
+
+
+changes
+
+open val changes : <ERROR CLASS> < Change >
+
+
+
+label
+
+open val label : String
+
+
+
+Inherited Functions
+
+
+
diff --git a/docs/build/html/api/net.corda.protocols/-two-party-deal-protocol/-primary/-r-e-c-o-r-d-i-n-g.html b/docs/build/html/api/net.corda.protocols/-two-party-deal-protocol/-primary/-r-e-c-o-r-d-i-n-g.html
new file mode 100644
index 0000000000..65a4e47450
--- /dev/null
+++ b/docs/build/html/api/net.corda.protocols/-two-party-deal-protocol/-primary/-r-e-c-o-r-d-i-n-g.html
@@ -0,0 +1,42 @@
+
+
+TwoPartyDealProtocol.Primary.RECORDING -
+
+
+
+net.corda.protocols / TwoPartyDealProtocol / Primary / RECORDING
+
+RECORDING
+object RECORDING : Step
+
+
+Inherited Properties
+
+
+
+
+changes
+
+open val changes : <ERROR CLASS> < Change >
+
+
+
+label
+
+open val label : String
+
+
+
+Inherited Functions
+
+
+
diff --git a/docs/build/html/api/net.corda.protocols/-two-party-deal-protocol/-primary/-s-e-n-d-i-n-g_-s-i-g-s.html b/docs/build/html/api/net.corda.protocols/-two-party-deal-protocol/-primary/-s-e-n-d-i-n-g_-s-i-g-s.html
new file mode 100644
index 0000000000..4c12480715
--- /dev/null
+++ b/docs/build/html/api/net.corda.protocols/-two-party-deal-protocol/-primary/-s-e-n-d-i-n-g_-s-i-g-s.html
@@ -0,0 +1,42 @@
+
+
+TwoPartyDealProtocol.Primary.SENDING_SIGS -
+
+
+
+net.corda.protocols / TwoPartyDealProtocol / Primary / SENDING_SIGS
+
+SENDING_SIGS
+object SENDING_SIGS : Step
+
+
+Inherited Properties
+
+
+
+
+changes
+
+open val changes : <ERROR CLASS> < Change >
+
+
+
+label
+
+open val label : String
+
+
+
+Inherited Functions
+
+
+
diff --git a/docs/build/html/api/net.corda.protocols/-two-party-deal-protocol/-primary/-s-i-g-n-i-n-g.html b/docs/build/html/api/net.corda.protocols/-two-party-deal-protocol/-primary/-s-i-g-n-i-n-g.html
new file mode 100644
index 0000000000..953bbea80c
--- /dev/null
+++ b/docs/build/html/api/net.corda.protocols/-two-party-deal-protocol/-primary/-s-i-g-n-i-n-g.html
@@ -0,0 +1,42 @@
+
+
+TwoPartyDealProtocol.Primary.SIGNING -
+
+
+
+net.corda.protocols / TwoPartyDealProtocol / Primary / SIGNING
+
+SIGNING
+object SIGNING : Step
+
+
+Inherited Properties
+
+
+
+
+changes
+
+open val changes : <ERROR CLASS> < Change >
+
+
+
+label
+
+open val label : String
+
+
+
+Inherited Functions
+
+
+
diff --git a/docs/build/html/api/net.corda.protocols/-two-party-deal-protocol/-primary/-v-e-r-i-f-y-i-n-g.html b/docs/build/html/api/net.corda.protocols/-two-party-deal-protocol/-primary/-v-e-r-i-f-y-i-n-g.html
new file mode 100644
index 0000000000..3834acd83f
--- /dev/null
+++ b/docs/build/html/api/net.corda.protocols/-two-party-deal-protocol/-primary/-v-e-r-i-f-y-i-n-g.html
@@ -0,0 +1,42 @@
+
+
+TwoPartyDealProtocol.Primary.VERIFYING -
+
+
+
+net.corda.protocols / TwoPartyDealProtocol / Primary / VERIFYING
+
+VERIFYING
+object VERIFYING : Step
+
+
+Inherited Properties
+
+
+
+
+changes
+
+open val changes : <ERROR CLASS> < Change >
+
+
+
+label
+
+open val label : String
+
+
+
+Inherited Functions
+
+
+
diff --git a/docs/build/html/api/net.corda.protocols/-two-party-deal-protocol/-primary/call.html b/docs/build/html/api/net.corda.protocols/-two-party-deal-protocol/-primary/call.html
new file mode 100644
index 0000000000..adf0c9ef5a
--- /dev/null
+++ b/docs/build/html/api/net.corda.protocols/-two-party-deal-protocol/-primary/call.html
@@ -0,0 +1,17 @@
+
+
+TwoPartyDealProtocol.Primary.call -
+
+
+
+net.corda.protocols / TwoPartyDealProtocol / Primary / call
+
+call
+
+open fun call ( ) : SignedTransaction
+Overrides ProtocolLogic.call
+This is where you fill out your business logic.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.protocols/-two-party-deal-protocol/-primary/compute-our-signature.html b/docs/build/html/api/net.corda.protocols/-two-party-deal-protocol/-primary/compute-our-signature.html
new file mode 100644
index 0000000000..0ce8f05acb
--- /dev/null
+++ b/docs/build/html/api/net.corda.protocols/-two-party-deal-protocol/-primary/compute-our-signature.html
@@ -0,0 +1,15 @@
+
+
+TwoPartyDealProtocol.Primary.computeOurSignature -
+
+
+
+net.corda.protocols / TwoPartyDealProtocol / Primary / computeOurSignature
+
+computeOurSignature
+
+open fun computeOurSignature ( partialTX : SignedTransaction ) : WithKey
+
+
+
+
diff --git a/docs/build/html/api/net.corda.protocols/-two-party-deal-protocol/-primary/get-counterparty-marker.html b/docs/build/html/api/net.corda.protocols/-two-party-deal-protocol/-primary/get-counterparty-marker.html
new file mode 100644
index 0000000000..607d6e663b
--- /dev/null
+++ b/docs/build/html/api/net.corda.protocols/-two-party-deal-protocol/-primary/get-counterparty-marker.html
@@ -0,0 +1,19 @@
+
+
+TwoPartyDealProtocol.Primary.getCounterpartyMarker -
+
+
+
+net.corda.protocols / TwoPartyDealProtocol / Primary / getCounterpartyMarker
+
+getCounterpartyMarker
+
+open fun getCounterpartyMarker ( party : Party ) : Class < * >
+Overrides ProtocolLogic.getCounterpartyMarker
+Return the marker Class which party has used to register the counterparty protocol that is to execute on the
+other side. The default implementation returns the class object of this ProtocolLogic, but any Class instance
+will do as long as the other side registers with it.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.protocols/-two-party-deal-protocol/-primary/get-partial-transaction.html b/docs/build/html/api/net.corda.protocols/-two-party-deal-protocol/-primary/get-partial-transaction.html
new file mode 100644
index 0000000000..75d7fe79b9
--- /dev/null
+++ b/docs/build/html/api/net.corda.protocols/-two-party-deal-protocol/-primary/get-partial-transaction.html
@@ -0,0 +1,15 @@
+
+
+TwoPartyDealProtocol.Primary.getPartialTransaction -
+
+
+
+net.corda.protocols / TwoPartyDealProtocol / Primary / getPartialTransaction
+
+getPartialTransaction
+
+fun getPartialTransaction ( ) : UntrustworthyData < SignedTransaction >
+
+
+
+
diff --git a/docs/build/html/api/net.corda.protocols/-two-party-deal-protocol/-primary/index.html b/docs/build/html/api/net.corda.protocols/-two-party-deal-protocol/-primary/index.html
new file mode 100644
index 0000000000..8c99db0d8d
--- /dev/null
+++ b/docs/build/html/api/net.corda.protocols/-two-party-deal-protocol/-primary/index.html
@@ -0,0 +1,246 @@
+
+
+TwoPartyDealProtocol.Primary -
+
+
+
+net.corda.protocols / TwoPartyDealProtocol / Primary
+
+Primary
+abstract class Primary : ProtocolLogic < SignedTransaction >
+Abstracted bilateral deal protocol participant that initiates communication/handshake.
+Theres a good chance we can push at least some of this logic down into core protocol logic
+and helper methods etc.
+
+
+
+
+Types
+
+Constructors
+
+
+
+
+<init>
+
+Primary ( progressTracker : ProgressTracker = Primary.tracker())
Abstracted bilateral deal protocol participant that initiates communication/handshake.
+
+
+
+
+Properties
+
+
+
+
+myKeyPair
+
+abstract val myKeyPair : KeyPair
+
+
+
+notaryNode
+
+abstract val notaryNode : NodeInfo
+
+
+
+otherParty
+
+abstract val otherParty : Party
+
+
+
+payload
+
+abstract val payload : Any
+
+
+
+progressTracker
+
+open val progressTracker : ProgressTracker
Override this to provide a ProgressTracker . If one is provided and stepped, the framework will do something
+helpful with the progress reports. If this protocol is invoked as a sub-protocol of another, then the
+tracker will be made a child of the current step in the parent. If its null, this protocol doesnt track
+progress.
+
+
+
+
+Inherited Properties
+
+
+
+
+logger
+
+val logger : <ERROR CLASS>
This is where you should log things to.
+
+
+
+
+psm
+
+lateinit var psm : ProtocolStateMachine < * >
Reference to the Fiber instance that is the top level controller for the entire flow.
+
+
+
+
+serviceHub
+
+val serviceHub : ServiceHub
Provides access to big, heavy classes that may be reconstructed from time to time, e.g. across restarts. It is
+only available once the protocol has started, which means it cannnot be accessed in the constructor. Either
+access this lazily or from inside call .
+
+
+
+
+Functions
+
+Inherited Functions
+
+Companion Object Functions
+
+Inheritors
+
+
+
+
+Instigator
+
+class Instigator : Primary
One side of the protocol for inserting a pre-agreed deal.
+
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.protocols/-two-party-deal-protocol/-primary/my-key-pair.html b/docs/build/html/api/net.corda.protocols/-two-party-deal-protocol/-primary/my-key-pair.html
new file mode 100644
index 0000000000..19ec75a8af
--- /dev/null
+++ b/docs/build/html/api/net.corda.protocols/-two-party-deal-protocol/-primary/my-key-pair.html
@@ -0,0 +1,15 @@
+
+
+TwoPartyDealProtocol.Primary.myKeyPair -
+
+
+
+net.corda.protocols / TwoPartyDealProtocol / Primary / myKeyPair
+
+myKeyPair
+
+abstract val myKeyPair : KeyPair
+
+
+
+
diff --git a/docs/build/html/api/net.corda.protocols/-two-party-deal-protocol/-primary/notary-node.html b/docs/build/html/api/net.corda.protocols/-two-party-deal-protocol/-primary/notary-node.html
new file mode 100644
index 0000000000..26aed29bf0
--- /dev/null
+++ b/docs/build/html/api/net.corda.protocols/-two-party-deal-protocol/-primary/notary-node.html
@@ -0,0 +1,15 @@
+
+
+TwoPartyDealProtocol.Primary.notaryNode -
+
+
+
+net.corda.protocols / TwoPartyDealProtocol / Primary / notaryNode
+
+notaryNode
+
+abstract val notaryNode : NodeInfo
+
+
+
+
diff --git a/docs/build/html/api/net.corda.protocols/-two-party-deal-protocol/-primary/other-party.html b/docs/build/html/api/net.corda.protocols/-two-party-deal-protocol/-primary/other-party.html
new file mode 100644
index 0000000000..5fee2b93c4
--- /dev/null
+++ b/docs/build/html/api/net.corda.protocols/-two-party-deal-protocol/-primary/other-party.html
@@ -0,0 +1,15 @@
+
+
+TwoPartyDealProtocol.Primary.otherParty -
+
+
+
+net.corda.protocols / TwoPartyDealProtocol / Primary / otherParty
+
+otherParty
+
+abstract val otherParty : Party
+
+
+
+
diff --git a/docs/build/html/api/net.corda.protocols/-two-party-deal-protocol/-primary/payload.html b/docs/build/html/api/net.corda.protocols/-two-party-deal-protocol/-primary/payload.html
new file mode 100644
index 0000000000..e0f66d1998
--- /dev/null
+++ b/docs/build/html/api/net.corda.protocols/-two-party-deal-protocol/-primary/payload.html
@@ -0,0 +1,15 @@
+
+
+TwoPartyDealProtocol.Primary.payload -
+
+
+
+net.corda.protocols / TwoPartyDealProtocol / Primary / payload
+
+payload
+
+abstract val payload : Any
+
+
+
+
diff --git a/docs/build/html/api/net.corda.protocols/-two-party-deal-protocol/-primary/progress-tracker.html b/docs/build/html/api/net.corda.protocols/-two-party-deal-protocol/-primary/progress-tracker.html
new file mode 100644
index 0000000000..eac5e58f2d
--- /dev/null
+++ b/docs/build/html/api/net.corda.protocols/-two-party-deal-protocol/-primary/progress-tracker.html
@@ -0,0 +1,24 @@
+
+
+TwoPartyDealProtocol.Primary.progressTracker -
+
+
+
+net.corda.protocols / TwoPartyDealProtocol / Primary / progressTracker
+
+progressTracker
+
+open val progressTracker : ProgressTracker
+Overrides ProtocolLogic.progressTracker
+Override this to provide a ProgressTracker . If one is provided and stepped, the framework will do something
+helpful with the progress reports. If this protocol is invoked as a sub-protocol of another, then the
+tracker will be made a child of the current step in the parent. If its null, this protocol doesnt track
+progress.
+Note that this has to return a tracker before the protocol is invoked. You cant change your mind half way
+through.
+
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.protocols/-two-party-deal-protocol/-primary/tracker.html b/docs/build/html/api/net.corda.protocols/-two-party-deal-protocol/-primary/tracker.html
new file mode 100644
index 0000000000..cac8927c84
--- /dev/null
+++ b/docs/build/html/api/net.corda.protocols/-two-party-deal-protocol/-primary/tracker.html
@@ -0,0 +1,15 @@
+
+
+TwoPartyDealProtocol.Primary.tracker -
+
+
+
+net.corda.protocols / TwoPartyDealProtocol / Primary / tracker
+
+tracker
+
+fun tracker ( ) : ProgressTracker
+
+
+
+
diff --git a/docs/build/html/api/net.corda.protocols/-two-party-deal-protocol/-primary/verify-partial-transaction.html b/docs/build/html/api/net.corda.protocols/-two-party-deal-protocol/-primary/verify-partial-transaction.html
new file mode 100644
index 0000000000..cda8a46f3e
--- /dev/null
+++ b/docs/build/html/api/net.corda.protocols/-two-party-deal-protocol/-primary/verify-partial-transaction.html
@@ -0,0 +1,15 @@
+
+
+TwoPartyDealProtocol.Primary.verifyPartialTransaction -
+
+
+
+net.corda.protocols / TwoPartyDealProtocol / Primary / verifyPartialTransaction
+
+verifyPartialTransaction
+
+fun verifyPartialTransaction ( untrustedPartialTX : UntrustworthyData < SignedTransaction > ) : SignedTransaction
+
+
+
+
diff --git a/docs/build/html/api/net.corda.protocols/-two-party-deal-protocol/-secondary/-init-.html b/docs/build/html/api/net.corda.protocols/-two-party-deal-protocol/-secondary/-init-.html
new file mode 100644
index 0000000000..4760ca78e1
--- /dev/null
+++ b/docs/build/html/api/net.corda.protocols/-two-party-deal-protocol/-secondary/-init-.html
@@ -0,0 +1,19 @@
+
+
+TwoPartyDealProtocol.Secondary. -
+
+
+
+net.corda.protocols / TwoPartyDealProtocol / Secondary / <init>
+
+<init>
+Secondary ( progressTracker : ProgressTracker = Secondary.tracker())
+Abstracted bilateral deal protocol participant that is recipient of initial communication.
+Theres a good chance we can push at least some of this logic down into core protocol logic
+and helper methods etc.
+
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.protocols/-two-party-deal-protocol/-secondary/-r-e-c-e-i-v-i-n-g.html b/docs/build/html/api/net.corda.protocols/-two-party-deal-protocol/-secondary/-r-e-c-e-i-v-i-n-g.html
new file mode 100644
index 0000000000..7bfca10652
--- /dev/null
+++ b/docs/build/html/api/net.corda.protocols/-two-party-deal-protocol/-secondary/-r-e-c-e-i-v-i-n-g.html
@@ -0,0 +1,42 @@
+
+
+TwoPartyDealProtocol.Secondary.RECEIVING -
+
+
+
+net.corda.protocols / TwoPartyDealProtocol / Secondary / RECEIVING
+
+RECEIVING
+object RECEIVING : Step
+
+
+Inherited Properties
+
+
+
+
+changes
+
+open val changes : <ERROR CLASS> < Change >
+
+
+
+label
+
+open val label : String
+
+
+
+Inherited Functions
+
+
+
diff --git a/docs/build/html/api/net.corda.protocols/-two-party-deal-protocol/-secondary/-r-e-c-o-r-d-i-n-g.html b/docs/build/html/api/net.corda.protocols/-two-party-deal-protocol/-secondary/-r-e-c-o-r-d-i-n-g.html
new file mode 100644
index 0000000000..aa565bc9df
--- /dev/null
+++ b/docs/build/html/api/net.corda.protocols/-two-party-deal-protocol/-secondary/-r-e-c-o-r-d-i-n-g.html
@@ -0,0 +1,42 @@
+
+
+TwoPartyDealProtocol.Secondary.RECORDING -
+
+
+
+net.corda.protocols / TwoPartyDealProtocol / Secondary / RECORDING
+
+RECORDING
+object RECORDING : Step
+
+
+Inherited Properties
+
+
+
+
+changes
+
+open val changes : <ERROR CLASS> < Change >
+
+
+
+label
+
+open val label : String
+
+
+
+Inherited Functions
+
+
+
diff --git a/docs/build/html/api/net.corda.protocols/-two-party-deal-protocol/-secondary/-s-i-g-n-i-n-g.html b/docs/build/html/api/net.corda.protocols/-two-party-deal-protocol/-secondary/-s-i-g-n-i-n-g.html
new file mode 100644
index 0000000000..fe9deb61bf
--- /dev/null
+++ b/docs/build/html/api/net.corda.protocols/-two-party-deal-protocol/-secondary/-s-i-g-n-i-n-g.html
@@ -0,0 +1,42 @@
+
+
+TwoPartyDealProtocol.Secondary.SIGNING -
+
+
+
+net.corda.protocols / TwoPartyDealProtocol / Secondary / SIGNING
+
+SIGNING
+object SIGNING : Step
+
+
+Inherited Properties
+
+
+
+
+changes
+
+open val changes : <ERROR CLASS> < Change >
+
+
+
+label
+
+open val label : String
+
+
+
+Inherited Functions
+
+
+
diff --git a/docs/build/html/api/net.corda.protocols/-two-party-deal-protocol/-secondary/-s-w-a-p-p-i-n-g_-s-i-g-n-a-t-u-r-e-s.html b/docs/build/html/api/net.corda.protocols/-two-party-deal-protocol/-secondary/-s-w-a-p-p-i-n-g_-s-i-g-n-a-t-u-r-e-s.html
new file mode 100644
index 0000000000..604964d172
--- /dev/null
+++ b/docs/build/html/api/net.corda.protocols/-two-party-deal-protocol/-secondary/-s-w-a-p-p-i-n-g_-s-i-g-n-a-t-u-r-e-s.html
@@ -0,0 +1,42 @@
+
+
+TwoPartyDealProtocol.Secondary.SWAPPING_SIGNATURES -
+
+
+
+net.corda.protocols / TwoPartyDealProtocol / Secondary / SWAPPING_SIGNATURES
+
+SWAPPING_SIGNATURES
+object SWAPPING_SIGNATURES : Step
+
+
+Inherited Properties
+
+
+
+
+changes
+
+open val changes : <ERROR CLASS> < Change >
+
+
+
+label
+
+open val label : String
+
+
+
+Inherited Functions
+
+
+
diff --git a/docs/build/html/api/net.corda.protocols/-two-party-deal-protocol/-secondary/-v-e-r-i-f-y-i-n-g.html b/docs/build/html/api/net.corda.protocols/-two-party-deal-protocol/-secondary/-v-e-r-i-f-y-i-n-g.html
new file mode 100644
index 0000000000..ae267b237e
--- /dev/null
+++ b/docs/build/html/api/net.corda.protocols/-two-party-deal-protocol/-secondary/-v-e-r-i-f-y-i-n-g.html
@@ -0,0 +1,42 @@
+
+
+TwoPartyDealProtocol.Secondary.VERIFYING -
+
+
+
+net.corda.protocols / TwoPartyDealProtocol / Secondary / VERIFYING
+
+VERIFYING
+object VERIFYING : Step
+
+
+Inherited Properties
+
+
+
+
+changes
+
+open val changes : <ERROR CLASS> < Change >
+
+
+
+label
+
+open val label : String
+
+
+
+Inherited Functions
+
+
+
diff --git a/docs/build/html/api/net.corda.protocols/-two-party-deal-protocol/-secondary/assemble-shared-t-x.html b/docs/build/html/api/net.corda.protocols/-two-party-deal-protocol/-secondary/assemble-shared-t-x.html
new file mode 100644
index 0000000000..040e88b012
--- /dev/null
+++ b/docs/build/html/api/net.corda.protocols/-two-party-deal-protocol/-secondary/assemble-shared-t-x.html
@@ -0,0 +1,15 @@
+
+
+TwoPartyDealProtocol.Secondary.assembleSharedTX -
+
+
+
+net.corda.protocols / TwoPartyDealProtocol / Secondary / assembleSharedTX
+
+assembleSharedTX
+
+protected abstract fun assembleSharedTX ( handshake : Handshake < U > ) : <ERROR CLASS> < TransactionBuilder , List < PublicKey > >
+
+
+
+
diff --git a/docs/build/html/api/net.corda.protocols/-two-party-deal-protocol/-secondary/call.html b/docs/build/html/api/net.corda.protocols/-two-party-deal-protocol/-secondary/call.html
new file mode 100644
index 0000000000..f37f9123dd
--- /dev/null
+++ b/docs/build/html/api/net.corda.protocols/-two-party-deal-protocol/-secondary/call.html
@@ -0,0 +1,17 @@
+
+
+TwoPartyDealProtocol.Secondary.call -
+
+
+
+net.corda.protocols / TwoPartyDealProtocol / Secondary / call
+
+call
+
+open fun call ( ) : SignedTransaction
+Overrides ProtocolLogic.call
+This is where you fill out your business logic.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.protocols/-two-party-deal-protocol/-secondary/index.html b/docs/build/html/api/net.corda.protocols/-two-party-deal-protocol/-secondary/index.html
new file mode 100644
index 0000000000..070a9c9024
--- /dev/null
+++ b/docs/build/html/api/net.corda.protocols/-two-party-deal-protocol/-secondary/index.html
@@ -0,0 +1,210 @@
+
+
+TwoPartyDealProtocol.Secondary -
+
+
+
+net.corda.protocols / TwoPartyDealProtocol / Secondary
+
+Secondary
+abstract class Secondary < U > : ProtocolLogic < SignedTransaction >
+Abstracted bilateral deal protocol participant that is recipient of initial communication.
+Theres a good chance we can push at least some of this logic down into core protocol logic
+and helper methods etc.
+
+
+
+
+Types
+
+Constructors
+
+
+
+
+<init>
+
+Secondary ( progressTracker : ProgressTracker = Secondary.tracker())
Abstracted bilateral deal protocol participant that is recipient of initial communication.
+
+
+
+
+Properties
+
+
+
+
+otherParty
+
+abstract val otherParty : Party
+
+
+
+progressTracker
+
+open val progressTracker : ProgressTracker
Override this to provide a ProgressTracker . If one is provided and stepped, the framework will do something
+helpful with the progress reports. If this protocol is invoked as a sub-protocol of another, then the
+tracker will be made a child of the current step in the parent. If its null, this protocol doesnt track
+progress.
+
+
+
+
+Inherited Properties
+
+
+
+
+logger
+
+val logger : <ERROR CLASS>
This is where you should log things to.
+
+
+
+
+psm
+
+lateinit var psm : ProtocolStateMachine < * >
Reference to the Fiber instance that is the top level controller for the entire flow.
+
+
+
+
+serviceHub
+
+val serviceHub : ServiceHub
Provides access to big, heavy classes that may be reconstructed from time to time, e.g. across restarts. It is
+only available once the protocol has started, which means it cannnot be accessed in the constructor. Either
+access this lazily or from inside call .
+
+
+
+
+Functions
+
+Inherited Functions
+
+Companion Object Functions
+
+Inheritors
+
+
+
+
+Acceptor
+
+class Acceptor : Secondary < AutoOffer >
One side of the protocol for inserting a pre-agreed deal.
+
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.protocols/-two-party-deal-protocol/-secondary/other-party.html b/docs/build/html/api/net.corda.protocols/-two-party-deal-protocol/-secondary/other-party.html
new file mode 100644
index 0000000000..e5539dc3fa
--- /dev/null
+++ b/docs/build/html/api/net.corda.protocols/-two-party-deal-protocol/-secondary/other-party.html
@@ -0,0 +1,15 @@
+
+
+TwoPartyDealProtocol.Secondary.otherParty -
+
+
+
+net.corda.protocols / TwoPartyDealProtocol / Secondary / otherParty
+
+otherParty
+
+abstract val otherParty : Party
+
+
+
+
diff --git a/docs/build/html/api/net.corda.protocols/-two-party-deal-protocol/-secondary/progress-tracker.html b/docs/build/html/api/net.corda.protocols/-two-party-deal-protocol/-secondary/progress-tracker.html
new file mode 100644
index 0000000000..2ab76a9de6
--- /dev/null
+++ b/docs/build/html/api/net.corda.protocols/-two-party-deal-protocol/-secondary/progress-tracker.html
@@ -0,0 +1,24 @@
+
+
+TwoPartyDealProtocol.Secondary.progressTracker -
+
+
+
+net.corda.protocols / TwoPartyDealProtocol / Secondary / progressTracker
+
+progressTracker
+
+open val progressTracker : ProgressTracker
+Overrides ProtocolLogic.progressTracker
+Override this to provide a ProgressTracker . If one is provided and stepped, the framework will do something
+helpful with the progress reports. If this protocol is invoked as a sub-protocol of another, then the
+tracker will be made a child of the current step in the parent. If its null, this protocol doesnt track
+progress.
+Note that this has to return a tracker before the protocol is invoked. You cant change your mind half way
+through.
+
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.protocols/-two-party-deal-protocol/-secondary/tracker.html b/docs/build/html/api/net.corda.protocols/-two-party-deal-protocol/-secondary/tracker.html
new file mode 100644
index 0000000000..b8329398fe
--- /dev/null
+++ b/docs/build/html/api/net.corda.protocols/-two-party-deal-protocol/-secondary/tracker.html
@@ -0,0 +1,15 @@
+
+
+TwoPartyDealProtocol.Secondary.tracker -
+
+
+
+net.corda.protocols / TwoPartyDealProtocol / Secondary / tracker
+
+tracker
+
+fun tracker ( ) : ProgressTracker
+
+
+
+
diff --git a/docs/build/html/api/net.corda.protocols/-two-party-deal-protocol/-secondary/validate-handshake.html b/docs/build/html/api/net.corda.protocols/-two-party-deal-protocol/-secondary/validate-handshake.html
new file mode 100644
index 0000000000..ccdac96649
--- /dev/null
+++ b/docs/build/html/api/net.corda.protocols/-two-party-deal-protocol/-secondary/validate-handshake.html
@@ -0,0 +1,15 @@
+
+
+TwoPartyDealProtocol.Secondary.validateHandshake -
+
+
+
+net.corda.protocols / TwoPartyDealProtocol / Secondary / validateHandshake
+
+validateHandshake
+
+protected abstract fun validateHandshake ( handshake : Handshake < U > ) : Handshake < U >
+
+
+
+
diff --git a/docs/build/html/api/net.corda.protocols/-two-party-deal-protocol/-signatures-from-primary/-init-.html b/docs/build/html/api/net.corda.protocols/-two-party-deal-protocol/-signatures-from-primary/-init-.html
new file mode 100644
index 0000000000..26cfee58f9
--- /dev/null
+++ b/docs/build/html/api/net.corda.protocols/-two-party-deal-protocol/-signatures-from-primary/-init-.html
@@ -0,0 +1,14 @@
+
+
+TwoPartyDealProtocol.SignaturesFromPrimary. -
+
+
+
+net.corda.protocols / TwoPartyDealProtocol / SignaturesFromPrimary / <init>
+
+<init>
+SignaturesFromPrimary ( sellerSig : WithKey , notarySig : LegallyIdentifiable )
+
+
+
+
diff --git a/docs/build/html/api/net.corda.protocols/-two-party-deal-protocol/-signatures-from-primary/index.html b/docs/build/html/api/net.corda.protocols/-two-party-deal-protocol/-signatures-from-primary/index.html
new file mode 100644
index 0000000000..b9049188a1
--- /dev/null
+++ b/docs/build/html/api/net.corda.protocols/-two-party-deal-protocol/-signatures-from-primary/index.html
@@ -0,0 +1,42 @@
+
+
+TwoPartyDealProtocol.SignaturesFromPrimary -
+
+
+
+net.corda.protocols / TwoPartyDealProtocol / SignaturesFromPrimary
+
+SignaturesFromPrimary
+class SignaturesFromPrimary
+
+
+Constructors
+
+Properties
+
+
+
diff --git a/docs/build/html/api/net.corda.protocols/-two-party-deal-protocol/-signatures-from-primary/notary-sig.html b/docs/build/html/api/net.corda.protocols/-two-party-deal-protocol/-signatures-from-primary/notary-sig.html
new file mode 100644
index 0000000000..61be1530bb
--- /dev/null
+++ b/docs/build/html/api/net.corda.protocols/-two-party-deal-protocol/-signatures-from-primary/notary-sig.html
@@ -0,0 +1,15 @@
+
+
+TwoPartyDealProtocol.SignaturesFromPrimary.notarySig -
+
+
+
+net.corda.protocols / TwoPartyDealProtocol / SignaturesFromPrimary / notarySig
+
+notarySig
+
+val notarySig : LegallyIdentifiable
+
+
+
+
diff --git a/docs/build/html/api/net.corda.protocols/-two-party-deal-protocol/-signatures-from-primary/seller-sig.html b/docs/build/html/api/net.corda.protocols/-two-party-deal-protocol/-signatures-from-primary/seller-sig.html
new file mode 100644
index 0000000000..d78da5606b
--- /dev/null
+++ b/docs/build/html/api/net.corda.protocols/-two-party-deal-protocol/-signatures-from-primary/seller-sig.html
@@ -0,0 +1,15 @@
+
+
+TwoPartyDealProtocol.SignaturesFromPrimary.sellerSig -
+
+
+
+net.corda.protocols / TwoPartyDealProtocol / SignaturesFromPrimary / sellerSig
+
+sellerSig
+
+val sellerSig : WithKey
+
+
+
+
diff --git a/docs/build/html/api/net.corda.protocols/-two-party-deal-protocol/index.html b/docs/build/html/api/net.corda.protocols/-two-party-deal-protocol/index.html
new file mode 100644
index 0000000000..83f947a610
--- /dev/null
+++ b/docs/build/html/api/net.corda.protocols/-two-party-deal-protocol/index.html
@@ -0,0 +1,96 @@
+
+
+TwoPartyDealProtocol -
+
+
+
+net.corda.protocols / TwoPartyDealProtocol
+
+TwoPartyDealProtocol
+object TwoPartyDealProtocol
+Classes for manipulating a two party deal or agreement.
+TODO: The subclasses should probably be broken out into individual protocols rather than making this an ever expanding collection of subclasses.
+TODO: Also, the term Deal is used here where we might prefer Agreement.
+TODO: Consider whether we can merge this with TwoPartyTradeProtocol
+
+
+
+
+Types
+
+Exceptions
+
+
+
diff --git a/docs/build/html/api/net.corda.protocols/-two-party-trade-protocol/-asset-mismatch-exception/-init-.html b/docs/build/html/api/net.corda.protocols/-two-party-trade-protocol/-asset-mismatch-exception/-init-.html
new file mode 100644
index 0000000000..c44ad6a471
--- /dev/null
+++ b/docs/build/html/api/net.corda.protocols/-two-party-trade-protocol/-asset-mismatch-exception/-init-.html
@@ -0,0 +1,14 @@
+
+
+TwoPartyTradeProtocol.AssetMismatchException. -
+
+
+
+net.corda.protocols / TwoPartyTradeProtocol / AssetMismatchException / <init>
+
+<init>
+AssetMismatchException ( expectedTypeName : String , typeName : String )
+
+
+
+
diff --git a/docs/build/html/api/net.corda.protocols/-two-party-trade-protocol/-asset-mismatch-exception/expected-type-name.html b/docs/build/html/api/net.corda.protocols/-two-party-trade-protocol/-asset-mismatch-exception/expected-type-name.html
new file mode 100644
index 0000000000..5abbda1ad4
--- /dev/null
+++ b/docs/build/html/api/net.corda.protocols/-two-party-trade-protocol/-asset-mismatch-exception/expected-type-name.html
@@ -0,0 +1,15 @@
+
+
+TwoPartyTradeProtocol.AssetMismatchException.expectedTypeName -
+
+
+
+net.corda.protocols / TwoPartyTradeProtocol / AssetMismatchException / expectedTypeName
+
+expectedTypeName
+
+val expectedTypeName : String
+
+
+
+
diff --git a/docs/build/html/api/net.corda.protocols/-two-party-trade-protocol/-asset-mismatch-exception/index.html b/docs/build/html/api/net.corda.protocols/-two-party-trade-protocol/-asset-mismatch-exception/index.html
new file mode 100644
index 0000000000..0be18b01d2
--- /dev/null
+++ b/docs/build/html/api/net.corda.protocols/-two-party-trade-protocol/-asset-mismatch-exception/index.html
@@ -0,0 +1,53 @@
+
+
+TwoPartyTradeProtocol.AssetMismatchException -
+
+
+
+net.corda.protocols / TwoPartyTradeProtocol / AssetMismatchException
+
+AssetMismatchException
+class AssetMismatchException : Exception
+
+
+Constructors
+
+
+
+
+<init>
+
+AssetMismatchException ( expectedTypeName : String , typeName : String )
+
+
+
+Properties
+
+Functions
+
+
+
+
+toString
+
+fun toString ( ) : String
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.protocols/-two-party-trade-protocol/-asset-mismatch-exception/to-string.html b/docs/build/html/api/net.corda.protocols/-two-party-trade-protocol/-asset-mismatch-exception/to-string.html
new file mode 100644
index 0000000000..c764ed4315
--- /dev/null
+++ b/docs/build/html/api/net.corda.protocols/-two-party-trade-protocol/-asset-mismatch-exception/to-string.html
@@ -0,0 +1,15 @@
+
+
+TwoPartyTradeProtocol.AssetMismatchException.toString -
+
+
+
+net.corda.protocols / TwoPartyTradeProtocol / AssetMismatchException / toString
+
+toString
+
+fun toString ( ) : String
+
+
+
+
diff --git a/docs/build/html/api/net.corda.protocols/-two-party-trade-protocol/-asset-mismatch-exception/type-name.html b/docs/build/html/api/net.corda.protocols/-two-party-trade-protocol/-asset-mismatch-exception/type-name.html
new file mode 100644
index 0000000000..ead6badc69
--- /dev/null
+++ b/docs/build/html/api/net.corda.protocols/-two-party-trade-protocol/-asset-mismatch-exception/type-name.html
@@ -0,0 +1,15 @@
+
+
+TwoPartyTradeProtocol.AssetMismatchException.typeName -
+
+
+
+net.corda.protocols / TwoPartyTradeProtocol / AssetMismatchException / typeName
+
+typeName
+
+val typeName : String
+
+
+
+
diff --git a/docs/build/html/api/net.corda.protocols/-two-party-trade-protocol/-buyer/-init-.html b/docs/build/html/api/net.corda.protocols/-two-party-trade-protocol/-buyer/-init-.html
new file mode 100644
index 0000000000..08bc33f052
--- /dev/null
+++ b/docs/build/html/api/net.corda.protocols/-two-party-trade-protocol/-buyer/-init-.html
@@ -0,0 +1,14 @@
+
+
+TwoPartyTradeProtocol.Buyer. -
+
+
+
+net.corda.protocols / TwoPartyTradeProtocol / Buyer / <init>
+
+<init>
+Buyer ( otherParty : Party , notary : Party , acceptablePrice : Amount < Currency > , typeToBuy : Class < out OwnableState > )
+
+
+
+
diff --git a/docs/build/html/api/net.corda.protocols/-two-party-trade-protocol/-buyer/-r-e-c-e-i-v-i-n-g.html b/docs/build/html/api/net.corda.protocols/-two-party-trade-protocol/-buyer/-r-e-c-e-i-v-i-n-g.html
new file mode 100644
index 0000000000..73f3deea5d
--- /dev/null
+++ b/docs/build/html/api/net.corda.protocols/-two-party-trade-protocol/-buyer/-r-e-c-e-i-v-i-n-g.html
@@ -0,0 +1,42 @@
+
+
+TwoPartyTradeProtocol.Buyer.RECEIVING -
+
+
+
+net.corda.protocols / TwoPartyTradeProtocol / Buyer / RECEIVING
+
+RECEIVING
+object RECEIVING : Step
+
+
+Inherited Properties
+
+
+
+
+changes
+
+open val changes : <ERROR CLASS> < Change >
+
+
+
+label
+
+open val label : String
+
+
+
+Inherited Functions
+
+
+
diff --git a/docs/build/html/api/net.corda.protocols/-two-party-trade-protocol/-buyer/-s-i-g-n-i-n-g.html b/docs/build/html/api/net.corda.protocols/-two-party-trade-protocol/-buyer/-s-i-g-n-i-n-g.html
new file mode 100644
index 0000000000..81ef1a8fa2
--- /dev/null
+++ b/docs/build/html/api/net.corda.protocols/-two-party-trade-protocol/-buyer/-s-i-g-n-i-n-g.html
@@ -0,0 +1,42 @@
+
+
+TwoPartyTradeProtocol.Buyer.SIGNING -
+
+
+
+net.corda.protocols / TwoPartyTradeProtocol / Buyer / SIGNING
+
+SIGNING
+object SIGNING : Step
+
+
+Inherited Properties
+
+
+
+
+changes
+
+open val changes : <ERROR CLASS> < Change >
+
+
+
+label
+
+open val label : String
+
+
+
+Inherited Functions
+
+
+
diff --git a/docs/build/html/api/net.corda.protocols/-two-party-trade-protocol/-buyer/-s-w-a-p-p-i-n-g_-s-i-g-n-a-t-u-r-e-s.html b/docs/build/html/api/net.corda.protocols/-two-party-trade-protocol/-buyer/-s-w-a-p-p-i-n-g_-s-i-g-n-a-t-u-r-e-s.html
new file mode 100644
index 0000000000..f70ddcb3c1
--- /dev/null
+++ b/docs/build/html/api/net.corda.protocols/-two-party-trade-protocol/-buyer/-s-w-a-p-p-i-n-g_-s-i-g-n-a-t-u-r-e-s.html
@@ -0,0 +1,42 @@
+
+
+TwoPartyTradeProtocol.Buyer.SWAPPING_SIGNATURES -
+
+
+
+net.corda.protocols / TwoPartyTradeProtocol / Buyer / SWAPPING_SIGNATURES
+
+SWAPPING_SIGNATURES
+object SWAPPING_SIGNATURES : Step
+
+
+Inherited Properties
+
+
+
+
+changes
+
+open val changes : <ERROR CLASS> < Change >
+
+
+
+label
+
+open val label : String
+
+
+
+Inherited Functions
+
+
+
diff --git a/docs/build/html/api/net.corda.protocols/-two-party-trade-protocol/-buyer/-v-e-r-i-f-y-i-n-g.html b/docs/build/html/api/net.corda.protocols/-two-party-trade-protocol/-buyer/-v-e-r-i-f-y-i-n-g.html
new file mode 100644
index 0000000000..dbed87508e
--- /dev/null
+++ b/docs/build/html/api/net.corda.protocols/-two-party-trade-protocol/-buyer/-v-e-r-i-f-y-i-n-g.html
@@ -0,0 +1,42 @@
+
+
+TwoPartyTradeProtocol.Buyer.VERIFYING -
+
+
+
+net.corda.protocols / TwoPartyTradeProtocol / Buyer / VERIFYING
+
+VERIFYING
+object VERIFYING : Step
+
+
+Inherited Properties
+
+
+
+
+changes
+
+open val changes : <ERROR CLASS> < Change >
+
+
+
+label
+
+open val label : String
+
+
+
+Inherited Functions
+
+
+
diff --git a/docs/build/html/api/net.corda.protocols/-two-party-trade-protocol/-buyer/acceptable-price.html b/docs/build/html/api/net.corda.protocols/-two-party-trade-protocol/-buyer/acceptable-price.html
new file mode 100644
index 0000000000..4518a314b7
--- /dev/null
+++ b/docs/build/html/api/net.corda.protocols/-two-party-trade-protocol/-buyer/acceptable-price.html
@@ -0,0 +1,15 @@
+
+
+TwoPartyTradeProtocol.Buyer.acceptablePrice -
+
+
+
+net.corda.protocols / TwoPartyTradeProtocol / Buyer / acceptablePrice
+
+acceptablePrice
+
+val acceptablePrice : Amount < Currency >
+
+
+
+
diff --git a/docs/build/html/api/net.corda.protocols/-two-party-trade-protocol/-buyer/call.html b/docs/build/html/api/net.corda.protocols/-two-party-trade-protocol/-buyer/call.html
new file mode 100644
index 0000000000..8dd86f5bc6
--- /dev/null
+++ b/docs/build/html/api/net.corda.protocols/-two-party-trade-protocol/-buyer/call.html
@@ -0,0 +1,17 @@
+
+
+TwoPartyTradeProtocol.Buyer.call -
+
+
+
+net.corda.protocols / TwoPartyTradeProtocol / Buyer / call
+
+call
+
+open fun call ( ) : SignedTransaction
+Overrides ProtocolLogic.call
+This is where you fill out your business logic.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.protocols/-two-party-trade-protocol/-buyer/index.html b/docs/build/html/api/net.corda.protocols/-two-party-trade-protocol/-buyer/index.html
new file mode 100644
index 0000000000..28a88d83f3
--- /dev/null
+++ b/docs/build/html/api/net.corda.protocols/-two-party-trade-protocol/-buyer/index.html
@@ -0,0 +1,181 @@
+
+
+TwoPartyTradeProtocol.Buyer -
+
+
+
+net.corda.protocols / TwoPartyTradeProtocol / Buyer
+
+Buyer
+class Buyer : ProtocolLogic < SignedTransaction >
+
+
+Types
+
+Constructors
+
+Properties
+
+Inherited Properties
+
+
+
+
+logger
+
+val logger : <ERROR CLASS>
This is where you should log things to.
+
+
+
+
+psm
+
+lateinit var psm : ProtocolStateMachine < * >
Reference to the Fiber instance that is the top level controller for the entire flow.
+
+
+
+
+serviceHub
+
+val serviceHub : ServiceHub
Provides access to big, heavy classes that may be reconstructed from time to time, e.g. across restarts. It is
+only available once the protocol has started, which means it cannnot be accessed in the constructor. Either
+access this lazily or from inside call .
+
+
+
+
+Functions
+
+Inherited Functions
+
+
+
diff --git a/docs/build/html/api/net.corda.protocols/-two-party-trade-protocol/-buyer/notary.html b/docs/build/html/api/net.corda.protocols/-two-party-trade-protocol/-buyer/notary.html
new file mode 100644
index 0000000000..37b66d4033
--- /dev/null
+++ b/docs/build/html/api/net.corda.protocols/-two-party-trade-protocol/-buyer/notary.html
@@ -0,0 +1,15 @@
+
+
+TwoPartyTradeProtocol.Buyer.notary -
+
+
+
+net.corda.protocols / TwoPartyTradeProtocol / Buyer / notary
+
+notary
+
+val notary : Party
+
+
+
+
diff --git a/docs/build/html/api/net.corda.protocols/-two-party-trade-protocol/-buyer/other-party.html b/docs/build/html/api/net.corda.protocols/-two-party-trade-protocol/-buyer/other-party.html
new file mode 100644
index 0000000000..ec6db539a4
--- /dev/null
+++ b/docs/build/html/api/net.corda.protocols/-two-party-trade-protocol/-buyer/other-party.html
@@ -0,0 +1,15 @@
+
+
+TwoPartyTradeProtocol.Buyer.otherParty -
+
+
+
+net.corda.protocols / TwoPartyTradeProtocol / Buyer / otherParty
+
+otherParty
+
+val otherParty : Party
+
+
+
+
diff --git a/docs/build/html/api/net.corda.protocols/-two-party-trade-protocol/-buyer/progress-tracker.html b/docs/build/html/api/net.corda.protocols/-two-party-trade-protocol/-buyer/progress-tracker.html
new file mode 100644
index 0000000000..57d85d5b7a
--- /dev/null
+++ b/docs/build/html/api/net.corda.protocols/-two-party-trade-protocol/-buyer/progress-tracker.html
@@ -0,0 +1,24 @@
+
+
+TwoPartyTradeProtocol.Buyer.progressTracker -
+
+
+
+net.corda.protocols / TwoPartyTradeProtocol / Buyer / progressTracker
+
+progressTracker
+
+open val progressTracker : ProgressTracker
+Overrides ProtocolLogic.progressTracker
+Override this to provide a ProgressTracker . If one is provided and stepped, the framework will do something
+helpful with the progress reports. If this protocol is invoked as a sub-protocol of another, then the
+tracker will be made a child of the current step in the parent. If its null, this protocol doesnt track
+progress.
+Note that this has to return a tracker before the protocol is invoked. You cant change your mind half way
+through.
+
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.protocols/-two-party-trade-protocol/-buyer/type-to-buy.html b/docs/build/html/api/net.corda.protocols/-two-party-trade-protocol/-buyer/type-to-buy.html
new file mode 100644
index 0000000000..60b4647257
--- /dev/null
+++ b/docs/build/html/api/net.corda.protocols/-two-party-trade-protocol/-buyer/type-to-buy.html
@@ -0,0 +1,15 @@
+
+
+TwoPartyTradeProtocol.Buyer.typeToBuy -
+
+
+
+net.corda.protocols / TwoPartyTradeProtocol / Buyer / typeToBuy
+
+typeToBuy
+
+val typeToBuy : Class < out OwnableState >
+
+
+
+
diff --git a/docs/build/html/api/net.corda.protocols/-two-party-trade-protocol/-seller-trade-info/-init-.html b/docs/build/html/api/net.corda.protocols/-two-party-trade-protocol/-seller-trade-info/-init-.html
new file mode 100644
index 0000000000..9622d94115
--- /dev/null
+++ b/docs/build/html/api/net.corda.protocols/-two-party-trade-protocol/-seller-trade-info/-init-.html
@@ -0,0 +1,14 @@
+
+
+TwoPartyTradeProtocol.SellerTradeInfo. -
+
+
+
+net.corda.protocols / TwoPartyTradeProtocol / SellerTradeInfo / <init>
+
+<init>
+SellerTradeInfo ( assetForSale : StateAndRef < OwnableState > , price : Amount < Currency > , sellerOwnerKey : PublicKey )
+
+
+
+
diff --git a/docs/build/html/api/net.corda.protocols/-two-party-trade-protocol/-seller-trade-info/asset-for-sale.html b/docs/build/html/api/net.corda.protocols/-two-party-trade-protocol/-seller-trade-info/asset-for-sale.html
new file mode 100644
index 0000000000..3e2b014e0f
--- /dev/null
+++ b/docs/build/html/api/net.corda.protocols/-two-party-trade-protocol/-seller-trade-info/asset-for-sale.html
@@ -0,0 +1,15 @@
+
+
+TwoPartyTradeProtocol.SellerTradeInfo.assetForSale -
+
+
+
+net.corda.protocols / TwoPartyTradeProtocol / SellerTradeInfo / assetForSale
+
+assetForSale
+
+val assetForSale : StateAndRef < OwnableState >
+
+
+
+
diff --git a/docs/build/html/api/net.corda.protocols/-two-party-trade-protocol/-seller-trade-info/index.html b/docs/build/html/api/net.corda.protocols/-two-party-trade-protocol/-seller-trade-info/index.html
new file mode 100644
index 0000000000..09933d7251
--- /dev/null
+++ b/docs/build/html/api/net.corda.protocols/-two-party-trade-protocol/-seller-trade-info/index.html
@@ -0,0 +1,48 @@
+
+
+TwoPartyTradeProtocol.SellerTradeInfo -
+
+
+
+net.corda.protocols / TwoPartyTradeProtocol / SellerTradeInfo
+
+SellerTradeInfo
+data class SellerTradeInfo
+
+
+Constructors
+
+Properties
+
+
+
diff --git a/docs/build/html/api/net.corda.protocols/-two-party-trade-protocol/-seller-trade-info/price.html b/docs/build/html/api/net.corda.protocols/-two-party-trade-protocol/-seller-trade-info/price.html
new file mode 100644
index 0000000000..0735f7ee7f
--- /dev/null
+++ b/docs/build/html/api/net.corda.protocols/-two-party-trade-protocol/-seller-trade-info/price.html
@@ -0,0 +1,15 @@
+
+
+TwoPartyTradeProtocol.SellerTradeInfo.price -
+
+
+
+net.corda.protocols / TwoPartyTradeProtocol / SellerTradeInfo / price
+
+price
+
+val price : Amount < Currency >
+
+
+
+
diff --git a/docs/build/html/api/net.corda.protocols/-two-party-trade-protocol/-seller-trade-info/seller-owner-key.html b/docs/build/html/api/net.corda.protocols/-two-party-trade-protocol/-seller-trade-info/seller-owner-key.html
new file mode 100644
index 0000000000..5d1107f976
--- /dev/null
+++ b/docs/build/html/api/net.corda.protocols/-two-party-trade-protocol/-seller-trade-info/seller-owner-key.html
@@ -0,0 +1,15 @@
+
+
+TwoPartyTradeProtocol.SellerTradeInfo.sellerOwnerKey -
+
+
+
+net.corda.protocols / TwoPartyTradeProtocol / SellerTradeInfo / sellerOwnerKey
+
+sellerOwnerKey
+
+val sellerOwnerKey : PublicKey
+
+
+
+
diff --git a/docs/build/html/api/net.corda.protocols/-two-party-trade-protocol/-seller/-a-w-a-i-t-i-n-g_-p-r-o-p-o-s-a-l.html b/docs/build/html/api/net.corda.protocols/-two-party-trade-protocol/-seller/-a-w-a-i-t-i-n-g_-p-r-o-p-o-s-a-l.html
new file mode 100644
index 0000000000..9e3ba35802
--- /dev/null
+++ b/docs/build/html/api/net.corda.protocols/-two-party-trade-protocol/-seller/-a-w-a-i-t-i-n-g_-p-r-o-p-o-s-a-l.html
@@ -0,0 +1,42 @@
+
+
+TwoPartyTradeProtocol.Seller.AWAITING_PROPOSAL -
+
+
+
+net.corda.protocols / TwoPartyTradeProtocol / Seller / AWAITING_PROPOSAL
+
+AWAITING_PROPOSAL
+object AWAITING_PROPOSAL : Step
+
+
+Inherited Properties
+
+
+
+
+changes
+
+open val changes : <ERROR CLASS> < Change >
+
+
+
+label
+
+open val label : String
+
+
+
+Inherited Functions
+
+
+
diff --git a/docs/build/html/api/net.corda.protocols/-two-party-trade-protocol/-seller/-init-.html b/docs/build/html/api/net.corda.protocols/-two-party-trade-protocol/-seller/-init-.html
new file mode 100644
index 0000000000..da0455bec6
--- /dev/null
+++ b/docs/build/html/api/net.corda.protocols/-two-party-trade-protocol/-seller/-init-.html
@@ -0,0 +1,14 @@
+
+
+TwoPartyTradeProtocol.Seller. -
+
+
+
+net.corda.protocols / TwoPartyTradeProtocol / Seller / <init>
+
+<init>
+Seller ( otherParty : Party , notaryNode : NodeInfo , assetToSell : StateAndRef < OwnableState > , price : Amount < Currency > , myKeyPair : KeyPair , progressTracker : ProgressTracker = Seller.tracker())
+
+
+
+
diff --git a/docs/build/html/api/net.corda.protocols/-two-party-trade-protocol/-seller/-n-o-t-a-r-y.html b/docs/build/html/api/net.corda.protocols/-two-party-trade-protocol/-seller/-n-o-t-a-r-y.html
new file mode 100644
index 0000000000..9ede0fddbc
--- /dev/null
+++ b/docs/build/html/api/net.corda.protocols/-two-party-trade-protocol/-seller/-n-o-t-a-r-y.html
@@ -0,0 +1,42 @@
+
+
+TwoPartyTradeProtocol.Seller.NOTARY -
+
+
+
+net.corda.protocols / TwoPartyTradeProtocol / Seller / NOTARY
+
+NOTARY
+object NOTARY : Step
+
+
+Inherited Properties
+
+
+
+
+changes
+
+open val changes : <ERROR CLASS> < Change >
+
+
+
+label
+
+open val label : String
+
+
+
+Inherited Functions
+
+
+
diff --git a/docs/build/html/api/net.corda.protocols/-two-party-trade-protocol/-seller/-s-e-n-d-i-n-g_-s-i-g-s.html b/docs/build/html/api/net.corda.protocols/-two-party-trade-protocol/-seller/-s-e-n-d-i-n-g_-s-i-g-s.html
new file mode 100644
index 0000000000..8b9915039f
--- /dev/null
+++ b/docs/build/html/api/net.corda.protocols/-two-party-trade-protocol/-seller/-s-e-n-d-i-n-g_-s-i-g-s.html
@@ -0,0 +1,42 @@
+
+
+TwoPartyTradeProtocol.Seller.SENDING_SIGS -
+
+
+
+net.corda.protocols / TwoPartyTradeProtocol / Seller / SENDING_SIGS
+
+SENDING_SIGS
+object SENDING_SIGS : Step
+
+
+Inherited Properties
+
+
+
+
+changes
+
+open val changes : <ERROR CLASS> < Change >
+
+
+
+label
+
+open val label : String
+
+
+
+Inherited Functions
+
+
+
diff --git a/docs/build/html/api/net.corda.protocols/-two-party-trade-protocol/-seller/-s-i-g-n-i-n-g.html b/docs/build/html/api/net.corda.protocols/-two-party-trade-protocol/-seller/-s-i-g-n-i-n-g.html
new file mode 100644
index 0000000000..b6b9d24251
--- /dev/null
+++ b/docs/build/html/api/net.corda.protocols/-two-party-trade-protocol/-seller/-s-i-g-n-i-n-g.html
@@ -0,0 +1,42 @@
+
+
+TwoPartyTradeProtocol.Seller.SIGNING -
+
+
+
+net.corda.protocols / TwoPartyTradeProtocol / Seller / SIGNING
+
+SIGNING
+object SIGNING : Step
+
+
+Inherited Properties
+
+
+
+
+changes
+
+open val changes : <ERROR CLASS> < Change >
+
+
+
+label
+
+open val label : String
+
+
+
+Inherited Functions
+
+
+
diff --git a/docs/build/html/api/net.corda.protocols/-two-party-trade-protocol/-seller/-v-e-r-i-f-y-i-n-g.html b/docs/build/html/api/net.corda.protocols/-two-party-trade-protocol/-seller/-v-e-r-i-f-y-i-n-g.html
new file mode 100644
index 0000000000..4f924bdc7b
--- /dev/null
+++ b/docs/build/html/api/net.corda.protocols/-two-party-trade-protocol/-seller/-v-e-r-i-f-y-i-n-g.html
@@ -0,0 +1,42 @@
+
+
+TwoPartyTradeProtocol.Seller.VERIFYING -
+
+
+
+net.corda.protocols / TwoPartyTradeProtocol / Seller / VERIFYING
+
+VERIFYING
+object VERIFYING : Step
+
+
+Inherited Properties
+
+
+
+
+changes
+
+open val changes : <ERROR CLASS> < Change >
+
+
+
+label
+
+open val label : String
+
+
+
+Inherited Functions
+
+
+
diff --git a/docs/build/html/api/net.corda.protocols/-two-party-trade-protocol/-seller/asset-to-sell.html b/docs/build/html/api/net.corda.protocols/-two-party-trade-protocol/-seller/asset-to-sell.html
new file mode 100644
index 0000000000..1db1815ccf
--- /dev/null
+++ b/docs/build/html/api/net.corda.protocols/-two-party-trade-protocol/-seller/asset-to-sell.html
@@ -0,0 +1,15 @@
+
+
+TwoPartyTradeProtocol.Seller.assetToSell -
+
+
+
+net.corda.protocols / TwoPartyTradeProtocol / Seller / assetToSell
+
+assetToSell
+
+val assetToSell : StateAndRef < OwnableState >
+
+
+
+
diff --git a/docs/build/html/api/net.corda.protocols/-two-party-trade-protocol/-seller/calculate-our-signature.html b/docs/build/html/api/net.corda.protocols/-two-party-trade-protocol/-seller/calculate-our-signature.html
new file mode 100644
index 0000000000..e66b7eb87e
--- /dev/null
+++ b/docs/build/html/api/net.corda.protocols/-two-party-trade-protocol/-seller/calculate-our-signature.html
@@ -0,0 +1,15 @@
+
+
+TwoPartyTradeProtocol.Seller.calculateOurSignature -
+
+
+
+net.corda.protocols / TwoPartyTradeProtocol / Seller / calculateOurSignature
+
+calculateOurSignature
+
+open fun calculateOurSignature ( partialTX : SignedTransaction ) : WithKey
+
+
+
+
diff --git a/docs/build/html/api/net.corda.protocols/-two-party-trade-protocol/-seller/call.html b/docs/build/html/api/net.corda.protocols/-two-party-trade-protocol/-seller/call.html
new file mode 100644
index 0000000000..c85f874808
--- /dev/null
+++ b/docs/build/html/api/net.corda.protocols/-two-party-trade-protocol/-seller/call.html
@@ -0,0 +1,17 @@
+
+
+TwoPartyTradeProtocol.Seller.call -
+
+
+
+net.corda.protocols / TwoPartyTradeProtocol / Seller / call
+
+call
+
+open fun call ( ) : SignedTransaction
+Overrides ProtocolLogic.call
+This is where you fill out your business logic.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.protocols/-two-party-trade-protocol/-seller/index.html b/docs/build/html/api/net.corda.protocols/-two-party-trade-protocol/-seller/index.html
new file mode 100644
index 0000000000..fe31e736cb
--- /dev/null
+++ b/docs/build/html/api/net.corda.protocols/-two-party-trade-protocol/-seller/index.html
@@ -0,0 +1,210 @@
+
+
+TwoPartyTradeProtocol.Seller -
+
+
+
+net.corda.protocols / TwoPartyTradeProtocol / Seller
+
+Seller
+class Seller : ProtocolLogic < SignedTransaction >
+
+
+Types
+
+Constructors
+
+Properties
+
+Inherited Properties
+
+
+
+
+logger
+
+val logger : <ERROR CLASS>
This is where you should log things to.
+
+
+
+
+psm
+
+lateinit var psm : ProtocolStateMachine < * >
Reference to the Fiber instance that is the top level controller for the entire flow.
+
+
+
+
+serviceHub
+
+val serviceHub : ServiceHub
Provides access to big, heavy classes that may be reconstructed from time to time, e.g. across restarts. It is
+only available once the protocol has started, which means it cannnot be accessed in the constructor. Either
+access this lazily or from inside call .
+
+
+
+
+Functions
+
+Inherited Functions
+
+Companion Object Functions
+
+
+
diff --git a/docs/build/html/api/net.corda.protocols/-two-party-trade-protocol/-seller/my-key-pair.html b/docs/build/html/api/net.corda.protocols/-two-party-trade-protocol/-seller/my-key-pair.html
new file mode 100644
index 0000000000..4d5836f7d6
--- /dev/null
+++ b/docs/build/html/api/net.corda.protocols/-two-party-trade-protocol/-seller/my-key-pair.html
@@ -0,0 +1,15 @@
+
+
+TwoPartyTradeProtocol.Seller.myKeyPair -
+
+
+
+net.corda.protocols / TwoPartyTradeProtocol / Seller / myKeyPair
+
+myKeyPair
+
+val myKeyPair : KeyPair
+
+
+
+
diff --git a/docs/build/html/api/net.corda.protocols/-two-party-trade-protocol/-seller/notary-node.html b/docs/build/html/api/net.corda.protocols/-two-party-trade-protocol/-seller/notary-node.html
new file mode 100644
index 0000000000..5d8d8f8988
--- /dev/null
+++ b/docs/build/html/api/net.corda.protocols/-two-party-trade-protocol/-seller/notary-node.html
@@ -0,0 +1,15 @@
+
+
+TwoPartyTradeProtocol.Seller.notaryNode -
+
+
+
+net.corda.protocols / TwoPartyTradeProtocol / Seller / notaryNode
+
+notaryNode
+
+val notaryNode : NodeInfo
+
+
+
+
diff --git a/docs/build/html/api/net.corda.protocols/-two-party-trade-protocol/-seller/other-party.html b/docs/build/html/api/net.corda.protocols/-two-party-trade-protocol/-seller/other-party.html
new file mode 100644
index 0000000000..2550e44143
--- /dev/null
+++ b/docs/build/html/api/net.corda.protocols/-two-party-trade-protocol/-seller/other-party.html
@@ -0,0 +1,15 @@
+
+
+TwoPartyTradeProtocol.Seller.otherParty -
+
+
+
+net.corda.protocols / TwoPartyTradeProtocol / Seller / otherParty
+
+otherParty
+
+val otherParty : Party
+
+
+
+
diff --git a/docs/build/html/api/net.corda.protocols/-two-party-trade-protocol/-seller/price.html b/docs/build/html/api/net.corda.protocols/-two-party-trade-protocol/-seller/price.html
new file mode 100644
index 0000000000..8f9922227b
--- /dev/null
+++ b/docs/build/html/api/net.corda.protocols/-two-party-trade-protocol/-seller/price.html
@@ -0,0 +1,15 @@
+
+
+TwoPartyTradeProtocol.Seller.price -
+
+
+
+net.corda.protocols / TwoPartyTradeProtocol / Seller / price
+
+price
+
+val price : Amount < Currency >
+
+
+
+
diff --git a/docs/build/html/api/net.corda.protocols/-two-party-trade-protocol/-seller/progress-tracker.html b/docs/build/html/api/net.corda.protocols/-two-party-trade-protocol/-seller/progress-tracker.html
new file mode 100644
index 0000000000..354d427097
--- /dev/null
+++ b/docs/build/html/api/net.corda.protocols/-two-party-trade-protocol/-seller/progress-tracker.html
@@ -0,0 +1,24 @@
+
+
+TwoPartyTradeProtocol.Seller.progressTracker -
+
+
+
+net.corda.protocols / TwoPartyTradeProtocol / Seller / progressTracker
+
+progressTracker
+
+open val progressTracker : ProgressTracker
+Overrides ProtocolLogic.progressTracker
+Override this to provide a ProgressTracker . If one is provided and stepped, the framework will do something
+helpful with the progress reports. If this protocol is invoked as a sub-protocol of another, then the
+tracker will be made a child of the current step in the parent. If its null, this protocol doesnt track
+progress.
+Note that this has to return a tracker before the protocol is invoked. You cant change your mind half way
+through.
+
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.protocols/-two-party-trade-protocol/-seller/tracker.html b/docs/build/html/api/net.corda.protocols/-two-party-trade-protocol/-seller/tracker.html
new file mode 100644
index 0000000000..af824e03ef
--- /dev/null
+++ b/docs/build/html/api/net.corda.protocols/-two-party-trade-protocol/-seller/tracker.html
@@ -0,0 +1,15 @@
+
+
+TwoPartyTradeProtocol.Seller.tracker -
+
+
+
+net.corda.protocols / TwoPartyTradeProtocol / Seller / tracker
+
+tracker
+
+fun tracker ( ) : ProgressTracker
+
+
+
+
diff --git a/docs/build/html/api/net.corda.protocols/-two-party-trade-protocol/-signatures-from-seller/-init-.html b/docs/build/html/api/net.corda.protocols/-two-party-trade-protocol/-signatures-from-seller/-init-.html
new file mode 100644
index 0000000000..734e28708b
--- /dev/null
+++ b/docs/build/html/api/net.corda.protocols/-two-party-trade-protocol/-signatures-from-seller/-init-.html
@@ -0,0 +1,14 @@
+
+
+TwoPartyTradeProtocol.SignaturesFromSeller. -
+
+
+
+net.corda.protocols / TwoPartyTradeProtocol / SignaturesFromSeller / <init>
+
+<init>
+SignaturesFromSeller ( sellerSig : WithKey , notarySig : LegallyIdentifiable )
+
+
+
+
diff --git a/docs/build/html/api/net.corda.protocols/-two-party-trade-protocol/-signatures-from-seller/index.html b/docs/build/html/api/net.corda.protocols/-two-party-trade-protocol/-signatures-from-seller/index.html
new file mode 100644
index 0000000000..8ff5958cc6
--- /dev/null
+++ b/docs/build/html/api/net.corda.protocols/-two-party-trade-protocol/-signatures-from-seller/index.html
@@ -0,0 +1,42 @@
+
+
+TwoPartyTradeProtocol.SignaturesFromSeller -
+
+
+
+net.corda.protocols / TwoPartyTradeProtocol / SignaturesFromSeller
+
+SignaturesFromSeller
+data class SignaturesFromSeller
+
+
+Constructors
+
+Properties
+
+
+
diff --git a/docs/build/html/api/net.corda.protocols/-two-party-trade-protocol/-signatures-from-seller/notary-sig.html b/docs/build/html/api/net.corda.protocols/-two-party-trade-protocol/-signatures-from-seller/notary-sig.html
new file mode 100644
index 0000000000..fb72adce1e
--- /dev/null
+++ b/docs/build/html/api/net.corda.protocols/-two-party-trade-protocol/-signatures-from-seller/notary-sig.html
@@ -0,0 +1,15 @@
+
+
+TwoPartyTradeProtocol.SignaturesFromSeller.notarySig -
+
+
+
+net.corda.protocols / TwoPartyTradeProtocol / SignaturesFromSeller / notarySig
+
+notarySig
+
+val notarySig : LegallyIdentifiable
+
+
+
+
diff --git a/docs/build/html/api/net.corda.protocols/-two-party-trade-protocol/-signatures-from-seller/seller-sig.html b/docs/build/html/api/net.corda.protocols/-two-party-trade-protocol/-signatures-from-seller/seller-sig.html
new file mode 100644
index 0000000000..3737f3264a
--- /dev/null
+++ b/docs/build/html/api/net.corda.protocols/-two-party-trade-protocol/-signatures-from-seller/seller-sig.html
@@ -0,0 +1,15 @@
+
+
+TwoPartyTradeProtocol.SignaturesFromSeller.sellerSig -
+
+
+
+net.corda.protocols / TwoPartyTradeProtocol / SignaturesFromSeller / sellerSig
+
+sellerSig
+
+val sellerSig : WithKey
+
+
+
+
diff --git a/docs/build/html/api/net.corda.protocols/-two-party-trade-protocol/-unacceptable-price-exception/-init-.html b/docs/build/html/api/net.corda.protocols/-two-party-trade-protocol/-unacceptable-price-exception/-init-.html
new file mode 100644
index 0000000000..5d8267afd0
--- /dev/null
+++ b/docs/build/html/api/net.corda.protocols/-two-party-trade-protocol/-unacceptable-price-exception/-init-.html
@@ -0,0 +1,14 @@
+
+
+TwoPartyTradeProtocol.UnacceptablePriceException. -
+
+
+
+net.corda.protocols / TwoPartyTradeProtocol / UnacceptablePriceException / <init>
+
+<init>
+UnacceptablePriceException ( givenPrice : Amount < Currency > )
+
+
+
+
diff --git a/docs/build/html/api/net.corda.protocols/-two-party-trade-protocol/-unacceptable-price-exception/given-price.html b/docs/build/html/api/net.corda.protocols/-two-party-trade-protocol/-unacceptable-price-exception/given-price.html
new file mode 100644
index 0000000000..2ca90106f9
--- /dev/null
+++ b/docs/build/html/api/net.corda.protocols/-two-party-trade-protocol/-unacceptable-price-exception/given-price.html
@@ -0,0 +1,15 @@
+
+
+TwoPartyTradeProtocol.UnacceptablePriceException.givenPrice -
+
+
+
+net.corda.protocols / TwoPartyTradeProtocol / UnacceptablePriceException / givenPrice
+
+givenPrice
+
+val givenPrice : Amount < Currency >
+
+
+
+
diff --git a/docs/build/html/api/net.corda.protocols/-two-party-trade-protocol/-unacceptable-price-exception/index.html b/docs/build/html/api/net.corda.protocols/-two-party-trade-protocol/-unacceptable-price-exception/index.html
new file mode 100644
index 0000000000..c9d2106c50
--- /dev/null
+++ b/docs/build/html/api/net.corda.protocols/-two-party-trade-protocol/-unacceptable-price-exception/index.html
@@ -0,0 +1,36 @@
+
+
+TwoPartyTradeProtocol.UnacceptablePriceException -
+
+
+
+net.corda.protocols / TwoPartyTradeProtocol / UnacceptablePriceException
+
+UnacceptablePriceException
+class UnacceptablePriceException : Exception
+
+
+Constructors
+
+Properties
+
+
+
diff --git a/docs/build/html/api/net.corda.protocols/-two-party-trade-protocol/index.html b/docs/build/html/api/net.corda.protocols/-two-party-trade-protocol/index.html
new file mode 100644
index 0000000000..8bd46dad15
--- /dev/null
+++ b/docs/build/html/api/net.corda.protocols/-two-party-trade-protocol/index.html
@@ -0,0 +1,78 @@
+
+
+TwoPartyTradeProtocol -
+
+
+
+net.corda.protocols / TwoPartyTradeProtocol
+
+TwoPartyTradeProtocol
+object TwoPartyTradeProtocol
+This asset trading protocol implements a "delivery vs payment" type swap. It has two parties (B and S for buyer
+and seller) and the following steps:
+S sends the StateAndRef pointing to what they want to sell to B, along with info about the price they require
+B to pay. For example this has probably been agreed on an exchange.
+B sends to S a SignedTransaction that includes the state as input, Bs cash as input, the state with the new
+owner key as output, and any change cash as output. It contains a single signature from B but isnt valid because
+it lacks a signature from S authorising movement of the asset.
+S signs it and hands the now finalised SignedWireTransaction back to B.
+Assuming no malicious termination, they both end the protocol being in posession of a valid, signed transaction
+that represents an atomic asset swap.
+Note that its the seller who initiates contact with the buyer, not vice-versa as you might imagine.
+To initiate the protocol, use either the runBuyer or runSeller methods, depending on which side of the trade
+your node is taking. These methods return a future which will complete once the trade is over and a fully signed
+transaction is available: you can either block your thread waiting for the protocol to complete by using
+ListenableFuture.get or more usefully, register a callback that will be invoked when the time comes.
+To see an example of how to use this class, look at the unit tests.
+
+
+
+
+Types
+
+Exceptions
+
+
+
diff --git a/docs/build/html/api/net.corda.protocols/-validating-notary-protocol/-init-.html b/docs/build/html/api/net.corda.protocols/-validating-notary-protocol/-init-.html
new file mode 100644
index 0000000000..9d547458d4
--- /dev/null
+++ b/docs/build/html/api/net.corda.protocols/-validating-notary-protocol/-init-.html
@@ -0,0 +1,18 @@
+
+
+ValidatingNotaryProtocol. -
+
+
+
+net.corda.protocols / ValidatingNotaryProtocol / <init>
+
+<init>
+ValidatingNotaryProtocol ( otherSide : Party , timestampChecker : TimestampChecker , uniquenessProvider : UniquenessProvider )
+A notary commit protocol that makes sure a given transaction is valid before committing it. This does mean that the calling
+party has to reveal the whole transaction history; however, we avoid complex conflict resolution logic where a party
+has its input states "blocked" by a transaction from another party, and needs to establish whether that transaction was
+indeed valid.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.protocols/-validating-notary-protocol/before-commit.html b/docs/build/html/api/net.corda.protocols/-validating-notary-protocol/before-commit.html
new file mode 100644
index 0000000000..17d92b082a
--- /dev/null
+++ b/docs/build/html/api/net.corda.protocols/-validating-notary-protocol/before-commit.html
@@ -0,0 +1,22 @@
+
+
+ValidatingNotaryProtocol.beforeCommit -
+
+
+
+net.corda.protocols / ValidatingNotaryProtocol / beforeCommit
+
+beforeCommit
+
+fun beforeCommit ( stx : SignedTransaction , reqIdentity : Party ) : Unit
+Overrides Service.beforeCommit
+No pre-commit processing is done. Transaction is not checked for contract-validity, as that would require fully
+resolving it into a TransactionForVerification , for which the caller would have to reveal the whole transaction
+history chain.
+As a result, the Notary will commit invalid transactions as well, but as it also records the identity of
+the caller, it is possible to raise a dispute and verify the validity of the transaction and subsequently
+undo the commit of the input states (the exact mechanism still needs to be worked out).
+
+
+
+
diff --git a/docs/build/html/api/net.corda.protocols/-validating-notary-protocol/index.html b/docs/build/html/api/net.corda.protocols/-validating-notary-protocol/index.html
new file mode 100644
index 0000000000..46e6af9748
--- /dev/null
+++ b/docs/build/html/api/net.corda.protocols/-validating-notary-protocol/index.html
@@ -0,0 +1,85 @@
+
+
+ValidatingNotaryProtocol -
+
+
+
+net.corda.protocols / ValidatingNotaryProtocol
+
+ValidatingNotaryProtocol
+class ValidatingNotaryProtocol : Service
+A notary commit protocol that makes sure a given transaction is valid before committing it. This does mean that the calling
+party has to reveal the whole transaction history; however, we avoid complex conflict resolution logic where a party
+has its input states "blocked" by a transaction from another party, and needs to establish whether that transaction was
+indeed valid.
+
+
+Constructors
+
+
+
+
+<init>
+
+ValidatingNotaryProtocol ( otherSide : Party , timestampChecker : TimestampChecker , uniquenessProvider : UniquenessProvider )
A notary commit protocol that makes sure a given transaction is valid before committing it. This does mean that the calling
+party has to reveal the whole transaction history; however, we avoid complex conflict resolution logic where a party
+has its input states "blocked" by a transaction from another party, and needs to establish whether that transaction was
+indeed valid.
+
+
+
+
+Inherited Properties
+
+Functions
+
+
+
+
+beforeCommit
+
+fun beforeCommit ( stx : SignedTransaction , reqIdentity : Party ) : Unit
No pre-commit processing is done. Transaction is not checked for contract-validity, as that would require fully
+resolving it into a TransactionForVerification , for which the caller would have to reveal the whole transaction
+history chain.
+As a result, the Notary will commit invalid transactions as well, but as it also records the identity of
+the caller, it is possible to raise a dispute and verify the validity of the transaction and subsequently
+undo the commit of the input states (the exact mechanism still needs to be worked out).
+
+
+
+
+Inherited Functions
+
+
+
+
+call
+
+open fun call ( ) : Unit
This is where you fill out your business logic.
+
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.protocols/index.html b/docs/build/html/api/net.corda.protocols/index.html
new file mode 100644
index 0000000000..d6a089bc76
--- /dev/null
+++ b/docs/build/html/api/net.corda.protocols/index.html
@@ -0,0 +1,159 @@
+
+
+net.corda.protocols -
+
+
+
+net.corda.protocols
+
+Package net.corda.protocols
+Types
+
+
+
+
+AbstractStateReplacementProtocol
+
+abstract class AbstractStateReplacementProtocol < T >
Abstract protocol to be used for replacing one state with another, for example when changing the notary of a state.
+Notably this requires a one to one replacement of states, states cannot be split, merged or issued as part of these
+protocols.
+
+
+
+
+BroadcastTransactionProtocol
+
+class BroadcastTransactionProtocol : ProtocolLogic < Unit >
Notify all involved parties about a transaction, including storing a copy. Normally this would be called via
+FinalityProtocol .
+
+
+
+
+FetchAttachmentsProtocol
+
+class FetchAttachmentsProtocol : FetchDataProtocol < Attachment , ByteArray >
Given a set of hashes either loads from from local storage or requests them from the other peer. Downloaded
+attachments are saved to local storage automatically.
+
+
+
+
+FetchDataProtocol
+
+abstract class FetchDataProtocol < T : NamedByHash , in W : Any > : ProtocolLogic < Result < T > >
An abstract protocol for fetching typed data from a remote peer.
+
+
+
+
+FetchTransactionsProtocol
+
+class FetchTransactionsProtocol : FetchDataProtocol < SignedTransaction , SignedTransaction >
Given a set of tx hashes (IDs), either loads them from local disk or asks the remote peer to provide them.
+
+
+
+
+FinalityProtocol
+
+class FinalityProtocol : ProtocolLogic < Unit >
Finalise a transaction by notarising it, then recording it locally, and then sending it to all involved parties.
+
+
+
+
+NotaryChangeProtocol
+
+object NotaryChangeProtocol : AbstractStateReplacementProtocol < Party >
A protocol to be used for changing a states Notary. This is required since all input states to a transaction
+must point to the same notary.
+
+
+
+
+NotaryError
+
+sealed class NotaryError
+
+
+
+NotaryProtocol
+
+object NotaryProtocol
+
+
+
+ResolveTransactionsProtocol
+
+class ResolveTransactionsProtocol : ProtocolLogic < List < LedgerTransaction > >
This protocol is used to verify the validity of a transaction by recursively checking the validity of all the
+dependencies. Once a transaction is checked its inserted into local storage so it can be relayed and wont be
+checked again.
+
+
+
+
+ServiceRequestMessage
+
+interface ServiceRequestMessage
Abstract superclass for request messages sent to services which expect a reply.
+
+
+
+
+StateReplacementRefused
+
+class StateReplacementRefused
Thrown when a participant refuses the proposed state replacement
+
+
+
+
+TwoPartyDealProtocol
+
+object TwoPartyDealProtocol
Classes for manipulating a two party deal or agreement.
+
+
+
+
+TwoPartyTradeProtocol
+
+object TwoPartyTradeProtocol
This asset trading protocol implements a "delivery vs payment" type swap. It has two parties (B and S for buyer
+and seller) and the following steps:
+
+
+
+
+ValidatingNotaryProtocol
+
+class ValidatingNotaryProtocol : Service
A notary commit protocol that makes sure a given transaction is valid before committing it. This does mean that the calling
+party has to reveal the whole transaction history; however, we avoid complex conflict resolution logic where a party
+has its input states "blocked" by a transaction from another party, and needs to establish whether that transaction was
+indeed valid.
+
+
+
+
+Exceptions
+
+Functions
+
+
+
diff --git a/docs/build/html/api/net.corda.protocols/send-request.html b/docs/build/html/api/net.corda.protocols/send-request.html
new file mode 100644
index 0000000000..e5b6eeee83
--- /dev/null
+++ b/docs/build/html/api/net.corda.protocols/send-request.html
@@ -0,0 +1,19 @@
+
+
+sendRequest -
+
+
+
+net.corda.protocols / sendRequest
+
+sendRequest
+
+fun < R : Any > MessagingService . sendRequest ( topic : String , request : ServiceRequestMessage , target : SingleMessageRecipient ) : <ERROR CLASS> < R >
+Sends a ServiceRequestMessage to target and returns a ListenableFuture of the response.
+Parameters
+
+R
- The type of the response.
+
+
+
+
diff --git a/docs/build/html/api/net.corda.schemas/-cash-schema-v1/-persistent-cash-state/-init-.html b/docs/build/html/api/net.corda.schemas/-cash-schema-v1/-persistent-cash-state/-init-.html
new file mode 100644
index 0000000000..7089c938e4
--- /dev/null
+++ b/docs/build/html/api/net.corda.schemas/-cash-schema-v1/-persistent-cash-state/-init-.html
@@ -0,0 +1,14 @@
+
+
+CashSchemaV1.PersistentCashState. -
+
+
+
+net.corda.schemas / CashSchemaV1 / PersistentCashState / <init>
+
+<init>
+PersistentCashState ( encumbrance : Int ? , owner : String , pennies : Long , currency : String , issuerParty : String , issuerRef : ByteArray )
+
+
+
+
diff --git a/docs/build/html/api/net.corda.schemas/-cash-schema-v1/-persistent-cash-state/currency.html b/docs/build/html/api/net.corda.schemas/-cash-schema-v1/-persistent-cash-state/currency.html
new file mode 100644
index 0000000000..8632989140
--- /dev/null
+++ b/docs/build/html/api/net.corda.schemas/-cash-schema-v1/-persistent-cash-state/currency.html
@@ -0,0 +1,15 @@
+
+
+CashSchemaV1.PersistentCashState.currency -
+
+
+
+net.corda.schemas / CashSchemaV1 / PersistentCashState / currency
+
+currency
+
+var currency : String
+
+
+
+
diff --git a/docs/build/html/api/net.corda.schemas/-cash-schema-v1/-persistent-cash-state/encumbrance.html b/docs/build/html/api/net.corda.schemas/-cash-schema-v1/-persistent-cash-state/encumbrance.html
new file mode 100644
index 0000000000..b1c3776b5b
--- /dev/null
+++ b/docs/build/html/api/net.corda.schemas/-cash-schema-v1/-persistent-cash-state/encumbrance.html
@@ -0,0 +1,15 @@
+
+
+CashSchemaV1.PersistentCashState.encumbrance -
+
+
+
+net.corda.schemas / CashSchemaV1 / PersistentCashState / encumbrance
+
+encumbrance
+
+var encumbrance : Int ?
+
+
+
+
diff --git a/docs/build/html/api/net.corda.schemas/-cash-schema-v1/-persistent-cash-state/index.html b/docs/build/html/api/net.corda.schemas/-cash-schema-v1/-persistent-cash-state/index.html
new file mode 100644
index 0000000000..7e8d927f9c
--- /dev/null
+++ b/docs/build/html/api/net.corda.schemas/-cash-schema-v1/-persistent-cash-state/index.html
@@ -0,0 +1,77 @@
+
+
+CashSchemaV1.PersistentCashState -
+
+
+
+net.corda.schemas / CashSchemaV1 / PersistentCashState
+
+PersistentCashState
+class PersistentCashState : PersistentState
+
+
+Constructors
+
+
+
+
+<init>
+
+PersistentCashState ( encumbrance : Int ? , owner : String , pennies : Long , currency : String , issuerParty : String , issuerRef : ByteArray )
+
+
+
+Properties
+
+Inherited Properties
+
+
+
diff --git a/docs/build/html/api/net.corda.schemas/-cash-schema-v1/-persistent-cash-state/issuer-party.html b/docs/build/html/api/net.corda.schemas/-cash-schema-v1/-persistent-cash-state/issuer-party.html
new file mode 100644
index 0000000000..18972a33cc
--- /dev/null
+++ b/docs/build/html/api/net.corda.schemas/-cash-schema-v1/-persistent-cash-state/issuer-party.html
@@ -0,0 +1,15 @@
+
+
+CashSchemaV1.PersistentCashState.issuerParty -
+
+
+
+net.corda.schemas / CashSchemaV1 / PersistentCashState / issuerParty
+
+issuerParty
+
+var issuerParty : String
+
+
+
+
diff --git a/docs/build/html/api/net.corda.schemas/-cash-schema-v1/-persistent-cash-state/issuer-ref.html b/docs/build/html/api/net.corda.schemas/-cash-schema-v1/-persistent-cash-state/issuer-ref.html
new file mode 100644
index 0000000000..57510d0a2f
--- /dev/null
+++ b/docs/build/html/api/net.corda.schemas/-cash-schema-v1/-persistent-cash-state/issuer-ref.html
@@ -0,0 +1,15 @@
+
+
+CashSchemaV1.PersistentCashState.issuerRef -
+
+
+
+net.corda.schemas / CashSchemaV1 / PersistentCashState / issuerRef
+
+issuerRef
+
+var issuerRef : ByteArray
+
+
+
+
diff --git a/docs/build/html/api/net.corda.schemas/-cash-schema-v1/-persistent-cash-state/owner.html b/docs/build/html/api/net.corda.schemas/-cash-schema-v1/-persistent-cash-state/owner.html
new file mode 100644
index 0000000000..5c54d68d49
--- /dev/null
+++ b/docs/build/html/api/net.corda.schemas/-cash-schema-v1/-persistent-cash-state/owner.html
@@ -0,0 +1,15 @@
+
+
+CashSchemaV1.PersistentCashState.owner -
+
+
+
+net.corda.schemas / CashSchemaV1 / PersistentCashState / owner
+
+owner
+
+var owner : String
+
+
+
+
diff --git a/docs/build/html/api/net.corda.schemas/-cash-schema-v1/-persistent-cash-state/pennies.html b/docs/build/html/api/net.corda.schemas/-cash-schema-v1/-persistent-cash-state/pennies.html
new file mode 100644
index 0000000000..cc7e3beb15
--- /dev/null
+++ b/docs/build/html/api/net.corda.schemas/-cash-schema-v1/-persistent-cash-state/pennies.html
@@ -0,0 +1,15 @@
+
+
+CashSchemaV1.PersistentCashState.pennies -
+
+
+
+net.corda.schemas / CashSchemaV1 / PersistentCashState / pennies
+
+pennies
+
+var pennies : Long
+
+
+
+
diff --git a/docs/build/html/api/net.corda.schemas/-cash-schema-v1/index.html b/docs/build/html/api/net.corda.schemas/-cash-schema-v1/index.html
new file mode 100644
index 0000000000..c32165c19f
--- /dev/null
+++ b/docs/build/html/api/net.corda.schemas/-cash-schema-v1/index.html
@@ -0,0 +1,61 @@
+
+
+CashSchemaV1 -
+
+
+
+net.corda.schemas / CashSchemaV1
+
+CashSchemaV1
+object CashSchemaV1 : MappedSchema
+First version of a cash contract ORM schema that maps all fields of the Cash contract state as it stood
+at the time of writing.
+
+
+Types
+
+Inherited Properties
+
+Inherited Functions
+
+
+
+
+toString
+
+open fun toString ( ) : String
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.schemas/-cash-schema.html b/docs/build/html/api/net.corda.schemas/-cash-schema.html
new file mode 100644
index 0000000000..f363da1522
--- /dev/null
+++ b/docs/build/html/api/net.corda.schemas/-cash-schema.html
@@ -0,0 +1,15 @@
+
+
+CashSchema -
+
+
+
+net.corda.schemas / CashSchema
+
+CashSchema
+object CashSchema
+An object used to fully qualify the CashSchema family name (i.e. independent of version).
+
+
+
+
diff --git a/docs/build/html/api/net.corda.schemas/-commercial-paper-schema-v1/-persistent-commerical-paper-state/-init-.html b/docs/build/html/api/net.corda.schemas/-commercial-paper-schema-v1/-persistent-commerical-paper-state/-init-.html
new file mode 100644
index 0000000000..9654e19640
--- /dev/null
+++ b/docs/build/html/api/net.corda.schemas/-commercial-paper-schema-v1/-persistent-commerical-paper-state/-init-.html
@@ -0,0 +1,14 @@
+
+
+CommercialPaperSchemaV1.PersistentCommericalPaperState. -
+
+
+
+net.corda.schemas / CommercialPaperSchemaV1 / PersistentCommericalPaperState / <init>
+
+<init>
+PersistentCommericalPaperState ( issuanceParty : String , issuanceRef : ByteArray , owner : String , maturity : Instant , faceValue : Long , currency : String , faceValueIssuerParty : String , faceValueIssuerRef : ByteArray )
+
+
+
+
diff --git a/docs/build/html/api/net.corda.schemas/-commercial-paper-schema-v1/-persistent-commerical-paper-state/currency.html b/docs/build/html/api/net.corda.schemas/-commercial-paper-schema-v1/-persistent-commerical-paper-state/currency.html
new file mode 100644
index 0000000000..5438940a9e
--- /dev/null
+++ b/docs/build/html/api/net.corda.schemas/-commercial-paper-schema-v1/-persistent-commerical-paper-state/currency.html
@@ -0,0 +1,15 @@
+
+
+CommercialPaperSchemaV1.PersistentCommericalPaperState.currency -
+
+
+
+net.corda.schemas / CommercialPaperSchemaV1 / PersistentCommericalPaperState / currency
+
+currency
+
+var currency : String
+
+
+
+
diff --git a/docs/build/html/api/net.corda.schemas/-commercial-paper-schema-v1/-persistent-commerical-paper-state/face-value-issuer-party.html b/docs/build/html/api/net.corda.schemas/-commercial-paper-schema-v1/-persistent-commerical-paper-state/face-value-issuer-party.html
new file mode 100644
index 0000000000..fcdf502aad
--- /dev/null
+++ b/docs/build/html/api/net.corda.schemas/-commercial-paper-schema-v1/-persistent-commerical-paper-state/face-value-issuer-party.html
@@ -0,0 +1,15 @@
+
+
+CommercialPaperSchemaV1.PersistentCommericalPaperState.faceValueIssuerParty -
+
+
+
+net.corda.schemas / CommercialPaperSchemaV1 / PersistentCommericalPaperState / faceValueIssuerParty
+
+faceValueIssuerParty
+
+var faceValueIssuerParty : String
+
+
+
+
diff --git a/docs/build/html/api/net.corda.schemas/-commercial-paper-schema-v1/-persistent-commerical-paper-state/face-value-issuer-ref.html b/docs/build/html/api/net.corda.schemas/-commercial-paper-schema-v1/-persistent-commerical-paper-state/face-value-issuer-ref.html
new file mode 100644
index 0000000000..1ddf979d40
--- /dev/null
+++ b/docs/build/html/api/net.corda.schemas/-commercial-paper-schema-v1/-persistent-commerical-paper-state/face-value-issuer-ref.html
@@ -0,0 +1,15 @@
+
+
+CommercialPaperSchemaV1.PersistentCommericalPaperState.faceValueIssuerRef -
+
+
+
+net.corda.schemas / CommercialPaperSchemaV1 / PersistentCommericalPaperState / faceValueIssuerRef
+
+faceValueIssuerRef
+
+var faceValueIssuerRef : ByteArray
+
+
+
+
diff --git a/docs/build/html/api/net.corda.schemas/-commercial-paper-schema-v1/-persistent-commerical-paper-state/face-value.html b/docs/build/html/api/net.corda.schemas/-commercial-paper-schema-v1/-persistent-commerical-paper-state/face-value.html
new file mode 100644
index 0000000000..cfb7c57044
--- /dev/null
+++ b/docs/build/html/api/net.corda.schemas/-commercial-paper-schema-v1/-persistent-commerical-paper-state/face-value.html
@@ -0,0 +1,15 @@
+
+
+CommercialPaperSchemaV1.PersistentCommericalPaperState.faceValue -
+
+
+
+net.corda.schemas / CommercialPaperSchemaV1 / PersistentCommericalPaperState / faceValue
+
+faceValue
+
+var faceValue : Long
+
+
+
+
diff --git a/docs/build/html/api/net.corda.schemas/-commercial-paper-schema-v1/-persistent-commerical-paper-state/index.html b/docs/build/html/api/net.corda.schemas/-commercial-paper-schema-v1/-persistent-commerical-paper-state/index.html
new file mode 100644
index 0000000000..1d4d60e3b1
--- /dev/null
+++ b/docs/build/html/api/net.corda.schemas/-commercial-paper-schema-v1/-persistent-commerical-paper-state/index.html
@@ -0,0 +1,89 @@
+
+
+CommercialPaperSchemaV1.PersistentCommericalPaperState -
+
+
+
+net.corda.schemas / CommercialPaperSchemaV1 / PersistentCommericalPaperState
+
+PersistentCommericalPaperState
+class PersistentCommericalPaperState : PersistentState
+
+
+Constructors
+
+
+
+
+<init>
+
+PersistentCommericalPaperState ( issuanceParty : String , issuanceRef : ByteArray , owner : String , maturity : Instant , faceValue : Long , currency : String , faceValueIssuerParty : String , faceValueIssuerRef : ByteArray )
+
+
+
+Properties
+
+Inherited Properties
+
+
+
diff --git a/docs/build/html/api/net.corda.schemas/-commercial-paper-schema-v1/-persistent-commerical-paper-state/issuance-party.html b/docs/build/html/api/net.corda.schemas/-commercial-paper-schema-v1/-persistent-commerical-paper-state/issuance-party.html
new file mode 100644
index 0000000000..91bffcc1ba
--- /dev/null
+++ b/docs/build/html/api/net.corda.schemas/-commercial-paper-schema-v1/-persistent-commerical-paper-state/issuance-party.html
@@ -0,0 +1,15 @@
+
+
+CommercialPaperSchemaV1.PersistentCommericalPaperState.issuanceParty -
+
+
+
+net.corda.schemas / CommercialPaperSchemaV1 / PersistentCommericalPaperState / issuanceParty
+
+issuanceParty
+
+var issuanceParty : String
+
+
+
+
diff --git a/docs/build/html/api/net.corda.schemas/-commercial-paper-schema-v1/-persistent-commerical-paper-state/issuance-ref.html b/docs/build/html/api/net.corda.schemas/-commercial-paper-schema-v1/-persistent-commerical-paper-state/issuance-ref.html
new file mode 100644
index 0000000000..0f5d21d960
--- /dev/null
+++ b/docs/build/html/api/net.corda.schemas/-commercial-paper-schema-v1/-persistent-commerical-paper-state/issuance-ref.html
@@ -0,0 +1,15 @@
+
+
+CommercialPaperSchemaV1.PersistentCommericalPaperState.issuanceRef -
+
+
+
+net.corda.schemas / CommercialPaperSchemaV1 / PersistentCommericalPaperState / issuanceRef
+
+issuanceRef
+
+var issuanceRef : ByteArray
+
+
+
+
diff --git a/docs/build/html/api/net.corda.schemas/-commercial-paper-schema-v1/-persistent-commerical-paper-state/maturity.html b/docs/build/html/api/net.corda.schemas/-commercial-paper-schema-v1/-persistent-commerical-paper-state/maturity.html
new file mode 100644
index 0000000000..6677aa404b
--- /dev/null
+++ b/docs/build/html/api/net.corda.schemas/-commercial-paper-schema-v1/-persistent-commerical-paper-state/maturity.html
@@ -0,0 +1,15 @@
+
+
+CommercialPaperSchemaV1.PersistentCommericalPaperState.maturity -
+
+
+
+net.corda.schemas / CommercialPaperSchemaV1 / PersistentCommericalPaperState / maturity
+
+maturity
+
+var maturity : Instant
+
+
+
+
diff --git a/docs/build/html/api/net.corda.schemas/-commercial-paper-schema-v1/-persistent-commerical-paper-state/owner.html b/docs/build/html/api/net.corda.schemas/-commercial-paper-schema-v1/-persistent-commerical-paper-state/owner.html
new file mode 100644
index 0000000000..f4a4d6feb0
--- /dev/null
+++ b/docs/build/html/api/net.corda.schemas/-commercial-paper-schema-v1/-persistent-commerical-paper-state/owner.html
@@ -0,0 +1,15 @@
+
+
+CommercialPaperSchemaV1.PersistentCommericalPaperState.owner -
+
+
+
+net.corda.schemas / CommercialPaperSchemaV1 / PersistentCommericalPaperState / owner
+
+owner
+
+var owner : String
+
+
+
+
diff --git a/docs/build/html/api/net.corda.schemas/-commercial-paper-schema-v1/index.html b/docs/build/html/api/net.corda.schemas/-commercial-paper-schema-v1/index.html
new file mode 100644
index 0000000000..a801936ef1
--- /dev/null
+++ b/docs/build/html/api/net.corda.schemas/-commercial-paper-schema-v1/index.html
@@ -0,0 +1,61 @@
+
+
+CommercialPaperSchemaV1 -
+
+
+
+net.corda.schemas / CommercialPaperSchemaV1
+
+CommercialPaperSchemaV1
+object CommercialPaperSchemaV1 : MappedSchema
+First version of a commercial paper contract ORM schema that maps all fields of the CommercialPaper contract state
+as it stood at the time of writing.
+
+
+Types
+
+Inherited Properties
+
+Inherited Functions
+
+
+
+
+toString
+
+open fun toString ( ) : String
+
+
+
+
+
diff --git a/docs/build/html/api/net.corda.schemas/-commercial-paper-schema.html b/docs/build/html/api/net.corda.schemas/-commercial-paper-schema.html
new file mode 100644
index 0000000000..f5df6dbbb1
--- /dev/null
+++ b/docs/build/html/api/net.corda.schemas/-commercial-paper-schema.html
@@ -0,0 +1,15 @@
+
+
+CommercialPaperSchema -
+
+
+
+net.corda.schemas / CommercialPaperSchema
+
+CommercialPaperSchema
+object CommercialPaperSchema
+An object used to fully qualify the CommercialPaperSchema family name (i.e. independent of version).
+
+
+
+
diff --git a/docs/build/html/api/net.corda.schemas/index.html b/docs/build/html/api/net.corda.schemas/index.html
new file mode 100644
index 0000000000..5c3fb067c6
--- /dev/null
+++ b/docs/build/html/api/net.corda.schemas/index.html
@@ -0,0 +1,46 @@
+
+
+net.corda.schemas -
+
+
+
+net.corda.schemas
+
+Package net.corda.schemas
+Types
+
+
+
+
+CashSchema
+
+object CashSchema
An object used to fully qualify the CashSchema family name (i.e. independent of version).
+
+
+
+
+CashSchemaV1
+
+object CashSchemaV1 : MappedSchema
First version of a cash contract ORM schema that maps all fields of the Cash contract state as it stood
+at the time of writing.
+
+
+
+
+CommercialPaperSchema
+
+object CommercialPaperSchema
An object used to fully qualify the CommercialPaperSchema family name (i.e. independent of version).
+
+
+
+
+CommercialPaperSchemaV1
+
+object CommercialPaperSchemaV1 : MappedSchema
First version of a commercial paper contract ORM schema that maps all fields of the CommercialPaper contract state
+as it stood at the time of writing.
+
+
+
+
+
+
diff --git a/docs/build/html/api/style.css b/docs/build/html/api/style.css
new file mode 100644
index 0000000000..0958623745
--- /dev/null
+++ b/docs/build/html/api/style.css
@@ -0,0 +1,280 @@
+@import url(https://fonts.googleapis.com/css?family=Lato:300italic,700italic,300,700);
+
+body, table {
+ padding:50px;
+ font:14px/1.5 Lato, "Helvetica Neue", Helvetica, Arial, sans-serif;
+ color:#555;
+ font-weight:300;
+}
+
+.keyword {
+ color:black;
+ font-family:Monaco, Bitstream Vera Sans Mono, Lucida Console, Terminal;
+ font-size:12px;
+}
+
+.symbol {
+ font-family:Monaco, Bitstream Vera Sans Mono, Lucida Console, Terminal;
+ font-size:12px;
+}
+
+.identifier {
+ color: darkblue;
+ font-size:12px;
+ font-family:Monaco, Bitstream Vera Sans Mono, Lucida Console, Terminal;
+}
+
+h1, h2, h3, h4, h5, h6 {
+ color:#222;
+ margin:0 0 20px;
+}
+
+p, ul, ol, table, pre, dl {
+ margin:0 0 20px;
+}
+
+h1, h2, h3 {
+ line-height:1.1;
+}
+
+h1 {
+ font-size:28px;
+}
+
+h2 {
+ color:#393939;
+}
+
+h3, h4, h5, h6 {
+ color:#494949;
+}
+
+a {
+ color:#258aaf;
+ font-weight:400;
+ text-decoration:none;
+}
+
+a:hover {
+ color: inherit;
+ text-decoration:underline;
+}
+
+a small {
+ font-size:11px;
+ color:#555;
+ margin-top:-0.6em;
+ display:block;
+}
+
+.wrapper {
+ width:860px;
+ margin:0 auto;
+}
+
+blockquote {
+ border-left:1px solid #e5e5e5;
+ margin:0;
+ padding:0 0 0 20px;
+ font-style:italic;
+}
+
+code, pre {
+ font-family:Monaco, Bitstream Vera Sans Mono, Lucida Console, Terminal;
+ color:#333;
+ font-size:12px;
+}
+
+pre {
+ display: block;
+/*
+ padding:8px 8px;
+ background: #f8f8f8;
+ border-radius:5px;
+ border:1px solid #e5e5e5;
+*/
+ overflow-x: auto;
+}
+
+table {
+ width:100%;
+ border-collapse:collapse;
+}
+
+th, td {
+ text-align:left;
+ vertical-align: top;
+ padding:5px 10px;
+}
+
+dt {
+ color:#444;
+ font-weight:700;
+}
+
+th {
+ color:#444;
+}
+
+img {
+ max-width:100%;
+}
+
+header {
+ width:270px;
+ float:left;
+ position:fixed;
+}
+
+header ul {
+ list-style:none;
+ height:40px;
+
+ padding:0;
+
+ background: #eee;
+ background: -moz-linear-gradient(top, #f8f8f8 0%, #dddddd 100%);
+ background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#f8f8f8), color-stop(100%,#dddddd));
+ background: -webkit-linear-gradient(top, #f8f8f8 0%,#dddddd 100%);
+ background: -o-linear-gradient(top, #f8f8f8 0%,#dddddd 100%);
+ background: -ms-linear-gradient(top, #f8f8f8 0%,#dddddd 100%);
+ background: linear-gradient(top, #f8f8f8 0%,#dddddd 100%);
+
+ border-radius:5px;
+ border:1px solid #d2d2d2;
+ box-shadow:inset #fff 0 1px 0, inset rgba(0,0,0,0.03) 0 -1px 0;
+ width:270px;
+}
+
+header li {
+ width:89px;
+ float:left;
+ border-right:1px solid #d2d2d2;
+ height:40px;
+}
+
+header ul a {
+ line-height:1;
+ font-size:11px;
+ color:#999;
+ display:block;
+ text-align:center;
+ padding-top:6px;
+ height:40px;
+}
+
+strong {
+ color:#222;
+ font-weight:700;
+}
+
+header ul li + li {
+ width:88px;
+ border-left:1px solid #fff;
+}
+
+header ul li + li + li {
+ border-right:none;
+ width:89px;
+}
+
+header ul a strong {
+ font-size:14px;
+ display:block;
+ color:#222;
+}
+
+section {
+ width:500px;
+ float:right;
+ padding-bottom:50px;
+}
+
+small {
+ font-size:11px;
+}
+
+hr {
+ border:0;
+ background:#e5e5e5;
+ height:1px;
+ margin:0 0 20px;
+}
+
+footer {
+ width:270px;
+ float:left;
+ position:fixed;
+ bottom:50px;
+}
+
+@media print, screen and (max-width: 960px) {
+
+ div.wrapper {
+ width:auto;
+ margin:0;
+ }
+
+ header, section, footer {
+ float:none;
+ position:static;
+ width:auto;
+ }
+
+ header {
+ padding-right:320px;
+ }
+
+ section {
+ border:1px solid #e5e5e5;
+ border-width:1px 0;
+ padding:20px 0;
+ margin:0 0 20px;
+ }
+
+ header a small {
+ display:inline;
+ }
+
+ header ul {
+ position:absolute;
+ right:50px;
+ top:52px;
+ }
+}
+
+@media print, screen and (max-width: 720px) {
+ body {
+ word-wrap:break-word;
+ }
+
+ header {
+ padding:0;
+ }
+
+ header ul, header p.view {
+ position:static;
+ }
+
+ pre, code {
+ word-wrap:normal;
+ }
+}
+
+@media print, screen and (max-width: 480px) {
+ body {
+ padding:15px;
+ }
+
+ header ul {
+ display:none;
+ }
+}
+
+@media print {
+ body {
+ padding:0.4in;
+ font-size:12pt;
+ color:#444;
+ }
+}
diff --git a/docs/build/html/building-the-docs.html b/docs/build/html/building-the-docs.html
new file mode 100644
index 0000000000..bf5a25d152
--- /dev/null
+++ b/docs/build/html/building-the-docs.html
@@ -0,0 +1,295 @@
+
+
+
+
+
+
+
+
+
+
+ Building the documentation — R3 Corda latest documentation
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ R3 Corda
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Building the documentation
+
The documentation is under the docs
folder, and is written in reStructuredText format. Documentation in HTML format
+is pre-generated, as well as code documentation, and this can be done automatically via a provided script.
+
+
Requirements
+
To build the documentation, you will need:
+
+
The Dokka JAR file needs to be placed under the lib
directory within the r3prototyping
directory, in order for the
+script to find it, as in:
+
r3prototyping/lib/dokka.jar
+
+
+
Note that to install under OS X El Capitan, you will need to tell pip to install under /usr/local
, which can be
+done by specifying the installation target on the command line:
+
sudo -H pip install --install-option '--install-data=/usr/local' Sphinx
+sudo -H pip install --install-option '--install-data=/usr/local' sphinx_rtd_theme
+
+
+
+
+
Build
+
Once the requirements are installed, you can automatically build the HTML format user documentation and the API
+documentation by running the following script:
+
docs/generate-docsite.sh
+
+
+
Alternatively you can build non-HTML formats from the docs
folder. Change directory to the folder and then run the
+following to see a list of all available formats:
+
+
For example to produce the documentation in HTML format:
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/docs/build/html/clientrpc.html b/docs/build/html/clientrpc.html
new file mode 100644
index 0000000000..3122bf688e
--- /dev/null
+++ b/docs/build/html/clientrpc.html
@@ -0,0 +1,333 @@
+
+
+
+
+
+
+
+
+
+
+ Client RPC — R3 Corda latest documentation
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ R3 Corda
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Client RPC
+
There are multiple ways to interact with a node from a client program , but if your client is written in a JVM
+compatible language the easiest way to do so is using the client library. The library connects to your running
+node using a message queue protocol and then provides a simple RPC interface to interact with it. You make calls
+on a Java object as normal, and the marshalling back and forth is handled for you.
+
The starting point for the client library is the CordaRPCClient class. This provides a proxy
method that
+returns an implementation of the CordaRPCOps interface. A timeout parameter can be specified, and observables that
+are returned by RPCs can be subscribed to in order to receive an ongoing stream of updates from the node. More
+detail on how to use this is provided in the docs for the proxy method.
+
+
Warning
+
The returned object is somewhat expensive to create and consumes a small amount of server side
+resources. When you’re done with it, cast it to Closeable
or AutoCloseable
and close it. Don’t create
+one for every call you make - create a proxy and reuse it.
+
+
For a brief tutorial on how one can use the RPC API see Client RPC API .
+
+
Security
+
Users wanting to use the RPC library are first required to authenticate themselves with the node using a valid username
+and password. These are kept in rpc-users.properties
in the node base directory. This file also specifies
+permissions for each user, which the RPC implementation can use to control access. The file format is described in
+The Corda Configuration File .
+
+
+
Observables
+
The RPC system handles observables in a special way. When a method returns an observable, whether directly or
+as a sub-object of the response object graph, an observable is created on the client to match the one on the
+server. Objects emitted by the server-side observable are pushed onto a queue which is then drained by the client.
+The returned observable may even emit object graphs with even more observables in them, and it all works as you
+would expect.
+
This feature comes with a cost: the server must queue up objects emitted by the server-side observable until you
+download them. Therefore RPCs that use this feature are marked with the @RPCReturnsObservables
annotation, and
+you are expected to subscribe to all the observables returned. If you don’t want an observable then subscribe
+then unsubscribe immediately to clear the buffers and indicate that you aren’t interested. If your app quits then
+server side resources will be freed automatically.
+
When all the observables returned by an RPC are unsubscribed on the client side, that unsubscription propagates
+through to the server where the corresponding server-side observables are also unsubscribed.
+
+
Warning
+
If you leak an observable or proxy on the client side and it gets garbage collected, you will get
+a warning printed to the logs and the proxy will be closed for you. But don’t rely on this, as garbage
+collection is non-deterministic.
+
+
+
+
Versioning
+
The client RPC protocol is versioned with a simple incrementing integer. When a proxy is created the server is
+queried for its protocol version, and you can specify your minimum requirement. Methods added in later versions
+are tagged with the @RPCSinceVersion
annotation. If you try to use a method that the server isn’t advertising
+support of, an UnsupportedOperationException
is thrown. If you want to know the version of the server, just
+use the protocolVersion
property (i.e. getProtocolVersion
in Java).
+
+
+
Thread safety
+
A proxy is thread safe, blocking, and will only allow a single RPC to be in flight at once. Any observables that
+are returned and you subscribe to will have objects emitted on a background thread. Observables returned as part
+of one RPC and observables returned from another may have their callbacks invoked in parallel, but observables
+returned as part of the same specific RPC invocation are processed serially and will not be invoked in parallel.
+
If you want to make multiple calls to the server in parallel you can do that by creating multiple proxies, but
+be aware that the server itself may not process your work in parallel even if you make your requests that way.
+
+
+
Error handling
+
If something goes wrong with the RPC infrastructure itself, an RPCException
is thrown. If you call a method that
+requires a higher version of the protocol than the server supports, UnsupportedOperationException
is thrown.
+Otherwise, if the server implementation throws an exception, that exception is serialised and rethrown on the client
+side as if it was thrown from inside the called RPC method. These exceptions can be caught as normal.
+
+
+
Wire protocol
+
The client RPC wire protocol is not currently documented. To use it you must use the client library provided.
+This is likely to change in a future release.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/docs/build/html/codestyle.html b/docs/build/html/codestyle.html
new file mode 100644
index 0000000000..8cc9658001
--- /dev/null
+++ b/docs/build/html/codestyle.html
@@ -0,0 +1,454 @@
+
+
+
+
+
+
+
+
+
+
+ Code style guide — R3 Corda latest documentation
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ R3 Corda
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Code style guide
+
This document explains the coding style used in the R3 prototyping repository. You will be expected to follow these
+recommendations when submitting patches for review. Please take the time to read them and internalise them, to save
+time during code review.
+
What follows are recommendations and not rules . They are in places intentionally vague, so use your good judgement
+when interpreting them.
+
+
Note
+
Parts of the codebase may not follow this style guide yet. If you see a place that doesn’t, please fix it!
+
+
+
1. General style
+
We use the standard Java coding style from Sun, adapted for Kotlin in ways that should be fairly intuitive.
+
Files no longer have copyright notices at the top, and license is now specified in the global README.md file.
+We do not mark classes with @author Javadoc annotations.
+
In Kotlin code, KDoc is used rather than JavaDoc. It’s very similar except it uses Markdown for formatting instead
+of HTML tags.
+
We target Java 8 and use the latest Java APIs whenever convenient. We use java.time.Instant
to represent timestamps
+and java.nio.file.Path
to represent file paths.
+
Never apply any design pattern religiously. There are no silver bullets in programming and if something is fashionable,
+that doesn’t mean it’s always better. In particular:
+
+Use functional programming patterns like map, filter, fold only where it’s genuinely more convenient. Never be afraid
+to use a simple imperative construct like a for loop or a mutable counter if that results in more direct, English-like
+code.
+Use immutability when you don’t anticipate very rapid or complex changes to the content. Immutability can help avoid
+bugs, but over-used it can make code that has to adjust fields of an immutable object (in a clone) hard to read and
+stress the garbage collector. When such code becomes a widespread pattern it can lead to code that is just generically
+slow but without hotspots.
+The tradeoffs between various thread safety techniques are complex, subtle, and no technique is always superior to
+the others. Our code uses a mix of locks, worker threads and messaging depending on the situation.
+
+
+
1.1 Line Length and Spacing
+
We aim for line widths of no more than 120 characters. That is wide enough to avoid lots of pointless wrapping but
+narrow enough that with a widescreen monitor and a 12 point fixed width font (like Menlo) you can fit two files
+next to each other. This is not a rigidly enforced rule and if wrapping a line would be excessively awkward, let it
+overflow. Overflow of a few characters here and there isn’t a big deal: the goal is general convenience.
+
Where the number of parameters in a function, class, etc. causes an overflow past the end of the first line, they should
+be structured one parameter per line.
+
Code is vertically dense, blank lines in methods are used sparingly. This is so more code can fit on screen at once.
+
We use spaces and not tabs.
+
+
+
1.2 Naming
+
Naming generally follows Java standard style (pascal case for class names, camel case for methods, properties and
+variables). Where a class name describes a tuple, “And” should be included in order to clearly indicate the elements are
+individual parts, for example PartyAndReference
, not PartyReference
(which sounds like a reference to a
+Party
).
+
+
+
+
+
3. Threading
+
Classes that are thread safe should be annotated with the @ThreadSafe
annotation. The class or method comments
+should describe how threads are expected to interact with your code, unless it’s obvious because the class is
+(for example) a simple immutable data holder.
+
Code that supports callbacks or event listeners should always accept an Executor
argument that defaults to
+MoreExecutors.directThreadExecutor()
(i.e. the calling thread) when registering the callback. This makes it easy
+to integrate the callbacks with whatever threading environment the calling code expects, e.g. serialised onto a single
+worker thread if necessary, or run directly on the background threads used by the class if the callback is thread safe
+and doesn’t care in what context it’s invoked.
+
In the prototyping code it’s OK to use synchronised methods i.e. with an exposed lock when the use of locking is quite
+trivial. If the synchronisation in your code is getting more complex, consider the following:
+
+Is the complexity necessary? At this early stage, don’t worry too much about performance or scalability, as we’re
+exploring the design space rather than making an optimal implementation of a design that’s already nailed down.
+Could you simplify it by making the data be owned by a dedicated, encapsulated worker thread? If so, remember to
+think about flow control and what happens if a work queue fills up: the actor model can often be useful but be aware
+of the downsides and try to avoid explicitly defining messages, prefer to send closures onto the worker thread
+instead.
+If you use an explicit lock and the locking gets complex, and always if the class supports callbacks, use the
+cycle detecting locks from the Guava library.
+Can you simplify some things by using thread-safe collections like CopyOnWriteArrayList
or ConcurrentHashMap
?
+These data structures are more expensive than their non-thread-safe equivalents but can be worth it if it lets us
+simplify the code.
+
+
Immutable data structures can be very useful for making it easier to reason about multi-threaded code. Kotlin makes it
+easy to define these via the “data” attribute, which auto-generates a copy() method. That lets you create clones of
+an immutable object with arbitrary fields adjusted in the clone. But if you can’t use the data attribute for some
+reason, for instance, you are working in Java or because you need an inheritance heirarchy, then consider that making
+a class fully immutable may result in very awkward code if there’s ever a need to make complex changes to it. If in
+doubt, ask. Remember, never apply any design pattern religiously.
+
We have an extension to the Executor
interface called AffinityExecutor
. It is useful when the thread safety
+of a piece of code is based on expecting to be called from a single thread only (or potentially, a single thread pool).
+AffinityExecutor
has additional methods that allow for thread assertions. These can be useful to ensure code is not
+accidentally being used in a multi-threaded way when it didn’t expect that.
+
+
+
4. Assertions and errors
+
We use them liberally and we use them at runtime, in production. That means we avoid the “assert” keyword in Java,
+and instead prefer to use the check()
or require()
functions in Kotlin (for an IllegalStateException
or
+IllegalArgumentException
respectively), or the Guava Preconditions.check
method from Java.
+
We define new exception types liberally. We prefer not to provide English language error messages in exceptions at
+the throw site, instead we define new types with any useful information as fields, with a toString() method if
+really necessary. In other words, don’t do this:
+
throw new Exception ( "The foo broke" )
+
+
+
instead do this
+
class FooBrokenException extends Exception {}
+throw new FooBrokenException ()
+
+
+
The latter is easier to catch and handle if later necessary, and the type name should explain what went wrong.
+
Note that Kotlin does not require exception types to be declared in method prototypes like Java does.
+
+
+
5. Properties
+
Where we want a public property to have one super-type in public and another sub-type in private (or internal), perhaps
+to expose additional methods with a greater level of access to the code within the enclosing class, the style should be:
+
class PrivateFoo : PublicFoo
+
+private val _foo = PrivateFoo ()
+val foo : PublicFoo get () = _foo
+
+
+
Notably:
+
+The public property should have an explicit and more restrictive type, most likely a super class or interface.
+The private, backed property should begin with underscore but otherwise have the same name as the public property.
+The underscore resolves a potential property name clash, and avoids naming such as “privateFoo”. If the type or use
+of the private property is different enough that there is no naming collision, prefer the distinct names without
+an underscore.
+The underscore prefix is not a general pattern for private properties.
+The public property should not have an additional backing field but use “get()” to return an appropriate copy of the
+private field.
+The public property should optionally wrap the returned value in an immutable wrapper, such as Guava’s immutable
+collection wrappers, if that is appropriate.
+If the code following “get()” is succinct, prefer a one-liner formatting of the public property as above, otherwise
+put the “get()” on the line below, indented.
+
+
+
+
6. Compiler warnings
+
We do not allow compiler warnings, except in the experimental module where the usual standards do not apply and warnings
+are suppressed. If a warning exists it should be either fixed or suppressed using @SuppressWarnings and if suppressed
+there must be an accompanying explanation in the code for why the warning is a false positive.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/docs/build/html/consensus.html b/docs/build/html/consensus.html
new file mode 100644
index 0000000000..fd3eebbf82
--- /dev/null
+++ b/docs/build/html/consensus.html
@@ -0,0 +1,441 @@
+
+
+
+
+
+
+
+
+
+
+ Consensus model — R3 Corda latest documentation
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ R3 Corda
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Consensus model
+
The fundamental unit of consensus in Corda is the state . The concept of consensus can be divided into two parts:
+
+Consensus over state validity – parties can reach certainty that a transaction defining output states is accepted by the contracts pointed to by the states and has all the required signatures. This is achieved by parties independently running the same contract code and validation logic (as described in data model )
+Consensus over state uniqueness – parties can reach certainty the output states created in a transaction are the unique successors to the input states consumed by that transaction (in other words – a state has not been used as an input by more than one transaction)
+
+
This article presents an initial model for addressing the uniqueness problem.
+
+
Note
+
The current model is still a work in progress and everything described in this article can and is likely to change
+
+
+
Notary
+
We introduce the concept of a notary , which is an authority responsible for attesting that for a given transaction, it had not signed another transaction consuming any of its input states.
+The data model is extended so that every state has an appointed notary:
+
/**
+ * A wrapper for [ContractState] containing additional platform-level state information.
+ * This is the definitive state that is stored on the ledger and used in transaction outputs
+ */
+data class TransactionState < out T : ContractState >(
+ /** The custom contract state */
+ val data : T ,
+ /** Identity of the notary that ensures the state is not used as an input to a transaction more than once */
+ val notary : Party ) {
+ ...
+}
+
+
+
All transactions have to be signed by their input state notary for the output states to be valid (apart from issue transactions, containing no input states).
+
+
Note
+
The notary is a logical concept and can itself be a distributed entity, potentially a cluster maintained by mutually distrusting parties
+
+
When the notary is requested to sign a transaction, it either signs over it, attesting that the outputs are the unique successors of the inputs,
+or provides conflict information for any input state that had been consumed by another transaction it had signed before.
+In doing so, the notary provides the point of finality in the system. Until the notary signature is obtained, parties cannot be sure that an equally valid, but conflicting transaction,
+will not be regarded as confirmed. After the signature is obtained, the parties know that the inputs to this transaction have been uniquely consumed by this transaction.
+Hence it is the point at which we can say finality has occurred.
+
+
Multiple notaries
+
More than one notary can exist in the network. This gives the following benefits:
+
+Custom behaviour . We can have both validating and privacy preserving Notaries – parties can make a choice based on their specific requirements
+Load balancing . Spreading the transaction load over multiple Notaries will allow higher transaction throughput in the platform overall
+Low latency . Latency could be minimised by choosing a notary physically closer the transacting parties
+
+
A transaction should only be signed by a notary if all of its input states point to it.
+In cases where a transaction involves states controlled by multiple notaries, the states first have to be repointed to the same notary.
+This is achieved by using a special type of transaction that doesn’t modify anything but the notary pointer of the state.
+Ensuring that all input states point to the same notary is the responsibility of each involved party
+(it is another condition for an output state of the transaction to be valid )
+
+
+
Changing notaries
+
To change the notary for an input state, use the NotaryChangeProtocol
. For example:
+
@Suspendable
+fun changeNotary ( originalState : StateAndRef < ContractState >,
+ newNotary : Party ): StateAndRef < ContractState > {
+ val protocol = NotaryChangeProtocol . Instigator ( originalState , newNotary )
+ return subProtocol ( protocol )
+}
+
+
+
The protocol will:
+
+Construct a transaction with the old state as the input and the new state as the output
+Obtain signatures from all participants (a participant is any party that is able to consume this state in a valid transaction, as defined by the state itself)
+Obtain the old notary signature
+Record and distribute the final transaction to the participants so that everyone possesses the new state
+
+
+
Note
+
Eventually this will be handled automatically on demand.
+
+
+
+
+
Validation
+
One of the design decisions for a notary is whether or not to validate a transaction before committing its input states.
+
If a transaction is not checked for validity, it opens the platform to “denial of state” attacks, where anyone can build an invalid transaction consuming someone else’s states and submit it to the notary to get the states “blocked”.
+However, validation of a transaction requires the notary to be able to see the full contents of the transaction in question and its dependencies.
+This is an obvious privacy leak.
+
Our platform is flexible and we currently support both validating and non-validating notary implementations – a party can select which one to use based on its own privacy requirements.
+
+
Note
+
In the non-validating model the “denial of state” attack is partially alleviated by requiring the calling
+party to authenticate and storing its identity for the request. The conflict information returned by the notary
+specifies the consuming transaction ID along with the identity of the party that had requested the commit. If the
+conflicting transaction is valid, the current one gets aborted; if not – a dispute can be raised and the input states
+of the conflicting invalid transaction are “un-committed” (to be covered by legal process).
+
+
+
Note
+
At present all notaries can see the entire contents of a transaction, but we have a separate piece of work to
+replace the parts of the transaction it does not require knowing about with hashes (only input references, timestamp
+information, overall transaction ID and the necessary digests of the rest of the transaction to prove that the
+referenced inputs/timestamps really do form part of the stated transaction ID should be visible).
+
+
+
+
Timestamping
+
In this model the notary also acts as a timestamping authority , verifying the transaction timestamp command.
+
For a timestamp to be meaningful, its implications must be binding on the party requesting it.
+A party can obtain a timestamp signature in order to prove that some event happened before/on/or after a particular point in time.
+However, if the party is not also compelled to commit to the associated transaction, it has a choice of whether or not to reveal this fact until some point in the future.
+As a result, we need to ensure that the notary either has to also sign the transaction within some time tolerance,
+or perform timestamping and notarisation at the same time, which is the chosen behaviour for this model.
+
There will never be exact clock synchronisation between the party creating the transaction and the notary.
+This is not only due to physics, network latencies etc but because between inserting the command and getting the
+notary to sign there may be many other steps, like sending the transaction to other parties involved in the trade
+as well, or even requesting human signoff. Thus the time observed by the notary may be quite different to the
+time observed in step 1.
+
For this reason, times in transactions are specified as time windows , not absolute times. Time windows can be
+open-ended, i.e. specify only one of “before” and “after” or they can be fully bounded. If a time window needs to
+be converted to an absolute time for e.g. display purposes, there is a utility method on Timestamp
to
+calculate the mid point - but in a distributed system there can never be “true time”, only an approximation of it.
+
In this way we express that the true value of the fact “the current time” is actually unknowable. Even when both before and
+after times are included, the transaction could have occurred at any point between those two timestamps. Here
+“occurrence” could mean the execution date, the value date, the trade date etc ... the notary doesn’t care what precise
+meaning the timestamp has to the contract.
+
By creating a range that can be either closed or open at one end, we allow all of the following facts to be modelled:
+
+This transaction occurred at some point after the given time (e.g. after a maturity event)
+This transaction occurred at any time before the given time (e.g. before a bankruptcy event)
+This transaction occurred at some point roughly around the given time (e.g. on a specific day)
+
+
+
Note
+
It is assumed that the time feed for a notary is GPS/NaviStar time as defined by the atomic
+clocks at the US Naval Observatory. This time feed is extremely accurate and available globally for free.
+
+
+
+
Running a notary service
+
At present we have two basic implementations that store committed input states in memory:
+
+SimpleNotaryService
– commits the provided transaction without any validation
+ValidatingNotaryService
– retrieves and validates the whole transaction history (including the given transaction) before committing
+
+
+
+
Obtaining a signature
+
Once a transaction is built and ready to be finalised, normally you would call FinalityProtocol
passing in a
+SignedTransaction
(including signatures from the participants) and a list of participants to notify. This requests a
+notary signature if needed, and then sends a copy of the notarised transaction to all participants for them to store.
+FinalityProtocol
delegates to NotaryProtocol.Client
followed by BroadcastTransactionProtocol
to do the
+actual work of notarising and broadcasting the transaction. For example:
+
fun finaliseTransaction ( serviceHub : ServiceHubInternal , ptx : TransactionBuilder , participants : Set < Party >)
+ : ListenableFuture < Unit > {
+ // We conclusively cannot have all the signatures, as the notary has not signed yet
+ val tx = ptx . toSignedTransaction ( checkSufficientSignatures = false )
+ // The empty set would be the trigger events, which are not used here
+ val protocol = FinalityProtocol ( tx , emptySet (), participants )
+ return serviceHub . startProtocol ( "protocol.finalisation" , protocol )
+}
+
+
+
To manually obtain a signature from a notary you can call NotaryProtocol.Client
directly. The protocol will work out
+which notary needs to be called based on the input states and the timestamp command. For example, the following snippet
+can be used when writing a custom protocol:
+
fun getNotarySignature ( wtx : WireTransaction ): DigitalSignature . LegallyIdentifiable {
+ return subProtocol ( NotaryProtocol . Client ( wtx ))
+}
+
+
+
On conflict the NotaryProtocol
with throw a NotaryException
containing the conflict details:
+
/** Specifies the consuming transaction for the conflicting input state */
+data class Conflict ( val stateHistory : Map < StateRef , ConsumingTx >)
+
+/**
+ * Specifies the transaction id, the position of the consumed state in the inputs, and
+ * the caller identity requesting the commit
+ */
+data class ConsumingTx ( val id : SecureHash , val inputIndex : Int , val requestingParty : Party )
+
+
+
Conflict handling and resolution is currently the responsibility of the protocol author.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/docs/build/html/contract-catalogue.html b/docs/build/html/contract-catalogue.html
new file mode 100644
index 0000000000..db2db7012c
--- /dev/null
+++ b/docs/build/html/contract-catalogue.html
@@ -0,0 +1,319 @@
+
+
+
+
+
+
+
+
+
+
+ Contract catalogue — R3 Corda latest documentation
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ R3 Corda
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Contract catalogue
+
There are a number of contracts supplied with Corda, which cover both core functionality (such as cash on ledger) and
+provide examples of how to model complex contracts (such as interest rate swaps). There is also a Dummy
contract.
+However it does not provide any meaningful functionality, and is intended purely for testing purposes.
+
+
Cash
+
The Cash
contract’s state objects represent an amount of some issued currency, owned by some party. Any currency
+can be issued by any party, and it is up to the recipient to determine whether they trust the issuer. Generally nodes
+are expected to have criteria (such as a whitelist) that issuers must fulfil for cash they issue to be accepted.
+
Cash state objects implement the FungibleAsset
interface, and can be used by the commercial paper and obligation
+contracts as part of settlement of an outstanding debt. The contracts’ verification functions require that cash state
+objects of the correct value are received by the beneficiary as part of the settlement transaction.
+
The cash contract supports issuing, moving and exiting (destroying) states. Note, however, that issuance cannot be part
+of the same transaction as other cash commands, in order to minimise complexity in balance verification.
+
Cash shares a common superclass, OnChainAsset
, with the Commodity contract. This implements common behaviour of
+assets which can be issued, moved and exited on chain, with the subclasses handling asset-specific data types and
+behaviour.
+
+
+
Commodity
+
The Commodity
contract is an early stage example of a non-currency contract whose states implement the FungibleAsset
+interface. This is used as a proof of concept for non-cash obligations.
+
+
+
Commercial Paper
+
CommercialPaper
is a very simple obligation to pay an amount of cash at some future point in time (the maturity
+date), and exists primarily as a simplified contract for use in tutorials. Commercial paper supports issuing, moving
+and redeeming (settling) states. Unlike the full obligation contract it does not support locking the state so it cannot
+be settled if the obligor defaults on payment, or netting of state objects. All commands are exclusive of the other
+commercial paper commands. Use the Obligation
contract for more advanced functionality.
+
+
+
Interest Rate Swap
+
The Interest Rate Swap (IRS) contract is a bilateral contract to implement a vanilla fixed / floating same currency
+interest rate swap. In general, an IRS allows two counterparties to modify their exposure from changes in the underlying
+interest rate. They are often used as a hedging instrument, convert a fixed rate loan to a floating rate loan, vice
+versa etc.
+
See “Interest Rate Swaps ” for full details on the IRS contract.
+
+
+
Obligation
+
The obligation contract’s state objects represent an obligation to provide some asset, which would generally be a
+cash state object, but can be any contract state object fulfilling the FungibleAsset
interface, including other
+obligations. The obligation contract uses objects referred to as Terms
to group commands and state objects together.
+Terms are a subset of an obligation state object, including details of what should be paid, when, and to whom.
+
Obligation state objects can be issued, moved and exited as with any fungible asset. The contract also supports state
+object netting and lifecycle changes (marking the obligation that a state object represents as having defaulted, or
+reverting it to the normal state after marking as having defaulted). The Net
command cannot be included with any
+other obligation commands in the same transaction, as it applies to state objects with different beneficiaries, and
+as such applies across multiple terms.
+
All other obligation contract commands specify obligation terms (what is to be delivered, by whom and by when)
+which are used as a grouping key for input/output states and commands. Issuance and lifecyle commands are mutually
+exclusive of other commands (move/exit) which apply to the same obligation terms, but multiple commands can be present
+in a single transaction if they apply to different terms. For example, a contract can have two different Issue
+commands as long as they apply to different terms, but could not have an Issue
and a Net
, or an Issue
and
+Move
that apply to the same terms.
+
Netting of obligations supports close-out netting (which can be triggered by either obligor or beneficiary, but is
+limited to bilateral netting), and payment netting (which requires signatures from all involved parties, but supports
+multilateral netting).
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/docs/build/html/contract-irs.html b/docs/build/html/contract-irs.html
new file mode 100644
index 0000000000..72f65d5bd7
--- /dev/null
+++ b/docs/build/html/contract-irs.html
@@ -0,0 +1,337 @@
+
+
+
+
+
+
+
+
+
+
+ Interest Rate Swaps — R3 Corda latest documentation
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ R3 Corda
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Interest Rate Swaps
+
The Interest Rate Swap (IRS) Contract (source: IRS.kt, IRSUtils.kt, IRSExport.kt) is a bilateral contract to implement a
+vanilla fixed / floating same currency IRS.
+
In general, an IRS allows two counterparties to modify their exposure from changes in the underlying interest rate. They
+are often used as a hedging instrument, convert a fixed rate loan to a floating rate loan, vice versa etc.
+
The IRS contract exists over a period of time (normally measurable in years). It starts on its value date
+(although this is not the agreement date), and is considered to be no longer active after its maturity date. During that
+time, there is an exchange of cash flows which are calculated by looking at the economics of each leg. These are based
+upon an amount that is not actually exchanged but notionally used for the calculation (and is hence known as the notional
+amount), and a rate that is either fixed at the creation of the swap (for the fixed leg), or based upon a reference rate
+that is retrieved during the swap (for the floating leg). An example reference rate might be something such as ‘LIBOR 3M’.
+
The fixed leg has its rate computed and set in advance, whereas the floating leg has a fixing process whereas the rate
+for the next period is fixed with relation to a reference rate. Then, a calculation is performed such that the interest
+due over that period multiplied by the notional is paid (normally at the end of the period). If these two legs have the
+same payment date, then these flows can be offset against each other (in reality there are normally a number of these
+swaps that are live between two counterparties, so that further netting is performed at counterparty level).
+
The fixed leg and floating leg do not have to have the same period frequency. In fact, conventional swaps do not have
+the same period.
+
Currently, there is no notion of an actual payment or obligation being performed in the contract code we have written;
+it merely represents that the payment needs to be made.
+
Consider the diagram below; the x-axis represents time and the y-axis the size of the leg payments (not to scale), from
+the view of the floating leg receiver / fixed leg payer. The enumerated documents represent the versions of the IRS as
+it progresses (note that, the first version exists before the value date), the dots on the “y=0” represent an interest
+rate value becoming available and then the curved arrow indicates to which period the fixing applies.
+
+
Two days (by convention, although this can be modified), before the value date (ie the start of the swap) in the red
+period the reference rate is observed from an oracle and fixed in the instance at 1.1%. At the end of the accrual period,
+there is an obligation from the floating leg payer of 1.1% * notional amount * days in the accrual period / 360.
+(Also note that the result of “days in the accrual period / 360” is also known as the day count factor, although other
+conventions are allowed and will be supported). This amount is then paid at a determined time at the end of the accrual period.
+
Again, two working days before the blue period, the rate is fixed (this time at 0.5% - however in reality, the rates
+would not be so significantly different), and the same calculation is performed to evaluate the payment that will be due
+at the end of this period.
+
This process continues until the swap reaches maturity and the final payments are calculated.
+
+
Creating an instance and lifecycle
+
There are two valid operations on an IRS. The first is to generate via the Agree
command (signed by both parties)
+and the second (and repeated operation) is Fix
to apply a rate fixing.
+To see the minimum dataset required for the creation of an IRS, refer to IRSTests.kt
which has two examples in the
+function IRSTests.createDummyIRS()
. Implicitly, when the agree function is called, the floating leg and fixed
+leg payment schedules are created (more details below) and can be queried.
+
Once an IRS hase been agreed, then the the only valid operation is to apply a fixing on one of the entries in the
+Calculation.floatingLegPaymentSchedule
map. Fixes do not have to be applied in order (although it does make most
+sense to do them so).
+
Examples of applying fixings to rates can been seen in IRSTests.generateIRSandFixSome()
which loops through the next
+fixing date of an IRS that is created with the above example function and then applies a fixing of 0.052% to each floating
+event.
+
Currently, there are no matured, termination or dispute operations.
+
+
+
Technical Details
+
The contract itself comprises of 4 data state classes, FixedLeg
, FloatingLeg
, Common
and Calculation
.
+Recall that the platform model is strictly immutable. To further that, between states, the only class that is modified
+is the Calculation
class.
+
The Common
data class contains all data that is general to the entire swap, e.g. data like trade identifier,
+valuation date, etc.
+
The Fixed and Floating leg classes derive from a common base class CommonLeg
. This is due to the simple reason that
+they share a lot of common fields.
+
The CommonLeg
class contains the notional amount, a payment frequency, the effective date (as well as an adjustment
+option), a termination date (and optional adjustment), the day count basis for day factor calculation, the payment delay
+and calendar for the payment as well as the accrual adjustment options.
+
The FixedLeg
contains all the details for the CommonLeg
as well as payer details, the rate the leg is fixed at
+and the date roll convention (ie what to do if the calculated date lands on a bank holiday or weekend).
+
The FloatingLeg
contains all the details for the CommonLeg and payer details, roll convention, the fixing roll
+convention, which day of the month the reset is calculated, the frequency period of the fixing, the fixing calendar and
+the details for the reference index (source and tenor).
+
The Calculation
class contains an expression (that can be evaluated via the ledger using variables provided and also
+any members of the contract) and two schedules - a floatingLegPaymentSchedule
and a fixedLegPaymentSchedule
.
+The fixed leg schedule is obviously pre-ordained, however, during the lifetime of the swap, the floating leg schedule is
+regenerated upon each fixing being presented.
+
For this reason, there are two helper functions on the floating leg. Calculation.getFixing
returns the date of the
+earliest unset fixing, and Calculation.applyFixing
returns a new Calculation object with the revised fixing in place.
+Note that both schedules are, for consistency, indexed by payment dates, but the fixing is (due to the convention of
+taking place two days previously) not going to be on that date.
+
+
Note
+
Payment events in the floatingLegPaymentSchedule
that start as a FloatingRatePaymentEvent
(which is a
+representation of a payment for a rate that has not yet been finalised) are replaced in their entirety with an
+equivalent FixedRatePaymentEvent
(which is the same type that is on the FixedLeg
).
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/docs/build/html/corda-configuration-files.html b/docs/build/html/corda-configuration-files.html
new file mode 100644
index 0000000000..06d90556c6
--- /dev/null
+++ b/docs/build/html/corda-configuration-files.html
@@ -0,0 +1,387 @@
+
+
+
+
+
+
+
+
+
+
+ The Corda Configuration File — R3 Corda latest documentation
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ R3 Corda
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
The Corda Configuration File
+
+
Configuration File Location
+
The Corda all-in-one corda.jar
file is generated by the gradle buildCordaJAR
task and defaults to reading configuration from a node.conf
file in the present working directory.
+This behaviour can be overidden using the --config-file
command line option to target configuration files with different names, or different file location (relative paths are relative to the current working directory).
+Also, the --base-directory
command line option alters the Corda node workspace location and if specified a node.conf
configuration file is then expected in the root of the workspace.
+
The configuration file templates used for the gradle installTemplateNodes
task are to be found in the /config/dev
folder. Also note that there is a basic set of defaults loaded from
+the built in resource file /node/src/main/resources/reference.conf
of the :node
gradle module. All properties in this can be overidden in the file configuration
+and for rarely changed properties this defaulting allows the property to be excluded from the configuration file.
+
+
+
+
Configuration File Examples
+
General node configuration file for hosting the IRSDemo services.
+
basedir : "./nodea"
+myLegalName : "Bank A"
+nearestCity : "London"
+keyStorePassword : "cordacadevpass"
+trustStorePassword : "trustpass"
+dataSourceProperties : {
+ dataSourceClassName : org.h2.jdbcx.JdbcDataSource
+ "dataSource.url" : "jdbc:h2:"${basedir}"/persistence"
+ "dataSource.user" : sa
+ "dataSource.password" : ""
+}
+artemisAddress : "localhost:31337"
+webAddress : "localhost:31339"
+extraAdvertisedServiceIds: "corda.interest_rates"
+networkMapAddress : "localhost:12345"
+useHTTPS : false
+
+
+
NetworkMapService plus Simple Notary configuration file.
+
basedir : "./nameserver"
+myLegalName : "Notary Service"
+nearestCity : "London"
+keyStorePassword : "cordacadevpass"
+trustStorePassword : "trustpass"
+artemisAddress : "localhost:12345"
+webAddress : "localhost:12346"
+extraAdvertisedServiceIds: ""
+useHTTPS : false
+
+
+
+
+
Configuration File Fields
+
+
+
+
+basedir: This specifies the node workspace folder either as an absolute path, or relative to the current working directory. It can be overidden by the --base-directory
command line option, in which case the the value in the file is ignored and a node.conf
file is expected in that workspace directory as the configuration source.
+
+
+myLegalName: The legal identity of the node acts as a human readable alias to the node’s public key and several demos use this to lookup the NodeInfo.
+
+
+nearestCity: The location of the node as used to locate coordinates on the world map when running the network simulator demo. See Network Simulator .
+
+
+keyStorePassword:
+ The password to unlock the KeyStore file (<workspace>/certificates/sslkeystore.jks
) containing the node certificate and private key.
+note:: This is the non-secret value for the development certificates automatically generated during the first node run. Longer term these keys will be managed in secure hardware devices.
+
+
+trustStorePassword:
+ The password to unlock the Trust store file (<workspace>/certificates/truststore.jks
) containing the R3 Corda root certificate. This is the non-secret value for the development certificates automatically generated during the first node run.
+
+
Note
+
Longer term these keys will be managed in secure hardware devices.
+
+
+
+dataSourceProperties:
+ This section is used to configure the jdbc connection and database driver used for the nodes persistence. Currently the defaults in /node/src/main/resources/reference.conf
are as shown in the first example. This is currently the only configuration that has been tested, although in the future full support for other storage layers will be validated.
+
+
+artemisAddress: The host and port on which the node is available for protocol operations over ArtemisMQ.
+
+
Note
+
In practice the ArtemisMQ messaging services bind to all local addresses on the specified port. However, note that the host is the included as the advertised entry in the NetworkMapService. As a result the value listed here must be externally accessible when running nodes across a cluster of machines.
+
+
+
+messagingServerAddress:
+ The address of the ArtemisMQ broker instance. If not provided the node will run one locally.
+
+
+webAddress: The host and port on which the node is available for web operations.
+
+
Note
+
If HTTPS is enabled then the browser security checks will require that the accessing url host name is one of either the machine name, fully qualified machine name, or server IP address to line up with the Subject Alternative Names contained within the development certificates. This is addition to requiring the /config/dev/corda_dev_ca.cer
root certificate be installed as a Trusted CA.
+
+
+
+extraAdvertisedServiceIds:
+ A list of ServiceType id strings to be advertised to the NetworkMapService and thus be available when other nodes query the NetworkMapCache for supporting nodes. This can also include plugin services loaded from .jar files in the plugins folder.
+
+
+networkMapAddress:
+ If null , or missing the node is declaring itself as the NetworkMapService host. Otherwise the configuration value is the remote HostAndPort string for the ArtemisMQ service on the hosting node.
+
+
+useHTTPS: If false the node’s web server will be plain HTTP. If true the node will use the same certificate and private key from the <workspace>/certificates/sslkeystore.jks
file as the ArtemisMQ port for HTTPS. If HTTPS is enabled then unencrypted HTTP traffic to the node’s webAddress port is not supported.
+
+
+
+
+
+
+
+
RPC Users File
+
Corda also uses the rpc-users.properties
file, found in the base directory, to control access to the RPC subsystem.
+This is a Java properties file (details can be found in the Javadocs )
+which specifies a list of users with their password and list of permissions they’re enabled for.
+
+
Sample
+
admin=notsecure,ADMIN
+user1=letmein,CASH,PAPER
+
+
+
+
In this example user1
has password letmein
and has permissions for CASH
and PAPER
. The permissions are
+free-form strings which can be used by the RPC methods to control access.
+
If rpc-users.properties
is empty or doesn’t exist then the RPC subsystem is effectively locked down.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/docs/build/html/creating-a-cordapp.html b/docs/build/html/creating-a-cordapp.html
new file mode 100644
index 0000000000..eb88b92423
--- /dev/null
+++ b/docs/build/html/creating-a-cordapp.html
@@ -0,0 +1,485 @@
+
+
+
+
+
+
+
+
+
+
+ Creating a Cordapp — R3 Corda latest documentation
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ R3 Corda
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Creating a Cordapp
+
A Cordapp is an application that runs on the Corda platform using the platform APIs and plugin system. They are self
+contained in separate JARs from the node server JAR that are created and distributed.
+
+
App Plugins
+
+
Note
+
Currently apps are only supported for JVM languages.
+
+
To create an app plugin you must you must extend from CordaPluginRegistry . The JavaDoc contains
+specific details of the implementation, but you can extend the server in the following ways:
+
+Required protocols: Specify which protocols will be whitelisted for use in your web APIs.
+Service plugins: Register your services (see below).
+Web APIs: You may register your own endpoints under /api/ of the built-in web server.
+Static web endpoints: You may register your own static serving directories for serving web content.
+
+
+
+
Services
+
Services are classes which are constructed after the node has started. It is provided a ServiceHubInternal which
+allows a richer API than the ServiceHub exposed to contracts. It enables adding protocols, registering
+message handlers and more. The service does not run in a separate thread, so the only entry point to the service is during
+construction, where message handlers should be registered and threads started.
+
+
+
Starting Nodes
+
To use an app you must also have a node server. To create a node server run the gradle installTemplateNodes task.
+
This will output the node JAR to build/libs/corda.jar
and several sample/standard
+node setups to build/nodes
. For now you can use the build/nodes/nodea
configuration as a template.
+
Each node server by default must have a node.conf
file in the current working directory. After first
+execution of the node server there will be many other configuration and persistence files created in a node workspace directory. This is specified as the basedir property of the node.conf file, or else can be overidden using --base-directory=<workspace>
.
+
+
Note
+
Outside of development environments do not store your node directories in the build folder.
+
+
+
Warning
+
Also note that the bootstrapping process of the corda.jar
unpacks the Corda dependencies into a temporary folder. It is therefore suggested that the CAPSULE_CACHE_DIR environment variable be set before starting the process to control this location.
+
+
+
+
Installing Apps
+
Once you have created your app JAR you can install it to a node by adding it to <node_dir>/plugins/
. In this
+case the node_dir
is the location where your node server’s JAR and configuration file is.
+
+
Note
+
If the directory does not exist you can create it manually.
+
+
+
+
Starting your Node
+
Now you have a node server with your app installed, you can run it by navigating to <node_dir>
and running
+
+java -jar corda.jar
+
The plugin should automatically be registered and the configuration file used.
+
+
Warning
+
If your working directory is not <node_dir>
your plugins and configuration will not be used.
+
+
The configuration file and workspace paths can be overidden on the command line e.g.
+
java -jar corda.jar --config-file=test.conf --base-directory=/opt/r3corda/nodes/test
.
+
Otherwise the workspace folder for the node is created based upon the basedir
property in the node.conf
file and if this is relative it is applied relative to the current working path.
+
+
+
Debugging your Node
+
To enable remote debugging of the corda process use a command line such as:
+
java -Dcapsule.jvm.args="-agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=5005" -jar corda.jar
+
This command line will start the debugger on port 5005 and pause the process awaiting debugger attachment.
+
+
+
Viewing persisted state of your Node
+
To make examining the persisted contract states of your node or the internal node database tables easier, and providing you are
+using the default database configuration used for demos, you should be able to connect to the internal node database over
+a JDBC connection at the URL that is output to the logs at node start up. That URL will be of the form jdbc:h2:tcp://<host>:<port>/node
.
+
The user name and password for the login are as per the node data source configuration.
+
The name and column layout of the internal node tables is in a state of flux and should not be relied upon to remain static
+at the present time, and should certainly be treated as read-only.
+
+
+
Building Against Corda
+
+
Warning
+
This feature is subject to rapid change
+
+
Corda now supports publishing to Maven local to build against it. To publish to Maven local run the following in the
+root directory of Corda
+
+
This will publish corda-$version.jar, finance-$version.jar, core-$version.jar and node-$version.jar to the
+group net.corda. You can now depend on these as you normally would a Maven dependency.
+
+
+
+
Gradle Plugins for Cordapps
+
There are several Gradle plugins that reduce your build.gradle boilerplate and make development of Cordapps easier.
+The available plugins are in the gradle-plugins directory of the Corda repository.
+
+
Building Gradle Plugins
+
To install to your local Maven repository the plugins that Cordapp gradle files require, run the following from the
+root of the Corda project:
+
+
The plugins will now be installed to your local Maven repository in ~/.m2 on Unix and %HOMEPATH%.m2 on Windows.
+
+
+
Using Gradle Plugins
+
To use the plugins, if you are not already using the Cordapp template project, you must modify your build.gradle. Add
+the following segments to the relevant part of your build.gradle.
+
+
+
Template build.gradle
+
To build against Corda and the plugins that cordapps use, update your build.gradle to contain the following:
+
buildscript {
+ ext . corda_version = '<enter the corda version you build against here>'
+ ... your buildscript ...
+
+ repositories {
+ ... other repositories ...
+ mavenLocal ()
+ }
+
+ dependencies {
+ ... your dependencies ...
+ classpath "net.corda.plugins:cordformation:$corda_version"
+ classpath "net.corda.plugins:quasar-utils:$corda_version"
+ classpath "net.corda.plugins:publish-utils:$corda_version"
+ }
+}
+
+apply plugin: 'net.corda.plugins.cordformation'
+apply plugin: 'net.corda.plugins.quasar-utils'
+apply plugin: 'net.corda.plugins.publish-utils'
+
+repositories {
+ mavenLocal ()
+ ... other repositories here ...
+}
+
+dependencies {
+ compile "net.corda.core:$corda_version"
+ compile "net.corda.finance:$corda_version"
+ compile "net.corda.node:$corda_version"
+ compile "net.corda.corda:$corda_version"
+ ... other dependencies here ...
+}
+
+... your tasks ...
+
+// Sets the classes for Quasar to scan. Loaded by the the quasar-utils plugin.
+quasarScan . dependsOn ( 'classes' , ... your dependent subprojects ...)
+
+// Standard way to publish Cordapps to maven local with the maven-publish and publish-utils plugin.
+publishing {
+ publications {
+ jarAndSources ( MavenPublication ) {
+ from components . java
+ // The two lines below are the tasks added by this plugin.
+ artifact sourceJar
+ artifact javadocJar
+ }
+ }
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/docs/build/html/data-model.html b/docs/build/html/data-model.html
new file mode 100644
index 0000000000..c3f3f04017
--- /dev/null
+++ b/docs/build/html/data-model.html
@@ -0,0 +1,516 @@
+
+
+
+
+
+
+
+
+
+
+ Data model — R3 Corda latest documentation
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ R3 Corda
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Data model
+
This article covers the data model: how states , transactions and code contracts interact with each other and
+how they are represented in software. It doesn’t attempt to give detailed design rationales or information on future
+design elements: please refer to the R3 wiki for background information.
+
+
Overview
+
We begin with the idea of a global ledger. In our model although the ledger is shared, it is not always the case that
+transactions and ledger entries are globally visible. In cases where a set of transactions stays within a small subgroup of
+users it should be possible to keep the relevant data purely within that group.
+
To ensure consistency in a global, shared system where not all data may be visible to all participants, we rely
+heavily on secure hashes like SHA-256 to identify things. The ledger is defined as a set of immutable states , which
+are created and destroyed by digitally signed transactions . Each transaction points to a set of states that it will
+consume/destroy, these are called inputs , and contains a set of new states that it will create, these are called
+outputs .
+
States contain arbitrary data, but they always contain at minimum a hash of the bytecode of a
+contract code file, which is a program expressed in JVM byte code that runs sandboxed inside a Java virtual machine.
+Contract code (or just “contracts” in the rest of this document) are globally shared pieces of business logic.
+
+
Note
+
In the current code dynamic loading of contracts is not implemented, so states currently point at
+statically created object instances. This will change in the near future.
+
+
Contracts define a verify function , which is a pure function given the entire transaction as input. To be considered
+valid, the transaction must be accepted by the verify function of every contract pointed to by the input and output
+states.
+
Beyond inputs and outputs, transactions may also contain commands , small data packets that
+the platform does not interpret itself but which can parameterise execution of the contracts. They can be thought of as
+arguments to the verify function. Each command has a list of public keys associated with it. The platform ensures
+that the transaction is signed by every key listed in the commands before the contracts start to execute. Thus, a verify
+function can trust that all listed keys have signed the transaction but is responsible for verifying that any keys required
+for the transaction to be valid from the verify function’s perspective are included in the list. Public keys
+may be random/identityless for privacy, or linked to a well known legal identity, for example via a
+public key infrastructure (PKI).
+
+
Note
+
Linkage of keys with identities via a PKI is only partially implemented in the current code.
+
+
Commands are always embedded inside a transaction. Sometimes, there’s a larger piece of data that can be reused across
+many different transactions. For this use case, we have attachments . Every transaction can refer to zero or more
+attachments by hash. Attachments are always ZIP/JAR files, which may contain arbitrary content. These files are
+then exposed on the classpath and so can be opened by contract code in the same manner as any JAR resources
+would be loaded.
+
+
Note
+
Attachments must be opened explicitly in the current code.
+
+
Note that there is nothing that explicitly binds together specific inputs, outputs, commands or attachments. Instead
+it’s up to the contract code to interpret the pieces inside the transaction and ensure they fit together correctly. This
+is done to maximise flexibility for the contract developer.
+
Transactions may sometimes need to provide a contract with data from the outside world. Examples may include stock
+prices, facts about events or the statuses of legal entities (e.g. bankruptcy), and so on. The providers of such
+facts are called oracles and they provide facts to the ledger by signing transactions that contain commands they
+recognise, or by creating signed attachments. The commands contain the fact and the signature shows agreement to that fact.
+
Time is also modelled as a fact, with the signature of a special kind of service called a notary . A notary is
+a (very likely) decentralised service which fulfils the role that miners play in other blockchain systems:
+notaries ensure only one transaction can consume any given output. Additionally they may verify a timestamping
+command placed inside the transaction, which specifies a time window in which the transaction is considered
+valid for notarisation. The time window can be open ended (i.e. with a start but no end or vice versa). In this
+way transactions can be linked to the notary’s clock.
+
It is possible for a single Corda network to have multiple competing notaries. Each state points to the notary that
+controls it. Whilst a single transaction may only consume states if they are all controlled by the same notary,
+a special type of transaction is provided that moves a state (or set of states) from one notary to another.
+
+
Note
+
Currently the platform code will not re-assign states to a single notary as needed for you, in case of
+a mismatch. This is a future planned feature.
+
+
As the same terminology often crops up in different distributed ledger designs, let’s compare this to other
+systems you may be familiar with. You can find more detailed design rationales for why the platform
+differs from existing systems in the R3 wiki ,
+but to summarise, the driving factors are:
+
+Improved contract flexibility vs Bitcoin
+Improved scalability vs Ethereum, as well as ability to keep parts of the transaction graph private (yet still uniquely addressable)
+No reliance on proof of work
+Re-use of existing sandboxing virtual machines
+Use of type safe GCd implementation languages
+Simplified auditing
+
+
+
+
Comparison with Bitcoin
+
Similarities:
+
+The basic notion of immutable states that are consumed and created by transactions is the same.
+The notion of transactions having multiple inputs and outputs is the same. Bitcoin sometimes refers to the ledger
+as the unspent transaction output set (UTXO set) as a result.
+Like in Bitcoin, a contract is pure function. Contracts do not have storage or the ability to interact with anything.
+Given the same transaction, a contract’s accept function always yields exactly the same result.
+Bitcoin output scripts are parameterised by the input scripts in the spending transaction. This is somewhat similar
+to our notion of a command .
+Bitcoin has a global distributed notary service; that’s the famous block chain. However, there is only one. Whilst
+there is a notion of a “side chain”, this isn’t integrated with the core Bitcoin data model and thus adds large
+amounts of additional complexity meaning in practice side chains are not used.
+Bitcoin transactions, like ours, refer to the states they consume by using a (txhash, index) pair. The Bitcoin
+protocol calls these “outpoints”. In our code they are known as StateRefs
but the concept is identical.
+Bitcoin transactions have an associated timestamp (the time at which they are mined).
+
+
Differences:
+
+A Bitcoin transaction has a single, rigid data format. A “state” in Bitcoin is always a (quantity of bitcoin, script)
+pair and cannot hold any other data. Some people have been known to try and hack around this limitation by embedding
+data in semi-standardised places in the contract code so the data can be extracted through pattern matching, but this
+is a poor approach. Our states can include arbitrary typed data.
+A Bitcoin transaction’s acceptance is controlled only by the contract code in the consumed input states. In practice
+this has proved limiting. Our transactions invoke not only input contracts but also the contracts of the outputs.
+A Bitcoin script can only be given a fixed set of byte arrays as the input. This means there’s no way for a contract
+to examine the structure of the entire transaction, which severely limits what contracts can do.
+Our contracts are Turing-complete and can be written in any ordinary programming language that targets the JVM.
+Our transactions and contracts get their time from an attached timestamp rather than a block. This is
+important given that we use block-free conflict resolution algorithms. The timestamp can be arbitrarily precise.
+We use the term “contract” to refer to a bundle of business logic that may handle various different tasks, beyond
+transaction verification. For instance, currently our contracts also include code for creating valid transactions
+(this is often called “wallet code” in Bitcoin).
+
+
+
+
Comparison with Ethereum
+
Similarities:
+
+Like Ethereum, code runs inside a relatively powerful virtual machine and can contain complex logic. Non-assembly
+based programming languages can be used for contract programming.
+They are both intended for the modelling of many different kinds of financial contract.
+
+
Differences:
+
+The term “contract” in Ethereum refers to an instantiation of a program that is replicated and maintained by
+every participating node. This instantiation is very much like an object in an OO program: it can receive and send
+messages, update local storage and so on. In contrast, we use the term “contract” to refer to a set of functions, only
+one of which is a part of keeping the system synchronised (the verify function). That function is pure and
+stateless i.e. it may not interact with any other part of the system whilst executing.
+There is no notion of an “account”, as there is in Ethereum.
+As contracts don’t have any kind of mutable storage, there is no notion of a “message” as in Ethereum.
+Ethereum claims to be a platform not only for financial logic, but literally any kind of application at all. Our
+platform considers non-financial applications to be out of scope.
+
+
+
+
Rationale for and tradeoffs in adopting a UTXO-style model
+
As discussed above, Corda uses the so-called “UTXO set” model (unspent transaction output). In this model, the database
+does not track accounts or balances. Instead all database entries are immutable. An entry is either spent or not spent
+but it cannot be changed. In Bitcoin, spentness is implemented simply as deletion – the inputs of an accepted transaction
+are deleted and the outputs created.
+
This approach has some advantages and some disadvantages, which is why some platforms like Ethereum have tried
+(or are trying) to abstract this choice away and support a more traditional account-like model. We have explicitly
+chosen not to do this and our decision to adopt a UTXO-style model is a deliberate one. In the section below,
+the rationale for this decision and its pros and cons of this choice are outlined.
+
+
+
Rationale
+
Corda, in common with other blockchain-like platforms, is designed to bring parties to shared sets of data into
+consensus as to the existence, content and allowable evolutions of those data sets. However, Corda is designed with the
+explicit aim of avoiding, to the extent possible, the scalability and privacy implications that arise from those platforms’
+decisions to adopt a global broadcast model.
+
Whilst the privacy implications of a global consensus model are easy to understand, the scalability implications are
+perhaps more subtle, yet serious. In a consensus system, it is critical that all processors of a transaction reach
+precisely the same conclusion as to its effects. In situations where two transactions may act on the same data set,
+it means that the two transactions must be processed in the same order by all nodes. If this were not the case then it
+would be possible to devise situations where nodes processed transactions in different orders and reached different
+conclusions as to the state of the system. It is for this reason that systems like Ethereum effectively run
+single-threaded, meaning the speed of the system is limited by the single-threaded performance of the slowest
+machine on the network.
+
In Corda, we assume the data being processed represents financial agreements between identifiable parties and that these
+institutions will adopt the system only if a significant number of such agreements can be managed by the platform.
+As such, the system has to be able to support parallelisation of execution to the greatest extent possible,
+whilst ensuring correct transaction ordering when two transactions seek to act on the same piece of shared state.
+
To achieve this, we must minimise the number of parties who need to receive and process copies of any given
+transaction and we must minimise the extent to which two transactions seek to mutate (or supersede) any given piece
+of shared state.
+
A key design decision, therefore, is what should be the most atomic unit of shared data in the system. This decision
+also has profound privacy implications: the more coarsely defined the shared data units, the larger the set of
+actors who will likely have a stake in its accuracy and who must process and observe any update to it.
+
This becomes most obvious when we consider two models for representing cash balances and payments.
+
A simple account model for cash would define a data structure that maintained a balance at a particular bank for each
+“account holder”. Every holder of a balance would need a copy of this structure and would thus need to process and
+validate every payment transaction, learning about everybody else’s payments and balances in the process.
+All payments across that set of accounts would have to be single-threaded across the platform, limiting maximum
+throughput.
+
A more sophisticated example might create a data structure per account holder.
+But, even here, I would leak my account balance to anybody to whom I ever made
+a payment and I could only ever make one payment at a time, for the same reasons above.
+
A UTXO model would define a data structure that represented an instance of a claim against the bank. An account
+holder could hold many such instances, the aggregate of which would reveal their balance at that institution. However,
+the account holder now only needs to reveal to their payee those instances consumed in making a payment to that payee.
+This also means the payer could make several payments in parallel. A downside is that the model is harder to understand.
+However, we consider the privacy and scalability advantages to overwhelm the modest additional cognitive load this places
+on those attempting to learn the system.
+
In what follows, further advantages and disadvantages of this design decision are explored.
+
+
+
Pros
+
The UTXO model has these advantages:
+
+Immutable ledger entries gives the usual advantages that a more functional approach brings: it’s easy to do analysis
+on a static snapshot of the data and reason about the contents.
+Because there are no accounts, it’s very easy to apply transactions in parallel even for high traffic legal entities
+assuming sufficiently granular entries.
+Transaction ordering becomes trivial: it is impossible to mis-order transactions due to the reliance on hash functions
+to identify previous states. There is no need for sequence numbers or other things that are hard to provide in a
+fully distributed system.
+Conflict resolution boils down to the double spending problem, which places extremely minimal demands on consensus
+algorithms (as the variable you’re trying to reach consensus on is a set of booleans).
+
+
+
+
Cons
+
It also comes with some pretty serious complexities that in practice must be abstracted from developers:
+
+Representing numeric amounts using immutable entries is unnatural. For instance, if you receive $1000 and wish
+to send someone $100, you have to consume the $1000 output and then create two more: a $100 for the recipient and
+$900 back to yourself as change. The fact that this happens can leak private information to an observer.
+Because users do need to think in terms of balances and statements, you have to layer this on top of the
+underlying ledger: you can’t just read someone’s balance out of the system. Hence, the “wallet” / position manager.
+Experience from those who have developed wallets for Bitcoin and other systems is that they can be complex pieces of code,
+although the bulk of wallets’ complexity in public systems is handling the lack of finality (and key management).
+Whilst transactions can be applied in parallel, it is much harder to create them in parallel due to the need to
+strictly enforce a total ordering.
+
+
With respect to parallel creation, if the user is single threaded this is fine, but in a more complex situation
+where you might want to be preparing multiple transactions in flight this can prove a limitation – in
+the worst case where you have a single output that represents all your value, this forces you to serialise
+the creation of every transaction. If transactions can be created and signed very fast that’s not a concern.
+If there’s only a single user, that’s not a concern.
+
Both cases are typically true in the Bitcoin world, so users don’t suffer from this much. In the context of a
+complex business with a large pool of shared funds, in which creation of transactions may be very slow due to the
+need to get different humans to approve a tx using a signing device, this could quickly lead to frustrating
+conflicts where someone approves a transaction and then discovers that it has become a double spend and
+they must sign again. In the absolute worst case you could get a form of human livelock.
+
The tricky part about solving these problems is that the simplest way to express a payment request
+(“send me $1000 to public key X”) inherently results in you receiving a single output, which then can
+prove insufficiently granular to be convenient. In the Bitcoin space Mike Hearn and Gavin Andresen designed “BIP 70”
+to solve this: it’s a simple binary format for requesting a payment and specifying exactly how you’d like to get paid,
+including things like the shape of the transaction. It may seem that it’s an over complex approach: could you not
+just immediately respend the big output back to yourself in order to split it? And yes, you could, until you hit
+scenarios like “the machine requesting the payment doesn’t have the keys needed to spend it”,
+which turn out to be very common. So it’s really more effective for a recipient to be able to say to the
+sender, “here’s the kind of transaction I want you to send me”. The protocol framework
+may provide a vehicle to make such negotiations simpler.
+
A further challenge is privacy. Whilst our goal of not sending transactions to nodes that don’t “need to know”
+helps, to verify a transaction you still need to verify all its dependencies and that can result in you receiving
+lots of transactions that involve random third parties. The problems start when you have received lots of separate
+payments and been careful not to make them linkable to your identity, but then you need to combine them all in a
+single transaction to make a payment.
+
Mike Hearn wrote an article about this problem and techniques to minimise it in
+this article from 2013. This article
+coined the term “merge avoidance”, which has never been implemented in the Bitcoin space,
+although not due to lack of practicality.
+
A piece of future work for the wallet implementation will be to implement automated “grooming” of the wallet
+to “reshape” outputs to useful/standardised sizes, for example, and to send outputs of complex transactions
+back to their issuers for reissuance to “sever” long privacy-breaching chains.
+
Finally, it should be noted that some of the issues described here are not really “cons” of
+the UTXO model; they’re just fundamental. If you used many different anonymous accounts to preserve some privacy
+and then needed to spend the contents of them all simultaneously, you’d hit the same problem, so it’s not
+something that can be trivially fixed with data model changes.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/docs/build/html/event-scheduling.html b/docs/build/html/event-scheduling.html
new file mode 100644
index 0000000000..d25b809142
--- /dev/null
+++ b/docs/build/html/event-scheduling.html
@@ -0,0 +1,346 @@
+
+
+
+
+
+
+
+
+
+
+ Event scheduling — R3 Corda latest documentation
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ R3 Corda
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Event scheduling
+
This article explains our approach to modelling time based events in code. It explains how a contract
+state can expose an upcoming event and what action to take if the scheduled time for that event is reached.
+
+
Introduction
+
Many financial instruments have time sensitive components to them. For example, an Interest Rate Swap has a schedule
+for when:
+
+Interest rate fixings should take place for floating legs, so that the interest rate used as the basis for payments
+can be agreed.
+Any payments between the parties are expected to take place.
+Any payments between the parties become overdue.
+
+
Each of these is dependent on the current state of the financial instrument. What payments and interest rate fixings
+have already happened should already be recorded in the state, for example. This means that the next time sensitive
+event is thus a property of the current contract state. By next, we mean earliest in chronological terms, that is still
+due. If a contract state is consumed in the UTXO model, then what was the next event becomes irrelevant and obsolete
+and the next time sensitive event is determined by any successor contract state.
+
Knowing when the next time sensitive event is due to occur is useful, but typically some activity is expected to take
+place when this event occurs. We already have a model for business processes in the form of protocols ,
+so in the platform we have introduced the concept of scheduled activities that can invoke protocol state machines
+at a scheduled time. A contract state can optionally described the next scheduled activity for itself. If it omits
+to do so, then nothing will be scheduled.
+
+
+
How to implement scheduled events
+
There are two main steps to implementing scheduled events:
+
+Have your ContractState
implementation also implement SchedulableState
. This requires a method named
+nextScheduledActivity
to be implemented which returns an optional ScheduledActivity
instance.
+ScheduledActivity
captures what ProtocolLogic
instance each node will run, to perform the activity, and when it
+will run is described by a java.time.Instant
. Once your state implements this interface and is tracked by the
+wallet, it can expect to be queried for the next activity when committed to the wallet.
+If nothing suitable exists, implement a ProtocolLogic
to be executed by each node as the activity itself.
+The important thing to remember is that in the current implementation, each node that is party to the transaction
+will execute the same ProtocolLogic
, so it needs to establish roles in the business process based on the contract
+state and the node it is running on. Each side will follow different but complementary paths through the business logic.
+
+
+
Note
+
The scheduler’s clock always operates in the UTC time zone for uniformity, so any time zone logic must be
+performed by the contract, using ZonedDateTime
.
+
+
In the short term, until we have automatic protocol session set up, you will also likely need to install a network
+handler to help with obtaining a unqiue and secure random session. An example is described below.
+
The production and consumption of ContractStates
is observed by the scheduler and the activities associated with
+any consumed states are unscheduled. Any newly produced states are then queried via the nextScheduledActivity
+method and if they do not return null
then that activity is scheduled based on the content of the
+ScheduledActivity
object returned. Be aware that this only happens if the wallet considers the state
+“relevant”, for instance, because the owner of the node also owns that state. States that your node happens to
+encounter but which aren’t related to yourself will not have any activities scheduled.
+
+
+
An example
+
Let’s take an example of the interest rate swap fixings for our scheduled events. The first task is to implement the
+nextScheduledActivity
method on the State
.
+
+
override fun nextScheduledActivity(thisStateRef: StateRef,
+ protocolLogicRefFactory: ProtocolLogicRefFactory): ScheduledActivity? {
+ val nextFixingOf = nextFixingOf() ?: return null
+
+ val (instant, duration) = suggestInterestRateAnnouncementTimeWindow(index = nextFixingOf.name,
+ source = floatingLeg.indexSource,
+ date = nextFixingOf.forDay)
+ return ScheduledActivity(protocolLogicRefFactory.create(TwoPartyDealProtocol.FixingRoleDecider::class.java,
+ thisStateRef, duration), instant)
+}
+
+
+
+
The first thing this does is establish if there are any remaining fixings. If there are none, then it returns null
+to indicate that there is no activity to schedule. Otherwise it calculates the Instant
at which the interest rate
+should become available and schedules an activity at that time to work out what roles each node will take in the fixing
+business process and to take on those roles. That ProtocolLogic
will be handed the StateRef
for the interest
+rate swap State
in question, as well as a tolerance Duration
of how long to wait after the activity is triggered
+for the interest rate before indicating an error.
+
+
Note
+
This is a way to create a reference to the ProtocolLogic class and its constructor parameters to
+instantiate. The reference can be checked against a per-node whitelist of approved and allowable types as
+part of our overall security sandboxing.
+
+
As previously mentioned, we currently need a small network handler to assist with session setup until the work to
+automate that is complete. See the interest rate swap specific implementation FixingSessionInitiationHandler
which
+is responsible for starting a ProtocolLogic
to perform one role in the fixing protocol with the sessionID
sent
+by the FixingRoleDecider
on the other node which then launches the other role in the fixing protocol. Currently
+the handler needs to be manually installed in the node.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/docs/build/html/genindex.html b/docs/build/html/genindex.html
new file mode 100644
index 0000000000..30660ea28c
--- /dev/null
+++ b/docs/build/html/genindex.html
@@ -0,0 +1,244 @@
+
+
+
+
+
+
+
+
+
+
+
+ Index — R3 Corda latest documentation
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ R3 Corda
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/docs/build/html/getting-set-up.html b/docs/build/html/getting-set-up.html
new file mode 100644
index 0000000000..5a31bc95f4
--- /dev/null
+++ b/docs/build/html/getting-set-up.html
@@ -0,0 +1,301 @@
+
+
+
+
+
+
+
+
+
+
+ Getting set up — R3 Corda latest documentation
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ R3 Corda
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Getting set up
+
Ensure that you have access to R3 git repository.
+
+
+
If you cannot access the page please contact the R3 admin team.
+
Install the Oracle JDK 8u45 or higher. OpenJDK will probably also work, but it hasn’t been tested.
+
Then install IntelliJ. The Community Edition is good enough:
+
+
+
Upgrade the Kotlin plugin to the latest version by clicking “Configure > Plugins” in the opening screen,
+then clicking “Install JetBrains plugin”, then searching for Kotlin, then hitting “Upgrade” and then “Restart”.
+You can confirm what is the latest version of Kotlin plugin on this page:
+
+
+
Choose “Check out from version control” and use this git URL. Please remember to replace your_username with your
+actual bitbucket user name.
+
+
+
After code is cloned open the project. Please ensure that Gradle project is imported.
+You should have the “Unliked Gradle project?” pop-up window in the IntelliJ top right corner. Please click on “Import Gradle Project”. Wait for it to think and download the dependencies. After that you might have another popup titled “Unindexed remote maven repositories found.” This is general IntelliJ question and doesn’t affect Corda, therefore you can decided to index them or not.
+
Next click on “green arrow” next to “All tests” pop-up on the top toolbar.
+
The code should build, the unit tests should show as all green.
+
You can catch up with the latest code by selecting “VCS -> Update Project” in the menu.
+
+
If IntelliJ complains about lack of an SDK
+
If on attempting to open the project (including importing Gradle project), IntelliJ refuses because SDK was not selected, do the following:
+
+Configure -> Project Defaults -> Project Structure
+
on that tab:
+
+Project Settings / Project
+
click on New… next to the red <No SDK> symbol, and select JDK. It should then pop up and show the latest JDK it has
+found at something like
+
+jdk1.8.0_xx…/Contents/Home
+
Also select Project language level: as 8. Click OK. Open should now work.
+
+
+
Doing it without IntelliJ
+
If you don’t want to explore or modify the code in a local IDE, you can also just use the command line and a text editor:
+* First run git clone https://your_username@bitbucket.org/R3-CEV/r3prototyping.git
to download Corda source code. Please remember to replace your_username with your actual bitbucket user name.
+* Next ensure that you are in r3repository cd r3repository
+* Then you can run ./gradlew test
to run the unit tests.
+* Finally remeber to run git pull
to upgrade the source code.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/docs/build/html/index.html b/docs/build/html/index.html
new file mode 100644
index 0000000000..e679b6f959
--- /dev/null
+++ b/docs/build/html/index.html
@@ -0,0 +1,522 @@
+
+
+
+
+
+
+
+
+
+
+ Welcome to the Corda! — R3 Corda latest documentation
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ R3 Corda
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Welcome to the Corda!
+
+
Warning
+
This build of the docs is from the master branch , not a milestone release. It may not reflect the
+current state of the code.
+
+
This is the developer guide for Corda, a proposed architecture for distributed ledgers. Here are the sources
+of documentation you may find useful, from highest level to lowest:
+
+The Introductory white paper describes the motivating vision and background of the project. It is the kind
+of document your boss should read. It describes why the project exists and briefly compares it to alternative
+systems on the market.
+This user guide. It describes how to use the system to write apps. It assumes you already have read the
+relevant sections of the technology white paper and now wish to learn how to use it.
+The API docs .
+
+
Read on to learn:
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/docs/build/html/initialmarginagreement.html b/docs/build/html/initialmarginagreement.html
new file mode 100644
index 0000000000..2e9684ac5c
--- /dev/null
+++ b/docs/build/html/initialmarginagreement.html
@@ -0,0 +1,329 @@
+
+
+
+
+
+
+
+
+
+
+ Initial Margin Agreements — R3 Corda latest documentation
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ R3 Corda
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Initial Margin Agreements
+
This app is a demonstration of how Corda can be used for the real world requirement of initial margin calculation and
+agreement; featuring the integration of complex and industry proven third party libraries into Corda nodes.
+
+
SIMM Introduction
+
SIMM is an acronym for “Standard Initial Margin Model”. It is effectively the calculation of a “margin” that is paid
+by one party to another when they agree a trade on certain types of transaction. This margin is
+paid such that, in the event of one of the counterparties suffering a credit event
+(a financial term and a polite way to say defaulting, not paying the debts that are due, or potentially even bankruptcy),
+then the party that is owed any sum already has some of the amount that it should have been paid. This payment to the
+receiving party is a preventative measure in order to reduce the risk of a potentially catastrophic default domino
+effect that caused the Great Financial Crisis ,
+as it means that they can be assured that if they need to pay another party, they will have a proportion of the funds
+that they have been relying on.
+
To enact this, in September 2016, the ISDA committee - with full backing from various governing bodies -
+issued a ruling on what is known as the ISDA SIMM ™ model ,
+a way of fairly and consistently calculating this margin. Any parties wishing to trade a financial product that is
+covered under this ruling would, independently, use this model and calculate their margin payment requirement,
+agree it with their trading counterparty and then pay (or receive, depending on the results of this calculation)
+this amount. In the case of disagreement that is not resolved in a timely fashion, this payment would increase
+and so therefore it is in the parties interest to reach agreement in a short as time frame as possible.
+
To be more accurate, the SIMM calculation is not performed on just one trade - it is calculated on an aggregate of
+intermediary values (which in this model are sensitivities to risk factors) from a portfolio of trades; therefore
+the input to a SIMM is actually this data, not the individual trades itself.
+
Also note that implementations of the SIMM are actually protected and subject to license restrictions by ISDA
+(this is due to the model itself being protected). We were fortunate enough to technically partner with
+OpenGamma who allowed us to demonstrate the SIMM process using their proprietary model.
+In the source code released, we have replaced their analytics engine with very simple stub functions that allow
+the process to run and can easily be swapped out in place for their real libraries.
+
+
+
Process steps
+
+Preliminaries
+
+Ensure that there are a number of live trades with another party financial products that are covered under the
+
+
+ISDA SIMM agreement (if none, then use the demo to enter some simple trades as described below).
+
+Initial Margin Agreement Process
+
+Agree that one will be performing the margining calculation against a portfolio of trades with another party, and agree the trades in that portfolio. In practice, one node will start the protocol but it does not matter which node does.
+Individually (at the node level), identify the data (static, reference etc) one will need in order to be able to calculate the metrics on those trades
+Confirm with the other counterparty the dataset from the above set
+Calculate any intermediary steps and values needed for the margin calculation (ie sensitivities to risk factors)
+Agree on the results of these steps
+Calculate the initial margin
+Agree on the calculation of the above with the other party
+In practice, pay (or receive) this margin (omitted for the sake of complexity for this example)
+
+
+
+
+
+
Running the app
+
The demonstration can be run in two ways - via IntelliJ (which will allow you to add breakpoints, debug, etc), or via gradle and the command line.
+
Run with IntelliJ:
+
1. Open the `cordapp-samples` project with IntelliJ
+2. Run the shared run configuration "SIMM Valuation Demo"
+3. Browse to http://localhost:10005/web/simmvaluationdemo
+
+
+
Run via CLI:
+
1. Navigate to the `cordapp-samples` directory in your shell
+2. Run the gradle target `deployNodes` (ie; ./gradlew deployNodes for Unix or gradlew.bat on Windows)
+ 1. Unix: `cd simm-valuation-demo/build/nodes && ./runnodes`.
+ 2. Windows: Open a command line window in each subdirectory of `simm-valuation-demo/build/nodes` and run `java -jar corda.jar`
+4. Browse to http://localhost:10005/web/simmvaluationdemo
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/docs/build/html/inthebox.html b/docs/build/html/inthebox.html
new file mode 100644
index 0000000000..b8e3221df4
--- /dev/null
+++ b/docs/build/html/inthebox.html
@@ -0,0 +1,292 @@
+
+
+
+
+
+
+
+
+
+
+ What’s included? — R3 Corda latest documentation
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ R3 Corda
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
What’s included?
+
The Corda prototype currently includes:
+
+A peer to peer network with message persistence and delivery retries.
+Key data structures for defining contracts and states.
+Smart contracts, which you can find in the Contract catalogue .
+Algorithms that work with them, such as serialising, hashing, signing, and verification of the signatures.
+API documentation and tutorials (what you’re reading).
+A business process orchestration framework.
+Notary infrastructure for precise timestamping, and elimination of double spending without a blockchain.
+A simple REST API, and a web app demo that uses it to present a frontend for IRS trading.
+
+
Some things it does not currently include but should gain later are:
+
+Sandboxing, distribution or publication of smart contract code
+A user interface for administration
+
+
The prototype’s goal is rapid exploration of ideas. Therefore in places it takes shortcuts that a production system
+would not in order to boost productivity:
+
+It uses an object graph serialization framework instead of a well specified, vendor neutral protocol.
+There’s currently no permissioning framework.
+Some privacy techniques aren’t implemented yet.
+It uses an embedded SQL database and doesn’t yet have connectivity support for mainstream SQL vendors (Oracle,
+Postgres, MySQL, SQL Server etc).
+
+
+
Kotlin
+
Corda is written in a language called Kotlin . Kotlin is a language that targets the JVM
+and can be thought of as a simpler Scala, with much better Java interop. It is developed by and has commercial support
+from JetBrains, the makers of the IntelliJ IDE and other popular developer tools.
+
As Kotlin is very new, without a doubt you have not encountered it before. Don’t worry: it is designed as a better
+Java for industrial use and as such, the syntax was carefully designed to be readable even to people who don’t know
+the language, after only a few minutes of introduction.
+
Due to the seamless Java interop the use of Kotlin to extend the platform is not required and the tutorial shows how
+to write contracts in both Kotlin and Java. You can read more about why Kotlin is a potentially strong successor to Java here .
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/docs/build/html/merkle-trees.html b/docs/build/html/merkle-trees.html
new file mode 100644
index 0000000000..222502c659
--- /dev/null
+++ b/docs/build/html/merkle-trees.html
@@ -0,0 +1,348 @@
+
+
+
+
+
+
+
+
+
+
+ Transaction Tear-offs — R3 Corda latest documentation
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ R3 Corda
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Transaction Tear-offs
+
One of the basic data structures in our platform is a transaction. It can be passed around to be signed and verified,
+also by third parties. The construction of transactions assumes that they form a whole entity with input and output states,
+commands and attachments inside. However all sensitive data shouldn’t be revealed to other nodes that take part in
+the creation of transaction on validation level (a good example of this situation is the Oracle which validates only
+embedded commands). How to achive it in a way that convinces the other party the data they got for signing really did form
+a part of the transaction?
+
We decided to use well known and described cryptographic scheme to provide proofs of inclusion and data integrity.
+Merkle trees are widely used in peer-to-peer networks, blockchain systems and git.
+You can read more on the concept here .
+
+
Merkle trees in Corda
+
Transactions are split into leaves, each of them contains either input, output, command or attachment. Other fields like
+timestamp or signers are not used in the calculation.
+Next, the Merkle tree is built in the normal way by hashing the concatenation
+of nodes’ hashes below the current one together. It’s visible on the example image below, where H
denotes sha256 function,
+“+” - concatenation.
+
+
The transaction has one input state, one output and three commands. If a tree is not a full binary tree, the rightmost nodes are
+duplicated in hash calculation (dotted lines).
+
Finally, the hash of the root is the identifier of the transaction, it’s also used for signing and verification of data integrity.
+Every change in transaction on a leaf level will change its identifier.
+
+
+
Hiding data
+
Hiding data and providing the proof that it formed a part of a transaction is done by constructing Partial Merkle Trees
+(or Merkle branches). A Merkle branch is a set of hashes, that given the leaves’ data, is used to calculate the root’s hash.
+Then that hash is compared with the hash of a whole transaction and if they match it means that data we obtained belongs
+to that particular transaction.
+
+
In the example above, the red node is the one holding data for signing Oracle service. Blue nodes’ hashes form the Partial Merkle
+Tree, dotted ones are not included. Having the command that should be in a red node place and branch we are able to calculate
+root of this tree and compare it with original transaction identifier - we have a proof that this command belongs to this transaction.
+
+
+
Example of usage
+
Let’s focus on a code example. We want to construct a transaction with commands containing interest rate fix data as in:
+Writing oracle services .
+After construction of a partial transaction, with included Fix
commands in it, we want to send it to the Oracle for checking
+and signing. To do so we need to specify which parts of the transaction are going to be revealed. That can be done by constructing
+filtering functions for inputs, outputs, attachments and commands separately. If a function is not provided by default none
+of the elements from this group will be included in a Partial Merkle Tree.
+
+
val partialTx = ...
+val oracle : Party = ...
+fun filterCommands ( c : Command ) = oracle . owningKey in c . signers && c . value is Fix
+val filterFuns = FilterFuns ( filterCommands = :: filterCommands )
+
+
+
+
Assuming that we already assembled partialTx with some commands and know the identity of Oracle service,
+we pass filtering function over commands - filterCommands
to FilterFuns
. It filters only
+commands of type Fix
as in IRSDemo example. Then we can construct FilteredTransaction
:
+
+
val wtx : WireTransaction = partialTx . toWireTransaction ()
+val ftx = FilteredTransaction . buildMerkleTransaction ( wtx , filterFuns )
+
+
+
+
In the Oracle example this step takes place in RatesFixProtocol
:
+
+
val protocol = RatesFixProtocol ( partialTx , filterFuns , oracle , fixOf , "0.675" . bd , "0.1" . bd )
+
+
+
+
FilteredTransaction
holds filteredLeaves
(data that we wanted to reveal) and Merkle branch for them.
+
+
// Getting included commands, inputs, outputs, attachments.
+val cmds : List < Command > = ftx . filteredLeaves . commands
+val ins : List < StateRef > = ftx . filteredLeaves . inputs
+val outs : List < TransactionState < ContractState >> = ftx . filteredLeaves . outputs
+val attchs : List < SecureHash > = ftx . filteredLeaves . attachments
+
+
+
+
If you want to verify obtained FilteredTransaction
all you need is the root hash of the full transaction:
+
+
if (! ftx . verify ( merkleRoot )){
+ throw MerkleTreeException ( "Rate Fix Oracle: Couldn't verify partial Merkle tree." )
+}
+
+
+
+
+
Note
+
The way the FilteredTransaction
is constructed ensures that after signing of the root hash it’s impossible to add or remove
+leaves. However, it can happen that having transaction with multiple commands one party reveals only subset of them to the Oracle.
+As signing is done now over the merkle root hash, the service signs all commands of given type, even though it didn’t see
+all of them. This issue will be handled after implementing partial signatures.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/docs/build/html/messaging.html b/docs/build/html/messaging.html
new file mode 100644
index 0000000000..8b73c346fc
--- /dev/null
+++ b/docs/build/html/messaging.html
@@ -0,0 +1,299 @@
+
+
+
+
+
+
+
+
+
+
+ Networking and messaging — R3 Corda latest documentation
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ R3 Corda
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Networking and messaging
+
Corda uses AMQP/1.0 over TLS between nodes which is currently implemented using Apache Artemis, an embeddable message
+queue broker. Building on established MQ protocols gives us features like persistence to disk, automatic delivery
+retries with backoff and dead-letter routing, security, large message streaming and so on.
+
Artemis is hidden behind a thin interface that also has an in-memory only implementation suitable for use in
+unit tests and visualisation tools.
+
+
Note
+
A future version of Corda will allow the MQ broker to be split out of the main node and run as a
+separate server. We may also support non-Artemis implementations via JMS, allowing the broker to be swapped
+out for alternative implementations.
+
+
There are multiple ways of interacting with the network. When writing an application you typically won’t use the
+messaging subsystem directly. Instead you will build on top of the protocol framework ,
+which adds a layer on top of raw messaging to manage multi-step protocols and let you think in terms of identities
+rather than specific network endpoints.
+
+
Messaging types
+
Every Message
object has an associated topic and may have a session ID . These are wrapped in a TopicSession
.
+An implementation of MessagingService
can be used to create messages and send them. You can get access to the
+messaging service via the ServiceHub
object that is provided to your app. Endpoints on the network are
+identified at the lowest level using SingleMessageRecipient
which may be e.g. an IP address, or in future
+versions perhaps a routing path through the network.
+
+
+
Network Map Service
+
Supporting the messaging layer is a network map service, which is responsible for tracking public nodes on the network.
+
Nodes have an internal component, the network map cache, which contains a copy of the network map (which is just a
+document). When a node starts up its cache fetches a copy of the full network map, and requests to be notified of
+changes. The node then registers itself with the network map service, and the service notifies subscribers that a new
+node has joined the network. Nodes do not automatically deregister themselves, so (for example) nodes going offline
+briefly for maintenance are retained in the network map, and messages for them will be queued, minimising disruption.
+
Nodes submit signed changes to the map service, which then forwards update notifications on to nodes which have
+requested to be notified of changes.
+
The network map currently supports:
+
+Looking up nodes by service
+Looking up node for a party
+Suggesting a node providing a specific service, based on suitability for a contract and parties, for example suggesting
+an appropriate interest rates oracle for a interest rate swap contract. Currently no recommendation logic is in place.
+The code simply picks the first registered node that supports the required service.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/docs/build/html/network-simulator.html b/docs/build/html/network-simulator.html
new file mode 100644
index 0000000000..bf089f9651
--- /dev/null
+++ b/docs/build/html/network-simulator.html
@@ -0,0 +1,290 @@
+
+
+
+
+
+
+
+
+
+
+ Network Simulator — R3 Corda latest documentation
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ R3 Corda
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Network Simulator
+
A network simulator is provided which shows traffic between nodes through the lifecycle of an interest rate swap
+contract. It can optionally also show network setup, during which nodes register themselves with the network
+map service and are notified of the changes to the map. The network simulator is run from the command line via Gradle:
+
Windows :
+
gradlew . bat network - simulator : run
+
+
+
Other :
+
./ gradlew network - simulator : run
+
+
+
+
Interface
+
+
The network simulator can be run automatically, or stepped manually through each step of the interest rate swap. The
+options on the simulator window are:
+
+Simulate initialisation
+If checked, the nodes registering with the network map is shown. Normally this setup step
+is not shown, but may be of interest to understand the details of node discovery.
+Run
+Runs the network simulation in automatic mode, in which it progresses each step on a timed basis. Once running,
+the simulation can be paused in order to manually progress it, or reset.
+Next
+Manually progress the simulation to the next step.
+Reset
+Reset the simulation (only available when paused).
+Map/Circle
+How the nodes are shown, by default nodes are rendered on a world map, but alternatively they can rendered
+in a circle layout.
+
+
While the simulation runs, details of the steps currently being executed are shown in a sidebar on the left hand side
+of the window.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/docs/build/html/node-administration.html b/docs/build/html/node-administration.html
new file mode 100644
index 0000000000..d9c0452d7b
--- /dev/null
+++ b/docs/build/html/node-administration.html
@@ -0,0 +1,345 @@
+
+
+
+
+
+
+
+
+
+
+ Node administration — R3 Corda latest documentation
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ R3 Corda
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Node administration
+
When a node is running, it exposes an embedded database server, an embedded web server that lets you monitor it,
+you can upload and download attachments, access a REST API and so on.
+
+
Database access
+
The node exposes its internal database over a socket which can be browsed using any tool that can use JDBC drivers.
+The JDBC URL is printed during node startup to the log and will typically look like this:
+
+jdbc:h2:tcp://192.168.0.31:31339/node
+
The username and password can be altered in the corda-config-files but default to username “sa” and a blank
+password.
+
Any database browsing tool that supports JDBC can be used, but if you have IntelliJ Ultimate edition then there is
+a tool integrated with your IDE. Just open the database window and add an H2 data source with the above details.
+You will now be able to browse the tables and row data within them.
+
+
+
Monitoring your node
+
Like most Java servers, the node exports various useful metrics and management operations via the industry-standard
+JMX infrastructure . JMX is a standard API
+for registering so-called MBeans ... objects whose properties and methods are intended for server management. It does
+not require any particular network protocol for export. So this data can be exported from the node in various ways:
+some monitoring systems provide a “Java Agent”, which is essentially a JVM plugin that finds all the MBeans and sends
+them out to a statistics collector over the network. For those systems, follow the instructions provided by the vendor.
+
Sometimes though, you just want raw access to the data and operations itself. So nodes export them over HTTP on the
+/monitoring/json
HTTP endpoint, using a program called Jolokia . Jolokia defines the JSON
+and REST formats for accessing MBeans, and provides client libraries to work with that protocol as well.
+
Here are a few ways to build dashboards and extract monitoring data for a node:
+
+JMX2Graphite is a tool that can be pointed to /monitoring/json and will
+scrape the statistics found there, then insert them into the Graphite monitoring tool on a regular basis. It runs
+in Docker and can be started with a single command.
+JMXTrans is another tool for Graphite, this time, it’s got its own agent
+(JVM plugin) which reads a custom config file and exports only the named data. It’s more configurable than
+JMX2Graphite and doesn’t require a separate process, as the JVM will write directly to Graphite.
+Java Mission Control is a desktop app that can connect to a target JVM that has the right command line flags set
+(or always, if running locally). You can explore what data is available, create graphs of those metrics, and invoke
+management operations like forcing a garbage collection.
+Cloud metrics services like New Relic also understand JMX, typically, by providing their own agent that uploads the
+data to their service on a regular schedule.
+
+
+
+
Uploading and downloading attachments
+
Attachments are files that add context to and influence the behaviour of transactions. They are always identified by
+hash and they are public, in that they propagate through the network to wherever they are needed.
+
All attachments are zip files. Thus to upload a file to the ledger you must first wrap it into a zip (or jar) file. Then
+you can upload it by running this command from a UNIX terminal:
+
curl -F myfile = @path/to/my/file.zip http://localhost:31338/upload/attachment
+
+
+
The attachment will be identified by the SHA-256 hash of the contents, which you can get by doing:
+
+
on a Mac or by using sha256sum
on Linux. Alternatively, the hash will be returned to you when you upload the
+attachment.
+
An attachment may be downloaded by fetching:
+
http://localhost:31338/attachments/DECD098666B9657314870E192CED0C3519C2C9D395507A238338F8D003929DE9
+
+
+
where DECD... is of course replaced with the hash identifier of your own attachment. Because attachments are always
+containers, you can also fetch a specific file within the attachment by appending its path, like this:
+
http://localhost:31338/attachments/DECD098666B9657314870E192CED0C3519C2C9D395507A238338F8D003929DE9/path/within/zip.txt
+
+
+
+
+
Uploading interest rate fixes
+
If you would like to operate an interest rate fixing service (oracle), you can upload fix data by uploading data in
+a simple text format to the /upload/interest-rates
path on the web server.
+
The file looks like this:
+
# Some pretend noddy rate fixes, for the interest rate oracles.
+
+LIBOR 2016-03-16 1M = 0.678
+LIBOR 2016-03-16 2M = 0.655
+EURIBOR 2016-03-15 1M = 0.123
+EURIBOR 2016-03-15 2M = 0.111
+
+
+
The columns are:
+
+Name of the fix
+Date of the fix
+The tenor / time to maturity in days
+The interest rate itself
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/docs/build/html/node-explorer.html b/docs/build/html/node-explorer.html
new file mode 100644
index 0000000000..e844c01597
--- /dev/null
+++ b/docs/build/html/node-explorer.html
@@ -0,0 +1,331 @@
+
+
+
+
+
+
+
+
+
+
+ Node Explorer — R3 Corda latest documentation
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ R3 Corda
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Node Explorer
+
The node explorer provide views to the node’s vault and transaction data using Corda’s RPC framework.
+The user can execute cash transaction commands to issue and move cash to other party on the network or exit cash using the user interface.
+
+
Running the UI
+
Windows :
+
gradlew . bat tools : explorer : run
+
+
+
Other :
+
./ gradlew tools : explorer : run
+
+
+
+
+
Running Demo Nodes
+
Windows :
+
gradlew . bat tools : explorer : runDemoNodes
+
+
+
Other :
+
./ gradlew tools : explorer : runDemoNodes
+
+
+
+
Note
+
3 Corda nodes will be created on the following port on localhost by default.
+
+Notary -> 20002
+Alice -> 20004
+Bob -> 20006
+
+
+
+
+
Interface
+
+Login
+User can login to any Corda node using the explorer, alternately, gradlew explorer:runDemoNodes can be used to start up demo nodes for testing.
+Corda node address, username and password are required for login, the address is defaulted to localhost:0 if leave blank.
+Username and password can be configured in node’s configuration file; for demo nodes, it is defaulted to user1
and test
.
+
+
+
Note
+
If you are connecting to the demo nodes, only Alice and Bob (20004, 20006) are accessible using user1 credential, you won’t be able to connect to the notary.
+
+
+
+Home
+Home view shows the top level state of node and vault; currently, it shows your cash balance and the numbers of transaction executed.
+The dashboard is intended to house widgets from different CordApp’s and provide useful information to system admin at a glance.
+
+
+
+Cash
+The cash view shows all currencies you currently own in a tree table format, it is grouped by issuer -> currency.
+Individual cash transactions can be viewed by clicking on the table row. The user can also use the search field to narrow down the scope.
+
+
+
+Transactions
+The transaction view contains all transactions handled by the node in a table view. It shows basic information on the table e.g. Transaction ID,
+command type, USD equivalence value etc. User can expand the row by double clicking to view the inputs,
+outputs and the signatures details for that transaction.
+
+
+
+New Transaction
+This is where you can create new transaction; currently only the cash contract is supported.
+The user can choose from three transaction types (issue, move and exit) and any party visible on the network.
+The result of the transaction will be visible in the transaction screen when executed.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/docs/build/html/objects.inv b/docs/build/html/objects.inv
new file mode 100644
index 0000000000..771dd0f9fa
Binary files /dev/null and b/docs/build/html/objects.inv differ
diff --git a/docs/build/html/oracles.html b/docs/build/html/oracles.html
new file mode 100644
index 0000000000..69ee7d250d
--- /dev/null
+++ b/docs/build/html/oracles.html
@@ -0,0 +1,375 @@
+
+
+
+
+
+
+
+
+
+
+ Writing oracle services — R3 Corda latest documentation
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ R3 Corda
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Writing oracle services
+
This article covers oracles : network services that link the ledger to the outside world by providing facts that
+affect the validity of transactions.
+
The current prototype includes an example oracle that provides an interest rate fixing service. It is used by the
+IRS trading demo app.
+
+
Introduction
+
Oracles are a key concept in the block chain/decentralised ledger space. They can be essential for many kinds of
+application, because we often wish to condition a transaction on some fact being true or false, but the ledger itself
+has a design that is essentially functional: all transactions are pure and immutable . Phrased another way, a
+smart contract cannot perform any input/output or depend on any state outside of the transaction itself. There is no
+way to download a web page or interact with the user, in a smart contract. It must be this way because everyone must
+be able to independently check a transaction and arrive at an identical conclusion for the ledger to maintan its
+integrity: if a transaction could evaluate to “valid” on one computer and then “invalid” a few minutes later on a
+different computer, the entire shared ledger concept wouldn’t work.
+
But it is often essential that transactions do depend on data from the outside world, for example, verifying that an
+interest rate swap is paying out correctly may require data on interest rates, verifying that a loan has reached
+maturity requires knowledge about the current time, knowing which side of a bet receives the payment may require
+arbitrary facts about the real world (e.g. the bankruptcy or solvency of a company or country) ... and so on.
+
We can solve this problem by introducing services that create digitally signed data structures which assert facts.
+These structures can then be used as an input to a transaction and distributed with the transaction data itself. Because
+the statements are themselves immutable and signed, it is impossible for an oracle to change its mind later and
+invalidate transactions that were previously found to be valid. In contrast, consider what would happen if a contract
+could do an HTTP request: it’s possible that an answer would change after being downloaded, resulting in loss of
+consensus (breaks).
+
+
+
The two basic approaches
+
The architecture provides two ways of implementing oracles with different tradeoffs:
+
+Using commands
+Using attachments
+
+
When a fact is encoded in a command, it is embedded in the transaction itself. The oracle then acts as a co-signer to
+the entire transaction. The oracle’s signature is valid only for that transaction, and thus even if a fact (like a
+stock price) does not change, every transaction that incorporates that fact must go back to the oracle for signing.
+
When a fact is encoded as an attachment, it is a separate object to the transaction and is referred to by hash.
+Nodes download attachments from peers at the same time as they download transactions, unless of course the node has
+already seen that attachment, in which case it won’t fetch it again. Contracts have access to the contents of
+attachments when they run.
+
+
Note
+
Currently attachments do not support digital signing, but this is a planned feature.
+
+
As you can see, both approaches share a few things: they both allow arbitrary binary data to be provided to transactions
+(and thus contracts). The primary difference is whether the data is a freely reusable, standalone object or whether it’s
+integrated with a transaction.
+
Here’s a quick way to decide which approach makes more sense for your data source:
+
+Is your data continuously changing , like a stock price, the current time, etc? If yes, use a command.
+Is your data commercially valuable , like a feed which you are not allowed to resell unless it’s incorporated into
+a business deal? If yes, use a command, so you can charge money for signing the same fact in each unique business
+context.
+Is your data very small , like a single number? If yes, use a command.
+Is your data large , static and commercially worthless , for instance, a holiday calendar? If yes, use an
+attachment.
+Is your data intended for human consumption , like a PDF of legal prose, or an Excel spreadsheet? If yes, use an
+attachment.
+
+
+
+
Asserting continuously varying data
+
+
Note
+
A future version of the platform will include a complete tutorial on implementing this type of oracle.
+
+
Let’s look at the interest rates oracle that can be found in the NodeInterestRates
file. This is an example of
+an oracle that uses a command because the current interest rate fix is a constantly changing fact.
+
The obvious way to implement such a service is like this:
+
+The creator of the transaction that depends on the interest rate sends it to the oracle.
+The oracle inserts a command with the rate and signs the transaction.
+The oracle sends it back.
+
+
But this has a problem - it would mean that the oracle has to be the first entity to sign the transaction, which might impose
+ordering constraints we don’t want to deal with (being able to get all parties to sign in parallel is a very nice thing).
+So the way we actually implement it is like this:
+
+The creator of the transaction that depends on the interest rate asks for the current rate. They can abort at this point
+if they want to.
+They insert a command with that rate and the time it was obtained into the transaction.
+They then send it to the oracle for signing, along with everyone else in parallel. The oracle checks that the command
+has correct data for the asserted time, and signs if so.
+
+
This same technique can be adapted to other types of oracle.
+
The oracle consists of a core class that implements the query/sign operations (for easy unit testing), and then a separate
+class that binds it to the network layer.
+
Here is an extract from the NodeService.Oracle
class and supporting types:
+
/** A [FixOf] identifies the question side of a fix: what day, tenor and type of fix ("LIBOR", "EURIBOR" etc) */
+data class FixOf ( val name : String , val forDay : LocalDate , val ofTenor : Duration )
+
+/** A [Fix] represents a named interest rate, on a given day, for a given duration. It can be embedded in a tx. */
+data class Fix ( val of : FixOf , val value : BigDecimal ) : CommandData
+
+class Oracle {
+ fun query ( queries : List < FixOf >): List < Fix >
+
+ fun sign ( wtx : WireTransaction ): DigitalSignature . LegallyIdentifiable
+}
+
+
+
Because the fix contains a timestamp (the forDay
field), there can be an arbitrary delay between a fix being
+requested via query
and the signature being requested via sign
.
+
+
+
Pay-per-play oracles
+
Because the signature covers the transaction, and transactions may end up being forwarded anywhere, the fact itself
+is independently checkable. However, this approach can still be useful when the data itself costs money, because the act
+of issuing the signature in the first place can be charged for (e.g. by requiring the submission of a fresh
+Cash.State
that has been re-assigned to a key owned by the oracle service). Because the signature covers the
+transaction and not only the fact , this allows for a kind of weak pseudo-DRM over data feeds. Whilst a smart
+contract could in theory include a transaction parsing and signature checking library, writing a contract in this way
+would be conclusive evidence of intent to disobey the rules of the service (res ipsa loquitur ). In an environment
+where parties are legally identifiable, usage of such a contract would by itself be sufficient to trigger some sort of
+punishment.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/docs/build/html/persistence.html b/docs/build/html/persistence.html
new file mode 100644
index 0000000000..32df201010
--- /dev/null
+++ b/docs/build/html/persistence.html
@@ -0,0 +1,318 @@
+
+
+
+
+
+
+
+
+
+
+ Persistence — R3 Corda latest documentation
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ R3 Corda
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Persistence
+
Corda offers developers the option to expose all or some part of a contract state to an Object Relational Mapping (ORM) tool
+to be persisted in a RDBMS. The purpose of this is to assist vault development by effectively indexing
+persisted contract states held in the vault for the purpose of running queries over them and to allow relational joins
+between Corda data and private data local to the organisation owning a node.
+
The ORM mapping is specified using the Java Persistence API (JPA)
+as annotations and is converted to database table rows by the node automatically every time a state is recorded in the
+node’s local vault as part of a transaction.
+
+
Note
+
Presently the node includes an instance of the H2 database but any database that supports JDBC is a candidate and
+the node will in the future support a range of database implementations via their JDBC drivers. Much of the node
+internal state is also persisted there. You can access the internal H2 database via JDBC, please see the info
+in “Node administration ” for details.
+
+
+
Schemas
+
Every ContractState
can implement the QueryableState
interface if it wishes to be inserted into the node’s local
+database and accessible using SQL.
+
The QueryableState
interface requires the state to enumerate the different relational schemas it supports, for instance in
+cases where the schema has evolved, with each one being represented by a MappedSchema
object return by the
+supportedSchemas()
method. Once a schema is selected it must generate that representation when requested via the
+generateMappedObject()
method which is then passed to the ORM.
+
Nodes have an internal SchemaService
which decides what to persist and what not by selecting the MappedSchema
+to use.
+
The SchemaService
can be configured by a node administrator to select the schemas used by each app. In this way the
+relational view of ledger states can evolve in a controlled fashion in lock-step with internal systems or other
+integration points and not necessarily with every upgrade to the contract code.
+It can select from the MappedSchema
offered by a QueryableState
, automatically upgrade to a
+later version of a schema or even provide a MappedSchema
not originally offered by the QueryableState
.
+
It is expected that multiple different contract state implementations might provide mappings to some common schema.
+For example an Interest Rate Swap contract and an Equity OTC Option contract might both provide a mapping to a common
+Derivative schema. The schemas should typically not be part of the contract itself and should exist independently of it
+to encourage re-use of a common set within a particular business area or Cordapp.
+
MappedSchema
offer a family name that is disambiguated using Java package style name-spacing derived from the class name
+of a schema family class that is constant across versions, allowing the SchemaService
to select a preferred version
+of a schema.
+
The SchemaService
is also responsible for the SchemaOptions
that can be configured for a particular MappedSchema
+which allow the configuration of a database schema or table name prefixes to avoid any clash with other MappedSchema
.
+
+
Note
+
It is intended that there should be plugin support for the SchemaService
to offer the version upgrading and
+additional schemas as part of Cordapps, and that the active schemas be confgurable. However the present implementation
+offers none of this and simply results in all versions of all schemas supported by a QueryableState
being persisted.
+This will change in due course. Similarly, it does not currently support configuring SchemaOptions
but will do so in
+the future.
+
+
+
+
Object Relational Mapping
+
The persisted representation of a QueryableState
should be an instance of a PersistentState
subclass, constructed
+either by the state itself or a plugin to the SchemaService
. This allows the ORM layer to always associate a
+StateRef
with a persisted representation of a ContractState
and allows joining with the set of unconsumed states
+in the vault.
+
The PersistentState
subclass should be marked up as a JPA 2.1 Entity with a defined table name and having
+properties (in Kotlin, getters/setters in Java) annotated to map to the appropriate columns and SQL types. Additional
+entities can be included to model these properties where they are more complex, for example collections, so the mapping
+does not have to be flat . The MappedSchema
must provide a list of all of the JPA entity classes for that schema in order
+to initialise the ORM layer.
+
Several examples of entities and mappings are provided in the codebase, including Cash.State
and
+CommercialPaper.State
. For example, here’s the first version of the cash schema.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/docs/build/html/protocol-state-machines.html b/docs/build/html/protocol-state-machines.html
new file mode 100644
index 0000000000..e8c8e1b435
--- /dev/null
+++ b/docs/build/html/protocol-state-machines.html
@@ -0,0 +1,897 @@
+
+
+
+
+
+
+
+
+
+
+ Protocol state machines — R3 Corda latest documentation
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ R3 Corda
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Protocol state machines
+
This article explains our experimental approach to modelling financial protocols in code. It explains how the
+platform’s state machine framework is used, and takes you through the code for a simple 2-party asset trading protocol
+which is included in the source.
+
+
Introduction
+
Shared distributed ledgers are interesting because they allow many different, mutually distrusting parties to
+share a single source of truth about the ownership of assets. Digitally signed transactions are used to update that
+shared ledger, and transactions may alter many states simultaneously and atomically.
+
Blockchain systems such as Bitcoin support the idea of building up a finished, signed transaction by passing around
+partially signed invalid transactions outside of the main network, and by doing this you can implement
+delivery versus payment such that there is no chance of settlement failure, because the movement of cash and the
+traded asset are performed atomically by the same transaction. To perform such a trade involves a multi-step protocol
+in which messages are passed back and forth privately between parties, checked, signed and so on.
+
Despite how useful these protocols are, platforms such as Bitcoin and Ethereum do not assist the developer with the rather
+tricky task of actually building them. That is unfortunate. There are many awkward problems in their implementation
+that a good platform would take care of for you, problems like:
+
+Avoiding “callback hell” in which code that should ideally be sequential is turned into an unreadable mess due to the
+desire to avoid using up a thread for every protocol instantiation.
+Surviving node shutdowns/restarts that may occur in the middle of the protocol without complicating things. This
+implies that the state of the protocol must be persisted to disk.
+Error handling.
+Message routing.
+Serialisation.
+Catching type errors, in which the developer gets temporarily confused and expects to receive/send one type of message
+when actually they need to receive/send another.
+Unit testing of the finished protocol.
+
+
Actor frameworks can solve some of the above but they are often tightly bound to a particular messaging layer, and
+we would like to keep a clean separation. Additionally, they are typically not type safe, and don’t make persistence or
+writing sequential code much easier.
+
To put these problems in perspective, the payment channel protocol in the bitcoinj library, which allows bitcoins to
+be temporarily moved off-chain and traded at high speed between two parties in private, consists of about 7000 lines of
+Java and took over a month of full time work to develop. Most of that code is concerned with the details of persistence,
+message passing, lifecycle management, error handling and callback management. Because the business logic is quite
+spread out the code can be difficult to read and debug.
+
As small contract-specific trading protocols are a common occurence in finance, we provide a framework for the
+construction of them that automatically handles many of the concerns outlined above.
+
+
+
Theory
+
A continuation is a suspended stack frame stored in a regular object that can be passed around, serialised,
+unserialised and resumed from where it was suspended. This concept is sometimes referred to as “fibers”. This may
+sound abstract but don’t worry, the examples below will make it clearer. The JVM does not natively support
+continuations, so we implement them using a library called Quasar which works through behind-the-scenes
+bytecode rewriting. You don’t have to know how this works to benefit from it, however.
+
We use continuations for the following reasons:
+
+It allows us to write code that is free of callbacks, that looks like ordinary sequential code.
+A suspended continuation takes far less memory than a suspended thread. It can be as low as a few hundred bytes.
+In contrast a suspended Java thread stack can easily be 1mb in size.
+It frees the developer from thinking (much) about persistence and serialisation.
+
+
A state machine is a piece of code that moves through various states . These are not the same as states in the data
+model (that represent facts about the world on the ledger), but rather indicate different stages in the progression
+of a multi-stage protocol. Typically writing a state machine would require the use of a big switch statement and some
+explicit variables to keep track of where you’re up to. The use of continuations avoids this hassle.
+
+
+
A two party trading protocol
+
We would like to implement the “hello world” of shared transaction building protocols: a seller wishes to sell some
+asset (e.g. some commercial paper) in return for cash . The buyer wishes to purchase the asset using his cash. They
+want the trade to be atomic so neither side is exposed to the risk of settlement failure. We assume that the buyer
+and seller have found each other and arranged the details on some exchange, or over the counter. The details of how
+the trade is arranged isn’t covered in this article.
+
Our protocol has two parties (B and S for buyer and seller) and will proceed as follows:
+
+S sends a StateAndRef
pointing to the state they want to sell to B, along with info about the price they require
+B to pay.
+B sends to S a SignedTransaction
that includes the state as input, B’s cash as input, the state with the new
+owner key as output, and any change cash as output. It contains a single signature from B but isn’t valid because
+it lacks a signature from S authorising movement of the asset.
+S signs it and hands the now finalised SignedTransaction
back to B.
+
+
You can find the implementation of this protocol in the file finance/src/main/kotlin/net.corda.protocols/TwoPartyTradeProtocol.kt
.
+
Assuming no malicious termination, they both end the protocol being in posession of a valid, signed transaction that
+represents an atomic asset swap.
+
Note that it’s the seller who initiates contact with the buyer, not vice-versa as you might imagine.
+
We start by defining a wrapper that namespaces the protocol code, two functions to start either the buy or sell side
+of the protocol, and two classes that will contain the protocol definition. We also pick what data will be used by
+each side.
+
+
Note
+
The code samples in this tutorial are only available in Kotlin, but you can use any JVM language to
+write them and the approach is the same.
+
+
+
object TwoPartyTradeProtocol {
+
+ class UnacceptablePriceException ( val givenPrice : Amount < Currency >) : Exception ( "Unacceptable price: $givenPrice" )
+ class AssetMismatchException ( val expectedTypeName : String , val typeName : String ) : Exception () {
+ override fun toString () = "The submitted asset didn't match the expected type: $expectedTypeName vs $typeName"
+ }
+
+ // This object is serialised to the network and is the first protocol message the seller sends to the buyer.
+ data class SellerTradeInfo (
+ val assetForSale : StateAndRef < OwnableState >,
+ val price : Amount < Currency >,
+ val sellerOwnerKey : PublicKey
+ )
+
+ data class SignaturesFromSeller ( val sellerSig : DigitalSignature . WithKey ,
+ val notarySig : DigitalSignature . LegallyIdentifiable )
+
+ open class Seller ( val otherSide : Party ,
+ val notaryNode : NodeInfo ,
+ val assetToSell : StateAndRef < OwnableState >,
+ val price : Amount < Currency >,
+ val myKeyPair : KeyPair ,
+ override val progressTracker : ProgressTracker = Seller . tracker ()) : ProtocolLogic < SignedTransaction >() {
+ @Suspendable
+ override fun call (): SignedTransaction {
+ TODO ()
+ }
+ }
+
+ open class Buyer ( val otherSide : Party ,
+ val notary : Party ,
+ val acceptablePrice : Amount < Currency >,
+ val typeToBuy : Class < out OwnableState >) : ProtocolLogic < SignedTransaction >() {
+ @Suspendable
+ override fun call (): SignedTransaction {
+ TODO ()
+ }
+ }
+}
+
+
+
+
This code defines several classes nested inside the main TwoPartyTradeProtocol
singleton. Some of the classes are
+simply protocol messages or exceptions. The other two represent the buyer and seller side of the protocol.
+
Going through the data needed to become a seller, we have:
+
+otherSide: Party
- the party with which you are trading.
+notaryNode: NodeInfo
- the entry in the network map for the chosen notary. See “Consensus model ” for more
+information on notaries.
+assetToSell: StateAndRef<OwnableState>
- a pointer to the ledger entry that represents the thing being sold.
+price: Amount<Currency>
- the agreed on price that the asset is being sold for (without an issuer constraint).
+myKeyPair: KeyPair
- the key pair that controls the asset being sold. It will be used to sign the transaction.
+
+
And for the buyer:
+
+acceptablePrice: Amount<Currency>
- the price that was agreed upon out of band. If the seller specifies
+a price less than or equal to this, then the trade will go ahead.
+typeToBuy: Class<out OwnableState>
- the type of state that is being purchased. This is used to check that the
+sell side of the protocol isn’t trying to sell us the wrong thing, whether by accident or on purpose.
+
+
Alright, so using this protocol shouldn’t be too hard: in the simplest case we can just create a Buyer or Seller
+with the details of the trade, depending on who we are. We then have to start the protocol in some way. Just
+calling the call
function ourselves won’t work: instead we need to ask the framework to start the protocol for
+us. More on that in a moment.
+
+
+
Suspendable functions
+
The call
function of the buyer/seller classes is marked with the @Suspendable
annotation. What does this mean?
+
As mentioned above, our protocol framework will at points suspend the code and serialise it to disk. For this to work,
+any methods on the call stack must have been pre-marked as @Suspendable
so the bytecode rewriter knows to modify
+the underlying code to support this new feature. A protocol is suspended when calling either receive
, send
or
+sendAndReceive
which we will learn more about below. For now, just be aware that when one of these methods is
+invoked, all methods on the stack must have been marked. If you forget, then in the unit test environment you will
+get a useful error message telling you which methods you didn’t mark. The fix is simple enough: just add the annotation
+and try again.
+
+
Note
+
Java 9 is likely to remove this pre-marking requirement completely.
+
+
+
+
Starting your protocol
+
The StateMachineManager
is the class responsible for taking care of all running protocols in a node. It knows
+how to register handlers with the messaging system (see “Networking and messaging ”) and iterate the right state machine
+when messages arrive. It provides the send/receive/sendAndReceive calls that let the code request network
+interaction and it will save/restore serialised versions of the fiber at the right times.
+
Protocols can be invoked in several ways. For instance, they can be triggered by scheduled events,
+see “Event scheduling ” to learn more about this. Or they can be triggered via the HTTP API. Or they can
+be triggered directly via the Java-level node APIs from your app code.
+
You request a protocol to be invoked by using the ServiceHub.invokeProtocolAsync
method. This takes a
+Java reflection Class
object that describes the protocol class to use (in this case, either Buyer
or Seller
).
+It also takes a set of arguments to pass to the constructor. Because it’s possible for protocol invocations to
+be requested by untrusted code (e.g. a state that you have been sent), the types that can be passed into the
+protocol are checked against a whitelist, which can be extended by apps themselves at load time.
+
The process of starting a protocol returns a ListenableFuture
that you can use to either block waiting for
+the result, or register a callback that will be invoked when the result is ready.
+
In a two party protocol only one side is to be manually started using ServiceHub.invokeProtocolAsync
. The other side
+has to be registered by its node to respond to the initiating protocol via ServiceHubInternal.registerProtocolInitiator
.
+In our example it doesn’t matter which protocol is the initiator and which is the initiated. For example, if we are to
+take the seller as the initiator then we would register the buyer as such:
+
+
val services : ServiceHubInternal = TODO ()
+
+services . registerProtocolInitiator ( Seller :: class ) { otherParty ->
+ val notary = services . networkMapCache . notaryNodes [ 0 ]
+ val acceptablePrice = TODO ()
+ val typeToBuy = TODO ()
+ Buyer ( otherParty , notary , acceptablePrice , typeToBuy )
+}
+
+
+
+
This is telling the buyer node to fire up an instance of Buyer
(the code in the lambda) when the initiating protocol
+is a seller (Seller::class
).
+
+
+
Implementing the seller
+
Let’s implement the Seller.call
method. This will be run when the protocol is invoked.
+
+
@Suspendable
+override fun call (): SignedTransaction {
+ val partialTX : SignedTransaction = receiveAndCheckProposedTransaction ()
+ val ourSignature : DigitalSignature . WithKey = computeOurSignature ( partialTX )
+ val allPartySignedTx = partialTX + ourSignature
+ val notarySignature = getNotarySignature ( allPartySignedTx )
+ val result : SignedTransaction = sendSignatures ( allPartySignedTx , ourSignature , notarySignature )
+ return result
+}
+
+
+
+
Here we see the outline of the procedure. We receive a proposed trade transaction from the buyer and check that it’s
+valid. The buyer has already attached their signature before sending it. Then we calculate and attach our own signature so that the transaction is
+now signed by both the buyer and the seller. We then send this request to a notary to assert with another signature that the
+timestamp in the transaction (if any) is valid and there are no double spends, and send back both
+our signature and the notaries signature. Note we should not send to the notary until all other required signatures have been appended
+as the notary may validate the signatures as well as verifying for itself the transactional integrity.
+Finally, we hand back to the code that invoked the protocol the finished transaction.
+
Let’s fill out the receiveAndCheckProposedTransaction()
method.
+
+
@Suspendable
+private fun receiveAndCheckProposedTransaction (): SignedTransaction {
+ // Make the first message we'll send to kick off the protocol.
+ val hello = SellerTradeInfo ( assetToSell , price , myKeyPair . public )
+
+ val maybeSTX = sendAndReceive < SignedTransaction >( otherSide , hello )
+
+ maybeSTX . unwrap {
+ // Check that the tx proposed by the buyer is valid.
+ val missingSigs : Set < PublicKey > = it . verifySignatures ( throwIfSignaturesAreMissing = false )
+ val expected = setOf ( myKeyPair . public , notaryNode . identity . owningKey )
+ if ( missingSigs != expected )
+ throw SignatureException ( "The set of missing signatures is not as expected: ${missingSigs.toStringsShort()} vs ${expected.toStringsShort()}" )
+
+ val wtx : WireTransaction = it . tx
+ logger . trace { "Received partially signed transaction: ${it.id}" }
+
+ // Download and check all the things that this transaction depends on and verify it is contract-valid,
+ // even though it is missing signatures.
+ subProtocol ( ResolveTransactionsProtocol ( wtx , otherSide ))
+
+ if ( wtx . outputs . map { it . data }. sumCashBy ( myKeyPair . public ). withoutIssuer () != price )
+ throw IllegalArgumentException ( "Transaction is not sending us the right amount of cash" )
+
+ return it
+ }
+}
+
+
+
+
Let’s break this down. We fill out the initial protocol message with the trade info, and then call sendAndReceive
.
+This function takes a few arguments:
+
+The party on the other side.
+The thing to send. It’ll be serialised and sent automatically.
+Finally a type argument, which is the kind of object we’re expecting to receive from the other side. If we get
+back something else an exception is thrown.
+
+
Once sendAndReceive
is called, the call method will be suspended into a continuation and saved to persistent
+storage. If the node crashes or is restarted, the protocol will effectively continue as if nothing had happened. Your
+code may remain blocked inside such a call for seconds, minutes, hours or even days in the case of a protocol that
+needs human interaction!
+
+
Note
+
There are a couple of rules you need to bear in mind when writing a class that will be used as a continuation.
+The first is that anything on the stack when the function is suspended will be stored into the heap and kept alive by
+the garbage collector. So try to avoid keeping enormous data structures alive unless you really have to.
+
The second is that as well as being kept on the heap, objects reachable from the stack will be serialised. The state
+of the function call may be resurrected much later! Kryo doesn’t require objects be marked as serialisable, but even so,
+doing things like creating threads from inside these calls would be a bad idea. They should only contain business
+logic and only do I/O via the methods exposed by the protocol framework.
+
It’s OK to keep references around to many large internal node services though: these will be serialised using a
+special token that’s recognised by the platform, and wired up to the right instance when the continuation is
+loaded off disk again.
+
+
The buyer is supposed to send us a transaction with all the right inputs/outputs/commands in response to the opening
+message, with their cash put into the transaction and their signature on it authorising the movement of the cash.
+
You get back a simple wrapper class, UntrustworthyData<SignedTransaction>
, which is just a marker class that reminds
+us that the data came from a potentially malicious external source and may have been tampered with or be unexpected in
+other ways. It doesn’t add any functionality, but acts as a reminder to “scrub” the data before use.
+
Our “scrubbing” has three parts:
+
+Check that the expected signatures are present and correct. At this point we expect our own signature to be missing,
+because of course we didn’t sign it yet, and also the signature of the notary because that must always come last.
+We resolve the transaction, which we will cover below.
+We verify that the transaction is paying us the demanded price.
+
+
+
+
Subprotocols
+
Protocols can be composed via nesting. Invoking a sub-protocol looks similar to an ordinary function call:
+
+
@Suspendable
+private fun getNotarySignature ( stx : SignedTransaction ): DigitalSignature . LegallyIdentifiable {
+ progressTracker . currentStep = NOTARY
+ return subProtocol ( NotaryProtocol . Client ( stx ))
+}
+
+
+
+
In this code snippet we are using the NotaryProtocol.Client
to request notarisation of the transaction.
+We simply create the protocol object via its constructor, and then pass it to the subProtocol
method which
+returns the result of the protocol’s execution directly. Behind the scenes all this is doing is wiring up progress
+tracking (discussed more below) and then running the objects call
method. Because this little helper method can
+be on the stack when network IO takes place, we mark it as @Suspendable
.
+
Going back to the previous code snippet, we use a subprotocol called ResolveTransactionsProtocol
. This is
+responsible for downloading and checking all the dependencies of a transaction, which in Corda are always retrievable
+from the party that sent you a transaction that uses them. This protocol returns a list of LedgerTransaction
+objects, but we don’t need them here so we just ignore the return value.
+
+
Note
+
Transaction dependency resolution assumes that the peer you got the transaction from has all of the
+dependencies itself. It must do, otherwise it could not have convinced itself that the dependencies were themselves
+valid. It’s important to realise that requesting only the transactions we require is a privacy leak, because if
+we don’t download a transaction from the peer, they know we must have already seen it before. Fixing this privacy
+leak will come later.
+
+
After the dependencies, we check the proposed trading transaction for validity by running the contracts for that as
+well (but having handled the fact that some signatures are missing ourselves).
+
Here’s the rest of the code:
+
+
open fun computeOurSignature ( partialTX : SignedTransaction ) = myKeyPair . signWithECDSA ( partialTX . txBits )
+
+@Suspendable
+private fun sendSignatures ( allPartySignedTX : SignedTransaction , ourSignature : DigitalSignature . WithKey ,
+ notarySignature : DigitalSignature . LegallyIdentifiable ): SignedTransaction {
+ val fullySigned = allPartySignedTX + notarySignature
+ logger . trace { "Built finished transaction, sending back to secondary!" }
+ send ( otherSide , SignaturesFromSeller ( ourSignature , notarySignature ))
+ return fullySigned
+}
+
+
+
+
It’s all pretty straightforward from now on. Here txBits
is the raw byte array representing the serialised
+transaction, and we just use our private key to calculate a signature over it. As a reminder, in Corda signatures do
+not cover other signatures: just the core of the transaction data.
+
In sendSignatures
, we take the two signatures we obtained and add them to the partial transaction we were sent.
+There is an overload for the + operator so signatures can be added to a SignedTransaction easily. Finally, we wrap the
+two signatures in a simple wrapper message class and send it back. The send won’t block waiting for an acknowledgement,
+but the underlying message queue software will retry delivery if the other side has gone away temporarily.
+
You can also see that every protocol instance has a logger (using the SLF4J API) which you can use to log progress
+messages.
+
+
Warning
+
This sample code is not secure . Other than not checking for all possible invalid constructions, if the
+seller stops before sending the finalised transaction to the buyer, the seller is left with a valid transaction
+but the buyer isn’t, so they can’t spend the asset they just purchased! This sort of thing will be fixed in a
+future version of the code.
+
+
+
+
Implementing the buyer
+
OK, let’s do the same for the buyer side:
+
+
@Suspendable
+override fun call(): SignedTransaction {
+ val tradeRequest = receiveAndValidateTradeRequest()
+ val (ptx, cashSigningPubKeys) = assembleSharedTX(tradeRequest)
+ val stx = signWithOurKeys(cashSigningPubKeys, ptx)
+
+ val signatures = swapSignaturesWithSeller(stx)
+
+ logger.trace { "Got signatures from seller, verifying ... " }
+
+ val fullySigned = stx + signatures.sellerSig + signatures.notarySig
+ fullySigned.verifySignatures()
+
+ logger.trace { "Signatures received are valid. Trade complete! :-)" }
+ return fullySigned
+}
+
+@Suspendable
+private fun receiveAndValidateTradeRequest(): SellerTradeInfo {
+ // Wait for a trade request to come in from the other side
+ val maybeTradeRequest = receive<SellerTradeInfo>(otherParty)
+ maybeTradeRequest.unwrap {
+ // What is the seller trying to sell us?
+ val asset = it.assetForSale.state.data
+ val assetTypeName = asset.javaClass.name
+ logger.trace { "Got trade request for a $assetTypeName: ${it.assetForSale}" }
+
+ if (it.price > acceptablePrice)
+ throw UnacceptablePriceException(it.price)
+ if (!typeToBuy.isInstance(asset))
+ throw AssetMismatchException(typeToBuy.name, assetTypeName)
+
+ // Check the transaction that contains the state which is being resolved.
+ // We only have a hash here, so if we don't know it already, we have to ask for it.
+ subProtocol(ResolveTransactionsProtocol(setOf(it.assetForSale.ref.txhash), otherSide))
+
+ return it
+ }
+}
+
+@Suspendable
+private fun swapSignaturesWithSeller(stx: SignedTransaction): SignaturesFromSeller {
+ progressTracker.currentStep = SWAPPING_SIGNATURES
+ logger.trace { "Sending partially signed transaction to seller" }
+
+ // TODO: Protect against the seller terminating here and leaving us in the lurch without the final tx.
+
+ return sendAndReceive<SignaturesFromSeller>(otherSide, stx).unwrap { it }
+}
+
+private fun signWithOurKeys(cashSigningPubKeys: List<PublicKey>, ptx: TransactionBuilder): SignedTransaction {
+ // Now sign the transaction with whatever keys we need to move the cash.
+ for (k in cashSigningPubKeys) {
+ val priv = serviceHub.keyManagementService.toPrivate(k)
+ ptx.signWith(KeyPair(k, priv))
+ }
+
+ return ptx.toSignedTransaction(checkSufficientSignatures = false)
+}
+
+private fun assembleSharedTX(tradeRequest: SellerTradeInfo): Pair<TransactionBuilder, List<PublicKey>> {
+ val ptx = TransactionType.General.Builder(notary)
+ // Add input and output states for the movement of cash, by using the Cash contract to generate the states.
+ val wallet = serviceHub.walletService.currentWallet
+ val cashStates = wallet.statesOfType<Cash.State>()
+ val cashSigningPubKeys = Cash().generateSpend(ptx, tradeRequest.price, tradeRequest.sellerOwnerKey, cashStates)
+ // Add inputs/outputs/a command for the movement of the asset.
+ ptx.addInputState(tradeRequest.assetForSale)
+ // Just pick some new public key for now. This won't be linked with our identity in any way, which is what
+ // we want for privacy reasons: the key is here ONLY to manage and control ownership, it is not intended to
+ // reveal who the owner actually is. The key management service is expected to derive a unique key from some
+ // initial seed in order to provide privacy protection.
+ val freshKey = serviceHub.keyManagementService.freshKey()
+ val (command, state) = tradeRequest.assetForSale.state.data.withNewOwner(freshKey.public)
+ ptx.addOutputState(state, tradeRequest.assetForSale.state.notary)
+ ptx.addCommand(command, tradeRequest.assetForSale.state.data.owner)
+
+ // And add a request for timestamping: it may be that none of the contracts need this! But it can't hurt
+ // to have one.
+ val currentTime = serviceHub.clock.instant()
+ ptx.setTime(currentTime, 30.seconds)
+ return Pair(ptx, cashSigningPubKeys)
+}
+
+
+
+
This code is longer but no more complicated. Here are some things to pay attention to:
+
+We do some sanity checking on the received message to ensure we’re being offered what we expected to be offered.
+We create a cash spend in the normal way, by using Cash().generateSpend
. See the contracts tutorial if this
+part isn’t clear.
+We access the service hub when we need it to access things that are transient and may change or be recreated
+whilst a protocol is suspended, things like the wallet or the network map.
+Finally, we send the unfinished, invalid transaction to the seller so they can sign it. They are expected to send
+back to us a SignaturesFromSeller
, which once we verify it, should be the final outcome of the trade.
+
+
As you can see, the protocol logic is straightforward and does not contain any callbacks or network glue code, despite
+the fact that it takes minimal resources and can survive node restarts.
+
+
Warning
+
In the current version of the platform, exceptions thrown during protocol execution are not propagated
+back to the sender. A thorough error handling and exceptions framework will be in a future version of the platform.
+
+
+
+
Progress tracking
+
Not shown in the code snippets above is the usage of the ProgressTracker
API. Progress tracking exports information
+from a protocol about where it’s got up to in such a way that observers can render it in a useful manner to humans who
+may need to be informed. It may be rendered via an API, in a GUI, onto a terminal window, etc.
+
A ProgressTracker
is constructed with a series of Step
objects, where each step is an object representing a
+stage in a piece of work. It is therefore typical to use singletons that subclass Step
, which may be defined easily
+in one line when using Kotlin. Typical steps might be “Waiting for response from peer”, “Waiting for signature to be
+approved”, “Downloading and verifying data” etc.
+
Each step exposes a label. By default labels are fixed, but by subclassing RelabelableStep
+you can make a step that can update its label on the fly. That’s useful for steps that want to expose non-structured
+progress information like the current file being downloaded. By defining your own step types, you can export progress
+in a way that’s both human readable and machine readable.
+
Progress trackers are hierarchical. Each step can be the parent for another tracker. By altering the
+ProgressTracker.childrenFor[step] = tracker
map, a tree of steps can be created. It’s allowed to alter the hierarchy
+at runtime, on the fly, and the progress renderers will adapt to that properly. This can be helpful when you don’t
+fully know ahead of time what steps will be required. If you _do_ know what is required, configuring as much of the
+hierarchy ahead of time is a good idea, as that will help the users see what is coming up.
+
Every tracker has not only the steps given to it at construction time, but also the singleton
+ProgressTracker.UNSTARTED
step and the ProgressTracker.DONE
step. Once a tracker has become DONE
its
+position may not be modified again (because e.g. the UI may have been removed/cleaned up), but until that point, the
+position can be set to any arbitrary set both forwards and backwards. Steps may be skipped, repeated, etc. Note that
+rolling the current step backwards will delete any progress trackers that are children of the steps being reversed, on
+the assumption that those subtasks will have to be repeated.
+
Trackers provide an Rx observable which streams changes to the hierarchy. The top level
+observable exposes all the events generated by its children as well. The changes are represented by objects indicating
+whether the change is one of position (i.e. progress), structure (i.e. new subtasks being added/removed) or some other
+aspect of rendering (i.e. a step has changed in some way and is requesting a re-render).
+
The protocol framework is somewhat integrated with this API. Each ProtocolLogic
may optionally provide a tracker by
+overriding the protocolTracker
property (getProtocolTracker
method in Java). If the
+ProtocolLogic.subProtocol
method is used, then the tracker of the sub-protocol will be made a child of the current
+step in the parent protocol automatically, if the parent is using tracking in the first place. The framework will also
+automatically set the current step to DONE
for you, when the protocol is finished.
+
Because a protocol may sometimes wish to configure the children in its progress hierarchy _before_ the sub-protocol
+is constructed, for sub-protocols that always follow the same outline regardless of their parameters it’s conventional
+to define a companion object/static method (for Kotlin/Java respectively) that constructs a tracker, and then allow
+the sub-protocol to have the tracker it will use be passed in as a parameter. This allows all trackers to be built
+and linked ahead of time.
+
In future, the progress tracking framework will become a vital part of how exceptions, errors, and other faults are
+surfaced to human operators for investigation and resolution.
+
+
+
Unit testing
+
A protocol can be a fairly complex thing that interacts with many services and other parties over the network. That
+means unit testing one requires some infrastructure to provide lightweight mock implementations. The MockNetwork
+provides this testing infrastructure layer; you can find this class in the node module
+
A good example to examine for learning how to unit test protocols is the ResolveTransactionsProtocol
tests. This
+protocol takes care of downloading and verifying transaction graphs, with all the needed dependencies. We start
+with this basic skeleton:
+
+
class ResolveTransactionsProtocolTest {
+ lateinit var net : MockNetwork
+ lateinit var a : MockNetwork . MockNode
+ lateinit var b : MockNetwork . MockNode
+ lateinit var notary : Party
+
+ @Before
+ fun setup () {
+ net = MockNetwork ()
+ val nodes = net . createSomeNodes ()
+ a = nodes . partyNodes [ 0 ]
+ b = nodes . partyNodes [ 1 ]
+ notary = nodes . notaryNode . info . identity
+ net . runNetwork ()
+ }
+
+ @After
+ fun tearDown () {
+ net . stopNodes ()
+ }
+}
+
+
+
+
We create a mock network in our @Before
setup method and create a couple of nodes. We also record the identity
+of the notary in our test network, which will come in handy later. We also tidy up when we’re done.
+
Next, we write a test case:
+
+
@Test
+fun resolveFromTwoHashes() {
+ val (stx1, stx2) = makeTransactions()
+ val p = ResolveTransactionsProtocol(setOf(stx2.id), a.info.identity)
+ val future = b.services.startProtocol("resolve", p)
+ net.runNetwork()
+ val results = future.get()
+ assertEquals(listOf(stx1.id, stx2.id), results.map { it.id })
+ assertEquals(stx1, b.storage.validatedTransactions.getTransaction(stx1.id))
+ assertEquals(stx2, b.storage.validatedTransactions.getTransaction(stx2.id))
+}
+
+
+
+
We’ll take a look at the makeTransactions
function in a moment. For now, it’s enough to know that it returns two
+SignedTransaction
objects, the second of which spends the first. Both transactions are known by node A
+but not node B.
+
The test logic is simple enough: we create the protocol, giving it node A’s identity as the target to talk to.
+Then we start it on node B and use the net.runNetwork()
method to bounce messages around until things have
+settled (i.e. there are no more messages waiting to be delivered). All this is done using an in memory message
+routing implementation that is fast to initialise and use. Finally, we obtain the result of the protocol and do
+some tests on it. We also check the contents of node B’s database to see that the protocol had the intended effect
+on the node’s persistent state.
+
Here’s what makeTransactions
looks like:
+
+
private fun makeTransactions (): Pair < SignedTransaction , SignedTransaction > {
+ // Make a chain of custody of dummy states and insert into node A.
+ val dummy1 : SignedTransaction = DummyContract . generateInitial ( MEGA_CORP . ref ( 1 ), 0 , notary ). let {
+ it . signWith ( MEGA_CORP_KEY )
+ it . signWith ( DUMMY_NOTARY_KEY )
+ it . toSignedTransaction ( false )
+ }
+ val dummy2 : SignedTransaction = DummyContract . move ( dummy1 . tx . outRef ( 0 ), MINI_CORP_PUBKEY ). let {
+ it . signWith ( MEGA_CORP_KEY )
+ it . signWith ( DUMMY_NOTARY_KEY )
+ it . toSignedTransaction ()
+ }
+ a . services . recordTransactions ( dummy1 , dummy2 )
+ return Pair ( dummy1 , dummy2 )
+}
+
+
+
+
We’re using the DummyContract
, a simple test smart contract which stores a single number in its states, along
+with ownership and issuer information. You can issue such states, exit them and re-assign ownership (move them).
+It doesn’t do anything else. This code simply creates a transaction that issues a dummy state (the issuer is
+MEGA_CORP
, a pre-defined unit test identity), signs it with the test notary and MegaCorp keys and then
+converts the builder to the final SignedTransaction
. It then does so again, but this time instead of issuing
+it re-assigns ownership instead. The chain of two transactions is finally committed to node A by sending them
+directly to the a.services.recordTransaction
method (note that this method doesn’t check the transactions are
+valid).
+
And that’s it: you can explore the documentation for the MockNode API here.
+
+
+
Versioning
+
Fibers involve persisting object-serialised stack frames to disk. Although we may do some R&D into in-place upgrades
+in future, for now the upgrade process for protocols is simple: you duplicate the code and rename it so it has a
+new set of class names. Old versions of the protocol can then drain out of the system whilst new versions are
+initiated. When enough time has passed that no old versions are still waiting for anything to happen, the previous
+copy of the code can be deleted.
+
Whilst kind of ugly, this is a very simple approach that should suffice for now.
+
+
Warning
+
Protocols are not meant to live for months or years, and by implication they are not meant to implement entire deal
+lifecycles. For instance, implementing the entire life cycle of an interest rate swap as a single protocol - whilst
+technically possible - would not be a good idea. The platform provides a job scheduler tool that can invoke
+protocols for this reason (see “Event scheduling ”)
+
+
+
+
Future features
+
The protocol framework is a key part of the platform and will be extended in major ways in future. Here are some of
+the features we have planned:
+
+Identity based addressing
+Exposing progress trackers to local (inside the firewall) clients using message queues and/or WebSockets
+Exception propagation and management, with a “protocol hospital” tool to manually provide solutions to unavoidable
+problems (e.g. the other side doesn’t know the trade)
+Being able to interact with internal apps and tools via HTTP and similar
+Being able to interact with people, either via some sort of external ticketing system, or email, or a custom UI.
+For example to implement human transaction authorisations.
+A standard library of protocols that can be easily sub-classed by local developers in order to integrate internal
+reporting logic, or anything else that might be required as part of a communications lifecycle.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/docs/build/html/release-notes.html b/docs/build/html/release-notes.html
new file mode 100644
index 0000000000..3511b8ca06
--- /dev/null
+++ b/docs/build/html/release-notes.html
@@ -0,0 +1,659 @@
+
+
+
+
+
+
+
+
+
+
+ Release notes — R3 Corda latest documentation
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ R3 Corda
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Release notes
+
Here are brief summaries of what’s changed between each snapshot release.
+
+
Milestone 5
+
+A simple RPC access control mechanism. Users, passwords and permissions can be defined in a configuration file.
+This mechanism will be extended in future to support standard authentication systems like LDAP.
+
+New features in the explorer app and RPC API for working with cash:
+
+
+Cash can now be sent, issued and exited via RPC.
+Notes can now be associated with transactions.
+Hashes are visually represented using identicons.
+Lots of functional work on the explorer UI. You can try it out by running gradle tools:explorer:runDemoNodes
to run
+a local network of nodes that swap cash with each other, and then run gradle tools:explorer:run
to start
+the app.
+
+
+
+A new demo showing shared valuation of derivatives portfolios using the ISDA SIMM has been added. Note that this app
+relies on a proprietary implementation of the ISDA SIMM business logic from OpenGamma. A stub library is provided
+to ensure it compiles but if you want to use the app for real please contact us.
+
+Developer experience (we plan to do lots more here in milestone 6):
+
+
+Demos and samples have been split out of the main repository, and the initial developer experience continues to be
+refined. All necessary JARs can now be installed to Maven Local by simply running gradle install
.
+It’s now easier to define a set of nodes to run locally using the new “CordFormation” gradle plugin, which
+defines a simple DSL for creating networks of nodes.
+The template CorDapp has been upgraded with more documentation and showing more features.
+
+
+
+Privacy: transactions are now structured as Merkle trees, and can have sections “torn off” - presented for
+verification and signing without revealing the rest of the transaction.
+
+Lots of bug fixes, tweaks and polish starting the run up to the open source release.
+
+
+
API changes:
+
+Plugin service classes now take a PluginServiceHub
rather than a ServiceHubInternal
.
+UniqueIdentifier
equality has changed to only take into account the underlying UUID.
+The contracts module has been renamed to finance, to better reflect what it is for.
+
+
+
+
Milestone 4
+
New features in this release:
+
+
API changes:
+
+The transaction types (Signed, Wire, LedgerTransaction) have moved to net.corda.core.transactions
. You can
+update your code by just deleting the broken import lines and letting your IDE re-import them from the right
+location.
+AbstractStateReplacementProtocol.verifyProposal
has changed its prototype in a minor way.
+The UntrustworthyData<T>.validate
method has been renamed to unwrap
- the old name is now deprecated.
+The wallet, wallet service, etc. are now vault, vault service, etc. These better reflect the intent that they
+are a generic secure data store, rather than something which holds cash.
+The protocol send/receive APIs have changed to no longer require a session id. Please check the current version
+of the protocol framework tutorial for more details.
+
+
+
+
Milestone 3
+
+More work on preparing for the testnet:
+
+
+Corda is now a standalone app server that loads “CorDapps” into itself as plugins. Whilst the existing IRS
+and trader demos still exist for now, these will soon be removed and there will only be a single Corda node
+program. Note that the node is a single, standalone jar file that is easier to execute than the demos.
+Project Vega (shared SIMM modelling for derivative portfolios) has already been converted to be a CorDapp.
+Significant work done on making the node persist its wallet data to a SQL backend, with more on the way.
+Upgrades and refactorings of the core transaction types in preparation for the incoming sandboxing work.
+
+
+
+The Clauses API that seeks to make writing smart contracts easier has gone through another design iteration,
+with the result that clauses are now cleaner and more composable.
+
+Improvements to the protocol API for finalising transactions (notarising, transmitting and storing).
+
+Lots of work done on an MQ based client API.
+
+Improvements to the developer site:
+
+
+The developer site has been re-read from start to finish and refreshed for M3 so there should be no obsolete
+texts or references anywhere.
+The Corda non-technical white paper is now a part of the developer site and git repository. The LaTeX source is
+also provided so if you spot any issues with it, you can send us patches.
+There is a new section on how to write CorDapps.
+
+
+
+Further R&D work by Sofus Mortensen in the experimental module on a new ‘universal’ contract language.
+
+SSL for the REST API and webapp server can now be configured.
+
+
+
+
+
Milestone 2
+
+Big improvements to the interest rate swap app:
+
+
+A new web app demonstrating the IRS contract has been added. This can be used as an example for how to interact with
+the Corda API from the web.
+Simplifications to the way the demo is used from the command line.
+Detailed documentation on how the contract works and can be used has been written.
+Better integration testing of the app.
+
+
+
+Smart contracts have been redesigned around reusable components, referred to as “clauses”. The cash, commercial paper
+and obligation contracts now share a common issue clause.
+
+New code in the experimental module (note that this module is a place for work-in-progress code which has not yet gone
+through code review and which may, in general, not even function correctly):
+
+
+Thanks to the prolific Sofus Mortensen @ Nordea Bank, an experimental generic contract DSL that is based on the famous
+2001 “Composing contracts” paper has been added. We thank Sofus for this great and promising research, which is so
+relevant in the wake of TheDAO hack.
+
+The contract code from the recent trade finance demos is now in experimental. This code comes thanks to a
+collaboration of the members; all credit to:
+
+
+Mustafa Ozturk @ Natixis
+David Nee @ US Bank
+Johannes Albertsen @ Dankse Bank
+Rui Hu @ Nordea
+Daniele Barreca @ Unicredit
+Sukrit Handa @ Scotiabank
+Giuseppe Cardone @ Banco Intesa
+Robert Santiago @ BBVA
+
+
+
+
+
+
+The usability of the command line demo programs has been improved.
+
+All example code and existing contracts have been ported to use the new Java/Kotlin unit testing domain-specific
+languages (DSLs) which make it easy to construct chains of transactions and verify them together. This cleans up
+and unifies the previous ad-hoc set of similar DSLs. A tutorial on how to use it has been added to the documentation.
+We believe this largely completes our testing story for now around smart contracts. Feedback from bank developers
+during the Trade Finance project has indicated that the next thing to tackle is docs and usability improvements in
+the protocols API.
+
+Significant work done towards defining the “CorDapp” concept in code, with dynamic loading of API services and more to
+come.
+
+Inter-node communication now uses SSL/TLS and AMQP/1.0, albeit without all nodes self-signing at the moment. A real
+PKI for the p2p network will come later.
+
+Logging is now saved to files with log rotation provided by Log4J.
+
+
+
API changes:
+
+Some utility methods and extension functions that are specific to certain contract types have moved packages: just
+delete the import lines that no longer work and let IntelliJ replace them with the correct package paths.
+The arg
method in the test DSL is now called command
to be consistent with the rest of the data model.
+The messaging APIs have changed somewhat to now use a new TopicSession
object. These APIs will continue to change
+in the upcoming releases.
+Clauses now have default values provided for ifMatched
, ifNotMatched
and requiredCommands
.
+
+
New documentation:
+
+
+
+
Milestone 1
+
Highlights of this release:
+
+Event scheduling. States in the ledger can now request protocols to be invoked at particular times, for states
+considered relevant by the wallet.
+
+Upgrades to the notary/consensus service support:
+
+
+There is now a way to change the notary controlling a state.
+You can pick between validating and non-validating notaries, these let you select your privacy/robustness tradeoff.
+
+
+
+A new obligation contract that supports bilateral and multilateral netting of obligations, default tracking and
+more.
+
+Improvements to the financial type system, with core classes and contracts made more generic.
+
+Switch to a better digital signature algorithm: ed25519 instead of the previous JDK default of secp256r1.
+
+A new integration test suite.
+
+A new Java unit testing DSL for contracts, similar in spirit to the one already developed for Kotlin users (which
+depended on Kotlin specific features).
+
+An experimental module, where developers who want to work with the latest Corda code can check in contracts/cordapp
+code before it’s been fully reviewed. Code in this module has compiler warnings suppressed but we will still make
+sure it compiles across refactorings.
+
+Persistence improvements: transaction data is now stored to disk and automatic protocol resume is now implemented.
+
+Many smaller bug fixes, cleanups and improvements.
+
+
+
We have new documentation on:
+
+
Summary of API changes (not exhaustive):
+
+Notary/consensus service:
+
+
+NotaryService
is now extensible.
+Every ContractState
now has to specify a participants field, which is a list of parties that are able to
+consume this state in a valid transaction. This is used for e.g. making sure all relevant parties obtain the updated
+state when changing a notary.
+Introduced TransactionState
, which wraps ContractState
, and is used when defining a transaction output.
+The notary field is moved from ContractState
into TransactionState
.
+Every transaction now has a type field, which specifies custom build & validation rules for that transaction type.
+Currently two types are supported: General (runs the default build and validation logic) and NotaryChange (
+contract code is not run during validation, checks that the notary field is the only difference between the
+inputs and outputs).
+TransactionBuilder()
is now abstract, you should use TransactionType.General.Builder()
for building transactions.
+
+
+
+The cash contract has moved from net.corda.contracts
to net.corda.contracts.cash
+
+Amount
class is now generic, to support non-currency types such as physical assets. Where you previously had just
+Amount
, you should now use Amount<Currency>
.
+
+Refactored the Cash contract to have a new FungibleAsset superclass, to model all countable assets that can be merged
+and split (currency, barrels of oil, etc.)
+
+Messaging:
+
+
+addMessageHandler
now has a different signature as part of error handling changes.
+If you want to return nothing to a protocol, use Ack
instead of Unit
from now on.
+
+
+
+In the IRS contract, dateOffset is now an integer instead of an enum.
+
+In contracts, you now use tx.getInputs
and tx.getOutputs
instead of getInStates
and getOutStates
. This is
+just a renaming.
+
+A new NonEmptySet
type has been added for cases where you wish to express that you have a collection of unique
+objects which cannot be empty.
+
+Please use the global newSecureRandom()
function rather than instantiating your own SecureRandom’s from now on, as
+the custom function forces the use of non-blocking random drivers on Linux.
+
+
+
+
+
Milestone 0
+
This is the first release, which includes:
+
+Some initial smart contracts: cash, commercial paper, interest rate swaps
+An interest rate oracle
+The first version of the protocol/orchestration framework
+Some initial support for pluggable consensus mechanisms
+Tutorials and documentation explaining how it works
+Much more ...
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/docs/build/html/release-process.html b/docs/build/html/release-process.html
new file mode 100644
index 0000000000..e99b225e6c
--- /dev/null
+++ b/docs/build/html/release-process.html
@@ -0,0 +1,291 @@
+
+
+
+
+
+
+
+
+
+
+ Release process — R3 Corda latest documentation
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ R3 Corda
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Release process
+
Corda is under heavy development. The current release process is therefore geared towards rapid iteration.
+
Each Corda development release is called a milestone and has its own branch in the git repository. Milestones are
+temporarily stabilised snapshots of the Corda code which are suitable for developers to experiment with. They may
+receive backported bugfixes but once announced a milestone will not have any API or backwards compatibility breaks.
+
Between milestones backwards compatibility is expected to break. Every new milestone comes with a short announcement
+detailing:
+
+What major improvements have been made.
+How to forward port your code to the new milestone.
+What new documentation has become available.
+Important known issues.
+
+
Eventually, Corda will stabilise and release version 1. At that point backwards compatibility will be guaranteed
+forever and the software will be considered production ready. Until then, expect it to be a building site and wear your
+hard hat.
+
Our goal is to cut a new milestone roughly once a month. There are no fixed dates. If need be, a milestone may slip by
+a few days to ensure the code is sufficiently usable. Usually the release will happen around the end of the month.
+
+
+
Steps to cut a release
+
+Pick a commit that is stable and do basic QA: run all the tests, run the demos.
+Review the commits between this release and the last looking for new features, API changes, etc. Make sure the
+summary in the current section of the Release notes is correct and update if not. Then move it into the right
+section for this release. This is the right place to put any advice on how to port app code from the last release.
+Additionally, if there are any new features or APIs that deserve a new section in the docsite and the author didn’t
+create one, bug them to do so a day or two before the release.
+Regenerate the docsite if necessary and commit.
+Create a branch with a name like release-M0 where 0 is replaced by the number of the milestone.
+Adjust the version in the root build.gradle file to take out the -SNAPSHOT and commit it on the branch.
+Remove the “is master” warning from the docsite index page on this branch only.
+Tag the branch with a tag like release-M0.0
+Push the branch and the tag to git.
+Write up a short announcement containing the summary of new features, changes, and API breaks. Send it to the r3dlg-awg mailing list.
+On master, adjust the version number in the root build.gradle file upwards.
+
+
If there are serious bugs found in the release, backport the fix to the branch and then tag it with e.g. release-M0.1
+Minor changes to the branch don’t have to be announced unless it’d be critical to get all developers updated.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/docs/build/html/robots.txt b/docs/build/html/robots.txt
new file mode 100644
index 0000000000..1f53798bb4
--- /dev/null
+++ b/docs/build/html/robots.txt
@@ -0,0 +1,2 @@
+User-agent: *
+Disallow: /
diff --git a/docs/build/html/running-the-demos.html b/docs/build/html/running-the-demos.html
new file mode 100644
index 0000000000..3b0d64277d
--- /dev/null
+++ b/docs/build/html/running-the-demos.html
@@ -0,0 +1,336 @@
+
+
+
+
+
+
+
+
+
+
+ Running the demos — R3 Corda latest documentation
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ R3 Corda
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Running the demos
+
The repository contains a small number of demo programs that run two-node networks, demonstrating functionality developed
+so far. We have:
+
+The trader demo, which shows a delivery-vs-payment atomic swap of commercial paper for cash. You can learn more about
+how this works in Protocol state machines .
+The IRS demo, which shows two nodes establishing an interest rate swap between them and performing fixings with a
+rates oracle, all driven via the HTTP API.
+The IRS demo web interface - a web interface to the IRS demo.
+The attachment demo, which demonstrates uploading attachments to nodes.
+The SIMM valuation demo, a large demo which shows two nodes agreeing on a portfolio and valuing the initial margin
+using the Standard Initial Margin Model.
+
+
+
Note
+
The demos currently must be run from IntelliJ, this will change before M6.
+
+
+
Note
+
If any demos don’t work please jump on our mailing list and let us know.
+
+
+
Trader demo
+
+Open the Corda project in IntelliJ and run the “Install” configuration
+Open the Corda samples project in IntelliJ and run the “Trader Demo: Run Nodes” configuration
+Run “Trader Demo: Run Buyer”
+Run “Trader Demo: Run Seller”
+
+
In the “Trader Demo: Run Nodes” windows you should see some log lines scroll past, and within a few seconds the messages
+“Purchase complete - we are a happy customer!” and “Sale completed - we have a happy customer!” should be printed.
+
+
+
IRS demo
+
+Open the Corda project in IntelliJ and run the “Install” configuration
+Open the Corda samples project in IntelliJ and run the “IRS Demo: Run Nodes” configuration
+Run “IRS Demo: Run Upload Rates” to upload rates to the oracle.
+Run “IRS Demo: Run Trade” to have nodes agree on a trade.
+Run “IRS Demo: Run Date Change” to run the fixings.
+
+
In the “IRS Demo: Run Nodes” window you’ll see a lot of activity when you run the trade and when you run the date change.
+The date change rolls the clock forwards and causes the nodes to agree on the fixings over a period.
+
+
+
IRS web demo
+
There is also an IRS web demo installed. To use this follow steps 1-3 in the IRS demo and then navigate to
+http://localhost:10005/web/irsdemo and http://localhost:10005/web/irsdemo to see both node’s view of the trades.
+
To use the demos click the “Create Deal” button, fill in the form, then click the “Submit” button. Now you will be
+able to use the time controls at the top left of the home page to run the fixings. Click any individual trade in the
+blotter to view it.
+
+
+
Attachment demo
+
+Open the Corda project in IntelliJ and run the “Install” configuration
+Open the Corda samples project in IntelliJ and run the “Attachment Demo: Run Nodes” configuration
+Run “Attachment Demo: Run Recipient” - this waits for a trade to start
+Run “Attachment Demo: Run Sender” - sends the attachment
+
+
In the “Attachment Demo: Run Nodes” window you should see some log lines scroll past, and within a few seconds the
+message “File received - we’re happy!” should be printed.
+
+
+
SIMM and Portfolio Demo
+
+
To run the demo run:
+
+Open the Corda project in IntelliJ and run the “Install” configuration
+Open the Corda samples project in IntelliJ and run the “Simm Valuation Demo” configuration
+
+
Now open http://localhost:10005/web/simmvaluationdemo and http://localhost:10005/web/simmvaluationdemo to view the two nodes that this
+will have started respectively. You can now use the demo by creating trades and agreeing the valuations.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/docs/build/html/search.html b/docs/build/html/search.html
new file mode 100644
index 0000000000..29bc8d90c4
--- /dev/null
+++ b/docs/build/html/search.html
@@ -0,0 +1,255 @@
+
+
+
+
+
+
+
+
+
+
+ Search — R3 Corda latest documentation
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ R3 Corda
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Please activate JavaScript to enable the search
+ functionality.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/docs/build/html/searchindex.js b/docs/build/html/searchindex.js
new file mode 100644
index 0000000000..b4c7d4c02a
--- /dev/null
+++ b/docs/build/html/searchindex.js
@@ -0,0 +1 @@
+Search.setIndex({envversion:49,filenames:["building-the-docs","clientrpc","codestyle","consensus","contract-catalogue","contract-irs","corda-configuration-files","creating-a-cordapp","data-model","event-scheduling","getting-set-up","index","initialmarginagreement","inthebox","merkle-trees","messaging","network-simulator","node-administration","node-explorer","oracles","persistence","protocol-state-machines","release-notes","release-process","running-the-demos","secure-coding-guidelines","transaction-data-types","tutorial-attachments","tutorial-clientrpc-api","tutorial-contract","tutorial-contract-clauses","tutorial-test-dsl","where-to-start"],objects:{},objnames:{},objtypes:{},terms:{"00z":29,"0_xx":10,"1000l":27,"17t16":29,"1mb":21,"300px":26,"8u45":10,"_before_":21,"_do_":21,"_foo":2,"abstract":[8,21,22,29,30],"boolean":[8,22,29],"break":[19,21,23],"byte":[2,8,21,31],"case":[2,3,6,7,8,12,19,20,21,22,26,27,29,30],"catch":[2,10,21,25],"class":[1,2,3,5,7,9,11,19,20,21,22,25,26,27],"default":[2,4,6,7,10,12,14,16,17,18,21,22,25,26,28,29],"enum":22,"export":[17,21,32],"final":[3,5,8,10,14,21,22,29,31],"float":[4,5,9],"function":[2,4,5,8,11,12,14,19],"import":[2,8,9,10,21,22,26,29,30,31,32],"instanceof":29,"int":[2,3,29],"long":[2,4,8,9,29],"new":[2,3,5,7,8,10,13,15,17,18,21,22,23,26,27,28,29,30,31,32],"null":[6,9,27,29],"public":[2,6,7,8,13,15,17,21,22,26,29,30,31],"return":[1,2,3,5,9,17,20,21,22,25,27,28,29,30,31,32],"short":[9,12,23],"static":[7,8,12,19,21,29,31,32],"super":[2,30],"switch":[21,22,29],"throw":[1,2,3,14,21,29,30],"transient":21,"true":[3,6,8,19,29],"try":[1,2,8,21,22,28,32],"var":21,"void":[29,30,31],"while":[16,26,29],abil:8,abl:[3,7,8,12,14,17,18,19,21,22,24,29],abort:[3,19],about:[2,3,8],abov:[2,5,8,12,14,17,21,29,30,31],absolut:[3,6,8],abstractstatereplacementprotocol:22,accept:[2,3,4,8,29],acceptablepric:21,access:[1,2,6,10,11,15],accid:21,accident:[2,25],accompani:[2,29],accord:32,accordingli:30,account:[8,22,26],accrual:5,accur:[3,12],accuraci:8,achiev:[3,8,26],achiv:14,ack:22,acknowledg:21,acronym:12,across:[4,6,8,20,22,27],act:[3,6,8,19,21],action:[9,29,32],activ:[5,9,20,22,24,29],actor:[2,8,21],actual:[3,5,10,12,19,21,25,27,29,30,31],adapt:[2,19,21],add:[2,7,8,12,14,15,17,21,25,27,29,30,31],addattach:27,addcommand:[21,29],adding:11,addinputst:[21,29],addit:[2,3,6,8,20,22,26,29],addition:[8,20,21,23],addmessagehandl:22,addoutputst:[21,29],address:[3,6,7,8,15,18,21,22,28,29],adjust:[2,5,23,29,32],admin:[6,10,18],administr:[11,13],advanc:[4,5],advantag:8,adventur:32,advertis:[1,6,29],advertisedservic:7,advic:23,affect:[10,19],affinityexecutor:2,afraid:2,after:[3,4,5,7,9,10,13,14,19,21,29],again:[5,8,19,21,29],against:5,agent:17,agentlib:7,aggreg:[8,12,29,30],agre:[5,9,12,21,24,25],agree:[5,12],agreement:[5,8,11],ahead:[21,29],aid:22,aim:[2,8],albeit:22,albertsen:22,algorithm:[8,13,22,26,29],alia:6,alice:[18,26,29],alice_key:27,aliv:21,all:[0,1,2,3,4,5,6,7,8,10,14,17,18,19,20,21,22,23,24,25,26,27,29,30,32],allclaus:30,allcomposit:30,allevi:3,allow:[1,2,3,4,5,6,7,8,9,12,15,19,20,21,22,25,26,29,31,32],allpartysignedtx:21,almost:29,along:[3,19,21,29],alongsid:29,alreadi:[2,7,9,11,12,14,19,21,22,27,29,30,31],alright:21,also:[1,2,3,4,5,6,7,8,9,10,12,14,15,16,17,18,20,21,22,24,26,27,28,29,30,31,32],alter:[6,17,21],altern:[0,2,6,11,15,16,17,18,26,29],although:[5,6,8,21,27,29,30,32],alwai:[2,8,9,17,20,21,26,29],amount:[1,4,5,8,11,12,21,22],amqp:[15,22],analysi:8,analyt:12,andresen:8,ani:[2,3,4,5,8,9,12,17,18,19,20,21,22,23,24,25,26,27,28,29,32],annot:[1,2,20,21],announc:23,anonym:8,anoth:[1,2,3,7,8,10,12,17,19,21,22,27,28,29,31],answer:[2,19],anticip:2,any:[1,4,9,12,17],anybodi:8,anyclaus:30,anycomposit:30,anyon:[3,29],anyth:[3,8,21,25,26,29,30],anywher:[19,22,29],apach:15,apart:3,api:[0,1,2,7,11,13,17,20,21,22,23,24],app:1,appear:[28,29],append:[17,21],appendix:11,appli:[2,4,5,7,8,29,30],applic:[7,8,15,19,22,25,32],applyfix:5,appoint:3,approach:[8,9,11],appropri:[2,15,20,30],approv:[8,9,21],approxim:3,april:22,arbitrari:[2,8,19,21,25,26],arbitrarili:8,architectur:[11,19],area:20,aren:[1,9,13,29,32],arg:[7,22],argument:[2,8,21,28,29],aris:8,around:[3,8,14,21,22,23,26,29,30],arrai:[8,21],arrang:21,arriv:[19,21],arrow:[5,10],art:26,artemi:[7,15],artemisaddress:6,artemismq:6,artemisport:7,articl:[3,8,9,19,21,22,29,32],artifact:7,ask:[2,19,21,29],aspect:[21,32],assembl:[8,14,29],assemblesharedtx:21,assert:[2,11],assertequ:[21,27],asset:[4,11,21,22,25,26],assetforsal:21,assetmismatchexcept:21,assettosel:21,assettypenam:21,assign:[8,19,21],assist:[9,20,21,26],associ:[3,8,9,15,20,22,26,29],assum:[3,8,11,14,21,25,29],assume:[14,21],assumpt:21,assur:12,atom:[3,8,21,22,24,29],attach:[7,8,11,14],attachment:[8,11,17],attachmentdemo:27,attack:[3,25],attch:14,attempt:[8,10,25],attent:21,attest:3,attribut:2,audit:8,authent:[1,3,22],authenticatedobject:[26,29,30],author:[2,3,23,32],authoris:[21,26],auto:[2,29],autoclos:1,autom:[8,9,29,32],automat:[0,1,3,6,7,9,15,16,20,21,22,27,29,32],avail:[0,3,5,6,7,9,16,17,21,22,23,25,27,28,29],avoid:[2,8,20,21],awai:[8,21],await:7,awar:[1,2,9,21,22,29],awg:23,awkward:[2,21],axi:5,back:[1,2,8,12,19,21,22,25,26,29],backend:22,background:[1,2,8,11],backoff:15,backport:23,backward:[21,23],bad:[2,21,29,31],balanc:[3,4,8,18,29,31],banana:26,bananast:26,banco:22,band:21,bandwidth:2,bank:[5,6,8,22,26,27,29,32],bankrupt:29,bankruptci:[3,8,12,19],barreca:22,barrel:22,base:[1,2,3,5,6,7,8,9,15,21,22,26,29],basedir:[6,7],basi:[5,9,16,17],basic:[2,3,6,8,11,14,18],bat:[12,16,18],bbva:22,bear:21,becaus:[2,3,8,9,10,17,19,21,26,28,29,30,31],becom:[2,5,8,9,21,23,26],been:[3,5,6,8,10,12,19,21,22,23,26,28,29,30],befor:[3,5,7,8,9,13,21,22,23,24,26,27,28,29,30],begin:[2,8,29,32],behav:29,behaviour:[3,4,6,17,30,31],behind:[15,21,29],believ:22,belong:14,below:[2,5,7,8,9,12,14,21,26,32],beneficiari:4,benefit:[3,21],best:[2,32],bet:19,better:[2,13,22,29],between:[2,3,5,8,9,15,16,19,20,21,22,23,24,25,26,28,29],beyond:8,big:[2,8,21,22,29],bigdecim:[19,26],bilater:[4,5,22],bill:29,bin:28,binari:[8,14,19],bind:[3,6,8,19],bip:8,bit:[26,29,31,32],bitbucket:10,bitcoinj:21,blah:2,blank:[2,17,18,29],block:[1,2,3,7,8,19,21,22,25],blockchain:[8,13,14,21,29],bloom:2,bloomfilt:2,blotter:24,blue:[5,14],bob:[18,26,29],bodi:[2,12],boil:8,boilerpl:[7,29],bond:29,bookkeep:29,boost:13,bootstrap:7,bore:29,boss:11,both:[3,4,5,8,13,19,20,21,22,24,25,26,29],bounc:21,bound:[3,21,22,29],box:32,branch:[11,14,22,23],breach:8,bread:32,breakpoint:12,breviti:30,brief:[1,22],briefli:[11,15],bring:8,broadcast:[3,8,29],broadcasttransactionprotocol:3,broke:2,broken:[22,29],broker:[6,15],brows:[12,17],browser:6,buffer:1,bug:[2,22,23],bugfix:23,bui:[21,32],buildcordajar:6,builder:[21,22,25,27],buildmerkletransact:14,buildscript:7,built:[3,6,7,14,21,22,25,29],bulk:[8,30],bullet:2,bundl:8,busi:[8,9,13,19,20,21,22,26,29,32],businesscalendar:26,butter:32,button:24,buyer:11,bytecod:[8,21,29],cach:[15,27],calcul:[3,5,9,12,14,21,25,26,29],calendar:[5,19,26],call:[1,2,3,5,8,13,17,21,22,23,25,26,27,28,29,30,31],callback:[1,2,21,22],caller:[3,29],came:21,camel:2,can:[0,1,2,3,4,5,6,7,8,9,10,12,13,14,15,16,17,18,19,20,21,22,24,25,26,27,28,29,30,31,32],candid:20,cannot:[3,4,8,10,19,22,25,26,29],capabl:29,capit:2,capitan:0,capsule_cache_dir:7,captur:9,cardon:22,care:[2,3,8,21,25,31],carefulli:13,cashkt:29,cashsigningpubkei:21,cashstat:21,cast:1,catastroph:12,caught:1,caus:[2,12,24,29],cent:26,center:29,central:[26,29],ceo:26,cer:6,certain:[2,12,22,29],certainli:7,certainti:3,certif:[6,22,28],cev:10,chain:[4,8,11,19,21,22,26,29],chaincash:31,chaincashdoublespend:31,chaincashdoublespendfailswith:31,challeng:8,chanc:[2,21],chang:[0,1,2],changenotari:3,channel:21,charact:2,charg:19,charli:26,check:[2,3,6,9,10,11,14,16,19,21,22,25,26,27],checkabl:[19,22],checknotnul:29,checkpoint:22,checkstat:29,checksufficientsignatur:[3,21,26],child:[21,26],children:[21,26],childrenfor:21,choic:[2,3,8,29],choos:[3,10,18,29],chosen:[3,8,21],chronolog:9,chunk:[29,30,32],circl:16,claim:[8,29],clash:[2,20],classic:29,classpath:[7,8],claus:[11,22],clauseverifi:30,clean:[21,22],cleaner:22,cleanup:22,clear:[1,21,25,26],clearer:21,clearli:2,cli:12,click:[10,18,24],clock:[3,8,9,21,24],clone:[2,10],close:[1,3,4],closeabl:1,closer:3,closur:[2,31],cloud:17,cluster:[3,6],cmd:[14,29,30],coars:8,code:0,codebas:[2,20],cognit:8,coin:8,collabor:22,colleagu:2,collect:[1,2,17,20,22,29,30],collector:[2,17,21],collis:2,column:[7,17,20],com:[0,10],combin:[8,26,29],come:[1,8,21,22,23,25,29],command:[0,3,4,5,6,7,8,10,11,12,14,16,17,18,19,21,22,26,27,28],commanddata:[19,29,30],commercial_pap:[29,30],commercialpap:[4,20,29,30],commercialpaperlegaci:29,commit:[3,9,21,23],committe:12,common:[4,5,8,20,21,22,26,29,30,31],commonleg:5,commun:[10,21,22,25],compani:19,companion:[21,29,30],compar:[8,11,14,29],compat:[1,23],compel:3,compet:8,complementari:9,complet:[8,9,19,21,22,24,26,27,29,30,31],complex:[2,4,8,12,20,21,26,27,29],complic:[21,29,30],compon:[7,9,15,22],compos:[21,22,26,29,30],composit:[26,30],compositeclaus:30,compound:22,compris:5,comput:[5,19],computeoursignatur:21,concaten:14,concept:[3,4,8,9,14,19,21,22,29],concern:[8,21,29],concis:22,conclus:[3,8,19],concurrenthashmap:2,condit:[3,19,22,30,31],conf:[6,7],confgur:20,config:[6,7,17],configur:1,confirm:[3,10,12],conflict:[3,8],confus:21,connect:[1,6,7,13,17,18,28],consid:[2,5,8,9,19,22,23,26,29],consider:29,consist:[5,8,12,19,21,22,30],constant:[2,20,29],constantli:19,constraint:[19,21,22,29],construct:[2,3,7,11,14,20,21,22,25,26],constructor:[9,21],consum:[1,3,8,9,22,26,29],consumingtx:3,consumpt:[9,19],contact:[10,21,22],contain:[3,5,6,7,8,14,15,17,18,19,21,22,23,24,26,27,29,30,31,32],content:[2,3,7,8,9,10,17,19,21,26],context:[2,8,17,19,26],continu:[5,11],contract:3,contractreject:31,contractst:[3,9,14,20,22,26,29],contrast:[8,19,21],contribut:26,control:[1,2,3,6,7,8,10,17,20,21,22,24,25,26,29,32],conveni:[2,8,26,29],convent:[5,21,30],convers:26,convert:[3,4,5,20,21,22,26,29],convinc:[14,21,26],coordin:6,copi:[2,3,8,15,21,27,29,31,32],copyonwritearraylist:2,copyright:2,corda:[1,3,4],corda_dev_ca:6,corda_vers:7,cordacadevpass:6,cordapluginregistri:7,cordarpccli:1,cordarpcop:1,core:[4,7,8,19,21,22,26,27,29,31],corner:10,correct:[4,8,19,21,22,23,29,31],correctli:[8,19,22,29],correspond:[1,26,29],correspondingli:[2,27],cost:[1,19,29],could:[2,3,4,8,19,21,25,26,29],couldn:14,count:5,countabl:22,counter:[2,21],counterparti:[4,5,12,25],countri:[19,26],coupl:21,cours:[17,19,20,21,29,32],coven:29,cover:[3,4,8,12,19,21,26,29,32],crash:21,creat:[1,2,3],createdummyirs:5,createsomenod:21,creation:[5,8,14,29],creator:19,credenti:18,credit:[12,22],crisi:12,crisp:29,criteria:4,critic:[8,23],crop:8,crypto:22,cryptograph:[14,26],cryptographi:11,csr:22,curl:17,currenc:[4,5,18,21,22,26,29],current:[1,2,3,5,6,7,8,9,11,13,14,15,16,18,19,20,21,22,23,24,25,26,28,29,31],currentstep:21,currenttim:21,currentwallet:21,curv:5,custodi:[21,26],custom:[3,17,21,22,24,26],customis:32,cut:11,cycl:[2,21,29],dai:[3,5,17,19,21,23,26],daniel:22,danks:22,dashboard:[17,18],data:[0,2,3,4,5,7],databas:[6,7,8,11,13],dataset:[5,12],datasourc:6,datasourceclassnam:6,datasourceproperti:6,date:[3,4,5,9,11,17,23,24],dateoffset:22,daterollconvent:26,david:22,dcapsul:7,dead:15,deadlin:26,deal:[2,19,21,24,26,29],dealstat:26,debt:[4,12],debugg:7,decd098666b9657314870e192ced0c3519c2c9d395507a238338f8d003929de9:17,decd:17,decentralis:[8,19,22],decid:[10,14,19,20,29],decis:[3,8,29],declar:[2,6,31],dedic:2,dedupl:22,defaultissu:29,defin:[2,3,8,13,17,20,21,22,26,28,29,30,31,32],definit:[3,21,22,26,29,30],delai:[5,19],deleg:[3,30],delet:[2,8,21,22,29],deliber:[8,31],deliv:[4,21,26],deliveri:[13,15,21,24],demand:[3,8,21,22],demo:[6,7,11,12,13],demonstr:[12,22,24,32],denial:3,denot:14,dens:2,depend:[2,3,7,8,9,10,12,19,21,22,29],dependson:7,deploi:7,deploy:7,deploynod:[7,12],deposit:[29,31],deprec:22,deregist:15,deriv:[5,20,21,22,26,29],describ:[1,2,3,8,9,11,12,14,21,25,26,28,29],descript:2,deserv:23,design:[2,3,8,13,19,22,25,29,30,32],desir:[21,26],desktop:17,despit:[21,27,29],destroi:[4,8,29],destructur:29,detail:[1,2,3,4],detect:2,determin:[4,5,9,30],determinist:1,dev:6,develop:[2,6,7,8,11,13,20,21,22,23,24,29],devic:[6,8],devis:8,diagram:5,did:14,didn:[2,14,21,23,29],differ:[2,3,4,5,6,7,8,9,18,19,20,21,22,26,29,31],difficult:21,difficulti:30,digest:3,digit:[8,19,21,22,29],digitalsignatur:[3,19,21],direct:2,directli:[1,2,3,15,17,21,22,26,28,29,30],directori:[0,1,6,7,12,28,32],directthreadexecutor:2,dirnam:7,dirti:29,disabl:26,disadvantag:8,disagr:12,disambigu:20,discard:25,discov:8,discoveri:16,discuss:[8,21,26,29],disk:[15,21,22,26],disobei:19,displai:3,disput:[3,5,29],disrupt:15,distinct:[2,30],distribut:[3,7,8,11,13,19,21,22],distrust:[3,21],divid:3,divis:26,doc:[0,1,2,11,22,28],docker:17,docsit:[0,23],doe:[2,3,4,5,7,8,9,12,13,17,19,20,21,25,29,31,32],doesn:[2,3,6,8,10,13,17,21,25,29,31],dokka:0,dollar:[26,29,31],dollars:[29,31],domain:[22,26,29],domicil:29,domino:12,don:[1,2,8,10,13,19,21,23,24,25,26,29,30,31],done:[0,1,8,14,21,22,28,29],dot:[5,14],doubl:[8,13,18,21,29],doubt:[2,13],down:[2,6,8,18,21,27,29,30],download:[1,10,11],downsid:[2,8],drain:[1,21],draw:[22,28],drawn:28,drive:[8,32],driven:24,driver:[6,17,20,22,32],drm:19,dsl:[7,22,31],dt_socket:7,due:[2,3,5,8,9,12,13,20,21,29,30],dummi:[4,21,31],dummy1:21,dummy2:21,dummy_cash_issuer:31,dummy_notary_key:21,dummy_pubkey_1:[29,31],dummy_pubkey_2:31,dummycontract:21,dump:28,duplic:[14,21],durat:[9,19],dure:[2,5,6,7,16,17,21,22,29],dynam:[8,22,29,32],each:[1,2,3,5,7,8,9,12,14,16,19,20,21,22,23,26,28,29,30,31,32],earli:[2,4,32],earlier:25,earliest:[5,9],easi:[2,8,19,22,29],easier:[2,7,21,22,29],easiest:[1,29],easili:[2,12,21,29],econom:5,ed25519:22,edg:28,edge:28,edit:17,edition:10,editor:10,effect:[5,6,8,12,20,21,31],either:[2,3,4,5,6,8,14,20,21,26,29,31,32],elbonia:26,element:[2,8,14,30],elimin:[13,22],els:[3,7,8,19,21,26,29,30],email:21,embed:[8,13,14,17,19,22],embedd:15,emit:[1,22],emoji:27,empti:[3,6,22,29,31],emptyledg:31,emptyset:[3,27],enabl:[6,7,27,30],enact:12,encapsul:[2,26],enclos:2,encod:19,encount:[9,13],encourag:[20,27],encumb:29,encumberedst:29,encumbr:29,encumbranc:11,end:[2,3,5,8,19,21,23,30,32],endpoint:[7,15,17],enforc:[2,8,29],enforceverifyorfail:31,engin:12,english:[2,29],enjoy:22,enorm:21,enough:[2,10,12,21,29,32],ensur:[2,3,8,10,14,21,22,23,25,26,29,30],ensure:[3,10,12],enter:[7,12,31,32],entir:[3,5,8,19,21,29],entireti:5,entiti:[3,8,14,19,20,26,29],entri:[5,6,7,8,21,25,29],enumer:[5,20],environ:[2,7,19,21],envisag:29,equal:[3,21,22,26,29,30,31],equiti:20,equival:[2,5,18,26,29],especi:26,essenti:[17,19,29,30],establish:[9,15,24],etc:[2,3,4,5,12,13,18,19,21,22,23,26,29,30],euribor:[17,19],euro:26,evalu:[5,19,30],even:[1,3,8,12,13,14,19,20,21,22,29,31],event:[2,3,5,8],eventual:[3,23],ever:[2,8],everi:[1,3,8,14,15,19,20,21,22,23,25,26,29,32],everybodi:8,everyon:[3,19,29],everyth:[3,25,29,32],evid:19,evolut:8,evolv:[20,29,32],exact:3,exactli:[8,26,29],examin:[2,7,8,21,29],exampl:[0,2,3,4,5],excel:19,except:[1,2,21,25,29],exception:[2,21],excess:2,exchang:[5,21,26],exclud:6,exclus:4,execut:[3,7,8,9,16,18,21,22,26,27,29],executor:2,exhaust:22,exist:[2,3,4,5,6,7,8,9,11,20,22,26,29,31,32],exit:[4,18,21,22,29],expand:18,expect:[1,2,4,6,9,20,21,22,23,25,26,27,29,30,31],expectedtypenam:21,expens:[1,2],experi:[7,22,23,32],experienc:8,experiment:[2,21,22],explain:[2,9,21,22],explan:[2,28],explicit:[2,8,21,29],explicitli:[2,8,31],explor:[2,8,10,13,17,18,21,22,29,32],explorer:11,expos:[2,7,8,9,17,20,21,22,26,28],expose:[21,26],exposur:[4,5],express:[3,5,8,22,26,29,31],ext:7,extend:[2,3,7,13,21,22,26,29,30],extens:[2,22,25,26,29],extent:8,extern:[6,21,27,32],extraadvertisedserviceid:6,extract:[8,17,19,26,29],extractcommand:30,extrem:[3,8],face:29,facevalu:29,fact:[2,3,5,8,19,21,29,31],factor:[5,8,12],fail:[27,29,30,31],failswith:31,failur:[21,27,31],fairli:[2,12,21],fake:32,fals:[2,3,6,19,21,26,29],famili:20,familiar:[8,29],famou:[8,22],fanci:29,far:[21,24,29],fashion:[2,12,20],fast:[8,21],fault:21,featur:[1,2,6,7,8,11,12,15,19],feed:[3,19],feedback:22,feel:[29,32],fetch:[15,17,19,27],fetchtransactionsprotocol:27,few:[2,13,17,19,21,23,24,29],fiber:21,field:[2,5],file:[0,1,2],fill:[2,21,24,29],filter:[2,14,22],filtercommand:14,filteredleav:14,filteredtransact:14,filterfun:14,filterisinst:29,finalis:[3,5,21,22],finalisetransact:3,finalityprotocol:[3,27],financ:[7,21,22,32],financi:[8,9,12,21,22,26],find:[0,8,11,13,17,21,25],fine:[8,31],finish:[21,22],fire:21,firewal:21,first:[1,2,3,5,6,7,9,10,15,17,19,20,21,22,26,27,29,30,32],firstli:29,fit:[2,8],fix:[2,4,5,8,9,11,14],fixabledealst:26,fixedleg:5,fixedlegpaymentschedul:5,fixedratepaymentev:5,fixingroledecid:9,fixingsessioninitiationhandl:9,fixof:[14,19],flag:[17,32],flat:20,flesh:26,flexibl:[3,8,26],flight:[1,8],floatingleg:[5,9],floatinglegpaymentschedul:5,floatingratepaymentev:5,flow:[2,5,29,30],flux:[7,32],fly:21,focu:14,fold:2,folder:[0,6,7],follow:[0,2,3,7,8,9,10,17,18,21,24,29,30,31],font:2,foo:2,foobrokenexcept:2,foot:25,fooutil:29,forc:[8,17,22,29,31],fordai:[9,19],forev:23,forget:[21,29],form:[3,6,7,8,9,14,24,29,30],format:[0,1,2],former:28,formula:22,forth:[1,21],fortun:12,forward:[15,19,21,23,24],found:[6,10,17,19,21,23,26,32],four:29,fourpmtimelock:29,fraction:26,frame:[2,12,21],framework:[8,13,15,18,21,22,26,32],free:[3,6,8,21],freed:1,freeli:19,frequenc:5,frequent:29,fresh:[19,29,31],freshkei:21,freshli:26,from:[0,1,2,3,4,5,6,7,8,10,11,12,13,14,16,17,18,19,20,21,22,23,24,25,26,27,28,29,31,32],fromcountri:26,front:29,frontend:13,frustrat:8,ftx:14,fulfil:[4,8],full:[2,3,4,6,12,14,15,21,28,29,30],fulli:[2,3,6,8,21,22,26],fullysign:21,fun:[3,9,14,19,21,27,29,30,31],fund:[8,12],fundament:[3,8,29],fungibl:[4,26,29,30],fungibleasset:[4,11,22],further:[5,8,22,26,30],futur:[1,3,4,6,8,11,15,19,20],fuzz:22,gain:13,garbag:[1,2,17,21],gather:29,gavin:8,gcd:8,gear:23,gener:0,generateiniti:21,generateirsandfixsom:5,generateissu:29,generatemappedobject:20,generatemov:29,generateredeem:29,generatespend:[21,29],genuin:2,get:[1,2,3,8],getamount:31,getbefor:29,getbloomfilters:2,getclass:29,getcommand:[29,30],getcontract:29,getdummy_cash_issuer:31,getdummy_pubkey_1:31,getdummy_pubkey_2:31,getencumbr:29,getfacevalu:29,getfix:5,getinput:[22,29],getinstat:22,getissuanc:29,getkei:29,getlegalcontractrefer:[29,30],getmaturityd:29,getmega_corp:31,getmega_corp_pubkey:31,getnotarysignatur:[3,21],getoutput:[22,29],getoutst:22,getowner:[29,30],getparticip:29,getprotocoltrack:21,getprotocolvers:1,getrequiredcommand:30,getresourceasstream:27,getsign:[29,30],getter:[20,29],gettimestamp:29,gettransact:21,getvalu:[29,30],git:[10,14,22,23],github:[0,6],giusepp:22,give:[3,7,8,15,21,22,27,29],given:[3,8,14,19,21,26,29],givenpric:21,glanc:18,global:[2,3,8,22,26],glue:21,gnu:0,goal:[2,8,13,23],goe:1,gone:[21,22,29],good:[2,10,14,21,29,31,32],got:[14,17,21],gover:29,govern:12,gps:3,grade:26,gradl:6,gradlew:[7,10,12,16,18,28],grammar:2,granular:8,graph:[1,8,13,17,21,22,28],graphit:17,graphstream:28,great:[12,22],greater:2,greatest:8,green:10,groom:8,group:[4,7,8,11,14,18],groupclaus:30,groupclauseverifi:30,groupingkei:30,groupstat:[29,30],guarante:[23,26],guava:[2,29],gui:21,guidelin:[11,22],hack:[8,22],had:[3,21,22,26,29],hand:[9,16,21,29],handa:22,handi:21,handler:[7,9,21],happen:[2,3,8,9,11,14,19,21,23],happi:[24,27],hard:[2,8,21,23],harder:[8,25,29],hardwar:6,hase:5,hash:[3,8,13,14,17,19,21,22,26,29],hashcod:29,haskel:22,hasn:[10,28],hassl:21,hat:23,have:[1,2,3,4,5,7,8,9,10,11,12,13,14,15,17,19,20,21,22,23,24,25,26,27,29,30,31,32],haven:29,heap:21,hearn:8,heart:29,heavi:23,heavili:8,hedg:[4,5],heirarchi:2,held:20,hell:21,hello:21,help:[2,8,9,21,29],helper:[5,21,26,29],henc:[3,5,8],her:29,here:[2,3,6,7,8,11,13,14,17,19,20,21,22,26,29,31,32],hidden:15,hide:11,hierarch:21,hierarchi:21,high:[8,21],higher:[1,2,3,10],highest:11,highli:22,highlight:22,histori:3,hit:[8,10,27],hoc:22,hocon:6,hold:[8,14,22],holder:[2,8,29],holidai:[5,19,26],home:[10,18,24],homepath:7,hood:31,hopefulli:32,hospit:21,host:[6,7],hostandport:6,hostil:25,hotspot:2,hour:21,hous:18,how:[1,2,4,8],howev:[3,4,5,6,8,14,19,20,21,26,27,29,30,31],html:[0,2],http:[0,6,10,12,17,19,21,24,27,29,30,32],https:6,hub:21,human:[3,6,8,19,21],hundr:21,hurt:21,ide:[10,13,17,22],idea:[2,8,10,13,21,32],ideal:[21,29],ident:[3,6,8,14,15,19,21,22,26,29,30,31],identicon:22,identifi:[5,8,12,14,15,17,19,26],identiti:[3,21,26],identityless:8,ifmatch:22,ifnotmatch:22,ignor:[6,21,29,30],illegalargumentexcept:[2,21,29,30,31],illegalstateexcept:[2,29,30],illustr:26,illustrat:2,imag:14,imagin:[2,21,29],immedi:[1,8],immut:[2,5,8,19,29],immutabl:[2,8],immutablelist:29,imper:2,implement:[1,2,3,4,5,7,8],impli:21,implic:[3,8,21],implicitli:5,important:23,importattach:27,impos:[19,29],imposs:[8,14,19],improv:[22,23,29,30],improve:8,improvement:22,inadvert:29,includ:[2,3,4,6,8,10,11],inclus:14,incom:22,incompat:31,inconveni:29,incorpor:19,increas:[2,12],increment:1,indent:2,independ:[3,12,19,20,30],index:[5,8,9,10,20,23,29],indexsourc:9,indic:[1,2,5,9,21,22,29],individu:[2,12,18,24,29,31],indivis:26,industri:[12,13,17],infer:31,influenc:17,info:[20,21],inform:[2,3,8,18,21,22,26,27,29],infrastructur:[1,8,13,17,21,22,29],inher:8,inherit:[2,29,30],initi:[3,12,21,22,24,32],initial:11,initialis:[16,20,21],inner:30,inoutgroup:[29,30],input:[3,4,8,12,14,18,19,21,22,27,28,29,30,31],inputcash:31,inputindex:3,insert:[2,3,17,19,20,21],insid:[1,8,14,21,25,29],instal:[0,6,7,9,10,22,24,28,29],installdist:28,installtemplatenod:[6,7],instanc:2,instance:31,instant:[2,9,21,26,29],instanti:[8,9,21,22],instat:31,instead:[2,8,13,15,21,22,26,29,32],instigat:3,institut:8,instruct:[17,27],instrument:[4,5,9],insuffici:8,insufficientbalanceexcept:29,integ:[1,22,26,29],integer:29,integr:[2,8,12,14,17,19,20,21,22,27],intellig:2,intend:[2,4,7,8,17,18,19,20,21,25,26,31],intent:[19,22,29],intention:2,inter:22,interact:[1,2,8,15,19,21,22,29],interchang:26,interest:1,interest_r:6,interfac:[1,2,4,9,11,13,15],interior:22,interledg:22,intermediari:[12,26],intern:[2,7,15,17,20,21,22,26,29],internalis:2,interop:[13,22,29],interpol:26,interpret:[2,8],intersect:29,interv:26,intesa:22,introduc:[2,3,9,19,22,29],introductori:11,intuit:2,invalid:[3,19,21,26,29],invari:29,investig:21,invoc:[1,21],invoic:27,invok:[1,2,8,9,17,21,22],invoke:21,invokeprotocolasync:21,involv:[3,4,8,21,26,29,32],ipsa:19,irrelev:9,irs:[4,5,11,13,19,22],irsdemo:[6,14,24],irsexport:5,irstest:5,irsutil:5,isbefor:29,isda:[12,22],isempti:29,isinstanc:21,isn:[1,2,8,21,25,26,29,32],isnotempti:27,isol:30,issu:[3,4,8,12,14,18,19,21,22,23,26,28,29,30,31,32],issuanc:[4,26,29,30],issue:[4,29,30],issuedbi:31,issuer:[4,8,18,21,26,29,31],item:29,iter:[21,22,23,29],itself:[1,3,5,6,8,9,12,15,17,19,20,21,22,27,28,29,31],jar:[0,6,7,8,12,17,22,27],jarandsourc:7,java:[1,2,6,7,8,9,12,13,17,20,21,22,26,27,29,30,31,32],javaclass:21,javacommercialpap:29,javadoc:[2,6,7],javadocjar:7,javafx:22,javatesthelp:31,jdbc:[6,7,17,20,22],jdbcdatasourc:6,jdbcx:6,jdk1:10,jdk:[10,22,26,29],jdwp:7,jetbrain:[10,13],jms:15,jmx2graphit:17,jmx:17,jmxtran:17,job:[21,32],johann:22,join:[15,20,22,29],jolokia:17,jpa:20,json:[6,17,32],judgement:2,jump:24,just:[1,2,8,10,12,15,17,21,22,25,26,27,28,29,31,32],jvm:[1,7,8,13,17,21,25,32],kdoc:2,keep:[8,21,29],kei:[2,4,6,8,13,19,21,22],kept:[1,21],keymanagementservic:21,keypair:[21,29],keystor:6,keystorepassword:6,keyword:[2,31],kick:21,kind:[8,11,19,21,25,26,29,32],know:[1,3,8,9,13,14,19,21,24,25,29,30,31],knowledg:19,known:[5,8,12,14,21,23],korea:29,kotlin:[0,2,10,11],kryo:21,label:[21,31],lack:8,lambda:[21,31],land:5,lang:31,languag:[1,2,7,8,10,13,21,22,26,29,32],larg:[8,15,19,21,22,24,26,27,29,32],larger:[2,8,25],last:[21,23,31],lateinit:21,latenc:3,later:[1,2,13,19,20,21,22,25,26,29,30],latest:[2,10,22],latex:22,latter:[2,28,29],launch:9,layer:[6,8,15,19,20,21,22],layout:[7,16],ldap:22,lead:[2,8],leaf:14,leak:[1,3,8,21],learn:[8,11,21,24,26,29,32],least:[27,29],leav:[2,14,18,21,26],ledger:[3,4,5,8,11,17,19,20,21,22,26,27,29,31],ledgertransact:[21,22,26],leewai:25,left:[16,21,24,30,31],leg:[5,9],legal:[3,6,8,19,26,29],legalcontractrefer:[29,30],legallyidentifi:[3,19,21],less:[21,22,27],let:[2,8,9,14,15,17,19,21,22,24,26,27,28,29,31],letmein:6,letter:[2,15],level:[2,3,5,10,11,12,14,15,18,21,25,26,29,30,31],lib:[0,7],liber:2,libor:[5,17,19],librari:[1,2,6,12,17,19,21,22,26,28,29],licens:[2,12],life:[21,29,32],lifecycl:4,lifecyl:4,lifetim:5,lightweight:21,like:[1,2,3,5,8,9,10,14,15,17,19,21,22,23,26,29,30,32],likewis:29,limit:[4,8,29],line:0,linear:26,linearst:26,liner:2,link:[2,8,19,21,22,26],linkabl:8,linkag:8,linux:[17,22],list:[0,3,6,8,14,19,20,21,22,23,24,26,28,29,30],listen:2,listenablefutur:[3,21],listof:[21,29],liter:8,littl:[2,21,29,31],live:[5,12,21,22],livelock:8,load:[3,6,7,8,21,22,26,27,29,32],loan:[4,5,19],local:[0,6,7,8,10,17,20,21,22,28,31],locald:19,localhost:[6,12,17,18,24,28],lock:[2,4,6,20,29],log4j:22,log:[1,7,17,21,22,24,30],log_sender:27,logger:21,logic:[3,8,9,15,21,22,25,26,27,29,30,32],login:[7,18,28],london:[6,7,27],longer:[2,5,6,21,22],look:[2,5,15,17,19,21,23,26,27,29,30,31,32],lookup:6,loop:[2,5,28,29],loquitur:19,loss:19,lot:[2,5,8,22,24,25,29,32],low:[3,21],lower:2,lowest:[11,15],lurch:21,mac:17,machin:[6,8,9,11],made:[2,5,8,21,22,23,26],mai:[1,2,3,7,8,11,15,16,17,19,21,22,23,25,26,29,30,31,32],mail:[23,24],main:[6,9,15,21,22,27,32],mainstream:13,maintain:[3,8,29],maintan:19,mainten:15,major:[21,23],make:[0,1,2,3,5,7,8,11,19,21,22,23,25,27],maker:13,maketransact:21,malici:[21,25],manag:[6,8,15,17,21,22,29],mandatori:29,mani:[2,3,7,8,9,19,21,22,26,27,29],manipul:26,manner:[8,21,22,29],manual:[3,7,9,16,21],map:[2,3,5,6,11],mappabl:29,mappedschema:20,margin:11,mark:[1,2,4,20,21,29],markdown:2,marker:[21,25],market:11,marshal:1,master:[11,23],match:[1,8,14,21,25,26,27,30],math:11,mathemat:26,matter:[12,21,29],matur:[3,4,5,17,19,29],maturityd:29,maven:[7,10,22,29],mavenloc:7,mavenpubl:7,maximis:8,maximum:8,maybestx:21,maybetraderequest:21,mbean:17,mean:[2,3,8,9,12,14,19,21,26],meaning:[3,4],meaningfulli:27,meant:21,measur:[5,12],mechan:22,meet:29,mega_corp:[21,31],mega_corp_key:21,mega_corp_pubkey:31,megacorp:21,member:[5,22],memori:[3,15,21],menlo:2,mention:[9,21,29],menu:10,mere:5,merg:[8,22,26,29],mergeabl:29,merkl:11,merkleroot:14,merkletreeexcept:14,mess:21,messag:[1,2,6,7,8,11,13],messagingserveraddress:6,messagingservic:15,met:26,metadata:27,method:[1,2,3,6,9,17,20,21,22,25,26,29],metric:[12,17],micro:[22,30],mid:3,middl:[2,21],might:[2,5,8,10,19,20,21,25,29],mike:8,mileston:11,mind:[2,19,21],mine:8,miner:8,mini_corp_pubkey:21,minim:[8,21],minimis:[3,4,8,15],minimum:[1,5,8,26],minor:[22,23],minu:29,minut:[13,19,21],mismatch:[8,29,31],miss:[2,6,21,29,31,32],missingsig:21,mission:17,mistak:[22,25],mix:[2,22],mock:21,mocknetwork:21,mocknod:21,mockservic:26,mode:[16,22],model:2,modest:8,modif:[26,29],modifi:[3,4,5,7,10,21,26,29,30],modul:[2,6,21,22,29],moment:[21,22],monei:[19,29],monitor:[2,11],month:[5,21,23],more:[1,2,3,4,5,6,7,8,12,13,14,17,19,20,21,22,24,26,27,29],moreexecutor:2,mortensen:22,most:[2,5,8,17,21,29],mostli:29,motiv:11,move:[4,8,18,21,22,23,29,30,31],movement:[21,29],much:[2,8,13,20,21,22,25,29,32],multi:[2,11,15,21,22],multilater:[4,22],multipl:1,multipli:5,must:[1,2,3,4,6,7,8,9,17,19,20,21,22,24,25,26,27,29,30,32],mustafa:22,mutabl:[2,8,26,29],mutat:8,mutual:[3,4,21,25],myfil:17,mykei:26,mykeypair:21,mylegalnam:6,mysql:13,nail:2,namedbyhash:11,nameserv:6,namespac:21,narrow:[2,18],nativ:21,natixi:22,natur:29,naval:3,navig:[7,12,24],navistar:3,nearestc:[6,7],neat:31,necessari:[2,3,22,23],necessarili:[20,26],nee:22,need:[0,2,3,5,8,9,12,14,17,21,22,23,25,26,27,28,29,30,31,32],neg:26,negoti:[8,26],neither:21,nest:21,net:[4,5,7,21,22,27,29,31],network:[3,6,8,9,11,13,14],networkmap:7,networkmapaddress:[6,7],networkmapcach:[6,21],networkmapservic:6,neutral:13,never:[2,3,8,29],newli:9,newnotari:3,newowner:29,newsecurerandom:22,next:[2,5,9,10,14,16,21,22,25,29],nextfixingof:9,nextscheduledact:9,nfinal:27,nice:[19,29],nio:2,noddi:17,node:[1,4,6],node_dir:7,nodea:[6,7],nodeb:7,nodeinfo:[6,21],nodeinterestr:19,nodeservic:19,non:[0,1,2,3,4,6,8,11,15,21,22,26],none:[9,12,14,20,21,30],nonemptyset:22,nordea:22,normal:[1,3,4,5,7,14,16,21,22,26,27,29,30],north:29,notabl:2,notaris:[3,8,21,22,26,29],notary:21,notarychang:22,notarychangeprotocol:3,notaryexcept:3,notarynod:21,notaryprotocol:[3,21],notaryservic:22,notarysig:21,notarysignatur:21,notarytous:26,note:[0,2,4,5,6,7,8,11,12,21],noth:[2,8,9,21,22,25,29],notic:2,notif:[15,27],notifi:[3,15,16],notion:[5,8,22,29],notnul:[29,30],notsecur:6,now:[2,7,8,10,11,14,17,21,22,24,26,28,29,31,32],nugget:29,nullabl:29,nullpublickei:29,number:[2,4,5,8,12,18,19,21,23,24,26,29],numer:8,obj:29,object:[1,2,4,5,8,9,11,13,15,17,19],oblig:[4,5,22,26],obligor:4,observ:[1,3,5,8,9,21,22],observatori:3,obsolet:[9,22],obtain:2,obviou:[2,3,8,19],obvious:5,occur:[3,9,21,29],occurr:3,odd:29,off:11,offer:[20,21],offlin:15,offset:5,often:[2,4,5,8,19,21,29],oftenor:19,oil:[22,31],old:[3,21,22,29],omit:[9,12],onc:[1,2,3,21,23,26,29],once:[0,3,5,7,9,16,20,21,26,27,29,32],onchainasset:4,one:[3,14],ongo:1,onledgerasset:29,onli:[1,2,3,5,6,7,8,9,13,14,15,16,17,18,19,21,22,23,25,26,29,30,32],only:21,onto:[1,2,21,29],open:[3,8,10,12,17,21,22,24],openattach:27,opengamma:[12,22],openjdk:10,oper:[5,6,9,17,19,21,22,25,26,29],opt:7,optim:2,option:[0,2,5,6,9,16,20,21,22,29,30,32],oracl:[5,8,10,11,13,14,15,17],orchestr:[13,22,32],ordain:5,order:[0,1,2,3,4,5,8,12,13,16,19,20,21,22,26,27,28,29,30],ordinari:[8,21,22,29],org:[0,6,10,29,30],organis:20,orient:11,origin:[14,20,22,26,27,29],originalst:3,orm:20,otc:20,other:[2,3,4,5,6,7,8,9,12,13,14,16,18,19,20,21,22,25,26,27,29,31],otherparti:21,othersid:[21,27],otherwis:[1,2,6,7,9,21,25,29],our:[2,3,8,9,14,21,22,23,24,26,28,29,31],ourselv:[21,29,32],oursignatur:21,out:[2,3,4,8,9,10,12,14,15,17,19,21,22,23,25,26,29,30],outcom:21,outer:30,outermost:30,outlin:[8,21],outpoint:8,output:[3,4,7,8,14,18,19,21,22,27,28,29,30,31],outref:21,outsid:[7,8,19,21,32],outstand:4,over:[2,3,5,6,7,8,14,15,17,19,20,21,24,26,29],overal:[3,9,31],overdu:9,overflow:2,overidden:[6,7],overload:[21,26],overnight:26,overrid:[9,21,29,30],overwhelm:8,own:[2,3,4,7,9,17,18,19,20,21,22,23,26,29,31,32],ownablest:[21,26,29],owner:[9,21,26,29,30,31],ownership:[21,29],owningkei:[14,21,29],ozturk:22,p2p:22,pack:29,packag:[20,22,26],packet:8,page:[10,19,23,24],pai:[4,11,12],paid:[4,5,8,12,29],pair:[8,21,26,29],parallel:[1,8,19],parallelis:8,paramet:[1,2,9,21,26,29,30],parameteris:8,parent:21,pars:[6,19,26,29,32],part:[1,2,3,4,7,8,9,14,20,21,22,25,26,32],parti:[2,3,4,5,8,9,11,12,14,15,18,19],partial:[3,8,14,21,25,29,31],partialtx:[14,21],particip:[3,8,22,29,32],particular:[2,3,8,11,14,17,20,21,22,26],partner:12,partyandrefer:[2,29],partynod:21,partyrefer:[2,29],pascal:2,pass:[3,14,20,21,27,28,29,30],password:[1,6,7,17,18,22,28],past:[2,24,29,32],patch:[2,22],path:[2,6,7,9,15,17,22,29],pattern:[2,8,28],paus:[7,16],paye:8,payer:[5,8],payment:[4,5,8,9,12,19,21,24,29],pdf:[19,27],peer:[13,14,19,21,29],penni:[26,29],peopl:[2,8,13,21,29],per:[2,7,8,9,11],perform:[2,3,5,8,9,12,19,21,22,24,26,27,29,30],perhap:[2,8,15,29],period:[5,24],perman:[27,29],permiss:[1,6,13,22],persist:6,persistentst:20,perspect:[8,21,29],phase:22,phrase:19,physic:[3,22],pick:[15,21,22,23,29,32],piec:[2,3,8,21,26,29,31],pip:0,pki:[8,22],place:[0,2,5,8,9,12,13,14,15,19,21,22,23,26,29,32],plai:[8,11],plain:6,plan:[8,19,21,22],platform:[3,5,7,8,9,13,14,19,21,25,26,29],pleas:[2,8,10,20,22,24,27],plu:[6,26],pluggabl:22,plugin:6,pluginservicehub:22,point:[1,2,3,4,7,8,17,19,20,21,23,25,29],pointer:[3,21,26],pointless:2,polish:22,polit:12,pool:[2,8],poor:8,pop:10,popular:13,popup:10,port:[6,7,18,22,23,28],portfolio:[11,12,22],posess:21,posit:[2,3,8,21,29],possess:3,possibl:[8,12,19,21,27,29],postgr:13,potenti:[2,3,12,13,21,29],pound:[26,29],power:[6,8],practic:[6,8,12,22,29],pre:[0,5,21,29,31,32],preced:29,precis:[3,8,13],precondit:[2,29],prefer:[2,20],prefix:[2,20],preliminari:12,prepar:[8,22,29],present:[3,4,5,6,7,13,20,21,22,26,29,30],preserv:[3,8],pretend:[17,26],pretti:[8,21],prevent:[12,25,29],previou:[8,21,22,26,31],previous:[5,9,19,22],price:[8,19,21],primari:19,primarili:4,primit:[26,31],print:[1,17,22,24,25,28],println:27,priv:21,privaci:[2,3,8,13,21,22,29],privat:[2,6,8,20,21,27,29,32],privatefoo:2,probabl:[10,29,32],problem:[3,8,19,21],proce:21,procedur:[21,29],process:[1,3,5,7,8,9,11],processor:8,produc:[0,9,29,31],product:[2,7,9,12,13,22,23,26],profound:8,program:[1,2,8,17,22,24,26,29,32],progress:[3,5,11,16],progresstrack:21,project:[7,10,11,12,22,24,29],prolif:22,promis:22,proof:[4,8,14],propag:[1,17,21,29,30],properli:[21,25],properti:1,proport:12,propos:[11,21,25],proprietari:[12,22],prose:[19,26,29],prospectus_hash:27,protect:[12,21],protocollog:[9,21],protocollogicreffactori:9,protocoltrack:21,protocolvers:1,prototyp:[2,13,19,22,29],prove:[3,8,29],proven:12,provid:[0,1,2,3,4,5,6,7,8,14,15,16,17,18,19,20,21,22,25,26,29,32],provision:26,proxi:[1,28],pseudo:19,pseudonom:26,ptx:[3,21,27],pubkei:31,publicfoo:2,publickei:[11,21],publickeytre:26,publish:7,pull:10,punish:19,purchas:[21,24],pure:[4,8,19],purpos:[3,4,20,21,26,28,29],push:[1,23],put:[2,11,21,23,28],python:0,qualifi:6,quantiti:[8,26,29],quasar:[7,21],quasarscan:7,queri:[1,5,6,9,19,20,22,28],queryablest:20,question:[2,3,9,10,19,26],queu:15,queue:[1,2,15,21],quick:19,quickcheck:22,quickli:[8,25,29],quit:[1,2,3,21,29],r3corda:7,r3dlg:23,r3prototyp:[0,10,28],r3repositori:10,raft:22,rais:[3,30],ran:28,random:[8,9,22,26],randomis:22,rang:[3,20],rapid:[2,7,13,23],rare:[6,26],rate:2,ratesfixprotocol:14,rather:[2,8,15,21,22,29],raw:[15,17,21],rdbms:[20,22],rdms:22,reach:[3,5,8,9,12,19],reachabl:21,reactiv:22,read:[2,6,7,8,11,13,14,17,21,22,24,29,32],readabl:[6,13,21],readi:[3,21,23,29],readili:[26,30],readme:2,real:[2,12,19,22,26,29,32],realis:21,realist:26,realiti:5,realli:[2,3,8,14,21,29],reason:[2,3,5,8,21,22,25,26,29],reassign:29,recal:5,receiv:[1,4,5,8,12,19,21,22,23,24,25,27,29],receiveandcheckproposedtransact:21,receiveandvalidatetraderequest:21,recent:22,recipi:[4,8,24,27,29],recognis:[8,21,29],recommend:[2,15,32],record:[3,9,20,21,27],recordtransact:21,recreat:21,red:[5,10,14],redeem:[4,29,30],redempt:29,redesign:22,reduc:[2,7,12,29],redund:2,ref:[21,26,31],refactor:22,refer:[2,3,4,5,6,8,9,12,19,21,22,26,27,29,31],referenc:[3,27],refin:22,reflect:[11,21,22,29,30],refresh:22,refus:10,regard:3,regardless:21,regener:[5,23],regist:[2,7,15,16,17,21,32],registerprotocoliniti:21,regul:29,regular:[17,21,26,29],reissu:29,reissuanc:8,reject:29,rel:[6,7,8,30],relabelablestep:21,relai:27,relat:[5,9,11],relationship:29,relax:22,releas:[1,11,12],relev:[7,8,9,11,22,26,29,30],reli:[1,7,8,12,22,25],relianc:8,relic:17,religi:2,remain:[7,9,21,29],remeb:10,rememb:[2,9,10,25],remind:[21,25],remot:[6,7,10,27],remov:[14,21,22,23,29],renam:[21,22],render:[2,16,21,22],renderifsupport:27,repeat:[2,5,21],replac:[3,5,10,12,17,22,23,26,29],replai:22,replic:8,repoint:3,report:[21,30],repositori:[2,7,10,22,23,24],repres:[2,4,5,8,19,20,21,22,26,28,29],represent:[5,20],request:[1,3,8,15,19,20,21,22,25,27],requestingparti:3,requiredcommand:[22,30],requiresinglecommand:[29,30],requirethat:[29,30],research:22,resel:19,reset:[5,16],reshap:8,resolut:[3,8,21],resolv:[2,12,21,26,29],resolvefromtwohash:21,resolvetransactionsprotocol:[21,27],resolvetransactionsprotocoltest:21,resourc:[1,6,8,21],respect:[2,8,21,24],respend:8,respond:21,respons:[1,3,8,9,15,20,21],rest:[3,8,13,17,21,22,32],restart:[10,21],restor:21,restrict:[2,12],restructur:30,restructuredtext:0,result:[2,3,5,6,8,12,18,19,20,21,22,25,29,30],resum:[21,22],resurrect:21,retain:15,rethrown:1,retri:[13,15,21],retriev:[3,5,21,27],retrieveoutput:31,reus:[1,8,31],reusabl:[19,22,27],reveal:[3,8,14,21,22],revers:21,revert:4,review:[2,22,23],revis:5,rewrit:21,richer:7,right:[2,10,17,21,22,23,25,32],rightmost:14,rigid:8,rigidli:2,risk:[12,21],robert:22,robust:22,role:[8,9,27,28,32],roll:[5,21,22,24],rollov:[26,29],root:[6,7,14,23],rotat:22,roughli:[3,23],rout:[15,21,22],row:[17,18,20,26,29],rpcexception:1,rpcreturnsobserv:1,rpcsincevers:1,rui:22,ruin:31,rule:[2,12,19,21,22,29],run:[0,1,2],rundemonod:[18,22],runnetwork:21,runnod:12,runrecipi:27,runsend:27,runtim:[2,21],safe:[1,2,8,21,25],sai:[2,3,8,12,29],sake:12,sale:[24,29],same:[1,2,3,4,5,6,8,9,19,21,22,26,29,30,31],sampl:[6,7,12,21,22,24],sanction:29,sandbox:[8,9,13,22,25],saniti:21,santiago:22,satisfi:[26,29],save:[2,21,22,29],saw:28,scala:[13,29],scalabl:[2,8],scale:[5,25],scan:7,scenario:[8,26,32],scene:[21,29],schedul:5,schedulablest:9,scheduledact:9,schema:11,schemaopt:20,schemaservic:20,scheme:14,scope:[8,18,30],scotiabank:22,scrape:17,scratch:[26,32],screen:[2,10,18,22,29],script:[0,7,8],scroll:24,scrub:21,seamless:13,search:[10,18,29],second:[5,21,24,26,29],secondari:21,secp256r1:22,secret:6,section:[6,8,11,22,23],securehash:[3,14,26,29,30],securerandom:22,see:[0,1,2,3,4,5,6,7,9,14,19,20,21,22,24,26,27,28,29,30,32],seed:21,seek:[8,22],seem:8,seen:[2,5,19,21,29],segment:7,select:[3,10,20,22,29,30],self:[7,22,28],sell:[21,29,32],seller:11,sellerownerkei:21,sellersig:21,sellertradeinfo:21,semi:8,send:[2,3,8,14,15,17,19,21,22,23,24,27,29,31],sendandrec:21,sender:[8,21,24,27],sendsignatur:21,sens:[5,19,29],sensit:[9,12,14,25],sent:[9,21,22,26,29],separ:[3,7,8,14,15,17,19,21,26,29],septemb:12,sequenc:[8,22],sequenti:21,seri:21,serial:[1,13,29],serialis:[1,2,8,13,21,29],seriou:[8,23],serious:32,serv:7,server:[1,6,7,13,15,17,22,29,32],servicehub:[3,7,15,21,27],servicehubintern:[3,7,21,22],servicetyp:6,session:[9,15,22],sessionid:9,set:[3,5,6,7,8,9],setof:[21,27,30],setter:[20,29],settim:[21,26],settl:[4,21,26,27],settlement:[4,21],setup:[7,9,16,21],sever:[6,7,8,20,21,29,31,32],sha256:[14,26,29,30],sha256sum:17,sha:[8,17],shape:8,share:[4,5,8,12,19,21,22,25,27,29,32],shasum:17,she:29,shell:12,shoot:25,shortcut:13,shorthand:31,should:[2,3,4,7,8,9,10,11,12,13,14,20,21,22,24,25,26,28,29,30,31,32],shoulder:2,shouldn:[14,21,28,29],show:[8,10,13,16,18,22,24],shown:[6,16,21,26],shut:27,shutdown:21,side:[1,8,9,16,19,21,25,26,27,28],sidebar:16,sig:[22,29],sign:[3,5,8,13,14,15,19,21,22,25,26,29,30,31],signatureexcept:21,signaturesfromsel:21,signedtransact:[3,21,26,29],signer:[14,19,29,30],signific:[8,22],significantli:[5,26,27],signoff:3,signwith:[21,26,27,29],signwithecdsa:21,signwithourkei:21,silver:2,similar:[2,8,21,22,29,30],similarli:20,simm:11,simmvaluationdemo:[12,24],simpl:[1,2,4,5,6,8,12,13,17,21,22,26,27,28,29,30],simplecash:31,simplecashdoesntcompil:31,simplecashfailswith:31,simplecashsuccess:31,simplecashtweaksuccess:31,simplecashtweaksuccesstopleveltransact:31,simplenotaryservic:3,simpler:[8,13],simplest:[8,21,29,32],simpli:[2,7,8,15,20,21,22,26,29,31],simplif:22,simplifi:[2,4,8,26,29,32],simul:[6,11],simultan:[8,21,26,29],sinc:29,singl:[1,2,4,8,11,17,19,21,22,26,29,30],singlemessagerecipi:15,singleton:[21,29,30],site:[2,22,23],situat:[2,8,14],size:[2,5,8,21,29,30],skeleton:21,skip:[21,26,29],sleep:27,slf4j:21,slightli:29,slip:23,slot:22,slow:[2,8],slowest:8,small:[1,8,9,19,21,24,25,29],smaller:[22,30],smallest:26,smart:[11,13,19,21,22],smooth:29,snake:31,snapshot:[8,22,23,28],snide:0,snippet:[3,21],socket:17,softwar:[8,21,23,25,32],sofu:22,sold:[21,26],solut:21,solv:[8,19,21],solvenc:19,some:[2,3,4,8,9,12,13,14,17,19,20,21,22,24,26,28,29,30,31,32],somed:29,someon:[3,8,29],someth:[1,2,5,8,10,21,22,29,30,32],sometim:[8,17,21,26],somewhat:[1,8,21,22],somewher:29,soon:[22,29],sophist:8,sort:[19,21,22],sound:[2,21,29],sourc:[5,6,7,9,10,11,12,17,19,21,22,28,29],sourcejar:7,sparingli:2,speak:22,spec:22,special:[1,3,8,21,31],specif:[1,3,4,7,8,9,15,17,21,22,26,27,29,30],specifi:[0,1,2,3,4,6,7,8,13,14,20,21,22,26,29,30,31,32],speed:[8,21],spend:[8,13,21,25,29],spent:[8,28,29,31],sphinx:0,sphinx_rtd_them:0,spirit:22,spline:26,split:[8,14,15,22,26,29,30],splittabl:29,spot:22,spread:[3,21],spreadsheet:19,sql:[13,20,22],src:[6,21,27,32],ssl:22,sslkeystor:6,stabilis:23,stabl:23,stack:21,stage:[2,4,21,26,29,32],stai:[8,29],stake:8,standalon:[19,22],standard:[2,7,12,17,21,22,24,26,28,29,30],standardis:[8,26],start:[1,2,5],startprotocol:[3,21,27],startup:[17,22],state:[3,4,5],stateandref:[3,21,26,29],statehistori:3,stateless:8,statemachinemanag:21,statement:[2,8,19,21,29],stateref:[3,8,9,14,20,26],statesoftyp:[21,29],statist:17,status:8,stem:29,step:[3,9,11],still:[3,8,9,19,21,22,29,32],stock:[8,19],stop:[2,21,27],stopnod:21,storag:[6,8,21,26,27],storageservic:27,store:[3,6,7,21,22,26,27,29],stori:[2,22],straightforward:[21,29],stream:[1,15,21,22,28],stress:2,strictli:[5,8],string:[6,19,21,26,29],strip:29,strong:13,structur:[2,8,10,13,14,19,21,22,26,29],stub:[12,22],studi:29,stuff:2,stx1:21,stx2:21,stx:[21,26],sub:[1,2,21],subclass:[4,20,21,26,29],subclaus:30,subdirectori:12,subgroup:8,subject:[6,7,12],submiss:19,submit:[2,3,15,21,22,24],subproject:7,subprotocol:[3,11],subscrib:[1,15,22,27],subsequ:[29,31],subset:[4,14],substitut:6,subsystem:[6,15],subtask:21,subtl:[2,8],subtract:26,subvert:25,success:27,successor:[3,9,13],succinct:2,sudo:0,suffer:[8,12],suffic:21,suffici:[8,19,23,26],suggest:[7,15,29],suggestinterestrateannouncementtimewindow:9,suit:[22,27],suitabl:[9,15,23],sukrit:22,sum:[12,29,31],sumcashbi:[21,29],summari:[11,22,23,26],summaris:8,sun:2,superclass:[4,22,26],superior:2,supersed:8,supertyp:29,suppli:4,support:[1,2,3,4,5,6,7,8,11,13,15,17,18,19,20,21,22],supportedschema:20,suppos:[21,29],suppress:[2,22],suppresswarn:2,sure:[3,22,23,25,27,29,32],surfac:21,surround:2,surviv:21,suspend:[3,7,11],swapping_signatures:21,swapsignatureswithsel:21,symbol:10,sync:29,synchronis:[2,3,8],syntax:[13,29],system:[1,3,7,8,11,13,14,17,18,20,21,22,27,29],tab:[2,10],tabl:[7,17,18,20,22],tackl:[22,30],tag:[1,2,23],take:[2,5,9,13,14,21,22,23,25,26,29,30,31],taken:29,talk:21,tamper:21,target:[0,2,6,8,12,13,17,21],task:[6,7,8,9,21],tcp:[7,17],team:10,tear:11,teardown:21,techniqu:[2,8,13,19],technolog:11,tediou:29,tell:[0,21,28],templat:6,temporari:7,temporarili:[21,23],tempt:[25,29],ten:29,tenor:[5,17,19,26],term:[4,6,8,9,12,15,26,30],termin:[5,17,21,28],terminolog:8,test:[0,4,6,7,10,11,15,18,19],testnet:[7,22],testtimelock:29,text:[2,10,17,22,31],than:[1,2,3,7,8,15,17,21,22,26,29],thank:22,thedao:22,thei:[2,3,4,5,6,7,8,9,12,14,16,17,19,20,21,22,23,25,26,27,29,30],them:[1,2,3,5,8,9,10,13,14,15,17,20,21,22,23,24,26,27,28,29,30,31,32],theme:25,themselv:[1,15,16,19,21,25,26,29],theori:[11,19],therefor:[1,7,8,10,12,13,21,23,25,29],thi:[0,1,2,3,4,5,6,7,8,9,10,11,12,14,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32],thin:15,thing:[2,8,9,11,13,19,21,22,25,26],think:[2,8,10,15,21,25,29],third:[8,12,14,22],thisstateref:9,thorough:21,those:[3,8,9,12,17,21,25,29],though:[14,17,21,29],thought:[8,13],thousand:31,threadsaf:2,three:[7,14,18,21,26,29],threshold:[22,26],through:[1,5,8,9,15,16,17,21,22,27,29,30,31,32],throughput:[3,8],throwifsignaturesaremiss:21,thrown:[1,21,25,29],thu:[2,3,6,8,9,17,19,22,26,29],ticket:21,tidi:21,tighten:29,tightli:21,time:[2,3,4,5,7,8,9,11,12,16,17,19,20,21,22,24,26,27],timelin:29,timem:29,timeout:1,timestamp:2,titl:10,tls:[15,22],todo:[2,21,29],togeth:[4,8,14,22,29,30],token:[21,26,30],told:2,toledgertransact:26,toler:[3,9],too:[2,21,29],took:21,tool:[13,15,17,18,20,21,22],toolbar:10,top:[2,8,10,15,18,21,22,24,28,30],topic:[15,29,32],topicsess:[15,22],toplevel:31,topriv:21,torn:22,tosignedtransact:[3,21,26,27,29],tostr:[2,21,29],tostringsshort:21,total:[8,26],toward:[22,23],towiretransact:[14,26],trace:[21,30],track:[8,9,11,15],tracker:21,trade:[3,5,11,12,13,19],tradeoff:2,trader:[11,22],traderdemo:32,traderequest:21,tradit:8,traffic:[6,8,16],transact:[3,4,8,9,11,12],transactionbuild:[3,21,22,26,27,29],transactionforcontract:[29,30],transactionforverif:29,transactionst:[3,14,22,26],transactiontyp:[21,22,27],transactionverificationexcept:31,transfer:[25,29,31],transit:[25,26,29,32],transmit:[11,22],transport:7,travel:29,treat:[7,25,29],tree:11,tri:[8,22,29],tricki:[8,21],trigger:[3,4,9,19,21,30],trim:30,trivial:[2,8,27],trust:[4,6,8,25],trustpass:6,truststor:6,truststorepassword:6,truth:21,tupl:2,ture:8,turn:[8,21,26,29,30,31,32],tutori:[1,4,11,13,19,21,22,27,28,29,30,31,32],tweak:[22,31],twice:31,two:[2,3,4,5,7,8,9,11,12],twopartydealprotocol:9,twopartytradeprotocol:21,txb:26,txbit:21,txhash:[8,21,28,29],txt:17,type:[2,3,4,5,7,8,9,11,12,14],typenam:21,typeonlycommanddata:29,typesaf:6,typetobui:21,typic:[8,9,15,17,20,21,25,26,27,29,32],ugli:21,ultimat:17,unaccept:21,unacceptablepriceexcept:21,unavoid:21,unconsum:20,under:[0,7,12,22,23,26,29,30,31,32],underli:[4,5,8,21,22,26],underscor:2,understand:[8,16,17,29,30,32],unencrypt:6,unexpect:[21,25],unfinish:21,unfortun:[21,25,29],unicredit:22,unifi:[22,32],uniform:9,unindex:10,uniqu:[3,8,19,21,22,26,27],uniqueidentifi:[11,22],unit:[3,8,10,11,15,19],univers:22,unix:[7,12,17],unknow:3,unknown:26,unless:[2,19,21,23,28,29,32],unlik:29,unlike:[4,10],unlock:6,unnatur:8,unpack:[7,29],unprocess:30,unqiu:9,unread:21,unrecognis:29,unrel:29,unschedul:9,unserialis:21,unset:5,unspent:8,unstarted:21,unsubscrib:1,unsubscript:1,unsupportedoperationexcept:[1,29],until:[1,3,5,8,9,21,22,23,31,32],untrust:21,untrustworthydata:[21,22,25],unverifiedtransact:31,unwrap:[21,22],upcom:[9,22],updat:[1,7,8,15,21,22,23,27,28,29],update:10,upgrad:[10,20,21,22,29],upgrade:[10,22],uphold:29,upload:11,upon:[5,7,21,29],upward:23,url:[6,7,10,17,22],usabl:[22,23,29],usag:[2,11],usd:18,use:[2,4,8],usehttps:6,useless:29,user1:[6,18,28],user:[0,1,2],usernam:[1,17,18],usr:0,usual:[2,8,29],usualli:23,utc:9,util:[3,7,22,26,28,29],uuid:[22,26],vagu:2,val:[2,3,9,14,19,21,26,27,29,30,31],valid:1,validatedtransact:[21,27],validatingnotaryservic:3,validfrom:29,valu:[2,3,4,5,6,8,12,14,18,19,21,22,24,29,30,31],valuabl:19,valuat:[5,12,22,24],vanilla:[4,5],vari:11,variabl:[2,5,7,8,21,29],variant:29,variou:[2,8,12,17,21,25,29],vault:[18,20,22],vcs:10,vega:22,vehicl:8,vendor:[13,17],verbos:29,veri:[2,4,8,12,13,19,21,25,29,31,32],verif:[4,8,13,14,22],verifi:[3,8,11,14,19,21,22,26,27],verifiedtransact:28,verifyclaus:30,verifypropos:22,verifysignatur:21,versa:[4,5,8,21,26],versu:21,vertic:2,vet:25,via:[0,2,5,8,9,12,15,16,17,19,20,21,22,24,25,27,32],vice:[4,5,8,21,26],view:[2,5],virtual:[8,25],visibl:[3,8,14,18],vision:11,visual:22,visualis:[15,28],vital:21,wai:[1,2,3,7,8,9,12,14,15,17,19,20,21,22,29,31,32],wait:[9,10,21,22,24],wake:22,wallet:[8,9,21,22,29],walletservic:21,want:[1,2,8,10,14,17,19,21,22,25,26,29,31,32],warn:1,watch:25,weak:[19,26],wear:23,web:[6,7,11,12,13,17,19,22],webaddress:6,webapp:22,webport:7,websocket:21,weekend:5,weight:26,well:[0,2,3,5,8,9,13,14,17,21,22,27,29,30],went:2,were:[2,8,12,19,21,29],what:[2,3,4,5,8,9,10,11,12],whatev:[2,21,26],when:[1,2,3,4,5,6,7,8,9,12,15,16,17,18,19,20,21,22,24,25,26,27,29,31],whenev:2,where:[1,2,3,7,8,11,14,17,18,19,20,21,22,23,26,27],wherea:5,wherev:17,whether:[1,3,4,19,21,26,30],which:[0,1,2,3,4,5,6,7,8,9,12,13,14,15,16,17,19,20,21,22,23,24,26,27,29,30,31,32],whilst:[8,19,21,22,25,29],white:[11,22],whitelist:[4,7,9,21],who:[2,8,12,13,21,22,26,29],whole:[3,14,31],whom:[4,8],whose:[4,17,26],why:[2,8,11,13],wide:[2,14],widescreen:2,widespread:2,widget:18,width:[2,26],wiki:[8,29,30],wikipedia:[29,30],window:[3,7,8,10,12,16,17,18,21,24],wiretransact:[3,14,19,21,26],wish:[7,8,11,12,19,20,21,22,26,29,32],within:[0,2,3,6,8,17,20,24,27,29,31],withitem:[26,29],withkei:21,withnewown:[21,29],without:[2,3],withoutissu:[21,29],withoutown:[29,30],withowner:29,won:[15,18,19,21,22,29,31],word:[2,3],work:[1,2,3,5,6,7,8,9,10,13,17,19,21,22,24,26,27,28,29],worker:2,workspac:[6,7],world:[6,8,12,16,19,21,29,31],worn:29,worri:[2,13,21,29],worst:8,worth:[2,25,29],worthless:19,would:[1,2,3,4,5,7,8,12,13,17,19,21,25,26,27,29,30,32],wouldn:19,wrap:[2,15,17,21,22,25,26,29,30,32],wrapper:[2,3,21],write:[2,3,11,13,14,15,17],written:[0,1,5,8,13,22,29],wrong:[1,2,21,31],wrote:8,wtx:[3,14,19,21],www:[0,10],year:[5,21],yet:[2,3,5,8,13,21,22,26,28],yield:8,york:7,you:[0,1,2,3,7,8,9,10,11,12,13,14,15,17,18,19,20,21,22,24,25,26,29,30,31,32],your:[1,2],your_usernam:10,yourself:[8,9,25,26],zero:[8,29],zip:[8,17,27],zone:9,zoneddatetim:9},titles:["Building the documentation","Client RPC","Code style guide","Consensus model","Contract catalogue","Interest Rate Swaps","The Corda Configuration File","Creating a Cordapp","Data model","Event scheduling","Getting set up","Welcome to the Corda!","Initial Margin Agreements","What’s included?","Transaction Tear-offs","Networking and messaging","Network Simulator","Node administration","Node Explorer","Writing oracle services","Persistence","Protocol state machines","Release notes","Release process","Running the demos","Secure coding guidelines","Data types","Using attachments","Client RPC API","Writing a contract","Writing a contract using clauses","Writing a contract test","Where to start"],titleterms:{"class":[29,30],"function":[21,29],about:10,access:17,adding:29,administr:17,adopt:8,against:7,agreement:12,amount:26,api:[28,29],app:[7,12],approach:19,assert:19,assertion:2,asset:29,attach:[17,27],attachment:[24,27],basic:19,bitcoin:8,build:[0,7],buyer:21,cash:[4,26],catalogu:4,chain:31,chang:3,check:29,claus:[29,30],client:[1,28],code:[2,25,29],command:29,comment:2,commerci:[4,29,30],commod:4,comparison:8,compil:2,complain:10,con:8,configur:6,consensu:3,construct:29,continu:19,contract:[4,25,29,30,31],corda:[6,7,11,14],cordapp:7,cordform:7,creat:[5,7],cryptographi:26,cut:23,data:[8,14,19,26],databas:17,date:26,debug:[7,30],demo:[18,24,27,32],detail:5,document:0,download:17,encumbranc:29,error:[1,2],ethereum:8,event:9,exampl:[6,9,14],explorer:18,featur:21,field:6,file:6,fix:17,format:6,fungibleasset:26,futur:21,gener:[2,29],get:10,gradl:7,group:[29,30],guid:2,guidelin:25,handl:1,happen:29,hide:14,how:[9,29],implement:[9,21],includ:13,initial:12,install:7,instanc:5,intellij:10,interest:[4,5,17],interfac:[16,18],introduct:[9,12,19,21],irs:24,kei:26,kotlin:13,lack:10,length:2,lifecycl:[5,26],line:2,locat:6,machin:21,make:29,map:[15,20],margin:12,math:26,merkl:14,messag:15,mileston:22,model:[3,8],monitor:17,multi:[26,29],multipl:3,name:2,namedbyhash:26,network:[15,16],node:[7,17,18],non:29,notari:3,note:22,object:20,obligat:4,observabl:1,obtain:3,off:14,oracl:19,orient:29,overview:8,pai:19,paper:[4,29,30],parti:[21,26,29],particular:29,per:19,persist:[7,20],plai:19,plugin:7,portfolio:24,pro:8,process:[12,23],progress:21,properti:2,protocol:[1,21,25],publickei:26,put:29,rate:[4,5,17],rational:8,relat:20,releas:[22,23],requir:[0,29],rpc:[1,6,28],run:[3,12,18,24],safeti:1,schedul:9,schema:20,sdk:10,secur:[1,25],seller:21,servic:[3,7,15,19],set:10,signatur:[3,26],simm:[12,24],simul:16,singl:31,smart:29,space:2,start:[7,21,29,32],state:[7,21,26,29],step:[12,23],style:[2,8],subprotocol:21,summari:30,support:26,suspend:21,swap:[4,5],tear:14,technic:5,templat:7,test:[21,29,31],theori:21,thing:29,thread:[1,2],time:29,timestamp:3,track:21,trade:21,tradeoff:8,trader:[24,32],transact:[14,26,29,31],transmit:29,tree:[14,26],two:[19,21],type:[15,26],uniqueidentifi:26,unit:21,upload:17,usag:14,user:6,using:[7,27,29],utxo:8,valid:3,vari:19,verif:26,verifi:29,version:[1,21],view:7,warn:2,web:24,welcom:11,what:13,where:[29,32],wire:1,without:10,write:[19,29,30,31],your:[7,17,21,29]}})
\ No newline at end of file
diff --git a/docs/build/html/secure-coding-guidelines.html b/docs/build/html/secure-coding-guidelines.html
new file mode 100644
index 0000000000..90eb007232
--- /dev/null
+++ b/docs/build/html/secure-coding-guidelines.html
@@ -0,0 +1,299 @@
+
+
+
+
+
+
+
+
+
+
+ Secure coding guidelines — R3 Corda latest documentation
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ R3 Corda
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Secure coding guidelines
+
The platform does what it can to be secure by default and safe by design. Unfortunately the platform cannot
+prevent every kind of security mistake. This document describes what to think about when writing applications
+to block various kinds of attack. Whilst it may be tempting to just assume no reasonable counterparty would
+attempt to subvert your trades using protocol level attacks, relying on trust for software security makes it
+harder to scale up your operations later when you might want to add counterparties quickly and without
+extensive vetting.
+
+
Protocols
+
Protocol state machines are how your app communicates with other parties on the network. Therefore they
+are the typical entry point for malicious data into your app and must be treated with care.
+
The receive
methods return data wrapped in the UntrustworthyData<T>
marker type. This type doesn’t add
+any functionality, it’s only there to remind you to properly validate everything that you get from the network.
+Remember that the other side may not be running the code you provide to take part in the protocol: they are
+allowed to do anything! Things to watch out for:
+
+A transaction that doesn’t match a partial transaction built or proposed earlier in the protocol, for instance,
+if you propose to trade a cash state worth $100 for an asset, and the transaction to sign comes back from the
+other side, you must check that it points to the state you actually requested. Otherwise the attacker could
+get you to sign a transaction that spends a much larger state to you, if they know the ID of one!
+A transaction that isn’t of the right type. There are two transaction types: general and notary change. If you
+are expecting one type but get the other you may find yourself signing a transaction that transfers your assets
+to the control of a hostile notary.
+Unexpected changes in any part of the states in a transaction. If you have access to all the needed data, you
+could re-run the builder logic and do a comparison of the resulting states to ensure that it’s what you expected.
+For instance if the data needed to construct the next state is available to both parties, the function to
+calculate the transaction you want to mutually agree could be shared between both classes implementing both
+sides of the protocol.
+
+
The theme should be clear: signing is a very sensitive operation, so you need to be sure you know what it is you
+are about to sign, and that nothing has changed in the small print!
+
+
+
Contracts
+
Contracts are arbitrary functions inside a JVM sandbox and therefore they have a lot of leeway to shoot themselves
+in the foot. Things to watch out for:
+
+Changes in states that should not be allowed by the current state transition. You will want to check that no
+fields are changing except the intended fields!
+Accidentally catching and discarding exceptions that might be thrown by validation logic.
+Calling into other contracts via virtual methods if you don’t know what those other contracts are or might do.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/docs/build/html/transaction-data-types.html b/docs/build/html/transaction-data-types.html
new file mode 100644
index 0000000000..be0f377740
--- /dev/null
+++ b/docs/build/html/transaction-data-types.html
@@ -0,0 +1,464 @@
+
+
+
+
+
+
+
+
+
+
+ Data types — R3 Corda latest documentation
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ R3 Corda
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Data types
+
Corda provides a large standard library of data types used in financial transactions and contract state objects.
+These provide a common language for states and contracts.
+
+
Amount
+
The Amount class is used to represent an amount of some
+fungible asset. It is a generic class which wraps around a type used to define the underlying product, called
+the token . For instance it can be the standard JDK type Currency
, or an Issued
instance, or this can be
+a more complex type such as an obligation contract issuance definition (which in turn contains a token definition
+for whatever the obligation is to be settled in).
+
+
Note
+
Fungible is used here to mean that instances of an asset is interchangeable for any other identical instance,
+and that they can be split/merged. For example a £5 note can reasonably be exchanged for any other £5 note, and a
+£10 note can be exchanged for two £5 notes, or vice-versa.
+
+
Here are some examples:
+
+
// A quantity of some specific currency like pounds, euros, dollars etc.
+Amount < Currency >
+// A quantity of currency that is issued by a specific issuer, for instance central bank vs other bank dollars
+Amount < Issued < Currency >>
+// A quantity of obligations to deliver currency of any issuer.
+Amount < Obligation . State < Currency >>
+
+
+
+
Amount
represents quantities as integers. For currencies the quantity represents pennies, cents or whatever
+else the smallest integer amount for that currency is. You cannot use Amount
to represent negative quantities
+or fractional quantities: if you wish to do this then you must use a different type e.g. BigDecimal
. Amount
+defines methods to do addition and subtraction and these methods verify that the tokens on both sides of the operator
+are equal (these are operator overloads in Kotlin and can be used as regular methods from Java). There are also
+methods to do multiplication and division by integer amounts.
+
+
+
State
+
A Corda contract is composed of three parts; the executable code, the legal prose, and the state objects that represent
+the details of a specific deal or asset (see Data model for further detail). In relational database terms
+a state is like a row in a database. A reference to a state in the ledger (whether it has been consumed or not)
+is represented with a StateRef
object. If the state ref has been looked up from storage, you will have a
+StateAndRef
which is simply a StateRef
plus the data.
+
The ContractState
type is an interface that all states must implement. A TransactionState
is a simple
+container for a ContractState
(the custom data used by a contract program) and additional platform-level state
+information, such as the notary pointer (see Consensus model ).
+
A number of interfaces then extend ContractState
, representing standardised functionality for common kinds
+of state:
+
+
+OwnableState
+A state which has an owner (represented as a PublicKey
, discussed later). Exposes the owner and a function
+for replacing the owner e.g. when an asset is sold.
+LinearState
+A state which links back to its previous state, creating a thread of states over time. A linear state is
+useful when modelling an indivisible/non-fungible thing like a specific deal, or an asset that can’t be
+split (like a rare piece of art).
+DealState
+A LinearState representing an agreement between two or more parties. Intended to simplify implementing generic
+protocols that manipulate many agreement types.
+FixableDealState
+A deal state, with further functions exposed to support fixing of interest rates.
+
+
+
+
+
NamedByHash and UniqueIdentifier
+
Things which are identified by their hash, like transactions and attachments, should implement the NamedByHash
+interface which standardises how the ID is extracted. Note that a hash is not a globally unique identifier: it
+is always a derivative summary of the contents of the underlying data. Sometimes this isn’t what you want:
+two deals that have exactly the same parameters and which are made simultaneously but which are logically different
+can’t be identified by hash because their contents would be identical. Instead you would use UniqueIdentifier
.
+This is a combination of a (Java) UUID
representing a globally unique 128 bit random number, and an arbitrary
+string which can be paired with it. For instance the string may represent an existing “weak” (not guaranteed unique)
+identifier for convenience purposes.
+
+
+
FungibleAssets and Cash
+
There is a common FungibleAsset
superclass for contracts which model fungible assets, which also provides a standard
+interface for its subclasses’ state objects to implement. The clear use-case is Cash
, however FungibleAsset
is
+intended to be readily extensible to cover other assets, for example commodities could be modelled by using a subclass
+whose state objects include further details (location of the commodity, origin, grade, etc.) as needed.
+
+
+
Transaction lifecycle types
+
The WireTransaction
class contains the core of a transaction without signatures, and with references to attachments
+in place of the attachments themselves (see also Data model ). Once signed these are encapsulated in the
+SignedTransaction
class. For processing a transaction (i.e. to verify it) it is first converted to a
+LedgerTransaction
, which involves verifying the signatures and associating them to the relevant command(s), and
+resolving the attachment references to the attachments. Commands with valid signatures are encapsulated in the
+AuthenticatedObject
type.
+
+
Note
+
A LedgerTransaction
has not necessarily had its contracts be run, and thus could be contract-invalid
+(but not signature-invalid). You can use the verify
method as shown below to run the contracts.
+
+
When constructing a new transaction from scratch, you use TransactionBuilder
, which is a mutable transaction that
+can be signed once modification of the internals is complete. It is typical for contract classes to expose helper
+methods that can contribute to a TransactionBuilder
.
+
Here’s an example of building a transaction that creates an issuance of bananas (note that bananas are not a real
+contract type in the library):
+
+
val notaryToUse : Party = ...
+val txb = TransactionBuilder ( notary = notaryToUse ). withItems ( BananaState ( Amount ( 20 , Bananas ), fromCountry = "Elbonia" ))
+txb . signWith ( myKey )
+txb . setTime ( Instant . now (), notaryToUse , 30. seconds )
+// We must disable the check for sufficient signatures, because this transaction is not yet notarised.
+val stx = txb . toSignedTransaction ( checkSufficientSignatures = false )
+// Alternatively, let's just check it verifies pretending it was fully signed. To do this, we get
+// a WireTransaction, which is what the SignedTransaction wraps. Thus by verifying that directly we
+// skip signature checking.
+txb . toWireTransaction (). toLedgerTransaction ( services ). verify ()
+
+
+
+
In a unit test, you would typically use a freshly created MockServices
object, or more realistically, you would
+write your tests using the domain specific language for writing tests .
+
+
+
Party and PublicKey
+
Entities using the network are called parties . Parties can sign structures using keys, and a party may have many
+keys under their control.
+
Parties may sometimes be identified pseudonomously, for example, in a transaction sent to your node as part of a
+chain of custody it is important you can convince yourself of the transaction’s validity, but equally important that
+you don’t learn anything about who was involved in that transaction. In these cases a public key may be present
+without any identifying information about who owns it.
+
Identities of parties involved in signing a transaction can be represented simply by a PublicKey
, or by further
+information (such as name) using the Party
class. An AuthenticatedObject
represents an object (like a command)
+that has been signed by a set of parties.
+
+
Note
+
These types are provisional and will change significantly in future as the identity framework becomes more
+fleshed out.
+
+
+
+
Multi-signature support
+
Corda supports scenarios where more than one key or party is required to authorise a state object transition, for example:
+“Either the CEO or 3 out of 5 of his assistants need to provide signatures”.
+
+
Key Trees
+
This is achieved by public key composition, using a tree data structure PublicKeyTree
. A PublicKeyTree
stores the
+cryptographic public key primitives in its leaves and the composition logic in the intermediary nodes. Every intermediary
+node specifies a threshold of how many child signatures it requires.
+
An illustration of an “either Alice and Bob, or Charlie” public key tree:
+
+
+
To allow further flexibility, each child node can have an associated custom weight (the default is 1). The threshold
+then specifies the minimum total weight of all children required. Our previous example can also be expressed as:
+
+
+
+
+
Verification
+
Signature verification is performed in two stages:
+
+
+Given a list of signatures, each signature is verified against the expected content.
+The public keys corresponding to the signatures are matched against the leaves of the public key tree in question,
+and the total combined weight of all children is calculated for every intermediary node. If all thresholds are satisfied,
+the public key tree requirement is considered to be met.
+
+
+
+
+
+
Date support
+
There are a number of supporting interfaces and classes for use by contract which deal with dates (especially in the
+context of deadlines). As contract negotiation typically deals with deadlines in terms such as “overnight”, “T+3”,
+etc., it’s desirable to allow conversion of these terms to their equivalent deadline. Tenor
models the interval
+before a deadline, such as 3 days, etc., while DateRollConvention
describes how deadlines are modified to take
+into account bank holidays or other events that modify normal working days.
+
Calculating the rollover of a deadline based on working days requires information on the bank holidays involved
+(and where a contract’s parties are in different countries, for example, this can involve multiple separate sets of
+bank holidays). The BusinessCalendar
class models these calendars of business holidays; currently it loads these
+from files on disk, but in future this is likely to involve reference data oracles in order to ensure consensus on the
+dates used.
+
+
+
Cryptography & maths support
+
The SecureHash
class represents a secure hash of unknown algorithm. We currently define only a single subclass,
+SecureHash.SHA256
. There are utility methods to create them, parse them and so on.
+
We also provide some mathematical utilities, in particular a set of interpolators and classes for working with
+splines. These can be found in the maths package .
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/docs/build/html/tutorial-attachments.html b/docs/build/html/tutorial-attachments.html
new file mode 100644
index 0000000000..1206dbdb0f
--- /dev/null
+++ b/docs/build/html/tutorial-attachments.html
@@ -0,0 +1,341 @@
+
+
+
+
+
+
+
+
+
+
+ Using attachments — R3 Corda latest documentation
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ R3 Corda
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Using attachments
+
Attachments are (typically large) Zip/Jar files referenced within a transaction, but not included in the transaction
+itself. These files can be requested from the originating node as needed, although in many cases will be cached within
+nodes already. Examples include:
+
+Contract executable code
+Metadata about a transaction, such as PDF version of an invoice being settled
+Shared information to be permanently recorded on the ledger
+
+
To add attachments the file must first be added to the node’s storage service using StorageService.importAttachment()
,
+which returns a unique ID that can be added using TransactionBuilder.addAttachment()
. Attachments can also be
+uploaded and downloaded via HTTP, to enable integration with external systems. For instructions on HTTP upload/download
+please see “Node administration ”.
+
Normally attachments on transactions are fetched automatically via the ResolveTransactionsProtocol
when verifying
+received transactions. Attachments are needed in order to validate a transaction (they include, for example, the
+contract code), so must be fetched before the validation process can run. ResolveTransactionsProtocol
calls
+FetchTransactionsProtocol
to perform the actual retrieval.
+
It is encouraged that where possible attachments are reusable data, so that nodes can meaningfully cache them.
+
+
Attachments demo
+
There is a worked example of attachments, which relays a simple document from one node to another. The “two party
+trade protocol” also includes an attachment, however it is a significantly more complex demo, and less well suited
+for a tutorial.
+
The demo code is in the file “src/main/kotlin/net.corda.demos/attachment/AttachmentDemo.kt”, with the core logic
+contained within the two functions runRecipient()
and runSender()
. We’ll look at the recipient function first;
+this subscribes to notifications of new validated transactions, and if it receives a transaction containing attachments,
+loads the first attachment from storage, and checks it matches the expected attachment ID. ResolveTransactionsProtocol
+has already fetched all attachments from the remote node, and as such the attachments are available from the node’s
+storage service. Once the attachment is verified, the node shuts itself down.
+
private fun runRecipient ( node : Node ) {
+ val serviceHub = node . services
+
+ // Normally we would receive the transaction from a more specific protocol, but in this case we let [FinalityProtocol]
+ // handle receiving it for us.
+ serviceHub . storageService . validatedTransactions . updates . subscribe { event ->
+ // When the transaction is received, it's passed through [ResolveTransactionsProtocol], which first fetches any
+ // attachments for us, then verifies the transaction. As such, by the time it hits the validated transaction store,
+ // we have a copy of the attachment.
+ val tx = event . tx
+ if ( tx . attachments . isNotEmpty ()) {
+ val attachment = serviceHub . storageService . attachments . openAttachment ( tx . attachments . first ())
+ assertEquals ( PROSPECTUS_HASH , attachment ?. id )
+
+ println ( "File received - we're happy!\n\nFinal transaction is:\n\n${Emoji.renderIfSupported(event.tx)}" )
+ thread {
+ node . stop ()
+ }
+ }
+ }
+}
+
+
+
The sender correspondingly builds a transaction with the attachment, then calls FinalityProtocol
to complete the
+transaction and send it to the recipient node:
+
private fun runSender ( node : Node , otherSide : Party ) {
+ val serviceHub = node . services
+ // Make sure we have the file in storage
+ if ( serviceHub . storageService . attachments . openAttachment ( PROSPECTUS_HASH ) == null ) {
+ net . corda . demos . Role :: class . java . getResourceAsStream ( "bank-of-london-cp.jar" ). use {
+ val id = node . storage . attachments . importAttachment ( it )
+ assertEquals ( PROSPECTUS_HASH , id )
+ }
+ }
+
+ // Create a trivial transaction that just passes across the attachment - in normal cases there would be
+ // inputs, outputs and commands that refer to this attachment.
+ val ptx = TransactionType . General . Builder ( notary = null )
+ ptx . addAttachment ( serviceHub . storageService . attachments . openAttachment ( PROSPECTUS_HASH ) !! . id )
+
+ // Despite not having any states, we have to have at least one signature on the transaction
+ ptx . signWith ( ALICE_KEY )
+
+ // Send the transaction to the other recipient
+ val tx = ptx . toSignedTransaction ()
+ serviceHub . startProtocol ( LOG_SENDER , FinalityProtocol ( tx , emptySet (), setOf ( otherSide ))). success {
+ thread {
+ Thread . sleep ( 1000L ) // Give the other side time to request the attachment
+ node . stop ()
+ }
+ }. failure {
+ println ( "Failed to relay message " )
+ }
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/docs/build/html/tutorial-clientrpc-api.html b/docs/build/html/tutorial-clientrpc-api.html
new file mode 100644
index 0000000000..3cee06cf25
--- /dev/null
+++ b/docs/build/html/tutorial-clientrpc-api.html
@@ -0,0 +1,291 @@
+
+
+
+
+
+
+
+
+
+
+ Client RPC API — R3 Corda latest documentation
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ R3 Corda
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Client RPC API
+
In this tutorial we will build a simple command line utility that connects to a node and dumps the transaction graph to
+the standard output. We will then put some simple visualisation on top. For an explanation on how the RPC works see
+Client RPC .
+
We start off by connecting to the node itself. For the purposes of the tutorial we will run the Trader demo on some
+local port and connect to the Buyer side. We will pass in the address as a command line argument. To connect to the node
+we also need to access the certificates of the node, we will access the node’s certificates
directory directly.
+
Now we can connect to the node itself using a valid RPC login. By default the user user1 is available with password test .
+
proxy
now exposes the full RPC interface of the node:
+
The one we need in order to dump the transaction graph is verifiedTransactions
. The type signature tells us that the
+RPC will return a list of transactions and an Observable stream. This is a general pattern, we query some data and the
+node will return the current snapshot and future updates done to it.
+
The graph will be defined by nodes and edges between them. Each node represents a transaction and edges represent
+output-input relations. For now let’s just print NODE <txhash>
for the former and EDGE <txhash> <txhash>
for the
+latter.
+
Now we can start the trader demo as per described in Running the demos :
+
# Build the demo
+./gradlew installDist
+# Start the buyer
+./build/install/r3prototyping/bin/trader-demo --role=BUYER
+
+
+
In another terminal we can connect to it with our client:
+
# Connect to localhost:31337
+./docs/source/example-code/build/install/docs/source/example-code/bin/client-rpc-tutorial localhost:31337 Print
+
+
+
We should see some NODE
-s printed. This is because the buyer self-issues some cash for the demo.
+Unless we ran the seller before we shouldn’t see any EDGE
-s because the cash hasn’t been spent yet.
+
In another terminal we can now start the seller:
+
# Start sellers in a loop
+for i in {0..9} ; do ./build/install/r3prototyping/bin/trader-demo --role=SELLER ; done
+
+
+
We should start seeing new NODE
-s and EDGE
-s appearing.
+
Now let’s try to visualise the transaction graph. We will use a graph drawing library called graphstream
+
If we run the client with Visualise
we should see a simple graph being drawn as new transactions are being created
+by the seller runs.
+
That’s it! We saw how to connect to the node and stream data from it.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/docs/build/html/tutorial-contract-clauses.html b/docs/build/html/tutorial-contract-clauses.html
new file mode 100644
index 0000000000..6b8aafd4e6
--- /dev/null
+++ b/docs/build/html/tutorial-contract-clauses.html
@@ -0,0 +1,437 @@
+
+
+
+
+
+
+
+
+
+
+ Writing a contract using clauses — R3 Corda latest documentation
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ R3 Corda
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Writing a contract using clauses
+
This tutorial will take you through restructuring the commercial paper contract to use clauses. You should have
+already completed “Writing a contract ”.
+
Clauses are essentially micro-contracts which contain independent verification logic, and can be logically composed
+together to form a contract. Clauses are designed to enable re-use of common logic, for example issuing state objects
+is generally the same for all fungible contracts, so a common issuance clause can be inherited for each contract’s
+issue clause. This cuts down on scope for error, and improves consistency of behaviour. By splitting verification logic
+into smaller chunks, they can also be readily tested in isolation.
+
Clauses can be composed of subclauses, for example the AllClause
or AnyClause
clauses take list of clauses
+that they delegate to. Clauses can also change the scope of states and commands being verified, for example grouping
+together fungible state objects and running a clause against each distinct group.
+
The commercial paper contract has a Group
outermost clause, which contains the Issue
, Move
and Redeem
+clauses. The result is a contract that looks something like this:
+
+
+
+Group input and output states together, and then apply the following clauses on each group:
+
+If an Issue
command is present, run appropriate tests and end processing this group.
+If a Move
command is present, run appropriate tests and end processing this group.
+If a Redeem
command is present, run appropriate tests and end processing this group.
+
+
+
+
+
+
+
+
Commercial paper class
+
To use the clause verification logic, the contract needs to call the verifyClause
function, passing in the
+transaction, a clause to verify, and a collection of commands the clauses are expected to handle all of. This list of
+commands is important because verifyClause
checks that none of the commands are left unprocessed at the end, and
+raises an error if they are. The top level clause would normally be a composite clause (such as AnyComposition
,
+AllComposition
, etc.) which contains further clauses. The following examples are trimmed to the modified class
+definition and added elements, for brevity:
+
+
class CommercialPaper : Contract {
+ override val legalContractReference : SecureHash = SecureHash . sha256 ( "https://en.wikipedia.org/wiki/Commercial_paper" )
+
+ override fun verify ( tx : TransactionForContract ) = verifyClause ( tx , Clauses . Group (), tx . commands . select < Commands >())
+
+
+
public class CommercialPaper implements Contract {
+ @Override
+ public SecureHash getLegalContractReference () {
+ return SecureHash . Companion . sha256 ( "https://en.wikipedia.org/wiki/Commercial_paper" );
+ }
+
+ @Override
+ public void verify ( @NotNull TransactionForContract tx ) throws IllegalArgumentException {
+ ClauseVerifier . verifyClause ( tx , new Clauses . Group (), extractCommands ( tx ));
+ }
+
+
+
+
+
+
Clauses
+
We’ll tackle the inner clauses that contain the bulk of the verification logic, first, and the clause which handles
+grouping of input/output states later. The clauses must extend the Clause
abstract class, which defines
+the verify
function, and the requiredCommands
property used to determine the conditions under which a clause
+is triggered. Composite clauses should extend the CompositeClause
abstract class, which extends Clause
to
+add support for wrapping around multiple clauses.
+
The verify
function defined in the Clause
interface is similar to the conventional Contract
verification
+function, although it adds new parameters and returns the set of commands which it has processed. Normally this returned
+set is identical to the requiredCommands
used to trigger the clause, however in some cases the clause may process
+further optional commands which it needs to report that it has handled.
+
The Move
clause for the commercial paper contract is relatively simple, so we will start there:
+
+
class Move : Clause < State , Commands , Issued < Terms >>() {
+ override val requiredCommands : Set < Class < out CommandData >>
+ get () = setOf ( Commands . Move :: class . java )
+
+ override fun verify ( tx : TransactionForContract ,
+ inputs : List < State >,
+ outputs : List < State >,
+ commands : List < AuthenticatedObject < Commands >>,
+ groupingKey : Issued < Terms >?): Set < Commands > {
+ val command = commands . requireSingleCommand < Commands . Move >()
+ val input = inputs . single ()
+ requireThat {
+ "the transaction is signed by the owner of the CP" by ( input . owner in command . signers )
+ "the state is propagated" by ( outputs . size == 1 )
+ // Don't need to check anything else, as if outputs.size == 1 then the output is equal to
+ // the input ignoring the owner field due to the grouping.
+ }
+ return setOf ( command . value )
+ }
+}
+
+
+
class Move extends Clause < State , Commands , State > {
+ @NotNull
+ @Override
+ public Set < Class <? extends CommandData >> getRequiredCommands () {
+ return Collections . singleton ( Commands . Move . class );
+ }
+
+ @NotNull
+ @Override
+ public Set < Commands > verify ( @NotNull TransactionForContract tx ,
+ @NotNull List <? extends State > inputs ,
+ @NotNull List <? extends State > outputs ,
+ @NotNull List <? extends AuthenticatedObject <? extends Commands >> commands ,
+ @NotNull State groupingKey ) {
+ AuthenticatedObject < Commands . Move > cmd = requireSingleCommand ( tx . getCommands (), Commands . Move . class );
+ // There should be only a single input due to aggregation above
+ State input = single ( inputs );
+
+ if (! cmd . getSigners (). contains ( input . getOwner ()))
+ throw new IllegalStateException ( "Failed requirement: the transaction is signed by the owner of the CP" );
+
+ // Check the output CP state is the same as the input state, ignoring the owner field.
+ if ( outputs . size () != 1 ) {
+ throw new IllegalStateException ( "the state is propagated" );
+ }
+ // Don't need to check anything else, as if outputs.size == 1 then the output is equal to
+ // the input ignoring the owner field due to the grouping.
+ return Collections . singleton ( cmd . getValue ());
+ }
+}
+
+
+
+
+
+
Group Clause
+
We need to wrap the move clause (as well as the issue and redeem clauses - see the relevant contract code for their
+full specifications) in an outer clause that understands how to group contract states and objects. For this we extend
+the standard GroupClauseVerifier
and specify how to group input/output states, as well as the top-level to run on
+each group. As with the top level clause on a contract, this is normally a composite clause that delegates to subclauses.
+
+
class Group : GroupClauseVerifier < State , Commands , Issued < Terms >>(
+ AnyComposition (
+ Redeem (),
+ Move (),
+ Issue ())) {
+ override fun groupStates ( tx : TransactionForContract ): List < TransactionForContract . InOutGroup < State , Issued < Terms >>>
+ = tx . groupStates < State , Issued < Terms >> { it . token }
+}
+
+
+
class Group extends GroupClauseVerifier < State , Commands , State > {
+ public Group () {
+ super ( new AnyComposition <>(
+ new Clauses . Redeem (),
+ new Clauses . Move (),
+ new Clauses . Issue ()
+ ));
+ }
+
+ @NotNull
+ @Override
+ public List < InOutGroup < State , State >> groupStates ( @NotNull TransactionForContract tx ) {
+ return tx . groupStates ( State . class , State :: withoutOwner );
+ }
+}
+
+
+
+
For the CommercialPaper
contract, this is the top level clause for the contract, and is passed directly into
+verifyClause
(see the example code at the top of this tutorial).
+
+
+
Summary
+
In summary the top level contract CommercialPaper
specifies a single grouping clause of type
+CommercialPaper.Clauses.Group
which in turn specifies GroupClause
implementations for each type of command
+(Redeem
, Move
and Issue
). This reflects the flow of verification: In order to verify a CommercialPaper
+we first group states, check which commands are specified, and run command-specific verification logic accordingly.
+
+
+
Debugging
+
Debugging clauses which have been composed together can be complicated due to the difficulty in knowing which clauses
+have been matched, whether specific clauses failed to match or passed verification, etc. There is “trace” level
+logging code in the clause verifier which evaluates which clauses will be matched and logs them, before actually
+performing the validation. To enable this, ensure trace level logging is enabled on the Clause
interface.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/docs/build/html/tutorial-contract.html b/docs/build/html/tutorial-contract.html
new file mode 100644
index 0000000000..b4d7e70db1
--- /dev/null
+++ b/docs/build/html/tutorial-contract.html
@@ -0,0 +1,972 @@
+
+
+
+
+
+
+
+
+
+
+ Writing a contract — R3 Corda latest documentation
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ R3 Corda
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Writing a contract
+
This tutorial will take you through how the commercial paper contract works. This uses a simple contract structure of
+everything being in one contract class, while most actual contracts in Corda are broken into clauses (which we’ll
+discuss in the next tutorial). Clauses help reduce tedious boilerplate, but it’s worth understanding how a
+contract is built without them before starting.
+
You can see the full Kotlin version of this contract in the code as CommercialPaperLegacy
. The code in this
+tutorial is available in both Kotlin and Java. You can quickly switch between them to get a feeling for how
+Kotlin syntax works.
+
+
Where to put your code
+
A CorDapp is a collection of contracts, state definitions, protocols and other ways to extend the server. To create
+one you would just create a Java-style project as normal, with your choice of build system (Maven, Gradle, etc).
+Then add a dependency on net.corda.core:0.X
where X is the milestone number you are depending on. The core
+module defines the base classes used in this tutorial.
+
+
+
Starting the commercial paper class
+
A smart contract is a class that implements the Contract
interface. This can be either implemented directly, or
+by subclassing an abstract contract such as OnLedgerAsset
.
+
+
class CommercialPaper : Contract {
+ override val legalContractReference : SecureHash = SecureHash . sha256 ( "https://en.wikipedia.org/wiki/Commercial_paper" );
+
+ override fun verify ( tx : TransactionForVerification ) {
+ TODO ()
+ }
+}
+
+
+
public class CommercialPaper implements Contract {
+ @Override
+ public SecureHash getLegalContractReference () {
+ return SecureHash . Companion . sha256 ( "https://en.wikipedia.org/wiki/Commercial_paper" );
+ }
+
+ @Override
+ public void verify ( TransactionForVerification tx ) {
+ throw new UnsupportedOperationException ();
+ }
+}
+
+
+
+
Every contract must have at least a getLegalContractReference()
and a verify()
method. In Kotlin we express
+a getter without a setter as an immutable property (val). The legal contract reference is supposed to be a hash
+of a document that describes the legal contract and may take precedence over the code, in case of a dispute.
+
+
Note
+
The way legal contract prose is bound to a smart contract implementation will change in future.
+
+
The verify method returns nothing. This is intentional: the function either completes correctly, or throws an exception,
+in which case the transaction is rejected.
+
So far, so simple. Now we need to define the commercial paper state , which represents the fact of ownership of a
+piece of issued paper.
+
+
+
States
+
A state is a class that stores data that is checked by the contract.
+
+
data class State (
+ val issuance : PartyAndReference ,
+ override val owner : PublicKey ,
+ val faceValue : Amount < Issued < Currency >>,
+ val maturityDate : Instant
+) : OwnableState {
+ override val contract = CommercialPaper ()
+ override val participants = listOf ( owner )
+
+ fun withoutOwner () = copy ( owner = NullPublicKey )
+ override fun withNewOwner ( newOwner : PublicKey ) = Pair ( Commands . Move (), copy ( owner = newOwner ))
+}
+
+
+
public static class State implements OwnableState {
+ private PartyAndReference issuance ;
+ private PublicKey owner ;
+ private Amount < Issued < Currency >> faceValue ;
+ private Instant maturityDate ;
+
+ public State () {
+ } // For serialization
+
+ public State ( PartyAndReference issuance , PublicKey owner , Amount < Issued < Currency >> faceValue ,
+ Instant maturityDate ) {
+ this . issuance = issuance ;
+ this . owner = owner ;
+ this . faceValue = faceValue ;
+ this . maturityDate = maturityDate ;
+ }
+
+ public State copy () {
+ return new State ( this . issuance , this . owner , this . faceValue , this . maturityDate );
+ }
+
+ @NotNull
+ @Override
+ public Pair < CommandData , OwnableState > withNewOwner ( @NotNull PublicKey newOwner ) {
+ return new Pair <>( new Commands . Move (), new State ( this . issuance , newOwner , this . faceValue , this . maturityDate ));
+ }
+
+ public PartyAndReference getIssuance () {
+ return issuance ;
+ }
+
+ public PublicKey getOwner () {
+ return owner ;
+ }
+
+ public Amount < Issued < Currency >> getFaceValue () {
+ return faceValue ;
+ }
+
+ public Instant getMaturityDate () {
+ return maturityDate ;
+ }
+
+ @NotNull
+ @Override
+ public Contract getContract () {
+ return new JavaCommercialPaper ();
+ }
+
+ @Override
+ public boolean equals ( Object o ) {
+ if ( this == o ) return true ;
+ if ( o == null || getClass () != o . getClass ()) return false ;
+
+ State state = ( State ) o ;
+
+ if ( issuance != null ? ! issuance . equals ( state . issuance ) : state . issuance != null ) return false ;
+ if ( owner != null ? ! owner . equals ( state . owner ) : state . owner != null ) return false ;
+ if ( faceValue != null ? ! faceValue . equals ( state . faceValue ) : state . faceValue != null ) return false ;
+ return !( maturityDate != null ? ! maturityDate . equals ( state . maturityDate ) : state . maturityDate != null );
+ }
+
+ @Override
+ public int hashCode () {
+ int result = issuance != null ? issuance . hashCode () : 0 ;
+ result = 31 * result + ( owner != null ? owner . hashCode () : 0 );
+ result = 31 * result + ( faceValue != null ? faceValue . hashCode () : 0 );
+ result = 31 * result + ( maturityDate != null ? maturityDate . hashCode () : 0 );
+ return result ;
+ }
+
+ @NotNull
+ @Override
+ public List < PublicKey > getParticipants () {
+ return ImmutableList . of ( this . owner );
+ }
+}
+
+
+
+
We define a class that implements the ContractState
interface.
+
The ContractState
interface requires us to provide a getContract
method that returns an instance of the
+contract class itself. In future, this will change to support dynamic loading of contracts with versioning
+and signing constraints, but for now this is how it’s written.
+
We have four fields in our state:
+
+issuance
, a reference to a specific piece of commercial paper issued by some party.
+owner
, the public key of the current owner. This is the same concept as seen in Bitcoin: the public key has no
+attached identity and is expected to be one-time-use for privacy reasons. However, unlike in Bitcoin, we model
+ownership at the level of individual states rather than as a platform-level concept as we envisage many
+(possibly most) contracts on the platform will not represent “owner/issuer” relationships, but “party/party”
+relationships such as a derivative contract.
+faceValue
, an Amount<Issued<Currency>>
, which wraps an integer number of pennies and a currency that is
+specific to some issuer (e.g. a regular bank, a central bank, etc). You can read more about this very common
+type in Data types .
+maturityDate
, an Instant , which is a type
+from the Java 8 standard time library. It defines a point on the timeline.
+
+
States are immutable, and thus the class is defined as immutable as well. The data
modifier in the Kotlin version
+causes the compiler to generate the equals/hashCode/toString methods automatically, along with a copy method that can
+be used to create variants of the original object. Data classes are similar to case classes in Scala, if you are
+familiar with that language. The withoutOwner
method uses the auto-generated copy method to return a version of
+the state with the owner public key blanked out: this will prove useful later.
+
The Java code compiles to almost identical bytecode as the Kotlin version, but as you can see, is much more verbose.
+
+
+
Commands
+
The logic for a contract may vary depending on what stage of a lifecycle it is automating. So it can be useful to
+pass additional data into the contract code that isn’t represented by the states which exist permanently in the ledger.
+
For this purpose we have commands. Often they don’t need to contain any data at all, they just need to exist. A command
+is a piece of data associated with some signatures . By the time the contract runs the signatures have already been
+checked, so from the contract code’s perspective, a command is simply a data structure with a list of attached
+public keys. Each key had a signature proving that the corresponding private key was used to sign. Because of this
+approach contracts never actually interact or work with digital signatures directly.
+
Let’s define a few commands now:
+
+
interface Commands : CommandData {
+ class Move : TypeOnlyCommandData (), Commands
+ class Redeem : TypeOnlyCommandData (), Commands
+ class Issue : TypeOnlyCommandData (), Commands
+}
+
+
+
public static class Commands implements core . contract . Command {
+ public static class Move extends Commands {
+ @Override
+ public boolean equals ( Object obj ) {
+ return obj instanceof Move ;
+ }
+ }
+
+ public static class Redeem extends Commands {
+ @Override
+ public boolean equals ( Object obj ) {
+ return obj instanceof Redeem ;
+ }
+ }
+
+ public static class Issue extends Commands {
+ @Override
+ public boolean equals ( Object obj ) {
+ return obj instanceof Issue ;
+ }
+ }
+}
+
+
+
+
We define a simple grouping interface or static class, this gives us a type that all our commands have in common,
+then we go ahead and create three commands: Move
, Redeem
, Issue
. TypeOnlyCommandData
is a helpful utility
+for the case when there’s no data inside the command; only the existence matters. It defines equals and hashCode
+such that any instances always compare equal and hash to the same value.
+
+
+
The verify function
+
The heart of a smart contract is the code that verifies a set of state transitions (a transaction ). The function is
+simple: it’s given a class representing the transaction, and if the function returns then the transaction is considered
+acceptable. If it throws an exception, the transaction is rejected.
+
Each transaction can have multiple input and output states of different types. The set of contracts to run is decided
+by taking the code references inside each state. Each contract is run only once. As an example, a contract that includes
+2 cash states and 1 commercial paper state as input, and has as output 1 cash state and 1 commercial paper state, will
+run two contracts one time each: Cash and CommercialPaper.
+
+
override fun verify ( tx : TransactionForContract ) {
+ // Group by everything except owner: any modification to the CP at all is considered changing it fundamentally.
+ val groups = tx . groupStates ( State :: withoutOwner )
+
+ // There are two possible things that can be done with this CP. The first is trading it. The second is redeeming
+ // it for cash on or after the maturity date.
+ val command = tx . commands . requireSingleCommand < CommercialPaper . Commands >()
+
+
+
@Override
+public void verify ( TransactionForContract tx ) {
+ List < InOutGroup < State , State >> groups = tx . groupStates ( State . class , State :: withoutOwner );
+ AuthenticatedObject < Command > cmd = requireSingleCommand ( tx . getCommands (), Commands . class );
+
+
+
+
We start by using the groupStates
method, which takes a type and a function. State grouping is a way of ensuring
+your contract can handle multiple unrelated states of the same type in the same transaction, which is needed for
+splitting/merging of assets, atomic swaps and so on. More on this next.
+
The second line does what the code suggests: it searches for a command object that inherits from the
+CommercialPaper.Commands
supertype, and either returns it, or throws an exception if there’s zero or more than one
+such command.
+
+
+
Using state groups
+
The simplest way to write a smart contract would be to say that each transaction can have a single input state and a
+single output state of the kind govered by that contract. This would be easy for the developer, but would prevent many
+important use cases.
+
The next easiest way to write a contract would be to iterate over each input state and expect it to have an output
+state. Now you can build a single transaction that, for instance, moves two different cash states in different currencies
+simultaneously. But it gets complicated when you want to issue or exit one state at the same time as moving another.
+
Things get harder still once you want to split and merge states. We say states are fungible if they are
+treated identically to each other by the recipient, despite the fact that they aren’t quite identical. Dollar bills are
+fungible because even though one may be worn/a bit dirty and another may be crisp and new, they are still both worth
+exactly $1. Likewise, ten $1 bills are almost exactly equivalent to one $10 bill. On the other hand, $10 and £10 are not
+fungible: if you tried to pay for something that cost £20 with $10+£10 notes your trade would not be accepted.
+
To make all this easier the contract API provides a notion of groups. A group is a set of input states and output states
+that should be checked for validity together.
+
Consider the following simplified currency trade transaction:
+
+Input : $12,000 owned by Alice (A)
+Input : $3,000 owned by Alice (A)
+Input : £10,000 owned by Bob (B)
+Output : £10,000 owned by Alice (B)
+Output : $15,000 owned by Bob (A)
+
+
In this transaction Alice and Bob are trading $15,000 for £10,000. Alice has her money in the form of two different
+inputs e.g. because she received the dollars in two payments. The input and output amounts do balance correctly, but
+the cash smart contract must consider the pounds and the dollars separately because they are not fungible: they cannot
+be merged together. So we have two groups: A and B.
+
The TransactionForContract.groupStates
method handles this logic for us: firstly, it selects only states of the
+given type (as the transaction may include other types of state, such as states representing bond ownership, or a
+multi-sig state) and then it takes a function that maps a state to a grouping key. All states that share the same key are
+grouped together. In the case of the cash example above, the grouping key would be the currency.
+
In this kind of contract we don’t want CP to be fungible: merging and splitting is (in our example) not allowed.
+So we just use a copy of the state minus the owner field as the grouping key.
+
Here are some code examples:
+
+
// Type of groups is List<InOutGroup<State, Pair<PartyReference, Currency>>>
+val groups = tx.groupStates() { it: Cash.State -> Pair(it.deposit, it.amount.currency) }
+for ((inputs, outputs, key) in groups) {
+ // Either inputs or outputs could be empty.
+ val (deposit, currency) = key
+
+ ...
+}
+
+
+
List < InOutGroup < State , Pair < PartyReference , Currency >>> groups = tx . groupStates ( Cash . State . class , s -> Pair ( s . deposit , s . amount . currency ))
+for ( InOutGroup < State , Pair < PartyReference , Currency >> group : groups ) {
+ List < State > inputs = group . getInputs ();
+ List < State > outputs = group . getOutputs ();
+ Pair < PartyReference , Currency > key = group . getKey ();
+
+ ...
+}
+
+
+
+
The groupStates
call uses the provided function to calculate a “grouping key”. All states that have the same
+grouping key are placed in the same group. A grouping key can be anything that implements equals/hashCode, but it’s
+always an aggregate of the fields that shouldn’t change between input and output. In the above example we picked the
+fields we wanted and packed them into a Pair
. It returns a list of InOutGroup
, which is just a holder for the
+inputs, outputs and the key that was used to define the group. In the Kotlin version we unpack these using destructuring
+to get convenient access to the inputs, the outputs, the deposit data and the currency. The Java version is more
+verbose, but equivalent.
+
The rules can then be applied to the inputs and outputs as if it were a single transaction. A group may have zero
+inputs or zero outputs: this can occur when issuing assets onto the ledger, or removing them.
+
In this example, we do it differently and use the state class itself as the aggregator. We just
+blank out fields that are allowed to change, making the grouping key be “everything that isn’t that”:
+
+
val groups = tx . groupStates () { it : State -> it . withoutOwner () }
+
+
+
List < InOutGroup < State , State >> groups = tx . groupStates ( State . class , State :: withoutOwner );
+
+
+
+
For large states with many fields that must remain constant and only one or two that are really mutable, it’s often
+easier to do things this way than to specifically name each field that must stay the same. The withoutOwner
function
+here simply returns a copy of the object but with the owner
field set to NullPublicKey
, which is just a public key
+of all zeros. It’s invalid and useless, but that’s OK, because all we’re doing is preventing the field from mattering
+in equals and hashCode.
+
+
+
Checking the requirements
+
After extracting the command and the groups, we then iterate over each group and verify it meets the required business
+logic.
+
+
val timestamp : Timestamp ? = tx . timestamp
+
+for (( inputs , outputs , key ) in groups ) {
+ when ( command . value ) {
+ is Commands . Move -> {
+ val input = inputs . single ()
+ requireThat {
+ "the transaction is signed by the owner of the CP" by ( input . owner in command . signers )
+ "the state is propagated" by ( group . outputs . size == 1 )
+ // Don't need to check anything else, as if outputs.size == 1 then the output is equal to
+ // the input ignoring the owner field due to the grouping.
+ }
+ }
+
+ is Commands . Redeem -> {
+ // Redemption of the paper requires movement of on-ledger cash.
+ val input = inputs . single ()
+ val received = tx . outputs . sumCashBy ( input . owner )
+ val time = timestamp ?. after ?: throw IllegalArgumentException ( "Redemptions must be timestamped" )
+ requireThat {
+ "the paper must have matured" by ( time >= input . maturityDate )
+ "the received amount equals the face value" by ( received == input . faceValue )
+ "the paper must be destroyed" by outputs . isEmpty ()
+ "the transaction is signed by the owner of the CP" by ( input . owner in command . signers )
+ }
+ }
+
+ is Commands . Issue -> {
+ val output = outputs . single ()
+ val time = timestamp ?. before ?: throw IllegalArgumentException ( "Issuances must be timestamped" )
+ requireThat {
+ // Don't allow people to issue commercial paper under other entities identities.
+ "output states are issued by a command signer" by ( output . issuance . party . owningKey in command . signers )
+ "output values sum to more than the inputs" by ( output . faceValue . quantity > 0 )
+ "the maturity date is not in the past" by ( time < output . maturityDate )
+ // Don't allow an existing CP state to be replaced by this issuance.
+ "can't reissue an existing state" by inputs . isEmpty ()
+ }
+ }
+
+ else -> throw IllegalArgumentException ( "Unrecognised command" )
+ }
+}
+
+
+
Timestamp time = tx . getTimestamp (); // Can be null/missing.
+for ( InOutGroup < State > group : groups ) {
+ List < State > inputs = group . getInputs ();
+ List < State > outputs = group . getOutputs ();
+
+ // For now do not allow multiple pieces of CP to trade in a single transaction. Study this more!
+ State input = single ( filterIsInstance ( inputs , State . class ));
+
+ checkState ( cmd . getSigners (). contains ( input . getOwner ()), "the transaction is signed by the owner of the CP" );
+
+ if ( cmd . getValue () instanceof JavaCommercialPaper . Commands . Move ) {
+ checkState ( outputs . size () == 1 , "the state is propagated" );
+ // Don't need to check anything else, as if outputs.size == 1 then the output is equal to
+ // the input ignoring the owner field due to the grouping.
+ } else if ( cmd . getValue () instanceof JavaCommercialPaper . Commands . Redeem ) {
+ checkNotNull ( timem "must be timestamped" );
+ Instant t = time . getBefore ();
+ Amount < Issued < Currency >> received = CashKt . sumCashBy ( tx . getOutputs (), input . getOwner ());
+
+ checkState ( received . equals ( input . getFaceValue ()), "received amount equals the face value" );
+ checkState ( t . isBefore ( input . getMaturityDate (), "the paper must have matured" );
+ checkState ( outputs . isEmpty (), "the paper must be destroyed" );
+ } else if ( cmd . getValue () instanceof JavaCommercialPaper . Commands . Issue ) {
+ // .. etc .. (see Kotlin for full definition)
+ }
+}
+
+
+
+
This loop is the core logic of the contract.
+
The first line simply gets the timestamp out of the transaction. Timestamping of transactions is optional, so a time
+may be missing here. We check for it being null later.
+
+
Note
+
In future timestamping may be mandatory for all transactions.
+
+
+
Warning
+
In the Kotlin version as long as we write a comparison with the transaction time first the compiler will
+verify we didn’t forget to check if it’s missing. Unfortunately due to the need for smooth Java interop, this
+check won’t happen if we write e.g. someDate > time
, it has to be time < someDate
. So it’s good practice to
+always write the transaction timestamp first.
+
+
The first line (first three lines in Java) impose a requirement that there be a single piece of commercial paper in
+this group. We do not allow multiple units of CP to be split or merged even if they are owned by the same owner. The
+single()
method is a static extension method defined by the Kotlin standard library: given a list, it throws an
+exception if the list size is not 1, otherwise it returns the single item in that list. In Java, this appears as a
+regular static method of the type familiar from many FooUtils type singleton classes and we have statically imported it
+here. In Kotlin, it appears as a method that can be called on any JDK list. The syntax is slightly different but
+behind the scenes, the code compiles to the same bytecodes.
+
Next, we check that the transaction was signed by the public key that’s marked as the current owner of the commercial
+paper. Because the platform has already verified all the digital signatures before the contract begins execution,
+all we have to do is verify that the owner’s public key was one of the keys that signed the transaction. The Java code
+is straightforward: we are simply using the Preconditions.checkState
method from Guava. The Kotlin version looks a little odd: we have a requireThat construct that looks like it’s
+built into the language. In fact requireThat is an ordinary function provided by the platform’s contract API. Kotlin
+supports the creation of domain specific languages through the intersection of several features of the language, and
+we use it here to support the natural listing of requirements. To see what it compiles down to, look at the Java version.
+Each "string" by (expression)
statement inside a requireThat
turns into an assertion that the given expression is
+true, with an IllegalStateException
being thrown that contains the string if not. It’s just another way to write out a regular
+assertion, but with the English-language requirement being put front and center.
+
Next, we take one of two paths, depending on what the type of the command object is.
+
If the command is a Move
command, then we simply verify that the output state is actually present: a move is not
+allowed to delete the CP from the ledger. The grouping logic already ensured that the details are identical and haven’t
+been changed, save for the public key of the owner.
+
If the command is a Redeem
command, then the requirements are more complex:
+
+We want to see that the face value of the CP is being moved as a cash claim against some party, that is, the
+issuer of the CP is really paying back the face value.
+The transaction must be happening after the maturity date.
+The commercial paper must not be propagated by this transaction: it must be deleted, by the group having no
+output state. This prevents the same CP being considered redeemable multiple times.
+
+
To calculate how much cash is moving, we use the sumCashBy
utility function. Again, this is an extension function,
+so in Kotlin code it appears as if it was a method on the List<Cash.State>
type even though JDK provides no such
+method. In Java we see its true nature: it is actually a static method named CashKt.sumCashBy
. This method simply
+returns an Amount
object containing the sum of all the cash states in the transaction outputs that are owned by
+that given public key, or throws an exception if there were no such states or if there were different currencies
+represented in the outputs! So we can see that this contract imposes a limitation on the structure of a redemption
+transaction: you are not allowed to move currencies in the same transaction that the CP does not involve. This
+limitation could be addressed with better APIs, if it were to be a real limitation.
+
Finally, we support an Issue
command, to create new instances of commercial paper on the ledger. It likewise
+enforces various invariants upon the issuance.
+
This contract is simple and does not implement all the business logic a real commercial paper lifecycle
+management program would. For instance, there is no logic requiring a signature from the issuer for redemption:
+it is assumed that any transfer of money that takes place at the same time as redemption is good enough. Perhaps
+that is something that should be tightened. Likewise, there is no logic handling what happens if the issuer has gone
+bankrupt, if there is a dispute, and so on.
+
As the prototype evolves, these requirements will be explored and this tutorial updated to reflect improvements in the
+contracts API.
+
+
+
How to test your contract
+
Of course, it is essential to unit test your new nugget of business logic to ensure that it behaves as you expect.
+As contract code is just a regular Java function you could write out the logic entirely by hand in the usual
+manner. But this would be inconvenient, and then you’d get bored of writing tests and that would be bad: you
+might be tempted to skip a few.
+
To make contract testing more convenient Corda provides a language-like API for both Kotlin and Java that lets
+you easily construct chains of transactions and verify that they either pass validation, or fail with a particular
+error message.
+
Testing contracts with this domain specific language is covered in the separate tutorial, Writing a contract test .
+
+
+
Adding a generation API to your contract
+
Contract classes must provide a verify function, but they may optionally also provide helper functions to simplify
+their usage. A simple class of functions most contracts provide are generation functions , which either create or
+modify a transaction to perform certain actions (an action is normally mappable 1:1 to a command, but doesn’t have to
+be so).
+
Generation may involve complex logic. For example, the cash contract has a generateSpend
method that is given a set of
+cash states and chooses a way to combine them together to satisfy the amount of money that is being sent. In the
+immutable-state model that we are using ledger entries (states) can only be created and deleted, but never modified.
+Therefore to send $1200 when we have only $900 and $500 requires combining both states together, and then creating
+two new output states of $1200 and $200 back to ourselves. This latter state is called the change and is a concept
+that should be familiar to anyone who has worked with Bitcoin.
+
As another example, we can imagine code that implements a netting algorithm may generate complex transactions that must
+be signed by many people. Whilst such code might be too big for a single utility method (it’d probably be sized more
+like a module), the basic concept is the same: preparation of a transaction using complex logic.
+
For our commercial paper contract however, the things that can be done with it are quite simple. Let’s start with
+a method to wrap up the issuance process:
+
+
fun generateIssue ( issuance : PartyAndReference , faceValue : Amount < Issued < Currency >>, maturityDate : Instant ,
+ notary : Party ): TransactionBuilder {
+ val state = State ( issuance , issuance . party . owningKey , faceValue , maturityDate )
+ return TransactionBuilder ( notary = notary ). withItems ( state , Command ( Commands . Issue (), issuance . party . owningKey ))
+}
+
+
+
+
We take a reference that points to the issuing party (i.e. the caller) and which can contain any internal
+bookkeeping/reference numbers that we may require. The reference field is an ideal place to put (for example) a
+join key. Then the face value of the paper, and the maturity date. It returns a TransactionBuilder
.
+A TransactionBuilder
is one of the few mutable classes the platform provides. It allows you to add inputs,
+outputs and commands to it and is designed to be passed around, potentially between multiple contracts.
+
+
Note
+
Generation methods should ideally be written to compose with each other, that is, they should take a
+TransactionBuilder
as an argument instead of returning one, unless you are sure it doesn’t make sense to
+combine this type of transaction with others. In this case, issuing CP at the same time as doing other things
+would just introduce complexity that isn’t likely to be worth it, so we return a fresh object each time: instead,
+an issuer should issue the CP (starting out owned by themselves), and then sell it in a separate transaction.
+
+
The function we define creates a CommercialPaper.State
object that mostly just uses the arguments we were given,
+but it fills out the owner field of the state to be the same public key as the issuing party.
+
The returned partial transaction has a Command
object as a parameter. This is a container for any object
+that implements the CommandData
interface, along with a list of keys that are expected to sign this transaction. In this case,
+issuance requires that the issuing party sign, so we put the key of the party there.
+
The TransactionBuilder
has a convenience withItems
method that takes a variable argument list. You can pass in
+any StateAndRef
(input), ContractState
(output) or Command
objects and it’ll build up the transaction
+for you.
+
There’s one final thing to be aware of: we ask the caller to select a notary that controls this state and
+prevents it from being double spent. You can learn more about this topic in the Consensus model article.
+
+
Note
+
For now, don’t worry about how to pick a notary. More infrastructure will come later to automate this
+decision for you.
+
+
What about moving the paper, i.e. reassigning ownership to someone else?
+
+
fun generateMove ( tx : TransactionBuilder , paper : StateAndRef < State >, newOwner : PublicKey ) {
+ tx . addInputState ( paper )
+ tx . addOutputState ( paper . state . data . withOwner ( newOwner ))
+ tx . addCommand ( Command ( Commands . Move (), paper . state . data . owner ))
+}
+
+
+
+
Here, the method takes a pre-existing TransactionBuilder
and adds to it. This is correct because typically
+you will want to combine a sale of CP atomically with the movement of some other asset, such as cash. So both
+generate methods should operate on the same transaction. You can see an example of this being done in the unit tests
+for the commercial paper contract.
+
The paper is given to us as a StateAndRef<CommercialPaper.State>
object. This is exactly what it sounds like:
+a small object that has a (copy of) a state object, and also the (txhash, index) that indicates the location of this
+state on the ledger.
+
We add the existing paper state as an input, the same paper state with the owner field adjusted as an output,
+and finally a move command that has the old owner’s public key: this is what forces the current owner’s signature
+to be present on the transaction, and is what’s checked by the contract.
+
Finally, we can do redemption.
+
+
@Throws ( InsufficientBalanceException :: class )
+fun generateRedeem ( tx : TransactionBuilder , paper : StateAndRef < State >, wallet : Wallet ) {
+ // Add the cash movement using the states in our wallet.
+ Cash (). generateSpend ( tx , paper . state . data . faceValue . withoutIssuer (), paper . state . data . owner , wallet . statesOfType < Cash . State >())
+ tx . addInputState ( paper )
+ tx . addCommand ( Command ( Commands . Redeem (), paper . state . data . owner ))
+}
+
+
+
+
Here we can see an example of composing contracts together. When an owner wishes to redeem the commercial paper, the
+issuer (i.e. the caller) must gather cash from its wallet and send the face value to the owner of the paper.
+
+
Note
+
This contract has no explicit concept of rollover.
+
+
The wallet is a concept that may be familiar from Bitcoin and Ethereum. It is simply a set of states (such as cash) that are
+owned by the caller. Here, we use the wallet to update the partial transaction we are handed with a movement of cash
+from the issuer of the commercial paper to the current owner. If we don’t have enough quantity of cash in our wallet,
+an exception is thrown. Then we add the paper itself as an input, but, not an output (as we wish to remove it
+from the ledger). Finally, we add a Redeem command that should be signed by the owner of the commercial paper.
+
+
Warning
+
The amount we pass to the generateSpend
function has to be treated first with withoutIssuer
.
+This reflects the fact that the way we handle issuer constraints is still evolving; the commercial paper
+contract requires payment in the form of a currency issued by a specific party (e.g. the central bank,
+or the issuers own bank perhaps). But the wallet wants to assemble spend transactions using cash states from
+any issuer, thus we must strip it here. This represents a design mismatch that we will resolve in future
+versions with a more complete way to express issuer constraints.
+
+
A TransactionBuilder
is not by itself ready to be used anywhere, so first, we must convert it to something that
+is recognised by the network. The most important next step is for the participating entities to sign it using the
+signWith()
method. This takes a keypair, serialises the transaction, signs the serialised form and then stores the
+signature inside the TransactionBuilder
. Once all parties have signed, you can call TransactionBuilder.toSignedTransaction()
+to get a SignedTransaction
object.
+
You can see how transactions flow through the different stages of construction by examining the commercial paper
+unit tests.
+
+
+
How multi-party transactions are constructed and transmitted
+
OK, so now we know how to define the rules of the ledger, and we know how to construct transactions that satisfy
+those rules ... and if all we were doing was maintaining our own data that might be enough. But we aren’t: Corda
+is about keeping many different parties all in sync with each other.
+
In a classical blockchain system all data is transmitted to everyone and if you want to do something fancy, like
+a multi-party transaction, you’re on your own. In Corda data is transmitted only to parties that need it and
+multi-party transactions are a way of life, so we provide lots of support for managing them.
+
You can learn how transactions are moved between peers and taken through the build-sign-notarise-broadcast
+process in a separate tutorial, Protocol state machines .
+
+
+
Non-asset-oriented smart contracts
+
Although this tutorial covers how to implement an owned asset, there is no requirement that states and code contracts
+must be concerned with ownership of an asset. It is better to think of states as representing useful facts about the
+world, and (code) contracts as imposing logical relations on how facts combine to produce new facts. Alternatively
+you can imagine that states are like rows in a relational database and contracts are like stored procedures and
+relational constraints.
+
When writing a contract that handles deal-like entities rather than asset-like entities, you may wish to refer
+to “Interest Rate Swaps ” and the accompanying source code. Whilst all the concepts are the same, deals are
+typically not splittable or mergeable and thus you don’t have to worry much about grouping of states.
+
+
+
Making things happen at a particular time
+
It would be nice if you could program your node to automatically redeem your commercial paper as soon as it matures.
+Corda provides a way for states to advertise scheduled events that should occur in future. Whilst this information
+is by default ignored, if the corresponding Cordapp is installed and active in your node, and if the state is
+considered relevant by your wallet (e.g. because you own it), then the node can automatically begin the process
+of creating a transaction and taking it through the life cycle. You can learn more about this in the article
+“Event scheduling ”.
+
+
+
Encumbrances
+
All contract states may be encumbered by up to one other state, which we call an encumbrance .
+
The encumbrance state, if present, forces additional controls over the encumbered state, since the encumbrance state contract
+will also be verified during the execution of the transaction. For example, a contract state could be encumbered
+with a time-lock contract state; the state is then only processable in a transaction that verifies that the time
+specified in the encumbrance time-lock has passed.
+
The encumbered state refers to its encumbrance by index, and the referred encumbrance state
+is an output state in a particular position on the same transaction that created the encumbered state. Note that an
+encumbered state that is being consumed must have its encumbrance consumed in the same transaction, otherwise the
+transaction is not valid.
+
The encumbrance reference is optional in the ContractState
interface:
+
+
val encumbrance : Int ? get () = null
+
+
+
@Nullable
+@Override
+public Integer getEncumbrance () {
+ return null ;
+}
+
+
+
+
The time-lock contract mentioned above can be implemented very simply:
+
+
class TestTimeLock : Contract {
+ ...
+ override fun verify ( tx : TransactionForContract ) {
+ val time = tx . timestamp . before ?: throw IllegalStateException (...)
+ ...
+ requireThat {
+ "the time specified in the time-lock has passed" by
+ ( time >= tx . inputs . filterIsInstance < TestTimeLock . State >(). single (). validFrom )
+ }
+ }
+ ...
+}
+
+
+
+
We can then set up an encumbered state:
+
+
val encumberedState = Cash.State(amount = 1000.DOLLARS `issued by` defaultIssuer, owner = DUMMY_PUBKEY_1, encumbrance = 1)
+val fourPmTimelock = TestTimeLock.State(Instant.parse("2015-04-17T16:00:00.00Z"))
+
+
+
+
When we construct a transaction that generates the encumbered state, we must place the encumbrance in the corresponding output
+position of that transaction. And when we subsequently consume that encumbered state, the same encumbrance state must be
+available somewhere within the input set of states.
+
In future, we will consider the concept of a covenant . This is where the encumbrance travels alongside each iteration of
+the encumbered state. For example, a cash state may be encumbered with a domicile encumbrance, which checks the domicile of
+the identity of the owner that the cash state is being moved to, in order to uphold sanction screening regulations, and prevent
+cash being paid to parties domiciled in e.g. North Korea. In this case, the encumbrance should be permanently attached to
+the all future cash states stemming from this one.
+
We will also consider marking states that are capable of being encumbrances as such. This will prevent states being used
+as encumbrances inadvertently. For example, the time-lock above would be usable as an encumbrance, but it makes no sense to
+be able to encumber a cash state with another one.
+
+
+
Clauses
+
It is typical for slightly different contracts to have lots of common logic that can be shared. For example, the
+concept of being issued, being exited and being upgraded are all usually required in any contract. Corda calls these
+frequently needed chunks of logic “clauses”, and they can simplify development considerably.
+
Clauses and how to use them are addressed in the next tutorial, “Writing a contract using clauses ”.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/docs/build/html/tutorial-test-dsl.html b/docs/build/html/tutorial-test-dsl.html
new file mode 100644
index 0000000000..1d6e527e5f
--- /dev/null
+++ b/docs/build/html/tutorial-test-dsl.html
@@ -0,0 +1,765 @@
+
+
+
+
+
+
+
+
+
+
+ Writing a contract test — R3 Corda latest documentation
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ R3 Corda
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Writing a contract test
+
This tutorial will take you through the steps required to write a contract test using Kotlin and/or Java.
+
The testing DSL allows one to define a piece of the ledger with transactions referring to each other, and ways of
+verifying their correctness.
+
+
Testing single transactions
+
We start with the empty ledger:
+
+
@Test
+fun emptyLedger () {
+ ledger {
+ }
+}
+
+
+
import static net . corda . core . testing . JavaTestHelpers .*;
+import static net . corda . core . contracts . JavaTestHelpers .*;
+
+@Test
+public void emptyLedger () {
+ ledger ( l -> {
+ return Unit . INSTANCE ; // We need to return this explicitly
+ });
+}
+
+
+
+
The DSL keyword ledger
takes a closure that can build up several transactions and may verify their overall
+correctness. A ledger is effectively a fresh world with no pre-existing transactions or services within it.
+
Let’s add a Cash transaction:
+
+
@Test
+fun simpleCashDoesntCompile() {
+ val inState = Cash.State(
+ amount = 1000.DOLLARS `issued by` DUMMY_CASH_ISSUER,
+ owner = DUMMY_PUBKEY_1
+ )
+ ledger {
+ transaction {
+ input(inState)
+ }
+ }
+}
+
+
+
@Test
+public void simpleCashDoesntCompile () {
+ Cash . State inState = new Cash . State (
+ issuedBy ( DOLLARS ( 1000 ), getDUMMY_CASH_ISSUER ()),
+ getDUMMY_PUBKEY_1 ()
+ );
+ ledger ( l -> {
+ l . transaction ( tx -> {
+ tx . input ( inState );
+ });
+ return Unit . INSTANCE ;
+ });
+}
+
+
+
+
We can add a transaction to the ledger using the transaction
primitive. The transaction in turn may be defined by
+specifying input
-s, output
-s, command
-s and attachment
-s.
+
The above input
call is a bit special: Transactions don’t actually contain input states, just references
+to output states of other transactions. Under the hood the above input
call creates a dummy transaction in the
+ledger (that won’t be verified) which outputs the specified state, and references that from this transaction.
+
The above code however doesn’t compile:
+
+
Error :( 26 , 21 ) Kotlin : Type mismatch : inferred type is Unit but EnforceVerifyOrFail was expected
+
+
+
Error: ( 26 , 31 ) java : incompatible types : bad return type in lambda expression missing return value
+
+
+
+
This is deliberate: The DSL forces us to specify either this.verifies()
or this `fails with` "some text"
on the
+last line of transaction
:
+
+
@Test
+fun simpleCash() {
+ val inState = Cash.State(
+ amount = 1000.DOLLARS `issued by` MEGA_CORP.ref(1, 1),
+ owner = DUMMY_PUBKEY_1
+ )
+ ledger {
+ transaction {
+ input(inState)
+ this.verifies()
+ }
+ }
+}
+
+
+
@Test
+public void simpleCash () {
+ Cash . State inState = new Cash . State (
+ issuedBy ( DOLLARS ( 1000 ), getMEGA_CORP (). ref (( byte ) 1 , ( byte ) 1 )),
+ getDUMMY_PUBKEY_1 ()
+ );
+ ledger ( l -> {
+ l . transaction ( tx -> {
+ tx . input ( inState );
+ return tx . verifies ();
+ });
+ return Unit . INSTANCE ;
+ });
+}
+
+
+
+
The code finally compiles. When run, it produces the following error:
+
net.corda.core.contracts.TransactionVerificationException$ContractRejection: java.lang.IllegalArgumentException: Failed requirement: for deposit [01] at issuer Snake Oil Issuer the amounts balance
+
+
+
+
Note
+
The reference here to the ‘Snake Oil Issuer’ is because we are using the pre-canned DUMMY_CASH_ISSUER
+identity as the issuer of our cash.
+
+
The transaction verification failed, because the sum of inputs does not equal the sum of outputs. We can specify that
+this is intended behaviour by changing this.verifies()
to this `fails with` "the amounts balance"
:
+
+
@Test
+fun simpleCashFailsWith() {
+ val inState = Cash.State(
+ amount = 1000.DOLLARS `issued by` MEGA_CORP.ref(1, 1),
+ owner = DUMMY_PUBKEY_1
+ )
+ ledger {
+ transaction {
+ input(inState)
+ this `fails with` "the amounts balance"
+ }
+ }
+}
+
+
+
@Test
+public void simpleCashFailsWith () {
+ Cash . State inState = new Cash . State (
+ issuedBy ( DOLLARS ( 1000 ), getMEGA_CORP (). ref (( byte ) 1 , ( byte ) 1 )),
+ getDUMMY_PUBKEY_1 ()
+ );
+ ledger ( l -> {
+ l . transaction ( tx -> {
+ tx . input ( inState );
+ return tx . failsWith ( "the amounts balance" );
+ });
+ return Unit . INSTANCE ;
+ });
+}
+
+
+
+
We can continue to build the transaction until it verifies
:
+
+
@Test
+fun simpleCashSuccess() {
+ val inState = Cash.State(
+ amount = 1000.DOLLARS `issued by` MEGA_CORP.ref(1, 1),
+ owner = DUMMY_PUBKEY_1
+ )
+ ledger {
+ transaction {
+ input(inState)
+ this `fails with` "the amounts balance"
+ output(inState.copy(owner = DUMMY_PUBKEY_2))
+ command(DUMMY_PUBKEY_1) { Cash.Commands.Move() }
+ this.verifies()
+ }
+ }
+}
+
+
+
@Test
+public void simpleCashSuccess () {
+ Cash . State inState = new Cash . State (
+ issuedBy ( DOLLARS ( 1000 ), getMEGA_CORP (). ref (( byte ) 1 , ( byte ) 1 )),
+ getDUMMY_PUBKEY_1 ()
+ );
+ ledger ( l -> {
+ l . transaction ( tx -> {
+ tx . input ( inState );
+ tx . failsWith ( "the amounts balance" );
+ tx . output ( inState . copy ( inState . getAmount (), getDUMMY_PUBKEY_2 ()));
+ tx . command ( getDUMMY_PUBKEY_1 (), new Cash . Commands . Move ());
+ return tx . verifies ();
+ });
+ return Unit . INSTANCE ;
+ });
+}
+
+
+
+
output
specifies that we want the input state to be transferred to DUMMY_PUBKEY_2
and command
adds the
+Move
command itself, signed by the current owner of the input state, DUMMY_PUBKEY_1
.
+
We constructed a complete signed cash transaction from DUMMY_PUBKEY_1
to DUMMY_PUBKEY_2
and verified it. Note
+how we left in the fails with
line - this is fine, the failure will be tested on the partially constructed
+transaction.
+
What should we do if we wanted to test what happens when the wrong party signs the transaction? If we simply add a
+command
it will ruin the transaction for good... Enter tweak
:
+
+
@Test
+fun simpleCashTweakSuccess() {
+ val inState = Cash.State(
+ amount = 1000.DOLLARS `issued by` MEGA_CORP.ref(1, 1),
+ owner = DUMMY_PUBKEY_1
+ )
+ ledger {
+ transaction {
+ input(inState)
+ this `fails with` "the amounts balance"
+ output(inState.copy(owner = DUMMY_PUBKEY_2))
+
+ tweak {
+ command(DUMMY_PUBKEY_2) { Cash.Commands.Move() }
+ this `fails with` "the owning keys are the same as the signing keys"
+ }
+
+ command(DUMMY_PUBKEY_1) { Cash.Commands.Move() }
+ this.verifies()
+ }
+ }
+}
+
+
+
@Test
+public void simpleCashTweakSuccess () {
+ Cash . State inState = new Cash . State (
+ issuedBy ( DOLLARS ( 1000 ), getMEGA_CORP (). ref (( byte ) 1 , ( byte ) 1 )),
+ getDUMMY_PUBKEY_1 ()
+ );
+ ledger ( l -> {
+ l . transaction ( tx -> {
+ tx . input ( inState );
+ tx . failsWith ( "the amounts balance" );
+ tx . output ( inState . copy ( inState . getAmount (), getDUMMY_PUBKEY_2 ()));
+
+ tx . tweak ( tw -> {
+ tw . command ( getDUMMY_PUBKEY_2 (), new Cash . Commands . Move ());
+ return tw . failsWith ( "the owning keys are the same as the signing keys" );
+ });
+ tx . command ( getDUMMY_PUBKEY_1 (), new Cash . Commands . Move ());
+ return tx . verifies ();
+ });
+ return Unit . INSTANCE ;
+ });
+}
+
+
+
+
tweak
creates a local copy of the transaction. This allows the local “ruining” of the transaction allowing testing
+of different error conditions.
+
We now have a neat little test that tests a single transaction. This is already useful, and in fact testing of a single
+transaction in this way is very common. There is even a shorthand toplevel transaction
primitive that creates a
+ledger with a single transaction:
+
+
@Test
+fun simpleCashTweakSuccessTopLevelTransaction() {
+ val inState = Cash.State(
+ amount = 1000.DOLLARS `issued by` MEGA_CORP.ref(1, 1),
+ owner = DUMMY_PUBKEY_1
+ )
+ transaction {
+ input(inState)
+ this `fails with` "the amounts balance"
+ output(inState.copy(owner = DUMMY_PUBKEY_2))
+
+ tweak {
+ command(DUMMY_PUBKEY_2) { Cash.Commands.Move() }
+ this `fails with` "the owning keys are the same as the signing keys"
+ }
+
+ command(DUMMY_PUBKEY_1) { Cash.Commands.Move() }
+ this.verifies()
+ }
+}
+
+
+
@Test
+public void simpleCashTweakSuccessTopLevelTransaction () {
+ Cash . State inState = new Cash . State (
+ issuedBy ( DOLLARS ( 1000 ), getMEGA_CORP (). ref (( byte ) 1 , ( byte ) 1 )),
+ getDUMMY_PUBKEY_1 ()
+ );
+ transaction ( tx -> {
+ tx . input ( inState );
+ tx . failsWith ( "the amounts balance" );
+ tx . output ( inState . copy ( inState . getAmount (), getDUMMY_PUBKEY_2 ()));
+
+ tx . tweak ( tw -> {
+ tw . command ( getDUMMY_PUBKEY_2 (), new Cash . Commands . Move ());
+ return tw . failsWith ( "the owning keys are the same as the signing keys" );
+ });
+ tx . command ( getDUMMY_PUBKEY_1 (), new Cash . Commands . Move ());
+ return tx . verifies ();
+ });
+}
+
+
+
+
+
+
Chaining transactions
+
Now that we know how to define a single transaction, let’s look at how to define a chain of them:
+
+
@Test
+fun chainCash() {
+ ledger {
+ unverifiedTransaction {
+ output("MEGA_CORP cash") {
+ Cash.State(
+ amount = 1000.DOLLARS `issued by` MEGA_CORP.ref(1, 1),
+ owner = MEGA_CORP_PUBKEY
+ )
+ }
+ }
+
+ transaction {
+ input("MEGA_CORP cash")
+ output("MEGA_CORP cash".output<Cash.State>().copy(owner = DUMMY_PUBKEY_1))
+ command(MEGA_CORP_PUBKEY) { Cash.Commands.Move() }
+ this.verifies()
+ }
+ }
+}
+
+
+
@Test
+public void chainCash () {
+ ledger ( l -> {
+ l . unverifiedTransaction ( tx -> {
+ tx . output ( "MEGA_CORP cash" ,
+ new Cash . State (
+ issuedBy ( DOLLARS ( 1000 ), getMEGA_CORP (). ref (( byte ) 1 , ( byte ) 1 )),
+ getMEGA_CORP_PUBKEY ()
+ )
+ );
+ return Unit . INSTANCE ;
+ });
+
+ l . transaction ( tx -> {
+ tx . input ( "MEGA_CORP cash" );
+ Cash . State inputCash = l . retrieveOutput ( Cash . State . class , "MEGA_CORP cash" );
+ tx . output ( inputCash . copy ( inputCash . getAmount (), getDUMMY_PUBKEY_1 ()));
+ tx . command ( getMEGA_CORP_PUBKEY (), new Cash . Commands . Move ());
+ return tx . verifies ();
+ });
+
+ return Unit . INSTANCE ;
+ });
+}
+
+
+
+
In this example we declare that MEGA_CORP
has a thousand dollars but we don’t care where from, for this we can use
+unverifiedTransaction
. Note how we don’t need to specify this.verifies()
.
+
The output
cash was labelled with "MEGA_CORP cash"
, we can subsequently referred to this other transactions, e.g.
+by input("MEGA_CORP cash")
or "MEGA_CORP cash".output<Cash.State>()
.
+
What happens if we reuse the output cash twice?
+
+
@Test
+fun chainCashDoubleSpend() {
+ ledger {
+ unverifiedTransaction {
+ output("MEGA_CORP cash") {
+ Cash.State(
+ amount = 1000.DOLLARS `issued by` MEGA_CORP.ref(1, 1),
+ owner = MEGA_CORP_PUBKEY
+ )
+ }
+ }
+
+ transaction {
+ input("MEGA_CORP cash")
+ output("MEGA_CORP cash".output<Cash.State>().copy(owner = DUMMY_PUBKEY_1))
+ command(MEGA_CORP_PUBKEY) { Cash.Commands.Move() }
+ this.verifies()
+ }
+
+ transaction {
+ input("MEGA_CORP cash")
+ // We send it to another pubkey so that the transaction is not identical to the previous one
+ output("MEGA_CORP cash".output<Cash.State>().copy(owner = DUMMY_PUBKEY_2))
+ command(MEGA_CORP_PUBKEY) { Cash.Commands.Move() }
+ this.verifies()
+ }
+ }
+}
+
+
+
@Test
+public void chainCashDoubleSpend () {
+ ledger ( l -> {
+ l . unverifiedTransaction ( tx -> {
+ tx . output ( "MEGA_CORP cash" ,
+ new Cash . State (
+ issuedBy ( DOLLARS ( 1000 ), getMEGA_CORP (). ref (( byte ) 1 , ( byte ) 1 )),
+ getMEGA_CORP_PUBKEY ()
+ )
+ );
+ return Unit . INSTANCE ;
+ });
+
+ l . transaction ( tx -> {
+ tx . input ( "MEGA_CORP cash" );
+ Cash . State inputCash = l . retrieveOutput ( Cash . State . class , "MEGA_CORP cash" );
+ tx . output ( inputCash . copy ( inputCash . getAmount (), getDUMMY_PUBKEY_1 ()));
+ tx . command ( getMEGA_CORP_PUBKEY (), new Cash . Commands . Move ());
+ return tx . verifies ();
+ });
+
+ l . transaction ( tx -> {
+ tx . input ( "MEGA_CORP cash" );
+ Cash . State inputCash = l . retrieveOutput ( Cash . State . class , "MEGA_CORP cash" );
+ // We send it to another pubkey so that the transaction is not identical to the previous one
+ tx . output ( inputCash . copy ( inputCash . getAmount (), getDUMMY_PUBKEY_2 ()));
+ tx . command ( getMEGA_CORP_PUBKEY (), new Cash . Commands . Move ());
+ return tx . verifies ();
+ });
+
+ return Unit . INSTANCE ;
+ });
+}
+
+
+
+
The transactions verifies()
individually, however the state was spent twice!
+
We can also verify the complete ledger by calling verifies
/fails
on the ledger level. We can also use
+tweak
to create a local copy of the whole ledger:
+
+
@Test
+fun chainCashDoubleSpendFailsWith() {
+ ledger {
+ unverifiedTransaction {
+ output("MEGA_CORP cash") {
+ Cash.State(
+ amount = 1000.DOLLARS `issued by` MEGA_CORP.ref(1, 1),
+ owner = MEGA_CORP_PUBKEY
+ )
+ }
+ }
+
+ transaction {
+ input("MEGA_CORP cash")
+ output("MEGA_CORP cash".output<Cash.State>().copy(owner = DUMMY_PUBKEY_1))
+ command(MEGA_CORP_PUBKEY) { Cash.Commands.Move() }
+ this.verifies()
+ }
+
+ tweak {
+ transaction {
+ input("MEGA_CORP cash")
+ // We send it to another pubkey so that the transaction is not identical to the previous one
+ output("MEGA_CORP cash".output<Cash.State>().copy(owner = DUMMY_PUBKEY_1))
+ command(MEGA_CORP_PUBKEY) { Cash.Commands.Move() }
+ this.verifies()
+ }
+ this.fails()
+ }
+
+ this.verifies()
+ }
+}
+
+
+
@Test
+public void chainCashDoubleSpendFailsWith () {
+ ledger ( l -> {
+ l . unverifiedTransaction ( tx -> {
+ tx . output ( "MEGA_CORP cash" ,
+ new Cash . State (
+ issuedBy ( DOLLARS ( 1000 ), getMEGA_CORP (). ref (( byte ) 1 , ( byte ) 1 )),
+ getMEGA_CORP_PUBKEY ()
+ )
+ );
+ return Unit . INSTANCE ;
+ });
+
+ l . transaction ( tx -> {
+ tx . input ( "MEGA_CORP cash" );
+ Cash . State inputCash = l . retrieveOutput ( Cash . State . class , "MEGA_CORP cash" );
+ tx . output ( inputCash . copy ( inputCash . getAmount (), getDUMMY_PUBKEY_1 ()));
+ tx . command ( getMEGA_CORP_PUBKEY (), new Cash . Commands . Move ());
+ return tx . verifies ();
+ });
+
+ l . tweak ( lw -> {
+ lw . transaction ( tx -> {
+ tx . input ( "MEGA_CORP cash" );
+ Cash . State inputCash = l . retrieveOutput ( Cash . State . class , "MEGA_CORP cash" );
+ // We send it to another pubkey so that the transaction is not identical to the previous one
+ tx . output ( inputCash . copy ( inputCash . getAmount (), getDUMMY_PUBKEY_2 ()));
+ tx . command ( getMEGA_CORP_PUBKEY (), new Cash . Commands . Move ());
+ return tx . verifies ();
+ });
+ lw . fails ();
+ return Unit . INSTANCE ;
+ });
+
+ l . verifies ();
+ return Unit . INSTANCE ;
+ });
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/docs/build/html/where-to-start.html b/docs/build/html/where-to-start.html
new file mode 100644
index 0000000000..c8a6756829
--- /dev/null
+++ b/docs/build/html/where-to-start.html
@@ -0,0 +1,309 @@
+
+
+
+
+
+
+
+
+
+
+ Where to start — R3 Corda latest documentation
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ R3 Corda
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Where to start
+
So you want to start experimenting with Corda. Where do you begin? Although Corda is still very early and missing
+large chunks of important functionality, this article will hopefully put you on the right place.
+
An experiment with Corda is started by picking a scenario and then turning it into a demo . It is important to
+understand that at this stage in its life, Corda does not have a single unified server that loads everything
+dynamically. Instead, Corda provides an object oriented API which is then used by a driver program, with one driver
+per scenario. You can see the existing demo apps in action by Running the demos .
+
In future this design will change and there will be a single server that does everything. But for now, there isn’t.
+
A scenario contains:
+
+A set of participating nodes and their roles.
+Some business process you wish to automate (typically simplified from the real thing).
+The smart contracts and protocols that will automate that process.
+
+
It may also specify a REST/JSON API, but this is optional.
+
Here’s are two example scenarios included in the box:
+
+Bank A wishes to buy some commercial paper in return for cash. Bank B wants to issue and sell some CP to Bank A.
+This is probably the simplest scenario in Corda that still does something interesting. It’s like the buttered
+bread of finance.
+Bank A and Bank B want to enter into an interest rate swap and evolve it through its lifecycle.
+
+
The process of implementing a scenario looks like this:
+
+First of all, design your states and transaction types. Read about the Data model if you aren’t sure what that
+involves.
+Now, create a new file in the finance/src/main directory. You can either any JVM language but we only provide examples
+in Java and Kotlin. The file should define your state classes and your contract class, which will define the
+allowable state transitions. You can learn how these are constructed by reading the “Writing a contract ” tutorial.
+It isn’t enough to just define static data and logic that controls what’s allowed. You must also orchestrate the
+business process. This is the job of the protocol framework. You can learn how to author these by reading
+“Protocol state machines ”.
+Once you have created your states, transactions and protocols, you need a way to demonstrate them (outside of the
+unit tests, of course). This topic is covered below.
+
+
+
The trader demo
+
Until Corda has a unified server that can dynamically load every aspect of an application (i.e. software implementing a scenario),
+we have to do a bit of copy/paste wiring ourselves.
+
The trader demo is a good place to start understanding this, which can be found in src/main/kotlin/demos/TraderDemo.kt
+
The idea of a driver program is that it starts a node in one of several roles, according to a command line flag. The
+driver may step through some pre-programmed scenario automatically or it may register an API to be exported via HTTP.
+You would then have to drive the node externally for your demo.
+
The best way to create your own scenario is not to write a driver from scratch but to copy the existing trader or IRS
+demo drivers and then customise them, as much of the code would end up being shared (like for command line parsing).
+
Things you will want to adjust:
+
+The name of the grouping directory each node role will create its private directory under.
+The demo protocols that just wrap the real business process in some kind of fake trading logic.
+
+
The IRS driver program registers REST APIs, but as this is seriously in flux right now and the APIs will change a lot,
+we do not recommend you try this as part of your initial explorations unless you are feeling adventurous.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file