diff --git a/docs/build/html/api/alltypes/index.html b/docs/build/html/api/alltypes/index.html
new file mode 100644
index 0000000000..3cb9c2ed05
--- /dev/null
+++ b/docs/build/html/api/alltypes/index.html
@@ -0,0 +1,1501 @@
+
+
+alltypes -
+
+
+
+All Types
+
+
+
+
+core.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.
+
+
+
+
+api.APIServer
+
+Top level interface to external interaction with the distributed ledger.
+
+
+
+
+api.APIServerImpl
+
+
+
+
+
+core.node.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.
+
+
+
+
+core.node.services.AbstractNodeService
+
+Abstract superclass for services that a node can host, which provides helper functions.
+
+
+
+
+protocols.AbstractRequestMessage
+
+Abstract superclass for request messages sent to services, which includes common
+fields such as replyTo and replyToTopic.
+
+
+
+
+core.node.AcceptsFileUpload
+
+A service that implements AcceptsFileUpload can have new binary data provided to it via an HTTP upload.
+
+
+
+
+core.AccrualAdjustment
+
+Simple enum for returning accurals adjusted or unadjusted.
+We dont actually do anything with this yet though, so its ignored for now.
+
+
+
+
+core.utilities.AddOrRemove
+
+Enum for when adding/removing something, for example adding or removing an entry in a directory.
+
+
+
+
+core.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.
+
+
+
+
+core.messaging.AllPossibleRecipients
+
+A special base class for the set of all possible recipients, without having to identify who they all are.
+
+
+
+
+core.Amount
+
+Amount represents a positive quantity of currency, measured in pennies, which are the smallest representable units.
+
+
+
+
+core.node.subsystems.ArtemisMessagingService
+
+This class implements the MessagingService API using Apache Artemis, the successor to their ActiveMQ product.
+Artemis is a message queue broker and here, we embed the entire server inside our own process. Nodes communicate
+with each other using (by default) an Artemis specific protocol, but it supports other protocols like AQMP/1.0
+as well.
+
+
+
+
+core.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:
+
+
+
+
+core.node.servlets.AttachmentDownloadServlet
+
+Allows the node administrator to either download full attachment zips, or individual files within those zips.
+
+
+
+
+core.node.services.AttachmentStorage
+
+An attachment store records potentially large binary objects, identified by their hash. Note that attachments are
+immutable and can never be erased once inserted
+
+
+
+
+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.
+
+
+
+
+core.AuthenticatedObject
+
+Wraps an object that was signed by a public key, which may be a well known/recognised institutional key.
+
+
+
+
+demos.protocols.AutoOfferProtocol
+
+This whole class is really part of a demo just to initiate the agreement of a deal with a simple
+API call from a single party without bi-directional access to the database of offers etc.
+
+
+
+
+core.utilities.BriefLogFormatter
+
+A Java logging formatter that writes more compact output than the default.
+
+
+
+
+core.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 core.crypto)
+
+
+
+
+
+kotlin.ByteArray (extensions in package core.serialization)
+
+
+
+
+
+contracts.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.
+
+
+
+
+core.node.CityDatabase
+
+A simple lookup table of city names to their coordinates. Lookups are case insensitive.
+
+
+
+
+core.Command
+
+Command data/content plus pubkey pair: the signature is stored at the end of the serialized bytes
+
+
+
+
+core.CommandData
+
+Marker interface for classes that represent commands
+
+
+
+
+contracts.CommercialPaper
+
+
+
+
+
+api.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
+
+
+
+
+core.node.ConfigurationException
+
+
+
+
+
+core.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.
+
+
+
+
+api.ContractClassRef
+
+
+
+
+
+api.ContractDefRef
+
+Encapsulates the contract type. e.g. Cash or CommercialPaper etc.
+
+
+
+
+api.ContractLedgerRef
+
+
+
+
+
+core.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.
+
+
+
+
+contracts.CrowdFund
+
+This is a basic crowd funding contract. It allows a party to create a funding opportunity, then for others to
+pledge during the funding period , and then for the party to either accept the funding (if the target has been reached)
+return the funds to the pledge-makers (if the target has not been reached).
+
+
+
+
+core.math.CubicSplineInterpolator
+
+Interpolates values between the given data points using a SplineFunction .
+
+
+
+
+core.node.servlets.DataUploadServlet
+
+Accepts binary streams, finds the right AcceptsFileUpload implementor and hands the stream off to it.
+
+
+
+
+core.node.subsystems.DataVendingService
+
+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.
+
+
+
+
+core.DateOffset
+
+Date offset that the fixing is done prior to the accrual start date.
+Currently not used in the calculation.
+
+
+
+
+core.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
+
+
+
+
+core.DateRollDirection
+
+This is utilised in the DateRollConvention class to determine which way we should initially step when
+finding a business day
+
+
+
+
+core.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.
+
+
+
+
+core.DayCountBasisYear
+
+This forms the year part of the "Day Count Basis" used for interest calculation.
+
+
+
+
+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.
+
+
+
+
+demos.DemoClock
+
+A Clock that can have the date advanced for use in demos
+
+
+
+
+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 core)
+
+
+
+
+
+contracts.DummyContract
+
+
+
+
+
+core.crypto.DummyPublicKey
+
+
+
+
+
+core.node.services.DummyTimestampingAuthority
+
+
+
+
+
+core.node.subsystems.E2ETestKeyManagementService
+
+A simple in-memory KMS that doesnt bother saving keys to disk. A real implementation would:
+
+
+
+
+core.utilities.Emoji
+
+A simple wrapper class that contains icons and support for printing them only when were connected to a terminal.
+
+
+
+
+contracts.Event
+
+Event superclass - everything happens on a date.
+
+
+
+
+demos.protocols.ExitServerProtocol
+
+
+
+
+
+core.Expression
+
+Represents a textual expression of e.g. a formula
+
+
+
+
+core.ExpressionDeserializer
+
+
+
+
+
+core.ExpressionSerializer
+
+
+
+
+
+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.
+
+
+
+
+protocols.FetchDataProtocol
+
+An abstract protocol for fetching typed data from a remote peer.
+
+
+
+
+protocols.FetchTransactionsProtocol
+
+Given a set of tx hashes (IDs), either loads them from local disk or asks the remote peer to provide them.
+
+
+
+
+core.Fix
+
+A Fix represents a named interest rate, on a given day, for a given duration. It can be embedded in a tx.
+
+
+
+
+core.FixOf
+
+A FixOf identifies the question side of a fix: what day, tenor and type of fix ("LIBOR", "EURIBOR" etc)
+
+
+
+
+contracts.FixableDealState
+
+Interface adding fixing specific methods
+
+
+
+
+contracts.FixedRate
+
+A very basic subclass to represent a fixed rate.
+
+
+
+
+contracts.FixedRatePaymentEvent
+
+Basic class for the Fixed Rate Payments on the fixed leg - see RatePaymentEvent
+Assumes that the rate is valid.
+
+
+
+
+contracts.FloatingRate
+
+The parent class of the Floating rate classes
+
+
+
+
+contracts.FloatingRatePaymentEvent
+
+Basic class for the Floating Rate Payments on the floating leg - see RatePaymentEvent
+If the rate is null returns a zero payment. // TODO: Is this the desired behaviour?
+
+
+
+
+core.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).
+
+
+
+
+core.testing.IRSSimulation
+
+A simulation in which banks execute interest rate swaps with each other, including the fixing events.
+
+
+
+
+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.
+
+
+
+
+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.
+
+
+
+
+core.node.subsystems.InMemoryIdentityService
+
+Simple identity service which caches parties and provides functionality for efficient lookup.
+
+
+
+
+core.testing.InMemoryMessagingNetwork
+
+An in-memory network allows you to manufacture InMemoryMessaging s for a set of participants. Each
+InMemoryMessaging maintains a queue of messages it has received, and a background thread that dispatches
+messages one by one to registered handlers. Alternatively, a messaging system may be manually pumped, in which
+case no thread is created and a caller is expected to force delivery one at a time (this is useful for unit
+testing).
+
+
+
+
+core.node.subsystems.InMemoryNetworkMapCache
+
+Extremely simple in-memory cache of the network map.
+
+
+
+
+core.node.services.InMemoryNetworkMapService
+
+
+
+
+
+contracts.InsufficientBalanceException
+
+
+
+
+
+kotlin.Int (extensions in package core)
+
+
+
+
+
+kotlin.Int (extensions in package contracts)
+
+
+
+
+
+contracts.InterestRateSwap
+
+The Interest Rate Swap class. For a quick overview of what an IRS is, see here - http://www.pimco.co.uk/EN/Education/Pages/InterestRateSwapsBasics1-08.aspx (no endorsement)
+This contract has 4 significant data classes within it, the "Common", "Calculation", "FixedLeg" and "FloatingLeg"
+It also has 4 commands, "Agree", "Fix", "Pay" and "Mature".
+Currently, we are not interested (excuse pun) in valuing the swap, calculating the PVs, DFs and all that good stuff (soon though).
+This is just a representation of a vanilla Fixed vs Floating (same currency) IRS in the R3 prototype model.
+
+
+
+
+api.InterestRateSwapAPI
+
+This provides a simplified API, currently for demonstration use only.
+
+
+
+
+core.math.Interpolator
+
+
+
+
+
+core.math.InterpolatorFactory
+
+
+
+
+
+kotlin.collections.Iterable (extensions in package core)
+
+
+
+
+
+kotlin.collections.Iterable (extensions in package contracts)
+
+
+
+
+
+core.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.
+
+
+
+
+core.node.subsystems.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 core.crypto)
+
+
+
+
+
+core.LedgerTransaction
+
+A LedgerTransaction wraps the data needed to calculate one or more successor states from a set of input states.
+It is the first step after extraction from a WireTransaction. The signatures at this point have been lined up
+with the commands from the wire, and verified/looked up.
+
+
+
+
+core.math.LinearInterpolator
+
+Interpolates values between the given data points using straight lines
+
+
+
+
+core.LinearState
+
+A state that evolves by superseding itself, all of which share the common "thread"
+
+
+
+
+kotlin.collections.List (extensions in package core)
+
+
+
+
+
+java.time.LocalDate (extensions in package core)
+
+
+
+
+
+kotlin.Long (extensions in package core)
+
+
+
+
+
+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".
+
+
+
+
+core.messaging.MessageHandlerRegistration
+
+
+
+
+
+core.messaging.MessageRecipientGroup
+
+A base class for a set of recipients specifically identified by the sender.
+
+
+
+
+core.messaging.MessageRecipients
+
+The interface for a group of message recipients (which may contain only one recipient)
+
+
+
+
+core.messaging.MessagingService
+
+A MessagingService sits at the boundary between a message routing / networking layer and the core platform code.
+
+
+
+
+core.messaging.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.
+
+
+
+
+core.serialization.MissingAttachmentsException
+
+Thrown during deserialisation to indicate that an attachment needed to construct the WireTransaction is not found
+
+
+
+
+core.testing.MockIdentityService
+
+Scaffolding: a dummy identity service that just expects to have identities loaded off disk or found elsewhere.
+This class allows the provided list of identities to be mutated after construction, so it takes the list lock
+when doing lookups and recalculates the mapping each time. The ability to change the list is used by the
+MockNetwork code.
+
+
+
+
+core.testing.MockNetwork
+
+A mock node brings up a suite of in-memory services in a fast manner suitable for unit testing.
+Components that do IO are either swapped out for mocks, or pointed to a Jimfs in memory filesystem.
+
+
+
+
+core.testing.MockNetworkMapCache
+
+Network map cache with no backing map service.
+
+
+
+
+core.node.subsystems.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.
+
+
+
+
+core.NamedByHash
+
+Implemented by anything that can be named by a secure hash value (e.g. transactions, attachments).
+
+
+
+
+core.node.subsystems.NetworkCacheError
+
+
+
+
+
+core.node.subsystems.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.
+
+
+
+
+core.node.services.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.
+
+
+
+
+core.node.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.
+
+
+
+
+core.node.services.NodeAttachmentService
+
+Stores attachments in the specified local directory, which must exist. Doesnt allow new attachments to be uploaded.
+
+
+
+
+core.node.NodeConfiguration
+
+
+
+
+
+core.node.NodeConfigurationFromConfig
+
+
+
+
+
+core.node.NodeInfo
+
+Info about a network node that acts on behalf of some form of contract party.
+
+
+
+
+core.node.services.NodeInterestRates
+
+An interest rates service is an oracle that signs transactions which contain embedded assertions about an interest
+rate fix (e.g. LIBOR, EURIBOR ...).
+
+
+
+
+core.node.services.NodeMapError
+
+
+
+
+
+core.node.services.NodeRegistration
+
+A node registration state in the network map.
+
+
+
+
+core.node.services.NodeTimestamperService
+
+This class implements the server side of the timestamping protocol, using the local clock. A future version might
+add features like checking against other NTP servers to make sure the clock hasnt drifted by too much.
+
+
+
+
+core.node.subsystems.NodeWalletService
+
+This class implements a simple, in memory wallet that tracks states that are owned by us, and also has a convenience
+method to auto-generate some self-issued cash states that can be used for test trading. A real wallet would persist
+states relevant to us into a database and once such a wallet is implemented, this scaffolding can be removed.
+
+
+
+
+core.crypto.NullPublicKey
+
+
+
+
+
+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
+
+
+
+
+core.OwnableState
+
+
+
+
+
+core.Party
+
+A Party is well known (name, pubkey) pair. In a real system this would probably be an X.509 certificate.
+
+
+
+
+core.PartyReference
+
+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.
+
+
+
+
+java.nio.file.Path (extensions in package core)
+
+
+
+
+
+contracts.PaymentEvent
+
+Top level PaymentEvent class - represents an obligation to pay an amount on a given date, which may be either in the past or the future.
+
+
+
+
+core.PaymentRule
+
+Whether the payment should be made before the due date, or after it.
+
+
+
+
+contracts.PercentageRatioUnit
+
+A class to reprecent a percentage in an unambiguous way.
+
+
+
+
+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.
+
+
+
+
+core.math.Polynomial
+
+Represents a polynomial function of arbitrary degree
+
+
+
+
+java.security.PrivateKey (extensions in package core.crypto)
+
+
+
+
+
+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).
+
+
+
+
+api.ProtocolClassRef
+
+
+
+
+
+api.ProtocolInstanceRef
+
+
+
+
+
+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.
+
+
+
+
+api.ProtocolRef
+
+Encapsulates the protocol to be instantiated. e.g. TwoPartyTradeProtocol.Buyer.
+
+
+
+
+api.ProtocolRequiringAttention
+
+Thinking that Instant is OK for short lived protocol deadlines.
+
+
+
+
+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.
+
+
+
+
+java.security.PublicKey (extensions in package core.crypto)
+
+
+
+
+
+contracts.Rate
+
+Parent of the Rate family. Used to denote fixed rates, floating rates, reference rates etc
+
+
+
+
+contracts.RatePaymentEvent
+
+A RatePaymentEvent represents a dated obligation of payment.
+It is a specialisation / modification of a basic cash flow event (to be written) that has some additional assistance
+functions for interest rate swap legs of the fixed and floating nature.
+For the fixed leg, the rate is already known at creation and therefore the flows can be pre-determined.
+For the floating leg, the rate refers to a reference rate which is to be "fixed" at a point in the future.
+
+
+
+
+protocols.RatesFixProtocol
+
+This protocol queries the given oracle for an interest rate fix, and if it is within the given tolerance embeds the
+fix in the transaction and then proceeds to get the oracle to sign it. Although the call method combines the query
+and signing step, you can run the steps individually by constructing this object and then using the public methods
+for each step.
+
+
+
+
+contracts.RatioUnit
+
+A utility class to prevent the various mixups between percentages, decimals, bips etc.
+
+
+
+
+core.utilities.RecordingMap
+
+A RecordingMap wraps a regular Map<K, V> and records the sequence of gets and puts to it. This is useful in
+white box unit tests to ensure that code is accessing a data store as much as you expect.
+
+
+
+
+contracts.ReferenceRate
+
+So a reference rate is a rate that takes its value from a source at a given date
+e.g. LIBOR 6M as of 17 March 2016. Hence it requires a source (name) and a value date in the getAsOf(..) method.
+
+
+
+
+core.node.services.RegulatorService
+
+Placeholder interface for regulator services.
+
+
+
+
+core.Requirements
+
+
+
+
+
+protocols.ResolveTransactionsProtocol
+
+This protocol fetches each transaction identified by the given hashes from either disk or network, along with all
+their dependencies, and verifies them together using a single TransactionGroup . If no exception is thrown, then
+all the transactions have been successfully verified and inserted into the local database.
+
+
+
+
+api.ResponseFilter
+
+This adds headers needed for cross site scripting on API clients
+
+
+
+
+core.crypto.SecureHash
+
+
+
+
+
+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.
+
+
+
+
+core.serialization.SerializedBytesSerializer
+
+A serialiser that avoids writing the wrapper class to the byte stream, thus ensuring SerializedBytes is a pure
+type safety hack.
+
+
+
+
+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.
+
+
+
+
+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.
+
+
+
+
+core.crypto.SignedData
+
+A serialized piece of data and its signature. Enforces signature validity in order to deserialize the data
+contained within.
+
+
+
+
+core.SignedTransaction
+
+Container for a WireTransaction and attached signatures.
+
+
+
+
+core.testing.Simulation
+
+Base class for network simulations that are based on the unit test / mock environment.
+
+
+
+
+core.messaging.SingleMessageRecipient
+
+A base class for the case of point-to-point messages
+
+
+
+
+core.math.SplineFunction
+
+A spline is function piecewise-defined by polynomial functions.
+Points at which polynomial pieces connect are known as knots .
+
+
+
+
+core.messaging.StackSnapshot
+
+
+
+
+
+core.StateAndRef
+
+A StateAndRef is simply a (state, ref) pair. For instance, a wallet (which holds available assets) contains these.
+
+
+
+
+core.messaging.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.
+
+
+
+
+core.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.
+
+
+
+
+api.StatesQuery
+
+Extremely rudimentary query language which should most likely be replaced with a product
+
+
+
+
+core.node.subsystems.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.
+
+
+
+
+core.node.subsystems.StorageServiceImpl
+
+
+
+
+
+kotlin.String (extensions in package core)
+
+
+
+
+
+kotlin.String (extensions in package contracts)
+
+
+
+
+
+java.time.temporal.Temporal (extensions in package core)
+
+
+
+
+
+core.Tenor
+
+Placeholder class for the Tenor datatype - which is a standardised duration of time until maturity
+
+
+
+
+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.
+
+
+
+
+core.TimestampCommand
+
+If present in a transaction, contains a time that was verified by the timestamping authority/authorities whose
+public keys are identified in the containing Command object. The true time must be between (after, before)
+
+
+
+
+core.node.services.TimestamperService
+
+Simple interface (for testing) to an abstract timestamping service. Note that this is not "timestamping" in the
+blockchain sense of a total ordering of transactions, but rather, a signature from a well known/trusted timestamping
+service over a transaction that indicates the timestamp in it is accurate. Such a signature may not always be
+necessary: if there are multiple parties involved in a transaction then they can cross-check the timestamp
+themselves.
+
+
+
+
+core.node.services.TimestampingError
+
+
+
+
+
+protocols.TimestampingProtocol
+
+The TimestampingProtocol class is the client code that talks to a NodeTimestamperService on some remote node. It is a
+ProtocolLogic , meaning it can either be a sub-protocol of some other protocol, or be driven independently.
+
+
+
+
+core.messaging.TopicStringValidator
+
+A singleton thats useful for validating topic strings
+
+
+
+
+core.testing.TradeSimulation
+
+Simulates a never ending series of trades that go pair-wise through the banks (e.g. A and B trade with each other,
+then B and C trade with each other, then C and A etc).
+
+
+
+
+demos.TraderDemoProtocolBuyer
+
+
+
+
+
+demos.TraderDemoProtocolSeller
+
+
+
+
+
+api.TransactionBuildStep
+
+Encapsulate a generateXXX method call on a contract.
+
+
+
+
+core.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 or modifying the existing set.
+Then once the states and commands are right, this class can be used as a holding bucket to gather signatures from
+multiple parties.
+
+
+
+
+core.TransactionConflictException
+
+
+
+
+
+core.TransactionForVerification
+
+A transaction in fully resolved and sig-checked form, ready for passing as input to a verification function.
+
+
+
+
+core.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.
+
+
+
+
+core.TransactionGroup
+
+A TransactionGroup defines a directed acyclic graph of transactions that can be resolved with each other and then
+verified. Successful verification does not imply the non-existence of other conflicting transactions: simply that
+this subgraph does not contain conflicts and is accepted by the involved contracts.
+
+
+
+
+core.TransactionResolutionException
+
+
+
+
+
+core.TransactionVerificationException
+
+Thrown if a verification fails due to a contract rejection.
+
+
+
+
+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.
+
+
+
+
+protocols.TwoPartyDealProtocol
+
+Classes for manipulating a two party deal or agreement.
+
+
+
+
+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:
+
+
+
+
+core.TypeOnlyCommandData
+
+Commands that inherit from this are intended to have no data items: its only their presence that matters.
+
+
+
+
+contracts.UnknownType
+
+
+
+
+
+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:
+
+
+
+
+demos.protocols.UpdateBusinessDayProtocol
+
+This is a very temporary, demo-oriented way of initiating processing of temporal events and is not
+intended as the way things will necessarily be done longer term
+
+
+
+
+core.node.subsystems.Wallet
+
+A wallet (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 wallet: it is guaranteed not to
+change out from underneath you, even though the canonical currently-best-known wallet may change as we learn
+about new transactions from our peers and generate new transactions that consume states ourselves.
+
+
+
+
+core.node.subsystems.WalletService
+
+A WalletService is responsible for securely and safely persisting the current state of a wallet to storage. The
+wallet service vends immutable snapshots of the current wallet for working with: if you build a transaction based
+on a wallet 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
+
+
+
+
+core.node.services.WireNodeRegistration
+
+A node registration and its signature as a pair.
+
+
+
+
+core.WireTransaction
+
+Transaction ready for serialisation, without any signatures attached.
+
+
+
+
+core.serialization.WireTransactionSerializer
+
+A serialisation engine that knows how to deserialise code inside a sandbox
+
+
+
+
+core.node.WorldCoordinate
+
+A latitude/longitude pair.
+
+
+
+
+
+
diff --git a/docs/build/html/api/api/-a-p-i-server-impl/-init-.html b/docs/build/html/api/api/-a-p-i-server-impl/-init-.html
new file mode 100644
index 0000000000..18200d6124
--- /dev/null
+++ b/docs/build/html/api/api/-a-p-i-server-impl/-init-.html
@@ -0,0 +1,14 @@
+
+
+APIServerImpl. -
+
+
+
+api / APIServerImpl / <init>
+
+<init>
+APIServerImpl ( node : AbstractNode )
+
+
+
+
diff --git a/docs/build/html/api/api/-a-p-i-server-impl/build-transaction.html b/docs/build/html/api/api/-a-p-i-server-impl/build-transaction.html
new file mode 100644
index 0000000000..6f618d718c
--- /dev/null
+++ b/docs/build/html/api/api/-a-p-i-server-impl/build-transaction.html
@@ -0,0 +1,19 @@
+
+
+APIServerImpl.buildTransaction -
+
+
+
+api / 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/api/-a-p-i-server-impl/commit-transaction.html b/docs/build/html/api/api/-a-p-i-server-impl/commit-transaction.html
new file mode 100644
index 0000000000..bc016ec96e
--- /dev/null
+++ b/docs/build/html/api/api/-a-p-i-server-impl/commit-transaction.html
@@ -0,0 +1,18 @@
+
+
+APIServerImpl.commitTransaction -
+
+
+
+api / 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/api/-a-p-i-server-impl/fetch-protocols-requiring-attention.html b/docs/build/html/api/api/-a-p-i-server-impl/fetch-protocols-requiring-attention.html
new file mode 100644
index 0000000000..8452c98810
--- /dev/null
+++ b/docs/build/html/api/api/-a-p-i-server-impl/fetch-protocols-requiring-attention.html
@@ -0,0 +1,17 @@
+
+
+APIServerImpl.fetchProtocolsRequiringAttention -
+
+
+
+api / 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/api/-a-p-i-server-impl/fetch-states.html b/docs/build/html/api/api/-a-p-i-server-impl/fetch-states.html
new file mode 100644
index 0000000000..1b5a977dab
--- /dev/null
+++ b/docs/build/html/api/api/-a-p-i-server-impl/fetch-states.html
@@ -0,0 +1,16 @@
+
+
+APIServerImpl.fetchStates -
+
+
+
+api / APIServerImpl / fetchStates
+
+fetchStates
+
+fun fetchStates ( states : List < StateRef > ) : Map < StateRef , ContractState ? >
+Overrides APIServer.fetchStates
+
+
+
+
diff --git a/docs/build/html/api/api/-a-p-i-server-impl/fetch-transactions.html b/docs/build/html/api/api/-a-p-i-server-impl/fetch-transactions.html
new file mode 100644
index 0000000000..86e05fb7c8
--- /dev/null
+++ b/docs/build/html/api/api/-a-p-i-server-impl/fetch-transactions.html
@@ -0,0 +1,22 @@
+
+
+APIServerImpl.fetchTransactions -
+
+
+
+api / 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/api/-a-p-i-server-impl/generate-transaction-signature.html b/docs/build/html/api/api/-a-p-i-server-impl/generate-transaction-signature.html
new file mode 100644
index 0000000000..c24ed027ab
--- /dev/null
+++ b/docs/build/html/api/api/-a-p-i-server-impl/generate-transaction-signature.html
@@ -0,0 +1,17 @@
+
+
+APIServerImpl.generateTransactionSignature -
+
+
+
+api / 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/api/-a-p-i-server-impl/index.html b/docs/build/html/api/api/-a-p-i-server-impl/index.html
new file mode 100644
index 0000000000..3b254c4a0b
--- /dev/null
+++ b/docs/build/html/api/api/-a-p-i-server-impl/index.html
@@ -0,0 +1,115 @@
+
+
+APIServerImpl -
+
+
+
+api / 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 , 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.
+
+
+
+
+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.
+
+
+
+
+
+
diff --git a/docs/build/html/api/api/-a-p-i-server-impl/invoke-protocol-sync.html b/docs/build/html/api/api/-a-p-i-server-impl/invoke-protocol-sync.html
new file mode 100644
index 0000000000..d3f58a6cc5
--- /dev/null
+++ b/docs/build/html/api/api/-a-p-i-server-impl/invoke-protocol-sync.html
@@ -0,0 +1,22 @@
+
+
+APIServerImpl.invokeProtocolSync -
+
+
+
+api / 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/api/-a-p-i-server-impl/node.html b/docs/build/html/api/api/-a-p-i-server-impl/node.html
new file mode 100644
index 0000000000..fd0b8bb8e4
--- /dev/null
+++ b/docs/build/html/api/api/-a-p-i-server-impl/node.html
@@ -0,0 +1,15 @@
+
+
+APIServerImpl.node -
+
+
+
+api / APIServerImpl / node
+
+node
+
+val node : AbstractNode
+
+
+
+
diff --git a/docs/build/html/api/api/-a-p-i-server-impl/provide-protocol-response.html b/docs/build/html/api/api/-a-p-i-server-impl/provide-protocol-response.html
new file mode 100644
index 0000000000..6c84da1fec
--- /dev/null
+++ b/docs/build/html/api/api/-a-p-i-server-impl/provide-protocol-response.html
@@ -0,0 +1,29 @@
+
+
+APIServerImpl.provideProtocolResponse -
+
+
+
+api / 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/api/-a-p-i-server-impl/query-states.html b/docs/build/html/api/api/-a-p-i-server-impl/query-states.html
new file mode 100644
index 0000000000..8d93e87fea
--- /dev/null
+++ b/docs/build/html/api/api/-a-p-i-server-impl/query-states.html
@@ -0,0 +1,24 @@
+
+
+APIServerImpl.queryStates -
+
+
+
+api / 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/api/-a-p-i-server-impl/server-time.html b/docs/build/html/api/api/-a-p-i-server-impl/server-time.html
new file mode 100644
index 0000000000..099e9cbe06
--- /dev/null
+++ b/docs/build/html/api/api/-a-p-i-server-impl/server-time.html
@@ -0,0 +1,17 @@
+
+
+APIServerImpl.serverTime -
+
+
+
+api / 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/api/-a-p-i-server/build-transaction.html b/docs/build/html/api/api/-a-p-i-server/build-transaction.html
new file mode 100644
index 0000000000..3cb2a6b51b
--- /dev/null
+++ b/docs/build/html/api/api/-a-p-i-server/build-transaction.html
@@ -0,0 +1,18 @@
+
+
+APIServer.buildTransaction -
+
+
+
+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/api/-a-p-i-server/commit-transaction.html b/docs/build/html/api/api/-a-p-i-server/commit-transaction.html
new file mode 100644
index 0000000000..4c2ebf9684
--- /dev/null
+++ b/docs/build/html/api/api/-a-p-i-server/commit-transaction.html
@@ -0,0 +1,17 @@
+
+
+APIServer.commitTransaction -
+
+
+
+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/api/-a-p-i-server/fetch-protocols-requiring-attention.html b/docs/build/html/api/api/-a-p-i-server/fetch-protocols-requiring-attention.html
new file mode 100644
index 0000000000..a38070a0a4
--- /dev/null
+++ b/docs/build/html/api/api/-a-p-i-server/fetch-protocols-requiring-attention.html
@@ -0,0 +1,16 @@
+
+
+APIServer.fetchProtocolsRequiringAttention -
+
+
+
+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/api/-a-p-i-server/fetch-states.html b/docs/build/html/api/api/-a-p-i-server/fetch-states.html
new file mode 100644
index 0000000000..df4ee4df0b
--- /dev/null
+++ b/docs/build/html/api/api/-a-p-i-server/fetch-states.html
@@ -0,0 +1,15 @@
+
+
+APIServer.fetchStates -
+
+
+
+api / APIServer / fetchStates
+
+fetchStates
+
+abstract fun fetchStates ( states : List < StateRef > ) : Map < StateRef , ContractState ? >
+
+
+
+
diff --git a/docs/build/html/api/api/-a-p-i-server/fetch-transactions.html b/docs/build/html/api/api/-a-p-i-server/fetch-transactions.html
new file mode 100644
index 0000000000..1baf67b5e0
--- /dev/null
+++ b/docs/build/html/api/api/-a-p-i-server/fetch-transactions.html
@@ -0,0 +1,21 @@
+
+
+APIServer.fetchTransactions -
+
+
+
+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/api/-a-p-i-server/generate-transaction-signature.html b/docs/build/html/api/api/-a-p-i-server/generate-transaction-signature.html
new file mode 100644
index 0000000000..6ac63292c4
--- /dev/null
+++ b/docs/build/html/api/api/-a-p-i-server/generate-transaction-signature.html
@@ -0,0 +1,16 @@
+
+
+APIServer.generateTransactionSignature -
+
+
+
+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/api/-a-p-i-server/index.html b/docs/build/html/api/api/-a-p-i-server/index.html
new file mode 100644
index 0000000000..44806903f5
--- /dev/null
+++ b/docs/build/html/api/api/-a-p-i-server/index.html
@@ -0,0 +1,109 @@
+
+
+APIServer -
+
+
+
+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 , 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.
+
+
+
+
+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.
+
+
+
+
+Inheritors
+
+
+
diff --git a/docs/build/html/api/api/-a-p-i-server/invoke-protocol-sync.html b/docs/build/html/api/api/-a-p-i-server/invoke-protocol-sync.html
new file mode 100644
index 0000000000..d37bd9927e
--- /dev/null
+++ b/docs/build/html/api/api/-a-p-i-server/invoke-protocol-sync.html
@@ -0,0 +1,21 @@
+
+
+APIServer.invokeProtocolSync -
+
+
+
+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/api/-a-p-i-server/provide-protocol-response.html b/docs/build/html/api/api/-a-p-i-server/provide-protocol-response.html
new file mode 100644
index 0000000000..6e08f6af48
--- /dev/null
+++ b/docs/build/html/api/api/-a-p-i-server/provide-protocol-response.html
@@ -0,0 +1,28 @@
+
+
+APIServer.provideProtocolResponse -
+
+
+
+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/api/-a-p-i-server/query-states.html b/docs/build/html/api/api/-a-p-i-server/query-states.html
new file mode 100644
index 0000000000..8fc6dbb852
--- /dev/null
+++ b/docs/build/html/api/api/-a-p-i-server/query-states.html
@@ -0,0 +1,23 @@
+
+
+APIServer.queryStates -
+
+
+
+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/api/-a-p-i-server/server-time.html b/docs/build/html/api/api/-a-p-i-server/server-time.html
new file mode 100644
index 0000000000..09584b876a
--- /dev/null
+++ b/docs/build/html/api/api/-a-p-i-server/server-time.html
@@ -0,0 +1,16 @@
+
+
+APIServer.serverTime -
+
+
+
+api / APIServer / serverTime
+
+serverTime
+
+abstract fun serverTime ( ) : LocalDateTime
+Report current UTC time as understood by the platform.
+
+
+
+
diff --git a/docs/build/html/api/api/-config/-init-.html b/docs/build/html/api/api/-config/-init-.html
new file mode 100644
index 0000000000..95d3a0bb7d
--- /dev/null
+++ b/docs/build/html/api/api/-config/-init-.html
@@ -0,0 +1,16 @@
+
+
+Config. -
+
+
+
+api / 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/api/-config/default-object-mapper.html b/docs/build/html/api/api/-config/default-object-mapper.html
new file mode 100644
index 0000000000..6dff95e89c
--- /dev/null
+++ b/docs/build/html/api/api/-config/default-object-mapper.html
@@ -0,0 +1,15 @@
+
+
+Config.defaultObjectMapper -
+
+
+
+api / Config / defaultObjectMapper
+
+defaultObjectMapper
+
+val defaultObjectMapper : <ERROR CLASS>
+
+
+
+
diff --git a/docs/build/html/api/api/-config/get-context.html b/docs/build/html/api/api/-config/get-context.html
new file mode 100644
index 0000000000..c2d2459cf3
--- /dev/null
+++ b/docs/build/html/api/api/-config/get-context.html
@@ -0,0 +1,15 @@
+
+
+Config.getContext -
+
+
+
+api / Config / getContext
+
+getContext
+
+fun getContext ( type : Class < * > ) : <ERROR CLASS>
+
+
+
+
diff --git a/docs/build/html/api/api/-config/index.html b/docs/build/html/api/api/-config/index.html
new file mode 100644
index 0000000000..4971ab9066
--- /dev/null
+++ b/docs/build/html/api/api/-config/index.html
@@ -0,0 +1,57 @@
+
+
+Config -
+
+
+
+api / 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/api/-config/services.html b/docs/build/html/api/api/-config/services.html
new file mode 100644
index 0000000000..d688ab751e
--- /dev/null
+++ b/docs/build/html/api/api/-config/services.html
@@ -0,0 +1,15 @@
+
+
+Config.services -
+
+
+
+api / Config / services
+
+services
+
+val services : ServiceHub
+
+
+
+
diff --git a/docs/build/html/api/api/-contract-class-ref/-init-.html b/docs/build/html/api/api/-contract-class-ref/-init-.html
new file mode 100644
index 0000000000..2df8964c48
--- /dev/null
+++ b/docs/build/html/api/api/-contract-class-ref/-init-.html
@@ -0,0 +1,14 @@
+
+
+ContractClassRef. -
+
+
+
+api / ContractClassRef / <init>
+
+<init>
+ContractClassRef ( className : String )
+
+
+
+
diff --git a/docs/build/html/api/api/-contract-class-ref/class-name.html b/docs/build/html/api/api/-contract-class-ref/class-name.html
new file mode 100644
index 0000000000..53d56fa9d6
--- /dev/null
+++ b/docs/build/html/api/api/-contract-class-ref/class-name.html
@@ -0,0 +1,15 @@
+
+
+ContractClassRef.className -
+
+
+
+api / ContractClassRef / className
+
+className
+
+val className : String
+
+
+
+
diff --git a/docs/build/html/api/api/-contract-class-ref/index.html b/docs/build/html/api/api/-contract-class-ref/index.html
new file mode 100644
index 0000000000..e7da9791c9
--- /dev/null
+++ b/docs/build/html/api/api/-contract-class-ref/index.html
@@ -0,0 +1,36 @@
+
+
+ContractClassRef -
+
+
+
+api / ContractClassRef
+
+ContractClassRef
+data class ContractClassRef : ContractDefRef
+
+
+Constructors
+
+
+
+
+<init>
+
+ContractClassRef ( className : String )
+
+
+
+Properties
+
+
+
+
+className
+
+val className : String
+
+
+
+
+
diff --git a/docs/build/html/api/api/-contract-def-ref.html b/docs/build/html/api/api/-contract-def-ref.html
new file mode 100644
index 0000000000..fe2e395882
--- /dev/null
+++ b/docs/build/html/api/api/-contract-def-ref.html
@@ -0,0 +1,32 @@
+
+
+ContractDefRef -
+
+
+
+api / ContractDefRef
+
+ContractDefRef
+interface ContractDefRef
+Encapsulates the contract type. e.g. Cash or CommercialPaper etc.
+
+
+Inheritors
+
+
+
diff --git a/docs/build/html/api/api/-contract-ledger-ref/-init-.html b/docs/build/html/api/api/-contract-ledger-ref/-init-.html
new file mode 100644
index 0000000000..2075740aa8
--- /dev/null
+++ b/docs/build/html/api/api/-contract-ledger-ref/-init-.html
@@ -0,0 +1,14 @@
+
+
+ContractLedgerRef. -
+
+
+
+api / ContractLedgerRef / <init>
+
+<init>
+ContractLedgerRef ( hash : SecureHash )
+
+
+
+
diff --git a/docs/build/html/api/api/-contract-ledger-ref/hash.html b/docs/build/html/api/api/-contract-ledger-ref/hash.html
new file mode 100644
index 0000000000..6a448997a9
--- /dev/null
+++ b/docs/build/html/api/api/-contract-ledger-ref/hash.html
@@ -0,0 +1,15 @@
+
+
+ContractLedgerRef.hash -
+
+
+
+api / ContractLedgerRef / hash
+
+hash
+
+val hash : SecureHash
+
+
+
+
diff --git a/docs/build/html/api/api/-contract-ledger-ref/index.html b/docs/build/html/api/api/-contract-ledger-ref/index.html
new file mode 100644
index 0000000000..ee67aad865
--- /dev/null
+++ b/docs/build/html/api/api/-contract-ledger-ref/index.html
@@ -0,0 +1,36 @@
+
+
+ContractLedgerRef -
+
+
+
+api / ContractLedgerRef
+
+ContractLedgerRef
+data class ContractLedgerRef : ContractDefRef
+
+
+Constructors
+
+Properties
+
+
+
diff --git a/docs/build/html/api/api/-interest-rate-swap-a-p-i/-init-.html b/docs/build/html/api/api/-interest-rate-swap-a-p-i/-init-.html
new file mode 100644
index 0000000000..7aaf61b4d0
--- /dev/null
+++ b/docs/build/html/api/api/-interest-rate-swap-a-p-i/-init-.html
@@ -0,0 +1,28 @@
+
+
+InterestRateSwapAPI. -
+
+
+
+api / InterestRateSwapAPI / <init>
+
+<init>
+InterestRateSwapAPI ( api : APIServer )
+This provides a simplified API, currently for demonstration use only.
+It provides several JSON REST calls as follows:
+GET /api/irs/deals - returns an array of all deals tracked by the wallet of this node.
+GET /api/irs/deals/{ref} - return the deal referenced by the externally provided refence that was previously uploaded.
+POST /api/irs/deals - Payload is a JSON formatted InterestRateSwap.State create a new deal (includes an externally provided reference for use above).
+TODO: where we currently refer to singular external deal reference, of course this could easily be multiple identifiers e.g. CUSIP, ISIN.
+GET /api/irs/demodate - return the current date as viewed by the system in YYYY-MM-DD format.
+PUT /api/irs/demodate - put date in format YYYY-MM-DD to advance the current date as viewed by the system and
+simulate any associated business processing (currently fixing).
+TODO: replace simulated date advancement with business event based implementation
+PUT /api/irs/restart - (empty payload) cause the node to restart for API user emergency use in case any servers become unresponsive,
+or if the demodate or population of deals should be reset (will only work while persistence is disabled).
+
+
+
+
+
+
diff --git a/docs/build/html/api/api/-interest-rate-swap-a-p-i/api.html b/docs/build/html/api/api/-interest-rate-swap-a-p-i/api.html
new file mode 100644
index 0000000000..fa9d276c8e
--- /dev/null
+++ b/docs/build/html/api/api/-interest-rate-swap-a-p-i/api.html
@@ -0,0 +1,15 @@
+
+
+InterestRateSwapAPI.api -
+
+
+
+api / InterestRateSwapAPI / api
+
+api
+
+val api : APIServer
+
+
+
+
diff --git a/docs/build/html/api/api/-interest-rate-swap-a-p-i/exit-server.html b/docs/build/html/api/api/-interest-rate-swap-a-p-i/exit-server.html
new file mode 100644
index 0000000000..cb773d4cb6
--- /dev/null
+++ b/docs/build/html/api/api/-interest-rate-swap-a-p-i/exit-server.html
@@ -0,0 +1,15 @@
+
+
+InterestRateSwapAPI.exitServer -
+
+
+
+api / InterestRateSwapAPI / exitServer
+
+exitServer
+
+fun exitServer ( ) : <ERROR CLASS>
+
+
+
+
diff --git a/docs/build/html/api/api/-interest-rate-swap-a-p-i/fetch-deal.html b/docs/build/html/api/api/-interest-rate-swap-a-p-i/fetch-deal.html
new file mode 100644
index 0000000000..1bf670142f
--- /dev/null
+++ b/docs/build/html/api/api/-interest-rate-swap-a-p-i/fetch-deal.html
@@ -0,0 +1,15 @@
+
+
+InterestRateSwapAPI.fetchDeal -
+
+
+
+api / InterestRateSwapAPI / fetchDeal
+
+fetchDeal
+
+fun fetchDeal ( ref : String ) : <ERROR CLASS>
+
+
+
+
diff --git a/docs/build/html/api/api/-interest-rate-swap-a-p-i/fetch-deals.html b/docs/build/html/api/api/-interest-rate-swap-a-p-i/fetch-deals.html
new file mode 100644
index 0000000000..3bca847540
--- /dev/null
+++ b/docs/build/html/api/api/-interest-rate-swap-a-p-i/fetch-deals.html
@@ -0,0 +1,15 @@
+
+
+InterestRateSwapAPI.fetchDeals -
+
+
+
+api / InterestRateSwapAPI / fetchDeals
+
+fetchDeals
+
+fun fetchDeals ( ) : Array < State >
+
+
+
+
diff --git a/docs/build/html/api/api/-interest-rate-swap-a-p-i/fetch-demo-date.html b/docs/build/html/api/api/-interest-rate-swap-a-p-i/fetch-demo-date.html
new file mode 100644
index 0000000000..6d7355de69
--- /dev/null
+++ b/docs/build/html/api/api/-interest-rate-swap-a-p-i/fetch-demo-date.html
@@ -0,0 +1,15 @@
+
+
+InterestRateSwapAPI.fetchDemoDate -
+
+
+
+api / InterestRateSwapAPI / fetchDemoDate
+
+fetchDemoDate
+
+fun fetchDemoDate ( ) : LocalDate
+
+
+
+
diff --git a/docs/build/html/api/api/-interest-rate-swap-a-p-i/index.html b/docs/build/html/api/api/-interest-rate-swap-a-p-i/index.html
new file mode 100644
index 0000000000..c6cca419db
--- /dev/null
+++ b/docs/build/html/api/api/-interest-rate-swap-a-p-i/index.html
@@ -0,0 +1,92 @@
+
+
+InterestRateSwapAPI -
+
+
+
+api / InterestRateSwapAPI
+
+InterestRateSwapAPI
+class InterestRateSwapAPI
+This provides a simplified API, currently for demonstration use only.
+It provides several JSON REST calls as follows:
+GET /api/irs/deals - returns an array of all deals tracked by the wallet of this node.
+GET /api/irs/deals/{ref} - return the deal referenced by the externally provided refence that was previously uploaded.
+POST /api/irs/deals - Payload is a JSON formatted InterestRateSwap.State create a new deal (includes an externally provided reference for use above).
+TODO: where we currently refer to singular external deal reference, of course this could easily be multiple identifiers e.g. CUSIP, ISIN.
+GET /api/irs/demodate - return the current date as viewed by the system in YYYY-MM-DD format.
+PUT /api/irs/demodate - put date in format YYYY-MM-DD to advance the current date as viewed by the system and
+simulate any associated business processing (currently fixing).
+TODO: replace simulated date advancement with business event based implementation
+PUT /api/irs/restart - (empty payload) cause the node to restart for API user emergency use in case any servers become unresponsive,
+or if the demodate or population of deals should be reset (will only work while persistence is disabled).
+
+
+
+
+Constructors
+
+
+
+
+<init>
+
+InterestRateSwapAPI ( api : APIServer )
This provides a simplified API, currently for demonstration use only.
+
+
+
+
+Properties
+
+Functions
+
+
+
diff --git a/docs/build/html/api/api/-interest-rate-swap-a-p-i/store-deal.html b/docs/build/html/api/api/-interest-rate-swap-a-p-i/store-deal.html
new file mode 100644
index 0000000000..faa85a14fb
--- /dev/null
+++ b/docs/build/html/api/api/-interest-rate-swap-a-p-i/store-deal.html
@@ -0,0 +1,15 @@
+
+
+InterestRateSwapAPI.storeDeal -
+
+
+
+api / InterestRateSwapAPI / storeDeal
+
+storeDeal
+
+fun storeDeal ( newDeal : State ) : <ERROR CLASS>
+
+
+
+
diff --git a/docs/build/html/api/api/-interest-rate-swap-a-p-i/store-demo-date.html b/docs/build/html/api/api/-interest-rate-swap-a-p-i/store-demo-date.html
new file mode 100644
index 0000000000..8dc58c2e72
--- /dev/null
+++ b/docs/build/html/api/api/-interest-rate-swap-a-p-i/store-demo-date.html
@@ -0,0 +1,15 @@
+
+
+InterestRateSwapAPI.storeDemoDate -
+
+
+
+api / InterestRateSwapAPI / storeDemoDate
+
+storeDemoDate
+
+fun storeDemoDate ( newDemoDate : LocalDate ) : <ERROR CLASS>
+
+
+
+
diff --git a/docs/build/html/api/api/-protocol-class-ref/-init-.html b/docs/build/html/api/api/-protocol-class-ref/-init-.html
new file mode 100644
index 0000000000..32f874d3ab
--- /dev/null
+++ b/docs/build/html/api/api/-protocol-class-ref/-init-.html
@@ -0,0 +1,14 @@
+
+
+ProtocolClassRef. -
+
+
+
+api / ProtocolClassRef / <init>
+
+<init>
+ProtocolClassRef ( className : String )
+
+
+
+
diff --git a/docs/build/html/api/api/-protocol-class-ref/class-name.html b/docs/build/html/api/api/-protocol-class-ref/class-name.html
new file mode 100644
index 0000000000..3e58beb5d7
--- /dev/null
+++ b/docs/build/html/api/api/-protocol-class-ref/class-name.html
@@ -0,0 +1,15 @@
+
+
+ProtocolClassRef.className -
+
+
+
+api / ProtocolClassRef / className
+
+className
+
+val className : String
+
+
+
+
diff --git a/docs/build/html/api/api/-protocol-class-ref/index.html b/docs/build/html/api/api/-protocol-class-ref/index.html
new file mode 100644
index 0000000000..ecb0ab82f4
--- /dev/null
+++ b/docs/build/html/api/api/-protocol-class-ref/index.html
@@ -0,0 +1,36 @@
+
+
+ProtocolClassRef -
+
+
+
+api / ProtocolClassRef
+
+ProtocolClassRef
+data class ProtocolClassRef : ProtocolRef
+
+
+Constructors
+
+
+
+
+<init>
+
+ProtocolClassRef ( className : String )
+
+
+
+Properties
+
+
+
+
+className
+
+val className : String
+
+
+
+
+
diff --git a/docs/build/html/api/api/-protocol-instance-ref/-init-.html b/docs/build/html/api/api/-protocol-instance-ref/-init-.html
new file mode 100644
index 0000000000..cb0b9892ce
--- /dev/null
+++ b/docs/build/html/api/api/-protocol-instance-ref/-init-.html
@@ -0,0 +1,14 @@
+
+
+ProtocolInstanceRef. -
+
+
+
+api / ProtocolInstanceRef / <init>
+
+<init>
+ProtocolInstanceRef ( protocolInstance : SecureHash , protocolClass : ProtocolClassRef , protocolStepId : String )
+
+
+
+
diff --git a/docs/build/html/api/api/-protocol-instance-ref/index.html b/docs/build/html/api/api/-protocol-instance-ref/index.html
new file mode 100644
index 0000000000..f3177805e7
--- /dev/null
+++ b/docs/build/html/api/api/-protocol-instance-ref/index.html
@@ -0,0 +1,48 @@
+
+
+ProtocolInstanceRef -
+
+
+
+api / ProtocolInstanceRef
+
+ProtocolInstanceRef
+data class ProtocolInstanceRef
+
+
+Constructors
+
+Properties
+
+
+
diff --git a/docs/build/html/api/api/-protocol-instance-ref/protocol-class.html b/docs/build/html/api/api/-protocol-instance-ref/protocol-class.html
new file mode 100644
index 0000000000..c47de895b5
--- /dev/null
+++ b/docs/build/html/api/api/-protocol-instance-ref/protocol-class.html
@@ -0,0 +1,15 @@
+
+
+ProtocolInstanceRef.protocolClass -
+
+
+
+api / ProtocolInstanceRef / protocolClass
+
+protocolClass
+
+val protocolClass : ProtocolClassRef
+
+
+
+
diff --git a/docs/build/html/api/api/-protocol-instance-ref/protocol-instance.html b/docs/build/html/api/api/-protocol-instance-ref/protocol-instance.html
new file mode 100644
index 0000000000..472e56b261
--- /dev/null
+++ b/docs/build/html/api/api/-protocol-instance-ref/protocol-instance.html
@@ -0,0 +1,15 @@
+
+
+ProtocolInstanceRef.protocolInstance -
+
+
+
+api / ProtocolInstanceRef / protocolInstance
+
+protocolInstance
+
+val protocolInstance : SecureHash
+
+
+
+
diff --git a/docs/build/html/api/api/-protocol-instance-ref/protocol-step-id.html b/docs/build/html/api/api/-protocol-instance-ref/protocol-step-id.html
new file mode 100644
index 0000000000..959d10ab08
--- /dev/null
+++ b/docs/build/html/api/api/-protocol-instance-ref/protocol-step-id.html
@@ -0,0 +1,15 @@
+
+
+ProtocolInstanceRef.protocolStepId -
+
+
+
+api / ProtocolInstanceRef / protocolStepId
+
+protocolStepId
+
+val protocolStepId : String
+
+
+
+
diff --git a/docs/build/html/api/api/-protocol-ref.html b/docs/build/html/api/api/-protocol-ref.html
new file mode 100644
index 0000000000..cd1f894115
--- /dev/null
+++ b/docs/build/html/api/api/-protocol-ref.html
@@ -0,0 +1,26 @@
+
+
+ProtocolRef -
+
+
+
+api / ProtocolRef
+
+ProtocolRef
+interface ProtocolRef
+Encapsulates the protocol to be instantiated. e.g. TwoPartyTradeProtocol.Buyer.
+
+
+Inheritors
+
+
+
diff --git a/docs/build/html/api/api/-protocol-requiring-attention/-init-.html b/docs/build/html/api/api/-protocol-requiring-attention/-init-.html
new file mode 100644
index 0000000000..3d8da22d91
--- /dev/null
+++ b/docs/build/html/api/api/-protocol-requiring-attention/-init-.html
@@ -0,0 +1,15 @@
+
+
+ProtocolRequiringAttention. -
+
+
+
+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/api/-protocol-requiring-attention/choice-ids-to-messages.html b/docs/build/html/api/api/-protocol-requiring-attention/choice-ids-to-messages.html
new file mode 100644
index 0000000000..720fa2c4f1
--- /dev/null
+++ b/docs/build/html/api/api/-protocol-requiring-attention/choice-ids-to-messages.html
@@ -0,0 +1,15 @@
+
+
+ProtocolRequiringAttention.choiceIdsToMessages -
+
+
+
+api / ProtocolRequiringAttention / choiceIdsToMessages
+
+choiceIdsToMessages
+
+val choiceIdsToMessages : Map < SecureHash , String >
+
+
+
+
diff --git a/docs/build/html/api/api/-protocol-requiring-attention/due-by.html b/docs/build/html/api/api/-protocol-requiring-attention/due-by.html
new file mode 100644
index 0000000000..214ed6c59a
--- /dev/null
+++ b/docs/build/html/api/api/-protocol-requiring-attention/due-by.html
@@ -0,0 +1,15 @@
+
+
+ProtocolRequiringAttention.dueBy -
+
+
+
+api / ProtocolRequiringAttention / dueBy
+
+dueBy
+
+val dueBy : Instant
+
+
+
+
diff --git a/docs/build/html/api/api/-protocol-requiring-attention/index.html b/docs/build/html/api/api/-protocol-requiring-attention/index.html
new file mode 100644
index 0000000000..4fb7655c0a
--- /dev/null
+++ b/docs/build/html/api/api/-protocol-requiring-attention/index.html
@@ -0,0 +1,56 @@
+
+
+ProtocolRequiringAttention -
+
+
+
+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/api/-protocol-requiring-attention/prompt.html b/docs/build/html/api/api/-protocol-requiring-attention/prompt.html
new file mode 100644
index 0000000000..5cd67e63ee
--- /dev/null
+++ b/docs/build/html/api/api/-protocol-requiring-attention/prompt.html
@@ -0,0 +1,15 @@
+
+
+ProtocolRequiringAttention.prompt -
+
+
+
+api / ProtocolRequiringAttention / prompt
+
+prompt
+
+val prompt : String
+
+
+
+
diff --git a/docs/build/html/api/api/-protocol-requiring-attention/ref.html b/docs/build/html/api/api/-protocol-requiring-attention/ref.html
new file mode 100644
index 0000000000..e7cb929d50
--- /dev/null
+++ b/docs/build/html/api/api/-protocol-requiring-attention/ref.html
@@ -0,0 +1,15 @@
+
+
+ProtocolRequiringAttention.ref -
+
+
+
+api / ProtocolRequiringAttention / ref
+
+ref
+
+val ref : ProtocolInstanceRef
+
+
+
+
diff --git a/docs/build/html/api/api/-response-filter/-init-.html b/docs/build/html/api/api/-response-filter/-init-.html
new file mode 100644
index 0000000000..e7c5e0bc94
--- /dev/null
+++ b/docs/build/html/api/api/-response-filter/-init-.html
@@ -0,0 +1,15 @@
+
+
+ResponseFilter. -
+
+
+
+api / ResponseFilter / <init>
+
+<init>
+ResponseFilter ( )
+This adds headers needed for cross site scripting on API clients
+
+
+
+
diff --git a/docs/build/html/api/api/-response-filter/filter.html b/docs/build/html/api/api/-response-filter/filter.html
new file mode 100644
index 0000000000..dd9f898179
--- /dev/null
+++ b/docs/build/html/api/api/-response-filter/filter.html
@@ -0,0 +1,15 @@
+
+
+ResponseFilter.filter -
+
+
+
+api / ResponseFilter / filter
+
+filter
+
+fun filter ( requestContext : <ERROR CLASS> , responseContext : <ERROR CLASS> ) : Unit
+
+
+
+
diff --git a/docs/build/html/api/api/-response-filter/index.html b/docs/build/html/api/api/-response-filter/index.html
new file mode 100644
index 0000000000..f9fe3489e7
--- /dev/null
+++ b/docs/build/html/api/api/-response-filter/index.html
@@ -0,0 +1,38 @@
+
+
+ResponseFilter -
+
+
+
+api / 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/api/-states-query/-criteria/-all-deals.html b/docs/build/html/api/api/-states-query/-criteria/-all-deals.html
new file mode 100644
index 0000000000..a0c3f1ce10
--- /dev/null
+++ b/docs/build/html/api/api/-states-query/-criteria/-all-deals.html
@@ -0,0 +1,14 @@
+
+
+StatesQuery.Criteria.AllDeals -
+
+
+
+api / StatesQuery / Criteria / AllDeals
+
+AllDeals
+object AllDeals : Criteria
+
+
+
+
diff --git a/docs/build/html/api/api/-states-query/-criteria/-deal/-init-.html b/docs/build/html/api/api/-states-query/-criteria/-deal/-init-.html
new file mode 100644
index 0000000000..2faa5d49cc
--- /dev/null
+++ b/docs/build/html/api/api/-states-query/-criteria/-deal/-init-.html
@@ -0,0 +1,14 @@
+
+
+StatesQuery.Criteria.Deal. -
+
+
+
+api / StatesQuery / Criteria / Deal / <init>
+
+<init>
+Deal ( ref : String )
+
+
+
+
diff --git a/docs/build/html/api/api/-states-query/-criteria/-deal/index.html b/docs/build/html/api/api/-states-query/-criteria/-deal/index.html
new file mode 100644
index 0000000000..f4fd30ce53
--- /dev/null
+++ b/docs/build/html/api/api/-states-query/-criteria/-deal/index.html
@@ -0,0 +1,36 @@
+
+
+StatesQuery.Criteria.Deal -
+
+
+
+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/api/-states-query/-criteria/-deal/ref.html b/docs/build/html/api/api/-states-query/-criteria/-deal/ref.html
new file mode 100644
index 0000000000..91cba70480
--- /dev/null
+++ b/docs/build/html/api/api/-states-query/-criteria/-deal/ref.html
@@ -0,0 +1,15 @@
+
+
+StatesQuery.Criteria.Deal.ref -
+
+
+
+api / StatesQuery / Criteria / Deal / ref
+
+ref
+
+val ref : String
+
+
+
+
diff --git a/docs/build/html/api/api/-states-query/-criteria/index.html b/docs/build/html/api/api/-states-query/-criteria/index.html
new file mode 100644
index 0000000000..bb5bbfd9b7
--- /dev/null
+++ b/docs/build/html/api/api/-states-query/-criteria/index.html
@@ -0,0 +1,48 @@
+
+
+StatesQuery.Criteria -
+
+
+
+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/api/-states-query/-selection/-init-.html b/docs/build/html/api/api/-states-query/-selection/-init-.html
new file mode 100644
index 0000000000..ebc534a0b9
--- /dev/null
+++ b/docs/build/html/api/api/-states-query/-selection/-init-.html
@@ -0,0 +1,14 @@
+
+
+StatesQuery.Selection. -
+
+
+
+api / StatesQuery / Selection / <init>
+
+<init>
+Selection ( criteria : Criteria )
+
+
+
+
diff --git a/docs/build/html/api/api/-states-query/-selection/criteria.html b/docs/build/html/api/api/-states-query/-selection/criteria.html
new file mode 100644
index 0000000000..f4dc1904b0
--- /dev/null
+++ b/docs/build/html/api/api/-states-query/-selection/criteria.html
@@ -0,0 +1,15 @@
+
+
+StatesQuery.Selection.criteria -
+
+
+
+api / StatesQuery / Selection / criteria
+
+criteria
+
+val criteria : Criteria
+
+
+
+
diff --git a/docs/build/html/api/api/-states-query/-selection/index.html b/docs/build/html/api/api/-states-query/-selection/index.html
new file mode 100644
index 0000000000..66237ff816
--- /dev/null
+++ b/docs/build/html/api/api/-states-query/-selection/index.html
@@ -0,0 +1,36 @@
+
+
+StatesQuery.Selection -
+
+
+
+api / StatesQuery / Selection
+
+Selection
+data class Selection : StatesQuery
+
+
+Constructors
+
+Properties
+
+
+
diff --git a/docs/build/html/api/api/-states-query/index.html b/docs/build/html/api/api/-states-query/index.html
new file mode 100644
index 0000000000..bea19a86f7
--- /dev/null
+++ b/docs/build/html/api/api/-states-query/index.html
@@ -0,0 +1,66 @@
+
+
+StatesQuery -
+
+
+
+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/api/-states-query/select-all-deals.html b/docs/build/html/api/api/-states-query/select-all-deals.html
new file mode 100644
index 0000000000..d236f0e17b
--- /dev/null
+++ b/docs/build/html/api/api/-states-query/select-all-deals.html
@@ -0,0 +1,15 @@
+
+
+StatesQuery.selectAllDeals -
+
+
+
+api / StatesQuery / selectAllDeals
+
+selectAllDeals
+
+fun selectAllDeals ( ) : Selection
+
+
+
+
diff --git a/docs/build/html/api/api/-states-query/select-deal.html b/docs/build/html/api/api/-states-query/select-deal.html
new file mode 100644
index 0000000000..37316bcdaf
--- /dev/null
+++ b/docs/build/html/api/api/-states-query/select-deal.html
@@ -0,0 +1,15 @@
+
+
+StatesQuery.selectDeal -
+
+
+
+api / StatesQuery / selectDeal
+
+selectDeal
+
+fun selectDeal ( ref : String ) : Selection
+
+
+
+
diff --git a/docs/build/html/api/api/-states-query/select.html b/docs/build/html/api/api/-states-query/select.html
new file mode 100644
index 0000000000..38a84bed9a
--- /dev/null
+++ b/docs/build/html/api/api/-states-query/select.html
@@ -0,0 +1,15 @@
+
+
+StatesQuery.select -
+
+
+
+api / StatesQuery / select
+
+select
+
+fun select ( criteria : Criteria ) : Selection
+
+
+
+
diff --git a/docs/build/html/api/api/-transaction-build-step/-init-.html b/docs/build/html/api/api/-transaction-build-step/-init-.html
new file mode 100644
index 0000000000..b680cfc751
--- /dev/null
+++ b/docs/build/html/api/api/-transaction-build-step/-init-.html
@@ -0,0 +1,15 @@
+
+
+TransactionBuildStep. -
+
+
+
+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/api/-transaction-build-step/args.html b/docs/build/html/api/api/-transaction-build-step/args.html
new file mode 100644
index 0000000000..53f68d0dbf
--- /dev/null
+++ b/docs/build/html/api/api/-transaction-build-step/args.html
@@ -0,0 +1,15 @@
+
+
+TransactionBuildStep.args -
+
+
+
+api / TransactionBuildStep / args
+
+args
+
+val args : Map < String , Any ? >
+
+
+
+
diff --git a/docs/build/html/api/api/-transaction-build-step/generate-method-name.html b/docs/build/html/api/api/-transaction-build-step/generate-method-name.html
new file mode 100644
index 0000000000..c01febba4a
--- /dev/null
+++ b/docs/build/html/api/api/-transaction-build-step/generate-method-name.html
@@ -0,0 +1,15 @@
+
+
+TransactionBuildStep.generateMethodName -
+
+
+
+api / TransactionBuildStep / generateMethodName
+
+generateMethodName
+
+val generateMethodName : String
+
+
+
+
diff --git a/docs/build/html/api/api/-transaction-build-step/index.html b/docs/build/html/api/api/-transaction-build-step/index.html
new file mode 100644
index 0000000000..3f50fe21b0
--- /dev/null
+++ b/docs/build/html/api/api/-transaction-build-step/index.html
@@ -0,0 +1,44 @@
+
+
+TransactionBuildStep -
+
+
+
+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/api/index.html b/docs/build/html/api/api/index.html
new file mode 100644
index 0000000000..787f05b97c
--- /dev/null
+++ b/docs/build/html/api/api/index.html
@@ -0,0 +1,110 @@
+
+
+api -
+
+
+
+api
+
+Package api
+Types
+
+
+
+
+APIServer
+
+interface APIServer
Top level interface to external interaction with the distributed ledger.
+
+
+
+
+APIServerImpl
+
+class APIServerImpl : APIServer
+
+
+
+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
+
+
+
+
+ContractClassRef
+
+data class ContractClassRef : ContractDefRef
+
+
+
+ContractDefRef
+
+interface ContractDefRef
Encapsulates the contract type. e.g. Cash or CommercialPaper etc.
+
+
+
+
+ContractLedgerRef
+
+data class ContractLedgerRef : ContractDefRef
+
+
+
+InterestRateSwapAPI
+
+class InterestRateSwapAPI
This provides a simplified API, currently for demonstration use only.
+
+
+
+
+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.
+
+
+
+
+ResponseFilter
+
+class ResponseFilter
This adds headers needed for cross site scripting on API clients
+
+
+
+
+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/contracts/-c-a-s-h_-p-r-o-g-r-a-m_-i-d.html b/docs/build/html/api/contracts/-c-a-s-h_-p-r-o-g-r-a-m_-i-d.html
new file mode 100644
index 0000000000..26638c4d5b
--- /dev/null
+++ b/docs/build/html/api/contracts/-c-a-s-h_-p-r-o-g-r-a-m_-i-d.html
@@ -0,0 +1,15 @@
+
+
+CASH_PROGRAM_ID -
+
+
+
+contracts / CASH_PROGRAM_ID
+
+CASH_PROGRAM_ID
+
+val CASH_PROGRAM_ID : Cash
+
+
+
+
diff --git a/docs/build/html/api/contracts/-c-p_-p-r-o-g-r-a-m_-i-d.html b/docs/build/html/api/contracts/-c-p_-p-r-o-g-r-a-m_-i-d.html
new file mode 100644
index 0000000000..992a0419e3
--- /dev/null
+++ b/docs/build/html/api/contracts/-c-p_-p-r-o-g-r-a-m_-i-d.html
@@ -0,0 +1,34 @@
+
+
+CP_PROGRAM_ID -
+
+
+
+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/contracts/-c-r-o-w-d-f-u-n-d_-p-r-o-g-r-a-m_-i-d.html b/docs/build/html/api/contracts/-c-r-o-w-d-f-u-n-d_-p-r-o-g-r-a-m_-i-d.html
new file mode 100644
index 0000000000..68be856996
--- /dev/null
+++ b/docs/build/html/api/contracts/-c-r-o-w-d-f-u-n-d_-p-r-o-g-r-a-m_-i-d.html
@@ -0,0 +1,15 @@
+
+
+CROWDFUND_PROGRAM_ID -
+
+
+
+contracts / CROWDFUND_PROGRAM_ID
+
+CROWDFUND_PROGRAM_ID
+
+val CROWDFUND_PROGRAM_ID : CrowdFund
+
+
+
+
diff --git a/docs/build/html/api/contracts/-cash/-commands/-exit/-init-.html b/docs/build/html/api/contracts/-cash/-commands/-exit/-init-.html
new file mode 100644
index 0000000000..c24ad10c11
--- /dev/null
+++ b/docs/build/html/api/contracts/-cash/-commands/-exit/-init-.html
@@ -0,0 +1,16 @@
+
+
+Cash.Commands.Exit. -
+
+
+
+contracts / Cash / Commands / Exit / <init>
+
+<init>
+Exit ( amount : Amount )
+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/contracts/-cash/-commands/-exit/amount.html b/docs/build/html/api/contracts/-cash/-commands/-exit/amount.html
new file mode 100644
index 0000000000..e626f38732
--- /dev/null
+++ b/docs/build/html/api/contracts/-cash/-commands/-exit/amount.html
@@ -0,0 +1,15 @@
+
+
+Cash.Commands.Exit.amount -
+
+
+
+contracts / Cash / Commands / Exit / amount
+
+amount
+
+val amount : Amount
+
+
+
+
diff --git a/docs/build/html/api/contracts/-cash/-commands/-exit/index.html b/docs/build/html/api/contracts/-cash/-commands/-exit/index.html
new file mode 100644
index 0000000000..fdec1b649f
--- /dev/null
+++ b/docs/build/html/api/contracts/-cash/-commands/-exit/index.html
@@ -0,0 +1,40 @@
+
+
+Cash.Commands.Exit -
+
+
+
+contracts / Cash / Commands / Exit
+
+Exit
+data class Exit : Commands
+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 )
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/contracts/-cash/-commands/-issue/-init-.html b/docs/build/html/api/contracts/-cash/-commands/-issue/-init-.html
new file mode 100644
index 0000000000..bf80ca6432
--- /dev/null
+++ b/docs/build/html/api/contracts/-cash/-commands/-issue/-init-.html
@@ -0,0 +1,16 @@
+
+
+Cash.Commands.Issue. -
+
+
+
+contracts / Cash / Commands / Issue / <init>
+
+<init>
+Issue ( nonce : Long = SecureRandom.getInstanceStrong().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/contracts/-cash/-commands/-issue/index.html b/docs/build/html/api/contracts/-cash/-commands/-issue/index.html
new file mode 100644
index 0000000000..a7516c9a01
--- /dev/null
+++ b/docs/build/html/api/contracts/-cash/-commands/-issue/index.html
@@ -0,0 +1,40 @@
+
+
+Cash.Commands.Issue -
+
+
+
+contracts / Cash / Commands / Issue
+
+Issue
+data class 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 = SecureRandom.getInstanceStrong().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/contracts/-cash/-commands/-issue/nonce.html b/docs/build/html/api/contracts/-cash/-commands/-issue/nonce.html
new file mode 100644
index 0000000000..2cadc5d058
--- /dev/null
+++ b/docs/build/html/api/contracts/-cash/-commands/-issue/nonce.html
@@ -0,0 +1,15 @@
+
+
+Cash.Commands.Issue.nonce -
+
+
+
+contracts / Cash / Commands / Issue / nonce
+
+nonce
+
+val nonce : Long
+
+
+
+
diff --git a/docs/build/html/api/contracts/-cash/-commands/-move/-init-.html b/docs/build/html/api/contracts/-cash/-commands/-move/-init-.html
new file mode 100644
index 0000000000..ef579196f9
--- /dev/null
+++ b/docs/build/html/api/contracts/-cash/-commands/-move/-init-.html
@@ -0,0 +1,14 @@
+
+
+Cash.Commands.Move. -
+
+
+
+contracts / Cash / Commands / Move / <init>
+
+<init>
+Move ( )
+
+
+
+
diff --git a/docs/build/html/api/contracts/-cash/-commands/-move/index.html b/docs/build/html/api/contracts/-cash/-commands/-move/index.html
new file mode 100644
index 0000000000..6e6fe443da
--- /dev/null
+++ b/docs/build/html/api/contracts/-cash/-commands/-move/index.html
@@ -0,0 +1,42 @@
+
+
+Cash.Commands.Move -
+
+
+
+contracts / Cash / 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/contracts/-cash/-commands/index.html b/docs/build/html/api/contracts/-cash/-commands/index.html
new file mode 100644
index 0000000000..bf5bb04ec8
--- /dev/null
+++ b/docs/build/html/api/contracts/-cash/-commands/index.html
@@ -0,0 +1,68 @@
+
+
+Cash.Commands -
+
+
+
+contracts / Cash / Commands
+
+Commands
+interface Commands : CommandData
+
+
+Types
+
+
+
+
+Exit
+
+data class Exit : Commands
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 : 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
+
+class Move : TypeOnlyCommandData , Commands
+
+
+
+Inheritors
+
+
+
+
+Exit
+
+data class Exit : Commands
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 : 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
+
+class Move : TypeOnlyCommandData , Commands
+
+
+
+
+
diff --git a/docs/build/html/api/contracts/-cash/-init-.html b/docs/build/html/api/contracts/-cash/-init-.html
new file mode 100644
index 0000000000..0bb6d2b8a5
--- /dev/null
+++ b/docs/build/html/api/contracts/-cash/-init-.html
@@ -0,0 +1,25 @@
+
+
+Cash. -
+
+
+
+contracts / 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/contracts/-cash/-state/-init-.html b/docs/build/html/api/contracts/-cash/-state/-init-.html
new file mode 100644
index 0000000000..2d4898ad5b
--- /dev/null
+++ b/docs/build/html/api/contracts/-cash/-state/-init-.html
@@ -0,0 +1,15 @@
+
+
+Cash.State. -
+
+
+
+contracts / Cash / State / <init>
+
+<init>
+State ( deposit : PartyReference , amount : Amount , owner : PublicKey )
+A state representing a cash claim against some party
+
+
+
+
diff --git a/docs/build/html/api/contracts/-cash/-state/amount.html b/docs/build/html/api/contracts/-cash/-state/amount.html
new file mode 100644
index 0000000000..7592bde565
--- /dev/null
+++ b/docs/build/html/api/contracts/-cash/-state/amount.html
@@ -0,0 +1,15 @@
+
+
+Cash.State.amount -
+
+
+
+contracts / Cash / State / amount
+
+amount
+
+val amount : Amount
+
+
+
+
diff --git a/docs/build/html/api/contracts/-cash/-state/contract.html b/docs/build/html/api/contracts/-cash/-state/contract.html
new file mode 100644
index 0000000000..82dd69c6d7
--- /dev/null
+++ b/docs/build/html/api/contracts/-cash/-state/contract.html
@@ -0,0 +1,17 @@
+
+
+Cash.State.contract -
+
+
+
+contracts / Cash / State / contract
+
+contract
+
+val contract : Cash
+Overrides ContractState.contract
+Contract by which the state belongs
+
+
+
+
diff --git a/docs/build/html/api/contracts/-cash/-state/deposit.html b/docs/build/html/api/contracts/-cash/-state/deposit.html
new file mode 100644
index 0000000000..5719392e4d
--- /dev/null
+++ b/docs/build/html/api/contracts/-cash/-state/deposit.html
@@ -0,0 +1,16 @@
+
+
+Cash.State.deposit -
+
+
+
+contracts / Cash / State / deposit
+
+deposit
+
+val deposit : PartyReference
+Where the underlying currency backing this ledger entry can be found (propagated)
+
+
+
+
diff --git a/docs/build/html/api/contracts/-cash/-state/index.html b/docs/build/html/api/contracts/-cash/-state/index.html
new file mode 100644
index 0000000000..07026c7fea
--- /dev/null
+++ b/docs/build/html/api/contracts/-cash/-state/index.html
@@ -0,0 +1,77 @@
+
+
+Cash.State -
+
+
+
+contracts / Cash / State
+
+State
+data class State : OwnableState
+A state representing a cash claim against some party
+
+
+Constructors
+
+Properties
+
+
+
+
+amount
+
+val amount : Amount
+
+
+
+contract
+
+val contract : Cash
Contract by which the state belongs
+
+
+
+
+deposit
+
+val deposit : PartyReference
Where the underlying currency backing this ledger entry can be found (propagated)
+
+
+
+
+owner
+
+val owner : PublicKey
There must be a MoveCommand signed by this key to claim the amount
+
+
+
+
+Functions
+
+
+
+
+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
+
+
+
+
+
+
diff --git a/docs/build/html/api/contracts/-cash/-state/owner.html b/docs/build/html/api/contracts/-cash/-state/owner.html
new file mode 100644
index 0000000000..40a8915dab
--- /dev/null
+++ b/docs/build/html/api/contracts/-cash/-state/owner.html
@@ -0,0 +1,17 @@
+
+
+Cash.State.owner -
+
+
+
+contracts / Cash / 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/contracts/-cash/-state/to-string.html b/docs/build/html/api/contracts/-cash/-state/to-string.html
new file mode 100644
index 0000000000..6d83eea3dd
--- /dev/null
+++ b/docs/build/html/api/contracts/-cash/-state/to-string.html
@@ -0,0 +1,15 @@
+
+
+Cash.State.toString -
+
+
+
+contracts / Cash / State / toString
+
+toString
+
+fun toString ( ) : String
+
+
+
+
diff --git a/docs/build/html/api/contracts/-cash/-state/with-new-owner.html b/docs/build/html/api/contracts/-cash/-state/with-new-owner.html
new file mode 100644
index 0000000000..faac36ac28
--- /dev/null
+++ b/docs/build/html/api/contracts/-cash/-state/with-new-owner.html
@@ -0,0 +1,17 @@
+
+
+Cash.State.withNewOwner -
+
+
+
+contracts / 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/contracts/-cash/generate-issue.html b/docs/build/html/api/contracts/-cash/generate-issue.html
new file mode 100644
index 0000000000..38be4af60c
--- /dev/null
+++ b/docs/build/html/api/contracts/-cash/generate-issue.html
@@ -0,0 +1,16 @@
+
+
+Cash.generateIssue -
+
+
+
+contracts / Cash / generateIssue
+
+generateIssue
+
+fun generateIssue ( tx : TransactionBuilder , amount : Amount , at : PartyReference , owner : PublicKey ) : 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/contracts/-cash/generate-spend.html b/docs/build/html/api/contracts/-cash/generate-spend.html
new file mode 100644
index 0000000000..a19da53fbe
--- /dev/null
+++ b/docs/build/html/api/contracts/-cash/generate-spend.html
@@ -0,0 +1,22 @@
+
+
+Cash.generateSpend -
+
+
+
+contracts / Cash / generateSpend
+
+generateSpend
+
+fun generateSpend ( tx : TransactionBuilder , amount : Amount , to : PublicKey , cashStates : List < StateAndRef < State > > , onlyFromParties : Set < Party > ? = null) : List < PublicKey >
+Generate a transaction that consumes one or more of the given input states to move money to the given pubkey.
+Note that the wallet list is not updated: its up to you to do that.
+Parameters
+
+onlyFromParties
- if non-null, the wallet will be filtered to only include cash states issued by the set
+of given parties. This can be useful if the party youre trying to pay has expectations
+about which type of cash claims they are willing to accept.
+
+
+
+
diff --git a/docs/build/html/api/contracts/-cash/index.html b/docs/build/html/api/contracts/-cash/index.html
new file mode 100644
index 0000000000..4663b87d2d
--- /dev/null
+++ b/docs/build/html/api/contracts/-cash/index.html
@@ -0,0 +1,97 @@
+
+
+Cash -
+
+
+
+contracts / Cash
+
+Cash
+class Cash : Contract
+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
+
+
+
diff --git a/docs/build/html/api/contracts/-cash/legal-contract-reference.html b/docs/build/html/api/contracts/-cash/legal-contract-reference.html
new file mode 100644
index 0000000000..d151bdc904
--- /dev/null
+++ b/docs/build/html/api/contracts/-cash/legal-contract-reference.html
@@ -0,0 +1,25 @@
+
+
+Cash.legalContractReference -
+
+
+
+contracts / 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/contracts/-cash/verify.html b/docs/build/html/api/contracts/-cash/verify.html
new file mode 100644
index 0000000000..ef5a95f9a6
--- /dev/null
+++ b/docs/build/html/api/contracts/-cash/verify.html
@@ -0,0 +1,17 @@
+
+
+Cash.verify -
+
+
+
+contracts / Cash / verify
+
+verify
+
+fun verify ( tx : TransactionForVerification ) : Unit
+Overrides Contract.verify
+This is the function EVERYONE runs
+
+
+
+
diff --git a/docs/build/html/api/contracts/-commercial-paper/-commands/-issue/-init-.html b/docs/build/html/api/contracts/-commercial-paper/-commands/-issue/-init-.html
new file mode 100644
index 0000000000..0599089f81
--- /dev/null
+++ b/docs/build/html/api/contracts/-commercial-paper/-commands/-issue/-init-.html
@@ -0,0 +1,14 @@
+
+
+CommercialPaper.Commands.Issue. -
+
+
+
+contracts / CommercialPaper / Commands / Issue / <init>
+
+<init>
+Issue ( )
+
+
+
+
diff --git a/docs/build/html/api/contracts/-commercial-paper/-commands/-issue/index.html b/docs/build/html/api/contracts/-commercial-paper/-commands/-issue/index.html
new file mode 100644
index 0000000000..aaf6dffe72
--- /dev/null
+++ b/docs/build/html/api/contracts/-commercial-paper/-commands/-issue/index.html
@@ -0,0 +1,42 @@
+
+
+CommercialPaper.Commands.Issue -
+
+
+
+contracts / CommercialPaper / 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/contracts/-commercial-paper/-commands/-move/-init-.html b/docs/build/html/api/contracts/-commercial-paper/-commands/-move/-init-.html
new file mode 100644
index 0000000000..11abf580a4
--- /dev/null
+++ b/docs/build/html/api/contracts/-commercial-paper/-commands/-move/-init-.html
@@ -0,0 +1,14 @@
+
+
+CommercialPaper.Commands.Move. -
+
+
+
+contracts / CommercialPaper / Commands / Move / <init>
+
+<init>
+Move ( )
+
+
+
+
diff --git a/docs/build/html/api/contracts/-commercial-paper/-commands/-move/index.html b/docs/build/html/api/contracts/-commercial-paper/-commands/-move/index.html
new file mode 100644
index 0000000000..fb104aae5a
--- /dev/null
+++ b/docs/build/html/api/contracts/-commercial-paper/-commands/-move/index.html
@@ -0,0 +1,42 @@
+
+
+CommercialPaper.Commands.Move -
+
+
+
+contracts / CommercialPaper / 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/contracts/-commercial-paper/-commands/-redeem/-init-.html b/docs/build/html/api/contracts/-commercial-paper/-commands/-redeem/-init-.html
new file mode 100644
index 0000000000..eb9e49ac8f
--- /dev/null
+++ b/docs/build/html/api/contracts/-commercial-paper/-commands/-redeem/-init-.html
@@ -0,0 +1,14 @@
+
+
+CommercialPaper.Commands.Redeem. -
+
+
+
+contracts / CommercialPaper / Commands / Redeem / <init>
+
+<init>
+Redeem ( )
+
+
+
+
diff --git a/docs/build/html/api/contracts/-commercial-paper/-commands/-redeem/index.html b/docs/build/html/api/contracts/-commercial-paper/-commands/-redeem/index.html
new file mode 100644
index 0000000000..12ccadeb7b
--- /dev/null
+++ b/docs/build/html/api/contracts/-commercial-paper/-commands/-redeem/index.html
@@ -0,0 +1,42 @@
+
+
+CommercialPaper.Commands.Redeem -
+
+
+
+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/contracts/-commercial-paper/-commands/index.html b/docs/build/html/api/contracts/-commercial-paper/-commands/index.html
new file mode 100644
index 0000000000..4eb4ec7d39
--- /dev/null
+++ b/docs/build/html/api/contracts/-commercial-paper/-commands/index.html
@@ -0,0 +1,60 @@
+
+
+CommercialPaper.Commands -
+
+
+
+contracts / CommercialPaper / Commands
+
+Commands
+interface Commands : CommandData
+
+
+Types
+
+Inheritors
+
+
+
diff --git a/docs/build/html/api/contracts/-commercial-paper/-init-.html b/docs/build/html/api/contracts/-commercial-paper/-init-.html
new file mode 100644
index 0000000000..768c3ca4dc
--- /dev/null
+++ b/docs/build/html/api/contracts/-commercial-paper/-init-.html
@@ -0,0 +1,14 @@
+
+
+CommercialPaper. -
+
+
+
+contracts / CommercialPaper / <init>
+
+<init>
+CommercialPaper ( )
+
+
+
+
diff --git a/docs/build/html/api/contracts/-commercial-paper/-state/-init-.html b/docs/build/html/api/contracts/-commercial-paper/-state/-init-.html
new file mode 100644
index 0000000000..6f950169b3
--- /dev/null
+++ b/docs/build/html/api/contracts/-commercial-paper/-state/-init-.html
@@ -0,0 +1,14 @@
+
+
+CommercialPaper.State. -
+
+
+
+contracts / CommercialPaper / State / <init>
+
+<init>
+State ( issuance : PartyReference , owner : PublicKey , faceValue : Amount , maturityDate : Instant )
+
+
+
+
diff --git a/docs/build/html/api/contracts/-commercial-paper/-state/contract.html b/docs/build/html/api/contracts/-commercial-paper/-state/contract.html
new file mode 100644
index 0000000000..b367467db0
--- /dev/null
+++ b/docs/build/html/api/contracts/-commercial-paper/-state/contract.html
@@ -0,0 +1,17 @@
+
+
+CommercialPaper.State.contract -
+
+
+
+contracts / CommercialPaper / State / contract
+
+contract
+
+val contract : CommercialPaper
+Overrides ContractState.contract
+Contract by which the state belongs
+
+
+
+
diff --git a/docs/build/html/api/contracts/-commercial-paper/-state/face-value.html b/docs/build/html/api/contracts/-commercial-paper/-state/face-value.html
new file mode 100644
index 0000000000..6a1328d7c7
--- /dev/null
+++ b/docs/build/html/api/contracts/-commercial-paper/-state/face-value.html
@@ -0,0 +1,15 @@
+
+
+CommercialPaper.State.faceValue -
+
+
+
+contracts / CommercialPaper / State / faceValue
+
+faceValue
+
+val faceValue : Amount
+
+
+
+
diff --git a/docs/build/html/api/contracts/-commercial-paper/-state/index.html b/docs/build/html/api/contracts/-commercial-paper/-state/index.html
new file mode 100644
index 0000000000..cb574e974e
--- /dev/null
+++ b/docs/build/html/api/contracts/-commercial-paper/-state/index.html
@@ -0,0 +1,110 @@
+
+
+CommercialPaper.State -
+
+
+
+contracts / CommercialPaper / State
+
+State
+data class State : OwnableState
+
+
+Constructors
+
+Properties
+
+Functions
+
+
+
diff --git a/docs/build/html/api/contracts/-commercial-paper/-state/issuance.html b/docs/build/html/api/contracts/-commercial-paper/-state/issuance.html
new file mode 100644
index 0000000000..f1f65450bd
--- /dev/null
+++ b/docs/build/html/api/contracts/-commercial-paper/-state/issuance.html
@@ -0,0 +1,15 @@
+
+
+CommercialPaper.State.issuance -
+
+
+
+contracts / CommercialPaper / State / issuance
+
+issuance
+
+val issuance : PartyReference
+
+
+
+
diff --git a/docs/build/html/api/contracts/-commercial-paper/-state/maturity-date.html b/docs/build/html/api/contracts/-commercial-paper/-state/maturity-date.html
new file mode 100644
index 0000000000..58c6c8612a
--- /dev/null
+++ b/docs/build/html/api/contracts/-commercial-paper/-state/maturity-date.html
@@ -0,0 +1,15 @@
+
+
+CommercialPaper.State.maturityDate -
+
+
+
+contracts / CommercialPaper / State / maturityDate
+
+maturityDate
+
+val maturityDate : Instant
+
+
+
+
diff --git a/docs/build/html/api/contracts/-commercial-paper/-state/owner.html b/docs/build/html/api/contracts/-commercial-paper/-state/owner.html
new file mode 100644
index 0000000000..15bfe04c5b
--- /dev/null
+++ b/docs/build/html/api/contracts/-commercial-paper/-state/owner.html
@@ -0,0 +1,17 @@
+
+
+CommercialPaper.State.owner -
+
+
+
+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/contracts/-commercial-paper/-state/to-string.html b/docs/build/html/api/contracts/-commercial-paper/-state/to-string.html
new file mode 100644
index 0000000000..7c24cfbc3e
--- /dev/null
+++ b/docs/build/html/api/contracts/-commercial-paper/-state/to-string.html
@@ -0,0 +1,15 @@
+
+
+CommercialPaper.State.toString -
+
+
+
+contracts / CommercialPaper / State / toString
+
+toString
+
+fun toString ( ) : String
+
+
+
+
diff --git a/docs/build/html/api/contracts/-commercial-paper/-state/with-face-value.html b/docs/build/html/api/contracts/-commercial-paper/-state/with-face-value.html
new file mode 100644
index 0000000000..bfe75c8f1b
--- /dev/null
+++ b/docs/build/html/api/contracts/-commercial-paper/-state/with-face-value.html
@@ -0,0 +1,15 @@
+
+
+CommercialPaper.State.withFaceValue -
+
+
+
+contracts / CommercialPaper / State / withFaceValue
+
+withFaceValue
+
+fun withFaceValue ( newFaceValue : Amount ) : <ERROR CLASS>
+
+
+
+
diff --git a/docs/build/html/api/contracts/-commercial-paper/-state/with-issuance.html b/docs/build/html/api/contracts/-commercial-paper/-state/with-issuance.html
new file mode 100644
index 0000000000..a995e0d8a0
--- /dev/null
+++ b/docs/build/html/api/contracts/-commercial-paper/-state/with-issuance.html
@@ -0,0 +1,15 @@
+
+
+CommercialPaper.State.withIssuance -
+
+
+
+contracts / CommercialPaper / State / withIssuance
+
+withIssuance
+
+fun withIssuance ( newIssuance : PartyReference ) : <ERROR CLASS>
+
+
+
+
diff --git a/docs/build/html/api/contracts/-commercial-paper/-state/with-maturity-date.html b/docs/build/html/api/contracts/-commercial-paper/-state/with-maturity-date.html
new file mode 100644
index 0000000000..ec0eba6df3
--- /dev/null
+++ b/docs/build/html/api/contracts/-commercial-paper/-state/with-maturity-date.html
@@ -0,0 +1,15 @@
+
+
+CommercialPaper.State.withMaturityDate -
+
+
+
+contracts / CommercialPaper / State / withMaturityDate
+
+withMaturityDate
+
+fun withMaturityDate ( newMaturityDate : Instant ) : <ERROR CLASS>
+
+
+
+
diff --git a/docs/build/html/api/contracts/-commercial-paper/-state/with-new-owner.html b/docs/build/html/api/contracts/-commercial-paper/-state/with-new-owner.html
new file mode 100644
index 0000000000..50cf564db4
--- /dev/null
+++ b/docs/build/html/api/contracts/-commercial-paper/-state/with-new-owner.html
@@ -0,0 +1,17 @@
+
+
+CommercialPaper.State.withNewOwner -
+
+
+
+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/contracts/-commercial-paper/-state/with-owner.html b/docs/build/html/api/contracts/-commercial-paper/-state/with-owner.html
new file mode 100644
index 0000000000..736f3e004b
--- /dev/null
+++ b/docs/build/html/api/contracts/-commercial-paper/-state/with-owner.html
@@ -0,0 +1,15 @@
+
+
+CommercialPaper.State.withOwner -
+
+
+
+contracts / CommercialPaper / State / withOwner
+
+withOwner
+
+fun withOwner ( newOwner : PublicKey ) : <ERROR CLASS>
+
+
+
+
diff --git a/docs/build/html/api/contracts/-commercial-paper/-state/without-owner.html b/docs/build/html/api/contracts/-commercial-paper/-state/without-owner.html
new file mode 100644
index 0000000000..c37b1ec9fc
--- /dev/null
+++ b/docs/build/html/api/contracts/-commercial-paper/-state/without-owner.html
@@ -0,0 +1,15 @@
+
+
+CommercialPaper.State.withoutOwner -
+
+
+
+contracts / CommercialPaper / State / withoutOwner
+
+withoutOwner
+
+fun withoutOwner ( ) : State
+
+
+
+
diff --git a/docs/build/html/api/contracts/-commercial-paper/generate-issue.html b/docs/build/html/api/contracts/-commercial-paper/generate-issue.html
new file mode 100644
index 0000000000..b5bf985fb6
--- /dev/null
+++ b/docs/build/html/api/contracts/-commercial-paper/generate-issue.html
@@ -0,0 +1,18 @@
+
+
+CommercialPaper.generateIssue -
+
+
+
+contracts / CommercialPaper / generateIssue
+
+generateIssue
+
+fun generateIssue ( issuance : PartyReference , faceValue : Amount , maturityDate : Instant ) : 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/contracts/-commercial-paper/generate-move.html b/docs/build/html/api/contracts/-commercial-paper/generate-move.html
new file mode 100644
index 0000000000..834b461948
--- /dev/null
+++ b/docs/build/html/api/contracts/-commercial-paper/generate-move.html
@@ -0,0 +1,16 @@
+
+
+CommercialPaper.generateMove -
+
+
+
+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/contracts/-commercial-paper/generate-redeem.html b/docs/build/html/api/contracts/-commercial-paper/generate-redeem.html
new file mode 100644
index 0000000000..d424ecf98f
--- /dev/null
+++ b/docs/build/html/api/contracts/-commercial-paper/generate-redeem.html
@@ -0,0 +1,21 @@
+
+
+CommercialPaper.generateRedeem -
+
+
+
+contracts / CommercialPaper / generateRedeem
+
+generateRedeem
+
+fun generateRedeem ( tx : TransactionBuilder , paper : StateAndRef < State > , wallet : List < StateAndRef < State > > ) : 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 wallet doesnt contain enough money to pay the redeemer
+
+
+
+
diff --git a/docs/build/html/api/contracts/-commercial-paper/index.html b/docs/build/html/api/contracts/-commercial-paper/index.html
new file mode 100644
index 0000000000..401304d924
--- /dev/null
+++ b/docs/build/html/api/contracts/-commercial-paper/index.html
@@ -0,0 +1,95 @@
+
+
+CommercialPaper -
+
+
+
+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 : PartyReference , faceValue : Amount , maturityDate : Instant ) : 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 > , wallet : List < StateAndRef < State > > ) : 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 : TransactionForVerification ) : 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/contracts/-commercial-paper/legal-contract-reference.html b/docs/build/html/api/contracts/-commercial-paper/legal-contract-reference.html
new file mode 100644
index 0000000000..6f648f3ba7
--- /dev/null
+++ b/docs/build/html/api/contracts/-commercial-paper/legal-contract-reference.html
@@ -0,0 +1,18 @@
+
+
+CommercialPaper.legalContractReference -
+
+
+
+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/contracts/-commercial-paper/verify.html b/docs/build/html/api/contracts/-commercial-paper/verify.html
new file mode 100644
index 0000000000..193eabd96b
--- /dev/null
+++ b/docs/build/html/api/contracts/-commercial-paper/verify.html
@@ -0,0 +1,20 @@
+
+
+CommercialPaper.verify -
+
+
+
+contracts / CommercialPaper / verify
+
+verify
+
+fun verify ( tx : TransactionForVerification ) : 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/contracts/-crowd-fund/-campaign/-init-.html b/docs/build/html/api/contracts/-crowd-fund/-campaign/-init-.html
new file mode 100644
index 0000000000..1d92af3e0e
--- /dev/null
+++ b/docs/build/html/api/contracts/-crowd-fund/-campaign/-init-.html
@@ -0,0 +1,14 @@
+
+
+CrowdFund.Campaign. -
+
+
+
+contracts / CrowdFund / Campaign / <init>
+
+<init>
+Campaign ( owner : PublicKey , name : String , target : Amount , closingTime : Instant )
+
+
+
+
diff --git a/docs/build/html/api/contracts/-crowd-fund/-campaign/closing-time.html b/docs/build/html/api/contracts/-crowd-fund/-campaign/closing-time.html
new file mode 100644
index 0000000000..8c0719923d
--- /dev/null
+++ b/docs/build/html/api/contracts/-crowd-fund/-campaign/closing-time.html
@@ -0,0 +1,15 @@
+
+
+CrowdFund.Campaign.closingTime -
+
+
+
+contracts / CrowdFund / Campaign / closingTime
+
+closingTime
+
+val closingTime : Instant
+
+
+
+
diff --git a/docs/build/html/api/contracts/-crowd-fund/-campaign/index.html b/docs/build/html/api/contracts/-crowd-fund/-campaign/index.html
new file mode 100644
index 0000000000..eb908975bb
--- /dev/null
+++ b/docs/build/html/api/contracts/-crowd-fund/-campaign/index.html
@@ -0,0 +1,65 @@
+
+
+CrowdFund.Campaign -
+
+
+
+contracts / CrowdFund / Campaign
+
+Campaign
+data class Campaign
+
+
+Constructors
+
+Properties
+
+Functions
+
+
+
+
+toString
+
+fun toString ( ) : String
+
+
+
+
+
diff --git a/docs/build/html/api/contracts/-crowd-fund/-campaign/name.html b/docs/build/html/api/contracts/-crowd-fund/-campaign/name.html
new file mode 100644
index 0000000000..ed02e5e6d5
--- /dev/null
+++ b/docs/build/html/api/contracts/-crowd-fund/-campaign/name.html
@@ -0,0 +1,15 @@
+
+
+CrowdFund.Campaign.name -
+
+
+
+contracts / CrowdFund / Campaign / name
+
+name
+
+val name : String
+
+
+
+
diff --git a/docs/build/html/api/contracts/-crowd-fund/-campaign/owner.html b/docs/build/html/api/contracts/-crowd-fund/-campaign/owner.html
new file mode 100644
index 0000000000..a345873eed
--- /dev/null
+++ b/docs/build/html/api/contracts/-crowd-fund/-campaign/owner.html
@@ -0,0 +1,15 @@
+
+
+CrowdFund.Campaign.owner -
+
+
+
+contracts / CrowdFund / Campaign / owner
+
+owner
+
+val owner : PublicKey
+
+
+
+
diff --git a/docs/build/html/api/contracts/-crowd-fund/-campaign/target.html b/docs/build/html/api/contracts/-crowd-fund/-campaign/target.html
new file mode 100644
index 0000000000..9b1a849b44
--- /dev/null
+++ b/docs/build/html/api/contracts/-crowd-fund/-campaign/target.html
@@ -0,0 +1,15 @@
+
+
+CrowdFund.Campaign.target -
+
+
+
+contracts / CrowdFund / Campaign / target
+
+target
+
+val target : Amount
+
+
+
+
diff --git a/docs/build/html/api/contracts/-crowd-fund/-campaign/to-string.html b/docs/build/html/api/contracts/-crowd-fund/-campaign/to-string.html
new file mode 100644
index 0000000000..a978a705d2
--- /dev/null
+++ b/docs/build/html/api/contracts/-crowd-fund/-campaign/to-string.html
@@ -0,0 +1,15 @@
+
+
+CrowdFund.Campaign.toString -
+
+
+
+contracts / CrowdFund / Campaign / toString
+
+toString
+
+fun toString ( ) : String
+
+
+
+
diff --git a/docs/build/html/api/contracts/-crowd-fund/-commands/-close/-init-.html b/docs/build/html/api/contracts/-crowd-fund/-commands/-close/-init-.html
new file mode 100644
index 0000000000..f11ce6dfbf
--- /dev/null
+++ b/docs/build/html/api/contracts/-crowd-fund/-commands/-close/-init-.html
@@ -0,0 +1,14 @@
+
+
+CrowdFund.Commands.Close. -
+
+
+
+contracts / CrowdFund / Commands / Close / <init>
+
+<init>
+Close ( )
+
+
+
+
diff --git a/docs/build/html/api/contracts/-crowd-fund/-commands/-close/index.html b/docs/build/html/api/contracts/-crowd-fund/-commands/-close/index.html
new file mode 100644
index 0000000000..ea6b929738
--- /dev/null
+++ b/docs/build/html/api/contracts/-crowd-fund/-commands/-close/index.html
@@ -0,0 +1,42 @@
+
+
+CrowdFund.Commands.Close -
+
+
+
+contracts / CrowdFund / Commands / Close
+
+Close
+class Close : TypeOnlyCommandData , Commands
+
+
+Constructors
+
+
+
+
+<init>
+
+Close ( )
+
+
+
+Inherited Functions
+
+
+
+
+equals
+
+open fun equals ( other : Any ? ) : Boolean
+
+
+
+hashCode
+
+open fun hashCode ( ) : <ERROR CLASS>
+
+
+
+
+
diff --git a/docs/build/html/api/contracts/-crowd-fund/-commands/-pledge/-init-.html b/docs/build/html/api/contracts/-crowd-fund/-commands/-pledge/-init-.html
new file mode 100644
index 0000000000..47942123f9
--- /dev/null
+++ b/docs/build/html/api/contracts/-crowd-fund/-commands/-pledge/-init-.html
@@ -0,0 +1,14 @@
+
+
+CrowdFund.Commands.Pledge. -
+
+
+
+contracts / CrowdFund / Commands / Pledge / <init>
+
+<init>
+Pledge ( )
+
+
+
+
diff --git a/docs/build/html/api/contracts/-crowd-fund/-commands/-pledge/index.html b/docs/build/html/api/contracts/-crowd-fund/-commands/-pledge/index.html
new file mode 100644
index 0000000000..06a44297b2
--- /dev/null
+++ b/docs/build/html/api/contracts/-crowd-fund/-commands/-pledge/index.html
@@ -0,0 +1,42 @@
+
+
+CrowdFund.Commands.Pledge -
+
+
+
+contracts / CrowdFund / Commands / Pledge
+
+Pledge
+class Pledge : TypeOnlyCommandData , Commands
+
+
+Constructors
+
+
+
+
+<init>
+
+Pledge ( )
+
+
+
+Inherited Functions
+
+
+
+
+equals
+
+open fun equals ( other : Any ? ) : Boolean
+
+
+
+hashCode
+
+open fun hashCode ( ) : <ERROR CLASS>
+
+
+
+
+
diff --git a/docs/build/html/api/contracts/-crowd-fund/-commands/-register/-init-.html b/docs/build/html/api/contracts/-crowd-fund/-commands/-register/-init-.html
new file mode 100644
index 0000000000..22df21abc1
--- /dev/null
+++ b/docs/build/html/api/contracts/-crowd-fund/-commands/-register/-init-.html
@@ -0,0 +1,14 @@
+
+
+CrowdFund.Commands.Register. -
+
+
+
+contracts / CrowdFund / Commands / Register / <init>
+
+<init>
+Register ( )
+
+
+
+
diff --git a/docs/build/html/api/contracts/-crowd-fund/-commands/-register/index.html b/docs/build/html/api/contracts/-crowd-fund/-commands/-register/index.html
new file mode 100644
index 0000000000..0167d7b0c1
--- /dev/null
+++ b/docs/build/html/api/contracts/-crowd-fund/-commands/-register/index.html
@@ -0,0 +1,42 @@
+
+
+CrowdFund.Commands.Register -
+
+
+
+contracts / CrowdFund / Commands / Register
+
+Register
+class Register : TypeOnlyCommandData , Commands
+
+
+Constructors
+
+
+
+
+<init>
+
+Register ( )
+
+
+
+Inherited Functions
+
+
+
+
+equals
+
+open fun equals ( other : Any ? ) : Boolean
+
+
+
+hashCode
+
+open fun hashCode ( ) : <ERROR CLASS>
+
+
+
+
+
diff --git a/docs/build/html/api/contracts/-crowd-fund/-commands/index.html b/docs/build/html/api/contracts/-crowd-fund/-commands/index.html
new file mode 100644
index 0000000000..f9e012fe78
--- /dev/null
+++ b/docs/build/html/api/contracts/-crowd-fund/-commands/index.html
@@ -0,0 +1,60 @@
+
+
+CrowdFund.Commands -
+
+
+
+contracts / CrowdFund / Commands
+
+Commands
+interface Commands : CommandData
+
+
+Types
+
+Inheritors
+
+
+
diff --git a/docs/build/html/api/contracts/-crowd-fund/-init-.html b/docs/build/html/api/contracts/-crowd-fund/-init-.html
new file mode 100644
index 0000000000..b87f6b9808
--- /dev/null
+++ b/docs/build/html/api/contracts/-crowd-fund/-init-.html
@@ -0,0 +1,32 @@
+
+
+CrowdFund. -
+
+
+
+contracts / CrowdFund / <init>
+
+<init>
+CrowdFund ( )
+This is a basic crowd funding contract. It allows a party to create a funding opportunity, then for others to
+pledge during the funding period , and then for the party to either accept the funding (if the target has been reached)
+return the funds to the pledge-makers (if the target has not been reached).
+DiscussionThis method of modelling a crowdfund is similar to how itd be done in Ethereum. The state is essentially a database
+in which transactions evolve it over time. The state transition model we are using here though means its possible
+to do it in a different approach, with some additional (not yet implemented) extensions to the model. In the UTXO
+model you can do something more like the Lighthouse application (https://www.vinumeris.com/lighthouse) in which
+the campaign data and peoples pledges are transmitted out of band, with a pledge being a partially signed
+transaction which is valid only when merged with other transactions. The pledges can then be combined by the project
+owner at the point at which sufficient amounts of money have been gathered, and this creates a valid transaction
+that claims the money.
+TODO: Prototype this second variant of crowdfunding once the core model has been sufficiently extended.
+TODO: Experiment with the use of the javax.validation API to simplify the validation logic by annotating state members.
+See JIRA bug PD-21 for further discussion and followup.
+
+
+Author
+James Carlyle
+
+
+
+
diff --git a/docs/build/html/api/contracts/-crowd-fund/-pledge/-init-.html b/docs/build/html/api/contracts/-crowd-fund/-pledge/-init-.html
new file mode 100644
index 0000000000..3131431ae9
--- /dev/null
+++ b/docs/build/html/api/contracts/-crowd-fund/-pledge/-init-.html
@@ -0,0 +1,14 @@
+
+
+CrowdFund.Pledge. -
+
+
+
+contracts / CrowdFund / Pledge / <init>
+
+<init>
+Pledge ( owner : PublicKey , amount : Amount )
+
+
+
+
diff --git a/docs/build/html/api/contracts/-crowd-fund/-pledge/amount.html b/docs/build/html/api/contracts/-crowd-fund/-pledge/amount.html
new file mode 100644
index 0000000000..85d9aec14f
--- /dev/null
+++ b/docs/build/html/api/contracts/-crowd-fund/-pledge/amount.html
@@ -0,0 +1,15 @@
+
+
+CrowdFund.Pledge.amount -
+
+
+
+contracts / CrowdFund / Pledge / amount
+
+amount
+
+val amount : Amount
+
+
+
+
diff --git a/docs/build/html/api/contracts/-crowd-fund/-pledge/index.html b/docs/build/html/api/contracts/-crowd-fund/-pledge/index.html
new file mode 100644
index 0000000000..dd43ef2737
--- /dev/null
+++ b/docs/build/html/api/contracts/-crowd-fund/-pledge/index.html
@@ -0,0 +1,42 @@
+
+
+CrowdFund.Pledge -
+
+
+
+contracts / CrowdFund / Pledge
+
+Pledge
+data class Pledge
+
+
+Constructors
+
+Properties
+
+
+
diff --git a/docs/build/html/api/contracts/-crowd-fund/-pledge/owner.html b/docs/build/html/api/contracts/-crowd-fund/-pledge/owner.html
new file mode 100644
index 0000000000..037e585180
--- /dev/null
+++ b/docs/build/html/api/contracts/-crowd-fund/-pledge/owner.html
@@ -0,0 +1,15 @@
+
+
+CrowdFund.Pledge.owner -
+
+
+
+contracts / CrowdFund / Pledge / owner
+
+owner
+
+val owner : PublicKey
+
+
+
+
diff --git a/docs/build/html/api/contracts/-crowd-fund/-state/-init-.html b/docs/build/html/api/contracts/-crowd-fund/-state/-init-.html
new file mode 100644
index 0000000000..8bfa9ace1a
--- /dev/null
+++ b/docs/build/html/api/contracts/-crowd-fund/-state/-init-.html
@@ -0,0 +1,14 @@
+
+
+CrowdFund.State. -
+
+
+
+contracts / CrowdFund / State / <init>
+
+<init>
+State ( campaign : Campaign , closed : Boolean = false, pledges : List < Pledge > = ArrayList())
+
+
+
+
diff --git a/docs/build/html/api/contracts/-crowd-fund/-state/campaign.html b/docs/build/html/api/contracts/-crowd-fund/-state/campaign.html
new file mode 100644
index 0000000000..47d993e7ec
--- /dev/null
+++ b/docs/build/html/api/contracts/-crowd-fund/-state/campaign.html
@@ -0,0 +1,15 @@
+
+
+CrowdFund.State.campaign -
+
+
+
+contracts / CrowdFund / State / campaign
+
+campaign
+
+val campaign : Campaign
+
+
+
+
diff --git a/docs/build/html/api/contracts/-crowd-fund/-state/closed.html b/docs/build/html/api/contracts/-crowd-fund/-state/closed.html
new file mode 100644
index 0000000000..a7ff3f4eb4
--- /dev/null
+++ b/docs/build/html/api/contracts/-crowd-fund/-state/closed.html
@@ -0,0 +1,15 @@
+
+
+CrowdFund.State.closed -
+
+
+
+contracts / CrowdFund / State / closed
+
+closed
+
+val closed : Boolean
+
+
+
+
diff --git a/docs/build/html/api/contracts/-crowd-fund/-state/contract.html b/docs/build/html/api/contracts/-crowd-fund/-state/contract.html
new file mode 100644
index 0000000000..d2cab1c1ac
--- /dev/null
+++ b/docs/build/html/api/contracts/-crowd-fund/-state/contract.html
@@ -0,0 +1,17 @@
+
+
+CrowdFund.State.contract -
+
+
+
+contracts / CrowdFund / State / contract
+
+contract
+
+val contract : CrowdFund
+Overrides ContractState.contract
+Contract by which the state belongs
+
+
+
+
diff --git a/docs/build/html/api/contracts/-crowd-fund/-state/index.html b/docs/build/html/api/contracts/-crowd-fund/-state/index.html
new file mode 100644
index 0000000000..f44878fda0
--- /dev/null
+++ b/docs/build/html/api/contracts/-crowd-fund/-state/index.html
@@ -0,0 +1,61 @@
+
+
+CrowdFund.State -
+
+
+
+contracts / CrowdFund / State
+
+State
+data class State : ContractState
+
+
+Constructors
+
+
+
+
+<init>
+
+State ( campaign : Campaign , closed : Boolean = false, pledges : List < Pledge > = ArrayList())
+
+
+
+Properties
+
+
+
diff --git a/docs/build/html/api/contracts/-crowd-fund/-state/pledged-amount.html b/docs/build/html/api/contracts/-crowd-fund/-state/pledged-amount.html
new file mode 100644
index 0000000000..6e9610ac7f
--- /dev/null
+++ b/docs/build/html/api/contracts/-crowd-fund/-state/pledged-amount.html
@@ -0,0 +1,15 @@
+
+
+CrowdFund.State.pledgedAmount -
+
+
+
+contracts / CrowdFund / State / pledgedAmount
+
+pledgedAmount
+
+val pledgedAmount : Amount
+
+
+
+
diff --git a/docs/build/html/api/contracts/-crowd-fund/-state/pledges.html b/docs/build/html/api/contracts/-crowd-fund/-state/pledges.html
new file mode 100644
index 0000000000..cc06a495fb
--- /dev/null
+++ b/docs/build/html/api/contracts/-crowd-fund/-state/pledges.html
@@ -0,0 +1,15 @@
+
+
+CrowdFund.State.pledges -
+
+
+
+contracts / CrowdFund / State / pledges
+
+pledges
+
+val pledges : List < Pledge >
+
+
+
+
diff --git a/docs/build/html/api/contracts/-crowd-fund/generate-close.html b/docs/build/html/api/contracts/-crowd-fund/generate-close.html
new file mode 100644
index 0000000000..a79c87e28c
--- /dev/null
+++ b/docs/build/html/api/contracts/-crowd-fund/generate-close.html
@@ -0,0 +1,15 @@
+
+
+CrowdFund.generateClose -
+
+
+
+contracts / CrowdFund / generateClose
+
+generateClose
+
+fun generateClose ( tx : TransactionBuilder , campaign : StateAndRef < State > , wallet : List < StateAndRef < State > > ) : Unit
+
+
+
+
diff --git a/docs/build/html/api/contracts/-crowd-fund/generate-pledge.html b/docs/build/html/api/contracts/-crowd-fund/generate-pledge.html
new file mode 100644
index 0000000000..acbdad624b
--- /dev/null
+++ b/docs/build/html/api/contracts/-crowd-fund/generate-pledge.html
@@ -0,0 +1,16 @@
+
+
+CrowdFund.generatePledge -
+
+
+
+contracts / CrowdFund / generatePledge
+
+generatePledge
+
+fun generatePledge ( tx : TransactionBuilder , campaign : StateAndRef < State > , subscriber : PublicKey ) : Unit
+Updates the given partial transaction with an input/output/command to fund the opportunity.
+
+
+
+
diff --git a/docs/build/html/api/contracts/-crowd-fund/generate-register.html b/docs/build/html/api/contracts/-crowd-fund/generate-register.html
new file mode 100644
index 0000000000..1462ebbd49
--- /dev/null
+++ b/docs/build/html/api/contracts/-crowd-fund/generate-register.html
@@ -0,0 +1,17 @@
+
+
+CrowdFund.generateRegister -
+
+
+
+contracts / CrowdFund / generateRegister
+
+generateRegister
+
+fun generateRegister ( owner : PartyReference , fundingTarget : Amount , fundingName : String , closingTime : Instant ) : TransactionBuilder
+Returns a transaction that registers a crowd-funding campaing, owned by the issuing institutions key. Does not update
+an existing transaction because its not possible to register multiple campaigns in a single transaction
+
+
+
+
diff --git a/docs/build/html/api/contracts/-crowd-fund/index.html b/docs/build/html/api/contracts/-crowd-fund/index.html
new file mode 100644
index 0000000000..a5a5ae0583
--- /dev/null
+++ b/docs/build/html/api/contracts/-crowd-fund/index.html
@@ -0,0 +1,124 @@
+
+
+CrowdFund -
+
+
+
+contracts / CrowdFund
+
+CrowdFund
+class CrowdFund : Contract
+This is a basic crowd funding contract. It allows a party to create a funding opportunity, then for others to
+pledge during the funding period , and then for the party to either accept the funding (if the target has been reached)
+return the funds to the pledge-makers (if the target has not been reached).
+DiscussionThis method of modelling a crowdfund is similar to how itd be done in Ethereum. The state is essentially a database
+in which transactions evolve it over time. The state transition model we are using here though means its possible
+to do it in a different approach, with some additional (not yet implemented) extensions to the model. In the UTXO
+model you can do something more like the Lighthouse application (https://www.vinumeris.com/lighthouse) in which
+the campaign data and peoples pledges are transmitted out of band, with a pledge being a partially signed
+transaction which is valid only when merged with other transactions. The pledges can then be combined by the project
+owner at the point at which sufficient amounts of money have been gathered, and this creates a valid transaction
+that claims the money.
+TODO: Prototype this second variant of crowdfunding once the core model has been sufficiently extended.
+TODO: Experiment with the use of the javax.validation API to simplify the validation logic by annotating state members.
+See JIRA bug PD-21 for further discussion and followup.
+
+
+Author
+James Carlyle
+
+
+Types
+
+Constructors
+
+
+
+
+<init>
+
+CrowdFund ( )
This is a basic crowd funding contract. It allows a party to create a funding opportunity, then for others to
+pledge during the funding period , and then for the party to either accept the funding (if the target has been reached)
+return the funds to the pledge-makers (if the target has not been reached).
+
+
+
+
+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
+
+
+
+
+generateClose
+
+fun generateClose ( tx : TransactionBuilder , campaign : StateAndRef < State > , wallet : List < StateAndRef < State > > ) : Unit
+
+
+
+generatePledge
+
+fun generatePledge ( tx : TransactionBuilder , campaign : StateAndRef < State > , subscriber : PublicKey ) : Unit
Updates the given partial transaction with an input/output/command to fund the opportunity.
+
+
+
+
+generateRegister
+
+fun generateRegister ( owner : PartyReference , fundingTarget : Amount , fundingName : String , closingTime : Instant ) : TransactionBuilder
Returns a transaction that registers a crowd-funding campaing, owned by the issuing institutions key. Does not update
+an existing transaction because its not possible to register multiple campaigns in a single transaction
+
+
+
+
+verify
+
+fun verify ( tx : TransactionForVerification ) : 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/contracts/-crowd-fund/legal-contract-reference.html b/docs/build/html/api/contracts/-crowd-fund/legal-contract-reference.html
new file mode 100644
index 0000000000..37f5459898
--- /dev/null
+++ b/docs/build/html/api/contracts/-crowd-fund/legal-contract-reference.html
@@ -0,0 +1,18 @@
+
+
+CrowdFund.legalContractReference -
+
+
+
+contracts / CrowdFund / 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/contracts/-crowd-fund/verify.html b/docs/build/html/api/contracts/-crowd-fund/verify.html
new file mode 100644
index 0000000000..696d65a209
--- /dev/null
+++ b/docs/build/html/api/contracts/-crowd-fund/verify.html
@@ -0,0 +1,20 @@
+
+
+CrowdFund.verify -
+
+
+
+contracts / CrowdFund / verify
+
+verify
+
+fun verify ( tx : TransactionForVerification ) : 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/contracts/-d-u-m-m-y_-p-r-o-g-r-a-m_-i-d.html b/docs/build/html/api/contracts/-d-u-m-m-y_-p-r-o-g-r-a-m_-i-d.html
new file mode 100644
index 0000000000..599bdbbd29
--- /dev/null
+++ b/docs/build/html/api/contracts/-d-u-m-m-y_-p-r-o-g-r-a-m_-i-d.html
@@ -0,0 +1,15 @@
+
+
+DUMMY_PROGRAM_ID -
+
+
+
+contracts / DUMMY_PROGRAM_ID
+
+DUMMY_PROGRAM_ID
+
+val DUMMY_PROGRAM_ID : DummyContract
+
+
+
+
diff --git a/docs/build/html/api/contracts/-deal-state/generate-agreement.html b/docs/build/html/api/contracts/-deal-state/generate-agreement.html
new file mode 100644
index 0000000000..c8e252b7a5
--- /dev/null
+++ b/docs/build/html/api/contracts/-deal-state/generate-agreement.html
@@ -0,0 +1,22 @@
+
+
+DealState.generateAgreement -
+
+
+
+contracts / DealState / generateAgreement
+
+generateAgreement
+
+abstract fun generateAgreement ( ) : 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/contracts/-deal-state/index.html b/docs/build/html/api/contracts/-deal-state/index.html
new file mode 100644
index 0000000000..9c6062cec7
--- /dev/null
+++ b/docs/build/html/api/contracts/-deal-state/index.html
@@ -0,0 +1,102 @@
+
+
+DealState -
+
+
+
+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 : Array < 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
+
+
+
+
+thread
+
+abstract val thread : SecureHash
Unique thread id within the wallets of all parties
+
+
+
+
+Functions
+
+
+
+
+generateAgreement
+
+abstract fun generateAgreement ( ) : 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
+
+
+
+
+withPublicKey
+
+abstract fun withPublicKey ( before : Party , after : PublicKey ) : DealState
+
+
+
+Inherited Functions
+
+
+
+
+isRelevant
+
+abstract fun isRelevant ( ourKeys : Set < PublicKey > ) : Boolean
true if this should be tracked by our wallet(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/contracts/-deal-state/parties.html b/docs/build/html/api/contracts/-deal-state/parties.html
new file mode 100644
index 0000000000..b7b4b39fca
--- /dev/null
+++ b/docs/build/html/api/contracts/-deal-state/parties.html
@@ -0,0 +1,16 @@
+
+
+DealState.parties -
+
+
+
+contracts / DealState / parties
+
+parties
+
+abstract val parties : Array < Party >
+Exposes the Parties involved in a generic way
+
+
+
+
diff --git a/docs/build/html/api/contracts/-deal-state/ref.html b/docs/build/html/api/contracts/-deal-state/ref.html
new file mode 100644
index 0000000000..1dfd7b8849
--- /dev/null
+++ b/docs/build/html/api/contracts/-deal-state/ref.html
@@ -0,0 +1,16 @@
+
+
+DealState.ref -
+
+
+
+contracts / DealState / ref
+
+ref
+
+abstract val ref : String
+Human readable well known reference (e.g. trade reference)
+
+
+
+
diff --git a/docs/build/html/api/contracts/-deal-state/with-public-key.html b/docs/build/html/api/contracts/-deal-state/with-public-key.html
new file mode 100644
index 0000000000..3c52c95858
--- /dev/null
+++ b/docs/build/html/api/contracts/-deal-state/with-public-key.html
@@ -0,0 +1,15 @@
+
+
+DealState.withPublicKey -
+
+
+
+contracts / DealState / withPublicKey
+
+withPublicKey
+
+abstract fun withPublicKey ( before : Party , after : PublicKey ) : DealState
+
+
+
+
diff --git a/docs/build/html/api/contracts/-dummy-contract/-commands/-create/-init-.html b/docs/build/html/api/contracts/-dummy-contract/-commands/-create/-init-.html
new file mode 100644
index 0000000000..ac53a90846
--- /dev/null
+++ b/docs/build/html/api/contracts/-dummy-contract/-commands/-create/-init-.html
@@ -0,0 +1,14 @@
+
+
+DummyContract.Commands.Create. -
+
+
+
+contracts / DummyContract / Commands / Create / <init>
+
+<init>
+Create ( )
+
+
+
+
diff --git a/docs/build/html/api/contracts/-dummy-contract/-commands/-create/index.html b/docs/build/html/api/contracts/-dummy-contract/-commands/-create/index.html
new file mode 100644
index 0000000000..9502a44f8a
--- /dev/null
+++ b/docs/build/html/api/contracts/-dummy-contract/-commands/-create/index.html
@@ -0,0 +1,42 @@
+
+
+DummyContract.Commands.Create -
+
+
+
+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/contracts/-dummy-contract/-commands/index.html b/docs/build/html/api/contracts/-dummy-contract/-commands/index.html
new file mode 100644
index 0000000000..1cc55db2b2
--- /dev/null
+++ b/docs/build/html/api/contracts/-dummy-contract/-commands/index.html
@@ -0,0 +1,36 @@
+
+
+DummyContract.Commands -
+
+
+
+contracts / DummyContract / Commands
+
+Commands
+interface Commands : CommandData
+
+
+Types
+
+Inheritors
+
+
+
diff --git a/docs/build/html/api/contracts/-dummy-contract/-init-.html b/docs/build/html/api/contracts/-dummy-contract/-init-.html
new file mode 100644
index 0000000000..77db1224c8
--- /dev/null
+++ b/docs/build/html/api/contracts/-dummy-contract/-init-.html
@@ -0,0 +1,14 @@
+
+
+DummyContract. -
+
+
+
+contracts / DummyContract / <init>
+
+<init>
+DummyContract ( )
+
+
+
+
diff --git a/docs/build/html/api/contracts/-dummy-contract/-state/-init-.html b/docs/build/html/api/contracts/-dummy-contract/-state/-init-.html
new file mode 100644
index 0000000000..415c70aea7
--- /dev/null
+++ b/docs/build/html/api/contracts/-dummy-contract/-state/-init-.html
@@ -0,0 +1,14 @@
+
+
+DummyContract.State. -
+
+
+
+contracts / DummyContract / State / <init>
+
+<init>
+State ( magicNumber : Int = 0)
+
+
+
+
diff --git a/docs/build/html/api/contracts/-dummy-contract/-state/contract.html b/docs/build/html/api/contracts/-dummy-contract/-state/contract.html
new file mode 100644
index 0000000000..49eee5a787
--- /dev/null
+++ b/docs/build/html/api/contracts/-dummy-contract/-state/contract.html
@@ -0,0 +1,17 @@
+
+
+DummyContract.State.contract -
+
+
+
+contracts / DummyContract / State / contract
+
+contract
+
+val contract : DummyContract
+Overrides ContractState.contract
+Contract by which the state belongs
+
+
+
+
diff --git a/docs/build/html/api/contracts/-dummy-contract/-state/index.html b/docs/build/html/api/contracts/-dummy-contract/-state/index.html
new file mode 100644
index 0000000000..59158bb0aa
--- /dev/null
+++ b/docs/build/html/api/contracts/-dummy-contract/-state/index.html
@@ -0,0 +1,43 @@
+
+
+DummyContract.State -
+
+
+
+contracts / DummyContract / State
+
+State
+class State : ContractState
+
+
+Constructors
+
+
+
+
+<init>
+
+State ( magicNumber : Int = 0)
+
+
+
+Properties
+
+
+
diff --git a/docs/build/html/api/contracts/-dummy-contract/-state/magic-number.html b/docs/build/html/api/contracts/-dummy-contract/-state/magic-number.html
new file mode 100644
index 0000000000..6151c4da66
--- /dev/null
+++ b/docs/build/html/api/contracts/-dummy-contract/-state/magic-number.html
@@ -0,0 +1,15 @@
+
+
+DummyContract.State.magicNumber -
+
+
+
+contracts / DummyContract / State / magicNumber
+
+magicNumber
+
+val magicNumber : Int
+
+
+
+
diff --git a/docs/build/html/api/contracts/-dummy-contract/generate-initial.html b/docs/build/html/api/contracts/-dummy-contract/generate-initial.html
new file mode 100644
index 0000000000..19657ff999
--- /dev/null
+++ b/docs/build/html/api/contracts/-dummy-contract/generate-initial.html
@@ -0,0 +1,15 @@
+
+
+DummyContract.generateInitial -
+
+
+
+contracts / DummyContract / generateInitial
+
+generateInitial
+
+fun generateInitial ( owner : PartyReference , magicNumber : Int ) : TransactionBuilder
+
+
+
+
diff --git a/docs/build/html/api/contracts/-dummy-contract/index.html b/docs/build/html/api/contracts/-dummy-contract/index.html
new file mode 100644
index 0000000000..11dd998b8c
--- /dev/null
+++ b/docs/build/html/api/contracts/-dummy-contract/index.html
@@ -0,0 +1,76 @@
+
+
+DummyContract -
+
+
+
+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
+
+
+
+
+generateInitial
+
+fun generateInitial ( owner : PartyReference , magicNumber : Int ) : TransactionBuilder
+
+
+
+verify
+
+fun verify ( tx : TransactionForVerification ) : 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/contracts/-dummy-contract/legal-contract-reference.html b/docs/build/html/api/contracts/-dummy-contract/legal-contract-reference.html
new file mode 100644
index 0000000000..63bbb94b13
--- /dev/null
+++ b/docs/build/html/api/contracts/-dummy-contract/legal-contract-reference.html
@@ -0,0 +1,18 @@
+
+
+DummyContract.legalContractReference -
+
+
+
+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/contracts/-dummy-contract/verify.html b/docs/build/html/api/contracts/-dummy-contract/verify.html
new file mode 100644
index 0000000000..f71aa682b9
--- /dev/null
+++ b/docs/build/html/api/contracts/-dummy-contract/verify.html
@@ -0,0 +1,20 @@
+
+
+DummyContract.verify -
+
+
+
+contracts / DummyContract / verify
+
+verify
+
+fun verify ( tx : TransactionForVerification ) : 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/contracts/-event/-init-.html b/docs/build/html/api/contracts/-event/-init-.html
new file mode 100644
index 0000000000..4bf59a4296
--- /dev/null
+++ b/docs/build/html/api/contracts/-event/-init-.html
@@ -0,0 +1,15 @@
+
+
+Event. -
+
+
+
+contracts / Event / <init>
+
+<init>
+Event ( date : LocalDate )
+Event superclass - everything happens on a date.
+
+
+
+
diff --git a/docs/build/html/api/contracts/-event/date.html b/docs/build/html/api/contracts/-event/date.html
new file mode 100644
index 0000000000..5707dbac78
--- /dev/null
+++ b/docs/build/html/api/contracts/-event/date.html
@@ -0,0 +1,15 @@
+
+
+Event.date -
+
+
+
+contracts / Event / date
+
+date
+
+val date : LocalDate
+
+
+
+
diff --git a/docs/build/html/api/contracts/-event/index.html b/docs/build/html/api/contracts/-event/index.html
new file mode 100644
index 0000000000..079617066e
--- /dev/null
+++ b/docs/build/html/api/contracts/-event/index.html
@@ -0,0 +1,50 @@
+
+
+Event -
+
+
+
+contracts / Event
+
+Event
+open class Event
+Event superclass - everything happens on a date.
+
+
+Constructors
+
+
+
+
+<init>
+
+Event ( date : LocalDate )
Event superclass - everything happens on a date.
+
+
+
+
+Properties
+
+Inheritors
+
+
+
+
+PaymentEvent
+
+abstract class PaymentEvent : Event
Top level PaymentEvent class - represents an obligation to pay an amount on a given date, which may be either in the past or the future.
+
+
+
+
+
+
diff --git a/docs/build/html/api/contracts/-fixable-deal-state/generate-fix.html b/docs/build/html/api/contracts/-fixable-deal-state/generate-fix.html
new file mode 100644
index 0000000000..9c852008ec
--- /dev/null
+++ b/docs/build/html/api/contracts/-fixable-deal-state/generate-fix.html
@@ -0,0 +1,20 @@
+
+
+FixableDealState.generateFix -
+
+
+
+contracts / FixableDealState / generateFix
+
+generateFix
+
+abstract fun generateFix ( ptx : TransactionBuilder , oldStateRef : StateRef , 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/contracts/-fixable-deal-state/index.html b/docs/build/html/api/contracts/-fixable-deal-state/index.html
new file mode 100644
index 0000000000..d7cebbd7cd
--- /dev/null
+++ b/docs/build/html/api/contracts/-fixable-deal-state/index.html
@@ -0,0 +1,96 @@
+
+
+FixableDealState -
+
+
+
+contracts / FixableDealState
+
+FixableDealState
+interface FixableDealState : DealState
+Interface adding fixing specific methods
+
+
+Inherited Properties
+
+
+
+
+parties
+
+abstract val parties : Array < 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 ( ) : 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
+
+
+
+
+withPublicKey
+
+abstract fun withPublicKey ( before : Party , after : PublicKey ) : DealState
+
+
+
+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 : FixableDealState
The state class contains the 4 major data classes
+
+
+
+
+
+
diff --git a/docs/build/html/api/contracts/-fixable-deal-state/next-fixing-of.html b/docs/build/html/api/contracts/-fixable-deal-state/next-fixing-of.html
new file mode 100644
index 0000000000..b8bc1a4b71
--- /dev/null
+++ b/docs/build/html/api/contracts/-fixable-deal-state/next-fixing-of.html
@@ -0,0 +1,19 @@
+
+
+FixableDealState.nextFixingOf -
+
+
+
+contracts / FixableDealState / nextFixingOf
+
+nextFixingOf
+
+abstract fun nextFixingOf ( ) : FixOf ?
+When is the next fixing and what is the fixing for?
+TODO: In future we would use this to register for an event to trigger a/the fixing protocol
+
+
+
+
+
+
diff --git a/docs/build/html/api/contracts/-fixed-rate-payment-event/-c-s-v-header.html b/docs/build/html/api/contracts/-fixed-rate-payment-event/-c-s-v-header.html
new file mode 100644
index 0000000000..95aec7f022
--- /dev/null
+++ b/docs/build/html/api/contracts/-fixed-rate-payment-event/-c-s-v-header.html
@@ -0,0 +1,15 @@
+
+
+FixedRatePaymentEvent.CSVHeader -
+
+
+
+contracts / FixedRatePaymentEvent / CSVHeader
+
+CSVHeader
+
+val CSVHeader : String
+
+
+
+
diff --git a/docs/build/html/api/contracts/-fixed-rate-payment-event/-init-.html b/docs/build/html/api/contracts/-fixed-rate-payment-event/-init-.html
new file mode 100644
index 0000000000..28756419a1
--- /dev/null
+++ b/docs/build/html/api/contracts/-fixed-rate-payment-event/-init-.html
@@ -0,0 +1,16 @@
+
+
+FixedRatePaymentEvent. -
+
+
+
+contracts / FixedRatePaymentEvent / <init>
+
+<init>
+FixedRatePaymentEvent ( date : LocalDate , accrualStartDate : LocalDate , accrualEndDate : LocalDate , dayCountBasisDay : DayCountBasisDay , dayCountBasisYear : DayCountBasisYear , notional : Amount , rate : Rate )
+Basic class for the Fixed Rate Payments on the fixed leg - see RatePaymentEvent
+Assumes that the rate is valid.
+
+
+
+
diff --git a/docs/build/html/api/contracts/-fixed-rate-payment-event/flow.html b/docs/build/html/api/contracts/-fixed-rate-payment-event/flow.html
new file mode 100644
index 0000000000..3ac11d5de1
--- /dev/null
+++ b/docs/build/html/api/contracts/-fixed-rate-payment-event/flow.html
@@ -0,0 +1,16 @@
+
+
+FixedRatePaymentEvent.flow -
+
+
+
+contracts / FixedRatePaymentEvent / flow
+
+flow
+
+val flow : Amount
+Overrides RatePaymentEvent.flow
+
+
+
+
diff --git a/docs/build/html/api/contracts/-fixed-rate-payment-event/index.html b/docs/build/html/api/contracts/-fixed-rate-payment-event/index.html
new file mode 100644
index 0000000000..d2a4d6f811
--- /dev/null
+++ b/docs/build/html/api/contracts/-fixed-rate-payment-event/index.html
@@ -0,0 +1,132 @@
+
+
+FixedRatePaymentEvent -
+
+
+
+contracts / FixedRatePaymentEvent
+
+FixedRatePaymentEvent
+class FixedRatePaymentEvent : RatePaymentEvent
+Basic class for the Fixed Rate Payments on the fixed leg - see RatePaymentEvent
+Assumes that the rate is valid.
+
+
+Constructors
+
+Properties
+
+Inherited Properties
+
+Functions
+
+
+
+
+toString
+
+fun toString ( ) : String
+
+
+
+Inherited Functions
+
+Companion Object Properties
+
+
+
+
+CSVHeader
+
+val CSVHeader : String
+
+
+
+
+
diff --git a/docs/build/html/api/contracts/-fixed-rate-payment-event/to-string.html b/docs/build/html/api/contracts/-fixed-rate-payment-event/to-string.html
new file mode 100644
index 0000000000..628858f51a
--- /dev/null
+++ b/docs/build/html/api/contracts/-fixed-rate-payment-event/to-string.html
@@ -0,0 +1,15 @@
+
+
+FixedRatePaymentEvent.toString -
+
+
+
+contracts / FixedRatePaymentEvent / toString
+
+toString
+
+fun toString ( ) : String
+
+
+
+
diff --git a/docs/build/html/api/contracts/-fixed-rate/-init-.html b/docs/build/html/api/contracts/-fixed-rate/-init-.html
new file mode 100644
index 0000000000..3d706c48d3
--- /dev/null
+++ b/docs/build/html/api/contracts/-fixed-rate/-init-.html
@@ -0,0 +1,15 @@
+
+
+FixedRate. -
+
+
+
+contracts / FixedRate / <init>
+
+<init>
+FixedRate ( ratioUnit : RatioUnit )
+A very basic subclass to represent a fixed rate.
+
+
+
+
diff --git a/docs/build/html/api/contracts/-fixed-rate/index.html b/docs/build/html/api/contracts/-fixed-rate/index.html
new file mode 100644
index 0000000000..f5a6a32404
--- /dev/null
+++ b/docs/build/html/api/contracts/-fixed-rate/index.html
@@ -0,0 +1,66 @@
+
+
+FixedRate -
+
+
+
+contracts / FixedRate
+
+FixedRate
+class FixedRate : Rate
+A very basic subclass to represent a fixed rate.
+
+
+Constructors
+
+
+
+
+<init>
+
+FixedRate ( ratioUnit : RatioUnit )
A very basic subclass to represent a fixed rate.
+
+
+
+
+Inherited Properties
+
+Functions
+
+
+
+
+toString
+
+fun toString ( ) : String
+
+
+
+Inherited Functions
+
+
+
+
+equals
+
+open fun equals ( other : Any ? ) : Boolean
+
+
+
+hashCode
+
+open fun hashCode ( ) : Int
+
+
+
+
+
diff --git a/docs/build/html/api/contracts/-fixed-rate/to-string.html b/docs/build/html/api/contracts/-fixed-rate/to-string.html
new file mode 100644
index 0000000000..1487d96da2
--- /dev/null
+++ b/docs/build/html/api/contracts/-fixed-rate/to-string.html
@@ -0,0 +1,15 @@
+
+
+FixedRate.toString -
+
+
+
+contracts / FixedRate / toString
+
+toString
+
+fun toString ( ) : String
+
+
+
+
diff --git a/docs/build/html/api/contracts/-floating-rate-payment-event/-c-s-v-header.html b/docs/build/html/api/contracts/-floating-rate-payment-event/-c-s-v-header.html
new file mode 100644
index 0000000000..8e13bdc41c
--- /dev/null
+++ b/docs/build/html/api/contracts/-floating-rate-payment-event/-c-s-v-header.html
@@ -0,0 +1,15 @@
+
+
+FloatingRatePaymentEvent.CSVHeader -
+
+
+
+contracts / FloatingRatePaymentEvent / CSVHeader
+
+CSVHeader
+
+val CSVHeader : String
+
+
+
+
diff --git a/docs/build/html/api/contracts/-floating-rate-payment-event/-init-.html b/docs/build/html/api/contracts/-floating-rate-payment-event/-init-.html
new file mode 100644
index 0000000000..ff95f11fbc
--- /dev/null
+++ b/docs/build/html/api/contracts/-floating-rate-payment-event/-init-.html
@@ -0,0 +1,16 @@
+
+
+FloatingRatePaymentEvent. -
+
+
+
+contracts / FloatingRatePaymentEvent / <init>
+
+<init>
+FloatingRatePaymentEvent ( date : LocalDate , accrualStartDate : LocalDate , accrualEndDate : LocalDate , dayCountBasisDay : DayCountBasisDay , dayCountBasisYear : DayCountBasisYear , fixingDate : LocalDate , notional : Amount , rate : Rate )
+Basic class for the Floating Rate Payments on the floating leg - see RatePaymentEvent
+If the rate is null returns a zero payment. // TODO: Is this the desired behaviour?
+
+
+
+
diff --git a/docs/build/html/api/contracts/-floating-rate-payment-event/as-c-s-v.html b/docs/build/html/api/contracts/-floating-rate-payment-event/as-c-s-v.html
new file mode 100644
index 0000000000..5335b30094
--- /dev/null
+++ b/docs/build/html/api/contracts/-floating-rate-payment-event/as-c-s-v.html
@@ -0,0 +1,16 @@
+
+
+FloatingRatePaymentEvent.asCSV -
+
+
+
+contracts / FloatingRatePaymentEvent / asCSV
+
+asCSV
+
+fun asCSV ( ) : String
+Overrides RatePaymentEvent.asCSV
+
+
+
+
diff --git a/docs/build/html/api/contracts/-floating-rate-payment-event/fixing-date.html b/docs/build/html/api/contracts/-floating-rate-payment-event/fixing-date.html
new file mode 100644
index 0000000000..de243088ae
--- /dev/null
+++ b/docs/build/html/api/contracts/-floating-rate-payment-event/fixing-date.html
@@ -0,0 +1,15 @@
+
+
+FloatingRatePaymentEvent.fixingDate -
+
+
+
+contracts / FloatingRatePaymentEvent / fixingDate
+
+fixingDate
+
+val fixingDate : LocalDate
+
+
+
+
diff --git a/docs/build/html/api/contracts/-floating-rate-payment-event/flow.html b/docs/build/html/api/contracts/-floating-rate-payment-event/flow.html
new file mode 100644
index 0000000000..5e4567e5be
--- /dev/null
+++ b/docs/build/html/api/contracts/-floating-rate-payment-event/flow.html
@@ -0,0 +1,16 @@
+
+
+FloatingRatePaymentEvent.flow -
+
+
+
+contracts / FloatingRatePaymentEvent / flow
+
+flow
+
+val flow : Amount
+Overrides RatePaymentEvent.flow
+
+
+
+
diff --git a/docs/build/html/api/contracts/-floating-rate-payment-event/index.html b/docs/build/html/api/contracts/-floating-rate-payment-event/index.html
new file mode 100644
index 0000000000..37145a773b
--- /dev/null
+++ b/docs/build/html/api/contracts/-floating-rate-payment-event/index.html
@@ -0,0 +1,145 @@
+
+
+FloatingRatePaymentEvent -
+
+
+
+contracts / FloatingRatePaymentEvent
+
+FloatingRatePaymentEvent
+class FloatingRatePaymentEvent : RatePaymentEvent
+Basic class for the Floating Rate Payments on the floating leg - see RatePaymentEvent
+If the rate is null returns a zero payment. // TODO: Is this the desired behaviour?
+
+
+Constructors
+
+Properties
+
+Inherited Properties
+
+Functions
+
+
+
+
+asCSV
+
+fun asCSV ( ) : String
+
+
+
+toString
+
+fun toString ( ) : String
+
+
+
+withNewRate
+
+fun withNewRate ( newRate : Rate ) : FloatingRatePaymentEvent
Used for making immutables
+
+
+
+
+Inherited Functions
+
+Companion Object Properties
+
+
+
+
+CSVHeader
+
+val CSVHeader : String
+
+
+
+
+
diff --git a/docs/build/html/api/contracts/-floating-rate-payment-event/to-string.html b/docs/build/html/api/contracts/-floating-rate-payment-event/to-string.html
new file mode 100644
index 0000000000..7cf015a43e
--- /dev/null
+++ b/docs/build/html/api/contracts/-floating-rate-payment-event/to-string.html
@@ -0,0 +1,15 @@
+
+
+FloatingRatePaymentEvent.toString -
+
+
+
+contracts / FloatingRatePaymentEvent / toString
+
+toString
+
+fun toString ( ) : String
+
+
+
+
diff --git a/docs/build/html/api/contracts/-floating-rate-payment-event/with-new-rate.html b/docs/build/html/api/contracts/-floating-rate-payment-event/with-new-rate.html
new file mode 100644
index 0000000000..2c969decb9
--- /dev/null
+++ b/docs/build/html/api/contracts/-floating-rate-payment-event/with-new-rate.html
@@ -0,0 +1,16 @@
+
+
+FloatingRatePaymentEvent.withNewRate -
+
+
+
+contracts / FloatingRatePaymentEvent / withNewRate
+
+withNewRate
+
+fun withNewRate ( newRate : Rate ) : FloatingRatePaymentEvent
+Used for making immutables
+
+
+
+
diff --git a/docs/build/html/api/contracts/-floating-rate/-init-.html b/docs/build/html/api/contracts/-floating-rate/-init-.html
new file mode 100644
index 0000000000..9543cad6d0
--- /dev/null
+++ b/docs/build/html/api/contracts/-floating-rate/-init-.html
@@ -0,0 +1,15 @@
+
+
+FloatingRate. -
+
+
+
+contracts / FloatingRate / <init>
+
+<init>
+FloatingRate ( )
+The parent class of the Floating rate classes
+
+
+
+
diff --git a/docs/build/html/api/contracts/-floating-rate/index.html b/docs/build/html/api/contracts/-floating-rate/index.html
new file mode 100644
index 0000000000..3d58836780
--- /dev/null
+++ b/docs/build/html/api/contracts/-floating-rate/index.html
@@ -0,0 +1,68 @@
+
+
+FloatingRate -
+
+
+
+contracts / FloatingRate
+
+FloatingRate
+open class FloatingRate : Rate
+The parent class of the Floating rate classes
+
+
+Constructors
+
+
+
+
+<init>
+
+FloatingRate ( )
The parent class of the Floating rate classes
+
+
+
+
+Inherited Properties
+
+Inherited Functions
+
+
+
+
+equals
+
+open fun equals ( other : Any ? ) : Boolean
+
+
+
+hashCode
+
+open fun hashCode ( ) : Int
+
+
+
+Inheritors
+
+
+
+
+ReferenceRate
+
+class ReferenceRate : FloatingRate
So a reference rate is a rate that takes its value from a source at a given date
+e.g. LIBOR 6M as of 17 March 2016. Hence it requires a source (name) and a value date in the getAsOf(..) method.
+
+
+
+
+
+
diff --git a/docs/build/html/api/contracts/-i-r-s_-p-r-o-g-r-a-m_-i-d.html b/docs/build/html/api/contracts/-i-r-s_-p-r-o-g-r-a-m_-i-d.html
new file mode 100644
index 0000000000..a9870016b3
--- /dev/null
+++ b/docs/build/html/api/contracts/-i-r-s_-p-r-o-g-r-a-m_-i-d.html
@@ -0,0 +1,15 @@
+
+
+IRS_PROGRAM_ID -
+
+
+
+contracts / IRS_PROGRAM_ID
+
+IRS_PROGRAM_ID
+
+val IRS_PROGRAM_ID : InterestRateSwap
+
+
+
+
diff --git a/docs/build/html/api/contracts/-insufficient-balance-exception/-init-.html b/docs/build/html/api/contracts/-insufficient-balance-exception/-init-.html
new file mode 100644
index 0000000000..8968497aa1
--- /dev/null
+++ b/docs/build/html/api/contracts/-insufficient-balance-exception/-init-.html
@@ -0,0 +1,14 @@
+
+
+InsufficientBalanceException. -
+
+
+
+contracts / InsufficientBalanceException / <init>
+
+<init>
+InsufficientBalanceException ( amountMissing : Amount )
+
+
+
+
diff --git a/docs/build/html/api/contracts/-insufficient-balance-exception/amount-missing.html b/docs/build/html/api/contracts/-insufficient-balance-exception/amount-missing.html
new file mode 100644
index 0000000000..1859ebcc8b
--- /dev/null
+++ b/docs/build/html/api/contracts/-insufficient-balance-exception/amount-missing.html
@@ -0,0 +1,15 @@
+
+
+InsufficientBalanceException.amountMissing -
+
+
+
+contracts / InsufficientBalanceException / amountMissing
+
+amountMissing
+
+val amountMissing : Amount
+
+
+
+
diff --git a/docs/build/html/api/contracts/-insufficient-balance-exception/index.html b/docs/build/html/api/contracts/-insufficient-balance-exception/index.html
new file mode 100644
index 0000000000..eb79ffe2f4
--- /dev/null
+++ b/docs/build/html/api/contracts/-insufficient-balance-exception/index.html
@@ -0,0 +1,36 @@
+
+
+InsufficientBalanceException -
+
+
+
+contracts / InsufficientBalanceException
+
+InsufficientBalanceException
+class InsufficientBalanceException : Exception
+
+
+Constructors
+
+
+
+
+<init>
+
+InsufficientBalanceException ( amountMissing : Amount )
+
+
+
+Properties
+
+
+
diff --git a/docs/build/html/api/contracts/-interest-rate-swap/-calculation/-init-.html b/docs/build/html/api/contracts/-interest-rate-swap/-calculation/-init-.html
new file mode 100644
index 0000000000..106c73c07a
--- /dev/null
+++ b/docs/build/html/api/contracts/-interest-rate-swap/-calculation/-init-.html
@@ -0,0 +1,17 @@
+
+
+InterestRateSwap.Calculation. -
+
+
+
+contracts / InterestRateSwap / Calculation / <init>
+
+<init>
+Calculation ( expression : Expression , floatingLegPaymentSchedule : Map < LocalDate , FloatingRatePaymentEvent > , fixedLegPaymentSchedule : Map < LocalDate , FixedRatePaymentEvent > )
+The Calculation data class is "mutable" through out the life of the swap, as in, its the only thing that contains
+data that will changed from state to state (Recall that the design insists that everything is immutable, so we actually
+copy / update for each transition)
+
+
+
+
diff --git a/docs/build/html/api/contracts/-interest-rate-swap/-calculation/apply-fixing.html b/docs/build/html/api/contracts/-interest-rate-swap/-calculation/apply-fixing.html
new file mode 100644
index 0000000000..1c7c359238
--- /dev/null
+++ b/docs/build/html/api/contracts/-interest-rate-swap/-calculation/apply-fixing.html
@@ -0,0 +1,16 @@
+
+
+InterestRateSwap.Calculation.applyFixing -
+
+
+
+contracts / InterestRateSwap / Calculation / applyFixing
+
+applyFixing
+
+fun applyFixing ( date : LocalDate , newRate : Rate ) : Calculation
+Returns a copy after modifying (applying) the fixing for that date.
+
+
+
+
diff --git a/docs/build/html/api/contracts/-interest-rate-swap/-calculation/export-schedule.html b/docs/build/html/api/contracts/-interest-rate-swap/-calculation/export-schedule.html
new file mode 100644
index 0000000000..3796d4443a
--- /dev/null
+++ b/docs/build/html/api/contracts/-interest-rate-swap/-calculation/export-schedule.html
@@ -0,0 +1,15 @@
+
+
+InterestRateSwap.Calculation.exportSchedule -
+
+
+
+contracts / InterestRateSwap / Calculation / exportSchedule
+
+exportSchedule
+
+fun exportSchedule ( ) : Unit
+
+
+
+
diff --git a/docs/build/html/api/contracts/-interest-rate-swap/-calculation/expression.html b/docs/build/html/api/contracts/-interest-rate-swap/-calculation/expression.html
new file mode 100644
index 0000000000..b32d90038d
--- /dev/null
+++ b/docs/build/html/api/contracts/-interest-rate-swap/-calculation/expression.html
@@ -0,0 +1,15 @@
+
+
+InterestRateSwap.Calculation.expression -
+
+
+
+contracts / InterestRateSwap / Calculation / expression
+
+expression
+
+val expression : Expression
+
+
+
+
diff --git a/docs/build/html/api/contracts/-interest-rate-swap/-calculation/fixed-leg-payment-schedule.html b/docs/build/html/api/contracts/-interest-rate-swap/-calculation/fixed-leg-payment-schedule.html
new file mode 100644
index 0000000000..edac0b566f
--- /dev/null
+++ b/docs/build/html/api/contracts/-interest-rate-swap/-calculation/fixed-leg-payment-schedule.html
@@ -0,0 +1,15 @@
+
+
+InterestRateSwap.Calculation.fixedLegPaymentSchedule -
+
+
+
+contracts / InterestRateSwap / Calculation / fixedLegPaymentSchedule
+
+fixedLegPaymentSchedule
+
+val fixedLegPaymentSchedule : Map < LocalDate , FixedRatePaymentEvent >
+
+
+
+
diff --git a/docs/build/html/api/contracts/-interest-rate-swap/-calculation/floating-leg-payment-schedule.html b/docs/build/html/api/contracts/-interest-rate-swap/-calculation/floating-leg-payment-schedule.html
new file mode 100644
index 0000000000..0d4011afb5
--- /dev/null
+++ b/docs/build/html/api/contracts/-interest-rate-swap/-calculation/floating-leg-payment-schedule.html
@@ -0,0 +1,15 @@
+
+
+InterestRateSwap.Calculation.floatingLegPaymentSchedule -
+
+
+
+contracts / InterestRateSwap / Calculation / floatingLegPaymentSchedule
+
+floatingLegPaymentSchedule
+
+val floatingLegPaymentSchedule : Map < LocalDate , FloatingRatePaymentEvent >
+
+
+
+
diff --git a/docs/build/html/api/contracts/-interest-rate-swap/-calculation/get-fixing.html b/docs/build/html/api/contracts/-interest-rate-swap/-calculation/get-fixing.html
new file mode 100644
index 0000000000..a7a1d17e85
--- /dev/null
+++ b/docs/build/html/api/contracts/-interest-rate-swap/-calculation/get-fixing.html
@@ -0,0 +1,16 @@
+
+
+InterestRateSwap.Calculation.getFixing -
+
+
+
+contracts / InterestRateSwap / Calculation / getFixing
+
+getFixing
+
+fun getFixing ( date : LocalDate ) : FloatingRatePaymentEvent
+Returns the fixing for that date
+
+
+
+
diff --git a/docs/build/html/api/contracts/-interest-rate-swap/-calculation/index.html b/docs/build/html/api/contracts/-interest-rate-swap/-calculation/index.html
new file mode 100644
index 0000000000..055e01ccc9
--- /dev/null
+++ b/docs/build/html/api/contracts/-interest-rate-swap/-calculation/index.html
@@ -0,0 +1,86 @@
+
+
+InterestRateSwap.Calculation -
+
+
+
+contracts / InterestRateSwap / Calculation
+
+Calculation
+data class Calculation
+The Calculation data class is "mutable" through out the life of the swap, as in, its the only thing that contains
+data that will changed from state to state (Recall that the design insists that everything is immutable, so we actually
+copy / update for each transition)
+
+
+Constructors
+
+
+
+
+<init>
+
+Calculation ( expression : Expression , floatingLegPaymentSchedule : Map < LocalDate , FloatingRatePaymentEvent > , fixedLegPaymentSchedule : Map < LocalDate , FixedRatePaymentEvent > )
The Calculation data class is "mutable" through out the life of the swap, as in, its the only thing that contains
+data that will changed from state to state (Recall that the design insists that everything is immutable, so we actually
+copy / update for each transition)
+
+
+
+
+Properties
+
+Functions
+
+
+
diff --git a/docs/build/html/api/contracts/-interest-rate-swap/-calculation/next-fixing-date.html b/docs/build/html/api/contracts/-interest-rate-swap/-calculation/next-fixing-date.html
new file mode 100644
index 0000000000..dd5d3faacd
--- /dev/null
+++ b/docs/build/html/api/contracts/-interest-rate-swap/-calculation/next-fixing-date.html
@@ -0,0 +1,18 @@
+
+
+InterestRateSwap.Calculation.nextFixingDate -
+
+
+
+contracts / InterestRateSwap / Calculation / nextFixingDate
+
+nextFixingDate
+
+fun nextFixingDate ( ) : LocalDate ?
+Gets the date of the next fixing.
+Return
+LocalDate or null if no more fixings.
+
+
+
+
diff --git a/docs/build/html/api/contracts/-interest-rate-swap/-commands/-agree/-init-.html b/docs/build/html/api/contracts/-interest-rate-swap/-commands/-agree/-init-.html
new file mode 100644
index 0000000000..27db15a88f
--- /dev/null
+++ b/docs/build/html/api/contracts/-interest-rate-swap/-commands/-agree/-init-.html
@@ -0,0 +1,14 @@
+
+
+InterestRateSwap.Commands.Agree. -
+
+
+
+contracts / InterestRateSwap / Commands / Agree / <init>
+
+<init>
+Agree ( )
+
+
+
+
diff --git a/docs/build/html/api/contracts/-interest-rate-swap/-commands/-agree/index.html b/docs/build/html/api/contracts/-interest-rate-swap/-commands/-agree/index.html
new file mode 100644
index 0000000000..6de47ac409
--- /dev/null
+++ b/docs/build/html/api/contracts/-interest-rate-swap/-commands/-agree/index.html
@@ -0,0 +1,42 @@
+
+
+InterestRateSwap.Commands.Agree -
+
+
+
+contracts / InterestRateSwap / Commands / Agree
+
+Agree
+class Agree : TypeOnlyCommandData , Commands
+
+
+Constructors
+
+
+
+
+<init>
+
+Agree ( )
+
+
+
+Inherited Functions
+
+
+
+
+equals
+
+open fun equals ( other : Any ? ) : Boolean
+
+
+
+hashCode
+
+open fun hashCode ( ) : <ERROR CLASS>
+
+
+
+
+
diff --git a/docs/build/html/api/contracts/-interest-rate-swap/-commands/-fix/-init-.html b/docs/build/html/api/contracts/-interest-rate-swap/-commands/-fix/-init-.html
new file mode 100644
index 0000000000..e22a3cd566
--- /dev/null
+++ b/docs/build/html/api/contracts/-interest-rate-swap/-commands/-fix/-init-.html
@@ -0,0 +1,14 @@
+
+
+InterestRateSwap.Commands.Fix. -
+
+
+
+contracts / InterestRateSwap / Commands / Fix / <init>
+
+<init>
+Fix ( )
+
+
+
+
diff --git a/docs/build/html/api/contracts/-interest-rate-swap/-commands/-fix/index.html b/docs/build/html/api/contracts/-interest-rate-swap/-commands/-fix/index.html
new file mode 100644
index 0000000000..a82b427aa2
--- /dev/null
+++ b/docs/build/html/api/contracts/-interest-rate-swap/-commands/-fix/index.html
@@ -0,0 +1,42 @@
+
+
+InterestRateSwap.Commands.Fix -
+
+
+
+contracts / InterestRateSwap / Commands / Fix
+
+Fix
+class Fix : 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/contracts/-interest-rate-swap/-commands/-mature/-init-.html b/docs/build/html/api/contracts/-interest-rate-swap/-commands/-mature/-init-.html
new file mode 100644
index 0000000000..15cb25f580
--- /dev/null
+++ b/docs/build/html/api/contracts/-interest-rate-swap/-commands/-mature/-init-.html
@@ -0,0 +1,14 @@
+
+
+InterestRateSwap.Commands.Mature. -
+
+
+
+contracts / InterestRateSwap / Commands / Mature / <init>
+
+<init>
+Mature ( )
+
+
+
+
diff --git a/docs/build/html/api/contracts/-interest-rate-swap/-commands/-mature/index.html b/docs/build/html/api/contracts/-interest-rate-swap/-commands/-mature/index.html
new file mode 100644
index 0000000000..3ba7ad8410
--- /dev/null
+++ b/docs/build/html/api/contracts/-interest-rate-swap/-commands/-mature/index.html
@@ -0,0 +1,42 @@
+
+
+InterestRateSwap.Commands.Mature -
+
+
+
+contracts / InterestRateSwap / Commands / Mature
+
+Mature
+class Mature : TypeOnlyCommandData , Commands
+
+
+Constructors
+
+
+
+
+<init>
+
+Mature ( )
+
+
+
+Inherited Functions
+
+
+
+
+equals
+
+open fun equals ( other : Any ? ) : Boolean
+
+
+
+hashCode
+
+open fun hashCode ( ) : <ERROR CLASS>
+
+
+
+
+
diff --git a/docs/build/html/api/contracts/-interest-rate-swap/-commands/-pay/-init-.html b/docs/build/html/api/contracts/-interest-rate-swap/-commands/-pay/-init-.html
new file mode 100644
index 0000000000..c45d98e3c3
--- /dev/null
+++ b/docs/build/html/api/contracts/-interest-rate-swap/-commands/-pay/-init-.html
@@ -0,0 +1,14 @@
+
+
+InterestRateSwap.Commands.Pay. -
+
+
+
+contracts / InterestRateSwap / Commands / Pay / <init>
+
+<init>
+Pay ( )
+
+
+
+
diff --git a/docs/build/html/api/contracts/-interest-rate-swap/-commands/-pay/index.html b/docs/build/html/api/contracts/-interest-rate-swap/-commands/-pay/index.html
new file mode 100644
index 0000000000..1f16d74d50
--- /dev/null
+++ b/docs/build/html/api/contracts/-interest-rate-swap/-commands/-pay/index.html
@@ -0,0 +1,42 @@
+
+
+InterestRateSwap.Commands.Pay -
+
+
+
+contracts / InterestRateSwap / Commands / Pay
+
+Pay
+class Pay : 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/contracts/-interest-rate-swap/-commands/index.html b/docs/build/html/api/contracts/-interest-rate-swap/-commands/index.html
new file mode 100644
index 0000000000..13f0e1752d
--- /dev/null
+++ b/docs/build/html/api/contracts/-interest-rate-swap/-commands/index.html
@@ -0,0 +1,72 @@
+
+
+InterestRateSwap.Commands -
+
+
+
+contracts / InterestRateSwap / Commands
+
+Commands
+interface Commands : CommandData
+
+
+Types
+
+Inheritors
+
+
+
diff --git a/docs/build/html/api/contracts/-interest-rate-swap/-common-leg/-init-.html b/docs/build/html/api/contracts/-interest-rate-swap/-common-leg/-init-.html
new file mode 100644
index 0000000000..8f5d29858b
--- /dev/null
+++ b/docs/build/html/api/contracts/-interest-rate-swap/-common-leg/-init-.html
@@ -0,0 +1,14 @@
+
+
+InterestRateSwap.CommonLeg. -
+
+
+
+contracts / InterestRateSwap / CommonLeg / <init>
+
+<init>
+CommonLeg ( notional : Amount , paymentFrequency : Frequency , effectiveDate : LocalDate , effectiveDateAdjustment : DateRollConvention ? , terminationDate : LocalDate , terminationDateAdjustment : DateRollConvention ? , dayCountBasisDay : DayCountBasisDay , dayCountBasisYear : DayCountBasisYear , dayInMonth : Int , paymentRule : PaymentRule , paymentDelay : Int , paymentCalendar : BusinessCalendar , interestPeriodAdjustment : AccrualAdjustment )
+
+
+
+
diff --git a/docs/build/html/api/contracts/-interest-rate-swap/-common-leg/day-count-basis-day.html b/docs/build/html/api/contracts/-interest-rate-swap/-common-leg/day-count-basis-day.html
new file mode 100644
index 0000000000..3b39b9e4a6
--- /dev/null
+++ b/docs/build/html/api/contracts/-interest-rate-swap/-common-leg/day-count-basis-day.html
@@ -0,0 +1,15 @@
+
+
+InterestRateSwap.CommonLeg.dayCountBasisDay -
+
+
+
+contracts / InterestRateSwap / CommonLeg / dayCountBasisDay
+
+dayCountBasisDay
+
+var dayCountBasisDay : DayCountBasisDay
+
+
+
+
diff --git a/docs/build/html/api/contracts/-interest-rate-swap/-common-leg/day-count-basis-year.html b/docs/build/html/api/contracts/-interest-rate-swap/-common-leg/day-count-basis-year.html
new file mode 100644
index 0000000000..fe80d1a391
--- /dev/null
+++ b/docs/build/html/api/contracts/-interest-rate-swap/-common-leg/day-count-basis-year.html
@@ -0,0 +1,15 @@
+
+
+InterestRateSwap.CommonLeg.dayCountBasisYear -
+
+
+
+contracts / InterestRateSwap / CommonLeg / dayCountBasisYear
+
+dayCountBasisYear
+
+var dayCountBasisYear : DayCountBasisYear
+
+
+
+
diff --git a/docs/build/html/api/contracts/-interest-rate-swap/-common-leg/day-in-month.html b/docs/build/html/api/contracts/-interest-rate-swap/-common-leg/day-in-month.html
new file mode 100644
index 0000000000..4ca68c4b5a
--- /dev/null
+++ b/docs/build/html/api/contracts/-interest-rate-swap/-common-leg/day-in-month.html
@@ -0,0 +1,15 @@
+
+
+InterestRateSwap.CommonLeg.dayInMonth -
+
+
+
+contracts / InterestRateSwap / CommonLeg / dayInMonth
+
+dayInMonth
+
+var dayInMonth : Int
+
+
+
+
diff --git a/docs/build/html/api/contracts/-interest-rate-swap/-common-leg/effective-date-adjustment.html b/docs/build/html/api/contracts/-interest-rate-swap/-common-leg/effective-date-adjustment.html
new file mode 100644
index 0000000000..683d0688ce
--- /dev/null
+++ b/docs/build/html/api/contracts/-interest-rate-swap/-common-leg/effective-date-adjustment.html
@@ -0,0 +1,15 @@
+
+
+InterestRateSwap.CommonLeg.effectiveDateAdjustment -
+
+
+
+contracts / InterestRateSwap / CommonLeg / effectiveDateAdjustment
+
+effectiveDateAdjustment
+
+val effectiveDateAdjustment : DateRollConvention ?
+
+
+
+
diff --git a/docs/build/html/api/contracts/-interest-rate-swap/-common-leg/effective-date.html b/docs/build/html/api/contracts/-interest-rate-swap/-common-leg/effective-date.html
new file mode 100644
index 0000000000..170610ab9d
--- /dev/null
+++ b/docs/build/html/api/contracts/-interest-rate-swap/-common-leg/effective-date.html
@@ -0,0 +1,15 @@
+
+
+InterestRateSwap.CommonLeg.effectiveDate -
+
+
+
+contracts / InterestRateSwap / CommonLeg / effectiveDate
+
+effectiveDate
+
+val effectiveDate : LocalDate
+
+
+
+
diff --git a/docs/build/html/api/contracts/-interest-rate-swap/-common-leg/equals.html b/docs/build/html/api/contracts/-interest-rate-swap/-common-leg/equals.html
new file mode 100644
index 0000000000..05340b8474
--- /dev/null
+++ b/docs/build/html/api/contracts/-interest-rate-swap/-common-leg/equals.html
@@ -0,0 +1,15 @@
+
+
+InterestRateSwap.CommonLeg.equals -
+
+
+
+contracts / InterestRateSwap / CommonLeg / equals
+
+equals
+
+open fun equals ( other : Any ? ) : Boolean
+
+
+
+
diff --git a/docs/build/html/api/contracts/-interest-rate-swap/-common-leg/hash-code.html b/docs/build/html/api/contracts/-interest-rate-swap/-common-leg/hash-code.html
new file mode 100644
index 0000000000..4c65eeed4e
--- /dev/null
+++ b/docs/build/html/api/contracts/-interest-rate-swap/-common-leg/hash-code.html
@@ -0,0 +1,15 @@
+
+
+InterestRateSwap.CommonLeg.hashCode -
+
+
+
+contracts / InterestRateSwap / CommonLeg / hashCode
+
+hashCode
+
+open fun hashCode ( ) : Int
+
+
+
+
diff --git a/docs/build/html/api/contracts/-interest-rate-swap/-common-leg/index.html b/docs/build/html/api/contracts/-interest-rate-swap/-common-leg/index.html
new file mode 100644
index 0000000000..3f707176e6
--- /dev/null
+++ b/docs/build/html/api/contracts/-interest-rate-swap/-common-leg/index.html
@@ -0,0 +1,148 @@
+
+
+InterestRateSwap.CommonLeg -
+
+
+
+contracts / InterestRateSwap / CommonLeg
+
+CommonLeg
+abstract class CommonLeg
+
+
+Constructors
+
+
+
+
+<init>
+
+CommonLeg ( notional : Amount , paymentFrequency : Frequency , effectiveDate : LocalDate , effectiveDateAdjustment : DateRollConvention ? , terminationDate : LocalDate , terminationDateAdjustment : DateRollConvention ? , dayCountBasisDay : DayCountBasisDay , dayCountBasisYear : DayCountBasisYear , dayInMonth : Int , paymentRule : PaymentRule , paymentDelay : Int , paymentCalendar : BusinessCalendar , interestPeriodAdjustment : AccrualAdjustment )
+
+
+
+Properties
+
+Functions
+
+
+
+
+equals
+
+open fun equals ( other : Any ? ) : Boolean
+
+
+
+hashCode
+
+open fun hashCode ( ) : Int
+
+
+
+toString
+
+open fun toString ( ) : String
+
+
+
+Inheritors
+
+
+
+
+FixedLeg
+
+class FixedLeg : CommonLeg
+
+
+
+FloatingLeg
+
+class FloatingLeg : CommonLeg
+
+
+
+
+
diff --git a/docs/build/html/api/contracts/-interest-rate-swap/-common-leg/interest-period-adjustment.html b/docs/build/html/api/contracts/-interest-rate-swap/-common-leg/interest-period-adjustment.html
new file mode 100644
index 0000000000..4411b85b13
--- /dev/null
+++ b/docs/build/html/api/contracts/-interest-rate-swap/-common-leg/interest-period-adjustment.html
@@ -0,0 +1,15 @@
+
+
+InterestRateSwap.CommonLeg.interestPeriodAdjustment -
+
+
+
+contracts / InterestRateSwap / CommonLeg / interestPeriodAdjustment
+
+interestPeriodAdjustment
+
+var interestPeriodAdjustment : AccrualAdjustment
+
+
+
+
diff --git a/docs/build/html/api/contracts/-interest-rate-swap/-common-leg/notional.html b/docs/build/html/api/contracts/-interest-rate-swap/-common-leg/notional.html
new file mode 100644
index 0000000000..42ac31720b
--- /dev/null
+++ b/docs/build/html/api/contracts/-interest-rate-swap/-common-leg/notional.html
@@ -0,0 +1,15 @@
+
+
+InterestRateSwap.CommonLeg.notional -
+
+
+
+contracts / InterestRateSwap / CommonLeg / notional
+
+notional
+
+val notional : Amount
+
+
+
+
diff --git a/docs/build/html/api/contracts/-interest-rate-swap/-common-leg/payment-calendar.html b/docs/build/html/api/contracts/-interest-rate-swap/-common-leg/payment-calendar.html
new file mode 100644
index 0000000000..56fa1728fa
--- /dev/null
+++ b/docs/build/html/api/contracts/-interest-rate-swap/-common-leg/payment-calendar.html
@@ -0,0 +1,15 @@
+
+
+InterestRateSwap.CommonLeg.paymentCalendar -
+
+
+
+contracts / InterestRateSwap / CommonLeg / paymentCalendar
+
+paymentCalendar
+
+var paymentCalendar : BusinessCalendar
+
+
+
+
diff --git a/docs/build/html/api/contracts/-interest-rate-swap/-common-leg/payment-delay.html b/docs/build/html/api/contracts/-interest-rate-swap/-common-leg/payment-delay.html
new file mode 100644
index 0000000000..7ed155c2a1
--- /dev/null
+++ b/docs/build/html/api/contracts/-interest-rate-swap/-common-leg/payment-delay.html
@@ -0,0 +1,15 @@
+
+
+InterestRateSwap.CommonLeg.paymentDelay -
+
+
+
+contracts / InterestRateSwap / CommonLeg / paymentDelay
+
+paymentDelay
+
+var paymentDelay : Int
+
+
+
+
diff --git a/docs/build/html/api/contracts/-interest-rate-swap/-common-leg/payment-frequency.html b/docs/build/html/api/contracts/-interest-rate-swap/-common-leg/payment-frequency.html
new file mode 100644
index 0000000000..22b6bc2866
--- /dev/null
+++ b/docs/build/html/api/contracts/-interest-rate-swap/-common-leg/payment-frequency.html
@@ -0,0 +1,15 @@
+
+
+InterestRateSwap.CommonLeg.paymentFrequency -
+
+
+
+contracts / InterestRateSwap / CommonLeg / paymentFrequency
+
+paymentFrequency
+
+val paymentFrequency : Frequency
+
+
+
+
diff --git a/docs/build/html/api/contracts/-interest-rate-swap/-common-leg/payment-rule.html b/docs/build/html/api/contracts/-interest-rate-swap/-common-leg/payment-rule.html
new file mode 100644
index 0000000000..113b552c09
--- /dev/null
+++ b/docs/build/html/api/contracts/-interest-rate-swap/-common-leg/payment-rule.html
@@ -0,0 +1,15 @@
+
+
+InterestRateSwap.CommonLeg.paymentRule -
+
+
+
+contracts / InterestRateSwap / CommonLeg / paymentRule
+
+paymentRule
+
+var paymentRule : PaymentRule
+
+
+
+
diff --git a/docs/build/html/api/contracts/-interest-rate-swap/-common-leg/termination-date-adjustment.html b/docs/build/html/api/contracts/-interest-rate-swap/-common-leg/termination-date-adjustment.html
new file mode 100644
index 0000000000..c93fa6654c
--- /dev/null
+++ b/docs/build/html/api/contracts/-interest-rate-swap/-common-leg/termination-date-adjustment.html
@@ -0,0 +1,15 @@
+
+
+InterestRateSwap.CommonLeg.terminationDateAdjustment -
+
+
+
+contracts / InterestRateSwap / CommonLeg / terminationDateAdjustment
+
+terminationDateAdjustment
+
+val terminationDateAdjustment : DateRollConvention ?
+
+
+
+
diff --git a/docs/build/html/api/contracts/-interest-rate-swap/-common-leg/termination-date.html b/docs/build/html/api/contracts/-interest-rate-swap/-common-leg/termination-date.html
new file mode 100644
index 0000000000..934d7a5d5a
--- /dev/null
+++ b/docs/build/html/api/contracts/-interest-rate-swap/-common-leg/termination-date.html
@@ -0,0 +1,15 @@
+
+
+InterestRateSwap.CommonLeg.terminationDate -
+
+
+
+contracts / InterestRateSwap / CommonLeg / terminationDate
+
+terminationDate
+
+val terminationDate : LocalDate
+
+
+
+
diff --git a/docs/build/html/api/contracts/-interest-rate-swap/-common-leg/to-string.html b/docs/build/html/api/contracts/-interest-rate-swap/-common-leg/to-string.html
new file mode 100644
index 0000000000..a039992476
--- /dev/null
+++ b/docs/build/html/api/contracts/-interest-rate-swap/-common-leg/to-string.html
@@ -0,0 +1,15 @@
+
+
+InterestRateSwap.CommonLeg.toString -
+
+
+
+contracts / InterestRateSwap / CommonLeg / toString
+
+toString
+
+open fun toString ( ) : String
+
+
+
+
diff --git a/docs/build/html/api/contracts/-interest-rate-swap/-common/-init-.html b/docs/build/html/api/contracts/-interest-rate-swap/-common/-init-.html
new file mode 100644
index 0000000000..1350bf6fc6
--- /dev/null
+++ b/docs/build/html/api/contracts/-interest-rate-swap/-common/-init-.html
@@ -0,0 +1,15 @@
+
+
+InterestRateSwap.Common. -
+
+
+
+contracts / InterestRateSwap / Common / <init>
+
+<init>
+Common ( baseCurrency : Currency , eligibleCurrency : Currency , eligibleCreditSupport : String , independentAmounts : Amount , threshold : Amount , minimumTransferAmount : Amount , rounding : Amount , valuationDate : String , notificationTime : String , resolutionTime : String , interestRate : ReferenceRate , addressForTransfers : String , exposure : UnknownType , localBusinessDay : BusinessCalendar , dailyInterestAmount : Expression , tradeID : String , hashLegalDocs : String )
+This Common area contains all the information that is not leg specific.
+
+
+
+
diff --git a/docs/build/html/api/contracts/-interest-rate-swap/-common/address-for-transfers.html b/docs/build/html/api/contracts/-interest-rate-swap/-common/address-for-transfers.html
new file mode 100644
index 0000000000..6ea59085bd
--- /dev/null
+++ b/docs/build/html/api/contracts/-interest-rate-swap/-common/address-for-transfers.html
@@ -0,0 +1,15 @@
+
+
+InterestRateSwap.Common.addressForTransfers -
+
+
+
+contracts / InterestRateSwap / Common / addressForTransfers
+
+addressForTransfers
+
+val addressForTransfers : String
+
+
+
+
diff --git a/docs/build/html/api/contracts/-interest-rate-swap/-common/base-currency.html b/docs/build/html/api/contracts/-interest-rate-swap/-common/base-currency.html
new file mode 100644
index 0000000000..760e4326b4
--- /dev/null
+++ b/docs/build/html/api/contracts/-interest-rate-swap/-common/base-currency.html
@@ -0,0 +1,15 @@
+
+
+InterestRateSwap.Common.baseCurrency -
+
+
+
+contracts / InterestRateSwap / Common / baseCurrency
+
+baseCurrency
+
+val baseCurrency : Currency
+
+
+
+
diff --git a/docs/build/html/api/contracts/-interest-rate-swap/-common/daily-interest-amount.html b/docs/build/html/api/contracts/-interest-rate-swap/-common/daily-interest-amount.html
new file mode 100644
index 0000000000..fe2a5be0f6
--- /dev/null
+++ b/docs/build/html/api/contracts/-interest-rate-swap/-common/daily-interest-amount.html
@@ -0,0 +1,15 @@
+
+
+InterestRateSwap.Common.dailyInterestAmount -
+
+
+
+contracts / InterestRateSwap / Common / dailyInterestAmount
+
+dailyInterestAmount
+
+val dailyInterestAmount : Expression
+
+
+
+
diff --git a/docs/build/html/api/contracts/-interest-rate-swap/-common/eligible-credit-support.html b/docs/build/html/api/contracts/-interest-rate-swap/-common/eligible-credit-support.html
new file mode 100644
index 0000000000..8b1c7feb6d
--- /dev/null
+++ b/docs/build/html/api/contracts/-interest-rate-swap/-common/eligible-credit-support.html
@@ -0,0 +1,15 @@
+
+
+InterestRateSwap.Common.eligibleCreditSupport -
+
+
+
+contracts / InterestRateSwap / Common / eligibleCreditSupport
+
+eligibleCreditSupport
+
+val eligibleCreditSupport : String
+
+
+
+
diff --git a/docs/build/html/api/contracts/-interest-rate-swap/-common/eligible-currency.html b/docs/build/html/api/contracts/-interest-rate-swap/-common/eligible-currency.html
new file mode 100644
index 0000000000..e1e2ecd9b8
--- /dev/null
+++ b/docs/build/html/api/contracts/-interest-rate-swap/-common/eligible-currency.html
@@ -0,0 +1,15 @@
+
+
+InterestRateSwap.Common.eligibleCurrency -
+
+
+
+contracts / InterestRateSwap / Common / eligibleCurrency
+
+eligibleCurrency
+
+val eligibleCurrency : Currency
+
+
+
+
diff --git a/docs/build/html/api/contracts/-interest-rate-swap/-common/exposure.html b/docs/build/html/api/contracts/-interest-rate-swap/-common/exposure.html
new file mode 100644
index 0000000000..b8dd69b197
--- /dev/null
+++ b/docs/build/html/api/contracts/-interest-rate-swap/-common/exposure.html
@@ -0,0 +1,15 @@
+
+
+InterestRateSwap.Common.exposure -
+
+
+
+contracts / InterestRateSwap / Common / exposure
+
+exposure
+
+val exposure : UnknownType
+
+
+
+
diff --git a/docs/build/html/api/contracts/-interest-rate-swap/-common/hash-legal-docs.html b/docs/build/html/api/contracts/-interest-rate-swap/-common/hash-legal-docs.html
new file mode 100644
index 0000000000..8d42863d79
--- /dev/null
+++ b/docs/build/html/api/contracts/-interest-rate-swap/-common/hash-legal-docs.html
@@ -0,0 +1,15 @@
+
+
+InterestRateSwap.Common.hashLegalDocs -
+
+
+
+contracts / InterestRateSwap / Common / hashLegalDocs
+
+hashLegalDocs
+
+val hashLegalDocs : String
+
+
+
+
diff --git a/docs/build/html/api/contracts/-interest-rate-swap/-common/independent-amounts.html b/docs/build/html/api/contracts/-interest-rate-swap/-common/independent-amounts.html
new file mode 100644
index 0000000000..91eb6252fa
--- /dev/null
+++ b/docs/build/html/api/contracts/-interest-rate-swap/-common/independent-amounts.html
@@ -0,0 +1,15 @@
+
+
+InterestRateSwap.Common.independentAmounts -
+
+
+
+contracts / InterestRateSwap / Common / independentAmounts
+
+independentAmounts
+
+val independentAmounts : Amount
+
+
+
+
diff --git a/docs/build/html/api/contracts/-interest-rate-swap/-common/index.html b/docs/build/html/api/contracts/-interest-rate-swap/-common/index.html
new file mode 100644
index 0000000000..db18d66344
--- /dev/null
+++ b/docs/build/html/api/contracts/-interest-rate-swap/-common/index.html
@@ -0,0 +1,134 @@
+
+
+InterestRateSwap.Common -
+
+
+
+contracts / InterestRateSwap / Common
+
+Common
+data class Common
+This Common area contains all the information that is not leg specific.
+
+
+Constructors
+
+
+
+
+<init>
+
+Common ( baseCurrency : Currency , eligibleCurrency : Currency , eligibleCreditSupport : String , independentAmounts : Amount , threshold : Amount , minimumTransferAmount : Amount , rounding : Amount , valuationDate : String , notificationTime : String , resolutionTime : String , interestRate : ReferenceRate , addressForTransfers : String , exposure : UnknownType , localBusinessDay : BusinessCalendar , dailyInterestAmount : Expression , tradeID : String , hashLegalDocs : String )
This Common area contains all the information that is not leg specific.
+
+
+
+
+Properties
+
+
+
diff --git a/docs/build/html/api/contracts/-interest-rate-swap/-common/interest-rate.html b/docs/build/html/api/contracts/-interest-rate-swap/-common/interest-rate.html
new file mode 100644
index 0000000000..4bf78464d8
--- /dev/null
+++ b/docs/build/html/api/contracts/-interest-rate-swap/-common/interest-rate.html
@@ -0,0 +1,15 @@
+
+
+InterestRateSwap.Common.interestRate -
+
+
+
+contracts / InterestRateSwap / Common / interestRate
+
+interestRate
+
+val interestRate : ReferenceRate
+
+
+
+
diff --git a/docs/build/html/api/contracts/-interest-rate-swap/-common/local-business-day.html b/docs/build/html/api/contracts/-interest-rate-swap/-common/local-business-day.html
new file mode 100644
index 0000000000..0c92e142da
--- /dev/null
+++ b/docs/build/html/api/contracts/-interest-rate-swap/-common/local-business-day.html
@@ -0,0 +1,15 @@
+
+
+InterestRateSwap.Common.localBusinessDay -
+
+
+
+contracts / InterestRateSwap / Common / localBusinessDay
+
+localBusinessDay
+
+val localBusinessDay : BusinessCalendar
+
+
+
+
diff --git a/docs/build/html/api/contracts/-interest-rate-swap/-common/minimum-transfer-amount.html b/docs/build/html/api/contracts/-interest-rate-swap/-common/minimum-transfer-amount.html
new file mode 100644
index 0000000000..56a7e30845
--- /dev/null
+++ b/docs/build/html/api/contracts/-interest-rate-swap/-common/minimum-transfer-amount.html
@@ -0,0 +1,15 @@
+
+
+InterestRateSwap.Common.minimumTransferAmount -
+
+
+
+contracts / InterestRateSwap / Common / minimumTransferAmount
+
+minimumTransferAmount
+
+val minimumTransferAmount : Amount
+
+
+
+
diff --git a/docs/build/html/api/contracts/-interest-rate-swap/-common/notification-time.html b/docs/build/html/api/contracts/-interest-rate-swap/-common/notification-time.html
new file mode 100644
index 0000000000..3bcfe9d833
--- /dev/null
+++ b/docs/build/html/api/contracts/-interest-rate-swap/-common/notification-time.html
@@ -0,0 +1,15 @@
+
+
+InterestRateSwap.Common.notificationTime -
+
+
+
+contracts / InterestRateSwap / Common / notificationTime
+
+notificationTime
+
+val notificationTime : String
+
+
+
+
diff --git a/docs/build/html/api/contracts/-interest-rate-swap/-common/resolution-time.html b/docs/build/html/api/contracts/-interest-rate-swap/-common/resolution-time.html
new file mode 100644
index 0000000000..e5d7eb8cb7
--- /dev/null
+++ b/docs/build/html/api/contracts/-interest-rate-swap/-common/resolution-time.html
@@ -0,0 +1,15 @@
+
+
+InterestRateSwap.Common.resolutionTime -
+
+
+
+contracts / InterestRateSwap / Common / resolutionTime
+
+resolutionTime
+
+val resolutionTime : String
+
+
+
+
diff --git a/docs/build/html/api/contracts/-interest-rate-swap/-common/rounding.html b/docs/build/html/api/contracts/-interest-rate-swap/-common/rounding.html
new file mode 100644
index 0000000000..43591530f4
--- /dev/null
+++ b/docs/build/html/api/contracts/-interest-rate-swap/-common/rounding.html
@@ -0,0 +1,15 @@
+
+
+InterestRateSwap.Common.rounding -
+
+
+
+contracts / InterestRateSwap / Common / rounding
+
+rounding
+
+val rounding : Amount
+
+
+
+
diff --git a/docs/build/html/api/contracts/-interest-rate-swap/-common/threshold.html b/docs/build/html/api/contracts/-interest-rate-swap/-common/threshold.html
new file mode 100644
index 0000000000..337d9b0f46
--- /dev/null
+++ b/docs/build/html/api/contracts/-interest-rate-swap/-common/threshold.html
@@ -0,0 +1,15 @@
+
+
+InterestRateSwap.Common.threshold -
+
+
+
+contracts / InterestRateSwap / Common / threshold
+
+threshold
+
+val threshold : Amount
+
+
+
+
diff --git a/docs/build/html/api/contracts/-interest-rate-swap/-common/trade-i-d.html b/docs/build/html/api/contracts/-interest-rate-swap/-common/trade-i-d.html
new file mode 100644
index 0000000000..4fc9c87ab7
--- /dev/null
+++ b/docs/build/html/api/contracts/-interest-rate-swap/-common/trade-i-d.html
@@ -0,0 +1,15 @@
+
+
+InterestRateSwap.Common.tradeID -
+
+
+
+contracts / InterestRateSwap / Common / tradeID
+
+tradeID
+
+val tradeID : String
+
+
+
+
diff --git a/docs/build/html/api/contracts/-interest-rate-swap/-common/valuation-date.html b/docs/build/html/api/contracts/-interest-rate-swap/-common/valuation-date.html
new file mode 100644
index 0000000000..a90de611be
--- /dev/null
+++ b/docs/build/html/api/contracts/-interest-rate-swap/-common/valuation-date.html
@@ -0,0 +1,15 @@
+
+
+InterestRateSwap.Common.valuationDate -
+
+
+
+contracts / InterestRateSwap / Common / valuationDate
+
+valuationDate
+
+val valuationDate : String
+
+
+
+
diff --git a/docs/build/html/api/contracts/-interest-rate-swap/-fixed-leg/-init-.html b/docs/build/html/api/contracts/-interest-rate-swap/-fixed-leg/-init-.html
new file mode 100644
index 0000000000..ce86f8551b
--- /dev/null
+++ b/docs/build/html/api/contracts/-interest-rate-swap/-fixed-leg/-init-.html
@@ -0,0 +1,14 @@
+
+
+InterestRateSwap.FixedLeg. -
+
+
+
+contracts / InterestRateSwap / FixedLeg / <init>
+
+<init>
+FixedLeg ( fixedRatePayer : Party , notional : Amount , paymentFrequency : Frequency , effectiveDate : LocalDate , effectiveDateAdjustment : DateRollConvention ? , terminationDate : LocalDate , terminationDateAdjustment : DateRollConvention ? , dayCountBasisDay : DayCountBasisDay , dayCountBasisYear : DayCountBasisYear , dayInMonth : Int , paymentRule : PaymentRule , paymentDelay : Int , paymentCalendar : BusinessCalendar , interestPeriodAdjustment : AccrualAdjustment , fixedRate : FixedRate , rollConvention : DateRollConvention )
+
+
+
+
diff --git a/docs/build/html/api/contracts/-interest-rate-swap/-fixed-leg/equals.html b/docs/build/html/api/contracts/-interest-rate-swap/-fixed-leg/equals.html
new file mode 100644
index 0000000000..8ca503bd6b
--- /dev/null
+++ b/docs/build/html/api/contracts/-interest-rate-swap/-fixed-leg/equals.html
@@ -0,0 +1,16 @@
+
+
+InterestRateSwap.FixedLeg.equals -
+
+
+
+contracts / InterestRateSwap / FixedLeg / equals
+
+equals
+
+open fun equals ( other : Any ? ) : Boolean
+Overrides CommonLeg.equals
+
+
+
+
diff --git a/docs/build/html/api/contracts/-interest-rate-swap/-fixed-leg/fixed-rate-payer.html b/docs/build/html/api/contracts/-interest-rate-swap/-fixed-leg/fixed-rate-payer.html
new file mode 100644
index 0000000000..7c1d1334d9
--- /dev/null
+++ b/docs/build/html/api/contracts/-interest-rate-swap/-fixed-leg/fixed-rate-payer.html
@@ -0,0 +1,15 @@
+
+
+InterestRateSwap.FixedLeg.fixedRatePayer -
+
+
+
+contracts / InterestRateSwap / FixedLeg / fixedRatePayer
+
+fixedRatePayer
+
+var fixedRatePayer : Party
+
+
+
+
diff --git a/docs/build/html/api/contracts/-interest-rate-swap/-fixed-leg/fixed-rate.html b/docs/build/html/api/contracts/-interest-rate-swap/-fixed-leg/fixed-rate.html
new file mode 100644
index 0000000000..fb1839a8c8
--- /dev/null
+++ b/docs/build/html/api/contracts/-interest-rate-swap/-fixed-leg/fixed-rate.html
@@ -0,0 +1,15 @@
+
+
+InterestRateSwap.FixedLeg.fixedRate -
+
+
+
+contracts / InterestRateSwap / FixedLeg / fixedRate
+
+fixedRate
+
+var fixedRate : FixedRate
+
+
+
+
diff --git a/docs/build/html/api/contracts/-interest-rate-swap/-fixed-leg/hash-code.html b/docs/build/html/api/contracts/-interest-rate-swap/-fixed-leg/hash-code.html
new file mode 100644
index 0000000000..0cff02cac0
--- /dev/null
+++ b/docs/build/html/api/contracts/-interest-rate-swap/-fixed-leg/hash-code.html
@@ -0,0 +1,16 @@
+
+
+InterestRateSwap.FixedLeg.hashCode -
+
+
+
+contracts / InterestRateSwap / FixedLeg / hashCode
+
+hashCode
+
+open fun hashCode ( ) : Int
+Overrides CommonLeg.hashCode
+
+
+
+
diff --git a/docs/build/html/api/contracts/-interest-rate-swap/-fixed-leg/index.html b/docs/build/html/api/contracts/-interest-rate-swap/-fixed-leg/index.html
new file mode 100644
index 0000000000..249d04b5e9
--- /dev/null
+++ b/docs/build/html/api/contracts/-interest-rate-swap/-fixed-leg/index.html
@@ -0,0 +1,154 @@
+
+
+InterestRateSwap.FixedLeg -
+
+
+
+contracts / InterestRateSwap / FixedLeg
+
+FixedLeg
+class FixedLeg : CommonLeg
+
+
+Constructors
+
+
+
+
+<init>
+
+FixedLeg ( fixedRatePayer : Party , notional : Amount , paymentFrequency : Frequency , effectiveDate : LocalDate , effectiveDateAdjustment : DateRollConvention ? , terminationDate : LocalDate , terminationDateAdjustment : DateRollConvention ? , dayCountBasisDay : DayCountBasisDay , dayCountBasisYear : DayCountBasisYear , dayInMonth : Int , paymentRule : PaymentRule , paymentDelay : Int , paymentCalendar : BusinessCalendar , interestPeriodAdjustment : AccrualAdjustment , fixedRate : FixedRate , rollConvention : DateRollConvention )
+
+
+
+Properties
+
+Inherited Properties
+
+Functions
+
+
+
+
+equals
+
+open fun equals ( other : Any ? ) : Boolean
+
+
+
+hashCode
+
+open fun hashCode ( ) : Int
+
+
+
+toString
+
+open fun toString ( ) : String
+
+
+
+
+
diff --git a/docs/build/html/api/contracts/-interest-rate-swap/-fixed-leg/roll-convention.html b/docs/build/html/api/contracts/-interest-rate-swap/-fixed-leg/roll-convention.html
new file mode 100644
index 0000000000..3226758b71
--- /dev/null
+++ b/docs/build/html/api/contracts/-interest-rate-swap/-fixed-leg/roll-convention.html
@@ -0,0 +1,15 @@
+
+
+InterestRateSwap.FixedLeg.rollConvention -
+
+
+
+contracts / InterestRateSwap / FixedLeg / rollConvention
+
+rollConvention
+
+var rollConvention : DateRollConvention
+
+
+
+
diff --git a/docs/build/html/api/contracts/-interest-rate-swap/-fixed-leg/to-string.html b/docs/build/html/api/contracts/-interest-rate-swap/-fixed-leg/to-string.html
new file mode 100644
index 0000000000..70e52dd709
--- /dev/null
+++ b/docs/build/html/api/contracts/-interest-rate-swap/-fixed-leg/to-string.html
@@ -0,0 +1,16 @@
+
+
+InterestRateSwap.FixedLeg.toString -
+
+
+
+contracts / InterestRateSwap / FixedLeg / toString
+
+toString
+
+open fun toString ( ) : String
+Overrides CommonLeg.toString
+
+
+
+
diff --git a/docs/build/html/api/contracts/-interest-rate-swap/-floating-leg/--index--.html b/docs/build/html/api/contracts/-interest-rate-swap/-floating-leg/--index--.html
new file mode 100644
index 0000000000..ac19c7366c
--- /dev/null
+++ b/docs/build/html/api/contracts/-interest-rate-swap/-floating-leg/--index--.html
@@ -0,0 +1,15 @@
+
+
+InterestRateSwap.FloatingLeg.index -
+
+
+
+contracts / InterestRateSwap / FloatingLeg / index
+
+index
+
+var index : String
+
+
+
+
diff --git a/docs/build/html/api/contracts/-interest-rate-swap/-floating-leg/-init-.html b/docs/build/html/api/contracts/-interest-rate-swap/-floating-leg/-init-.html
new file mode 100644
index 0000000000..f1d12a2b9c
--- /dev/null
+++ b/docs/build/html/api/contracts/-interest-rate-swap/-floating-leg/-init-.html
@@ -0,0 +1,14 @@
+
+
+InterestRateSwap.FloatingLeg. -
+
+
+
+contracts / InterestRateSwap / FloatingLeg / <init>
+
+<init>
+FloatingLeg ( floatingRatePayer : Party , notional : Amount , paymentFrequency : Frequency , effectiveDate : LocalDate , effectiveDateAdjustment : DateRollConvention ? , terminationDate : LocalDate , terminationDateAdjustment : DateRollConvention ? , dayCountBasisDay : DayCountBasisDay , dayCountBasisYear : DayCountBasisYear , dayInMonth : Int , paymentRule : PaymentRule , paymentDelay : Int , paymentCalendar : BusinessCalendar , interestPeriodAdjustment : AccrualAdjustment , rollConvention : DateRollConvention , fixingRollConvention : DateRollConvention , resetDayInMonth : Int , fixingPeriod : DateOffset , resetRule : PaymentRule , fixingsPerPayment : Frequency , fixingCalendar : BusinessCalendar , index : String , indexSource : String , indexTenor : Tenor )
+
+
+
+
diff --git a/docs/build/html/api/contracts/-interest-rate-swap/-floating-leg/equals.html b/docs/build/html/api/contracts/-interest-rate-swap/-floating-leg/equals.html
new file mode 100644
index 0000000000..9c3871ea6b
--- /dev/null
+++ b/docs/build/html/api/contracts/-interest-rate-swap/-floating-leg/equals.html
@@ -0,0 +1,16 @@
+
+
+InterestRateSwap.FloatingLeg.equals -
+
+
+
+contracts / InterestRateSwap / FloatingLeg / equals
+
+equals
+
+open fun equals ( other : Any ? ) : Boolean
+Overrides CommonLeg.equals
+
+
+
+
diff --git a/docs/build/html/api/contracts/-interest-rate-swap/-floating-leg/fixing-calendar.html b/docs/build/html/api/contracts/-interest-rate-swap/-floating-leg/fixing-calendar.html
new file mode 100644
index 0000000000..fb0a4000a0
--- /dev/null
+++ b/docs/build/html/api/contracts/-interest-rate-swap/-floating-leg/fixing-calendar.html
@@ -0,0 +1,15 @@
+
+
+InterestRateSwap.FloatingLeg.fixingCalendar -
+
+
+
+contracts / InterestRateSwap / FloatingLeg / fixingCalendar
+
+fixingCalendar
+
+var fixingCalendar : BusinessCalendar
+
+
+
+
diff --git a/docs/build/html/api/contracts/-interest-rate-swap/-floating-leg/fixing-period.html b/docs/build/html/api/contracts/-interest-rate-swap/-floating-leg/fixing-period.html
new file mode 100644
index 0000000000..9f861e53b1
--- /dev/null
+++ b/docs/build/html/api/contracts/-interest-rate-swap/-floating-leg/fixing-period.html
@@ -0,0 +1,15 @@
+
+
+InterestRateSwap.FloatingLeg.fixingPeriod -
+
+
+
+contracts / InterestRateSwap / FloatingLeg / fixingPeriod
+
+fixingPeriod
+
+var fixingPeriod : DateOffset
+
+
+
+
diff --git a/docs/build/html/api/contracts/-interest-rate-swap/-floating-leg/fixing-roll-convention.html b/docs/build/html/api/contracts/-interest-rate-swap/-floating-leg/fixing-roll-convention.html
new file mode 100644
index 0000000000..fc761c8917
--- /dev/null
+++ b/docs/build/html/api/contracts/-interest-rate-swap/-floating-leg/fixing-roll-convention.html
@@ -0,0 +1,15 @@
+
+
+InterestRateSwap.FloatingLeg.fixingRollConvention -
+
+
+
+contracts / InterestRateSwap / FloatingLeg / fixingRollConvention
+
+fixingRollConvention
+
+var fixingRollConvention : DateRollConvention
+
+
+
+
diff --git a/docs/build/html/api/contracts/-interest-rate-swap/-floating-leg/fixings-per-payment.html b/docs/build/html/api/contracts/-interest-rate-swap/-floating-leg/fixings-per-payment.html
new file mode 100644
index 0000000000..5bad76cc0b
--- /dev/null
+++ b/docs/build/html/api/contracts/-interest-rate-swap/-floating-leg/fixings-per-payment.html
@@ -0,0 +1,15 @@
+
+
+InterestRateSwap.FloatingLeg.fixingsPerPayment -
+
+
+
+contracts / InterestRateSwap / FloatingLeg / fixingsPerPayment
+
+fixingsPerPayment
+
+var fixingsPerPayment : Frequency
+
+
+
+
diff --git a/docs/build/html/api/contracts/-interest-rate-swap/-floating-leg/floating-rate-payer.html b/docs/build/html/api/contracts/-interest-rate-swap/-floating-leg/floating-rate-payer.html
new file mode 100644
index 0000000000..0f80f3e489
--- /dev/null
+++ b/docs/build/html/api/contracts/-interest-rate-swap/-floating-leg/floating-rate-payer.html
@@ -0,0 +1,15 @@
+
+
+InterestRateSwap.FloatingLeg.floatingRatePayer -
+
+
+
+contracts / InterestRateSwap / FloatingLeg / floatingRatePayer
+
+floatingRatePayer
+
+var floatingRatePayer : Party
+
+
+
+
diff --git a/docs/build/html/api/contracts/-interest-rate-swap/-floating-leg/hash-code.html b/docs/build/html/api/contracts/-interest-rate-swap/-floating-leg/hash-code.html
new file mode 100644
index 0000000000..9bdad6337f
--- /dev/null
+++ b/docs/build/html/api/contracts/-interest-rate-swap/-floating-leg/hash-code.html
@@ -0,0 +1,16 @@
+
+
+InterestRateSwap.FloatingLeg.hashCode -
+
+
+
+contracts / InterestRateSwap / FloatingLeg / hashCode
+
+hashCode
+
+open fun hashCode ( ) : Int
+Overrides CommonLeg.hashCode
+
+
+
+
diff --git a/docs/build/html/api/contracts/-interest-rate-swap/-floating-leg/index-source.html b/docs/build/html/api/contracts/-interest-rate-swap/-floating-leg/index-source.html
new file mode 100644
index 0000000000..83bdb5e83a
--- /dev/null
+++ b/docs/build/html/api/contracts/-interest-rate-swap/-floating-leg/index-source.html
@@ -0,0 +1,15 @@
+
+
+InterestRateSwap.FloatingLeg.indexSource -
+
+
+
+contracts / InterestRateSwap / FloatingLeg / indexSource
+
+indexSource
+
+var indexSource : String
+
+
+
+
diff --git a/docs/build/html/api/contracts/-interest-rate-swap/-floating-leg/index-tenor.html b/docs/build/html/api/contracts/-interest-rate-swap/-floating-leg/index-tenor.html
new file mode 100644
index 0000000000..b27bbb6e47
--- /dev/null
+++ b/docs/build/html/api/contracts/-interest-rate-swap/-floating-leg/index-tenor.html
@@ -0,0 +1,15 @@
+
+
+InterestRateSwap.FloatingLeg.indexTenor -
+
+
+
+contracts / InterestRateSwap / FloatingLeg / indexTenor
+
+indexTenor
+
+var indexTenor : Tenor
+
+
+
+
diff --git a/docs/build/html/api/contracts/-interest-rate-swap/-floating-leg/index.html b/docs/build/html/api/contracts/-interest-rate-swap/-floating-leg/index.html
new file mode 100644
index 0000000000..25609901ce
--- /dev/null
+++ b/docs/build/html/api/contracts/-interest-rate-swap/-floating-leg/index.html
@@ -0,0 +1,202 @@
+
+
+InterestRateSwap.FloatingLeg -
+
+
+
+contracts / InterestRateSwap / FloatingLeg
+
+FloatingLeg
+class FloatingLeg : CommonLeg
+
+
+Constructors
+
+
+
+
+<init>
+
+FloatingLeg ( floatingRatePayer : Party , notional : Amount , paymentFrequency : Frequency , effectiveDate : LocalDate , effectiveDateAdjustment : DateRollConvention ? , terminationDate : LocalDate , terminationDateAdjustment : DateRollConvention ? , dayCountBasisDay : DayCountBasisDay , dayCountBasisYear : DayCountBasisYear , dayInMonth : Int , paymentRule : PaymentRule , paymentDelay : Int , paymentCalendar : BusinessCalendar , interestPeriodAdjustment : AccrualAdjustment , rollConvention : DateRollConvention , fixingRollConvention : DateRollConvention , resetDayInMonth : Int , fixingPeriod : DateOffset , resetRule : PaymentRule , fixingsPerPayment : Frequency , fixingCalendar : BusinessCalendar , index : String , indexSource : String , indexTenor : Tenor )
+
+
+
+Properties
+
+Inherited Properties
+
+Functions
+
+
+
+
+equals
+
+open fun equals ( other : Any ? ) : Boolean
+
+
+
+hashCode
+
+open fun hashCode ( ) : Int
+
+
+
+toString
+
+open fun toString ( ) : String
+
+
+
+
+
diff --git a/docs/build/html/api/contracts/-interest-rate-swap/-floating-leg/reset-day-in-month.html b/docs/build/html/api/contracts/-interest-rate-swap/-floating-leg/reset-day-in-month.html
new file mode 100644
index 0000000000..4603a5450f
--- /dev/null
+++ b/docs/build/html/api/contracts/-interest-rate-swap/-floating-leg/reset-day-in-month.html
@@ -0,0 +1,15 @@
+
+
+InterestRateSwap.FloatingLeg.resetDayInMonth -
+
+
+
+contracts / InterestRateSwap / FloatingLeg / resetDayInMonth
+
+resetDayInMonth
+
+var resetDayInMonth : Int
+
+
+
+
diff --git a/docs/build/html/api/contracts/-interest-rate-swap/-floating-leg/reset-rule.html b/docs/build/html/api/contracts/-interest-rate-swap/-floating-leg/reset-rule.html
new file mode 100644
index 0000000000..61c353b10d
--- /dev/null
+++ b/docs/build/html/api/contracts/-interest-rate-swap/-floating-leg/reset-rule.html
@@ -0,0 +1,15 @@
+
+
+InterestRateSwap.FloatingLeg.resetRule -
+
+
+
+contracts / InterestRateSwap / FloatingLeg / resetRule
+
+resetRule
+
+var resetRule : PaymentRule
+
+
+
+
diff --git a/docs/build/html/api/contracts/-interest-rate-swap/-floating-leg/roll-convention.html b/docs/build/html/api/contracts/-interest-rate-swap/-floating-leg/roll-convention.html
new file mode 100644
index 0000000000..b086c64b75
--- /dev/null
+++ b/docs/build/html/api/contracts/-interest-rate-swap/-floating-leg/roll-convention.html
@@ -0,0 +1,15 @@
+
+
+InterestRateSwap.FloatingLeg.rollConvention -
+
+
+
+contracts / InterestRateSwap / FloatingLeg / rollConvention
+
+rollConvention
+
+var rollConvention : DateRollConvention
+
+
+
+
diff --git a/docs/build/html/api/contracts/-interest-rate-swap/-floating-leg/to-string.html b/docs/build/html/api/contracts/-interest-rate-swap/-floating-leg/to-string.html
new file mode 100644
index 0000000000..1370e6dff7
--- /dev/null
+++ b/docs/build/html/api/contracts/-interest-rate-swap/-floating-leg/to-string.html
@@ -0,0 +1,16 @@
+
+
+InterestRateSwap.FloatingLeg.toString -
+
+
+
+contracts / InterestRateSwap / FloatingLeg / toString
+
+toString
+
+open fun toString ( ) : String
+Overrides CommonLeg.toString
+
+
+
+
diff --git a/docs/build/html/api/contracts/-interest-rate-swap/-init-.html b/docs/build/html/api/contracts/-interest-rate-swap/-init-.html
new file mode 100644
index 0000000000..2d8d915b57
--- /dev/null
+++ b/docs/build/html/api/contracts/-interest-rate-swap/-init-.html
@@ -0,0 +1,19 @@
+
+
+InterestRateSwap. -
+
+
+
+contracts / InterestRateSwap / <init>
+
+<init>
+InterestRateSwap ( )
+The Interest Rate Swap class. For a quick overview of what an IRS is, see here - http://www.pimco.co.uk/EN/Education/Pages/InterestRateSwapsBasics1-08.aspx (no endorsement)
+This contract has 4 significant data classes within it, the "Common", "Calculation", "FixedLeg" and "FloatingLeg"
+It also has 4 commands, "Agree", "Fix", "Pay" and "Mature".
+Currently, we are not interested (excuse pun) in valuing the swap, calculating the PVs, DFs and all that good stuff (soon though).
+This is just a representation of a vanilla Fixed vs Floating (same currency) IRS in the R3 prototype model.
+
+
+
+
diff --git a/docs/build/html/api/contracts/-interest-rate-swap/-state/-init-.html b/docs/build/html/api/contracts/-interest-rate-swap/-state/-init-.html
new file mode 100644
index 0000000000..b57c4a0ac3
--- /dev/null
+++ b/docs/build/html/api/contracts/-interest-rate-swap/-state/-init-.html
@@ -0,0 +1,15 @@
+
+
+InterestRateSwap.State. -
+
+
+
+contracts / InterestRateSwap / State / <init>
+
+<init>
+State ( fixedLeg : FixedLeg , floatingLeg : FloatingLeg , calculation : Calculation , common : Common )
+The state class contains the 4 major data classes
+
+
+
+
diff --git a/docs/build/html/api/contracts/-interest-rate-swap/-state/calculation.html b/docs/build/html/api/contracts/-interest-rate-swap/-state/calculation.html
new file mode 100644
index 0000000000..c1aa253ef7
--- /dev/null
+++ b/docs/build/html/api/contracts/-interest-rate-swap/-state/calculation.html
@@ -0,0 +1,15 @@
+
+
+InterestRateSwap.State.calculation -
+
+
+
+contracts / InterestRateSwap / State / calculation
+
+calculation
+
+val calculation : Calculation
+
+
+
+
diff --git a/docs/build/html/api/contracts/-interest-rate-swap/-state/common.html b/docs/build/html/api/contracts/-interest-rate-swap/-state/common.html
new file mode 100644
index 0000000000..11256484c4
--- /dev/null
+++ b/docs/build/html/api/contracts/-interest-rate-swap/-state/common.html
@@ -0,0 +1,15 @@
+
+
+InterestRateSwap.State.common -
+
+
+
+contracts / InterestRateSwap / State / common
+
+common
+
+val common : Common
+
+
+
+
diff --git a/docs/build/html/api/contracts/-interest-rate-swap/-state/contract.html b/docs/build/html/api/contracts/-interest-rate-swap/-state/contract.html
new file mode 100644
index 0000000000..861be8d2b1
--- /dev/null
+++ b/docs/build/html/api/contracts/-interest-rate-swap/-state/contract.html
@@ -0,0 +1,17 @@
+
+
+InterestRateSwap.State.contract -
+
+
+
+contracts / InterestRateSwap / State / contract
+
+contract
+
+val contract : InterestRateSwap
+Overrides ContractState.contract
+Contract by which the state belongs
+
+
+
+
diff --git a/docs/build/html/api/contracts/-interest-rate-swap/-state/evaluate-calculation.html b/docs/build/html/api/contracts/-interest-rate-swap/-state/evaluate-calculation.html
new file mode 100644
index 0000000000..c0e49fa51d
--- /dev/null
+++ b/docs/build/html/api/contracts/-interest-rate-swap/-state/evaluate-calculation.html
@@ -0,0 +1,16 @@
+
+
+InterestRateSwap.State.evaluateCalculation -
+
+
+
+contracts / InterestRateSwap / State / evaluateCalculation
+
+evaluateCalculation
+
+fun evaluateCalculation ( businessDate : LocalDate , expression : Expression = calculation.expression) : Any
+For evaluating arbitrary java on the platform
+
+
+
+
diff --git a/docs/build/html/api/contracts/-interest-rate-swap/-state/fixed-leg.html b/docs/build/html/api/contracts/-interest-rate-swap/-state/fixed-leg.html
new file mode 100644
index 0000000000..a78303e086
--- /dev/null
+++ b/docs/build/html/api/contracts/-interest-rate-swap/-state/fixed-leg.html
@@ -0,0 +1,15 @@
+
+
+InterestRateSwap.State.fixedLeg -
+
+
+
+contracts / InterestRateSwap / State / fixedLeg
+
+fixedLeg
+
+val fixedLeg : FixedLeg
+
+
+
+
diff --git a/docs/build/html/api/contracts/-interest-rate-swap/-state/floating-leg.html b/docs/build/html/api/contracts/-interest-rate-swap/-state/floating-leg.html
new file mode 100644
index 0000000000..60413f11c9
--- /dev/null
+++ b/docs/build/html/api/contracts/-interest-rate-swap/-state/floating-leg.html
@@ -0,0 +1,15 @@
+
+
+InterestRateSwap.State.floatingLeg -
+
+
+
+contracts / InterestRateSwap / State / floatingLeg
+
+floatingLeg
+
+val floatingLeg : FloatingLeg
+
+
+
+
diff --git a/docs/build/html/api/contracts/-interest-rate-swap/-state/generate-agreement.html b/docs/build/html/api/contracts/-interest-rate-swap/-state/generate-agreement.html
new file mode 100644
index 0000000000..fb58eb9899
--- /dev/null
+++ b/docs/build/html/api/contracts/-interest-rate-swap/-state/generate-agreement.html
@@ -0,0 +1,23 @@
+
+
+InterestRateSwap.State.generateAgreement -
+
+
+
+contracts / InterestRateSwap / State / generateAgreement
+
+generateAgreement
+
+fun generateAgreement ( ) : TransactionBuilder
+Overrides DealState.generateAgreement
+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/contracts/-interest-rate-swap/-state/generate-fix.html b/docs/build/html/api/contracts/-interest-rate-swap/-state/generate-fix.html
new file mode 100644
index 0000000000..cf541e0933
--- /dev/null
+++ b/docs/build/html/api/contracts/-interest-rate-swap/-state/generate-fix.html
@@ -0,0 +1,21 @@
+
+
+InterestRateSwap.State.generateFix -
+
+
+
+contracts / InterestRateSwap / State / generateFix
+
+generateFix
+
+fun generateFix ( ptx : TransactionBuilder , oldStateRef : StateRef , fix : Fix ) : Unit
+Overrides FixableDealState.generateFix
+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/contracts/-interest-rate-swap/-state/index.html b/docs/build/html/api/contracts/-interest-rate-swap/-state/index.html
new file mode 100644
index 0000000000..c118cacf0b
--- /dev/null
+++ b/docs/build/html/api/contracts/-interest-rate-swap/-state/index.html
@@ -0,0 +1,149 @@
+
+
+InterestRateSwap.State -
+
+
+
+contracts / InterestRateSwap / State
+
+State
+data class State : FixableDealState
+The state class contains the 4 major data classes
+
+
+Constructors
+
+Properties
+
+Functions
+
+
+
+
+evaluateCalculation
+
+fun evaluateCalculation ( businessDate : LocalDate , expression : Expression = calculation.expression) : Any
For evaluating arbitrary java on the platform
+
+
+
+
+generateAgreement
+
+fun generateAgreement ( ) : 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
+
+
+
+
+generateFix
+
+fun generateFix ( ptx : TransactionBuilder , oldStateRef : StateRef , fix : Fix ) : Unit
Generate a fixing command for this deal and fix
+
+
+
+
+isRelevant
+
+fun isRelevant ( ourKeys : Set < PublicKey > ) : Boolean
true if this should be tracked by our wallet(s)
+
+
+
+
+nextFixingOf
+
+fun nextFixingOf ( ) : FixOf ?
When is the next fixing and what is the fixing for?
+
+
+
+
+prettyPrint
+
+fun prettyPrint ( ) : String
Just makes printing it out a bit better for those who dont have 80000 column wide monitors.
+
+
+
+
+withPublicKey
+
+fun withPublicKey ( before : Party , after : PublicKey ) : DealState
+
+
+
+Extension Functions
+
+
+
diff --git a/docs/build/html/api/contracts/-interest-rate-swap/-state/is-relevant.html b/docs/build/html/api/contracts/-interest-rate-swap/-state/is-relevant.html
new file mode 100644
index 0000000000..15ff265ffa
--- /dev/null
+++ b/docs/build/html/api/contracts/-interest-rate-swap/-state/is-relevant.html
@@ -0,0 +1,17 @@
+
+
+InterestRateSwap.State.isRelevant -
+
+
+
+contracts / InterestRateSwap / State / isRelevant
+
+isRelevant
+
+fun isRelevant ( ourKeys : Set < PublicKey > ) : Boolean
+Overrides LinearState.isRelevant
+true if this should be tracked by our wallet(s)
+
+
+
+
diff --git a/docs/build/html/api/contracts/-interest-rate-swap/-state/next-fixing-of.html b/docs/build/html/api/contracts/-interest-rate-swap/-state/next-fixing-of.html
new file mode 100644
index 0000000000..dc3ad7e009
--- /dev/null
+++ b/docs/build/html/api/contracts/-interest-rate-swap/-state/next-fixing-of.html
@@ -0,0 +1,20 @@
+
+
+InterestRateSwap.State.nextFixingOf -
+
+
+
+contracts / InterestRateSwap / State / nextFixingOf
+
+nextFixingOf
+
+fun nextFixingOf ( ) : FixOf ?
+Overrides FixableDealState.nextFixingOf
+When is the next fixing and what is the fixing for?
+TODO: In future we would use this to register for an event to trigger a/the fixing protocol
+
+
+
+
+
+
diff --git a/docs/build/html/api/contracts/-interest-rate-swap/-state/parties.html b/docs/build/html/api/contracts/-interest-rate-swap/-state/parties.html
new file mode 100644
index 0000000000..d0a93ff4a1
--- /dev/null
+++ b/docs/build/html/api/contracts/-interest-rate-swap/-state/parties.html
@@ -0,0 +1,20 @@
+
+
+InterestRateSwap.State.parties -
+
+
+
+contracts / InterestRateSwap / State / parties
+
+parties
+
+val parties : Array < Party >
+Overrides DealState.parties
+Exposes the Parties involved in a generic way
+Getter
+Exposes the Parties involved in a generic way
+
+
+
+
+
diff --git a/docs/build/html/api/contracts/-interest-rate-swap/-state/pretty-print.html b/docs/build/html/api/contracts/-interest-rate-swap/-state/pretty-print.html
new file mode 100644
index 0000000000..e7209cd041
--- /dev/null
+++ b/docs/build/html/api/contracts/-interest-rate-swap/-state/pretty-print.html
@@ -0,0 +1,16 @@
+
+
+InterestRateSwap.State.prettyPrint -
+
+
+
+contracts / InterestRateSwap / State / prettyPrint
+
+prettyPrint
+
+fun prettyPrint ( ) : String
+Just makes printing it out a bit better for those who dont have 80000 column wide monitors.
+
+
+
+
diff --git a/docs/build/html/api/contracts/-interest-rate-swap/-state/ref.html b/docs/build/html/api/contracts/-interest-rate-swap/-state/ref.html
new file mode 100644
index 0000000000..369e739166
--- /dev/null
+++ b/docs/build/html/api/contracts/-interest-rate-swap/-state/ref.html
@@ -0,0 +1,17 @@
+
+
+InterestRateSwap.State.ref -
+
+
+
+contracts / InterestRateSwap / State / ref
+
+ref
+
+val ref : String
+Overrides DealState.ref
+Human readable well known reference (e.g. trade reference)
+
+
+
+
diff --git a/docs/build/html/api/contracts/-interest-rate-swap/-state/thread.html b/docs/build/html/api/contracts/-interest-rate-swap/-state/thread.html
new file mode 100644
index 0000000000..1aa14691ab
--- /dev/null
+++ b/docs/build/html/api/contracts/-interest-rate-swap/-state/thread.html
@@ -0,0 +1,17 @@
+
+
+InterestRateSwap.State.thread -
+
+
+
+contracts / InterestRateSwap / State / thread
+
+thread
+
+val thread : <ERROR CLASS>
+Overrides LinearState.thread
+Unique thread id within the wallets of all parties
+
+
+
+
diff --git a/docs/build/html/api/contracts/-interest-rate-swap/-state/with-public-key.html b/docs/build/html/api/contracts/-interest-rate-swap/-state/with-public-key.html
new file mode 100644
index 0000000000..ac870e886e
--- /dev/null
+++ b/docs/build/html/api/contracts/-interest-rate-swap/-state/with-public-key.html
@@ -0,0 +1,16 @@
+
+
+InterestRateSwap.State.withPublicKey -
+
+
+
+contracts / InterestRateSwap / State / withPublicKey
+
+withPublicKey
+
+fun withPublicKey ( before : Party , after : PublicKey ) : DealState
+Overrides DealState.withPublicKey
+
+
+
+
diff --git a/docs/build/html/api/contracts/-interest-rate-swap/generate-agreement.html b/docs/build/html/api/contracts/-interest-rate-swap/generate-agreement.html
new file mode 100644
index 0000000000..a39d24c79d
--- /dev/null
+++ b/docs/build/html/api/contracts/-interest-rate-swap/generate-agreement.html
@@ -0,0 +1,17 @@
+
+
+InterestRateSwap.generateAgreement -
+
+
+
+contracts / InterestRateSwap / generateAgreement
+
+generateAgreement
+
+fun generateAgreement ( floatingLeg : FloatingLeg , fixedLeg : FixedLeg , calculation : Calculation , common : Common ) : TransactionBuilder
+This generates the agreement state and also the schedules from the initial data.
+Note: The day count, interest rate calculation etc are not finished yet, but they are demonstrable.
+
+
+
+
diff --git a/docs/build/html/api/contracts/-interest-rate-swap/generate-fix.html b/docs/build/html/api/contracts/-interest-rate-swap/generate-fix.html
new file mode 100644
index 0000000000..61338083f0
--- /dev/null
+++ b/docs/build/html/api/contracts/-interest-rate-swap/generate-fix.html
@@ -0,0 +1,15 @@
+
+
+InterestRateSwap.generateFix -
+
+
+
+contracts / InterestRateSwap / generateFix
+
+generateFix
+
+fun generateFix ( tx : TransactionBuilder , irs : StateAndRef < State > , fixing : <ERROR CLASS> < LocalDate , Rate > ) : Unit
+
+
+
+
diff --git a/docs/build/html/api/contracts/-interest-rate-swap/index.html b/docs/build/html/api/contracts/-interest-rate-swap/index.html
new file mode 100644
index 0000000000..fce5c12cc7
--- /dev/null
+++ b/docs/build/html/api/contracts/-interest-rate-swap/index.html
@@ -0,0 +1,126 @@
+
+
+InterestRateSwap -
+
+
+
+contracts / InterestRateSwap
+
+InterestRateSwap
+class InterestRateSwap : Contract
+The Interest Rate Swap class. For a quick overview of what an IRS is, see here - http://www.pimco.co.uk/EN/Education/Pages/InterestRateSwapsBasics1-08.aspx (no endorsement)
+This contract has 4 significant data classes within it, the "Common", "Calculation", "FixedLeg" and "FloatingLeg"
+It also has 4 commands, "Agree", "Fix", "Pay" and "Mature".
+Currently, we are not interested (excuse pun) in valuing the swap, calculating the PVs, DFs and all that good stuff (soon though).
+This is just a representation of a vanilla Fixed vs Floating (same currency) IRS in the R3 prototype model.
+
+
+Types
+
+
+
+
+Calculation
+
+data class Calculation
The Calculation data class is "mutable" through out the life of the swap, as in, its the only thing that contains
+data that will changed from state to state (Recall that the design insists that everything is immutable, so we actually
+copy / update for each transition)
+
+
+
+
+Commands
+
+interface Commands : CommandData
+
+
+
+Common
+
+data class Common
This Common area contains all the information that is not leg specific.
+
+
+
+
+CommonLeg
+
+abstract class CommonLeg
+
+
+
+FixedLeg
+
+class FixedLeg : CommonLeg
+
+
+
+FloatingLeg
+
+class FloatingLeg : CommonLeg
+
+
+
+State
+
+data class State : FixableDealState
The state class contains the 4 major data classes
+
+
+
+
+Constructors
+
+
+
+
+<init>
+
+InterestRateSwap ( )
The Interest Rate Swap class. For a quick overview of what an IRS is, see here - http://www.pimco.co.uk/EN/Education/Pages/InterestRateSwapsBasics1-08.aspx (no endorsement)
+This contract has 4 significant data classes within it, the "Common", "Calculation", "FixedLeg" and "FloatingLeg"
+It also has 4 commands, "Agree", "Fix", "Pay" and "Mature".
+Currently, we are not interested (excuse pun) in valuing the swap, calculating the PVs, DFs and all that good stuff (soon though).
+This is just a representation of a vanilla Fixed vs Floating (same currency) IRS in the R3 prototype model.
+
+
+
+
+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/contracts/-interest-rate-swap/legal-contract-reference.html b/docs/build/html/api/contracts/-interest-rate-swap/legal-contract-reference.html
new file mode 100644
index 0000000000..7c94a9dd42
--- /dev/null
+++ b/docs/build/html/api/contracts/-interest-rate-swap/legal-contract-reference.html
@@ -0,0 +1,18 @@
+
+
+InterestRateSwap.legalContractReference -
+
+
+
+contracts / InterestRateSwap / 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/contracts/-interest-rate-swap/verify.html b/docs/build/html/api/contracts/-interest-rate-swap/verify.html
new file mode 100644
index 0000000000..a5e959c5c8
--- /dev/null
+++ b/docs/build/html/api/contracts/-interest-rate-swap/verify.html
@@ -0,0 +1,17 @@
+
+
+InterestRateSwap.verify -
+
+
+
+contracts / InterestRateSwap / verify
+
+verify
+
+fun verify ( tx : TransactionForVerification ) : Unit
+Overrides Contract.verify
+verify() with a few examples of what needs to be checked. TODO: Lots more to add.
+
+
+
+
diff --git a/docs/build/html/api/contracts/-payment-event/-init-.html b/docs/build/html/api/contracts/-payment-event/-init-.html
new file mode 100644
index 0000000000..837dae01ac
--- /dev/null
+++ b/docs/build/html/api/contracts/-payment-event/-init-.html
@@ -0,0 +1,15 @@
+
+
+PaymentEvent. -
+
+
+
+contracts / PaymentEvent / <init>
+
+<init>
+PaymentEvent ( date : LocalDate )
+Top level PaymentEvent class - represents an obligation to pay an amount on a given date, which may be either in the past or the future.
+
+
+
+
diff --git a/docs/build/html/api/contracts/-payment-event/calculate.html b/docs/build/html/api/contracts/-payment-event/calculate.html
new file mode 100644
index 0000000000..435a649875
--- /dev/null
+++ b/docs/build/html/api/contracts/-payment-event/calculate.html
@@ -0,0 +1,15 @@
+
+
+PaymentEvent.calculate -
+
+
+
+contracts / PaymentEvent / calculate
+
+calculate
+
+abstract fun calculate ( ) : Amount
+
+
+
+
diff --git a/docs/build/html/api/contracts/-payment-event/index.html b/docs/build/html/api/contracts/-payment-event/index.html
new file mode 100644
index 0000000000..451af5f9d1
--- /dev/null
+++ b/docs/build/html/api/contracts/-payment-event/index.html
@@ -0,0 +1,65 @@
+
+
+PaymentEvent -
+
+
+
+contracts / PaymentEvent
+
+PaymentEvent
+abstract class PaymentEvent : Event
+Top level PaymentEvent class - represents an obligation to pay an amount on a given date, which may be either in the past or the future.
+
+
+Constructors
+
+
+
+
+<init>
+
+PaymentEvent ( date : LocalDate )
Top level PaymentEvent class - represents an obligation to pay an amount on a given date, which may be either in the past or the future.
+
+
+
+
+Inherited Properties
+
+Functions
+
+Inheritors
+
+
+
+
+RatePaymentEvent
+
+abstract class RatePaymentEvent : PaymentEvent
A RatePaymentEvent represents a dated obligation of payment.
+It is a specialisation / modification of a basic cash flow event (to be written) that has some additional assistance
+functions for interest rate swap legs of the fixed and floating nature.
+For the fixed leg, the rate is already known at creation and therefore the flows can be pre-determined.
+For the floating leg, the rate refers to a reference rate which is to be "fixed" at a point in the future.
+
+
+
+
+
+
diff --git a/docs/build/html/api/contracts/-percentage-ratio-unit/-init-.html b/docs/build/html/api/contracts/-percentage-ratio-unit/-init-.html
new file mode 100644
index 0000000000..9f2a55f382
--- /dev/null
+++ b/docs/build/html/api/contracts/-percentage-ratio-unit/-init-.html
@@ -0,0 +1,15 @@
+
+
+PercentageRatioUnit. -
+
+
+
+contracts / PercentageRatioUnit / <init>
+
+<init>
+PercentageRatioUnit ( percentageAsString : String )
+A class to reprecent a percentage in an unambiguous way.
+
+
+
+
diff --git a/docs/build/html/api/contracts/-percentage-ratio-unit/index.html b/docs/build/html/api/contracts/-percentage-ratio-unit/index.html
new file mode 100644
index 0000000000..1619980624
--- /dev/null
+++ b/docs/build/html/api/contracts/-percentage-ratio-unit/index.html
@@ -0,0 +1,66 @@
+
+
+PercentageRatioUnit -
+
+
+
+contracts / PercentageRatioUnit
+
+PercentageRatioUnit
+open class PercentageRatioUnit : RatioUnit
+A class to reprecent a percentage in an unambiguous way.
+
+
+Constructors
+
+
+
+
+<init>
+
+PercentageRatioUnit ( percentageAsString : String )
A class to reprecent a percentage in an unambiguous way.
+
+
+
+
+Inherited Properties
+
+Functions
+
+
+
+
+toString
+
+open fun toString ( ) : String
+
+
+
+Inherited Functions
+
+
+
+
+equals
+
+open fun equals ( other : Any ? ) : Boolean
+
+
+
+hashCode
+
+open fun hashCode ( ) : Int
+
+
+
+
+
diff --git a/docs/build/html/api/contracts/-percentage-ratio-unit/to-string.html b/docs/build/html/api/contracts/-percentage-ratio-unit/to-string.html
new file mode 100644
index 0000000000..0c2d3592de
--- /dev/null
+++ b/docs/build/html/api/contracts/-percentage-ratio-unit/to-string.html
@@ -0,0 +1,15 @@
+
+
+PercentageRatioUnit.toString -
+
+
+
+contracts / PercentageRatioUnit / toString
+
+toString
+
+open fun toString ( ) : String
+
+
+
+
diff --git a/docs/build/html/api/contracts/-rate-payment-event/-c-s-v-header.html b/docs/build/html/api/contracts/-rate-payment-event/-c-s-v-header.html
new file mode 100644
index 0000000000..0cd2bc0e3b
--- /dev/null
+++ b/docs/build/html/api/contracts/-rate-payment-event/-c-s-v-header.html
@@ -0,0 +1,15 @@
+
+
+RatePaymentEvent.CSVHeader -
+
+
+
+contracts / RatePaymentEvent / CSVHeader
+
+CSVHeader
+
+val CSVHeader : String
+
+
+
+
diff --git a/docs/build/html/api/contracts/-rate-payment-event/-init-.html b/docs/build/html/api/contracts/-rate-payment-event/-init-.html
new file mode 100644
index 0000000000..a981dc1f5f
--- /dev/null
+++ b/docs/build/html/api/contracts/-rate-payment-event/-init-.html
@@ -0,0 +1,19 @@
+
+
+RatePaymentEvent. -
+
+
+
+contracts / RatePaymentEvent / <init>
+
+<init>
+RatePaymentEvent ( date : LocalDate , accrualStartDate : LocalDate , accrualEndDate : LocalDate , dayCountBasisDay : DayCountBasisDay , dayCountBasisYear : DayCountBasisYear , notional : Amount , rate : Rate )
+A RatePaymentEvent represents a dated obligation of payment.
+It is a specialisation / modification of a basic cash flow event (to be written) that has some additional assistance
+functions for interest rate swap legs of the fixed and floating nature.
+For the fixed leg, the rate is already known at creation and therefore the flows can be pre-determined.
+For the floating leg, the rate refers to a reference rate which is to be "fixed" at a point in the future.
+
+
+
+
diff --git a/docs/build/html/api/contracts/-rate-payment-event/accrual-end-date.html b/docs/build/html/api/contracts/-rate-payment-event/accrual-end-date.html
new file mode 100644
index 0000000000..a6f1b7e226
--- /dev/null
+++ b/docs/build/html/api/contracts/-rate-payment-event/accrual-end-date.html
@@ -0,0 +1,15 @@
+
+
+RatePaymentEvent.accrualEndDate -
+
+
+
+contracts / RatePaymentEvent / accrualEndDate
+
+accrualEndDate
+
+val accrualEndDate : LocalDate
+
+
+
+
diff --git a/docs/build/html/api/contracts/-rate-payment-event/accrual-start-date.html b/docs/build/html/api/contracts/-rate-payment-event/accrual-start-date.html
new file mode 100644
index 0000000000..0edcba7611
--- /dev/null
+++ b/docs/build/html/api/contracts/-rate-payment-event/accrual-start-date.html
@@ -0,0 +1,15 @@
+
+
+RatePaymentEvent.accrualStartDate -
+
+
+
+contracts / RatePaymentEvent / accrualStartDate
+
+accrualStartDate
+
+val accrualStartDate : LocalDate
+
+
+
+
diff --git a/docs/build/html/api/contracts/-rate-payment-event/as-c-s-v.html b/docs/build/html/api/contracts/-rate-payment-event/as-c-s-v.html
new file mode 100644
index 0000000000..86514af959
--- /dev/null
+++ b/docs/build/html/api/contracts/-rate-payment-event/as-c-s-v.html
@@ -0,0 +1,15 @@
+
+
+RatePaymentEvent.asCSV -
+
+
+
+contracts / RatePaymentEvent / asCSV
+
+asCSV
+
+open fun asCSV ( ) : String
+
+
+
+
diff --git a/docs/build/html/api/contracts/-rate-payment-event/calculate.html b/docs/build/html/api/contracts/-rate-payment-event/calculate.html
new file mode 100644
index 0000000000..4de05aec07
--- /dev/null
+++ b/docs/build/html/api/contracts/-rate-payment-event/calculate.html
@@ -0,0 +1,16 @@
+
+
+RatePaymentEvent.calculate -
+
+
+
+contracts / RatePaymentEvent / calculate
+
+calculate
+
+open fun calculate ( ) : Amount
+Overrides PaymentEvent.calculate
+
+
+
+
diff --git a/docs/build/html/api/contracts/-rate-payment-event/day-count-basis-day.html b/docs/build/html/api/contracts/-rate-payment-event/day-count-basis-day.html
new file mode 100644
index 0000000000..2274547e9b
--- /dev/null
+++ b/docs/build/html/api/contracts/-rate-payment-event/day-count-basis-day.html
@@ -0,0 +1,15 @@
+
+
+RatePaymentEvent.dayCountBasisDay -
+
+
+
+contracts / RatePaymentEvent / dayCountBasisDay
+
+dayCountBasisDay
+
+val dayCountBasisDay : DayCountBasisDay
+
+
+
+
diff --git a/docs/build/html/api/contracts/-rate-payment-event/day-count-basis-year.html b/docs/build/html/api/contracts/-rate-payment-event/day-count-basis-year.html
new file mode 100644
index 0000000000..775f8f18fb
--- /dev/null
+++ b/docs/build/html/api/contracts/-rate-payment-event/day-count-basis-year.html
@@ -0,0 +1,15 @@
+
+
+RatePaymentEvent.dayCountBasisYear -
+
+
+
+contracts / RatePaymentEvent / dayCountBasisYear
+
+dayCountBasisYear
+
+val dayCountBasisYear : DayCountBasisYear
+
+
+
+
diff --git a/docs/build/html/api/contracts/-rate-payment-event/day-count-factor.html b/docs/build/html/api/contracts/-rate-payment-event/day-count-factor.html
new file mode 100644
index 0000000000..0b02114923
--- /dev/null
+++ b/docs/build/html/api/contracts/-rate-payment-event/day-count-factor.html
@@ -0,0 +1,15 @@
+
+
+RatePaymentEvent.dayCountFactor -
+
+
+
+contracts / RatePaymentEvent / dayCountFactor
+
+dayCountFactor
+
+val dayCountFactor : BigDecimal
+
+
+
+
diff --git a/docs/build/html/api/contracts/-rate-payment-event/days.html b/docs/build/html/api/contracts/-rate-payment-event/days.html
new file mode 100644
index 0000000000..effd540112
--- /dev/null
+++ b/docs/build/html/api/contracts/-rate-payment-event/days.html
@@ -0,0 +1,15 @@
+
+
+RatePaymentEvent.days -
+
+
+
+contracts / RatePaymentEvent / days
+
+days
+
+val days : Int
+
+
+
+
diff --git a/docs/build/html/api/contracts/-rate-payment-event/flow.html b/docs/build/html/api/contracts/-rate-payment-event/flow.html
new file mode 100644
index 0000000000..f79917af91
--- /dev/null
+++ b/docs/build/html/api/contracts/-rate-payment-event/flow.html
@@ -0,0 +1,15 @@
+
+
+RatePaymentEvent.flow -
+
+
+
+contracts / RatePaymentEvent / flow
+
+flow
+
+abstract val flow : Amount
+
+
+
+
diff --git a/docs/build/html/api/contracts/-rate-payment-event/index.html b/docs/build/html/api/contracts/-rate-payment-event/index.html
new file mode 100644
index 0000000000..b8acd1338a
--- /dev/null
+++ b/docs/build/html/api/contracts/-rate-payment-event/index.html
@@ -0,0 +1,143 @@
+
+
+RatePaymentEvent -
+
+
+
+contracts / RatePaymentEvent
+
+RatePaymentEvent
+abstract class RatePaymentEvent : PaymentEvent
+A RatePaymentEvent represents a dated obligation of payment.
+It is a specialisation / modification of a basic cash flow event (to be written) that has some additional assistance
+functions for interest rate swap legs of the fixed and floating nature.
+For the fixed leg, the rate is already known at creation and therefore the flows can be pre-determined.
+For the floating leg, the rate refers to a reference rate which is to be "fixed" at a point in the future.
+
+
+Constructors
+
+
+
+
+<init>
+
+RatePaymentEvent ( date : LocalDate , accrualStartDate : LocalDate , accrualEndDate : LocalDate , dayCountBasisDay : DayCountBasisDay , dayCountBasisYear : DayCountBasisYear , notional : Amount , rate : Rate )
A RatePaymentEvent represents a dated obligation of payment.
+It is a specialisation / modification of a basic cash flow event (to be written) that has some additional assistance
+functions for interest rate swap legs of the fixed and floating nature.
+For the fixed leg, the rate is already known at creation and therefore the flows can be pre-determined.
+For the floating leg, the rate refers to a reference rate which is to be "fixed" at a point in the future.
+
+
+
+
+Properties
+
+Functions
+
+Companion Object Properties
+
+
+
+
+CSVHeader
+
+val CSVHeader : String
+
+
+
+Inheritors
+
+
+
+
+FixedRatePaymentEvent
+
+class FixedRatePaymentEvent : RatePaymentEvent
Basic class for the Fixed Rate Payments on the fixed leg - see RatePaymentEvent
+Assumes that the rate is valid.
+
+
+
+
+FloatingRatePaymentEvent
+
+class FloatingRatePaymentEvent : RatePaymentEvent
Basic class for the Floating Rate Payments on the floating leg - see RatePaymentEvent
+If the rate is null returns a zero payment. // TODO: Is this the desired behaviour?
+
+
+
+
+
+
diff --git a/docs/build/html/api/contracts/-rate-payment-event/notional.html b/docs/build/html/api/contracts/-rate-payment-event/notional.html
new file mode 100644
index 0000000000..6507963145
--- /dev/null
+++ b/docs/build/html/api/contracts/-rate-payment-event/notional.html
@@ -0,0 +1,15 @@
+
+
+RatePaymentEvent.notional -
+
+
+
+contracts / RatePaymentEvent / notional
+
+notional
+
+val notional : Amount
+
+
+
+
diff --git a/docs/build/html/api/contracts/-rate-payment-event/rate.html b/docs/build/html/api/contracts/-rate-payment-event/rate.html
new file mode 100644
index 0000000000..a57be8468e
--- /dev/null
+++ b/docs/build/html/api/contracts/-rate-payment-event/rate.html
@@ -0,0 +1,15 @@
+
+
+RatePaymentEvent.rate -
+
+
+
+contracts / RatePaymentEvent / rate
+
+rate
+
+val rate : Rate
+
+
+
+
diff --git a/docs/build/html/api/contracts/-rate/-init-.html b/docs/build/html/api/contracts/-rate/-init-.html
new file mode 100644
index 0000000000..e91652d714
--- /dev/null
+++ b/docs/build/html/api/contracts/-rate/-init-.html
@@ -0,0 +1,15 @@
+
+
+Rate. -
+
+
+
+contracts / Rate / <init>
+
+<init>
+Rate ( ratioUnit : RatioUnit ? = null)
+Parent of the Rate family. Used to denote fixed rates, floating rates, reference rates etc
+
+
+
+
diff --git a/docs/build/html/api/contracts/-rate/equals.html b/docs/build/html/api/contracts/-rate/equals.html
new file mode 100644
index 0000000000..f9485831db
--- /dev/null
+++ b/docs/build/html/api/contracts/-rate/equals.html
@@ -0,0 +1,15 @@
+
+
+Rate.equals -
+
+
+
+contracts / Rate / equals
+
+equals
+
+open fun equals ( other : Any ? ) : Boolean
+
+
+
+
diff --git a/docs/build/html/api/contracts/-rate/hash-code.html b/docs/build/html/api/contracts/-rate/hash-code.html
new file mode 100644
index 0000000000..60000d4848
--- /dev/null
+++ b/docs/build/html/api/contracts/-rate/hash-code.html
@@ -0,0 +1,19 @@
+
+
+Rate.hashCode -
+
+
+
+contracts / Rate / hashCode
+
+hashCode
+
+open fun hashCode ( ) : Int
+Returns
+the hash code of the ratioUnit or zero if the ratioUnit is null, as is the case for floating rate fixings
+that have not yet happened. Yet-to-be fixed floating rates need to be equal such that schedules can be tested
+for equality.
+
+
+
+
diff --git a/docs/build/html/api/contracts/-rate/index.html b/docs/build/html/api/contracts/-rate/index.html
new file mode 100644
index 0000000000..8aa993e97a
--- /dev/null
+++ b/docs/build/html/api/contracts/-rate/index.html
@@ -0,0 +1,74 @@
+
+
+Rate -
+
+
+
+contracts / Rate
+
+Rate
+open class Rate
+Parent of the Rate family. Used to denote fixed rates, floating rates, reference rates etc
+
+
+Constructors
+
+
+
+
+<init>
+
+Rate ( ratioUnit : RatioUnit ? = null)
Parent of the Rate family. Used to denote fixed rates, floating rates, reference rates etc
+
+
+
+
+Properties
+
+Functions
+
+
+
+
+equals
+
+open fun equals ( other : Any ? ) : Boolean
+
+
+
+hashCode
+
+open fun hashCode ( ) : Int
+
+
+
+Inheritors
+
+
+
+
+FixedRate
+
+class FixedRate : Rate
A very basic subclass to represent a fixed rate.
+
+
+
+
+FloatingRate
+
+open class FloatingRate : Rate
The parent class of the Floating rate classes
+
+
+
+
+
+
diff --git a/docs/build/html/api/contracts/-rate/ratio-unit.html b/docs/build/html/api/contracts/-rate/ratio-unit.html
new file mode 100644
index 0000000000..bed563f5f4
--- /dev/null
+++ b/docs/build/html/api/contracts/-rate/ratio-unit.html
@@ -0,0 +1,15 @@
+
+
+Rate.ratioUnit -
+
+
+
+contracts / Rate / ratioUnit
+
+ratioUnit
+
+val ratioUnit : RatioUnit ?
+
+
+
+
diff --git a/docs/build/html/api/contracts/-ratio-unit/-init-.html b/docs/build/html/api/contracts/-ratio-unit/-init-.html
new file mode 100644
index 0000000000..c67d747f2a
--- /dev/null
+++ b/docs/build/html/api/contracts/-ratio-unit/-init-.html
@@ -0,0 +1,15 @@
+
+
+RatioUnit. -
+
+
+
+contracts / RatioUnit / <init>
+
+<init>
+RatioUnit ( value : BigDecimal )
+A utility class to prevent the various mixups between percentages, decimals, bips etc.
+
+
+
+
diff --git a/docs/build/html/api/contracts/-ratio-unit/equals.html b/docs/build/html/api/contracts/-ratio-unit/equals.html
new file mode 100644
index 0000000000..7c6687e975
--- /dev/null
+++ b/docs/build/html/api/contracts/-ratio-unit/equals.html
@@ -0,0 +1,15 @@
+
+
+RatioUnit.equals -
+
+
+
+contracts / RatioUnit / equals
+
+equals
+
+open fun equals ( other : Any ? ) : Boolean
+
+
+
+
diff --git a/docs/build/html/api/contracts/-ratio-unit/hash-code.html b/docs/build/html/api/contracts/-ratio-unit/hash-code.html
new file mode 100644
index 0000000000..f43e3e3d15
--- /dev/null
+++ b/docs/build/html/api/contracts/-ratio-unit/hash-code.html
@@ -0,0 +1,15 @@
+
+
+RatioUnit.hashCode -
+
+
+
+contracts / RatioUnit / hashCode
+
+hashCode
+
+open fun hashCode ( ) : Int
+
+
+
+
diff --git a/docs/build/html/api/contracts/-ratio-unit/index.html b/docs/build/html/api/contracts/-ratio-unit/index.html
new file mode 100644
index 0000000000..a099aaf936
--- /dev/null
+++ b/docs/build/html/api/contracts/-ratio-unit/index.html
@@ -0,0 +1,67 @@
+
+
+RatioUnit -
+
+
+
+contracts / RatioUnit
+
+RatioUnit
+open class RatioUnit
+A utility class to prevent the various mixups between percentages, decimals, bips etc.
+
+
+Constructors
+
+
+
+
+<init>
+
+RatioUnit ( value : BigDecimal )
A utility class to prevent the various mixups between percentages, decimals, bips etc.
+
+
+
+
+Properties
+
+Functions
+
+
+
+
+equals
+
+open fun equals ( other : Any ? ) : Boolean
+
+
+
+hashCode
+
+open fun hashCode ( ) : Int
+
+
+
+Inheritors
+
+
+
+
+PercentageRatioUnit
+
+open class PercentageRatioUnit : RatioUnit
A class to reprecent a percentage in an unambiguous way.
+
+
+
+
+
+
diff --git a/docs/build/html/api/contracts/-ratio-unit/value.html b/docs/build/html/api/contracts/-ratio-unit/value.html
new file mode 100644
index 0000000000..962c70aee2
--- /dev/null
+++ b/docs/build/html/api/contracts/-ratio-unit/value.html
@@ -0,0 +1,15 @@
+
+
+RatioUnit.value -
+
+
+
+contracts / RatioUnit / value
+
+value
+
+val value : BigDecimal
+
+
+
+
diff --git a/docs/build/html/api/contracts/-reference-rate/-init-.html b/docs/build/html/api/contracts/-reference-rate/-init-.html
new file mode 100644
index 0000000000..75114f93c0
--- /dev/null
+++ b/docs/build/html/api/contracts/-reference-rate/-init-.html
@@ -0,0 +1,16 @@
+
+
+ReferenceRate. -
+
+
+
+contracts / ReferenceRate / <init>
+
+<init>
+ReferenceRate ( oracle : String , tenor : Tenor , name : String )
+So a reference rate is a rate that takes its value from a source at a given date
+e.g. LIBOR 6M as of 17 March 2016. Hence it requires a source (name) and a value date in the getAsOf(..) method.
+
+
+
+
diff --git a/docs/build/html/api/contracts/-reference-rate/index.html b/docs/build/html/api/contracts/-reference-rate/index.html
new file mode 100644
index 0000000000..6b0ffb7dbb
--- /dev/null
+++ b/docs/build/html/api/contracts/-reference-rate/index.html
@@ -0,0 +1,63 @@
+
+
+ReferenceRate -
+
+
+
+contracts / ReferenceRate
+
+ReferenceRate
+class ReferenceRate : FloatingRate
+So a reference rate is a rate that takes its value from a source at a given date
+e.g. LIBOR 6M as of 17 March 2016. Hence it requires a source (name) and a value date in the getAsOf(..) method.
+
+
+Constructors
+
+
+
+
+<init>
+
+ReferenceRate ( oracle : String , tenor : Tenor , name : String )
So a reference rate is a rate that takes its value from a source at a given date
+e.g. LIBOR 6M as of 17 March 2016. Hence it requires a source (name) and a value date in the getAsOf(..) method.
+
+
+
+
+Properties
+
+
+
+
+name
+
+val name : String
+
+
+
+oracle
+
+val oracle : String
+
+
+
+tenor
+
+val tenor : Tenor
+
+
+
+Functions
+
+
+
+
+toString
+
+fun toString ( ) : String
+
+
+
+
+
diff --git a/docs/build/html/api/contracts/-reference-rate/name.html b/docs/build/html/api/contracts/-reference-rate/name.html
new file mode 100644
index 0000000000..612fa9c1ab
--- /dev/null
+++ b/docs/build/html/api/contracts/-reference-rate/name.html
@@ -0,0 +1,15 @@
+
+
+ReferenceRate.name -
+
+
+
+contracts / ReferenceRate / name
+
+name
+
+val name : String
+
+
+
+
diff --git a/docs/build/html/api/contracts/-reference-rate/oracle.html b/docs/build/html/api/contracts/-reference-rate/oracle.html
new file mode 100644
index 0000000000..06993dde84
--- /dev/null
+++ b/docs/build/html/api/contracts/-reference-rate/oracle.html
@@ -0,0 +1,15 @@
+
+
+ReferenceRate.oracle -
+
+
+
+contracts / ReferenceRate / oracle
+
+oracle
+
+val oracle : String
+
+
+
+
diff --git a/docs/build/html/api/contracts/-reference-rate/tenor.html b/docs/build/html/api/contracts/-reference-rate/tenor.html
new file mode 100644
index 0000000000..d3eab1708b
--- /dev/null
+++ b/docs/build/html/api/contracts/-reference-rate/tenor.html
@@ -0,0 +1,15 @@
+
+
+ReferenceRate.tenor -
+
+
+
+contracts / ReferenceRate / tenor
+
+tenor
+
+val tenor : Tenor
+
+
+
+
diff --git a/docs/build/html/api/contracts/-reference-rate/to-string.html b/docs/build/html/api/contracts/-reference-rate/to-string.html
new file mode 100644
index 0000000000..dab7d23be0
--- /dev/null
+++ b/docs/build/html/api/contracts/-reference-rate/to-string.html
@@ -0,0 +1,15 @@
+
+
+ReferenceRate.toString -
+
+
+
+contracts / ReferenceRate / toString
+
+toString
+
+fun toString ( ) : String
+
+
+
+
diff --git a/docs/build/html/api/contracts/-unknown-type/-init-.html b/docs/build/html/api/contracts/-unknown-type/-init-.html
new file mode 100644
index 0000000000..dc9ecf27df
--- /dev/null
+++ b/docs/build/html/api/contracts/-unknown-type/-init-.html
@@ -0,0 +1,14 @@
+
+
+UnknownType. -
+
+
+
+contracts / UnknownType / <init>
+
+<init>
+UnknownType ( )
+
+
+
+
diff --git a/docs/build/html/api/contracts/-unknown-type/equals.html b/docs/build/html/api/contracts/-unknown-type/equals.html
new file mode 100644
index 0000000000..23bcd43d6d
--- /dev/null
+++ b/docs/build/html/api/contracts/-unknown-type/equals.html
@@ -0,0 +1,15 @@
+
+
+UnknownType.equals -
+
+
+
+contracts / UnknownType / equals
+
+equals
+
+open fun equals ( other : Any ? ) : Boolean
+
+
+
+
diff --git a/docs/build/html/api/contracts/-unknown-type/hash-code.html b/docs/build/html/api/contracts/-unknown-type/hash-code.html
new file mode 100644
index 0000000000..293a0bc33d
--- /dev/null
+++ b/docs/build/html/api/contracts/-unknown-type/hash-code.html
@@ -0,0 +1,15 @@
+
+
+UnknownType.hashCode -
+
+
+
+contracts / UnknownType / hashCode
+
+hashCode
+
+open fun hashCode ( ) : Int
+
+
+
+
diff --git a/docs/build/html/api/contracts/-unknown-type/index.html b/docs/build/html/api/contracts/-unknown-type/index.html
new file mode 100644
index 0000000000..17d27a499e
--- /dev/null
+++ b/docs/build/html/api/contracts/-unknown-type/index.html
@@ -0,0 +1,42 @@
+
+
+UnknownType -
+
+
+
+contracts / UnknownType
+
+UnknownType
+open class UnknownType
+
+
+Constructors
+
+
+
+
+<init>
+
+UnknownType ( )
+
+
+
+Functions
+
+
+
+
+equals
+
+open fun equals ( other : Any ? ) : Boolean
+
+
+
+hashCode
+
+open fun hashCode ( ) : Int
+
+
+
+
+
diff --git a/docs/build/html/api/contracts/export-i-r-s-to-c-s-v.html b/docs/build/html/api/contracts/export-i-r-s-to-c-s-v.html
new file mode 100644
index 0000000000..3a8dd27ae5
--- /dev/null
+++ b/docs/build/html/api/contracts/export-i-r-s-to-c-s-v.html
@@ -0,0 +1,15 @@
+
+
+exportIRSToCSV -
+
+
+
+contracts / exportIRSToCSV
+
+exportIRSToCSV
+
+fun State . exportIRSToCSV ( ) : String
+
+
+
+
diff --git a/docs/build/html/api/contracts/index.html b/docs/build/html/api/contracts/index.html
new file mode 100644
index 0000000000..717dac9af8
--- /dev/null
+++ b/docs/build/html/api/contracts/index.html
@@ -0,0 +1,254 @@
+
+
+contracts -
+
+
+
+contracts
+
+Package contracts
+Types
+
+
+
+
+Cash
+
+class Cash : Contract
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.
+
+
+
+
+CommercialPaper
+
+class CommercialPaper : Contract
+
+
+
+CrowdFund
+
+class CrowdFund : Contract
This is a basic crowd funding contract. It allows a party to create a funding opportunity, then for others to
+pledge during the funding period , and then for the party to either accept the funding (if the target has been reached)
+return the funds to the pledge-makers (if the target has not been reached).
+
+
+
+
+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
+
+
+
+Event
+
+open class Event
Event superclass - everything happens on a date.
+
+
+
+
+FixableDealState
+
+interface FixableDealState : DealState
Interface adding fixing specific methods
+
+
+
+
+FixedRate
+
+class FixedRate : Rate
A very basic subclass to represent a fixed rate.
+
+
+
+
+FixedRatePaymentEvent
+
+class FixedRatePaymentEvent : RatePaymentEvent
Basic class for the Fixed Rate Payments on the fixed leg - see RatePaymentEvent
+Assumes that the rate is valid.
+
+
+
+
+FloatingRate
+
+open class FloatingRate : Rate
The parent class of the Floating rate classes
+
+
+
+
+FloatingRatePaymentEvent
+
+class FloatingRatePaymentEvent : RatePaymentEvent
Basic class for the Floating Rate Payments on the floating leg - see RatePaymentEvent
+If the rate is null returns a zero payment. // TODO: Is this the desired behaviour?
+
+
+
+
+InterestRateSwap
+
+class InterestRateSwap : Contract
The Interest Rate Swap class. For a quick overview of what an IRS is, see here - http://www.pimco.co.uk/EN/Education/Pages/InterestRateSwapsBasics1-08.aspx (no endorsement)
+This contract has 4 significant data classes within it, the "Common", "Calculation", "FixedLeg" and "FloatingLeg"
+It also has 4 commands, "Agree", "Fix", "Pay" and "Mature".
+Currently, we are not interested (excuse pun) in valuing the swap, calculating the PVs, DFs and all that good stuff (soon though).
+This is just a representation of a vanilla Fixed vs Floating (same currency) IRS in the R3 prototype model.
+
+
+
+
+PaymentEvent
+
+abstract class PaymentEvent : Event
Top level PaymentEvent class - represents an obligation to pay an amount on a given date, which may be either in the past or the future.
+
+
+
+
+PercentageRatioUnit
+
+open class PercentageRatioUnit : RatioUnit
A class to reprecent a percentage in an unambiguous way.
+
+
+
+
+Rate
+
+open class Rate
Parent of the Rate family. Used to denote fixed rates, floating rates, reference rates etc
+
+
+
+
+RatePaymentEvent
+
+abstract class RatePaymentEvent : PaymentEvent
A RatePaymentEvent represents a dated obligation of payment.
+It is a specialisation / modification of a basic cash flow event (to be written) that has some additional assistance
+functions for interest rate swap legs of the fixed and floating nature.
+For the fixed leg, the rate is already known at creation and therefore the flows can be pre-determined.
+For the floating leg, the rate refers to a reference rate which is to be "fixed" at a point in the future.
+
+
+
+
+RatioUnit
+
+open class RatioUnit
A utility class to prevent the various mixups between percentages, decimals, bips etc.
+
+
+
+
+ReferenceRate
+
+class ReferenceRate : FloatingRate
So a reference rate is a rate that takes its value from a source at a given date
+e.g. LIBOR 6M as of 17 March 2016. Hence it requires a source (name) and a value date in the getAsOf(..) method.
+
+
+
+
+UnknownType
+
+open class UnknownType
+
+
+
+Exceptions
+
+Extensions for External Classes
+
+Properties
+
+
+
+
+CASH_PROGRAM_ID
+
+val CASH_PROGRAM_ID : Cash
+
+
+
+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).
+
+
+
+
+CROWDFUND_PROGRAM_ID
+
+val CROWDFUND_PROGRAM_ID : CrowdFund
+
+
+
+DUMMY_PROGRAM_ID
+
+val DUMMY_PROGRAM_ID : DummyContract
+
+
+
+IRS_PROGRAM_ID
+
+val IRS_PROGRAM_ID : InterestRateSwap
+
+
+
+Functions
+
+
+
diff --git a/docs/build/html/api/contracts/kotlin.-int/index.html b/docs/build/html/api/contracts/kotlin.-int/index.html
new file mode 100644
index 0000000000..a1b8bfcc6d
--- /dev/null
+++ b/docs/build/html/api/contracts/kotlin.-int/index.html
@@ -0,0 +1,23 @@
+
+
+contracts.kotlin.Int -
+
+
+
+contracts / kotlin.Int
+
+Extensions for kotlin.Int
+
+
+
+
+times
+
+operator fun Int . times ( other : FixedRate ) : Int
+operator fun Int . times ( other : Rate ) : Int
+operator fun Int . times ( other : RatioUnit ) : Int
+
+
+
+
+
diff --git a/docs/build/html/api/contracts/kotlin.-int/times.html b/docs/build/html/api/contracts/kotlin.-int/times.html
new file mode 100644
index 0000000000..e00e9f8c13
--- /dev/null
+++ b/docs/build/html/api/contracts/kotlin.-int/times.html
@@ -0,0 +1,19 @@
+
+
+times -
+
+
+
+contracts / kotlin.Int / times
+
+times
+
+operator fun Int . times ( other : FixedRate ) : Int
+
+operator fun Int . times ( other : Rate ) : Int
+
+operator fun Int . times ( other : RatioUnit ) : Int
+
+
+
+
diff --git a/docs/build/html/api/contracts/kotlin.-string/index.html b/docs/build/html/api/contracts/kotlin.-string/index.html
new file mode 100644
index 0000000000..3a22e7b44e
--- /dev/null
+++ b/docs/build/html/api/contracts/kotlin.-string/index.html
@@ -0,0 +1,24 @@
+
+
+contracts.kotlin.String -
+
+
+
+contracts / kotlin.String
+
+Extensions for kotlin.String
+
+
+
+
+percent
+
+val String . percent : PercentageRatioUnit
For the convenience of writing "5".percent
+Note that we do not currently allow 10.percent (ie no quotes) as this might get a little confusing if
+0.1.percent was written TODO: Discuss
+
+
+
+
+
+
diff --git a/docs/build/html/api/contracts/kotlin.-string/percent.html b/docs/build/html/api/contracts/kotlin.-string/percent.html
new file mode 100644
index 0000000000..ddedd3a2f1
--- /dev/null
+++ b/docs/build/html/api/contracts/kotlin.-string/percent.html
@@ -0,0 +1,18 @@
+
+
+percent -
+
+
+
+contracts / kotlin.String / percent
+
+percent
+
+val String . percent : PercentageRatioUnit
+For the convenience of writing "5".percent
+Note that we do not currently allow 10.percent (ie no quotes) as this might get a little confusing if
+0.1.percent was written TODO: Discuss
+
+
+
+
diff --git a/docs/build/html/api/contracts/kotlin.collections.-iterable/index.html b/docs/build/html/api/contracts/kotlin.collections.-iterable/index.html
new file mode 100644
index 0000000000..233dc75fb1
--- /dev/null
+++ b/docs/build/html/api/contracts/kotlin.collections.-iterable/index.html
@@ -0,0 +1,43 @@
+
+
+contracts.kotlin.collections.Iterable -
+
+
+
+contracts / kotlin.collections.Iterable
+
+Extensions for kotlin.collections.Iterable
+
+
+
+
+sumCash
+
+fun Iterable < ContractState > . sumCash ( ) : <ERROR CLASS>
Sums the cash states in the list, throwing an exception if there are none.
+
+
+
+
+sumCashBy
+
+fun Iterable < ContractState > . sumCashBy ( owner : PublicKey ) : <ERROR CLASS>
Sums the cash states in the list that are owned by the given key, throwing an exception if there are none.
+
+
+
+
+sumCashOrNull
+
+fun Iterable < ContractState > . sumCashOrNull ( ) : <ERROR CLASS>
Sums the cash states in the list, returning null if there are none.
+
+
+
+
+sumCashOrZero
+
+fun Iterable < ContractState > . sumCashOrZero ( currency : Currency ) : <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/contracts/kotlin.collections.-iterable/sum-cash-by.html b/docs/build/html/api/contracts/kotlin.collections.-iterable/sum-cash-by.html
new file mode 100644
index 0000000000..d8e3203abf
--- /dev/null
+++ b/docs/build/html/api/contracts/kotlin.collections.-iterable/sum-cash-by.html
@@ -0,0 +1,16 @@
+
+
+sumCashBy -
+
+
+
+contracts / kotlin.collections.Iterable / sumCashBy
+
+sumCashBy
+
+fun Iterable < ContractState > . sumCashBy ( owner : PublicKey ) : <ERROR CLASS>
+Sums the cash states in the list that are owned by the given key, throwing an exception if there are none.
+
+
+
+
diff --git a/docs/build/html/api/contracts/kotlin.collections.-iterable/sum-cash-or-null.html b/docs/build/html/api/contracts/kotlin.collections.-iterable/sum-cash-or-null.html
new file mode 100644
index 0000000000..04c256bd56
--- /dev/null
+++ b/docs/build/html/api/contracts/kotlin.collections.-iterable/sum-cash-or-null.html
@@ -0,0 +1,16 @@
+
+
+sumCashOrNull -
+
+
+
+contracts / kotlin.collections.Iterable / sumCashOrNull
+
+sumCashOrNull
+
+fun Iterable < ContractState > . sumCashOrNull ( ) : <ERROR CLASS>
+Sums the cash states in the list, returning null if there are none.
+
+
+
+
diff --git a/docs/build/html/api/contracts/kotlin.collections.-iterable/sum-cash-or-zero.html b/docs/build/html/api/contracts/kotlin.collections.-iterable/sum-cash-or-zero.html
new file mode 100644
index 0000000000..eb2e4faab0
--- /dev/null
+++ b/docs/build/html/api/contracts/kotlin.collections.-iterable/sum-cash-or-zero.html
@@ -0,0 +1,16 @@
+
+
+sumCashOrZero -
+
+
+
+contracts / kotlin.collections.Iterable / sumCashOrZero
+
+sumCashOrZero
+
+fun Iterable < ContractState > . sumCashOrZero ( currency : Currency ) : <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/contracts/kotlin.collections.-iterable/sum-cash.html b/docs/build/html/api/contracts/kotlin.collections.-iterable/sum-cash.html
new file mode 100644
index 0000000000..7e9b5ab3c7
--- /dev/null
+++ b/docs/build/html/api/contracts/kotlin.collections.-iterable/sum-cash.html
@@ -0,0 +1,16 @@
+
+
+sumCash -
+
+
+
+contracts / kotlin.collections.Iterable / sumCash
+
+sumCash
+
+fun Iterable < ContractState > . sumCash ( ) : <ERROR CLASS>
+Sums the cash states in the list, throwing an exception if there are none.
+
+
+
+
diff --git a/docs/build/html/api/contracts/times.html b/docs/build/html/api/contracts/times.html
new file mode 100644
index 0000000000..835b035a66
--- /dev/null
+++ b/docs/build/html/api/contracts/times.html
@@ -0,0 +1,15 @@
+
+
+times -
+
+
+
+contracts / times
+
+times
+
+operator fun Amount . times ( other : RatioUnit ) : Amount
+
+
+
+
diff --git a/docs/build/html/api/core.crypto/-digital-signature/-init-.html b/docs/build/html/api/core.crypto/-digital-signature/-init-.html
new file mode 100644
index 0000000000..5b4674412c
--- /dev/null
+++ b/docs/build/html/api/core.crypto/-digital-signature/-init-.html
@@ -0,0 +1,17 @@
+
+
+DigitalSignature. -
+
+
+
+core.crypto / DigitalSignature / <init>
+
+<init>
+DigitalSignature ( bits : ByteArray , covering : Int = 0)
+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/core.crypto/-digital-signature/-legally-identifiable/-init-.html b/docs/build/html/api/core.crypto/-digital-signature/-legally-identifiable/-init-.html
new file mode 100644
index 0000000000..5ee39f099f
--- /dev/null
+++ b/docs/build/html/api/core.crypto/-digital-signature/-legally-identifiable/-init-.html
@@ -0,0 +1,14 @@
+
+
+DigitalSignature.LegallyIdentifiable. -
+
+
+
+core.crypto / DigitalSignature / LegallyIdentifiable / <init>
+
+<init>
+LegallyIdentifiable ( signer : Party , bits : ByteArray , covering : Int )
+
+
+
+
diff --git a/docs/build/html/api/core.crypto/-digital-signature/-legally-identifiable/index.html b/docs/build/html/api/core.crypto/-digital-signature/-legally-identifiable/index.html
new file mode 100644
index 0000000000..471c4af279
--- /dev/null
+++ b/docs/build/html/api/core.crypto/-digital-signature/-legally-identifiable/index.html
@@ -0,0 +1,59 @@
+
+
+DigitalSignature.LegallyIdentifiable -
+
+
+
+core.crypto / DigitalSignature / LegallyIdentifiable
+
+LegallyIdentifiable
+class LegallyIdentifiable : WithKey
+
+
+Constructors
+
+
+
+
+<init>
+
+LegallyIdentifiable ( signer : Party , bits : ByteArray , covering : Int )
+
+
+
+Properties
+
+Inherited Properties
+
+Inherited Functions
+
+
+
diff --git a/docs/build/html/api/core.crypto/-digital-signature/-legally-identifiable/signer.html b/docs/build/html/api/core.crypto/-digital-signature/-legally-identifiable/signer.html
new file mode 100644
index 0000000000..3e970b86a0
--- /dev/null
+++ b/docs/build/html/api/core.crypto/-digital-signature/-legally-identifiable/signer.html
@@ -0,0 +1,15 @@
+
+
+DigitalSignature.LegallyIdentifiable.signer -
+
+
+
+core.crypto / DigitalSignature / LegallyIdentifiable / signer
+
+signer
+
+val signer : Party
+
+
+
+
diff --git a/docs/build/html/api/core.crypto/-digital-signature/-with-key/-init-.html b/docs/build/html/api/core.crypto/-digital-signature/-with-key/-init-.html
new file mode 100644
index 0000000000..cfc0499347
--- /dev/null
+++ b/docs/build/html/api/core.crypto/-digital-signature/-with-key/-init-.html
@@ -0,0 +1,15 @@
+
+
+DigitalSignature.WithKey. -
+
+
+
+core.crypto / DigitalSignature / WithKey / <init>
+
+<init>
+WithKey ( by : PublicKey , bits : ByteArray , covering : Int = 0)
+A digital signature that identifies who the public key is owned by.
+
+
+
+
diff --git a/docs/build/html/api/core.crypto/-digital-signature/-with-key/by.html b/docs/build/html/api/core.crypto/-digital-signature/-with-key/by.html
new file mode 100644
index 0000000000..cd076a628f
--- /dev/null
+++ b/docs/build/html/api/core.crypto/-digital-signature/-with-key/by.html
@@ -0,0 +1,15 @@
+
+
+DigitalSignature.WithKey.by -
+
+
+
+core.crypto / DigitalSignature / WithKey / by
+
+by
+
+val by : PublicKey
+
+
+
+
diff --git a/docs/build/html/api/core.crypto/-digital-signature/-with-key/index.html b/docs/build/html/api/core.crypto/-digital-signature/-with-key/index.html
new file mode 100644
index 0000000000..c1e83127f6
--- /dev/null
+++ b/docs/build/html/api/core.crypto/-digital-signature/-with-key/index.html
@@ -0,0 +1,72 @@
+
+
+DigitalSignature.WithKey -
+
+
+
+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 , covering : Int = 0)
A digital signature that identifies who the public key is owned by.
+
+
+
+
+Properties
+
+Inherited Properties
+
+
+
+
+covering
+
+val covering : Int
+
+
+
+Functions
+
+Inheritors
+
+
+
diff --git a/docs/build/html/api/core.crypto/-digital-signature/-with-key/verify-with-e-c-d-s-a.html b/docs/build/html/api/core.crypto/-digital-signature/-with-key/verify-with-e-c-d-s-a.html
new file mode 100644
index 0000000000..f13a695a97
--- /dev/null
+++ b/docs/build/html/api/core.crypto/-digital-signature/-with-key/verify-with-e-c-d-s-a.html
@@ -0,0 +1,17 @@
+
+
+DigitalSignature.WithKey.verifyWithECDSA -
+
+
+
+core.crypto / DigitalSignature / WithKey / verifyWithECDSA
+
+verifyWithECDSA
+
+fun verifyWithECDSA ( content : ByteArray ) : Unit
+
+fun verifyWithECDSA ( content : OpaqueBytes ) : Unit
+
+
+
+
diff --git a/docs/build/html/api/core.crypto/-digital-signature/covering.html b/docs/build/html/api/core.crypto/-digital-signature/covering.html
new file mode 100644
index 0000000000..b7c52dae10
--- /dev/null
+++ b/docs/build/html/api/core.crypto/-digital-signature/covering.html
@@ -0,0 +1,15 @@
+
+
+DigitalSignature.covering -
+
+
+
+core.crypto / DigitalSignature / covering
+
+covering
+
+val covering : Int
+
+
+
+
diff --git a/docs/build/html/api/core.crypto/-digital-signature/index.html b/docs/build/html/api/core.crypto/-digital-signature/index.html
new file mode 100644
index 0000000000..7a1c391ef0
--- /dev/null
+++ b/docs/build/html/api/core.crypto/-digital-signature/index.html
@@ -0,0 +1,129 @@
+
+
+DigitalSignature -
+
+
+
+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 , covering : Int = 0)
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.
+
+
+
+
+Properties
+
+
+
+
+covering
+
+val covering : Int
+
+
+
+Inherited Properties
+
+
+
+
+bits
+
+val bits : ByteArray
+
+
+
+size
+
+val size : Int
+
+
+
+Inherited Functions
+
+
+
+
+equals
+
+open fun equals ( other : Any ? ) : Boolean
+
+
+
+hashCode
+
+open fun hashCode ( ) : Int
+
+
+
+toString
+
+open fun toString ( ) : String
+
+
+
+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/core.crypto/-dummy-public-key/-init-.html b/docs/build/html/api/core.crypto/-dummy-public-key/-init-.html
new file mode 100644
index 0000000000..7e497cf3f6
--- /dev/null
+++ b/docs/build/html/api/core.crypto/-dummy-public-key/-init-.html
@@ -0,0 +1,14 @@
+
+
+DummyPublicKey. -
+
+
+
+core.crypto / DummyPublicKey / <init>
+
+<init>
+DummyPublicKey ( s : String )
+
+
+
+
diff --git a/docs/build/html/api/core.crypto/-dummy-public-key/compare-to.html b/docs/build/html/api/core.crypto/-dummy-public-key/compare-to.html
new file mode 100644
index 0000000000..1ba1955412
--- /dev/null
+++ b/docs/build/html/api/core.crypto/-dummy-public-key/compare-to.html
@@ -0,0 +1,15 @@
+
+
+DummyPublicKey.compareTo -
+
+
+
+core.crypto / DummyPublicKey / compareTo
+
+compareTo
+
+fun compareTo ( other : PublicKey ) : Int
+
+
+
+
diff --git a/docs/build/html/api/core.crypto/-dummy-public-key/equals.html b/docs/build/html/api/core.crypto/-dummy-public-key/equals.html
new file mode 100644
index 0000000000..69c03e11b9
--- /dev/null
+++ b/docs/build/html/api/core.crypto/-dummy-public-key/equals.html
@@ -0,0 +1,15 @@
+
+
+DummyPublicKey.equals -
+
+
+
+core.crypto / DummyPublicKey / equals
+
+equals
+
+fun equals ( other : Any ? ) : Boolean
+
+
+
+
diff --git a/docs/build/html/api/core.crypto/-dummy-public-key/get-algorithm.html b/docs/build/html/api/core.crypto/-dummy-public-key/get-algorithm.html
new file mode 100644
index 0000000000..3aeb5a406c
--- /dev/null
+++ b/docs/build/html/api/core.crypto/-dummy-public-key/get-algorithm.html
@@ -0,0 +1,15 @@
+
+
+DummyPublicKey.getAlgorithm -
+
+
+
+core.crypto / DummyPublicKey / getAlgorithm
+
+getAlgorithm
+
+fun getAlgorithm ( ) : String
+
+
+
+
diff --git a/docs/build/html/api/core.crypto/-dummy-public-key/get-encoded.html b/docs/build/html/api/core.crypto/-dummy-public-key/get-encoded.html
new file mode 100644
index 0000000000..a661becee0
--- /dev/null
+++ b/docs/build/html/api/core.crypto/-dummy-public-key/get-encoded.html
@@ -0,0 +1,15 @@
+
+
+DummyPublicKey.getEncoded -
+
+
+
+core.crypto / DummyPublicKey / getEncoded
+
+getEncoded
+
+fun getEncoded ( ) : <ERROR CLASS>
+
+
+
+
diff --git a/docs/build/html/api/core.crypto/-dummy-public-key/get-format.html b/docs/build/html/api/core.crypto/-dummy-public-key/get-format.html
new file mode 100644
index 0000000000..d02cd73265
--- /dev/null
+++ b/docs/build/html/api/core.crypto/-dummy-public-key/get-format.html
@@ -0,0 +1,15 @@
+
+
+DummyPublicKey.getFormat -
+
+
+
+core.crypto / DummyPublicKey / getFormat
+
+getFormat
+
+fun getFormat ( ) : String
+
+
+
+
diff --git a/docs/build/html/api/core.crypto/-dummy-public-key/hash-code.html b/docs/build/html/api/core.crypto/-dummy-public-key/hash-code.html
new file mode 100644
index 0000000000..0f6ba11a88
--- /dev/null
+++ b/docs/build/html/api/core.crypto/-dummy-public-key/hash-code.html
@@ -0,0 +1,15 @@
+
+
+DummyPublicKey.hashCode -
+
+
+
+core.crypto / DummyPublicKey / hashCode
+
+hashCode
+
+fun hashCode ( ) : Int
+
+
+
+
diff --git a/docs/build/html/api/core.crypto/-dummy-public-key/index.html b/docs/build/html/api/core.crypto/-dummy-public-key/index.html
new file mode 100644
index 0000000000..a6a17ad207
--- /dev/null
+++ b/docs/build/html/api/core.crypto/-dummy-public-key/index.html
@@ -0,0 +1,102 @@
+
+
+DummyPublicKey -
+
+
+
+core.crypto / DummyPublicKey
+
+DummyPublicKey
+class DummyPublicKey : PublicKey , Comparable < PublicKey >
+
+
+Constructors
+
+
+
+
+<init>
+
+DummyPublicKey ( s : String )
+
+
+
+Properties
+
+
+
+
+s
+
+val s : String
+
+
+
+Functions
+
+Extension Functions
+
+
+
+
+toStringShort
+
+fun PublicKey . toStringShort ( ) : String
Render a public key to a string, using a short form if its an elliptic curve public key
+
+
+
+
+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/core.crypto/-dummy-public-key/s.html b/docs/build/html/api/core.crypto/-dummy-public-key/s.html
new file mode 100644
index 0000000000..bb917254a3
--- /dev/null
+++ b/docs/build/html/api/core.crypto/-dummy-public-key/s.html
@@ -0,0 +1,15 @@
+
+
+DummyPublicKey.s -
+
+
+
+core.crypto / DummyPublicKey / s
+
+s
+
+val s : String
+
+
+
+
diff --git a/docs/build/html/api/core.crypto/-dummy-public-key/to-string.html b/docs/build/html/api/core.crypto/-dummy-public-key/to-string.html
new file mode 100644
index 0000000000..d95d615f76
--- /dev/null
+++ b/docs/build/html/api/core.crypto/-dummy-public-key/to-string.html
@@ -0,0 +1,15 @@
+
+
+DummyPublicKey.toString -
+
+
+
+core.crypto / DummyPublicKey / toString
+
+toString
+
+fun toString ( ) : String
+
+
+
+
diff --git a/docs/build/html/api/core.crypto/-null-public-key/compare-to.html b/docs/build/html/api/core.crypto/-null-public-key/compare-to.html
new file mode 100644
index 0000000000..f238b63d0e
--- /dev/null
+++ b/docs/build/html/api/core.crypto/-null-public-key/compare-to.html
@@ -0,0 +1,15 @@
+
+
+NullPublicKey.compareTo -
+
+
+
+core.crypto / NullPublicKey / compareTo
+
+compareTo
+
+fun compareTo ( other : PublicKey ) : Int
+
+
+
+
diff --git a/docs/build/html/api/core.crypto/-null-public-key/get-algorithm.html b/docs/build/html/api/core.crypto/-null-public-key/get-algorithm.html
new file mode 100644
index 0000000000..8d4d756c3c
--- /dev/null
+++ b/docs/build/html/api/core.crypto/-null-public-key/get-algorithm.html
@@ -0,0 +1,15 @@
+
+
+NullPublicKey.getAlgorithm -
+
+
+
+core.crypto / NullPublicKey / getAlgorithm
+
+getAlgorithm
+
+fun getAlgorithm ( ) : String
+
+
+
+
diff --git a/docs/build/html/api/core.crypto/-null-public-key/get-encoded.html b/docs/build/html/api/core.crypto/-null-public-key/get-encoded.html
new file mode 100644
index 0000000000..f8df818ca1
--- /dev/null
+++ b/docs/build/html/api/core.crypto/-null-public-key/get-encoded.html
@@ -0,0 +1,15 @@
+
+
+NullPublicKey.getEncoded -
+
+
+
+core.crypto / NullPublicKey / getEncoded
+
+getEncoded
+
+fun getEncoded ( ) : ByteArray
+
+
+
+
diff --git a/docs/build/html/api/core.crypto/-null-public-key/get-format.html b/docs/build/html/api/core.crypto/-null-public-key/get-format.html
new file mode 100644
index 0000000000..e81a606539
--- /dev/null
+++ b/docs/build/html/api/core.crypto/-null-public-key/get-format.html
@@ -0,0 +1,15 @@
+
+
+NullPublicKey.getFormat -
+
+
+
+core.crypto / NullPublicKey / getFormat
+
+getFormat
+
+fun getFormat ( ) : String
+
+
+
+
diff --git a/docs/build/html/api/core.crypto/-null-public-key/index.html b/docs/build/html/api/core.crypto/-null-public-key/index.html
new file mode 100644
index 0000000000..ac5862d186
--- /dev/null
+++ b/docs/build/html/api/core.crypto/-null-public-key/index.html
@@ -0,0 +1,68 @@
+
+
+NullPublicKey -
+
+
+
+core.crypto / NullPublicKey
+
+NullPublicKey
+object NullPublicKey : PublicKey , Comparable < PublicKey >
+
+
+Functions
+
+Extension Functions
+
+
+
+
+toStringShort
+
+fun PublicKey . toStringShort ( ) : String
Render a public key to a string, using a short form if its an elliptic curve public key
+
+
+
+
+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/core.crypto/-null-public-key/to-string.html b/docs/build/html/api/core.crypto/-null-public-key/to-string.html
new file mode 100644
index 0000000000..db2e9a537c
--- /dev/null
+++ b/docs/build/html/api/core.crypto/-null-public-key/to-string.html
@@ -0,0 +1,15 @@
+
+
+NullPublicKey.toString -
+
+
+
+core.crypto / NullPublicKey / toString
+
+toString
+
+fun toString ( ) : String
+
+
+
+
diff --git a/docs/build/html/api/core.crypto/-secure-hash/-s-h-a256/-init-.html b/docs/build/html/api/core.crypto/-secure-hash/-s-h-a256/-init-.html
new file mode 100644
index 0000000000..e5637e9e88
--- /dev/null
+++ b/docs/build/html/api/core.crypto/-secure-hash/-s-h-a256/-init-.html
@@ -0,0 +1,14 @@
+
+
+SecureHash.SHA256. -
+
+
+
+core.crypto / SecureHash / SHA256 / <init>
+
+<init>
+SHA256 ( bits : ByteArray )
+
+
+
+
diff --git a/docs/build/html/api/core.crypto/-secure-hash/-s-h-a256/index.html b/docs/build/html/api/core.crypto/-secure-hash/-s-h-a256/index.html
new file mode 100644
index 0000000000..d908544aac
--- /dev/null
+++ b/docs/build/html/api/core.crypto/-secure-hash/-s-h-a256/index.html
@@ -0,0 +1,53 @@
+
+
+SecureHash.SHA256 -
+
+
+
+core.crypto / SecureHash / SHA256
+
+SHA256
+class SHA256 : SecureHash
+
+
+Constructors
+
+
+
+
+<init>
+
+SHA256 ( bits : ByteArray )
+
+
+
+Properties
+
+Inherited Functions
+
+
+
+
+prefixChars
+
+fun prefixChars ( prefixLen : Int = 6) : <ERROR CLASS>
+
+
+
+toString
+
+open fun toString ( ) : <ERROR CLASS>
+
+
+
+
+
diff --git a/docs/build/html/api/core.crypto/-secure-hash/-s-h-a256/signature-algorithm-name.html b/docs/build/html/api/core.crypto/-secure-hash/-s-h-a256/signature-algorithm-name.html
new file mode 100644
index 0000000000..f385a8d85b
--- /dev/null
+++ b/docs/build/html/api/core.crypto/-secure-hash/-s-h-a256/signature-algorithm-name.html
@@ -0,0 +1,16 @@
+
+
+SecureHash.SHA256.signatureAlgorithmName -
+
+
+
+core.crypto / SecureHash / SHA256 / signatureAlgorithmName
+
+signatureAlgorithmName
+
+val signatureAlgorithmName : String
+Overrides SecureHash.signatureAlgorithmName
+
+
+
+
diff --git a/docs/build/html/api/core.crypto/-secure-hash/index.html b/docs/build/html/api/core.crypto/-secure-hash/index.html
new file mode 100644
index 0000000000..e487978b87
--- /dev/null
+++ b/docs/build/html/api/core.crypto/-secure-hash/index.html
@@ -0,0 +1,145 @@
+
+
+SecureHash -
+
+
+
+core.crypto / SecureHash
+
+SecureHash
+sealed class SecureHash : OpaqueBytes
+
+
+Types
+
+
+
+
+SHA256
+
+class SHA256 : SecureHash
+
+
+
+Properties
+
+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
+
+
+
+
+equals
+
+open fun equals ( other : Any ? ) : Boolean
+
+
+
+hashCode
+
+open fun hashCode ( ) : Int
+
+
+
+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
+
+
+
+
+
diff --git a/docs/build/html/api/core.crypto/-secure-hash/parse.html b/docs/build/html/api/core.crypto/-secure-hash/parse.html
new file mode 100644
index 0000000000..80b4fd3c1f
--- /dev/null
+++ b/docs/build/html/api/core.crypto/-secure-hash/parse.html
@@ -0,0 +1,15 @@
+
+
+SecureHash.parse -
+
+
+
+core.crypto / SecureHash / parse
+
+parse
+
+fun parse ( str : String ) : <ERROR CLASS>
+
+
+
+
diff --git a/docs/build/html/api/core.crypto/-secure-hash/prefix-chars.html b/docs/build/html/api/core.crypto/-secure-hash/prefix-chars.html
new file mode 100644
index 0000000000..ed8d084dfd
--- /dev/null
+++ b/docs/build/html/api/core.crypto/-secure-hash/prefix-chars.html
@@ -0,0 +1,15 @@
+
+
+SecureHash.prefixChars -
+
+
+
+core.crypto / SecureHash / prefixChars
+
+prefixChars
+
+fun prefixChars ( prefixLen : Int = 6) : <ERROR CLASS>
+
+
+
+
diff --git a/docs/build/html/api/core.crypto/-secure-hash/random-s-h-a256.html b/docs/build/html/api/core.crypto/-secure-hash/random-s-h-a256.html
new file mode 100644
index 0000000000..95f1a6b457
--- /dev/null
+++ b/docs/build/html/api/core.crypto/-secure-hash/random-s-h-a256.html
@@ -0,0 +1,15 @@
+
+
+SecureHash.randomSHA256 -
+
+
+
+core.crypto / SecureHash / randomSHA256
+
+randomSHA256
+
+fun randomSHA256 ( ) : SHA256
+
+
+
+
diff --git a/docs/build/html/api/core.crypto/-secure-hash/sha256-twice.html b/docs/build/html/api/core.crypto/-secure-hash/sha256-twice.html
new file mode 100644
index 0000000000..4e642f2e95
--- /dev/null
+++ b/docs/build/html/api/core.crypto/-secure-hash/sha256-twice.html
@@ -0,0 +1,15 @@
+
+
+SecureHash.sha256Twice -
+
+
+
+core.crypto / SecureHash / sha256Twice
+
+sha256Twice
+
+fun sha256Twice ( bits : ByteArray ) : SHA256
+
+
+
+
diff --git a/docs/build/html/api/core.crypto/-secure-hash/sha256.html b/docs/build/html/api/core.crypto/-secure-hash/sha256.html
new file mode 100644
index 0000000000..7f35dfae02
--- /dev/null
+++ b/docs/build/html/api/core.crypto/-secure-hash/sha256.html
@@ -0,0 +1,17 @@
+
+
+SecureHash.sha256 -
+
+
+
+core.crypto / SecureHash / sha256
+
+sha256
+
+fun sha256 ( bits : ByteArray ) : SHA256
+
+fun sha256 ( str : String ) : <ERROR CLASS>
+
+
+
+
diff --git a/docs/build/html/api/core.crypto/-secure-hash/signature-algorithm-name.html b/docs/build/html/api/core.crypto/-secure-hash/signature-algorithm-name.html
new file mode 100644
index 0000000000..0c7d92d3ea
--- /dev/null
+++ b/docs/build/html/api/core.crypto/-secure-hash/signature-algorithm-name.html
@@ -0,0 +1,15 @@
+
+
+SecureHash.signatureAlgorithmName -
+
+
+
+core.crypto / SecureHash / signatureAlgorithmName
+
+signatureAlgorithmName
+
+abstract val signatureAlgorithmName : String
+
+
+
+
diff --git a/docs/build/html/api/core.crypto/-secure-hash/to-string.html b/docs/build/html/api/core.crypto/-secure-hash/to-string.html
new file mode 100644
index 0000000000..2ca3e55287
--- /dev/null
+++ b/docs/build/html/api/core.crypto/-secure-hash/to-string.html
@@ -0,0 +1,16 @@
+
+
+SecureHash.toString -
+
+
+
+core.crypto / SecureHash / toString
+
+toString
+
+open fun toString ( ) : <ERROR CLASS>
+Overrides OpaqueBytes.toString
+
+
+
+
diff --git a/docs/build/html/api/core.crypto/-signed-data/-init-.html b/docs/build/html/api/core.crypto/-signed-data/-init-.html
new file mode 100644
index 0000000000..7d698338b1
--- /dev/null
+++ b/docs/build/html/api/core.crypto/-signed-data/-init-.html
@@ -0,0 +1,22 @@
+
+
+SignedData. -
+
+
+
+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/core.crypto/-signed-data/index.html b/docs/build/html/api/core.crypto/-signed-data/index.html
new file mode 100644
index 0000000000..cd2d4df912
--- /dev/null
+++ b/docs/build/html/api/core.crypto/-signed-data/index.html
@@ -0,0 +1,84 @@
+
+
+SignedData -
+
+
+
+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/core.crypto/-signed-data/raw.html b/docs/build/html/api/core.crypto/-signed-data/raw.html
new file mode 100644
index 0000000000..355bb7a031
--- /dev/null
+++ b/docs/build/html/api/core.crypto/-signed-data/raw.html
@@ -0,0 +1,15 @@
+
+
+SignedData.raw -
+
+
+
+core.crypto / SignedData / raw
+
+raw
+
+val raw : SerializedBytes < T >
+
+
+
+
diff --git a/docs/build/html/api/core.crypto/-signed-data/sig.html b/docs/build/html/api/core.crypto/-signed-data/sig.html
new file mode 100644
index 0000000000..5eacee8e02
--- /dev/null
+++ b/docs/build/html/api/core.crypto/-signed-data/sig.html
@@ -0,0 +1,15 @@
+
+
+SignedData.sig -
+
+
+
+core.crypto / SignedData / sig
+
+sig
+
+val sig : WithKey
+
+
+
+
diff --git a/docs/build/html/api/core.crypto/-signed-data/verified.html b/docs/build/html/api/core.crypto/-signed-data/verified.html
new file mode 100644
index 0000000000..f9b71805ce
--- /dev/null
+++ b/docs/build/html/api/core.crypto/-signed-data/verified.html
@@ -0,0 +1,22 @@
+
+
+SignedData.verified -
+
+
+
+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/core.crypto/-signed-data/verify-data.html b/docs/build/html/api/core.crypto/-signed-data/verify-data.html
new file mode 100644
index 0000000000..3ccca6a14c
--- /dev/null
+++ b/docs/build/html/api/core.crypto/-signed-data/verify-data.html
@@ -0,0 +1,20 @@
+
+
+SignedData.verifyData -
+
+
+
+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/core.crypto/generate-key-pair.html b/docs/build/html/api/core.crypto/generate-key-pair.html
new file mode 100644
index 0000000000..9ebb5092bd
--- /dev/null
+++ b/docs/build/html/api/core.crypto/generate-key-pair.html
@@ -0,0 +1,16 @@
+
+
+generateKeyPair -
+
+
+
+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/core.crypto/index.html b/docs/build/html/api/core.crypto/index.html
new file mode 100644
index 0000000000..e3ce5cafda
--- /dev/null
+++ b/docs/build/html/api/core.crypto/index.html
@@ -0,0 +1,98 @@
+
+
+core.crypto -
+
+
+
+core.crypto
+
+Package 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 >
+
+
+
+SecureHash
+
+sealed class SecureHash : OpaqueBytes
+
+
+
+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.
+
+
+
+
+Extensions for External Classes
+
+Functions
+
+
+
diff --git a/docs/build/html/api/core.crypto/java.security.-key-pair/component1.html b/docs/build/html/api/core.crypto/java.security.-key-pair/component1.html
new file mode 100644
index 0000000000..e3cd60f572
--- /dev/null
+++ b/docs/build/html/api/core.crypto/java.security.-key-pair/component1.html
@@ -0,0 +1,15 @@
+
+
+component1 -
+
+
+
+core.crypto / java.security.KeyPair / component1
+
+component1
+
+operator fun KeyPair . component1 ( ) : PrivateKey
+
+
+
+
diff --git a/docs/build/html/api/core.crypto/java.security.-key-pair/component2.html b/docs/build/html/api/core.crypto/java.security.-key-pair/component2.html
new file mode 100644
index 0000000000..e3aacd1733
--- /dev/null
+++ b/docs/build/html/api/core.crypto/java.security.-key-pair/component2.html
@@ -0,0 +1,15 @@
+
+
+component2 -
+
+
+
+core.crypto / java.security.KeyPair / component2
+
+component2
+
+operator fun KeyPair . component2 ( ) : PublicKey
+
+
+
+
diff --git a/docs/build/html/api/core.crypto/java.security.-key-pair/index.html b/docs/build/html/api/core.crypto/java.security.-key-pair/index.html
new file mode 100644
index 0000000000..64d437b063
--- /dev/null
+++ b/docs/build/html/api/core.crypto/java.security.-key-pair/index.html
@@ -0,0 +1,36 @@
+
+
+core.crypto.java.security.KeyPair -
+
+
+
+core.crypto / java.security.KeyPair
+
+Extensions for java.security.KeyPair
+
+
+
diff --git a/docs/build/html/api/core.crypto/java.security.-key-pair/sign-with-e-c-d-s-a.html b/docs/build/html/api/core.crypto/java.security.-key-pair/sign-with-e-c-d-s-a.html
new file mode 100644
index 0000000000..ea70ec4e1c
--- /dev/null
+++ b/docs/build/html/api/core.crypto/java.security.-key-pair/sign-with-e-c-d-s-a.html
@@ -0,0 +1,21 @@
+
+
+signWithECDSA -
+
+
+
+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/core.crypto/java.security.-private-key/index.html b/docs/build/html/api/core.crypto/java.security.-private-key/index.html
new file mode 100644
index 0000000000..e91f3ca423
--- /dev/null
+++ b/docs/build/html/api/core.crypto/java.security.-private-key/index.html
@@ -0,0 +1,22 @@
+
+
+core.crypto.java.security.PrivateKey -
+
+
+
+core.crypto / java.security.PrivateKey
+
+Extensions for java.security.PrivateKey
+
+
+
diff --git a/docs/build/html/api/core.crypto/java.security.-private-key/sign-with-e-c-d-s-a.html b/docs/build/html/api/core.crypto/java.security.-private-key/sign-with-e-c-d-s-a.html
new file mode 100644
index 0000000000..bab411e816
--- /dev/null
+++ b/docs/build/html/api/core.crypto/java.security.-private-key/sign-with-e-c-d-s-a.html
@@ -0,0 +1,20 @@
+
+
+signWithECDSA -
+
+
+
+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/core.crypto/java.security.-public-key/index.html b/docs/build/html/api/core.crypto/java.security.-public-key/index.html
new file mode 100644
index 0000000000..9b29cd6b17
--- /dev/null
+++ b/docs/build/html/api/core.crypto/java.security.-public-key/index.html
@@ -0,0 +1,29 @@
+
+
+core.crypto.java.security.PublicKey -
+
+
+
+core.crypto / java.security.PublicKey
+
+Extensions for java.security.PublicKey
+
+
+
+
+toStringShort
+
+fun PublicKey . toStringShort ( ) : String
Render a public key to a string, using a short form if its an elliptic curve public key
+
+
+
+
+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/core.crypto/java.security.-public-key/to-string-short.html b/docs/build/html/api/core.crypto/java.security.-public-key/to-string-short.html
new file mode 100644
index 0000000000..ce69028b41
--- /dev/null
+++ b/docs/build/html/api/core.crypto/java.security.-public-key/to-string-short.html
@@ -0,0 +1,16 @@
+
+
+toStringShort -
+
+
+
+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/core.crypto/java.security.-public-key/verify-with-e-c-d-s-a.html b/docs/build/html/api/core.crypto/java.security.-public-key/verify-with-e-c-d-s-a.html
new file mode 100644
index 0000000000..b4d58465a7
--- /dev/null
+++ b/docs/build/html/api/core.crypto/java.security.-public-key/verify-with-e-c-d-s-a.html
@@ -0,0 +1,16 @@
+
+
+verifyWithECDSA -
+
+
+
+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/core.crypto/kotlin.-byte-array/index.html b/docs/build/html/api/core.crypto/kotlin.-byte-array/index.html
new file mode 100644
index 0000000000..052f13c99a
--- /dev/null
+++ b/docs/build/html/api/core.crypto/kotlin.-byte-array/index.html
@@ -0,0 +1,21 @@
+
+
+core.crypto.kotlin.ByteArray -
+
+
+
+core.crypto / kotlin.ByteArray
+
+Extensions for kotlin.ByteArray
+
+
+
diff --git a/docs/build/html/api/core.crypto/kotlin.-byte-array/sha256.html b/docs/build/html/api/core.crypto/kotlin.-byte-array/sha256.html
new file mode 100644
index 0000000000..1d3b8e305a
--- /dev/null
+++ b/docs/build/html/api/core.crypto/kotlin.-byte-array/sha256.html
@@ -0,0 +1,15 @@
+
+
+sha256 -
+
+
+
+core.crypto / kotlin.ByteArray / sha256
+
+sha256
+
+fun ByteArray . sha256 ( ) : SHA256
+
+
+
+
diff --git a/docs/build/html/api/core.crypto/sha256.html b/docs/build/html/api/core.crypto/sha256.html
new file mode 100644
index 0000000000..89f290a8d5
--- /dev/null
+++ b/docs/build/html/api/core.crypto/sha256.html
@@ -0,0 +1,15 @@
+
+
+sha256 -
+
+
+
+core.crypto / sha256
+
+sha256
+
+fun OpaqueBytes . sha256 ( ) : SHA256
+
+
+
+
diff --git a/docs/build/html/api/core.math/-cubic-spline-interpolator/-init-.html b/docs/build/html/api/core.math/-cubic-spline-interpolator/-init-.html
new file mode 100644
index 0000000000..d622336cdb
--- /dev/null
+++ b/docs/build/html/api/core.math/-cubic-spline-interpolator/-init-.html
@@ -0,0 +1,19 @@
+
+
+CubicSplineInterpolator. -
+
+
+
+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/core.math/-cubic-spline-interpolator/create.html b/docs/build/html/api/core.math/-cubic-spline-interpolator/create.html
new file mode 100644
index 0000000000..c16798279a
--- /dev/null
+++ b/docs/build/html/api/core.math/-cubic-spline-interpolator/create.html
@@ -0,0 +1,16 @@
+
+
+CubicSplineInterpolator.create -
+
+
+
+core.math / CubicSplineInterpolator / create
+
+create
+
+fun create ( xs : DoubleArray , ys : DoubleArray ) : CubicSplineInterpolator
+Overrides InterpolatorFactory.create
+
+
+
+
diff --git a/docs/build/html/api/core.math/-cubic-spline-interpolator/index.html b/docs/build/html/api/core.math/-cubic-spline-interpolator/index.html
new file mode 100644
index 0000000000..1516af256c
--- /dev/null
+++ b/docs/build/html/api/core.math/-cubic-spline-interpolator/index.html
@@ -0,0 +1,53 @@
+
+
+CubicSplineInterpolator -
+
+
+
+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/core.math/-cubic-spline-interpolator/interpolate.html b/docs/build/html/api/core.math/-cubic-spline-interpolator/interpolate.html
new file mode 100644
index 0000000000..bb03b871b1
--- /dev/null
+++ b/docs/build/html/api/core.math/-cubic-spline-interpolator/interpolate.html
@@ -0,0 +1,16 @@
+
+
+CubicSplineInterpolator.interpolate -
+
+
+
+core.math / CubicSplineInterpolator / interpolate
+
+interpolate
+
+fun interpolate ( x : Double ) : Double
+Overrides Interpolator.interpolate
+
+
+
+
diff --git a/docs/build/html/api/core.math/-interpolator-factory/create.html b/docs/build/html/api/core.math/-interpolator-factory/create.html
new file mode 100644
index 0000000000..5ddab63fa2
--- /dev/null
+++ b/docs/build/html/api/core.math/-interpolator-factory/create.html
@@ -0,0 +1,15 @@
+
+
+InterpolatorFactory.create -
+
+
+
+core.math / InterpolatorFactory / create
+
+create
+
+abstract fun create ( xs : DoubleArray , ys : DoubleArray ) : Interpolator
+
+
+
+
diff --git a/docs/build/html/api/core.math/-interpolator-factory/index.html b/docs/build/html/api/core.math/-interpolator-factory/index.html
new file mode 100644
index 0000000000..d8f5298839
--- /dev/null
+++ b/docs/build/html/api/core.math/-interpolator-factory/index.html
@@ -0,0 +1,25 @@
+
+
+InterpolatorFactory -
+
+
+
+core.math / InterpolatorFactory
+
+InterpolatorFactory
+interface InterpolatorFactory
+
+
+Functions
+
+
+
+
+create
+
+abstract fun create ( xs : DoubleArray , ys : DoubleArray ) : Interpolator
+
+
+
+
+
diff --git a/docs/build/html/api/core.math/-interpolator/index.html b/docs/build/html/api/core.math/-interpolator/index.html
new file mode 100644
index 0000000000..5ff1f88cb7
--- /dev/null
+++ b/docs/build/html/api/core.math/-interpolator/index.html
@@ -0,0 +1,44 @@
+
+
+Interpolator -
+
+
+
+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/core.math/-interpolator/interpolate.html b/docs/build/html/api/core.math/-interpolator/interpolate.html
new file mode 100644
index 0000000000..62912b5690
--- /dev/null
+++ b/docs/build/html/api/core.math/-interpolator/interpolate.html
@@ -0,0 +1,15 @@
+
+
+Interpolator.interpolate -
+
+
+
+core.math / Interpolator / interpolate
+
+interpolate
+
+abstract fun interpolate ( x : Double ) : Double
+
+
+
+
diff --git a/docs/build/html/api/core.math/-linear-interpolator/-init-.html b/docs/build/html/api/core.math/-linear-interpolator/-init-.html
new file mode 100644
index 0000000000..80f3be4341
--- /dev/null
+++ b/docs/build/html/api/core.math/-linear-interpolator/-init-.html
@@ -0,0 +1,15 @@
+
+
+LinearInterpolator. -
+
+
+
+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/core.math/-linear-interpolator/create.html b/docs/build/html/api/core.math/-linear-interpolator/create.html
new file mode 100644
index 0000000000..13265e3d5e
--- /dev/null
+++ b/docs/build/html/api/core.math/-linear-interpolator/create.html
@@ -0,0 +1,16 @@
+
+
+LinearInterpolator.create -
+
+
+
+core.math / LinearInterpolator / create
+
+create
+
+fun create ( xs : DoubleArray , ys : DoubleArray ) : LinearInterpolator
+Overrides InterpolatorFactory.create
+
+
+
+
diff --git a/docs/build/html/api/core.math/-linear-interpolator/index.html b/docs/build/html/api/core.math/-linear-interpolator/index.html
new file mode 100644
index 0000000000..6420a04a86
--- /dev/null
+++ b/docs/build/html/api/core.math/-linear-interpolator/index.html
@@ -0,0 +1,49 @@
+
+
+LinearInterpolator -
+
+
+
+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/core.math/-linear-interpolator/interpolate.html b/docs/build/html/api/core.math/-linear-interpolator/interpolate.html
new file mode 100644
index 0000000000..c2177cf1eb
--- /dev/null
+++ b/docs/build/html/api/core.math/-linear-interpolator/interpolate.html
@@ -0,0 +1,16 @@
+
+
+LinearInterpolator.interpolate -
+
+
+
+core.math / LinearInterpolator / interpolate
+
+interpolate
+
+fun interpolate ( x : Double ) : Double
+Overrides Interpolator.interpolate
+
+
+
+
diff --git a/docs/build/html/api/core.math/-polynomial/-init-.html b/docs/build/html/api/core.math/-polynomial/-init-.html
new file mode 100644
index 0000000000..dd7e1bfcef
--- /dev/null
+++ b/docs/build/html/api/core.math/-polynomial/-init-.html
@@ -0,0 +1,18 @@
+
+
+Polynomial. -
+
+
+
+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/core.math/-polynomial/get-value.html b/docs/build/html/api/core.math/-polynomial/get-value.html
new file mode 100644
index 0000000000..cd90ae13cd
--- /dev/null
+++ b/docs/build/html/api/core.math/-polynomial/get-value.html
@@ -0,0 +1,15 @@
+
+
+Polynomial.getValue -
+
+
+
+core.math / Polynomial / getValue
+
+getValue
+
+fun getValue ( x : Double ) : <ERROR CLASS>
+
+
+
+
diff --git a/docs/build/html/api/core.math/-polynomial/index.html b/docs/build/html/api/core.math/-polynomial/index.html
new file mode 100644
index 0000000000..6912268589
--- /dev/null
+++ b/docs/build/html/api/core.math/-polynomial/index.html
@@ -0,0 +1,41 @@
+
+
+Polynomial -
+
+
+
+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/core.math/-spline-function/-init-.html b/docs/build/html/api/core.math/-spline-function/-init-.html
new file mode 100644
index 0000000000..ff34aea811
--- /dev/null
+++ b/docs/build/html/api/core.math/-spline-function/-init-.html
@@ -0,0 +1,19 @@
+
+
+SplineFunction. -
+
+
+
+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/core.math/-spline-function/get-value.html b/docs/build/html/api/core.math/-spline-function/get-value.html
new file mode 100644
index 0000000000..64a579ce74
--- /dev/null
+++ b/docs/build/html/api/core.math/-spline-function/get-value.html
@@ -0,0 +1,15 @@
+
+
+SplineFunction.getValue -
+
+
+
+core.math / SplineFunction / getValue
+
+getValue
+
+fun getValue ( x : Double ) : Double
+
+
+
+
diff --git a/docs/build/html/api/core.math/-spline-function/index.html b/docs/build/html/api/core.math/-spline-function/index.html
new file mode 100644
index 0000000000..86a1cf989b
--- /dev/null
+++ b/docs/build/html/api/core.math/-spline-function/index.html
@@ -0,0 +1,43 @@
+
+
+SplineFunction -
+
+
+
+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/core.math/index.html b/docs/build/html/api/core.math/index.html
new file mode 100644
index 0000000000..7b74ffa5b4
--- /dev/null
+++ b/docs/build/html/api/core.math/index.html
@@ -0,0 +1,57 @@
+
+
+core.math -
+
+
+
+core.math
+
+Package 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/core.messaging/-all-possible-recipients.html b/docs/build/html/api/core.messaging/-all-possible-recipients.html
new file mode 100644
index 0000000000..e7c15d9999
--- /dev/null
+++ b/docs/build/html/api/core.messaging/-all-possible-recipients.html
@@ -0,0 +1,15 @@
+
+
+AllPossibleRecipients -
+
+
+
+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/core.messaging/-message-handler-registration.html b/docs/build/html/api/core.messaging/-message-handler-registration.html
new file mode 100644
index 0000000000..86b836ed92
--- /dev/null
+++ b/docs/build/html/api/core.messaging/-message-handler-registration.html
@@ -0,0 +1,32 @@
+
+
+MessageHandlerRegistration -
+
+
+
+core.messaging / MessageHandlerRegistration
+
+MessageHandlerRegistration
+interface MessageHandlerRegistration
+
+
+Inheritors
+
+
+
+
+Handler
+
+inner class Handler : MessageHandlerRegistration
A registration to handle messages of different types
+
+
+
+
+Handler
+
+inner class Handler : MessageHandlerRegistration
+
+
+
+
+
diff --git a/docs/build/html/api/core.messaging/-message-recipient-group.html b/docs/build/html/api/core.messaging/-message-recipient-group.html
new file mode 100644
index 0000000000..2c0e30e09c
--- /dev/null
+++ b/docs/build/html/api/core.messaging/-message-recipient-group.html
@@ -0,0 +1,15 @@
+
+
+MessageRecipientGroup -
+
+
+
+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/core.messaging/-message-recipients.html b/docs/build/html/api/core.messaging/-message-recipients.html
new file mode 100644
index 0000000000..c65fba1cc4
--- /dev/null
+++ b/docs/build/html/api/core.messaging/-message-recipients.html
@@ -0,0 +1,41 @@
+
+
+MessageRecipients -
+
+
+
+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/core.messaging/-message/data.html b/docs/build/html/api/core.messaging/-message/data.html
new file mode 100644
index 0000000000..6265b6f3cb
--- /dev/null
+++ b/docs/build/html/api/core.messaging/-message/data.html
@@ -0,0 +1,15 @@
+
+
+Message.data -
+
+
+
+core.messaging / Message / data
+
+data
+
+abstract val data : ByteArray
+
+
+
+
diff --git a/docs/build/html/api/core.messaging/-message/debug-message-i-d.html b/docs/build/html/api/core.messaging/-message/debug-message-i-d.html
new file mode 100644
index 0000000000..207af85bcc
--- /dev/null
+++ b/docs/build/html/api/core.messaging/-message/debug-message-i-d.html
@@ -0,0 +1,15 @@
+
+
+Message.debugMessageID -
+
+
+
+core.messaging / Message / debugMessageID
+
+debugMessageID
+
+abstract val debugMessageID : String
+
+
+
+
diff --git a/docs/build/html/api/core.messaging/-message/debug-timestamp.html b/docs/build/html/api/core.messaging/-message/debug-timestamp.html
new file mode 100644
index 0000000000..eaa930929a
--- /dev/null
+++ b/docs/build/html/api/core.messaging/-message/debug-timestamp.html
@@ -0,0 +1,15 @@
+
+
+Message.debugTimestamp -
+
+
+
+core.messaging / Message / debugTimestamp
+
+debugTimestamp
+
+abstract val debugTimestamp : Instant
+
+
+
+
diff --git a/docs/build/html/api/core.messaging/-message/index.html b/docs/build/html/api/core.messaging/-message/index.html
new file mode 100644
index 0000000000..9f4cf5220b
--- /dev/null
+++ b/docs/build/html/api/core.messaging/-message/index.html
@@ -0,0 +1,63 @@
+
+
+Message -
+
+
+
+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
+
+Functions
+
+
+
+
+serialise
+
+abstract fun serialise ( ) : ByteArray
+
+
+
+
+
diff --git a/docs/build/html/api/core.messaging/-message/serialise.html b/docs/build/html/api/core.messaging/-message/serialise.html
new file mode 100644
index 0000000000..fbd1892aac
--- /dev/null
+++ b/docs/build/html/api/core.messaging/-message/serialise.html
@@ -0,0 +1,15 @@
+
+
+Message.serialise -
+
+
+
+core.messaging / Message / serialise
+
+serialise
+
+abstract fun serialise ( ) : ByteArray
+
+
+
+
diff --git a/docs/build/html/api/core.messaging/-message/topic.html b/docs/build/html/api/core.messaging/-message/topic.html
new file mode 100644
index 0000000000..52d3745896
--- /dev/null
+++ b/docs/build/html/api/core.messaging/-message/topic.html
@@ -0,0 +1,15 @@
+
+
+Message.topic -
+
+
+
+core.messaging / Message / topic
+
+topic
+
+abstract val topic : String
+
+
+
+
diff --git a/docs/build/html/api/core.messaging/-messaging-service-builder/index.html b/docs/build/html/api/core.messaging/-messaging-service-builder/index.html
new file mode 100644
index 0000000000..886500d3c2
--- /dev/null
+++ b/docs/build/html/api/core.messaging/-messaging-service-builder/index.html
@@ -0,0 +1,44 @@
+
+
+MessagingServiceBuilder -
+
+
+
+core.messaging / MessagingServiceBuilder
+
+MessagingServiceBuilder
+interface MessagingServiceBuilder < out T : MessagingService >
+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 >
+
+
+
+Inheritors
+
+
+
diff --git a/docs/build/html/api/core.messaging/-messaging-service-builder/start.html b/docs/build/html/api/core.messaging/-messaging-service-builder/start.html
new file mode 100644
index 0000000000..1f0675d399
--- /dev/null
+++ b/docs/build/html/api/core.messaging/-messaging-service-builder/start.html
@@ -0,0 +1,15 @@
+
+
+MessagingServiceBuilder.start -
+
+
+
+core.messaging / MessagingServiceBuilder / start
+
+start
+
+abstract fun start ( ) : <ERROR CLASS> < out T >
+
+
+
+
diff --git a/docs/build/html/api/core.messaging/-messaging-service/add-message-handler.html b/docs/build/html/api/core.messaging/-messaging-service/add-message-handler.html
new file mode 100644
index 0000000000..2e4f54cbc2
--- /dev/null
+++ b/docs/build/html/api/core.messaging/-messaging-service/add-message-handler.html
@@ -0,0 +1,24 @@
+
+
+MessagingService.addMessageHandler -
+
+
+
+core.messaging / MessagingService / addMessageHandler
+
+addMessageHandler
+
+abstract fun addMessageHandler ( topic : String = "", executor : Executor ? = null, callback : ( Message , MessageHandlerRegistration ) -> Unit ) : MessageHandlerRegistration
+The provided function will be invoked for each received message whose topic matches the given string, on the given
+executor. The topic can be the empty string to match all messages.
+If no executor is received then 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.
+
+
+
+
+
+
diff --git a/docs/build/html/api/core.messaging/-messaging-service/create-message.html b/docs/build/html/api/core.messaging/-messaging-service/create-message.html
new file mode 100644
index 0000000000..c9cfd40309
--- /dev/null
+++ b/docs/build/html/api/core.messaging/-messaging-service/create-message.html
@@ -0,0 +1,16 @@
+
+
+MessagingService.createMessage -
+
+
+
+core.messaging / MessagingService / createMessage
+
+createMessage
+
+abstract fun createMessage ( topic : String , data : ByteArray ) : Message
+Returns an initialised Message with the current time, etc, already filled in.
+
+
+
+
diff --git a/docs/build/html/api/core.messaging/-messaging-service/index.html b/docs/build/html/api/core.messaging/-messaging-service/index.html
new file mode 100644
index 0000000000..22be71d9ac
--- /dev/null
+++ b/docs/build/html/api/core.messaging/-messaging-service/index.html
@@ -0,0 +1,122 @@
+
+
+MessagingService -
+
+
+
+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 = "", executor : Executor ? = null, callback : ( Message , MessageHandlerRegistration ) -> Unit ) : MessageHandlerRegistration
The provided function will be invoked for each received message whose topic matches the given string, on the given
+executor. The topic can be the empty string to match all messages.
+
+
+
+
+createMessage
+
+abstract fun createMessage ( topic : String , data : ByteArray ) : 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.
+
+
+
+
+stop
+
+abstract fun stop ( ) : Unit
+
+
+
+Extension Functions
+
+
+
+
+runOnNextMessage
+
+fun MessagingService . runOnNextMessage ( topic : String = "", executor : Executor ? = null, callback : ( Message ) -> Unit ) : Unit
Registers a handler for the given topic 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 , to : MessageRecipients , obj : Any ) : Unit
+
+
+
+Inheritors
+
+
+
+
+ArtemisMessagingService
+
+class ArtemisMessagingService : MessagingService
This class implements the MessagingService API using Apache Artemis, the successor to their ActiveMQ product.
+Artemis is a message queue broker and here, we embed the entire server inside our own process. Nodes communicate
+with each other using (by default) an Artemis specific protocol, but it supports other protocols like AQMP/1.0
+as well.
+
+
+
+
+InMemoryMessaging
+
+inner class InMemoryMessaging : MessagingService
An InMemoryMessaging provides a MessagingService that isnt backed by any kind of network or disk storage
+system, but just uses regular queues on the heap instead. It is intended for unit testing and developer convenience
+when all entities on the network are being simulated in-process.
+
+
+
+
+
+
diff --git a/docs/build/html/api/core.messaging/-messaging-service/my-address.html b/docs/build/html/api/core.messaging/-messaging-service/my-address.html
new file mode 100644
index 0000000000..5f0286063d
--- /dev/null
+++ b/docs/build/html/api/core.messaging/-messaging-service/my-address.html
@@ -0,0 +1,16 @@
+
+
+MessagingService.myAddress -
+
+
+
+core.messaging / MessagingService / myAddress
+
+myAddress
+
+abstract val myAddress : SingleMessageRecipient
+Returns an address that refers to this node.
+
+
+
+
diff --git a/docs/build/html/api/core.messaging/-messaging-service/remove-message-handler.html b/docs/build/html/api/core.messaging/-messaging-service/remove-message-handler.html
new file mode 100644
index 0000000000..7ac4c91a54
--- /dev/null
+++ b/docs/build/html/api/core.messaging/-messaging-service/remove-message-handler.html
@@ -0,0 +1,23 @@
+
+
+MessagingService.removeMessageHandler -
+
+
+
+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/core.messaging/-messaging-service/send.html b/docs/build/html/api/core.messaging/-messaging-service/send.html
new file mode 100644
index 0000000000..2ffad23f5c
--- /dev/null
+++ b/docs/build/html/api/core.messaging/-messaging-service/send.html
@@ -0,0 +1,23 @@
+
+
+MessagingService.send -
+
+
+
+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/core.messaging/-messaging-service/stop.html b/docs/build/html/api/core.messaging/-messaging-service/stop.html
new file mode 100644
index 0000000000..9a242c0228
--- /dev/null
+++ b/docs/build/html/api/core.messaging/-messaging-service/stop.html
@@ -0,0 +1,15 @@
+
+
+MessagingService.stop -
+
+
+
+core.messaging / MessagingService / stop
+
+stop
+
+abstract fun stop ( ) : Unit
+
+
+
+
diff --git a/docs/build/html/api/core.messaging/-single-message-recipient.html b/docs/build/html/api/core.messaging/-single-message-recipient.html
new file mode 100644
index 0000000000..1991805b3c
--- /dev/null
+++ b/docs/build/html/api/core.messaging/-single-message-recipient.html
@@ -0,0 +1,32 @@
+
+
+SingleMessageRecipient -
+
+
+
+core.messaging / SingleMessageRecipient
+
+SingleMessageRecipient
+interface SingleMessageRecipient : MessageRecipients
+A base class for the case of point-to-point messages
+
+
+Inheritors
+
+
+
+
+Handle
+
+class Handle : SingleMessageRecipient
+
+
+
+MockAddress
+
+data class MockAddress : SingleMessageRecipient
+
+
+
+
+
diff --git a/docs/build/html/api/core.messaging/-stack-snapshot/-init-.html b/docs/build/html/api/core.messaging/-stack-snapshot/-init-.html
new file mode 100644
index 0000000000..e918751227
--- /dev/null
+++ b/docs/build/html/api/core.messaging/-stack-snapshot/-init-.html
@@ -0,0 +1,14 @@
+
+
+StackSnapshot. -
+
+
+
+core.messaging / StackSnapshot / <init>
+
+<init>
+StackSnapshot ( )
+
+
+
+
diff --git a/docs/build/html/api/core.messaging/-stack-snapshot/index.html b/docs/build/html/api/core.messaging/-stack-snapshot/index.html
new file mode 100644
index 0000000000..35ecece2f0
--- /dev/null
+++ b/docs/build/html/api/core.messaging/-stack-snapshot/index.html
@@ -0,0 +1,25 @@
+
+
+StackSnapshot -
+
+
+
+core.messaging / StackSnapshot
+
+StackSnapshot
+class StackSnapshot : Throwable
+
+
+Constructors
+
+
+
+
+<init>
+
+StackSnapshot ( )
+
+
+
+
+
diff --git a/docs/build/html/api/core.messaging/-state-machine-manager/-fiber-request/-expecting-response/-init-.html b/docs/build/html/api/core.messaging/-state-machine-manager/-fiber-request/-expecting-response/-init-.html
new file mode 100644
index 0000000000..bc39c91e16
--- /dev/null
+++ b/docs/build/html/api/core.messaging/-state-machine-manager/-fiber-request/-expecting-response/-init-.html
@@ -0,0 +1,14 @@
+
+
+StateMachineManager.FiberRequest.ExpectingResponse. -
+
+
+
+core.messaging / StateMachineManager / FiberRequest / ExpectingResponse / <init>
+
+<init>
+ExpectingResponse ( topic : String , destination : MessageRecipients ? , sessionIDForSend : Long , sessionIDForReceive : Long , obj : Any ? , responseType : Class < R > )
+
+
+
+
diff --git a/docs/build/html/api/core.messaging/-state-machine-manager/-fiber-request/-expecting-response/index.html b/docs/build/html/api/core.messaging/-state-machine-manager/-fiber-request/-expecting-response/index.html
new file mode 100644
index 0000000000..551f1c91ea
--- /dev/null
+++ b/docs/build/html/api/core.messaging/-state-machine-manager/-fiber-request/-expecting-response/index.html
@@ -0,0 +1,77 @@
+
+
+StateMachineManager.FiberRequest.ExpectingResponse -
+
+
+
+core.messaging / StateMachineManager / FiberRequest / ExpectingResponse
+
+ExpectingResponse
+class ExpectingResponse < R : Any > : FiberRequest
+
+
+Constructors
+
+
+
+
+<init>
+
+ExpectingResponse ( topic : String , destination : MessageRecipients ? , sessionIDForSend : Long , sessionIDForReceive : Long , obj : Any ? , responseType : Class < R > )
+
+
+
+Properties
+
+Inherited Properties
+
+
+
diff --git a/docs/build/html/api/core.messaging/-state-machine-manager/-fiber-request/-expecting-response/response-type.html b/docs/build/html/api/core.messaging/-state-machine-manager/-fiber-request/-expecting-response/response-type.html
new file mode 100644
index 0000000000..06808768a7
--- /dev/null
+++ b/docs/build/html/api/core.messaging/-state-machine-manager/-fiber-request/-expecting-response/response-type.html
@@ -0,0 +1,15 @@
+
+
+StateMachineManager.FiberRequest.ExpectingResponse.responseType -
+
+
+
+core.messaging / StateMachineManager / FiberRequest / ExpectingResponse / responseType
+
+responseType
+
+val responseType : Class < R >
+
+
+
+
diff --git a/docs/build/html/api/core.messaging/-state-machine-manager/-fiber-request/-init-.html b/docs/build/html/api/core.messaging/-state-machine-manager/-fiber-request/-init-.html
new file mode 100644
index 0000000000..8cd98d402b
--- /dev/null
+++ b/docs/build/html/api/core.messaging/-state-machine-manager/-fiber-request/-init-.html
@@ -0,0 +1,14 @@
+
+
+StateMachineManager.FiberRequest. -
+
+
+
+core.messaging / StateMachineManager / FiberRequest / <init>
+
+<init>
+FiberRequest ( topic : String , destination : MessageRecipients ? , sessionIDForSend : Long , sessionIDForReceive : Long , obj : Any ? )
+
+
+
+
diff --git a/docs/build/html/api/core.messaging/-state-machine-manager/-fiber-request/-not-expecting-response/-init-.html b/docs/build/html/api/core.messaging/-state-machine-manager/-fiber-request/-not-expecting-response/-init-.html
new file mode 100644
index 0000000000..ec9db5833d
--- /dev/null
+++ b/docs/build/html/api/core.messaging/-state-machine-manager/-fiber-request/-not-expecting-response/-init-.html
@@ -0,0 +1,14 @@
+
+
+StateMachineManager.FiberRequest.NotExpectingResponse. -
+
+
+
+core.messaging / StateMachineManager / FiberRequest / NotExpectingResponse / <init>
+
+<init>
+NotExpectingResponse ( topic : String , destination : MessageRecipients , sessionIDForSend : Long , obj : Any ? )
+
+
+
+
diff --git a/docs/build/html/api/core.messaging/-state-machine-manager/-fiber-request/-not-expecting-response/index.html b/docs/build/html/api/core.messaging/-state-machine-manager/-fiber-request/-not-expecting-response/index.html
new file mode 100644
index 0000000000..d34b2017ef
--- /dev/null
+++ b/docs/build/html/api/core.messaging/-state-machine-manager/-fiber-request/-not-expecting-response/index.html
@@ -0,0 +1,66 @@
+
+
+StateMachineManager.FiberRequest.NotExpectingResponse -
+
+
+
+core.messaging / StateMachineManager / FiberRequest / NotExpectingResponse
+
+NotExpectingResponse
+class NotExpectingResponse : FiberRequest
+
+
+Constructors
+
+
+
+
+<init>
+
+NotExpectingResponse ( topic : String , destination : MessageRecipients , sessionIDForSend : Long , obj : Any ? )
+
+
+
+Inherited Properties
+
+
+
diff --git a/docs/build/html/api/core.messaging/-state-machine-manager/-fiber-request/destination.html b/docs/build/html/api/core.messaging/-state-machine-manager/-fiber-request/destination.html
new file mode 100644
index 0000000000..c67bf7ad20
--- /dev/null
+++ b/docs/build/html/api/core.messaging/-state-machine-manager/-fiber-request/destination.html
@@ -0,0 +1,15 @@
+
+
+StateMachineManager.FiberRequest.destination -
+
+
+
+core.messaging / StateMachineManager / FiberRequest / destination
+
+destination
+
+val destination : MessageRecipients ?
+
+
+
+
diff --git a/docs/build/html/api/core.messaging/-state-machine-manager/-fiber-request/index.html b/docs/build/html/api/core.messaging/-state-machine-manager/-fiber-request/index.html
new file mode 100644
index 0000000000..b3dd2a2730
--- /dev/null
+++ b/docs/build/html/api/core.messaging/-state-machine-manager/-fiber-request/index.html
@@ -0,0 +1,100 @@
+
+
+StateMachineManager.FiberRequest -
+
+
+
+core.messaging / StateMachineManager / FiberRequest
+
+FiberRequest
+class FiberRequest
+
+
+Types
+
+Constructors
+
+
+
+
+<init>
+
+FiberRequest ( topic : String , destination : MessageRecipients ? , sessionIDForSend : Long , sessionIDForReceive : Long , obj : Any ? )
+
+
+
+Properties
+
+Inheritors
+
+
+
diff --git a/docs/build/html/api/core.messaging/-state-machine-manager/-fiber-request/obj.html b/docs/build/html/api/core.messaging/-state-machine-manager/-fiber-request/obj.html
new file mode 100644
index 0000000000..59a930234b
--- /dev/null
+++ b/docs/build/html/api/core.messaging/-state-machine-manager/-fiber-request/obj.html
@@ -0,0 +1,15 @@
+
+
+StateMachineManager.FiberRequest.obj -
+
+
+
+core.messaging / StateMachineManager / FiberRequest / obj
+
+obj
+
+val obj : Any ?
+
+
+
+
diff --git a/docs/build/html/api/core.messaging/-state-machine-manager/-fiber-request/session-i-d-for-receive.html b/docs/build/html/api/core.messaging/-state-machine-manager/-fiber-request/session-i-d-for-receive.html
new file mode 100644
index 0000000000..71edcfa82c
--- /dev/null
+++ b/docs/build/html/api/core.messaging/-state-machine-manager/-fiber-request/session-i-d-for-receive.html
@@ -0,0 +1,15 @@
+
+
+StateMachineManager.FiberRequest.sessionIDForReceive -
+
+
+
+core.messaging / StateMachineManager / FiberRequest / sessionIDForReceive
+
+sessionIDForReceive
+
+val sessionIDForReceive : Long
+
+
+
+
diff --git a/docs/build/html/api/core.messaging/-state-machine-manager/-fiber-request/session-i-d-for-send.html b/docs/build/html/api/core.messaging/-state-machine-manager/-fiber-request/session-i-d-for-send.html
new file mode 100644
index 0000000000..31900075b9
--- /dev/null
+++ b/docs/build/html/api/core.messaging/-state-machine-manager/-fiber-request/session-i-d-for-send.html
@@ -0,0 +1,15 @@
+
+
+StateMachineManager.FiberRequest.sessionIDForSend -
+
+
+
+core.messaging / StateMachineManager / FiberRequest / sessionIDForSend
+
+sessionIDForSend
+
+val sessionIDForSend : Long
+
+
+
+
diff --git a/docs/build/html/api/core.messaging/-state-machine-manager/-fiber-request/stack-trace-in-case-of-problems.html b/docs/build/html/api/core.messaging/-state-machine-manager/-fiber-request/stack-trace-in-case-of-problems.html
new file mode 100644
index 0000000000..b734831095
--- /dev/null
+++ b/docs/build/html/api/core.messaging/-state-machine-manager/-fiber-request/stack-trace-in-case-of-problems.html
@@ -0,0 +1,15 @@
+
+
+StateMachineManager.FiberRequest.stackTraceInCaseOfProblems -
+
+
+
+core.messaging / StateMachineManager / FiberRequest / stackTraceInCaseOfProblems
+
+stackTraceInCaseOfProblems
+
+val stackTraceInCaseOfProblems : StackSnapshot
+
+
+
+
diff --git a/docs/build/html/api/core.messaging/-state-machine-manager/-fiber-request/topic.html b/docs/build/html/api/core.messaging/-state-machine-manager/-fiber-request/topic.html
new file mode 100644
index 0000000000..6a805c7ceb
--- /dev/null
+++ b/docs/build/html/api/core.messaging/-state-machine-manager/-fiber-request/topic.html
@@ -0,0 +1,15 @@
+
+
+StateMachineManager.FiberRequest.topic -
+
+
+
+core.messaging / StateMachineManager / FiberRequest / topic
+
+topic
+
+val topic : String
+
+
+
+
diff --git a/docs/build/html/api/core.messaging/-state-machine-manager/-fiber-scheduler/-init-.html b/docs/build/html/api/core.messaging/-state-machine-manager/-fiber-scheduler/-init-.html
new file mode 100644
index 0000000000..9fa7e40bc2
--- /dev/null
+++ b/docs/build/html/api/core.messaging/-state-machine-manager/-fiber-scheduler/-init-.html
@@ -0,0 +1,14 @@
+
+
+StateMachineManager.FiberScheduler. -
+
+
+
+core.messaging / StateMachineManager / FiberScheduler / <init>
+
+<init>
+FiberScheduler ( )
+
+
+
+
diff --git a/docs/build/html/api/core.messaging/-state-machine-manager/-fiber-scheduler/index.html b/docs/build/html/api/core.messaging/-state-machine-manager/-fiber-scheduler/index.html
new file mode 100644
index 0000000000..c3c2920ce5
--- /dev/null
+++ b/docs/build/html/api/core.messaging/-state-machine-manager/-fiber-scheduler/index.html
@@ -0,0 +1,25 @@
+
+
+StateMachineManager.FiberScheduler -
+
+
+
+core.messaging / StateMachineManager / FiberScheduler
+
+FiberScheduler
+inner class FiberScheduler
+
+
+Constructors
+
+
+
+
+<init>
+
+FiberScheduler ( )
+
+
+
+
+
diff --git a/docs/build/html/api/core.messaging/-state-machine-manager/-init-.html b/docs/build/html/api/core.messaging/-state-machine-manager/-init-.html
new file mode 100644
index 0000000000..70db983fe2
--- /dev/null
+++ b/docs/build/html/api/core.messaging/-state-machine-manager/-init-.html
@@ -0,0 +1,35 @@
+
+
+StateMachineManager. -
+
+
+
+core.messaging / StateMachineManager / <init>
+
+<init>
+StateMachineManager ( serviceHub : ServiceHub , executor : AffinityExecutor )
+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: Session IDs should be set up and propagated automatically, on demand.
+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: Make Kryo (de)serialize markers for heavy objects that are currently in the service hub. This avoids mistakes
+where services are temporarily put on the stack.
+TODO: Implement stub/skel classes that provide a basic RPC framework on top of this.
+
+
+
+
+
+
diff --git a/docs/build/html/api/core.messaging/-state-machine-manager/add.html b/docs/build/html/api/core.messaging/-state-machine-manager/add.html
new file mode 100644
index 0000000000..fa28ee12f5
--- /dev/null
+++ b/docs/build/html/api/core.messaging/-state-machine-manager/add.html
@@ -0,0 +1,18 @@
+
+
+StateMachineManager.add -
+
+
+
+core.messaging / StateMachineManager / add
+
+add
+
+fun < T > add ( loggerName : String , logic : ProtocolLogic < T > ) : <ERROR CLASS> < T >
+Kicks off a brand new state machine of the given class. It will log with the named logger.
+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/core.messaging/-state-machine-manager/executor.html b/docs/build/html/api/core.messaging/-state-machine-manager/executor.html
new file mode 100644
index 0000000000..75f15716f3
--- /dev/null
+++ b/docs/build/html/api/core.messaging/-state-machine-manager/executor.html
@@ -0,0 +1,15 @@
+
+
+StateMachineManager.executor -
+
+
+
+core.messaging / StateMachineManager / executor
+
+executor
+
+val executor : AffinityExecutor
+
+
+
+
diff --git a/docs/build/html/api/core.messaging/-state-machine-manager/find-state-machines.html b/docs/build/html/api/core.messaging/-state-machine-manager/find-state-machines.html
new file mode 100644
index 0000000000..88a2990dc7
--- /dev/null
+++ b/docs/build/html/api/core.messaging/-state-machine-manager/find-state-machines.html
@@ -0,0 +1,16 @@
+
+
+StateMachineManager.findStateMachines -
+
+
+
+core.messaging / StateMachineManager / findStateMachines
+
+findStateMachines
+
+fun < T > findStateMachines ( klass : Class < out ProtocolLogic < T > > ) : List < <ERROR CLASS> < ProtocolLogic < T > , <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/core.messaging/-state-machine-manager/index.html b/docs/build/html/api/core.messaging/-state-machine-manager/index.html
new file mode 100644
index 0000000000..3cf765f3df
--- /dev/null
+++ b/docs/build/html/api/core.messaging/-state-machine-manager/index.html
@@ -0,0 +1,109 @@
+
+
+StateMachineManager -
+
+
+
+core.messaging / 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: Session IDs should be set up and propagated automatically, on demand.
+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: Make Kryo (de)serialize markers for heavy objects that are currently in the service hub. This avoids mistakes
+where services are temporarily put on the stack.
+TODO: Implement stub/skel classes that provide a basic RPC framework on top of this.
+
+
+
+
+Types
+
+Constructors
+
+
+
+
+<init>
+
+StateMachineManager ( serviceHub : ServiceHub , executor : AffinityExecutor )
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 ( loggerName : String , logic : ProtocolLogic < T > ) : <ERROR CLASS> < T >
Kicks off a brand new state machine of the given class. It will log with the named logger.
+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 < T > findStateMachines ( klass : Class < out ProtocolLogic < T > > ) : List < <ERROR CLASS> < ProtocolLogic < T > , <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/core.messaging/-state-machine-manager/scheduler.html b/docs/build/html/api/core.messaging/-state-machine-manager/scheduler.html
new file mode 100644
index 0000000000..f99b8f43ef
--- /dev/null
+++ b/docs/build/html/api/core.messaging/-state-machine-manager/scheduler.html
@@ -0,0 +1,15 @@
+
+
+StateMachineManager.scheduler -
+
+
+
+core.messaging / StateMachineManager / scheduler
+
+scheduler
+
+val scheduler : FiberScheduler
+
+
+
+
diff --git a/docs/build/html/api/core.messaging/-state-machine-manager/service-hub.html b/docs/build/html/api/core.messaging/-state-machine-manager/service-hub.html
new file mode 100644
index 0000000000..2c30dba92a
--- /dev/null
+++ b/docs/build/html/api/core.messaging/-state-machine-manager/service-hub.html
@@ -0,0 +1,15 @@
+
+
+StateMachineManager.serviceHub -
+
+
+
+core.messaging / StateMachineManager / serviceHub
+
+serviceHub
+
+val serviceHub : ServiceHub
+
+
+
+
diff --git a/docs/build/html/api/core.messaging/-topic-string-validator/check.html b/docs/build/html/api/core.messaging/-topic-string-validator/check.html
new file mode 100644
index 0000000000..1f0e354172
--- /dev/null
+++ b/docs/build/html/api/core.messaging/-topic-string-validator/check.html
@@ -0,0 +1,18 @@
+
+
+TopicStringValidator.check -
+
+
+
+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/core.messaging/-topic-string-validator/index.html b/docs/build/html/api/core.messaging/-topic-string-validator/index.html
new file mode 100644
index 0000000000..a7591963dd
--- /dev/null
+++ b/docs/build/html/api/core.messaging/-topic-string-validator/index.html
@@ -0,0 +1,26 @@
+
+
+TopicStringValidator -
+
+
+
+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/core.messaging/index.html b/docs/build/html/api/core.messaging/index.html
new file mode 100644
index 0000000000..842b8f464b
--- /dev/null
+++ b/docs/build/html/api/core.messaging/index.html
@@ -0,0 +1,122 @@
+
+
+core.messaging -
+
+
+
+core.messaging
+
+Package core.messaging
+Types
+
+
+
+
+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.
+
+
+
+
+MessagingServiceBuilder
+
+interface MessagingServiceBuilder < out T : MessagingService >
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.
+
+
+
+
+SingleMessageRecipient
+
+interface SingleMessageRecipient : MessageRecipients
A base class for the case of point-to-point messages
+
+
+
+
+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.
+
+
+
+
+TopicStringValidator
+
+object TopicStringValidator
A singleton thats useful for validating topic strings
+
+
+
+
+Exceptions
+
+Functions
+
+
+
diff --git a/docs/build/html/api/core.messaging/run-on-next-message.html b/docs/build/html/api/core.messaging/run-on-next-message.html
new file mode 100644
index 0000000000..5f29bdc4a7
--- /dev/null
+++ b/docs/build/html/api/core.messaging/run-on-next-message.html
@@ -0,0 +1,18 @@
+
+
+runOnNextMessage -
+
+
+
+core.messaging / runOnNextMessage
+
+runOnNextMessage
+
+fun MessagingService . runOnNextMessage ( topic : String = "", executor : Executor ? = null, callback : ( Message ) -> Unit ) : Unit
+Registers a handler for the given topic 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 .
+
+
+
+
diff --git a/docs/build/html/api/core.messaging/send.html b/docs/build/html/api/core.messaging/send.html
new file mode 100644
index 0000000000..4b0b0475bb
--- /dev/null
+++ b/docs/build/html/api/core.messaging/send.html
@@ -0,0 +1,15 @@
+
+
+send -
+
+
+
+core.messaging / send
+
+send
+
+fun MessagingService . send ( topic : String , to : MessageRecipients , obj : Any ) : Unit
+
+
+
+
diff --git a/docs/build/html/api/core.node.services/-abstract-node-service/-init-.html b/docs/build/html/api/core.node.services/-abstract-node-service/-init-.html
new file mode 100644
index 0000000000..fef3411e7d
--- /dev/null
+++ b/docs/build/html/api/core.node.services/-abstract-node-service/-init-.html
@@ -0,0 +1,15 @@
+
+
+AbstractNodeService. -
+
+
+
+core.node.services / AbstractNodeService / <init>
+
+<init>
+AbstractNodeService ( net : MessagingService )
+Abstract superclass for services that a node can host, which provides helper functions.
+
+
+
+
diff --git a/docs/build/html/api/core.node.services/-abstract-node-service/add-message-handler.html b/docs/build/html/api/core.node.services/-abstract-node-service/add-message-handler.html
new file mode 100644
index 0000000000..010b6e12a0
--- /dev/null
+++ b/docs/build/html/api/core.node.services/-abstract-node-service/add-message-handler.html
@@ -0,0 +1,38 @@
+
+
+AbstractNodeService.addMessageHandler -
+
+
+
+core.node.services / AbstractNodeService / addMessageHandler
+
+addMessageHandler
+
+protected inline fun < reified Q : AbstractRequestMessage , reified R : Any > addMessageHandler ( topic : String , crossinline handler : ( Q ) -> R , crossinline exceptionConsumer : ( Message , Exception ) -> Unit ) : Unit
+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.
+Parameters
+
+topic
- the topic, without the default session ID postfix (".0)
+
+
+handler
- a function to handle the deserialised request and return a response
+
+
+exceptionConsumer
- a function to which any thrown exception is passed.
+
+
+
+protected inline fun < reified Q : AbstractRequestMessage , reified R : Any > addMessageHandler ( topic : String , crossinline handler : ( Q ) -> R ) : Unit
+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.
+Parameters
+
+topic
- the topic, without the default session ID postfix (".0)
+
+
+handler
- a function to handle the deserialised request and return a response
+
+
+
+
diff --git a/docs/build/html/api/core.node.services/-abstract-node-service/index.html b/docs/build/html/api/core.node.services/-abstract-node-service/index.html
new file mode 100644
index 0000000000..ab8ae9725b
--- /dev/null
+++ b/docs/build/html/api/core.node.services/-abstract-node-service/index.html
@@ -0,0 +1,87 @@
+
+
+AbstractNodeService -
+
+
+
+core.node.services / AbstractNodeService
+
+AbstractNodeService
+abstract class AbstractNodeService
+Abstract superclass for services that a node can host, which provides helper functions.
+
+
+Constructors
+
+
+
+
+<init>
+
+AbstractNodeService ( net : MessagingService )
Abstract superclass for services that a node can host, which provides helper functions.
+
+
+
+
+Properties
+
+Functions
+
+
+
+
+addMessageHandler
+
+fun < Q : AbstractRequestMessage , R : Any > addMessageHandler ( topic : String , handler : ( Q ) -> R , exceptionConsumer : ( Message , Exception ) -> Unit ) : Unit
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.
+fun < Q : AbstractRequestMessage , R : Any > addMessageHandler ( topic : String , handler : ( Q ) -> R ) : Unit
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.
+
+
+
+
+Inheritors
+
+
+
+
+DataVendingService
+
+class DataVendingService : AbstractNodeService
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.
+
+
+
+
+InMemoryNetworkMapService
+
+class InMemoryNetworkMapService : NetworkMapService , AbstractNodeService
+
+
+
+NodeTimestamperService
+
+class NodeTimestamperService : AbstractNodeService
This class implements the server side of the timestamping protocol, using the local clock. A future version might
+add features like checking against other NTP servers to make sure the clock hasnt drifted by too much.
+
+
+
+
+Service
+
+class Service : AcceptsFileUpload , AbstractNodeService
The Service that wraps Oracle and handles messages/network interaction/request scrubbing.
+
+
+
+
+
+
diff --git a/docs/build/html/api/core.node.services/-abstract-node-service/net.html b/docs/build/html/api/core.node.services/-abstract-node-service/net.html
new file mode 100644
index 0000000000..3c56620f90
--- /dev/null
+++ b/docs/build/html/api/core.node.services/-abstract-node-service/net.html
@@ -0,0 +1,15 @@
+
+
+AbstractNodeService.net -
+
+
+
+core.node.services / AbstractNodeService / net
+
+net
+
+val net : MessagingService
+
+
+
+
diff --git a/docs/build/html/api/core.node.services/-attachment-storage/import-attachment.html b/docs/build/html/api/core.node.services/-attachment-storage/import-attachment.html
new file mode 100644
index 0000000000..05eef512a3
--- /dev/null
+++ b/docs/build/html/api/core.node.services/-attachment-storage/import-attachment.html
@@ -0,0 +1,30 @@
+
+
+AttachmentStorage.importAttachment -
+
+
+
+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/core.node.services/-attachment-storage/index.html b/docs/build/html/api/core.node.services/-attachment-storage/index.html
new file mode 100644
index 0000000000..fb413bd55f
--- /dev/null
+++ b/docs/build/html/api/core.node.services/-attachment-storage/index.html
@@ -0,0 +1,51 @@
+
+
+AttachmentStorage -
+
+
+
+core.node.services / AttachmentStorage
+
+AttachmentStorage
+interface AttachmentStorage
+An attachment store records potentially large binary objects, identified by their hash. Note that attachments are
+immutable and can never be erased once inserted
+
+
+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 newly opened stream for the given locally stored attachment, or null if no such attachment is known.
+The returned stream must be closed when you are done with it to avoid resource leaks. You should probably wrap
+the result in a JarInputStream unless youre sending it somewhere, there is a convenience helper for this
+on Attachment .
+
+
+
+
+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/core.node.services/-attachment-storage/open-attachment.html b/docs/build/html/api/core.node.services/-attachment-storage/open-attachment.html
new file mode 100644
index 0000000000..c8994d97e9
--- /dev/null
+++ b/docs/build/html/api/core.node.services/-attachment-storage/open-attachment.html
@@ -0,0 +1,19 @@
+
+
+AttachmentStorage.openAttachment -
+
+
+
+core.node.services / AttachmentStorage / openAttachment
+
+openAttachment
+
+abstract fun openAttachment ( id : SecureHash ) : Attachment ?
+Returns a newly opened stream for the given locally stored attachment, or null if no such attachment is known.
+The returned stream must be closed when you are done with it to avoid resource leaks. You should probably wrap
+the result in a JarInputStream unless youre sending it somewhere, there is a convenience helper for this
+on Attachment .
+
+
+
+
diff --git a/docs/build/html/api/core.node.services/-dummy-timestamping-authority/identity.html b/docs/build/html/api/core.node.services/-dummy-timestamping-authority/identity.html
new file mode 100644
index 0000000000..add30e7a97
--- /dev/null
+++ b/docs/build/html/api/core.node.services/-dummy-timestamping-authority/identity.html
@@ -0,0 +1,15 @@
+
+
+DummyTimestampingAuthority.identity -
+
+
+
+core.node.services / DummyTimestampingAuthority / identity
+
+identity
+
+val identity : Party
+
+
+
+
diff --git a/docs/build/html/api/core.node.services/-dummy-timestamping-authority/index.html b/docs/build/html/api/core.node.services/-dummy-timestamping-authority/index.html
new file mode 100644
index 0000000000..fec26a679f
--- /dev/null
+++ b/docs/build/html/api/core.node.services/-dummy-timestamping-authority/index.html
@@ -0,0 +1,31 @@
+
+
+DummyTimestampingAuthority -
+
+
+
+core.node.services / DummyTimestampingAuthority
+
+DummyTimestampingAuthority
+object DummyTimestampingAuthority
+
+
+Properties
+
+
+
diff --git a/docs/build/html/api/core.node.services/-dummy-timestamping-authority/key.html b/docs/build/html/api/core.node.services/-dummy-timestamping-authority/key.html
new file mode 100644
index 0000000000..bc68a6b5b6
--- /dev/null
+++ b/docs/build/html/api/core.node.services/-dummy-timestamping-authority/key.html
@@ -0,0 +1,15 @@
+
+
+DummyTimestampingAuthority.key -
+
+
+
+core.node.services / DummyTimestampingAuthority / key
+
+key
+
+val key : KeyPair
+
+
+
+
diff --git a/docs/build/html/api/core.node.services/-identity-service/index.html b/docs/build/html/api/core.node.services/-identity-service/index.html
new file mode 100644
index 0000000000..375ac3b3f9
--- /dev/null
+++ b/docs/build/html/api/core.node.services/-identity-service/index.html
@@ -0,0 +1,62 @@
+
+
+IdentityService -
+
+
+
+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
+
+
+
+
+InMemoryIdentityService
+
+class InMemoryIdentityService : IdentityService
Simple identity service which caches parties and provides functionality for efficient lookup.
+
+
+
+
+MockIdentityService
+
+class MockIdentityService : IdentityService
Scaffolding: a dummy identity service that just expects to have identities loaded off disk or found elsewhere.
+This class allows the provided list of identities to be mutated after construction, so it takes the list lock
+when doing lookups and recalculates the mapping each time. The ability to change the list is used by the
+MockNetwork code.
+
+
+
+
+
+
diff --git a/docs/build/html/api/core.node.services/-identity-service/party-from-key.html b/docs/build/html/api/core.node.services/-identity-service/party-from-key.html
new file mode 100644
index 0000000000..8e1681c060
--- /dev/null
+++ b/docs/build/html/api/core.node.services/-identity-service/party-from-key.html
@@ -0,0 +1,15 @@
+
+
+IdentityService.partyFromKey -
+
+
+
+core.node.services / IdentityService / partyFromKey
+
+partyFromKey
+
+abstract fun partyFromKey ( key : PublicKey ) : Party ?
+
+
+
+
diff --git a/docs/build/html/api/core.node.services/-identity-service/party-from-name.html b/docs/build/html/api/core.node.services/-identity-service/party-from-name.html
new file mode 100644
index 0000000000..42a8ac97c0
--- /dev/null
+++ b/docs/build/html/api/core.node.services/-identity-service/party-from-name.html
@@ -0,0 +1,15 @@
+
+
+IdentityService.partyFromName -
+
+
+
+core.node.services / IdentityService / partyFromName
+
+partyFromName
+
+abstract fun partyFromName ( name : String ) : Party ?
+
+
+
+
diff --git a/docs/build/html/api/core.node.services/-identity-service/register-identity.html b/docs/build/html/api/core.node.services/-identity-service/register-identity.html
new file mode 100644
index 0000000000..26eb9fbfe6
--- /dev/null
+++ b/docs/build/html/api/core.node.services/-identity-service/register-identity.html
@@ -0,0 +1,15 @@
+
+
+IdentityService.registerIdentity -
+
+
+
+core.node.services / IdentityService / registerIdentity
+
+registerIdentity
+
+abstract fun registerIdentity ( party : Party ) : Unit
+
+
+
+
diff --git a/docs/build/html/api/core.node.services/-in-memory-network-map-service/-init-.html b/docs/build/html/api/core.node.services/-in-memory-network-map-service/-init-.html
new file mode 100644
index 0000000000..1b31bee785
--- /dev/null
+++ b/docs/build/html/api/core.node.services/-in-memory-network-map-service/-init-.html
@@ -0,0 +1,14 @@
+
+
+InMemoryNetworkMapService. -
+
+
+
+core.node.services / InMemoryNetworkMapService / <init>
+
+<init>
+InMemoryNetworkMapService ( net : MessagingService , home : NodeRegistration , cache : NetworkMapCache )
+
+
+
+
diff --git a/docs/build/html/api/core.node.services/-in-memory-network-map-service/cache.html b/docs/build/html/api/core.node.services/-in-memory-network-map-service/cache.html
new file mode 100644
index 0000000000..20076e7f8d
--- /dev/null
+++ b/docs/build/html/api/core.node.services/-in-memory-network-map-service/cache.html
@@ -0,0 +1,15 @@
+
+
+InMemoryNetworkMapService.cache -
+
+
+
+core.node.services / InMemoryNetworkMapService / cache
+
+cache
+
+val cache : NetworkMapCache
+
+
+
+
diff --git a/docs/build/html/api/core.node.services/-in-memory-network-map-service/get-unacknowledged-count.html b/docs/build/html/api/core.node.services/-in-memory-network-map-service/get-unacknowledged-count.html
new file mode 100644
index 0000000000..c5f4291e88
--- /dev/null
+++ b/docs/build/html/api/core.node.services/-in-memory-network-map-service/get-unacknowledged-count.html
@@ -0,0 +1,15 @@
+
+
+InMemoryNetworkMapService.getUnacknowledgedCount -
+
+
+
+core.node.services / InMemoryNetworkMapService / getUnacknowledgedCount
+
+getUnacknowledgedCount
+
+fun getUnacknowledgedCount ( subscriber : SingleMessageRecipient ) : Int ?
+
+
+
+
diff --git a/docs/build/html/api/core.node.services/-in-memory-network-map-service/index.html b/docs/build/html/api/core.node.services/-in-memory-network-map-service/index.html
new file mode 100644
index 0000000000..878e2f217e
--- /dev/null
+++ b/docs/build/html/api/core.node.services/-in-memory-network-map-service/index.html
@@ -0,0 +1,130 @@
+
+
+InMemoryNetworkMapService -
+
+
+
+core.node.services / InMemoryNetworkMapService
+
+InMemoryNetworkMapService
+class InMemoryNetworkMapService : NetworkMapService , AbstractNodeService
+
+
+Constructors
+
+Properties
+
+
+
+
+cache
+
+val cache : NetworkMapCache
+
+
+
+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
+
+val nodes : List < NodeInfo >
+
+
+
+Inherited Properties
+
+Functions
+
+Inherited Functions
+
+
+
+
+addMessageHandler
+
+fun < Q : AbstractRequestMessage , R : Any > addMessageHandler ( topic : String , handler : ( Q ) -> R , exceptionConsumer : ( Message , Exception ) -> Unit ) : Unit
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.
+fun < Q : AbstractRequestMessage , R : Any > addMessageHandler ( topic : String , handler : ( Q ) -> R ) : Unit
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.
+
+
+
+
+
+
diff --git a/docs/build/html/api/core.node.services/-in-memory-network-map-service/max-size-registration-request-bytes.html b/docs/build/html/api/core.node.services/-in-memory-network-map-service/max-size-registration-request-bytes.html
new file mode 100644
index 0000000000..61d590c4f1
--- /dev/null
+++ b/docs/build/html/api/core.node.services/-in-memory-network-map-service/max-size-registration-request-bytes.html
@@ -0,0 +1,17 @@
+
+
+InMemoryNetworkMapService.maxSizeRegistrationRequestBytes -
+
+
+
+core.node.services / InMemoryNetworkMapService / 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/core.node.services/-in-memory-network-map-service/max-unacknowledged-updates.html b/docs/build/html/api/core.node.services/-in-memory-network-map-service/max-unacknowledged-updates.html
new file mode 100644
index 0000000000..31b3ee776c
--- /dev/null
+++ b/docs/build/html/api/core.node.services/-in-memory-network-map-service/max-unacknowledged-updates.html
@@ -0,0 +1,16 @@
+
+
+InMemoryNetworkMapService.maxUnacknowledgedUpdates -
+
+
+
+core.node.services / InMemoryNetworkMapService / 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/core.node.services/-in-memory-network-map-service/nodes.html b/docs/build/html/api/core.node.services/-in-memory-network-map-service/nodes.html
new file mode 100644
index 0000000000..b9dccf1f67
--- /dev/null
+++ b/docs/build/html/api/core.node.services/-in-memory-network-map-service/nodes.html
@@ -0,0 +1,16 @@
+
+
+InMemoryNetworkMapService.nodes -
+
+
+
+core.node.services / InMemoryNetworkMapService / nodes
+
+nodes
+
+val nodes : List < NodeInfo >
+Overrides NetworkMapService.nodes
+
+
+
+
diff --git a/docs/build/html/api/core.node.services/-in-memory-network-map-service/notify-subscribers.html b/docs/build/html/api/core.node.services/-in-memory-network-map-service/notify-subscribers.html
new file mode 100644
index 0000000000..c209b51a2c
--- /dev/null
+++ b/docs/build/html/api/core.node.services/-in-memory-network-map-service/notify-subscribers.html
@@ -0,0 +1,15 @@
+
+
+InMemoryNetworkMapService.notifySubscribers -
+
+
+
+core.node.services / InMemoryNetworkMapService / notifySubscribers
+
+notifySubscribers
+
+fun notifySubscribers ( wireReg : WireNodeRegistration ) : Unit
+
+
+
+
diff --git a/docs/build/html/api/core.node.services/-in-memory-network-map-service/process-acknowledge.html b/docs/build/html/api/core.node.services/-in-memory-network-map-service/process-acknowledge.html
new file mode 100644
index 0000000000..672fdcbe36
--- /dev/null
+++ b/docs/build/html/api/core.node.services/-in-memory-network-map-service/process-acknowledge.html
@@ -0,0 +1,15 @@
+
+
+InMemoryNetworkMapService.processAcknowledge -
+
+
+
+core.node.services / InMemoryNetworkMapService / processAcknowledge
+
+processAcknowledge
+
+fun processAcknowledge ( req : UpdateAcknowledge ) : Unit
+
+
+
+
diff --git a/docs/build/html/api/core.node.services/-in-memory-network-map-service/process-fetch-all-request.html b/docs/build/html/api/core.node.services/-in-memory-network-map-service/process-fetch-all-request.html
new file mode 100644
index 0000000000..232eb5f681
--- /dev/null
+++ b/docs/build/html/api/core.node.services/-in-memory-network-map-service/process-fetch-all-request.html
@@ -0,0 +1,15 @@
+
+
+InMemoryNetworkMapService.processFetchAllRequest -
+
+
+
+core.node.services / InMemoryNetworkMapService / processFetchAllRequest
+
+processFetchAllRequest
+
+fun processFetchAllRequest ( req : FetchMapRequest ) : FetchMapResponse
+
+
+
+
diff --git a/docs/build/html/api/core.node.services/-in-memory-network-map-service/process-query-request.html b/docs/build/html/api/core.node.services/-in-memory-network-map-service/process-query-request.html
new file mode 100644
index 0000000000..4cd4b84eb7
--- /dev/null
+++ b/docs/build/html/api/core.node.services/-in-memory-network-map-service/process-query-request.html
@@ -0,0 +1,15 @@
+
+
+InMemoryNetworkMapService.processQueryRequest -
+
+
+
+core.node.services / InMemoryNetworkMapService / processQueryRequest
+
+processQueryRequest
+
+fun processQueryRequest ( req : QueryIdentityRequest ) : QueryIdentityResponse
+
+
+
+
diff --git a/docs/build/html/api/core.node.services/-in-memory-network-map-service/process-registration-change-request.html b/docs/build/html/api/core.node.services/-in-memory-network-map-service/process-registration-change-request.html
new file mode 100644
index 0000000000..639462f564
--- /dev/null
+++ b/docs/build/html/api/core.node.services/-in-memory-network-map-service/process-registration-change-request.html
@@ -0,0 +1,15 @@
+
+
+InMemoryNetworkMapService.processRegistrationChangeRequest -
+
+
+
+core.node.services / InMemoryNetworkMapService / processRegistrationChangeRequest
+
+processRegistrationChangeRequest
+
+fun processRegistrationChangeRequest ( req : RegistrationRequest ) : RegistrationResponse
+
+
+
+
diff --git a/docs/build/html/api/core.node.services/-in-memory-network-map-service/process-subscription-request.html b/docs/build/html/api/core.node.services/-in-memory-network-map-service/process-subscription-request.html
new file mode 100644
index 0000000000..654d45a0ff
--- /dev/null
+++ b/docs/build/html/api/core.node.services/-in-memory-network-map-service/process-subscription-request.html
@@ -0,0 +1,15 @@
+
+
+InMemoryNetworkMapService.processSubscriptionRequest -
+
+
+
+core.node.services / InMemoryNetworkMapService / processSubscriptionRequest
+
+processSubscriptionRequest
+
+fun processSubscriptionRequest ( req : SubscribeRequest ) : SubscribeResponse
+
+
+
+
diff --git a/docs/build/html/api/core.node.services/-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/core.node.services/-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..091d844167
--- /dev/null
+++ b/docs/build/html/api/core.node.services/-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 -
+
+
+
+core.node.services / NetworkMapService / DEFAULT_EXPIRATION_PERIOD
+
+DEFAULT_EXPIRATION_PERIOD
+
+val DEFAULT_EXPIRATION_PERIOD : Period
+
+
+
+
diff --git a/docs/build/html/api/core.node.services/-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/core.node.services/-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..391e234dbb
--- /dev/null
+++ b/docs/build/html/api/core.node.services/-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 -
+
+
+
+core.node.services / NetworkMapService / FETCH_PROTOCOL_TOPIC
+
+FETCH_PROTOCOL_TOPIC
+
+val FETCH_PROTOCOL_TOPIC : String
+
+
+
+
diff --git a/docs/build/html/api/core.node.services/-network-map-service/-fetch-map-request/-init-.html b/docs/build/html/api/core.node.services/-network-map-service/-fetch-map-request/-init-.html
new file mode 100644
index 0000000000..4ad91d3436
--- /dev/null
+++ b/docs/build/html/api/core.node.services/-network-map-service/-fetch-map-request/-init-.html
@@ -0,0 +1,14 @@
+
+
+NetworkMapService.FetchMapRequest. -
+
+
+
+core.node.services / NetworkMapService / FetchMapRequest / <init>
+
+<init>
+FetchMapRequest ( subscribe : Boolean , ifChangedSinceVersion : Int ? , replyTo : MessageRecipients , sessionID : Long )
+
+
+
+
diff --git a/docs/build/html/api/core.node.services/-network-map-service/-fetch-map-request/if-changed-since-version.html b/docs/build/html/api/core.node.services/-network-map-service/-fetch-map-request/if-changed-since-version.html
new file mode 100644
index 0000000000..f7528cb89c
--- /dev/null
+++ b/docs/build/html/api/core.node.services/-network-map-service/-fetch-map-request/if-changed-since-version.html
@@ -0,0 +1,15 @@
+
+
+NetworkMapService.FetchMapRequest.ifChangedSinceVersion -
+
+
+
+core.node.services / NetworkMapService / FetchMapRequest / ifChangedSinceVersion
+
+ifChangedSinceVersion
+
+val ifChangedSinceVersion : Int ?
+
+
+
+
diff --git a/docs/build/html/api/core.node.services/-network-map-service/-fetch-map-request/index.html b/docs/build/html/api/core.node.services/-network-map-service/-fetch-map-request/index.html
new file mode 100644
index 0000000000..899537d1ba
--- /dev/null
+++ b/docs/build/html/api/core.node.services/-network-map-service/-fetch-map-request/index.html
@@ -0,0 +1,59 @@
+
+
+NetworkMapService.FetchMapRequest -
+
+
+
+core.node.services / NetworkMapService / FetchMapRequest
+
+FetchMapRequest
+class FetchMapRequest : AbstractRequestMessage
+
+
+Constructors
+
+
+
+
+<init>
+
+FetchMapRequest ( subscribe : Boolean , ifChangedSinceVersion : Int ? , replyTo : MessageRecipients , sessionID : Long )
+
+
+
+Properties
+
+Inherited Properties
+
+
+
diff --git a/docs/build/html/api/core.node.services/-network-map-service/-fetch-map-request/subscribe.html b/docs/build/html/api/core.node.services/-network-map-service/-fetch-map-request/subscribe.html
new file mode 100644
index 0000000000..e089589b14
--- /dev/null
+++ b/docs/build/html/api/core.node.services/-network-map-service/-fetch-map-request/subscribe.html
@@ -0,0 +1,15 @@
+
+
+NetworkMapService.FetchMapRequest.subscribe -
+
+
+
+core.node.services / NetworkMapService / FetchMapRequest / subscribe
+
+subscribe
+
+val subscribe : Boolean
+
+
+
+
diff --git a/docs/build/html/api/core.node.services/-network-map-service/-fetch-map-response/-init-.html b/docs/build/html/api/core.node.services/-network-map-service/-fetch-map-response/-init-.html
new file mode 100644
index 0000000000..1195a194a1
--- /dev/null
+++ b/docs/build/html/api/core.node.services/-network-map-service/-fetch-map-response/-init-.html
@@ -0,0 +1,14 @@
+
+
+NetworkMapService.FetchMapResponse. -
+
+
+
+core.node.services / NetworkMapService / FetchMapResponse / <init>
+
+<init>
+FetchMapResponse ( nodes : Collection < NodeRegistration > ? , version : Int )
+
+
+
+
diff --git a/docs/build/html/api/core.node.services/-network-map-service/-fetch-map-response/index.html b/docs/build/html/api/core.node.services/-network-map-service/-fetch-map-response/index.html
new file mode 100644
index 0000000000..e030d8fd47
--- /dev/null
+++ b/docs/build/html/api/core.node.services/-network-map-service/-fetch-map-response/index.html
@@ -0,0 +1,42 @@
+
+
+NetworkMapService.FetchMapResponse -
+
+
+
+core.node.services / NetworkMapService / FetchMapResponse
+
+FetchMapResponse
+data class FetchMapResponse
+
+
+Constructors
+
+Properties
+
+
+
diff --git a/docs/build/html/api/core.node.services/-network-map-service/-fetch-map-response/nodes.html b/docs/build/html/api/core.node.services/-network-map-service/-fetch-map-response/nodes.html
new file mode 100644
index 0000000000..6489556d3b
--- /dev/null
+++ b/docs/build/html/api/core.node.services/-network-map-service/-fetch-map-response/nodes.html
@@ -0,0 +1,15 @@
+
+
+NetworkMapService.FetchMapResponse.nodes -
+
+
+
+core.node.services / NetworkMapService / FetchMapResponse / nodes
+
+nodes
+
+val nodes : Collection < NodeRegistration > ?
+
+
+
+
diff --git a/docs/build/html/api/core.node.services/-network-map-service/-fetch-map-response/version.html b/docs/build/html/api/core.node.services/-network-map-service/-fetch-map-response/version.html
new file mode 100644
index 0000000000..f761a9e2fe
--- /dev/null
+++ b/docs/build/html/api/core.node.services/-network-map-service/-fetch-map-response/version.html
@@ -0,0 +1,15 @@
+
+
+NetworkMapService.FetchMapResponse.version -
+
+
+
+core.node.services / NetworkMapService / FetchMapResponse / version
+
+version
+
+val version : Int
+
+
+
+
diff --git a/docs/build/html/api/core.node.services/-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/core.node.services/-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..d1d1a0e2de
--- /dev/null
+++ b/docs/build/html/api/core.node.services/-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 -
+
+
+
+core.node.services / NetworkMapService / PUSH_ACK_PROTOCOL_TOPIC
+
+PUSH_ACK_PROTOCOL_TOPIC
+
+val PUSH_ACK_PROTOCOL_TOPIC : String
+
+
+
+
diff --git a/docs/build/html/api/core.node.services/-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/core.node.services/-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..eda1965be4
--- /dev/null
+++ b/docs/build/html/api/core.node.services/-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 -
+
+
+
+core.node.services / NetworkMapService / PUSH_PROTOCOL_TOPIC
+
+PUSH_PROTOCOL_TOPIC
+
+val PUSH_PROTOCOL_TOPIC : String
+
+
+
+
diff --git a/docs/build/html/api/core.node.services/-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/core.node.services/-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..7b2fe0fa87
--- /dev/null
+++ b/docs/build/html/api/core.node.services/-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 -
+
+
+
+core.node.services / NetworkMapService / QUERY_PROTOCOL_TOPIC
+
+QUERY_PROTOCOL_TOPIC
+
+val QUERY_PROTOCOL_TOPIC : String
+
+
+
+
diff --git a/docs/build/html/api/core.node.services/-network-map-service/-query-identity-request/-init-.html b/docs/build/html/api/core.node.services/-network-map-service/-query-identity-request/-init-.html
new file mode 100644
index 0000000000..0674016254
--- /dev/null
+++ b/docs/build/html/api/core.node.services/-network-map-service/-query-identity-request/-init-.html
@@ -0,0 +1,14 @@
+
+
+NetworkMapService.QueryIdentityRequest. -
+
+
+
+core.node.services / NetworkMapService / QueryIdentityRequest / <init>
+
+<init>
+QueryIdentityRequest ( identity : Party , replyTo : MessageRecipients , sessionID : Long )
+
+
+
+
diff --git a/docs/build/html/api/core.node.services/-network-map-service/-query-identity-request/identity.html b/docs/build/html/api/core.node.services/-network-map-service/-query-identity-request/identity.html
new file mode 100644
index 0000000000..888dd05cdd
--- /dev/null
+++ b/docs/build/html/api/core.node.services/-network-map-service/-query-identity-request/identity.html
@@ -0,0 +1,15 @@
+
+
+NetworkMapService.QueryIdentityRequest.identity -
+
+
+
+core.node.services / NetworkMapService / QueryIdentityRequest / identity
+
+identity
+
+val identity : Party
+
+
+
+
diff --git a/docs/build/html/api/core.node.services/-network-map-service/-query-identity-request/index.html b/docs/build/html/api/core.node.services/-network-map-service/-query-identity-request/index.html
new file mode 100644
index 0000000000..2dfb1685a6
--- /dev/null
+++ b/docs/build/html/api/core.node.services/-network-map-service/-query-identity-request/index.html
@@ -0,0 +1,53 @@
+
+
+NetworkMapService.QueryIdentityRequest -
+
+
+
+core.node.services / NetworkMapService / QueryIdentityRequest
+
+QueryIdentityRequest
+class QueryIdentityRequest : AbstractRequestMessage
+
+
+Constructors
+
+Properties
+
+Inherited Properties
+
+
+
diff --git a/docs/build/html/api/core.node.services/-network-map-service/-query-identity-response/-init-.html b/docs/build/html/api/core.node.services/-network-map-service/-query-identity-response/-init-.html
new file mode 100644
index 0000000000..38680a0759
--- /dev/null
+++ b/docs/build/html/api/core.node.services/-network-map-service/-query-identity-response/-init-.html
@@ -0,0 +1,14 @@
+
+
+NetworkMapService.QueryIdentityResponse. -
+
+
+
+core.node.services / NetworkMapService / QueryIdentityResponse / <init>
+
+<init>
+QueryIdentityResponse ( node : NodeInfo ? )
+
+
+
+
diff --git a/docs/build/html/api/core.node.services/-network-map-service/-query-identity-response/index.html b/docs/build/html/api/core.node.services/-network-map-service/-query-identity-response/index.html
new file mode 100644
index 0000000000..de092cf79c
--- /dev/null
+++ b/docs/build/html/api/core.node.services/-network-map-service/-query-identity-response/index.html
@@ -0,0 +1,36 @@
+
+
+NetworkMapService.QueryIdentityResponse -
+
+
+
+core.node.services / NetworkMapService / QueryIdentityResponse
+
+QueryIdentityResponse
+data class QueryIdentityResponse
+
+
+Constructors
+
+Properties
+
+
+
diff --git a/docs/build/html/api/core.node.services/-network-map-service/-query-identity-response/node.html b/docs/build/html/api/core.node.services/-network-map-service/-query-identity-response/node.html
new file mode 100644
index 0000000000..3512d24d27
--- /dev/null
+++ b/docs/build/html/api/core.node.services/-network-map-service/-query-identity-response/node.html
@@ -0,0 +1,15 @@
+
+
+NetworkMapService.QueryIdentityResponse.node -
+
+
+
+core.node.services / NetworkMapService / QueryIdentityResponse / node
+
+node
+
+val node : NodeInfo ?
+
+
+
+
diff --git a/docs/build/html/api/core.node.services/-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/core.node.services/-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..c56cf4fec9
--- /dev/null
+++ b/docs/build/html/api/core.node.services/-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 -
+
+
+
+core.node.services / NetworkMapService / REGISTER_PROTOCOL_TOPIC
+
+REGISTER_PROTOCOL_TOPIC
+
+val REGISTER_PROTOCOL_TOPIC : String
+
+
+
+
diff --git a/docs/build/html/api/core.node.services/-network-map-service/-registration-request/-init-.html b/docs/build/html/api/core.node.services/-network-map-service/-registration-request/-init-.html
new file mode 100644
index 0000000000..eced992064
--- /dev/null
+++ b/docs/build/html/api/core.node.services/-network-map-service/-registration-request/-init-.html
@@ -0,0 +1,14 @@
+
+
+NetworkMapService.RegistrationRequest. -
+
+
+
+core.node.services / NetworkMapService / RegistrationRequest / <init>
+
+<init>
+RegistrationRequest ( wireReg : WireNodeRegistration , replyTo : MessageRecipients , sessionID : Long )
+
+
+
+
diff --git a/docs/build/html/api/core.node.services/-network-map-service/-registration-request/index.html b/docs/build/html/api/core.node.services/-network-map-service/-registration-request/index.html
new file mode 100644
index 0000000000..36f43ae538
--- /dev/null
+++ b/docs/build/html/api/core.node.services/-network-map-service/-registration-request/index.html
@@ -0,0 +1,53 @@
+
+
+NetworkMapService.RegistrationRequest -
+
+
+
+core.node.services / NetworkMapService / RegistrationRequest
+
+RegistrationRequest
+class RegistrationRequest : AbstractRequestMessage
+
+
+Constructors
+
+Properties
+
+Inherited Properties
+
+
+
diff --git a/docs/build/html/api/core.node.services/-network-map-service/-registration-request/wire-reg.html b/docs/build/html/api/core.node.services/-network-map-service/-registration-request/wire-reg.html
new file mode 100644
index 0000000000..d9be6ddb4e
--- /dev/null
+++ b/docs/build/html/api/core.node.services/-network-map-service/-registration-request/wire-reg.html
@@ -0,0 +1,15 @@
+
+
+NetworkMapService.RegistrationRequest.wireReg -
+
+
+
+core.node.services / NetworkMapService / RegistrationRequest / wireReg
+
+wireReg
+
+val wireReg : WireNodeRegistration
+
+
+
+
diff --git a/docs/build/html/api/core.node.services/-network-map-service/-registration-response/-init-.html b/docs/build/html/api/core.node.services/-network-map-service/-registration-response/-init-.html
new file mode 100644
index 0000000000..5cc33c6fec
--- /dev/null
+++ b/docs/build/html/api/core.node.services/-network-map-service/-registration-response/-init-.html
@@ -0,0 +1,14 @@
+
+
+NetworkMapService.RegistrationResponse. -
+
+
+
+core.node.services / NetworkMapService / RegistrationResponse / <init>
+
+<init>
+RegistrationResponse ( success : Boolean )
+
+
+
+
diff --git a/docs/build/html/api/core.node.services/-network-map-service/-registration-response/index.html b/docs/build/html/api/core.node.services/-network-map-service/-registration-response/index.html
new file mode 100644
index 0000000000..346cb979f8
--- /dev/null
+++ b/docs/build/html/api/core.node.services/-network-map-service/-registration-response/index.html
@@ -0,0 +1,36 @@
+
+
+NetworkMapService.RegistrationResponse -
+
+
+
+core.node.services / NetworkMapService / RegistrationResponse
+
+RegistrationResponse
+data class RegistrationResponse
+
+
+Constructors
+
+
+
+
+<init>
+
+RegistrationResponse ( success : Boolean )
+
+
+
+Properties
+
+
+
+
+success
+
+val success : Boolean
+
+
+
+
+
diff --git a/docs/build/html/api/core.node.services/-network-map-service/-registration-response/success.html b/docs/build/html/api/core.node.services/-network-map-service/-registration-response/success.html
new file mode 100644
index 0000000000..76e186bc00
--- /dev/null
+++ b/docs/build/html/api/core.node.services/-network-map-service/-registration-response/success.html
@@ -0,0 +1,15 @@
+
+
+NetworkMapService.RegistrationResponse.success -
+
+
+
+core.node.services / NetworkMapService / RegistrationResponse / success
+
+success
+
+val success : Boolean
+
+
+
+
diff --git a/docs/build/html/api/core.node.services/-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/core.node.services/-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..b947cd97c1
--- /dev/null
+++ b/docs/build/html/api/core.node.services/-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 -
+
+
+
+core.node.services / NetworkMapService / SUBSCRIPTION_PROTOCOL_TOPIC
+
+SUBSCRIPTION_PROTOCOL_TOPIC
+
+val SUBSCRIPTION_PROTOCOL_TOPIC : String
+
+
+
+
diff --git a/docs/build/html/api/core.node.services/-network-map-service/-subscribe-request/-init-.html b/docs/build/html/api/core.node.services/-network-map-service/-subscribe-request/-init-.html
new file mode 100644
index 0000000000..cf51439727
--- /dev/null
+++ b/docs/build/html/api/core.node.services/-network-map-service/-subscribe-request/-init-.html
@@ -0,0 +1,14 @@
+
+
+NetworkMapService.SubscribeRequest. -
+
+
+
+core.node.services / NetworkMapService / SubscribeRequest / <init>
+
+<init>
+SubscribeRequest ( subscribe : Boolean , replyTo : MessageRecipients , sessionID : Long )
+
+
+
+
diff --git a/docs/build/html/api/core.node.services/-network-map-service/-subscribe-request/index.html b/docs/build/html/api/core.node.services/-network-map-service/-subscribe-request/index.html
new file mode 100644
index 0000000000..01f1916a65
--- /dev/null
+++ b/docs/build/html/api/core.node.services/-network-map-service/-subscribe-request/index.html
@@ -0,0 +1,53 @@
+
+
+NetworkMapService.SubscribeRequest -
+
+
+
+core.node.services / NetworkMapService / SubscribeRequest
+
+SubscribeRequest
+class SubscribeRequest : AbstractRequestMessage
+
+
+Constructors
+
+Properties
+
+
+
+
+subscribe
+
+val subscribe : Boolean
+
+
+
+Inherited Properties
+
+
+
diff --git a/docs/build/html/api/core.node.services/-network-map-service/-subscribe-request/subscribe.html b/docs/build/html/api/core.node.services/-network-map-service/-subscribe-request/subscribe.html
new file mode 100644
index 0000000000..4870d74d68
--- /dev/null
+++ b/docs/build/html/api/core.node.services/-network-map-service/-subscribe-request/subscribe.html
@@ -0,0 +1,15 @@
+
+
+NetworkMapService.SubscribeRequest.subscribe -
+
+
+
+core.node.services / NetworkMapService / SubscribeRequest / subscribe
+
+subscribe
+
+val subscribe : Boolean
+
+
+
+
diff --git a/docs/build/html/api/core.node.services/-network-map-service/-subscribe-response/-init-.html b/docs/build/html/api/core.node.services/-network-map-service/-subscribe-response/-init-.html
new file mode 100644
index 0000000000..a12c534bc7
--- /dev/null
+++ b/docs/build/html/api/core.node.services/-network-map-service/-subscribe-response/-init-.html
@@ -0,0 +1,14 @@
+
+
+NetworkMapService.SubscribeResponse. -
+
+
+
+core.node.services / NetworkMapService / SubscribeResponse / <init>
+
+<init>
+SubscribeResponse ( confirmed : Boolean )
+
+
+
+
diff --git a/docs/build/html/api/core.node.services/-network-map-service/-subscribe-response/confirmed.html b/docs/build/html/api/core.node.services/-network-map-service/-subscribe-response/confirmed.html
new file mode 100644
index 0000000000..3642ae5ed1
--- /dev/null
+++ b/docs/build/html/api/core.node.services/-network-map-service/-subscribe-response/confirmed.html
@@ -0,0 +1,15 @@
+
+
+NetworkMapService.SubscribeResponse.confirmed -
+
+
+
+core.node.services / NetworkMapService / SubscribeResponse / confirmed
+
+confirmed
+
+val confirmed : Boolean
+
+
+
+
diff --git a/docs/build/html/api/core.node.services/-network-map-service/-subscribe-response/index.html b/docs/build/html/api/core.node.services/-network-map-service/-subscribe-response/index.html
new file mode 100644
index 0000000000..7f03db7a23
--- /dev/null
+++ b/docs/build/html/api/core.node.services/-network-map-service/-subscribe-response/index.html
@@ -0,0 +1,36 @@
+
+
+NetworkMapService.SubscribeResponse -
+
+
+
+core.node.services / NetworkMapService / SubscribeResponse
+
+SubscribeResponse
+data class SubscribeResponse
+
+
+Constructors
+
+
+
+
+<init>
+
+SubscribeResponse ( confirmed : Boolean )
+
+
+
+Properties
+
+
+
+
+confirmed
+
+val confirmed : Boolean
+
+
+
+
+
diff --git a/docs/build/html/api/core.node.services/-network-map-service/-type.html b/docs/build/html/api/core.node.services/-network-map-service/-type.html
new file mode 100644
index 0000000000..733d39c608
--- /dev/null
+++ b/docs/build/html/api/core.node.services/-network-map-service/-type.html
@@ -0,0 +1,48 @@
+
+
+NetworkMapService.Type -
+
+
+
+core.node.services / NetworkMapService / Type
+
+Type
+object Type : ServiceType
+
+
+Inherited Properties
+
+
+
+
+id
+
+val id : String
+
+
+
+Inherited Functions
+
+
+
+
+equals
+
+open operator fun equals ( other : Any ? ) : Boolean
+
+
+
+hashCode
+
+open fun hashCode ( ) : Int
+
+
+
+toString
+
+open fun toString ( ) : String
+
+
+
+
+
diff --git a/docs/build/html/api/core.node.services/-network-map-service/-update-acknowledge/-init-.html b/docs/build/html/api/core.node.services/-network-map-service/-update-acknowledge/-init-.html
new file mode 100644
index 0000000000..7266d08e30
--- /dev/null
+++ b/docs/build/html/api/core.node.services/-network-map-service/-update-acknowledge/-init-.html
@@ -0,0 +1,14 @@
+
+
+NetworkMapService.UpdateAcknowledge. -
+
+
+
+core.node.services / NetworkMapService / UpdateAcknowledge / <init>
+
+<init>
+UpdateAcknowledge ( wireRegHash : SecureHash , replyTo : MessageRecipients )
+
+
+
+
diff --git a/docs/build/html/api/core.node.services/-network-map-service/-update-acknowledge/index.html b/docs/build/html/api/core.node.services/-network-map-service/-update-acknowledge/index.html
new file mode 100644
index 0000000000..a9c7bfac8c
--- /dev/null
+++ b/docs/build/html/api/core.node.services/-network-map-service/-update-acknowledge/index.html
@@ -0,0 +1,42 @@
+
+
+NetworkMapService.UpdateAcknowledge -
+
+
+
+core.node.services / NetworkMapService / UpdateAcknowledge
+
+UpdateAcknowledge
+data class UpdateAcknowledge
+
+
+Constructors
+
+Properties
+
+
+
diff --git a/docs/build/html/api/core.node.services/-network-map-service/-update-acknowledge/reply-to.html b/docs/build/html/api/core.node.services/-network-map-service/-update-acknowledge/reply-to.html
new file mode 100644
index 0000000000..3e386e36cd
--- /dev/null
+++ b/docs/build/html/api/core.node.services/-network-map-service/-update-acknowledge/reply-to.html
@@ -0,0 +1,15 @@
+
+
+NetworkMapService.UpdateAcknowledge.replyTo -
+
+
+
+core.node.services / NetworkMapService / UpdateAcknowledge / replyTo
+
+replyTo
+
+val replyTo : MessageRecipients
+
+
+
+
diff --git a/docs/build/html/api/core.node.services/-network-map-service/-update-acknowledge/wire-reg-hash.html b/docs/build/html/api/core.node.services/-network-map-service/-update-acknowledge/wire-reg-hash.html
new file mode 100644
index 0000000000..acd9ac5e84
--- /dev/null
+++ b/docs/build/html/api/core.node.services/-network-map-service/-update-acknowledge/wire-reg-hash.html
@@ -0,0 +1,15 @@
+
+
+NetworkMapService.UpdateAcknowledge.wireRegHash -
+
+
+
+core.node.services / NetworkMapService / UpdateAcknowledge / wireRegHash
+
+wireRegHash
+
+val wireRegHash : SecureHash
+
+
+
+
diff --git a/docs/build/html/api/core.node.services/-network-map-service/-update/-init-.html b/docs/build/html/api/core.node.services/-network-map-service/-update/-init-.html
new file mode 100644
index 0000000000..f270f1ab90
--- /dev/null
+++ b/docs/build/html/api/core.node.services/-network-map-service/-update/-init-.html
@@ -0,0 +1,14 @@
+
+
+NetworkMapService.Update. -
+
+
+
+core.node.services / NetworkMapService / Update / <init>
+
+<init>
+Update ( wireReg : WireNodeRegistration , replyTo : MessageRecipients )
+
+
+
+
diff --git a/docs/build/html/api/core.node.services/-network-map-service/-update/index.html b/docs/build/html/api/core.node.services/-network-map-service/-update/index.html
new file mode 100644
index 0000000000..1e5476571c
--- /dev/null
+++ b/docs/build/html/api/core.node.services/-network-map-service/-update/index.html
@@ -0,0 +1,42 @@
+
+
+NetworkMapService.Update -
+
+
+
+core.node.services / NetworkMapService / Update
+
+Update
+data class Update
+
+
+Constructors
+
+Properties
+
+
+
diff --git a/docs/build/html/api/core.node.services/-network-map-service/-update/reply-to.html b/docs/build/html/api/core.node.services/-network-map-service/-update/reply-to.html
new file mode 100644
index 0000000000..d508d11149
--- /dev/null
+++ b/docs/build/html/api/core.node.services/-network-map-service/-update/reply-to.html
@@ -0,0 +1,15 @@
+
+
+NetworkMapService.Update.replyTo -
+
+
+
+core.node.services / NetworkMapService / Update / replyTo
+
+replyTo
+
+val replyTo : MessageRecipients
+
+
+
+
diff --git a/docs/build/html/api/core.node.services/-network-map-service/-update/wire-reg.html b/docs/build/html/api/core.node.services/-network-map-service/-update/wire-reg.html
new file mode 100644
index 0000000000..9dc209c6e7
--- /dev/null
+++ b/docs/build/html/api/core.node.services/-network-map-service/-update/wire-reg.html
@@ -0,0 +1,15 @@
+
+
+NetworkMapService.Update.wireReg -
+
+
+
+core.node.services / NetworkMapService / Update / wireReg
+
+wireReg
+
+val wireReg : WireNodeRegistration
+
+
+
+
diff --git a/docs/build/html/api/core.node.services/-network-map-service/index.html b/docs/build/html/api/core.node.services/-network-map-service/index.html
new file mode 100644
index 0000000000..0618740191
--- /dev/null
+++ b/docs/build/html/api/core.node.services/-network-map-service/index.html
@@ -0,0 +1,164 @@
+
+
+NetworkMapService -
+
+
+
+core.node.services / 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
+
+
+
diff --git a/docs/build/html/api/core.node.services/-network-map-service/logger.html b/docs/build/html/api/core.node.services/-network-map-service/logger.html
new file mode 100644
index 0000000000..5e5a95482e
--- /dev/null
+++ b/docs/build/html/api/core.node.services/-network-map-service/logger.html
@@ -0,0 +1,15 @@
+
+
+NetworkMapService.logger -
+
+
+
+core.node.services / NetworkMapService / logger
+
+logger
+
+val logger : <ERROR CLASS>
+
+
+
+
diff --git a/docs/build/html/api/core.node.services/-network-map-service/nodes.html b/docs/build/html/api/core.node.services/-network-map-service/nodes.html
new file mode 100644
index 0000000000..b911ca67bf
--- /dev/null
+++ b/docs/build/html/api/core.node.services/-network-map-service/nodes.html
@@ -0,0 +1,15 @@
+
+
+NetworkMapService.nodes -
+
+
+
+core.node.services / NetworkMapService / nodes
+
+nodes
+
+abstract val nodes : List < NodeInfo >
+
+
+
+
diff --git a/docs/build/html/api/core.node.services/-node-attachment-service/-init-.html b/docs/build/html/api/core.node.services/-node-attachment-service/-init-.html
new file mode 100644
index 0000000000..c1a6280724
--- /dev/null
+++ b/docs/build/html/api/core.node.services/-node-attachment-service/-init-.html
@@ -0,0 +1,15 @@
+
+
+NodeAttachmentService. -
+
+
+
+core.node.services / 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/core.node.services/-node-attachment-service/-on-disk-hash-mismatch/-init-.html b/docs/build/html/api/core.node.services/-node-attachment-service/-on-disk-hash-mismatch/-init-.html
new file mode 100644
index 0000000000..ac35735919
--- /dev/null
+++ b/docs/build/html/api/core.node.services/-node-attachment-service/-on-disk-hash-mismatch/-init-.html
@@ -0,0 +1,14 @@
+
+
+NodeAttachmentService.OnDiskHashMismatch. -
+
+
+
+core.node.services / NodeAttachmentService / OnDiskHashMismatch / <init>
+
+<init>
+OnDiskHashMismatch ( file : Path , actual : SecureHash )
+
+
+
+
diff --git a/docs/build/html/api/core.node.services/-node-attachment-service/-on-disk-hash-mismatch/actual.html b/docs/build/html/api/core.node.services/-node-attachment-service/-on-disk-hash-mismatch/actual.html
new file mode 100644
index 0000000000..cdf98db116
--- /dev/null
+++ b/docs/build/html/api/core.node.services/-node-attachment-service/-on-disk-hash-mismatch/actual.html
@@ -0,0 +1,15 @@
+
+
+NodeAttachmentService.OnDiskHashMismatch.actual -
+
+
+
+core.node.services / NodeAttachmentService / OnDiskHashMismatch / actual
+
+actual
+
+val actual : SecureHash
+
+
+
+
diff --git a/docs/build/html/api/core.node.services/-node-attachment-service/-on-disk-hash-mismatch/file.html b/docs/build/html/api/core.node.services/-node-attachment-service/-on-disk-hash-mismatch/file.html
new file mode 100644
index 0000000000..91ef8e9d8f
--- /dev/null
+++ b/docs/build/html/api/core.node.services/-node-attachment-service/-on-disk-hash-mismatch/file.html
@@ -0,0 +1,15 @@
+
+
+NodeAttachmentService.OnDiskHashMismatch.file -
+
+
+
+core.node.services / NodeAttachmentService / OnDiskHashMismatch / file
+
+file
+
+val file : Path
+
+
+
+
diff --git a/docs/build/html/api/core.node.services/-node-attachment-service/-on-disk-hash-mismatch/index.html b/docs/build/html/api/core.node.services/-node-attachment-service/-on-disk-hash-mismatch/index.html
new file mode 100644
index 0000000000..d4f8830675
--- /dev/null
+++ b/docs/build/html/api/core.node.services/-node-attachment-service/-on-disk-hash-mismatch/index.html
@@ -0,0 +1,53 @@
+
+
+NodeAttachmentService.OnDiskHashMismatch -
+
+
+
+core.node.services / NodeAttachmentService / OnDiskHashMismatch
+
+OnDiskHashMismatch
+class OnDiskHashMismatch : Exception
+
+
+Constructors
+
+Properties
+
+Functions
+
+
+
+
+toString
+
+fun toString ( ) : String
+
+
+
+
+
diff --git a/docs/build/html/api/core.node.services/-node-attachment-service/-on-disk-hash-mismatch/to-string.html b/docs/build/html/api/core.node.services/-node-attachment-service/-on-disk-hash-mismatch/to-string.html
new file mode 100644
index 0000000000..1216e5b38a
--- /dev/null
+++ b/docs/build/html/api/core.node.services/-node-attachment-service/-on-disk-hash-mismatch/to-string.html
@@ -0,0 +1,15 @@
+
+
+NodeAttachmentService.OnDiskHashMismatch.toString -
+
+
+
+core.node.services / NodeAttachmentService / OnDiskHashMismatch / toString
+
+toString
+
+fun toString ( ) : String
+
+
+
+
diff --git a/docs/build/html/api/core.node.services/-node-attachment-service/acceptable-file-extensions.html b/docs/build/html/api/core.node.services/-node-attachment-service/acceptable-file-extensions.html
new file mode 100644
index 0000000000..5f3df00398
--- /dev/null
+++ b/docs/build/html/api/core.node.services/-node-attachment-service/acceptable-file-extensions.html
@@ -0,0 +1,17 @@
+
+
+NodeAttachmentService.acceptableFileExtensions -
+
+
+
+core.node.services / 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/core.node.services/-node-attachment-service/automatically-extract-attachments.html b/docs/build/html/api/core.node.services/-node-attachment-service/automatically-extract-attachments.html
new file mode 100644
index 0000000000..e54d99170d
--- /dev/null
+++ b/docs/build/html/api/core.node.services/-node-attachment-service/automatically-extract-attachments.html
@@ -0,0 +1,18 @@
+
+
+NodeAttachmentService.automaticallyExtractAttachments -
+
+
+
+core.node.services / 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/core.node.services/-node-attachment-service/check-attachments-on-load.html b/docs/build/html/api/core.node.services/-node-attachment-service/check-attachments-on-load.html
new file mode 100644
index 0000000000..0b2e54365a
--- /dev/null
+++ b/docs/build/html/api/core.node.services/-node-attachment-service/check-attachments-on-load.html
@@ -0,0 +1,15 @@
+
+
+NodeAttachmentService.checkAttachmentsOnLoad -
+
+
+
+core.node.services / NodeAttachmentService / checkAttachmentsOnLoad
+
+checkAttachmentsOnLoad
+
+var checkAttachmentsOnLoad : Boolean
+
+
+
+
diff --git a/docs/build/html/api/core.node.services/-node-attachment-service/data-type-prefix.html b/docs/build/html/api/core.node.services/-node-attachment-service/data-type-prefix.html
new file mode 100644
index 0000000000..fe164f99d9
--- /dev/null
+++ b/docs/build/html/api/core.node.services/-node-attachment-service/data-type-prefix.html
@@ -0,0 +1,17 @@
+
+
+NodeAttachmentService.dataTypePrefix -
+
+
+
+core.node.services / 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/core.node.services/-node-attachment-service/import-attachment.html b/docs/build/html/api/core.node.services/-node-attachment-service/import-attachment.html
new file mode 100644
index 0000000000..68c1d0b6e4
--- /dev/null
+++ b/docs/build/html/api/core.node.services/-node-attachment-service/import-attachment.html
@@ -0,0 +1,31 @@
+
+
+NodeAttachmentService.importAttachment -
+
+
+
+core.node.services / 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/core.node.services/-node-attachment-service/index.html b/docs/build/html/api/core.node.services/-node-attachment-service/index.html
new file mode 100644
index 0000000000..67e5aec8a6
--- /dev/null
+++ b/docs/build/html/api/core.node.services/-node-attachment-service/index.html
@@ -0,0 +1,115 @@
+
+
+NodeAttachmentService -
+
+
+
+core.node.services / 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.
+
+
+
+
+metrics
+
+val metrics : <ERROR CLASS>
+
+
+
+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 newly opened stream for the given locally stored attachment, or null if no such attachment is known.
+The returned stream must be closed when you are done with it to avoid resource leaks. You should probably wrap
+the result in a JarInputStream unless youre sending it somewhere, there is a convenience helper for this
+on Attachment .
+
+
+
+
+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/core.node.services/-node-attachment-service/metrics.html b/docs/build/html/api/core.node.services/-node-attachment-service/metrics.html
new file mode 100644
index 0000000000..30fa055874
--- /dev/null
+++ b/docs/build/html/api/core.node.services/-node-attachment-service/metrics.html
@@ -0,0 +1,15 @@
+
+
+NodeAttachmentService.metrics -
+
+
+
+core.node.services / NodeAttachmentService / metrics
+
+metrics
+
+val metrics : <ERROR CLASS>
+
+
+
+
diff --git a/docs/build/html/api/core.node.services/-node-attachment-service/open-attachment.html b/docs/build/html/api/core.node.services/-node-attachment-service/open-attachment.html
new file mode 100644
index 0000000000..49c09d80e1
--- /dev/null
+++ b/docs/build/html/api/core.node.services/-node-attachment-service/open-attachment.html
@@ -0,0 +1,20 @@
+
+
+NodeAttachmentService.openAttachment -
+
+
+
+core.node.services / NodeAttachmentService / openAttachment
+
+openAttachment
+
+fun openAttachment ( id : SecureHash ) : Attachment ?
+Overrides AttachmentStorage.openAttachment
+Returns a newly opened stream for the given locally stored attachment, or null if no such attachment is known.
+The returned stream must be closed when you are done with it to avoid resource leaks. You should probably wrap
+the result in a JarInputStream unless youre sending it somewhere, there is a convenience helper for this
+on Attachment .
+
+
+
+
diff --git a/docs/build/html/api/core.node.services/-node-attachment-service/store-path.html b/docs/build/html/api/core.node.services/-node-attachment-service/store-path.html
new file mode 100644
index 0000000000..65acbfe05d
--- /dev/null
+++ b/docs/build/html/api/core.node.services/-node-attachment-service/store-path.html
@@ -0,0 +1,15 @@
+
+
+NodeAttachmentService.storePath -
+
+
+
+core.node.services / NodeAttachmentService / storePath
+
+storePath
+
+val storePath : Path
+
+
+
+
diff --git a/docs/build/html/api/core.node.services/-node-attachment-service/upload.html b/docs/build/html/api/core.node.services/-node-attachment-service/upload.html
new file mode 100644
index 0000000000..ef56ff01a4
--- /dev/null
+++ b/docs/build/html/api/core.node.services/-node-attachment-service/upload.html
@@ -0,0 +1,18 @@
+
+
+NodeAttachmentService.upload -
+
+
+
+core.node.services / 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/core.node.services/-node-interest-rates/-fix-container/-init-.html b/docs/build/html/api/core.node.services/-node-interest-rates/-fix-container/-init-.html
new file mode 100644
index 0000000000..36f92e1c38
--- /dev/null
+++ b/docs/build/html/api/core.node.services/-node-interest-rates/-fix-container/-init-.html
@@ -0,0 +1,15 @@
+
+
+NodeInterestRates.FixContainer. -
+
+
+
+core.node.services / NodeInterestRates / FixContainer / <init>
+
+<init>
+FixContainer ( fixes : List < Fix > , factory : InterpolatorFactory = CubicSplineInterpolator.Factory)
+Fix container, for every fix name & date pair stores a tenor to interest rate map - InterpolatingRateMap
+
+
+
+
diff --git a/docs/build/html/api/core.node.services/-node-interest-rates/-fix-container/factory.html b/docs/build/html/api/core.node.services/-node-interest-rates/-fix-container/factory.html
new file mode 100644
index 0000000000..5d497810ae
--- /dev/null
+++ b/docs/build/html/api/core.node.services/-node-interest-rates/-fix-container/factory.html
@@ -0,0 +1,15 @@
+
+
+NodeInterestRates.FixContainer.factory -
+
+
+
+core.node.services / NodeInterestRates / FixContainer / factory
+
+factory
+
+val factory : InterpolatorFactory
+
+
+
+
diff --git a/docs/build/html/api/core.node.services/-node-interest-rates/-fix-container/fixes.html b/docs/build/html/api/core.node.services/-node-interest-rates/-fix-container/fixes.html
new file mode 100644
index 0000000000..19a56e864b
--- /dev/null
+++ b/docs/build/html/api/core.node.services/-node-interest-rates/-fix-container/fixes.html
@@ -0,0 +1,15 @@
+
+
+NodeInterestRates.FixContainer.fixes -
+
+
+
+core.node.services / NodeInterestRates / FixContainer / fixes
+
+fixes
+
+val fixes : List < Fix >
+
+
+
+
diff --git a/docs/build/html/api/core.node.services/-node-interest-rates/-fix-container/get.html b/docs/build/html/api/core.node.services/-node-interest-rates/-fix-container/get.html
new file mode 100644
index 0000000000..b7272a3790
--- /dev/null
+++ b/docs/build/html/api/core.node.services/-node-interest-rates/-fix-container/get.html
@@ -0,0 +1,15 @@
+
+
+NodeInterestRates.FixContainer.get -
+
+
+
+core.node.services / NodeInterestRates / FixContainer / get
+
+get
+
+operator fun get ( fixOf : FixOf ) : Fix ?
+
+
+
+
diff --git a/docs/build/html/api/core.node.services/-node-interest-rates/-fix-container/index.html b/docs/build/html/api/core.node.services/-node-interest-rates/-fix-container/index.html
new file mode 100644
index 0000000000..ea478236e2
--- /dev/null
+++ b/docs/build/html/api/core.node.services/-node-interest-rates/-fix-container/index.html
@@ -0,0 +1,61 @@
+
+
+NodeInterestRates.FixContainer -
+
+
+
+core.node.services / NodeInterestRates / FixContainer
+
+FixContainer
+class FixContainer
+Fix container, for every fix name & date pair stores a tenor to interest rate map - InterpolatingRateMap
+
+
+Constructors
+
+Properties
+
+Functions
+
+
+
+
+get
+
+operator fun get ( fixOf : FixOf ) : Fix ?
+
+
+
+
+
diff --git a/docs/build/html/api/core.node.services/-node-interest-rates/-fix-container/size.html b/docs/build/html/api/core.node.services/-node-interest-rates/-fix-container/size.html
new file mode 100644
index 0000000000..f26be8ea5e
--- /dev/null
+++ b/docs/build/html/api/core.node.services/-node-interest-rates/-fix-container/size.html
@@ -0,0 +1,15 @@
+
+
+NodeInterestRates.FixContainer.size -
+
+
+
+core.node.services / NodeInterestRates / FixContainer / size
+
+size
+
+val size : Int
+
+
+
+
diff --git a/docs/build/html/api/core.node.services/-node-interest-rates/-interpolating-rate-map/-init-.html b/docs/build/html/api/core.node.services/-node-interest-rates/-interpolating-rate-map/-init-.html
new file mode 100644
index 0000000000..7cd5d20fb9
--- /dev/null
+++ b/docs/build/html/api/core.node.services/-node-interest-rates/-interpolating-rate-map/-init-.html
@@ -0,0 +1,16 @@
+
+
+NodeInterestRates.InterpolatingRateMap. -
+
+
+
+core.node.services / NodeInterestRates / InterpolatingRateMap / <init>
+
+<init>
+InterpolatingRateMap ( date : LocalDate , inputRates : Map < Tenor , BigDecimal > , calendar : BusinessCalendar , factory : InterpolatorFactory )
+Stores a mapping between tenors and interest rates.
+Interpolates missing values using the provided interpolation mechanism.
+
+
+
+
diff --git a/docs/build/html/api/core.node.services/-node-interest-rates/-interpolating-rate-map/calendar.html b/docs/build/html/api/core.node.services/-node-interest-rates/-interpolating-rate-map/calendar.html
new file mode 100644
index 0000000000..ea24e81ff8
--- /dev/null
+++ b/docs/build/html/api/core.node.services/-node-interest-rates/-interpolating-rate-map/calendar.html
@@ -0,0 +1,15 @@
+
+
+NodeInterestRates.InterpolatingRateMap.calendar -
+
+
+
+core.node.services / NodeInterestRates / InterpolatingRateMap / calendar
+
+calendar
+
+val calendar : BusinessCalendar
+
+
+
+
diff --git a/docs/build/html/api/core.node.services/-node-interest-rates/-interpolating-rate-map/date.html b/docs/build/html/api/core.node.services/-node-interest-rates/-interpolating-rate-map/date.html
new file mode 100644
index 0000000000..14e7b74392
--- /dev/null
+++ b/docs/build/html/api/core.node.services/-node-interest-rates/-interpolating-rate-map/date.html
@@ -0,0 +1,15 @@
+
+
+NodeInterestRates.InterpolatingRateMap.date -
+
+
+
+core.node.services / NodeInterestRates / InterpolatingRateMap / date
+
+date
+
+val date : LocalDate
+
+
+
+
diff --git a/docs/build/html/api/core.node.services/-node-interest-rates/-interpolating-rate-map/factory.html b/docs/build/html/api/core.node.services/-node-interest-rates/-interpolating-rate-map/factory.html
new file mode 100644
index 0000000000..19dba977cf
--- /dev/null
+++ b/docs/build/html/api/core.node.services/-node-interest-rates/-interpolating-rate-map/factory.html
@@ -0,0 +1,15 @@
+
+
+NodeInterestRates.InterpolatingRateMap.factory -
+
+
+
+core.node.services / NodeInterestRates / InterpolatingRateMap / factory
+
+factory
+
+val factory : InterpolatorFactory
+
+
+
+
diff --git a/docs/build/html/api/core.node.services/-node-interest-rates/-interpolating-rate-map/get-rate.html b/docs/build/html/api/core.node.services/-node-interest-rates/-interpolating-rate-map/get-rate.html
new file mode 100644
index 0000000000..33de60f5f1
--- /dev/null
+++ b/docs/build/html/api/core.node.services/-node-interest-rates/-interpolating-rate-map/get-rate.html
@@ -0,0 +1,17 @@
+
+
+NodeInterestRates.InterpolatingRateMap.getRate -
+
+
+
+core.node.services / NodeInterestRates / InterpolatingRateMap / getRate
+
+getRate
+
+fun getRate ( tenor : Tenor ) : BigDecimal ?
+Returns the interest rate for a given Tenor ,
+or null if the rate is not found and cannot be interpolated
+
+
+
+
diff --git a/docs/build/html/api/core.node.services/-node-interest-rates/-interpolating-rate-map/index.html b/docs/build/html/api/core.node.services/-node-interest-rates/-interpolating-rate-map/index.html
new file mode 100644
index 0000000000..6bb224fe5e
--- /dev/null
+++ b/docs/build/html/api/core.node.services/-node-interest-rates/-interpolating-rate-map/index.html
@@ -0,0 +1,78 @@
+
+
+NodeInterestRates.InterpolatingRateMap -
+
+
+
+core.node.services / NodeInterestRates / InterpolatingRateMap
+
+InterpolatingRateMap
+class InterpolatingRateMap
+Stores a mapping between tenors and interest rates.
+Interpolates missing values using the provided interpolation mechanism.
+
+
+Constructors
+
+Properties
+
+Functions
+
+
+
+
+getRate
+
+fun getRate ( tenor : Tenor ) : BigDecimal ?
Returns the interest rate for a given Tenor ,
+or null if the rate is not found and cannot be interpolated
+
+
+
+
+
+
diff --git a/docs/build/html/api/core.node.services/-node-interest-rates/-interpolating-rate-map/input-rates.html b/docs/build/html/api/core.node.services/-node-interest-rates/-interpolating-rate-map/input-rates.html
new file mode 100644
index 0000000000..8baa420cc3
--- /dev/null
+++ b/docs/build/html/api/core.node.services/-node-interest-rates/-interpolating-rate-map/input-rates.html
@@ -0,0 +1,15 @@
+
+
+NodeInterestRates.InterpolatingRateMap.inputRates -
+
+
+
+core.node.services / NodeInterestRates / InterpolatingRateMap / inputRates
+
+inputRates
+
+val inputRates : Map < Tenor , BigDecimal >
+
+
+
+
diff --git a/docs/build/html/api/core.node.services/-node-interest-rates/-interpolating-rate-map/size.html b/docs/build/html/api/core.node.services/-node-interest-rates/-interpolating-rate-map/size.html
new file mode 100644
index 0000000000..a888263ea5
--- /dev/null
+++ b/docs/build/html/api/core.node.services/-node-interest-rates/-interpolating-rate-map/size.html
@@ -0,0 +1,16 @@
+
+
+NodeInterestRates.InterpolatingRateMap.size -
+
+
+
+core.node.services / NodeInterestRates / InterpolatingRateMap / size
+
+size
+
+val size : Int
+Number of rates excluding the interpolated ones
+
+
+
+
diff --git a/docs/build/html/api/core.node.services/-node-interest-rates/-oracle/-init-.html b/docs/build/html/api/core.node.services/-node-interest-rates/-oracle/-init-.html
new file mode 100644
index 0000000000..3150ff3822
--- /dev/null
+++ b/docs/build/html/api/core.node.services/-node-interest-rates/-oracle/-init-.html
@@ -0,0 +1,18 @@
+
+
+NodeInterestRates.Oracle. -
+
+
+
+core.node.services / NodeInterestRates / Oracle / <init>
+
+<init>
+Oracle ( identity : Party , signingKey : KeyPair )
+An implementation of an interest rate fix oracle which is given data in a simple string format.
+The oracle will try to interpolate the missing value of a tenor for the given fix name and date.
+
+
+
+
+
+
diff --git a/docs/build/html/api/core.node.services/-node-interest-rates/-oracle/identity.html b/docs/build/html/api/core.node.services/-node-interest-rates/-oracle/identity.html
new file mode 100644
index 0000000000..6ddbc6627c
--- /dev/null
+++ b/docs/build/html/api/core.node.services/-node-interest-rates/-oracle/identity.html
@@ -0,0 +1,15 @@
+
+
+NodeInterestRates.Oracle.identity -
+
+
+
+core.node.services / NodeInterestRates / Oracle / identity
+
+identity
+
+val identity : Party
+
+
+
+
diff --git a/docs/build/html/api/core.node.services/-node-interest-rates/-oracle/index.html b/docs/build/html/api/core.node.services/-node-interest-rates/-oracle/index.html
new file mode 100644
index 0000000000..6dda32a4fb
--- /dev/null
+++ b/docs/build/html/api/core.node.services/-node-interest-rates/-oracle/index.html
@@ -0,0 +1,64 @@
+
+
+NodeInterestRates.Oracle -
+
+
+
+core.node.services / NodeInterestRates / Oracle
+
+Oracle
+class Oracle
+An implementation of an interest rate fix oracle which is given data in a simple string format.
+The oracle will try to interpolate the missing value of a tenor for the given fix name and date.
+
+
+
+
+Constructors
+
+
+
+
+<init>
+
+Oracle ( identity : Party , signingKey : KeyPair )
An implementation of an interest rate fix oracle which is given data in a simple string format.
+
+
+
+
+Properties
+
+Functions
+
+
+
diff --git a/docs/build/html/api/core.node.services/-node-interest-rates/-oracle/known-fixes.html b/docs/build/html/api/core.node.services/-node-interest-rates/-oracle/known-fixes.html
new file mode 100644
index 0000000000..8b47da7570
--- /dev/null
+++ b/docs/build/html/api/core.node.services/-node-interest-rates/-oracle/known-fixes.html
@@ -0,0 +1,15 @@
+
+
+NodeInterestRates.Oracle.knownFixes -
+
+
+
+core.node.services / NodeInterestRates / Oracle / knownFixes
+
+knownFixes
+
+var knownFixes : FixContainer
+
+
+
+
diff --git a/docs/build/html/api/core.node.services/-node-interest-rates/-oracle/query.html b/docs/build/html/api/core.node.services/-node-interest-rates/-oracle/query.html
new file mode 100644
index 0000000000..792c9726c5
--- /dev/null
+++ b/docs/build/html/api/core.node.services/-node-interest-rates/-oracle/query.html
@@ -0,0 +1,15 @@
+
+
+NodeInterestRates.Oracle.query -
+
+
+
+core.node.services / NodeInterestRates / Oracle / query
+
+query
+
+fun query ( queries : List < FixOf > ) : List < Fix >
+
+
+
+
diff --git a/docs/build/html/api/core.node.services/-node-interest-rates/-oracle/sign.html b/docs/build/html/api/core.node.services/-node-interest-rates/-oracle/sign.html
new file mode 100644
index 0000000000..f031c1ec55
--- /dev/null
+++ b/docs/build/html/api/core.node.services/-node-interest-rates/-oracle/sign.html
@@ -0,0 +1,15 @@
+
+
+NodeInterestRates.Oracle.sign -
+
+
+
+core.node.services / NodeInterestRates / Oracle / sign
+
+sign
+
+fun sign ( wtx : WireTransaction ) : LegallyIdentifiable
+
+
+
+
diff --git a/docs/build/html/api/core.node.services/-node-interest-rates/-service/-init-.html b/docs/build/html/api/core.node.services/-node-interest-rates/-service/-init-.html
new file mode 100644
index 0000000000..541268f247
--- /dev/null
+++ b/docs/build/html/api/core.node.services/-node-interest-rates/-service/-init-.html
@@ -0,0 +1,15 @@
+
+
+NodeInterestRates.Service. -
+
+
+
+core.node.services / NodeInterestRates / Service / <init>
+
+<init>
+Service ( node : AbstractNode )
+The Service that wraps Oracle and handles messages/network interaction/request scrubbing.
+
+
+
+
diff --git a/docs/build/html/api/core.node.services/-node-interest-rates/-service/acceptable-file-extensions.html b/docs/build/html/api/core.node.services/-node-interest-rates/-service/acceptable-file-extensions.html
new file mode 100644
index 0000000000..482cb21589
--- /dev/null
+++ b/docs/build/html/api/core.node.services/-node-interest-rates/-service/acceptable-file-extensions.html
@@ -0,0 +1,17 @@
+
+
+NodeInterestRates.Service.acceptableFileExtensions -
+
+
+
+core.node.services / NodeInterestRates / Service / 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/core.node.services/-node-interest-rates/-service/data-type-prefix.html b/docs/build/html/api/core.node.services/-node-interest-rates/-service/data-type-prefix.html
new file mode 100644
index 0000000000..7b6a55cd35
--- /dev/null
+++ b/docs/build/html/api/core.node.services/-node-interest-rates/-service/data-type-prefix.html
@@ -0,0 +1,17 @@
+
+
+NodeInterestRates.Service.dataTypePrefix -
+
+
+
+core.node.services / NodeInterestRates / Service / 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/core.node.services/-node-interest-rates/-service/index.html b/docs/build/html/api/core.node.services/-node-interest-rates/-service/index.html
new file mode 100644
index 0000000000..5a509a9296
--- /dev/null
+++ b/docs/build/html/api/core.node.services/-node-interest-rates/-service/index.html
@@ -0,0 +1,97 @@
+
+
+NodeInterestRates.Service -
+
+
+
+core.node.services / NodeInterestRates / Service
+
+Service
+class Service : AcceptsFileUpload , AbstractNodeService
+The Service that wraps Oracle and handles messages/network interaction/request scrubbing.
+
+
+Constructors
+
+
+
+
+<init>
+
+Service ( node : AbstractNode )
The Service that wraps Oracle and handles messages/network interaction/request scrubbing.
+
+
+
+
+Properties
+
+
+
+
+acceptableFileExtensions
+
+val acceptableFileExtensions : <ERROR CLASS>
What file extensions are acceptable for the file to be handed to upload()
+
+
+
+
+dataTypePrefix
+
+val dataTypePrefix : String
A string that prefixes the URLs, e.g. "attachments" or "interest-rates". Should be OK for URLs.
+
+
+
+
+oracle
+
+val oracle : Oracle
+
+
+
+ss
+
+val ss : StorageService
+
+
+
+Inherited Properties
+
+Functions
+
+
+
+
+upload
+
+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.
+
+
+
+
+Inherited Functions
+
+
+
+
+addMessageHandler
+
+fun < Q : AbstractRequestMessage , R : Any > addMessageHandler ( topic : String , handler : ( Q ) -> R , exceptionConsumer : ( Message , Exception ) -> Unit ) : Unit
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.
+fun < Q : AbstractRequestMessage , R : Any > addMessageHandler ( topic : String , handler : ( Q ) -> R ) : Unit
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.
+
+
+
+
+
+
diff --git a/docs/build/html/api/core.node.services/-node-interest-rates/-service/oracle.html b/docs/build/html/api/core.node.services/-node-interest-rates/-service/oracle.html
new file mode 100644
index 0000000000..28a4984ba4
--- /dev/null
+++ b/docs/build/html/api/core.node.services/-node-interest-rates/-service/oracle.html
@@ -0,0 +1,15 @@
+
+
+NodeInterestRates.Service.oracle -
+
+
+
+core.node.services / NodeInterestRates / Service / oracle
+
+oracle
+
+val oracle : Oracle
+
+
+
+
diff --git a/docs/build/html/api/core.node.services/-node-interest-rates/-service/ss.html b/docs/build/html/api/core.node.services/-node-interest-rates/-service/ss.html
new file mode 100644
index 0000000000..ea231a1e30
--- /dev/null
+++ b/docs/build/html/api/core.node.services/-node-interest-rates/-service/ss.html
@@ -0,0 +1,15 @@
+
+
+NodeInterestRates.Service.ss -
+
+
+
+core.node.services / NodeInterestRates / Service / ss
+
+ss
+
+val ss : StorageService
+
+
+
+
diff --git a/docs/build/html/api/core.node.services/-node-interest-rates/-service/upload.html b/docs/build/html/api/core.node.services/-node-interest-rates/-service/upload.html
new file mode 100644
index 0000000000..ff8c7d9459
--- /dev/null
+++ b/docs/build/html/api/core.node.services/-node-interest-rates/-service/upload.html
@@ -0,0 +1,18 @@
+
+
+NodeInterestRates.Service.upload -
+
+
+
+core.node.services / NodeInterestRates / Service / upload
+
+upload
+
+fun upload ( data : InputStream ) : String
+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/core.node.services/-node-interest-rates/-type.html b/docs/build/html/api/core.node.services/-node-interest-rates/-type.html
new file mode 100644
index 0000000000..8ba277424c
--- /dev/null
+++ b/docs/build/html/api/core.node.services/-node-interest-rates/-type.html
@@ -0,0 +1,48 @@
+
+
+NodeInterestRates.Type -
+
+
+
+core.node.services / NodeInterestRates / Type
+
+Type
+object Type : ServiceType
+
+
+Inherited Properties
+
+
+
+
+id
+
+val id : String
+
+
+
+Inherited Functions
+
+
+
+
+equals
+
+open operator fun equals ( other : Any ? ) : Boolean
+
+
+
+hashCode
+
+open fun hashCode ( ) : Int
+
+
+
+toString
+
+open fun toString ( ) : String
+
+
+
+
+
diff --git a/docs/build/html/api/core.node.services/-node-interest-rates/-unknown-fix/-init-.html b/docs/build/html/api/core.node.services/-node-interest-rates/-unknown-fix/-init-.html
new file mode 100644
index 0000000000..f1327796f5
--- /dev/null
+++ b/docs/build/html/api/core.node.services/-node-interest-rates/-unknown-fix/-init-.html
@@ -0,0 +1,14 @@
+
+
+NodeInterestRates.UnknownFix. -
+
+
+
+core.node.services / NodeInterestRates / UnknownFix / <init>
+
+<init>
+UnknownFix ( fix : FixOf )
+
+
+
+
diff --git a/docs/build/html/api/core.node.services/-node-interest-rates/-unknown-fix/fix.html b/docs/build/html/api/core.node.services/-node-interest-rates/-unknown-fix/fix.html
new file mode 100644
index 0000000000..98f7bde4a9
--- /dev/null
+++ b/docs/build/html/api/core.node.services/-node-interest-rates/-unknown-fix/fix.html
@@ -0,0 +1,15 @@
+
+
+NodeInterestRates.UnknownFix.fix -
+
+
+
+core.node.services / NodeInterestRates / UnknownFix / fix
+
+fix
+
+val fix : FixOf
+
+
+
+
diff --git a/docs/build/html/api/core.node.services/-node-interest-rates/-unknown-fix/index.html b/docs/build/html/api/core.node.services/-node-interest-rates/-unknown-fix/index.html
new file mode 100644
index 0000000000..cf1db518d6
--- /dev/null
+++ b/docs/build/html/api/core.node.services/-node-interest-rates/-unknown-fix/index.html
@@ -0,0 +1,47 @@
+
+
+NodeInterestRates.UnknownFix -
+
+
+
+core.node.services / NodeInterestRates / UnknownFix
+
+UnknownFix
+class UnknownFix : Exception
+
+
+Constructors
+
+Properties
+
+Functions
+
+
+
+
+toString
+
+fun toString ( ) : String
+
+
+
+
+
diff --git a/docs/build/html/api/core.node.services/-node-interest-rates/-unknown-fix/to-string.html b/docs/build/html/api/core.node.services/-node-interest-rates/-unknown-fix/to-string.html
new file mode 100644
index 0000000000..1d8e06a529
--- /dev/null
+++ b/docs/build/html/api/core.node.services/-node-interest-rates/-unknown-fix/to-string.html
@@ -0,0 +1,15 @@
+
+
+NodeInterestRates.UnknownFix.toString -
+
+
+
+core.node.services / NodeInterestRates / UnknownFix / toString
+
+toString
+
+fun toString ( ) : String
+
+
+
+
diff --git a/docs/build/html/api/core.node.services/-node-interest-rates/index.html b/docs/build/html/api/core.node.services/-node-interest-rates/index.html
new file mode 100644
index 0000000000..7186f8db56
--- /dev/null
+++ b/docs/build/html/api/core.node.services/-node-interest-rates/index.html
@@ -0,0 +1,99 @@
+
+
+NodeInterestRates -
+
+
+
+core.node.services / NodeInterestRates
+
+NodeInterestRates
+object NodeInterestRates
+An interest rates service is an oracle that signs transactions which contain embedded assertions about an interest
+rate fix (e.g. LIBOR, EURIBOR ...).
+The oracle has two functions. It can be queried for a fix for the given day. And it can sign a transaction that
+includes a fix that it finds acceptable. So to use it you would query the oracle, incorporate its answer into the
+transaction you are building, and then (after possibly extra steps) hand the final transaction back to the oracle
+for signing.
+
+
+
+
+Types
+
+
+
+
+FixContainer
+
+class FixContainer
Fix container, for every fix name & date pair stores a tenor to interest rate map - InterpolatingRateMap
+
+
+
+
+InterpolatingRateMap
+
+class InterpolatingRateMap
Stores a mapping between tenors and interest rates.
+Interpolates missing values using the provided interpolation mechanism.
+
+
+
+
+Oracle
+
+class Oracle
An implementation of an interest rate fix oracle which is given data in a simple string format.
+
+
+
+
+Service
+
+class Service : AcceptsFileUpload , AbstractNodeService
The Service that wraps Oracle and handles messages/network interaction/request scrubbing.
+
+
+
+
+Type
+
+object Type : ServiceType
+
+
+
+Exceptions
+
+Functions
+
+
+
+
+parseFile
+
+fun parseFile ( s : String ) : FixContainer
Parses lines containing fixes
+
+
+
+
+parseFix
+
+fun parseFix ( s : String ) : Fix
Parses a string of the form "LIBOR 16-March-2016 1M = 0.678" into a Fix
+
+
+
+
+parseFixOf
+
+fun parseFixOf ( key : String ) : FixOf
Parses a string of the form "LIBOR 16-March-2016 1M" into a FixOf
+
+
+
+
+
+
diff --git a/docs/build/html/api/core.node.services/-node-interest-rates/parse-file.html b/docs/build/html/api/core.node.services/-node-interest-rates/parse-file.html
new file mode 100644
index 0000000000..16e2ba9040
--- /dev/null
+++ b/docs/build/html/api/core.node.services/-node-interest-rates/parse-file.html
@@ -0,0 +1,16 @@
+
+
+NodeInterestRates.parseFile -
+
+
+
+core.node.services / NodeInterestRates / parseFile
+
+parseFile
+
+fun parseFile ( s : String ) : FixContainer
+Parses lines containing fixes
+
+
+
+
diff --git a/docs/build/html/api/core.node.services/-node-interest-rates/parse-fix-of.html b/docs/build/html/api/core.node.services/-node-interest-rates/parse-fix-of.html
new file mode 100644
index 0000000000..cb71e8a137
--- /dev/null
+++ b/docs/build/html/api/core.node.services/-node-interest-rates/parse-fix-of.html
@@ -0,0 +1,16 @@
+
+
+NodeInterestRates.parseFixOf -
+
+
+
+core.node.services / NodeInterestRates / parseFixOf
+
+parseFixOf
+
+fun parseFixOf ( key : String ) : FixOf
+Parses a string of the form "LIBOR 16-March-2016 1M" into a FixOf
+
+
+
+
diff --git a/docs/build/html/api/core.node.services/-node-interest-rates/parse-fix.html b/docs/build/html/api/core.node.services/-node-interest-rates/parse-fix.html
new file mode 100644
index 0000000000..a33d1e8df4
--- /dev/null
+++ b/docs/build/html/api/core.node.services/-node-interest-rates/parse-fix.html
@@ -0,0 +1,16 @@
+
+
+NodeInterestRates.parseFix -
+
+
+
+core.node.services / NodeInterestRates / parseFix
+
+parseFix
+
+fun parseFix ( s : String ) : Fix
+Parses a string of the form "LIBOR 16-March-2016 1M = 0.678" into a Fix
+
+
+
+
diff --git a/docs/build/html/api/core.node.services/-node-map-error/-invalid-signature/-init-.html b/docs/build/html/api/core.node.services/-node-map-error/-invalid-signature/-init-.html
new file mode 100644
index 0000000000..4c73d33fad
--- /dev/null
+++ b/docs/build/html/api/core.node.services/-node-map-error/-invalid-signature/-init-.html
@@ -0,0 +1,15 @@
+
+
+NodeMapError.InvalidSignature. -
+
+
+
+core.node.services / 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/core.node.services/-node-map-error/-invalid-signature/index.html b/docs/build/html/api/core.node.services/-node-map-error/-invalid-signature/index.html
new file mode 100644
index 0000000000..911017cf6a
--- /dev/null
+++ b/docs/build/html/api/core.node.services/-node-map-error/-invalid-signature/index.html
@@ -0,0 +1,27 @@
+
+
+NodeMapError.InvalidSignature -
+
+
+
+core.node.services / 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/core.node.services/-node-map-error/-invalid-subscriber/-init-.html b/docs/build/html/api/core.node.services/-node-map-error/-invalid-subscriber/-init-.html
new file mode 100644
index 0000000000..ffc7351983
--- /dev/null
+++ b/docs/build/html/api/core.node.services/-node-map-error/-invalid-subscriber/-init-.html
@@ -0,0 +1,15 @@
+
+
+NodeMapError.InvalidSubscriber. -
+
+
+
+core.node.services / 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/core.node.services/-node-map-error/-invalid-subscriber/index.html b/docs/build/html/api/core.node.services/-node-map-error/-invalid-subscriber/index.html
new file mode 100644
index 0000000000..c9c8e6b87e
--- /dev/null
+++ b/docs/build/html/api/core.node.services/-node-map-error/-invalid-subscriber/index.html
@@ -0,0 +1,27 @@
+
+
+NodeMapError.InvalidSubscriber -
+
+
+
+core.node.services / 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/core.node.services/-node-map-error/-unknown-change-type/-init-.html b/docs/build/html/api/core.node.services/-node-map-error/-unknown-change-type/-init-.html
new file mode 100644
index 0000000000..928a9415ac
--- /dev/null
+++ b/docs/build/html/api/core.node.services/-node-map-error/-unknown-change-type/-init-.html
@@ -0,0 +1,15 @@
+
+
+NodeMapError.UnknownChangeType. -
+
+
+
+core.node.services / NodeMapError / UnknownChangeType / <init>
+
+<init>
+UnknownChangeType ( )
+Thrown if a change arrives which is of an unknown type
+
+
+
+
diff --git a/docs/build/html/api/core.node.services/-node-map-error/-unknown-change-type/index.html b/docs/build/html/api/core.node.services/-node-map-error/-unknown-change-type/index.html
new file mode 100644
index 0000000000..28d590f577
--- /dev/null
+++ b/docs/build/html/api/core.node.services/-node-map-error/-unknown-change-type/index.html
@@ -0,0 +1,27 @@
+
+
+NodeMapError.UnknownChangeType -
+
+
+
+core.node.services / 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/core.node.services/-node-map-error/index.html b/docs/build/html/api/core.node.services/-node-map-error/index.html
new file mode 100644
index 0000000000..b5f26491d9
--- /dev/null
+++ b/docs/build/html/api/core.node.services/-node-map-error/index.html
@@ -0,0 +1,66 @@
+
+
+NodeMapError -
+
+
+
+core.node.services / 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
+
+
+
+
+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/core.node.services/-node-registration/-init-.html b/docs/build/html/api/core.node.services/-node-registration/-init-.html
new file mode 100644
index 0000000000..5b5fde8852
--- /dev/null
+++ b/docs/build/html/api/core.node.services/-node-registration/-init-.html
@@ -0,0 +1,30 @@
+
+
+NodeRegistration. -
+
+
+
+core.node.services / 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/core.node.services/-node-registration/expires.html b/docs/build/html/api/core.node.services/-node-registration/expires.html
new file mode 100644
index 0000000000..6c369e0eca
--- /dev/null
+++ b/docs/build/html/api/core.node.services/-node-registration/expires.html
@@ -0,0 +1,15 @@
+
+
+NodeRegistration.expires -
+
+
+
+core.node.services / NodeRegistration / expires
+
+expires
+
+var expires : Instant
+
+
+
+
diff --git a/docs/build/html/api/core.node.services/-node-registration/index.html b/docs/build/html/api/core.node.services/-node-registration/index.html
new file mode 100644
index 0000000000..004a92612f
--- /dev/null
+++ b/docs/build/html/api/core.node.services/-node-registration/index.html
@@ -0,0 +1,89 @@
+
+
+NodeRegistration -
+
+
+
+core.node.services / 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/core.node.services/-node-registration/node.html b/docs/build/html/api/core.node.services/-node-registration/node.html
new file mode 100644
index 0000000000..492077f462
--- /dev/null
+++ b/docs/build/html/api/core.node.services/-node-registration/node.html
@@ -0,0 +1,15 @@
+
+
+NodeRegistration.node -
+
+
+
+core.node.services / NodeRegistration / node
+
+node
+
+val node : NodeInfo
+
+
+
+
diff --git a/docs/build/html/api/core.node.services/-node-registration/serial.html b/docs/build/html/api/core.node.services/-node-registration/serial.html
new file mode 100644
index 0000000000..dd048ae4bf
--- /dev/null
+++ b/docs/build/html/api/core.node.services/-node-registration/serial.html
@@ -0,0 +1,15 @@
+
+
+NodeRegistration.serial -
+
+
+
+core.node.services / NodeRegistration / serial
+
+serial
+
+val serial : Long
+
+
+
+
diff --git a/docs/build/html/api/core.node.services/-node-registration/to-string.html b/docs/build/html/api/core.node.services/-node-registration/to-string.html
new file mode 100644
index 0000000000..9233eb4fe6
--- /dev/null
+++ b/docs/build/html/api/core.node.services/-node-registration/to-string.html
@@ -0,0 +1,15 @@
+
+
+NodeRegistration.toString -
+
+
+
+core.node.services / NodeRegistration / toString
+
+toString
+
+fun toString ( ) : String
+
+
+
+
diff --git a/docs/build/html/api/core.node.services/-node-registration/to-wire.html b/docs/build/html/api/core.node.services/-node-registration/to-wire.html
new file mode 100644
index 0000000000..1dfa75aaff
--- /dev/null
+++ b/docs/build/html/api/core.node.services/-node-registration/to-wire.html
@@ -0,0 +1,16 @@
+
+
+NodeRegistration.toWire -
+
+
+
+core.node.services / NodeRegistration / toWire
+
+toWire
+
+fun toWire ( privateKey : PrivateKey ) : WireNodeRegistration
+Build a node registration in wire format.
+
+
+
+
diff --git a/docs/build/html/api/core.node.services/-node-registration/type.html b/docs/build/html/api/core.node.services/-node-registration/type.html
new file mode 100644
index 0000000000..a22fbc05af
--- /dev/null
+++ b/docs/build/html/api/core.node.services/-node-registration/type.html
@@ -0,0 +1,15 @@
+
+
+NodeRegistration.type -
+
+
+
+core.node.services / NodeRegistration / type
+
+type
+
+val type : AddOrRemove
+
+
+
+
diff --git a/docs/build/html/api/core.node.services/-node-timestamper-service/-init-.html b/docs/build/html/api/core.node.services/-node-timestamper-service/-init-.html
new file mode 100644
index 0000000000..070a1e8ce8
--- /dev/null
+++ b/docs/build/html/api/core.node.services/-node-timestamper-service/-init-.html
@@ -0,0 +1,19 @@
+
+
+NodeTimestamperService. -
+
+
+
+core.node.services / NodeTimestamperService / <init>
+
+<init>
+NodeTimestamperService ( net : MessagingService , identity : Party , signingKey : KeyPair , clock : Clock = Clock.systemDefaultZone(), tolerance : Duration = 30.seconds)
+This class implements the server side of the timestamping protocol, using the local clock. A future version might
+add features like checking against other NTP servers to make sure the clock hasnt drifted by too much.
+See the doc site to learn more about timestamping authorities (nodes) and the role they play in the data model.
+
+
+
+
+
+
diff --git a/docs/build/html/api/core.node.services/-node-timestamper-service/-t-i-m-e-s-t-a-m-p-i-n-g_-p-r-o-t-o-c-o-l_-t-o-p-i-c.html b/docs/build/html/api/core.node.services/-node-timestamper-service/-t-i-m-e-s-t-a-m-p-i-n-g_-p-r-o-t-o-c-o-l_-t-o-p-i-c.html
new file mode 100644
index 0000000000..ab2ea04343
--- /dev/null
+++ b/docs/build/html/api/core.node.services/-node-timestamper-service/-t-i-m-e-s-t-a-m-p-i-n-g_-p-r-o-t-o-c-o-l_-t-o-p-i-c.html
@@ -0,0 +1,15 @@
+
+
+NodeTimestamperService.TIMESTAMPING_PROTOCOL_TOPIC -
+
+
+
+core.node.services / NodeTimestamperService / TIMESTAMPING_PROTOCOL_TOPIC
+
+TIMESTAMPING_PROTOCOL_TOPIC
+
+val TIMESTAMPING_PROTOCOL_TOPIC : String
+
+
+
+
diff --git a/docs/build/html/api/core.node.services/-node-timestamper-service/clock.html b/docs/build/html/api/core.node.services/-node-timestamper-service/clock.html
new file mode 100644
index 0000000000..90caf5fdef
--- /dev/null
+++ b/docs/build/html/api/core.node.services/-node-timestamper-service/clock.html
@@ -0,0 +1,15 @@
+
+
+NodeTimestamperService.clock -
+
+
+
+core.node.services / NodeTimestamperService / clock
+
+clock
+
+val clock : Clock
+
+
+
+
diff --git a/docs/build/html/api/core.node.services/-node-timestamper-service/identity.html b/docs/build/html/api/core.node.services/-node-timestamper-service/identity.html
new file mode 100644
index 0000000000..13403b5f2a
--- /dev/null
+++ b/docs/build/html/api/core.node.services/-node-timestamper-service/identity.html
@@ -0,0 +1,15 @@
+
+
+NodeTimestamperService.identity -
+
+
+
+core.node.services / NodeTimestamperService / identity
+
+identity
+
+val identity : Party
+
+
+
+
diff --git a/docs/build/html/api/core.node.services/-node-timestamper-service/index.html b/docs/build/html/api/core.node.services/-node-timestamper-service/index.html
new file mode 100644
index 0000000000..6b2d3b8d50
--- /dev/null
+++ b/docs/build/html/api/core.node.services/-node-timestamper-service/index.html
@@ -0,0 +1,109 @@
+
+
+NodeTimestamperService -
+
+
+
+core.node.services / NodeTimestamperService
+
+NodeTimestamperService
+class NodeTimestamperService : AbstractNodeService
+This class implements the server side of the timestamping protocol, using the local clock. A future version might
+add features like checking against other NTP servers to make sure the clock hasnt drifted by too much.
+See the doc site to learn more about timestamping authorities (nodes) and the role they play in the data model.
+
+
+
+
+Constructors
+
+
+
+
+<init>
+
+NodeTimestamperService ( net : MessagingService , identity : Party , signingKey : KeyPair , clock : Clock = Clock.systemDefaultZone(), tolerance : Duration = 30.seconds)
This class implements the server side of the timestamping protocol, using the local clock. A future version might
+add features like checking against other NTP servers to make sure the clock hasnt drifted by too much.
+
+
+
+
+Properties
+
+Inherited Properties
+
+Functions
+
+Inherited Functions
+
+
+
+
+addMessageHandler
+
+fun < Q : AbstractRequestMessage , R : Any > addMessageHandler ( topic : String , handler : ( Q ) -> R , exceptionConsumer : ( Message , Exception ) -> Unit ) : Unit
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.
+fun < Q : AbstractRequestMessage , R : Any > addMessageHandler ( topic : String , handler : ( Q ) -> R ) : Unit
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.
+
+
+
+
+Companion Object Properties
+
+
+
diff --git a/docs/build/html/api/core.node.services/-node-timestamper-service/process-request.html b/docs/build/html/api/core.node.services/-node-timestamper-service/process-request.html
new file mode 100644
index 0000000000..e88ea19d2c
--- /dev/null
+++ b/docs/build/html/api/core.node.services/-node-timestamper-service/process-request.html
@@ -0,0 +1,15 @@
+
+
+NodeTimestamperService.processRequest -
+
+
+
+core.node.services / NodeTimestamperService / processRequest
+
+processRequest
+
+fun processRequest ( req : Request ) : LegallyIdentifiable
+
+
+
+
diff --git a/docs/build/html/api/core.node.services/-node-timestamper-service/signing-key.html b/docs/build/html/api/core.node.services/-node-timestamper-service/signing-key.html
new file mode 100644
index 0000000000..4dca551458
--- /dev/null
+++ b/docs/build/html/api/core.node.services/-node-timestamper-service/signing-key.html
@@ -0,0 +1,15 @@
+
+
+NodeTimestamperService.signingKey -
+
+
+
+core.node.services / NodeTimestamperService / signingKey
+
+signingKey
+
+val signingKey : KeyPair
+
+
+
+
diff --git a/docs/build/html/api/core.node.services/-node-timestamper-service/tolerance.html b/docs/build/html/api/core.node.services/-node-timestamper-service/tolerance.html
new file mode 100644
index 0000000000..11ba2cde5e
--- /dev/null
+++ b/docs/build/html/api/core.node.services/-node-timestamper-service/tolerance.html
@@ -0,0 +1,15 @@
+
+
+NodeTimestamperService.tolerance -
+
+
+
+core.node.services / NodeTimestamperService / tolerance
+
+tolerance
+
+val tolerance : Duration
+
+
+
+
diff --git a/docs/build/html/api/core.node.services/-regulator-service/-type.html b/docs/build/html/api/core.node.services/-regulator-service/-type.html
new file mode 100644
index 0000000000..17695f4c63
--- /dev/null
+++ b/docs/build/html/api/core.node.services/-regulator-service/-type.html
@@ -0,0 +1,48 @@
+
+
+RegulatorService.Type -
+
+
+
+core.node.services / RegulatorService / Type
+
+Type
+object Type : ServiceType
+
+
+Inherited Properties
+
+
+
+
+id
+
+val id : String
+
+
+
+Inherited Functions
+
+
+
+
+equals
+
+open operator fun equals ( other : Any ? ) : Boolean
+
+
+
+hashCode
+
+open fun hashCode ( ) : Int
+
+
+
+toString
+
+open fun toString ( ) : String
+
+
+
+
+
diff --git a/docs/build/html/api/core.node.services/-regulator-service/index.html b/docs/build/html/api/core.node.services/-regulator-service/index.html
new file mode 100644
index 0000000000..477a89d9df
--- /dev/null
+++ b/docs/build/html/api/core.node.services/-regulator-service/index.html
@@ -0,0 +1,26 @@
+
+
+RegulatorService -
+
+
+
+core.node.services / RegulatorService
+
+RegulatorService
+interface RegulatorService
+Placeholder interface for regulator services.
+
+
+Types
+
+
+
diff --git a/docs/build/html/api/core.node.services/-service-type/-init-.html b/docs/build/html/api/core.node.services/-service-type/-init-.html
new file mode 100644
index 0000000000..c6d4c90769
--- /dev/null
+++ b/docs/build/html/api/core.node.services/-service-type/-init-.html
@@ -0,0 +1,17 @@
+
+
+ServiceType. -
+
+
+
+core.node.services / ServiceType / <init>
+
+<init>
+ServiceType ( id : String )
+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.
+
+
+
+
diff --git a/docs/build/html/api/core.node.services/-service-type/equals.html b/docs/build/html/api/core.node.services/-service-type/equals.html
new file mode 100644
index 0000000000..4b40097252
--- /dev/null
+++ b/docs/build/html/api/core.node.services/-service-type/equals.html
@@ -0,0 +1,15 @@
+
+
+ServiceType.equals -
+
+
+
+core.node.services / ServiceType / equals
+
+equals
+
+open operator fun equals ( other : Any ? ) : Boolean
+
+
+
+
diff --git a/docs/build/html/api/core.node.services/-service-type/hash-code.html b/docs/build/html/api/core.node.services/-service-type/hash-code.html
new file mode 100644
index 0000000000..73d55851e3
--- /dev/null
+++ b/docs/build/html/api/core.node.services/-service-type/hash-code.html
@@ -0,0 +1,15 @@
+
+
+ServiceType.hashCode -
+
+
+
+core.node.services / ServiceType / hashCode
+
+hashCode
+
+open fun hashCode ( ) : Int
+
+
+
+
diff --git a/docs/build/html/api/core.node.services/-service-type/id.html b/docs/build/html/api/core.node.services/-service-type/id.html
new file mode 100644
index 0000000000..6a3b5a5870
--- /dev/null
+++ b/docs/build/html/api/core.node.services/-service-type/id.html
@@ -0,0 +1,15 @@
+
+
+ServiceType.id -
+
+
+
+core.node.services / ServiceType / id
+
+id
+
+val id : String
+
+
+
+
diff --git a/docs/build/html/api/core.node.services/-service-type/index.html b/docs/build/html/api/core.node.services/-service-type/index.html
new file mode 100644
index 0000000000..392db86475
--- /dev/null
+++ b/docs/build/html/api/core.node.services/-service-type/index.html
@@ -0,0 +1,94 @@
+
+
+ServiceType -
+
+
+
+core.node.services / ServiceType
+
+ServiceType
+abstract 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.
+
+
+Constructors
+
+
+
+
+<init>
+
+ServiceType ( id : String )
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
+
+
+
+hashCode
+
+open fun hashCode ( ) : Int
+
+
+
+toString
+
+open fun toString ( ) : String
+
+
+
+Inheritors
+
+
+
+
+Type
+
+object Type : ServiceType
+
+
+
+Type
+
+object Type : ServiceType
+
+
+
+Type
+
+object Type : ServiceType
+
+
+
+Type
+
+object Type : ServiceType
+
+
+
+
+
diff --git a/docs/build/html/api/core.node.services/-service-type/to-string.html b/docs/build/html/api/core.node.services/-service-type/to-string.html
new file mode 100644
index 0000000000..7e9d431750
--- /dev/null
+++ b/docs/build/html/api/core.node.services/-service-type/to-string.html
@@ -0,0 +1,15 @@
+
+
+ServiceType.toString -
+
+
+
+core.node.services / ServiceType / toString
+
+toString
+
+open fun toString ( ) : String
+
+
+
+
diff --git a/docs/build/html/api/core.node.services/-timestamper-service/-type.html b/docs/build/html/api/core.node.services/-timestamper-service/-type.html
new file mode 100644
index 0000000000..e372482fe3
--- /dev/null
+++ b/docs/build/html/api/core.node.services/-timestamper-service/-type.html
@@ -0,0 +1,48 @@
+
+
+TimestamperService.Type -
+
+
+
+core.node.services / TimestamperService / Type
+
+Type
+object Type : ServiceType
+
+
+Inherited Properties
+
+
+
+
+id
+
+val id : String
+
+
+
+Inherited Functions
+
+
+
+
+equals
+
+open operator fun equals ( other : Any ? ) : Boolean
+
+
+
+hashCode
+
+open fun hashCode ( ) : Int
+
+
+
+toString
+
+open fun toString ( ) : String
+
+
+
+
+
diff --git a/docs/build/html/api/core.node.services/-timestamper-service/identity.html b/docs/build/html/api/core.node.services/-timestamper-service/identity.html
new file mode 100644
index 0000000000..3c861673b6
--- /dev/null
+++ b/docs/build/html/api/core.node.services/-timestamper-service/identity.html
@@ -0,0 +1,16 @@
+
+
+TimestamperService.identity -
+
+
+
+core.node.services / TimestamperService / identity
+
+identity
+
+abstract val identity : Party
+The name+pubkey that this timestamper will sign with.
+
+
+
+
diff --git a/docs/build/html/api/core.node.services/-timestamper-service/index.html b/docs/build/html/api/core.node.services/-timestamper-service/index.html
new file mode 100644
index 0000000000..e8321734e9
--- /dev/null
+++ b/docs/build/html/api/core.node.services/-timestamper-service/index.html
@@ -0,0 +1,64 @@
+
+
+TimestamperService -
+
+
+
+core.node.services / TimestamperService
+
+TimestamperService
+interface TimestamperService
+Simple interface (for testing) to an abstract timestamping service. Note that this is not "timestamping" in the
+blockchain sense of a total ordering of transactions, but rather, a signature from a well known/trusted timestamping
+service over a transaction that indicates the timestamp in it is accurate. Such a signature may not always be
+necessary: if there are multiple parties involved in a transaction then they can cross-check the timestamp
+themselves.
+
+
+Types
+
+Properties
+
+
+
+
+identity
+
+abstract val identity : Party
The name+pubkey that this timestamper will sign with.
+
+
+
+
+Functions
+
+Inheritors
+
+
+
+
+Client
+
+class Client : TimestamperService
+
+
+
+
+
diff --git a/docs/build/html/api/core.node.services/-timestamper-service/timestamp.html b/docs/build/html/api/core.node.services/-timestamper-service/timestamp.html
new file mode 100644
index 0000000000..5a861dd890
--- /dev/null
+++ b/docs/build/html/api/core.node.services/-timestamper-service/timestamp.html
@@ -0,0 +1,15 @@
+
+
+TimestamperService.timestamp -
+
+
+
+core.node.services / TimestamperService / timestamp
+
+timestamp
+
+abstract fun timestamp ( wtxBytes : SerializedBytes < WireTransaction > ) : LegallyIdentifiable
+
+
+
+
diff --git a/docs/build/html/api/core.node.services/-timestamping-error/-not-for-me/-init-.html b/docs/build/html/api/core.node.services/-timestamping-error/-not-for-me/-init-.html
new file mode 100644
index 0000000000..de3ee1ef7a
--- /dev/null
+++ b/docs/build/html/api/core.node.services/-timestamping-error/-not-for-me/-init-.html
@@ -0,0 +1,15 @@
+
+
+TimestampingError.NotForMe. -
+
+
+
+core.node.services / TimestampingError / NotForMe / <init>
+
+<init>
+NotForMe ( )
+Thrown if the command in the transaction doesnt list this timestamping authorities public key as a signer
+
+
+
+
diff --git a/docs/build/html/api/core.node.services/-timestamping-error/-not-for-me/index.html b/docs/build/html/api/core.node.services/-timestamping-error/-not-for-me/index.html
new file mode 100644
index 0000000000..45cb733153
--- /dev/null
+++ b/docs/build/html/api/core.node.services/-timestamping-error/-not-for-me/index.html
@@ -0,0 +1,27 @@
+
+
+TimestampingError.NotForMe -
+
+
+
+core.node.services / TimestampingError / NotForMe
+
+NotForMe
+class NotForMe : TimestampingError
+Thrown if the command in the transaction doesnt list this timestamping authorities public key as a signer
+
+
+Constructors
+
+
+
+
+<init>
+
+NotForMe ( )
Thrown if the command in the transaction doesnt list this timestamping authorities public key as a signer
+
+
+
+
+
+
diff --git a/docs/build/html/api/core.node.services/-timestamping-error/-not-on-time-exception/-init-.html b/docs/build/html/api/core.node.services/-timestamping-error/-not-on-time-exception/-init-.html
new file mode 100644
index 0000000000..283afe7aa9
--- /dev/null
+++ b/docs/build/html/api/core.node.services/-timestamping-error/-not-on-time-exception/-init-.html
@@ -0,0 +1,17 @@
+
+
+TimestampingError.NotOnTimeException. -
+
+
+
+core.node.services / TimestampingError / NotOnTimeException / <init>
+
+<init>
+NotOnTimeException ( )
+Thrown if an attempt is made to timestamp a transaction using a trusted timestamper, but the time on the
+transaction is too far in the past or future relative to the local clock and thus the timestamper would reject
+it.
+
+
+
+
diff --git a/docs/build/html/api/core.node.services/-timestamping-error/-not-on-time-exception/index.html b/docs/build/html/api/core.node.services/-timestamping-error/-not-on-time-exception/index.html
new file mode 100644
index 0000000000..7808752072
--- /dev/null
+++ b/docs/build/html/api/core.node.services/-timestamping-error/-not-on-time-exception/index.html
@@ -0,0 +1,31 @@
+
+
+TimestampingError.NotOnTimeException -
+
+
+
+core.node.services / TimestampingError / NotOnTimeException
+
+NotOnTimeException
+class NotOnTimeException : TimestampingError
+Thrown if an attempt is made to timestamp a transaction using a trusted timestamper, but the time on the
+transaction is too far in the past or future relative to the local clock and thus the timestamper would reject
+it.
+
+
+Constructors
+
+
+
+
+<init>
+
+NotOnTimeException ( )
Thrown if an attempt is made to timestamp a transaction using a trusted timestamper, but the time on the
+transaction is too far in the past or future relative to the local clock and thus the timestamper would reject
+it.
+
+
+
+
+
+
diff --git a/docs/build/html/api/core.node.services/-timestamping-error/-requires-exactly-one-command/-init-.html b/docs/build/html/api/core.node.services/-timestamping-error/-requires-exactly-one-command/-init-.html
new file mode 100644
index 0000000000..485b64f464
--- /dev/null
+++ b/docs/build/html/api/core.node.services/-timestamping-error/-requires-exactly-one-command/-init-.html
@@ -0,0 +1,14 @@
+
+
+TimestampingError.RequiresExactlyOneCommand. -
+
+
+
+core.node.services / TimestampingError / RequiresExactlyOneCommand / <init>
+
+<init>
+RequiresExactlyOneCommand ( )
+
+
+
+
diff --git a/docs/build/html/api/core.node.services/-timestamping-error/-requires-exactly-one-command/index.html b/docs/build/html/api/core.node.services/-timestamping-error/-requires-exactly-one-command/index.html
new file mode 100644
index 0000000000..71c7fed21f
--- /dev/null
+++ b/docs/build/html/api/core.node.services/-timestamping-error/-requires-exactly-one-command/index.html
@@ -0,0 +1,25 @@
+
+
+TimestampingError.RequiresExactlyOneCommand -
+
+
+
+core.node.services / TimestampingError / RequiresExactlyOneCommand
+
+RequiresExactlyOneCommand
+class RequiresExactlyOneCommand : TimestampingError
+
+
+Constructors
+
+
+
+
+<init>
+
+RequiresExactlyOneCommand ( )
+
+
+
+
+
diff --git a/docs/build/html/api/core.node.services/-timestamping-error/index.html b/docs/build/html/api/core.node.services/-timestamping-error/index.html
new file mode 100644
index 0000000000..53b2b37e68
--- /dev/null
+++ b/docs/build/html/api/core.node.services/-timestamping-error/index.html
@@ -0,0 +1,68 @@
+
+
+TimestampingError -
+
+
+
+core.node.services / TimestampingError
+
+TimestampingError
+sealed class TimestampingError : Exception
+
+
+Exceptions
+
+
+
+
+NotForMe
+
+class NotForMe : TimestampingError
Thrown if the command in the transaction doesnt list this timestamping authorities public key as a signer
+
+
+
+
+NotOnTimeException
+
+class NotOnTimeException : TimestampingError
Thrown if an attempt is made to timestamp a transaction using a trusted timestamper, but the time on the
+transaction is too far in the past or future relative to the local clock and thus the timestamper would reject
+it.
+
+
+
+
+RequiresExactlyOneCommand
+
+class RequiresExactlyOneCommand : TimestampingError
+
+
+
+Inheritors
+
+
+
+
+NotForMe
+
+class NotForMe : TimestampingError
Thrown if the command in the transaction doesnt list this timestamping authorities public key as a signer
+
+
+
+
+NotOnTimeException
+
+class NotOnTimeException : TimestampingError
Thrown if an attempt is made to timestamp a transaction using a trusted timestamper, but the time on the
+transaction is too far in the past or future relative to the local clock and thus the timestamper would reject
+it.
+
+
+
+
+RequiresExactlyOneCommand
+
+class RequiresExactlyOneCommand : TimestampingError
+
+
+
+
+
diff --git a/docs/build/html/api/core.node.services/-wire-node-registration/-init-.html b/docs/build/html/api/core.node.services/-wire-node-registration/-init-.html
new file mode 100644
index 0000000000..6c5e446136
--- /dev/null
+++ b/docs/build/html/api/core.node.services/-wire-node-registration/-init-.html
@@ -0,0 +1,15 @@
+
+
+WireNodeRegistration. -
+
+
+
+core.node.services / 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/core.node.services/-wire-node-registration/index.html b/docs/build/html/api/core.node.services/-wire-node-registration/index.html
new file mode 100644
index 0000000000..a949646c9e
--- /dev/null
+++ b/docs/build/html/api/core.node.services/-wire-node-registration/index.html
@@ -0,0 +1,69 @@
+
+
+WireNodeRegistration -
+
+
+
+core.node.services / WireNodeRegistration
+
+WireNodeRegistration
+class WireNodeRegistration : SignedData < NodeRegistration >
+A node registration and its signature as a pair.
+
+
+Constructors
+
+Inherited Properties
+
+Functions
+
+
+
+
+verifyData
+
+fun verifyData ( reg : 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/core.node.services/-wire-node-registration/verify-data.html b/docs/build/html/api/core.node.services/-wire-node-registration/verify-data.html
new file mode 100644
index 0000000000..9aed2f3d05
--- /dev/null
+++ b/docs/build/html/api/core.node.services/-wire-node-registration/verify-data.html
@@ -0,0 +1,20 @@
+
+
+WireNodeRegistration.verifyData -
+
+
+
+core.node.services / WireNodeRegistration / verifyData
+
+verifyData
+
+protected fun verifyData ( reg : 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/core.node.services/index.html b/docs/build/html/api/core.node.services/index.html
new file mode 100644
index 0000000000..89311044c7
--- /dev/null
+++ b/docs/build/html/api/core.node.services/index.html
@@ -0,0 +1,143 @@
+
+
+core.node.services -
+
+
+
+core.node.services
+
+Package core.node.services
+Types
+
+
+
+
+AbstractNodeService
+
+abstract class AbstractNodeService
Abstract superclass for services that a node can host, which provides helper functions.
+
+
+
+
+AttachmentStorage
+
+interface AttachmentStorage
An attachment store records potentially large binary objects, identified by their hash. Note that attachments are
+immutable and can never be erased once inserted
+
+
+
+
+DummyTimestampingAuthority
+
+object DummyTimestampingAuthority
+
+
+
+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.
+
+
+
+
+InMemoryNetworkMapService
+
+class InMemoryNetworkMapService : NetworkMapService , AbstractNodeService
+
+
+
+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.
+
+
+
+
+NodeAttachmentService
+
+class NodeAttachmentService : AttachmentStorage , AcceptsFileUpload
Stores attachments in the specified local directory, which must exist. Doesnt allow new attachments to be uploaded.
+
+
+
+
+NodeInterestRates
+
+object NodeInterestRates
An interest rates service is an oracle that signs transactions which contain embedded assertions about an interest
+rate fix (e.g. LIBOR, EURIBOR ...).
+
+
+
+
+NodeRegistration
+
+class NodeRegistration
A node registration state in the network map.
+
+
+
+
+NodeTimestamperService
+
+class NodeTimestamperService : AbstractNodeService
This class implements the server side of the timestamping protocol, using the local clock. A future version might
+add features like checking against other NTP servers to make sure the clock hasnt drifted by too much.
+
+
+
+
+RegulatorService
+
+interface RegulatorService
Placeholder interface for regulator services.
+
+
+
+
+ServiceType
+
+abstract 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.
+
+
+
+
+TimestamperService
+
+interface TimestamperService
Simple interface (for testing) to an abstract timestamping service. Note that this is not "timestamping" in the
+blockchain sense of a total ordering of transactions, but rather, a signature from a well known/trusted timestamping
+service over a transaction that indicates the timestamp in it is accurate. Such a signature may not always be
+necessary: if there are multiple parties involved in a transaction then they can cross-check the timestamp
+themselves.
+
+
+
+
+WireNodeRegistration
+
+class WireNodeRegistration : SignedData < NodeRegistration >
A node registration and its signature as a pair.
+
+
+
+
+Exceptions
+
+
+
diff --git a/docs/build/html/api/core.node.servlets/-attachment-download-servlet/-init-.html b/docs/build/html/api/core.node.servlets/-attachment-download-servlet/-init-.html
new file mode 100644
index 0000000000..0b82f0af72
--- /dev/null
+++ b/docs/build/html/api/core.node.servlets/-attachment-download-servlet/-init-.html
@@ -0,0 +1,22 @@
+
+
+AttachmentDownloadServlet. -
+
+
+
+core.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/core.node.servlets/-attachment-download-servlet/do-get.html b/docs/build/html/api/core.node.servlets/-attachment-download-servlet/do-get.html
new file mode 100644
index 0000000000..04e6cc252f
--- /dev/null
+++ b/docs/build/html/api/core.node.servlets/-attachment-download-servlet/do-get.html
@@ -0,0 +1,15 @@
+
+
+AttachmentDownloadServlet.doGet -
+
+
+
+core.node.servlets / AttachmentDownloadServlet / doGet
+
+doGet
+
+fun doGet ( req : <ERROR CLASS> , resp : <ERROR CLASS> ) : Unit
+
+
+
+
diff --git a/docs/build/html/api/core.node.servlets/-attachment-download-servlet/index.html b/docs/build/html/api/core.node.servlets/-attachment-download-servlet/index.html
new file mode 100644
index 0000000000..4e8050ed7c
--- /dev/null
+++ b/docs/build/html/api/core.node.servlets/-attachment-download-servlet/index.html
@@ -0,0 +1,45 @@
+
+
+AttachmentDownloadServlet -
+
+
+
+core.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/core.node.servlets/-data-upload-servlet/-init-.html b/docs/build/html/api/core.node.servlets/-data-upload-servlet/-init-.html
new file mode 100644
index 0000000000..36a1c1f0d5
--- /dev/null
+++ b/docs/build/html/api/core.node.servlets/-data-upload-servlet/-init-.html
@@ -0,0 +1,15 @@
+
+
+DataUploadServlet. -
+
+
+
+core.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/core.node.servlets/-data-upload-servlet/do-post.html b/docs/build/html/api/core.node.servlets/-data-upload-servlet/do-post.html
new file mode 100644
index 0000000000..701d31306e
--- /dev/null
+++ b/docs/build/html/api/core.node.servlets/-data-upload-servlet/do-post.html
@@ -0,0 +1,15 @@
+
+
+DataUploadServlet.doPost -
+
+
+
+core.node.servlets / DataUploadServlet / doPost
+
+doPost
+
+fun doPost ( req : <ERROR CLASS> , resp : <ERROR CLASS> ) : Unit
+
+
+
+
diff --git a/docs/build/html/api/core.node.servlets/-data-upload-servlet/index.html b/docs/build/html/api/core.node.servlets/-data-upload-servlet/index.html
new file mode 100644
index 0000000000..58f75683e5
--- /dev/null
+++ b/docs/build/html/api/core.node.servlets/-data-upload-servlet/index.html
@@ -0,0 +1,38 @@
+
+
+DataUploadServlet -
+
+
+
+core.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/core.node.servlets/index.html b/docs/build/html/api/core.node.servlets/index.html
new file mode 100644
index 0000000000..d97ca6ab62
--- /dev/null
+++ b/docs/build/html/api/core.node.servlets/index.html
@@ -0,0 +1,30 @@
+
+
+core.node.servlets -
+
+
+
+core.node.servlets
+
+Package core.node.servlets
+Types
+
+
+
+
+AttachmentDownloadServlet
+
+class AttachmentDownloadServlet
Allows the node administrator to either download full attachment zips, or individual files within those zips.
+
+
+
+
+DataUploadServlet
+
+class DataUploadServlet
Accepts binary streams, finds the right AcceptsFileUpload implementor and hands the stream off to it.
+
+
+
+
+
+
diff --git a/docs/build/html/api/core.node.subsystems/-artemis-messaging-service/-handler/-init-.html b/docs/build/html/api/core.node.subsystems/-artemis-messaging-service/-handler/-init-.html
new file mode 100644
index 0000000000..3b9fb03c66
--- /dev/null
+++ b/docs/build/html/api/core.node.subsystems/-artemis-messaging-service/-handler/-init-.html
@@ -0,0 +1,15 @@
+
+
+ArtemisMessagingService.Handler. -
+
+
+
+core.node.subsystems / ArtemisMessagingService / Handler / <init>
+
+<init>
+Handler ( executor : Executor ? , topic : String , callback : ( Message , MessageHandlerRegistration ) -> Unit )
+A registration to handle messages of different types
+
+
+
+
diff --git a/docs/build/html/api/core.node.subsystems/-artemis-messaging-service/-handler/callback.html b/docs/build/html/api/core.node.subsystems/-artemis-messaging-service/-handler/callback.html
new file mode 100644
index 0000000000..74322be108
--- /dev/null
+++ b/docs/build/html/api/core.node.subsystems/-artemis-messaging-service/-handler/callback.html
@@ -0,0 +1,15 @@
+
+
+ArtemisMessagingService.Handler.callback -
+
+
+
+core.node.subsystems / ArtemisMessagingService / Handler / callback
+
+callback
+
+val callback : ( Message , MessageHandlerRegistration ) -> Unit
+
+
+
+
diff --git a/docs/build/html/api/core.node.subsystems/-artemis-messaging-service/-handler/executor.html b/docs/build/html/api/core.node.subsystems/-artemis-messaging-service/-handler/executor.html
new file mode 100644
index 0000000000..529b7d400d
--- /dev/null
+++ b/docs/build/html/api/core.node.subsystems/-artemis-messaging-service/-handler/executor.html
@@ -0,0 +1,15 @@
+
+
+ArtemisMessagingService.Handler.executor -
+
+
+
+core.node.subsystems / ArtemisMessagingService / Handler / executor
+
+executor
+
+val executor : Executor ?
+
+
+
+
diff --git a/docs/build/html/api/core.node.subsystems/-artemis-messaging-service/-handler/index.html b/docs/build/html/api/core.node.subsystems/-artemis-messaging-service/-handler/index.html
new file mode 100644
index 0000000000..d1cc75f8ff
--- /dev/null
+++ b/docs/build/html/api/core.node.subsystems/-artemis-messaging-service/-handler/index.html
@@ -0,0 +1,50 @@
+
+
+ArtemisMessagingService.Handler -
+
+
+
+core.node.subsystems / ArtemisMessagingService / Handler
+
+Handler
+inner class Handler : MessageHandlerRegistration
+A registration to handle messages of different types
+
+
+Constructors
+
+Properties
+
+
+
diff --git a/docs/build/html/api/core.node.subsystems/-artemis-messaging-service/-handler/topic.html b/docs/build/html/api/core.node.subsystems/-artemis-messaging-service/-handler/topic.html
new file mode 100644
index 0000000000..db1ab7bd2b
--- /dev/null
+++ b/docs/build/html/api/core.node.subsystems/-artemis-messaging-service/-handler/topic.html
@@ -0,0 +1,15 @@
+
+
+ArtemisMessagingService.Handler.topic -
+
+
+
+core.node.subsystems / ArtemisMessagingService / Handler / topic
+
+topic
+
+val topic : String
+
+
+
+
diff --git a/docs/build/html/api/core.node.subsystems/-artemis-messaging-service/-init-.html b/docs/build/html/api/core.node.subsystems/-artemis-messaging-service/-init-.html
new file mode 100644
index 0000000000..48e9a62f13
--- /dev/null
+++ b/docs/build/html/api/core.node.subsystems/-artemis-messaging-service/-init-.html
@@ -0,0 +1,32 @@
+
+
+ArtemisMessagingService. -
+
+
+
+core.node.subsystems / ArtemisMessagingService / <init>
+
+<init>
+ArtemisMessagingService ( directory : Path , myHostPort : <ERROR CLASS> , defaultExecutor : Executor = RunOnCallerThread)
+This class implements the MessagingService API using Apache Artemis, the successor to their ActiveMQ product.
+Artemis is a message queue broker and here, we embed the entire server inside our own process. Nodes communicate
+with each other using (by default) an Artemis specific protocol, but it supports other protocols like AQMP/1.0
+as well.
+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.
+
+
+Parameters
+
+directory
- A place where Artemis can stash its message journal and other files.
+
+
+myHostPort
- What host and port to bind to for receiving inbound connections.
+
+
+defaultExecutor
- This will be used as the default executor to run message handlers on, if no other is specified.
+
+
+
+
diff --git a/docs/build/html/api/core.node.subsystems/-artemis-messaging-service/-t-o-p-i-c_-p-r-o-p-e-r-t-y.html b/docs/build/html/api/core.node.subsystems/-artemis-messaging-service/-t-o-p-i-c_-p-r-o-p-e-r-t-y.html
new file mode 100644
index 0000000000..64bc99cb35
--- /dev/null
+++ b/docs/build/html/api/core.node.subsystems/-artemis-messaging-service/-t-o-p-i-c_-p-r-o-p-e-r-t-y.html
@@ -0,0 +1,15 @@
+
+
+ArtemisMessagingService.TOPIC_PROPERTY -
+
+
+
+core.node.subsystems / ArtemisMessagingService / TOPIC_PROPERTY
+
+TOPIC_PROPERTY
+
+val TOPIC_PROPERTY : String
+
+
+
+
diff --git a/docs/build/html/api/core.node.subsystems/-artemis-messaging-service/add-message-handler.html b/docs/build/html/api/core.node.subsystems/-artemis-messaging-service/add-message-handler.html
new file mode 100644
index 0000000000..f61c109bc1
--- /dev/null
+++ b/docs/build/html/api/core.node.subsystems/-artemis-messaging-service/add-message-handler.html
@@ -0,0 +1,25 @@
+
+
+ArtemisMessagingService.addMessageHandler -
+
+
+
+core.node.subsystems / ArtemisMessagingService / addMessageHandler
+
+addMessageHandler
+
+fun addMessageHandler ( topic : String , executor : Executor ? , callback : ( Message , MessageHandlerRegistration ) -> Unit ) : MessageHandlerRegistration
+Overrides MessagingService.addMessageHandler
+The provided function will be invoked for each received message whose topic matches the given string, on the given
+executor. The topic can be the empty string to match all messages.
+If no executor is received then 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.
+
+
+
+
+
+
diff --git a/docs/build/html/api/core.node.subsystems/-artemis-messaging-service/create-message.html b/docs/build/html/api/core.node.subsystems/-artemis-messaging-service/create-message.html
new file mode 100644
index 0000000000..9f97187e10
--- /dev/null
+++ b/docs/build/html/api/core.node.subsystems/-artemis-messaging-service/create-message.html
@@ -0,0 +1,17 @@
+
+
+ArtemisMessagingService.createMessage -
+
+
+
+core.node.subsystems / ArtemisMessagingService / createMessage
+
+createMessage
+
+fun createMessage ( topic : String , data : ByteArray ) : Message
+Overrides MessagingService.createMessage
+Returns an initialised Message with the current time, etc, already filled in.
+
+
+
+
diff --git a/docs/build/html/api/core.node.subsystems/-artemis-messaging-service/default-executor.html b/docs/build/html/api/core.node.subsystems/-artemis-messaging-service/default-executor.html
new file mode 100644
index 0000000000..7b6867f3cb
--- /dev/null
+++ b/docs/build/html/api/core.node.subsystems/-artemis-messaging-service/default-executor.html
@@ -0,0 +1,15 @@
+
+
+ArtemisMessagingService.defaultExecutor -
+
+
+
+core.node.subsystems / ArtemisMessagingService / defaultExecutor
+
+defaultExecutor
+
+val defaultExecutor : Executor
+
+
+
+
diff --git a/docs/build/html/api/core.node.subsystems/-artemis-messaging-service/directory.html b/docs/build/html/api/core.node.subsystems/-artemis-messaging-service/directory.html
new file mode 100644
index 0000000000..4c57958855
--- /dev/null
+++ b/docs/build/html/api/core.node.subsystems/-artemis-messaging-service/directory.html
@@ -0,0 +1,15 @@
+
+
+ArtemisMessagingService.directory -
+
+
+
+core.node.subsystems / ArtemisMessagingService / directory
+
+directory
+
+val directory : Path
+
+
+
+
diff --git a/docs/build/html/api/core.node.subsystems/-artemis-messaging-service/index.html b/docs/build/html/api/core.node.subsystems/-artemis-messaging-service/index.html
new file mode 100644
index 0000000000..71604a87c0
--- /dev/null
+++ b/docs/build/html/api/core.node.subsystems/-artemis-messaging-service/index.html
@@ -0,0 +1,194 @@
+
+
+ArtemisMessagingService -
+
+
+
+core.node.subsystems / ArtemisMessagingService
+
+ArtemisMessagingService
+class ArtemisMessagingService : MessagingService
+This class implements the MessagingService API using Apache Artemis, the successor to their ActiveMQ product.
+Artemis is a message queue broker and here, we embed the entire server inside our own process. Nodes communicate
+with each other using (by default) an Artemis specific protocol, but it supports other protocols like AQMP/1.0
+as well.
+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.
+
+
+Parameters
+
+directory
- A place where Artemis can stash its message journal and other files.
+
+
+myHostPort
- What host and port to bind to for receiving inbound connections.
+
+
+defaultExecutor
- This will be used as the default executor to run message handlers on, if no other is specified.
+
+
+Types
+
+Constructors
+
+
+
+
+<init>
+
+ArtemisMessagingService ( directory : Path , myHostPort : <ERROR CLASS> , defaultExecutor : Executor = RunOnCallerThread)
This class implements the MessagingService API using Apache Artemis, the successor to their ActiveMQ product.
+Artemis is a message queue broker and here, we embed the entire server inside our own process. Nodes communicate
+with each other using (by default) an Artemis specific protocol, but it supports other protocols like AQMP/1.0
+as well.
+
+
+
+
+Properties
+
+Functions
+
+
+
+
+addMessageHandler
+
+fun addMessageHandler ( topic : String , executor : Executor ? , callback : ( Message , MessageHandlerRegistration ) -> Unit ) : MessageHandlerRegistration
The provided function will be invoked for each received message whose topic matches the given string, on the given
+executor. The topic can be the empty string to match all messages.
+
+
+
+
+createMessage
+
+fun createMessage ( topic : String , data : ByteArray ) : 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.
+
+
+
+
+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 ( ) : Unit
+
+
+
+stop
+
+fun stop ( ) : Unit
+
+
+
+Companion Object Properties
+
+
+
+
+TOPIC_PROPERTY
+
+val TOPIC_PROPERTY : String
+
+
+
+log
+
+val log : <ERROR CLASS>
+
+
+
+Companion Object Functions
+
+
+
+
+makeRecipient
+
+fun makeRecipient ( hostAndPort : <ERROR CLASS> ) : SingleMessageRecipient
Temp helper until network map is established.
+fun makeRecipient ( hostname : String ) : <ERROR CLASS>
+
+
+
+toHostAndPort
+
+fun toHostAndPort ( hostname : String ) : <ERROR CLASS>
+
+
+
+Extension Functions
+
+
+
diff --git a/docs/build/html/api/core.node.subsystems/-artemis-messaging-service/log.html b/docs/build/html/api/core.node.subsystems/-artemis-messaging-service/log.html
new file mode 100644
index 0000000000..445b93a3ed
--- /dev/null
+++ b/docs/build/html/api/core.node.subsystems/-artemis-messaging-service/log.html
@@ -0,0 +1,15 @@
+
+
+ArtemisMessagingService.log -
+
+
+
+core.node.subsystems / ArtemisMessagingService / log
+
+log
+
+val log : <ERROR CLASS>
+
+
+
+
diff --git a/docs/build/html/api/core.node.subsystems/-artemis-messaging-service/make-recipient.html b/docs/build/html/api/core.node.subsystems/-artemis-messaging-service/make-recipient.html
new file mode 100644
index 0000000000..13621d0cf2
--- /dev/null
+++ b/docs/build/html/api/core.node.subsystems/-artemis-messaging-service/make-recipient.html
@@ -0,0 +1,20 @@
+
+
+ArtemisMessagingService.makeRecipient -
+
+
+
+core.node.subsystems / ArtemisMessagingService / makeRecipient
+
+makeRecipient
+
+fun makeRecipient ( hostAndPort : <ERROR CLASS> ) : SingleMessageRecipient
+Temp helper until network map is established.
+
+
+
+fun makeRecipient ( hostname : String ) : <ERROR CLASS>
+
+
+
+
diff --git a/docs/build/html/api/core.node.subsystems/-artemis-messaging-service/my-address.html b/docs/build/html/api/core.node.subsystems/-artemis-messaging-service/my-address.html
new file mode 100644
index 0000000000..8de9bd3c4d
--- /dev/null
+++ b/docs/build/html/api/core.node.subsystems/-artemis-messaging-service/my-address.html
@@ -0,0 +1,17 @@
+
+
+ArtemisMessagingService.myAddress -
+
+
+
+core.node.subsystems / ArtemisMessagingService / myAddress
+
+myAddress
+
+val myAddress : SingleMessageRecipient
+Overrides MessagingService.myAddress
+Returns an address that refers to this node.
+
+
+
+
diff --git a/docs/build/html/api/core.node.subsystems/-artemis-messaging-service/my-host-port.html b/docs/build/html/api/core.node.subsystems/-artemis-messaging-service/my-host-port.html
new file mode 100644
index 0000000000..92ffa422cf
--- /dev/null
+++ b/docs/build/html/api/core.node.subsystems/-artemis-messaging-service/my-host-port.html
@@ -0,0 +1,15 @@
+
+
+ArtemisMessagingService.myHostPort -
+
+
+
+core.node.subsystems / ArtemisMessagingService / myHostPort
+
+myHostPort
+
+val myHostPort : <ERROR CLASS>
+
+
+
+
diff --git a/docs/build/html/api/core.node.subsystems/-artemis-messaging-service/remove-message-handler.html b/docs/build/html/api/core.node.subsystems/-artemis-messaging-service/remove-message-handler.html
new file mode 100644
index 0000000000..5dd7a82a26
--- /dev/null
+++ b/docs/build/html/api/core.node.subsystems/-artemis-messaging-service/remove-message-handler.html
@@ -0,0 +1,24 @@
+
+
+ArtemisMessagingService.removeMessageHandler -
+
+
+
+core.node.subsystems / ArtemisMessagingService / 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/core.node.subsystems/-artemis-messaging-service/send.html b/docs/build/html/api/core.node.subsystems/-artemis-messaging-service/send.html
new file mode 100644
index 0000000000..40b754409e
--- /dev/null
+++ b/docs/build/html/api/core.node.subsystems/-artemis-messaging-service/send.html
@@ -0,0 +1,24 @@
+
+
+ArtemisMessagingService.send -
+
+
+
+core.node.subsystems / ArtemisMessagingService / 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/core.node.subsystems/-artemis-messaging-service/start.html b/docs/build/html/api/core.node.subsystems/-artemis-messaging-service/start.html
new file mode 100644
index 0000000000..4048ae83f2
--- /dev/null
+++ b/docs/build/html/api/core.node.subsystems/-artemis-messaging-service/start.html
@@ -0,0 +1,15 @@
+
+
+ArtemisMessagingService.start -
+
+
+
+core.node.subsystems / ArtemisMessagingService / start
+
+start
+
+fun start ( ) : Unit
+
+
+
+
diff --git a/docs/build/html/api/core.node.subsystems/-artemis-messaging-service/stop.html b/docs/build/html/api/core.node.subsystems/-artemis-messaging-service/stop.html
new file mode 100644
index 0000000000..b8c90ec91c
--- /dev/null
+++ b/docs/build/html/api/core.node.subsystems/-artemis-messaging-service/stop.html
@@ -0,0 +1,16 @@
+
+
+ArtemisMessagingService.stop -
+
+
+
+core.node.subsystems / ArtemisMessagingService / stop
+
+stop
+
+fun stop ( ) : Unit
+Overrides MessagingService.stop
+
+
+
+
diff --git a/docs/build/html/api/core.node.subsystems/-artemis-messaging-service/to-host-and-port.html b/docs/build/html/api/core.node.subsystems/-artemis-messaging-service/to-host-and-port.html
new file mode 100644
index 0000000000..bad3d965c4
--- /dev/null
+++ b/docs/build/html/api/core.node.subsystems/-artemis-messaging-service/to-host-and-port.html
@@ -0,0 +1,15 @@
+
+
+ArtemisMessagingService.toHostAndPort -
+
+
+
+core.node.subsystems / ArtemisMessagingService / toHostAndPort
+
+toHostAndPort
+
+fun toHostAndPort ( hostname : String ) : <ERROR CLASS>
+
+
+
+
diff --git a/docs/build/html/api/core.node.subsystems/-data-vending-service/-init-.html b/docs/build/html/api/core.node.subsystems/-data-vending-service/-init-.html
new file mode 100644
index 0000000000..bb73fa1540
--- /dev/null
+++ b/docs/build/html/api/core.node.subsystems/-data-vending-service/-init-.html
@@ -0,0 +1,24 @@
+
+
+DataVendingService. -
+
+
+
+core.node.subsystems / DataVendingService / <init>
+
+<init>
+DataVendingService ( net : MessagingService , storage : StorageService )
+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/core.node.subsystems/-data-vending-service/-request/-init-.html b/docs/build/html/api/core.node.subsystems/-data-vending-service/-request/-init-.html
new file mode 100644
index 0000000000..ce3ffc58a6
--- /dev/null
+++ b/docs/build/html/api/core.node.subsystems/-data-vending-service/-request/-init-.html
@@ -0,0 +1,14 @@
+
+
+DataVendingService.Request. -
+
+
+
+core.node.subsystems / DataVendingService / Request / <init>
+
+<init>
+Request ( hashes : List < SecureHash > , replyTo : SingleMessageRecipient , sessionID : Long )
+
+
+
+
diff --git a/docs/build/html/api/core.node.subsystems/-data-vending-service/-request/hashes.html b/docs/build/html/api/core.node.subsystems/-data-vending-service/-request/hashes.html
new file mode 100644
index 0000000000..0b12bd5fff
--- /dev/null
+++ b/docs/build/html/api/core.node.subsystems/-data-vending-service/-request/hashes.html
@@ -0,0 +1,15 @@
+
+
+DataVendingService.Request.hashes -
+
+
+
+core.node.subsystems / DataVendingService / Request / hashes
+
+hashes
+
+val hashes : List < SecureHash >
+
+
+
+
diff --git a/docs/build/html/api/core.node.subsystems/-data-vending-service/-request/index.html b/docs/build/html/api/core.node.subsystems/-data-vending-service/-request/index.html
new file mode 100644
index 0000000000..e21760d9ce
--- /dev/null
+++ b/docs/build/html/api/core.node.subsystems/-data-vending-service/-request/index.html
@@ -0,0 +1,53 @@
+
+
+DataVendingService.Request -
+
+
+
+core.node.subsystems / DataVendingService / Request
+
+Request
+class Request : AbstractRequestMessage
+
+
+Constructors
+
+Properties
+
+Inherited Properties
+
+
+
diff --git a/docs/build/html/api/core.node.subsystems/-data-vending-service/index.html b/docs/build/html/api/core.node.subsystems/-data-vending-service/index.html
new file mode 100644
index 0000000000..d8b74cb46d
--- /dev/null
+++ b/docs/build/html/api/core.node.subsystems/-data-vending-service/index.html
@@ -0,0 +1,85 @@
+
+
+DataVendingService -
+
+
+
+core.node.subsystems / DataVendingService
+
+DataVendingService
+class DataVendingService : AbstractNodeService
+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
+
+Constructors
+
+
+
+
+<init>
+
+DataVendingService ( net : MessagingService , storage : StorageService )
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 Properties
+
+Inherited Functions
+
+
+
+
+addMessageHandler
+
+fun < Q : AbstractRequestMessage , R : Any > addMessageHandler ( topic : String , handler : ( Q ) -> R , exceptionConsumer : ( Message , Exception ) -> Unit ) : Unit
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.
+fun < Q : AbstractRequestMessage , R : Any > addMessageHandler ( topic : String , handler : ( Q ) -> R ) : Unit
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.
+
+
+
+
+Companion Object Properties
+
+
+
+
+logger
+
+val logger : <ERROR CLASS>
+
+
+
+
+
diff --git a/docs/build/html/api/core.node.subsystems/-data-vending-service/logger.html b/docs/build/html/api/core.node.subsystems/-data-vending-service/logger.html
new file mode 100644
index 0000000000..7220b16436
--- /dev/null
+++ b/docs/build/html/api/core.node.subsystems/-data-vending-service/logger.html
@@ -0,0 +1,15 @@
+
+
+DataVendingService.logger -
+
+
+
+core.node.subsystems / DataVendingService / logger
+
+logger
+
+val logger : <ERROR CLASS>
+
+
+
+
diff --git a/docs/build/html/api/core.node.subsystems/-e2-e-test-key-management-service/-init-.html b/docs/build/html/api/core.node.subsystems/-e2-e-test-key-management-service/-init-.html
new file mode 100644
index 0000000000..7c5813be5e
--- /dev/null
+++ b/docs/build/html/api/core.node.subsystems/-e2-e-test-key-management-service/-init-.html
@@ -0,0 +1,23 @@
+
+
+E2ETestKeyManagementService. -
+
+
+
+core.node.subsystems / E2ETestKeyManagementService / <init>
+
+<init>
+E2ETestKeyManagementService ( )
+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/core.node.subsystems/-e2-e-test-key-management-service/fresh-key.html b/docs/build/html/api/core.node.subsystems/-e2-e-test-key-management-service/fresh-key.html
new file mode 100644
index 0000000000..7abc42d843
--- /dev/null
+++ b/docs/build/html/api/core.node.subsystems/-e2-e-test-key-management-service/fresh-key.html
@@ -0,0 +1,17 @@
+
+
+E2ETestKeyManagementService.freshKey -
+
+
+
+core.node.subsystems / 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/core.node.subsystems/-e2-e-test-key-management-service/index.html b/docs/build/html/api/core.node.subsystems/-e2-e-test-key-management-service/index.html
new file mode 100644
index 0000000000..d78bebda2b
--- /dev/null
+++ b/docs/build/html/api/core.node.subsystems/-e2-e-test-key-management-service/index.html
@@ -0,0 +1,70 @@
+
+
+E2ETestKeyManagementService -
+
+
+
+core.node.subsystems / E2ETestKeyManagementService
+
+E2ETestKeyManagementService
+class E2ETestKeyManagementService : 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 ( )
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/core.node.subsystems/-e2-e-test-key-management-service/keys.html b/docs/build/html/api/core.node.subsystems/-e2-e-test-key-management-service/keys.html
new file mode 100644
index 0000000000..ffb996c1ce
--- /dev/null
+++ b/docs/build/html/api/core.node.subsystems/-e2-e-test-key-management-service/keys.html
@@ -0,0 +1,20 @@
+
+
+E2ETestKeyManagementService.keys -
+
+
+
+core.node.subsystems / 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/core.node.subsystems/-in-memory-identity-service/-init-.html b/docs/build/html/api/core.node.subsystems/-in-memory-identity-service/-init-.html
new file mode 100644
index 0000000000..876a92ce90
--- /dev/null
+++ b/docs/build/html/api/core.node.subsystems/-in-memory-identity-service/-init-.html
@@ -0,0 +1,15 @@
+
+
+InMemoryIdentityService. -
+
+
+
+core.node.subsystems / InMemoryIdentityService / <init>
+
+<init>
+InMemoryIdentityService ( )
+Simple identity service which caches parties and provides functionality for efficient lookup.
+
+
+
+
diff --git a/docs/build/html/api/core.node.subsystems/-in-memory-identity-service/index.html b/docs/build/html/api/core.node.subsystems/-in-memory-identity-service/index.html
new file mode 100644
index 0000000000..7c2d45fb14
--- /dev/null
+++ b/docs/build/html/api/core.node.subsystems/-in-memory-identity-service/index.html
@@ -0,0 +1,50 @@
+
+
+InMemoryIdentityService -
+
+
+
+core.node.subsystems / InMemoryIdentityService
+
+InMemoryIdentityService
+class InMemoryIdentityService : 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
+
+
+
diff --git a/docs/build/html/api/core.node.subsystems/-in-memory-identity-service/party-from-key.html b/docs/build/html/api/core.node.subsystems/-in-memory-identity-service/party-from-key.html
new file mode 100644
index 0000000000..640f965623
--- /dev/null
+++ b/docs/build/html/api/core.node.subsystems/-in-memory-identity-service/party-from-key.html
@@ -0,0 +1,16 @@
+
+
+InMemoryIdentityService.partyFromKey -
+
+
+
+core.node.subsystems / InMemoryIdentityService / partyFromKey
+
+partyFromKey
+
+fun partyFromKey ( key : PublicKey ) : Party ?
+Overrides IdentityService.partyFromKey
+
+
+
+
diff --git a/docs/build/html/api/core.node.subsystems/-in-memory-identity-service/party-from-name.html b/docs/build/html/api/core.node.subsystems/-in-memory-identity-service/party-from-name.html
new file mode 100644
index 0000000000..c626fd9fd7
--- /dev/null
+++ b/docs/build/html/api/core.node.subsystems/-in-memory-identity-service/party-from-name.html
@@ -0,0 +1,16 @@
+
+
+InMemoryIdentityService.partyFromName -
+
+
+
+core.node.subsystems / InMemoryIdentityService / partyFromName
+
+partyFromName
+
+fun partyFromName ( name : String ) : Party ?
+Overrides IdentityService.partyFromName
+
+
+
+
diff --git a/docs/build/html/api/core.node.subsystems/-in-memory-identity-service/register-identity.html b/docs/build/html/api/core.node.subsystems/-in-memory-identity-service/register-identity.html
new file mode 100644
index 0000000000..eba11a64d9
--- /dev/null
+++ b/docs/build/html/api/core.node.subsystems/-in-memory-identity-service/register-identity.html
@@ -0,0 +1,16 @@
+
+
+InMemoryIdentityService.registerIdentity -
+
+
+
+core.node.subsystems / InMemoryIdentityService / registerIdentity
+
+registerIdentity
+
+fun registerIdentity ( party : Party ) : Unit
+Overrides IdentityService.registerIdentity
+
+
+
+
diff --git a/docs/build/html/api/core.node.subsystems/-in-memory-network-map-cache/-init-.html b/docs/build/html/api/core.node.subsystems/-in-memory-network-map-cache/-init-.html
new file mode 100644
index 0000000000..fd52fd0ca6
--- /dev/null
+++ b/docs/build/html/api/core.node.subsystems/-in-memory-network-map-cache/-init-.html
@@ -0,0 +1,15 @@
+
+
+InMemoryNetworkMapCache. -
+
+
+
+core.node.subsystems / InMemoryNetworkMapCache / <init>
+
+<init>
+InMemoryNetworkMapCache ( )
+Extremely simple in-memory cache of the network map.
+
+
+
+
diff --git a/docs/build/html/api/core.node.subsystems/-in-memory-network-map-cache/add-map-service.html b/docs/build/html/api/core.node.subsystems/-in-memory-network-map-cache/add-map-service.html
new file mode 100644
index 0000000000..66c10cb536
--- /dev/null
+++ b/docs/build/html/api/core.node.subsystems/-in-memory-network-map-cache/add-map-service.html
@@ -0,0 +1,34 @@
+
+
+InMemoryNetworkMapCache.addMapService -
+
+
+
+core.node.subsystems / InMemoryNetworkMapCache / addMapService
+
+addMapService
+
+open fun addMapService ( smm : StateMachineManager , net : MessagingService , service : NodeInfo , 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
+
+smm
- state machine manager to use when requesting
+
+
+net
- the network messaging service
+
+
+service
- 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/core.node.subsystems/-in-memory-network-map-cache/add-node.html b/docs/build/html/api/core.node.subsystems/-in-memory-network-map-cache/add-node.html
new file mode 100644
index 0000000000..84e5127876
--- /dev/null
+++ b/docs/build/html/api/core.node.subsystems/-in-memory-network-map-cache/add-node.html
@@ -0,0 +1,17 @@
+
+
+InMemoryNetworkMapCache.addNode -
+
+
+
+core.node.subsystems / 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/core.node.subsystems/-in-memory-network-map-cache/deregister-for-updates.html b/docs/build/html/api/core.node.subsystems/-in-memory-network-map-cache/deregister-for-updates.html
new file mode 100644
index 0000000000..9c9fdc2361
--- /dev/null
+++ b/docs/build/html/api/core.node.subsystems/-in-memory-network-map-cache/deregister-for-updates.html
@@ -0,0 +1,20 @@
+
+
+InMemoryNetworkMapCache.deregisterForUpdates -
+
+
+
+core.node.subsystems / InMemoryNetworkMapCache / deregisterForUpdates
+
+deregisterForUpdates
+
+open fun deregisterForUpdates ( smm : StateMachineManager , 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/core.node.subsystems/-in-memory-network-map-cache/get-recommended.html b/docs/build/html/api/core.node.subsystems/-in-memory-network-map-cache/get-recommended.html
new file mode 100644
index 0000000000..69ad678f54
--- /dev/null
+++ b/docs/build/html/api/core.node.subsystems/-in-memory-network-map-cache/get-recommended.html
@@ -0,0 +1,19 @@
+
+
+InMemoryNetworkMapCache.getRecommended -
+
+
+
+core.node.subsystems / 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/core.node.subsystems/-in-memory-network-map-cache/get.html b/docs/build/html/api/core.node.subsystems/-in-memory-network-map-cache/get.html
new file mode 100644
index 0000000000..13e793cd33
--- /dev/null
+++ b/docs/build/html/api/core.node.subsystems/-in-memory-network-map-cache/get.html
@@ -0,0 +1,23 @@
+
+
+InMemoryNetworkMapCache.get -
+
+
+
+core.node.subsystems / 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/core.node.subsystems/-in-memory-network-map-cache/index.html b/docs/build/html/api/core.node.subsystems/-in-memory-network-map-cache/index.html
new file mode 100644
index 0000000000..5568aeaddf
--- /dev/null
+++ b/docs/build/html/api/core.node.subsystems/-in-memory-network-map-cache/index.html
@@ -0,0 +1,156 @@
+
+
+InMemoryNetworkMapCache -
+
+
+
+core.node.subsystems / InMemoryNetworkMapCache
+
+InMemoryNetworkMapCache
+open class InMemoryNetworkMapCache : NetworkMapCache
+Extremely simple in-memory cache of the network map.
+
+
+Constructors
+
+
+
+
+<init>
+
+InMemoryNetworkMapCache ( )
Extremely simple in-memory cache of the network map.
+
+
+
+
+Properties
+
+
+
+
+networkMapNodes
+
+open val networkMapNodes : List < NodeInfo >
A list of nodes that advertise a network map service
+
+
+
+
+partyNodes
+
+open val partyNodes : List < NodeInfo >
A list of all nodes the cache is aware of
+
+
+
+
+ratesOracleNodes
+
+open val ratesOracleNodes : List < NodeInfo >
A list of nodes that advertise a rates oracle service
+
+
+
+
+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 outwith
+the scope of the network map service, and this is intended solely as a sanity check on configuration stored
+elsewhere.
+
+
+
+
+timestampingNodes
+
+open val timestampingNodes : List < NodeInfo >
A list of nodes that advertise a timestamping service
+
+
+
+
+Functions
+
+
+
+
+addMapService
+
+open fun addMapService ( smm : StateMachineManager , net : MessagingService , service : NodeInfo , 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 ( smm : StateMachineManager , 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.
+
+
+
+
+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
+
+
+
+
+Inherited Functions
+
+Inheritors
+
+
+
+
+MockNetworkMapCache
+
+class MockNetworkMapCache : InMemoryNetworkMapCache
Network map cache with no backing map service.
+
+
+
+
+
+
diff --git a/docs/build/html/api/core.node.subsystems/-in-memory-network-map-cache/network-map-nodes.html b/docs/build/html/api/core.node.subsystems/-in-memory-network-map-cache/network-map-nodes.html
new file mode 100644
index 0000000000..7f5da8f63e
--- /dev/null
+++ b/docs/build/html/api/core.node.subsystems/-in-memory-network-map-cache/network-map-nodes.html
@@ -0,0 +1,20 @@
+
+
+InMemoryNetworkMapCache.networkMapNodes -
+
+
+
+core.node.subsystems / 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/core.node.subsystems/-in-memory-network-map-cache/party-nodes.html b/docs/build/html/api/core.node.subsystems/-in-memory-network-map-cache/party-nodes.html
new file mode 100644
index 0000000000..34b657c271
--- /dev/null
+++ b/docs/build/html/api/core.node.subsystems/-in-memory-network-map-cache/party-nodes.html
@@ -0,0 +1,20 @@
+
+
+InMemoryNetworkMapCache.partyNodes -
+
+
+
+core.node.subsystems / 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/core.node.subsystems/-in-memory-network-map-cache/process-update-push.html b/docs/build/html/api/core.node.subsystems/-in-memory-network-map-cache/process-update-push.html
new file mode 100644
index 0000000000..2b428b71c1
--- /dev/null
+++ b/docs/build/html/api/core.node.subsystems/-in-memory-network-map-cache/process-update-push.html
@@ -0,0 +1,15 @@
+
+
+InMemoryNetworkMapCache.processUpdatePush -
+
+
+
+core.node.subsystems / InMemoryNetworkMapCache / processUpdatePush
+
+processUpdatePush
+
+fun processUpdatePush ( req : Update ) : Unit
+
+
+
+
diff --git a/docs/build/html/api/core.node.subsystems/-in-memory-network-map-cache/rates-oracle-nodes.html b/docs/build/html/api/core.node.subsystems/-in-memory-network-map-cache/rates-oracle-nodes.html
new file mode 100644
index 0000000000..118e8689a4
--- /dev/null
+++ b/docs/build/html/api/core.node.subsystems/-in-memory-network-map-cache/rates-oracle-nodes.html
@@ -0,0 +1,20 @@
+
+
+InMemoryNetworkMapCache.ratesOracleNodes -
+
+
+
+core.node.subsystems / InMemoryNetworkMapCache / ratesOracleNodes
+
+ratesOracleNodes
+
+open val ratesOracleNodes : List < NodeInfo >
+Overrides NetworkMapCache.ratesOracleNodes
+A list of nodes that advertise a rates oracle service
+Getter
+A list of nodes that advertise a rates oracle service
+
+
+
+
+
diff --git a/docs/build/html/api/core.node.subsystems/-in-memory-network-map-cache/registered-nodes.html b/docs/build/html/api/core.node.subsystems/-in-memory-network-map-cache/registered-nodes.html
new file mode 100644
index 0000000000..0cb416f7b6
--- /dev/null
+++ b/docs/build/html/api/core.node.subsystems/-in-memory-network-map-cache/registered-nodes.html
@@ -0,0 +1,15 @@
+
+
+InMemoryNetworkMapCache.registeredNodes -
+
+
+
+core.node.subsystems / InMemoryNetworkMapCache / registeredNodes
+
+registeredNodes
+
+protected var registeredNodes : MutableMap < Party , NodeInfo >
+
+
+
+
diff --git a/docs/build/html/api/core.node.subsystems/-in-memory-network-map-cache/regulators.html b/docs/build/html/api/core.node.subsystems/-in-memory-network-map-cache/regulators.html
new file mode 100644
index 0000000000..e62e881178
--- /dev/null
+++ b/docs/build/html/api/core.node.subsystems/-in-memory-network-map-cache/regulators.html
@@ -0,0 +1,24 @@
+
+
+InMemoryNetworkMapCache.regulators -
+
+
+
+core.node.subsystems / 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 outwith
+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 outwith
+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/core.node.subsystems/-in-memory-network-map-cache/remove-node.html b/docs/build/html/api/core.node.subsystems/-in-memory-network-map-cache/remove-node.html
new file mode 100644
index 0000000000..4c36d442b0
--- /dev/null
+++ b/docs/build/html/api/core.node.subsystems/-in-memory-network-map-cache/remove-node.html
@@ -0,0 +1,17 @@
+
+
+InMemoryNetworkMapCache.removeNode -
+
+
+
+core.node.subsystems / 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/core.node.subsystems/-in-memory-network-map-cache/timestamping-nodes.html b/docs/build/html/api/core.node.subsystems/-in-memory-network-map-cache/timestamping-nodes.html
new file mode 100644
index 0000000000..f7d20d209a
--- /dev/null
+++ b/docs/build/html/api/core.node.subsystems/-in-memory-network-map-cache/timestamping-nodes.html
@@ -0,0 +1,20 @@
+
+
+InMemoryNetworkMapCache.timestampingNodes -
+
+
+
+core.node.subsystems / InMemoryNetworkMapCache / timestampingNodes
+
+timestampingNodes
+
+open val timestampingNodes : List < NodeInfo >
+Overrides NetworkMapCache.timestampingNodes
+A list of nodes that advertise a timestamping service
+Getter
+A list of nodes that advertise a timestamping service
+
+
+
+
+
diff --git a/docs/build/html/api/core.node.subsystems/-key-management-service/fresh-key.html b/docs/build/html/api/core.node.subsystems/-key-management-service/fresh-key.html
new file mode 100644
index 0000000000..d09ad96e15
--- /dev/null
+++ b/docs/build/html/api/core.node.subsystems/-key-management-service/fresh-key.html
@@ -0,0 +1,16 @@
+
+
+KeyManagementService.freshKey -
+
+
+
+core.node.subsystems / 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/core.node.subsystems/-key-management-service/index.html b/docs/build/html/api/core.node.subsystems/-key-management-service/index.html
new file mode 100644
index 0000000000..5cfbadd829
--- /dev/null
+++ b/docs/build/html/api/core.node.subsystems/-key-management-service/index.html
@@ -0,0 +1,62 @@
+
+
+KeyManagementService -
+
+
+
+core.node.subsystems / 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
+
+
+
+
+E2ETestKeyManagementService
+
+class E2ETestKeyManagementService : KeyManagementService
A simple in-memory KMS that doesnt bother saving keys to disk. A real implementation would:
+
+
+
+
+
+
diff --git a/docs/build/html/api/core.node.subsystems/-key-management-service/keys.html b/docs/build/html/api/core.node.subsystems/-key-management-service/keys.html
new file mode 100644
index 0000000000..31fbdf88ab
--- /dev/null
+++ b/docs/build/html/api/core.node.subsystems/-key-management-service/keys.html
@@ -0,0 +1,16 @@
+
+
+KeyManagementService.keys -
+
+
+
+core.node.subsystems / 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/core.node.subsystems/-key-management-service/to-private.html b/docs/build/html/api/core.node.subsystems/-key-management-service/to-private.html
new file mode 100644
index 0000000000..da1d95acdf
--- /dev/null
+++ b/docs/build/html/api/core.node.subsystems/-key-management-service/to-private.html
@@ -0,0 +1,15 @@
+
+
+KeyManagementService.toPrivate -
+
+
+
+core.node.subsystems / KeyManagementService / toPrivate
+
+toPrivate
+
+open fun toPrivate ( publicKey : PublicKey ) : PrivateKey
+
+
+
+
diff --git a/docs/build/html/api/core.node.subsystems/-monitoring-service/-init-.html b/docs/build/html/api/core.node.subsystems/-monitoring-service/-init-.html
new file mode 100644
index 0000000000..d2930ad3ee
--- /dev/null
+++ b/docs/build/html/api/core.node.subsystems/-monitoring-service/-init-.html
@@ -0,0 +1,16 @@
+
+
+MonitoringService. -
+
+
+
+core.node.subsystems / 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/core.node.subsystems/-monitoring-service/index.html b/docs/build/html/api/core.node.subsystems/-monitoring-service/index.html
new file mode 100644
index 0000000000..ce0893730e
--- /dev/null
+++ b/docs/build/html/api/core.node.subsystems/-monitoring-service/index.html
@@ -0,0 +1,40 @@
+
+
+MonitoringService -
+
+
+
+core.node.subsystems / MonitoringService
+
+MonitoringService
+class 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.
+
+
+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>
+
+
+
+
+
diff --git a/docs/build/html/api/core.node.subsystems/-monitoring-service/metrics.html b/docs/build/html/api/core.node.subsystems/-monitoring-service/metrics.html
new file mode 100644
index 0000000000..46d6d168bb
--- /dev/null
+++ b/docs/build/html/api/core.node.subsystems/-monitoring-service/metrics.html
@@ -0,0 +1,15 @@
+
+
+MonitoringService.metrics -
+
+
+
+core.node.subsystems / MonitoringService / metrics
+
+metrics
+
+val metrics : <ERROR CLASS>
+
+
+
+
diff --git a/docs/build/html/api/core.node.subsystems/-network-cache-error/-deregistration-failed/-init-.html b/docs/build/html/api/core.node.subsystems/-network-cache-error/-deregistration-failed/-init-.html
new file mode 100644
index 0000000000..b1d2510ee6
--- /dev/null
+++ b/docs/build/html/api/core.node.subsystems/-network-cache-error/-deregistration-failed/-init-.html
@@ -0,0 +1,15 @@
+
+
+NetworkCacheError.DeregistrationFailed. -
+
+
+
+core.node.subsystems / 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/core.node.subsystems/-network-cache-error/-deregistration-failed/index.html b/docs/build/html/api/core.node.subsystems/-network-cache-error/-deregistration-failed/index.html
new file mode 100644
index 0000000000..33d7fd6f01
--- /dev/null
+++ b/docs/build/html/api/core.node.subsystems/-network-cache-error/-deregistration-failed/index.html
@@ -0,0 +1,27 @@
+
+
+NetworkCacheError.DeregistrationFailed -
+
+
+
+core.node.subsystems / 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/core.node.subsystems/-network-cache-error/index.html b/docs/build/html/api/core.node.subsystems/-network-cache-error/index.html
new file mode 100644
index 0000000000..f35c010a6d
--- /dev/null
+++ b/docs/build/html/api/core.node.subsystems/-network-cache-error/index.html
@@ -0,0 +1,38 @@
+
+
+NetworkCacheError -
+
+
+
+core.node.subsystems / 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
+
+
+
+
+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/core.node.subsystems/-network-map-cache/add-map-service.html b/docs/build/html/api/core.node.subsystems/-network-map-cache/add-map-service.html
new file mode 100644
index 0000000000..12b1a7a084
--- /dev/null
+++ b/docs/build/html/api/core.node.subsystems/-network-map-cache/add-map-service.html
@@ -0,0 +1,33 @@
+
+
+NetworkMapCache.addMapService -
+
+
+
+core.node.subsystems / NetworkMapCache / addMapService
+
+addMapService
+
+abstract fun addMapService ( smm : StateMachineManager , net : MessagingService , service : NodeInfo , 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
+
+smm
- state machine manager to use when requesting
+
+
+net
- the network messaging service
+
+
+service
- 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/core.node.subsystems/-network-map-cache/add-node.html b/docs/build/html/api/core.node.subsystems/-network-map-cache/add-node.html
new file mode 100644
index 0000000000..be637ccf0b
--- /dev/null
+++ b/docs/build/html/api/core.node.subsystems/-network-map-cache/add-node.html
@@ -0,0 +1,16 @@
+
+
+NetworkMapCache.addNode -
+
+
+
+core.node.subsystems / 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/core.node.subsystems/-network-map-cache/deregister-for-updates.html b/docs/build/html/api/core.node.subsystems/-network-map-cache/deregister-for-updates.html
new file mode 100644
index 0000000000..0d227f1fba
--- /dev/null
+++ b/docs/build/html/api/core.node.subsystems/-network-map-cache/deregister-for-updates.html
@@ -0,0 +1,25 @@
+
+
+NetworkMapCache.deregisterForUpdates -
+
+
+
+core.node.subsystems / NetworkMapCache / deregisterForUpdates
+
+deregisterForUpdates
+
+abstract fun deregisterForUpdates ( smm : StateMachineManager , net : MessagingService , service : NodeInfo ) : <ERROR CLASS> < Unit >
+Deregister from updates from the given map service.
+Parameters
+
+smm
- state machine manager to use when requesting
+
+
+net
- the network messaging service
+
+
+service
- the network map service to fetch current state from.
+
+
+
+
diff --git a/docs/build/html/api/core.node.subsystems/-network-map-cache/get-recommended.html b/docs/build/html/api/core.node.subsystems/-network-map-cache/get-recommended.html
new file mode 100644
index 0000000000..4344ba301b
--- /dev/null
+++ b/docs/build/html/api/core.node.subsystems/-network-map-cache/get-recommended.html
@@ -0,0 +1,18 @@
+
+
+NetworkMapCache.getRecommended -
+
+
+
+core.node.subsystems / 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/core.node.subsystems/-network-map-cache/get.html b/docs/build/html/api/core.node.subsystems/-network-map-cache/get.html
new file mode 100644
index 0000000000..0d370e5376
--- /dev/null
+++ b/docs/build/html/api/core.node.subsystems/-network-map-cache/get.html
@@ -0,0 +1,21 @@
+
+
+NetworkMapCache.get -
+
+
+
+core.node.subsystems / 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/core.node.subsystems/-network-map-cache/index.html b/docs/build/html/api/core.node.subsystems/-network-map-cache/index.html
new file mode 100644
index 0000000000..300c87bd15
--- /dev/null
+++ b/docs/build/html/api/core.node.subsystems/-network-map-cache/index.html
@@ -0,0 +1,141 @@
+
+
+NetworkMapCache -
+
+
+
+core.node.subsystems / 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.
+
+
+Properties
+
+
+
+
+networkMapNodes
+
+abstract val networkMapNodes : List < NodeInfo >
A list of nodes that advertise a network map service
+
+
+
+
+partyNodes
+
+abstract val partyNodes : List < NodeInfo >
A list of all nodes the cache is aware of
+
+
+
+
+ratesOracleNodes
+
+abstract val ratesOracleNodes : List < NodeInfo >
A list of nodes that advertise a rates oracle service
+
+
+
+
+regulators
+
+abstract val regulators : List < NodeInfo >
A list of nodes that advertise a regulatory service. Identifying the correct regulator for a trade is outwith
+the scope of the network map service, and this is intended solely as a sanity check on configuration stored
+elsewhere.
+
+
+
+
+timestampingNodes
+
+abstract val timestampingNodes : List < NodeInfo >
A list of nodes that advertise a timestamping service
+
+
+
+
+Functions
+
+
+
+
+addMapService
+
+abstract fun addMapService ( smm : StateMachineManager , net : MessagingService , service : NodeInfo , 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 ( smm : StateMachineManager , 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.
+
+
+
+
+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.
+
+
+
+
+nodeForPartyName
+
+open fun nodeForPartyName ( name : String ) : NodeInfo ?
Look up the node info for a party.
+
+
+
+
+removeNode
+
+abstract fun removeNode ( node : NodeInfo ) : Unit
Removes a node from the local cache
+
+
+
+
+Companion Object Properties
+
+
+
+
+logger
+
+val logger : <ERROR CLASS>
+
+
+
+Inheritors
+
+
+
+
+InMemoryNetworkMapCache
+
+open class InMemoryNetworkMapCache : NetworkMapCache
Extremely simple in-memory cache of the network map.
+
+
+
+
+
+
diff --git a/docs/build/html/api/core.node.subsystems/-network-map-cache/logger.html b/docs/build/html/api/core.node.subsystems/-network-map-cache/logger.html
new file mode 100644
index 0000000000..bc750de9c4
--- /dev/null
+++ b/docs/build/html/api/core.node.subsystems/-network-map-cache/logger.html
@@ -0,0 +1,15 @@
+
+
+NetworkMapCache.logger -
+
+
+
+core.node.subsystems / NetworkMapCache / logger
+
+logger
+
+val logger : <ERROR CLASS>
+
+
+
+
diff --git a/docs/build/html/api/core.node.subsystems/-network-map-cache/network-map-nodes.html b/docs/build/html/api/core.node.subsystems/-network-map-cache/network-map-nodes.html
new file mode 100644
index 0000000000..c06e75ff1c
--- /dev/null
+++ b/docs/build/html/api/core.node.subsystems/-network-map-cache/network-map-nodes.html
@@ -0,0 +1,16 @@
+
+
+NetworkMapCache.networkMapNodes -
+
+
+
+core.node.subsystems / 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/core.node.subsystems/-network-map-cache/node-for-party-name.html b/docs/build/html/api/core.node.subsystems/-network-map-cache/node-for-party-name.html
new file mode 100644
index 0000000000..be34262f1a
--- /dev/null
+++ b/docs/build/html/api/core.node.subsystems/-network-map-cache/node-for-party-name.html
@@ -0,0 +1,16 @@
+
+
+NetworkMapCache.nodeForPartyName -
+
+
+
+core.node.subsystems / NetworkMapCache / nodeForPartyName
+
+nodeForPartyName
+
+open fun nodeForPartyName ( name : String ) : NodeInfo ?
+Look up the node info for a party.
+
+
+
+
diff --git a/docs/build/html/api/core.node.subsystems/-network-map-cache/party-nodes.html b/docs/build/html/api/core.node.subsystems/-network-map-cache/party-nodes.html
new file mode 100644
index 0000000000..9baf0dc160
--- /dev/null
+++ b/docs/build/html/api/core.node.subsystems/-network-map-cache/party-nodes.html
@@ -0,0 +1,16 @@
+
+
+NetworkMapCache.partyNodes -
+
+
+
+core.node.subsystems / 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/core.node.subsystems/-network-map-cache/rates-oracle-nodes.html b/docs/build/html/api/core.node.subsystems/-network-map-cache/rates-oracle-nodes.html
new file mode 100644
index 0000000000..6e7d3b2771
--- /dev/null
+++ b/docs/build/html/api/core.node.subsystems/-network-map-cache/rates-oracle-nodes.html
@@ -0,0 +1,16 @@
+
+
+NetworkMapCache.ratesOracleNodes -
+
+
+
+core.node.subsystems / NetworkMapCache / ratesOracleNodes
+
+ratesOracleNodes
+
+abstract val ratesOracleNodes : List < NodeInfo >
+A list of nodes that advertise a rates oracle service
+
+
+
+
diff --git a/docs/build/html/api/core.node.subsystems/-network-map-cache/regulators.html b/docs/build/html/api/core.node.subsystems/-network-map-cache/regulators.html
new file mode 100644
index 0000000000..3e5b71200a
--- /dev/null
+++ b/docs/build/html/api/core.node.subsystems/-network-map-cache/regulators.html
@@ -0,0 +1,18 @@
+
+
+NetworkMapCache.regulators -
+
+
+
+core.node.subsystems / 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 outwith
+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/core.node.subsystems/-network-map-cache/remove-node.html b/docs/build/html/api/core.node.subsystems/-network-map-cache/remove-node.html
new file mode 100644
index 0000000000..da50a028fa
--- /dev/null
+++ b/docs/build/html/api/core.node.subsystems/-network-map-cache/remove-node.html
@@ -0,0 +1,16 @@
+
+
+NetworkMapCache.removeNode -
+
+
+
+core.node.subsystems / NetworkMapCache / removeNode
+
+removeNode
+
+abstract fun removeNode ( node : NodeInfo ) : Unit
+Removes a node from the local cache
+
+
+
+
diff --git a/docs/build/html/api/core.node.subsystems/-network-map-cache/timestamping-nodes.html b/docs/build/html/api/core.node.subsystems/-network-map-cache/timestamping-nodes.html
new file mode 100644
index 0000000000..293d2bd027
--- /dev/null
+++ b/docs/build/html/api/core.node.subsystems/-network-map-cache/timestamping-nodes.html
@@ -0,0 +1,16 @@
+
+
+NetworkMapCache.timestampingNodes -
+
+
+
+core.node.subsystems / NetworkMapCache / timestampingNodes
+
+timestampingNodes
+
+abstract val timestampingNodes : List < NodeInfo >
+A list of nodes that advertise a timestamping service
+
+
+
+
diff --git a/docs/build/html/api/core.node.subsystems/-node-wallet-service/-init-.html b/docs/build/html/api/core.node.subsystems/-node-wallet-service/-init-.html
new file mode 100644
index 0000000000..f0828687e5
--- /dev/null
+++ b/docs/build/html/api/core.node.subsystems/-node-wallet-service/-init-.html
@@ -0,0 +1,17 @@
+
+
+NodeWalletService. -
+
+
+
+core.node.subsystems / NodeWalletService / <init>
+
+<init>
+NodeWalletService ( services : ServiceHub )
+This class implements a simple, in memory wallet that tracks states that are owned by us, and also has a convenience
+method to auto-generate some self-issued cash states that can be used for test trading. A real wallet would persist
+states relevant to us into a database and once such a wallet is implemented, this scaffolding can be removed.
+
+
+
+
diff --git a/docs/build/html/api/core.node.subsystems/-node-wallet-service/cash-balances.html b/docs/build/html/api/core.node.subsystems/-node-wallet-service/cash-balances.html
new file mode 100644
index 0000000000..68fc252b3a
--- /dev/null
+++ b/docs/build/html/api/core.node.subsystems/-node-wallet-service/cash-balances.html
@@ -0,0 +1,22 @@
+
+
+NodeWalletService.cashBalances -
+
+
+
+core.node.subsystems / NodeWalletService / cashBalances
+
+cashBalances
+
+val cashBalances : Map < Currency , Amount >
+Overrides WalletService.cashBalances
+Returns a snapshot 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 0.
+Getter
+Returns a snapshot 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 0.
+
+
+
+
+
diff --git a/docs/build/html/api/core.node.subsystems/-node-wallet-service/current-wallet.html b/docs/build/html/api/core.node.subsystems/-node-wallet-service/current-wallet.html
new file mode 100644
index 0000000000..5e86ab0e9b
--- /dev/null
+++ b/docs/build/html/api/core.node.subsystems/-node-wallet-service/current-wallet.html
@@ -0,0 +1,22 @@
+
+
+NodeWalletService.currentWallet -
+
+
+
+core.node.subsystems / NodeWalletService / currentWallet
+
+currentWallet
+
+val currentWallet : Wallet
+Overrides WalletService.currentWallet
+Returns a read-only snapshot of the wallet at the time the call is made. Note that if you consume states or
+keys in this wallet, you must inform the wallet service so it can update its internal state.
+Getter
+Returns a read-only snapshot of the wallet at the time the call is made. Note that if you consume states or
+keys in this wallet, you must inform the wallet service so it can update its internal state.
+
+
+
+
+
diff --git a/docs/build/html/api/core.node.subsystems/-node-wallet-service/fill-with-some-test-cash.html b/docs/build/html/api/core.node.subsystems/-node-wallet-service/fill-with-some-test-cash.html
new file mode 100644
index 0000000000..6028160c7d
--- /dev/null
+++ b/docs/build/html/api/core.node.subsystems/-node-wallet-service/fill-with-some-test-cash.html
@@ -0,0 +1,23 @@
+
+
+NodeWalletService.fillWithSomeTestCash -
+
+
+
+core.node.subsystems / NodeWalletService / fillWithSomeTestCash
+
+fillWithSomeTestCash
+
+fun fillWithSomeTestCash ( howMuch : Amount , atLeastThisManyStates : Int = 3, atMostThisManyStates : Int = 10, rng : Random = Random()) : Unit
+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 wallet.
+The cash is self issued with the current nodes identity, as fetched from the storage service. Thus it
+would not be trusted by any sensible market participant and is effectively an IOU. If it had been issued by
+the central bank, well ... thatd be a different story altogether.
+TODO: Move this out of NodeWalletService
+
+
+
+
+
+
diff --git a/docs/build/html/api/core.node.subsystems/-node-wallet-service/index.html b/docs/build/html/api/core.node.subsystems/-node-wallet-service/index.html
new file mode 100644
index 0000000000..af8730cf29
--- /dev/null
+++ b/docs/build/html/api/core.node.subsystems/-node-wallet-service/index.html
@@ -0,0 +1,116 @@
+
+
+NodeWalletService -
+
+
+
+core.node.subsystems / NodeWalletService
+
+NodeWalletService
+class NodeWalletService : WalletService
+This class implements a simple, in memory wallet that tracks states that are owned by us, and also has a convenience
+method to auto-generate some self-issued cash states that can be used for test trading. A real wallet would persist
+states relevant to us into a database and once such a wallet is implemented, this scaffolding can be removed.
+
+
+Constructors
+
+
+
+
+<init>
+
+NodeWalletService ( services : ServiceHub )
This class implements a simple, in memory wallet that tracks states that are owned by us, and also has a convenience
+method to auto-generate some self-issued cash states that can be used for test trading. A real wallet would persist
+states relevant to us into a database and once such a wallet is implemented, this scaffolding can be removed.
+
+
+
+
+Properties
+
+
+
+
+cashBalances
+
+val cashBalances : Map < Currency , Amount >
Returns a snapshot 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 0.
+
+
+
+
+currentWallet
+
+val currentWallet : Wallet
Returns a read-only snapshot of the wallet at the time the call is made. Note that if you consume states or
+keys in this wallet, you must inform the wallet service so it can update its internal state.
+
+
+
+
+linearHeads
+
+val linearHeads : Map < SecureHash , StateAndRef < LinearState > >
Returns a snapshot of the heads of LinearStates
+
+
+
+
+Functions
+
+
+
+
+fillWithSomeTestCash
+
+fun fillWithSomeTestCash ( howMuch : Amount , atLeastThisManyStates : Int = 3, atMostThisManyStates : Int = 10, rng : Random = Random()) : Unit
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 wallet.
+
+
+
+
+notifyAll
+
+fun notifyAll ( txns : Iterable < WireTransaction > ) : Wallet
Possibly update the wallet 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
+
+
+
+
+Inherited Functions
+
+Extension Functions
+
+
+
diff --git a/docs/build/html/api/core.node.subsystems/-node-wallet-service/linear-heads.html b/docs/build/html/api/core.node.subsystems/-node-wallet-service/linear-heads.html
new file mode 100644
index 0000000000..6c1edfea99
--- /dev/null
+++ b/docs/build/html/api/core.node.subsystems/-node-wallet-service/linear-heads.html
@@ -0,0 +1,20 @@
+
+
+NodeWalletService.linearHeads -
+
+
+
+core.node.subsystems / NodeWalletService / linearHeads
+
+linearHeads
+
+val linearHeads : Map < SecureHash , StateAndRef < LinearState > >
+Overrides WalletService.linearHeads
+Returns a snapshot of the heads of LinearStates
+Getter
+Returns a snapshot of the heads of LinearStates
+
+
+
+
+
diff --git a/docs/build/html/api/core.node.subsystems/-node-wallet-service/notify-all.html b/docs/build/html/api/core.node.subsystems/-node-wallet-service/notify-all.html
new file mode 100644
index 0000000000..12d07f7f37
--- /dev/null
+++ b/docs/build/html/api/core.node.subsystems/-node-wallet-service/notify-all.html
@@ -0,0 +1,22 @@
+
+
+NodeWalletService.notifyAll -
+
+
+
+core.node.subsystems / NodeWalletService / notifyAll
+
+notifyAll
+
+fun notifyAll ( txns : Iterable < WireTransaction > ) : Wallet
+Overrides WalletService.notifyAll
+Possibly update the wallet 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 wallet 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/core.node.subsystems/-storage-service-impl/-init-.html b/docs/build/html/api/core.node.subsystems/-storage-service-impl/-init-.html
new file mode 100644
index 0000000000..e6258c3948
--- /dev/null
+++ b/docs/build/html/api/core.node.subsystems/-storage-service-impl/-init-.html
@@ -0,0 +1,14 @@
+
+
+StorageServiceImpl. -
+
+
+
+core.node.subsystems / StorageServiceImpl / <init>
+
+<init>
+StorageServiceImpl ( attachments : AttachmentStorage , keypair : KeyPair , identity : Party = Party("Unit test party", keypair.public), recordingAs : ( String ) -> String = { tableName -> "" })
+
+
+
+
diff --git a/docs/build/html/api/core.node.subsystems/-storage-service-impl/attachments.html b/docs/build/html/api/core.node.subsystems/-storage-service-impl/attachments.html
new file mode 100644
index 0000000000..03fdb23eee
--- /dev/null
+++ b/docs/build/html/api/core.node.subsystems/-storage-service-impl/attachments.html
@@ -0,0 +1,17 @@
+
+
+StorageServiceImpl.attachments -
+
+
+
+core.node.subsystems / 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/core.node.subsystems/-storage-service-impl/index.html b/docs/build/html/api/core.node.subsystems/-storage-service-impl/index.html
new file mode 100644
index 0000000000..e6becf293b
--- /dev/null
+++ b/docs/build/html/api/core.node.subsystems/-storage-service-impl/index.html
@@ -0,0 +1,78 @@
+
+
+StorageServiceImpl -
+
+
+
+core.node.subsystems / StorageServiceImpl
+
+StorageServiceImpl
+open class StorageServiceImpl : StorageService
+
+
+Constructors
+
+
+
+
+<init>
+
+StorageServiceImpl ( attachments : AttachmentStorage , keypair : KeyPair , identity : Party = Party("Unit test party", keypair.public), recordingAs : ( String ) -> String = { tableName -> "" })
+
+
+
+Properties
+
+
+
+
+attachments
+
+open val attachments : AttachmentStorage
Provides access to storage of arbitrary JAR files (which may contain only data, no code).
+
+
+
+
+myLegalIdentity
+
+open val myLegalIdentity : Party
Returns the legal identity that this node is configured with. Assumed to be initialised when the node is
+first installed.
+
+
+
+
+myLegalIdentityKey
+
+open val myLegalIdentityKey : KeyPair
+
+
+
+recordingAs
+
+val recordingAs : ( String ) -> String
+
+
+
+stateMachines
+
+open val stateMachines : MutableMap < SecureHash , ByteArray >
+
+
+
+tables
+
+val tables : HashMap < String , MutableMap < * , * > >
+
+
+
+validatedTransactions
+
+open val validatedTransactions : MutableMap < SecureHash , SignedTransaction >
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/core.node.subsystems/-storage-service-impl/my-legal-identity-key.html b/docs/build/html/api/core.node.subsystems/-storage-service-impl/my-legal-identity-key.html
new file mode 100644
index 0000000000..fb90b5de51
--- /dev/null
+++ b/docs/build/html/api/core.node.subsystems/-storage-service-impl/my-legal-identity-key.html
@@ -0,0 +1,16 @@
+
+
+StorageServiceImpl.myLegalIdentityKey -
+
+
+
+core.node.subsystems / StorageServiceImpl / myLegalIdentityKey
+
+myLegalIdentityKey
+
+open val myLegalIdentityKey : KeyPair
+Overrides StorageService.myLegalIdentityKey
+
+
+
+
diff --git a/docs/build/html/api/core.node.subsystems/-storage-service-impl/my-legal-identity.html b/docs/build/html/api/core.node.subsystems/-storage-service-impl/my-legal-identity.html
new file mode 100644
index 0000000000..fb4f5bb586
--- /dev/null
+++ b/docs/build/html/api/core.node.subsystems/-storage-service-impl/my-legal-identity.html
@@ -0,0 +1,18 @@
+
+
+StorageServiceImpl.myLegalIdentity -
+
+
+
+core.node.subsystems / StorageServiceImpl / myLegalIdentity
+
+myLegalIdentity
+
+open val myLegalIdentity : Party
+Overrides StorageService.myLegalIdentity
+Returns the legal identity that this node is configured with. Assumed to be initialised when the node is
+first installed.
+
+
+
+
diff --git a/docs/build/html/api/core.node.subsystems/-storage-service-impl/recording-as.html b/docs/build/html/api/core.node.subsystems/-storage-service-impl/recording-as.html
new file mode 100644
index 0000000000..8f763ffcc6
--- /dev/null
+++ b/docs/build/html/api/core.node.subsystems/-storage-service-impl/recording-as.html
@@ -0,0 +1,15 @@
+
+
+StorageServiceImpl.recordingAs -
+
+
+
+core.node.subsystems / StorageServiceImpl / recordingAs
+
+recordingAs
+
+val recordingAs : ( String ) -> String
+
+
+
+
diff --git a/docs/build/html/api/core.node.subsystems/-storage-service-impl/state-machines.html b/docs/build/html/api/core.node.subsystems/-storage-service-impl/state-machines.html
new file mode 100644
index 0000000000..a145cb8b69
--- /dev/null
+++ b/docs/build/html/api/core.node.subsystems/-storage-service-impl/state-machines.html
@@ -0,0 +1,16 @@
+
+
+StorageServiceImpl.stateMachines -
+
+
+
+core.node.subsystems / StorageServiceImpl / stateMachines
+
+stateMachines
+
+open val stateMachines : MutableMap < SecureHash , ByteArray >
+Overrides StorageService.stateMachines
+
+
+
+
diff --git a/docs/build/html/api/core.node.subsystems/-storage-service-impl/tables.html b/docs/build/html/api/core.node.subsystems/-storage-service-impl/tables.html
new file mode 100644
index 0000000000..b215205d32
--- /dev/null
+++ b/docs/build/html/api/core.node.subsystems/-storage-service-impl/tables.html
@@ -0,0 +1,15 @@
+
+
+StorageServiceImpl.tables -
+
+
+
+core.node.subsystems / StorageServiceImpl / tables
+
+tables
+
+protected val tables : HashMap < String , MutableMap < * , * > >
+
+
+
+
diff --git a/docs/build/html/api/core.node.subsystems/-storage-service-impl/validated-transactions.html b/docs/build/html/api/core.node.subsystems/-storage-service-impl/validated-transactions.html
new file mode 100644
index 0000000000..e69c861c41
--- /dev/null
+++ b/docs/build/html/api/core.node.subsystems/-storage-service-impl/validated-transactions.html
@@ -0,0 +1,24 @@
+
+
+StorageServiceImpl.validatedTransactions -
+
+
+
+core.node.subsystems / StorageServiceImpl / validatedTransactions
+
+validatedTransactions
+
+open val validatedTransactions : MutableMap < SecureHash , SignedTransaction >
+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.
+Getter
+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/core.node.subsystems/-storage-service/attachments.html b/docs/build/html/api/core.node.subsystems/-storage-service/attachments.html
new file mode 100644
index 0000000000..cff171927f
--- /dev/null
+++ b/docs/build/html/api/core.node.subsystems/-storage-service/attachments.html
@@ -0,0 +1,16 @@
+
+
+StorageService.attachments -
+
+
+
+core.node.subsystems / 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/core.node.subsystems/-storage-service/index.html b/docs/build/html/api/core.node.subsystems/-storage-service/index.html
new file mode 100644
index 0000000000..c0477fa596
--- /dev/null
+++ b/docs/build/html/api/core.node.subsystems/-storage-service/index.html
@@ -0,0 +1,69 @@
+
+
+StorageService -
+
+
+
+core.node.subsystems / 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
+
+
+
+
+attachments
+
+abstract val attachments : AttachmentStorage
Provides access to storage of arbitrary JAR files (which may contain only data, no code).
+
+
+
+
+myLegalIdentity
+
+abstract val myLegalIdentity : Party
Returns the legal identity that this node is configured with. Assumed to be initialised when the node is
+first installed.
+
+
+
+
+myLegalIdentityKey
+
+abstract val myLegalIdentityKey : KeyPair
+
+
+
+stateMachines
+
+abstract val stateMachines : MutableMap < SecureHash , ByteArray >
+
+
+
+validatedTransactions
+
+abstract val validatedTransactions : MutableMap < SecureHash , SignedTransaction >
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.
+
+
+
+
+Inheritors
+
+
+
diff --git a/docs/build/html/api/core.node.subsystems/-storage-service/my-legal-identity-key.html b/docs/build/html/api/core.node.subsystems/-storage-service/my-legal-identity-key.html
new file mode 100644
index 0000000000..644fdd050d
--- /dev/null
+++ b/docs/build/html/api/core.node.subsystems/-storage-service/my-legal-identity-key.html
@@ -0,0 +1,15 @@
+
+
+StorageService.myLegalIdentityKey -
+
+
+
+core.node.subsystems / StorageService / myLegalIdentityKey
+
+myLegalIdentityKey
+
+abstract val myLegalIdentityKey : KeyPair
+
+
+
+
diff --git a/docs/build/html/api/core.node.subsystems/-storage-service/my-legal-identity.html b/docs/build/html/api/core.node.subsystems/-storage-service/my-legal-identity.html
new file mode 100644
index 0000000000..cd301f81a3
--- /dev/null
+++ b/docs/build/html/api/core.node.subsystems/-storage-service/my-legal-identity.html
@@ -0,0 +1,17 @@
+
+
+StorageService.myLegalIdentity -
+
+
+
+core.node.subsystems / StorageService / myLegalIdentity
+
+myLegalIdentity
+
+abstract val myLegalIdentity : Party
+Returns the legal identity that this node is configured with. Assumed to be initialised when the node is
+first installed.
+
+
+
+
diff --git a/docs/build/html/api/core.node.subsystems/-storage-service/state-machines.html b/docs/build/html/api/core.node.subsystems/-storage-service/state-machines.html
new file mode 100644
index 0000000000..2734f7caa4
--- /dev/null
+++ b/docs/build/html/api/core.node.subsystems/-storage-service/state-machines.html
@@ -0,0 +1,15 @@
+
+
+StorageService.stateMachines -
+
+
+
+core.node.subsystems / StorageService / stateMachines
+
+stateMachines
+
+abstract val stateMachines : MutableMap < SecureHash , ByteArray >
+
+
+
+
diff --git a/docs/build/html/api/core.node.subsystems/-storage-service/validated-transactions.html b/docs/build/html/api/core.node.subsystems/-storage-service/validated-transactions.html
new file mode 100644
index 0000000000..015880b293
--- /dev/null
+++ b/docs/build/html/api/core.node.subsystems/-storage-service/validated-transactions.html
@@ -0,0 +1,18 @@
+
+
+StorageService.validatedTransactions -
+
+
+
+core.node.subsystems / StorageService / validatedTransactions
+
+validatedTransactions
+
+abstract val validatedTransactions : MutableMap < SecureHash , SignedTransaction >
+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/core.node.subsystems/-t-o-p-i-c_-d-e-f-a-u-l-t_-p-o-s-t-f-i-x.html b/docs/build/html/api/core.node.subsystems/-t-o-p-i-c_-d-e-f-a-u-l-t_-p-o-s-t-f-i-x.html
new file mode 100644
index 0000000000..947b648902
--- /dev/null
+++ b/docs/build/html/api/core.node.subsystems/-t-o-p-i-c_-d-e-f-a-u-l-t_-p-o-s-t-f-i-x.html
@@ -0,0 +1,16 @@
+
+
+TOPIC_DEFAULT_POSTFIX -
+
+
+
+core.node.subsystems / TOPIC_DEFAULT_POSTFIX
+
+TOPIC_DEFAULT_POSTFIX
+
+val TOPIC_DEFAULT_POSTFIX : String
+Postfix for base topics when sending a request to a service.
+
+
+
+
diff --git a/docs/build/html/api/core.node.subsystems/-wallet-service/cash-balances.html b/docs/build/html/api/core.node.subsystems/-wallet-service/cash-balances.html
new file mode 100644
index 0000000000..97935c1486
--- /dev/null
+++ b/docs/build/html/api/core.node.subsystems/-wallet-service/cash-balances.html
@@ -0,0 +1,17 @@
+
+
+WalletService.cashBalances -
+
+
+
+core.node.subsystems / WalletService / cashBalances
+
+cashBalances
+
+abstract val cashBalances : Map < Currency , Amount >
+Returns a snapshot 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 0.
+
+
+
+
diff --git a/docs/build/html/api/core.node.subsystems/-wallet-service/current-wallet.html b/docs/build/html/api/core.node.subsystems/-wallet-service/current-wallet.html
new file mode 100644
index 0000000000..1b9a7ca390
--- /dev/null
+++ b/docs/build/html/api/core.node.subsystems/-wallet-service/current-wallet.html
@@ -0,0 +1,17 @@
+
+
+WalletService.currentWallet -
+
+
+
+core.node.subsystems / WalletService / currentWallet
+
+currentWallet
+
+abstract val currentWallet : Wallet
+Returns a read-only snapshot of the wallet at the time the call is made. Note that if you consume states or
+keys in this wallet, you must inform the wallet service so it can update its internal state.
+
+
+
+
diff --git a/docs/build/html/api/core.node.subsystems/-wallet-service/index.html b/docs/build/html/api/core.node.subsystems/-wallet-service/index.html
new file mode 100644
index 0000000000..2c6346b471
--- /dev/null
+++ b/docs/build/html/api/core.node.subsystems/-wallet-service/index.html
@@ -0,0 +1,104 @@
+
+
+WalletService -
+
+
+
+core.node.subsystems / WalletService
+
+WalletService
+interface WalletService
+A WalletService is responsible for securely and safely persisting the current state of a wallet to storage. The
+wallet service vends immutable snapshots of the current wallet for working with: if you build a transaction based
+on a wallet 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
+
+
+Properties
+
+
+
+
+cashBalances
+
+abstract val cashBalances : Map < Currency , Amount >
Returns a snapshot 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 0.
+
+
+
+
+currentWallet
+
+abstract val currentWallet : Wallet
Returns a read-only snapshot of the wallet at the time the call is made. Note that if you consume states or
+keys in this wallet, you must inform the wallet service so it can update its internal state.
+
+
+
+
+linearHeads
+
+abstract val linearHeads : Map < SecureHash , StateAndRef < LinearState > >
Returns a snapshot of the heads of LinearStates
+
+
+
+
+Functions
+
+Extension Functions
+
+Inheritors
+
+
+
+
+NodeWalletService
+
+class NodeWalletService : WalletService
This class implements a simple, in memory wallet that tracks states that are owned by us, and also has a convenience
+method to auto-generate some self-issued cash states that can be used for test trading. A real wallet would persist
+states relevant to us into a database and once such a wallet is implemented, this scaffolding can be removed.
+
+
+
+
+
+
diff --git a/docs/build/html/api/core.node.subsystems/-wallet-service/linear-heads-of-type_.html b/docs/build/html/api/core.node.subsystems/-wallet-service/linear-heads-of-type_.html
new file mode 100644
index 0000000000..1af12bbe1b
--- /dev/null
+++ b/docs/build/html/api/core.node.subsystems/-wallet-service/linear-heads-of-type_.html
@@ -0,0 +1,16 @@
+
+
+WalletService.linearHeadsOfType_ -
+
+
+
+core.node.subsystems / WalletService / linearHeadsOfType_
+
+linearHeadsOfType_
+
+open fun < T : LinearState > linearHeadsOfType_ ( stateType : Class < T > ) : Map < SecureHash , 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/core.node.subsystems/-wallet-service/linear-heads.html b/docs/build/html/api/core.node.subsystems/-wallet-service/linear-heads.html
new file mode 100644
index 0000000000..8024fd3d28
--- /dev/null
+++ b/docs/build/html/api/core.node.subsystems/-wallet-service/linear-heads.html
@@ -0,0 +1,16 @@
+
+
+WalletService.linearHeads -
+
+
+
+core.node.subsystems / WalletService / linearHeads
+
+linearHeads
+
+abstract val linearHeads : Map < SecureHash , StateAndRef < LinearState > >
+Returns a snapshot of the heads of LinearStates
+
+
+
+
diff --git a/docs/build/html/api/core.node.subsystems/-wallet-service/notify-all.html b/docs/build/html/api/core.node.subsystems/-wallet-service/notify-all.html
new file mode 100644
index 0000000000..853c3f5505
--- /dev/null
+++ b/docs/build/html/api/core.node.subsystems/-wallet-service/notify-all.html
@@ -0,0 +1,21 @@
+
+
+WalletService.notifyAll -
+
+
+
+core.node.subsystems / WalletService / notifyAll
+
+notifyAll
+
+abstract fun notifyAll ( txns : Iterable < WireTransaction > ) : Wallet
+Possibly update the wallet 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 wallet 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/core.node.subsystems/-wallet-service/notify.html b/docs/build/html/api/core.node.subsystems/-wallet-service/notify.html
new file mode 100644
index 0000000000..e936cf2684
--- /dev/null
+++ b/docs/build/html/api/core.node.subsystems/-wallet-service/notify.html
@@ -0,0 +1,16 @@
+
+
+WalletService.notify -
+
+
+
+core.node.subsystems / WalletService / notify
+
+notify
+
+open fun notify ( tx : WireTransaction ) : Wallet
+Same as notifyAll but with a single transaction.
+
+
+
+
diff --git a/docs/build/html/api/core.node.subsystems/-wallet-service/states-for-refs.html b/docs/build/html/api/core.node.subsystems/-wallet-service/states-for-refs.html
new file mode 100644
index 0000000000..533ceffb1a
--- /dev/null
+++ b/docs/build/html/api/core.node.subsystems/-wallet-service/states-for-refs.html
@@ -0,0 +1,15 @@
+
+
+WalletService.statesForRefs -
+
+
+
+core.node.subsystems / WalletService / statesForRefs
+
+statesForRefs
+
+open fun statesForRefs ( refs : List < StateRef > ) : Map < StateRef , ContractState ? >
+
+
+
+
diff --git a/docs/build/html/api/core.node.subsystems/-wallet/-init-.html b/docs/build/html/api/core.node.subsystems/-wallet/-init-.html
new file mode 100644
index 0000000000..ebf618f19b
--- /dev/null
+++ b/docs/build/html/api/core.node.subsystems/-wallet/-init-.html
@@ -0,0 +1,18 @@
+
+
+Wallet. -
+
+
+
+core.node.subsystems / Wallet / <init>
+
+<init>
+Wallet ( states : List < StateAndRef < ContractState > > )
+A wallet (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 wallet: it is guaranteed not to
+change out from underneath you, even though the canonical currently-best-known wallet may change as we learn
+about new transactions from our peers and generate new transactions that consume states ourselves.
+
+
+
+
diff --git a/docs/build/html/api/core.node.subsystems/-wallet/cash-balances.html b/docs/build/html/api/core.node.subsystems/-wallet/cash-balances.html
new file mode 100644
index 0000000000..cf97f342b3
--- /dev/null
+++ b/docs/build/html/api/core.node.subsystems/-wallet/cash-balances.html
@@ -0,0 +1,17 @@
+
+
+Wallet.cashBalances -
+
+
+
+core.node.subsystems / Wallet / cashBalances
+
+cashBalances
+
+val cashBalances : Map < Currency , Amount >
+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/core.node.subsystems/-wallet/index.html b/docs/build/html/api/core.node.subsystems/-wallet/index.html
new file mode 100644
index 0000000000..1d4a4c882c
--- /dev/null
+++ b/docs/build/html/api/core.node.subsystems/-wallet/index.html
@@ -0,0 +1,63 @@
+
+
+Wallet -
+
+
+
+core.node.subsystems / Wallet
+
+Wallet
+data class Wallet
+A wallet (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 wallet: it is guaranteed not to
+change out from underneath you, even though the canonical currently-best-known wallet may change as we learn
+about new transactions from our peers and generate new transactions that consume states ourselves.
+
+
+Constructors
+
+
+
+
+<init>
+
+Wallet ( states : List < StateAndRef < ContractState > > )
A wallet (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 wallet: it is guaranteed not to
+change out from underneath you, even though the canonical currently-best-known wallet may change as we learn
+about new transactions from our peers and generate new transactions that consume states ourselves.
+
+
+
+
+Properties
+
+
+
+
+cashBalances
+
+val cashBalances : Map < Currency , Amount >
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.
+
+
+
+
+states
+
+val states : List < StateAndRef < ContractState > >
+
+
+
+Functions
+
+
+
diff --git a/docs/build/html/api/core.node.subsystems/-wallet/states-of-type.html b/docs/build/html/api/core.node.subsystems/-wallet/states-of-type.html
new file mode 100644
index 0000000000..d699ba4b37
--- /dev/null
+++ b/docs/build/html/api/core.node.subsystems/-wallet/states-of-type.html
@@ -0,0 +1,15 @@
+
+
+Wallet.statesOfType -
+
+
+
+core.node.subsystems / Wallet / statesOfType
+
+statesOfType
+
+inline fun < reified T : OwnableState > statesOfType ( ) : List < StateAndRef < T > >
+
+
+
+
diff --git a/docs/build/html/api/core.node.subsystems/-wallet/states.html b/docs/build/html/api/core.node.subsystems/-wallet/states.html
new file mode 100644
index 0000000000..59d3ed93e9
--- /dev/null
+++ b/docs/build/html/api/core.node.subsystems/-wallet/states.html
@@ -0,0 +1,15 @@
+
+
+Wallet.states -
+
+
+
+core.node.subsystems / Wallet / states
+
+states
+
+val states : List < StateAndRef < ContractState > >
+
+
+
+
diff --git a/docs/build/html/api/core.node.subsystems/index.html b/docs/build/html/api/core.node.subsystems/index.html
new file mode 100644
index 0000000000..aa3e60b066
--- /dev/null
+++ b/docs/build/html/api/core.node.subsystems/index.html
@@ -0,0 +1,159 @@
+
+
+core.node.subsystems -
+
+
+
+core.node.subsystems
+
+Package core.node.subsystems
+Types
+
+
+
+
+ArtemisMessagingService
+
+class ArtemisMessagingService : MessagingService
This class implements the MessagingService API using Apache Artemis, the successor to their ActiveMQ product.
+Artemis is a message queue broker and here, we embed the entire server inside our own process. Nodes communicate
+with each other using (by default) an Artemis specific protocol, but it supports other protocols like AQMP/1.0
+as well.
+
+
+
+
+DataVendingService
+
+class DataVendingService : AbstractNodeService
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.
+
+
+
+
+E2ETestKeyManagementService
+
+class E2ETestKeyManagementService : KeyManagementService
A simple in-memory KMS that doesnt bother saving keys to disk. A real implementation would:
+
+
+
+
+InMemoryIdentityService
+
+class InMemoryIdentityService : IdentityService
Simple identity service which caches parties and provides functionality for efficient lookup.
+
+
+
+
+InMemoryNetworkMapCache
+
+open class InMemoryNetworkMapCache : NetworkMapCache
Extremely simple in-memory cache of the network map.
+
+
+
+
+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.
+
+
+
+
+MonitoringService
+
+class 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.
+
+
+
+
+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.
+
+
+
+
+NodeWalletService
+
+class NodeWalletService : WalletService
This class implements a simple, in memory wallet that tracks states that are owned by us, and also has a convenience
+method to auto-generate some self-issued cash states that can be used for test trading. A real wallet would persist
+states relevant to us into a database and once such a wallet is implemented, this scaffolding can be removed.
+
+
+
+
+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.
+
+
+
+
+StorageServiceImpl
+
+open class StorageServiceImpl : StorageService
+
+
+
+Wallet
+
+data class Wallet
A wallet (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 wallet: it is guaranteed not to
+change out from underneath you, even though the canonical currently-best-known wallet may change as we learn
+about new transactions from our peers and generate new transactions that consume states ourselves.
+
+
+
+
+WalletService
+
+interface WalletService
A WalletService is responsible for securely and safely persisting the current state of a wallet to storage. The
+wallet service vends immutable snapshots of the current wallet for working with: if you build a transaction based
+on a wallet 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
+
+Properties
+
+
+
+
+TOPIC_DEFAULT_POSTFIX
+
+val TOPIC_DEFAULT_POSTFIX : String
Postfix for base topics when sending a request to a service.
+
+
+
+
+Functions
+
+
+
diff --git a/docs/build/html/api/core.node.subsystems/linear-heads-of-type.html b/docs/build/html/api/core.node.subsystems/linear-heads-of-type.html
new file mode 100644
index 0000000000..ea2d8e467b
--- /dev/null
+++ b/docs/build/html/api/core.node.subsystems/linear-heads-of-type.html
@@ -0,0 +1,15 @@
+
+
+linearHeadsOfType -
+
+
+
+core.node.subsystems / linearHeadsOfType
+
+linearHeadsOfType
+
+inline fun < reified T : LinearState > WalletService . linearHeadsOfType ( ) : <ERROR CLASS>
+
+
+
+
diff --git a/docs/build/html/api/core.node/-abstract-node/-init-.html b/docs/build/html/api/core.node/-abstract-node/-init-.html
new file mode 100644
index 0000000000..42557660c1
--- /dev/null
+++ b/docs/build/html/api/core.node/-abstract-node/-init-.html
@@ -0,0 +1,16 @@
+
+
+AbstractNode. -
+
+
+
+core.node / AbstractNode / <init>
+
+<init>
+AbstractNode ( dir : Path , configuration : NodeConfiguration , initialNetworkMapAddress : NodeInfo ? , advertisedServices : Set < ServiceType > , 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.
+
+
+
+
diff --git a/docs/build/html/api/core.node/-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/core.node/-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..bd8f3475a8
--- /dev/null
+++ b/docs/build/html/api/core.node/-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 -
+
+
+
+core.node / AbstractNode / PRIVATE_KEY_FILE_NAME
+
+PRIVATE_KEY_FILE_NAME
+
+val PRIVATE_KEY_FILE_NAME : String
+
+
+
+
diff --git a/docs/build/html/api/core.node/-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/core.node/-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..10f31803f8
--- /dev/null
+++ b/docs/build/html/api/core.node/-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 -
+
+
+
+core.node / AbstractNode / PUBLIC_IDENTITY_FILE_NAME
+
+PUBLIC_IDENTITY_FILE_NAME
+
+val PUBLIC_IDENTITY_FILE_NAME : String
+
+
+
+
diff --git a/docs/build/html/api/core.node/-abstract-node/_services-that-accept-uploads.html b/docs/build/html/api/core.node/-abstract-node/_services-that-accept-uploads.html
new file mode 100644
index 0000000000..fc519de7f8
--- /dev/null
+++ b/docs/build/html/api/core.node/-abstract-node/_services-that-accept-uploads.html
@@ -0,0 +1,15 @@
+
+
+AbstractNode._servicesThatAcceptUploads -
+
+
+
+core.node / AbstractNode / _servicesThatAcceptUploads
+
+_servicesThatAcceptUploads
+
+protected val _servicesThatAcceptUploads : ArrayList < AcceptsFileUpload >
+
+
+
+
diff --git a/docs/build/html/api/core.node/-abstract-node/advertised-services.html b/docs/build/html/api/core.node/-abstract-node/advertised-services.html
new file mode 100644
index 0000000000..6f356071da
--- /dev/null
+++ b/docs/build/html/api/core.node/-abstract-node/advertised-services.html
@@ -0,0 +1,15 @@
+
+
+AbstractNode.advertisedServices -
+
+
+
+core.node / AbstractNode / advertisedServices
+
+advertisedServices
+
+val advertisedServices : Set < ServiceType >
+
+
+
+
diff --git a/docs/build/html/api/core.node/-abstract-node/api.html b/docs/build/html/api/core.node/-abstract-node/api.html
new file mode 100644
index 0000000000..60a91f39f6
--- /dev/null
+++ b/docs/build/html/api/core.node/-abstract-node/api.html
@@ -0,0 +1,15 @@
+
+
+AbstractNode.api -
+
+
+
+core.node / AbstractNode / api
+
+api
+
+lateinit var api : APIServer
+
+
+
+
diff --git a/docs/build/html/api/core.node/-abstract-node/configuration.html b/docs/build/html/api/core.node/-abstract-node/configuration.html
new file mode 100644
index 0000000000..769502f9b9
--- /dev/null
+++ b/docs/build/html/api/core.node/-abstract-node/configuration.html
@@ -0,0 +1,15 @@
+
+
+AbstractNode.configuration -
+
+
+
+core.node / AbstractNode / configuration
+
+configuration
+
+val configuration : NodeConfiguration
+
+
+
+
diff --git a/docs/build/html/api/core.node/-abstract-node/construct-storage-service.html b/docs/build/html/api/core.node/-abstract-node/construct-storage-service.html
new file mode 100644
index 0000000000..fe10e1d93e
--- /dev/null
+++ b/docs/build/html/api/core.node/-abstract-node/construct-storage-service.html
@@ -0,0 +1,15 @@
+
+
+AbstractNode.constructStorageService -
+
+
+
+core.node / AbstractNode / constructStorageService
+
+constructStorageService
+
+protected open fun constructStorageService ( attachments : NodeAttachmentService , keypair : KeyPair , identity : Party ) : StorageServiceImpl
+
+
+
+
diff --git a/docs/build/html/api/core.node/-abstract-node/dir.html b/docs/build/html/api/core.node/-abstract-node/dir.html
new file mode 100644
index 0000000000..418f2aaf09
--- /dev/null
+++ b/docs/build/html/api/core.node/-abstract-node/dir.html
@@ -0,0 +1,15 @@
+
+
+AbstractNode.dir -
+
+
+
+core.node / AbstractNode / dir
+
+dir
+
+val dir : Path
+
+
+
+
diff --git a/docs/build/html/api/core.node/-abstract-node/find-my-location.html b/docs/build/html/api/core.node/-abstract-node/find-my-location.html
new file mode 100644
index 0000000000..898e6fd912
--- /dev/null
+++ b/docs/build/html/api/core.node/-abstract-node/find-my-location.html
@@ -0,0 +1,15 @@
+
+
+AbstractNode.findMyLocation -
+
+
+
+core.node / AbstractNode / findMyLocation
+
+findMyLocation
+
+protected open fun findMyLocation ( ) : PhysicalLocation ?
+
+
+
+
diff --git a/docs/build/html/api/core.node/-abstract-node/identity.html b/docs/build/html/api/core.node/-abstract-node/identity.html
new file mode 100644
index 0000000000..686c3fa385
--- /dev/null
+++ b/docs/build/html/api/core.node/-abstract-node/identity.html
@@ -0,0 +1,15 @@
+
+
+AbstractNode.identity -
+
+
+
+core.node / AbstractNode / identity
+
+identity
+
+lateinit var identity : IdentityService
+
+
+
+
diff --git a/docs/build/html/api/core.node/-abstract-node/in-node-network-map-service.html b/docs/build/html/api/core.node/-abstract-node/in-node-network-map-service.html
new file mode 100644
index 0000000000..a241257d39
--- /dev/null
+++ b/docs/build/html/api/core.node/-abstract-node/in-node-network-map-service.html
@@ -0,0 +1,15 @@
+
+
+AbstractNode.inNodeNetworkMapService -
+
+
+
+core.node / AbstractNode / inNodeNetworkMapService
+
+inNodeNetworkMapService
+
+var inNodeNetworkMapService : NetworkMapService ?
+
+
+
+
diff --git a/docs/build/html/api/core.node/-abstract-node/in-node-timestamping-service.html b/docs/build/html/api/core.node/-abstract-node/in-node-timestamping-service.html
new file mode 100644
index 0000000000..717307dd29
--- /dev/null
+++ b/docs/build/html/api/core.node/-abstract-node/in-node-timestamping-service.html
@@ -0,0 +1,15 @@
+
+
+AbstractNode.inNodeTimestampingService -
+
+
+
+core.node / AbstractNode / inNodeTimestampingService
+
+inNodeTimestampingService
+
+var inNodeTimestampingService : NodeTimestamperService ?
+
+
+
+
diff --git a/docs/build/html/api/core.node/-abstract-node/index.html b/docs/build/html/api/core.node/-abstract-node/index.html
new file mode 100644
index 0000000000..aea8dbdb38
--- /dev/null
+++ b/docs/build/html/api/core.node/-abstract-node/index.html
@@ -0,0 +1,280 @@
+
+
+AbstractNode -
+
+
+
+core.node / AbstractNode
+
+AbstractNode
+abstract class 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.
+
+
+Constructors
+
+
+
+
+<init>
+
+AbstractNode ( dir : Path , configuration : NodeConfiguration , initialNetworkMapAddress : NodeInfo ? , advertisedServices : Set < ServiceType > , 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
+
+Companion Object Properties
+
+Inheritors
+
+
+
+
+MockNode
+
+class MockNode : AbstractNode
+
+
+
+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/core.node/-abstract-node/info.html b/docs/build/html/api/core.node/-abstract-node/info.html
new file mode 100644
index 0000000000..f05c53b167
--- /dev/null
+++ b/docs/build/html/api/core.node/-abstract-node/info.html
@@ -0,0 +1,15 @@
+
+
+AbstractNode.info -
+
+
+
+core.node / AbstractNode / info
+
+info
+
+val info : NodeInfo
+
+
+
+
diff --git a/docs/build/html/api/core.node/-abstract-node/initial-network-map-address.html b/docs/build/html/api/core.node/-abstract-node/initial-network-map-address.html
new file mode 100644
index 0000000000..f94843b863
--- /dev/null
+++ b/docs/build/html/api/core.node/-abstract-node/initial-network-map-address.html
@@ -0,0 +1,15 @@
+
+
+AbstractNode.initialNetworkMapAddress -
+
+
+
+core.node / AbstractNode / initialNetworkMapAddress
+
+initialNetworkMapAddress
+
+val initialNetworkMapAddress : NodeInfo ?
+
+
+
+
diff --git a/docs/build/html/api/core.node/-abstract-node/initialise-storage-service.html b/docs/build/html/api/core.node/-abstract-node/initialise-storage-service.html
new file mode 100644
index 0000000000..53eda34149
--- /dev/null
+++ b/docs/build/html/api/core.node/-abstract-node/initialise-storage-service.html
@@ -0,0 +1,15 @@
+
+
+AbstractNode.initialiseStorageService -
+
+
+
+core.node / AbstractNode / initialiseStorageService
+
+initialiseStorageService
+
+protected open fun initialiseStorageService ( dir : Path ) : StorageService
+
+
+
+
diff --git a/docs/build/html/api/core.node/-abstract-node/interest-rates-service.html b/docs/build/html/api/core.node/-abstract-node/interest-rates-service.html
new file mode 100644
index 0000000000..09980c470f
--- /dev/null
+++ b/docs/build/html/api/core.node/-abstract-node/interest-rates-service.html
@@ -0,0 +1,15 @@
+
+
+AbstractNode.interestRatesService -
+
+
+
+core.node / AbstractNode / interestRatesService
+
+interestRatesService
+
+lateinit var interestRatesService : Service
+
+
+
+
diff --git a/docs/build/html/api/core.node/-abstract-node/key-management.html b/docs/build/html/api/core.node/-abstract-node/key-management.html
new file mode 100644
index 0000000000..0875fce5cd
--- /dev/null
+++ b/docs/build/html/api/core.node/-abstract-node/key-management.html
@@ -0,0 +1,15 @@
+
+
+AbstractNode.keyManagement -
+
+
+
+core.node / AbstractNode / keyManagement
+
+keyManagement
+
+lateinit var keyManagement : E2ETestKeyManagementService
+
+
+
+
diff --git a/docs/build/html/api/core.node/-abstract-node/log.html b/docs/build/html/api/core.node/-abstract-node/log.html
new file mode 100644
index 0000000000..dfda462656
--- /dev/null
+++ b/docs/build/html/api/core.node/-abstract-node/log.html
@@ -0,0 +1,15 @@
+
+
+AbstractNode.log -
+
+
+
+core.node / AbstractNode / log
+
+log
+
+protected abstract val log : <ERROR CLASS>
+
+
+
+
diff --git a/docs/build/html/api/core.node/-abstract-node/make-identity-service.html b/docs/build/html/api/core.node/-abstract-node/make-identity-service.html
new file mode 100644
index 0000000000..dc6436503c
--- /dev/null
+++ b/docs/build/html/api/core.node/-abstract-node/make-identity-service.html
@@ -0,0 +1,15 @@
+
+
+AbstractNode.makeIdentityService -
+
+
+
+core.node / AbstractNode / makeIdentityService
+
+makeIdentityService
+
+protected open fun makeIdentityService ( ) : IdentityService
+
+
+
+
diff --git a/docs/build/html/api/core.node/-abstract-node/make-interest-rates-oracle-service.html b/docs/build/html/api/core.node/-abstract-node/make-interest-rates-oracle-service.html
new file mode 100644
index 0000000000..116e02f95e
--- /dev/null
+++ b/docs/build/html/api/core.node/-abstract-node/make-interest-rates-oracle-service.html
@@ -0,0 +1,15 @@
+
+
+AbstractNode.makeInterestRatesOracleService -
+
+
+
+core.node / AbstractNode / makeInterestRatesOracleService
+
+makeInterestRatesOracleService
+
+protected open fun makeInterestRatesOracleService ( ) : Unit
+
+
+
+
diff --git a/docs/build/html/api/core.node/-abstract-node/make-messaging-service.html b/docs/build/html/api/core.node/-abstract-node/make-messaging-service.html
new file mode 100644
index 0000000000..462ad95146
--- /dev/null
+++ b/docs/build/html/api/core.node/-abstract-node/make-messaging-service.html
@@ -0,0 +1,15 @@
+
+
+AbstractNode.makeMessagingService -
+
+
+
+core.node / AbstractNode / makeMessagingService
+
+makeMessagingService
+
+protected abstract fun makeMessagingService ( ) : MessagingService
+
+
+
+
diff --git a/docs/build/html/api/core.node/-abstract-node/make-network-map-service.html b/docs/build/html/api/core.node/-abstract-node/make-network-map-service.html
new file mode 100644
index 0000000000..53be475127
--- /dev/null
+++ b/docs/build/html/api/core.node/-abstract-node/make-network-map-service.html
@@ -0,0 +1,15 @@
+
+
+AbstractNode.makeNetworkMapService -
+
+
+
+core.node / AbstractNode / makeNetworkMapService
+
+makeNetworkMapService
+
+protected open fun makeNetworkMapService ( ) : Unit
+
+
+
+
diff --git a/docs/build/html/api/core.node/-abstract-node/make-timestamping-service.html b/docs/build/html/api/core.node/-abstract-node/make-timestamping-service.html
new file mode 100644
index 0000000000..9653e98668
--- /dev/null
+++ b/docs/build/html/api/core.node/-abstract-node/make-timestamping-service.html
@@ -0,0 +1,15 @@
+
+
+AbstractNode.makeTimestampingService -
+
+
+
+core.node / AbstractNode / makeTimestampingService
+
+makeTimestampingService
+
+protected open fun makeTimestampingService ( ) : Unit
+
+
+
+
diff --git a/docs/build/html/api/core.node/-abstract-node/net.html b/docs/build/html/api/core.node/-abstract-node/net.html
new file mode 100644
index 0000000000..1a16b40ba0
--- /dev/null
+++ b/docs/build/html/api/core.node/-abstract-node/net.html
@@ -0,0 +1,15 @@
+
+
+AbstractNode.net -
+
+
+
+core.node / AbstractNode / net
+
+net
+
+lateinit var net : MessagingService
+
+
+
+
diff --git a/docs/build/html/api/core.node/-abstract-node/network-map-seq.html b/docs/build/html/api/core.node/-abstract-node/network-map-seq.html
new file mode 100644
index 0000000000..2a5ffc3f39
--- /dev/null
+++ b/docs/build/html/api/core.node/-abstract-node/network-map-seq.html
@@ -0,0 +1,16 @@
+
+
+AbstractNode.networkMapSeq -
+
+
+
+core.node / 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/core.node/-abstract-node/network-map-service-call-timeout.html b/docs/build/html/api/core.node/-abstract-node/network-map-service-call-timeout.html
new file mode 100644
index 0000000000..2d03f73cb2
--- /dev/null
+++ b/docs/build/html/api/core.node/-abstract-node/network-map-service-call-timeout.html
@@ -0,0 +1,15 @@
+
+
+AbstractNode.networkMapServiceCallTimeout -
+
+
+
+core.node / AbstractNode / networkMapServiceCallTimeout
+
+networkMapServiceCallTimeout
+
+val networkMapServiceCallTimeout : Duration
+
+
+
+
diff --git a/docs/build/html/api/core.node/-abstract-node/platform-clock.html b/docs/build/html/api/core.node/-abstract-node/platform-clock.html
new file mode 100644
index 0000000000..23f139cd96
--- /dev/null
+++ b/docs/build/html/api/core.node/-abstract-node/platform-clock.html
@@ -0,0 +1,15 @@
+
+
+AbstractNode.platformClock -
+
+
+
+core.node / AbstractNode / platformClock
+
+platformClock
+
+val platformClock : Clock
+
+
+
+
diff --git a/docs/build/html/api/core.node/-abstract-node/server-thread.html b/docs/build/html/api/core.node/-abstract-node/server-thread.html
new file mode 100644
index 0000000000..2741771fe9
--- /dev/null
+++ b/docs/build/html/api/core.node/-abstract-node/server-thread.html
@@ -0,0 +1,15 @@
+
+
+AbstractNode.serverThread -
+
+
+
+core.node / AbstractNode / serverThread
+
+serverThread
+
+protected abstract val serverThread : AffinityExecutor
+
+
+
+
diff --git a/docs/build/html/api/core.node/-abstract-node/services-that-accept-uploads.html b/docs/build/html/api/core.node/-abstract-node/services-that-accept-uploads.html
new file mode 100644
index 0000000000..8de63aff7f
--- /dev/null
+++ b/docs/build/html/api/core.node/-abstract-node/services-that-accept-uploads.html
@@ -0,0 +1,15 @@
+
+
+AbstractNode.servicesThatAcceptUploads -
+
+
+
+core.node / AbstractNode / servicesThatAcceptUploads
+
+servicesThatAcceptUploads
+
+val servicesThatAcceptUploads : List < AcceptsFileUpload >
+
+
+
+
diff --git a/docs/build/html/api/core.node/-abstract-node/services.html b/docs/build/html/api/core.node/-abstract-node/services.html
new file mode 100644
index 0000000000..941bf394c0
--- /dev/null
+++ b/docs/build/html/api/core.node/-abstract-node/services.html
@@ -0,0 +1,15 @@
+
+
+AbstractNode.services -
+
+
+
+core.node / AbstractNode / services
+
+services
+
+val services : ServiceHub
+
+
+
+
diff --git a/docs/build/html/api/core.node/-abstract-node/smm.html b/docs/build/html/api/core.node/-abstract-node/smm.html
new file mode 100644
index 0000000000..e0b11eeb35
--- /dev/null
+++ b/docs/build/html/api/core.node/-abstract-node/smm.html
@@ -0,0 +1,15 @@
+
+
+AbstractNode.smm -
+
+
+
+core.node / AbstractNode / smm
+
+smm
+
+lateinit var smm : StateMachineManager
+
+
+
+
diff --git a/docs/build/html/api/core.node/-abstract-node/start-messaging-service.html b/docs/build/html/api/core.node/-abstract-node/start-messaging-service.html
new file mode 100644
index 0000000000..7060446768
--- /dev/null
+++ b/docs/build/html/api/core.node/-abstract-node/start-messaging-service.html
@@ -0,0 +1,15 @@
+
+
+AbstractNode.startMessagingService -
+
+
+
+core.node / AbstractNode / startMessagingService
+
+startMessagingService
+
+protected abstract fun startMessagingService ( ) : Unit
+
+
+
+
diff --git a/docs/build/html/api/core.node/-abstract-node/start.html b/docs/build/html/api/core.node/-abstract-node/start.html
new file mode 100644
index 0000000000..55ab8d4bf2
--- /dev/null
+++ b/docs/build/html/api/core.node/-abstract-node/start.html
@@ -0,0 +1,15 @@
+
+
+AbstractNode.start -
+
+
+
+core.node / AbstractNode / start
+
+start
+
+open fun start ( ) : AbstractNode
+
+
+
+
diff --git a/docs/build/html/api/core.node/-abstract-node/stop.html b/docs/build/html/api/core.node/-abstract-node/stop.html
new file mode 100644
index 0000000000..56c931528c
--- /dev/null
+++ b/docs/build/html/api/core.node/-abstract-node/stop.html
@@ -0,0 +1,15 @@
+
+
+AbstractNode.stop -
+
+
+
+core.node / AbstractNode / stop
+
+stop
+
+open fun stop ( ) : Unit
+
+
+
+
diff --git a/docs/build/html/api/core.node/-abstract-node/storage.html b/docs/build/html/api/core.node/-abstract-node/storage.html
new file mode 100644
index 0000000000..317ee5f183
--- /dev/null
+++ b/docs/build/html/api/core.node/-abstract-node/storage.html
@@ -0,0 +1,15 @@
+
+
+AbstractNode.storage -
+
+
+
+core.node / AbstractNode / storage
+
+storage
+
+lateinit var storage : StorageService
+
+
+
+
diff --git a/docs/build/html/api/core.node/-abstract-node/wallet.html b/docs/build/html/api/core.node/-abstract-node/wallet.html
new file mode 100644
index 0000000000..ec058966f0
--- /dev/null
+++ b/docs/build/html/api/core.node/-abstract-node/wallet.html
@@ -0,0 +1,15 @@
+
+
+AbstractNode.wallet -
+
+
+
+core.node / AbstractNode / wallet
+
+wallet
+
+lateinit var wallet : WalletService
+
+
+
+
diff --git a/docs/build/html/api/core.node/-accepts-file-upload/acceptable-file-extensions.html b/docs/build/html/api/core.node/-accepts-file-upload/acceptable-file-extensions.html
new file mode 100644
index 0000000000..baa94957fe
--- /dev/null
+++ b/docs/build/html/api/core.node/-accepts-file-upload/acceptable-file-extensions.html
@@ -0,0 +1,16 @@
+
+
+AcceptsFileUpload.acceptableFileExtensions -
+
+
+
+core.node / 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/core.node/-accepts-file-upload/data-type-prefix.html b/docs/build/html/api/core.node/-accepts-file-upload/data-type-prefix.html
new file mode 100644
index 0000000000..aafb037fd7
--- /dev/null
+++ b/docs/build/html/api/core.node/-accepts-file-upload/data-type-prefix.html
@@ -0,0 +1,16 @@
+
+
+AcceptsFileUpload.dataTypePrefix -
+
+
+
+core.node / 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/core.node/-accepts-file-upload/index.html b/docs/build/html/api/core.node/-accepts-file-upload/index.html
new file mode 100644
index 0000000000..9a435410cf
--- /dev/null
+++ b/docs/build/html/api/core.node/-accepts-file-upload/index.html
@@ -0,0 +1,69 @@
+
+
+AcceptsFileUpload -
+
+
+
+core.node / 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.
+
+
+
+
+Service
+
+class Service : AcceptsFileUpload , AbstractNodeService
The Service that wraps Oracle and handles messages/network interaction/request scrubbing.
+
+
+
+
+
+
diff --git a/docs/build/html/api/core.node/-accepts-file-upload/upload.html b/docs/build/html/api/core.node/-accepts-file-upload/upload.html
new file mode 100644
index 0000000000..f776240a65
--- /dev/null
+++ b/docs/build/html/api/core.node/-accepts-file-upload/upload.html
@@ -0,0 +1,17 @@
+
+
+AcceptsFileUpload.upload -
+
+
+
+core.node / 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/core.node/-attachments-class-loader/-init-.html b/docs/build/html/api/core.node/-attachments-class-loader/-init-.html
new file mode 100644
index 0000000000..47bfe46fdd
--- /dev/null
+++ b/docs/build/html/api/core.node/-attachments-class-loader/-init-.html
@@ -0,0 +1,18 @@
+
+
+AttachmentsClassLoader. -
+
+
+
+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/core.node/-attachments-class-loader/-overlapping-attachments/-init-.html b/docs/build/html/api/core.node/-attachments-class-loader/-overlapping-attachments/-init-.html
new file mode 100644
index 0000000000..1bd32ed3d1
--- /dev/null
+++ b/docs/build/html/api/core.node/-attachments-class-loader/-overlapping-attachments/-init-.html
@@ -0,0 +1,14 @@
+
+
+AttachmentsClassLoader.OverlappingAttachments. -
+
+
+
+core.node / AttachmentsClassLoader / OverlappingAttachments / <init>
+
+<init>
+OverlappingAttachments ( path : String )
+
+
+
+
diff --git a/docs/build/html/api/core.node/-attachments-class-loader/-overlapping-attachments/index.html b/docs/build/html/api/core.node/-attachments-class-loader/-overlapping-attachments/index.html
new file mode 100644
index 0000000000..7c27edbc78
--- /dev/null
+++ b/docs/build/html/api/core.node/-attachments-class-loader/-overlapping-attachments/index.html
@@ -0,0 +1,47 @@
+
+
+AttachmentsClassLoader.OverlappingAttachments -
+
+
+
+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/core.node/-attachments-class-loader/-overlapping-attachments/path.html b/docs/build/html/api/core.node/-attachments-class-loader/-overlapping-attachments/path.html
new file mode 100644
index 0000000000..7836b11263
--- /dev/null
+++ b/docs/build/html/api/core.node/-attachments-class-loader/-overlapping-attachments/path.html
@@ -0,0 +1,15 @@
+
+
+AttachmentsClassLoader.OverlappingAttachments.path -
+
+
+
+core.node / AttachmentsClassLoader / OverlappingAttachments / path
+
+path
+
+val path : String
+
+
+
+
diff --git a/docs/build/html/api/core.node/-attachments-class-loader/-overlapping-attachments/to-string.html b/docs/build/html/api/core.node/-attachments-class-loader/-overlapping-attachments/to-string.html
new file mode 100644
index 0000000000..6a2ae609c9
--- /dev/null
+++ b/docs/build/html/api/core.node/-attachments-class-loader/-overlapping-attachments/to-string.html
@@ -0,0 +1,15 @@
+
+
+AttachmentsClassLoader.OverlappingAttachments.toString -
+
+
+
+core.node / AttachmentsClassLoader / OverlappingAttachments / toString
+
+toString
+
+fun toString ( ) : String
+
+
+
+
diff --git a/docs/build/html/api/core.node/-attachments-class-loader/find-class.html b/docs/build/html/api/core.node/-attachments-class-loader/find-class.html
new file mode 100644
index 0000000000..3d2f326469
--- /dev/null
+++ b/docs/build/html/api/core.node/-attachments-class-loader/find-class.html
@@ -0,0 +1,15 @@
+
+
+AttachmentsClassLoader.findClass -
+
+
+
+core.node / AttachmentsClassLoader / findClass
+
+findClass
+
+protected fun findClass ( name : String ) : Class < * >
+
+
+
+
diff --git a/docs/build/html/api/core.node/-attachments-class-loader/find-resource.html b/docs/build/html/api/core.node/-attachments-class-loader/find-resource.html
new file mode 100644
index 0000000000..f271e760ae
--- /dev/null
+++ b/docs/build/html/api/core.node/-attachments-class-loader/find-resource.html
@@ -0,0 +1,15 @@
+
+
+AttachmentsClassLoader.findResource -
+
+
+
+core.node / AttachmentsClassLoader / findResource
+
+findResource
+
+protected fun findResource ( name : String ) : URL ?
+
+
+
+
diff --git a/docs/build/html/api/core.node/-attachments-class-loader/get-resource-as-stream.html b/docs/build/html/api/core.node/-attachments-class-loader/get-resource-as-stream.html
new file mode 100644
index 0000000000..aaafe50a22
--- /dev/null
+++ b/docs/build/html/api/core.node/-attachments-class-loader/get-resource-as-stream.html
@@ -0,0 +1,15 @@
+
+
+AttachmentsClassLoader.getResourceAsStream -
+
+
+
+core.node / AttachmentsClassLoader / getResourceAsStream
+
+getResourceAsStream
+
+fun getResourceAsStream ( name : String ) : InputStream ?
+
+
+
+
diff --git a/docs/build/html/api/core.node/-attachments-class-loader/index.html b/docs/build/html/api/core.node/-attachments-class-loader/index.html
new file mode 100644
index 0000000000..cd99a4e3d2
--- /dev/null
+++ b/docs/build/html/api/core.node/-attachments-class-loader/index.html
@@ -0,0 +1,67 @@
+
+
+AttachmentsClassLoader -
+
+
+
+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/core.node/-city-database/get.html b/docs/build/html/api/core.node/-city-database/get.html
new file mode 100644
index 0000000000..4769d7592d
--- /dev/null
+++ b/docs/build/html/api/core.node/-city-database/get.html
@@ -0,0 +1,15 @@
+
+
+CityDatabase.get -
+
+
+
+core.node / CityDatabase / get
+
+get
+
+operator fun get ( name : String ) : PhysicalLocation ?
+
+
+
+
diff --git a/docs/build/html/api/core.node/-city-database/index.html b/docs/build/html/api/core.node/-city-database/index.html
new file mode 100644
index 0000000000..3caae10cab
--- /dev/null
+++ b/docs/build/html/api/core.node/-city-database/index.html
@@ -0,0 +1,26 @@
+
+
+CityDatabase -
+
+
+
+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/core.node/-configuration-exception/-init-.html b/docs/build/html/api/core.node/-configuration-exception/-init-.html
new file mode 100644
index 0000000000..2462adf97e
--- /dev/null
+++ b/docs/build/html/api/core.node/-configuration-exception/-init-.html
@@ -0,0 +1,14 @@
+
+
+ConfigurationException. -
+
+
+
+core.node / ConfigurationException / <init>
+
+<init>
+ConfigurationException ( message : String )
+
+
+
+
diff --git a/docs/build/html/api/core.node/-configuration-exception/index.html b/docs/build/html/api/core.node/-configuration-exception/index.html
new file mode 100644
index 0000000000..da5f0659d3
--- /dev/null
+++ b/docs/build/html/api/core.node/-configuration-exception/index.html
@@ -0,0 +1,25 @@
+
+
+ConfigurationException -
+
+
+
+core.node / ConfigurationException
+
+ConfigurationException
+class ConfigurationException : Exception
+
+
+Constructors
+
+
+
+
+<init>
+
+ConfigurationException ( message : String )
+
+
+
+
+
diff --git a/docs/build/html/api/core.node/-node-configuration-from-config/-init-.html b/docs/build/html/api/core.node/-node-configuration-from-config/-init-.html
new file mode 100644
index 0000000000..0ce0342869
--- /dev/null
+++ b/docs/build/html/api/core.node/-node-configuration-from-config/-init-.html
@@ -0,0 +1,14 @@
+
+
+NodeConfigurationFromConfig. -
+
+
+
+core.node / NodeConfigurationFromConfig / <init>
+
+<init>
+NodeConfigurationFromConfig ( config : <ERROR CLASS> = ConfigFactory.load())
+
+
+
+
diff --git a/docs/build/html/api/core.node/-node-configuration-from-config/config.html b/docs/build/html/api/core.node/-node-configuration-from-config/config.html
new file mode 100644
index 0000000000..afef8e3ba8
--- /dev/null
+++ b/docs/build/html/api/core.node/-node-configuration-from-config/config.html
@@ -0,0 +1,15 @@
+
+
+NodeConfigurationFromConfig.config -
+
+
+
+core.node / NodeConfigurationFromConfig / config
+
+config
+
+val config : <ERROR CLASS>
+
+
+
+
diff --git a/docs/build/html/api/core.node/-node-configuration-from-config/export-j-m-xto.html b/docs/build/html/api/core.node/-node-configuration-from-config/export-j-m-xto.html
new file mode 100644
index 0000000000..dbe0874cec
--- /dev/null
+++ b/docs/build/html/api/core.node/-node-configuration-from-config/export-j-m-xto.html
@@ -0,0 +1,16 @@
+
+
+NodeConfigurationFromConfig.exportJMXto -
+
+
+
+core.node / NodeConfigurationFromConfig / exportJMXto
+
+exportJMXto
+
+val exportJMXto : String
+Overrides NodeConfiguration.exportJMXto
+
+
+
+
diff --git a/docs/build/html/api/core.node/-node-configuration-from-config/index.html b/docs/build/html/api/core.node/-node-configuration-from-config/index.html
new file mode 100644
index 0000000000..f6e0e2afb8
--- /dev/null
+++ b/docs/build/html/api/core.node/-node-configuration-from-config/index.html
@@ -0,0 +1,54 @@
+
+
+NodeConfigurationFromConfig -
+
+
+
+core.node / NodeConfigurationFromConfig
+
+NodeConfigurationFromConfig
+class NodeConfigurationFromConfig : NodeConfiguration
+
+
+Constructors
+
+
+
+
+<init>
+
+NodeConfigurationFromConfig ( config : <ERROR CLASS> = ConfigFactory.load())
+
+
+
+Properties
+
+
+
diff --git a/docs/build/html/api/core.node/-node-configuration-from-config/my-legal-name.html b/docs/build/html/api/core.node/-node-configuration-from-config/my-legal-name.html
new file mode 100644
index 0000000000..7fb8dba49b
--- /dev/null
+++ b/docs/build/html/api/core.node/-node-configuration-from-config/my-legal-name.html
@@ -0,0 +1,16 @@
+
+
+NodeConfigurationFromConfig.myLegalName -
+
+
+
+core.node / NodeConfigurationFromConfig / myLegalName
+
+myLegalName
+
+val myLegalName : String
+Overrides NodeConfiguration.myLegalName
+
+
+
+
diff --git a/docs/build/html/api/core.node/-node-configuration-from-config/nearest-city.html b/docs/build/html/api/core.node/-node-configuration-from-config/nearest-city.html
new file mode 100644
index 0000000000..a8c2f549c4
--- /dev/null
+++ b/docs/build/html/api/core.node/-node-configuration-from-config/nearest-city.html
@@ -0,0 +1,16 @@
+
+
+NodeConfigurationFromConfig.nearestCity -
+
+
+
+core.node / NodeConfigurationFromConfig / nearestCity
+
+nearestCity
+
+val nearestCity : String
+Overrides NodeConfiguration.nearestCity
+
+
+
+
diff --git a/docs/build/html/api/core.node/-node-configuration/export-j-m-xto.html b/docs/build/html/api/core.node/-node-configuration/export-j-m-xto.html
new file mode 100644
index 0000000000..9b40116068
--- /dev/null
+++ b/docs/build/html/api/core.node/-node-configuration/export-j-m-xto.html
@@ -0,0 +1,15 @@
+
+
+NodeConfiguration.exportJMXto -
+
+
+
+core.node / NodeConfiguration / exportJMXto
+
+exportJMXto
+
+abstract val exportJMXto : String
+
+
+
+
diff --git a/docs/build/html/api/core.node/-node-configuration/index.html b/docs/build/html/api/core.node/-node-configuration/index.html
new file mode 100644
index 0000000000..69dc3b06c6
--- /dev/null
+++ b/docs/build/html/api/core.node/-node-configuration/index.html
@@ -0,0 +1,48 @@
+
+
+NodeConfiguration -
+
+
+
+core.node / NodeConfiguration
+
+NodeConfiguration
+interface NodeConfiguration
+
+
+Properties
+
+
+
+
+exportJMXto
+
+abstract val exportJMXto : String
+
+
+
+myLegalName
+
+abstract val myLegalName : String
+
+
+
+nearestCity
+
+abstract val nearestCity : String
+
+
+
+Inheritors
+
+
+
diff --git a/docs/build/html/api/core.node/-node-configuration/my-legal-name.html b/docs/build/html/api/core.node/-node-configuration/my-legal-name.html
new file mode 100644
index 0000000000..3c22314914
--- /dev/null
+++ b/docs/build/html/api/core.node/-node-configuration/my-legal-name.html
@@ -0,0 +1,15 @@
+
+
+NodeConfiguration.myLegalName -
+
+
+
+core.node / NodeConfiguration / myLegalName
+
+myLegalName
+
+abstract val myLegalName : String
+
+
+
+
diff --git a/docs/build/html/api/core.node/-node-configuration/nearest-city.html b/docs/build/html/api/core.node/-node-configuration/nearest-city.html
new file mode 100644
index 0000000000..1f56299094
--- /dev/null
+++ b/docs/build/html/api/core.node/-node-configuration/nearest-city.html
@@ -0,0 +1,15 @@
+
+
+NodeConfiguration.nearestCity -
+
+
+
+core.node / NodeConfiguration / nearestCity
+
+nearestCity
+
+abstract val nearestCity : String
+
+
+
+
diff --git a/docs/build/html/api/core.node/-node-info/-init-.html b/docs/build/html/api/core.node/-node-info/-init-.html
new file mode 100644
index 0000000000..4bad4bc915
--- /dev/null
+++ b/docs/build/html/api/core.node/-node-info/-init-.html
@@ -0,0 +1,15 @@
+
+
+NodeInfo. -
+
+
+
+core.node / NodeInfo / <init>
+
+<init>
+NodeInfo ( address : SingleMessageRecipient , identity : Party , advertisedServices : Set < ServiceType > = emptySet(), 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/core.node/-node-info/address.html b/docs/build/html/api/core.node/-node-info/address.html
new file mode 100644
index 0000000000..939e39109e
--- /dev/null
+++ b/docs/build/html/api/core.node/-node-info/address.html
@@ -0,0 +1,15 @@
+
+
+NodeInfo.address -
+
+
+
+core.node / NodeInfo / address
+
+address
+
+val address : SingleMessageRecipient
+
+
+
+
diff --git a/docs/build/html/api/core.node/-node-info/advertised-services.html b/docs/build/html/api/core.node/-node-info/advertised-services.html
new file mode 100644
index 0000000000..7a1fb2462b
--- /dev/null
+++ b/docs/build/html/api/core.node/-node-info/advertised-services.html
@@ -0,0 +1,15 @@
+
+
+NodeInfo.advertisedServices -
+
+
+
+core.node / NodeInfo / advertisedServices
+
+advertisedServices
+
+var advertisedServices : Set < ServiceType >
+
+
+
+
diff --git a/docs/build/html/api/core.node/-node-info/identity.html b/docs/build/html/api/core.node/-node-info/identity.html
new file mode 100644
index 0000000000..68b135c307
--- /dev/null
+++ b/docs/build/html/api/core.node/-node-info/identity.html
@@ -0,0 +1,15 @@
+
+
+NodeInfo.identity -
+
+
+
+core.node / NodeInfo / identity
+
+identity
+
+val identity : Party
+
+
+
+
diff --git a/docs/build/html/api/core.node/-node-info/index.html b/docs/build/html/api/core.node/-node-info/index.html
new file mode 100644
index 0000000000..728e4aff3c
--- /dev/null
+++ b/docs/build/html/api/core.node/-node-info/index.html
@@ -0,0 +1,56 @@
+
+
+NodeInfo -
+
+
+
+core.node / NodeInfo
+
+NodeInfo
+data class NodeInfo
+Info about a network node that acts on behalf of some form of contract party.
+
+
+Constructors
+
+Properties
+
+
+
diff --git a/docs/build/html/api/core.node/-node-info/physical-location.html b/docs/build/html/api/core.node/-node-info/physical-location.html
new file mode 100644
index 0000000000..59ced916a9
--- /dev/null
+++ b/docs/build/html/api/core.node/-node-info/physical-location.html
@@ -0,0 +1,15 @@
+
+
+NodeInfo.physicalLocation -
+
+
+
+core.node / NodeInfo / physicalLocation
+
+physicalLocation
+
+val physicalLocation : PhysicalLocation ?
+
+
+
+
diff --git a/docs/build/html/api/core.node/-node/-d-e-f-a-u-l-t_-p-o-r-t.html b/docs/build/html/api/core.node/-node/-d-e-f-a-u-l-t_-p-o-r-t.html
new file mode 100644
index 0000000000..7c366d0e50
--- /dev/null
+++ b/docs/build/html/api/core.node/-node/-d-e-f-a-u-l-t_-p-o-r-t.html
@@ -0,0 +1,16 @@
+
+
+Node.DEFAULT_PORT -
+
+
+
+core.node / 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/core.node/-node/-init-.html b/docs/build/html/api/core.node/-node/-init-.html
new file mode 100644
index 0000000000..9984c17773
--- /dev/null
+++ b/docs/build/html/api/core.node/-node/-init-.html
@@ -0,0 +1,37 @@
+
+
+Node. -
+
+
+
+core.node / Node / <init>
+
+<init>
+Node ( dir : Path , p2pAddr : <ERROR CLASS> , configuration : NodeConfiguration , networkMapAddress : NodeInfo ? , advertisedServices : Set < ServiceType > , clock : Clock = Clock.systemUTC())
+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
+
+dir
- A Path to a location on disk where working files can be found or stored.
+
+
+p2pAddr
- The host and port that this server will use. It cant find out its own external hostname, so you
+have to specify that yourself.
+
+
+configuration
- This is typically loaded from a .properties 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/core.node/-node/index.html b/docs/build/html/api/core.node/-node/index.html
new file mode 100644
index 0000000000..beb17c6a6f
--- /dev/null
+++ b/docs/build/html/api/core.node/-node/index.html
@@ -0,0 +1,299 @@
+
+
+Node -
+
+
+
+core.node / 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
+
+dir
- A Path to a location on disk where working files can be found or stored.
+
+
+p2pAddr
- The host and port that this server will use. It cant find out its own external hostname, so you
+have to specify that yourself.
+
+
+configuration
- This is typically loaded from a .properties 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
+
+
+
+
+<init>
+
+Node ( dir : Path , p2pAddr : <ERROR CLASS> , configuration : NodeConfiguration , networkMapAddress : NodeInfo ? , advertisedServices : Set < ServiceType > , clock : Clock = Clock.systemUTC())
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.
+
+
+
+
+Properties
+
+Inherited Properties
+
+Functions
+
+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/core.node/-node/log.html b/docs/build/html/api/core.node/-node/log.html
new file mode 100644
index 0000000000..f1c28c0a26
--- /dev/null
+++ b/docs/build/html/api/core.node/-node/log.html
@@ -0,0 +1,16 @@
+
+
+Node.log -
+
+
+
+core.node / Node / log
+
+log
+
+protected val log : <ERROR CLASS>
+Overrides AbstractNode.log
+
+
+
+
diff --git a/docs/build/html/api/core.node/-node/make-messaging-service.html b/docs/build/html/api/core.node/-node/make-messaging-service.html
new file mode 100644
index 0000000000..a63c87715f
--- /dev/null
+++ b/docs/build/html/api/core.node/-node/make-messaging-service.html
@@ -0,0 +1,16 @@
+
+
+Node.makeMessagingService -
+
+
+
+core.node / Node / makeMessagingService
+
+makeMessagingService
+
+protected fun makeMessagingService ( ) : MessagingService
+Overrides AbstractNode.makeMessagingService
+
+
+
+
diff --git a/docs/build/html/api/core.node/-node/p2p-addr.html b/docs/build/html/api/core.node/-node/p2p-addr.html
new file mode 100644
index 0000000000..5eb2fd3213
--- /dev/null
+++ b/docs/build/html/api/core.node/-node/p2p-addr.html
@@ -0,0 +1,15 @@
+
+
+Node.p2pAddr -
+
+
+
+core.node / Node / p2pAddr
+
+p2pAddr
+
+val p2pAddr : <ERROR CLASS>
+
+
+
+
diff --git a/docs/build/html/api/core.node/-node/server-thread.html b/docs/build/html/api/core.node/-node/server-thread.html
new file mode 100644
index 0000000000..fd896b070d
--- /dev/null
+++ b/docs/build/html/api/core.node/-node/server-thread.html
@@ -0,0 +1,16 @@
+
+
+Node.serverThread -
+
+
+
+core.node / Node / serverThread
+
+serverThread
+
+protected val serverThread : ServiceAffinityExecutor
+Overrides AbstractNode.serverThread
+
+
+
+
diff --git a/docs/build/html/api/core.node/-node/start-messaging-service.html b/docs/build/html/api/core.node/-node/start-messaging-service.html
new file mode 100644
index 0000000000..5de4a813f2
--- /dev/null
+++ b/docs/build/html/api/core.node/-node/start-messaging-service.html
@@ -0,0 +1,16 @@
+
+
+Node.startMessagingService -
+
+
+
+core.node / Node / startMessagingService
+
+startMessagingService
+
+protected fun startMessagingService ( ) : Unit
+Overrides AbstractNode.startMessagingService
+
+
+
+
diff --git a/docs/build/html/api/core.node/-node/start.html b/docs/build/html/api/core.node/-node/start.html
new file mode 100644
index 0000000000..f059695ccc
--- /dev/null
+++ b/docs/build/html/api/core.node/-node/start.html
@@ -0,0 +1,16 @@
+
+
+Node.start -
+
+
+
+core.node / Node / start
+
+start
+
+fun start ( ) : Node
+Overrides AbstractNode.start
+
+
+
+
diff --git a/docs/build/html/api/core.node/-node/stop.html b/docs/build/html/api/core.node/-node/stop.html
new file mode 100644
index 0000000000..82a2e47b51
--- /dev/null
+++ b/docs/build/html/api/core.node/-node/stop.html
@@ -0,0 +1,16 @@
+
+
+Node.stop -
+
+
+
+core.node / Node / stop
+
+stop
+
+fun stop ( ) : Unit
+Overrides AbstractNode.stop
+
+
+
+
diff --git a/docs/build/html/api/core.node/-node/web-server.html b/docs/build/html/api/core.node/-node/web-server.html
new file mode 100644
index 0000000000..e108a48ebe
--- /dev/null
+++ b/docs/build/html/api/core.node/-node/web-server.html
@@ -0,0 +1,15 @@
+
+
+Node.webServer -
+
+
+
+core.node / Node / webServer
+
+webServer
+
+lateinit var webServer : <ERROR CLASS>
+
+
+
+
diff --git a/docs/build/html/api/core.node/-physical-location/-init-.html b/docs/build/html/api/core.node/-physical-location/-init-.html
new file mode 100644
index 0000000000..cc8f036274
--- /dev/null
+++ b/docs/build/html/api/core.node/-physical-location/-init-.html
@@ -0,0 +1,16 @@
+
+
+PhysicalLocation. -
+
+
+
+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/core.node/-physical-location/coordinate.html b/docs/build/html/api/core.node/-physical-location/coordinate.html
new file mode 100644
index 0000000000..f332764c26
--- /dev/null
+++ b/docs/build/html/api/core.node/-physical-location/coordinate.html
@@ -0,0 +1,15 @@
+
+
+PhysicalLocation.coordinate -
+
+
+
+core.node / PhysicalLocation / coordinate
+
+coordinate
+
+val coordinate : WorldCoordinate
+
+
+
+
diff --git a/docs/build/html/api/core.node/-physical-location/description.html b/docs/build/html/api/core.node/-physical-location/description.html
new file mode 100644
index 0000000000..d098b0bce6
--- /dev/null
+++ b/docs/build/html/api/core.node/-physical-location/description.html
@@ -0,0 +1,15 @@
+
+
+PhysicalLocation.description -
+
+
+
+core.node / PhysicalLocation / description
+
+description
+
+val description : String
+
+
+
+
diff --git a/docs/build/html/api/core.node/-physical-location/index.html b/docs/build/html/api/core.node/-physical-location/index.html
new file mode 100644
index 0000000000..2255e37fc8
--- /dev/null
+++ b/docs/build/html/api/core.node/-physical-location/index.html
@@ -0,0 +1,46 @@
+
+
+PhysicalLocation -
+
+
+
+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/core.node/-service-hub/clock.html b/docs/build/html/api/core.node/-service-hub/clock.html
new file mode 100644
index 0000000000..b3d0ed1bcc
--- /dev/null
+++ b/docs/build/html/api/core.node/-service-hub/clock.html
@@ -0,0 +1,15 @@
+
+
+ServiceHub.clock -
+
+
+
+core.node / ServiceHub / clock
+
+clock
+
+abstract val clock : Clock
+
+
+
+
diff --git a/docs/build/html/api/core.node/-service-hub/identity-service.html b/docs/build/html/api/core.node/-service-hub/identity-service.html
new file mode 100644
index 0000000000..41bf89500f
--- /dev/null
+++ b/docs/build/html/api/core.node/-service-hub/identity-service.html
@@ -0,0 +1,15 @@
+
+
+ServiceHub.identityService -
+
+
+
+core.node / ServiceHub / identityService
+
+identityService
+
+abstract val identityService : IdentityService
+
+
+
+
diff --git a/docs/build/html/api/core.node/-service-hub/index.html b/docs/build/html/api/core.node/-service-hub/index.html
new file mode 100644
index 0000000000..e30d19fce6
--- /dev/null
+++ b/docs/build/html/api/core.node/-service-hub/index.html
@@ -0,0 +1,92 @@
+
+
+ServiceHub -
+
+
+
+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.
+
+
+Properties
+
+Functions
+
+
+
diff --git a/docs/build/html/api/core.node/-service-hub/key-management-service.html b/docs/build/html/api/core.node/-service-hub/key-management-service.html
new file mode 100644
index 0000000000..32eb8364e8
--- /dev/null
+++ b/docs/build/html/api/core.node/-service-hub/key-management-service.html
@@ -0,0 +1,15 @@
+
+
+ServiceHub.keyManagementService -
+
+
+
+core.node / ServiceHub / keyManagementService
+
+keyManagementService
+
+abstract val keyManagementService : KeyManagementService
+
+
+
+
diff --git a/docs/build/html/api/core.node/-service-hub/monitoring-service.html b/docs/build/html/api/core.node/-service-hub/monitoring-service.html
new file mode 100644
index 0000000000..d21af0dbae
--- /dev/null
+++ b/docs/build/html/api/core.node/-service-hub/monitoring-service.html
@@ -0,0 +1,15 @@
+
+
+ServiceHub.monitoringService -
+
+
+
+core.node / ServiceHub / monitoringService
+
+monitoringService
+
+abstract val monitoringService : MonitoringService
+
+
+
+
diff --git a/docs/build/html/api/core.node/-service-hub/network-map-cache.html b/docs/build/html/api/core.node/-service-hub/network-map-cache.html
new file mode 100644
index 0000000000..0298458455
--- /dev/null
+++ b/docs/build/html/api/core.node/-service-hub/network-map-cache.html
@@ -0,0 +1,15 @@
+
+
+ServiceHub.networkMapCache -
+
+
+
+core.node / ServiceHub / networkMapCache
+
+networkMapCache
+
+abstract val networkMapCache : NetworkMapCache
+
+
+
+
diff --git a/docs/build/html/api/core.node/-service-hub/network-service.html b/docs/build/html/api/core.node/-service-hub/network-service.html
new file mode 100644
index 0000000000..96a9e9327f
--- /dev/null
+++ b/docs/build/html/api/core.node/-service-hub/network-service.html
@@ -0,0 +1,15 @@
+
+
+ServiceHub.networkService -
+
+
+
+core.node / ServiceHub / networkService
+
+networkService
+
+abstract val networkService : MessagingService
+
+
+
+
diff --git a/docs/build/html/api/core.node/-service-hub/record-transactions.html b/docs/build/html/api/core.node/-service-hub/record-transactions.html
new file mode 100644
index 0000000000..2b7f5c3e8c
--- /dev/null
+++ b/docs/build/html/api/core.node/-service-hub/record-transactions.html
@@ -0,0 +1,27 @@
+
+
+ServiceHub.recordTransactions -
+
+
+
+core.node / ServiceHub / recordTransactions
+
+recordTransactions
+
+open fun recordTransactions ( txs : List < SignedTransaction > , skipRecordingMap : Boolean = false) : Unit
+Given a list of SignedTransaction s, writes them to the local storage for validated transactions and then
+sends them to the wallet for further processing.
+TODO: Need to come up with a way for preventing transactions being written other than by this method.
+TODO: RecordingMap is test infrastructure. Refactor it away or find a way to ensure its only used in tests.
+
+
+Parameters
+
+txs
- The transactions to record
+
+
+skipRecordingMap
- This is used in unit testing and can be ignored most of the time.
+
+
+
+
diff --git a/docs/build/html/api/core.node/-service-hub/storage-service.html b/docs/build/html/api/core.node/-service-hub/storage-service.html
new file mode 100644
index 0000000000..34d3006d1a
--- /dev/null
+++ b/docs/build/html/api/core.node/-service-hub/storage-service.html
@@ -0,0 +1,15 @@
+
+
+ServiceHub.storageService -
+
+
+
+core.node / ServiceHub / storageService
+
+storageService
+
+abstract val storageService : StorageService
+
+
+
+
diff --git a/docs/build/html/api/core.node/-service-hub/verify-transaction.html b/docs/build/html/api/core.node/-service-hub/verify-transaction.html
new file mode 100644
index 0000000000..fb20112548
--- /dev/null
+++ b/docs/build/html/api/core.node/-service-hub/verify-transaction.html
@@ -0,0 +1,18 @@
+
+
+ServiceHub.verifyTransaction -
+
+
+
+core.node / ServiceHub / verifyTransaction
+
+verifyTransaction
+
+open fun verifyTransaction ( ltx : LedgerTransaction ) : Unit
+Given a LedgerTransaction , looks up all its dependencies in the local database, uses the identity service to map
+the SignedTransaction s the DB gives back into LedgerTransaction s, and then runs the smart contracts for the
+transaction. If no exception is thrown, the transaction is valid.
+
+
+
+
diff --git a/docs/build/html/api/core.node/-service-hub/wallet-service.html b/docs/build/html/api/core.node/-service-hub/wallet-service.html
new file mode 100644
index 0000000000..e309f81f34
--- /dev/null
+++ b/docs/build/html/api/core.node/-service-hub/wallet-service.html
@@ -0,0 +1,15 @@
+
+
+ServiceHub.walletService -
+
+
+
+core.node / ServiceHub / walletService
+
+walletService
+
+abstract val walletService : WalletService
+
+
+
+
diff --git a/docs/build/html/api/core.node/-world-coordinate/-init-.html b/docs/build/html/api/core.node/-world-coordinate/-init-.html
new file mode 100644
index 0000000000..7c4b83403a
--- /dev/null
+++ b/docs/build/html/api/core.node/-world-coordinate/-init-.html
@@ -0,0 +1,15 @@
+
+
+WorldCoordinate. -
+
+
+
+core.node / WorldCoordinate / <init>
+
+<init>
+WorldCoordinate ( latitude : Double , longitude : Double )
+A latitude/longitude pair.
+
+
+
+
diff --git a/docs/build/html/api/core.node/-world-coordinate/index.html b/docs/build/html/api/core.node/-world-coordinate/index.html
new file mode 100644
index 0000000000..8f363b0614
--- /dev/null
+++ b/docs/build/html/api/core.node/-world-coordinate/index.html
@@ -0,0 +1,57 @@
+
+
+WorldCoordinate -
+
+
+
+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/core.node/-world-coordinate/latitude.html b/docs/build/html/api/core.node/-world-coordinate/latitude.html
new file mode 100644
index 0000000000..701da8bb09
--- /dev/null
+++ b/docs/build/html/api/core.node/-world-coordinate/latitude.html
@@ -0,0 +1,15 @@
+
+
+WorldCoordinate.latitude -
+
+
+
+core.node / WorldCoordinate / latitude
+
+latitude
+
+val latitude : Double
+
+
+
+
diff --git a/docs/build/html/api/core.node/-world-coordinate/longitude.html b/docs/build/html/api/core.node/-world-coordinate/longitude.html
new file mode 100644
index 0000000000..edbdbbb88e
--- /dev/null
+++ b/docs/build/html/api/core.node/-world-coordinate/longitude.html
@@ -0,0 +1,15 @@
+
+
+WorldCoordinate.longitude -
+
+
+
+core.node / WorldCoordinate / longitude
+
+longitude
+
+val longitude : Double
+
+
+
+
diff --git a/docs/build/html/api/core.node/-world-coordinate/project.html b/docs/build/html/api/core.node/-world-coordinate/project.html
new file mode 100644
index 0000000000..0b5e4357f8
--- /dev/null
+++ b/docs/build/html/api/core.node/-world-coordinate/project.html
@@ -0,0 +1,22 @@
+
+
+WorldCoordinate.project -
+
+
+
+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/core.node/get-value.html b/docs/build/html/api/core.node/get-value.html
new file mode 100644
index 0000000000..f409e40ee4
--- /dev/null
+++ b/docs/build/html/api/core.node/get-value.html
@@ -0,0 +1,15 @@
+
+
+getValue -
+
+
+
+core.node / getValue
+
+getValue
+
+operator fun <ERROR CLASS> . getValue ( receiver : NodeConfigurationFromConfig , metadata : KProperty < * > ) : <ERROR CLASS>
+
+
+
+
diff --git a/docs/build/html/api/core.node/index.html b/docs/build/html/api/core.node/index.html
new file mode 100644
index 0000000000..bc6bce267e
--- /dev/null
+++ b/docs/build/html/api/core.node/index.html
@@ -0,0 +1,121 @@
+
+
+core.node -
+
+
+
+core.node
+
+Package core.node
+Types
+
+
+
+
+AbstractNode
+
+abstract class 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.
+
+
+
+
+AcceptsFileUpload
+
+interface AcceptsFileUpload
A service that implements AcceptsFileUpload can have new binary data provided to it via an HTTP upload.
+
+
+
+
+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.
+
+
+
+
+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.
+
+
+
+
+NodeConfiguration
+
+interface NodeConfiguration
+
+
+
+NodeConfigurationFromConfig
+
+class NodeConfigurationFromConfig : NodeConfiguration
+
+
+
+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.
+
+
+
+
+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.
+
+
+
+
+Exceptions
+
+Functions
+
+
+
diff --git a/docs/build/html/api/core.protocols/-protocol-logic/-init-.html b/docs/build/html/api/core.protocols/-protocol-logic/-init-.html
new file mode 100644
index 0000000000..608006173b
--- /dev/null
+++ b/docs/build/html/api/core.protocols/-protocol-logic/-init-.html
@@ -0,0 +1,28 @@
+
+
+ProtocolLogic. -
+
+
+
+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/core.protocols/-protocol-logic/call.html b/docs/build/html/api/core.protocols/-protocol-logic/call.html
new file mode 100644
index 0000000000..d57ececdc0
--- /dev/null
+++ b/docs/build/html/api/core.protocols/-protocol-logic/call.html
@@ -0,0 +1,16 @@
+
+
+ProtocolLogic.call -
+
+
+
+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/core.protocols/-protocol-logic/index.html b/docs/build/html/api/core.protocols/-protocol-logic/index.html
new file mode 100644
index 0000000000..5c8afe34c6
--- /dev/null
+++ b/docs/build/html/api/core.protocols/-protocol-logic/index.html
@@ -0,0 +1,220 @@
+
+
+ProtocolLogic -
+
+
+
+core.protocols / ProtocolLogic
+
+ProtocolLogic
+abstract class ProtocolLogic < 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
+
+
+
+
+Functions
+
+
+
+
+call
+
+abstract fun call ( ) : T
This is where you fill out your business logic.
+
+
+
+
+receive
+
+fun < T : Any > receive ( topic : String , sessionIDForReceive : Long ) : UntrustworthyData < T >
+fun < T : Any > receive ( topic : String , sessionIDForReceive : Long , clazz : Class < T > ) : UntrustworthyData < T >
+
+
+
+send
+
+fun send ( topic : String , destination : MessageRecipients , sessionID : Long , obj : Any ) : Unit
+
+
+
+sendAndReceive
+
+fun < T : Any > sendAndReceive ( topic : String , destination : MessageRecipients , sessionIDForSend : Long , sessionIDForReceive : Long , obj : Any ) : UntrustworthyData < T >
+
+
+
+subProtocol
+
+fun < R > subProtocol ( subLogic : ProtocolLogic < R > ) : R
Invokes the given subprotocol by simply passing through this ProtocolLogics reference to the
+ProtocolStateMachine and then calling the call method.
+
+
+
+
+Inheritors
+
+
+
+
+Broadcast
+
+class Broadcast : ProtocolLogic < Boolean >
This takes a Java Integer rather than Kotlin Int as that is what we end up with in the calling map and currently
+we do not support coercing numeric types in the reflective search for matching constructors
+
+
+
+
+Broadcast
+
+class Broadcast : ProtocolLogic < Boolean >
+
+
+
+Buyer
+
+class Buyer : ProtocolLogic < SignedTransaction >
+
+
+
+FetchDataProtocol
+
+abstract class FetchDataProtocol < T : NamedByHash , W : Any > : ProtocolLogic < Result < T > >
An abstract protocol for fetching typed data from a remote peer.
+
+
+
+
+Primary
+
+abstract class Primary < U > : ProtocolLogic < SignedTransaction >
Abstracted bilateral deal protocol participant that initiates communication/handshake.
+
+
+
+
+RatesFixProtocol
+
+open class RatesFixProtocol : ProtocolLogic < Unit >
This protocol queries the given oracle for an interest rate fix, and if it is within the given tolerance embeds the
+fix in the transaction and then proceeds to get the oracle to sign it. Although the call method combines the query
+and signing step, you can run the steps individually by constructing this object and then using the public methods
+for each step.
+
+
+
+
+Requester
+
+class Requester < T > : ProtocolLogic < SignedTransaction >
+
+
+
+ResolveTransactionsProtocol
+
+class ResolveTransactionsProtocol : ProtocolLogic < Unit >
This protocol fetches each transaction identified by the given hashes from either disk or network, along with all
+their dependencies, and verifies them together using a single TransactionGroup . If no exception is thrown, then
+all the transactions have been successfully verified and inserted into the local database.
+
+
+
+
+Secondary
+
+abstract class Secondary < U > : ProtocolLogic < SignedTransaction >
Abstracted bilateral deal protocol participant that is recipient of initial communication.
+
+
+
+
+Seller
+
+class Seller : ProtocolLogic < SignedTransaction >
+
+
+
+TimestampingProtocol
+
+class TimestampingProtocol : ProtocolLogic < LegallyIdentifiable >
The TimestampingProtocol class is the client code that talks to a NodeTimestamperService on some remote node. It is a
+ProtocolLogic, meaning it can either be a sub-protocol of some other protocol, or be driven independently.
+
+
+
+
+TraderDemoProtocolBuyer
+
+class TraderDemoProtocolBuyer : ProtocolLogic < Unit >
+
+
+
+TraderDemoProtocolSeller
+
+class TraderDemoProtocolSeller : ProtocolLogic < Unit >
+
+
+
+Updater
+
+class Updater : ProtocolLogic < Boolean >
+
+
+
+
+
diff --git a/docs/build/html/api/core.protocols/-protocol-logic/logger.html b/docs/build/html/api/core.protocols/-protocol-logic/logger.html
new file mode 100644
index 0000000000..1edfb304dd
--- /dev/null
+++ b/docs/build/html/api/core.protocols/-protocol-logic/logger.html
@@ -0,0 +1,16 @@
+
+
+ProtocolLogic.logger -
+
+
+
+core.protocols / ProtocolLogic / logger
+
+logger
+
+val logger : <ERROR CLASS>
+This is where you should log things to.
+
+
+
+
diff --git a/docs/build/html/api/core.protocols/-protocol-logic/progress-tracker.html b/docs/build/html/api/core.protocols/-protocol-logic/progress-tracker.html
new file mode 100644
index 0000000000..61c1033178
--- /dev/null
+++ b/docs/build/html/api/core.protocols/-protocol-logic/progress-tracker.html
@@ -0,0 +1,23 @@
+
+
+ProtocolLogic.progressTracker -
+
+
+
+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/core.protocols/-protocol-logic/psm.html b/docs/build/html/api/core.protocols/-protocol-logic/psm.html
new file mode 100644
index 0000000000..93cebeb618
--- /dev/null
+++ b/docs/build/html/api/core.protocols/-protocol-logic/psm.html
@@ -0,0 +1,16 @@
+
+
+ProtocolLogic.psm -
+
+
+
+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/core.protocols/-protocol-logic/receive.html b/docs/build/html/api/core.protocols/-protocol-logic/receive.html
new file mode 100644
index 0000000000..f56695b319
--- /dev/null
+++ b/docs/build/html/api/core.protocols/-protocol-logic/receive.html
@@ -0,0 +1,17 @@
+
+
+ProtocolLogic.receive -
+
+
+
+core.protocols / ProtocolLogic / receive
+
+receive
+
+inline fun < reified T : Any > receive ( topic : String , sessionIDForReceive : Long ) : UntrustworthyData < T >
+
+fun < T : Any > receive ( topic : String , sessionIDForReceive : Long , clazz : Class < T > ) : UntrustworthyData < T >
+
+
+
+
diff --git a/docs/build/html/api/core.protocols/-protocol-logic/send-and-receive.html b/docs/build/html/api/core.protocols/-protocol-logic/send-and-receive.html
new file mode 100644
index 0000000000..6f6f8a309e
--- /dev/null
+++ b/docs/build/html/api/core.protocols/-protocol-logic/send-and-receive.html
@@ -0,0 +1,15 @@
+
+
+ProtocolLogic.sendAndReceive -
+
+
+
+core.protocols / ProtocolLogic / sendAndReceive
+
+sendAndReceive
+
+inline fun < reified T : Any > sendAndReceive ( topic : String , destination : MessageRecipients , sessionIDForSend : Long , sessionIDForReceive : Long , obj : Any ) : UntrustworthyData < T >
+
+
+
+
diff --git a/docs/build/html/api/core.protocols/-protocol-logic/send.html b/docs/build/html/api/core.protocols/-protocol-logic/send.html
new file mode 100644
index 0000000000..79003b4e87
--- /dev/null
+++ b/docs/build/html/api/core.protocols/-protocol-logic/send.html
@@ -0,0 +1,15 @@
+
+
+ProtocolLogic.send -
+
+
+
+core.protocols / ProtocolLogic / send
+
+send
+
+fun send ( topic : String , destination : MessageRecipients , sessionID : Long , obj : Any ) : Unit
+
+
+
+
diff --git a/docs/build/html/api/core.protocols/-protocol-logic/service-hub.html b/docs/build/html/api/core.protocols/-protocol-logic/service-hub.html
new file mode 100644
index 0000000000..d77e9484dc
--- /dev/null
+++ b/docs/build/html/api/core.protocols/-protocol-logic/service-hub.html
@@ -0,0 +1,16 @@
+
+
+ProtocolLogic.serviceHub -
+
+
+
+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
+
+
+
+
diff --git a/docs/build/html/api/core.protocols/-protocol-logic/sub-protocol.html b/docs/build/html/api/core.protocols/-protocol-logic/sub-protocol.html
new file mode 100644
index 0000000000..19d404435f
--- /dev/null
+++ b/docs/build/html/api/core.protocols/-protocol-logic/sub-protocol.html
@@ -0,0 +1,17 @@
+
+
+ProtocolLogic.subProtocol -
+
+
+
+core.protocols / ProtocolLogic / subProtocol
+
+subProtocol
+
+fun < R > subProtocol ( subLogic : ProtocolLogic < R > ) : R
+Invokes the given subprotocol by simply passing through this ProtocolLogic s reference to the
+ProtocolStateMachine and then calling the call method.
+
+
+
+
diff --git a/docs/build/html/api/core.protocols/-protocol-state-machine/-init-.html b/docs/build/html/api/core.protocols/-protocol-state-machine/-init-.html
new file mode 100644
index 0000000000..c3b7aa6837
--- /dev/null
+++ b/docs/build/html/api/core.protocols/-protocol-state-machine/-init-.html
@@ -0,0 +1,21 @@
+
+
+ProtocolStateMachine. -
+
+
+
+core.protocols / ProtocolStateMachine / <init>
+
+<init>
+ProtocolStateMachine ( logic : ProtocolLogic < R > , scheduler : <ERROR CLASS> )
+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.
+
+
+
+
+
+
diff --git a/docs/build/html/api/core.protocols/-protocol-state-machine/index.html b/docs/build/html/api/core.protocols/-protocol-state-machine/index.html
new file mode 100644
index 0000000000..88082f7093
--- /dev/null
+++ b/docs/build/html/api/core.protocols/-protocol-state-machine/index.html
@@ -0,0 +1,99 @@
+
+
+ProtocolStateMachine -
+
+
+
+core.protocols / ProtocolStateMachine
+
+ProtocolStateMachine
+class 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.
+
+
+
+
+Constructors
+
+
+
+
+<init>
+
+ProtocolStateMachine ( logic : ProtocolLogic < R > , scheduler : <ERROR CLASS> )
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.
+
+
+
+
+Properties
+
+Functions
+
+
+
+
+prepareForResumeWith
+
+fun prepareForResumeWith ( serviceHub : ServiceHub , withObject : Any ? , logger : <ERROR CLASS> , suspendFunc : ( FiberRequest , ByteArray ) -> Unit ) : Unit
+
+
+
+receive
+
+fun < T : Any > receive ( topic : String , sessionIDForReceive : Long , recvType : Class < T > ) : UntrustworthyData < T >
+
+
+
+run
+
+fun run ( ) : R
+
+
+
+send
+
+fun send ( topic : String , destination : MessageRecipients , sessionID : Long , obj : Any ) : Unit
+
+
+
+sendAndReceive
+
+fun < T : Any > sendAndReceive ( topic : String , destination : MessageRecipients , sessionIDForSend : Long , sessionIDForReceive : Long , obj : Any , recvType : Class < T > ) : UntrustworthyData < T >
+
+
+
+
+
diff --git a/docs/build/html/api/core.protocols/-protocol-state-machine/logger.html b/docs/build/html/api/core.protocols/-protocol-state-machine/logger.html
new file mode 100644
index 0000000000..ee52ad408f
--- /dev/null
+++ b/docs/build/html/api/core.protocols/-protocol-state-machine/logger.html
@@ -0,0 +1,15 @@
+
+
+ProtocolStateMachine.logger -
+
+
+
+core.protocols / ProtocolStateMachine / logger
+
+logger
+
+lateinit var logger : <ERROR CLASS>
+
+
+
+
diff --git a/docs/build/html/api/core.protocols/-protocol-state-machine/logic.html b/docs/build/html/api/core.protocols/-protocol-state-machine/logic.html
new file mode 100644
index 0000000000..48dc16d757
--- /dev/null
+++ b/docs/build/html/api/core.protocols/-protocol-state-machine/logic.html
@@ -0,0 +1,15 @@
+
+
+ProtocolStateMachine.logic -
+
+
+
+core.protocols / ProtocolStateMachine / logic
+
+logic
+
+val logic : ProtocolLogic < R >
+
+
+
+
diff --git a/docs/build/html/api/core.protocols/-protocol-state-machine/prepare-for-resume-with.html b/docs/build/html/api/core.protocols/-protocol-state-machine/prepare-for-resume-with.html
new file mode 100644
index 0000000000..314381a4e5
--- /dev/null
+++ b/docs/build/html/api/core.protocols/-protocol-state-machine/prepare-for-resume-with.html
@@ -0,0 +1,15 @@
+
+
+ProtocolStateMachine.prepareForResumeWith -
+
+
+
+core.protocols / ProtocolStateMachine / prepareForResumeWith
+
+prepareForResumeWith
+
+fun prepareForResumeWith ( serviceHub : ServiceHub , withObject : Any ? , logger : <ERROR CLASS> , suspendFunc : ( FiberRequest , ByteArray ) -> Unit ) : Unit
+
+
+
+
diff --git a/docs/build/html/api/core.protocols/-protocol-state-machine/receive.html b/docs/build/html/api/core.protocols/-protocol-state-machine/receive.html
new file mode 100644
index 0000000000..bcc203a290
--- /dev/null
+++ b/docs/build/html/api/core.protocols/-protocol-state-machine/receive.html
@@ -0,0 +1,15 @@
+
+
+ProtocolStateMachine.receive -
+
+
+
+core.protocols / ProtocolStateMachine / receive
+
+receive
+
+fun < T : Any > receive ( topic : String , sessionIDForReceive : Long , recvType : Class < T > ) : UntrustworthyData < T >
+
+
+
+
diff --git a/docs/build/html/api/core.protocols/-protocol-state-machine/result-future.html b/docs/build/html/api/core.protocols/-protocol-state-machine/result-future.html
new file mode 100644
index 0000000000..6868b0c36f
--- /dev/null
+++ b/docs/build/html/api/core.protocols/-protocol-state-machine/result-future.html
@@ -0,0 +1,16 @@
+
+
+ProtocolStateMachine.resultFuture -
+
+
+
+core.protocols / ProtocolStateMachine / resultFuture
+
+resultFuture
+
+val resultFuture : <ERROR CLASS> < R >
+This future will complete when the call method returns.
+
+
+
+
diff --git a/docs/build/html/api/core.protocols/-protocol-state-machine/run.html b/docs/build/html/api/core.protocols/-protocol-state-machine/run.html
new file mode 100644
index 0000000000..d348d2ab72
--- /dev/null
+++ b/docs/build/html/api/core.protocols/-protocol-state-machine/run.html
@@ -0,0 +1,15 @@
+
+
+ProtocolStateMachine.run -
+
+
+
+core.protocols / ProtocolStateMachine / run
+
+run
+
+fun run ( ) : R
+
+
+
+
diff --git a/docs/build/html/api/core.protocols/-protocol-state-machine/send-and-receive.html b/docs/build/html/api/core.protocols/-protocol-state-machine/send-and-receive.html
new file mode 100644
index 0000000000..a78e7f2d18
--- /dev/null
+++ b/docs/build/html/api/core.protocols/-protocol-state-machine/send-and-receive.html
@@ -0,0 +1,15 @@
+
+
+ProtocolStateMachine.sendAndReceive -
+
+
+
+core.protocols / ProtocolStateMachine / sendAndReceive
+
+sendAndReceive
+
+fun < T : Any > sendAndReceive ( topic : String , destination : MessageRecipients , sessionIDForSend : Long , sessionIDForReceive : Long , obj : Any , recvType : Class < T > ) : UntrustworthyData < T >
+
+
+
+
diff --git a/docs/build/html/api/core.protocols/-protocol-state-machine/send.html b/docs/build/html/api/core.protocols/-protocol-state-machine/send.html
new file mode 100644
index 0000000000..537477163c
--- /dev/null
+++ b/docs/build/html/api/core.protocols/-protocol-state-machine/send.html
@@ -0,0 +1,15 @@
+
+
+ProtocolStateMachine.send -
+
+
+
+core.protocols / ProtocolStateMachine / send
+
+send
+
+fun send ( topic : String , destination : MessageRecipients , sessionID : Long , obj : Any ) : Unit
+
+
+
+
diff --git a/docs/build/html/api/core.protocols/-protocol-state-machine/service-hub.html b/docs/build/html/api/core.protocols/-protocol-state-machine/service-hub.html
new file mode 100644
index 0000000000..a457540053
--- /dev/null
+++ b/docs/build/html/api/core.protocols/-protocol-state-machine/service-hub.html
@@ -0,0 +1,15 @@
+
+
+ProtocolStateMachine.serviceHub -
+
+
+
+core.protocols / ProtocolStateMachine / serviceHub
+
+serviceHub
+
+lateinit var serviceHub : ServiceHub
+
+
+
+
diff --git a/docs/build/html/api/core.protocols/index.html b/docs/build/html/api/core.protocols/index.html
new file mode 100644
index 0000000000..b1e35c12be
--- /dev/null
+++ b/docs/build/html/api/core.protocols/index.html
@@ -0,0 +1,33 @@
+
+
+core.protocols -
+
+
+
+core.protocols
+
+Package core.protocols
+Types
+
+
+
+
+ProtocolLogic
+
+abstract class ProtocolLogic < 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.
+
+
+
+
+ProtocolStateMachine
+
+class 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.
+
+
+
+
+
+
diff --git a/docs/build/html/api/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/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..2d928f20b3
--- /dev/null
+++ b/docs/build/html/api/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 -
+
+
+
+core.serialization / ATTACHMENT_STORAGE
+
+ATTACHMENT_STORAGE
+
+val ATTACHMENT_STORAGE : String
+
+
+
+
diff --git a/docs/build/html/api/core.serialization/-immutable-class-serializer/-init-.html b/docs/build/html/api/core.serialization/-immutable-class-serializer/-init-.html
new file mode 100644
index 0000000000..2e64a45bb0
--- /dev/null
+++ b/docs/build/html/api/core.serialization/-immutable-class-serializer/-init-.html
@@ -0,0 +1,16 @@
+
+
+ImmutableClassSerializer. -
+
+
+
+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/core.serialization/-immutable-class-serializer/constructor.html b/docs/build/html/api/core.serialization/-immutable-class-serializer/constructor.html
new file mode 100644
index 0000000000..6aef5d8540
--- /dev/null
+++ b/docs/build/html/api/core.serialization/-immutable-class-serializer/constructor.html
@@ -0,0 +1,15 @@
+
+
+ImmutableClassSerializer.constructor -
+
+
+
+core.serialization / ImmutableClassSerializer / constructor
+
+constructor
+
+val constructor : <ERROR CLASS>
+
+
+
+
diff --git a/docs/build/html/api/core.serialization/-immutable-class-serializer/index.html b/docs/build/html/api/core.serialization/-immutable-class-serializer/index.html
new file mode 100644
index 0000000000..692a4402af
--- /dev/null
+++ b/docs/build/html/api/core.serialization/-immutable-class-serializer/index.html
@@ -0,0 +1,75 @@
+
+
+ImmutableClassSerializer -
+
+
+
+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/core.serialization/-immutable-class-serializer/klass.html b/docs/build/html/api/core.serialization/-immutable-class-serializer/klass.html
new file mode 100644
index 0000000000..2364ab2637
--- /dev/null
+++ b/docs/build/html/api/core.serialization/-immutable-class-serializer/klass.html
@@ -0,0 +1,15 @@
+
+
+ImmutableClassSerializer.klass -
+
+
+
+core.serialization / ImmutableClassSerializer / klass
+
+klass
+
+val klass : KClass < T >
+
+
+
+
diff --git a/docs/build/html/api/core.serialization/-immutable-class-serializer/props-by-name.html b/docs/build/html/api/core.serialization/-immutable-class-serializer/props-by-name.html
new file mode 100644
index 0000000000..fa117e05b6
--- /dev/null
+++ b/docs/build/html/api/core.serialization/-immutable-class-serializer/props-by-name.html
@@ -0,0 +1,15 @@
+
+
+ImmutableClassSerializer.propsByName -
+
+
+
+core.serialization / ImmutableClassSerializer / propsByName
+
+propsByName
+
+val propsByName : <ERROR CLASS>
+
+
+
+
diff --git a/docs/build/html/api/core.serialization/-immutable-class-serializer/props.html b/docs/build/html/api/core.serialization/-immutable-class-serializer/props.html
new file mode 100644
index 0000000000..b0b6bf2a28
--- /dev/null
+++ b/docs/build/html/api/core.serialization/-immutable-class-serializer/props.html
@@ -0,0 +1,15 @@
+
+
+ImmutableClassSerializer.props -
+
+
+
+core.serialization / ImmutableClassSerializer / props
+
+props
+
+val props : <ERROR CLASS>
+
+
+
+
diff --git a/docs/build/html/api/core.serialization/-immutable-class-serializer/read.html b/docs/build/html/api/core.serialization/-immutable-class-serializer/read.html
new file mode 100644
index 0000000000..3938d44d99
--- /dev/null
+++ b/docs/build/html/api/core.serialization/-immutable-class-serializer/read.html
@@ -0,0 +1,15 @@
+
+
+ImmutableClassSerializer.read -
+
+
+
+core.serialization / ImmutableClassSerializer / read
+
+read
+
+fun read ( kryo : <ERROR CLASS> , input : <ERROR CLASS> , type : Class < T > ) : T
+
+
+
+
diff --git a/docs/build/html/api/core.serialization/-immutable-class-serializer/write.html b/docs/build/html/api/core.serialization/-immutable-class-serializer/write.html
new file mode 100644
index 0000000000..c5d295685a
--- /dev/null
+++ b/docs/build/html/api/core.serialization/-immutable-class-serializer/write.html
@@ -0,0 +1,15 @@
+
+
+ImmutableClassSerializer.write -
+
+
+
+core.serialization / ImmutableClassSerializer / write
+
+write
+
+fun write ( kryo : <ERROR CLASS> , output : <ERROR CLASS> , obj : T ) : Unit
+
+
+
+
diff --git a/docs/build/html/api/core.serialization/-missing-attachments-exception/-init-.html b/docs/build/html/api/core.serialization/-missing-attachments-exception/-init-.html
new file mode 100644
index 0000000000..e940ee0880
--- /dev/null
+++ b/docs/build/html/api/core.serialization/-missing-attachments-exception/-init-.html
@@ -0,0 +1,15 @@
+
+
+MissingAttachmentsException. -
+
+
+
+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/core.serialization/-missing-attachments-exception/ids.html b/docs/build/html/api/core.serialization/-missing-attachments-exception/ids.html
new file mode 100644
index 0000000000..a3a040cb8c
--- /dev/null
+++ b/docs/build/html/api/core.serialization/-missing-attachments-exception/ids.html
@@ -0,0 +1,15 @@
+
+
+MissingAttachmentsException.ids -
+
+
+
+core.serialization / MissingAttachmentsException / ids
+
+ids
+
+val ids : List < SecureHash >
+
+
+
+
diff --git a/docs/build/html/api/core.serialization/-missing-attachments-exception/index.html b/docs/build/html/api/core.serialization/-missing-attachments-exception/index.html
new file mode 100644
index 0000000000..6c3e2ee8aa
--- /dev/null
+++ b/docs/build/html/api/core.serialization/-missing-attachments-exception/index.html
@@ -0,0 +1,38 @@
+
+
+MissingAttachmentsException -
+
+
+
+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
+
+
+
diff --git a/docs/build/html/api/core.serialization/-opaque-bytes/-init-.html b/docs/build/html/api/core.serialization/-opaque-bytes/-init-.html
new file mode 100644
index 0000000000..dc6a32ac31
--- /dev/null
+++ b/docs/build/html/api/core.serialization/-opaque-bytes/-init-.html
@@ -0,0 +1,17 @@
+
+
+OpaqueBytes. -
+
+
+
+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/core.serialization/-opaque-bytes/bits.html b/docs/build/html/api/core.serialization/-opaque-bytes/bits.html
new file mode 100644
index 0000000000..ac93754a3c
--- /dev/null
+++ b/docs/build/html/api/core.serialization/-opaque-bytes/bits.html
@@ -0,0 +1,15 @@
+
+
+OpaqueBytes.bits -
+
+
+
+core.serialization / OpaqueBytes / bits
+
+bits
+
+val bits : ByteArray
+
+
+
+
diff --git a/docs/build/html/api/core.serialization/-opaque-bytes/equals.html b/docs/build/html/api/core.serialization/-opaque-bytes/equals.html
new file mode 100644
index 0000000000..32d92ad64e
--- /dev/null
+++ b/docs/build/html/api/core.serialization/-opaque-bytes/equals.html
@@ -0,0 +1,15 @@
+
+
+OpaqueBytes.equals -
+
+
+
+core.serialization / OpaqueBytes / equals
+
+equals
+
+open fun equals ( other : Any ? ) : Boolean
+
+
+
+
diff --git a/docs/build/html/api/core.serialization/-opaque-bytes/hash-code.html b/docs/build/html/api/core.serialization/-opaque-bytes/hash-code.html
new file mode 100644
index 0000000000..7b12a43e91
--- /dev/null
+++ b/docs/build/html/api/core.serialization/-opaque-bytes/hash-code.html
@@ -0,0 +1,15 @@
+
+
+OpaqueBytes.hashCode -
+
+
+
+core.serialization / OpaqueBytes / hashCode
+
+hashCode
+
+open fun hashCode ( ) : Int
+
+
+
+
diff --git a/docs/build/html/api/core.serialization/-opaque-bytes/index.html b/docs/build/html/api/core.serialization/-opaque-bytes/index.html
new file mode 100644
index 0000000000..fbc96eea3f
--- /dev/null
+++ b/docs/build/html/api/core.serialization/-opaque-bytes/index.html
@@ -0,0 +1,127 @@
+
+
+OpaqueBytes -
+
+
+
+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
+
+
+
+
+equals
+
+open fun equals ( other : Any ? ) : Boolean
+
+
+
+hashCode
+
+open fun hashCode ( ) : Int
+
+
+
+toString
+
+open fun toString ( ) : String
+
+
+
+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
+
+
+
+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/core.serialization/-opaque-bytes/of.html b/docs/build/html/api/core.serialization/-opaque-bytes/of.html
new file mode 100644
index 0000000000..d741a14bcd
--- /dev/null
+++ b/docs/build/html/api/core.serialization/-opaque-bytes/of.html
@@ -0,0 +1,15 @@
+
+
+OpaqueBytes.of -
+
+
+
+core.serialization / OpaqueBytes / of
+
+of
+
+fun of ( vararg b : Byte ) : OpaqueBytes
+
+
+
+
diff --git a/docs/build/html/api/core.serialization/-opaque-bytes/size.html b/docs/build/html/api/core.serialization/-opaque-bytes/size.html
new file mode 100644
index 0000000000..6481021502
--- /dev/null
+++ b/docs/build/html/api/core.serialization/-opaque-bytes/size.html
@@ -0,0 +1,15 @@
+
+
+OpaqueBytes.size -
+
+
+
+core.serialization / OpaqueBytes / size
+
+size
+
+val size : Int
+
+
+
+
diff --git a/docs/build/html/api/core.serialization/-opaque-bytes/to-string.html b/docs/build/html/api/core.serialization/-opaque-bytes/to-string.html
new file mode 100644
index 0000000000..c5eadf1572
--- /dev/null
+++ b/docs/build/html/api/core.serialization/-opaque-bytes/to-string.html
@@ -0,0 +1,15 @@
+
+
+OpaqueBytes.toString -
+
+
+
+core.serialization / OpaqueBytes / toString
+
+toString
+
+open fun toString ( ) : String
+
+
+
+
diff --git a/docs/build/html/api/core.serialization/-serialized-bytes-serializer/index.html b/docs/build/html/api/core.serialization/-serialized-bytes-serializer/index.html
new file mode 100644
index 0000000000..29cb75bfa3
--- /dev/null
+++ b/docs/build/html/api/core.serialization/-serialized-bytes-serializer/index.html
@@ -0,0 +1,33 @@
+
+
+SerializedBytesSerializer -
+
+
+
+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/core.serialization/-serialized-bytes-serializer/read.html b/docs/build/html/api/core.serialization/-serialized-bytes-serializer/read.html
new file mode 100644
index 0000000000..e610bb4ea6
--- /dev/null
+++ b/docs/build/html/api/core.serialization/-serialized-bytes-serializer/read.html
@@ -0,0 +1,15 @@
+
+
+SerializedBytesSerializer.read -
+
+
+
+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/core.serialization/-serialized-bytes-serializer/write.html b/docs/build/html/api/core.serialization/-serialized-bytes-serializer/write.html
new file mode 100644
index 0000000000..732dd6ecc9
--- /dev/null
+++ b/docs/build/html/api/core.serialization/-serialized-bytes-serializer/write.html
@@ -0,0 +1,15 @@
+
+
+SerializedBytesSerializer.write -
+
+
+
+core.serialization / SerializedBytesSerializer / write
+
+write
+
+fun write ( kryo : <ERROR CLASS> , output : <ERROR CLASS> , obj : SerializedBytes < Any > ) : Unit
+
+
+
+
diff --git a/docs/build/html/api/core.serialization/-serialized-bytes/-init-.html b/docs/build/html/api/core.serialization/-serialized-bytes/-init-.html
new file mode 100644
index 0000000000..d3d39468ba
--- /dev/null
+++ b/docs/build/html/api/core.serialization/-serialized-bytes/-init-.html
@@ -0,0 +1,16 @@
+
+
+SerializedBytes. -
+
+
+
+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/core.serialization/-serialized-bytes/hash.html b/docs/build/html/api/core.serialization/-serialized-bytes/hash.html
new file mode 100644
index 0000000000..1e2408062a
--- /dev/null
+++ b/docs/build/html/api/core.serialization/-serialized-bytes/hash.html
@@ -0,0 +1,15 @@
+
+
+SerializedBytes.hash -
+
+
+
+core.serialization / SerializedBytes / hash
+
+hash
+
+val hash : SecureHash
+
+
+
+
diff --git a/docs/build/html/api/core.serialization/-serialized-bytes/index.html b/docs/build/html/api/core.serialization/-serialized-bytes/index.html
new file mode 100644
index 0000000000..3ff44aca5a
--- /dev/null
+++ b/docs/build/html/api/core.serialization/-serialized-bytes/index.html
@@ -0,0 +1,110 @@
+
+
+SerializedBytes -
+
+
+
+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
+
+
+
+
+equals
+
+open fun equals ( other : Any ? ) : Boolean
+
+
+
+hashCode
+
+open fun hashCode ( ) : Int
+
+
+
+toString
+
+open fun toString ( ) : String
+
+
+
+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/core.serialization/-serialized-bytes/write-to-file.html b/docs/build/html/api/core.serialization/-serialized-bytes/write-to-file.html
new file mode 100644
index 0000000000..5c4232fe2e
--- /dev/null
+++ b/docs/build/html/api/core.serialization/-serialized-bytes/write-to-file.html
@@ -0,0 +1,15 @@
+
+
+SerializedBytes.writeToFile -
+
+
+
+core.serialization / SerializedBytes / writeToFile
+
+writeToFile
+
+fun writeToFile ( path : Path ) : Path
+
+
+
+
diff --git a/docs/build/html/api/core.serialization/-t-h-r-e-a-d_-l-o-c-a-l_-k-r-y-o.html b/docs/build/html/api/core.serialization/-t-h-r-e-a-d_-l-o-c-a-l_-k-r-y-o.html
new file mode 100644
index 0000000000..b30b67df9e
--- /dev/null
+++ b/docs/build/html/api/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 -
+
+
+
+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/core.serialization/-wire-transaction-serializer/index.html b/docs/build/html/api/core.serialization/-wire-transaction-serializer/index.html
new file mode 100644
index 0000000000..38503259ee
--- /dev/null
+++ b/docs/build/html/api/core.serialization/-wire-transaction-serializer/index.html
@@ -0,0 +1,32 @@
+
+
+WireTransactionSerializer -
+
+
+
+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/core.serialization/-wire-transaction-serializer/read.html b/docs/build/html/api/core.serialization/-wire-transaction-serializer/read.html
new file mode 100644
index 0000000000..391e852af3
--- /dev/null
+++ b/docs/build/html/api/core.serialization/-wire-transaction-serializer/read.html
@@ -0,0 +1,15 @@
+
+
+WireTransactionSerializer.read -
+
+
+
+core.serialization / WireTransactionSerializer / read
+
+read
+
+fun read ( kryo : <ERROR CLASS> , input : <ERROR CLASS> , type : Class < WireTransaction > ) : WireTransaction
+
+
+
+
diff --git a/docs/build/html/api/core.serialization/-wire-transaction-serializer/write.html b/docs/build/html/api/core.serialization/-wire-transaction-serializer/write.html
new file mode 100644
index 0000000000..38bd8fef79
--- /dev/null
+++ b/docs/build/html/api/core.serialization/-wire-transaction-serializer/write.html
@@ -0,0 +1,15 @@
+
+
+WireTransactionSerializer.write -
+
+
+
+core.serialization / WireTransactionSerializer / write
+
+write
+
+fun write ( kryo : <ERROR CLASS> , output : <ERROR CLASS> , obj : WireTransaction ) : Unit
+
+
+
+
diff --git a/docs/build/html/api/core.serialization/attachment-storage.html b/docs/build/html/api/core.serialization/attachment-storage.html
new file mode 100644
index 0000000000..8b2533e19f
--- /dev/null
+++ b/docs/build/html/api/core.serialization/attachment-storage.html
@@ -0,0 +1,15 @@
+
+
+attachmentStorage -
+
+
+
+core.serialization / attachmentStorage
+
+attachmentStorage
+
+var <ERROR CLASS> . attachmentStorage : AttachmentStorage ?
+
+
+
+
diff --git a/docs/build/html/api/core.serialization/create-kryo.html b/docs/build/html/api/core.serialization/create-kryo.html
new file mode 100644
index 0000000000..e3646c7c59
--- /dev/null
+++ b/docs/build/html/api/core.serialization/create-kryo.html
@@ -0,0 +1,15 @@
+
+
+createKryo -
+
+
+
+core.serialization / createKryo
+
+createKryo
+
+fun createKryo ( k : <ERROR CLASS> = Kryo()) : <ERROR CLASS>
+
+
+
+
diff --git a/docs/build/html/api/core.serialization/deserialize.html b/docs/build/html/api/core.serialization/deserialize.html
new file mode 100644
index 0000000000..054ff66478
--- /dev/null
+++ b/docs/build/html/api/core.serialization/deserialize.html
@@ -0,0 +1,19 @@
+
+
+deserialize -
+
+
+
+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/core.serialization/index.html b/docs/build/html/api/core.serialization/index.html
new file mode 100644
index 0000000000..18571e7889
--- /dev/null
+++ b/docs/build/html/api/core.serialization/index.html
@@ -0,0 +1,137 @@
+
+
+core.serialization -
+
+
+
+core.serialization
+
+Package core.serialization
+Types
+
+
+
+
+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.
+
+
+
+
+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
+
+
+
+
+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.
+
+
+
+
+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
+
+
+
+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
+
+
+
+
+
diff --git a/docs/build/html/api/core.serialization/kotlin.-byte-array/deserialize.html b/docs/build/html/api/core.serialization/kotlin.-byte-array/deserialize.html
new file mode 100644
index 0000000000..566a9bc90e
--- /dev/null
+++ b/docs/build/html/api/core.serialization/kotlin.-byte-array/deserialize.html
@@ -0,0 +1,15 @@
+
+
+deserialize -
+
+
+
+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/core.serialization/kotlin.-byte-array/index.html b/docs/build/html/api/core.serialization/kotlin.-byte-array/index.html
new file mode 100644
index 0000000000..9a48530313
--- /dev/null
+++ b/docs/build/html/api/core.serialization/kotlin.-byte-array/index.html
@@ -0,0 +1,27 @@
+
+
+core.serialization.kotlin.ByteArray -
+
+
+
+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
+
+
+
+
+
diff --git a/docs/build/html/api/core.serialization/kotlin.-byte-array/opaque.html b/docs/build/html/api/core.serialization/kotlin.-byte-array/opaque.html
new file mode 100644
index 0000000000..5baa528246
--- /dev/null
+++ b/docs/build/html/api/core.serialization/kotlin.-byte-array/opaque.html
@@ -0,0 +1,15 @@
+
+
+opaque -
+
+
+
+core.serialization / kotlin.ByteArray / opaque
+
+opaque
+
+fun ByteArray . opaque ( ) : OpaqueBytes
+
+
+
+
diff --git a/docs/build/html/api/core.serialization/serialize.html b/docs/build/html/api/core.serialization/serialize.html
new file mode 100644
index 0000000000..1495069db4
--- /dev/null
+++ b/docs/build/html/api/core.serialization/serialize.html
@@ -0,0 +1,17 @@
+
+
+serialize -
+
+
+
+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/core.serialization/use-class-loader.html b/docs/build/html/api/core.serialization/use-class-loader.html
new file mode 100644
index 0000000000..a632d4b84c
--- /dev/null
+++ b/docs/build/html/api/core.serialization/use-class-loader.html
@@ -0,0 +1,15 @@
+
+
+useClassLoader -
+
+
+
+core.serialization / useClassLoader
+
+useClassLoader
+
+inline fun < T > <ERROR CLASS> . useClassLoader ( cl : ClassLoader , body : ( ) -> T ) : T
+
+
+
+
diff --git a/docs/build/html/api/core.testing/-i-r-s-simulation/-init-.html b/docs/build/html/api/core.testing/-i-r-s-simulation/-init-.html
new file mode 100644
index 0000000000..24f576813f
--- /dev/null
+++ b/docs/build/html/api/core.testing/-i-r-s-simulation/-init-.html
@@ -0,0 +1,15 @@
+
+
+IRSSimulation. -
+
+
+
+core.testing / IRSSimulation / <init>
+
+<init>
+IRSSimulation ( : Boolean , : LatencyCalculator ? )
+A simulation in which banks execute interest rate swaps with each other, including the fixing events.
+
+
+
+
diff --git a/docs/build/html/api/core.testing/-i-r-s-simulation/index.html b/docs/build/html/api/core.testing/-i-r-s-simulation/index.html
new file mode 100644
index 0000000000..27ea4cc5b5
--- /dev/null
+++ b/docs/build/html/api/core.testing/-i-r-s-simulation/index.html
@@ -0,0 +1,192 @@
+
+
+IRSSimulation -
+
+
+
+core.testing / IRSSimulation
+
+IRSSimulation
+class IRSSimulation : Simulation
+A simulation in which banks execute interest rate swaps with each other, including the fixing events.
+
+
+Constructors
+
+
+
+
+<init>
+
+IRSSimulation ( : Boolean , : LatencyCalculator ? )
A simulation in which banks execute interest rate swaps with each other, including the fixing events.
+
+
+
+
+Properties
+
+
+
+
+om
+
+val om : <ERROR CLASS>
+
+
+
+Inherited Properties
+
+Functions
+
+
+
+
+iterate
+
+fun iterate ( ) : Unit
Iterates the simulation by one step.
+
+
+
+
+start
+
+fun start ( ) : Unit
+
+
+
+Inherited Functions
+
+
+
diff --git a/docs/build/html/api/core.testing/-i-r-s-simulation/iterate.html b/docs/build/html/api/core.testing/-i-r-s-simulation/iterate.html
new file mode 100644
index 0000000000..8ae7e7d1ce
--- /dev/null
+++ b/docs/build/html/api/core.testing/-i-r-s-simulation/iterate.html
@@ -0,0 +1,23 @@
+
+
+IRSSimulation.iterate -
+
+
+
+core.testing / IRSSimulation / iterate
+
+iterate
+
+fun iterate ( ) : Unit
+Overrides Simulation.iterate
+Iterates the simulation by one step.
+The default implementation circles around the nodes, pumping until one of them handles a message. The next call
+will carry on from where this one stopped. In an environment where you want to take actions between anything
+interesting happening, or control the precise speed at which things operate (beyond the latency injector), this
+is a useful way to do things.
+
+
+
+
+
+
diff --git a/docs/build/html/api/core.testing/-i-r-s-simulation/om.html b/docs/build/html/api/core.testing/-i-r-s-simulation/om.html
new file mode 100644
index 0000000000..1959022bc3
--- /dev/null
+++ b/docs/build/html/api/core.testing/-i-r-s-simulation/om.html
@@ -0,0 +1,15 @@
+
+
+IRSSimulation.om -
+
+
+
+core.testing / IRSSimulation / om
+
+om
+
+val om : <ERROR CLASS>
+
+
+
+
diff --git a/docs/build/html/api/core.testing/-i-r-s-simulation/start.html b/docs/build/html/api/core.testing/-i-r-s-simulation/start.html
new file mode 100644
index 0000000000..46e3274d0e
--- /dev/null
+++ b/docs/build/html/api/core.testing/-i-r-s-simulation/start.html
@@ -0,0 +1,16 @@
+
+
+IRSSimulation.start -
+
+
+
+core.testing / IRSSimulation / start
+
+start
+
+fun start ( ) : Unit
+Overrides Simulation.start
+
+
+
+
diff --git a/docs/build/html/api/core.testing/-in-memory-messaging-network/-builder/-init-.html b/docs/build/html/api/core.testing/-in-memory-messaging-network/-builder/-init-.html
new file mode 100644
index 0000000000..c1e02772a7
--- /dev/null
+++ b/docs/build/html/api/core.testing/-in-memory-messaging-network/-builder/-init-.html
@@ -0,0 +1,14 @@
+
+
+InMemoryMessagingNetwork.Builder. -
+
+
+
+core.testing / InMemoryMessagingNetwork / Builder / <init>
+
+<init>
+Builder ( manuallyPumped : Boolean , id : Handle )
+
+
+
+
diff --git a/docs/build/html/api/core.testing/-in-memory-messaging-network/-builder/id.html b/docs/build/html/api/core.testing/-in-memory-messaging-network/-builder/id.html
new file mode 100644
index 0000000000..f4bd38116f
--- /dev/null
+++ b/docs/build/html/api/core.testing/-in-memory-messaging-network/-builder/id.html
@@ -0,0 +1,15 @@
+
+
+InMemoryMessagingNetwork.Builder.id -
+
+
+
+core.testing / InMemoryMessagingNetwork / Builder / id
+
+id
+
+val id : Handle
+
+
+
+
diff --git a/docs/build/html/api/core.testing/-in-memory-messaging-network/-builder/index.html b/docs/build/html/api/core.testing/-in-memory-messaging-network/-builder/index.html
new file mode 100644
index 0000000000..191b79cf00
--- /dev/null
+++ b/docs/build/html/api/core.testing/-in-memory-messaging-network/-builder/index.html
@@ -0,0 +1,53 @@
+
+
+InMemoryMessagingNetwork.Builder -
+
+
+
+core.testing / InMemoryMessagingNetwork / Builder
+
+Builder
+inner class Builder : MessagingServiceBuilder < InMemoryMessaging >
+
+
+Constructors
+
+
+
+
+<init>
+
+Builder ( manuallyPumped : Boolean , id : Handle )
+
+
+
+Properties
+
+Functions
+
+
+
diff --git a/docs/build/html/api/core.testing/-in-memory-messaging-network/-builder/manually-pumped.html b/docs/build/html/api/core.testing/-in-memory-messaging-network/-builder/manually-pumped.html
new file mode 100644
index 0000000000..e241852871
--- /dev/null
+++ b/docs/build/html/api/core.testing/-in-memory-messaging-network/-builder/manually-pumped.html
@@ -0,0 +1,15 @@
+
+
+InMemoryMessagingNetwork.Builder.manuallyPumped -
+
+
+
+core.testing / InMemoryMessagingNetwork / Builder / manuallyPumped
+
+manuallyPumped
+
+val manuallyPumped : Boolean
+
+
+
+
diff --git a/docs/build/html/api/core.testing/-in-memory-messaging-network/-builder/start.html b/docs/build/html/api/core.testing/-in-memory-messaging-network/-builder/start.html
new file mode 100644
index 0000000000..f19a7d678f
--- /dev/null
+++ b/docs/build/html/api/core.testing/-in-memory-messaging-network/-builder/start.html
@@ -0,0 +1,16 @@
+
+
+InMemoryMessagingNetwork.Builder.start -
+
+
+
+core.testing / InMemoryMessagingNetwork / Builder / start
+
+start
+
+fun start ( ) : <ERROR CLASS> < InMemoryMessaging >
+Overrides MessagingServiceBuilder.start
+
+
+
+
diff --git a/docs/build/html/api/core.testing/-in-memory-messaging-network/-handle/-init-.html b/docs/build/html/api/core.testing/-in-memory-messaging-network/-handle/-init-.html
new file mode 100644
index 0000000000..0ad586171c
--- /dev/null
+++ b/docs/build/html/api/core.testing/-in-memory-messaging-network/-handle/-init-.html
@@ -0,0 +1,14 @@
+
+
+InMemoryMessagingNetwork.Handle. -
+
+
+
+core.testing / InMemoryMessagingNetwork / Handle / <init>
+
+<init>
+Handle ( id : Int )
+
+
+
+
diff --git a/docs/build/html/api/core.testing/-in-memory-messaging-network/-handle/equals.html b/docs/build/html/api/core.testing/-in-memory-messaging-network/-handle/equals.html
new file mode 100644
index 0000000000..ca855e76d3
--- /dev/null
+++ b/docs/build/html/api/core.testing/-in-memory-messaging-network/-handle/equals.html
@@ -0,0 +1,15 @@
+
+
+InMemoryMessagingNetwork.Handle.equals -
+
+
+
+core.testing / InMemoryMessagingNetwork / Handle / equals
+
+equals
+
+fun equals ( other : Any ? ) : Boolean
+
+
+
+
diff --git a/docs/build/html/api/core.testing/-in-memory-messaging-network/-handle/hash-code.html b/docs/build/html/api/core.testing/-in-memory-messaging-network/-handle/hash-code.html
new file mode 100644
index 0000000000..e0990da3d8
--- /dev/null
+++ b/docs/build/html/api/core.testing/-in-memory-messaging-network/-handle/hash-code.html
@@ -0,0 +1,15 @@
+
+
+InMemoryMessagingNetwork.Handle.hashCode -
+
+
+
+core.testing / InMemoryMessagingNetwork / Handle / hashCode
+
+hashCode
+
+fun hashCode ( ) : Int
+
+
+
+
diff --git a/docs/build/html/api/core.testing/-in-memory-messaging-network/-handle/id.html b/docs/build/html/api/core.testing/-in-memory-messaging-network/-handle/id.html
new file mode 100644
index 0000000000..b496820a59
--- /dev/null
+++ b/docs/build/html/api/core.testing/-in-memory-messaging-network/-handle/id.html
@@ -0,0 +1,15 @@
+
+
+InMemoryMessagingNetwork.Handle.id -
+
+
+
+core.testing / InMemoryMessagingNetwork / Handle / id
+
+id
+
+val id : Int
+
+
+
+
diff --git a/docs/build/html/api/core.testing/-in-memory-messaging-network/-handle/index.html b/docs/build/html/api/core.testing/-in-memory-messaging-network/-handle/index.html
new file mode 100644
index 0000000000..c0a09e63f5
--- /dev/null
+++ b/docs/build/html/api/core.testing/-in-memory-messaging-network/-handle/index.html
@@ -0,0 +1,59 @@
+
+
+InMemoryMessagingNetwork.Handle -
+
+
+
+core.testing / InMemoryMessagingNetwork / Handle
+
+Handle
+class Handle : SingleMessageRecipient
+
+
+Constructors
+
+
+
+
+<init>
+
+Handle ( id : Int )
+
+
+
+Properties
+
+
+
+
+id
+
+val id : Int
+
+
+
+Functions
+
+
+
+
+equals
+
+fun equals ( other : Any ? ) : Boolean
+
+
+
+hashCode
+
+fun hashCode ( ) : Int
+
+
+
+toString
+
+fun toString ( ) : String
+
+
+
+
+
diff --git a/docs/build/html/api/core.testing/-in-memory-messaging-network/-handle/to-string.html b/docs/build/html/api/core.testing/-in-memory-messaging-network/-handle/to-string.html
new file mode 100644
index 0000000000..4dce75ca1d
--- /dev/null
+++ b/docs/build/html/api/core.testing/-in-memory-messaging-network/-handle/to-string.html
@@ -0,0 +1,15 @@
+
+
+InMemoryMessagingNetwork.Handle.toString -
+
+
+
+core.testing / InMemoryMessagingNetwork / Handle / toString
+
+toString
+
+fun toString ( ) : String
+
+
+
+
diff --git a/docs/build/html/api/core.testing/-in-memory-messaging-network/-in-memory-messaging/-handler/-init-.html b/docs/build/html/api/core.testing/-in-memory-messaging-network/-in-memory-messaging/-handler/-init-.html
new file mode 100644
index 0000000000..a1b90bf8b7
--- /dev/null
+++ b/docs/build/html/api/core.testing/-in-memory-messaging-network/-in-memory-messaging/-handler/-init-.html
@@ -0,0 +1,14 @@
+
+
+InMemoryMessagingNetwork.InMemoryMessaging.Handler. -
+
+
+
+core.testing / InMemoryMessagingNetwork / InMemoryMessaging / Handler / <init>
+
+<init>
+Handler ( executor : Executor ? , topic : String , callback : ( Message , MessageHandlerRegistration ) -> Unit )
+
+
+
+
diff --git a/docs/build/html/api/core.testing/-in-memory-messaging-network/-in-memory-messaging/-handler/callback.html b/docs/build/html/api/core.testing/-in-memory-messaging-network/-in-memory-messaging/-handler/callback.html
new file mode 100644
index 0000000000..e808bec54a
--- /dev/null
+++ b/docs/build/html/api/core.testing/-in-memory-messaging-network/-in-memory-messaging/-handler/callback.html
@@ -0,0 +1,15 @@
+
+
+InMemoryMessagingNetwork.InMemoryMessaging.Handler.callback -
+
+
+
+core.testing / InMemoryMessagingNetwork / InMemoryMessaging / Handler / callback
+
+callback
+
+val callback : ( Message , MessageHandlerRegistration ) -> Unit
+
+
+
+
diff --git a/docs/build/html/api/core.testing/-in-memory-messaging-network/-in-memory-messaging/-handler/executor.html b/docs/build/html/api/core.testing/-in-memory-messaging-network/-in-memory-messaging/-handler/executor.html
new file mode 100644
index 0000000000..38ccc4f263
--- /dev/null
+++ b/docs/build/html/api/core.testing/-in-memory-messaging-network/-in-memory-messaging/-handler/executor.html
@@ -0,0 +1,15 @@
+
+
+InMemoryMessagingNetwork.InMemoryMessaging.Handler.executor -
+
+
+
+core.testing / InMemoryMessagingNetwork / InMemoryMessaging / Handler / executor
+
+executor
+
+val executor : Executor ?
+
+
+
+
diff --git a/docs/build/html/api/core.testing/-in-memory-messaging-network/-in-memory-messaging/-handler/index.html b/docs/build/html/api/core.testing/-in-memory-messaging-network/-in-memory-messaging/-handler/index.html
new file mode 100644
index 0000000000..fc9988f7ff
--- /dev/null
+++ b/docs/build/html/api/core.testing/-in-memory-messaging-network/-in-memory-messaging/-handler/index.html
@@ -0,0 +1,48 @@
+
+
+InMemoryMessagingNetwork.InMemoryMessaging.Handler -
+
+
+
+core.testing / InMemoryMessagingNetwork / InMemoryMessaging / Handler
+
+Handler
+inner class Handler : MessageHandlerRegistration
+
+
+Constructors
+
+Properties
+
+
+
diff --git a/docs/build/html/api/core.testing/-in-memory-messaging-network/-in-memory-messaging/-handler/topic.html b/docs/build/html/api/core.testing/-in-memory-messaging-network/-in-memory-messaging/-handler/topic.html
new file mode 100644
index 0000000000..c1100cdb08
--- /dev/null
+++ b/docs/build/html/api/core.testing/-in-memory-messaging-network/-in-memory-messaging/-handler/topic.html
@@ -0,0 +1,15 @@
+
+
+InMemoryMessagingNetwork.InMemoryMessaging.Handler.topic -
+
+
+
+core.testing / InMemoryMessagingNetwork / InMemoryMessaging / Handler / topic
+
+topic
+
+val topic : String
+
+
+
+
diff --git a/docs/build/html/api/core.testing/-in-memory-messaging-network/-in-memory-messaging/-init-.html b/docs/build/html/api/core.testing/-in-memory-messaging-network/-in-memory-messaging/-init-.html
new file mode 100644
index 0000000000..372d3d101a
--- /dev/null
+++ b/docs/build/html/api/core.testing/-in-memory-messaging-network/-in-memory-messaging/-init-.html
@@ -0,0 +1,20 @@
+
+
+InMemoryMessagingNetwork.InMemoryMessaging. -
+
+
+
+core.testing / InMemoryMessagingNetwork / InMemoryMessaging / <init>
+
+<init>
+InMemoryMessaging ( manuallyPumped : Boolean , handle : Handle )
+An InMemoryMessaging provides a MessagingService that isnt backed by any kind of network or disk storage
+system, but just uses regular queues on the heap instead. It is intended for unit testing and developer convenience
+when all entities on the network are being simulated in-process.
+An instance can be obtained by creating a builder and then using the start method.
+
+
+
+
+
+
diff --git a/docs/build/html/api/core.testing/-in-memory-messaging-network/-in-memory-messaging/-inner-state/-init-.html b/docs/build/html/api/core.testing/-in-memory-messaging-network/-in-memory-messaging/-inner-state/-init-.html
new file mode 100644
index 0000000000..333a60112d
--- /dev/null
+++ b/docs/build/html/api/core.testing/-in-memory-messaging-network/-in-memory-messaging/-inner-state/-init-.html
@@ -0,0 +1,14 @@
+
+
+InMemoryMessagingNetwork.InMemoryMessaging.InnerState. -
+
+
+
+core.testing / InMemoryMessagingNetwork / InMemoryMessaging / InnerState / <init>
+
+<init>
+InnerState ( )
+
+
+
+
diff --git a/docs/build/html/api/core.testing/-in-memory-messaging-network/-in-memory-messaging/-inner-state/handlers.html b/docs/build/html/api/core.testing/-in-memory-messaging-network/-in-memory-messaging/-inner-state/handlers.html
new file mode 100644
index 0000000000..0b0004522f
--- /dev/null
+++ b/docs/build/html/api/core.testing/-in-memory-messaging-network/-in-memory-messaging/-inner-state/handlers.html
@@ -0,0 +1,15 @@
+
+
+InMemoryMessagingNetwork.InMemoryMessaging.InnerState.handlers -
+
+
+
+core.testing / InMemoryMessagingNetwork / InMemoryMessaging / InnerState / handlers
+
+handlers
+
+val handlers : MutableList < Handler >
+
+
+
+
diff --git a/docs/build/html/api/core.testing/-in-memory-messaging-network/-in-memory-messaging/-inner-state/index.html b/docs/build/html/api/core.testing/-in-memory-messaging-network/-in-memory-messaging/-inner-state/index.html
new file mode 100644
index 0000000000..0547ddb92f
--- /dev/null
+++ b/docs/build/html/api/core.testing/-in-memory-messaging-network/-in-memory-messaging/-inner-state/index.html
@@ -0,0 +1,42 @@
+
+
+InMemoryMessagingNetwork.InMemoryMessaging.InnerState -
+
+
+
+core.testing / InMemoryMessagingNetwork / InMemoryMessaging / InnerState
+
+InnerState
+protected inner class InnerState
+
+
+Constructors
+
+
+
+
+<init>
+
+InnerState ( )
+
+
+
+Properties
+
+
+
diff --git a/docs/build/html/api/core.testing/-in-memory-messaging-network/-in-memory-messaging/-inner-state/pending-redelivery.html b/docs/build/html/api/core.testing/-in-memory-messaging-network/-in-memory-messaging/-inner-state/pending-redelivery.html
new file mode 100644
index 0000000000..f85443ddc7
--- /dev/null
+++ b/docs/build/html/api/core.testing/-in-memory-messaging-network/-in-memory-messaging/-inner-state/pending-redelivery.html
@@ -0,0 +1,15 @@
+
+
+InMemoryMessagingNetwork.InMemoryMessaging.InnerState.pendingRedelivery -
+
+
+
+core.testing / InMemoryMessagingNetwork / InMemoryMessaging / InnerState / pendingRedelivery
+
+pendingRedelivery
+
+val pendingRedelivery : LinkedList < Message >
+
+
+
+
diff --git a/docs/build/html/api/core.testing/-in-memory-messaging-network/-in-memory-messaging/add-message-handler.html b/docs/build/html/api/core.testing/-in-memory-messaging-network/-in-memory-messaging/add-message-handler.html
new file mode 100644
index 0000000000..8677abbf03
--- /dev/null
+++ b/docs/build/html/api/core.testing/-in-memory-messaging-network/-in-memory-messaging/add-message-handler.html
@@ -0,0 +1,25 @@
+
+
+InMemoryMessagingNetwork.InMemoryMessaging.addMessageHandler -
+
+
+
+core.testing / InMemoryMessagingNetwork / InMemoryMessaging / addMessageHandler
+
+addMessageHandler
+
+fun addMessageHandler ( topic : String , executor : Executor ? , callback : ( Message , MessageHandlerRegistration ) -> Unit ) : MessageHandlerRegistration
+Overrides MessagingService.addMessageHandler
+The provided function will be invoked for each received message whose topic matches the given string, on the given
+executor. The topic can be the empty string to match all messages.
+If no executor is received then 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.
+
+
+
+
+
+
diff --git a/docs/build/html/api/core.testing/-in-memory-messaging-network/-in-memory-messaging/background-thread.html b/docs/build/html/api/core.testing/-in-memory-messaging-network/-in-memory-messaging/background-thread.html
new file mode 100644
index 0000000000..51d36a939f
--- /dev/null
+++ b/docs/build/html/api/core.testing/-in-memory-messaging-network/-in-memory-messaging/background-thread.html
@@ -0,0 +1,15 @@
+
+
+InMemoryMessagingNetwork.InMemoryMessaging.backgroundThread -
+
+
+
+core.testing / InMemoryMessagingNetwork / InMemoryMessaging / backgroundThread
+
+backgroundThread
+
+protected val backgroundThread : Nothing ?
+
+
+
+
diff --git a/docs/build/html/api/core.testing/-in-memory-messaging-network/-in-memory-messaging/create-message.html b/docs/build/html/api/core.testing/-in-memory-messaging-network/-in-memory-messaging/create-message.html
new file mode 100644
index 0000000000..8da74b6702
--- /dev/null
+++ b/docs/build/html/api/core.testing/-in-memory-messaging-network/-in-memory-messaging/create-message.html
@@ -0,0 +1,17 @@
+
+
+InMemoryMessagingNetwork.InMemoryMessaging.createMessage -
+
+
+
+core.testing / InMemoryMessagingNetwork / InMemoryMessaging / createMessage
+
+createMessage
+
+fun createMessage ( topic : String , data : ByteArray ) : Message
+Overrides MessagingService.createMessage
+Returns the given (topic, data) pair as a newly created message object.
+
+
+
+
diff --git a/docs/build/html/api/core.testing/-in-memory-messaging-network/-in-memory-messaging/index.html b/docs/build/html/api/core.testing/-in-memory-messaging-network/-in-memory-messaging/index.html
new file mode 100644
index 0000000000..d7cf37d9a8
--- /dev/null
+++ b/docs/build/html/api/core.testing/-in-memory-messaging-network/-in-memory-messaging/index.html
@@ -0,0 +1,134 @@
+
+
+InMemoryMessagingNetwork.InMemoryMessaging -
+
+
+
+core.testing / InMemoryMessagingNetwork / InMemoryMessaging
+
+InMemoryMessaging
+inner class InMemoryMessaging : MessagingService
+An InMemoryMessaging provides a MessagingService that isnt backed by any kind of network or disk storage
+system, but just uses regular queues on the heap instead. It is intended for unit testing and developer convenience
+when all entities on the network are being simulated in-process.
+An instance can be obtained by creating a builder and then using the start method.
+
+
+
+
+Types
+
+Constructors
+
+
+
+
+<init>
+
+InMemoryMessaging ( manuallyPumped : Boolean , handle : Handle )
An InMemoryMessaging provides a MessagingService that isnt backed by any kind of network or disk storage
+system, but just uses regular queues on the heap instead. It is intended for unit testing and developer convenience
+when all entities on the network are being simulated in-process.
+
+
+
+
+Properties
+
+Functions
+
+
+
+
+addMessageHandler
+
+fun addMessageHandler ( topic : String , executor : Executor ? , callback : ( Message , MessageHandlerRegistration ) -> Unit ) : MessageHandlerRegistration
The provided function will be invoked for each received message whose topic matches the given string, on the given
+executor. The topic can be the empty string to match all messages.
+
+
+
+
+createMessage
+
+fun createMessage ( topic : String , data : ByteArray ) : Message
Returns the given (topic, data) pair as a newly created message object.
+
+
+
+
+pump
+
+fun pump ( block : Boolean ) : Boolean
Delivers a single message from the internal queue. If there are no messages waiting to be delivered and block
+is true, waits until one has been provided on a different thread via send. If block is false, the return
+result indicates whether a message was delivered or not.
+
+
+
+
+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.
+
+
+
+
+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.
+
+
+
+
+stop
+
+fun stop ( ) : Unit
+
+
+
+
+
diff --git a/docs/build/html/api/core.testing/-in-memory-messaging-network/-in-memory-messaging/my-address.html b/docs/build/html/api/core.testing/-in-memory-messaging-network/-in-memory-messaging/my-address.html
new file mode 100644
index 0000000000..b571e55acc
--- /dev/null
+++ b/docs/build/html/api/core.testing/-in-memory-messaging-network/-in-memory-messaging/my-address.html
@@ -0,0 +1,17 @@
+
+
+InMemoryMessagingNetwork.InMemoryMessaging.myAddress -
+
+
+
+core.testing / InMemoryMessagingNetwork / InMemoryMessaging / myAddress
+
+myAddress
+
+val myAddress : SingleMessageRecipient
+Overrides MessagingService.myAddress
+Returns an address that refers to this node.
+
+
+
+
diff --git a/docs/build/html/api/core.testing/-in-memory-messaging-network/-in-memory-messaging/pump.html b/docs/build/html/api/core.testing/-in-memory-messaging-network/-in-memory-messaging/pump.html
new file mode 100644
index 0000000000..41dab54118
--- /dev/null
+++ b/docs/build/html/api/core.testing/-in-memory-messaging-network/-in-memory-messaging/pump.html
@@ -0,0 +1,18 @@
+
+
+InMemoryMessagingNetwork.InMemoryMessaging.pump -
+
+
+
+core.testing / InMemoryMessagingNetwork / InMemoryMessaging / pump
+
+pump
+
+fun pump ( block : Boolean ) : Boolean
+Delivers a single message from the internal queue. If there are no messages waiting to be delivered and block
+is true, waits until one has been provided on a different thread via send. If block is false, the return
+result indicates whether a message was delivered or not.
+
+
+
+
diff --git a/docs/build/html/api/core.testing/-in-memory-messaging-network/-in-memory-messaging/remove-message-handler.html b/docs/build/html/api/core.testing/-in-memory-messaging-network/-in-memory-messaging/remove-message-handler.html
new file mode 100644
index 0000000000..1d98c1b102
--- /dev/null
+++ b/docs/build/html/api/core.testing/-in-memory-messaging-network/-in-memory-messaging/remove-message-handler.html
@@ -0,0 +1,24 @@
+
+
+InMemoryMessagingNetwork.InMemoryMessaging.removeMessageHandler -
+
+
+
+core.testing / InMemoryMessagingNetwork / InMemoryMessaging / 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/core.testing/-in-memory-messaging-network/-in-memory-messaging/running.html b/docs/build/html/api/core.testing/-in-memory-messaging-network/-in-memory-messaging/running.html
new file mode 100644
index 0000000000..3e2fb8ae10
--- /dev/null
+++ b/docs/build/html/api/core.testing/-in-memory-messaging-network/-in-memory-messaging/running.html
@@ -0,0 +1,15 @@
+
+
+InMemoryMessagingNetwork.InMemoryMessaging.running -
+
+
+
+core.testing / InMemoryMessagingNetwork / InMemoryMessaging / running
+
+running
+
+protected var running : Boolean
+
+
+
+
diff --git a/docs/build/html/api/core.testing/-in-memory-messaging-network/-in-memory-messaging/send.html b/docs/build/html/api/core.testing/-in-memory-messaging-network/-in-memory-messaging/send.html
new file mode 100644
index 0000000000..3197cdcb58
--- /dev/null
+++ b/docs/build/html/api/core.testing/-in-memory-messaging-network/-in-memory-messaging/send.html
@@ -0,0 +1,24 @@
+
+
+InMemoryMessagingNetwork.InMemoryMessaging.send -
+
+
+
+core.testing / InMemoryMessagingNetwork / InMemoryMessaging / 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/core.testing/-in-memory-messaging-network/-in-memory-messaging/state.html b/docs/build/html/api/core.testing/-in-memory-messaging-network/-in-memory-messaging/state.html
new file mode 100644
index 0000000000..652cb9ec49
--- /dev/null
+++ b/docs/build/html/api/core.testing/-in-memory-messaging-network/-in-memory-messaging/state.html
@@ -0,0 +1,15 @@
+
+
+InMemoryMessagingNetwork.InMemoryMessaging.state -
+
+
+
+core.testing / InMemoryMessagingNetwork / InMemoryMessaging / state
+
+state
+
+protected val state : ThreadBox < InnerState >
+
+
+
+
diff --git a/docs/build/html/api/core.testing/-in-memory-messaging-network/-in-memory-messaging/stop.html b/docs/build/html/api/core.testing/-in-memory-messaging-network/-in-memory-messaging/stop.html
new file mode 100644
index 0000000000..99f0b522b8
--- /dev/null
+++ b/docs/build/html/api/core.testing/-in-memory-messaging-network/-in-memory-messaging/stop.html
@@ -0,0 +1,16 @@
+
+
+InMemoryMessagingNetwork.InMemoryMessaging.stop -
+
+
+
+core.testing / InMemoryMessagingNetwork / InMemoryMessaging / stop
+
+stop
+
+fun stop ( ) : Unit
+Overrides MessagingService.stop
+
+
+
+
diff --git a/docs/build/html/api/core.testing/-in-memory-messaging-network/-init-.html b/docs/build/html/api/core.testing/-in-memory-messaging-network/-init-.html
new file mode 100644
index 0000000000..13aac93e46
--- /dev/null
+++ b/docs/build/html/api/core.testing/-in-memory-messaging-network/-init-.html
@@ -0,0 +1,19 @@
+
+
+InMemoryMessagingNetwork. -
+
+
+
+core.testing / InMemoryMessagingNetwork / <init>
+
+<init>
+InMemoryMessagingNetwork ( )
+An in-memory network allows you to manufacture InMemoryMessaging s for a set of participants. Each
+InMemoryMessaging maintains a queue of messages it has received, and a background thread that dispatches
+messages one by one to registered handlers. Alternatively, a messaging system may be manually pumped, in which
+case no thread is created and a caller is expected to force delivery one at a time (this is useful for unit
+testing).
+
+
+
+
diff --git a/docs/build/html/api/core.testing/-in-memory-messaging-network/-latency-calculator/between.html b/docs/build/html/api/core.testing/-in-memory-messaging-network/-latency-calculator/between.html
new file mode 100644
index 0000000000..c0809d14c9
--- /dev/null
+++ b/docs/build/html/api/core.testing/-in-memory-messaging-network/-latency-calculator/between.html
@@ -0,0 +1,15 @@
+
+
+InMemoryMessagingNetwork.LatencyCalculator.between -
+
+
+
+core.testing / InMemoryMessagingNetwork / LatencyCalculator / between
+
+between
+
+abstract fun between ( sender : SingleMessageRecipient , receiver : SingleMessageRecipient ) : Duration
+
+
+
+
diff --git a/docs/build/html/api/core.testing/-in-memory-messaging-network/-latency-calculator/index.html b/docs/build/html/api/core.testing/-in-memory-messaging-network/-latency-calculator/index.html
new file mode 100644
index 0000000000..7a66d85289
--- /dev/null
+++ b/docs/build/html/api/core.testing/-in-memory-messaging-network/-latency-calculator/index.html
@@ -0,0 +1,25 @@
+
+
+InMemoryMessagingNetwork.LatencyCalculator -
+
+
+
+core.testing / InMemoryMessagingNetwork / LatencyCalculator
+
+LatencyCalculator
+interface LatencyCalculator
+
+
+Functions
+
+
+
diff --git a/docs/build/html/api/core.testing/-in-memory-messaging-network/all-messages.html b/docs/build/html/api/core.testing/-in-memory-messaging-network/all-messages.html
new file mode 100644
index 0000000000..940beba695
--- /dev/null
+++ b/docs/build/html/api/core.testing/-in-memory-messaging-network/all-messages.html
@@ -0,0 +1,16 @@
+
+
+InMemoryMessagingNetwork.allMessages -
+
+
+
+core.testing / InMemoryMessagingNetwork / allMessages
+
+allMessages
+
+val allMessages : <ERROR CLASS> < <ERROR CLASS> < SingleMessageRecipient , Message , MessageRecipients > >
+A stream of (sender, message, recipients) triples
+
+
+
+
diff --git a/docs/build/html/api/core.testing/-in-memory-messaging-network/create-node-with-i-d.html b/docs/build/html/api/core.testing/-in-memory-messaging-network/create-node-with-i-d.html
new file mode 100644
index 0000000000..6735d4c313
--- /dev/null
+++ b/docs/build/html/api/core.testing/-in-memory-messaging-network/create-node-with-i-d.html
@@ -0,0 +1,16 @@
+
+
+InMemoryMessagingNetwork.createNodeWithID -
+
+
+
+core.testing / InMemoryMessagingNetwork / createNodeWithID
+
+createNodeWithID
+
+fun createNodeWithID ( manuallyPumped : Boolean , id : Int ) : MessagingServiceBuilder < InMemoryMessaging >
+Creates a node at the given address: useful if you want to recreate a node to simulate a restart
+
+
+
+
diff --git a/docs/build/html/api/core.testing/-in-memory-messaging-network/create-node.html b/docs/build/html/api/core.testing/-in-memory-messaging-network/create-node.html
new file mode 100644
index 0000000000..5703add566
--- /dev/null
+++ b/docs/build/html/api/core.testing/-in-memory-messaging-network/create-node.html
@@ -0,0 +1,23 @@
+
+
+InMemoryMessagingNetwork.createNode -
+
+
+
+core.testing / InMemoryMessagingNetwork / createNode
+
+createNode
+
+fun createNode ( manuallyPumped : Boolean ) : <ERROR CLASS> < Handle , MessagingServiceBuilder < InMemoryMessaging > >
+Creates a node and returns the new object that identifies its location on the network to senders, and the
+InMemoryMessaging that the recipient/in-memory node uses to receive messages and send messages itself.
+If manuallyPumped is set to true, then you are expected to call the InMemoryMessaging.pump method on the InMemoryMessaging
+in order to cause the delivery of a single message, which will occur on the thread of the caller. If set to false
+then this class will set up a background thread to deliver messages asynchronously, if the handler specifies no
+executor.
+
+
+
+
+
+
diff --git a/docs/build/html/api/core.testing/-in-memory-messaging-network/endpoints.html b/docs/build/html/api/core.testing/-in-memory-messaging-network/endpoints.html
new file mode 100644
index 0000000000..afd3c3571d
--- /dev/null
+++ b/docs/build/html/api/core.testing/-in-memory-messaging-network/endpoints.html
@@ -0,0 +1,15 @@
+
+
+InMemoryMessagingNetwork.endpoints -
+
+
+
+core.testing / InMemoryMessagingNetwork / endpoints
+
+endpoints
+
+val endpoints : List < InMemoryMessaging >
+
+
+
+
diff --git a/docs/build/html/api/core.testing/-in-memory-messaging-network/everyone-online.html b/docs/build/html/api/core.testing/-in-memory-messaging-network/everyone-online.html
new file mode 100644
index 0000000000..8d64c6aa4e
--- /dev/null
+++ b/docs/build/html/api/core.testing/-in-memory-messaging-network/everyone-online.html
@@ -0,0 +1,15 @@
+
+
+InMemoryMessagingNetwork.everyoneOnline -
+
+
+
+core.testing / InMemoryMessagingNetwork / everyoneOnline
+
+everyoneOnline
+
+val everyoneOnline : AllPossibleRecipients
+
+
+
+
diff --git a/docs/build/html/api/core.testing/-in-memory-messaging-network/index.html b/docs/build/html/api/core.testing/-in-memory-messaging-network/index.html
new file mode 100644
index 0000000000..683439837f
--- /dev/null
+++ b/docs/build/html/api/core.testing/-in-memory-messaging-network/index.html
@@ -0,0 +1,130 @@
+
+
+InMemoryMessagingNetwork -
+
+
+
+core.testing / InMemoryMessagingNetwork
+
+InMemoryMessagingNetwork
+class InMemoryMessagingNetwork
+An in-memory network allows you to manufacture InMemoryMessaging s for a set of participants. Each
+InMemoryMessaging maintains a queue of messages it has received, and a background thread that dispatches
+messages one by one to registered handlers. Alternatively, a messaging system may be manually pumped, in which
+case no thread is created and a caller is expected to force delivery one at a time (this is useful for unit
+testing).
+
+
+Types
+
+Constructors
+
+
+
+
+<init>
+
+InMemoryMessagingNetwork ( )
An in-memory network allows you to manufacture InMemoryMessaging s for a set of participants. Each
+InMemoryMessaging maintains a queue of messages it has received, and a background thread that dispatches
+messages one by one to registered handlers. Alternatively, a messaging system may be manually pumped, in which
+case no thread is created and a caller is expected to force delivery one at a time (this is useful for unit
+testing).
+
+
+
+
+Properties
+
+Functions
+
+
+
diff --git a/docs/build/html/api/core.testing/-in-memory-messaging-network/latency-calculator.html b/docs/build/html/api/core.testing/-in-memory-messaging-network/latency-calculator.html
new file mode 100644
index 0000000000..77f5335464
--- /dev/null
+++ b/docs/build/html/api/core.testing/-in-memory-messaging-network/latency-calculator.html
@@ -0,0 +1,16 @@
+
+
+InMemoryMessagingNetwork.latencyCalculator -
+
+
+
+core.testing / InMemoryMessagingNetwork / latencyCalculator
+
+latencyCalculator
+
+var latencyCalculator : LatencyCalculator ?
+This can be set to an object which can inject artificial latency between sender/recipient pairs.
+
+
+
+
diff --git a/docs/build/html/api/core.testing/-in-memory-messaging-network/setup-timestamping-node.html b/docs/build/html/api/core.testing/-in-memory-messaging-network/setup-timestamping-node.html
new file mode 100644
index 0000000000..257b2c8b43
--- /dev/null
+++ b/docs/build/html/api/core.testing/-in-memory-messaging-network/setup-timestamping-node.html
@@ -0,0 +1,15 @@
+
+
+InMemoryMessagingNetwork.setupTimestampingNode -
+
+
+
+core.testing / InMemoryMessagingNetwork / setupTimestampingNode
+
+setupTimestampingNode
+
+fun setupTimestampingNode ( manuallyPumped : Boolean ) : <ERROR CLASS> < NodeInfo , InMemoryMessaging >
+
+
+
+
diff --git a/docs/build/html/api/core.testing/-in-memory-messaging-network/stop.html b/docs/build/html/api/core.testing/-in-memory-messaging-network/stop.html
new file mode 100644
index 0000000000..6db908560a
--- /dev/null
+++ b/docs/build/html/api/core.testing/-in-memory-messaging-network/stop.html
@@ -0,0 +1,15 @@
+
+
+InMemoryMessagingNetwork.stop -
+
+
+
+core.testing / InMemoryMessagingNetwork / stop
+
+stop
+
+fun stop ( ) : Unit
+
+
+
+
diff --git a/docs/build/html/api/core.testing/-mock-identity-service/-init-.html b/docs/build/html/api/core.testing/-mock-identity-service/-init-.html
new file mode 100644
index 0000000000..490bec9770
--- /dev/null
+++ b/docs/build/html/api/core.testing/-mock-identity-service/-init-.html
@@ -0,0 +1,18 @@
+
+
+MockIdentityService. -
+
+
+
+core.testing / MockIdentityService / <init>
+
+<init>
+MockIdentityService ( identities : List < Party > )
+Scaffolding: a dummy identity service that just expects to have identities loaded off disk or found elsewhere.
+This class allows the provided list of identities to be mutated after construction, so it takes the list lock
+when doing lookups and recalculates the mapping each time. The ability to change the list is used by the
+MockNetwork code.
+
+
+
+
diff --git a/docs/build/html/api/core.testing/-mock-identity-service/identities.html b/docs/build/html/api/core.testing/-mock-identity-service/identities.html
new file mode 100644
index 0000000000..03ed802108
--- /dev/null
+++ b/docs/build/html/api/core.testing/-mock-identity-service/identities.html
@@ -0,0 +1,15 @@
+
+
+MockIdentityService.identities -
+
+
+
+core.testing / MockIdentityService / identities
+
+identities
+
+val identities : List < Party >
+
+
+
+
diff --git a/docs/build/html/api/core.testing/-mock-identity-service/index.html b/docs/build/html/api/core.testing/-mock-identity-service/index.html
new file mode 100644
index 0000000000..4006a2806c
--- /dev/null
+++ b/docs/build/html/api/core.testing/-mock-identity-service/index.html
@@ -0,0 +1,67 @@
+
+
+MockIdentityService -
+
+
+
+core.testing / MockIdentityService
+
+MockIdentityService
+class MockIdentityService : IdentityService
+Scaffolding: a dummy identity service that just expects to have identities loaded off disk or found elsewhere.
+This class allows the provided list of identities to be mutated after construction, so it takes the list lock
+when doing lookups and recalculates the mapping each time. The ability to change the list is used by the
+MockNetwork code.
+
+
+Constructors
+
+
+
+
+<init>
+
+MockIdentityService ( identities : List < Party > )
Scaffolding: a dummy identity service that just expects to have identities loaded off disk or found elsewhere.
+This class allows the provided list of identities to be mutated after construction, so it takes the list lock
+when doing lookups and recalculates the mapping each time. The ability to change the list is used by the
+MockNetwork code.
+
+
+
+
+Properties
+
+Functions
+
+
+
diff --git a/docs/build/html/api/core.testing/-mock-identity-service/party-from-key.html b/docs/build/html/api/core.testing/-mock-identity-service/party-from-key.html
new file mode 100644
index 0000000000..20b8dc25e3
--- /dev/null
+++ b/docs/build/html/api/core.testing/-mock-identity-service/party-from-key.html
@@ -0,0 +1,16 @@
+
+
+MockIdentityService.partyFromKey -
+
+
+
+core.testing / MockIdentityService / partyFromKey
+
+partyFromKey
+
+fun partyFromKey ( key : PublicKey ) : Party ?
+Overrides IdentityService.partyFromKey
+
+
+
+
diff --git a/docs/build/html/api/core.testing/-mock-identity-service/party-from-name.html b/docs/build/html/api/core.testing/-mock-identity-service/party-from-name.html
new file mode 100644
index 0000000000..7940872531
--- /dev/null
+++ b/docs/build/html/api/core.testing/-mock-identity-service/party-from-name.html
@@ -0,0 +1,16 @@
+
+
+MockIdentityService.partyFromName -
+
+
+
+core.testing / MockIdentityService / partyFromName
+
+partyFromName
+
+fun partyFromName ( name : String ) : Party ?
+Overrides IdentityService.partyFromName
+
+
+
+
diff --git a/docs/build/html/api/core.testing/-mock-identity-service/register-identity.html b/docs/build/html/api/core.testing/-mock-identity-service/register-identity.html
new file mode 100644
index 0000000000..a3c8c2288a
--- /dev/null
+++ b/docs/build/html/api/core.testing/-mock-identity-service/register-identity.html
@@ -0,0 +1,16 @@
+
+
+MockIdentityService.registerIdentity -
+
+
+
+core.testing / MockIdentityService / registerIdentity
+
+registerIdentity
+
+fun registerIdentity ( party : Party ) : Unit
+Overrides IdentityService.registerIdentity
+
+
+
+
diff --git a/docs/build/html/api/core.testing/-mock-network-map-cache/-init-.html b/docs/build/html/api/core.testing/-mock-network-map-cache/-init-.html
new file mode 100644
index 0000000000..60612afcce
--- /dev/null
+++ b/docs/build/html/api/core.testing/-mock-network-map-cache/-init-.html
@@ -0,0 +1,15 @@
+
+
+MockNetworkMapCache. -
+
+
+
+core.testing / MockNetworkMapCache / <init>
+
+<init>
+MockNetworkMapCache ( )
+Network map cache with no backing map service.
+
+
+
+
diff --git a/docs/build/html/api/core.testing/-mock-network-map-cache/-mock-address/-init-.html b/docs/build/html/api/core.testing/-mock-network-map-cache/-mock-address/-init-.html
new file mode 100644
index 0000000000..01aad1210f
--- /dev/null
+++ b/docs/build/html/api/core.testing/-mock-network-map-cache/-mock-address/-init-.html
@@ -0,0 +1,14 @@
+
+
+MockNetworkMapCache.MockAddress. -
+
+
+
+core.testing / MockNetworkMapCache / MockAddress / <init>
+
+<init>
+MockAddress ( id : String )
+
+
+
+
diff --git a/docs/build/html/api/core.testing/-mock-network-map-cache/-mock-address/id.html b/docs/build/html/api/core.testing/-mock-network-map-cache/-mock-address/id.html
new file mode 100644
index 0000000000..c597ab8da0
--- /dev/null
+++ b/docs/build/html/api/core.testing/-mock-network-map-cache/-mock-address/id.html
@@ -0,0 +1,15 @@
+
+
+MockNetworkMapCache.MockAddress.id -
+
+
+
+core.testing / MockNetworkMapCache / MockAddress / id
+
+id
+
+val id : String
+
+
+
+
diff --git a/docs/build/html/api/core.testing/-mock-network-map-cache/-mock-address/index.html b/docs/build/html/api/core.testing/-mock-network-map-cache/-mock-address/index.html
new file mode 100644
index 0000000000..5be158a945
--- /dev/null
+++ b/docs/build/html/api/core.testing/-mock-network-map-cache/-mock-address/index.html
@@ -0,0 +1,36 @@
+
+
+MockNetworkMapCache.MockAddress -
+
+
+
+core.testing / MockNetworkMapCache / MockAddress
+
+MockAddress
+data class MockAddress : SingleMessageRecipient
+
+
+Constructors
+
+
+
+
+<init>
+
+MockAddress ( id : String )
+
+
+
+Properties
+
+
+
+
+id
+
+val id : String
+
+
+
+
+
diff --git a/docs/build/html/api/core.testing/-mock-network-map-cache/add-registration.html b/docs/build/html/api/core.testing/-mock-network-map-cache/add-registration.html
new file mode 100644
index 0000000000..dce318c165
--- /dev/null
+++ b/docs/build/html/api/core.testing/-mock-network-map-cache/add-registration.html
@@ -0,0 +1,17 @@
+
+
+MockNetworkMapCache.addRegistration -
+
+
+
+core.testing / MockNetworkMapCache / addRegistration
+
+addRegistration
+
+fun addRegistration ( node : NodeInfo ) : Unit
+Directly add a registration to the internal cache. DOES NOT fire the change listeners, as its
+not a change being received.
+
+
+
+
diff --git a/docs/build/html/api/core.testing/-mock-network-map-cache/delete-registration.html b/docs/build/html/api/core.testing/-mock-network-map-cache/delete-registration.html
new file mode 100644
index 0000000000..1077e8986c
--- /dev/null
+++ b/docs/build/html/api/core.testing/-mock-network-map-cache/delete-registration.html
@@ -0,0 +1,17 @@
+
+
+MockNetworkMapCache.deleteRegistration -
+
+
+
+core.testing / MockNetworkMapCache / deleteRegistration
+
+deleteRegistration
+
+fun deleteRegistration ( identity : Party ) : Boolean
+Directly remove a registration from the internal cache. DOES NOT fire the change listeners, as its
+not a change being received.
+
+
+
+
diff --git a/docs/build/html/api/core.testing/-mock-network-map-cache/index.html b/docs/build/html/api/core.testing/-mock-network-map-cache/index.html
new file mode 100644
index 0000000000..3a85d5eb0b
--- /dev/null
+++ b/docs/build/html/api/core.testing/-mock-network-map-cache/index.html
@@ -0,0 +1,164 @@
+
+
+MockNetworkMapCache -
+
+
+
+core.testing / MockNetworkMapCache
+
+MockNetworkMapCache
+class MockNetworkMapCache : InMemoryNetworkMapCache
+Network map cache with no backing map service.
+
+
+Types
+
+Constructors
+
+
+
+
+<init>
+
+MockNetworkMapCache ( )
Network map cache with no backing map service.
+
+
+
+
+Inherited Properties
+
+
+
+
+networkMapNodes
+
+open val networkMapNodes : List < NodeInfo >
A list of nodes that advertise a network map service
+
+
+
+
+partyNodes
+
+open val partyNodes : List < NodeInfo >
A list of all nodes the cache is aware of
+
+
+
+
+ratesOracleNodes
+
+open val ratesOracleNodes : List < NodeInfo >
A list of nodes that advertise a rates oracle service
+
+
+
+
+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 outwith
+the scope of the network map service, and this is intended solely as a sanity check on configuration stored
+elsewhere.
+
+
+
+
+timestampingNodes
+
+open val timestampingNodes : List < NodeInfo >
A list of nodes that advertise a timestamping service
+
+
+
+
+Functions
+
+
+
+
+addRegistration
+
+fun addRegistration ( node : NodeInfo ) : Unit
Directly add a registration to the internal cache. DOES NOT fire the change listeners, as its
+not a change being received.
+
+
+
+
+deleteRegistration
+
+fun deleteRegistration ( identity : Party ) : Boolean
Directly remove a registration from the internal cache. DOES NOT fire the change listeners, as its
+not a change being received.
+
+
+
+
+Inherited Functions
+
+
+
+
+addMapService
+
+open fun addMapService ( smm : StateMachineManager , net : MessagingService , service : NodeInfo , 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 ( smm : StateMachineManager , 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.
+
+
+
+
+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
+
+
+
+
+
+
diff --git a/docs/build/html/api/core.testing/-mock-network/-default-factory/create.html b/docs/build/html/api/core.testing/-mock-network/-default-factory/create.html
new file mode 100644
index 0000000000..8b553395d6
--- /dev/null
+++ b/docs/build/html/api/core.testing/-mock-network/-default-factory/create.html
@@ -0,0 +1,16 @@
+
+
+MockNetwork.DefaultFactory.create -
+
+
+
+core.testing / MockNetwork / DefaultFactory / create
+
+create
+
+fun create ( dir : Path , config : NodeConfiguration , network : MockNetwork , networkMapAddr : NodeInfo ? , advertisedServices : Set < ServiceType > , id : Int ) : MockNode
+Overrides Factory.create
+
+
+
+
diff --git a/docs/build/html/api/core.testing/-mock-network/-default-factory/index.html b/docs/build/html/api/core.testing/-mock-network/-default-factory/index.html
new file mode 100644
index 0000000000..5afae25ed9
--- /dev/null
+++ b/docs/build/html/api/core.testing/-mock-network/-default-factory/index.html
@@ -0,0 +1,25 @@
+
+
+MockNetwork.DefaultFactory -
+
+
+
+core.testing / MockNetwork / DefaultFactory
+
+DefaultFactory
+object DefaultFactory : Factory
+
+
+Functions
+
+
+
diff --git a/docs/build/html/api/core.testing/-mock-network/-factory/create.html b/docs/build/html/api/core.testing/-mock-network/-factory/create.html
new file mode 100644
index 0000000000..582bf40ebd
--- /dev/null
+++ b/docs/build/html/api/core.testing/-mock-network/-factory/create.html
@@ -0,0 +1,15 @@
+
+
+MockNetwork.Factory.create -
+
+
+
+core.testing / MockNetwork / Factory / create
+
+create
+
+abstract fun create ( dir : Path , config : NodeConfiguration , network : MockNetwork , networkMapAddr : NodeInfo ? , advertisedServices : Set < ServiceType > , id : Int ) : MockNode
+
+
+
+
diff --git a/docs/build/html/api/core.testing/-mock-network/-factory/index.html b/docs/build/html/api/core.testing/-mock-network/-factory/index.html
new file mode 100644
index 0000000000..b0a77e930f
--- /dev/null
+++ b/docs/build/html/api/core.testing/-mock-network/-factory/index.html
@@ -0,0 +1,67 @@
+
+
+MockNetwork.Factory -
+
+
+
+core.testing / MockNetwork / Factory
+
+Factory
+interface Factory
+Allows customisation of how nodes are created.
+
+
+Functions
+
+Inheritors
+
+
+
diff --git a/docs/build/html/api/core.testing/-mock-network/-init-.html b/docs/build/html/api/core.testing/-mock-network/-init-.html
new file mode 100644
index 0000000000..a640c171f5
--- /dev/null
+++ b/docs/build/html/api/core.testing/-mock-network/-init-.html
@@ -0,0 +1,21 @@
+
+
+MockNetwork. -
+
+
+
+core.testing / MockNetwork / <init>
+
+<init>
+MockNetwork ( threadPerNode : Boolean = false, defaultFactory : Factory = MockNetwork.DefaultFactory)
+A mock node brings up a suite of in-memory services in a fast manner suitable for unit testing.
+Components that do IO are either swapped out for mocks, or pointed to a Jimfs in memory filesystem.
+Mock network nodes require manual pumping by default: they will not run asynchronous. This means that
+for message exchanges to take place (and associated handlers to run), you must call the runNetwork
+method.
+
+
+
+
+
+
diff --git a/docs/build/html/api/core.testing/-mock-network/-mock-node/-init-.html b/docs/build/html/api/core.testing/-mock-network/-mock-node/-init-.html
new file mode 100644
index 0000000000..a677a70f7c
--- /dev/null
+++ b/docs/build/html/api/core.testing/-mock-network/-mock-node/-init-.html
@@ -0,0 +1,14 @@
+
+
+MockNetwork.MockNode. -
+
+
+
+core.testing / MockNetwork / MockNode / <init>
+
+<init>
+MockNode ( dir : Path , config : NodeConfiguration , mockNet : MockNetwork , networkMapAddr : NodeInfo ? , advertisedServices : Set < ServiceType > , id : Int )
+
+
+
+
diff --git a/docs/build/html/api/core.testing/-mock-network/-mock-node/find-my-location.html b/docs/build/html/api/core.testing/-mock-network/-mock-node/find-my-location.html
new file mode 100644
index 0000000000..eb15f72e02
--- /dev/null
+++ b/docs/build/html/api/core.testing/-mock-network/-mock-node/find-my-location.html
@@ -0,0 +1,16 @@
+
+
+MockNetwork.MockNode.findMyLocation -
+
+
+
+core.testing / MockNetwork / MockNode / findMyLocation
+
+findMyLocation
+
+protected open fun findMyLocation ( ) : PhysicalLocation ?
+Overrides AbstractNode.findMyLocation
+
+
+
+
diff --git a/docs/build/html/api/core.testing/-mock-network/-mock-node/id.html b/docs/build/html/api/core.testing/-mock-network/-mock-node/id.html
new file mode 100644
index 0000000000..c890864911
--- /dev/null
+++ b/docs/build/html/api/core.testing/-mock-network/-mock-node/id.html
@@ -0,0 +1,15 @@
+
+
+MockNetwork.MockNode.id -
+
+
+
+core.testing / MockNetwork / MockNode / id
+
+id
+
+val id : Int
+
+
+
+
diff --git a/docs/build/html/api/core.testing/-mock-network/-mock-node/index.html b/docs/build/html/api/core.testing/-mock-network/-mock-node/index.html
new file mode 100644
index 0000000000..c1aa0794db
--- /dev/null
+++ b/docs/build/html/api/core.testing/-mock-network/-mock-node/index.html
@@ -0,0 +1,279 @@
+
+
+MockNetwork.MockNode -
+
+
+
+core.testing / MockNetwork / MockNode
+
+MockNode
+class MockNode : AbstractNode
+
+
+Constructors
+
+Properties
+
+Inherited Properties
+
+Functions
+
+Inherited Functions
+
+Inheritors
+
+
+
+
+SimulatedNode
+
+open class SimulatedNode : MockNode
+
+
+
+
+
diff --git a/docs/build/html/api/core.testing/-mock-network/-mock-node/log.html b/docs/build/html/api/core.testing/-mock-network/-mock-node/log.html
new file mode 100644
index 0000000000..d667bd5887
--- /dev/null
+++ b/docs/build/html/api/core.testing/-mock-network/-mock-node/log.html
@@ -0,0 +1,16 @@
+
+
+MockNetwork.MockNode.log -
+
+
+
+core.testing / MockNetwork / MockNode / log
+
+log
+
+protected open val log : <ERROR CLASS>
+Overrides AbstractNode.log
+
+
+
+
diff --git a/docs/build/html/api/core.testing/-mock-network/-mock-node/make-identity-service.html b/docs/build/html/api/core.testing/-mock-network/-mock-node/make-identity-service.html
new file mode 100644
index 0000000000..f95b365775
--- /dev/null
+++ b/docs/build/html/api/core.testing/-mock-network/-mock-node/make-identity-service.html
@@ -0,0 +1,16 @@
+
+
+MockNetwork.MockNode.makeIdentityService -
+
+
+
+core.testing / MockNetwork / MockNode / makeIdentityService
+
+makeIdentityService
+
+protected open fun makeIdentityService ( ) : MockIdentityService
+Overrides AbstractNode.makeIdentityService
+
+
+
+
diff --git a/docs/build/html/api/core.testing/-mock-network/-mock-node/make-messaging-service.html b/docs/build/html/api/core.testing/-mock-network/-mock-node/make-messaging-service.html
new file mode 100644
index 0000000000..72427e55f0
--- /dev/null
+++ b/docs/build/html/api/core.testing/-mock-network/-mock-node/make-messaging-service.html
@@ -0,0 +1,16 @@
+
+
+MockNetwork.MockNode.makeMessagingService -
+
+
+
+core.testing / MockNetwork / MockNode / makeMessagingService
+
+makeMessagingService
+
+protected open fun makeMessagingService ( ) : MessagingService
+Overrides AbstractNode.makeMessagingService
+
+
+
+
diff --git a/docs/build/html/api/core.testing/-mock-network/-mock-node/mock-net.html b/docs/build/html/api/core.testing/-mock-network/-mock-node/mock-net.html
new file mode 100644
index 0000000000..723dc25cd4
--- /dev/null
+++ b/docs/build/html/api/core.testing/-mock-network/-mock-node/mock-net.html
@@ -0,0 +1,15 @@
+
+
+MockNetwork.MockNode.mockNet -
+
+
+
+core.testing / MockNetwork / MockNode / mockNet
+
+mockNet
+
+val mockNet : MockNetwork
+
+
+
+
diff --git a/docs/build/html/api/core.testing/-mock-network/-mock-node/place.html b/docs/build/html/api/core.testing/-mock-network/-mock-node/place.html
new file mode 100644
index 0000000000..672c506e5d
--- /dev/null
+++ b/docs/build/html/api/core.testing/-mock-network/-mock-node/place.html
@@ -0,0 +1,15 @@
+
+
+MockNetwork.MockNode.place -
+
+
+
+core.testing / MockNetwork / MockNode / place
+
+place
+
+val place : PhysicalLocation
+
+
+
+
diff --git a/docs/build/html/api/core.testing/-mock-network/-mock-node/server-thread.html b/docs/build/html/api/core.testing/-mock-network/-mock-node/server-thread.html
new file mode 100644
index 0000000000..1138e9de41
--- /dev/null
+++ b/docs/build/html/api/core.testing/-mock-network/-mock-node/server-thread.html
@@ -0,0 +1,16 @@
+
+
+MockNetwork.MockNode.serverThread -
+
+
+
+core.testing / MockNetwork / MockNode / serverThread
+
+serverThread
+
+protected open val serverThread : AffinityExecutor
+Overrides AbstractNode.serverThread
+
+
+
+
diff --git a/docs/build/html/api/core.testing/-mock-network/-mock-node/start-messaging-service.html b/docs/build/html/api/core.testing/-mock-network/-mock-node/start-messaging-service.html
new file mode 100644
index 0000000000..4fa954aa81
--- /dev/null
+++ b/docs/build/html/api/core.testing/-mock-network/-mock-node/start-messaging-service.html
@@ -0,0 +1,16 @@
+
+
+MockNetwork.MockNode.startMessagingService -
+
+
+
+core.testing / MockNetwork / MockNode / startMessagingService
+
+startMessagingService
+
+protected open fun startMessagingService ( ) : Unit
+Overrides AbstractNode.startMessagingService
+
+
+
+
diff --git a/docs/build/html/api/core.testing/-mock-network/-mock-node/start.html b/docs/build/html/api/core.testing/-mock-network/-mock-node/start.html
new file mode 100644
index 0000000000..4f65881577
--- /dev/null
+++ b/docs/build/html/api/core.testing/-mock-network/-mock-node/start.html
@@ -0,0 +1,16 @@
+
+
+MockNetwork.MockNode.start -
+
+
+
+core.testing / MockNetwork / MockNode / start
+
+start
+
+open fun start ( ) : MockNode
+Overrides AbstractNode.start
+
+
+
+
diff --git a/docs/build/html/api/core.testing/-mock-network/address-to-node.html b/docs/build/html/api/core.testing/-mock-network/address-to-node.html
new file mode 100644
index 0000000000..82d88f3ff3
--- /dev/null
+++ b/docs/build/html/api/core.testing/-mock-network/address-to-node.html
@@ -0,0 +1,15 @@
+
+
+MockNetwork.addressToNode -
+
+
+
+core.testing / MockNetwork / addressToNode
+
+addressToNode
+
+fun addressToNode ( address : SingleMessageRecipient ) : MockNode
+
+
+
+
diff --git a/docs/build/html/api/core.testing/-mock-network/create-node.html b/docs/build/html/api/core.testing/-mock-network/create-node.html
new file mode 100644
index 0000000000..d4fe73d33a
--- /dev/null
+++ b/docs/build/html/api/core.testing/-mock-network/create-node.html
@@ -0,0 +1,16 @@
+
+
+MockNetwork.createNode -
+
+
+
+core.testing / MockNetwork / createNode
+
+createNode
+
+fun createNode ( networkMapAddress : NodeInfo ? = null, forcedID : Int = -1, nodeFactory : Factory = defaultFactory, vararg advertisedServices : ServiceType ) : MockNode
+Returns a started node, optionally created by the passed factory method
+
+
+
+
diff --git a/docs/build/html/api/core.testing/-mock-network/create-two-nodes.html b/docs/build/html/api/core.testing/-mock-network/create-two-nodes.html
new file mode 100644
index 0000000000..5c36b5e577
--- /dev/null
+++ b/docs/build/html/api/core.testing/-mock-network/create-two-nodes.html
@@ -0,0 +1,17 @@
+
+
+MockNetwork.createTwoNodes -
+
+
+
+core.testing / MockNetwork / createTwoNodes
+
+createTwoNodes
+
+fun createTwoNodes ( nodeFactory : Factory = defaultFactory) : <ERROR CLASS> < MockNode , MockNode >
+Sets up a two node network, in which the first node runs network map and timestamping services and the other
+doesnt.
+
+
+
+
diff --git a/docs/build/html/api/core.testing/-mock-network/filesystem.html b/docs/build/html/api/core.testing/-mock-network/filesystem.html
new file mode 100644
index 0000000000..f555202525
--- /dev/null
+++ b/docs/build/html/api/core.testing/-mock-network/filesystem.html
@@ -0,0 +1,15 @@
+
+
+MockNetwork.filesystem -
+
+
+
+core.testing / MockNetwork / filesystem
+
+filesystem
+
+val filesystem : <ERROR CLASS>
+
+
+
+
diff --git a/docs/build/html/api/core.testing/-mock-network/identities.html b/docs/build/html/api/core.testing/-mock-network/identities.html
new file mode 100644
index 0000000000..014ec2e23f
--- /dev/null
+++ b/docs/build/html/api/core.testing/-mock-network/identities.html
@@ -0,0 +1,15 @@
+
+
+MockNetwork.identities -
+
+
+
+core.testing / MockNetwork / identities
+
+identities
+
+val identities : ArrayList < Party >
+
+
+
+
diff --git a/docs/build/html/api/core.testing/-mock-network/index.html b/docs/build/html/api/core.testing/-mock-network/index.html
new file mode 100644
index 0000000000..337ed8ba2f
--- /dev/null
+++ b/docs/build/html/api/core.testing/-mock-network/index.html
@@ -0,0 +1,124 @@
+
+
+MockNetwork -
+
+
+
+core.testing / MockNetwork
+
+MockNetwork
+class MockNetwork
+A mock node brings up a suite of in-memory services in a fast manner suitable for unit testing.
+Components that do IO are either swapped out for mocks, or pointed to a Jimfs in memory filesystem.
+Mock network nodes require manual pumping by default: they will not run asynchronous. This means that
+for message exchanges to take place (and associated handlers to run), you must call the runNetwork
+method.
+
+
+
+
+Types
+
+Constructors
+
+
+
+
+<init>
+
+MockNetwork ( threadPerNode : Boolean = false, defaultFactory : Factory = MockNetwork.DefaultFactory)
A mock node brings up a suite of in-memory services in a fast manner suitable for unit testing.
+Components that do IO are either swapped out for mocks, or pointed to a Jimfs in memory filesystem.
+
+
+
+
+Properties
+
+Functions
+
+
+
+
+addressToNode
+
+fun addressToNode ( address : SingleMessageRecipient ) : MockNode
+
+
+
+createNode
+
+fun createNode ( networkMapAddress : NodeInfo ? = null, forcedID : Int = -1, nodeFactory : Factory = defaultFactory, vararg advertisedServices : ServiceType ) : MockNode
Returns a started node, optionally created by the passed factory method
+
+
+
+
+createTwoNodes
+
+fun createTwoNodes ( nodeFactory : Factory = defaultFactory) : <ERROR CLASS> < MockNode , MockNode >
Sets up a two node network, in which the first node runs network map and timestamping services and the other
+doesnt.
+
+
+
+
+runNetwork
+
+fun runNetwork ( rounds : Int = -1) : Unit
Asks every node in order to process any queued up inbound messages. This may in turn result in nodes
+sending more messages to each other, thus, a typical usage is to call runNetwork with the rounds
+parameter set to -1 (the default) which simply runs as many rounds as necessary to result in network
+stability (no nodes sent any messages in the last round).
+
+
+
+
+
+
diff --git a/docs/build/html/api/core.testing/-mock-network/messaging-network.html b/docs/build/html/api/core.testing/-mock-network/messaging-network.html
new file mode 100644
index 0000000000..0ef8581db8
--- /dev/null
+++ b/docs/build/html/api/core.testing/-mock-network/messaging-network.html
@@ -0,0 +1,15 @@
+
+
+MockNetwork.messagingNetwork -
+
+
+
+core.testing / MockNetwork / messagingNetwork
+
+messagingNetwork
+
+val messagingNetwork : InMemoryMessagingNetwork
+
+
+
+
diff --git a/docs/build/html/api/core.testing/-mock-network/nodes.html b/docs/build/html/api/core.testing/-mock-network/nodes.html
new file mode 100644
index 0000000000..46381893f7
--- /dev/null
+++ b/docs/build/html/api/core.testing/-mock-network/nodes.html
@@ -0,0 +1,16 @@
+
+
+MockNetwork.nodes -
+
+
+
+core.testing / MockNetwork / nodes
+
+nodes
+
+val nodes : List < MockNode >
+A read only view of the current set of executing nodes.
+
+
+
+
diff --git a/docs/build/html/api/core.testing/-mock-network/run-network.html b/docs/build/html/api/core.testing/-mock-network/run-network.html
new file mode 100644
index 0000000000..6d92852d14
--- /dev/null
+++ b/docs/build/html/api/core.testing/-mock-network/run-network.html
@@ -0,0 +1,19 @@
+
+
+MockNetwork.runNetwork -
+
+
+
+core.testing / MockNetwork / runNetwork
+
+runNetwork
+
+fun runNetwork ( rounds : Int = -1) : Unit
+Asks every node in order to process any queued up inbound messages. This may in turn result in nodes
+sending more messages to each other, thus, a typical usage is to call runNetwork with the rounds
+parameter set to -1 (the default) which simply runs as many rounds as necessary to result in network
+stability (no nodes sent any messages in the last round).
+
+
+
+
diff --git a/docs/build/html/api/core.testing/-simulation/-bank-factory/-init-.html b/docs/build/html/api/core.testing/-simulation/-bank-factory/-init-.html
new file mode 100644
index 0000000000..282cbeb414
--- /dev/null
+++ b/docs/build/html/api/core.testing/-simulation/-bank-factory/-init-.html
@@ -0,0 +1,14 @@
+
+
+Simulation.BankFactory. -
+
+
+
+core.testing / Simulation / BankFactory / <init>
+
+<init>
+BankFactory ( )
+
+
+
+
diff --git a/docs/build/html/api/core.testing/-simulation/-bank-factory/counter.html b/docs/build/html/api/core.testing/-simulation/-bank-factory/counter.html
new file mode 100644
index 0000000000..d369268411
--- /dev/null
+++ b/docs/build/html/api/core.testing/-simulation/-bank-factory/counter.html
@@ -0,0 +1,15 @@
+
+
+Simulation.BankFactory.counter -
+
+
+
+core.testing / Simulation / BankFactory / counter
+
+counter
+
+var counter : Int
+
+
+
+
diff --git a/docs/build/html/api/core.testing/-simulation/-bank-factory/create-all.html b/docs/build/html/api/core.testing/-simulation/-bank-factory/create-all.html
new file mode 100644
index 0000000000..fa782fea0a
--- /dev/null
+++ b/docs/build/html/api/core.testing/-simulation/-bank-factory/create-all.html
@@ -0,0 +1,15 @@
+
+
+Simulation.BankFactory.createAll -
+
+
+
+core.testing / Simulation / BankFactory / createAll
+
+createAll
+
+fun createAll ( ) : List < SimulatedNode >
+
+
+
+
diff --git a/docs/build/html/api/core.testing/-simulation/-bank-factory/create.html b/docs/build/html/api/core.testing/-simulation/-bank-factory/create.html
new file mode 100644
index 0000000000..73dc8dfd50
--- /dev/null
+++ b/docs/build/html/api/core.testing/-simulation/-bank-factory/create.html
@@ -0,0 +1,16 @@
+
+
+Simulation.BankFactory.create -
+
+
+
+core.testing / Simulation / BankFactory / create
+
+create
+
+fun create ( dir : Path , config : NodeConfiguration , network : MockNetwork , networkMapAddr : NodeInfo ? , advertisedServices : Set < ServiceType > , id : Int ) : MockNode
+Overrides Factory.create
+
+
+
+
diff --git a/docs/build/html/api/core.testing/-simulation/-bank-factory/index.html b/docs/build/html/api/core.testing/-simulation/-bank-factory/index.html
new file mode 100644
index 0000000000..53ab792516
--- /dev/null
+++ b/docs/build/html/api/core.testing/-simulation/-bank-factory/index.html
@@ -0,0 +1,53 @@
+
+
+Simulation.BankFactory -
+
+
+
+core.testing / Simulation / BankFactory
+
+BankFactory
+inner class BankFactory : Factory
+
+
+Constructors
+
+
+
+
+<init>
+
+BankFactory ( )
+
+
+
+Properties
+
+
+
+
+counter
+
+var counter : Int
+
+
+
+Functions
+
+
+
diff --git a/docs/build/html/api/core.testing/-simulation/-init-.html b/docs/build/html/api/core.testing/-simulation/-init-.html
new file mode 100644
index 0000000000..70eda4e879
--- /dev/null
+++ b/docs/build/html/api/core.testing/-simulation/-init-.html
@@ -0,0 +1,19 @@
+
+
+Simulation. -
+
+
+
+core.testing / Simulation / <init>
+
+<init>
+Simulation ( runAsync : Boolean , latencyInjector : LatencyCalculator ? )
+Base class for network simulations that are based on the unit test / mock environment.
+Sets up some nodes that can run protocols between each other, and exposes their progress trackers. Provides banks
+in a few cities around the world.
+
+
+
+
+
+
diff --git a/docs/build/html/api/core.testing/-simulation/-network-map-node-factory/create.html b/docs/build/html/api/core.testing/-simulation/-network-map-node-factory/create.html
new file mode 100644
index 0000000000..46d5bbfa95
--- /dev/null
+++ b/docs/build/html/api/core.testing/-simulation/-network-map-node-factory/create.html
@@ -0,0 +1,16 @@
+
+
+Simulation.NetworkMapNodeFactory.create -
+
+
+
+core.testing / Simulation / NetworkMapNodeFactory / create
+
+create
+
+fun create ( dir : Path , config : NodeConfiguration , network : MockNetwork , networkMapAddr : NodeInfo ? , advertisedServices : Set < ServiceType > , id : Int ) : MockNode
+Overrides Factory.create
+
+
+
+
diff --git a/docs/build/html/api/core.testing/-simulation/-network-map-node-factory/index.html b/docs/build/html/api/core.testing/-simulation/-network-map-node-factory/index.html
new file mode 100644
index 0000000000..1f3e20fdcd
--- /dev/null
+++ b/docs/build/html/api/core.testing/-simulation/-network-map-node-factory/index.html
@@ -0,0 +1,25 @@
+
+
+Simulation.NetworkMapNodeFactory -
+
+
+
+core.testing / Simulation / NetworkMapNodeFactory
+
+NetworkMapNodeFactory
+object NetworkMapNodeFactory : Factory
+
+
+Functions
+
+
+
diff --git a/docs/build/html/api/core.testing/-simulation/-rates-oracle-factory/create.html b/docs/build/html/api/core.testing/-simulation/-rates-oracle-factory/create.html
new file mode 100644
index 0000000000..3cb9a85be4
--- /dev/null
+++ b/docs/build/html/api/core.testing/-simulation/-rates-oracle-factory/create.html
@@ -0,0 +1,16 @@
+
+
+Simulation.RatesOracleFactory.create -
+
+
+
+core.testing / Simulation / RatesOracleFactory / create
+
+create
+
+fun create ( dir : Path , config : NodeConfiguration , network : MockNetwork , networkMapAddr : NodeInfo ? , advertisedServices : Set < ServiceType > , id : Int ) : MockNode
+Overrides Factory.create
+
+
+
+
diff --git a/docs/build/html/api/core.testing/-simulation/-rates-oracle-factory/index.html b/docs/build/html/api/core.testing/-simulation/-rates-oracle-factory/index.html
new file mode 100644
index 0000000000..3f0abf513d
--- /dev/null
+++ b/docs/build/html/api/core.testing/-simulation/-rates-oracle-factory/index.html
@@ -0,0 +1,25 @@
+
+
+Simulation.RatesOracleFactory -
+
+
+
+core.testing / Simulation / RatesOracleFactory
+
+RatesOracleFactory
+object RatesOracleFactory : Factory
+
+
+Functions
+
+
+
diff --git a/docs/build/html/api/core.testing/-simulation/-regulator-factory/create.html b/docs/build/html/api/core.testing/-simulation/-regulator-factory/create.html
new file mode 100644
index 0000000000..420828e891
--- /dev/null
+++ b/docs/build/html/api/core.testing/-simulation/-regulator-factory/create.html
@@ -0,0 +1,16 @@
+
+
+Simulation.RegulatorFactory.create -
+
+
+
+core.testing / Simulation / RegulatorFactory / create
+
+create
+
+fun create ( dir : Path , config : NodeConfiguration , network : MockNetwork , networkMapAddr : NodeInfo ? , advertisedServices : Set < ServiceType > , id : Int ) : MockNode
+Overrides Factory.create
+
+
+
+
diff --git a/docs/build/html/api/core.testing/-simulation/-regulator-factory/index.html b/docs/build/html/api/core.testing/-simulation/-regulator-factory/index.html
new file mode 100644
index 0000000000..457fd3265e
--- /dev/null
+++ b/docs/build/html/api/core.testing/-simulation/-regulator-factory/index.html
@@ -0,0 +1,25 @@
+
+
+Simulation.RegulatorFactory -
+
+
+
+core.testing / Simulation / RegulatorFactory
+
+RegulatorFactory
+object RegulatorFactory : Factory
+
+
+Functions
+
+
+
diff --git a/docs/build/html/api/core.testing/-simulation/-simulated-node/-init-.html b/docs/build/html/api/core.testing/-simulation/-simulated-node/-init-.html
new file mode 100644
index 0000000000..269717799b
--- /dev/null
+++ b/docs/build/html/api/core.testing/-simulation/-simulated-node/-init-.html
@@ -0,0 +1,14 @@
+
+
+Simulation.SimulatedNode. -
+
+
+
+core.testing / Simulation / SimulatedNode / <init>
+
+<init>
+SimulatedNode ( dir : Path , config : NodeConfiguration , mockNet : MockNetwork , networkMapAddress : NodeInfo ? , advertisedServices : Set < ServiceType > , id : Int )
+
+
+
+
diff --git a/docs/build/html/api/core.testing/-simulation/-simulated-node/find-my-location.html b/docs/build/html/api/core.testing/-simulation/-simulated-node/find-my-location.html
new file mode 100644
index 0000000000..e0933721c2
--- /dev/null
+++ b/docs/build/html/api/core.testing/-simulation/-simulated-node/find-my-location.html
@@ -0,0 +1,16 @@
+
+
+Simulation.SimulatedNode.findMyLocation -
+
+
+
+core.testing / Simulation / SimulatedNode / findMyLocation
+
+findMyLocation
+
+protected open fun findMyLocation ( ) : PhysicalLocation ?
+Overrides MockNode.findMyLocation
+
+
+
+
diff --git a/docs/build/html/api/core.testing/-simulation/-simulated-node/index.html b/docs/build/html/api/core.testing/-simulation/-simulated-node/index.html
new file mode 100644
index 0000000000..6eddc0eddd
--- /dev/null
+++ b/docs/build/html/api/core.testing/-simulation/-simulated-node/index.html
@@ -0,0 +1,100 @@
+
+
+Simulation.SimulatedNode -
+
+
+
+core.testing / Simulation / SimulatedNode
+
+SimulatedNode
+open class SimulatedNode : MockNode
+
+
+Constructors
+
+Inherited Properties
+
+Functions
+
+Inherited Functions
+
+
+
diff --git a/docs/build/html/api/core.testing/-simulation/-timestamping-node-factory/create.html b/docs/build/html/api/core.testing/-simulation/-timestamping-node-factory/create.html
new file mode 100644
index 0000000000..ea6005515c
--- /dev/null
+++ b/docs/build/html/api/core.testing/-simulation/-timestamping-node-factory/create.html
@@ -0,0 +1,16 @@
+
+
+Simulation.TimestampingNodeFactory.create -
+
+
+
+core.testing / Simulation / TimestampingNodeFactory / create
+
+create
+
+fun create ( dir : Path , config : NodeConfiguration , network : MockNetwork , networkMapAddr : NodeInfo ? , advertisedServices : Set < ServiceType > , id : Int ) : MockNode
+Overrides Factory.create
+
+
+
+
diff --git a/docs/build/html/api/core.testing/-simulation/-timestamping-node-factory/index.html b/docs/build/html/api/core.testing/-simulation/-timestamping-node-factory/index.html
new file mode 100644
index 0000000000..1c2517853a
--- /dev/null
+++ b/docs/build/html/api/core.testing/-simulation/-timestamping-node-factory/index.html
@@ -0,0 +1,25 @@
+
+
+Simulation.TimestampingNodeFactory -
+
+
+
+core.testing / Simulation / TimestampingNodeFactory
+
+TimestampingNodeFactory
+object TimestampingNodeFactory : Factory
+
+
+Functions
+
+
+
diff --git a/docs/build/html/api/core.testing/-simulation/all-protocol-steps.html b/docs/build/html/api/core.testing/-simulation/all-protocol-steps.html
new file mode 100644
index 0000000000..6f1811c960
--- /dev/null
+++ b/docs/build/html/api/core.testing/-simulation/all-protocol-steps.html
@@ -0,0 +1,15 @@
+
+
+Simulation.allProtocolSteps -
+
+
+
+core.testing / Simulation / allProtocolSteps
+
+allProtocolSteps
+
+val allProtocolSteps : <ERROR CLASS> < <ERROR CLASS> < SimulatedNode , Change > >
+
+
+
+
diff --git a/docs/build/html/api/core.testing/-simulation/bank-factory.html b/docs/build/html/api/core.testing/-simulation/bank-factory.html
new file mode 100644
index 0000000000..34e947fdfc
--- /dev/null
+++ b/docs/build/html/api/core.testing/-simulation/bank-factory.html
@@ -0,0 +1,15 @@
+
+
+Simulation.bankFactory -
+
+
+
+core.testing / Simulation / bankFactory
+
+bankFactory
+
+val bankFactory : BankFactory
+
+
+
+
diff --git a/docs/build/html/api/core.testing/-simulation/bank-locations.html b/docs/build/html/api/core.testing/-simulation/bank-locations.html
new file mode 100644
index 0000000000..678ea3e1d2
--- /dev/null
+++ b/docs/build/html/api/core.testing/-simulation/bank-locations.html
@@ -0,0 +1,15 @@
+
+
+Simulation.bankLocations -
+
+
+
+core.testing / Simulation / bankLocations
+
+bankLocations
+
+val bankLocations : <ERROR CLASS>
+
+
+
+
diff --git a/docs/build/html/api/core.testing/-simulation/banks.html b/docs/build/html/api/core.testing/-simulation/banks.html
new file mode 100644
index 0000000000..327c39b2d9
--- /dev/null
+++ b/docs/build/html/api/core.testing/-simulation/banks.html
@@ -0,0 +1,15 @@
+
+
+Simulation.banks -
+
+
+
+core.testing / Simulation / banks
+
+banks
+
+val banks : List < SimulatedNode >
+
+
+
+
diff --git a/docs/build/html/api/core.testing/-simulation/current-day.html b/docs/build/html/api/core.testing/-simulation/current-day.html
new file mode 100644
index 0000000000..ccc1842d22
--- /dev/null
+++ b/docs/build/html/api/core.testing/-simulation/current-day.html
@@ -0,0 +1,17 @@
+
+
+Simulation.currentDay -
+
+
+
+core.testing / Simulation / currentDay
+
+currentDay
+
+var currentDay : LocalDate
+The current simulated date. By default this never changes. If you want it to change, you should do so from
+within your overridden iterate call. Changes in the current day surface in the dateChanges observable.
+
+
+
+
diff --git a/docs/build/html/api/core.testing/-simulation/date-changes.html b/docs/build/html/api/core.testing/-simulation/date-changes.html
new file mode 100644
index 0000000000..9e4ef67ebc
--- /dev/null
+++ b/docs/build/html/api/core.testing/-simulation/date-changes.html
@@ -0,0 +1,15 @@
+
+
+Simulation.dateChanges -
+
+
+
+core.testing / Simulation / dateChanges
+
+dateChanges
+
+val dateChanges : <ERROR CLASS> < LocalDate >
+
+
+
+
diff --git a/docs/build/html/api/core.testing/-simulation/done-steps.html b/docs/build/html/api/core.testing/-simulation/done-steps.html
new file mode 100644
index 0000000000..a931f01cfb
--- /dev/null
+++ b/docs/build/html/api/core.testing/-simulation/done-steps.html
@@ -0,0 +1,15 @@
+
+
+Simulation.doneSteps -
+
+
+
+core.testing / Simulation / doneSteps
+
+doneSteps
+
+val doneSteps : <ERROR CLASS> < Collection < SimulatedNode > >
+
+
+
+
diff --git a/docs/build/html/api/core.testing/-simulation/extra-node-labels.html b/docs/build/html/api/core.testing/-simulation/extra-node-labels.html
new file mode 100644
index 0000000000..f20204204b
--- /dev/null
+++ b/docs/build/html/api/core.testing/-simulation/extra-node-labels.html
@@ -0,0 +1,17 @@
+
+
+Simulation.extraNodeLabels -
+
+
+
+core.testing / Simulation / extraNodeLabels
+
+extraNodeLabels
+
+val extraNodeLabels : MutableMap < SimulatedNode , String >
+A place for simulations to stash human meaningful text about what the node is "thinking", which might appear
+in the UI somewhere.
+
+
+
+
diff --git a/docs/build/html/api/core.testing/-simulation/index.html b/docs/build/html/api/core.testing/-simulation/index.html
new file mode 100644
index 0000000000..c078a1054d
--- /dev/null
+++ b/docs/build/html/api/core.testing/-simulation/index.html
@@ -0,0 +1,241 @@
+
+
+Simulation -
+
+
+
+core.testing / Simulation
+
+Simulation
+abstract class Simulation
+Base class for network simulations that are based on the unit test / mock environment.
+Sets up some nodes that can run protocols between each other, and exposes their progress trackers. Provides banks
+in a few cities around the world.
+
+
+
+
+Types
+
+Constructors
+
+
+
+
+<init>
+
+Simulation ( runAsync : Boolean , latencyInjector : LatencyCalculator ? )
Base class for network simulations that are based on the unit test / mock environment.
+
+
+
+
+Properties
+
+Functions
+
+
+
+
+iterate
+
+open fun iterate ( ) : Unit
Iterates the simulation by one step.
+
+
+
+
+linkConsensus
+
+fun linkConsensus ( nodes : Collection < SimulatedNode > , protocol : ProtocolLogic < * > ) : Unit
+
+
+
+linkProtocolProgress
+
+fun linkProtocolProgress ( node : SimulatedNode , protocol : ProtocolLogic < * > ) : Unit
+
+
+
+start
+
+open fun start ( ) : Unit
+
+
+
+startTradingCircle
+
+fun startTradingCircle ( tradeBetween : ( Int , Int ) -> <ERROR CLASS> < out <ERROR CLASS> > ) : Unit
Given a function that returns a future, iterates that function with arguments like (0, 1), (1, 2), (2, 3) etc
+each time the returned future completes.
+
+
+
+
+stop
+
+fun stop ( ) : Unit
+
+
+
+Inheritors
+
+
+
+
+IRSSimulation
+
+class IRSSimulation : Simulation
A simulation in which banks execute interest rate swaps with each other, including the fixing events.
+
+
+
+
+TradeSimulation
+
+class TradeSimulation : Simulation
Simulates a never ending series of trades that go pair-wise through the banks (e.g. A and B trade with each other,
+then B and C trade with each other, then C and A etc).
+
+
+
+
+
+
diff --git a/docs/build/html/api/core.testing/-simulation/iterate.html b/docs/build/html/api/core.testing/-simulation/iterate.html
new file mode 100644
index 0000000000..e8971cfd88
--- /dev/null
+++ b/docs/build/html/api/core.testing/-simulation/iterate.html
@@ -0,0 +1,22 @@
+
+
+Simulation.iterate -
+
+
+
+core.testing / Simulation / iterate
+
+iterate
+
+open fun iterate ( ) : Unit
+Iterates the simulation by one step.
+The default implementation circles around the nodes, pumping until one of them handles a message. The next call
+will carry on from where this one stopped. In an environment where you want to take actions between anything
+interesting happening, or control the precise speed at which things operate (beyond the latency injector), this
+is a useful way to do things.
+
+
+
+
+
+
diff --git a/docs/build/html/api/core.testing/-simulation/latency-injector.html b/docs/build/html/api/core.testing/-simulation/latency-injector.html
new file mode 100644
index 0000000000..60b97e0b0a
--- /dev/null
+++ b/docs/build/html/api/core.testing/-simulation/latency-injector.html
@@ -0,0 +1,15 @@
+
+
+Simulation.latencyInjector -
+
+
+
+core.testing / Simulation / latencyInjector
+
+latencyInjector
+
+val latencyInjector : LatencyCalculator ?
+
+
+
+
diff --git a/docs/build/html/api/core.testing/-simulation/link-consensus.html b/docs/build/html/api/core.testing/-simulation/link-consensus.html
new file mode 100644
index 0000000000..d531ec62b4
--- /dev/null
+++ b/docs/build/html/api/core.testing/-simulation/link-consensus.html
@@ -0,0 +1,15 @@
+
+
+Simulation.linkConsensus -
+
+
+
+core.testing / Simulation / linkConsensus
+
+linkConsensus
+
+protected fun linkConsensus ( nodes : Collection < SimulatedNode > , protocol : ProtocolLogic < * > ) : Unit
+
+
+
+
diff --git a/docs/build/html/api/core.testing/-simulation/link-protocol-progress.html b/docs/build/html/api/core.testing/-simulation/link-protocol-progress.html
new file mode 100644
index 0000000000..a87f8be26d
--- /dev/null
+++ b/docs/build/html/api/core.testing/-simulation/link-protocol-progress.html
@@ -0,0 +1,15 @@
+
+
+Simulation.linkProtocolProgress -
+
+
+
+core.testing / Simulation / linkProtocolProgress
+
+linkProtocolProgress
+
+protected fun linkProtocolProgress ( node : SimulatedNode , protocol : ProtocolLogic < * > ) : Unit
+
+
+
+
diff --git a/docs/build/html/api/core.testing/-simulation/network-map.html b/docs/build/html/api/core.testing/-simulation/network-map.html
new file mode 100644
index 0000000000..0e6267bfe7
--- /dev/null
+++ b/docs/build/html/api/core.testing/-simulation/network-map.html
@@ -0,0 +1,15 @@
+
+
+Simulation.networkMap -
+
+
+
+core.testing / Simulation / networkMap
+
+networkMap
+
+val networkMap : SimulatedNode
+
+
+
+
diff --git a/docs/build/html/api/core.testing/-simulation/network.html b/docs/build/html/api/core.testing/-simulation/network.html
new file mode 100644
index 0000000000..7969e71dca
--- /dev/null
+++ b/docs/build/html/api/core.testing/-simulation/network.html
@@ -0,0 +1,15 @@
+
+
+Simulation.network -
+
+
+
+core.testing / Simulation / network
+
+network
+
+val network : MockNetwork
+
+
+
+
diff --git a/docs/build/html/api/core.testing/-simulation/rates-oracle.html b/docs/build/html/api/core.testing/-simulation/rates-oracle.html
new file mode 100644
index 0000000000..6c44429d76
--- /dev/null
+++ b/docs/build/html/api/core.testing/-simulation/rates-oracle.html
@@ -0,0 +1,15 @@
+
+
+Simulation.ratesOracle -
+
+
+
+core.testing / Simulation / ratesOracle
+
+ratesOracle
+
+val ratesOracle : SimulatedNode
+
+
+
+
diff --git a/docs/build/html/api/core.testing/-simulation/regulators.html b/docs/build/html/api/core.testing/-simulation/regulators.html
new file mode 100644
index 0000000000..73eefc9f84
--- /dev/null
+++ b/docs/build/html/api/core.testing/-simulation/regulators.html
@@ -0,0 +1,15 @@
+
+
+Simulation.regulators -
+
+
+
+core.testing / Simulation / regulators
+
+regulators
+
+val regulators : List < SimulatedNode >
+
+
+
+
diff --git a/docs/build/html/api/core.testing/-simulation/run-async.html b/docs/build/html/api/core.testing/-simulation/run-async.html
new file mode 100644
index 0000000000..089def887d
--- /dev/null
+++ b/docs/build/html/api/core.testing/-simulation/run-async.html
@@ -0,0 +1,15 @@
+
+
+Simulation.runAsync -
+
+
+
+core.testing / Simulation / runAsync
+
+runAsync
+
+val runAsync : Boolean
+
+
+
+
diff --git a/docs/build/html/api/core.testing/-simulation/service-providers.html b/docs/build/html/api/core.testing/-simulation/service-providers.html
new file mode 100644
index 0000000000..6064a096c8
--- /dev/null
+++ b/docs/build/html/api/core.testing/-simulation/service-providers.html
@@ -0,0 +1,15 @@
+
+
+Simulation.serviceProviders -
+
+
+
+core.testing / Simulation / serviceProviders
+
+serviceProviders
+
+val serviceProviders : List < SimulatedNode >
+
+
+
+
diff --git a/docs/build/html/api/core.testing/-simulation/start-trading-circle.html b/docs/build/html/api/core.testing/-simulation/start-trading-circle.html
new file mode 100644
index 0000000000..8c3f2d463a
--- /dev/null
+++ b/docs/build/html/api/core.testing/-simulation/start-trading-circle.html
@@ -0,0 +1,17 @@
+
+
+Simulation.startTradingCircle -
+
+
+
+core.testing / Simulation / startTradingCircle
+
+startTradingCircle
+
+fun startTradingCircle ( tradeBetween : ( Int , Int ) -> <ERROR CLASS> < out <ERROR CLASS> > ) : Unit
+Given a function that returns a future, iterates that function with arguments like (0, 1), (1, 2), (2, 3) etc
+each time the returned future completes.
+
+
+
+
diff --git a/docs/build/html/api/core.testing/-simulation/start.html b/docs/build/html/api/core.testing/-simulation/start.html
new file mode 100644
index 0000000000..eadfabecd7
--- /dev/null
+++ b/docs/build/html/api/core.testing/-simulation/start.html
@@ -0,0 +1,15 @@
+
+
+Simulation.start -
+
+
+
+core.testing / Simulation / start
+
+start
+
+open fun start ( ) : Unit
+
+
+
+
diff --git a/docs/build/html/api/core.testing/-simulation/stop.html b/docs/build/html/api/core.testing/-simulation/stop.html
new file mode 100644
index 0000000000..4061571a45
--- /dev/null
+++ b/docs/build/html/api/core.testing/-simulation/stop.html
@@ -0,0 +1,15 @@
+
+
+Simulation.stop -
+
+
+
+core.testing / Simulation / stop
+
+stop
+
+fun stop ( ) : Unit
+
+
+
+
diff --git a/docs/build/html/api/core.testing/-simulation/timestamper.html b/docs/build/html/api/core.testing/-simulation/timestamper.html
new file mode 100644
index 0000000000..cbe0c85086
--- /dev/null
+++ b/docs/build/html/api/core.testing/-simulation/timestamper.html
@@ -0,0 +1,15 @@
+
+
+Simulation.timestamper -
+
+
+
+core.testing / Simulation / timestamper
+
+timestamper
+
+val timestamper : SimulatedNode
+
+
+
+
diff --git a/docs/build/html/api/core.testing/-trade-simulation/-init-.html b/docs/build/html/api/core.testing/-trade-simulation/-init-.html
new file mode 100644
index 0000000000..a534d1b0bb
--- /dev/null
+++ b/docs/build/html/api/core.testing/-trade-simulation/-init-.html
@@ -0,0 +1,16 @@
+
+
+TradeSimulation. -
+
+
+
+core.testing / TradeSimulation / <init>
+
+<init>
+TradeSimulation ( runAsync : Boolean , latencyInjector : LatencyCalculator ? )
+Simulates a never ending series of trades that go pair-wise through the banks (e.g. A and B trade with each other,
+then B and C trade with each other, then C and A etc).
+
+
+
+
diff --git a/docs/build/html/api/core.testing/-trade-simulation/index.html b/docs/build/html/api/core.testing/-trade-simulation/index.html
new file mode 100644
index 0000000000..10c5318bc2
--- /dev/null
+++ b/docs/build/html/api/core.testing/-trade-simulation/index.html
@@ -0,0 +1,183 @@
+
+
+TradeSimulation -
+
+
+
+core.testing / TradeSimulation
+
+TradeSimulation
+class TradeSimulation : Simulation
+Simulates a never ending series of trades that go pair-wise through the banks (e.g. A and B trade with each other,
+then B and C trade with each other, then C and A etc).
+
+
+Constructors
+
+
+
+
+<init>
+
+TradeSimulation ( runAsync : Boolean , latencyInjector : LatencyCalculator ? )
Simulates a never ending series of trades that go pair-wise through the banks (e.g. A and B trade with each other,
+then B and C trade with each other, then C and A etc).
+
+
+
+
+Inherited Properties
+
+Functions
+
+
+
+
+start
+
+fun start ( ) : Unit
+
+
+
+Inherited Functions
+
+
+
+
+iterate
+
+open fun iterate ( ) : Unit
Iterates the simulation by one step.
+
+
+
+
+linkConsensus
+
+fun linkConsensus ( nodes : Collection < SimulatedNode > , protocol : ProtocolLogic < * > ) : Unit
+
+
+
+linkProtocolProgress
+
+fun linkProtocolProgress ( node : SimulatedNode , protocol : ProtocolLogic < * > ) : Unit
+
+
+
+startTradingCircle
+
+fun startTradingCircle ( tradeBetween : ( Int , Int ) -> <ERROR CLASS> < out <ERROR CLASS> > ) : Unit
Given a function that returns a future, iterates that function with arguments like (0, 1), (1, 2), (2, 3) etc
+each time the returned future completes.
+
+
+
+
+stop
+
+fun stop ( ) : Unit
+
+
+
+
+
diff --git a/docs/build/html/api/core.testing/-trade-simulation/start.html b/docs/build/html/api/core.testing/-trade-simulation/start.html
new file mode 100644
index 0000000000..52c44ce7ab
--- /dev/null
+++ b/docs/build/html/api/core.testing/-trade-simulation/start.html
@@ -0,0 +1,16 @@
+
+
+TradeSimulation.start -
+
+
+
+core.testing / TradeSimulation / start
+
+start
+
+fun start ( ) : Unit
+Overrides Simulation.start
+
+
+
+
diff --git a/docs/build/html/api/core.testing/index.html b/docs/build/html/api/core.testing/index.html
new file mode 100644
index 0000000000..a749a23036
--- /dev/null
+++ b/docs/build/html/api/core.testing/index.html
@@ -0,0 +1,74 @@
+
+
+core.testing -
+
+
+
+core.testing
+
+Package core.testing
+Types
+
+
+
+
+IRSSimulation
+
+class IRSSimulation : Simulation
A simulation in which banks execute interest rate swaps with each other, including the fixing events.
+
+
+
+
+InMemoryMessagingNetwork
+
+class InMemoryMessagingNetwork
An in-memory network allows you to manufacture InMemoryMessaging s for a set of participants. Each
+InMemoryMessaging maintains a queue of messages it has received, and a background thread that dispatches
+messages one by one to registered handlers. Alternatively, a messaging system may be manually pumped, in which
+case no thread is created and a caller is expected to force delivery one at a time (this is useful for unit
+testing).
+
+
+
+
+MockIdentityService
+
+class MockIdentityService : IdentityService
Scaffolding: a dummy identity service that just expects to have identities loaded off disk or found elsewhere.
+This class allows the provided list of identities to be mutated after construction, so it takes the list lock
+when doing lookups and recalculates the mapping each time. The ability to change the list is used by the
+MockNetwork code.
+
+
+
+
+MockNetwork
+
+class MockNetwork
A mock node brings up a suite of in-memory services in a fast manner suitable for unit testing.
+Components that do IO are either swapped out for mocks, or pointed to a Jimfs in memory filesystem.
+
+
+
+
+MockNetworkMapCache
+
+class MockNetworkMapCache : InMemoryNetworkMapCache
Network map cache with no backing map service.
+
+
+
+
+Simulation
+
+abstract class Simulation
Base class for network simulations that are based on the unit test / mock environment.
+
+
+
+
+TradeSimulation
+
+class TradeSimulation : Simulation
Simulates a never ending series of trades that go pair-wise through the banks (e.g. A and B trade with each other,
+then B and C trade with each other, then C and A etc).
+
+
+
+
+
+
diff --git a/docs/build/html/api/core.utilities/-a-n-s-i-progress-renderer/index.html b/docs/build/html/api/core.utilities/-a-n-s-i-progress-renderer/index.html
new file mode 100644
index 0000000000..7da9900c13
--- /dev/null
+++ b/docs/build/html/api/core.utilities/-a-n-s-i-progress-renderer/index.html
@@ -0,0 +1,31 @@
+
+
+ANSIProgressRenderer -
+
+
+
+core.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.
+TODO: Thread safety
+
+
+
+
+Properties
+
+
+
diff --git a/docs/build/html/api/core.utilities/-a-n-s-i-progress-renderer/progress-tracker.html b/docs/build/html/api/core.utilities/-a-n-s-i-progress-renderer/progress-tracker.html
new file mode 100644
index 0000000000..7e37f12890
--- /dev/null
+++ b/docs/build/html/api/core.utilities/-a-n-s-i-progress-renderer/progress-tracker.html
@@ -0,0 +1,15 @@
+
+
+ANSIProgressRenderer.progressTracker -
+
+
+
+core.utilities / ANSIProgressRenderer / progressTracker
+
+progressTracker
+
+var progressTracker : ProgressTracker ?
+
+
+
+
diff --git a/docs/build/html/api/core.utilities/-add-or-remove/-a-d-d.html b/docs/build/html/api/core.utilities/-add-or-remove/-a-d-d.html
new file mode 100644
index 0000000000..76227a9c94
--- /dev/null
+++ b/docs/build/html/api/core.utilities/-add-or-remove/-a-d-d.html
@@ -0,0 +1,14 @@
+
+
+AddOrRemove.ADD -
+
+
+
+core.utilities / AddOrRemove / ADD
+
+ADD
+ADD
+
+
+
+
diff --git a/docs/build/html/api/core.utilities/-add-or-remove/-r-e-m-o-v-e.html b/docs/build/html/api/core.utilities/-add-or-remove/-r-e-m-o-v-e.html
new file mode 100644
index 0000000000..5b461da6d7
--- /dev/null
+++ b/docs/build/html/api/core.utilities/-add-or-remove/-r-e-m-o-v-e.html
@@ -0,0 +1,14 @@
+
+
+AddOrRemove.REMOVE -
+
+
+
+core.utilities / AddOrRemove / REMOVE
+
+REMOVE
+REMOVE
+
+
+
+
diff --git a/docs/build/html/api/core.utilities/-add-or-remove/index.html b/docs/build/html/api/core.utilities/-add-or-remove/index.html
new file mode 100644
index 0000000000..542405cb16
--- /dev/null
+++ b/docs/build/html/api/core.utilities/-add-or-remove/index.html
@@ -0,0 +1,32 @@
+
+
+AddOrRemove -
+
+
+
+core.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/core.utilities/-affinity-executor/-gate/-init-.html b/docs/build/html/api/core.utilities/-affinity-executor/-gate/-init-.html
new file mode 100644
index 0000000000..80062a2c6f
--- /dev/null
+++ b/docs/build/html/api/core.utilities/-affinity-executor/-gate/-init-.html
@@ -0,0 +1,19 @@
+
+
+AffinityExecutor.Gate. -
+
+
+
+core.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/core.utilities/-affinity-executor/-gate/execute.html b/docs/build/html/api/core.utilities/-affinity-executor/-gate/execute.html
new file mode 100644
index 0000000000..762d8ce916
--- /dev/null
+++ b/docs/build/html/api/core.utilities/-affinity-executor/-gate/execute.html
@@ -0,0 +1,15 @@
+
+
+AffinityExecutor.Gate.execute -
+
+
+
+core.utilities / AffinityExecutor / Gate / execute
+
+execute
+
+fun execute ( command : Runnable ) : Unit
+
+
+
+
diff --git a/docs/build/html/api/core.utilities/-affinity-executor/-gate/index.html b/docs/build/html/api/core.utilities/-affinity-executor/-gate/index.html
new file mode 100644
index 0000000000..0193716541
--- /dev/null
+++ b/docs/build/html/api/core.utilities/-affinity-executor/-gate/index.html
@@ -0,0 +1,102 @@
+
+
+AffinityExecutor.Gate -
+
+
+
+core.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
+
+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.
+
+
+
+
+flush
+
+open fun flush ( ) : Unit
Posts a no-op task to the executor and blocks this thread waiting for it to complete. This can be useful in
+tests when you want to be sure that a previous task submitted via execute has completed.
+
+
+
+
+
+
diff --git a/docs/build/html/api/core.utilities/-affinity-executor/-gate/is-on-thread.html b/docs/build/html/api/core.utilities/-affinity-executor/-gate/is-on-thread.html
new file mode 100644
index 0000000000..287a88307b
--- /dev/null
+++ b/docs/build/html/api/core.utilities/-affinity-executor/-gate/is-on-thread.html
@@ -0,0 +1,20 @@
+
+
+AffinityExecutor.Gate.isOnThread -
+
+
+
+core.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/core.utilities/-affinity-executor/-gate/task-queue-size.html b/docs/build/html/api/core.utilities/-affinity-executor/-gate/task-queue-size.html
new file mode 100644
index 0000000000..79ab88d13b
--- /dev/null
+++ b/docs/build/html/api/core.utilities/-affinity-executor/-gate/task-queue-size.html
@@ -0,0 +1,15 @@
+
+
+AffinityExecutor.Gate.taskQueueSize -
+
+
+
+core.utilities / AffinityExecutor / Gate / taskQueueSize
+
+taskQueueSize
+
+val taskQueueSize : Int
+
+
+
+
diff --git a/docs/build/html/api/core.utilities/-affinity-executor/-gate/wait-and-run.html b/docs/build/html/api/core.utilities/-affinity-executor/-gate/wait-and-run.html
new file mode 100644
index 0000000000..9f04059860
--- /dev/null
+++ b/docs/build/html/api/core.utilities/-affinity-executor/-gate/wait-and-run.html
@@ -0,0 +1,15 @@
+
+
+AffinityExecutor.Gate.waitAndRun -
+
+
+
+core.utilities / AffinityExecutor / Gate / waitAndRun
+
+waitAndRun
+
+fun waitAndRun ( ) : Unit
+
+
+
+
diff --git a/docs/build/html/api/core.utilities/-affinity-executor/-s-a-m-e_-t-h-r-e-a-d.html b/docs/build/html/api/core.utilities/-affinity-executor/-s-a-m-e_-t-h-r-e-a-d.html
new file mode 100644
index 0000000000..116d1a630d
--- /dev/null
+++ b/docs/build/html/api/core.utilities/-affinity-executor/-s-a-m-e_-t-h-r-e-a-d.html
@@ -0,0 +1,15 @@
+
+
+AffinityExecutor.SAME_THREAD -
+
+
+
+core.utilities / AffinityExecutor / SAME_THREAD
+
+SAME_THREAD
+
+val SAME_THREAD : AffinityExecutor
+
+
+
+
diff --git a/docs/build/html/api/core.utilities/-affinity-executor/-service-affinity-executor/-init-.html b/docs/build/html/api/core.utilities/-affinity-executor/-service-affinity-executor/-init-.html
new file mode 100644
index 0000000000..2c36d61ab8
--- /dev/null
+++ b/docs/build/html/api/core.utilities/-affinity-executor/-service-affinity-executor/-init-.html
@@ -0,0 +1,16 @@
+
+
+AffinityExecutor.ServiceAffinityExecutor. -
+
+
+
+core.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/core.utilities/-affinity-executor/-service-affinity-executor/after-execute.html b/docs/build/html/api/core.utilities/-affinity-executor/-service-affinity-executor/after-execute.html
new file mode 100644
index 0000000000..6e22ad5b7d
--- /dev/null
+++ b/docs/build/html/api/core.utilities/-affinity-executor/-service-affinity-executor/after-execute.html
@@ -0,0 +1,15 @@
+
+
+AffinityExecutor.ServiceAffinityExecutor.afterExecute -
+
+
+
+core.utilities / AffinityExecutor / ServiceAffinityExecutor / afterExecute
+
+afterExecute
+
+protected fun afterExecute ( r : Runnable , t : Throwable ? ) : Unit
+
+
+
+
diff --git a/docs/build/html/api/core.utilities/-affinity-executor/-service-affinity-executor/index.html b/docs/build/html/api/core.utilities/-affinity-executor/-service-affinity-executor/index.html
new file mode 100644
index 0000000000..cfec5ab733
--- /dev/null
+++ b/docs/build/html/api/core.utilities/-affinity-executor/-service-affinity-executor/index.html
@@ -0,0 +1,104 @@
+
+
+AffinityExecutor.ServiceAffinityExecutor -
+
+
+
+core.utilities / AffinityExecutor / ServiceAffinityExecutor
+
+ServiceAffinityExecutor
+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
+
+val isOnThread : Boolean
Returns true if the current thread is equal to the thread this executor is backed by.
+
+
+
+
+threads
+
+val threads : MutableSet < Thread >
+
+
+
+Functions
+
+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.
+
+
+
+
+flush
+
+open fun flush ( ) : Unit
Posts a no-op task to the executor and blocks this thread waiting for it to complete. This can be useful in
+tests when you want to be sure that a previous task submitted via execute has completed.
+
+
+
+
+Companion Object Properties
+
+
+
+
+logger
+
+val logger : <ERROR CLASS>
+
+
+
+
+
diff --git a/docs/build/html/api/core.utilities/-affinity-executor/-service-affinity-executor/is-on-thread.html b/docs/build/html/api/core.utilities/-affinity-executor/-service-affinity-executor/is-on-thread.html
new file mode 100644
index 0000000000..0513d3b4af
--- /dev/null
+++ b/docs/build/html/api/core.utilities/-affinity-executor/-service-affinity-executor/is-on-thread.html
@@ -0,0 +1,20 @@
+
+
+AffinityExecutor.ServiceAffinityExecutor.isOnThread -
+
+
+
+core.utilities / AffinityExecutor / ServiceAffinityExecutor / 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/core.utilities/-affinity-executor/-service-affinity-executor/logger.html b/docs/build/html/api/core.utilities/-affinity-executor/-service-affinity-executor/logger.html
new file mode 100644
index 0000000000..cb5083da7a
--- /dev/null
+++ b/docs/build/html/api/core.utilities/-affinity-executor/-service-affinity-executor/logger.html
@@ -0,0 +1,15 @@
+
+
+AffinityExecutor.ServiceAffinityExecutor.logger -
+
+
+
+core.utilities / AffinityExecutor / ServiceAffinityExecutor / logger
+
+logger
+
+val logger : <ERROR CLASS>
+
+
+
+
diff --git a/docs/build/html/api/core.utilities/-affinity-executor/-service-affinity-executor/threads.html b/docs/build/html/api/core.utilities/-affinity-executor/-service-affinity-executor/threads.html
new file mode 100644
index 0000000000..131f2831fb
--- /dev/null
+++ b/docs/build/html/api/core.utilities/-affinity-executor/-service-affinity-executor/threads.html
@@ -0,0 +1,15 @@
+
+
+AffinityExecutor.ServiceAffinityExecutor.threads -
+
+
+
+core.utilities / AffinityExecutor / ServiceAffinityExecutor / threads
+
+threads
+
+protected val threads : MutableSet < Thread >
+
+
+
+
diff --git a/docs/build/html/api/core.utilities/-affinity-executor/check-on-thread.html b/docs/build/html/api/core.utilities/-affinity-executor/check-on-thread.html
new file mode 100644
index 0000000000..3e741168f2
--- /dev/null
+++ b/docs/build/html/api/core.utilities/-affinity-executor/check-on-thread.html
@@ -0,0 +1,16 @@
+
+
+AffinityExecutor.checkOnThread -
+
+
+
+core.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/core.utilities/-affinity-executor/execute-a-s-a-p.html b/docs/build/html/api/core.utilities/-affinity-executor/execute-a-s-a-p.html
new file mode 100644
index 0000000000..ef2b92cc21
--- /dev/null
+++ b/docs/build/html/api/core.utilities/-affinity-executor/execute-a-s-a-p.html
@@ -0,0 +1,16 @@
+
+
+AffinityExecutor.executeASAP -
+
+
+
+core.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/core.utilities/-affinity-executor/fetch-from.html b/docs/build/html/api/core.utilities/-affinity-executor/fetch-from.html
new file mode 100644
index 0000000000..0d61bdcd88
--- /dev/null
+++ b/docs/build/html/api/core.utilities/-affinity-executor/fetch-from.html
@@ -0,0 +1,17 @@
+
+
+AffinityExecutor.fetchFrom -
+
+
+
+core.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/core.utilities/-affinity-executor/flush.html b/docs/build/html/api/core.utilities/-affinity-executor/flush.html
new file mode 100644
index 0000000000..585d8888de
--- /dev/null
+++ b/docs/build/html/api/core.utilities/-affinity-executor/flush.html
@@ -0,0 +1,17 @@
+
+
+AffinityExecutor.flush -
+
+
+
+core.utilities / AffinityExecutor / flush
+
+flush
+
+open fun flush ( ) : Unit
+Posts a no-op task to the executor and blocks this thread waiting for it to complete. This can be useful in
+tests when you want to be sure that a previous task submitted via execute has completed.
+
+
+
+
diff --git a/docs/build/html/api/core.utilities/-affinity-executor/index.html b/docs/build/html/api/core.utilities/-affinity-executor/index.html
new file mode 100644
index 0000000000..c911c81f1b
--- /dev/null
+++ b/docs/build/html/api/core.utilities/-affinity-executor/index.html
@@ -0,0 +1,116 @@
+
+
+AffinityExecutor -
+
+
+
+core.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
+
+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
+
+open fun flush ( ) : Unit
Posts a no-op task to the executor and blocks this thread waiting for it to complete. This can be useful in
+tests when you want to be sure that a previous task submitted via execute has completed.
+
+
+
+
+Companion Object Properties
+
+
+
+
+SAME_THREAD
+
+val SAME_THREAD : AffinityExecutor
+
+
+
+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
+
+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/core.utilities/-affinity-executor/is-on-thread.html b/docs/build/html/api/core.utilities/-affinity-executor/is-on-thread.html
new file mode 100644
index 0000000000..d8d7a70a7b
--- /dev/null
+++ b/docs/build/html/api/core.utilities/-affinity-executor/is-on-thread.html
@@ -0,0 +1,16 @@
+
+
+AffinityExecutor.isOnThread -
+
+
+
+core.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/core.utilities/-brief-log-formatter/-init-.html b/docs/build/html/api/core.utilities/-brief-log-formatter/-init-.html
new file mode 100644
index 0000000000..7c2e4e6af1
--- /dev/null
+++ b/docs/build/html/api/core.utilities/-brief-log-formatter/-init-.html
@@ -0,0 +1,15 @@
+
+
+BriefLogFormatter. -
+
+
+
+core.utilities / BriefLogFormatter / <init>
+
+<init>
+BriefLogFormatter ( )
+A Java logging formatter that writes more compact output than the default.
+
+
+
+
diff --git a/docs/build/html/api/core.utilities/-brief-log-formatter/format.html b/docs/build/html/api/core.utilities/-brief-log-formatter/format.html
new file mode 100644
index 0000000000..70d22f5c28
--- /dev/null
+++ b/docs/build/html/api/core.utilities/-brief-log-formatter/format.html
@@ -0,0 +1,15 @@
+
+
+BriefLogFormatter.format -
+
+
+
+core.utilities / BriefLogFormatter / format
+
+format
+
+fun format ( logRecord : LogRecord ) : String
+
+
+
+
diff --git a/docs/build/html/api/core.utilities/-brief-log-formatter/index.html b/docs/build/html/api/core.utilities/-brief-log-formatter/index.html
new file mode 100644
index 0000000000..5965fbf2dd
--- /dev/null
+++ b/docs/build/html/api/core.utilities/-brief-log-formatter/index.html
@@ -0,0 +1,73 @@
+
+
+BriefLogFormatter -
+
+
+
+core.utilities / BriefLogFormatter
+
+BriefLogFormatter
+class BriefLogFormatter : Formatter
+A Java logging formatter that writes more compact output than the default.
+
+
+Constructors
+
+
+
+
+<init>
+
+BriefLogFormatter ( )
A Java logging formatter that writes more compact output than the default.
+
+
+
+
+Functions
+
+Companion Object Functions
+
+
+
+
+init
+
+fun init ( ) : Unit
Configures JDK logging to use this class for everything.
+
+
+
+
+initVerbose
+
+fun initVerbose ( 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.
+
+
+
+
+loggingOff
+
+fun loggingOff ( vararg names : String ) : Unit
+fun loggingOff ( vararg classes : KClass < * > ) : Unit
+
+
+
+loggingOn
+
+fun loggingOn ( vararg names : String ) : Unit
+fun loggingOn ( vararg classes : KClass < * > ) : Unit
+
+
+
+
+
diff --git a/docs/build/html/api/core.utilities/-brief-log-formatter/init-verbose.html b/docs/build/html/api/core.utilities/-brief-log-formatter/init-verbose.html
new file mode 100644
index 0000000000..920c2e131d
--- /dev/null
+++ b/docs/build/html/api/core.utilities/-brief-log-formatter/init-verbose.html
@@ -0,0 +1,18 @@
+
+
+BriefLogFormatter.initVerbose -
+
+
+
+core.utilities / BriefLogFormatter / initVerbose
+
+initVerbose
+
+fun initVerbose ( 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.
+
+
+
+
diff --git a/docs/build/html/api/core.utilities/-brief-log-formatter/init.html b/docs/build/html/api/core.utilities/-brief-log-formatter/init.html
new file mode 100644
index 0000000000..53cb05f503
--- /dev/null
+++ b/docs/build/html/api/core.utilities/-brief-log-formatter/init.html
@@ -0,0 +1,16 @@
+
+
+BriefLogFormatter.init -
+
+
+
+core.utilities / BriefLogFormatter / init
+
+init
+
+fun init ( ) : Unit
+Configures JDK logging to use this class for everything.
+
+
+
+
diff --git a/docs/build/html/api/core.utilities/-brief-log-formatter/logging-off.html b/docs/build/html/api/core.utilities/-brief-log-formatter/logging-off.html
new file mode 100644
index 0000000000..7ad456b3d2
--- /dev/null
+++ b/docs/build/html/api/core.utilities/-brief-log-formatter/logging-off.html
@@ -0,0 +1,17 @@
+
+
+BriefLogFormatter.loggingOff -
+
+
+
+core.utilities / BriefLogFormatter / loggingOff
+
+loggingOff
+
+fun loggingOff ( vararg names : String ) : Unit
+
+fun loggingOff ( vararg classes : KClass < * > ) : Unit
+
+
+
+
diff --git a/docs/build/html/api/core.utilities/-brief-log-formatter/logging-on.html b/docs/build/html/api/core.utilities/-brief-log-formatter/logging-on.html
new file mode 100644
index 0000000000..3cbfedd011
--- /dev/null
+++ b/docs/build/html/api/core.utilities/-brief-log-formatter/logging-on.html
@@ -0,0 +1,17 @@
+
+
+BriefLogFormatter.loggingOn -
+
+
+
+core.utilities / BriefLogFormatter / loggingOn
+
+loggingOn
+
+fun loggingOn ( vararg names : String ) : Unit
+
+fun loggingOn ( vararg classes : KClass < * > ) : Unit
+
+
+
+
diff --git a/docs/build/html/api/core.utilities/-emoji/-c-o-d-e_-b-a-g_-o-f_-c-a-s-h.html b/docs/build/html/api/core.utilities/-emoji/-c-o-d-e_-b-a-g_-o-f_-c-a-s-h.html
new file mode 100644
index 0000000000..f56bc76eb5
--- /dev/null
+++ b/docs/build/html/api/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 -
+
+
+
+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/core.utilities/-emoji/-c-o-d-e_-d-i-a-m-o-n-d.html b/docs/build/html/api/core.utilities/-emoji/-c-o-d-e_-d-i-a-m-o-n-d.html
new file mode 100644
index 0000000000..a6e6697383
--- /dev/null
+++ b/docs/build/html/api/core.utilities/-emoji/-c-o-d-e_-d-i-a-m-o-n-d.html
@@ -0,0 +1,15 @@
+
+
+Emoji.CODE_DIAMOND -
+
+
+
+core.utilities / Emoji / CODE_DIAMOND
+
+CODE_DIAMOND
+
+const val CODE_DIAMOND : String
+
+
+
+
diff --git a/docs/build/html/api/core.utilities/-emoji/-c-o-d-e_-g-r-e-e-n_-t-i-c-k.html b/docs/build/html/api/core.utilities/-emoji/-c-o-d-e_-g-r-e-e-n_-t-i-c-k.html
new file mode 100644
index 0000000000..72624c3f88
--- /dev/null
+++ b/docs/build/html/api/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 -
+
+
+
+core.utilities / Emoji / CODE_GREEN_TICK
+
+CODE_GREEN_TICK
+
+const val CODE_GREEN_TICK : String
+
+
+
+
diff --git a/docs/build/html/api/core.utilities/-emoji/-c-o-d-e_-l-e-f-t_-a-r-r-o-w.html b/docs/build/html/api/core.utilities/-emoji/-c-o-d-e_-l-e-f-t_-a-r-r-o-w.html
new file mode 100644
index 0000000000..04abb44704
--- /dev/null
+++ b/docs/build/html/api/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 -
+
+
+
+core.utilities / Emoji / CODE_LEFT_ARROW
+
+CODE_LEFT_ARROW
+
+const val CODE_LEFT_ARROW : String
+
+
+
+
diff --git a/docs/build/html/api/core.utilities/-emoji/-c-o-d-e_-n-e-w-s-p-a-p-e-r.html b/docs/build/html/api/core.utilities/-emoji/-c-o-d-e_-n-e-w-s-p-a-p-e-r.html
new file mode 100644
index 0000000000..d856145fbe
--- /dev/null
+++ b/docs/build/html/api/core.utilities/-emoji/-c-o-d-e_-n-e-w-s-p-a-p-e-r.html
@@ -0,0 +1,15 @@
+
+
+Emoji.CODE_NEWSPAPER -
+
+
+
+core.utilities / Emoji / CODE_NEWSPAPER
+
+CODE_NEWSPAPER
+
+const val CODE_NEWSPAPER : String
+
+
+
+
diff --git a/docs/build/html/api/core.utilities/-emoji/-c-o-d-e_-p-a-p-e-r-c-l-i-p.html b/docs/build/html/api/core.utilities/-emoji/-c-o-d-e_-p-a-p-e-r-c-l-i-p.html
new file mode 100644
index 0000000000..210a7adc32
--- /dev/null
+++ b/docs/build/html/api/core.utilities/-emoji/-c-o-d-e_-p-a-p-e-r-c-l-i-p.html
@@ -0,0 +1,15 @@
+
+
+Emoji.CODE_PAPERCLIP -
+
+
+
+core.utilities / Emoji / CODE_PAPERCLIP
+
+CODE_PAPERCLIP
+
+const val CODE_PAPERCLIP : String
+
+
+
+
diff --git a/docs/build/html/api/core.utilities/-emoji/-c-o-d-e_-r-i-g-h-t_-a-r-r-o-w.html b/docs/build/html/api/core.utilities/-emoji/-c-o-d-e_-r-i-g-h-t_-a-r-r-o-w.html
new file mode 100644
index 0000000000..91fbe93d93
--- /dev/null
+++ b/docs/build/html/api/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 -
+
+
+
+core.utilities / Emoji / CODE_RIGHT_ARROW
+
+CODE_RIGHT_ARROW
+
+const val CODE_RIGHT_ARROW : String
+
+
+
+
diff --git a/docs/build/html/api/core.utilities/-emoji/bag-of-cash.html b/docs/build/html/api/core.utilities/-emoji/bag-of-cash.html
new file mode 100644
index 0000000000..23e6ae865b
--- /dev/null
+++ b/docs/build/html/api/core.utilities/-emoji/bag-of-cash.html
@@ -0,0 +1,15 @@
+
+
+Emoji.bagOfCash -
+
+
+
+core.utilities / Emoji / bagOfCash
+
+bagOfCash
+
+val bagOfCash : String
+
+
+
+
diff --git a/docs/build/html/api/core.utilities/-emoji/diamond.html b/docs/build/html/api/core.utilities/-emoji/diamond.html
new file mode 100644
index 0000000000..62caebb134
--- /dev/null
+++ b/docs/build/html/api/core.utilities/-emoji/diamond.html
@@ -0,0 +1,15 @@
+
+
+Emoji.diamond -
+
+
+
+core.utilities / Emoji / diamond
+
+diamond
+
+val diamond : String
+
+
+
+
diff --git a/docs/build/html/api/core.utilities/-emoji/has-emoji-terminal.html b/docs/build/html/api/core.utilities/-emoji/has-emoji-terminal.html
new file mode 100644
index 0000000000..1ca86c4faf
--- /dev/null
+++ b/docs/build/html/api/core.utilities/-emoji/has-emoji-terminal.html
@@ -0,0 +1,15 @@
+
+
+Emoji.hasEmojiTerminal -
+
+
+
+core.utilities / Emoji / hasEmojiTerminal
+
+hasEmojiTerminal
+
+val hasEmojiTerminal : <ERROR CLASS>
+
+
+
+
diff --git a/docs/build/html/api/core.utilities/-emoji/index.html b/docs/build/html/api/core.utilities/-emoji/index.html
new file mode 100644
index 0000000000..d5d41921a7
--- /dev/null
+++ b/docs/build/html/api/core.utilities/-emoji/index.html
@@ -0,0 +1,115 @@
+
+
+Emoji -
+
+
+
+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/core.utilities/-emoji/left-arrow.html b/docs/build/html/api/core.utilities/-emoji/left-arrow.html
new file mode 100644
index 0000000000..3cb0ac00af
--- /dev/null
+++ b/docs/build/html/api/core.utilities/-emoji/left-arrow.html
@@ -0,0 +1,15 @@
+
+
+Emoji.leftArrow -
+
+
+
+core.utilities / Emoji / leftArrow
+
+leftArrow
+
+val leftArrow : String
+
+
+
+
diff --git a/docs/build/html/api/core.utilities/-emoji/newspaper.html b/docs/build/html/api/core.utilities/-emoji/newspaper.html
new file mode 100644
index 0000000000..a5e1246f35
--- /dev/null
+++ b/docs/build/html/api/core.utilities/-emoji/newspaper.html
@@ -0,0 +1,15 @@
+
+
+Emoji.newspaper -
+
+
+
+core.utilities / Emoji / newspaper
+
+newspaper
+
+val newspaper : String
+
+
+
+
diff --git a/docs/build/html/api/core.utilities/-emoji/paperclip.html b/docs/build/html/api/core.utilities/-emoji/paperclip.html
new file mode 100644
index 0000000000..045814bffd
--- /dev/null
+++ b/docs/build/html/api/core.utilities/-emoji/paperclip.html
@@ -0,0 +1,15 @@
+
+
+Emoji.paperclip -
+
+
+
+core.utilities / Emoji / paperclip
+
+paperclip
+
+val paperclip : String
+
+
+
+
diff --git a/docs/build/html/api/core.utilities/-emoji/render-if-supported.html b/docs/build/html/api/core.utilities/-emoji/render-if-supported.html
new file mode 100644
index 0000000000..9243d5126c
--- /dev/null
+++ b/docs/build/html/api/core.utilities/-emoji/render-if-supported.html
@@ -0,0 +1,15 @@
+
+
+Emoji.renderIfSupported -
+
+
+
+core.utilities / Emoji / renderIfSupported
+
+renderIfSupported
+
+fun renderIfSupported ( obj : Any ) : String
+
+
+
+
diff --git a/docs/build/html/api/core.utilities/-emoji/right-arrow.html b/docs/build/html/api/core.utilities/-emoji/right-arrow.html
new file mode 100644
index 0000000000..bced5b19b5
--- /dev/null
+++ b/docs/build/html/api/core.utilities/-emoji/right-arrow.html
@@ -0,0 +1,15 @@
+
+
+Emoji.rightArrow -
+
+
+
+core.utilities / Emoji / rightArrow
+
+rightArrow
+
+val rightArrow : String
+
+
+
+
diff --git a/docs/build/html/api/core.utilities/-json-support/-calendar-deserializer/deserialize.html b/docs/build/html/api/core.utilities/-json-support/-calendar-deserializer/deserialize.html
new file mode 100644
index 0000000000..f84a775a8f
--- /dev/null
+++ b/docs/build/html/api/core.utilities/-json-support/-calendar-deserializer/deserialize.html
@@ -0,0 +1,15 @@
+
+
+JsonSupport.CalendarDeserializer.deserialize -
+
+
+
+core.utilities / JsonSupport / CalendarDeserializer / deserialize
+
+deserialize
+
+fun deserialize ( parser : <ERROR CLASS> , context : <ERROR CLASS> ) : BusinessCalendar
+
+
+
+
diff --git a/docs/build/html/api/core.utilities/-json-support/-calendar-deserializer/index.html b/docs/build/html/api/core.utilities/-json-support/-calendar-deserializer/index.html
new file mode 100644
index 0000000000..880e0eb658
--- /dev/null
+++ b/docs/build/html/api/core.utilities/-json-support/-calendar-deserializer/index.html
@@ -0,0 +1,25 @@
+
+
+JsonSupport.CalendarDeserializer -
+
+
+
+core.utilities / JsonSupport / CalendarDeserializer
+
+CalendarDeserializer
+object CalendarDeserializer
+
+
+Functions
+
+
+
diff --git a/docs/build/html/api/core.utilities/-json-support/-local-date-deserializer/deserialize.html b/docs/build/html/api/core.utilities/-json-support/-local-date-deserializer/deserialize.html
new file mode 100644
index 0000000000..d37c9d3fb2
--- /dev/null
+++ b/docs/build/html/api/core.utilities/-json-support/-local-date-deserializer/deserialize.html
@@ -0,0 +1,15 @@
+
+
+JsonSupport.LocalDateDeserializer.deserialize -
+
+
+
+core.utilities / JsonSupport / LocalDateDeserializer / deserialize
+
+deserialize
+
+fun deserialize ( parser : <ERROR CLASS> , context : <ERROR CLASS> ) : LocalDate
+
+
+
+
diff --git a/docs/build/html/api/core.utilities/-json-support/-local-date-deserializer/index.html b/docs/build/html/api/core.utilities/-json-support/-local-date-deserializer/index.html
new file mode 100644
index 0000000000..214de2e71f
--- /dev/null
+++ b/docs/build/html/api/core.utilities/-json-support/-local-date-deserializer/index.html
@@ -0,0 +1,25 @@
+
+
+JsonSupport.LocalDateDeserializer -
+
+
+
+core.utilities / JsonSupport / LocalDateDeserializer
+
+LocalDateDeserializer
+object LocalDateDeserializer
+
+
+Functions
+
+
+
+
+deserialize
+
+fun deserialize ( parser : <ERROR CLASS> , context : <ERROR CLASS> ) : LocalDate
+
+
+
+
+
diff --git a/docs/build/html/api/core.utilities/-json-support/-local-date-key-deserializer/deserialize-key.html b/docs/build/html/api/core.utilities/-json-support/-local-date-key-deserializer/deserialize-key.html
new file mode 100644
index 0000000000..e50468d71c
--- /dev/null
+++ b/docs/build/html/api/core.utilities/-json-support/-local-date-key-deserializer/deserialize-key.html
@@ -0,0 +1,15 @@
+
+
+JsonSupport.LocalDateKeyDeserializer.deserializeKey -
+
+
+
+core.utilities / JsonSupport / LocalDateKeyDeserializer / deserializeKey
+
+deserializeKey
+
+fun deserializeKey ( text : String , p1 : <ERROR CLASS> ) : Any ?
+
+
+
+
diff --git a/docs/build/html/api/core.utilities/-json-support/-local-date-key-deserializer/index.html b/docs/build/html/api/core.utilities/-json-support/-local-date-key-deserializer/index.html
new file mode 100644
index 0000000000..990c2b7c6e
--- /dev/null
+++ b/docs/build/html/api/core.utilities/-json-support/-local-date-key-deserializer/index.html
@@ -0,0 +1,25 @@
+
+
+JsonSupport.LocalDateKeyDeserializer -
+
+
+
+core.utilities / JsonSupport / LocalDateKeyDeserializer
+
+LocalDateKeyDeserializer
+object LocalDateKeyDeserializer
+
+
+Functions
+
+
+
+
+deserializeKey
+
+fun deserializeKey ( text : String , p1 : <ERROR CLASS> ) : Any ?
+
+
+
+
+
diff --git a/docs/build/html/api/core.utilities/-json-support/-party-deserializer/deserialize.html b/docs/build/html/api/core.utilities/-json-support/-party-deserializer/deserialize.html
new file mode 100644
index 0000000000..c68cf8b545
--- /dev/null
+++ b/docs/build/html/api/core.utilities/-json-support/-party-deserializer/deserialize.html
@@ -0,0 +1,15 @@
+
+
+JsonSupport.PartyDeserializer.deserialize -
+
+
+
+core.utilities / JsonSupport / PartyDeserializer / deserialize
+
+deserialize
+
+fun deserialize ( parser : <ERROR CLASS> , context : <ERROR CLASS> ) : Party
+
+
+
+
diff --git a/docs/build/html/api/core.utilities/-json-support/-party-deserializer/index.html b/docs/build/html/api/core.utilities/-json-support/-party-deserializer/index.html
new file mode 100644
index 0000000000..6da655e7d9
--- /dev/null
+++ b/docs/build/html/api/core.utilities/-json-support/-party-deserializer/index.html
@@ -0,0 +1,25 @@
+
+
+JsonSupport.PartyDeserializer -
+
+
+
+core.utilities / JsonSupport / PartyDeserializer
+
+PartyDeserializer
+object PartyDeserializer
+
+
+Functions
+
+
+
+
+deserialize
+
+fun deserialize ( parser : <ERROR CLASS> , context : <ERROR CLASS> ) : Party
+
+
+
+
+
diff --git a/docs/build/html/api/core.utilities/-json-support/-party-serializer/index.html b/docs/build/html/api/core.utilities/-json-support/-party-serializer/index.html
new file mode 100644
index 0000000000..c61545a84b
--- /dev/null
+++ b/docs/build/html/api/core.utilities/-json-support/-party-serializer/index.html
@@ -0,0 +1,25 @@
+
+
+JsonSupport.PartySerializer -
+
+
+
+core.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/core.utilities/-json-support/-party-serializer/serialize.html b/docs/build/html/api/core.utilities/-json-support/-party-serializer/serialize.html
new file mode 100644
index 0000000000..f90ee398bb
--- /dev/null
+++ b/docs/build/html/api/core.utilities/-json-support/-party-serializer/serialize.html
@@ -0,0 +1,15 @@
+
+
+JsonSupport.PartySerializer.serialize -
+
+
+
+core.utilities / JsonSupport / PartySerializer / serialize
+
+serialize
+
+fun serialize ( obj : Party , generator : <ERROR CLASS> , provider : <ERROR CLASS> ) : Unit
+
+
+
+
diff --git a/docs/build/html/api/core.utilities/-json-support/-secure-hash-deserializer/-init-.html b/docs/build/html/api/core.utilities/-json-support/-secure-hash-deserializer/-init-.html
new file mode 100644
index 0000000000..7d966009a5
--- /dev/null
+++ b/docs/build/html/api/core.utilities/-json-support/-secure-hash-deserializer/-init-.html
@@ -0,0 +1,15 @@
+
+
+JsonSupport.SecureHashDeserializer. -
+
+
+
+core.utilities / JsonSupport / SecureHashDeserializer / <init>
+
+<init>
+SecureHashDeserializer ( )
+Implemented as a class so that we can instantiate for T
+
+
+
+
diff --git a/docs/build/html/api/core.utilities/-json-support/-secure-hash-deserializer/deserialize.html b/docs/build/html/api/core.utilities/-json-support/-secure-hash-deserializer/deserialize.html
new file mode 100644
index 0000000000..30f8f963c6
--- /dev/null
+++ b/docs/build/html/api/core.utilities/-json-support/-secure-hash-deserializer/deserialize.html
@@ -0,0 +1,15 @@
+
+
+JsonSupport.SecureHashDeserializer.deserialize -
+
+
+
+core.utilities / JsonSupport / SecureHashDeserializer / deserialize
+
+deserialize
+
+fun deserialize ( parser : <ERROR CLASS> , context : <ERROR CLASS> ) : T
+
+
+
+
diff --git a/docs/build/html/api/core.utilities/-json-support/-secure-hash-deserializer/index.html b/docs/build/html/api/core.utilities/-json-support/-secure-hash-deserializer/index.html
new file mode 100644
index 0000000000..041a0f03b7
--- /dev/null
+++ b/docs/build/html/api/core.utilities/-json-support/-secure-hash-deserializer/index.html
@@ -0,0 +1,38 @@
+
+
+JsonSupport.SecureHashDeserializer -
+
+
+
+core.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/core.utilities/-json-support/-secure-hash-serializer/index.html b/docs/build/html/api/core.utilities/-json-support/-secure-hash-serializer/index.html
new file mode 100644
index 0000000000..2b33a2ba62
--- /dev/null
+++ b/docs/build/html/api/core.utilities/-json-support/-secure-hash-serializer/index.html
@@ -0,0 +1,25 @@
+
+
+JsonSupport.SecureHashSerializer -
+
+
+
+core.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/core.utilities/-json-support/-secure-hash-serializer/serialize.html b/docs/build/html/api/core.utilities/-json-support/-secure-hash-serializer/serialize.html
new file mode 100644
index 0000000000..1a05012083
--- /dev/null
+++ b/docs/build/html/api/core.utilities/-json-support/-secure-hash-serializer/serialize.html
@@ -0,0 +1,15 @@
+
+
+JsonSupport.SecureHashSerializer.serialize -
+
+
+
+core.utilities / JsonSupport / SecureHashSerializer / serialize
+
+serialize
+
+fun serialize ( obj : SecureHash , generator : <ERROR CLASS> , provider : <ERROR CLASS> ) : Unit
+
+
+
+
diff --git a/docs/build/html/api/core.utilities/-json-support/-service-hub-object-mapper/-init-.html b/docs/build/html/api/core.utilities/-json-support/-service-hub-object-mapper/-init-.html
new file mode 100644
index 0000000000..47967d5bbc
--- /dev/null
+++ b/docs/build/html/api/core.utilities/-json-support/-service-hub-object-mapper/-init-.html
@@ -0,0 +1,14 @@
+
+
+JsonSupport.ServiceHubObjectMapper. -
+
+
+
+core.utilities / JsonSupport / ServiceHubObjectMapper / <init>
+
+<init>
+ServiceHubObjectMapper ( identities : IdentityService )
+
+
+
+
diff --git a/docs/build/html/api/core.utilities/-json-support/-service-hub-object-mapper/identities.html b/docs/build/html/api/core.utilities/-json-support/-service-hub-object-mapper/identities.html
new file mode 100644
index 0000000000..f6d3707147
--- /dev/null
+++ b/docs/build/html/api/core.utilities/-json-support/-service-hub-object-mapper/identities.html
@@ -0,0 +1,15 @@
+
+
+JsonSupport.ServiceHubObjectMapper.identities -
+
+
+
+core.utilities / JsonSupport / ServiceHubObjectMapper / identities
+
+identities
+
+val identities : IdentityService
+
+
+
+
diff --git a/docs/build/html/api/core.utilities/-json-support/-service-hub-object-mapper/index.html b/docs/build/html/api/core.utilities/-json-support/-service-hub-object-mapper/index.html
new file mode 100644
index 0000000000..4dd6b5f75b
--- /dev/null
+++ b/docs/build/html/api/core.utilities/-json-support/-service-hub-object-mapper/index.html
@@ -0,0 +1,36 @@
+
+
+JsonSupport.ServiceHubObjectMapper -
+
+
+
+core.utilities / JsonSupport / ServiceHubObjectMapper
+
+ServiceHubObjectMapper
+class ServiceHubObjectMapper
+
+
+Constructors
+
+Properties
+
+
+
diff --git a/docs/build/html/api/core.utilities/-json-support/-to-string-serializer/index.html b/docs/build/html/api/core.utilities/-json-support/-to-string-serializer/index.html
new file mode 100644
index 0000000000..de4d71944a
--- /dev/null
+++ b/docs/build/html/api/core.utilities/-json-support/-to-string-serializer/index.html
@@ -0,0 +1,25 @@
+
+
+JsonSupport.ToStringSerializer -
+
+
+
+core.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/core.utilities/-json-support/-to-string-serializer/serialize.html b/docs/build/html/api/core.utilities/-json-support/-to-string-serializer/serialize.html
new file mode 100644
index 0000000000..f922a020db
--- /dev/null
+++ b/docs/build/html/api/core.utilities/-json-support/-to-string-serializer/serialize.html
@@ -0,0 +1,15 @@
+
+
+JsonSupport.ToStringSerializer.serialize -
+
+
+
+core.utilities / JsonSupport / ToStringSerializer / serialize
+
+serialize
+
+fun serialize ( obj : Any , generator : <ERROR CLASS> , provider : <ERROR CLASS> ) : Unit
+
+
+
+
diff --git a/docs/build/html/api/core.utilities/-json-support/create-default-mapper.html b/docs/build/html/api/core.utilities/-json-support/create-default-mapper.html
new file mode 100644
index 0000000000..41df616812
--- /dev/null
+++ b/docs/build/html/api/core.utilities/-json-support/create-default-mapper.html
@@ -0,0 +1,15 @@
+
+
+JsonSupport.createDefaultMapper -
+
+
+
+core.utilities / JsonSupport / createDefaultMapper
+
+createDefaultMapper
+
+fun createDefaultMapper ( identities : IdentityService ) : <ERROR CLASS>
+
+
+
+
diff --git a/docs/build/html/api/core.utilities/-json-support/index.html b/docs/build/html/api/core.utilities/-json-support/index.html
new file mode 100644
index 0000000000..817c73cf9e
--- /dev/null
+++ b/docs/build/html/api/core.utilities/-json-support/index.html
@@ -0,0 +1,87 @@
+
+
+JsonSupport -
+
+
+
+core.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/core.utilities/-progress-tracker/-change/-position/-init-.html b/docs/build/html/api/core.utilities/-progress-tracker/-change/-position/-init-.html
new file mode 100644
index 0000000000..d27ac99cd8
--- /dev/null
+++ b/docs/build/html/api/core.utilities/-progress-tracker/-change/-position/-init-.html
@@ -0,0 +1,14 @@
+
+
+ProgressTracker.Change.Position. -
+
+
+
+core.utilities / ProgressTracker / Change / Position / <init>
+
+<init>
+Position ( tracker : ProgressTracker , newStep : Step )
+
+
+
+
diff --git a/docs/build/html/api/core.utilities/-progress-tracker/-change/-position/index.html b/docs/build/html/api/core.utilities/-progress-tracker/-change/-position/index.html
new file mode 100644
index 0000000000..f3a0354e37
--- /dev/null
+++ b/docs/build/html/api/core.utilities/-progress-tracker/-change/-position/index.html
@@ -0,0 +1,53 @@
+
+
+ProgressTracker.Change.Position -
+
+
+
+core.utilities / ProgressTracker / Change / Position
+
+Position
+class Position : Change
+
+
+Constructors
+
+Properties
+
+Functions
+
+
+
+
+toString
+
+fun toString ( ) : String
+
+
+
+
+
diff --git a/docs/build/html/api/core.utilities/-progress-tracker/-change/-position/new-step.html b/docs/build/html/api/core.utilities/-progress-tracker/-change/-position/new-step.html
new file mode 100644
index 0000000000..7b00c5d886
--- /dev/null
+++ b/docs/build/html/api/core.utilities/-progress-tracker/-change/-position/new-step.html
@@ -0,0 +1,15 @@
+
+
+ProgressTracker.Change.Position.newStep -
+
+
+
+core.utilities / ProgressTracker / Change / Position / newStep
+
+newStep
+
+val newStep : Step
+
+
+
+
diff --git a/docs/build/html/api/core.utilities/-progress-tracker/-change/-position/to-string.html b/docs/build/html/api/core.utilities/-progress-tracker/-change/-position/to-string.html
new file mode 100644
index 0000000000..a4efe2475c
--- /dev/null
+++ b/docs/build/html/api/core.utilities/-progress-tracker/-change/-position/to-string.html
@@ -0,0 +1,15 @@
+
+
+ProgressTracker.Change.Position.toString -
+
+
+
+core.utilities / ProgressTracker / Change / Position / toString
+
+toString
+
+fun toString ( ) : String
+
+
+
+
diff --git a/docs/build/html/api/core.utilities/-progress-tracker/-change/-position/tracker.html b/docs/build/html/api/core.utilities/-progress-tracker/-change/-position/tracker.html
new file mode 100644
index 0000000000..7b4d1d63be
--- /dev/null
+++ b/docs/build/html/api/core.utilities/-progress-tracker/-change/-position/tracker.html
@@ -0,0 +1,15 @@
+
+
+ProgressTracker.Change.Position.tracker -
+
+
+
+core.utilities / ProgressTracker / Change / Position / tracker
+
+tracker
+
+val tracker : ProgressTracker
+
+
+
+
diff --git a/docs/build/html/api/core.utilities/-progress-tracker/-change/-rendering/-init-.html b/docs/build/html/api/core.utilities/-progress-tracker/-change/-rendering/-init-.html
new file mode 100644
index 0000000000..29b25478d7
--- /dev/null
+++ b/docs/build/html/api/core.utilities/-progress-tracker/-change/-rendering/-init-.html
@@ -0,0 +1,14 @@
+
+
+ProgressTracker.Change.Rendering. -
+
+
+
+core.utilities / ProgressTracker / Change / Rendering / <init>
+
+<init>
+Rendering ( tracker : ProgressTracker , ofStep : Step )
+
+
+
+
diff --git a/docs/build/html/api/core.utilities/-progress-tracker/-change/-rendering/index.html b/docs/build/html/api/core.utilities/-progress-tracker/-change/-rendering/index.html
new file mode 100644
index 0000000000..e42954df47
--- /dev/null
+++ b/docs/build/html/api/core.utilities/-progress-tracker/-change/-rendering/index.html
@@ -0,0 +1,53 @@
+
+
+ProgressTracker.Change.Rendering -
+
+
+
+core.utilities / ProgressTracker / Change / Rendering
+
+Rendering
+class Rendering : Change
+
+
+Constructors
+
+Properties
+
+Functions
+
+
+
+
+toString
+
+fun toString ( ) : String
+
+
+
+
+
diff --git a/docs/build/html/api/core.utilities/-progress-tracker/-change/-rendering/of-step.html b/docs/build/html/api/core.utilities/-progress-tracker/-change/-rendering/of-step.html
new file mode 100644
index 0000000000..13ef31091d
--- /dev/null
+++ b/docs/build/html/api/core.utilities/-progress-tracker/-change/-rendering/of-step.html
@@ -0,0 +1,15 @@
+
+
+ProgressTracker.Change.Rendering.ofStep -
+
+
+
+core.utilities / ProgressTracker / Change / Rendering / ofStep
+
+ofStep
+
+val ofStep : Step
+
+
+
+
diff --git a/docs/build/html/api/core.utilities/-progress-tracker/-change/-rendering/to-string.html b/docs/build/html/api/core.utilities/-progress-tracker/-change/-rendering/to-string.html
new file mode 100644
index 0000000000..a27082bc4c
--- /dev/null
+++ b/docs/build/html/api/core.utilities/-progress-tracker/-change/-rendering/to-string.html
@@ -0,0 +1,15 @@
+
+
+ProgressTracker.Change.Rendering.toString -
+
+
+
+core.utilities / ProgressTracker / Change / Rendering / toString
+
+toString
+
+fun toString ( ) : String
+
+
+
+
diff --git a/docs/build/html/api/core.utilities/-progress-tracker/-change/-rendering/tracker.html b/docs/build/html/api/core.utilities/-progress-tracker/-change/-rendering/tracker.html
new file mode 100644
index 0000000000..b99e46ee27
--- /dev/null
+++ b/docs/build/html/api/core.utilities/-progress-tracker/-change/-rendering/tracker.html
@@ -0,0 +1,15 @@
+
+
+ProgressTracker.Change.Rendering.tracker -
+
+
+
+core.utilities / ProgressTracker / Change / Rendering / tracker
+
+tracker
+
+val tracker : ProgressTracker
+
+
+
+
diff --git a/docs/build/html/api/core.utilities/-progress-tracker/-change/-structural/-init-.html b/docs/build/html/api/core.utilities/-progress-tracker/-change/-structural/-init-.html
new file mode 100644
index 0000000000..d6eeb1bacb
--- /dev/null
+++ b/docs/build/html/api/core.utilities/-progress-tracker/-change/-structural/-init-.html
@@ -0,0 +1,14 @@
+
+
+ProgressTracker.Change.Structural. -
+
+
+
+core.utilities / ProgressTracker / Change / Structural / <init>
+
+<init>
+Structural ( tracker : ProgressTracker , parent : Step )
+
+
+
+
diff --git a/docs/build/html/api/core.utilities/-progress-tracker/-change/-structural/index.html b/docs/build/html/api/core.utilities/-progress-tracker/-change/-structural/index.html
new file mode 100644
index 0000000000..1cac84480c
--- /dev/null
+++ b/docs/build/html/api/core.utilities/-progress-tracker/-change/-structural/index.html
@@ -0,0 +1,53 @@
+
+
+ProgressTracker.Change.Structural -
+
+
+
+core.utilities / ProgressTracker / Change / Structural
+
+Structural
+class Structural : Change
+
+
+Constructors
+
+Properties
+
+Functions
+
+
+
+
+toString
+
+fun toString ( ) : String
+
+
+
+
+
diff --git a/docs/build/html/api/core.utilities/-progress-tracker/-change/-structural/parent.html b/docs/build/html/api/core.utilities/-progress-tracker/-change/-structural/parent.html
new file mode 100644
index 0000000000..f3cad7fa8e
--- /dev/null
+++ b/docs/build/html/api/core.utilities/-progress-tracker/-change/-structural/parent.html
@@ -0,0 +1,15 @@
+
+
+ProgressTracker.Change.Structural.parent -
+
+
+
+core.utilities / ProgressTracker / Change / Structural / parent
+
+parent
+
+val parent : Step
+
+
+
+
diff --git a/docs/build/html/api/core.utilities/-progress-tracker/-change/-structural/to-string.html b/docs/build/html/api/core.utilities/-progress-tracker/-change/-structural/to-string.html
new file mode 100644
index 0000000000..6c35fc13d8
--- /dev/null
+++ b/docs/build/html/api/core.utilities/-progress-tracker/-change/-structural/to-string.html
@@ -0,0 +1,15 @@
+
+
+ProgressTracker.Change.Structural.toString -
+
+
+
+core.utilities / ProgressTracker / Change / Structural / toString
+
+toString
+
+fun toString ( ) : String
+
+
+
+
diff --git a/docs/build/html/api/core.utilities/-progress-tracker/-change/-structural/tracker.html b/docs/build/html/api/core.utilities/-progress-tracker/-change/-structural/tracker.html
new file mode 100644
index 0000000000..2f7495ff47
--- /dev/null
+++ b/docs/build/html/api/core.utilities/-progress-tracker/-change/-structural/tracker.html
@@ -0,0 +1,15 @@
+
+
+ProgressTracker.Change.Structural.tracker -
+
+
+
+core.utilities / ProgressTracker / Change / Structural / tracker
+
+tracker
+
+val tracker : ProgressTracker
+
+
+
+
diff --git a/docs/build/html/api/core.utilities/-progress-tracker/-change/index.html b/docs/build/html/api/core.utilities/-progress-tracker/-change/index.html
new file mode 100644
index 0000000000..5367e4e52d
--- /dev/null
+++ b/docs/build/html/api/core.utilities/-progress-tracker/-change/index.html
@@ -0,0 +1,60 @@
+
+
+ProgressTracker.Change -
+
+
+
+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/core.utilities/-progress-tracker/-d-o-n-e/equals.html b/docs/build/html/api/core.utilities/-progress-tracker/-d-o-n-e/equals.html
new file mode 100644
index 0000000000..e7f798c1e2
--- /dev/null
+++ b/docs/build/html/api/core.utilities/-progress-tracker/-d-o-n-e/equals.html
@@ -0,0 +1,15 @@
+
+
+ProgressTracker.DONE.equals -
+
+
+
+core.utilities / ProgressTracker / DONE / equals
+
+equals
+
+fun equals ( other : Any ? ) : Boolean
+
+
+
+
diff --git a/docs/build/html/api/core.utilities/-progress-tracker/-d-o-n-e/index.html b/docs/build/html/api/core.utilities/-progress-tracker/-d-o-n-e/index.html
new file mode 100644
index 0000000000..d5c2f0f7b0
--- /dev/null
+++ b/docs/build/html/api/core.utilities/-progress-tracker/-d-o-n-e/index.html
@@ -0,0 +1,42 @@
+
+
+ProgressTracker.DONE -
+
+
+
+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
+
+
+
+
+
diff --git a/docs/build/html/api/core.utilities/-progress-tracker/-init-.html b/docs/build/html/api/core.utilities/-progress-tracker/-init-.html
new file mode 100644
index 0000000000..e369c39d71
--- /dev/null
+++ b/docs/build/html/api/core.utilities/-progress-tracker/-init-.html
@@ -0,0 +1,32 @@
+
+
+ProgressTracker. -
+
+
+
+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/core.utilities/-progress-tracker/-relabelable-step/-init-.html b/docs/build/html/api/core.utilities/-progress-tracker/-relabelable-step/-init-.html
new file mode 100644
index 0000000000..1e4056bc53
--- /dev/null
+++ b/docs/build/html/api/core.utilities/-progress-tracker/-relabelable-step/-init-.html
@@ -0,0 +1,15 @@
+
+
+ProgressTracker.RelabelableStep. -
+
+
+
+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/core.utilities/-progress-tracker/-relabelable-step/changes.html b/docs/build/html/api/core.utilities/-progress-tracker/-relabelable-step/changes.html
new file mode 100644
index 0000000000..39cbec6403
--- /dev/null
+++ b/docs/build/html/api/core.utilities/-progress-tracker/-relabelable-step/changes.html
@@ -0,0 +1,16 @@
+
+
+ProgressTracker.RelabelableStep.changes -
+
+
+
+core.utilities / ProgressTracker / RelabelableStep / changes
+
+changes
+
+open val changes : <ERROR CLASS>
+Overrides Step.changes
+
+
+
+
diff --git a/docs/build/html/api/core.utilities/-progress-tracker/-relabelable-step/current-label.html b/docs/build/html/api/core.utilities/-progress-tracker/-relabelable-step/current-label.html
new file mode 100644
index 0000000000..9eb9b4b51d
--- /dev/null
+++ b/docs/build/html/api/core.utilities/-progress-tracker/-relabelable-step/current-label.html
@@ -0,0 +1,15 @@
+
+
+ProgressTracker.RelabelableStep.currentLabel -
+
+
+
+core.utilities / ProgressTracker / RelabelableStep / currentLabel
+
+currentLabel
+
+var currentLabel : String
+
+
+
+
diff --git a/docs/build/html/api/core.utilities/-progress-tracker/-relabelable-step/index.html b/docs/build/html/api/core.utilities/-progress-tracker/-relabelable-step/index.html
new file mode 100644
index 0000000000..55dee917fd
--- /dev/null
+++ b/docs/build/html/api/core.utilities/-progress-tracker/-relabelable-step/index.html
@@ -0,0 +1,50 @@
+
+
+ProgressTracker.RelabelableStep -
+
+
+
+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
+
+
+
+
+
diff --git a/docs/build/html/api/core.utilities/-progress-tracker/-relabelable-step/label.html b/docs/build/html/api/core.utilities/-progress-tracker/-relabelable-step/label.html
new file mode 100644
index 0000000000..4d497ea609
--- /dev/null
+++ b/docs/build/html/api/core.utilities/-progress-tracker/-relabelable-step/label.html
@@ -0,0 +1,16 @@
+
+
+ProgressTracker.RelabelableStep.label -
+
+
+
+core.utilities / ProgressTracker / RelabelableStep / label
+
+label
+
+open val label : String
+Overrides Step.label
+
+
+
+
diff --git a/docs/build/html/api/core.utilities/-progress-tracker/-step/-init-.html b/docs/build/html/api/core.utilities/-progress-tracker/-step/-init-.html
new file mode 100644
index 0000000000..dc7052ff8c
--- /dev/null
+++ b/docs/build/html/api/core.utilities/-progress-tracker/-step/-init-.html
@@ -0,0 +1,15 @@
+
+
+ProgressTracker.Step. -
+
+
+
+core.utilities / ProgressTracker / Step / <init>
+
+<init>
+Step ( label : String )
+The superclass of all step objects.
+
+
+
+
diff --git a/docs/build/html/api/core.utilities/-progress-tracker/-step/changes.html b/docs/build/html/api/core.utilities/-progress-tracker/-step/changes.html
new file mode 100644
index 0000000000..b0041ee03d
--- /dev/null
+++ b/docs/build/html/api/core.utilities/-progress-tracker/-step/changes.html
@@ -0,0 +1,15 @@
+
+
+ProgressTracker.Step.changes -
+
+
+
+core.utilities / ProgressTracker / Step / changes
+
+changes
+
+open val changes : <ERROR CLASS> < Change >
+
+
+
+
diff --git a/docs/build/html/api/core.utilities/-progress-tracker/-step/index.html b/docs/build/html/api/core.utilities/-progress-tracker/-step/index.html
new file mode 100644
index 0000000000..bc7af9804f
--- /dev/null
+++ b/docs/build/html/api/core.utilities/-progress-tracker/-step/index.html
@@ -0,0 +1,320 @@
+
+
+ProgressTracker.Step -
+
+
+
+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
+
+
+
+Inheritors
+
+
+
diff --git a/docs/build/html/api/core.utilities/-progress-tracker/-step/label.html b/docs/build/html/api/core.utilities/-progress-tracker/-step/label.html
new file mode 100644
index 0000000000..5d74fe0889
--- /dev/null
+++ b/docs/build/html/api/core.utilities/-progress-tracker/-step/label.html
@@ -0,0 +1,15 @@
+
+
+ProgressTracker.Step.label -
+
+
+
+core.utilities / ProgressTracker / Step / label
+
+label
+
+open val label : String
+
+
+
+
diff --git a/docs/build/html/api/core.utilities/-progress-tracker/-u-n-s-t-a-r-t-e-d/equals.html b/docs/build/html/api/core.utilities/-progress-tracker/-u-n-s-t-a-r-t-e-d/equals.html
new file mode 100644
index 0000000000..a9d6deb366
--- /dev/null
+++ b/docs/build/html/api/core.utilities/-progress-tracker/-u-n-s-t-a-r-t-e-d/equals.html
@@ -0,0 +1,15 @@
+
+
+ProgressTracker.UNSTARTED.equals -
+
+
+
+core.utilities / ProgressTracker / UNSTARTED / equals
+
+equals
+
+fun equals ( other : Any ? ) : Boolean
+
+
+
+
diff --git a/docs/build/html/api/core.utilities/-progress-tracker/-u-n-s-t-a-r-t-e-d/index.html b/docs/build/html/api/core.utilities/-progress-tracker/-u-n-s-t-a-r-t-e-d/index.html
new file mode 100644
index 0000000000..0f585a7cb8
--- /dev/null
+++ b/docs/build/html/api/core.utilities/-progress-tracker/-u-n-s-t-a-r-t-e-d/index.html
@@ -0,0 +1,42 @@
+
+
+ProgressTracker.UNSTARTED -
+
+
+
+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
+
+
+
+
+
diff --git a/docs/build/html/api/core.utilities/-progress-tracker/all-steps.html b/docs/build/html/api/core.utilities/-progress-tracker/all-steps.html
new file mode 100644
index 0000000000..20fa748bfb
--- /dev/null
+++ b/docs/build/html/api/core.utilities/-progress-tracker/all-steps.html
@@ -0,0 +1,17 @@
+
+
+ProgressTracker.allSteps -
+
+
+
+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/core.utilities/-progress-tracker/changes.html b/docs/build/html/api/core.utilities/-progress-tracker/changes.html
new file mode 100644
index 0000000000..659242afd8
--- /dev/null
+++ b/docs/build/html/api/core.utilities/-progress-tracker/changes.html
@@ -0,0 +1,17 @@
+
+
+ProgressTracker.changes -
+
+
+
+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/core.utilities/-progress-tracker/children-for.html b/docs/build/html/api/core.utilities/-progress-tracker/children-for.html
new file mode 100644
index 0000000000..6f924d9a9f
--- /dev/null
+++ b/docs/build/html/api/core.utilities/-progress-tracker/children-for.html
@@ -0,0 +1,17 @@
+
+
+ProgressTracker.childrenFor -
+
+
+
+core.utilities / ProgressTracker / childrenFor
+
+childrenFor
+
+var childrenFor : HashMap < Step , ProgressTracker >
+Writable map that lets you insert child ProgressTracker s for particular steps. Its OK to edit this even
+after a progress tracker has been started.
+
+
+
+
diff --git a/docs/build/html/api/core.utilities/-progress-tracker/current-step-recursive.html b/docs/build/html/api/core.utilities/-progress-tracker/current-step-recursive.html
new file mode 100644
index 0000000000..1dd821beca
--- /dev/null
+++ b/docs/build/html/api/core.utilities/-progress-tracker/current-step-recursive.html
@@ -0,0 +1,16 @@
+
+
+ProgressTracker.currentStepRecursive -
+
+
+
+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/core.utilities/-progress-tracker/current-step.html b/docs/build/html/api/core.utilities/-progress-tracker/current-step.html
new file mode 100644
index 0000000000..0676229240
--- /dev/null
+++ b/docs/build/html/api/core.utilities/-progress-tracker/current-step.html
@@ -0,0 +1,17 @@
+
+
+ProgressTracker.currentStep -
+
+
+
+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/core.utilities/-progress-tracker/index.html b/docs/build/html/api/core.utilities/-progress-tracker/index.html
new file mode 100644
index 0000000000..2a0101a831
--- /dev/null
+++ b/docs/build/html/api/core.utilities/-progress-tracker/index.html
@@ -0,0 +1,168 @@
+
+
+ProgressTracker -
+
+
+
+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).
+
+
+
+
+childrenFor
+
+var childrenFor : HashMap < Step , ProgressTracker >
Writable map that lets you insert child ProgressTrackers for particular steps. Its OK to edit this even
+after a progress tracker has been started.
+
+
+
+
+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
Walks up the tree to find the top level tracker. If this is the top level tracker, returns this
+
+
+
+
+Functions
+
+
+
+
+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/core.utilities/-progress-tracker/next-step.html b/docs/build/html/api/core.utilities/-progress-tracker/next-step.html
new file mode 100644
index 0000000000..986e9481c6
--- /dev/null
+++ b/docs/build/html/api/core.utilities/-progress-tracker/next-step.html
@@ -0,0 +1,17 @@
+
+
+ProgressTracker.nextStep -
+
+
+
+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/core.utilities/-progress-tracker/parent.html b/docs/build/html/api/core.utilities/-progress-tracker/parent.html
new file mode 100644
index 0000000000..c6d60ec0c5
--- /dev/null
+++ b/docs/build/html/api/core.utilities/-progress-tracker/parent.html
@@ -0,0 +1,16 @@
+
+
+ProgressTracker.parent -
+
+
+
+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/core.utilities/-progress-tracker/step-index.html b/docs/build/html/api/core.utilities/-progress-tracker/step-index.html
new file mode 100644
index 0000000000..70277cc814
--- /dev/null
+++ b/docs/build/html/api/core.utilities/-progress-tracker/step-index.html
@@ -0,0 +1,16 @@
+
+
+ProgressTracker.stepIndex -
+
+
+
+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/core.utilities/-progress-tracker/steps.html b/docs/build/html/api/core.utilities/-progress-tracker/steps.html
new file mode 100644
index 0000000000..8658aadb7f
--- /dev/null
+++ b/docs/build/html/api/core.utilities/-progress-tracker/steps.html
@@ -0,0 +1,16 @@
+
+
+ProgressTracker.steps -
+
+
+
+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/core.utilities/-progress-tracker/top-level-tracker.html b/docs/build/html/api/core.utilities/-progress-tracker/top-level-tracker.html
new file mode 100644
index 0000000000..3f21fe933c
--- /dev/null
+++ b/docs/build/html/api/core.utilities/-progress-tracker/top-level-tracker.html
@@ -0,0 +1,16 @@
+
+
+ProgressTracker.topLevelTracker -
+
+
+
+core.utilities / ProgressTracker / topLevelTracker
+
+topLevelTracker
+
+val topLevelTracker : ProgressTracker
+Walks up the tree to find the top level tracker. If this is the top level tracker, returns this
+
+
+
+
diff --git a/docs/build/html/api/core.utilities/-recording-map/-get/-init-.html b/docs/build/html/api/core.utilities/-recording-map/-get/-init-.html
new file mode 100644
index 0000000000..5628f40dd0
--- /dev/null
+++ b/docs/build/html/api/core.utilities/-recording-map/-get/-init-.html
@@ -0,0 +1,14 @@
+
+
+RecordingMap.Get. -
+
+
+
+core.utilities / RecordingMap / Get / <init>
+
+<init>
+Get ( key : K )
+
+
+
+
diff --git a/docs/build/html/api/core.utilities/-recording-map/-get/index.html b/docs/build/html/api/core.utilities/-recording-map/-get/index.html
new file mode 100644
index 0000000000..3da97739d3
--- /dev/null
+++ b/docs/build/html/api/core.utilities/-recording-map/-get/index.html
@@ -0,0 +1,36 @@
+
+
+RecordingMap.Get -
+
+
+
+core.utilities / RecordingMap / Get
+
+Get
+data class Get < K > : Record
+
+
+Constructors
+
+
+
+
+<init>
+
+Get ( key : K )
+
+
+
+Properties
+
+
+
+
+key
+
+val key : K
+
+
+
+
+
diff --git a/docs/build/html/api/core.utilities/-recording-map/-get/key.html b/docs/build/html/api/core.utilities/-recording-map/-get/key.html
new file mode 100644
index 0000000000..2258527a9f
--- /dev/null
+++ b/docs/build/html/api/core.utilities/-recording-map/-get/key.html
@@ -0,0 +1,15 @@
+
+
+RecordingMap.Get.key -
+
+
+
+core.utilities / RecordingMap / Get / key
+
+key
+
+val key : K
+
+
+
+
diff --git a/docs/build/html/api/core.utilities/-recording-map/-init-.html b/docs/build/html/api/core.utilities/-recording-map/-init-.html
new file mode 100644
index 0000000000..15957c4314
--- /dev/null
+++ b/docs/build/html/api/core.utilities/-recording-map/-init-.html
@@ -0,0 +1,19 @@
+
+
+RecordingMap. -
+
+
+
+core.utilities / RecordingMap / <init>
+
+<init>
+RecordingMap ( wrappedMap : MutableMap < K , V > , logger : <ERROR CLASS> = loggerFor<RecordingMap<K, V>>())
+A RecordingMap wraps a regular Map<K, V> and records the sequence of gets and puts to it. This is useful in
+white box unit tests to ensure that code is accessing a data store as much as you expect.
+Note: although this class itself thread safe, if the underlying map is not, then this class loses its thread safety.
+
+
+
+
+
+
diff --git a/docs/build/html/api/core.utilities/-recording-map/-put/-init-.html b/docs/build/html/api/core.utilities/-recording-map/-put/-init-.html
new file mode 100644
index 0000000000..eb68644f4b
--- /dev/null
+++ b/docs/build/html/api/core.utilities/-recording-map/-put/-init-.html
@@ -0,0 +1,14 @@
+
+
+RecordingMap.Put. -
+
+
+
+core.utilities / RecordingMap / Put / <init>
+
+<init>
+Put ( key : K , value : V )
+
+
+
+
diff --git a/docs/build/html/api/core.utilities/-recording-map/-put/index.html b/docs/build/html/api/core.utilities/-recording-map/-put/index.html
new file mode 100644
index 0000000000..647a25b641
--- /dev/null
+++ b/docs/build/html/api/core.utilities/-recording-map/-put/index.html
@@ -0,0 +1,42 @@
+
+
+RecordingMap.Put -
+
+
+
+core.utilities / RecordingMap / Put
+
+Put
+data class Put < K , V > : Record
+
+
+Constructors
+
+
+
+
+<init>
+
+Put ( key : K , value : V )
+
+
+
+Properties
+
+
+
+
+key
+
+val key : K
+
+
+
+value
+
+val value : V
+
+
+
+
+
diff --git a/docs/build/html/api/core.utilities/-recording-map/-put/key.html b/docs/build/html/api/core.utilities/-recording-map/-put/key.html
new file mode 100644
index 0000000000..7681d678d6
--- /dev/null
+++ b/docs/build/html/api/core.utilities/-recording-map/-put/key.html
@@ -0,0 +1,15 @@
+
+
+RecordingMap.Put.key -
+
+
+
+core.utilities / RecordingMap / Put / key
+
+key
+
+val key : K
+
+
+
+
diff --git a/docs/build/html/api/core.utilities/-recording-map/-put/value.html b/docs/build/html/api/core.utilities/-recording-map/-put/value.html
new file mode 100644
index 0000000000..41179571ce
--- /dev/null
+++ b/docs/build/html/api/core.utilities/-recording-map/-put/value.html
@@ -0,0 +1,15 @@
+
+
+RecordingMap.Put.value -
+
+
+
+core.utilities / RecordingMap / Put / value
+
+value
+
+val value : V
+
+
+
+
diff --git a/docs/build/html/api/core.utilities/-recording-map/-record.html b/docs/build/html/api/core.utilities/-recording-map/-record.html
new file mode 100644
index 0000000000..71989e9691
--- /dev/null
+++ b/docs/build/html/api/core.utilities/-recording-map/-record.html
@@ -0,0 +1,31 @@
+
+
+RecordingMap.Record -
+
+
+
+core.utilities / RecordingMap / Record
+
+Record
+interface Record
+
+
+Inheritors
+
+
+
+
+Get
+
+data class Get < K > : Record
+
+
+
+Put
+
+data class Put < K , V > : Record
+
+
+
+
+
diff --git a/docs/build/html/api/core.utilities/-recording-map/clear-records.html b/docs/build/html/api/core.utilities/-recording-map/clear-records.html
new file mode 100644
index 0000000000..0df3fef3bb
--- /dev/null
+++ b/docs/build/html/api/core.utilities/-recording-map/clear-records.html
@@ -0,0 +1,15 @@
+
+
+RecordingMap.clearRecords -
+
+
+
+core.utilities / RecordingMap / clearRecords
+
+clearRecords
+
+fun clearRecords ( ) : Unit
+
+
+
+
diff --git a/docs/build/html/api/core.utilities/-recording-map/get.html b/docs/build/html/api/core.utilities/-recording-map/get.html
new file mode 100644
index 0000000000..b3dd0d1755
--- /dev/null
+++ b/docs/build/html/api/core.utilities/-recording-map/get.html
@@ -0,0 +1,15 @@
+
+
+RecordingMap.get -
+
+
+
+core.utilities / RecordingMap / get
+
+get
+
+fun get ( key : K ) : V ?
+
+
+
+
diff --git a/docs/build/html/api/core.utilities/-recording-map/index.html b/docs/build/html/api/core.utilities/-recording-map/index.html
new file mode 100644
index 0000000000..ded4b44c74
--- /dev/null
+++ b/docs/build/html/api/core.utilities/-recording-map/index.html
@@ -0,0 +1,102 @@
+
+
+RecordingMap -
+
+
+
+core.utilities / RecordingMap
+
+RecordingMap
+class RecordingMap < K , V > : MutableMap < K , V >
+A RecordingMap wraps a regular Map<K, V> and records the sequence of gets and puts to it. This is useful in
+white box unit tests to ensure that code is accessing a data store as much as you expect.
+Note: although this class itself thread safe, if the underlying map is not, then this class loses its thread safety.
+
+
+
+
+Types
+
+
+
+
+Get
+
+data class Get < K > : Record
+
+
+
+Put
+
+data class Put < K , V > : Record
+
+
+
+Record
+
+interface Record
+
+
+
+Constructors
+
+
+
+
+<init>
+
+RecordingMap ( wrappedMap : MutableMap < K , V > , logger : <ERROR CLASS> = loggerFor<RecordingMap<K, V>>())
A RecordingMap wraps a regular Map<K, V> and records the sequence of gets and puts to it. This is useful in
+white box unit tests to ensure that code is accessing a data store as much as you expect.
+
+
+
+
+Properties
+
+
+
+
+records
+
+val records : List < Record >
Returns a snapshot of the set of records
+
+
+
+
+Functions
+
+
+
+
+clearRecords
+
+fun clearRecords ( ) : Unit
+
+
+
+get
+
+fun get ( key : K ) : V ?
+
+
+
+put
+
+fun put ( key : K , value : V ) : V ?
+
+
+
+putAll
+
+fun putAll ( from : Map < out K , V > ) : Unit
+
+
+
+putAllUnrecorded
+
+fun putAllUnrecorded ( from : Map < out K , V > ) : Unit
+
+
+
+
+
diff --git a/docs/build/html/api/core.utilities/-recording-map/put-all-unrecorded.html b/docs/build/html/api/core.utilities/-recording-map/put-all-unrecorded.html
new file mode 100644
index 0000000000..e173ae5e6e
--- /dev/null
+++ b/docs/build/html/api/core.utilities/-recording-map/put-all-unrecorded.html
@@ -0,0 +1,15 @@
+
+
+RecordingMap.putAllUnrecorded -
+
+
+
+core.utilities / RecordingMap / putAllUnrecorded
+
+putAllUnrecorded
+
+fun putAllUnrecorded ( from : Map < out K , V > ) : Unit
+
+
+
+
diff --git a/docs/build/html/api/core.utilities/-recording-map/put-all.html b/docs/build/html/api/core.utilities/-recording-map/put-all.html
new file mode 100644
index 0000000000..3ddb32df43
--- /dev/null
+++ b/docs/build/html/api/core.utilities/-recording-map/put-all.html
@@ -0,0 +1,15 @@
+
+
+RecordingMap.putAll -
+
+
+
+core.utilities / RecordingMap / putAll
+
+putAll
+
+fun putAll ( from : Map < out K , V > ) : Unit
+
+
+
+
diff --git a/docs/build/html/api/core.utilities/-recording-map/put.html b/docs/build/html/api/core.utilities/-recording-map/put.html
new file mode 100644
index 0000000000..aef789c9a5
--- /dev/null
+++ b/docs/build/html/api/core.utilities/-recording-map/put.html
@@ -0,0 +1,15 @@
+
+
+RecordingMap.put -
+
+
+
+core.utilities / RecordingMap / put
+
+put
+
+fun put ( key : K , value : V ) : V ?
+
+
+
+
diff --git a/docs/build/html/api/core.utilities/-recording-map/records.html b/docs/build/html/api/core.utilities/-recording-map/records.html
new file mode 100644
index 0000000000..938e81e1c6
--- /dev/null
+++ b/docs/build/html/api/core.utilities/-recording-map/records.html
@@ -0,0 +1,16 @@
+
+
+RecordingMap.records -
+
+
+
+core.utilities / RecordingMap / records
+
+records
+
+val records : List < Record >
+Returns a snapshot of the set of records
+
+
+
+
diff --git a/docs/build/html/api/core.utilities/-untrustworthy-data/-init-.html b/docs/build/html/api/core.utilities/-untrustworthy-data/-init-.html
new file mode 100644
index 0000000000..041561576d
--- /dev/null
+++ b/docs/build/html/api/core.utilities/-untrustworthy-data/-init-.html
@@ -0,0 +1,24 @@
+
+
+UntrustworthyData. -
+
+
+
+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/core.utilities/-untrustworthy-data/data.html b/docs/build/html/api/core.utilities/-untrustworthy-data/data.html
new file mode 100644
index 0000000000..0e103bf4cd
--- /dev/null
+++ b/docs/build/html/api/core.utilities/-untrustworthy-data/data.html
@@ -0,0 +1,15 @@
+
+
+UntrustworthyData.data -
+
+
+
+core.utilities / UntrustworthyData / data
+
+data
+
+val data : T
+
+
+
+
diff --git a/docs/build/html/api/core.utilities/-untrustworthy-data/index.html b/docs/build/html/api/core.utilities/-untrustworthy-data/index.html
new file mode 100644
index 0000000000..05b11dabf7
--- /dev/null
+++ b/docs/build/html/api/core.utilities/-untrustworthy-data/index.html
@@ -0,0 +1,60 @@
+
+
+UntrustworthyData -
+
+
+
+core.utilities / UntrustworthyData
+
+UntrustworthyData
+class UntrustworthyData < 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
+
+
+
+
+validate
+
+fun < R > validate ( validator : ( T ) -> R ) : R
+
+
+
+
+
diff --git a/docs/build/html/api/core.utilities/-untrustworthy-data/validate.html b/docs/build/html/api/core.utilities/-untrustworthy-data/validate.html
new file mode 100644
index 0000000000..4845c1bb56
--- /dev/null
+++ b/docs/build/html/api/core.utilities/-untrustworthy-data/validate.html
@@ -0,0 +1,15 @@
+
+
+UntrustworthyData.validate -
+
+
+
+core.utilities / UntrustworthyData / validate
+
+validate
+
+inline fun < R > validate ( validator : ( T ) -> R ) : R
+
+
+
+
diff --git a/docs/build/html/api/core.utilities/index.html b/docs/build/html/api/core.utilities/index.html
new file mode 100644
index 0000000000..f0c8c310bc
--- /dev/null
+++ b/docs/build/html/api/core.utilities/index.html
@@ -0,0 +1,105 @@
+
+
+core.utilities -
+
+
+
+core.utilities
+
+Package core.utilities
+Types
+
+
+
+
+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.
+
+
+
+
+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.
+
+
+
+
+BriefLogFormatter
+
+class BriefLogFormatter : Formatter
A Java logging formatter that writes more compact output than the default.
+
+
+
+
+Emoji
+
+object Emoji
A simple wrapper class that contains icons and support for printing them only when were connected to a terminal.
+
+
+
+
+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.
+
+
+
+
+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).
+
+
+
+
+RecordingMap
+
+class RecordingMap < K , V > : MutableMap < K , V >
A RecordingMap wraps a regular Map<K, V> and records the sequence of gets and puts to it. This is useful in
+white box unit tests to ensure that code is accessing a data store as much as you expect.
+
+
+
+
+UntrustworthyData
+
+class UntrustworthyData < 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:
+
+
+
+
+Functions
+
+
+
+
+loggerFor
+
+fun < T : Any > loggerFor ( ) : <ERROR CLASS>
+
+
+
+trace
+
+fun <ERROR CLASS> . trace ( msg : ( ) -> String ) : Unit
+
+
+
+
+
diff --git a/docs/build/html/api/core.utilities/logger-for.html b/docs/build/html/api/core.utilities/logger-for.html
new file mode 100644
index 0000000000..bac5e99b46
--- /dev/null
+++ b/docs/build/html/api/core.utilities/logger-for.html
@@ -0,0 +1,15 @@
+
+
+loggerFor -
+
+
+
+core.utilities / loggerFor
+
+loggerFor
+
+inline fun < reified T : Any > loggerFor ( ) : <ERROR CLASS>
+
+
+
+
diff --git a/docs/build/html/api/core.utilities/trace.html b/docs/build/html/api/core.utilities/trace.html
new file mode 100644
index 0000000000..5f74e1f669
--- /dev/null
+++ b/docs/build/html/api/core.utilities/trace.html
@@ -0,0 +1,15 @@
+
+
+trace -
+
+
+
+core.utilities / trace
+
+trace
+
+inline fun <ERROR CLASS> . trace ( msg : ( ) -> String ) : Unit
+
+
+
+
diff --git a/docs/build/html/api/core/-accrual-adjustment/-adjusted.html b/docs/build/html/api/core/-accrual-adjustment/-adjusted.html
new file mode 100644
index 0000000000..ac7dccdae5
--- /dev/null
+++ b/docs/build/html/api/core/-accrual-adjustment/-adjusted.html
@@ -0,0 +1,14 @@
+
+
+AccrualAdjustment.Adjusted -
+
+
+
+core / AccrualAdjustment / Adjusted
+
+Adjusted
+Adjusted
+
+
+
+
diff --git a/docs/build/html/api/core/-accrual-adjustment/-unadjusted.html b/docs/build/html/api/core/-accrual-adjustment/-unadjusted.html
new file mode 100644
index 0000000000..880cce63a5
--- /dev/null
+++ b/docs/build/html/api/core/-accrual-adjustment/-unadjusted.html
@@ -0,0 +1,14 @@
+
+
+AccrualAdjustment.Unadjusted -
+
+
+
+core / AccrualAdjustment / Unadjusted
+
+Unadjusted
+Unadjusted
+
+
+
+
diff --git a/docs/build/html/api/core/-accrual-adjustment/index.html b/docs/build/html/api/core/-accrual-adjustment/index.html
new file mode 100644
index 0000000000..c8eba6940c
--- /dev/null
+++ b/docs/build/html/api/core/-accrual-adjustment/index.html
@@ -0,0 +1,33 @@
+
+
+AccrualAdjustment -
+
+
+
+core / 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/core/-amount/-init-.html b/docs/build/html/api/core/-amount/-init-.html
new file mode 100644
index 0000000000..52662cb8d0
--- /dev/null
+++ b/docs/build/html/api/core/-amount/-init-.html
@@ -0,0 +1,30 @@
+
+
+Amount. -
+
+
+
+core / Amount / <init>
+
+<init>
+Amount ( amount : BigDecimal , currency : Currency )
+
+
+Amount ( pennies : Long , currency : Currency )
+Amount represents a positive quantity of currency, measured in pennies, which are the smallest representable units.
+Note that "pennies" are not necessarily 1/100ths of a currency unit, but are the actual smallest amount used in
+whatever currency the amount represents.
+Amounts of different currencies 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
+TODO: Should amount be abstracted to cover things like quantities of a stock, bond, commercial paper etc? Probably.
+TODO: Think about how positive-only vs positive-or-negative amounts can be represented in the type system.
+
+
+
+
+
+
diff --git a/docs/build/html/api/core/-amount/compare-to.html b/docs/build/html/api/core/-amount/compare-to.html
new file mode 100644
index 0000000000..c24817ff64
--- /dev/null
+++ b/docs/build/html/api/core/-amount/compare-to.html
@@ -0,0 +1,15 @@
+
+
+Amount.compareTo -
+
+
+
+core / Amount / compareTo
+
+compareTo
+
+fun compareTo ( other : Amount ) : Int
+
+
+
+
diff --git a/docs/build/html/api/core/-amount/currency.html b/docs/build/html/api/core/-amount/currency.html
new file mode 100644
index 0000000000..c7ca2d0e17
--- /dev/null
+++ b/docs/build/html/api/core/-amount/currency.html
@@ -0,0 +1,15 @@
+
+
+Amount.currency -
+
+
+
+core / Amount / currency
+
+currency
+
+val currency : Currency
+
+
+
+
diff --git a/docs/build/html/api/core/-amount/div.html b/docs/build/html/api/core/-amount/div.html
new file mode 100644
index 0000000000..4a3f5654ea
--- /dev/null
+++ b/docs/build/html/api/core/-amount/div.html
@@ -0,0 +1,17 @@
+
+
+Amount.div -
+
+
+
+core / Amount / div
+
+div
+
+operator fun div ( other : Long ) : Amount
+
+operator fun div ( other : Int ) : Amount
+
+
+
+
diff --git a/docs/build/html/api/core/-amount/index.html b/docs/build/html/api/core/-amount/index.html
new file mode 100644
index 0000000000..01c7925a49
--- /dev/null
+++ b/docs/build/html/api/core/-amount/index.html
@@ -0,0 +1,110 @@
+
+
+Amount -
+
+
+
+core / Amount
+
+Amount
+data class Amount : Comparable < Amount >
+Amount represents a positive quantity of currency, measured in pennies, which are the smallest representable units.
+Note that "pennies" are not necessarily 1/100ths of a currency unit, but are the actual smallest amount used in
+whatever currency the amount represents.
+Amounts of different currencies 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
+TODO: Should amount be abstracted to cover things like quantities of a stock, bond, commercial paper etc? Probably.
+TODO: Think about how positive-only vs positive-or-negative amounts can be represented in the type system.
+
+
+
+
+Constructors
+
+
+
+
+<init>
+
+Amount ( amount : BigDecimal , currency : Currency )
Amount ( pennies : Long , currency : Currency )
Amount represents a positive quantity of currency, measured in pennies, which are the smallest representable units.
+
+
+
+
+Properties
+
+Functions
+
+
+
+
+compareTo
+
+fun compareTo ( other : Amount ) : Int
+
+
+
+div
+
+operator fun div ( other : Long ) : Amount
+operator fun div ( other : Int ) : Amount
+
+
+
+minus
+
+operator fun minus ( other : Amount ) : Amount
+
+
+
+plus
+
+operator fun plus ( other : Amount ) : Amount
+
+
+
+times
+
+operator fun times ( other : Long ) : Amount
+operator fun times ( other : Int ) : Amount
+
+
+
+toString
+
+fun toString ( ) : String
+
+
+
+Extension Functions
+
+
+
+
+times
+
+operator fun Amount . times ( other : RatioUnit ) : Amount
+
+
+
+
+
diff --git a/docs/build/html/api/core/-amount/minus.html b/docs/build/html/api/core/-amount/minus.html
new file mode 100644
index 0000000000..7b46b0b7b8
--- /dev/null
+++ b/docs/build/html/api/core/-amount/minus.html
@@ -0,0 +1,15 @@
+
+
+Amount.minus -
+
+
+
+core / Amount / minus
+
+minus
+
+operator fun minus ( other : Amount ) : Amount
+
+
+
+
diff --git a/docs/build/html/api/core/-amount/pennies.html b/docs/build/html/api/core/-amount/pennies.html
new file mode 100644
index 0000000000..89373ffc17
--- /dev/null
+++ b/docs/build/html/api/core/-amount/pennies.html
@@ -0,0 +1,15 @@
+
+
+Amount.pennies -
+
+
+
+core / Amount / pennies
+
+pennies
+
+val pennies : Long
+
+
+
+
diff --git a/docs/build/html/api/core/-amount/plus.html b/docs/build/html/api/core/-amount/plus.html
new file mode 100644
index 0000000000..e9f60611b6
--- /dev/null
+++ b/docs/build/html/api/core/-amount/plus.html
@@ -0,0 +1,15 @@
+
+
+Amount.plus -
+
+
+
+core / Amount / plus
+
+plus
+
+operator fun plus ( other : Amount ) : Amount
+
+
+
+
diff --git a/docs/build/html/api/core/-amount/times.html b/docs/build/html/api/core/-amount/times.html
new file mode 100644
index 0000000000..9e1b616af5
--- /dev/null
+++ b/docs/build/html/api/core/-amount/times.html
@@ -0,0 +1,17 @@
+
+
+Amount.times -
+
+
+
+core / Amount / times
+
+times
+
+operator fun times ( other : Long ) : Amount
+
+operator fun times ( other : Int ) : Amount
+
+
+
+
diff --git a/docs/build/html/api/core/-amount/to-string.html b/docs/build/html/api/core/-amount/to-string.html
new file mode 100644
index 0000000000..e2bf66cca5
--- /dev/null
+++ b/docs/build/html/api/core/-amount/to-string.html
@@ -0,0 +1,15 @@
+
+
+Amount.toString -
+
+
+
+core / Amount / toString
+
+toString
+
+fun toString ( ) : String
+
+
+
+
diff --git a/docs/build/html/api/core/-attachment/extract-file.html b/docs/build/html/api/core/-attachment/extract-file.html
new file mode 100644
index 0000000000..57235e160a
--- /dev/null
+++ b/docs/build/html/api/core/-attachment/extract-file.html
@@ -0,0 +1,19 @@
+
+
+Attachment.extractFile -
+
+
+
+core / 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/core/-attachment/index.html b/docs/build/html/api/core/-attachment/index.html
new file mode 100644
index 0000000000..0f80af0e32
--- /dev/null
+++ b/docs/build/html/api/core/-attachment/index.html
@@ -0,0 +1,59 @@
+
+
+Attachment -
+
+
+
+core / 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/core/-attachment/open-as-j-a-r.html b/docs/build/html/api/core/-attachment/open-as-j-a-r.html
new file mode 100644
index 0000000000..d4861d6f58
--- /dev/null
+++ b/docs/build/html/api/core/-attachment/open-as-j-a-r.html
@@ -0,0 +1,15 @@
+
+
+Attachment.openAsJAR -
+
+
+
+core / Attachment / openAsJAR
+
+openAsJAR
+
+open fun openAsJAR ( ) : JarInputStream
+
+
+
+
diff --git a/docs/build/html/api/core/-attachment/open.html b/docs/build/html/api/core/-attachment/open.html
new file mode 100644
index 0000000000..f3d25f4b3b
--- /dev/null
+++ b/docs/build/html/api/core/-attachment/open.html
@@ -0,0 +1,15 @@
+
+
+Attachment.open -
+
+
+
+core / Attachment / open
+
+open
+
+abstract fun open ( ) : InputStream
+
+
+
+
diff --git a/docs/build/html/api/core/-authenticated-object/-init-.html b/docs/build/html/api/core/-authenticated-object/-init-.html
new file mode 100644
index 0000000000..110cafc4ed
--- /dev/null
+++ b/docs/build/html/api/core/-authenticated-object/-init-.html
@@ -0,0 +1,15 @@
+
+
+AuthenticatedObject. -
+
+
+
+core / 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/core/-authenticated-object/index.html b/docs/build/html/api/core/-authenticated-object/index.html
new file mode 100644
index 0000000000..7ef638481a
--- /dev/null
+++ b/docs/build/html/api/core/-authenticated-object/index.html
@@ -0,0 +1,51 @@
+
+
+AuthenticatedObject -
+
+
+
+core / 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/core/-authenticated-object/signers.html b/docs/build/html/api/core/-authenticated-object/signers.html
new file mode 100644
index 0000000000..acc0700c35
--- /dev/null
+++ b/docs/build/html/api/core/-authenticated-object/signers.html
@@ -0,0 +1,15 @@
+
+
+AuthenticatedObject.signers -
+
+
+
+core / AuthenticatedObject / signers
+
+signers
+
+val signers : List < PublicKey >
+
+
+
+
diff --git a/docs/build/html/api/core/-authenticated-object/signing-parties.html b/docs/build/html/api/core/-authenticated-object/signing-parties.html
new file mode 100644
index 0000000000..c18c83829d
--- /dev/null
+++ b/docs/build/html/api/core/-authenticated-object/signing-parties.html
@@ -0,0 +1,16 @@
+
+
+AuthenticatedObject.signingParties -
+
+
+
+core / 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/core/-authenticated-object/value.html b/docs/build/html/api/core/-authenticated-object/value.html
new file mode 100644
index 0000000000..95fd39959a
--- /dev/null
+++ b/docs/build/html/api/core/-authenticated-object/value.html
@@ -0,0 +1,15 @@
+
+
+AuthenticatedObject.value -
+
+
+
+core / AuthenticatedObject / value
+
+value
+
+val value : T
+
+
+
+
diff --git a/docs/build/html/api/core/-business-calendar/-t-e-s-t_-c-a-l-e-n-d-a-r_-d-a-t-a.html b/docs/build/html/api/core/-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..dcd80431bb
--- /dev/null
+++ b/docs/build/html/api/core/-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 -
+
+
+
+core / BusinessCalendar / TEST_CALENDAR_DATA
+
+TEST_CALENDAR_DATA
+
+val TEST_CALENDAR_DATA : <ERROR CLASS>
+
+
+
+
diff --git a/docs/build/html/api/core/-business-calendar/-unknown-calendar/-init-.html b/docs/build/html/api/core/-business-calendar/-unknown-calendar/-init-.html
new file mode 100644
index 0000000000..24b880d02a
--- /dev/null
+++ b/docs/build/html/api/core/-business-calendar/-unknown-calendar/-init-.html
@@ -0,0 +1,14 @@
+
+
+BusinessCalendar.UnknownCalendar. -
+
+
+
+core / BusinessCalendar / UnknownCalendar / <init>
+
+<init>
+UnknownCalendar ( name : String )
+
+
+
+
diff --git a/docs/build/html/api/core/-business-calendar/-unknown-calendar/index.html b/docs/build/html/api/core/-business-calendar/-unknown-calendar/index.html
new file mode 100644
index 0000000000..793ae18d92
--- /dev/null
+++ b/docs/build/html/api/core/-business-calendar/-unknown-calendar/index.html
@@ -0,0 +1,25 @@
+
+
+BusinessCalendar.UnknownCalendar -
+
+
+
+core / BusinessCalendar / UnknownCalendar
+
+UnknownCalendar
+class UnknownCalendar : Exception
+
+
+Constructors
+
+
+
+
+<init>
+
+UnknownCalendar ( name : String )
+
+
+
+
+
diff --git a/docs/build/html/api/core/-business-calendar/apply-roll-convention.html b/docs/build/html/api/core/-business-calendar/apply-roll-convention.html
new file mode 100644
index 0000000000..8b4fd2658b
--- /dev/null
+++ b/docs/build/html/api/core/-business-calendar/apply-roll-convention.html
@@ -0,0 +1,15 @@
+
+
+BusinessCalendar.applyRollConvention -
+
+
+
+core / BusinessCalendar / applyRollConvention
+
+applyRollConvention
+
+open fun applyRollConvention ( testDate : LocalDate , dateRollConvention : DateRollConvention ) : LocalDate
+
+
+
+
diff --git a/docs/build/html/api/core/-business-calendar/calendars.html b/docs/build/html/api/core/-business-calendar/calendars.html
new file mode 100644
index 0000000000..355ec625c5
--- /dev/null
+++ b/docs/build/html/api/core/-business-calendar/calendars.html
@@ -0,0 +1,17 @@
+
+
+BusinessCalendar.calendars -
+
+
+
+core / BusinessCalendar / calendars
+
+calendars
+
+val calendars : Array < out String >
+
+val calendars : <ERROR CLASS>
+
+
+
+
diff --git a/docs/build/html/api/core/-business-calendar/create-generic-schedule.html b/docs/build/html/api/core/-business-calendar/create-generic-schedule.html
new file mode 100644
index 0000000000..0249ca1e8b
--- /dev/null
+++ b/docs/build/html/api/core/-business-calendar/create-generic-schedule.html
@@ -0,0 +1,16 @@
+
+
+BusinessCalendar.createGenericSchedule -
+
+
+
+core / BusinessCalendar / createGenericSchedule
+
+createGenericSchedule
+
+fun createGenericSchedule ( startDate : LocalDate , period : Frequency , calendar : BusinessCalendar = 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/core/-business-calendar/equals.html b/docs/build/html/api/core/-business-calendar/equals.html
new file mode 100644
index 0000000000..b8ed3d8041
--- /dev/null
+++ b/docs/build/html/api/core/-business-calendar/equals.html
@@ -0,0 +1,15 @@
+
+
+BusinessCalendar.equals -
+
+
+
+core / BusinessCalendar / equals
+
+equals
+
+open fun equals ( other : Any ? ) : Boolean
+
+
+
+
diff --git a/docs/build/html/api/core/-business-calendar/get-instance.html b/docs/build/html/api/core/-business-calendar/get-instance.html
new file mode 100644
index 0000000000..ed60237ba2
--- /dev/null
+++ b/docs/build/html/api/core/-business-calendar/get-instance.html
@@ -0,0 +1,16 @@
+
+
+BusinessCalendar.getInstance -
+
+
+
+core / 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/core/-business-calendar/hash-code.html b/docs/build/html/api/core/-business-calendar/hash-code.html
new file mode 100644
index 0000000000..17d49a9732
--- /dev/null
+++ b/docs/build/html/api/core/-business-calendar/hash-code.html
@@ -0,0 +1,15 @@
+
+
+BusinessCalendar.hashCode -
+
+
+
+core / BusinessCalendar / hashCode
+
+hashCode
+
+open fun hashCode ( ) : Int
+
+
+
+
diff --git a/docs/build/html/api/core/-business-calendar/holiday-dates.html b/docs/build/html/api/core/-business-calendar/holiday-dates.html
new file mode 100644
index 0000000000..c93e97086e
--- /dev/null
+++ b/docs/build/html/api/core/-business-calendar/holiday-dates.html
@@ -0,0 +1,15 @@
+
+
+BusinessCalendar.holidayDates -
+
+
+
+core / BusinessCalendar / holidayDates
+
+holidayDates
+
+val holidayDates : List < LocalDate >
+
+
+
+
diff --git a/docs/build/html/api/core/-business-calendar/index.html b/docs/build/html/api/core/-business-calendar/index.html
new file mode 100644
index 0000000000..36141aafb4
--- /dev/null
+++ b/docs/build/html/api/core/-business-calendar/index.html
@@ -0,0 +1,125 @@
+
+
+BusinessCalendar -
+
+
+
+core / 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 = 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.
+
+
+
+
+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/core/-business-calendar/is-working-day.html b/docs/build/html/api/core/-business-calendar/is-working-day.html
new file mode 100644
index 0000000000..a01367a055
--- /dev/null
+++ b/docs/build/html/api/core/-business-calendar/is-working-day.html
@@ -0,0 +1,15 @@
+
+
+BusinessCalendar.isWorkingDay -
+
+
+
+core / BusinessCalendar / isWorkingDay
+
+isWorkingDay
+
+open fun isWorkingDay ( date : LocalDate ) : Boolean
+
+
+
+
diff --git a/docs/build/html/api/core/-business-calendar/move-business-days.html b/docs/build/html/api/core/-business-calendar/move-business-days.html
new file mode 100644
index 0000000000..428f658421
--- /dev/null
+++ b/docs/build/html/api/core/-business-calendar/move-business-days.html
@@ -0,0 +1,17 @@
+
+
+BusinessCalendar.moveBusinessDays -
+
+
+
+core / 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/core/-business-calendar/parse-date-from-string.html b/docs/build/html/api/core/-business-calendar/parse-date-from-string.html
new file mode 100644
index 0000000000..4290dbbc9c
--- /dev/null
+++ b/docs/build/html/api/core/-business-calendar/parse-date-from-string.html
@@ -0,0 +1,16 @@
+
+
+BusinessCalendar.parseDateFromString -
+
+
+
+core / 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/core/-c-h-f.html b/docs/build/html/api/core/-c-h-f.html
new file mode 100644
index 0000000000..4fd93288c1
--- /dev/null
+++ b/docs/build/html/api/core/-c-h-f.html
@@ -0,0 +1,15 @@
+
+
+CHF -
+
+
+
+core / CHF
+
+CHF
+
+val CHF : Currency
+
+
+
+
diff --git a/docs/build/html/api/core/-command-data.html b/docs/build/html/api/core/-command-data.html
new file mode 100644
index 0000000000..e628436ce3
--- /dev/null
+++ b/docs/build/html/api/core/-command-data.html
@@ -0,0 +1,72 @@
+
+
+CommandData -
+
+
+
+core / 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
+
+
+
+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.
+
+
+
+
+TimestampCommand
+
+data class TimestampCommand : CommandData
If present in a transaction, contains a time that was verified by the timestamping authority/authorities whose
+public keys are identified in the containing Command object. The true time must be between (after, before)
+
+
+
+
+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/core/-command/-init-.html b/docs/build/html/api/core/-command/-init-.html
new file mode 100644
index 0000000000..2c77018cca
--- /dev/null
+++ b/docs/build/html/api/core/-command/-init-.html
@@ -0,0 +1,18 @@
+
+
+Command. -
+
+
+
+core / 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/core/-command/index.html b/docs/build/html/api/core/-command/index.html
new file mode 100644
index 0000000000..b81e4a109c
--- /dev/null
+++ b/docs/build/html/api/core/-command/index.html
@@ -0,0 +1,55 @@
+
+
+Command -
+
+
+
+core / 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/core/-command/signers.html b/docs/build/html/api/core/-command/signers.html
new file mode 100644
index 0000000000..d6f5899fd2
--- /dev/null
+++ b/docs/build/html/api/core/-command/signers.html
@@ -0,0 +1,15 @@
+
+
+Command.signers -
+
+
+
+core / Command / signers
+
+signers
+
+val signers : List < PublicKey >
+
+
+
+
diff --git a/docs/build/html/api/core/-command/to-string.html b/docs/build/html/api/core/-command/to-string.html
new file mode 100644
index 0000000000..3d72244f93
--- /dev/null
+++ b/docs/build/html/api/core/-command/to-string.html
@@ -0,0 +1,15 @@
+
+
+Command.toString -
+
+
+
+core / Command / toString
+
+toString
+
+fun toString ( ) : String
+
+
+
+
diff --git a/docs/build/html/api/core/-command/value.html b/docs/build/html/api/core/-command/value.html
new file mode 100644
index 0000000000..c5f601f9dc
--- /dev/null
+++ b/docs/build/html/api/core/-command/value.html
@@ -0,0 +1,15 @@
+
+
+Command.value -
+
+
+
+core / Command / value
+
+value
+
+val value : CommandData
+
+
+
+
diff --git a/docs/build/html/api/core/-contract-state/contract.html b/docs/build/html/api/core/-contract-state/contract.html
new file mode 100644
index 0000000000..71ce3645be
--- /dev/null
+++ b/docs/build/html/api/core/-contract-state/contract.html
@@ -0,0 +1,16 @@
+
+
+ContractState.contract -
+
+
+
+core / ContractState / contract
+
+contract
+
+abstract val contract : Contract
+Contract by which the state belongs
+
+
+
+
diff --git a/docs/build/html/api/core/-contract-state/index.html b/docs/build/html/api/core/-contract-state/index.html
new file mode 100644
index 0000000000..6eb97ea70f
--- /dev/null
+++ b/docs/build/html/api/core/-contract-state/index.html
@@ -0,0 +1,71 @@
+
+
+ContractState -
+
+
+
+core / 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.
+
+
+Properties
+
+
+
+
+contract
+
+abstract val contract : Contract
Contract by which the state belongs
+
+
+
+
+Extension Functions
+
+
+
+
+hash
+
+fun ContractState . hash ( ) : SecureHash
Returns the SHA-256 hash of the serialised contents of this state (not cached)
+
+
+
+
+Inheritors
+
+
+
+
+LinearState
+
+interface LinearState : ContractState
A state that evolves by superseding itself, all of which share the common "thread"
+
+
+
+
+OwnableState
+
+interface OwnableState : ContractState
+
+
+
+State
+
+data class State : ContractState
+
+
+
+State
+
+class State : ContractState
+
+
+
+
+
diff --git a/docs/build/html/api/core/-contract/index.html b/docs/build/html/api/core/-contract/index.html
new file mode 100644
index 0000000000..ebc00a0876
--- /dev/null
+++ b/docs/build/html/api/core/-contract/index.html
@@ -0,0 +1,93 @@
+
+
+Contract -
+
+
+
+core / 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 : TransactionForVerification ) : 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 : Contract
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.
+
+
+
+
+CommercialPaper
+
+class CommercialPaper : Contract
+
+
+
+CrowdFund
+
+class CrowdFund : Contract
This is a basic crowd funding contract. It allows a party to create a funding opportunity, then for others to
+pledge during the funding period , and then for the party to either accept the funding (if the target has been reached)
+return the funds to the pledge-makers (if the target has not been reached).
+
+
+
+
+DummyContract
+
+class DummyContract : Contract
+
+
+
+InterestRateSwap
+
+class InterestRateSwap : Contract
The Interest Rate Swap class. For a quick overview of what an IRS is, see here - http://www.pimco.co.uk/EN/Education/Pages/InterestRateSwapsBasics1-08.aspx (no endorsement)
+This contract has 4 significant data classes within it, the "Common", "Calculation", "FixedLeg" and "FloatingLeg"
+It also has 4 commands, "Agree", "Fix", "Pay" and "Mature".
+Currently, we are not interested (excuse pun) in valuing the swap, calculating the PVs, DFs and all that good stuff (soon though).
+This is just a representation of a vanilla Fixed vs Floating (same currency) IRS in the R3 prototype model.
+
+
+
+
+
+
diff --git a/docs/build/html/api/core/-contract/legal-contract-reference.html b/docs/build/html/api/core/-contract/legal-contract-reference.html
new file mode 100644
index 0000000000..ad62fa457e
--- /dev/null
+++ b/docs/build/html/api/core/-contract/legal-contract-reference.html
@@ -0,0 +1,17 @@
+
+
+Contract.legalContractReference -
+
+
+
+core / 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/core/-contract/verify.html b/docs/build/html/api/core/-contract/verify.html
new file mode 100644
index 0000000000..b2b6b174b9
--- /dev/null
+++ b/docs/build/html/api/core/-contract/verify.html
@@ -0,0 +1,19 @@
+
+
+Contract.verify -
+
+
+
+core / Contract / verify
+
+verify
+
+abstract fun verify ( tx : TransactionForVerification ) : 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/core/-date-offset/-t-w-o-d-a-y-s.html b/docs/build/html/api/core/-date-offset/-t-w-o-d-a-y-s.html
new file mode 100644
index 0000000000..022f213cc8
--- /dev/null
+++ b/docs/build/html/api/core/-date-offset/-t-w-o-d-a-y-s.html
@@ -0,0 +1,14 @@
+
+
+DateOffset.TWODAYS -
+
+
+
+core / DateOffset / TWODAYS
+
+TWODAYS
+TWODAYS
+
+
+
+
diff --git a/docs/build/html/api/core/-date-offset/-z-e-r-o.html b/docs/build/html/api/core/-date-offset/-z-e-r-o.html
new file mode 100644
index 0000000000..7fc53b91fe
--- /dev/null
+++ b/docs/build/html/api/core/-date-offset/-z-e-r-o.html
@@ -0,0 +1,14 @@
+
+
+DateOffset.ZERO -
+
+
+
+core / DateOffset / ZERO
+
+ZERO
+ZERO
+
+
+
+
diff --git a/docs/build/html/api/core/-date-offset/index.html b/docs/build/html/api/core/-date-offset/index.html
new file mode 100644
index 0000000000..2aa5f49e8d
--- /dev/null
+++ b/docs/build/html/api/core/-date-offset/index.html
@@ -0,0 +1,33 @@
+
+
+DateOffset -
+
+
+
+core / DateOffset
+
+DateOffset
+enum class DateOffset
+Date offset that the fixing is done prior to the accrual start date.
+Currently not used in the calculation.
+
+
+Enum Values
+
+
+
diff --git a/docs/build/html/api/core/-date-roll-convention/-actual/direction.html b/docs/build/html/api/core/-date-roll-convention/-actual/direction.html
new file mode 100644
index 0000000000..02df8f991f
--- /dev/null
+++ b/docs/build/html/api/core/-date-roll-convention/-actual/direction.html
@@ -0,0 +1,16 @@
+
+
+DateRollConvention.Actual.direction -
+
+
+
+core / DateRollConvention / Actual / direction
+
+direction
+
+fun direction ( ) : DateRollDirection
+Overrides DateRollConvention.direction
+
+
+
+
diff --git a/docs/build/html/api/core/-date-roll-convention/-actual/index.html b/docs/build/html/api/core/-date-roll-convention/-actual/index.html
new file mode 100644
index 0000000000..1cedcb1d3e
--- /dev/null
+++ b/docs/build/html/api/core/-date-roll-convention/-actual/index.html
@@ -0,0 +1,37 @@
+
+
+DateRollConvention.Actual -
+
+
+
+core / 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/core/-date-roll-convention/-actual/is-modified.html b/docs/build/html/api/core/-date-roll-convention/-actual/is-modified.html
new file mode 100644
index 0000000000..7ad66902b5
--- /dev/null
+++ b/docs/build/html/api/core/-date-roll-convention/-actual/is-modified.html
@@ -0,0 +1,16 @@
+
+
+DateRollConvention.Actual.isModified -
+
+
+
+core / DateRollConvention / Actual / isModified
+
+isModified
+
+val isModified : Boolean
+Overrides DateRollConvention.isModified
+
+
+
+
diff --git a/docs/build/html/api/core/-date-roll-convention/-following/direction.html b/docs/build/html/api/core/-date-roll-convention/-following/direction.html
new file mode 100644
index 0000000000..01212e6bdb
--- /dev/null
+++ b/docs/build/html/api/core/-date-roll-convention/-following/direction.html
@@ -0,0 +1,16 @@
+
+
+DateRollConvention.Following.direction -
+
+
+
+core / DateRollConvention / Following / direction
+
+direction
+
+fun direction ( ) : DateRollDirection
+Overrides DateRollConvention.direction
+
+
+
+
diff --git a/docs/build/html/api/core/-date-roll-convention/-following/index.html b/docs/build/html/api/core/-date-roll-convention/-following/index.html
new file mode 100644
index 0000000000..143862dd2b
--- /dev/null
+++ b/docs/build/html/api/core/-date-roll-convention/-following/index.html
@@ -0,0 +1,37 @@
+
+
+DateRollConvention.Following -
+
+
+
+core / 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/core/-date-roll-convention/-following/is-modified.html b/docs/build/html/api/core/-date-roll-convention/-following/is-modified.html
new file mode 100644
index 0000000000..cfdacdd0c8
--- /dev/null
+++ b/docs/build/html/api/core/-date-roll-convention/-following/is-modified.html
@@ -0,0 +1,16 @@
+
+
+DateRollConvention.Following.isModified -
+
+
+
+core / DateRollConvention / Following / isModified
+
+isModified
+
+val isModified : Boolean
+Overrides DateRollConvention.isModified
+
+
+
+
diff --git a/docs/build/html/api/core/-date-roll-convention/-modified-following/direction.html b/docs/build/html/api/core/-date-roll-convention/-modified-following/direction.html
new file mode 100644
index 0000000000..7d0a7b5044
--- /dev/null
+++ b/docs/build/html/api/core/-date-roll-convention/-modified-following/direction.html
@@ -0,0 +1,16 @@
+
+
+DateRollConvention.ModifiedFollowing.direction -
+
+
+
+core / DateRollConvention / ModifiedFollowing / direction
+
+direction
+
+fun direction ( ) : DateRollDirection
+Overrides DateRollConvention.direction
+
+
+
+
diff --git a/docs/build/html/api/core/-date-roll-convention/-modified-following/index.html b/docs/build/html/api/core/-date-roll-convention/-modified-following/index.html
new file mode 100644
index 0000000000..5eed9b6674
--- /dev/null
+++ b/docs/build/html/api/core/-date-roll-convention/-modified-following/index.html
@@ -0,0 +1,38 @@
+
+
+DateRollConvention.ModifiedFollowing -
+
+
+
+core / 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/core/-date-roll-convention/-modified-following/is-modified.html b/docs/build/html/api/core/-date-roll-convention/-modified-following/is-modified.html
new file mode 100644
index 0000000000..93af7ce260
--- /dev/null
+++ b/docs/build/html/api/core/-date-roll-convention/-modified-following/is-modified.html
@@ -0,0 +1,16 @@
+
+
+DateRollConvention.ModifiedFollowing.isModified -
+
+
+
+core / DateRollConvention / ModifiedFollowing / isModified
+
+isModified
+
+val isModified : Boolean
+Overrides DateRollConvention.isModified
+
+
+
+
diff --git a/docs/build/html/api/core/-date-roll-convention/-modified-previous/direction.html b/docs/build/html/api/core/-date-roll-convention/-modified-previous/direction.html
new file mode 100644
index 0000000000..669fd6ef56
--- /dev/null
+++ b/docs/build/html/api/core/-date-roll-convention/-modified-previous/direction.html
@@ -0,0 +1,16 @@
+
+
+DateRollConvention.ModifiedPrevious.direction -
+
+
+
+core / DateRollConvention / ModifiedPrevious / direction
+
+direction
+
+fun direction ( ) : DateRollDirection
+Overrides DateRollConvention.direction
+
+
+
+
diff --git a/docs/build/html/api/core/-date-roll-convention/-modified-previous/index.html b/docs/build/html/api/core/-date-roll-convention/-modified-previous/index.html
new file mode 100644
index 0000000000..4b9e017b7d
--- /dev/null
+++ b/docs/build/html/api/core/-date-roll-convention/-modified-previous/index.html
@@ -0,0 +1,38 @@
+
+
+DateRollConvention.ModifiedPrevious -
+
+
+
+core / 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/core/-date-roll-convention/-modified-previous/is-modified.html b/docs/build/html/api/core/-date-roll-convention/-modified-previous/is-modified.html
new file mode 100644
index 0000000000..d42ee9a53d
--- /dev/null
+++ b/docs/build/html/api/core/-date-roll-convention/-modified-previous/is-modified.html
@@ -0,0 +1,16 @@
+
+
+DateRollConvention.ModifiedPrevious.isModified -
+
+
+
+core / DateRollConvention / ModifiedPrevious / isModified
+
+isModified
+
+val isModified : Boolean
+Overrides DateRollConvention.isModified
+
+
+
+
diff --git a/docs/build/html/api/core/-date-roll-convention/-previous/direction.html b/docs/build/html/api/core/-date-roll-convention/-previous/direction.html
new file mode 100644
index 0000000000..f786358109
--- /dev/null
+++ b/docs/build/html/api/core/-date-roll-convention/-previous/direction.html
@@ -0,0 +1,16 @@
+
+
+DateRollConvention.Previous.direction -
+
+
+
+core / DateRollConvention / Previous / direction
+
+direction
+
+fun direction ( ) : DateRollDirection
+Overrides DateRollConvention.direction
+
+
+
+
diff --git a/docs/build/html/api/core/-date-roll-convention/-previous/index.html b/docs/build/html/api/core/-date-roll-convention/-previous/index.html
new file mode 100644
index 0000000000..daf9d99dcf
--- /dev/null
+++ b/docs/build/html/api/core/-date-roll-convention/-previous/index.html
@@ -0,0 +1,37 @@
+
+
+DateRollConvention.Previous -
+
+
+
+core / 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/core/-date-roll-convention/-previous/is-modified.html b/docs/build/html/api/core/-date-roll-convention/-previous/is-modified.html
new file mode 100644
index 0000000000..fef5521936
--- /dev/null
+++ b/docs/build/html/api/core/-date-roll-convention/-previous/is-modified.html
@@ -0,0 +1,16 @@
+
+
+DateRollConvention.Previous.isModified -
+
+
+
+core / DateRollConvention / Previous / isModified
+
+isModified
+
+val isModified : Boolean
+Overrides DateRollConvention.isModified
+
+
+
+
diff --git a/docs/build/html/api/core/-date-roll-convention/direction.html b/docs/build/html/api/core/-date-roll-convention/direction.html
new file mode 100644
index 0000000000..6675112b9d
--- /dev/null
+++ b/docs/build/html/api/core/-date-roll-convention/direction.html
@@ -0,0 +1,15 @@
+
+
+DateRollConvention.direction -
+
+
+
+core / DateRollConvention / direction
+
+direction
+
+abstract fun direction ( ) : DateRollDirection
+
+
+
+
diff --git a/docs/build/html/api/core/-date-roll-convention/index.html b/docs/build/html/api/core/-date-roll-convention/index.html
new file mode 100644
index 0000000000..4479e5b4da
--- /dev/null
+++ b/docs/build/html/api/core/-date-roll-convention/index.html
@@ -0,0 +1,81 @@
+
+
+DateRollConvention -
+
+
+
+core / 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/core/-date-roll-convention/is-modified.html b/docs/build/html/api/core/-date-roll-convention/is-modified.html
new file mode 100644
index 0000000000..f999b8fd22
--- /dev/null
+++ b/docs/build/html/api/core/-date-roll-convention/is-modified.html
@@ -0,0 +1,15 @@
+
+
+DateRollConvention.isModified -
+
+
+
+core / DateRollConvention / isModified
+
+isModified
+
+abstract val isModified : Boolean
+
+
+
+
diff --git a/docs/build/html/api/core/-date-roll-direction/-b-a-c-k-w-a-r-d.html b/docs/build/html/api/core/-date-roll-direction/-b-a-c-k-w-a-r-d.html
new file mode 100644
index 0000000000..519db20d5c
--- /dev/null
+++ b/docs/build/html/api/core/-date-roll-direction/-b-a-c-k-w-a-r-d.html
@@ -0,0 +1,25 @@
+
+
+DateRollDirection.BACKWARD -
+
+
+
+core / DateRollDirection / BACKWARD
+
+BACKWARD
+BACKWARD
+
+
+Inherited Properties
+
+
+
+
+value
+
+val value : Long
+
+
+
+
+
diff --git a/docs/build/html/api/core/-date-roll-direction/-f-o-r-w-a-r-d.html b/docs/build/html/api/core/-date-roll-direction/-f-o-r-w-a-r-d.html
new file mode 100644
index 0000000000..2b35f935c9
--- /dev/null
+++ b/docs/build/html/api/core/-date-roll-direction/-f-o-r-w-a-r-d.html
@@ -0,0 +1,25 @@
+
+
+DateRollDirection.FORWARD -
+
+
+
+core / DateRollDirection / FORWARD
+
+FORWARD
+FORWARD
+
+
+Inherited Properties
+
+
+
+
+value
+
+val value : Long
+
+
+
+
+
diff --git a/docs/build/html/api/core/-date-roll-direction/index.html b/docs/build/html/api/core/-date-roll-direction/index.html
new file mode 100644
index 0000000000..fcb8dcdb18
--- /dev/null
+++ b/docs/build/html/api/core/-date-roll-direction/index.html
@@ -0,0 +1,44 @@
+
+
+DateRollDirection -
+
+
+
+core / 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/core/-date-roll-direction/value.html b/docs/build/html/api/core/-date-roll-direction/value.html
new file mode 100644
index 0000000000..33697c2a5f
--- /dev/null
+++ b/docs/build/html/api/core/-date-roll-direction/value.html
@@ -0,0 +1,15 @@
+
+
+DateRollDirection.value -
+
+
+
+core / DateRollDirection / value
+
+value
+
+val value : Long
+
+
+
+
diff --git a/docs/build/html/api/core/-day-count-basis-day/-d-actual-j.html b/docs/build/html/api/core/-day-count-basis-day/-d-actual-j.html
new file mode 100644
index 0000000000..bc7b51d415
--- /dev/null
+++ b/docs/build/html/api/core/-day-count-basis-day/-d-actual-j.html
@@ -0,0 +1,25 @@
+
+
+DayCountBasisDay.DActualJ -
+
+
+
+core / DayCountBasisDay / DActualJ
+
+DActualJ
+DActualJ
+
+
+Inherited Functions
+
+
+
+
+toString
+
+fun toString ( ) : String
+
+
+
+
+
diff --git a/docs/build/html/api/core/-day-count-basis-day/-d-actual.html b/docs/build/html/api/core/-day-count-basis-day/-d-actual.html
new file mode 100644
index 0000000000..75e06ccd5f
--- /dev/null
+++ b/docs/build/html/api/core/-day-count-basis-day/-d-actual.html
@@ -0,0 +1,25 @@
+
+
+DayCountBasisDay.DActual -
+
+
+
+core / DayCountBasisDay / DActual
+
+DActual
+DActual
+
+
+Inherited Functions
+
+
+
+
+toString
+
+fun toString ( ) : String
+
+
+
+
+
diff --git a/docs/build/html/api/core/-day-count-basis-day/-d-bus_-sao-paulo.html b/docs/build/html/api/core/-day-count-basis-day/-d-bus_-sao-paulo.html
new file mode 100644
index 0000000000..805901c757
--- /dev/null
+++ b/docs/build/html/api/core/-day-count-basis-day/-d-bus_-sao-paulo.html
@@ -0,0 +1,25 @@
+
+
+DayCountBasisDay.DBus_SaoPaulo -
+
+
+
+core / DayCountBasisDay / DBus_SaoPaulo
+
+DBus_SaoPaulo
+DBus_SaoPaulo
+
+
+Inherited Functions
+
+
+
+
+toString
+
+fun toString ( ) : String
+
+
+
+
+
diff --git a/docs/build/html/api/core/-day-count-basis-day/-d30-e.html b/docs/build/html/api/core/-day-count-basis-day/-d30-e.html
new file mode 100644
index 0000000000..6cef728542
--- /dev/null
+++ b/docs/build/html/api/core/-day-count-basis-day/-d30-e.html
@@ -0,0 +1,25 @@
+
+
+DayCountBasisDay.D30E -
+
+
+
+core / DayCountBasisDay / D30E
+
+D30E
+D30E
+
+
+Inherited Functions
+
+
+
+
+toString
+
+fun toString ( ) : String
+
+
+
+
+
diff --git a/docs/build/html/api/core/-day-count-basis-day/-d30-f.html b/docs/build/html/api/core/-day-count-basis-day/-d30-f.html
new file mode 100644
index 0000000000..0b35df25a9
--- /dev/null
+++ b/docs/build/html/api/core/-day-count-basis-day/-d30-f.html
@@ -0,0 +1,25 @@
+
+
+DayCountBasisDay.D30F -
+
+
+
+core / DayCountBasisDay / D30F
+
+D30F
+D30F
+
+
+Inherited Functions
+
+
+
+
+toString
+
+fun toString ( ) : String
+
+
+
+
+
diff --git a/docs/build/html/api/core/-day-count-basis-day/-d30-g.html b/docs/build/html/api/core/-day-count-basis-day/-d30-g.html
new file mode 100644
index 0000000000..62576d36cf
--- /dev/null
+++ b/docs/build/html/api/core/-day-count-basis-day/-d30-g.html
@@ -0,0 +1,25 @@
+
+
+DayCountBasisDay.D30G -
+
+
+
+core / DayCountBasisDay / D30G
+
+D30G
+D30G
+
+
+Inherited Functions
+
+
+
+
+toString
+
+fun toString ( ) : String
+
+
+
+
+
diff --git a/docs/build/html/api/core/-day-count-basis-day/-d30-n.html b/docs/build/html/api/core/-day-count-basis-day/-d30-n.html
new file mode 100644
index 0000000000..f3dc371fc8
--- /dev/null
+++ b/docs/build/html/api/core/-day-count-basis-day/-d30-n.html
@@ -0,0 +1,25 @@
+
+
+DayCountBasisDay.D30N -
+
+
+
+core / DayCountBasisDay / D30N
+
+D30N
+D30N
+
+
+Inherited Functions
+
+
+
+
+toString
+
+fun toString ( ) : String
+
+
+
+
+
diff --git a/docs/build/html/api/core/-day-count-basis-day/-d30-p.html b/docs/build/html/api/core/-day-count-basis-day/-d30-p.html
new file mode 100644
index 0000000000..c5c8a5ae80
--- /dev/null
+++ b/docs/build/html/api/core/-day-count-basis-day/-d30-p.html
@@ -0,0 +1,25 @@
+
+
+DayCountBasisDay.D30P -
+
+
+
+core / DayCountBasisDay / D30P
+
+D30P
+D30P
+
+
+Inherited Functions
+
+
+
+
+toString
+
+fun toString ( ) : String
+
+
+
+
+
diff --git a/docs/build/html/api/core/-day-count-basis-day/-d30-z.html b/docs/build/html/api/core/-day-count-basis-day/-d30-z.html
new file mode 100644
index 0000000000..e8613a4e18
--- /dev/null
+++ b/docs/build/html/api/core/-day-count-basis-day/-d30-z.html
@@ -0,0 +1,25 @@
+
+
+DayCountBasisDay.D30Z -
+
+
+
+core / DayCountBasisDay / D30Z
+
+D30Z
+D30Z
+
+
+Inherited Functions
+
+
+
+
+toString
+
+fun toString ( ) : String
+
+
+
+
+
diff --git a/docs/build/html/api/core/-day-count-basis-day/-d30.html b/docs/build/html/api/core/-day-count-basis-day/-d30.html
new file mode 100644
index 0000000000..d9485d292f
--- /dev/null
+++ b/docs/build/html/api/core/-day-count-basis-day/-d30.html
@@ -0,0 +1,25 @@
+
+
+DayCountBasisDay.D30 -
+
+
+
+core / DayCountBasisDay / D30
+
+D30
+D30
+
+
+Inherited Functions
+
+
+
+
+toString
+
+fun toString ( ) : String
+
+
+
+
+
diff --git a/docs/build/html/api/core/-day-count-basis-day/index.html b/docs/build/html/api/core/-day-count-basis-day/index.html
new file mode 100644
index 0000000000..614f51e6cc
--- /dev/null
+++ b/docs/build/html/api/core/-day-count-basis-day/index.html
@@ -0,0 +1,93 @@
+
+
+DayCountBasisDay -
+
+
+
+core / 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/core/-day-count-basis-day/to-string.html b/docs/build/html/api/core/-day-count-basis-day/to-string.html
new file mode 100644
index 0000000000..59b61a3dfa
--- /dev/null
+++ b/docs/build/html/api/core/-day-count-basis-day/to-string.html
@@ -0,0 +1,15 @@
+
+
+DayCountBasisDay.toString -
+
+
+
+core / DayCountBasisDay / toString
+
+toString
+
+fun toString ( ) : String
+
+
+
+
diff --git a/docs/build/html/api/core/-day-count-basis-year/-y-actual-a.html b/docs/build/html/api/core/-day-count-basis-year/-y-actual-a.html
new file mode 100644
index 0000000000..f5a0108254
--- /dev/null
+++ b/docs/build/html/api/core/-day-count-basis-year/-y-actual-a.html
@@ -0,0 +1,25 @@
+
+
+DayCountBasisYear.YActualA -
+
+
+
+core / DayCountBasisYear / YActualA
+
+YActualA
+YActualA
+
+
+Inherited Functions
+
+
+
+
+toString
+
+fun toString ( ) : String
+
+
+
+
+
diff --git a/docs/build/html/api/core/-day-count-basis-year/-y-actual.html b/docs/build/html/api/core/-day-count-basis-year/-y-actual.html
new file mode 100644
index 0000000000..421217cee4
--- /dev/null
+++ b/docs/build/html/api/core/-day-count-basis-year/-y-actual.html
@@ -0,0 +1,25 @@
+
+
+DayCountBasisYear.YActual -
+
+
+
+core / DayCountBasisYear / YActual
+
+YActual
+YActual
+
+
+Inherited Functions
+
+
+
+
+toString
+
+fun toString ( ) : String
+
+
+
+
+
diff --git a/docs/build/html/api/core/-day-count-basis-year/-y-i-c-m-a.html b/docs/build/html/api/core/-day-count-basis-year/-y-i-c-m-a.html
new file mode 100644
index 0000000000..82eaa89c01
--- /dev/null
+++ b/docs/build/html/api/core/-day-count-basis-year/-y-i-c-m-a.html
@@ -0,0 +1,25 @@
+
+
+DayCountBasisYear.YICMA -
+
+
+
+core / DayCountBasisYear / YICMA
+
+YICMA
+YICMA
+
+
+Inherited Functions
+
+
+
+
+toString
+
+fun toString ( ) : String
+
+
+
+
+
diff --git a/docs/build/html/api/core/-day-count-basis-year/-y-i-s-m-a.html b/docs/build/html/api/core/-day-count-basis-year/-y-i-s-m-a.html
new file mode 100644
index 0000000000..9d3a806a45
--- /dev/null
+++ b/docs/build/html/api/core/-day-count-basis-year/-y-i-s-m-a.html
@@ -0,0 +1,25 @@
+
+
+DayCountBasisYear.YISMA -
+
+
+
+core / DayCountBasisYear / YISMA
+
+YISMA
+YISMA
+
+
+Inherited Functions
+
+
+
+
+toString
+
+fun toString ( ) : String
+
+
+
+
+
diff --git a/docs/build/html/api/core/-day-count-basis-year/-y252.html b/docs/build/html/api/core/-day-count-basis-year/-y252.html
new file mode 100644
index 0000000000..0a2440be40
--- /dev/null
+++ b/docs/build/html/api/core/-day-count-basis-year/-y252.html
@@ -0,0 +1,25 @@
+
+
+DayCountBasisYear.Y252 -
+
+
+
+core / DayCountBasisYear / Y252
+
+Y252
+Y252
+
+
+Inherited Functions
+
+
+
+
+toString
+
+fun toString ( ) : String
+
+
+
+
+
diff --git a/docs/build/html/api/core/-day-count-basis-year/-y360.html b/docs/build/html/api/core/-day-count-basis-year/-y360.html
new file mode 100644
index 0000000000..2b0da7feac
--- /dev/null
+++ b/docs/build/html/api/core/-day-count-basis-year/-y360.html
@@ -0,0 +1,25 @@
+
+
+DayCountBasisYear.Y360 -
+
+
+
+core / DayCountBasisYear / Y360
+
+Y360
+Y360
+
+
+Inherited Functions
+
+
+
+
+toString
+
+fun toString ( ) : String
+
+
+
+
+
diff --git a/docs/build/html/api/core/-day-count-basis-year/-y365-b.html b/docs/build/html/api/core/-day-count-basis-year/-y365-b.html
new file mode 100644
index 0000000000..171bae742b
--- /dev/null
+++ b/docs/build/html/api/core/-day-count-basis-year/-y365-b.html
@@ -0,0 +1,25 @@
+
+
+DayCountBasisYear.Y365B -
+
+
+
+core / DayCountBasisYear / Y365B
+
+Y365B
+Y365B
+
+
+Inherited Functions
+
+
+
+
+toString
+
+fun toString ( ) : String
+
+
+
+
+
diff --git a/docs/build/html/api/core/-day-count-basis-year/-y365-f.html b/docs/build/html/api/core/-day-count-basis-year/-y365-f.html
new file mode 100644
index 0000000000..136183a5e2
--- /dev/null
+++ b/docs/build/html/api/core/-day-count-basis-year/-y365-f.html
@@ -0,0 +1,25 @@
+
+
+DayCountBasisYear.Y365F -
+
+
+
+core / DayCountBasisYear / Y365F
+
+Y365F
+Y365F
+
+
+Inherited Functions
+
+
+
+
+toString
+
+fun toString ( ) : String
+
+
+
+
+
diff --git a/docs/build/html/api/core/-day-count-basis-year/-y365-l.html b/docs/build/html/api/core/-day-count-basis-year/-y365-l.html
new file mode 100644
index 0000000000..e565f3cd7f
--- /dev/null
+++ b/docs/build/html/api/core/-day-count-basis-year/-y365-l.html
@@ -0,0 +1,25 @@
+
+
+DayCountBasisYear.Y365L -
+
+
+
+core / DayCountBasisYear / Y365L
+
+Y365L
+Y365L
+
+
+Inherited Functions
+
+
+
+
+toString
+
+fun toString ( ) : String
+
+
+
+
+
diff --git a/docs/build/html/api/core/-day-count-basis-year/-y365-q.html b/docs/build/html/api/core/-day-count-basis-year/-y365-q.html
new file mode 100644
index 0000000000..c353a9c5bb
--- /dev/null
+++ b/docs/build/html/api/core/-day-count-basis-year/-y365-q.html
@@ -0,0 +1,25 @@
+
+
+DayCountBasisYear.Y365Q -
+
+
+
+core / DayCountBasisYear / Y365Q
+
+Y365Q
+Y365Q
+
+
+Inherited Functions
+
+
+
+
+toString
+
+fun toString ( ) : String
+
+
+
+
+
diff --git a/docs/build/html/api/core/-day-count-basis-year/-y365.html b/docs/build/html/api/core/-day-count-basis-year/-y365.html
new file mode 100644
index 0000000000..a27ae3a393
--- /dev/null
+++ b/docs/build/html/api/core/-day-count-basis-year/-y365.html
@@ -0,0 +1,25 @@
+
+
+DayCountBasisYear.Y365 -
+
+
+
+core / DayCountBasisYear / Y365
+
+Y365
+Y365
+
+
+Inherited Functions
+
+
+
+
+toString
+
+fun toString ( ) : String
+
+
+
+
+
diff --git a/docs/build/html/api/core/-day-count-basis-year/-y366.html b/docs/build/html/api/core/-day-count-basis-year/-y366.html
new file mode 100644
index 0000000000..f411c7ac86
--- /dev/null
+++ b/docs/build/html/api/core/-day-count-basis-year/-y366.html
@@ -0,0 +1,25 @@
+
+
+DayCountBasisYear.Y366 -
+
+
+
+core / DayCountBasisYear / Y366
+
+Y366
+Y366
+
+
+Inherited Functions
+
+
+
+
+toString
+
+fun toString ( ) : String
+
+
+
+
+
diff --git a/docs/build/html/api/core/-day-count-basis-year/index.html b/docs/build/html/api/core/-day-count-basis-year/index.html
new file mode 100644
index 0000000000..5c92d0759c
--- /dev/null
+++ b/docs/build/html/api/core/-day-count-basis-year/index.html
@@ -0,0 +1,103 @@
+
+
+DayCountBasisYear -
+
+
+
+core / 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/core/-day-count-basis-year/to-string.html b/docs/build/html/api/core/-day-count-basis-year/to-string.html
new file mode 100644
index 0000000000..0dc4229919
--- /dev/null
+++ b/docs/build/html/api/core/-day-count-basis-year/to-string.html
@@ -0,0 +1,15 @@
+
+
+DayCountBasisYear.toString -
+
+
+
+core / DayCountBasisYear / toString
+
+toString
+
+fun toString ( ) : String
+
+
+
+
diff --git a/docs/build/html/api/core/-expression-deserializer/deserialize.html b/docs/build/html/api/core/-expression-deserializer/deserialize.html
new file mode 100644
index 0000000000..9e332f7d05
--- /dev/null
+++ b/docs/build/html/api/core/-expression-deserializer/deserialize.html
@@ -0,0 +1,15 @@
+
+
+ExpressionDeserializer.deserialize -
+
+
+
+core / ExpressionDeserializer / deserialize
+
+deserialize
+
+fun deserialize ( parser : <ERROR CLASS> , context : <ERROR CLASS> ) : Expression
+
+
+
+
diff --git a/docs/build/html/api/core/-expression-deserializer/index.html b/docs/build/html/api/core/-expression-deserializer/index.html
new file mode 100644
index 0000000000..ac4fdec4f6
--- /dev/null
+++ b/docs/build/html/api/core/-expression-deserializer/index.html
@@ -0,0 +1,25 @@
+
+
+ExpressionDeserializer -
+
+
+
+core / ExpressionDeserializer
+
+ExpressionDeserializer
+object ExpressionDeserializer
+
+
+Functions
+
+
+
diff --git a/docs/build/html/api/core/-expression-serializer/index.html b/docs/build/html/api/core/-expression-serializer/index.html
new file mode 100644
index 0000000000..dfdbb0f9c5
--- /dev/null
+++ b/docs/build/html/api/core/-expression-serializer/index.html
@@ -0,0 +1,25 @@
+
+
+ExpressionSerializer -
+
+
+
+core / ExpressionSerializer
+
+ExpressionSerializer
+object ExpressionSerializer
+
+
+Functions
+
+
+
+
+serialize
+
+fun serialize ( expr : Expression , generator : <ERROR CLASS> , provider : <ERROR CLASS> ) : Unit
+
+
+
+
+
diff --git a/docs/build/html/api/core/-expression-serializer/serialize.html b/docs/build/html/api/core/-expression-serializer/serialize.html
new file mode 100644
index 0000000000..a538100508
--- /dev/null
+++ b/docs/build/html/api/core/-expression-serializer/serialize.html
@@ -0,0 +1,15 @@
+
+
+ExpressionSerializer.serialize -
+
+
+
+core / ExpressionSerializer / serialize
+
+serialize
+
+fun serialize ( expr : Expression , generator : <ERROR CLASS> , provider : <ERROR CLASS> ) : Unit
+
+
+
+
diff --git a/docs/build/html/api/core/-expression/-init-.html b/docs/build/html/api/core/-expression/-init-.html
new file mode 100644
index 0000000000..acef77cdc4
--- /dev/null
+++ b/docs/build/html/api/core/-expression/-init-.html
@@ -0,0 +1,15 @@
+
+
+Expression. -
+
+
+
+core / Expression / <init>
+
+<init>
+Expression ( expr : String )
+Represents a textual expression of e.g. a formula
+
+
+
+
diff --git a/docs/build/html/api/core/-expression/expr.html b/docs/build/html/api/core/-expression/expr.html
new file mode 100644
index 0000000000..85e9b5a245
--- /dev/null
+++ b/docs/build/html/api/core/-expression/expr.html
@@ -0,0 +1,15 @@
+
+
+Expression.expr -
+
+
+
+core / Expression / expr
+
+expr
+
+val expr : String
+
+
+
+
diff --git a/docs/build/html/api/core/-expression/index.html b/docs/build/html/api/core/-expression/index.html
new file mode 100644
index 0000000000..5fa83a1843
--- /dev/null
+++ b/docs/build/html/api/core/-expression/index.html
@@ -0,0 +1,38 @@
+
+
+Expression -
+
+
+
+core / 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/core/-fix-of/-init-.html b/docs/build/html/api/core/-fix-of/-init-.html
new file mode 100644
index 0000000000..e7d0c6d687
--- /dev/null
+++ b/docs/build/html/api/core/-fix-of/-init-.html
@@ -0,0 +1,15 @@
+
+
+FixOf. -
+
+
+
+core / 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/core/-fix-of/for-day.html b/docs/build/html/api/core/-fix-of/for-day.html
new file mode 100644
index 0000000000..f51365377b
--- /dev/null
+++ b/docs/build/html/api/core/-fix-of/for-day.html
@@ -0,0 +1,15 @@
+
+
+FixOf.forDay -
+
+
+
+core / FixOf / forDay
+
+forDay
+
+val forDay : LocalDate
+
+
+
+
diff --git a/docs/build/html/api/core/-fix-of/index.html b/docs/build/html/api/core/-fix-of/index.html
new file mode 100644
index 0000000000..e476f877d4
--- /dev/null
+++ b/docs/build/html/api/core/-fix-of/index.html
@@ -0,0 +1,50 @@
+
+
+FixOf -
+
+
+
+core / 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/core/-fix-of/name.html b/docs/build/html/api/core/-fix-of/name.html
new file mode 100644
index 0000000000..2c59fe85d0
--- /dev/null
+++ b/docs/build/html/api/core/-fix-of/name.html
@@ -0,0 +1,15 @@
+
+
+FixOf.name -
+
+
+
+core / FixOf / name
+
+name
+
+val name : String
+
+
+
+
diff --git a/docs/build/html/api/core/-fix-of/of-tenor.html b/docs/build/html/api/core/-fix-of/of-tenor.html
new file mode 100644
index 0000000000..3d28b0d19e
--- /dev/null
+++ b/docs/build/html/api/core/-fix-of/of-tenor.html
@@ -0,0 +1,15 @@
+
+
+FixOf.ofTenor -
+
+
+
+core / FixOf / ofTenor
+
+ofTenor
+
+val ofTenor : Tenor
+
+
+
+
diff --git a/docs/build/html/api/core/-fix/-init-.html b/docs/build/html/api/core/-fix/-init-.html
new file mode 100644
index 0000000000..117f7c4f0d
--- /dev/null
+++ b/docs/build/html/api/core/-fix/-init-.html
@@ -0,0 +1,15 @@
+
+
+Fix. -
+
+
+
+core / 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/core/-fix/index.html b/docs/build/html/api/core/-fix/index.html
new file mode 100644
index 0000000000..e8fad58f5c
--- /dev/null
+++ b/docs/build/html/api/core/-fix/index.html
@@ -0,0 +1,44 @@
+
+
+Fix -
+
+
+
+core / 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/core/-fix/of.html b/docs/build/html/api/core/-fix/of.html
new file mode 100644
index 0000000000..c7d73fa7da
--- /dev/null
+++ b/docs/build/html/api/core/-fix/of.html
@@ -0,0 +1,15 @@
+
+
+Fix.of -
+
+
+
+core / Fix / of
+
+of
+
+val of : FixOf
+
+
+
+
diff --git a/docs/build/html/api/core/-fix/value.html b/docs/build/html/api/core/-fix/value.html
new file mode 100644
index 0000000000..0b64ccf180
--- /dev/null
+++ b/docs/build/html/api/core/-fix/value.html
@@ -0,0 +1,15 @@
+
+
+Fix.value -
+
+
+
+core / Fix / value
+
+value
+
+val value : BigDecimal
+
+
+
+
diff --git a/docs/build/html/api/core/-frequency/-annual/index.html b/docs/build/html/api/core/-frequency/-annual/index.html
new file mode 100644
index 0000000000..181218a44a
--- /dev/null
+++ b/docs/build/html/api/core/-frequency/-annual/index.html
@@ -0,0 +1,36 @@
+
+
+Frequency.Annual -
+
+
+
+core / Frequency / Annual
+
+Annual
+Annual
+
+
+Inherited Properties
+
+Functions
+
+
+
diff --git a/docs/build/html/api/core/-frequency/-annual/offset.html b/docs/build/html/api/core/-frequency/-annual/offset.html
new file mode 100644
index 0000000000..aba88b1062
--- /dev/null
+++ b/docs/build/html/api/core/-frequency/-annual/offset.html
@@ -0,0 +1,16 @@
+
+
+Frequency.Annual.offset -
+
+
+
+core / Frequency / Annual / offset
+
+offset
+
+fun offset ( d : LocalDate ) : LocalDate
+Overrides Frequency.offset
+
+
+
+
diff --git a/docs/build/html/api/core/-frequency/-bi-weekly/index.html b/docs/build/html/api/core/-frequency/-bi-weekly/index.html
new file mode 100644
index 0000000000..7b1199ff10
--- /dev/null
+++ b/docs/build/html/api/core/-frequency/-bi-weekly/index.html
@@ -0,0 +1,36 @@
+
+
+Frequency.BiWeekly -
+
+
+
+core / Frequency / BiWeekly
+
+BiWeekly
+BiWeekly
+
+
+Inherited Properties
+
+Functions
+
+
+
diff --git a/docs/build/html/api/core/-frequency/-bi-weekly/offset.html b/docs/build/html/api/core/-frequency/-bi-weekly/offset.html
new file mode 100644
index 0000000000..11b1855633
--- /dev/null
+++ b/docs/build/html/api/core/-frequency/-bi-weekly/offset.html
@@ -0,0 +1,16 @@
+
+
+Frequency.BiWeekly.offset -
+
+
+
+core / Frequency / BiWeekly / offset
+
+offset
+
+fun offset ( d : LocalDate ) : LocalDate
+Overrides Frequency.offset
+
+
+
+
diff --git a/docs/build/html/api/core/-frequency/-monthly/index.html b/docs/build/html/api/core/-frequency/-monthly/index.html
new file mode 100644
index 0000000000..fc84dc0cd8
--- /dev/null
+++ b/docs/build/html/api/core/-frequency/-monthly/index.html
@@ -0,0 +1,36 @@
+
+
+Frequency.Monthly -
+
+
+
+core / Frequency / Monthly
+
+Monthly
+Monthly
+
+
+Inherited Properties
+
+Functions
+
+
+
diff --git a/docs/build/html/api/core/-frequency/-monthly/offset.html b/docs/build/html/api/core/-frequency/-monthly/offset.html
new file mode 100644
index 0000000000..6f60806089
--- /dev/null
+++ b/docs/build/html/api/core/-frequency/-monthly/offset.html
@@ -0,0 +1,16 @@
+
+
+Frequency.Monthly.offset -
+
+
+
+core / Frequency / Monthly / offset
+
+offset
+
+fun offset ( d : LocalDate ) : LocalDate
+Overrides Frequency.offset
+
+
+
+
diff --git a/docs/build/html/api/core/-frequency/-quarterly/index.html b/docs/build/html/api/core/-frequency/-quarterly/index.html
new file mode 100644
index 0000000000..43deb93886
--- /dev/null
+++ b/docs/build/html/api/core/-frequency/-quarterly/index.html
@@ -0,0 +1,36 @@
+
+
+Frequency.Quarterly -
+
+
+
+core / Frequency / Quarterly
+
+Quarterly
+Quarterly
+
+
+Inherited Properties
+
+Functions
+
+
+
diff --git a/docs/build/html/api/core/-frequency/-quarterly/offset.html b/docs/build/html/api/core/-frequency/-quarterly/offset.html
new file mode 100644
index 0000000000..14c9a349c3
--- /dev/null
+++ b/docs/build/html/api/core/-frequency/-quarterly/offset.html
@@ -0,0 +1,16 @@
+
+
+Frequency.Quarterly.offset -
+
+
+
+core / Frequency / Quarterly / offset
+
+offset
+
+fun offset ( d : LocalDate ) : LocalDate
+Overrides Frequency.offset
+
+
+
+
diff --git a/docs/build/html/api/core/-frequency/-semi-annual/index.html b/docs/build/html/api/core/-frequency/-semi-annual/index.html
new file mode 100644
index 0000000000..0f60cf7f02
--- /dev/null
+++ b/docs/build/html/api/core/-frequency/-semi-annual/index.html
@@ -0,0 +1,36 @@
+
+
+Frequency.SemiAnnual -
+
+
+
+core / Frequency / SemiAnnual
+
+SemiAnnual
+SemiAnnual
+
+
+Inherited Properties
+
+Functions
+
+
+
diff --git a/docs/build/html/api/core/-frequency/-semi-annual/offset.html b/docs/build/html/api/core/-frequency/-semi-annual/offset.html
new file mode 100644
index 0000000000..7a9c359397
--- /dev/null
+++ b/docs/build/html/api/core/-frequency/-semi-annual/offset.html
@@ -0,0 +1,16 @@
+
+
+Frequency.SemiAnnual.offset -
+
+
+
+core / Frequency / SemiAnnual / offset
+
+offset
+
+fun offset ( d : LocalDate ) : LocalDate
+Overrides Frequency.offset
+
+
+
+
diff --git a/docs/build/html/api/core/-frequency/-weekly/index.html b/docs/build/html/api/core/-frequency/-weekly/index.html
new file mode 100644
index 0000000000..0c6fb19cf5
--- /dev/null
+++ b/docs/build/html/api/core/-frequency/-weekly/index.html
@@ -0,0 +1,36 @@
+
+
+Frequency.Weekly -
+
+
+
+core / Frequency / Weekly
+
+Weekly
+Weekly
+
+
+Inherited Properties
+
+Functions
+
+
+
diff --git a/docs/build/html/api/core/-frequency/-weekly/offset.html b/docs/build/html/api/core/-frequency/-weekly/offset.html
new file mode 100644
index 0000000000..a7f7467fd9
--- /dev/null
+++ b/docs/build/html/api/core/-frequency/-weekly/offset.html
@@ -0,0 +1,16 @@
+
+
+Frequency.Weekly.offset -
+
+
+
+core / Frequency / Weekly / offset
+
+offset
+
+fun offset ( d : LocalDate ) : LocalDate
+Overrides Frequency.offset
+
+
+
+
diff --git a/docs/build/html/api/core/-frequency/annual-compound-count.html b/docs/build/html/api/core/-frequency/annual-compound-count.html
new file mode 100644
index 0000000000..3794be0a04
--- /dev/null
+++ b/docs/build/html/api/core/-frequency/annual-compound-count.html
@@ -0,0 +1,15 @@
+
+
+Frequency.annualCompoundCount -
+
+
+
+core / Frequency / annualCompoundCount
+
+annualCompoundCount
+
+val annualCompoundCount : Int
+
+
+
+
diff --git a/docs/build/html/api/core/-frequency/index.html b/docs/build/html/api/core/-frequency/index.html
new file mode 100644
index 0000000000..9bf6036f75
--- /dev/null
+++ b/docs/build/html/api/core/-frequency/index.html
@@ -0,0 +1,79 @@
+
+
+Frequency -
+
+
+
+core / 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/core/-frequency/offset.html b/docs/build/html/api/core/-frequency/offset.html
new file mode 100644
index 0000000000..053108cea9
--- /dev/null
+++ b/docs/build/html/api/core/-frequency/offset.html
@@ -0,0 +1,15 @@
+
+
+Frequency.offset -
+
+
+
+core / Frequency / offset
+
+offset
+
+abstract fun offset ( d : LocalDate ) : LocalDate
+
+
+
+
diff --git a/docs/build/html/api/core/-g-b-p.html b/docs/build/html/api/core/-g-b-p.html
new file mode 100644
index 0000000000..6118a89695
--- /dev/null
+++ b/docs/build/html/api/core/-g-b-p.html
@@ -0,0 +1,15 @@
+
+
+GBP -
+
+
+
+core / GBP
+
+GBP
+
+val GBP : Currency
+
+
+
+
diff --git a/docs/build/html/api/core/-ledger-transaction/-init-.html b/docs/build/html/api/core/-ledger-transaction/-init-.html
new file mode 100644
index 0000000000..d40f2e61e1
--- /dev/null
+++ b/docs/build/html/api/core/-ledger-transaction/-init-.html
@@ -0,0 +1,20 @@
+
+
+LedgerTransaction. -
+
+
+
+core / LedgerTransaction / <init>
+
+<init>
+LedgerTransaction ( inputs : List < StateRef > , attachments : List < Attachment > , outputs : List < ContractState > , commands : List < AuthenticatedObject < CommandData > > , id : SecureHash )
+A LedgerTransaction wraps the data needed to calculate one or more successor states from a set of input states.
+It is the first step after extraction from a WireTransaction. The signatures at this point have been lined up
+with the commands from the wire, and verified/looked up.
+TODO: This class needs a bit more thought. Should inputs be fully resolved by this point too?
+
+
+
+
+
+
diff --git a/docs/build/html/api/core/-ledger-transaction/attachments.html b/docs/build/html/api/core/-ledger-transaction/attachments.html
new file mode 100644
index 0000000000..3d8e61e964
--- /dev/null
+++ b/docs/build/html/api/core/-ledger-transaction/attachments.html
@@ -0,0 +1,16 @@
+
+
+LedgerTransaction.attachments -
+
+
+
+core / 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/core/-ledger-transaction/commands.html b/docs/build/html/api/core/-ledger-transaction/commands.html
new file mode 100644
index 0000000000..e182fc5ceb
--- /dev/null
+++ b/docs/build/html/api/core/-ledger-transaction/commands.html
@@ -0,0 +1,16 @@
+
+
+LedgerTransaction.commands -
+
+
+
+core / 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/core/-ledger-transaction/id.html b/docs/build/html/api/core/-ledger-transaction/id.html
new file mode 100644
index 0000000000..1b8481fef9
--- /dev/null
+++ b/docs/build/html/api/core/-ledger-transaction/id.html
@@ -0,0 +1,17 @@
+
+
+LedgerTransaction.id -
+
+
+
+core / LedgerTransaction / id
+
+id
+
+val id : SecureHash
+Overrides NamedByHash.id
+The hash of the original serialised WireTransaction
+
+
+
+
diff --git a/docs/build/html/api/core/-ledger-transaction/index.html b/docs/build/html/api/core/-ledger-transaction/index.html
new file mode 100644
index 0000000000..5e3e948237
--- /dev/null
+++ b/docs/build/html/api/core/-ledger-transaction/index.html
@@ -0,0 +1,85 @@
+
+
+LedgerTransaction -
+
+
+
+core / LedgerTransaction
+
+LedgerTransaction
+data class LedgerTransaction : NamedByHash
+A LedgerTransaction wraps the data needed to calculate one or more successor states from a set of input states.
+It is the first step after extraction from a WireTransaction. The signatures at this point have been lined up
+with the commands from the wire, and verified/looked up.
+TODO: This class needs a bit more thought. Should inputs be fully resolved by this point too?
+
+
+
+
+Constructors
+
+
+
+
+<init>
+
+LedgerTransaction ( inputs : List < StateRef > , attachments : List < Attachment > , outputs : List < ContractState > , commands : List < AuthenticatedObject < CommandData > > , id : SecureHash )
A LedgerTransaction wraps the data needed to calculate one or more successor states from a set of input states.
+It is the first step after extraction from a WireTransaction. The signatures at this point have been lined up
+with the commands from the wire, and verified/looked up.
+
+
+
+
+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 < StateRef >
The input states which will be consumed/invalidated by the execution of this transaction.
+
+
+
+
+outputs
+
+val outputs : List < ContractState >
The states that will be generated by the execution of this transaction.
+
+
+
+
+Functions
+
+
+
diff --git a/docs/build/html/api/core/-ledger-transaction/inputs.html b/docs/build/html/api/core/-ledger-transaction/inputs.html
new file mode 100644
index 0000000000..1cb40b5a5d
--- /dev/null
+++ b/docs/build/html/api/core/-ledger-transaction/inputs.html
@@ -0,0 +1,16 @@
+
+
+LedgerTransaction.inputs -
+
+
+
+core / LedgerTransaction / inputs
+
+inputs
+
+val inputs : List < StateRef >
+The input states which will be consumed/invalidated by the execution of this transaction.
+
+
+
+
diff --git a/docs/build/html/api/core/-ledger-transaction/out-ref.html b/docs/build/html/api/core/-ledger-transaction/out-ref.html
new file mode 100644
index 0000000000..89848282ca
--- /dev/null
+++ b/docs/build/html/api/core/-ledger-transaction/out-ref.html
@@ -0,0 +1,15 @@
+
+
+LedgerTransaction.outRef -
+
+
+
+core / LedgerTransaction / outRef
+
+outRef
+
+fun < T : ContractState > outRef ( index : Int ) : StateAndRef < T >
+
+
+
+
diff --git a/docs/build/html/api/core/-ledger-transaction/outputs.html b/docs/build/html/api/core/-ledger-transaction/outputs.html
new file mode 100644
index 0000000000..fbdb16b89d
--- /dev/null
+++ b/docs/build/html/api/core/-ledger-transaction/outputs.html
@@ -0,0 +1,16 @@
+
+
+LedgerTransaction.outputs -
+
+
+
+core / LedgerTransaction / outputs
+
+outputs
+
+val outputs : List < ContractState >
+The states that will be generated by the execution of this transaction.
+
+
+
+
diff --git a/docs/build/html/api/core/-linear-state/index.html b/docs/build/html/api/core/-linear-state/index.html
new file mode 100644
index 0000000000..14771b63e6
--- /dev/null
+++ b/docs/build/html/api/core/-linear-state/index.html
@@ -0,0 +1,79 @@
+
+
+LinearState -
+
+
+
+core / LinearState
+
+LinearState
+interface LinearState : ContractState
+A state that evolves by superseding itself, all of which share the common "thread"
+This simplifies the job of tracking the current version of certain types of state in e.g. a wallet
+
+
+
+
+Properties
+
+
+
+
+thread
+
+abstract val thread : SecureHash
Unique thread id within the wallets of all parties
+
+
+
+
+Inherited Properties
+
+
+
+
+contract
+
+abstract val contract : Contract
Contract by which the state belongs
+
+
+
+
+Functions
+
+
+
+
+isRelevant
+
+abstract fun isRelevant ( ourKeys : Set < PublicKey > ) : Boolean
true if this should be tracked by our wallet(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/core/-linear-state/is-relevant.html b/docs/build/html/api/core/-linear-state/is-relevant.html
new file mode 100644
index 0000000000..e476cfef08
--- /dev/null
+++ b/docs/build/html/api/core/-linear-state/is-relevant.html
@@ -0,0 +1,16 @@
+
+
+LinearState.isRelevant -
+
+
+
+core / LinearState / isRelevant
+
+isRelevant
+
+abstract fun isRelevant ( ourKeys : Set < PublicKey > ) : Boolean
+true if this should be tracked by our wallet(s)
+
+
+
+
diff --git a/docs/build/html/api/core/-linear-state/thread.html b/docs/build/html/api/core/-linear-state/thread.html
new file mode 100644
index 0000000000..0dd40bea36
--- /dev/null
+++ b/docs/build/html/api/core/-linear-state/thread.html
@@ -0,0 +1,16 @@
+
+
+LinearState.thread -
+
+
+
+core / LinearState / thread
+
+thread
+
+abstract val thread : SecureHash
+Unique thread id within the wallets of all parties
+
+
+
+
diff --git a/docs/build/html/api/core/-named-by-hash/id.html b/docs/build/html/api/core/-named-by-hash/id.html
new file mode 100644
index 0000000000..8e28e971aa
--- /dev/null
+++ b/docs/build/html/api/core/-named-by-hash/id.html
@@ -0,0 +1,15 @@
+
+
+NamedByHash.id -
+
+
+
+core / NamedByHash / id
+
+id
+
+abstract val id : SecureHash
+
+
+
+
diff --git a/docs/build/html/api/core/-named-by-hash/index.html b/docs/build/html/api/core/-named-by-hash/index.html
new file mode 100644
index 0000000000..1b96821996
--- /dev/null
+++ b/docs/build/html/api/core/-named-by-hash/index.html
@@ -0,0 +1,63 @@
+
+
+NamedByHash -
+
+
+
+core / 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:
+
+
+
+
+LedgerTransaction
+
+data class LedgerTransaction : NamedByHash
A LedgerTransaction wraps the data needed to calculate one or more successor states from a set of input states.
+It is the first step after extraction from a WireTransaction. The signatures at this point have been lined up
+with the commands from the wire, and verified/looked up.
+
+
+
+
+SignedTransaction
+
+data class SignedTransaction : NamedByHash
Container for a WireTransaction and attached signatures.
+
+
+
+
+WireTransaction
+
+data class WireTransaction : NamedByHash
Transaction ready for serialisation, without any signatures attached.
+
+
+
+
+
+
diff --git a/docs/build/html/api/core/-ownable-state/index.html b/docs/build/html/api/core/-ownable-state/index.html
new file mode 100644
index 0000000000..ddc4efee0e
--- /dev/null
+++ b/docs/build/html/api/core/-ownable-state/index.html
@@ -0,0 +1,80 @@
+
+
+OwnableState -
+
+
+
+core / OwnableState
+
+OwnableState
+interface OwnableState : ContractState
+
+
+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
Contract by which the state belongs
+
+
+
+
+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 : OwnableState
A state representing a cash claim against some party
+
+
+
+
+State
+
+data class State : OwnableState
+
+
+
+
+
diff --git a/docs/build/html/api/core/-ownable-state/owner.html b/docs/build/html/api/core/-ownable-state/owner.html
new file mode 100644
index 0000000000..05d702d1bb
--- /dev/null
+++ b/docs/build/html/api/core/-ownable-state/owner.html
@@ -0,0 +1,16 @@
+
+
+OwnableState.owner -
+
+
+
+core / 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/core/-ownable-state/with-new-owner.html b/docs/build/html/api/core/-ownable-state/with-new-owner.html
new file mode 100644
index 0000000000..1b9b41d8e0
--- /dev/null
+++ b/docs/build/html/api/core/-ownable-state/with-new-owner.html
@@ -0,0 +1,16 @@
+
+
+OwnableState.withNewOwner -
+
+
+
+core / 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/core/-party-reference/-init-.html b/docs/build/html/api/core/-party-reference/-init-.html
new file mode 100644
index 0000000000..391c96996e
--- /dev/null
+++ b/docs/build/html/api/core/-party-reference/-init-.html
@@ -0,0 +1,16 @@
+
+
+PartyReference. -
+
+
+
+core / PartyReference / <init>
+
+<init>
+PartyReference ( 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/core/-party-reference/index.html b/docs/build/html/api/core/-party-reference/index.html
new file mode 100644
index 0000000000..8558a27a13
--- /dev/null
+++ b/docs/build/html/api/core/-party-reference/index.html
@@ -0,0 +1,57 @@
+
+
+PartyReference -
+
+
+
+core / PartyReference
+
+PartyReference
+data class PartyReference
+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>
+
+PartyReference ( 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/core/-party-reference/party.html b/docs/build/html/api/core/-party-reference/party.html
new file mode 100644
index 0000000000..d7bdeec32a
--- /dev/null
+++ b/docs/build/html/api/core/-party-reference/party.html
@@ -0,0 +1,15 @@
+
+
+PartyReference.party -
+
+
+
+core / PartyReference / party
+
+party
+
+val party : Party
+
+
+
+
diff --git a/docs/build/html/api/core/-party-reference/reference.html b/docs/build/html/api/core/-party-reference/reference.html
new file mode 100644
index 0000000000..bf0508c7fc
--- /dev/null
+++ b/docs/build/html/api/core/-party-reference/reference.html
@@ -0,0 +1,15 @@
+
+
+PartyReference.reference -
+
+
+
+core / PartyReference / reference
+
+reference
+
+val reference : OpaqueBytes
+
+
+
+
diff --git a/docs/build/html/api/core/-party-reference/to-string.html b/docs/build/html/api/core/-party-reference/to-string.html
new file mode 100644
index 0000000000..57795715c5
--- /dev/null
+++ b/docs/build/html/api/core/-party-reference/to-string.html
@@ -0,0 +1,15 @@
+
+
+PartyReference.toString -
+
+
+
+core / PartyReference / toString
+
+toString
+
+fun toString ( ) : String
+
+
+
+
diff --git a/docs/build/html/api/core/-party/-init-.html b/docs/build/html/api/core/-party/-init-.html
new file mode 100644
index 0000000000..fa5b451522
--- /dev/null
+++ b/docs/build/html/api/core/-party/-init-.html
@@ -0,0 +1,15 @@
+
+
+Party. -
+
+
+
+core / 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/core/-party/index.html b/docs/build/html/api/core/-party/index.html
new file mode 100644
index 0000000000..41d06a0151
--- /dev/null
+++ b/docs/build/html/api/core/-party/index.html
@@ -0,0 +1,62 @@
+
+
+Party -
+
+
+
+core / 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/core/-party/name.html b/docs/build/html/api/core/-party/name.html
new file mode 100644
index 0000000000..1153a4a85e
--- /dev/null
+++ b/docs/build/html/api/core/-party/name.html
@@ -0,0 +1,15 @@
+
+
+Party.name -
+
+
+
+core / Party / name
+
+name
+
+val name : String
+
+
+
+
diff --git a/docs/build/html/api/core/-party/owning-key.html b/docs/build/html/api/core/-party/owning-key.html
new file mode 100644
index 0000000000..efbbdff22f
--- /dev/null
+++ b/docs/build/html/api/core/-party/owning-key.html
@@ -0,0 +1,15 @@
+
+
+Party.owningKey -
+
+
+
+core / Party / owningKey
+
+owningKey
+
+val owningKey : PublicKey
+
+
+
+
diff --git a/docs/build/html/api/core/-party/ref.html b/docs/build/html/api/core/-party/ref.html
new file mode 100644
index 0000000000..94db4e8377
--- /dev/null
+++ b/docs/build/html/api/core/-party/ref.html
@@ -0,0 +1,17 @@
+
+
+Party.ref -
+
+
+
+core / Party / ref
+
+ref
+
+fun ref ( bytes : OpaqueBytes ) : PartyReference
+
+fun ref ( vararg bytes : Byte ) : PartyReference
+
+
+
+
diff --git a/docs/build/html/api/core/-party/to-string.html b/docs/build/html/api/core/-party/to-string.html
new file mode 100644
index 0000000000..37c022f67c
--- /dev/null
+++ b/docs/build/html/api/core/-party/to-string.html
@@ -0,0 +1,15 @@
+
+
+Party.toString -
+
+
+
+core / Party / toString
+
+toString
+
+fun toString ( ) : String
+
+
+
+
diff --git a/docs/build/html/api/core/-payment-rule/-in-advance.html b/docs/build/html/api/core/-payment-rule/-in-advance.html
new file mode 100644
index 0000000000..54867d5f0a
--- /dev/null
+++ b/docs/build/html/api/core/-payment-rule/-in-advance.html
@@ -0,0 +1,14 @@
+
+
+PaymentRule.InAdvance -
+
+
+
+core / PaymentRule / InAdvance
+
+InAdvance
+InAdvance
+
+
+
+
diff --git a/docs/build/html/api/core/-payment-rule/-in-arrears.html b/docs/build/html/api/core/-payment-rule/-in-arrears.html
new file mode 100644
index 0000000000..42a6c7babb
--- /dev/null
+++ b/docs/build/html/api/core/-payment-rule/-in-arrears.html
@@ -0,0 +1,14 @@
+
+
+PaymentRule.InArrears -
+
+
+
+core / PaymentRule / InArrears
+
+InArrears
+InArrears
+
+
+
+
diff --git a/docs/build/html/api/core/-payment-rule/index.html b/docs/build/html/api/core/-payment-rule/index.html
new file mode 100644
index 0000000000..77bdece74b
--- /dev/null
+++ b/docs/build/html/api/core/-payment-rule/index.html
@@ -0,0 +1,32 @@
+
+
+PaymentRule -
+
+
+
+core / 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/core/-r.html b/docs/build/html/api/core/-r.html
new file mode 100644
index 0000000000..46acd4906d
--- /dev/null
+++ b/docs/build/html/api/core/-r.html
@@ -0,0 +1,15 @@
+
+
+R -
+
+
+
+core / R
+
+R
+
+val R : Requirements
+
+
+
+
diff --git a/docs/build/html/api/core/-requirements/-init-.html b/docs/build/html/api/core/-requirements/-init-.html
new file mode 100644
index 0000000000..4a56980dff
--- /dev/null
+++ b/docs/build/html/api/core/-requirements/-init-.html
@@ -0,0 +1,14 @@
+
+
+Requirements. -
+
+
+
+core / Requirements / <init>
+
+<init>
+Requirements ( )
+
+
+
+
diff --git a/docs/build/html/api/core/-requirements/by.html b/docs/build/html/api/core/-requirements/by.html
new file mode 100644
index 0000000000..63dc9d818a
--- /dev/null
+++ b/docs/build/html/api/core/-requirements/by.html
@@ -0,0 +1,15 @@
+
+
+Requirements.by -
+
+
+
+core / Requirements / by
+
+by
+
+infix fun String . by ( expr : Boolean ) : Unit
+
+
+
+
diff --git a/docs/build/html/api/core/-requirements/index.html b/docs/build/html/api/core/-requirements/index.html
new file mode 100644
index 0000000000..bd3ab917b5
--- /dev/null
+++ b/docs/build/html/api/core/-requirements/index.html
@@ -0,0 +1,36 @@
+
+
+Requirements -
+
+
+
+core / Requirements
+
+Requirements
+class Requirements
+
+
+Constructors
+
+
+
+
+<init>
+
+Requirements ( )
+
+
+
+Functions
+
+
+
+
+by
+
+infix fun String . by ( expr : Boolean ) : Unit
+
+
+
+
+
diff --git a/docs/build/html/api/core/-run-on-caller-thread.html b/docs/build/html/api/core/-run-on-caller-thread.html
new file mode 100644
index 0000000000..2d10a41e9d
--- /dev/null
+++ b/docs/build/html/api/core/-run-on-caller-thread.html
@@ -0,0 +1,15 @@
+
+
+RunOnCallerThread -
+
+
+
+core / RunOnCallerThread
+
+RunOnCallerThread
+
+val RunOnCallerThread : <ERROR CLASS>
+
+
+
+
diff --git a/docs/build/html/api/core/-signed-transaction/-init-.html b/docs/build/html/api/core/-signed-transaction/-init-.html
new file mode 100644
index 0000000000..15149417df
--- /dev/null
+++ b/docs/build/html/api/core/-signed-transaction/-init-.html
@@ -0,0 +1,15 @@
+
+
+SignedTransaction. -
+
+
+
+core / SignedTransaction / <init>
+
+<init>
+SignedTransaction ( txBits : SerializedBytes < WireTransaction > , sigs : List < WithKey > )
+Container for a WireTransaction and attached signatures.
+
+
+
+
diff --git a/docs/build/html/api/core/-signed-transaction/id.html b/docs/build/html/api/core/-signed-transaction/id.html
new file mode 100644
index 0000000000..7e14131fd3
--- /dev/null
+++ b/docs/build/html/api/core/-signed-transaction/id.html
@@ -0,0 +1,17 @@
+
+
+SignedTransaction.id -
+
+
+
+core / SignedTransaction / id
+
+id
+
+val id : SecureHash
+Overrides NamedByHash.id
+A transaction ID is the hash of the WireTransaction . Thus adding or removing a signature does not change it.
+
+
+
+
diff --git a/docs/build/html/api/core/-signed-transaction/index.html b/docs/build/html/api/core/-signed-transaction/index.html
new file mode 100644
index 0000000000..c67d44ecb5
--- /dev/null
+++ b/docs/build/html/api/core/-signed-transaction/index.html
@@ -0,0 +1,108 @@
+
+
+SignedTransaction -
+
+
+
+core / SignedTransaction
+
+SignedTransaction
+data class SignedTransaction : NamedByHash
+Container for a WireTransaction and attached signatures.
+
+
+Constructors
+
+Properties
+
+Functions
+
+
+
+
+plus
+
+operator fun plus ( sig : WithKey ) : SignedTransaction
Alias for withAdditionalSignature to let you use Kotlin operator overloading.
+
+
+
+
+verify
+
+fun verify ( throwIfSignaturesAreMissing : Boolean = true) : Set < PublicKey >
Verify the signatures, deserialise the wire transaction and then check that the set of signatures found matches
+the set of pubkeys in the commands. If any signatures are missing, either throws an exception (by default) or
+returns the list of keys that have missing signatures, depending on the parameter.
+
+
+
+
+verifySignatures
+
+fun verifySignatures ( ) : Unit
Verifies the given signatures against the serialized transaction data. Does NOT deserialise or check the contents
+to ensure there are no missing signatures: use verify() to do that. This weaker version can be useful for
+checking a partially signed transaction being prepared by multiple co-operating parties.
+
+
+
+
+withAdditionalSignature
+
+fun withAdditionalSignature ( sig : WithKey ) : SignedTransaction
Returns the same transaction but with an additional (unchecked) signature
+
+
+
+
+Extension Functions
+
+
+
diff --git a/docs/build/html/api/core/-signed-transaction/plus.html b/docs/build/html/api/core/-signed-transaction/plus.html
new file mode 100644
index 0000000000..378a35e540
--- /dev/null
+++ b/docs/build/html/api/core/-signed-transaction/plus.html
@@ -0,0 +1,16 @@
+
+
+SignedTransaction.plus -
+
+
+
+core / SignedTransaction / plus
+
+plus
+
+operator fun plus ( sig : WithKey ) : SignedTransaction
+Alias for withAdditionalSignature to let you use Kotlin operator overloading.
+
+
+
+
diff --git a/docs/build/html/api/core/-signed-transaction/sigs.html b/docs/build/html/api/core/-signed-transaction/sigs.html
new file mode 100644
index 0000000000..f8b0561c3d
--- /dev/null
+++ b/docs/build/html/api/core/-signed-transaction/sigs.html
@@ -0,0 +1,15 @@
+
+
+SignedTransaction.sigs -
+
+
+
+core / SignedTransaction / sigs
+
+sigs
+
+val sigs : List < WithKey >
+
+
+
+
diff --git a/docs/build/html/api/core/-signed-transaction/tx-bits.html b/docs/build/html/api/core/-signed-transaction/tx-bits.html
new file mode 100644
index 0000000000..0662e6cad7
--- /dev/null
+++ b/docs/build/html/api/core/-signed-transaction/tx-bits.html
@@ -0,0 +1,15 @@
+
+
+SignedTransaction.txBits -
+
+
+
+core / SignedTransaction / txBits
+
+txBits
+
+val txBits : SerializedBytes < WireTransaction >
+
+
+
+
diff --git a/docs/build/html/api/core/-signed-transaction/tx.html b/docs/build/html/api/core/-signed-transaction/tx.html
new file mode 100644
index 0000000000..a42c1611c4
--- /dev/null
+++ b/docs/build/html/api/core/-signed-transaction/tx.html
@@ -0,0 +1,19 @@
+
+
+SignedTransaction.tx -
+
+
+
+core / 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/core/-signed-transaction/verify-signatures.html b/docs/build/html/api/core/-signed-transaction/verify-signatures.html
new file mode 100644
index 0000000000..73eebd118d
--- /dev/null
+++ b/docs/build/html/api/core/-signed-transaction/verify-signatures.html
@@ -0,0 +1,21 @@
+
+
+SignedTransaction.verifySignatures -
+
+
+
+core / SignedTransaction / verifySignatures
+
+verifySignatures
+
+fun verifySignatures ( ) : Unit
+Verifies the given signatures against the serialized transaction data. Does NOT deserialise or check the contents
+to ensure there are no missing signatures: use verify() to do that. This weaker version can be useful for
+checking a partially signed transaction being prepared by multiple co-operating parties.
+Exceptions
+
+SignatureException
- if the signature is invalid or does not match.
+
+
+
+
diff --git a/docs/build/html/api/core/-signed-transaction/verify.html b/docs/build/html/api/core/-signed-transaction/verify.html
new file mode 100644
index 0000000000..a2370789fc
--- /dev/null
+++ b/docs/build/html/api/core/-signed-transaction/verify.html
@@ -0,0 +1,21 @@
+
+
+SignedTransaction.verify -
+
+
+
+core / SignedTransaction / verify
+
+verify
+
+fun verify ( throwIfSignaturesAreMissing : Boolean = true) : Set < PublicKey >
+Verify the signatures, deserialise the wire transaction and then check that the set of signatures found matches
+the set of pubkeys in the commands. If any signatures are missing, either throws an exception (by default) or
+returns the list of keys that have missing signatures, depending on the parameter.
+Exceptions
+
+SignatureException
- if a signature is invalid, does not match or if any signature is missing.
+
+
+
+
diff --git a/docs/build/html/api/core/-signed-transaction/with-additional-signature.html b/docs/build/html/api/core/-signed-transaction/with-additional-signature.html
new file mode 100644
index 0000000000..4c5d153c6a
--- /dev/null
+++ b/docs/build/html/api/core/-signed-transaction/with-additional-signature.html
@@ -0,0 +1,16 @@
+
+
+SignedTransaction.withAdditionalSignature -
+
+
+
+core / 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/core/-state-and-ref/-init-.html b/docs/build/html/api/core/-state-and-ref/-init-.html
new file mode 100644
index 0000000000..785f77d98a
--- /dev/null
+++ b/docs/build/html/api/core/-state-and-ref/-init-.html
@@ -0,0 +1,15 @@
+
+
+StateAndRef. -
+
+
+
+core / StateAndRef / <init>
+
+<init>
+StateAndRef ( state : T , ref : StateRef )
+A StateAndRef is simply a (state, ref) pair. For instance, a wallet (which holds available assets) contains these.
+
+
+
+
diff --git a/docs/build/html/api/core/-state-and-ref/index.html b/docs/build/html/api/core/-state-and-ref/index.html
new file mode 100644
index 0000000000..f702ce9c39
--- /dev/null
+++ b/docs/build/html/api/core/-state-and-ref/index.html
@@ -0,0 +1,44 @@
+
+
+StateAndRef -
+
+
+
+core / StateAndRef
+
+StateAndRef
+data class StateAndRef < out T : ContractState >
+A StateAndRef is simply a (state, ref) pair. For instance, a wallet (which holds available assets) contains these.
+
+
+Constructors
+
+
+
+
+<init>
+
+StateAndRef ( state : T , ref : StateRef )
A StateAndRef is simply a (state, ref) pair. For instance, a wallet (which holds available assets) contains these.
+
+
+
+
+Properties
+
+
+
diff --git a/docs/build/html/api/core/-state-and-ref/ref.html b/docs/build/html/api/core/-state-and-ref/ref.html
new file mode 100644
index 0000000000..dca8979b3d
--- /dev/null
+++ b/docs/build/html/api/core/-state-and-ref/ref.html
@@ -0,0 +1,15 @@
+
+
+StateAndRef.ref -
+
+
+
+core / StateAndRef / ref
+
+ref
+
+val ref : StateRef
+
+
+
+
diff --git a/docs/build/html/api/core/-state-and-ref/state.html b/docs/build/html/api/core/-state-and-ref/state.html
new file mode 100644
index 0000000000..99ea8ed1b2
--- /dev/null
+++ b/docs/build/html/api/core/-state-and-ref/state.html
@@ -0,0 +1,15 @@
+
+
+StateAndRef.state -
+
+
+
+core / StateAndRef / state
+
+state
+
+val state : T
+
+
+
+
diff --git a/docs/build/html/api/core/-state-ref/--index--.html b/docs/build/html/api/core/-state-ref/--index--.html
new file mode 100644
index 0000000000..7c49cd8dfd
--- /dev/null
+++ b/docs/build/html/api/core/-state-ref/--index--.html
@@ -0,0 +1,15 @@
+
+
+StateRef.index -
+
+
+
+core / StateRef / index
+
+index
+
+val index : Int
+
+
+
+
diff --git a/docs/build/html/api/core/-state-ref/-init-.html b/docs/build/html/api/core/-state-ref/-init-.html
new file mode 100644
index 0000000000..0e1deb3305
--- /dev/null
+++ b/docs/build/html/api/core/-state-ref/-init-.html
@@ -0,0 +1,16 @@
+
+
+StateRef. -
+
+
+
+core / 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/core/-state-ref/index.html b/docs/build/html/api/core/-state-ref/index.html
new file mode 100644
index 0000000000..294ae34657
--- /dev/null
+++ b/docs/build/html/api/core/-state-ref/index.html
@@ -0,0 +1,57 @@
+
+
+StateRef -
+
+
+
+core / 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/core/-state-ref/to-string.html b/docs/build/html/api/core/-state-ref/to-string.html
new file mode 100644
index 0000000000..be423b2e16
--- /dev/null
+++ b/docs/build/html/api/core/-state-ref/to-string.html
@@ -0,0 +1,15 @@
+
+
+StateRef.toString -
+
+
+
+core / StateRef / toString
+
+toString
+
+fun toString ( ) : String
+
+
+
+
diff --git a/docs/build/html/api/core/-state-ref/txhash.html b/docs/build/html/api/core/-state-ref/txhash.html
new file mode 100644
index 0000000000..7b6af23e3e
--- /dev/null
+++ b/docs/build/html/api/core/-state-ref/txhash.html
@@ -0,0 +1,15 @@
+
+
+StateRef.txhash -
+
+
+
+core / StateRef / txhash
+
+txhash
+
+val txhash : SecureHash
+
+
+
+
diff --git a/docs/build/html/api/core/-tenor/-init-.html b/docs/build/html/api/core/-tenor/-init-.html
new file mode 100644
index 0000000000..736764560e
--- /dev/null
+++ b/docs/build/html/api/core/-tenor/-init-.html
@@ -0,0 +1,15 @@
+
+
+Tenor. -
+
+
+
+core / 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/core/-tenor/-time-unit/-day.html b/docs/build/html/api/core/-tenor/-time-unit/-day.html
new file mode 100644
index 0000000000..a0d0dacaf9
--- /dev/null
+++ b/docs/build/html/api/core/-tenor/-time-unit/-day.html
@@ -0,0 +1,25 @@
+
+
+Tenor.TimeUnit.Day -
+
+
+
+core / Tenor / TimeUnit / Day
+
+Day
+Day
+
+
+Inherited Properties
+
+
+
+
+code
+
+val code : String
+
+
+
+
+
diff --git a/docs/build/html/api/core/-tenor/-time-unit/-month.html b/docs/build/html/api/core/-tenor/-time-unit/-month.html
new file mode 100644
index 0000000000..97b260b38d
--- /dev/null
+++ b/docs/build/html/api/core/-tenor/-time-unit/-month.html
@@ -0,0 +1,25 @@
+
+
+Tenor.TimeUnit.Month -
+
+
+
+core / Tenor / TimeUnit / Month
+
+Month
+Month
+
+
+Inherited Properties
+
+
+
+
+code
+
+val code : String
+
+
+
+
+
diff --git a/docs/build/html/api/core/-tenor/-time-unit/-week.html b/docs/build/html/api/core/-tenor/-time-unit/-week.html
new file mode 100644
index 0000000000..98e8c25875
--- /dev/null
+++ b/docs/build/html/api/core/-tenor/-time-unit/-week.html
@@ -0,0 +1,25 @@
+
+
+Tenor.TimeUnit.Week -
+
+
+
+core / Tenor / TimeUnit / Week
+
+Week
+Week
+
+
+Inherited Properties
+
+
+
+
+code
+
+val code : String
+
+
+
+
+
diff --git a/docs/build/html/api/core/-tenor/-time-unit/-year.html b/docs/build/html/api/core/-tenor/-time-unit/-year.html
new file mode 100644
index 0000000000..1b7ea252f3
--- /dev/null
+++ b/docs/build/html/api/core/-tenor/-time-unit/-year.html
@@ -0,0 +1,25 @@
+
+
+Tenor.TimeUnit.Year -
+
+
+
+core / Tenor / TimeUnit / Year
+
+Year
+Year
+
+
+Inherited Properties
+
+
+
+
+code
+
+val code : String
+
+
+
+
+
diff --git a/docs/build/html/api/core/-tenor/-time-unit/code.html b/docs/build/html/api/core/-tenor/-time-unit/code.html
new file mode 100644
index 0000000000..deec081661
--- /dev/null
+++ b/docs/build/html/api/core/-tenor/-time-unit/code.html
@@ -0,0 +1,15 @@
+
+
+Tenor.TimeUnit.code -
+
+
+
+core / Tenor / TimeUnit / code
+
+code
+
+val code : String
+
+
+
+
diff --git a/docs/build/html/api/core/-tenor/-time-unit/index.html b/docs/build/html/api/core/-tenor/-time-unit/index.html
new file mode 100644
index 0000000000..c5f4d4949a
--- /dev/null
+++ b/docs/build/html/api/core/-tenor/-time-unit/index.html
@@ -0,0 +1,54 @@
+
+
+Tenor.TimeUnit -
+
+
+
+core / Tenor / TimeUnit
+
+TimeUnit
+enum class TimeUnit
+
+
+Enum Values
+
+Properties
+
+
+
+
+code
+
+val code : String
+
+
+
+
+
diff --git a/docs/build/html/api/core/-tenor/days-to-maturity.html b/docs/build/html/api/core/-tenor/days-to-maturity.html
new file mode 100644
index 0000000000..8e25970bc4
--- /dev/null
+++ b/docs/build/html/api/core/-tenor/days-to-maturity.html
@@ -0,0 +1,15 @@
+
+
+Tenor.daysToMaturity -
+
+
+
+core / Tenor / daysToMaturity
+
+daysToMaturity
+
+fun daysToMaturity ( startDate : LocalDate , calendar : BusinessCalendar ) : Int
+
+
+
+
diff --git a/docs/build/html/api/core/-tenor/index.html b/docs/build/html/api/core/-tenor/index.html
new file mode 100644
index 0000000000..ea7133a59b
--- /dev/null
+++ b/docs/build/html/api/core/-tenor/index.html
@@ -0,0 +1,66 @@
+
+
+Tenor -
+
+
+
+core / 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/core/-tenor/name.html b/docs/build/html/api/core/-tenor/name.html
new file mode 100644
index 0000000000..40d0d2dac4
--- /dev/null
+++ b/docs/build/html/api/core/-tenor/name.html
@@ -0,0 +1,15 @@
+
+
+Tenor.name -
+
+
+
+core / Tenor / name
+
+name
+
+val name : String
+
+
+
+
diff --git a/docs/build/html/api/core/-tenor/to-string.html b/docs/build/html/api/core/-tenor/to-string.html
new file mode 100644
index 0000000000..f445717606
--- /dev/null
+++ b/docs/build/html/api/core/-tenor/to-string.html
@@ -0,0 +1,15 @@
+
+
+Tenor.toString -
+
+
+
+core / Tenor / toString
+
+toString
+
+fun toString ( ) : String
+
+
+
+
diff --git a/docs/build/html/api/core/-thread-box/-init-.html b/docs/build/html/api/core/-thread-box/-init-.html
new file mode 100644
index 0000000000..b2663f3dab
--- /dev/null
+++ b/docs/build/html/api/core/-thread-box/-init-.html
@@ -0,0 +1,27 @@
+
+
+ThreadBox. -
+
+
+
+core / ThreadBox / <init>
+
+<init>
+ThreadBox ( content : T , lock : Lock = 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/core/-thread-box/content.html b/docs/build/html/api/core/-thread-box/content.html
new file mode 100644
index 0000000000..3af41ad0f2
--- /dev/null
+++ b/docs/build/html/api/core/-thread-box/content.html
@@ -0,0 +1,15 @@
+
+
+ThreadBox.content -
+
+
+
+core / ThreadBox / content
+
+content
+
+val content : T
+
+
+
+
diff --git a/docs/build/html/api/core/-thread-box/index.html b/docs/build/html/api/core/-thread-box/index.html
new file mode 100644
index 0000000000..5ef3d01d64
--- /dev/null
+++ b/docs/build/html/api/core/-thread-box/index.html
@@ -0,0 +1,70 @@
+
+
+ThreadBox -
+
+
+
+core / ThreadBox
+
+ThreadBox
+class ThreadBox < 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 : Lock = 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
+
+
+
+
+locked
+
+fun < R > locked ( body : T . ( ) -> R ) : R
+
+
+
+
+
diff --git a/docs/build/html/api/core/-thread-box/lock.html b/docs/build/html/api/core/-thread-box/lock.html
new file mode 100644
index 0000000000..d504ba21f6
--- /dev/null
+++ b/docs/build/html/api/core/-thread-box/lock.html
@@ -0,0 +1,15 @@
+
+
+ThreadBox.lock -
+
+
+
+core / ThreadBox / lock
+
+lock
+
+val lock : Lock
+
+
+
+
diff --git a/docs/build/html/api/core/-thread-box/locked.html b/docs/build/html/api/core/-thread-box/locked.html
new file mode 100644
index 0000000000..e139683f82
--- /dev/null
+++ b/docs/build/html/api/core/-thread-box/locked.html
@@ -0,0 +1,15 @@
+
+
+ThreadBox.locked -
+
+
+
+core / ThreadBox / locked
+
+locked
+
+inline fun < R > locked ( body : T . ( ) -> R ) : R
+
+
+
+
diff --git a/docs/build/html/api/core/-timestamp-command/-init-.html b/docs/build/html/api/core/-timestamp-command/-init-.html
new file mode 100644
index 0000000000..17d53a13ec
--- /dev/null
+++ b/docs/build/html/api/core/-timestamp-command/-init-.html
@@ -0,0 +1,19 @@
+
+
+TimestampCommand. -
+
+
+
+core / TimestampCommand / <init>
+
+<init>
+TimestampCommand ( time : Instant , tolerance : Duration )
+
+
+TimestampCommand ( after : Instant ? , before : Instant ? )
+If present in a transaction, contains a time that was verified by the timestamping authority/authorities whose
+public keys are identified in the containing Command object. The true time must be between (after, before)
+
+
+
+
diff --git a/docs/build/html/api/core/-timestamp-command/after.html b/docs/build/html/api/core/-timestamp-command/after.html
new file mode 100644
index 0000000000..4729a1a421
--- /dev/null
+++ b/docs/build/html/api/core/-timestamp-command/after.html
@@ -0,0 +1,15 @@
+
+
+TimestampCommand.after -
+
+
+
+core / TimestampCommand / after
+
+after
+
+val after : Instant ?
+
+
+
+
diff --git a/docs/build/html/api/core/-timestamp-command/before.html b/docs/build/html/api/core/-timestamp-command/before.html
new file mode 100644
index 0000000000..3c4739ac9c
--- /dev/null
+++ b/docs/build/html/api/core/-timestamp-command/before.html
@@ -0,0 +1,15 @@
+
+
+TimestampCommand.before -
+
+
+
+core / TimestampCommand / before
+
+before
+
+val before : Instant ?
+
+
+
+
diff --git a/docs/build/html/api/core/-timestamp-command/index.html b/docs/build/html/api/core/-timestamp-command/index.html
new file mode 100644
index 0000000000..ada95f943b
--- /dev/null
+++ b/docs/build/html/api/core/-timestamp-command/index.html
@@ -0,0 +1,52 @@
+
+
+TimestampCommand -
+
+
+
+core / TimestampCommand
+
+TimestampCommand
+data class TimestampCommand : CommandData
+If present in a transaction, contains a time that was verified by the timestamping authority/authorities whose
+public keys are identified in the containing Command object. The true time must be between (after, before)
+
+
+Constructors
+
+
+
+
+<init>
+
+TimestampCommand ( time : Instant , tolerance : Duration )
TimestampCommand ( after : Instant ? , before : Instant ? )
If present in a transaction, contains a time that was verified by the timestamping authority/authorities whose
+public keys are identified in the containing Command object. The true time must be between (after, before)
+
+
+
+
+Properties
+
+
+
diff --git a/docs/build/html/api/core/-timestamp-command/midpoint.html b/docs/build/html/api/core/-timestamp-command/midpoint.html
new file mode 100644
index 0000000000..80dc20b682
--- /dev/null
+++ b/docs/build/html/api/core/-timestamp-command/midpoint.html
@@ -0,0 +1,15 @@
+
+
+TimestampCommand.midpoint -
+
+
+
+core / TimestampCommand / midpoint
+
+midpoint
+
+val midpoint : Instant
+
+
+
+
diff --git a/docs/build/html/api/core/-transaction-builder/-init-.html b/docs/build/html/api/core/-transaction-builder/-init-.html
new file mode 100644
index 0000000000..88ec27146f
--- /dev/null
+++ b/docs/build/html/api/core/-transaction-builder/-init-.html
@@ -0,0 +1,18 @@
+
+
+TransactionBuilder. -
+
+
+
+core / TransactionBuilder / <init>
+
+<init>
+TransactionBuilder ( inputs : MutableList < StateRef > = arrayListOf(), attachments : MutableList < SecureHash > = arrayListOf(), outputs : MutableList < ContractState > = arrayListOf(), commands : MutableList < Command > = arrayListOf())
+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 or modifying the existing set.
+Then once the states and commands are right, this class can be used as a holding bucket to gather signatures from
+multiple parties.
+
+
+
+
diff --git a/docs/build/html/api/core/-transaction-builder/add-attachment.html b/docs/build/html/api/core/-transaction-builder/add-attachment.html
new file mode 100644
index 0000000000..77e037bd6e
--- /dev/null
+++ b/docs/build/html/api/core/-transaction-builder/add-attachment.html
@@ -0,0 +1,15 @@
+
+
+TransactionBuilder.addAttachment -
+
+
+
+core / TransactionBuilder / addAttachment
+
+addAttachment
+
+fun addAttachment ( attachment : Attachment ) : Unit
+
+
+
+
diff --git a/docs/build/html/api/core/-transaction-builder/add-command.html b/docs/build/html/api/core/-transaction-builder/add-command.html
new file mode 100644
index 0000000000..1860833e0f
--- /dev/null
+++ b/docs/build/html/api/core/-transaction-builder/add-command.html
@@ -0,0 +1,19 @@
+
+
+TransactionBuilder.addCommand -
+
+
+
+core / 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/core/-transaction-builder/add-input-state.html b/docs/build/html/api/core/-transaction-builder/add-input-state.html
new file mode 100644
index 0000000000..6de3d63ea9
--- /dev/null
+++ b/docs/build/html/api/core/-transaction-builder/add-input-state.html
@@ -0,0 +1,15 @@
+
+
+TransactionBuilder.addInputState -
+
+
+
+core / TransactionBuilder / addInputState
+
+addInputState
+
+fun addInputState ( ref : StateRef ) : Unit
+
+
+
+
diff --git a/docs/build/html/api/core/-transaction-builder/add-output-state.html b/docs/build/html/api/core/-transaction-builder/add-output-state.html
new file mode 100644
index 0000000000..38345bd685
--- /dev/null
+++ b/docs/build/html/api/core/-transaction-builder/add-output-state.html
@@ -0,0 +1,15 @@
+
+
+TransactionBuilder.addOutputState -
+
+
+
+core / TransactionBuilder / addOutputState
+
+addOutputState
+
+fun addOutputState ( state : ContractState ) : Unit
+
+
+
+
diff --git a/docs/build/html/api/core/-transaction-builder/add-signature-unchecked.html b/docs/build/html/api/core/-transaction-builder/add-signature-unchecked.html
new file mode 100644
index 0000000000..ac3d4214a9
--- /dev/null
+++ b/docs/build/html/api/core/-transaction-builder/add-signature-unchecked.html
@@ -0,0 +1,16 @@
+
+
+TransactionBuilder.addSignatureUnchecked -
+
+
+
+core / TransactionBuilder / addSignatureUnchecked
+
+addSignatureUnchecked
+
+fun addSignatureUnchecked ( sig : WithKey ) : Unit
+Adds the signature directly to the transaction, without checking it for validity.
+
+
+
+
diff --git a/docs/build/html/api/core/-transaction-builder/attachments.html b/docs/build/html/api/core/-transaction-builder/attachments.html
new file mode 100644
index 0000000000..bd2236fba7
--- /dev/null
+++ b/docs/build/html/api/core/-transaction-builder/attachments.html
@@ -0,0 +1,15 @@
+
+
+TransactionBuilder.attachments -
+
+
+
+core / TransactionBuilder / attachments
+
+attachments
+
+fun attachments ( ) : List < SecureHash >
+
+
+
+
diff --git a/docs/build/html/api/core/-transaction-builder/check-and-add-signature.html b/docs/build/html/api/core/-transaction-builder/check-and-add-signature.html
new file mode 100644
index 0000000000..4b2d72310f
--- /dev/null
+++ b/docs/build/html/api/core/-transaction-builder/check-and-add-signature.html
@@ -0,0 +1,23 @@
+
+
+TransactionBuilder.checkAndAddSignature -
+
+
+
+core / 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/core/-transaction-builder/check-signature.html b/docs/build/html/api/core/-transaction-builder/check-signature.html
new file mode 100644
index 0000000000..00cae79b38
--- /dev/null
+++ b/docs/build/html/api/core/-transaction-builder/check-signature.html
@@ -0,0 +1,22 @@
+
+
+TransactionBuilder.checkSignature -
+
+
+
+core / 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/core/-transaction-builder/commands.html b/docs/build/html/api/core/-transaction-builder/commands.html
new file mode 100644
index 0000000000..5e27c7fd88
--- /dev/null
+++ b/docs/build/html/api/core/-transaction-builder/commands.html
@@ -0,0 +1,15 @@
+
+
+TransactionBuilder.commands -
+
+
+
+core / TransactionBuilder / commands
+
+commands
+
+fun commands ( ) : List < Command >
+
+
+
+
diff --git a/docs/build/html/api/core/-transaction-builder/index.html b/docs/build/html/api/core/-transaction-builder/index.html
new file mode 100644
index 0000000000..53d991460b
--- /dev/null
+++ b/docs/build/html/api/core/-transaction-builder/index.html
@@ -0,0 +1,164 @@
+
+
+TransactionBuilder -
+
+
+
+core / TransactionBuilder
+
+TransactionBuilder
+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 or modifying the existing set.
+Then once the states and commands are right, this class can be used as a holding bucket to gather signatures from
+multiple parties.
+
+
+Constructors
+
+
+
+
+<init>
+
+TransactionBuilder ( inputs : MutableList < StateRef > = arrayListOf(), attachments : MutableList < SecureHash > = arrayListOf(), outputs : MutableList < ContractState > = arrayListOf(), commands : MutableList < Command > = arrayListOf())
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 or modifying the existing set.
+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
+
+
+
+
+addAttachment
+
+fun addAttachment ( attachment : Attachment ) : Unit
+
+
+
+addCommand
+
+fun addCommand ( arg : Command ) : Unit
+fun addCommand ( data : CommandData , vararg keys : PublicKey ) : <ERROR CLASS>
+fun addCommand ( data : CommandData , keys : List < PublicKey > ) : Unit
+
+
+
+addInputState
+
+fun addInputState ( ref : StateRef ) : Unit
+
+
+
+addOutputState
+
+fun addOutputState ( state : ContractState ) : Unit
+
+
+
+addSignatureUnchecked
+
+fun addSignatureUnchecked ( sig : WithKey ) : Unit
Adds the signature directly to the transaction, without checking it for validity.
+
+
+
+
+attachments
+
+fun attachments ( ) : List < SecureHash >
+
+
+
+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.
+
+
+
+
+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.
+
+
+
+
+commands
+
+fun commands ( ) : List < Command >
+
+
+
+inputStates
+
+fun inputStates ( ) : List < StateRef >
+
+
+
+outputStates
+
+fun outputStates ( ) : List < ContractState >
+
+
+
+setTime
+
+fun setTime ( time : Instant , authenticatedBy : Party , timeTolerance : Duration ) : Unit
Places a TimestampCommand in this transaction, removing any existing command if there is one.
+To get the right signature from the timestamping service, use the timestamp method after building is
+finished, or run use the TimestampingProtocol yourself.
+
+
+
+
+signWith
+
+fun signWith ( key : KeyPair ) : Unit
+
+
+
+timestamp
+
+fun timestamp ( timestamper : TimestamperService , clock : Clock = Clock.systemUTC()) : Unit
Uses the given timestamper service to request a signature over the WireTransaction be added. There must always be
+at least one such signature, but others may be added as well. You may want to have multiple redundant timestamps
+in the following cases:
+
+
+
+
+toSignedTransaction
+
+fun toSignedTransaction ( checkSufficientSignatures : Boolean = true) : SignedTransaction
+
+
+
+toWireTransaction
+
+fun toWireTransaction ( ) : WireTransaction
+
+
+
+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/core/-transaction-builder/input-states.html b/docs/build/html/api/core/-transaction-builder/input-states.html
new file mode 100644
index 0000000000..895cde09ac
--- /dev/null
+++ b/docs/build/html/api/core/-transaction-builder/input-states.html
@@ -0,0 +1,15 @@
+
+
+TransactionBuilder.inputStates -
+
+
+
+core / TransactionBuilder / inputStates
+
+inputStates
+
+fun inputStates ( ) : List < StateRef >
+
+
+
+
diff --git a/docs/build/html/api/core/-transaction-builder/output-states.html b/docs/build/html/api/core/-transaction-builder/output-states.html
new file mode 100644
index 0000000000..772d46ba12
--- /dev/null
+++ b/docs/build/html/api/core/-transaction-builder/output-states.html
@@ -0,0 +1,15 @@
+
+
+TransactionBuilder.outputStates -
+
+
+
+core / TransactionBuilder / outputStates
+
+outputStates
+
+fun outputStates ( ) : List < ContractState >
+
+
+
+
diff --git a/docs/build/html/api/core/-transaction-builder/set-time.html b/docs/build/html/api/core/-transaction-builder/set-time.html
new file mode 100644
index 0000000000..1f9c8bc8f5
--- /dev/null
+++ b/docs/build/html/api/core/-transaction-builder/set-time.html
@@ -0,0 +1,26 @@
+
+
+TransactionBuilder.setTime -
+
+
+
+core / TransactionBuilder / setTime
+
+setTime
+
+fun setTime ( time : Instant , authenticatedBy : Party , timeTolerance : Duration ) : Unit
+Places a TimestampCommand in this transaction, removing any existing command if there is one.
+To get the right signature from the timestamping service, use the timestamp method after building is
+finished, or run use the TimestampingProtocol yourself.
+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.
+
+
+
+
+
+
diff --git a/docs/build/html/api/core/-transaction-builder/sign-with.html b/docs/build/html/api/core/-transaction-builder/sign-with.html
new file mode 100644
index 0000000000..232bbf126c
--- /dev/null
+++ b/docs/build/html/api/core/-transaction-builder/sign-with.html
@@ -0,0 +1,15 @@
+
+
+TransactionBuilder.signWith -
+
+
+
+core / TransactionBuilder / signWith
+
+signWith
+
+fun signWith ( key : KeyPair ) : Unit
+
+
+
+
diff --git a/docs/build/html/api/core/-transaction-builder/time.html b/docs/build/html/api/core/-transaction-builder/time.html
new file mode 100644
index 0000000000..32ee561872
--- /dev/null
+++ b/docs/build/html/api/core/-transaction-builder/time.html
@@ -0,0 +1,15 @@
+
+
+TransactionBuilder.time -
+
+
+
+core / TransactionBuilder / time
+
+time
+
+val time : TimestampCommand ?
+
+
+
+
diff --git a/docs/build/html/api/core/-transaction-builder/timestamp.html b/docs/build/html/api/core/-transaction-builder/timestamp.html
new file mode 100644
index 0000000000..1cf5ed01da
--- /dev/null
+++ b/docs/build/html/api/core/-transaction-builder/timestamp.html
@@ -0,0 +1,23 @@
+
+
+TransactionBuilder.timestamp -
+
+
+
+core / TransactionBuilder / timestamp
+
+timestamp
+
+fun timestamp ( timestamper : TimestamperService , clock : Clock = Clock.systemUTC()) : Unit
+Uses the given timestamper service to request a signature over the WireTransaction be added. There must always be
+at least one such signature, but others may be added as well. You may want to have multiple redundant timestamps
+in the following cases:
+The signature of the trusted timestamper merely asserts that the time field of this transaction is valid.
+
+
+
+
+
+
diff --git a/docs/build/html/api/core/-transaction-builder/to-signed-transaction.html b/docs/build/html/api/core/-transaction-builder/to-signed-transaction.html
new file mode 100644
index 0000000000..c9f4b2881e
--- /dev/null
+++ b/docs/build/html/api/core/-transaction-builder/to-signed-transaction.html
@@ -0,0 +1,15 @@
+
+
+TransactionBuilder.toSignedTransaction -
+
+
+
+core / TransactionBuilder / toSignedTransaction
+
+toSignedTransaction
+
+fun toSignedTransaction ( checkSufficientSignatures : Boolean = true) : SignedTransaction
+
+
+
+
diff --git a/docs/build/html/api/core/-transaction-builder/to-wire-transaction.html b/docs/build/html/api/core/-transaction-builder/to-wire-transaction.html
new file mode 100644
index 0000000000..e4a335085b
--- /dev/null
+++ b/docs/build/html/api/core/-transaction-builder/to-wire-transaction.html
@@ -0,0 +1,15 @@
+
+
+TransactionBuilder.toWireTransaction -
+
+
+
+core / TransactionBuilder / toWireTransaction
+
+toWireTransaction
+
+fun toWireTransaction ( ) : WireTransaction
+
+
+
+
diff --git a/docs/build/html/api/core/-transaction-builder/with-items.html b/docs/build/html/api/core/-transaction-builder/with-items.html
new file mode 100644
index 0000000000..ceb0d0fc8f
--- /dev/null
+++ b/docs/build/html/api/core/-transaction-builder/with-items.html
@@ -0,0 +1,16 @@
+
+
+TransactionBuilder.withItems -
+
+
+
+core / 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/core/-transaction-conflict-exception/-init-.html b/docs/build/html/api/core/-transaction-conflict-exception/-init-.html
new file mode 100644
index 0000000000..9b42e736cd
--- /dev/null
+++ b/docs/build/html/api/core/-transaction-conflict-exception/-init-.html
@@ -0,0 +1,14 @@
+
+
+TransactionConflictException. -
+
+
+
+core / TransactionConflictException / <init>
+
+<init>
+TransactionConflictException ( conflictRef : StateRef , tx1 : LedgerTransaction , tx2 : LedgerTransaction )
+
+
+
+
diff --git a/docs/build/html/api/core/-transaction-conflict-exception/conflict-ref.html b/docs/build/html/api/core/-transaction-conflict-exception/conflict-ref.html
new file mode 100644
index 0000000000..5761ba0597
--- /dev/null
+++ b/docs/build/html/api/core/-transaction-conflict-exception/conflict-ref.html
@@ -0,0 +1,15 @@
+
+
+TransactionConflictException.conflictRef -
+
+
+
+core / TransactionConflictException / conflictRef
+
+conflictRef
+
+val conflictRef : StateRef
+
+
+
+
diff --git a/docs/build/html/api/core/-transaction-conflict-exception/index.html b/docs/build/html/api/core/-transaction-conflict-exception/index.html
new file mode 100644
index 0000000000..61082d4fad
--- /dev/null
+++ b/docs/build/html/api/core/-transaction-conflict-exception/index.html
@@ -0,0 +1,48 @@
+
+
+TransactionConflictException -
+
+
+
+core / TransactionConflictException
+
+TransactionConflictException
+class TransactionConflictException : Exception
+
+
+Constructors
+
+Properties
+
+
+
diff --git a/docs/build/html/api/core/-transaction-conflict-exception/tx1.html b/docs/build/html/api/core/-transaction-conflict-exception/tx1.html
new file mode 100644
index 0000000000..acbf905a20
--- /dev/null
+++ b/docs/build/html/api/core/-transaction-conflict-exception/tx1.html
@@ -0,0 +1,15 @@
+
+
+TransactionConflictException.tx1 -
+
+
+
+core / TransactionConflictException / tx1
+
+tx1
+
+val tx1 : LedgerTransaction
+
+
+
+
diff --git a/docs/build/html/api/core/-transaction-conflict-exception/tx2.html b/docs/build/html/api/core/-transaction-conflict-exception/tx2.html
new file mode 100644
index 0000000000..ab6e84e697
--- /dev/null
+++ b/docs/build/html/api/core/-transaction-conflict-exception/tx2.html
@@ -0,0 +1,15 @@
+
+
+TransactionConflictException.tx2 -
+
+
+
+core / TransactionConflictException / tx2
+
+tx2
+
+val tx2 : LedgerTransaction
+
+
+
+
diff --git a/docs/build/html/api/core/-transaction-for-verification/-in-out-group/-init-.html b/docs/build/html/api/core/-transaction-for-verification/-in-out-group/-init-.html
new file mode 100644
index 0000000000..5dbc0e5e91
--- /dev/null
+++ b/docs/build/html/api/core/-transaction-for-verification/-in-out-group/-init-.html
@@ -0,0 +1,19 @@
+
+
+TransactionForVerification.InOutGroup. -
+
+
+
+core / TransactionForVerification / 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/core/-transaction-for-verification/-in-out-group/grouping-key.html b/docs/build/html/api/core/-transaction-for-verification/-in-out-group/grouping-key.html
new file mode 100644
index 0000000000..c8a8682ae7
--- /dev/null
+++ b/docs/build/html/api/core/-transaction-for-verification/-in-out-group/grouping-key.html
@@ -0,0 +1,15 @@
+
+
+TransactionForVerification.InOutGroup.groupingKey -
+
+
+
+core / TransactionForVerification / InOutGroup / groupingKey
+
+groupingKey
+
+val groupingKey : K
+
+
+
+
diff --git a/docs/build/html/api/core/-transaction-for-verification/-in-out-group/index.html b/docs/build/html/api/core/-transaction-for-verification/-in-out-group/index.html
new file mode 100644
index 0000000000..c87dfccc91
--- /dev/null
+++ b/docs/build/html/api/core/-transaction-for-verification/-in-out-group/index.html
@@ -0,0 +1,58 @@
+
+
+TransactionForVerification.InOutGroup -
+
+
+
+core / TransactionForVerification / InOutGroup
+
+InOutGroup
+data class InOutGroup < T : ContractState , 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/core/-transaction-for-verification/-in-out-group/inputs.html b/docs/build/html/api/core/-transaction-for-verification/-in-out-group/inputs.html
new file mode 100644
index 0000000000..9eee402d4a
--- /dev/null
+++ b/docs/build/html/api/core/-transaction-for-verification/-in-out-group/inputs.html
@@ -0,0 +1,15 @@
+
+
+TransactionForVerification.InOutGroup.inputs -
+
+
+
+core / TransactionForVerification / InOutGroup / inputs
+
+inputs
+
+val inputs : List < T >
+
+
+
+
diff --git a/docs/build/html/api/core/-transaction-for-verification/-in-out-group/outputs.html b/docs/build/html/api/core/-transaction-for-verification/-in-out-group/outputs.html
new file mode 100644
index 0000000000..ae538b9e0a
--- /dev/null
+++ b/docs/build/html/api/core/-transaction-for-verification/-in-out-group/outputs.html
@@ -0,0 +1,15 @@
+
+
+TransactionForVerification.InOutGroup.outputs -
+
+
+
+core / TransactionForVerification / InOutGroup / outputs
+
+outputs
+
+val outputs : List < T >
+
+
+
+
diff --git a/docs/build/html/api/core/-transaction-for-verification/-init-.html b/docs/build/html/api/core/-transaction-for-verification/-init-.html
new file mode 100644
index 0000000000..3cdf068208
--- /dev/null
+++ b/docs/build/html/api/core/-transaction-for-verification/-init-.html
@@ -0,0 +1,15 @@
+
+
+TransactionForVerification. -
+
+
+
+core / TransactionForVerification / <init>
+
+<init>
+TransactionForVerification ( inStates : List < ContractState > , outStates : List < ContractState > , attachments : List < Attachment > , commands : List < AuthenticatedObject < CommandData > > , origHash : SecureHash )
+A transaction in fully resolved and sig-checked form, ready for passing as input to a verification function.
+
+
+
+
diff --git a/docs/build/html/api/core/-transaction-for-verification/attachments.html b/docs/build/html/api/core/-transaction-for-verification/attachments.html
new file mode 100644
index 0000000000..a44c3bbfa3
--- /dev/null
+++ b/docs/build/html/api/core/-transaction-for-verification/attachments.html
@@ -0,0 +1,15 @@
+
+
+TransactionForVerification.attachments -
+
+
+
+core / TransactionForVerification / attachments
+
+attachments
+
+val attachments : List < Attachment >
+
+
+
+
diff --git a/docs/build/html/api/core/-transaction-for-verification/commands.html b/docs/build/html/api/core/-transaction-for-verification/commands.html
new file mode 100644
index 0000000000..e18bf53442
--- /dev/null
+++ b/docs/build/html/api/core/-transaction-for-verification/commands.html
@@ -0,0 +1,15 @@
+
+
+TransactionForVerification.commands -
+
+
+
+core / TransactionForVerification / commands
+
+commands
+
+val commands : List < AuthenticatedObject < CommandData > >
+
+
+
+
diff --git a/docs/build/html/api/core/-transaction-for-verification/equals.html b/docs/build/html/api/core/-transaction-for-verification/equals.html
new file mode 100644
index 0000000000..3a9cc9825e
--- /dev/null
+++ b/docs/build/html/api/core/-transaction-for-verification/equals.html
@@ -0,0 +1,15 @@
+
+
+TransactionForVerification.equals -
+
+
+
+core / TransactionForVerification / equals
+
+equals
+
+fun equals ( other : Any ? ) : Boolean
+
+
+
+
diff --git a/docs/build/html/api/core/-transaction-for-verification/get-timestamp-by.html b/docs/build/html/api/core/-transaction-for-verification/get-timestamp-by.html
new file mode 100644
index 0000000000..f92d00bbb7
--- /dev/null
+++ b/docs/build/html/api/core/-transaction-for-verification/get-timestamp-by.html
@@ -0,0 +1,16 @@
+
+
+TransactionForVerification.getTimestampBy -
+
+
+
+core / TransactionForVerification / getTimestampBy
+
+getTimestampBy
+
+fun getTimestampBy ( timestampingAuthority : Party ) : TimestampCommand ?
+Simply calls commands.getTimestampBy as a shortcut to make code completion more intuitive.
+
+
+
+
diff --git a/docs/build/html/api/core/-transaction-for-verification/group-states-internal.html b/docs/build/html/api/core/-transaction-for-verification/group-states-internal.html
new file mode 100644
index 0000000000..3a618e2f9c
--- /dev/null
+++ b/docs/build/html/api/core/-transaction-for-verification/group-states-internal.html
@@ -0,0 +1,17 @@
+
+
+TransactionForVerification.groupStatesInternal -
+
+
+
+core / TransactionForVerification / 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/core/-transaction-for-verification/group-states.html b/docs/build/html/api/core/-transaction-for-verification/group-states.html
new file mode 100644
index 0000000000..04468cb059
--- /dev/null
+++ b/docs/build/html/api/core/-transaction-for-verification/group-states.html
@@ -0,0 +1,33 @@
+
+
+TransactionForVerification.groupStates -
+
+
+
+core / TransactionForVerification / 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 wallet 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/core/-transaction-for-verification/hash-code.html b/docs/build/html/api/core/-transaction-for-verification/hash-code.html
new file mode 100644
index 0000000000..7ee2562213
--- /dev/null
+++ b/docs/build/html/api/core/-transaction-for-verification/hash-code.html
@@ -0,0 +1,15 @@
+
+
+TransactionForVerification.hashCode -
+
+
+
+core / TransactionForVerification / hashCode
+
+hashCode
+
+fun hashCode ( ) : Int
+
+
+
+
diff --git a/docs/build/html/api/core/-transaction-for-verification/in-states.html b/docs/build/html/api/core/-transaction-for-verification/in-states.html
new file mode 100644
index 0000000000..ab5387bfd3
--- /dev/null
+++ b/docs/build/html/api/core/-transaction-for-verification/in-states.html
@@ -0,0 +1,15 @@
+
+
+TransactionForVerification.inStates -
+
+
+
+core / TransactionForVerification / inStates
+
+inStates
+
+val inStates : List < ContractState >
+
+
+
+
diff --git a/docs/build/html/api/core/-transaction-for-verification/index.html b/docs/build/html/api/core/-transaction-for-verification/index.html
new file mode 100644
index 0000000000..e53900581a
--- /dev/null
+++ b/docs/build/html/api/core/-transaction-for-verification/index.html
@@ -0,0 +1,125 @@
+
+
+TransactionForVerification -
+
+
+
+core / TransactionForVerification
+
+TransactionForVerification
+data class TransactionForVerification
+A transaction in fully resolved and sig-checked form, ready for passing as input to a verification function.
+
+
+Types
+
+
+
+
+InOutGroup
+
+data class InOutGroup < T : ContractState , 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
+
+
+
+getTimestampBy
+
+fun getTimestampBy ( timestampingAuthority : Party ) : TimestampCommand ?
Simply calls commands.getTimestampBy as a shortcut to make code completion more intuitive.
+
+
+
+
+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
+
+
+
+verify
+
+fun verify ( ) : Unit
Runs the contracts for this transaction.
+
+
+
+
+
+
diff --git a/docs/build/html/api/core/-transaction-for-verification/orig-hash.html b/docs/build/html/api/core/-transaction-for-verification/orig-hash.html
new file mode 100644
index 0000000000..d1d8e09a3d
--- /dev/null
+++ b/docs/build/html/api/core/-transaction-for-verification/orig-hash.html
@@ -0,0 +1,15 @@
+
+
+TransactionForVerification.origHash -
+
+
+
+core / TransactionForVerification / origHash
+
+origHash
+
+val origHash : SecureHash
+
+
+
+
diff --git a/docs/build/html/api/core/-transaction-for-verification/out-states.html b/docs/build/html/api/core/-transaction-for-verification/out-states.html
new file mode 100644
index 0000000000..38364cca9d
--- /dev/null
+++ b/docs/build/html/api/core/-transaction-for-verification/out-states.html
@@ -0,0 +1,15 @@
+
+
+TransactionForVerification.outStates -
+
+
+
+core / TransactionForVerification / outStates
+
+outStates
+
+val outStates : List < ContractState >
+
+
+
+
diff --git a/docs/build/html/api/core/-transaction-for-verification/verify.html b/docs/build/html/api/core/-transaction-for-verification/verify.html
new file mode 100644
index 0000000000..74b73275d7
--- /dev/null
+++ b/docs/build/html/api/core/-transaction-for-verification/verify.html
@@ -0,0 +1,25 @@
+
+
+TransactionForVerification.verify -
+
+
+
+core / TransactionForVerification / verify
+
+verify
+
+fun verify ( ) : Unit
+Runs the contracts for this transaction.
+TODO: Move this out of the core data structure definitions, once unit tests are more cleanly separated.
+
+
+Exceptions
+
+TransactionVerificationException
- if a contract throws an exception, the original is in the cause field
+
+
+IllegalStateException
- if a state refers to an unknown contract.
+
+
+
+
diff --git a/docs/build/html/api/core/-transaction-graph-search/-init-.html b/docs/build/html/api/core/-transaction-graph-search/-init-.html
new file mode 100644
index 0000000000..55fc6a8a61
--- /dev/null
+++ b/docs/build/html/api/core/-transaction-graph-search/-init-.html
@@ -0,0 +1,21 @@
+
+
+TransactionGraphSearch. -
+
+
+
+core / TransactionGraphSearch / <init>
+
+<init>
+TransactionGraphSearch ( transactions : Map < SecureHash , SignedTransaction > , 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.
+TODO: Write unit tests for this.
+
+
+
+
+
+
diff --git a/docs/build/html/api/core/-transaction-graph-search/-query/-init-.html b/docs/build/html/api/core/-transaction-graph-search/-query/-init-.html
new file mode 100644
index 0000000000..ee4cd2c866
--- /dev/null
+++ b/docs/build/html/api/core/-transaction-graph-search/-query/-init-.html
@@ -0,0 +1,14 @@
+
+
+TransactionGraphSearch.Query. -
+
+
+
+core / TransactionGraphSearch / Query / <init>
+
+<init>
+Query ( withCommandOfType : Class < out CommandData > ? = null)
+
+
+
+
diff --git a/docs/build/html/api/core/-transaction-graph-search/-query/index.html b/docs/build/html/api/core/-transaction-graph-search/-query/index.html
new file mode 100644
index 0000000000..a428f35278
--- /dev/null
+++ b/docs/build/html/api/core/-transaction-graph-search/-query/index.html
@@ -0,0 +1,36 @@
+
+
+TransactionGraphSearch.Query -
+
+
+
+core / TransactionGraphSearch / Query
+
+Query
+class Query
+
+
+Constructors
+
+Properties
+
+
+
diff --git a/docs/build/html/api/core/-transaction-graph-search/-query/with-command-of-type.html b/docs/build/html/api/core/-transaction-graph-search/-query/with-command-of-type.html
new file mode 100644
index 0000000000..9424443322
--- /dev/null
+++ b/docs/build/html/api/core/-transaction-graph-search/-query/with-command-of-type.html
@@ -0,0 +1,15 @@
+
+
+TransactionGraphSearch.Query.withCommandOfType -
+
+
+
+core / TransactionGraphSearch / Query / withCommandOfType
+
+withCommandOfType
+
+val withCommandOfType : Class < out CommandData > ?
+
+
+
+
diff --git a/docs/build/html/api/core/-transaction-graph-search/call.html b/docs/build/html/api/core/-transaction-graph-search/call.html
new file mode 100644
index 0000000000..f46cd2c157
--- /dev/null
+++ b/docs/build/html/api/core/-transaction-graph-search/call.html
@@ -0,0 +1,15 @@
+
+
+TransactionGraphSearch.call -
+
+
+
+core / TransactionGraphSearch / call
+
+call
+
+fun call ( ) : List < WireTransaction >
+
+
+
+
diff --git a/docs/build/html/api/core/-transaction-graph-search/index.html b/docs/build/html/api/core/-transaction-graph-search/index.html
new file mode 100644
index 0000000000..31ade0165c
--- /dev/null
+++ b/docs/build/html/api/core/-transaction-graph-search/index.html
@@ -0,0 +1,79 @@
+
+
+TransactionGraphSearch -
+
+
+
+core / 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.
+TODO: Write unit tests for this.
+
+
+
+
+Types
+
+
+
+
+Query
+
+class Query
+
+
+
+Constructors
+
+
+
+
+<init>
+
+TransactionGraphSearch ( transactions : Map < SecureHash , SignedTransaction > , 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/core/-transaction-graph-search/query.html b/docs/build/html/api/core/-transaction-graph-search/query.html
new file mode 100644
index 0000000000..bd7adebefc
--- /dev/null
+++ b/docs/build/html/api/core/-transaction-graph-search/query.html
@@ -0,0 +1,15 @@
+
+
+TransactionGraphSearch.query -
+
+
+
+core / TransactionGraphSearch / query
+
+query
+
+var query : Query
+
+
+
+
diff --git a/docs/build/html/api/core/-transaction-graph-search/start-points.html b/docs/build/html/api/core/-transaction-graph-search/start-points.html
new file mode 100644
index 0000000000..7b3f6a07c6
--- /dev/null
+++ b/docs/build/html/api/core/-transaction-graph-search/start-points.html
@@ -0,0 +1,15 @@
+
+
+TransactionGraphSearch.startPoints -
+
+
+
+core / TransactionGraphSearch / startPoints
+
+startPoints
+
+val startPoints : List < WireTransaction >
+
+
+
+
diff --git a/docs/build/html/api/core/-transaction-graph-search/transactions.html b/docs/build/html/api/core/-transaction-graph-search/transactions.html
new file mode 100644
index 0000000000..7c7b0904e3
--- /dev/null
+++ b/docs/build/html/api/core/-transaction-graph-search/transactions.html
@@ -0,0 +1,15 @@
+
+
+TransactionGraphSearch.transactions -
+
+
+
+core / TransactionGraphSearch / transactions
+
+transactions
+
+val transactions : Map < SecureHash , SignedTransaction >
+
+
+
+
diff --git a/docs/build/html/api/core/-transaction-group/-init-.html b/docs/build/html/api/core/-transaction-group/-init-.html
new file mode 100644
index 0000000000..6d6ef51258
--- /dev/null
+++ b/docs/build/html/api/core/-transaction-group/-init-.html
@@ -0,0 +1,21 @@
+
+
+TransactionGroup. -
+
+
+
+core / TransactionGroup / <init>
+
+<init>
+TransactionGroup ( transactions : Set < LedgerTransaction > , nonVerifiedRoots : Set < LedgerTransaction > )
+A TransactionGroup defines a directed acyclic graph of transactions that can be resolved with each other and then
+verified. Successful verification does not imply the non-existence of other conflicting transactions: simply that
+this subgraph does not contain conflicts and is accepted by the involved contracts.
+The inputs of the provided transactions must be resolvable either within the transactions set, or from the
+nonVerifiedRoots set. Transactions in the non-verified set are ignored other than for looking up input states.
+
+
+
+
+
+
diff --git a/docs/build/html/api/core/-transaction-group/index.html b/docs/build/html/api/core/-transaction-group/index.html
new file mode 100644
index 0000000000..ff285f040e
--- /dev/null
+++ b/docs/build/html/api/core/-transaction-group/index.html
@@ -0,0 +1,64 @@
+
+
+TransactionGroup -
+
+
+
+core / TransactionGroup
+
+TransactionGroup
+class TransactionGroup
+A TransactionGroup defines a directed acyclic graph of transactions that can be resolved with each other and then
+verified. Successful verification does not imply the non-existence of other conflicting transactions: simply that
+this subgraph does not contain conflicts and is accepted by the involved contracts.
+The inputs of the provided transactions must be resolvable either within the transactions set, or from the
+nonVerifiedRoots set. Transactions in the non-verified set are ignored other than for looking up input states.
+
+
+
+
+Constructors
+
+
+
+
+<init>
+
+TransactionGroup ( transactions : Set < LedgerTransaction > , nonVerifiedRoots : Set < LedgerTransaction > )
A TransactionGroup defines a directed acyclic graph of transactions that can be resolved with each other and then
+verified. Successful verification does not imply the non-existence of other conflicting transactions: simply that
+this subgraph does not contain conflicts and is accepted by the involved contracts.
+
+
+
+
+Properties
+
+Functions
+
+
+
diff --git a/docs/build/html/api/core/-transaction-group/non-verified-roots.html b/docs/build/html/api/core/-transaction-group/non-verified-roots.html
new file mode 100644
index 0000000000..fb6464118f
--- /dev/null
+++ b/docs/build/html/api/core/-transaction-group/non-verified-roots.html
@@ -0,0 +1,15 @@
+
+
+TransactionGroup.nonVerifiedRoots -
+
+
+
+core / TransactionGroup / nonVerifiedRoots
+
+nonVerifiedRoots
+
+val nonVerifiedRoots : Set < LedgerTransaction >
+
+
+
+
diff --git a/docs/build/html/api/core/-transaction-group/transactions.html b/docs/build/html/api/core/-transaction-group/transactions.html
new file mode 100644
index 0000000000..7a3ceceadb
--- /dev/null
+++ b/docs/build/html/api/core/-transaction-group/transactions.html
@@ -0,0 +1,15 @@
+
+
+TransactionGroup.transactions -
+
+
+
+core / TransactionGroup / transactions
+
+transactions
+
+val transactions : Set < LedgerTransaction >
+
+
+
+
diff --git a/docs/build/html/api/core/-transaction-group/verify.html b/docs/build/html/api/core/-transaction-group/verify.html
new file mode 100644
index 0000000000..8ad8b44360
--- /dev/null
+++ b/docs/build/html/api/core/-transaction-group/verify.html
@@ -0,0 +1,16 @@
+
+
+TransactionGroup.verify -
+
+
+
+core / TransactionGroup / verify
+
+verify
+
+fun verify ( ) : Set < TransactionForVerification >
+Verifies the group and returns the set of resolved transactions.
+
+
+
+
diff --git a/docs/build/html/api/core/-transaction-resolution-exception/-init-.html b/docs/build/html/api/core/-transaction-resolution-exception/-init-.html
new file mode 100644
index 0000000000..0ca83eb33c
--- /dev/null
+++ b/docs/build/html/api/core/-transaction-resolution-exception/-init-.html
@@ -0,0 +1,14 @@
+
+
+TransactionResolutionException. -
+
+
+
+core / TransactionResolutionException / <init>
+
+<init>
+TransactionResolutionException ( hash : SecureHash )
+
+
+
+
diff --git a/docs/build/html/api/core/-transaction-resolution-exception/hash.html b/docs/build/html/api/core/-transaction-resolution-exception/hash.html
new file mode 100644
index 0000000000..410616da55
--- /dev/null
+++ b/docs/build/html/api/core/-transaction-resolution-exception/hash.html
@@ -0,0 +1,15 @@
+
+
+TransactionResolutionException.hash -
+
+
+
+core / TransactionResolutionException / hash
+
+hash
+
+val hash : SecureHash
+
+
+
+
diff --git a/docs/build/html/api/core/-transaction-resolution-exception/index.html b/docs/build/html/api/core/-transaction-resolution-exception/index.html
new file mode 100644
index 0000000000..930c9fa667
--- /dev/null
+++ b/docs/build/html/api/core/-transaction-resolution-exception/index.html
@@ -0,0 +1,36 @@
+
+
+TransactionResolutionException -
+
+
+
+core / TransactionResolutionException
+
+TransactionResolutionException
+class TransactionResolutionException : Exception
+
+
+Constructors
+
+Properties
+
+
+
diff --git a/docs/build/html/api/core/-transaction-verification-exception/-init-.html b/docs/build/html/api/core/-transaction-verification-exception/-init-.html
new file mode 100644
index 0000000000..38662d55cc
--- /dev/null
+++ b/docs/build/html/api/core/-transaction-verification-exception/-init-.html
@@ -0,0 +1,15 @@
+
+
+TransactionVerificationException. -
+
+
+
+core / TransactionVerificationException / <init>
+
+<init>
+TransactionVerificationException ( tx : TransactionForVerification , contract : Contract , cause : Throwable ? )
+Thrown if a verification fails due to a contract rejection.
+
+
+
+
diff --git a/docs/build/html/api/core/-transaction-verification-exception/contract.html b/docs/build/html/api/core/-transaction-verification-exception/contract.html
new file mode 100644
index 0000000000..2965cd83c0
--- /dev/null
+++ b/docs/build/html/api/core/-transaction-verification-exception/contract.html
@@ -0,0 +1,15 @@
+
+
+TransactionVerificationException.contract -
+
+
+
+core / TransactionVerificationException / contract
+
+contract
+
+val contract : Contract
+
+
+
+
diff --git a/docs/build/html/api/core/-transaction-verification-exception/index.html b/docs/build/html/api/core/-transaction-verification-exception/index.html
new file mode 100644
index 0000000000..2b5bbe6ce0
--- /dev/null
+++ b/docs/build/html/api/core/-transaction-verification-exception/index.html
@@ -0,0 +1,44 @@
+
+
+TransactionVerificationException -
+
+
+
+core / TransactionVerificationException
+
+TransactionVerificationException
+class TransactionVerificationException : Exception
+Thrown if a verification fails due to a contract rejection.
+
+
+Constructors
+
+Properties
+
+
+
diff --git a/docs/build/html/api/core/-transaction-verification-exception/tx.html b/docs/build/html/api/core/-transaction-verification-exception/tx.html
new file mode 100644
index 0000000000..2a59509917
--- /dev/null
+++ b/docs/build/html/api/core/-transaction-verification-exception/tx.html
@@ -0,0 +1,15 @@
+
+
+TransactionVerificationException.tx -
+
+
+
+core / TransactionVerificationException / tx
+
+tx
+
+val tx : TransactionForVerification
+
+
+
+
diff --git a/docs/build/html/api/core/-transient-property/-init-.html b/docs/build/html/api/core/-transient-property/-init-.html
new file mode 100644
index 0000000000..4539886a70
--- /dev/null
+++ b/docs/build/html/api/core/-transient-property/-init-.html
@@ -0,0 +1,17 @@
+
+
+TransientProperty. -
+
+
+
+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/core/-transient-property/get-value.html b/docs/build/html/api/core/-transient-property/get-value.html
new file mode 100644
index 0000000000..ea173eece3
--- /dev/null
+++ b/docs/build/html/api/core/-transient-property/get-value.html
@@ -0,0 +1,15 @@
+
+
+TransientProperty.getValue -
+
+
+
+core / TransientProperty / getValue
+
+getValue
+
+operator fun getValue ( thisRef : Any ? , property : KProperty < * > ) : T
+
+
+
+
diff --git a/docs/build/html/api/core/-transient-property/index.html b/docs/build/html/api/core/-transient-property/index.html
new file mode 100644
index 0000000000..eddf584bad
--- /dev/null
+++ b/docs/build/html/api/core/-transient-property/index.html
@@ -0,0 +1,42 @@
+
+
+TransientProperty -
+
+
+
+core / TransientProperty
+
+TransientProperty
+class TransientProperty < 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/core/-type-only-command-data/-init-.html b/docs/build/html/api/core/-type-only-command-data/-init-.html
new file mode 100644
index 0000000000..a9567477e0
--- /dev/null
+++ b/docs/build/html/api/core/-type-only-command-data/-init-.html
@@ -0,0 +1,15 @@
+
+
+TypeOnlyCommandData. -
+
+
+
+core / 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/core/-type-only-command-data/equals.html b/docs/build/html/api/core/-type-only-command-data/equals.html
new file mode 100644
index 0000000000..3858a46095
--- /dev/null
+++ b/docs/build/html/api/core/-type-only-command-data/equals.html
@@ -0,0 +1,15 @@
+
+
+TypeOnlyCommandData.equals -
+
+
+
+core / TypeOnlyCommandData / equals
+
+equals
+
+open fun equals ( other : Any ? ) : Boolean
+
+
+
+
diff --git a/docs/build/html/api/core/-type-only-command-data/hash-code.html b/docs/build/html/api/core/-type-only-command-data/hash-code.html
new file mode 100644
index 0000000000..07a0bce78a
--- /dev/null
+++ b/docs/build/html/api/core/-type-only-command-data/hash-code.html
@@ -0,0 +1,15 @@
+
+
+TypeOnlyCommandData.hashCode -
+
+
+
+core / TypeOnlyCommandData / hashCode
+
+hashCode
+
+open fun hashCode ( ) : <ERROR CLASS>
+
+
+
+
diff --git a/docs/build/html/api/core/-type-only-command-data/index.html b/docs/build/html/api/core/-type-only-command-data/index.html
new file mode 100644
index 0000000000..442d41d3f6
--- /dev/null
+++ b/docs/build/html/api/core/-type-only-command-data/index.html
@@ -0,0 +1,121 @@
+
+
+TypeOnlyCommandData -
+
+
+
+core / 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
+
+
+
+
+Agree
+
+class Agree : TypeOnlyCommandData , Commands
+
+
+
+Close
+
+class Close : TypeOnlyCommandData , Commands
+
+
+
+Create
+
+class Create : TypeOnlyCommandData , Commands
+
+
+
+Fix
+
+class Fix : TypeOnlyCommandData , Commands
+
+
+
+Issue
+
+class Issue : TypeOnlyCommandData , Commands
+
+
+
+Mature
+
+class Mature : TypeOnlyCommandData , Commands
+
+
+
+Move
+
+class Move : TypeOnlyCommandData , Commands
+
+
+
+Move
+
+class Move : TypeOnlyCommandData , Commands
+
+
+
+Pay
+
+class Pay : TypeOnlyCommandData , Commands
+
+
+
+Pledge
+
+class Pledge : TypeOnlyCommandData , Commands
+
+
+
+Redeem
+
+class Redeem : TypeOnlyCommandData , Commands
+
+
+
+Register
+
+class Register : TypeOnlyCommandData , Commands
+
+
+
+
+
diff --git a/docs/build/html/api/core/-u-s-d.html b/docs/build/html/api/core/-u-s-d.html
new file mode 100644
index 0000000000..181dc00b36
--- /dev/null
+++ b/docs/build/html/api/core/-u-s-d.html
@@ -0,0 +1,15 @@
+
+
+USD -
+
+
+
+core / USD
+
+USD
+
+val USD : Currency
+
+
+
+
diff --git a/docs/build/html/api/core/-wire-transaction/-init-.html b/docs/build/html/api/core/-wire-transaction/-init-.html
new file mode 100644
index 0000000000..97143a80f6
--- /dev/null
+++ b/docs/build/html/api/core/-wire-transaction/-init-.html
@@ -0,0 +1,15 @@
+
+
+WireTransaction. -
+
+
+
+core / WireTransaction / <init>
+
+<init>
+WireTransaction ( inputs : List < StateRef > , attachments : List < SecureHash > , outputs : List < ContractState > , commands : List < Command > )
+Transaction ready for serialisation, without any signatures attached.
+
+
+
+
diff --git a/docs/build/html/api/core/-wire-transaction/attachments.html b/docs/build/html/api/core/-wire-transaction/attachments.html
new file mode 100644
index 0000000000..ad948a2821
--- /dev/null
+++ b/docs/build/html/api/core/-wire-transaction/attachments.html
@@ -0,0 +1,15 @@
+
+
+WireTransaction.attachments -
+
+
+
+core / WireTransaction / attachments
+
+attachments
+
+val attachments : List < SecureHash >
+
+
+
+
diff --git a/docs/build/html/api/core/-wire-transaction/commands.html b/docs/build/html/api/core/-wire-transaction/commands.html
new file mode 100644
index 0000000000..cd74dcc4dd
--- /dev/null
+++ b/docs/build/html/api/core/-wire-transaction/commands.html
@@ -0,0 +1,15 @@
+
+
+WireTransaction.commands -
+
+
+
+core / WireTransaction / commands
+
+commands
+
+val commands : List < Command >
+
+
+
+
diff --git a/docs/build/html/api/core/-wire-transaction/deserialize.html b/docs/build/html/api/core/-wire-transaction/deserialize.html
new file mode 100644
index 0000000000..1f69d3c198
--- /dev/null
+++ b/docs/build/html/api/core/-wire-transaction/deserialize.html
@@ -0,0 +1,15 @@
+
+
+WireTransaction.deserialize -
+
+
+
+core / WireTransaction / deserialize
+
+deserialize
+
+fun deserialize ( bits : SerializedBytes < WireTransaction > , kryo : <ERROR CLASS> = THREAD_LOCAL_KRYO.get()) : WireTransaction
+
+
+
+
diff --git a/docs/build/html/api/core/-wire-transaction/id.html b/docs/build/html/api/core/-wire-transaction/id.html
new file mode 100644
index 0000000000..e036e71543
--- /dev/null
+++ b/docs/build/html/api/core/-wire-transaction/id.html
@@ -0,0 +1,16 @@
+
+
+WireTransaction.id -
+
+
+
+core / WireTransaction / id
+
+id
+
+val id : SecureHash
+Overrides NamedByHash.id
+
+
+
+
diff --git a/docs/build/html/api/core/-wire-transaction/index.html b/docs/build/html/api/core/-wire-transaction/index.html
new file mode 100644
index 0000000000..9e9482d65c
--- /dev/null
+++ b/docs/build/html/api/core/-wire-transaction/index.html
@@ -0,0 +1,110 @@
+
+
+WireTransaction -
+
+
+
+core / WireTransaction
+
+WireTransaction
+data class WireTransaction : NamedByHash
+Transaction ready for serialisation, without any signatures attached.
+
+
+Constructors
+
+Properties
+
+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/core/-wire-transaction/inputs.html b/docs/build/html/api/core/-wire-transaction/inputs.html
new file mode 100644
index 0000000000..442019e737
--- /dev/null
+++ b/docs/build/html/api/core/-wire-transaction/inputs.html
@@ -0,0 +1,15 @@
+
+
+WireTransaction.inputs -
+
+
+
+core / WireTransaction / inputs
+
+inputs
+
+val inputs : List < StateRef >
+
+
+
+
diff --git a/docs/build/html/api/core/-wire-transaction/out-ref.html b/docs/build/html/api/core/-wire-transaction/out-ref.html
new file mode 100644
index 0000000000..32fc839f50
--- /dev/null
+++ b/docs/build/html/api/core/-wire-transaction/out-ref.html
@@ -0,0 +1,21 @@
+
+
+WireTransaction.outRef -
+
+
+
+core / 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/core/-wire-transaction/outputs.html b/docs/build/html/api/core/-wire-transaction/outputs.html
new file mode 100644
index 0000000000..b8e54034dd
--- /dev/null
+++ b/docs/build/html/api/core/-wire-transaction/outputs.html
@@ -0,0 +1,15 @@
+
+
+WireTransaction.outputs -
+
+
+
+core / WireTransaction / outputs
+
+outputs
+
+val outputs : List < ContractState >
+
+
+
+
diff --git a/docs/build/html/api/core/-wire-transaction/serialized.html b/docs/build/html/api/core/-wire-transaction/serialized.html
new file mode 100644
index 0000000000..1c274ef785
--- /dev/null
+++ b/docs/build/html/api/core/-wire-transaction/serialized.html
@@ -0,0 +1,15 @@
+
+
+WireTransaction.serialized -
+
+
+
+core / WireTransaction / serialized
+
+serialized
+
+val serialized : SerializedBytes < WireTransaction >
+
+
+
+
diff --git a/docs/build/html/api/core/-wire-transaction/to-string.html b/docs/build/html/api/core/-wire-transaction/to-string.html
new file mode 100644
index 0000000000..c411f72d79
--- /dev/null
+++ b/docs/build/html/api/core/-wire-transaction/to-string.html
@@ -0,0 +1,15 @@
+
+
+WireTransaction.toString -
+
+
+
+core / WireTransaction / toString
+
+toString
+
+fun toString ( ) : String
+
+
+
+
diff --git a/docs/build/html/api/core/calculate-days-between.html b/docs/build/html/api/core/calculate-days-between.html
new file mode 100644
index 0000000000..e18737c848
--- /dev/null
+++ b/docs/build/html/api/core/calculate-days-between.html
@@ -0,0 +1,15 @@
+
+
+calculateDaysBetween -
+
+
+
+core / calculateDaysBetween
+
+calculateDaysBetween
+
+fun calculateDaysBetween ( startDate : LocalDate , endDate : LocalDate , dcbYear : DayCountBasisYear , dcbDay : DayCountBasisDay ) : Int
+
+
+
+
diff --git a/docs/build/html/api/core/currency.html b/docs/build/html/api/core/currency.html
new file mode 100644
index 0000000000..9bfbff6c84
--- /dev/null
+++ b/docs/build/html/api/core/currency.html
@@ -0,0 +1,23 @@
+
+
+currency -
+
+
+
+core / currency
+
+currency
+
+fun currency ( code : String ) : Currency
+Defines a simple domain specific language for the specificiation 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/core/extract-zip-file.html b/docs/build/html/api/core/extract-zip-file.html
new file mode 100644
index 0000000000..c8febca963
--- /dev/null
+++ b/docs/build/html/api/core/extract-zip-file.html
@@ -0,0 +1,16 @@
+
+
+extractZipFile -
+
+
+
+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/core/failure.html b/docs/build/html/api/core/failure.html
new file mode 100644
index 0000000000..05733425c0
--- /dev/null
+++ b/docs/build/html/api/core/failure.html
@@ -0,0 +1,17 @@
+
+
+failure -
+
+
+
+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/core/hash.html b/docs/build/html/api/core/hash.html
new file mode 100644
index 0000000000..0402b5b79e
--- /dev/null
+++ b/docs/build/html/api/core/hash.html
@@ -0,0 +1,16 @@
+
+
+hash -
+
+
+
+core / 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/core/index.html b/docs/build/html/api/core/index.html
new file mode 100644
index 0000000000..634961ba71
--- /dev/null
+++ b/docs/build/html/api/core/index.html
@@ -0,0 +1,545 @@
+
+
+core -
+
+
+
+core
+
+Package core
+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 : Comparable < Amount >
Amount represents a positive quantity of currency, measured in pennies, which are the smallest representable units.
+
+
+
+
+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.
+
+
+
+
+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.
+
+
+
+
+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
+
+
+
+
+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.
+
+
+
+
+DateOffset
+
+enum class DateOffset
Date offset that the fixing is done prior to the accrual start date.
+Currently not used in the calculation.
+
+
+
+
+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.
+
+
+
+
+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)
+
+
+
+
+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).
+
+
+
+
+LedgerTransaction
+
+data class LedgerTransaction : NamedByHash
A LedgerTransaction wraps the data needed to calculate one or more successor states from a set of input states.
+It is the first step after extraction from a WireTransaction. The signatures at this point have been lined up
+with the commands from the wire, and verified/looked up.
+
+
+
+
+LinearState
+
+interface LinearState : ContractState
A state that evolves by superseding itself, all of which share the common "thread"
+
+
+
+
+NamedByHash
+
+interface NamedByHash
Implemented by anything that can be named by a secure hash value (e.g. transactions, attachments).
+
+
+
+
+OwnableState
+
+interface OwnableState : ContractState
+
+
+
+Party
+
+data class Party
A Party is well known (name, pubkey) pair. In a real system this would probably be an X.509 certificate.
+
+
+
+
+PartyReference
+
+data class PartyReference
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
+
+
+
+SignedTransaction
+
+data class SignedTransaction : NamedByHash
Container for a WireTransaction and attached signatures.
+
+
+
+
+StateAndRef
+
+data class StateAndRef < out T : ContractState >
A StateAndRef is simply a (state, ref) pair. For instance, a wallet (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
+
+
+
+
+ThreadBox
+
+class ThreadBox < 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.
+
+
+
+
+TimestampCommand
+
+data class TimestampCommand : CommandData
If present in a transaction, contains a time that was verified by the timestamping authority/authorities whose
+public keys are identified in the containing Command object. The true time must be between (after, before)
+
+
+
+
+TransactionBuilder
+
+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 or modifying the existing set.
+Then once the states and commands are right, this class can be used as a holding bucket to gather signatures from
+multiple parties.
+
+
+
+
+TransactionForVerification
+
+data class TransactionForVerification
A transaction in fully resolved and sig-checked form, ready for passing as input to a verification function.
+
+
+
+
+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.
+
+
+
+
+TransactionGroup
+
+class TransactionGroup
A TransactionGroup defines a directed acyclic graph of transactions that can be resolved with each other and then
+verified. Successful verification does not imply the non-existence of other conflicting transactions: simply that
+this subgraph does not contain conflicts and is accepted by the involved contracts.
+
+
+
+
+TransientProperty
+
+class TransientProperty < 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.
+
+
+
+
+TypeOnlyCommandData
+
+abstract class TypeOnlyCommandData : CommandData
Commands that inherit from this are intended to have no data items: its only their presence that matters.
+
+
+
+
+WireTransaction
+
+data class WireTransaction : NamedByHash
Transaction ready for serialisation, without any signatures attached.
+
+
+
+
+Exceptions
+
+Extensions for External Classes
+
+Properties
+
+Functions
+
+
+
+
+calculateDaysBetween
+
+fun calculateDaysBetween ( startDate : LocalDate , endDate : LocalDate , dcbYear : DayCountBasisYear , dcbDay : DayCountBasisDay ) : Int
+
+
+
+currency
+
+fun currency ( code : String ) : Currency
Defines a simple domain specific language for the specificiation of financial contracts. Currently covers:
+
+
+
+
+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 >
+
+
+
+hash
+
+fun ContractState . hash ( ) : SecureHash
Returns the SHA-256 hash of the serialised contents of this state (not cached)
+
+
+
+
+logElapsedTime
+
+fun < T > logElapsedTime ( label : String , logger : <ERROR CLASS> ? = null, body : ( ) -> T ) : 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.
+
+
+
+
+requireThat
+
+fun < R > requireThat ( body : Requirements . ( ) -> R ) : R
+
+
+
+setFrom
+
+fun < T > <ERROR CLASS> < T > . setFrom ( logger : <ERROR CLASS> ? = null, block : ( ) -> T ) : <ERROR CLASS> < T >
Executes the given block and sets the future to either the result, or any exception that was thrown.
+
+
+
+
+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 >
+
+
+
+toLedgerTransaction
+
+fun WireTransaction . toLedgerTransaction ( identityService : IdentityService , attachmentStorage : AttachmentStorage ) : LedgerTransaction
Looks up identities and attachments from storage to generate a LedgerTransaction .
+
+
+
+
+verifyToLedgerTransaction
+
+fun SignedTransaction . verifyToLedgerTransaction ( identityService : IdentityService , attachmentStorage : AttachmentStorage ) : LedgerTransaction
Calls verify to check all required signatures are present, and then uses the passed IdentityService to call
+WireTransaction.toLedgerTransaction to look up well known identities from pubkeys.
+
+
+
+
+
+
diff --git a/docs/build/html/api/core/java.nio.file.-path/index.html b/docs/build/html/api/core/java.nio.file.-path/index.html
new file mode 100644
index 0000000000..3fa5eace28
--- /dev/null
+++ b/docs/build/html/api/core/java.nio.file.-path/index.html
@@ -0,0 +1,21 @@
+
+
+core.java.nio.file.Path -
+
+
+
+core / java.nio.file.Path
+
+Extensions for java.nio.file.Path
+
+
+
diff --git a/docs/build/html/api/core/java.nio.file.-path/use.html b/docs/build/html/api/core/java.nio.file.-path/use.html
new file mode 100644
index 0000000000..78aaa6daf9
--- /dev/null
+++ b/docs/build/html/api/core/java.nio.file.-path/use.html
@@ -0,0 +1,15 @@
+
+
+use -
+
+
+
+core / java.nio.file.Path / use
+
+use
+
+fun < R > Path . use ( block : ( InputStream ) -> R ) : R
+
+
+
+
diff --git a/docs/build/html/api/core/java.time.-local-date/index.html b/docs/build/html/api/core/java.time.-local-date/index.html
new file mode 100644
index 0000000000..3a55bd247c
--- /dev/null
+++ b/docs/build/html/api/core/java.time.-local-date/index.html
@@ -0,0 +1,21 @@
+
+
+core.java.time.LocalDate -
+
+
+
+core / java.time.LocalDate
+
+Extensions for java.time.LocalDate
+
+
+
diff --git a/docs/build/html/api/core/java.time.-local-date/is-working-day.html b/docs/build/html/api/core/java.time.-local-date/is-working-day.html
new file mode 100644
index 0000000000..6ebe176ff5
--- /dev/null
+++ b/docs/build/html/api/core/java.time.-local-date/is-working-day.html
@@ -0,0 +1,15 @@
+
+
+isWorkingDay -
+
+
+
+core / java.time.LocalDate / isWorkingDay
+
+isWorkingDay
+
+fun LocalDate . isWorkingDay ( accordingToCalendar : BusinessCalendar ) : Boolean
+
+
+
+
diff --git a/docs/build/html/api/core/java.time.temporal.-temporal/index.html b/docs/build/html/api/core/java.time.temporal.-temporal/index.html
new file mode 100644
index 0000000000..6ca04996d7
--- /dev/null
+++ b/docs/build/html/api/core/java.time.temporal.-temporal/index.html
@@ -0,0 +1,21 @@
+
+
+core.java.time.temporal.Temporal -
+
+
+
+core / java.time.temporal.Temporal
+
+Extensions for java.time.temporal.Temporal
+
+
+
diff --git a/docs/build/html/api/core/java.time.temporal.-temporal/until.html b/docs/build/html/api/core/java.time.temporal.-temporal/until.html
new file mode 100644
index 0000000000..4d85b2b2b6
--- /dev/null
+++ b/docs/build/html/api/core/java.time.temporal.-temporal/until.html
@@ -0,0 +1,15 @@
+
+
+until -
+
+
+
+core / java.time.temporal.Temporal / until
+
+until
+
+infix fun Temporal . until ( endExclusive : Temporal ) : Duration
+
+
+
+
diff --git a/docs/build/html/api/core/kotlin.-double/-d-o-l-l-a-r-s.html b/docs/build/html/api/core/kotlin.-double/-d-o-l-l-a-r-s.html
new file mode 100644
index 0000000000..16bfbc55c7
--- /dev/null
+++ b/docs/build/html/api/core/kotlin.-double/-d-o-l-l-a-r-s.html
@@ -0,0 +1,15 @@
+
+
+DOLLARS -
+
+
+
+core / kotlin.Double / DOLLARS
+
+DOLLARS
+
+val Double . DOLLARS : Amount
+
+
+
+
diff --git a/docs/build/html/api/core/kotlin.-double/bd.html b/docs/build/html/api/core/kotlin.-double/bd.html
new file mode 100644
index 0000000000..6e2e40a034
--- /dev/null
+++ b/docs/build/html/api/core/kotlin.-double/bd.html
@@ -0,0 +1,15 @@
+
+
+bd -
+
+
+
+core / kotlin.Double / bd
+
+bd
+
+val Double . bd : BigDecimal
+
+
+
+
diff --git a/docs/build/html/api/core/kotlin.-double/index.html b/docs/build/html/api/core/kotlin.-double/index.html
new file mode 100644
index 0000000000..871c644997
--- /dev/null
+++ b/docs/build/html/api/core/kotlin.-double/index.html
@@ -0,0 +1,27 @@
+
+
+core.kotlin.Double -
+
+
+
+core / kotlin.Double
+
+Extensions for kotlin.Double
+
+
+
diff --git a/docs/build/html/api/core/kotlin.-int/-d-o-l-l-a-r-s.html b/docs/build/html/api/core/kotlin.-int/-d-o-l-l-a-r-s.html
new file mode 100644
index 0000000000..74f8f32024
--- /dev/null
+++ b/docs/build/html/api/core/kotlin.-int/-d-o-l-l-a-r-s.html
@@ -0,0 +1,15 @@
+
+
+DOLLARS -
+
+
+
+core / kotlin.Int / DOLLARS
+
+DOLLARS
+
+val Int . DOLLARS : Amount
+
+
+
+
diff --git a/docs/build/html/api/core/kotlin.-int/-p-o-u-n-d-s.html b/docs/build/html/api/core/kotlin.-int/-p-o-u-n-d-s.html
new file mode 100644
index 0000000000..a5444c984a
--- /dev/null
+++ b/docs/build/html/api/core/kotlin.-int/-p-o-u-n-d-s.html
@@ -0,0 +1,15 @@
+
+
+POUNDS -
+
+
+
+core / kotlin.Int / POUNDS
+
+POUNDS
+
+val Int . POUNDS : Amount
+
+
+
+
diff --git a/docs/build/html/api/core/kotlin.-int/-s-w-i-s-s_-f-r-a-n-c-s.html b/docs/build/html/api/core/kotlin.-int/-s-w-i-s-s_-f-r-a-n-c-s.html
new file mode 100644
index 0000000000..2025866635
--- /dev/null
+++ b/docs/build/html/api/core/kotlin.-int/-s-w-i-s-s_-f-r-a-n-c-s.html
@@ -0,0 +1,15 @@
+
+
+SWISS_FRANCS -
+
+
+
+core / kotlin.Int / SWISS_FRANCS
+
+SWISS_FRANCS
+
+val Int . SWISS_FRANCS : Amount
+
+
+
+
diff --git a/docs/build/html/api/core/kotlin.-int/bd.html b/docs/build/html/api/core/kotlin.-int/bd.html
new file mode 100644
index 0000000000..5314d18dbd
--- /dev/null
+++ b/docs/build/html/api/core/kotlin.-int/bd.html
@@ -0,0 +1,15 @@
+
+
+bd -
+
+
+
+core / kotlin.Int / bd
+
+bd
+
+val Int . bd : BigDecimal
+
+
+
+
diff --git a/docs/build/html/api/core/kotlin.-int/days.html b/docs/build/html/api/core/kotlin.-int/days.html
new file mode 100644
index 0000000000..6f9d0a1476
--- /dev/null
+++ b/docs/build/html/api/core/kotlin.-int/days.html
@@ -0,0 +1,15 @@
+
+
+days -
+
+
+
+core / kotlin.Int / days
+
+days
+
+val Int . days : Duration
+
+
+
+
diff --git a/docs/build/html/api/core/kotlin.-int/hours.html b/docs/build/html/api/core/kotlin.-int/hours.html
new file mode 100644
index 0000000000..42d025c923
--- /dev/null
+++ b/docs/build/html/api/core/kotlin.-int/hours.html
@@ -0,0 +1,15 @@
+
+
+hours -
+
+
+
+core / kotlin.Int / hours
+
+hours
+
+val Int . hours : Duration
+
+
+
+
diff --git a/docs/build/html/api/core/kotlin.-int/index.html b/docs/build/html/api/core/kotlin.-int/index.html
new file mode 100644
index 0000000000..92a6d03d79
--- /dev/null
+++ b/docs/build/html/api/core/kotlin.-int/index.html
@@ -0,0 +1,63 @@
+
+
+core.kotlin.Int -
+
+
+
+core / kotlin.Int
+
+Extensions for kotlin.Int
+
+
+
diff --git a/docs/build/html/api/core/kotlin.-int/minutes.html b/docs/build/html/api/core/kotlin.-int/minutes.html
new file mode 100644
index 0000000000..ec227c5768
--- /dev/null
+++ b/docs/build/html/api/core/kotlin.-int/minutes.html
@@ -0,0 +1,15 @@
+
+
+minutes -
+
+
+
+core / kotlin.Int / minutes
+
+minutes
+
+val Int . minutes : Duration
+
+
+
+
diff --git a/docs/build/html/api/core/kotlin.-int/seconds.html b/docs/build/html/api/core/kotlin.-int/seconds.html
new file mode 100644
index 0000000000..9d4532be30
--- /dev/null
+++ b/docs/build/html/api/core/kotlin.-int/seconds.html
@@ -0,0 +1,15 @@
+
+
+seconds -
+
+
+
+core / kotlin.Int / seconds
+
+seconds
+
+val Int . seconds : Duration
+
+
+
+
diff --git a/docs/build/html/api/core/kotlin.-long/bd.html b/docs/build/html/api/core/kotlin.-long/bd.html
new file mode 100644
index 0000000000..c99415b6f1
--- /dev/null
+++ b/docs/build/html/api/core/kotlin.-long/bd.html
@@ -0,0 +1,15 @@
+
+
+bd -
+
+
+
+core / kotlin.Long / bd
+
+bd
+
+val Long . bd : BigDecimal
+
+
+
+
diff --git a/docs/build/html/api/core/kotlin.-long/index.html b/docs/build/html/api/core/kotlin.-long/index.html
new file mode 100644
index 0000000000..a2280a25e1
--- /dev/null
+++ b/docs/build/html/api/core/kotlin.-long/index.html
@@ -0,0 +1,21 @@
+
+
+core.kotlin.Long -
+
+
+
+core / kotlin.Long
+
+Extensions for kotlin.Long
+
+
+
diff --git a/docs/build/html/api/core/kotlin.-string/bd.html b/docs/build/html/api/core/kotlin.-string/bd.html
new file mode 100644
index 0000000000..fc47143355
--- /dev/null
+++ b/docs/build/html/api/core/kotlin.-string/bd.html
@@ -0,0 +1,15 @@
+
+
+bd -
+
+
+
+core / kotlin.String / bd
+
+bd
+
+val String . bd : BigDecimal
+
+
+
+
diff --git a/docs/build/html/api/core/kotlin.-string/index.html b/docs/build/html/api/core/kotlin.-string/index.html
new file mode 100644
index 0000000000..01028e14af
--- /dev/null
+++ b/docs/build/html/api/core/kotlin.-string/index.html
@@ -0,0 +1,21 @@
+
+
+core.kotlin.String -
+
+
+
+core / kotlin.String
+
+Extensions for kotlin.String
+
+
+
diff --git a/docs/build/html/api/core/kotlin.collections.-iterable/index.html b/docs/build/html/api/core/kotlin.collections.-iterable/index.html
new file mode 100644
index 0000000000..e5861733cd
--- /dev/null
+++ b/docs/build/html/api/core/kotlin.collections.-iterable/index.html
@@ -0,0 +1,33 @@
+
+
+core.kotlin.collections.Iterable -
+
+
+
+core / kotlin.collections.Iterable
+
+Extensions for kotlin.collections.Iterable
+
+
+
diff --git a/docs/build/html/api/core/kotlin.collections.-iterable/sum-or-null.html b/docs/build/html/api/core/kotlin.collections.-iterable/sum-or-null.html
new file mode 100644
index 0000000000..94840397a3
--- /dev/null
+++ b/docs/build/html/api/core/kotlin.collections.-iterable/sum-or-null.html
@@ -0,0 +1,15 @@
+
+
+sumOrNull -
+
+
+
+core / kotlin.collections.Iterable / sumOrNull
+
+sumOrNull
+
+fun Iterable < Amount > . sumOrNull ( ) : Nothing ?
+
+
+
+
diff --git a/docs/build/html/api/core/kotlin.collections.-iterable/sum-or-throw.html b/docs/build/html/api/core/kotlin.collections.-iterable/sum-or-throw.html
new file mode 100644
index 0000000000..30e4673c4f
--- /dev/null
+++ b/docs/build/html/api/core/kotlin.collections.-iterable/sum-or-throw.html
@@ -0,0 +1,15 @@
+
+
+sumOrThrow -
+
+
+
+core / kotlin.collections.Iterable / sumOrThrow
+
+sumOrThrow
+
+fun Iterable < Amount > . sumOrThrow ( ) : <ERROR CLASS>
+
+
+
+
diff --git a/docs/build/html/api/core/kotlin.collections.-iterable/sum-or-zero.html b/docs/build/html/api/core/kotlin.collections.-iterable/sum-or-zero.html
new file mode 100644
index 0000000000..62958295fa
--- /dev/null
+++ b/docs/build/html/api/core/kotlin.collections.-iterable/sum-or-zero.html
@@ -0,0 +1,15 @@
+
+
+sumOrZero -
+
+
+
+core / kotlin.collections.Iterable / sumOrZero
+
+sumOrZero
+
+fun Iterable < Amount > . sumOrZero ( currency : Currency ) : Amount
+
+
+
+
diff --git a/docs/build/html/api/core/kotlin.collections.-list/filter-states-of-type.html b/docs/build/html/api/core/kotlin.collections.-list/filter-states-of-type.html
new file mode 100644
index 0000000000..f897243131
--- /dev/null
+++ b/docs/build/html/api/core/kotlin.collections.-list/filter-states-of-type.html
@@ -0,0 +1,16 @@
+
+
+filterStatesOfType -
+
+
+
+core / kotlin.collections.List / filterStatesOfType
+
+filterStatesOfType
+
+inline fun < reified T : ContractState > List < 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/core/kotlin.collections.-list/get-timestamp-by-name.html b/docs/build/html/api/core/kotlin.collections.-list/get-timestamp-by-name.html
new file mode 100644
index 0000000000..101fc4849d
--- /dev/null
+++ b/docs/build/html/api/core/kotlin.collections.-list/get-timestamp-by-name.html
@@ -0,0 +1,18 @@
+
+
+getTimestampByName -
+
+
+
+core / kotlin.collections.List / getTimestampByName
+
+getTimestampByName
+
+fun List < AuthenticatedObject < CommandData > > . getTimestampByName ( vararg names : String ) : TimestampCommand ?
+Returns a timestamp that was signed by any of the the named authorities, or returns null if missing.
+Note that matching here is done by (verified, legal) name, not by public key. Any signature by any
+party with a name that matches (case insensitively) any of the given names will yield a match.
+
+
+
+
diff --git a/docs/build/html/api/core/kotlin.collections.-list/get-timestamp-by.html b/docs/build/html/api/core/kotlin.collections.-list/get-timestamp-by.html
new file mode 100644
index 0000000000..02c709bfd3
--- /dev/null
+++ b/docs/build/html/api/core/kotlin.collections.-list/get-timestamp-by.html
@@ -0,0 +1,16 @@
+
+
+getTimestampBy -
+
+
+
+core / kotlin.collections.List / getTimestampBy
+
+getTimestampBy
+
+fun List < AuthenticatedObject < CommandData > > . getTimestampBy ( timestampingAuthority : Party ) : TimestampCommand ?
+Returns a timestamp that was signed by the given authority, or returns null if missing.
+
+
+
+
diff --git a/docs/build/html/api/core/kotlin.collections.-list/index-of-or-throw.html b/docs/build/html/api/core/kotlin.collections.-list/index-of-or-throw.html
new file mode 100644
index 0000000000..af22989e3e
--- /dev/null
+++ b/docs/build/html/api/core/kotlin.collections.-list/index-of-or-throw.html
@@ -0,0 +1,16 @@
+
+
+indexOfOrThrow -
+
+
+
+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/core/kotlin.collections.-list/index.html b/docs/build/html/api/core/kotlin.collections.-list/index.html
new file mode 100644
index 0000000000..98a221d7d5
--- /dev/null
+++ b/docs/build/html/api/core/kotlin.collections.-list/index.html
@@ -0,0 +1,59 @@
+
+
+core.kotlin.collections.List -
+
+
+
+core / kotlin.collections.List
+
+Extensions for kotlin.collections.List
+
+
+
diff --git a/docs/build/html/api/core/kotlin.collections.-list/require-single-command.html b/docs/build/html/api/core/kotlin.collections.-list/require-single-command.html
new file mode 100644
index 0000000000..7c108de011
--- /dev/null
+++ b/docs/build/html/api/core/kotlin.collections.-list/require-single-command.html
@@ -0,0 +1,17 @@
+
+
+requireSingleCommand -
+
+
+
+core / kotlin.collections.List / requireSingleCommand
+
+requireSingleCommand
+
+inline fun < reified T : CommandData > List < AuthenticatedObject < CommandData > > . requireSingleCommand ( ) : <ERROR CLASS>
+
+fun List < AuthenticatedObject < CommandData > > . requireSingleCommand ( klass : Class < out CommandData > ) : <ERROR CLASS>
+
+
+
+
diff --git a/docs/build/html/api/core/kotlin.collections.-list/select.html b/docs/build/html/api/core/kotlin.collections.-list/select.html
new file mode 100644
index 0000000000..187d6c2bb8
--- /dev/null
+++ b/docs/build/html/api/core/kotlin.collections.-list/select.html
@@ -0,0 +1,16 @@
+
+
+select -
+
+
+
+core / kotlin.collections.List / select
+
+select
+
+inline fun < reified T : CommandData > List < AuthenticatedObject < CommandData > > . select ( signer : PublicKey ? = null, party : Party ? = null) : <ERROR CLASS>
+Filters the command list by type, party and public key all at once.
+
+
+
+
diff --git a/docs/build/html/api/core/log-elapsed-time.html b/docs/build/html/api/core/log-elapsed-time.html
new file mode 100644
index 0000000000..48d7af36af
--- /dev/null
+++ b/docs/build/html/api/core/log-elapsed-time.html
@@ -0,0 +1,15 @@
+
+
+logElapsedTime -
+
+
+
+core / logElapsedTime
+
+logElapsedTime
+
+inline fun < T > logElapsedTime ( label : String , logger : <ERROR CLASS> ? = null, body : ( ) -> T ) : T
+
+
+
+
diff --git a/docs/build/html/api/core/random63-bit-value.html b/docs/build/html/api/core/random63-bit-value.html
new file mode 100644
index 0000000000..64e0bde485
--- /dev/null
+++ b/docs/build/html/api/core/random63-bit-value.html
@@ -0,0 +1,17 @@
+
+
+random63BitValue -
+
+
+
+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/core/require-that.html b/docs/build/html/api/core/require-that.html
new file mode 100644
index 0000000000..dac23f1a48
--- /dev/null
+++ b/docs/build/html/api/core/require-that.html
@@ -0,0 +1,15 @@
+
+
+requireThat -
+
+
+
+core / requireThat
+
+requireThat
+
+inline fun < R > requireThat ( body : Requirements . ( ) -> R ) : R
+
+
+
+
diff --git a/docs/build/html/api/core/set-from.html b/docs/build/html/api/core/set-from.html
new file mode 100644
index 0000000000..8ed5b9c8f9
--- /dev/null
+++ b/docs/build/html/api/core/set-from.html
@@ -0,0 +1,16 @@
+
+
+setFrom -
+
+
+
+core / setFrom
+
+setFrom
+
+fun < T > <ERROR CLASS> < T > . setFrom ( logger : <ERROR CLASS> ? = null, block : ( ) -> T ) : <ERROR CLASS> < T >
+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/core/success.html b/docs/build/html/api/core/success.html
new file mode 100644
index 0000000000..d950611aa5
--- /dev/null
+++ b/docs/build/html/api/core/success.html
@@ -0,0 +1,17 @@
+
+
+success -
+
+
+
+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/core/then.html b/docs/build/html/api/core/then.html
new file mode 100644
index 0000000000..2e32f1359e
--- /dev/null
+++ b/docs/build/html/api/core/then.html
@@ -0,0 +1,17 @@
+
+
+then -
+
+
+
+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/core/to-ledger-transaction.html b/docs/build/html/api/core/to-ledger-transaction.html
new file mode 100644
index 0000000000..41832105eb
--- /dev/null
+++ b/docs/build/html/api/core/to-ledger-transaction.html
@@ -0,0 +1,19 @@
+
+
+toLedgerTransaction -
+
+
+
+core / toLedgerTransaction
+
+toLedgerTransaction
+
+fun WireTransaction . toLedgerTransaction ( identityService : IdentityService , attachmentStorage : AttachmentStorage ) : LedgerTransaction
+Looks up identities and attachments from storage to generate a LedgerTransaction .
+Exceptions
+
+FileNotFoundException
- if a required attachment was not found in storage.
+
+
+
+
diff --git a/docs/build/html/api/core/verify-to-ledger-transaction.html b/docs/build/html/api/core/verify-to-ledger-transaction.html
new file mode 100644
index 0000000000..92d7ac9642
--- /dev/null
+++ b/docs/build/html/api/core/verify-to-ledger-transaction.html
@@ -0,0 +1,17 @@
+
+
+verifyToLedgerTransaction -
+
+
+
+core / verifyToLedgerTransaction
+
+verifyToLedgerTransaction
+
+fun SignedTransaction . verifyToLedgerTransaction ( identityService : IdentityService , attachmentStorage : AttachmentStorage ) : LedgerTransaction
+Calls verify to check all required signatures are present, and then uses the passed IdentityService to call
+WireTransaction.toLedgerTransaction to look up well known identities from pubkeys.
+
+
+
+
diff --git a/docs/build/html/api/demos.protocols/-auto-offer-protocol/-auto-offer-message/-init-.html b/docs/build/html/api/demos.protocols/-auto-offer-protocol/-auto-offer-message/-init-.html
new file mode 100644
index 0000000000..10befe5dd4
--- /dev/null
+++ b/docs/build/html/api/demos.protocols/-auto-offer-protocol/-auto-offer-message/-init-.html
@@ -0,0 +1,14 @@
+
+
+AutoOfferProtocol.AutoOfferMessage. -
+
+
+
+demos.protocols / AutoOfferProtocol / AutoOfferMessage / <init>
+
+<init>
+AutoOfferMessage ( otherSide : SingleMessageRecipient , otherSessionID : Long , dealBeingOffered : DealState )
+
+
+
+
diff --git a/docs/build/html/api/demos.protocols/-auto-offer-protocol/-auto-offer-message/deal-being-offered.html b/docs/build/html/api/demos.protocols/-auto-offer-protocol/-auto-offer-message/deal-being-offered.html
new file mode 100644
index 0000000000..ff04087fbe
--- /dev/null
+++ b/docs/build/html/api/demos.protocols/-auto-offer-protocol/-auto-offer-message/deal-being-offered.html
@@ -0,0 +1,15 @@
+
+
+AutoOfferProtocol.AutoOfferMessage.dealBeingOffered -
+
+
+
+demos.protocols / AutoOfferProtocol / AutoOfferMessage / dealBeingOffered
+
+dealBeingOffered
+
+val dealBeingOffered : DealState
+
+
+
+
diff --git a/docs/build/html/api/demos.protocols/-auto-offer-protocol/-auto-offer-message/index.html b/docs/build/html/api/demos.protocols/-auto-offer-protocol/-auto-offer-message/index.html
new file mode 100644
index 0000000000..4f688fecfa
--- /dev/null
+++ b/docs/build/html/api/demos.protocols/-auto-offer-protocol/-auto-offer-message/index.html
@@ -0,0 +1,48 @@
+
+
+AutoOfferProtocol.AutoOfferMessage -
+
+
+
+demos.protocols / AutoOfferProtocol / AutoOfferMessage
+
+AutoOfferMessage
+data class AutoOfferMessage
+
+
+Constructors
+
+Properties
+
+
+
diff --git a/docs/build/html/api/demos.protocols/-auto-offer-protocol/-auto-offer-message/other-session-i-d.html b/docs/build/html/api/demos.protocols/-auto-offer-protocol/-auto-offer-message/other-session-i-d.html
new file mode 100644
index 0000000000..911bd73fd9
--- /dev/null
+++ b/docs/build/html/api/demos.protocols/-auto-offer-protocol/-auto-offer-message/other-session-i-d.html
@@ -0,0 +1,15 @@
+
+
+AutoOfferProtocol.AutoOfferMessage.otherSessionID -
+
+
+
+demos.protocols / AutoOfferProtocol / AutoOfferMessage / otherSessionID
+
+otherSessionID
+
+val otherSessionID : Long
+
+
+
+
diff --git a/docs/build/html/api/demos.protocols/-auto-offer-protocol/-auto-offer-message/other-side.html b/docs/build/html/api/demos.protocols/-auto-offer-protocol/-auto-offer-message/other-side.html
new file mode 100644
index 0000000000..15f3f903e1
--- /dev/null
+++ b/docs/build/html/api/demos.protocols/-auto-offer-protocol/-auto-offer-message/other-side.html
@@ -0,0 +1,15 @@
+
+
+AutoOfferProtocol.AutoOfferMessage.otherSide -
+
+
+
+demos.protocols / AutoOfferProtocol / AutoOfferMessage / otherSide
+
+otherSide
+
+val otherSide : SingleMessageRecipient
+
+
+
+
diff --git a/docs/build/html/api/demos.protocols/-auto-offer-protocol/-handler/-callback/-init-.html b/docs/build/html/api/demos.protocols/-auto-offer-protocol/-handler/-callback/-init-.html
new file mode 100644
index 0000000000..1d519bd173
--- /dev/null
+++ b/docs/build/html/api/demos.protocols/-auto-offer-protocol/-handler/-callback/-init-.html
@@ -0,0 +1,14 @@
+
+
+AutoOfferProtocol.Handler.Callback. -
+
+
+
+demos.protocols / AutoOfferProtocol / Handler / Callback / <init>
+
+<init>
+Callback ( success : ( SignedTransaction ) -> Unit )
+
+
+
+
diff --git a/docs/build/html/api/demos.protocols/-auto-offer-protocol/-handler/-callback/index.html b/docs/build/html/api/demos.protocols/-auto-offer-protocol/-handler/-callback/index.html
new file mode 100644
index 0000000000..308f80f190
--- /dev/null
+++ b/docs/build/html/api/demos.protocols/-auto-offer-protocol/-handler/-callback/index.html
@@ -0,0 +1,53 @@
+
+
+AutoOfferProtocol.Handler.Callback -
+
+
+
+demos.protocols / AutoOfferProtocol / Handler / Callback
+
+Callback
+class Callback
+
+
+Constructors
+
+Properties
+
+Functions
+
+
+
diff --git a/docs/build/html/api/demos.protocols/-auto-offer-protocol/-handler/-callback/on-failure.html b/docs/build/html/api/demos.protocols/-auto-offer-protocol/-handler/-callback/on-failure.html
new file mode 100644
index 0000000000..ef40453276
--- /dev/null
+++ b/docs/build/html/api/demos.protocols/-auto-offer-protocol/-handler/-callback/on-failure.html
@@ -0,0 +1,15 @@
+
+
+AutoOfferProtocol.Handler.Callback.onFailure -
+
+
+
+demos.protocols / AutoOfferProtocol / Handler / Callback / onFailure
+
+onFailure
+
+fun onFailure ( t : Throwable ? ) : Unit
+
+
+
+
diff --git a/docs/build/html/api/demos.protocols/-auto-offer-protocol/-handler/-callback/on-success.html b/docs/build/html/api/demos.protocols/-auto-offer-protocol/-handler/-callback/on-success.html
new file mode 100644
index 0000000000..b19ef01ac6
--- /dev/null
+++ b/docs/build/html/api/demos.protocols/-auto-offer-protocol/-handler/-callback/on-success.html
@@ -0,0 +1,15 @@
+
+
+AutoOfferProtocol.Handler.Callback.onSuccess -
+
+
+
+demos.protocols / AutoOfferProtocol / Handler / Callback / onSuccess
+
+onSuccess
+
+fun onSuccess ( st : SignedTransaction ? ) : Unit
+
+
+
+
diff --git a/docs/build/html/api/demos.protocols/-auto-offer-protocol/-handler/-callback/success.html b/docs/build/html/api/demos.protocols/-auto-offer-protocol/-handler/-callback/success.html
new file mode 100644
index 0000000000..0b5364b3cb
--- /dev/null
+++ b/docs/build/html/api/demos.protocols/-auto-offer-protocol/-handler/-callback/success.html
@@ -0,0 +1,15 @@
+
+
+AutoOfferProtocol.Handler.Callback.success -
+
+
+
+demos.protocols / AutoOfferProtocol / Handler / Callback / success
+
+success
+
+val success : ( SignedTransaction ) -> Unit
+
+
+
+
diff --git a/docs/build/html/api/demos.protocols/-auto-offer-protocol/-handler/-d-e-a-l-i-n-g.html b/docs/build/html/api/demos.protocols/-auto-offer-protocol/-handler/-d-e-a-l-i-n-g.html
new file mode 100644
index 0000000000..2b76dbde06
--- /dev/null
+++ b/docs/build/html/api/demos.protocols/-auto-offer-protocol/-handler/-d-e-a-l-i-n-g.html
@@ -0,0 +1,31 @@
+
+
+AutoOfferProtocol.Handler.DEALING -
+
+
+
+demos.protocols / AutoOfferProtocol / Handler / DEALING
+
+DEALING
+object DEALING : Step
+
+
+Inherited Properties
+
+
+
+
+changes
+
+open val changes : <ERROR CLASS> < Change >
+
+
+
+label
+
+open val label : String
+
+
+
+
+
diff --git a/docs/build/html/api/demos.protocols/-auto-offer-protocol/-handler/-r-e-c-e-i-v-e-d.html b/docs/build/html/api/demos.protocols/-auto-offer-protocol/-handler/-r-e-c-e-i-v-e-d.html
new file mode 100644
index 0000000000..3a0442e149
--- /dev/null
+++ b/docs/build/html/api/demos.protocols/-auto-offer-protocol/-handler/-r-e-c-e-i-v-e-d.html
@@ -0,0 +1,31 @@
+
+
+AutoOfferProtocol.Handler.RECEIVED -
+
+
+
+demos.protocols / AutoOfferProtocol / Handler / RECEIVED
+
+RECEIVED
+object RECEIVED : Step
+
+
+Inherited Properties
+
+
+
+
+changes
+
+open val changes : <ERROR CLASS> < Change >
+
+
+
+label
+
+open val label : String
+
+
+
+
+
diff --git a/docs/build/html/api/demos.protocols/-auto-offer-protocol/-handler/index.html b/docs/build/html/api/demos.protocols/-auto-offer-protocol/-handler/index.html
new file mode 100644
index 0000000000..f2e34a8c2d
--- /dev/null
+++ b/docs/build/html/api/demos.protocols/-auto-offer-protocol/-handler/index.html
@@ -0,0 +1,54 @@
+
+
+AutoOfferProtocol.Handler -
+
+
+
+demos.protocols / AutoOfferProtocol / Handler
+
+Handler
+object Handler
+
+
+Types
+
+Functions
+
+
+
+
+register
+
+fun register ( node : Node ) : Unit
+
+
+
+tracker
+
+fun tracker ( ) : <ERROR CLASS>
+
+
+
+
+
diff --git a/docs/build/html/api/demos.protocols/-auto-offer-protocol/-handler/register.html b/docs/build/html/api/demos.protocols/-auto-offer-protocol/-handler/register.html
new file mode 100644
index 0000000000..2b95b68533
--- /dev/null
+++ b/docs/build/html/api/demos.protocols/-auto-offer-protocol/-handler/register.html
@@ -0,0 +1,15 @@
+
+
+AutoOfferProtocol.Handler.register -
+
+
+
+demos.protocols / AutoOfferProtocol / Handler / register
+
+register
+
+fun register ( node : Node ) : Unit
+
+
+
+
diff --git a/docs/build/html/api/demos.protocols/-auto-offer-protocol/-handler/tracker.html b/docs/build/html/api/demos.protocols/-auto-offer-protocol/-handler/tracker.html
new file mode 100644
index 0000000000..c4f79c9ce9
--- /dev/null
+++ b/docs/build/html/api/demos.protocols/-auto-offer-protocol/-handler/tracker.html
@@ -0,0 +1,15 @@
+
+
+AutoOfferProtocol.Handler.tracker -
+
+
+
+demos.protocols / AutoOfferProtocol / Handler / tracker
+
+tracker
+
+fun tracker ( ) : <ERROR CLASS>
+
+
+
+
diff --git a/docs/build/html/api/demos.protocols/-auto-offer-protocol/-requester/-a-n-n-o-u-n-c-i-n-g.html b/docs/build/html/api/demos.protocols/-auto-offer-protocol/-requester/-a-n-n-o-u-n-c-i-n-g.html
new file mode 100644
index 0000000000..f765e78110
--- /dev/null
+++ b/docs/build/html/api/demos.protocols/-auto-offer-protocol/-requester/-a-n-n-o-u-n-c-i-n-g.html
@@ -0,0 +1,31 @@
+
+
+AutoOfferProtocol.Requester.ANNOUNCING -
+
+
+
+demos.protocols / AutoOfferProtocol / Requester / ANNOUNCING
+
+ANNOUNCING
+object ANNOUNCING : Step
+
+
+Inherited Properties
+
+
+
+
+changes
+
+open val changes : <ERROR CLASS> < Change >
+
+
+
+label
+
+open val label : String
+
+
+
+
+
diff --git a/docs/build/html/api/demos.protocols/-auto-offer-protocol/-requester/-d-e-a-l-i-n-g.html b/docs/build/html/api/demos.protocols/-auto-offer-protocol/-requester/-d-e-a-l-i-n-g.html
new file mode 100644
index 0000000000..86fb3a151c
--- /dev/null
+++ b/docs/build/html/api/demos.protocols/-auto-offer-protocol/-requester/-d-e-a-l-i-n-g.html
@@ -0,0 +1,31 @@
+
+
+AutoOfferProtocol.Requester.DEALING -
+
+
+
+demos.protocols / AutoOfferProtocol / Requester / DEALING
+
+DEALING
+object DEALING : Step
+
+
+Inherited Properties
+
+
+
+
+changes
+
+open val changes : <ERROR CLASS> < Change >
+
+
+
+label
+
+open val label : String
+
+
+
+
+
diff --git a/docs/build/html/api/demos.protocols/-auto-offer-protocol/-requester/-init-.html b/docs/build/html/api/demos.protocols/-auto-offer-protocol/-requester/-init-.html
new file mode 100644
index 0000000000..0f0f4c5d5e
--- /dev/null
+++ b/docs/build/html/api/demos.protocols/-auto-offer-protocol/-requester/-init-.html
@@ -0,0 +1,14 @@
+
+
+AutoOfferProtocol.Requester. -
+
+
+
+demos.protocols / AutoOfferProtocol / Requester / <init>
+
+<init>
+Requester ( dealToBeOffered : DealState )
+
+
+
+
diff --git a/docs/build/html/api/demos.protocols/-auto-offer-protocol/-requester/-r-e-c-e-i-v-e-d.html b/docs/build/html/api/demos.protocols/-auto-offer-protocol/-requester/-r-e-c-e-i-v-e-d.html
new file mode 100644
index 0000000000..3e3cc5193e
--- /dev/null
+++ b/docs/build/html/api/demos.protocols/-auto-offer-protocol/-requester/-r-e-c-e-i-v-e-d.html
@@ -0,0 +1,31 @@
+
+
+AutoOfferProtocol.Requester.RECEIVED -
+
+
+
+demos.protocols / AutoOfferProtocol / Requester / RECEIVED
+
+RECEIVED
+object RECEIVED : Step
+
+
+Inherited Properties
+
+
+
+
+changes
+
+open val changes : <ERROR CLASS> < Change >
+
+
+
+label
+
+open val label : String
+
+
+
+
+
diff --git a/docs/build/html/api/demos.protocols/-auto-offer-protocol/-requester/call.html b/docs/build/html/api/demos.protocols/-auto-offer-protocol/-requester/call.html
new file mode 100644
index 0000000000..f8b253f7ef
--- /dev/null
+++ b/docs/build/html/api/demos.protocols/-auto-offer-protocol/-requester/call.html
@@ -0,0 +1,17 @@
+
+
+AutoOfferProtocol.Requester.call -
+
+
+
+demos.protocols / AutoOfferProtocol / Requester / call
+
+call
+
+fun call ( ) : SignedTransaction
+Overrides ProtocolLogic.call
+This is where you fill out your business logic.
+
+
+
+
diff --git a/docs/build/html/api/demos.protocols/-auto-offer-protocol/-requester/deal-to-be-offered.html b/docs/build/html/api/demos.protocols/-auto-offer-protocol/-requester/deal-to-be-offered.html
new file mode 100644
index 0000000000..2ad6a77845
--- /dev/null
+++ b/docs/build/html/api/demos.protocols/-auto-offer-protocol/-requester/deal-to-be-offered.html
@@ -0,0 +1,15 @@
+
+
+AutoOfferProtocol.Requester.dealToBeOffered -
+
+
+
+demos.protocols / AutoOfferProtocol / Requester / dealToBeOffered
+
+dealToBeOffered
+
+val dealToBeOffered : DealState
+
+
+
+
diff --git a/docs/build/html/api/demos.protocols/-auto-offer-protocol/-requester/index.html b/docs/build/html/api/demos.protocols/-auto-offer-protocol/-requester/index.html
new file mode 100644
index 0000000000..1b345047a9
--- /dev/null
+++ b/docs/build/html/api/demos.protocols/-auto-offer-protocol/-requester/index.html
@@ -0,0 +1,156 @@
+
+
+AutoOfferProtocol.Requester -
+
+
+
+demos.protocols / AutoOfferProtocol / Requester
+
+Requester
+class Requester < T > : ProtocolLogic < SignedTransaction >
+
+
+Types
+
+Constructors
+
+Properties
+
+
+
+
+dealToBeOffered
+
+val dealToBeOffered : DealState
+
+
+
+progressTracker
+
+val progressTracker : <ERROR CLASS>
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
+
+
+
+
+Functions
+
+Inherited Functions
+
+
+
+
+receive
+
+fun < T : Any > receive ( topic : String , sessionIDForReceive : Long ) : UntrustworthyData < T >
+fun < T : Any > receive ( topic : String , sessionIDForReceive : Long , clazz : Class < T > ) : UntrustworthyData < T >
+
+
+
+send
+
+fun send ( topic : String , destination : MessageRecipients , sessionID : Long , obj : Any ) : Unit
+
+
+
+sendAndReceive
+
+fun < T : Any > sendAndReceive ( topic : String , destination : MessageRecipients , sessionIDForSend : Long , sessionIDForReceive : Long , obj : Any ) : UntrustworthyData < T >
+
+
+
+subProtocol
+
+fun < R > subProtocol ( subLogic : ProtocolLogic < R > ) : R
Invokes the given subprotocol by simply passing through this ProtocolLogic s reference to the
+ProtocolStateMachine and then calling the call method.
+
+
+
+
+Companion Object Functions
+
+
+
+
+tracker
+
+fun tracker ( ) : <ERROR CLASS>
+
+
+
+
+
diff --git a/docs/build/html/api/demos.protocols/-auto-offer-protocol/-requester/not-us.html b/docs/build/html/api/demos.protocols/-auto-offer-protocol/-requester/not-us.html
new file mode 100644
index 0000000000..8fa7e4ac6f
--- /dev/null
+++ b/docs/build/html/api/demos.protocols/-auto-offer-protocol/-requester/not-us.html
@@ -0,0 +1,15 @@
+
+
+AutoOfferProtocol.Requester.notUs -
+
+
+
+demos.protocols / AutoOfferProtocol / Requester / notUs
+
+notUs
+
+fun notUs ( vararg parties : Party ) : List < Party >
+
+
+
+
diff --git a/docs/build/html/api/demos.protocols/-auto-offer-protocol/-requester/progress-tracker.html b/docs/build/html/api/demos.protocols/-auto-offer-protocol/-requester/progress-tracker.html
new file mode 100644
index 0000000000..6cee139483
--- /dev/null
+++ b/docs/build/html/api/demos.protocols/-auto-offer-protocol/-requester/progress-tracker.html
@@ -0,0 +1,24 @@
+
+
+AutoOfferProtocol.Requester.progressTracker -
+
+
+
+demos.protocols / AutoOfferProtocol / Requester / progressTracker
+
+progressTracker
+
+val progressTracker : <ERROR CLASS>
+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/demos.protocols/-auto-offer-protocol/-requester/tracker.html b/docs/build/html/api/demos.protocols/-auto-offer-protocol/-requester/tracker.html
new file mode 100644
index 0000000000..285fd704df
--- /dev/null
+++ b/docs/build/html/api/demos.protocols/-auto-offer-protocol/-requester/tracker.html
@@ -0,0 +1,15 @@
+
+
+AutoOfferProtocol.Requester.tracker -
+
+
+
+demos.protocols / AutoOfferProtocol / Requester / tracker
+
+tracker
+
+fun tracker ( ) : <ERROR CLASS>
+
+
+
+
diff --git a/docs/build/html/api/demos.protocols/-auto-offer-protocol/-t-o-p-i-c.html b/docs/build/html/api/demos.protocols/-auto-offer-protocol/-t-o-p-i-c.html
new file mode 100644
index 0000000000..244c3715e9
--- /dev/null
+++ b/docs/build/html/api/demos.protocols/-auto-offer-protocol/-t-o-p-i-c.html
@@ -0,0 +1,15 @@
+
+
+AutoOfferProtocol.TOPIC -
+
+
+
+demos.protocols / AutoOfferProtocol / TOPIC
+
+TOPIC
+
+val TOPIC : String
+
+
+
+
diff --git a/docs/build/html/api/demos.protocols/-auto-offer-protocol/index.html b/docs/build/html/api/demos.protocols/-auto-offer-protocol/index.html
new file mode 100644
index 0000000000..dba9c827c9
--- /dev/null
+++ b/docs/build/html/api/demos.protocols/-auto-offer-protocol/index.html
@@ -0,0 +1,54 @@
+
+
+AutoOfferProtocol -
+
+
+
+demos.protocols / AutoOfferProtocol
+
+AutoOfferProtocol
+object AutoOfferProtocol
+This whole class is really part of a demo just to initiate the agreement of a deal with a simple
+API call from a single party without bi-directional access to the database of offers etc.
+In the "real world", wed probably have the offers sitting in the platform prior to the agreement step
+or the protocol would have to reach out to external systems (or users) to verify the deals
+
+
+
+
+Types
+
+Properties
+
+
+
+
+TOPIC
+
+val TOPIC : String
+
+
+
+
+
diff --git a/docs/build/html/api/demos.protocols/-exit-server-protocol/-broadcast/-init-.html b/docs/build/html/api/demos.protocols/-exit-server-protocol/-broadcast/-init-.html
new file mode 100644
index 0000000000..0140718d4b
--- /dev/null
+++ b/docs/build/html/api/demos.protocols/-exit-server-protocol/-broadcast/-init-.html
@@ -0,0 +1,16 @@
+
+
+ExitServerProtocol.Broadcast. -
+
+
+
+demos.protocols / ExitServerProtocol / Broadcast / <init>
+
+<init>
+Broadcast ( exitCode : Integer )
+This takes a Java Integer rather than Kotlin Int as that is what we end up with in the calling map and currently
+we do not support coercing numeric types in the reflective search for matching constructors
+
+
+
+
diff --git a/docs/build/html/api/demos.protocols/-exit-server-protocol/-broadcast/call.html b/docs/build/html/api/demos.protocols/-exit-server-protocol/-broadcast/call.html
new file mode 100644
index 0000000000..d9134acc05
--- /dev/null
+++ b/docs/build/html/api/demos.protocols/-exit-server-protocol/-broadcast/call.html
@@ -0,0 +1,17 @@
+
+
+ExitServerProtocol.Broadcast.call -
+
+
+
+demos.protocols / ExitServerProtocol / Broadcast / call
+
+call
+
+fun call ( ) : Boolean
+Overrides ProtocolLogic.call
+This is where you fill out your business logic.
+
+
+
+
diff --git a/docs/build/html/api/demos.protocols/-exit-server-protocol/-broadcast/exit-code.html b/docs/build/html/api/demos.protocols/-exit-server-protocol/-broadcast/exit-code.html
new file mode 100644
index 0000000000..8953547f20
--- /dev/null
+++ b/docs/build/html/api/demos.protocols/-exit-server-protocol/-broadcast/exit-code.html
@@ -0,0 +1,15 @@
+
+
+ExitServerProtocol.Broadcast.exitCode -
+
+
+
+demos.protocols / ExitServerProtocol / Broadcast / exitCode
+
+exitCode
+
+val exitCode : Integer
+
+
+
+
diff --git a/docs/build/html/api/demos.protocols/-exit-server-protocol/-broadcast/index.html b/docs/build/html/api/demos.protocols/-exit-server-protocol/-broadcast/index.html
new file mode 100644
index 0000000000..079c2e016e
--- /dev/null
+++ b/docs/build/html/api/demos.protocols/-exit-server-protocol/-broadcast/index.html
@@ -0,0 +1,120 @@
+
+
+ExitServerProtocol.Broadcast -
+
+
+
+demos.protocols / ExitServerProtocol / Broadcast
+
+Broadcast
+class Broadcast : ProtocolLogic < Boolean >
+This takes a Java Integer rather than Kotlin Int as that is what we end up with in the calling map and currently
+we do not support coercing numeric types in the reflective search for matching constructors
+
+
+Constructors
+
+
+
+
+<init>
+
+Broadcast ( exitCode : Integer )
This takes a Java Integer rather than Kotlin Int as that is what we end up with in the calling map and currently
+we do not support coercing numeric types in the reflective search for matching 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
+
+
+
+
+Functions
+
+
+
+
+call
+
+fun call ( ) : Boolean
This is where you fill out your business logic.
+
+
+
+
+Inherited Functions
+
+
+
+
+receive
+
+fun < T : Any > receive ( topic : String , sessionIDForReceive : Long , clazz : Class < T > ) : UntrustworthyData < T >
+fun < T : Any > receive ( topic : String , sessionIDForReceive : Long ) : UntrustworthyData < T >
+
+
+
+send
+
+fun send ( topic : String , destination : MessageRecipients , sessionID : Long , obj : Any ) : Unit
+
+
+
+sendAndReceive
+
+fun < T : Any > sendAndReceive ( topic : String , destination : MessageRecipients , sessionIDForSend : Long , sessionIDForReceive : Long , obj : Any ) : UntrustworthyData < T >
+
+
+
+subProtocol
+
+fun < R > subProtocol ( subLogic : ProtocolLogic < R > ) : R
Invokes the given subprotocol by simply passing through this ProtocolLogic s reference to the
+ProtocolStateMachine and then calling the call method.
+
+
+
+
+
+
diff --git a/docs/build/html/api/demos.protocols/-exit-server-protocol/-exit-message/-init-.html b/docs/build/html/api/demos.protocols/-exit-server-protocol/-exit-message/-init-.html
new file mode 100644
index 0000000000..1bb42ed8f5
--- /dev/null
+++ b/docs/build/html/api/demos.protocols/-exit-server-protocol/-exit-message/-init-.html
@@ -0,0 +1,14 @@
+
+
+ExitServerProtocol.ExitMessage. -
+
+
+
+demos.protocols / ExitServerProtocol / ExitMessage / <init>
+
+<init>
+ExitMessage ( exitCode : Int )
+
+
+
+
diff --git a/docs/build/html/api/demos.protocols/-exit-server-protocol/-exit-message/exit-code.html b/docs/build/html/api/demos.protocols/-exit-server-protocol/-exit-message/exit-code.html
new file mode 100644
index 0000000000..2c8d85c207
--- /dev/null
+++ b/docs/build/html/api/demos.protocols/-exit-server-protocol/-exit-message/exit-code.html
@@ -0,0 +1,15 @@
+
+
+ExitServerProtocol.ExitMessage.exitCode -
+
+
+
+demos.protocols / ExitServerProtocol / ExitMessage / exitCode
+
+exitCode
+
+val exitCode : Int
+
+
+
+
diff --git a/docs/build/html/api/demos.protocols/-exit-server-protocol/-exit-message/index.html b/docs/build/html/api/demos.protocols/-exit-server-protocol/-exit-message/index.html
new file mode 100644
index 0000000000..09ad932dbb
--- /dev/null
+++ b/docs/build/html/api/demos.protocols/-exit-server-protocol/-exit-message/index.html
@@ -0,0 +1,36 @@
+
+
+ExitServerProtocol.ExitMessage -
+
+
+
+demos.protocols / ExitServerProtocol / ExitMessage
+
+ExitMessage
+data class ExitMessage
+
+
+Constructors
+
+
+
+
+<init>
+
+ExitMessage ( exitCode : Int )
+
+
+
+Properties
+
+
+
+
+exitCode
+
+val exitCode : Int
+
+
+
+
+
diff --git a/docs/build/html/api/demos.protocols/-exit-server-protocol/-handler/index.html b/docs/build/html/api/demos.protocols/-exit-server-protocol/-handler/index.html
new file mode 100644
index 0000000000..8404579dc5
--- /dev/null
+++ b/docs/build/html/api/demos.protocols/-exit-server-protocol/-handler/index.html
@@ -0,0 +1,25 @@
+
+
+ExitServerProtocol.Handler -
+
+
+
+demos.protocols / ExitServerProtocol / Handler
+
+Handler
+object Handler
+
+
+Functions
+
+
+
diff --git a/docs/build/html/api/demos.protocols/-exit-server-protocol/-handler/register.html b/docs/build/html/api/demos.protocols/-exit-server-protocol/-handler/register.html
new file mode 100644
index 0000000000..bf6eea4a3a
--- /dev/null
+++ b/docs/build/html/api/demos.protocols/-exit-server-protocol/-handler/register.html
@@ -0,0 +1,15 @@
+
+
+ExitServerProtocol.Handler.register -
+
+
+
+demos.protocols / ExitServerProtocol / Handler / register
+
+register
+
+fun register ( node : Node ) : Unit
+
+
+
+
diff --git a/docs/build/html/api/demos.protocols/-exit-server-protocol/-t-o-p-i-c.html b/docs/build/html/api/demos.protocols/-exit-server-protocol/-t-o-p-i-c.html
new file mode 100644
index 0000000000..21d7e50267
--- /dev/null
+++ b/docs/build/html/api/demos.protocols/-exit-server-protocol/-t-o-p-i-c.html
@@ -0,0 +1,15 @@
+
+
+ExitServerProtocol.TOPIC -
+
+
+
+demos.protocols / ExitServerProtocol / TOPIC
+
+TOPIC
+
+val TOPIC : String
+
+
+
+
diff --git a/docs/build/html/api/demos.protocols/-exit-server-protocol/index.html b/docs/build/html/api/demos.protocols/-exit-server-protocol/index.html
new file mode 100644
index 0000000000..030d2064f8
--- /dev/null
+++ b/docs/build/html/api/demos.protocols/-exit-server-protocol/index.html
@@ -0,0 +1,50 @@
+
+
+ExitServerProtocol -
+
+
+
+demos.protocols / ExitServerProtocol
+
+ExitServerProtocol
+object ExitServerProtocol
+
+
+Types
+
+
+
+
+Broadcast
+
+class Broadcast : ProtocolLogic < Boolean >
This takes a Java Integer rather than Kotlin Int as that is what we end up with in the calling map and currently
+we do not support coercing numeric types in the reflective search for matching constructors
+
+
+
+
+ExitMessage
+
+data class ExitMessage
+
+
+
+Handler
+
+object Handler
+
+
+
+Properties
+
+
+
+
+TOPIC
+
+val TOPIC : String
+
+
+
+
+
diff --git a/docs/build/html/api/demos.protocols/-update-business-day-protocol/-broadcast/-init-.html b/docs/build/html/api/demos.protocols/-update-business-day-protocol/-broadcast/-init-.html
new file mode 100644
index 0000000000..4d7f14f141
--- /dev/null
+++ b/docs/build/html/api/demos.protocols/-update-business-day-protocol/-broadcast/-init-.html
@@ -0,0 +1,14 @@
+
+
+UpdateBusinessDayProtocol.Broadcast. -
+
+
+
+demos.protocols / UpdateBusinessDayProtocol / Broadcast / <init>
+
+<init>
+Broadcast ( date : LocalDate , progressTracker : ProgressTracker = Broadcast.tracker())
+
+
+
+
diff --git a/docs/build/html/api/demos.protocols/-update-business-day-protocol/-broadcast/-l-o-c-a-l.html b/docs/build/html/api/demos.protocols/-update-business-day-protocol/-broadcast/-l-o-c-a-l.html
new file mode 100644
index 0000000000..98e7b8c266
--- /dev/null
+++ b/docs/build/html/api/demos.protocols/-update-business-day-protocol/-broadcast/-l-o-c-a-l.html
@@ -0,0 +1,31 @@
+
+
+UpdateBusinessDayProtocol.Broadcast.LOCAL -
+
+
+
+demos.protocols / UpdateBusinessDayProtocol / Broadcast / LOCAL
+
+LOCAL
+object LOCAL : Step
+
+
+Inherited Properties
+
+
+
+
+changes
+
+open val changes : <ERROR CLASS> < Change >
+
+
+
+label
+
+open val label : String
+
+
+
+
+
diff --git a/docs/build/html/api/demos.protocols/-update-business-day-protocol/-broadcast/-n-o-t-i-f-y-i-n-g.html b/docs/build/html/api/demos.protocols/-update-business-day-protocol/-broadcast/-n-o-t-i-f-y-i-n-g.html
new file mode 100644
index 0000000000..f6239b374c
--- /dev/null
+++ b/docs/build/html/api/demos.protocols/-update-business-day-protocol/-broadcast/-n-o-t-i-f-y-i-n-g.html
@@ -0,0 +1,31 @@
+
+
+UpdateBusinessDayProtocol.Broadcast.NOTIFYING -
+
+
+
+demos.protocols / UpdateBusinessDayProtocol / Broadcast / NOTIFYING
+
+NOTIFYING
+object NOTIFYING : Step
+
+
+Inherited Properties
+
+
+
+
+changes
+
+open val changes : <ERROR CLASS> < Change >
+
+
+
+label
+
+open val label : String
+
+
+
+
+
diff --git a/docs/build/html/api/demos.protocols/-update-business-day-protocol/-broadcast/call.html b/docs/build/html/api/demos.protocols/-update-business-day-protocol/-broadcast/call.html
new file mode 100644
index 0000000000..6b0af9c8e3
--- /dev/null
+++ b/docs/build/html/api/demos.protocols/-update-business-day-protocol/-broadcast/call.html
@@ -0,0 +1,17 @@
+
+
+UpdateBusinessDayProtocol.Broadcast.call -
+
+
+
+demos.protocols / UpdateBusinessDayProtocol / Broadcast / call
+
+call
+
+fun call ( ) : Boolean
+Overrides ProtocolLogic.call
+This is where you fill out your business logic.
+
+
+
+
diff --git a/docs/build/html/api/demos.protocols/-update-business-day-protocol/-broadcast/date.html b/docs/build/html/api/demos.protocols/-update-business-day-protocol/-broadcast/date.html
new file mode 100644
index 0000000000..a8ac71f930
--- /dev/null
+++ b/docs/build/html/api/demos.protocols/-update-business-day-protocol/-broadcast/date.html
@@ -0,0 +1,15 @@
+
+
+UpdateBusinessDayProtocol.Broadcast.date -
+
+
+
+demos.protocols / UpdateBusinessDayProtocol / Broadcast / date
+
+date
+
+val date : LocalDate
+
+
+
+
diff --git a/docs/build/html/api/demos.protocols/-update-business-day-protocol/-broadcast/index.html b/docs/build/html/api/demos.protocols/-update-business-day-protocol/-broadcast/index.html
new file mode 100644
index 0000000000..148e961f83
--- /dev/null
+++ b/docs/build/html/api/demos.protocols/-update-business-day-protocol/-broadcast/index.html
@@ -0,0 +1,144 @@
+
+
+UpdateBusinessDayProtocol.Broadcast -
+
+
+
+demos.protocols / UpdateBusinessDayProtocol / Broadcast
+
+Broadcast
+class Broadcast : ProtocolLogic < Boolean >
+
+
+Types
+
+Constructors
+
+Properties
+
+
+
+
+date
+
+val date : LocalDate
+
+
+
+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
+
+
+
+
+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
+
+
+
+
+Functions
+
+
+
+
+call
+
+fun call ( ) : Boolean
This is where you fill out your business logic.
+
+
+
+
+Inherited Functions
+
+
+
+
+receive
+
+fun < T : Any > receive ( topic : String , sessionIDForReceive : Long ) : UntrustworthyData < T >
+fun < T : Any > receive ( topic : String , sessionIDForReceive : Long , clazz : Class < T > ) : UntrustworthyData < T >
+
+
+
+send
+
+fun send ( topic : String , destination : MessageRecipients , sessionID : Long , obj : Any ) : Unit
+
+
+
+sendAndReceive
+
+fun < T : Any > sendAndReceive ( topic : String , destination : MessageRecipients , sessionIDForSend : Long , sessionIDForReceive : Long , obj : Any ) : UntrustworthyData < T >
+
+
+
+subProtocol
+
+fun < R > subProtocol ( subLogic : ProtocolLogic < R > ) : R
Invokes the given subprotocol by simply passing through this ProtocolLogic s reference to the
+ProtocolStateMachine and then calling the call method.
+
+
+
+
+Companion Object Functions
+
+
+
+
+tracker
+
+fun tracker ( ) : <ERROR CLASS>
+
+
+
+
+
diff --git a/docs/build/html/api/demos.protocols/-update-business-day-protocol/-broadcast/progress-tracker.html b/docs/build/html/api/demos.protocols/-update-business-day-protocol/-broadcast/progress-tracker.html
new file mode 100644
index 0000000000..86943f923d
--- /dev/null
+++ b/docs/build/html/api/demos.protocols/-update-business-day-protocol/-broadcast/progress-tracker.html
@@ -0,0 +1,24 @@
+
+
+UpdateBusinessDayProtocol.Broadcast.progressTracker -
+
+
+
+demos.protocols / UpdateBusinessDayProtocol / Broadcast / 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/demos.protocols/-update-business-day-protocol/-broadcast/tracker.html b/docs/build/html/api/demos.protocols/-update-business-day-protocol/-broadcast/tracker.html
new file mode 100644
index 0000000000..741498b02b
--- /dev/null
+++ b/docs/build/html/api/demos.protocols/-update-business-day-protocol/-broadcast/tracker.html
@@ -0,0 +1,15 @@
+
+
+UpdateBusinessDayProtocol.Broadcast.tracker -
+
+
+
+demos.protocols / UpdateBusinessDayProtocol / Broadcast / tracker
+
+tracker
+
+fun tracker ( ) : <ERROR CLASS>
+
+
+
+
diff --git a/docs/build/html/api/demos.protocols/-update-business-day-protocol/-handler/index.html b/docs/build/html/api/demos.protocols/-update-business-day-protocol/-handler/index.html
new file mode 100644
index 0000000000..4591399b9b
--- /dev/null
+++ b/docs/build/html/api/demos.protocols/-update-business-day-protocol/-handler/index.html
@@ -0,0 +1,25 @@
+
+
+UpdateBusinessDayProtocol.Handler -
+
+
+
+demos.protocols / UpdateBusinessDayProtocol / Handler
+
+Handler
+object Handler
+
+
+Functions
+
+
+
diff --git a/docs/build/html/api/demos.protocols/-update-business-day-protocol/-handler/register.html b/docs/build/html/api/demos.protocols/-update-business-day-protocol/-handler/register.html
new file mode 100644
index 0000000000..bc1bf6e53f
--- /dev/null
+++ b/docs/build/html/api/demos.protocols/-update-business-day-protocol/-handler/register.html
@@ -0,0 +1,15 @@
+
+
+UpdateBusinessDayProtocol.Handler.register -
+
+
+
+demos.protocols / UpdateBusinessDayProtocol / Handler / register
+
+register
+
+fun register ( node : Node ) : Unit
+
+
+
+
diff --git a/docs/build/html/api/demos.protocols/-update-business-day-protocol/-t-o-p-i-c.html b/docs/build/html/api/demos.protocols/-update-business-day-protocol/-t-o-p-i-c.html
new file mode 100644
index 0000000000..2bd17901f2
--- /dev/null
+++ b/docs/build/html/api/demos.protocols/-update-business-day-protocol/-t-o-p-i-c.html
@@ -0,0 +1,15 @@
+
+
+UpdateBusinessDayProtocol.TOPIC -
+
+
+
+demos.protocols / UpdateBusinessDayProtocol / TOPIC
+
+TOPIC
+
+val TOPIC : String
+
+
+
+
diff --git a/docs/build/html/api/demos.protocols/-update-business-day-protocol/-update-business-day-message/-init-.html b/docs/build/html/api/demos.protocols/-update-business-day-protocol/-update-business-day-message/-init-.html
new file mode 100644
index 0000000000..ab565e3878
--- /dev/null
+++ b/docs/build/html/api/demos.protocols/-update-business-day-protocol/-update-business-day-message/-init-.html
@@ -0,0 +1,14 @@
+
+
+UpdateBusinessDayProtocol.UpdateBusinessDayMessage. -
+
+
+
+demos.protocols / UpdateBusinessDayProtocol / UpdateBusinessDayMessage / <init>
+
+<init>
+UpdateBusinessDayMessage ( date : LocalDate , sessionID : Long )
+
+
+
+
diff --git a/docs/build/html/api/demos.protocols/-update-business-day-protocol/-update-business-day-message/date.html b/docs/build/html/api/demos.protocols/-update-business-day-protocol/-update-business-day-message/date.html
new file mode 100644
index 0000000000..b424d58f9e
--- /dev/null
+++ b/docs/build/html/api/demos.protocols/-update-business-day-protocol/-update-business-day-message/date.html
@@ -0,0 +1,15 @@
+
+
+UpdateBusinessDayProtocol.UpdateBusinessDayMessage.date -
+
+
+
+demos.protocols / UpdateBusinessDayProtocol / UpdateBusinessDayMessage / date
+
+date
+
+val date : LocalDate
+
+
+
+
diff --git a/docs/build/html/api/demos.protocols/-update-business-day-protocol/-update-business-day-message/index.html b/docs/build/html/api/demos.protocols/-update-business-day-protocol/-update-business-day-message/index.html
new file mode 100644
index 0000000000..d0fbec7aa9
--- /dev/null
+++ b/docs/build/html/api/demos.protocols/-update-business-day-protocol/-update-business-day-message/index.html
@@ -0,0 +1,42 @@
+
+
+UpdateBusinessDayProtocol.UpdateBusinessDayMessage -
+
+
+
+demos.protocols / UpdateBusinessDayProtocol / UpdateBusinessDayMessage
+
+UpdateBusinessDayMessage
+data class UpdateBusinessDayMessage
+
+
+Constructors
+
+
+
+
+<init>
+
+UpdateBusinessDayMessage ( date : LocalDate , sessionID : Long )
+
+
+
+Properties
+
+
+
diff --git a/docs/build/html/api/demos.protocols/-update-business-day-protocol/-update-business-day-message/session-i-d.html b/docs/build/html/api/demos.protocols/-update-business-day-protocol/-update-business-day-message/session-i-d.html
new file mode 100644
index 0000000000..3d680db502
--- /dev/null
+++ b/docs/build/html/api/demos.protocols/-update-business-day-protocol/-update-business-day-message/session-i-d.html
@@ -0,0 +1,15 @@
+
+
+UpdateBusinessDayProtocol.UpdateBusinessDayMessage.sessionID -
+
+
+
+demos.protocols / UpdateBusinessDayProtocol / UpdateBusinessDayMessage / sessionID
+
+sessionID
+
+val sessionID : Long
+
+
+
+
diff --git a/docs/build/html/api/demos.protocols/-update-business-day-protocol/-updater/-f-e-t-c-h-i-n-g.html b/docs/build/html/api/demos.protocols/-update-business-day-protocol/-updater/-f-e-t-c-h-i-n-g.html
new file mode 100644
index 0000000000..0fcab27503
--- /dev/null
+++ b/docs/build/html/api/demos.protocols/-update-business-day-protocol/-updater/-f-e-t-c-h-i-n-g.html
@@ -0,0 +1,31 @@
+
+
+UpdateBusinessDayProtocol.Updater.FETCHING -
+
+
+
+demos.protocols / UpdateBusinessDayProtocol / Updater / FETCHING
+
+FETCHING
+object FETCHING : Step
+
+
+Inherited Properties
+
+
+
+
+changes
+
+open val changes : <ERROR CLASS> < Change >
+
+
+
+label
+
+open val label : String
+
+
+
+
+
diff --git a/docs/build/html/api/demos.protocols/-update-business-day-protocol/-updater/-f-i-x-i-n-g.html b/docs/build/html/api/demos.protocols/-update-business-day-protocol/-updater/-f-i-x-i-n-g.html
new file mode 100644
index 0000000000..948e9ded7c
--- /dev/null
+++ b/docs/build/html/api/demos.protocols/-update-business-day-protocol/-updater/-f-i-x-i-n-g.html
@@ -0,0 +1,31 @@
+
+
+UpdateBusinessDayProtocol.Updater.FIXING -
+
+
+
+demos.protocols / UpdateBusinessDayProtocol / Updater / FIXING
+
+FIXING
+object FIXING : Step
+
+
+Inherited Properties
+
+
+
+
+changes
+
+open val changes : <ERROR CLASS> < Change >
+
+
+
+label
+
+open val label : String
+
+
+
+
+
diff --git a/docs/build/html/api/demos.protocols/-update-business-day-protocol/-updater/-i-t-e-r-a-t-i-n-g_-d-e-a-l-s.html b/docs/build/html/api/demos.protocols/-update-business-day-protocol/-updater/-i-t-e-r-a-t-i-n-g_-d-e-a-l-s.html
new file mode 100644
index 0000000000..7ac5eb568e
--- /dev/null
+++ b/docs/build/html/api/demos.protocols/-update-business-day-protocol/-updater/-i-t-e-r-a-t-i-n-g_-d-e-a-l-s.html
@@ -0,0 +1,31 @@
+
+
+UpdateBusinessDayProtocol.Updater.ITERATING_DEALS -
+
+
+
+demos.protocols / UpdateBusinessDayProtocol / Updater / ITERATING_DEALS
+
+ITERATING_DEALS
+object ITERATING_DEALS : Step
+
+
+Inherited Properties
+
+
+
+
+changes
+
+open val changes : <ERROR CLASS> < Change >
+
+
+
+label
+
+open val label : String
+
+
+
+
+
diff --git a/docs/build/html/api/demos.protocols/-update-business-day-protocol/-updater/-i-t-e-r-a-t-i-n-g_-f-i-x-i-n-g-s.html b/docs/build/html/api/demos.protocols/-update-business-day-protocol/-updater/-i-t-e-r-a-t-i-n-g_-f-i-x-i-n-g-s.html
new file mode 100644
index 0000000000..1dda836056
--- /dev/null
+++ b/docs/build/html/api/demos.protocols/-update-business-day-protocol/-updater/-i-t-e-r-a-t-i-n-g_-f-i-x-i-n-g-s.html
@@ -0,0 +1,31 @@
+
+
+UpdateBusinessDayProtocol.Updater.ITERATING_FIXINGS -
+
+
+
+demos.protocols / UpdateBusinessDayProtocol / Updater / ITERATING_FIXINGS
+
+ITERATING_FIXINGS
+object ITERATING_FIXINGS : Step
+
+
+Inherited Properties
+
+
+
+
+changes
+
+open val changes : <ERROR CLASS> < Change >
+
+
+
+label
+
+open val label : String
+
+
+
+
+
diff --git a/docs/build/html/api/demos.protocols/-update-business-day-protocol/-updater/-init-.html b/docs/build/html/api/demos.protocols/-update-business-day-protocol/-updater/-init-.html
new file mode 100644
index 0000000000..3b89e2d3c1
--- /dev/null
+++ b/docs/build/html/api/demos.protocols/-update-business-day-protocol/-updater/-init-.html
@@ -0,0 +1,14 @@
+
+
+UpdateBusinessDayProtocol.Updater. -
+
+
+
+demos.protocols / UpdateBusinessDayProtocol / Updater / <init>
+
+<init>
+Updater ( date : LocalDate , sessionID : Long , progressTracker : ProgressTracker = Updater.tracker())
+
+
+
+
diff --git a/docs/build/html/api/demos.protocols/-update-business-day-protocol/-updater/call.html b/docs/build/html/api/demos.protocols/-update-business-day-protocol/-updater/call.html
new file mode 100644
index 0000000000..352117fc72
--- /dev/null
+++ b/docs/build/html/api/demos.protocols/-update-business-day-protocol/-updater/call.html
@@ -0,0 +1,17 @@
+
+
+UpdateBusinessDayProtocol.Updater.call -
+
+
+
+demos.protocols / UpdateBusinessDayProtocol / Updater / call
+
+call
+
+fun call ( ) : Boolean
+Overrides ProtocolLogic.call
+This is where you fill out your business logic.
+
+
+
+
diff --git a/docs/build/html/api/demos.protocols/-update-business-day-protocol/-updater/date.html b/docs/build/html/api/demos.protocols/-update-business-day-protocol/-updater/date.html
new file mode 100644
index 0000000000..2ac95e5109
--- /dev/null
+++ b/docs/build/html/api/demos.protocols/-update-business-day-protocol/-updater/date.html
@@ -0,0 +1,15 @@
+
+
+UpdateBusinessDayProtocol.Updater.date -
+
+
+
+demos.protocols / UpdateBusinessDayProtocol / Updater / date
+
+date
+
+val date : LocalDate
+
+
+
+
diff --git a/docs/build/html/api/demos.protocols/-update-business-day-protocol/-updater/index.html b/docs/build/html/api/demos.protocols/-update-business-day-protocol/-updater/index.html
new file mode 100644
index 0000000000..ce654c8dc8
--- /dev/null
+++ b/docs/build/html/api/demos.protocols/-update-business-day-protocol/-updater/index.html
@@ -0,0 +1,180 @@
+
+
+UpdateBusinessDayProtocol.Updater -
+
+
+
+demos.protocols / UpdateBusinessDayProtocol / Updater
+
+Updater
+class Updater : ProtocolLogic < Boolean >
+
+
+Types
+
+Constructors
+
+Properties
+
+
+
+
+date
+
+val date : LocalDate
+
+
+
+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.
+
+
+
+
+sessionID
+
+val sessionID : Long
+
+
+
+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
+
+
+
+
+Functions
+
+Inherited Functions
+
+
+
+
+receive
+
+fun < T : Any > receive ( topic : String , sessionIDForReceive : Long , clazz : Class < T > ) : UntrustworthyData < T >
+fun < T : Any > receive ( topic : String , sessionIDForReceive : Long ) : UntrustworthyData < T >
+
+
+
+send
+
+fun send ( topic : String , destination : MessageRecipients , sessionID : Long , obj : Any ) : Unit
+
+
+
+sendAndReceive
+
+fun < T : Any > sendAndReceive ( topic : String , destination : MessageRecipients , sessionIDForSend : Long , sessionIDForReceive : Long , obj : Any ) : UntrustworthyData < T >
+
+
+
+subProtocol
+
+fun < R > subProtocol ( subLogic : ProtocolLogic < R > ) : R
Invokes the given subprotocol by simply passing through this ProtocolLogic s reference to the
+ProtocolStateMachine and then calling the call method.
+
+
+
+
+Companion Object Functions
+
+
+
diff --git a/docs/build/html/api/demos.protocols/-update-business-day-protocol/-updater/other-party.html b/docs/build/html/api/demos.protocols/-update-business-day-protocol/-updater/other-party.html
new file mode 100644
index 0000000000..231562f891
--- /dev/null
+++ b/docs/build/html/api/demos.protocols/-update-business-day-protocol/-updater/other-party.html
@@ -0,0 +1,15 @@
+
+
+UpdateBusinessDayProtocol.Updater.otherParty -
+
+
+
+demos.protocols / UpdateBusinessDayProtocol / Updater / otherParty
+
+otherParty
+
+fun otherParty ( deal : DealState ) : NodeInfo
+
+
+
+
diff --git a/docs/build/html/api/demos.protocols/-update-business-day-protocol/-updater/process-deal.html b/docs/build/html/api/demos.protocols/-update-business-day-protocol/-updater/process-deal.html
new file mode 100644
index 0000000000..52312c8584
--- /dev/null
+++ b/docs/build/html/api/demos.protocols/-update-business-day-protocol/-updater/process-deal.html
@@ -0,0 +1,15 @@
+
+
+UpdateBusinessDayProtocol.Updater.processDeal -
+
+
+
+demos.protocols / UpdateBusinessDayProtocol / Updater / processDeal
+
+processDeal
+
+fun processDeal ( party : NodeInfo , deal : StateAndRef < DealState > , date : LocalDate , sessionID : Long ) : Unit
+
+
+
+
diff --git a/docs/build/html/api/demos.protocols/-update-business-day-protocol/-updater/process-interest-rate-swap.html b/docs/build/html/api/demos.protocols/-update-business-day-protocol/-updater/process-interest-rate-swap.html
new file mode 100644
index 0000000000..f225914a97
--- /dev/null
+++ b/docs/build/html/api/demos.protocols/-update-business-day-protocol/-updater/process-interest-rate-swap.html
@@ -0,0 +1,15 @@
+
+
+UpdateBusinessDayProtocol.Updater.processInterestRateSwap -
+
+
+
+demos.protocols / UpdateBusinessDayProtocol / Updater / processInterestRateSwap
+
+processInterestRateSwap
+
+fun processInterestRateSwap ( party : NodeInfo , deal : StateAndRef < State > , date : LocalDate , sessionID : Long ) : Unit
+
+
+
+
diff --git a/docs/build/html/api/demos.protocols/-update-business-day-protocol/-updater/progress-tracker.html b/docs/build/html/api/demos.protocols/-update-business-day-protocol/-updater/progress-tracker.html
new file mode 100644
index 0000000000..29d37af330
--- /dev/null
+++ b/docs/build/html/api/demos.protocols/-update-business-day-protocol/-updater/progress-tracker.html
@@ -0,0 +1,24 @@
+
+
+UpdateBusinessDayProtocol.Updater.progressTracker -
+
+
+
+demos.protocols / UpdateBusinessDayProtocol / Updater / 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/demos.protocols/-update-business-day-protocol/-updater/session-i-d.html b/docs/build/html/api/demos.protocols/-update-business-day-protocol/-updater/session-i-d.html
new file mode 100644
index 0000000000..46ed491907
--- /dev/null
+++ b/docs/build/html/api/demos.protocols/-update-business-day-protocol/-updater/session-i-d.html
@@ -0,0 +1,15 @@
+
+
+UpdateBusinessDayProtocol.Updater.sessionID -
+
+
+
+demos.protocols / UpdateBusinessDayProtocol / Updater / sessionID
+
+sessionID
+
+val sessionID : Long
+
+
+
+
diff --git a/docs/build/html/api/demos.protocols/-update-business-day-protocol/-updater/tracker.html b/docs/build/html/api/demos.protocols/-update-business-day-protocol/-updater/tracker.html
new file mode 100644
index 0000000000..1e88c7558d
--- /dev/null
+++ b/docs/build/html/api/demos.protocols/-update-business-day-protocol/-updater/tracker.html
@@ -0,0 +1,15 @@
+
+
+UpdateBusinessDayProtocol.Updater.tracker -
+
+
+
+demos.protocols / UpdateBusinessDayProtocol / Updater / tracker
+
+tracker
+
+fun tracker ( ) : ProgressTracker
+
+
+
+
diff --git a/docs/build/html/api/demos.protocols/-update-business-day-protocol/index.html b/docs/build/html/api/demos.protocols/-update-business-day-protocol/index.html
new file mode 100644
index 0000000000..9b24ee8c5a
--- /dev/null
+++ b/docs/build/html/api/demos.protocols/-update-business-day-protocol/index.html
@@ -0,0 +1,56 @@
+
+
+UpdateBusinessDayProtocol -
+
+
+
+demos.protocols / UpdateBusinessDayProtocol
+
+UpdateBusinessDayProtocol
+object UpdateBusinessDayProtocol
+This is a very temporary, demo-oriented way of initiating processing of temporal events and is not
+intended as the way things will necessarily be done longer term
+
+
+Types
+
+Properties
+
+
+
+
+TOPIC
+
+val TOPIC : String
+
+
+
+
+
diff --git a/docs/build/html/api/demos.protocols/index.html b/docs/build/html/api/demos.protocols/index.html
new file mode 100644
index 0000000000..7284a8a096
--- /dev/null
+++ b/docs/build/html/api/demos.protocols/index.html
@@ -0,0 +1,38 @@
+
+
+demos.protocols -
+
+
+
+demos.protocols
+
+Package demos.protocols
+Types
+
+
+
+
+AutoOfferProtocol
+
+object AutoOfferProtocol
This whole class is really part of a demo just to initiate the agreement of a deal with a simple
+API call from a single party without bi-directional access to the database of offers etc.
+
+
+
+
+ExitServerProtocol
+
+object ExitServerProtocol
+
+
+
+UpdateBusinessDayProtocol
+
+object UpdateBusinessDayProtocol
This is a very temporary, demo-oriented way of initiating processing of temporal events and is not
+intended as the way things will necessarily be done longer term
+
+
+
+
+
+
diff --git a/docs/build/html/api/demos/-demo-clock/-init-.html b/docs/build/html/api/demos/-demo-clock/-init-.html
new file mode 100644
index 0000000000..afb0011606
--- /dev/null
+++ b/docs/build/html/api/demos/-demo-clock/-init-.html
@@ -0,0 +1,15 @@
+
+
+DemoClock. -
+
+
+
+demos / DemoClock / <init>
+
+<init>
+DemoClock ( delegateClock : Clock = Clock.systemUTC())
+A Clock that can have the date advanced for use in demos
+
+
+
+
diff --git a/docs/build/html/api/demos/-demo-clock/get-zone.html b/docs/build/html/api/demos/-demo-clock/get-zone.html
new file mode 100644
index 0000000000..60648c52c9
--- /dev/null
+++ b/docs/build/html/api/demos/-demo-clock/get-zone.html
@@ -0,0 +1,15 @@
+
+
+DemoClock.getZone -
+
+
+
+demos / DemoClock / getZone
+
+getZone
+
+fun getZone ( ) : ZoneId
+
+
+
+
diff --git a/docs/build/html/api/demos/-demo-clock/index.html b/docs/build/html/api/demos/-demo-clock/index.html
new file mode 100644
index 0000000000..90bf7f37b7
--- /dev/null
+++ b/docs/build/html/api/demos/-demo-clock/index.html
@@ -0,0 +1,56 @@
+
+
+DemoClock -
+
+
+
+demos / DemoClock
+
+DemoClock
+class DemoClock : Clock
+A Clock that can have the date advanced for use in demos
+
+
+Constructors
+
+
+
+
+<init>
+
+DemoClock ( delegateClock : Clock = Clock.systemUTC())
A Clock that can have the date advanced for use in demos
+
+
+
+
+Functions
+
+
+
diff --git a/docs/build/html/api/demos/-demo-clock/instant.html b/docs/build/html/api/demos/-demo-clock/instant.html
new file mode 100644
index 0000000000..12066596a5
--- /dev/null
+++ b/docs/build/html/api/demos/-demo-clock/instant.html
@@ -0,0 +1,15 @@
+
+
+DemoClock.instant -
+
+
+
+demos / DemoClock / instant
+
+instant
+
+fun instant ( ) : Instant
+
+
+
+
diff --git a/docs/build/html/api/demos/-demo-clock/update-date.html b/docs/build/html/api/demos/-demo-clock/update-date.html
new file mode 100644
index 0000000000..434f3d3390
--- /dev/null
+++ b/docs/build/html/api/demos/-demo-clock/update-date.html
@@ -0,0 +1,15 @@
+
+
+DemoClock.updateDate -
+
+
+
+demos / DemoClock / updateDate
+
+updateDate
+
+fun updateDate ( date : LocalDate ) : Boolean
+
+
+
+
diff --git a/docs/build/html/api/demos/-demo-clock/with-zone.html b/docs/build/html/api/demos/-demo-clock/with-zone.html
new file mode 100644
index 0000000000..ef56df02dc
--- /dev/null
+++ b/docs/build/html/api/demos/-demo-clock/with-zone.html
@@ -0,0 +1,15 @@
+
+
+DemoClock.withZone -
+
+
+
+demos / DemoClock / withZone
+
+withZone
+
+fun withZone ( zone : ZoneId ) : Clock
+
+
+
+
diff --git a/docs/build/html/api/demos/-trader-demo-protocol-buyer/-init-.html b/docs/build/html/api/demos/-trader-demo-protocol-buyer/-init-.html
new file mode 100644
index 0000000000..772d3ecd8c
--- /dev/null
+++ b/docs/build/html/api/demos/-trader-demo-protocol-buyer/-init-.html
@@ -0,0 +1,14 @@
+
+
+TraderDemoProtocolBuyer. -
+
+
+
+demos / TraderDemoProtocolBuyer / <init>
+
+<init>
+TraderDemoProtocolBuyer ( attachmentsPath : Path )
+
+
+
+
diff --git a/docs/build/html/api/demos/-trader-demo-protocol-buyer/-s-t-a-r-t-i-n-g_-b-u-y.html b/docs/build/html/api/demos/-trader-demo-protocol-buyer/-s-t-a-r-t-i-n-g_-b-u-y.html
new file mode 100644
index 0000000000..158df5d18f
--- /dev/null
+++ b/docs/build/html/api/demos/-trader-demo-protocol-buyer/-s-t-a-r-t-i-n-g_-b-u-y.html
@@ -0,0 +1,31 @@
+
+
+TraderDemoProtocolBuyer.STARTING_BUY -
+
+
+
+demos / TraderDemoProtocolBuyer / STARTING_BUY
+
+STARTING_BUY
+object STARTING_BUY : Step
+
+
+Inherited Properties
+
+
+
+
+changes
+
+open val changes : <ERROR CLASS> < Change >
+
+
+
+label
+
+open val label : String
+
+
+
+
+
diff --git a/docs/build/html/api/demos/-trader-demo-protocol-buyer/-w-a-i-t-i-n-g_-f-o-r_-s-e-l-l-e-r_-t-o_-c-o-n-n-e-c-t.html b/docs/build/html/api/demos/-trader-demo-protocol-buyer/-w-a-i-t-i-n-g_-f-o-r_-s-e-l-l-e-r_-t-o_-c-o-n-n-e-c-t.html
new file mode 100644
index 0000000000..c33c6afc07
--- /dev/null
+++ b/docs/build/html/api/demos/-trader-demo-protocol-buyer/-w-a-i-t-i-n-g_-f-o-r_-s-e-l-l-e-r_-t-o_-c-o-n-n-e-c-t.html
@@ -0,0 +1,31 @@
+
+
+TraderDemoProtocolBuyer.WAITING_FOR_SELLER_TO_CONNECT -
+
+
+
+demos / TraderDemoProtocolBuyer / WAITING_FOR_SELLER_TO_CONNECT
+
+WAITING_FOR_SELLER_TO_CONNECT
+object WAITING_FOR_SELLER_TO_CONNECT : Step
+
+
+Inherited Properties
+
+
+
+
+changes
+
+open val changes : <ERROR CLASS> < Change >
+
+
+
+label
+
+open val label : String
+
+
+
+
+
diff --git a/docs/build/html/api/demos/-trader-demo-protocol-buyer/call.html b/docs/build/html/api/demos/-trader-demo-protocol-buyer/call.html
new file mode 100644
index 0000000000..cdd0416a2f
--- /dev/null
+++ b/docs/build/html/api/demos/-trader-demo-protocol-buyer/call.html
@@ -0,0 +1,17 @@
+
+
+TraderDemoProtocolBuyer.call -
+
+
+
+demos / TraderDemoProtocolBuyer / call
+
+call
+
+fun call ( ) : Unit
+Overrides ProtocolLogic.call
+This is where you fill out your business logic.
+
+
+
+
diff --git a/docs/build/html/api/demos/-trader-demo-protocol-buyer/index.html b/docs/build/html/api/demos/-trader-demo-protocol-buyer/index.html
new file mode 100644
index 0000000000..c362be7371
--- /dev/null
+++ b/docs/build/html/api/demos/-trader-demo-protocol-buyer/index.html
@@ -0,0 +1,127 @@
+
+
+TraderDemoProtocolBuyer -
+
+
+
+demos / TraderDemoProtocolBuyer
+
+TraderDemoProtocolBuyer
+class TraderDemoProtocolBuyer : ProtocolLogic < Unit >
+
+
+Types
+
+Constructors
+
+
+
+
+<init>
+
+TraderDemoProtocolBuyer ( attachmentsPath : Path )
+
+
+
+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
+
+
+
+
+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
+
+
+
+
+Functions
+
+
+
+
+call
+
+fun call ( ) : Unit
This is where you fill out your business logic.
+
+
+
+
+Inherited Functions
+
+
+
+
+receive
+
+fun < T : Any > receive ( topic : String , sessionIDForReceive : Long ) : UntrustworthyData < T >
+fun < T : Any > receive ( topic : String , sessionIDForReceive : Long , clazz : Class < T > ) : UntrustworthyData < T >
+
+
+
+send
+
+fun send ( topic : String , destination : MessageRecipients , sessionID : Long , obj : Any ) : Unit
+
+
+
+sendAndReceive
+
+fun < T : Any > sendAndReceive ( topic : String , destination : MessageRecipients , sessionIDForSend : Long , sessionIDForReceive : Long , obj : Any ) : UntrustworthyData < T >
+
+
+
+subProtocol
+
+fun < R > subProtocol ( subLogic : ProtocolLogic < R > ) : R
Invokes the given subprotocol by simply passing through this ProtocolLogic s reference to the
+ProtocolStateMachine and then calling the call method.
+
+
+
+
+
+
diff --git a/docs/build/html/api/demos/-trader-demo-protocol-buyer/progress-tracker.html b/docs/build/html/api/demos/-trader-demo-protocol-buyer/progress-tracker.html
new file mode 100644
index 0000000000..95ee54060a
--- /dev/null
+++ b/docs/build/html/api/demos/-trader-demo-protocol-buyer/progress-tracker.html
@@ -0,0 +1,24 @@
+
+
+TraderDemoProtocolBuyer.progressTracker -
+
+
+
+demos / TraderDemoProtocolBuyer / 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/demos/-trader-demo-protocol-seller/-a-n-n-o-u-n-c-i-n-g.html b/docs/build/html/api/demos/-trader-demo-protocol-seller/-a-n-n-o-u-n-c-i-n-g.html
new file mode 100644
index 0000000000..779711d99c
--- /dev/null
+++ b/docs/build/html/api/demos/-trader-demo-protocol-seller/-a-n-n-o-u-n-c-i-n-g.html
@@ -0,0 +1,31 @@
+
+
+TraderDemoProtocolSeller.ANNOUNCING -
+
+
+
+demos / TraderDemoProtocolSeller / ANNOUNCING
+
+ANNOUNCING
+object ANNOUNCING : Step
+
+
+Inherited Properties
+
+
+
+
+changes
+
+open val changes : <ERROR CLASS> < Change >
+
+
+
+label
+
+open val label : String
+
+
+
+
+
diff --git a/docs/build/html/api/demos/-trader-demo-protocol-seller/-init-.html b/docs/build/html/api/demos/-trader-demo-protocol-seller/-init-.html
new file mode 100644
index 0000000000..b11cc44555
--- /dev/null
+++ b/docs/build/html/api/demos/-trader-demo-protocol-seller/-init-.html
@@ -0,0 +1,14 @@
+
+
+TraderDemoProtocolSeller. -
+
+
+
+demos / TraderDemoProtocolSeller / <init>
+
+<init>
+TraderDemoProtocolSeller ( myAddress : <ERROR CLASS> , otherSide : SingleMessageRecipient , progressTracker : ProgressTracker = TraderDemoProtocolSeller.tracker())
+
+
+
+
diff --git a/docs/build/html/api/demos/-trader-demo-protocol-seller/-p-r-o-s-p-e-c-t-u-s_-h-a-s-h.html b/docs/build/html/api/demos/-trader-demo-protocol-seller/-p-r-o-s-p-e-c-t-u-s_-h-a-s-h.html
new file mode 100644
index 0000000000..f2c175286b
--- /dev/null
+++ b/docs/build/html/api/demos/-trader-demo-protocol-seller/-p-r-o-s-p-e-c-t-u-s_-h-a-s-h.html
@@ -0,0 +1,15 @@
+
+
+TraderDemoProtocolSeller.PROSPECTUS_HASH -
+
+
+
+demos / TraderDemoProtocolSeller / PROSPECTUS_HASH
+
+PROSPECTUS_HASH
+
+val PROSPECTUS_HASH : <ERROR CLASS>
+
+
+
+
diff --git a/docs/build/html/api/demos/-trader-demo-protocol-seller/-s-e-l-f_-i-s-s-u-i-n-g.html b/docs/build/html/api/demos/-trader-demo-protocol-seller/-s-e-l-f_-i-s-s-u-i-n-g.html
new file mode 100644
index 0000000000..359291b181
--- /dev/null
+++ b/docs/build/html/api/demos/-trader-demo-protocol-seller/-s-e-l-f_-i-s-s-u-i-n-g.html
@@ -0,0 +1,31 @@
+
+
+TraderDemoProtocolSeller.SELF_ISSUING -
+
+
+
+demos / TraderDemoProtocolSeller / SELF_ISSUING
+
+SELF_ISSUING
+object SELF_ISSUING : Step
+
+
+Inherited Properties
+
+
+
+
+changes
+
+open val changes : <ERROR CLASS> < Change >
+
+
+
+label
+
+open val label : String
+
+
+
+
+
diff --git a/docs/build/html/api/demos/-trader-demo-protocol-seller/-t-r-a-d-i-n-g.html b/docs/build/html/api/demos/-trader-demo-protocol-seller/-t-r-a-d-i-n-g.html
new file mode 100644
index 0000000000..13bfb6b840
--- /dev/null
+++ b/docs/build/html/api/demos/-trader-demo-protocol-seller/-t-r-a-d-i-n-g.html
@@ -0,0 +1,31 @@
+
+
+TraderDemoProtocolSeller.TRADING -
+
+
+
+demos / TraderDemoProtocolSeller / TRADING
+
+TRADING
+object TRADING : Step
+
+
+Inherited Properties
+
+
+
+
+changes
+
+open val changes : <ERROR CLASS> < Change >
+
+
+
+label
+
+open val label : String
+
+
+
+
+
diff --git a/docs/build/html/api/demos/-trader-demo-protocol-seller/call.html b/docs/build/html/api/demos/-trader-demo-protocol-seller/call.html
new file mode 100644
index 0000000000..5aa81784f4
--- /dev/null
+++ b/docs/build/html/api/demos/-trader-demo-protocol-seller/call.html
@@ -0,0 +1,17 @@
+
+
+TraderDemoProtocolSeller.call -
+
+
+
+demos / TraderDemoProtocolSeller / call
+
+call
+
+fun call ( ) : Unit
+Overrides ProtocolLogic.call
+This is where you fill out your business logic.
+
+
+
+
diff --git a/docs/build/html/api/demos/-trader-demo-protocol-seller/index.html b/docs/build/html/api/demos/-trader-demo-protocol-seller/index.html
new file mode 100644
index 0000000000..0e191d15a6
--- /dev/null
+++ b/docs/build/html/api/demos/-trader-demo-protocol-seller/index.html
@@ -0,0 +1,173 @@
+
+
+TraderDemoProtocolSeller -
+
+
+
+demos / TraderDemoProtocolSeller
+
+TraderDemoProtocolSeller
+class TraderDemoProtocolSeller : ProtocolLogic < Unit >
+
+
+Types
+
+Constructors
+
+Properties
+
+
+
+
+myAddress
+
+val myAddress : <ERROR CLASS>
+
+
+
+otherSide
+
+val otherSide : SingleMessageRecipient
+
+
+
+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
+
+
+
+
+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
+
+
+
+
+Functions
+
+Inherited Functions
+
+
+
+
+receive
+
+fun < T : Any > receive ( topic : String , sessionIDForReceive : Long , clazz : Class < T > ) : UntrustworthyData < T >
+fun < T : Any > receive ( topic : String , sessionIDForReceive : Long ) : UntrustworthyData < T >
+
+
+
+send
+
+fun send ( topic : String , destination : MessageRecipients , sessionID : Long , obj : Any ) : Unit
+
+
+
+sendAndReceive
+
+fun < T : Any > sendAndReceive ( topic : String , destination : MessageRecipients , sessionIDForSend : Long , sessionIDForReceive : Long , obj : Any ) : UntrustworthyData < T >
+
+
+
+subProtocol
+
+fun < R > subProtocol ( subLogic : ProtocolLogic < R > ) : R
Invokes the given subprotocol by simply passing through this ProtocolLogic s reference to the
+ProtocolStateMachine and then calling the call method.
+
+
+
+
+Companion Object Properties
+
+Companion Object Functions
+
+
+
+
+tracker
+
+fun tracker ( ) : <ERROR CLASS>
+
+
+
+
+
diff --git a/docs/build/html/api/demos/-trader-demo-protocol-seller/my-address.html b/docs/build/html/api/demos/-trader-demo-protocol-seller/my-address.html
new file mode 100644
index 0000000000..132958967a
--- /dev/null
+++ b/docs/build/html/api/demos/-trader-demo-protocol-seller/my-address.html
@@ -0,0 +1,15 @@
+
+
+TraderDemoProtocolSeller.myAddress -
+
+
+
+demos / TraderDemoProtocolSeller / myAddress
+
+myAddress
+
+val myAddress : <ERROR CLASS>
+
+
+
+
diff --git a/docs/build/html/api/demos/-trader-demo-protocol-seller/other-side.html b/docs/build/html/api/demos/-trader-demo-protocol-seller/other-side.html
new file mode 100644
index 0000000000..e2a4c3137f
--- /dev/null
+++ b/docs/build/html/api/demos/-trader-demo-protocol-seller/other-side.html
@@ -0,0 +1,15 @@
+
+
+TraderDemoProtocolSeller.otherSide -
+
+
+
+demos / TraderDemoProtocolSeller / otherSide
+
+otherSide
+
+val otherSide : SingleMessageRecipient
+
+
+
+
diff --git a/docs/build/html/api/demos/-trader-demo-protocol-seller/progress-tracker.html b/docs/build/html/api/demos/-trader-demo-protocol-seller/progress-tracker.html
new file mode 100644
index 0000000000..33219e23f5
--- /dev/null
+++ b/docs/build/html/api/demos/-trader-demo-protocol-seller/progress-tracker.html
@@ -0,0 +1,24 @@
+
+
+TraderDemoProtocolSeller.progressTracker -
+
+
+
+demos / TraderDemoProtocolSeller / 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/demos/-trader-demo-protocol-seller/self-issue-some-commercial-paper.html b/docs/build/html/api/demos/-trader-demo-protocol-seller/self-issue-some-commercial-paper.html
new file mode 100644
index 0000000000..161b269c46
--- /dev/null
+++ b/docs/build/html/api/demos/-trader-demo-protocol-seller/self-issue-some-commercial-paper.html
@@ -0,0 +1,15 @@
+
+
+TraderDemoProtocolSeller.selfIssueSomeCommercialPaper -
+
+
+
+demos / TraderDemoProtocolSeller / selfIssueSomeCommercialPaper
+
+selfIssueSomeCommercialPaper
+
+fun selfIssueSomeCommercialPaper ( ownedBy : PublicKey , tsa : NodeInfo ) : StateAndRef < State >
+
+
+
+
diff --git a/docs/build/html/api/demos/-trader-demo-protocol-seller/tracker.html b/docs/build/html/api/demos/-trader-demo-protocol-seller/tracker.html
new file mode 100644
index 0000000000..7d33ea8dc5
--- /dev/null
+++ b/docs/build/html/api/demos/-trader-demo-protocol-seller/tracker.html
@@ -0,0 +1,15 @@
+
+
+TraderDemoProtocolSeller.tracker -
+
+
+
+demos / TraderDemoProtocolSeller / tracker
+
+tracker
+
+fun tracker ( ) : <ERROR CLASS>
+
+
+
+
diff --git a/docs/build/html/api/demos/index.html b/docs/build/html/api/demos/index.html
new file mode 100644
index 0000000000..e49b530db1
--- /dev/null
+++ b/docs/build/html/api/demos/index.html
@@ -0,0 +1,55 @@
+
+
+demos -
+
+
+
+demos
+
+Package demos
+Types
+
+Functions
+
+
+
+
+main
+
+fun main ( args : Array < String > ) : Unit
+fun main ( args : Array < String > ) : Unit
fun main ( args : Array < String > ) : Unit
Creates a dummy transaction that requires a rate fix within a certain range, and gets it signed by an oracle
+service.
+
+
+
+
+nodeInfo
+
+fun nodeInfo ( hostAndPortString : String , identityFile : String , advertisedServices : Set < ServiceType > = emptySet()) : NodeInfo
+
+
+
+
+
diff --git a/docs/build/html/api/demos/main.html b/docs/build/html/api/demos/main.html
new file mode 100644
index 0000000000..300a6c2cd3
--- /dev/null
+++ b/docs/build/html/api/demos/main.html
@@ -0,0 +1,23 @@
+
+
+main -
+
+
+
+demos / main
+
+main
+
+fun main ( args : Array < String > ) : Unit
+
+fun main ( args : Array < String > ) : Unit
+
+
+
+fun main ( args : Array < String > ) : Unit
+Creates a dummy transaction that requires a rate fix within a certain range, and gets it signed by an oracle
+service.
+
+
+
+
diff --git a/docs/build/html/api/demos/node-info.html b/docs/build/html/api/demos/node-info.html
new file mode 100644
index 0000000000..84c59c42d0
--- /dev/null
+++ b/docs/build/html/api/demos/node-info.html
@@ -0,0 +1,15 @@
+
+
+nodeInfo -
+
+
+
+demos / nodeInfo
+
+nodeInfo
+
+fun nodeInfo ( hostAndPortString : String , identityFile : String , advertisedServices : Set < ServiceType > = emptySet()) : NodeInfo
+
+
+
+
diff --git a/docs/build/html/api/index-outline.html b/docs/build/html/api/index-outline.html
new file mode 100644
index 0000000000..7b9b811bc3
--- /dev/null
+++ b/docs/build/html/api/index-outline.html
@@ -0,0 +1,10901 @@
+
+
+Module Contents
+
+
+
+
+
+
+
+Module Contents
+
+
+
+alltypes
+
+
+
+Module Contents
+
+
+
+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 , ContractState ? >
+abstract fun fetchTransactions ( txs : List < SecureHash > ) : Map < SecureHash , SignedTransaction ? >
+abstract fun generateTransactionSignature ( tx : SerializedBytes < WireTransaction > ) : WithKey
+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
+
+
+
+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 , ContractState ? >
+fun fetchTransactions ( txs : List < SecureHash > ) : Map < SecureHash , SignedTransaction ? >
+fun generateTransactionSignature ( tx : SerializedBytes < WireTransaction > ) : WithKey
+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
+
+
+
+abstract class AbstractNode
+
+abstract class AbstractNodeService
+
+abstract class AbstractRequestMessage
+
+interface AcceptsFileUpload
+
+enum class AccrualAdjustment
+
+enum class AddOrRemove
+
+
+
+Module Contents
+
+
+
+ADD
+REMOVE
+
+
+
+interface AffinityExecutor : Executor
+
+interface AllPossibleRecipients : MessageRecipients
+data class Amount : Comparable < Amount >
+
+class ArtemisMessagingService : MessagingService
+
+interface Attachment : NamedByHash
+
+class AttachmentDownloadServlet
+
+interface AttachmentStorage
+
+class AttachmentsClassLoader : SecureClassLoader
+
+data class AuthenticatedObject < out T : Any >
+
+object AutoOfferProtocol
+
+class BriefLogFormatter : Formatter
+
+open class BusinessCalendar
+
+class Cash : Contract
+
+object CityDatabase
+
+data class Command
+
+interface CommandData
+class CommercialPaper : Contract
+
+class Config
+
+class ConfigurationException : Exception
+
+interface Contract
+
+data class ContractClassRef : ContractDefRef
+
+interface ContractDefRef
+data class ContractLedgerRef : ContractDefRef
+
+interface ContractState
+
+class CrowdFund : Contract
+
+class CubicSplineInterpolator : Interpolator
+
+class DataUploadServlet
+
+class DataVendingService : AbstractNodeService
+
+enum class DateOffset
+
+enum class DateRollConvention
+
+enum class DateRollDirection
+
+enum class DayCountBasisDay
+
+enum class DayCountBasisYear
+
+interface DealState : LinearState
+
+class DemoClock : Clock
+
+open class DigitalSignature : OpaqueBytes
+
+class DummyContract : Contract
+
+class DummyPublicKey : PublicKey , Comparable < PublicKey >
+
+object DummyTimestampingAuthority
+
+class E2ETestKeyManagementService : KeyManagementService
+
+object Emoji
+
+open class Event
+
+object ExitServerProtocol
+
+data class Expression
+
+object ExpressionDeserializer
+
+object ExpressionSerializer
+
+class FetchAttachmentsProtocol : FetchDataProtocol < Attachment , ByteArray >
+
+abstract class FetchDataProtocol < T : NamedByHash , W : Any > : ProtocolLogic < Result < T > >
+
+class FetchTransactionsProtocol : FetchDataProtocol < SignedTransaction , SignedTransaction >
+
+data class Fix : CommandData
+
+data class FixOf
+
+interface FixableDealState : DealState
+
+class FixedRate : Rate
+
+class FixedRatePaymentEvent : RatePaymentEvent
+
+open class FloatingRate : Rate
+
+class FloatingRatePaymentEvent : RatePaymentEvent
+
+enum class Frequency
+
+class IRSSimulation : Simulation
+
+interface IdentityService
+
+class ImmutableClassSerializer < T : Any >
+
+class InMemoryIdentityService : IdentityService
+
+class InMemoryMessagingNetwork
+
+open class InMemoryNetworkMapCache : NetworkMapCache
+
+class InMemoryNetworkMapService : NetworkMapService , AbstractNodeService
+
+class InsufficientBalanceException : Exception
+
+class InterestRateSwap : Contract
+
+
+
+Module Contents
+
+
+
+InterestRateSwap ( )
+data class Calculation
+
+interface Commands : CommandData
+
+data class Common
+
+
+
+Module Contents
+
+
+
+Common ( baseCurrency : Currency , eligibleCurrency : Currency , eligibleCreditSupport : String , independentAmounts : Amount , threshold : Amount , minimumTransferAmount : Amount , rounding : Amount , valuationDate : String , notificationTime : String , resolutionTime : String , interestRate : ReferenceRate , addressForTransfers : String , exposure : UnknownType , localBusinessDay : BusinessCalendar , dailyInterestAmount : Expression , tradeID : String , hashLegalDocs : String )
+val addressForTransfers : String
+val baseCurrency : Currency
+val dailyInterestAmount : Expression
+val eligibleCreditSupport : String
+val eligibleCurrency : Currency
+val exposure : UnknownType
+val hashLegalDocs : String
+val independentAmounts : Amount
+val interestRate : ReferenceRate
+val localBusinessDay : BusinessCalendar
+val minimumTransferAmount : Amount
+val notificationTime : String
+val resolutionTime : String
+val rounding : Amount
+val threshold : Amount
+val tradeID : String
+val valuationDate : String
+
+
+
+abstract class CommonLeg
+
+
+
+Module Contents
+
+
+
+CommonLeg ( notional : Amount , paymentFrequency : Frequency , effectiveDate : LocalDate , effectiveDateAdjustment : DateRollConvention ? , terminationDate : LocalDate , terminationDateAdjustment : DateRollConvention ? , dayCountBasisDay : DayCountBasisDay , dayCountBasisYear : DayCountBasisYear , dayInMonth : Int , paymentRule : PaymentRule , paymentDelay : Int , paymentCalendar : BusinessCalendar , interestPeriodAdjustment : AccrualAdjustment )
+var dayCountBasisDay : DayCountBasisDay
+var dayCountBasisYear : DayCountBasisYear
+var dayInMonth : Int
+val effectiveDate : LocalDate
+val effectiveDateAdjustment : DateRollConvention ?
+open fun equals ( other : Any ? ) : Boolean
+open fun hashCode ( ) : Int
+var interestPeriodAdjustment : AccrualAdjustment
+val notional : Amount
+var paymentCalendar : BusinessCalendar
+var paymentDelay : Int
+val paymentFrequency : Frequency
+var paymentRule : PaymentRule
+val terminationDate : LocalDate
+val terminationDateAdjustment : DateRollConvention ?
+open fun toString ( ) : String
+
+
+
+class FixedLeg : CommonLeg
+
+
+
+Module Contents
+
+
+
+FixedLeg ( fixedRatePayer : Party , notional : Amount , paymentFrequency : Frequency , effectiveDate : LocalDate , effectiveDateAdjustment : DateRollConvention ? , terminationDate : LocalDate , terminationDateAdjustment : DateRollConvention ? , dayCountBasisDay : DayCountBasisDay , dayCountBasisYear : DayCountBasisYear , dayInMonth : Int , paymentRule : PaymentRule , paymentDelay : Int , paymentCalendar : BusinessCalendar , interestPeriodAdjustment : AccrualAdjustment , fixedRate : FixedRate , rollConvention : DateRollConvention )
+open fun equals ( other : Any ? ) : Boolean
+var fixedRate : FixedRate
+var fixedRatePayer : Party
+open fun hashCode ( ) : Int
+var rollConvention : DateRollConvention
+open fun toString ( ) : String
+
+
+
+class FloatingLeg : CommonLeg
+
+
+
+Module Contents
+
+
+
+FloatingLeg ( floatingRatePayer : Party , notional : Amount , paymentFrequency : Frequency , effectiveDate : LocalDate , effectiveDateAdjustment : DateRollConvention ? , terminationDate : LocalDate , terminationDateAdjustment : DateRollConvention ? , dayCountBasisDay : DayCountBasisDay , dayCountBasisYear : DayCountBasisYear , dayInMonth : Int , paymentRule : PaymentRule , paymentDelay : Int , paymentCalendar : BusinessCalendar , interestPeriodAdjustment : AccrualAdjustment , rollConvention : DateRollConvention , fixingRollConvention : DateRollConvention , resetDayInMonth : Int , fixingPeriod : DateOffset , resetRule : PaymentRule , fixingsPerPayment : Frequency , fixingCalendar : BusinessCalendar , index : String , indexSource : String , indexTenor : Tenor )
+open fun equals ( other : Any ? ) : Boolean
+var fixingCalendar : BusinessCalendar
+var fixingPeriod : DateOffset
+var fixingRollConvention : DateRollConvention
+var fixingsPerPayment : Frequency
+var floatingRatePayer : Party
+open fun hashCode ( ) : Int
+var index : String
+var indexSource : String
+var indexTenor : Tenor
+var resetDayInMonth : Int
+var resetRule : PaymentRule
+var rollConvention : DateRollConvention
+open fun toString ( ) : String
+
+
+
+data class State : FixableDealState
+
+fun generateAgreement ( floatingLeg : FloatingLeg , fixedLeg : FixedLeg , calculation : Calculation , common : Common ) : TransactionBuilder
+fun generateFix ( tx : TransactionBuilder , irs : StateAndRef < State > , fixing : <ERROR CLASS> < LocalDate , Rate > ) : Unit
+val legalContractReference : SecureHash
+fun verify ( tx : TransactionForVerification ) : Unit
+
+
+
+class InterestRateSwapAPI
+
+interface Interpolator
+
+interface InterpolatorFactory
+
+object JsonSupport
+
+interface KeyManagementService
+
+data class LedgerTransaction : NamedByHash
+
+class LinearInterpolator : Interpolator
+
+interface LinearState : ContractState
+
+interface Message
+
+interface MessageHandlerRegistration
+interface MessageRecipientGroup : MessageRecipients
+interface MessageRecipients
+interface MessagingService
+
+interface MessagingServiceBuilder < out T : MessagingService >
+
+class MissingAttachmentsException : Exception
+
+class MockIdentityService : IdentityService
+
+class MockNetwork
+
+class MockNetworkMapCache : InMemoryNetworkMapCache
+
+class MonitoringService
+
+interface NamedByHash
+
+sealed class NetworkCacheError : Exception
+
+interface NetworkMapCache
+
+interface NetworkMapService
+
+class Node : AbstractNode
+
+class NodeAttachmentService : AttachmentStorage , AcceptsFileUpload
+
+interface NodeConfiguration
+
+class NodeConfigurationFromConfig : NodeConfiguration
+
+data class NodeInfo
+
+object NodeInterestRates
+
+sealed class NodeMapError : Exception
+
+class NodeRegistration
+
+class NodeTimestamperService : AbstractNodeService
+
+class NodeWalletService : WalletService
+
+object NullPublicKey : PublicKey , Comparable < PublicKey >
+
+open class OpaqueBytes
+
+interface OwnableState : ContractState
+
+data class Party
+
+data class PartyReference
+
+abstract class PaymentEvent : Event
+
+enum class PaymentRule
+
+open class PercentageRatioUnit : RatioUnit
+
+data class PhysicalLocation
+
+class Polynomial
+
+class ProgressTracker
+
+data class ProtocolClassRef : ProtocolRef
+
+data class ProtocolInstanceRef
+
+abstract class ProtocolLogic < T >
+
+
+
+Module Contents
+
+
+
+ProtocolLogic ( )
+abstract fun call ( ) : T
+val logger : <ERROR CLASS>
+open val progressTracker : ProgressTracker ?
+lateinit var psm : ProtocolStateMachine < * >
+inline fun < reified T : Any > receive ( topic : String , sessionIDForReceive : Long ) : UntrustworthyData < T >
+fun < T : Any > receive ( topic : String , sessionIDForReceive : Long , clazz : Class < T > ) : UntrustworthyData < T >
+fun send ( topic : String , destination : MessageRecipients , sessionID : Long , obj : Any ) : Unit
+inline fun < reified T : Any > sendAndReceive ( topic : String , destination : MessageRecipients , sessionIDForSend : Long , sessionIDForReceive : Long , obj : Any ) : UntrustworthyData < T >
+val serviceHub : ServiceHub
+fun < R > subProtocol ( subLogic : ProtocolLogic < R > ) : R
+
+
+
+interface ProtocolRef
+data class ProtocolRequiringAttention
+
+class ProtocolStateMachine < R >
+
+
+
+Module Contents
+
+
+
+ProtocolStateMachine ( logic : ProtocolLogic < R > , scheduler : <ERROR CLASS> )
+lateinit var logger : <ERROR CLASS>
+val logic : ProtocolLogic < R >
+fun prepareForResumeWith ( serviceHub : ServiceHub , withObject : Any ? , logger : <ERROR CLASS> , suspendFunc : ( FiberRequest , ByteArray ) -> Unit ) : Unit
+fun < T : Any > receive ( topic : String , sessionIDForReceive : Long , recvType : Class < T > ) : UntrustworthyData < T >
+val resultFuture : <ERROR CLASS> < R >
+fun run ( ) : R
+fun send ( topic : String , destination : MessageRecipients , sessionID : Long , obj : Any ) : Unit
+fun < T : Any > sendAndReceive ( topic : String , destination : MessageRecipients , sessionIDForSend : Long , sessionIDForReceive : Long , obj : Any , recvType : Class < T > ) : UntrustworthyData < T >
+lateinit var serviceHub : ServiceHub
+
+
+
+open class Rate
+
+abstract class RatePaymentEvent : PaymentEvent
+
+open class RatesFixProtocol : ProtocolLogic < Unit >
+
+open class RatioUnit
+
+class RecordingMap < K , V > : MutableMap < K , V >
+
+class ReferenceRate : FloatingRate
+
+interface RegulatorService
+
+class Requirements
+
+class ResolveTransactionsProtocol : ProtocolLogic < Unit >
+
+class ResponseFilter
+
+sealed class SecureHash : OpaqueBytes
+
+class SerializedBytes < T : Any > : OpaqueBytes
+
+object SerializedBytesSerializer
+
+interface ServiceHub
+
+abstract class ServiceType
+
+open class SignedData < T : Any >
+
+data class SignedTransaction : NamedByHash
+
+abstract class Simulation
+
+interface SingleMessageRecipient : MessageRecipients
+class SplineFunction
+
+class StackSnapshot : Throwable
+
+data class StateAndRef < out T : ContractState >
+
+class StateMachineManager
+
+data class StateRef
+
+interface StatesQuery
+
+interface StorageService
+
+open class StorageServiceImpl : StorageService
+
+data class Tenor
+
+class ThreadBox < T >
+
+data class TimestampCommand : CommandData
+
+interface TimestamperService
+
+sealed class TimestampingError : Exception
+
+class TimestampingProtocol : ProtocolLogic < LegallyIdentifiable >
+
+object TopicStringValidator
+
+class TradeSimulation : Simulation
+
+class TraderDemoProtocolBuyer : ProtocolLogic < Unit >
+
+class TraderDemoProtocolSeller : ProtocolLogic < Unit >
+
+data class TransactionBuildStep
+
+class TransactionBuilder
+
+class TransactionConflictException : Exception
+
+data class TransactionForVerification
+
+
+
+Module Contents
+
+
+
+TransactionForVerification ( inStates : List < ContractState > , outStates : List < ContractState > , attachments : List < Attachment > , commands : List < AuthenticatedObject < CommandData > > , origHash : SecureHash )
+data class InOutGroup < T : ContractState , K : Any >
+
+val attachments : List < Attachment >
+val commands : List < AuthenticatedObject < CommandData > >
+fun equals ( other : Any ? ) : Boolean
+fun getTimestampBy ( timestampingAuthority : Party ) : TimestampCommand ?
+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 inStates : List < ContractState >
+val origHash : SecureHash
+val outStates : List < ContractState >
+fun verify ( ) : Unit
+
+
+
+class TransactionGraphSearch : Callable < List < WireTransaction > >
+
+class TransactionGroup
+
+class TransactionResolutionException : Exception
+
+class TransactionVerificationException : Exception
+
+class TransientProperty < T >
+
+object TwoPartyDealProtocol
+
+object TwoPartyTradeProtocol
+
+
+
+Module Contents
+
+
+
+class AssetMismatchException : Exception
+
+class Buyer : ProtocolLogic < SignedTransaction >
+
+class Seller : ProtocolLogic < SignedTransaction >
+
+class SellerTradeInfo
+
+class SignaturesFromSeller
+
+val TRADE_TOPIC : String
+class UnacceptablePriceException : Exception
+
+fun runBuyer ( smm : StateMachineManager , timestampingAuthority : NodeInfo , otherSide : SingleMessageRecipient , acceptablePrice : Amount , typeToBuy : Class < out OwnableState > , sessionID : Long ) : <ERROR CLASS> < SignedTransaction >
+fun runSeller ( smm : StateMachineManager , timestampingAuthority : NodeInfo , otherSide : SingleMessageRecipient , assetToSell : StateAndRef < OwnableState > , price : Amount , myKeyPair : KeyPair , buyerSessionID : Long ) : <ERROR CLASS> < SignedTransaction >
+
+
+
+abstract class TypeOnlyCommandData : CommandData
+
+open class UnknownType
+
+class UntrustworthyData < T >
+
+object UpdateBusinessDayProtocol
+
+data class Wallet
+
+interface WalletService
+
+class WireNodeRegistration : SignedData < NodeRegistration >
+
+data class WireTransaction : NamedByHash
+
+object WireTransactionSerializer
+
+data class WorldCoordinate
+
+java.nio.file.Path
+
+java.security.KeyPair
+
+java.security.PrivateKey
+
+java.security.PublicKey
+
+java.time.LocalDate
+
+java.time.temporal.Temporal
+
+kotlin.ByteArray
+
+kotlin.ByteArray
+
+kotlin.Double
+
+kotlin.Int
+
+kotlin.Int
+
+kotlin.Long
+
+kotlin.String
+
+kotlin.String
+
+kotlin.collections.Iterable
+
+kotlin.collections.Iterable
+
+kotlin.collections.List
+
+
+
+
+package 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 , ContractState ? >
+abstract fun fetchTransactions ( txs : List < SecureHash > ) : Map < SecureHash , SignedTransaction ? >
+abstract fun generateTransactionSignature ( tx : SerializedBytes < WireTransaction > ) : WithKey
+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
+
+
+
+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 , ContractState ? >
+fun fetchTransactions ( txs : List < SecureHash > ) : Map < SecureHash , SignedTransaction ? >
+fun generateTransactionSignature ( tx : SerializedBytes < WireTransaction > ) : WithKey
+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
+
+
+
+class Config
+
+data class ContractClassRef : ContractDefRef
+
+interface ContractDefRef
+data class ContractLedgerRef : ContractDefRef
+
+class InterestRateSwapAPI
+
+data class ProtocolClassRef : ProtocolRef
+
+data class ProtocolInstanceRef
+
+interface ProtocolRef
+data class ProtocolRequiringAttention
+
+class ResponseFilter
+
+interface StatesQuery
+
+data class TransactionBuildStep
+
+
+
+
+package contracts
+
+
+
+Module Contents
+
+
+
+val CASH_PROGRAM_ID : Cash
+val CP_PROGRAM_ID : CommercialPaper
+val CROWDFUND_PROGRAM_ID : CrowdFund
+class Cash : Contract
+
+class CommercialPaper : Contract
+
+class CrowdFund : Contract
+
+val DUMMY_PROGRAM_ID : DummyContract
+interface DealState : LinearState
+
+class DummyContract : Contract
+
+open class Event
+
+interface FixableDealState : DealState
+
+class FixedRate : Rate
+
+class FixedRatePaymentEvent : RatePaymentEvent
+
+open class FloatingRate : Rate
+
+class FloatingRatePaymentEvent : RatePaymentEvent
+
+val IRS_PROGRAM_ID : InterestRateSwap
+class InsufficientBalanceException : Exception
+
+class InterestRateSwap : Contract
+
+
+
+Module Contents
+
+
+
+InterestRateSwap ( )
+data class Calculation
+
+interface Commands : CommandData
+
+data class Common
+
+
+
+Module Contents
+
+
+
+Common ( baseCurrency : Currency , eligibleCurrency : Currency , eligibleCreditSupport : String , independentAmounts : Amount , threshold : Amount , minimumTransferAmount : Amount , rounding : Amount , valuationDate : String , notificationTime : String , resolutionTime : String , interestRate : ReferenceRate , addressForTransfers : String , exposure : UnknownType , localBusinessDay : BusinessCalendar , dailyInterestAmount : Expression , tradeID : String , hashLegalDocs : String )
+val addressForTransfers : String
+val baseCurrency : Currency
+val dailyInterestAmount : Expression
+val eligibleCreditSupport : String
+val eligibleCurrency : Currency
+val exposure : UnknownType
+val hashLegalDocs : String
+val independentAmounts : Amount
+val interestRate : ReferenceRate
+val localBusinessDay : BusinessCalendar
+val minimumTransferAmount : Amount
+val notificationTime : String
+val resolutionTime : String
+val rounding : Amount
+val threshold : Amount
+val tradeID : String
+val valuationDate : String
+
+
+
+abstract class CommonLeg
+
+
+
+Module Contents
+
+
+
+CommonLeg ( notional : Amount , paymentFrequency : Frequency , effectiveDate : LocalDate , effectiveDateAdjustment : DateRollConvention ? , terminationDate : LocalDate , terminationDateAdjustment : DateRollConvention ? , dayCountBasisDay : DayCountBasisDay , dayCountBasisYear : DayCountBasisYear , dayInMonth : Int , paymentRule : PaymentRule , paymentDelay : Int , paymentCalendar : BusinessCalendar , interestPeriodAdjustment : AccrualAdjustment )
+var dayCountBasisDay : DayCountBasisDay
+var dayCountBasisYear : DayCountBasisYear
+var dayInMonth : Int
+val effectiveDate : LocalDate
+val effectiveDateAdjustment : DateRollConvention ?
+open fun equals ( other : Any ? ) : Boolean
+open fun hashCode ( ) : Int
+var interestPeriodAdjustment : AccrualAdjustment
+val notional : Amount
+var paymentCalendar : BusinessCalendar
+var paymentDelay : Int
+val paymentFrequency : Frequency
+var paymentRule : PaymentRule
+val terminationDate : LocalDate
+val terminationDateAdjustment : DateRollConvention ?
+open fun toString ( ) : String
+
+
+
+class FixedLeg : CommonLeg
+
+
+
+Module Contents
+
+
+
+FixedLeg ( fixedRatePayer : Party , notional : Amount , paymentFrequency : Frequency , effectiveDate : LocalDate , effectiveDateAdjustment : DateRollConvention ? , terminationDate : LocalDate , terminationDateAdjustment : DateRollConvention ? , dayCountBasisDay : DayCountBasisDay , dayCountBasisYear : DayCountBasisYear , dayInMonth : Int , paymentRule : PaymentRule , paymentDelay : Int , paymentCalendar : BusinessCalendar , interestPeriodAdjustment : AccrualAdjustment , fixedRate : FixedRate , rollConvention : DateRollConvention )
+open fun equals ( other : Any ? ) : Boolean
+var fixedRate : FixedRate
+var fixedRatePayer : Party
+open fun hashCode ( ) : Int
+var rollConvention : DateRollConvention
+open fun toString ( ) : String
+
+
+
+class FloatingLeg : CommonLeg
+
+
+
+Module Contents
+
+
+
+FloatingLeg ( floatingRatePayer : Party , notional : Amount , paymentFrequency : Frequency , effectiveDate : LocalDate , effectiveDateAdjustment : DateRollConvention ? , terminationDate : LocalDate , terminationDateAdjustment : DateRollConvention ? , dayCountBasisDay : DayCountBasisDay , dayCountBasisYear : DayCountBasisYear , dayInMonth : Int , paymentRule : PaymentRule , paymentDelay : Int , paymentCalendar : BusinessCalendar , interestPeriodAdjustment : AccrualAdjustment , rollConvention : DateRollConvention , fixingRollConvention : DateRollConvention , resetDayInMonth : Int , fixingPeriod : DateOffset , resetRule : PaymentRule , fixingsPerPayment : Frequency , fixingCalendar : BusinessCalendar , index : String , indexSource : String , indexTenor : Tenor )
+open fun equals ( other : Any ? ) : Boolean
+var fixingCalendar : BusinessCalendar
+var fixingPeriod : DateOffset
+var fixingRollConvention : DateRollConvention
+var fixingsPerPayment : Frequency
+var floatingRatePayer : Party
+open fun hashCode ( ) : Int
+var index : String
+var indexSource : String
+var indexTenor : Tenor
+var resetDayInMonth : Int
+var resetRule : PaymentRule
+var rollConvention : DateRollConvention
+open fun toString ( ) : String
+
+
+
+data class State : FixableDealState
+
+fun generateAgreement ( floatingLeg : FloatingLeg , fixedLeg : FixedLeg , calculation : Calculation , common : Common ) : TransactionBuilder
+fun generateFix ( tx : TransactionBuilder , irs : StateAndRef < State > , fixing : <ERROR CLASS> < LocalDate , Rate > ) : Unit
+val legalContractReference : SecureHash
+fun verify ( tx : TransactionForVerification ) : Unit
+
+
+
+abstract class PaymentEvent : Event
+
+open class PercentageRatioUnit : RatioUnit
+
+open class Rate
+
+abstract class RatePaymentEvent : PaymentEvent
+
+open class RatioUnit
+
+class ReferenceRate : FloatingRate
+
+open class UnknownType
+
+fun State . exportIRSToCSV ( ) : String
+kotlin.Int
+
+kotlin.String
+
+kotlin.collections.Iterable
+
+operator fun Amount . times ( other : RatioUnit ) : Amount
+
+
+
+package core
+
+
+
+Module Contents
+
+
+
+enum class AccrualAdjustment
+
+data class Amount : Comparable < Amount >
+
+interface Attachment : NamedByHash
+
+data class AuthenticatedObject < out T : Any >
+
+open class BusinessCalendar
+
+val CHF : Currency
+data class Command
+
+interface CommandData
+interface Contract
+
+interface ContractState
+
+enum class DateOffset
+
+enum class DateRollConvention
+
+enum class DateRollDirection
+
+enum class DayCountBasisDay
+
+enum class DayCountBasisYear
+
+data class Expression
+
+object ExpressionDeserializer
+
+object ExpressionSerializer
+
+data class Fix : CommandData
+
+data class FixOf
+
+enum class Frequency
+
+val GBP : Currency
+data class LedgerTransaction : NamedByHash
+
+interface LinearState : ContractState
+
+interface NamedByHash
+
+interface OwnableState : ContractState
+
+data class Party
+
+data class PartyReference
+
+enum class PaymentRule
+
+val R : Requirements
+class Requirements
+
+val RunOnCallerThread : <ERROR CLASS>
+data class SignedTransaction : NamedByHash
+
+data class StateAndRef < out T : ContractState >
+
+data class StateRef
+
+data class Tenor
+
+class ThreadBox < T >
+
+data class TimestampCommand : CommandData
+
+class TransactionBuilder
+
+class TransactionConflictException : Exception
+
+data class TransactionForVerification
+
+
+
+Module Contents
+
+
+
+TransactionForVerification ( inStates : List < ContractState > , outStates : List < ContractState > , attachments : List < Attachment > , commands : List < AuthenticatedObject < CommandData > > , origHash : SecureHash )
+data class InOutGroup < T : ContractState , K : Any >
+
+val attachments : List < Attachment >
+val commands : List < AuthenticatedObject < CommandData > >
+fun equals ( other : Any ? ) : Boolean
+fun getTimestampBy ( timestampingAuthority : Party ) : TimestampCommand ?
+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 inStates : List < ContractState >
+val origHash : SecureHash
+val outStates : List < ContractState >
+fun verify ( ) : Unit
+
+
+
+class TransactionGraphSearch : Callable < List < WireTransaction > >
+
+class TransactionGroup
+
+class TransactionResolutionException : Exception
+
+class TransactionVerificationException : Exception
+
+class TransientProperty < T >
+
+abstract class TypeOnlyCommandData : CommandData
+
+val USD : Currency
+data class WireTransaction : NamedByHash
+
+fun calculateDaysBetween ( startDate : LocalDate , endDate : LocalDate , dcbYear : DayCountBasisYear , dcbDay : DayCountBasisDay ) : Int
+fun currency ( code : String ) : Currency
+fun extractZipFile ( : Path , : Path ) : Unit
+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 >
+fun ContractState . hash ( ) : SecureHash
+java.nio.file.Path
+
+java.time.LocalDate
+
+java.time.temporal.Temporal
+
+kotlin.Double
+
+kotlin.Int
+
+kotlin.Long
+
+kotlin.String
+
+kotlin.collections.Iterable
+
+kotlin.collections.List
+
+inline fun < T > logElapsedTime ( label : String , logger : <ERROR CLASS> ? = null, body : ( ) -> T ) : T
+fun random63BitValue ( ) : Long
+inline fun < R > requireThat ( body : Requirements . ( ) -> R ) : R
+fun < T > <ERROR CLASS> < T > . setFrom ( logger : <ERROR CLASS> ? = null, block : ( ) -> T ) : <ERROR CLASS> < T >
+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 >
+fun < T > <ERROR CLASS> < T > . then ( executor : Executor , body : ( ) -> Unit ) : <ERROR CLASS>
+infix fun < T > <ERROR CLASS> < T > . then ( body : ( ) -> Unit ) : <ERROR CLASS> < T >
+fun WireTransaction . toLedgerTransaction ( identityService : IdentityService , attachmentStorage : AttachmentStorage ) : LedgerTransaction
+fun SignedTransaction . verifyToLedgerTransaction ( identityService : IdentityService , attachmentStorage : AttachmentStorage ) : LedgerTransaction
+
+
+
+package core.crypto
+
+package core.math
+
+package core.messaging
+
+package core.node
+
+package core.node.services
+
+package core.node.servlets
+
+package core.node.subsystems
+
+package core.protocols
+
+
+
+Module Contents
+
+
+
+abstract class ProtocolLogic < T >
+
+
+
+Module Contents
+
+
+
+ProtocolLogic ( )
+abstract fun call ( ) : T
+val logger : <ERROR CLASS>
+open val progressTracker : ProgressTracker ?
+lateinit var psm : ProtocolStateMachine < * >
+inline fun < reified T : Any > receive ( topic : String , sessionIDForReceive : Long ) : UntrustworthyData < T >
+fun < T : Any > receive ( topic : String , sessionIDForReceive : Long , clazz : Class < T > ) : UntrustworthyData < T >
+fun send ( topic : String , destination : MessageRecipients , sessionID : Long , obj : Any ) : Unit
+inline fun < reified T : Any > sendAndReceive ( topic : String , destination : MessageRecipients , sessionIDForSend : Long , sessionIDForReceive : Long , obj : Any ) : UntrustworthyData < T >
+val serviceHub : ServiceHub
+fun < R > subProtocol ( subLogic : ProtocolLogic < R > ) : R
+
+
+
+class ProtocolStateMachine < R >
+
+
+
+Module Contents
+
+
+
+ProtocolStateMachine ( logic : ProtocolLogic < R > , scheduler : <ERROR CLASS> )
+lateinit var logger : <ERROR CLASS>
+val logic : ProtocolLogic < R >
+fun prepareForResumeWith ( serviceHub : ServiceHub , withObject : Any ? , logger : <ERROR CLASS> , suspendFunc : ( FiberRequest , ByteArray ) -> Unit ) : Unit
+fun < T : Any > receive ( topic : String , sessionIDForReceive : Long , recvType : Class < T > ) : UntrustworthyData < T >
+val resultFuture : <ERROR CLASS> < R >
+fun run ( ) : R
+fun send ( topic : String , destination : MessageRecipients , sessionID : Long , obj : Any ) : Unit
+fun < T : Any > sendAndReceive ( topic : String , destination : MessageRecipients , sessionIDForSend : Long , sessionIDForReceive : Long , obj : Any , recvType : Class < T > ) : UntrustworthyData < T >
+lateinit var serviceHub : ServiceHub
+
+
+
+
+
+
+package core.serialization
+
+package core.testing
+
+package core.utilities
+
+package demos
+
+package demos.protocols
+
+package protocols
+
+
+
+Module Contents
+
+
+
+abstract class AbstractRequestMessage
+
+class FetchAttachmentsProtocol : FetchDataProtocol < Attachment , ByteArray >
+
+abstract class FetchDataProtocol < T : NamedByHash , W : Any > : ProtocolLogic < Result < T > >
+
+class FetchTransactionsProtocol : FetchDataProtocol < SignedTransaction , SignedTransaction >
+
+open class RatesFixProtocol : ProtocolLogic < Unit >
+
+class ResolveTransactionsProtocol : ProtocolLogic < Unit >
+
+class TimestampingProtocol : ProtocolLogic < LegallyIdentifiable >
+
+object TwoPartyDealProtocol
+
+object TwoPartyTradeProtocol
+
+
+
+Module Contents
+
+
+
+class AssetMismatchException : Exception
+
+class Buyer : ProtocolLogic < SignedTransaction >
+
+class Seller : ProtocolLogic < SignedTransaction >
+
+class SellerTradeInfo
+
+class SignaturesFromSeller
+
+val TRADE_TOPIC : String
+class UnacceptablePriceException : Exception
+
+fun runBuyer ( smm : StateMachineManager , timestampingAuthority : NodeInfo , otherSide : SingleMessageRecipient , acceptablePrice : Amount , typeToBuy : Class < out OwnableState > , sessionID : Long ) : <ERROR CLASS> < SignedTransaction >
+fun runSeller ( smm : StateMachineManager , timestampingAuthority : NodeInfo , otherSide : SingleMessageRecipient , assetToSell : StateAndRef < OwnableState > , price : Amount , myKeyPair : KeyPair , buyerSessionID : Long ) : <ERROR CLASS> < SignedTransaction >
+
+
+
+
+
+
+
+
+
+
+
diff --git a/docs/build/html/api/index.html b/docs/build/html/api/index.html
new file mode 100644
index 0000000000..a8472fdb06
--- /dev/null
+++ b/docs/build/html/api/index.html
@@ -0,0 +1,118 @@
+
+
+
+
+
+
+
+
+Packages
+
+Index
+All Types
+
diff --git a/docs/build/html/api/protocols/-abstract-request-message/-init-.html b/docs/build/html/api/protocols/-abstract-request-message/-init-.html
new file mode 100644
index 0000000000..d40df32592
--- /dev/null
+++ b/docs/build/html/api/protocols/-abstract-request-message/-init-.html
@@ -0,0 +1,16 @@
+
+
+AbstractRequestMessage. -
+
+
+
+protocols / AbstractRequestMessage / <init>
+
+<init>
+AbstractRequestMessage ( replyTo : MessageRecipients , sessionID : Long ? )
+Abstract superclass for request messages sent to services, which includes common
+fields such as replyTo and replyToTopic.
+
+
+
+
diff --git a/docs/build/html/api/protocols/-abstract-request-message/index.html b/docs/build/html/api/protocols/-abstract-request-message/index.html
new file mode 100644
index 0000000000..2a135f43a9
--- /dev/null
+++ b/docs/build/html/api/protocols/-abstract-request-message/index.html
@@ -0,0 +1,99 @@
+
+
+AbstractRequestMessage -
+
+
+
+protocols / AbstractRequestMessage
+
+AbstractRequestMessage
+abstract class AbstractRequestMessage
+Abstract superclass for request messages sent to services, which includes common
+fields such as replyTo and replyToTopic.
+
+
+Constructors
+
+
+
+
+<init>
+
+AbstractRequestMessage ( replyTo : MessageRecipients , sessionID : Long ? )
Abstract superclass for request messages sent to services, which includes common
+fields such as replyTo and replyToTopic.
+
+
+
+
+Properties
+
+Inheritors
+
+
+
+
+FetchMapRequest
+
+class FetchMapRequest : AbstractRequestMessage
+
+
+
+QueryIdentityRequest
+
+class QueryIdentityRequest : AbstractRequestMessage
+
+
+
+QueryRequest
+
+class QueryRequest : AbstractRequestMessage
+
+
+
+RegistrationRequest
+
+class RegistrationRequest : AbstractRequestMessage
+
+
+
+Request
+
+class Request : AbstractRequestMessage
+
+
+
+Request
+
+class Request : AbstractRequestMessage
+
+
+
+SignRequest
+
+class SignRequest : AbstractRequestMessage
+
+
+
+SubscribeRequest
+
+class SubscribeRequest : AbstractRequestMessage
+
+
+
+
+
diff --git a/docs/build/html/api/protocols/-abstract-request-message/reply-to.html b/docs/build/html/api/protocols/-abstract-request-message/reply-to.html
new file mode 100644
index 0000000000..c7c5fdea23
--- /dev/null
+++ b/docs/build/html/api/protocols/-abstract-request-message/reply-to.html
@@ -0,0 +1,15 @@
+
+
+AbstractRequestMessage.replyTo -
+
+
+
+protocols / AbstractRequestMessage / replyTo
+
+replyTo
+
+val replyTo : MessageRecipients
+
+
+
+
diff --git a/docs/build/html/api/protocols/-abstract-request-message/session-i-d.html b/docs/build/html/api/protocols/-abstract-request-message/session-i-d.html
new file mode 100644
index 0000000000..a5ab1f537e
--- /dev/null
+++ b/docs/build/html/api/protocols/-abstract-request-message/session-i-d.html
@@ -0,0 +1,15 @@
+
+
+AbstractRequestMessage.sessionID -
+
+
+
+protocols / AbstractRequestMessage / sessionID
+
+sessionID
+
+val sessionID : Long ?
+
+
+
+
diff --git a/docs/build/html/api/protocols/-fetch-attachments-protocol/-init-.html b/docs/build/html/api/protocols/-fetch-attachments-protocol/-init-.html
new file mode 100644
index 0000000000..d0f65e1d5c
--- /dev/null
+++ b/docs/build/html/api/protocols/-fetch-attachments-protocol/-init-.html
@@ -0,0 +1,16 @@
+
+
+FetchAttachmentsProtocol. -
+
+
+
+protocols / FetchAttachmentsProtocol / <init>
+
+<init>
+FetchAttachmentsProtocol ( requests : Set < SecureHash > , otherSide : SingleMessageRecipient )
+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/protocols/-fetch-attachments-protocol/-t-o-p-i-c.html b/docs/build/html/api/protocols/-fetch-attachments-protocol/-t-o-p-i-c.html
new file mode 100644
index 0000000000..2430594127
--- /dev/null
+++ b/docs/build/html/api/protocols/-fetch-attachments-protocol/-t-o-p-i-c.html
@@ -0,0 +1,15 @@
+
+
+FetchAttachmentsProtocol.TOPIC -
+
+
+
+protocols / FetchAttachmentsProtocol / TOPIC
+
+TOPIC
+
+const val TOPIC : String
+
+
+
+
diff --git a/docs/build/html/api/protocols/-fetch-attachments-protocol/convert.html b/docs/build/html/api/protocols/-fetch-attachments-protocol/convert.html
new file mode 100644
index 0000000000..200385ea9f
--- /dev/null
+++ b/docs/build/html/api/protocols/-fetch-attachments-protocol/convert.html
@@ -0,0 +1,15 @@
+
+
+FetchAttachmentsProtocol.convert -
+
+
+
+protocols / FetchAttachmentsProtocol / convert
+
+convert
+
+protected fun convert ( wire : ByteArray ) : Attachment
+
+
+
+
diff --git a/docs/build/html/api/protocols/-fetch-attachments-protocol/index.html b/docs/build/html/api/protocols/-fetch-attachments-protocol/index.html
new file mode 100644
index 0000000000..2d1ab582e0
--- /dev/null
+++ b/docs/build/html/api/protocols/-fetch-attachments-protocol/index.html
@@ -0,0 +1,103 @@
+
+
+FetchAttachmentsProtocol -
+
+
+
+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 : SingleMessageRecipient )
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.
+
+
+
+
+Properties
+
+Inherited Properties
+
+Functions
+
+Inherited Functions
+
+
+
+
+call
+
+open fun call ( ) : Result < T >
This is where you fill out your business logic.
+
+
+
+
+Companion Object Properties
+
+
+
+
+TOPIC
+
+const val TOPIC : String
+
+
+
+
+
diff --git a/docs/build/html/api/protocols/-fetch-attachments-protocol/load.html b/docs/build/html/api/protocols/-fetch-attachments-protocol/load.html
new file mode 100644
index 0000000000..d02afa90ab
--- /dev/null
+++ b/docs/build/html/api/protocols/-fetch-attachments-protocol/load.html
@@ -0,0 +1,16 @@
+
+
+FetchAttachmentsProtocol.load -
+
+
+
+protocols / FetchAttachmentsProtocol / load
+
+load
+
+protected fun load ( txid : SecureHash ) : Attachment ?
+Overrides FetchDataProtocol.load
+
+
+
+
diff --git a/docs/build/html/api/protocols/-fetch-attachments-protocol/maybe-write-to-disk.html b/docs/build/html/api/protocols/-fetch-attachments-protocol/maybe-write-to-disk.html
new file mode 100644
index 0000000000..487894c398
--- /dev/null
+++ b/docs/build/html/api/protocols/-fetch-attachments-protocol/maybe-write-to-disk.html
@@ -0,0 +1,15 @@
+
+
+FetchAttachmentsProtocol.maybeWriteToDisk -
+
+
+
+protocols / FetchAttachmentsProtocol / maybeWriteToDisk
+
+maybeWriteToDisk
+
+protected fun maybeWriteToDisk ( downloaded : List < Attachment > ) : Unit
+
+
+
+
diff --git a/docs/build/html/api/protocols/-fetch-attachments-protocol/query-topic.html b/docs/build/html/api/protocols/-fetch-attachments-protocol/query-topic.html
new file mode 100644
index 0000000000..77e84f36be
--- /dev/null
+++ b/docs/build/html/api/protocols/-fetch-attachments-protocol/query-topic.html
@@ -0,0 +1,16 @@
+
+
+FetchAttachmentsProtocol.queryTopic -
+
+
+
+protocols / FetchAttachmentsProtocol / queryTopic
+
+queryTopic
+
+protected val queryTopic : String
+Overrides FetchDataProtocol.queryTopic
+
+
+
+
diff --git a/docs/build/html/api/protocols/-fetch-data-protocol/-bad-answer/-init-.html b/docs/build/html/api/protocols/-fetch-data-protocol/-bad-answer/-init-.html
new file mode 100644
index 0000000000..eeaa4e4222
--- /dev/null
+++ b/docs/build/html/api/protocols/-fetch-data-protocol/-bad-answer/-init-.html
@@ -0,0 +1,14 @@
+
+
+FetchDataProtocol.BadAnswer. -
+
+
+
+protocols / FetchDataProtocol / BadAnswer / <init>
+
+<init>
+BadAnswer ( )
+
+
+
+
diff --git a/docs/build/html/api/protocols/-fetch-data-protocol/-bad-answer/index.html b/docs/build/html/api/protocols/-fetch-data-protocol/-bad-answer/index.html
new file mode 100644
index 0000000000..f646e1e406
--- /dev/null
+++ b/docs/build/html/api/protocols/-fetch-data-protocol/-bad-answer/index.html
@@ -0,0 +1,42 @@
+
+
+FetchDataProtocol.BadAnswer -
+
+
+
+protocols / FetchDataProtocol / BadAnswer
+
+BadAnswer
+open class BadAnswer : Exception
+
+
+Constructors
+
+
+
+
+<init>
+
+BadAnswer ( )
+
+
+
+Inheritors
+
+
+
diff --git a/docs/build/html/api/protocols/-fetch-data-protocol/-downloaded-vs-requested-data-mismatch/-init-.html b/docs/build/html/api/protocols/-fetch-data-protocol/-downloaded-vs-requested-data-mismatch/-init-.html
new file mode 100644
index 0000000000..45a95f8d11
--- /dev/null
+++ b/docs/build/html/api/protocols/-fetch-data-protocol/-downloaded-vs-requested-data-mismatch/-init-.html
@@ -0,0 +1,14 @@
+
+
+FetchDataProtocol.DownloadedVsRequestedDataMismatch. -
+
+
+
+protocols / FetchDataProtocol / DownloadedVsRequestedDataMismatch / <init>
+
+<init>
+DownloadedVsRequestedDataMismatch ( requested : SecureHash , got : SecureHash )
+
+
+
+
diff --git a/docs/build/html/api/protocols/-fetch-data-protocol/-downloaded-vs-requested-data-mismatch/got.html b/docs/build/html/api/protocols/-fetch-data-protocol/-downloaded-vs-requested-data-mismatch/got.html
new file mode 100644
index 0000000000..3953e6af24
--- /dev/null
+++ b/docs/build/html/api/protocols/-fetch-data-protocol/-downloaded-vs-requested-data-mismatch/got.html
@@ -0,0 +1,15 @@
+
+
+FetchDataProtocol.DownloadedVsRequestedDataMismatch.got -
+
+
+
+protocols / FetchDataProtocol / DownloadedVsRequestedDataMismatch / got
+
+got
+
+val got : SecureHash
+
+
+
+
diff --git a/docs/build/html/api/protocols/-fetch-data-protocol/-downloaded-vs-requested-data-mismatch/index.html b/docs/build/html/api/protocols/-fetch-data-protocol/-downloaded-vs-requested-data-mismatch/index.html
new file mode 100644
index 0000000000..49ee804e6d
--- /dev/null
+++ b/docs/build/html/api/protocols/-fetch-data-protocol/-downloaded-vs-requested-data-mismatch/index.html
@@ -0,0 +1,42 @@
+
+
+FetchDataProtocol.DownloadedVsRequestedDataMismatch -
+
+
+
+protocols / FetchDataProtocol / DownloadedVsRequestedDataMismatch
+
+DownloadedVsRequestedDataMismatch
+class DownloadedVsRequestedDataMismatch : BadAnswer
+
+
+Constructors
+
+Properties
+
+
+
diff --git a/docs/build/html/api/protocols/-fetch-data-protocol/-downloaded-vs-requested-data-mismatch/requested.html b/docs/build/html/api/protocols/-fetch-data-protocol/-downloaded-vs-requested-data-mismatch/requested.html
new file mode 100644
index 0000000000..9d4026cbea
--- /dev/null
+++ b/docs/build/html/api/protocols/-fetch-data-protocol/-downloaded-vs-requested-data-mismatch/requested.html
@@ -0,0 +1,15 @@
+
+
+FetchDataProtocol.DownloadedVsRequestedDataMismatch.requested -
+
+
+
+protocols / FetchDataProtocol / DownloadedVsRequestedDataMismatch / requested
+
+requested
+
+val requested : SecureHash
+
+
+
+
diff --git a/docs/build/html/api/protocols/-fetch-data-protocol/-hash-not-found/-init-.html b/docs/build/html/api/protocols/-fetch-data-protocol/-hash-not-found/-init-.html
new file mode 100644
index 0000000000..ffa5d6b549
--- /dev/null
+++ b/docs/build/html/api/protocols/-fetch-data-protocol/-hash-not-found/-init-.html
@@ -0,0 +1,14 @@
+
+
+FetchDataProtocol.HashNotFound. -
+
+
+
+protocols / FetchDataProtocol / HashNotFound / <init>
+
+<init>
+HashNotFound ( requested : SecureHash )
+
+
+
+
diff --git a/docs/build/html/api/protocols/-fetch-data-protocol/-hash-not-found/index.html b/docs/build/html/api/protocols/-fetch-data-protocol/-hash-not-found/index.html
new file mode 100644
index 0000000000..324aed6d5c
--- /dev/null
+++ b/docs/build/html/api/protocols/-fetch-data-protocol/-hash-not-found/index.html
@@ -0,0 +1,36 @@
+
+
+FetchDataProtocol.HashNotFound -
+
+
+
+protocols / FetchDataProtocol / HashNotFound
+
+HashNotFound
+class HashNotFound : BadAnswer
+
+
+Constructors
+
+Properties
+
+
+
diff --git a/docs/build/html/api/protocols/-fetch-data-protocol/-hash-not-found/requested.html b/docs/build/html/api/protocols/-fetch-data-protocol/-hash-not-found/requested.html
new file mode 100644
index 0000000000..cd2326c28b
--- /dev/null
+++ b/docs/build/html/api/protocols/-fetch-data-protocol/-hash-not-found/requested.html
@@ -0,0 +1,15 @@
+
+
+FetchDataProtocol.HashNotFound.requested -
+
+
+
+protocols / FetchDataProtocol / HashNotFound / requested
+
+requested
+
+val requested : SecureHash
+
+
+
+
diff --git a/docs/build/html/api/protocols/-fetch-data-protocol/-init-.html b/docs/build/html/api/protocols/-fetch-data-protocol/-init-.html
new file mode 100644
index 0000000000..0578602535
--- /dev/null
+++ b/docs/build/html/api/protocols/-fetch-data-protocol/-init-.html
@@ -0,0 +1,30 @@
+
+
+FetchDataProtocol. -
+
+
+
+protocols / FetchDataProtocol / <init>
+
+<init>
+FetchDataProtocol ( requests : Set < SecureHash > , otherSide : SingleMessageRecipient )
+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 and queryTopic . 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/protocols/-fetch-data-protocol/-result/-init-.html b/docs/build/html/api/protocols/-fetch-data-protocol/-result/-init-.html
new file mode 100644
index 0000000000..9e0db69a57
--- /dev/null
+++ b/docs/build/html/api/protocols/-fetch-data-protocol/-result/-init-.html
@@ -0,0 +1,14 @@
+
+
+FetchDataProtocol.Result. -
+
+
+
+protocols / FetchDataProtocol / Result / <init>
+
+<init>
+Result ( fromDisk : List < T > , downloaded : List < T > )
+
+
+
+
diff --git a/docs/build/html/api/protocols/-fetch-data-protocol/-result/downloaded.html b/docs/build/html/api/protocols/-fetch-data-protocol/-result/downloaded.html
new file mode 100644
index 0000000000..e7e6bd35bf
--- /dev/null
+++ b/docs/build/html/api/protocols/-fetch-data-protocol/-result/downloaded.html
@@ -0,0 +1,15 @@
+
+
+FetchDataProtocol.Result.downloaded -
+
+
+
+protocols / FetchDataProtocol / Result / downloaded
+
+downloaded
+
+val downloaded : List < T >
+
+
+
+
diff --git a/docs/build/html/api/protocols/-fetch-data-protocol/-result/from-disk.html b/docs/build/html/api/protocols/-fetch-data-protocol/-result/from-disk.html
new file mode 100644
index 0000000000..cca7df0e2e
--- /dev/null
+++ b/docs/build/html/api/protocols/-fetch-data-protocol/-result/from-disk.html
@@ -0,0 +1,15 @@
+
+
+FetchDataProtocol.Result.fromDisk -
+
+
+
+protocols / FetchDataProtocol / Result / fromDisk
+
+fromDisk
+
+val fromDisk : List < T >
+
+
+
+
diff --git a/docs/build/html/api/protocols/-fetch-data-protocol/-result/index.html b/docs/build/html/api/protocols/-fetch-data-protocol/-result/index.html
new file mode 100644
index 0000000000..7e4193f217
--- /dev/null
+++ b/docs/build/html/api/protocols/-fetch-data-protocol/-result/index.html
@@ -0,0 +1,42 @@
+
+
+FetchDataProtocol.Result -
+
+
+
+protocols / FetchDataProtocol / Result
+
+Result
+data class Result < 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/protocols/-fetch-data-protocol/call.html b/docs/build/html/api/protocols/-fetch-data-protocol/call.html
new file mode 100644
index 0000000000..528e5d4981
--- /dev/null
+++ b/docs/build/html/api/protocols/-fetch-data-protocol/call.html
@@ -0,0 +1,17 @@
+
+
+FetchDataProtocol.call -
+
+
+
+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/protocols/-fetch-data-protocol/convert.html b/docs/build/html/api/protocols/-fetch-data-protocol/convert.html
new file mode 100644
index 0000000000..2189863bd3
--- /dev/null
+++ b/docs/build/html/api/protocols/-fetch-data-protocol/convert.html
@@ -0,0 +1,15 @@
+
+
+FetchDataProtocol.convert -
+
+
+
+protocols / FetchDataProtocol / convert
+
+convert
+
+protected open fun convert ( wire : W ) : T
+
+
+
+
diff --git a/docs/build/html/api/protocols/-fetch-data-protocol/index.html b/docs/build/html/api/protocols/-fetch-data-protocol/index.html
new file mode 100644
index 0000000000..5b3995e19b
--- /dev/null
+++ b/docs/build/html/api/protocols/-fetch-data-protocol/index.html
@@ -0,0 +1,217 @@
+
+
+FetchDataProtocol -
+
+
+
+protocols / FetchDataProtocol
+
+FetchDataProtocol
+abstract class FetchDataProtocol < T : NamedByHash , 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 and queryTopic . 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
+
+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
+
+
+
+
+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
+
+
+
+
+receive
+
+fun < T : Any > receive ( topic : String , sessionIDForReceive : Long ) : UntrustworthyData < T >
+fun < T : Any > receive ( topic : String , sessionIDForReceive : Long , clazz : Class < T > ) : UntrustworthyData < T >
+
+
+
+send
+
+fun send ( topic : String , destination : MessageRecipients , sessionID : Long , obj : Any ) : Unit
+
+
+
+sendAndReceive
+
+fun < T : Any > sendAndReceive ( topic : String , destination : MessageRecipients , sessionIDForSend : Long , sessionIDForReceive : Long , obj : Any ) : UntrustworthyData < T >
+
+
+
+subProtocol
+
+fun < R > subProtocol ( subLogic : ProtocolLogic < R > ) : R
Invokes the given subprotocol by simply passing through this ProtocolLogic s reference to the
+ProtocolStateMachine and then calling the call method.
+
+
+
+
+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/protocols/-fetch-data-protocol/load.html b/docs/build/html/api/protocols/-fetch-data-protocol/load.html
new file mode 100644
index 0000000000..b891e4b0bd
--- /dev/null
+++ b/docs/build/html/api/protocols/-fetch-data-protocol/load.html
@@ -0,0 +1,15 @@
+
+
+FetchDataProtocol.load -
+
+
+
+protocols / FetchDataProtocol / load
+
+load
+
+protected abstract fun load ( txid : SecureHash ) : T ?
+
+
+
+
diff --git a/docs/build/html/api/protocols/-fetch-data-protocol/maybe-write-to-disk.html b/docs/build/html/api/protocols/-fetch-data-protocol/maybe-write-to-disk.html
new file mode 100644
index 0000000000..7ec619b522
--- /dev/null
+++ b/docs/build/html/api/protocols/-fetch-data-protocol/maybe-write-to-disk.html
@@ -0,0 +1,15 @@
+
+
+FetchDataProtocol.maybeWriteToDisk -
+
+
+
+protocols / FetchDataProtocol / maybeWriteToDisk
+
+maybeWriteToDisk
+
+protected open fun maybeWriteToDisk ( downloaded : List < T > ) : Unit
+
+
+
+
diff --git a/docs/build/html/api/protocols/-fetch-data-protocol/other-side.html b/docs/build/html/api/protocols/-fetch-data-protocol/other-side.html
new file mode 100644
index 0000000000..98986700c8
--- /dev/null
+++ b/docs/build/html/api/protocols/-fetch-data-protocol/other-side.html
@@ -0,0 +1,15 @@
+
+
+FetchDataProtocol.otherSide -
+
+
+
+protocols / FetchDataProtocol / otherSide
+
+otherSide
+
+protected val otherSide : SingleMessageRecipient
+
+
+
+
diff --git a/docs/build/html/api/protocols/-fetch-data-protocol/query-topic.html b/docs/build/html/api/protocols/-fetch-data-protocol/query-topic.html
new file mode 100644
index 0000000000..919bb4d389
--- /dev/null
+++ b/docs/build/html/api/protocols/-fetch-data-protocol/query-topic.html
@@ -0,0 +1,15 @@
+
+
+FetchDataProtocol.queryTopic -
+
+
+
+protocols / FetchDataProtocol / queryTopic
+
+queryTopic
+
+protected abstract val queryTopic : String
+
+
+
+
diff --git a/docs/build/html/api/protocols/-fetch-data-protocol/requests.html b/docs/build/html/api/protocols/-fetch-data-protocol/requests.html
new file mode 100644
index 0000000000..ce24cdd3aa
--- /dev/null
+++ b/docs/build/html/api/protocols/-fetch-data-protocol/requests.html
@@ -0,0 +1,15 @@
+
+
+FetchDataProtocol.requests -
+
+
+
+protocols / FetchDataProtocol / requests
+
+requests
+
+protected val requests : Set < SecureHash >
+
+
+
+
diff --git a/docs/build/html/api/protocols/-fetch-transactions-protocol/-init-.html b/docs/build/html/api/protocols/-fetch-transactions-protocol/-init-.html
new file mode 100644
index 0000000000..8cf43e951b
--- /dev/null
+++ b/docs/build/html/api/protocols/-fetch-transactions-protocol/-init-.html
@@ -0,0 +1,21 @@
+
+
+FetchTransactionsProtocol. -
+
+
+
+protocols / FetchTransactionsProtocol / <init>
+
+<init>
+FetchTransactionsProtocol ( requests : Set < SecureHash > , otherSide : SingleMessageRecipient )
+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/protocols/-fetch-transactions-protocol/-t-o-p-i-c.html b/docs/build/html/api/protocols/-fetch-transactions-protocol/-t-o-p-i-c.html
new file mode 100644
index 0000000000..a60773b4cb
--- /dev/null
+++ b/docs/build/html/api/protocols/-fetch-transactions-protocol/-t-o-p-i-c.html
@@ -0,0 +1,15 @@
+
+
+FetchTransactionsProtocol.TOPIC -
+
+
+
+protocols / FetchTransactionsProtocol / TOPIC
+
+TOPIC
+
+const val TOPIC : String
+
+
+
+
diff --git a/docs/build/html/api/protocols/-fetch-transactions-protocol/index.html b/docs/build/html/api/protocols/-fetch-transactions-protocol/index.html
new file mode 100644
index 0000000000..8496dfecd6
--- /dev/null
+++ b/docs/build/html/api/protocols/-fetch-transactions-protocol/index.html
@@ -0,0 +1,95 @@
+
+
+FetchTransactionsProtocol -
+
+
+
+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 : SingleMessageRecipient )
Given a set of tx hashes (IDs), either loads them from local disk or asks the remote peer to provide them.
+
+
+
+
+Properties
+
+Inherited Properties
+
+Functions
+
+Inherited Functions
+
+
+
+
+call
+
+open fun call ( ) : Result < T >
This is where you fill out your business logic.
+
+
+
+
+Companion Object Properties
+
+
+
+
+TOPIC
+
+const val TOPIC : String
+
+
+
+
+
diff --git a/docs/build/html/api/protocols/-fetch-transactions-protocol/load.html b/docs/build/html/api/protocols/-fetch-transactions-protocol/load.html
new file mode 100644
index 0000000000..7456f4fdac
--- /dev/null
+++ b/docs/build/html/api/protocols/-fetch-transactions-protocol/load.html
@@ -0,0 +1,16 @@
+
+
+FetchTransactionsProtocol.load -
+
+
+
+protocols / FetchTransactionsProtocol / load
+
+load
+
+protected fun load ( txid : SecureHash ) : SignedTransaction ?
+Overrides FetchDataProtocol.load
+
+
+
+
diff --git a/docs/build/html/api/protocols/-fetch-transactions-protocol/query-topic.html b/docs/build/html/api/protocols/-fetch-transactions-protocol/query-topic.html
new file mode 100644
index 0000000000..875a45e066
--- /dev/null
+++ b/docs/build/html/api/protocols/-fetch-transactions-protocol/query-topic.html
@@ -0,0 +1,16 @@
+
+
+FetchTransactionsProtocol.queryTopic -
+
+
+
+protocols / FetchTransactionsProtocol / queryTopic
+
+queryTopic
+
+protected val queryTopic : String
+Overrides FetchDataProtocol.queryTopic
+
+
+
+
diff --git a/docs/build/html/api/protocols/-rates-fix-protocol/-fix-out-of-range/-init-.html b/docs/build/html/api/protocols/-rates-fix-protocol/-fix-out-of-range/-init-.html
new file mode 100644
index 0000000000..426e3ca57e
--- /dev/null
+++ b/docs/build/html/api/protocols/-rates-fix-protocol/-fix-out-of-range/-init-.html
@@ -0,0 +1,14 @@
+
+
+RatesFixProtocol.FixOutOfRange. -
+
+
+
+protocols / RatesFixProtocol / FixOutOfRange / <init>
+
+<init>
+FixOutOfRange ( byAmount : BigDecimal )
+
+
+
+
diff --git a/docs/build/html/api/protocols/-rates-fix-protocol/-fix-out-of-range/by-amount.html b/docs/build/html/api/protocols/-rates-fix-protocol/-fix-out-of-range/by-amount.html
new file mode 100644
index 0000000000..cd313976f0
--- /dev/null
+++ b/docs/build/html/api/protocols/-rates-fix-protocol/-fix-out-of-range/by-amount.html
@@ -0,0 +1,15 @@
+
+
+RatesFixProtocol.FixOutOfRange.byAmount -
+
+
+
+protocols / RatesFixProtocol / FixOutOfRange / byAmount
+
+byAmount
+
+val byAmount : BigDecimal
+
+
+
+
diff --git a/docs/build/html/api/protocols/-rates-fix-protocol/-fix-out-of-range/index.html b/docs/build/html/api/protocols/-rates-fix-protocol/-fix-out-of-range/index.html
new file mode 100644
index 0000000000..aa27934428
--- /dev/null
+++ b/docs/build/html/api/protocols/-rates-fix-protocol/-fix-out-of-range/index.html
@@ -0,0 +1,36 @@
+
+
+RatesFixProtocol.FixOutOfRange -
+
+
+
+protocols / RatesFixProtocol / FixOutOfRange
+
+FixOutOfRange
+class FixOutOfRange : Exception
+
+
+Constructors
+
+Properties
+
+
+
diff --git a/docs/build/html/api/protocols/-rates-fix-protocol/-init-.html b/docs/build/html/api/protocols/-rates-fix-protocol/-init-.html
new file mode 100644
index 0000000000..ae67f70699
--- /dev/null
+++ b/docs/build/html/api/protocols/-rates-fix-protocol/-init-.html
@@ -0,0 +1,21 @@
+
+
+RatesFixProtocol. -
+
+
+
+protocols / RatesFixProtocol / <init>
+
+<init>
+RatesFixProtocol ( tx : TransactionBuilder , oracle : NodeInfo , fixOf : FixOf , expectedRate : BigDecimal , rateTolerance : BigDecimal , progressTracker : ProgressTracker = RatesFixProtocol.tracker(fixOf.name))
+This protocol queries the given oracle for an interest rate fix, and if it is within the given tolerance embeds the
+fix in the transaction and then proceeds to get the oracle to sign it. Although the call method combines the query
+and signing step, you can run the steps individually by constructing this object and then using the public methods
+for each step.
+Exceptions
+
+FixOutOfRange
- if the returned fix was further away from the expected rate by the given amount.
+
+
+
+
diff --git a/docs/build/html/api/protocols/-rates-fix-protocol/-q-u-e-r-y-i-n-g/-init-.html b/docs/build/html/api/protocols/-rates-fix-protocol/-q-u-e-r-y-i-n-g/-init-.html
new file mode 100644
index 0000000000..f31d4c7155
--- /dev/null
+++ b/docs/build/html/api/protocols/-rates-fix-protocol/-q-u-e-r-y-i-n-g/-init-.html
@@ -0,0 +1,14 @@
+
+
+RatesFixProtocol.QUERYING. -
+
+
+
+protocols / RatesFixProtocol / QUERYING / <init>
+
+<init>
+QUERYING ( name : String )
+
+
+
+
diff --git a/docs/build/html/api/protocols/-rates-fix-protocol/-q-u-e-r-y-i-n-g/index.html b/docs/build/html/api/protocols/-rates-fix-protocol/-q-u-e-r-y-i-n-g/index.html
new file mode 100644
index 0000000000..e9027f5d1c
--- /dev/null
+++ b/docs/build/html/api/protocols/-rates-fix-protocol/-q-u-e-r-y-i-n-g/index.html
@@ -0,0 +1,53 @@
+
+
+RatesFixProtocol.QUERYING -
+
+
+
+protocols / RatesFixProtocol / QUERYING
+
+QUERYING
+class QUERYING : Step
+
+
+Constructors
+
+
+
+
+<init>
+
+QUERYING ( name : String )
+
+
+
+Properties
+
+
+
+
+name
+
+val name : String
+
+
+
+Inherited Properties
+
+
+
+
+changes
+
+open val changes : <ERROR CLASS> < Change >
+
+
+
+label
+
+open val label : String
+
+
+
+
+
diff --git a/docs/build/html/api/protocols/-rates-fix-protocol/-q-u-e-r-y-i-n-g/name.html b/docs/build/html/api/protocols/-rates-fix-protocol/-q-u-e-r-y-i-n-g/name.html
new file mode 100644
index 0000000000..79e293ddc8
--- /dev/null
+++ b/docs/build/html/api/protocols/-rates-fix-protocol/-q-u-e-r-y-i-n-g/name.html
@@ -0,0 +1,15 @@
+
+
+RatesFixProtocol.QUERYING.name -
+
+
+
+protocols / RatesFixProtocol / QUERYING / name
+
+name
+
+val name : String
+
+
+
+
diff --git a/docs/build/html/api/protocols/-rates-fix-protocol/-query-request/-init-.html b/docs/build/html/api/protocols/-rates-fix-protocol/-query-request/-init-.html
new file mode 100644
index 0000000000..37ddb49af9
--- /dev/null
+++ b/docs/build/html/api/protocols/-rates-fix-protocol/-query-request/-init-.html
@@ -0,0 +1,14 @@
+
+
+RatesFixProtocol.QueryRequest. -
+
+
+
+protocols / RatesFixProtocol / QueryRequest / <init>
+
+<init>
+QueryRequest ( queries : List < FixOf > , replyTo : SingleMessageRecipient , sessionID : Long )
+
+
+
+
diff --git a/docs/build/html/api/protocols/-rates-fix-protocol/-query-request/index.html b/docs/build/html/api/protocols/-rates-fix-protocol/-query-request/index.html
new file mode 100644
index 0000000000..93629ed704
--- /dev/null
+++ b/docs/build/html/api/protocols/-rates-fix-protocol/-query-request/index.html
@@ -0,0 +1,53 @@
+
+
+RatesFixProtocol.QueryRequest -
+
+
+
+protocols / RatesFixProtocol / QueryRequest
+
+QueryRequest
+class QueryRequest : AbstractRequestMessage
+
+
+Constructors
+
+Properties
+
+Inherited Properties
+
+
+
diff --git a/docs/build/html/api/protocols/-rates-fix-protocol/-query-request/queries.html b/docs/build/html/api/protocols/-rates-fix-protocol/-query-request/queries.html
new file mode 100644
index 0000000000..e39b1fafde
--- /dev/null
+++ b/docs/build/html/api/protocols/-rates-fix-protocol/-query-request/queries.html
@@ -0,0 +1,15 @@
+
+
+RatesFixProtocol.QueryRequest.queries -
+
+
+
+protocols / RatesFixProtocol / QueryRequest / queries
+
+queries
+
+val queries : List < FixOf >
+
+
+
+
diff --git a/docs/build/html/api/protocols/-rates-fix-protocol/-s-i-g-n-i-n-g.html b/docs/build/html/api/protocols/-rates-fix-protocol/-s-i-g-n-i-n-g.html
new file mode 100644
index 0000000000..82cf3860fd
--- /dev/null
+++ b/docs/build/html/api/protocols/-rates-fix-protocol/-s-i-g-n-i-n-g.html
@@ -0,0 +1,31 @@
+
+
+RatesFixProtocol.SIGNING -
+
+
+
+protocols / RatesFixProtocol / SIGNING
+
+SIGNING
+object SIGNING : Step
+
+
+Inherited Properties
+
+
+
+
+changes
+
+open val changes : <ERROR CLASS> < Change >
+
+
+
+label
+
+open val label : String
+
+
+
+
+
diff --git a/docs/build/html/api/protocols/-rates-fix-protocol/-sign-request/-init-.html b/docs/build/html/api/protocols/-rates-fix-protocol/-sign-request/-init-.html
new file mode 100644
index 0000000000..bc874b13c5
--- /dev/null
+++ b/docs/build/html/api/protocols/-rates-fix-protocol/-sign-request/-init-.html
@@ -0,0 +1,14 @@
+
+
+RatesFixProtocol.SignRequest. -
+
+
+
+protocols / RatesFixProtocol / SignRequest / <init>
+
+<init>
+SignRequest ( tx : WireTransaction , replyTo : SingleMessageRecipient , sessionID : Long )
+
+
+
+
diff --git a/docs/build/html/api/protocols/-rates-fix-protocol/-sign-request/index.html b/docs/build/html/api/protocols/-rates-fix-protocol/-sign-request/index.html
new file mode 100644
index 0000000000..652ba0fe64
--- /dev/null
+++ b/docs/build/html/api/protocols/-rates-fix-protocol/-sign-request/index.html
@@ -0,0 +1,53 @@
+
+
+RatesFixProtocol.SignRequest -
+
+
+
+protocols / RatesFixProtocol / SignRequest
+
+SignRequest
+class SignRequest : AbstractRequestMessage
+
+
+Constructors
+
+Properties
+
+Inherited Properties
+
+
+
diff --git a/docs/build/html/api/protocols/-rates-fix-protocol/-sign-request/tx.html b/docs/build/html/api/protocols/-rates-fix-protocol/-sign-request/tx.html
new file mode 100644
index 0000000000..cc1b15d4b7
--- /dev/null
+++ b/docs/build/html/api/protocols/-rates-fix-protocol/-sign-request/tx.html
@@ -0,0 +1,15 @@
+
+
+RatesFixProtocol.SignRequest.tx -
+
+
+
+protocols / RatesFixProtocol / SignRequest / tx
+
+tx
+
+val tx : WireTransaction
+
+
+
+
diff --git a/docs/build/html/api/protocols/-rates-fix-protocol/-t-o-p-i-c.html b/docs/build/html/api/protocols/-rates-fix-protocol/-t-o-p-i-c.html
new file mode 100644
index 0000000000..a9e23ff26a
--- /dev/null
+++ b/docs/build/html/api/protocols/-rates-fix-protocol/-t-o-p-i-c.html
@@ -0,0 +1,15 @@
+
+
+RatesFixProtocol.TOPIC -
+
+
+
+protocols / RatesFixProtocol / TOPIC
+
+TOPIC
+
+val TOPIC : String
+
+
+
+
diff --git a/docs/build/html/api/protocols/-rates-fix-protocol/-t-o-p-i-c_-q-u-e-r-y.html b/docs/build/html/api/protocols/-rates-fix-protocol/-t-o-p-i-c_-q-u-e-r-y.html
new file mode 100644
index 0000000000..1cb5bf99eb
--- /dev/null
+++ b/docs/build/html/api/protocols/-rates-fix-protocol/-t-o-p-i-c_-q-u-e-r-y.html
@@ -0,0 +1,15 @@
+
+
+RatesFixProtocol.TOPIC_QUERY -
+
+
+
+protocols / RatesFixProtocol / TOPIC_QUERY
+
+TOPIC_QUERY
+
+val TOPIC_QUERY : String
+
+
+
+
diff --git a/docs/build/html/api/protocols/-rates-fix-protocol/-t-o-p-i-c_-s-i-g-n.html b/docs/build/html/api/protocols/-rates-fix-protocol/-t-o-p-i-c_-s-i-g-n.html
new file mode 100644
index 0000000000..35b9c247b5
--- /dev/null
+++ b/docs/build/html/api/protocols/-rates-fix-protocol/-t-o-p-i-c_-s-i-g-n.html
@@ -0,0 +1,15 @@
+
+
+RatesFixProtocol.TOPIC_SIGN -
+
+
+
+protocols / RatesFixProtocol / TOPIC_SIGN
+
+TOPIC_SIGN
+
+val TOPIC_SIGN : String
+
+
+
+
diff --git a/docs/build/html/api/protocols/-rates-fix-protocol/-w-o-r-k-i-n-g.html b/docs/build/html/api/protocols/-rates-fix-protocol/-w-o-r-k-i-n-g.html
new file mode 100644
index 0000000000..6bec3d2542
--- /dev/null
+++ b/docs/build/html/api/protocols/-rates-fix-protocol/-w-o-r-k-i-n-g.html
@@ -0,0 +1,31 @@
+
+
+RatesFixProtocol.WORKING -
+
+
+
+protocols / RatesFixProtocol / WORKING
+
+WORKING
+object WORKING : Step
+
+
+Inherited Properties
+
+
+
+
+changes
+
+open val changes : <ERROR CLASS> < Change >
+
+
+
+label
+
+open val label : String
+
+
+
+
+
diff --git a/docs/build/html/api/protocols/-rates-fix-protocol/before-signing.html b/docs/build/html/api/protocols/-rates-fix-protocol/before-signing.html
new file mode 100644
index 0000000000..3f4b9787fa
--- /dev/null
+++ b/docs/build/html/api/protocols/-rates-fix-protocol/before-signing.html
@@ -0,0 +1,17 @@
+
+
+RatesFixProtocol.beforeSigning -
+
+
+
+protocols / RatesFixProtocol / beforeSigning
+
+beforeSigning
+
+protected open fun beforeSigning ( fix : Fix ) : Unit
+You can override this to perform any additional work needed after the fix is added to the transaction but
+before its sent back to the oracle for signing (for example, adding output states that depend on the fix).
+
+
+
+
diff --git a/docs/build/html/api/protocols/-rates-fix-protocol/call.html b/docs/build/html/api/protocols/-rates-fix-protocol/call.html
new file mode 100644
index 0000000000..f192b94c34
--- /dev/null
+++ b/docs/build/html/api/protocols/-rates-fix-protocol/call.html
@@ -0,0 +1,17 @@
+
+
+RatesFixProtocol.call -
+
+
+
+protocols / RatesFixProtocol / 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/protocols/-rates-fix-protocol/index.html b/docs/build/html/api/protocols/-rates-fix-protocol/index.html
new file mode 100644
index 0000000000..bf50fa6387
--- /dev/null
+++ b/docs/build/html/api/protocols/-rates-fix-protocol/index.html
@@ -0,0 +1,227 @@
+
+
+RatesFixProtocol -
+
+
+
+protocols / RatesFixProtocol
+
+RatesFixProtocol
+open class RatesFixProtocol : ProtocolLogic < Unit >
+This protocol queries the given oracle for an interest rate fix, and if it is within the given tolerance embeds the
+fix in the transaction and then proceeds to get the oracle to sign it. Although the call method combines the query
+and signing step, you can run the steps individually by constructing this object and then using the public methods
+for each step.
+Exceptions
+
+FixOutOfRange
- if the returned fix was further away from the expected rate by the given amount.
+
+
+Types
+
+Exceptions
+
+Constructors
+
+
+
+
+<init>
+
+RatesFixProtocol ( tx : TransactionBuilder , oracle : NodeInfo , fixOf : FixOf , expectedRate : BigDecimal , rateTolerance : BigDecimal , progressTracker : ProgressTracker = RatesFixProtocol.tracker(fixOf.name))
This protocol queries the given oracle for an interest rate fix, and if it is within the given tolerance embeds the
+fix in the transaction and then proceeds to get the oracle to sign it. Although the call method combines the query
+and signing step, you can run the steps individually by constructing this object and then using the public methods
+for each step.
+
+
+
+
+Properties
+
+
+
+
+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.
+
+
+
+
+tx
+
+val tx : TransactionBuilder
+
+
+
+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
+
+
+
+
+Functions
+
+
+
+
+beforeSigning
+
+open fun beforeSigning ( fix : Fix ) : Unit
You can override this to perform any additional work needed after the fix is added to the transaction but
+before its sent back to the oracle for signing (for example, adding output states that depend on the fix).
+
+
+
+
+call
+
+open fun call ( ) : Unit
This is where you fill out your business logic.
+
+
+
+
+query
+
+fun query ( ) : Fix
+
+
+
+sign
+
+fun sign ( ) : LegallyIdentifiable
+
+
+
+Inherited Functions
+
+
+
+
+receive
+
+fun < T : Any > receive ( topic : String , sessionIDForReceive : Long , clazz : Class < T > ) : UntrustworthyData < T >
+fun < T : Any > receive ( topic : String , sessionIDForReceive : Long ) : UntrustworthyData < T >
+
+
+
+send
+
+fun send ( topic : String , destination : MessageRecipients , sessionID : Long , obj : Any ) : Unit
+
+
+
+sendAndReceive
+
+fun < T : Any > sendAndReceive ( topic : String , destination : MessageRecipients , sessionIDForSend : Long , sessionIDForReceive : Long , obj : Any ) : UntrustworthyData < T >
+
+
+
+subProtocol
+
+fun < R > subProtocol ( subLogic : ProtocolLogic < R > ) : R
Invokes the given subprotocol by simply passing through this ProtocolLogic s reference to the
+ProtocolStateMachine and then calling the call method.
+
+
+
+
+Companion Object Properties
+
+Companion Object Functions
+
+
+
diff --git a/docs/build/html/api/protocols/-rates-fix-protocol/progress-tracker.html b/docs/build/html/api/protocols/-rates-fix-protocol/progress-tracker.html
new file mode 100644
index 0000000000..2414f7db02
--- /dev/null
+++ b/docs/build/html/api/protocols/-rates-fix-protocol/progress-tracker.html
@@ -0,0 +1,24 @@
+
+
+RatesFixProtocol.progressTracker -
+
+
+
+protocols / RatesFixProtocol / 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/protocols/-rates-fix-protocol/query.html b/docs/build/html/api/protocols/-rates-fix-protocol/query.html
new file mode 100644
index 0000000000..ef3e2cd30a
--- /dev/null
+++ b/docs/build/html/api/protocols/-rates-fix-protocol/query.html
@@ -0,0 +1,15 @@
+
+
+RatesFixProtocol.query -
+
+
+
+protocols / RatesFixProtocol / query
+
+query
+
+fun query ( ) : Fix
+
+
+
+
diff --git a/docs/build/html/api/protocols/-rates-fix-protocol/sign.html b/docs/build/html/api/protocols/-rates-fix-protocol/sign.html
new file mode 100644
index 0000000000..fd04298d06
--- /dev/null
+++ b/docs/build/html/api/protocols/-rates-fix-protocol/sign.html
@@ -0,0 +1,15 @@
+
+
+RatesFixProtocol.sign -
+
+
+
+protocols / RatesFixProtocol / sign
+
+sign
+
+fun sign ( ) : LegallyIdentifiable
+
+
+
+
diff --git a/docs/build/html/api/protocols/-rates-fix-protocol/tracker.html b/docs/build/html/api/protocols/-rates-fix-protocol/tracker.html
new file mode 100644
index 0000000000..be24156f0a
--- /dev/null
+++ b/docs/build/html/api/protocols/-rates-fix-protocol/tracker.html
@@ -0,0 +1,15 @@
+
+
+RatesFixProtocol.tracker -
+
+
+
+protocols / RatesFixProtocol / tracker
+
+tracker
+
+fun tracker ( fixName : String ) : ProgressTracker
+
+
+
+
diff --git a/docs/build/html/api/protocols/-rates-fix-protocol/tx.html b/docs/build/html/api/protocols/-rates-fix-protocol/tx.html
new file mode 100644
index 0000000000..3c72b6628a
--- /dev/null
+++ b/docs/build/html/api/protocols/-rates-fix-protocol/tx.html
@@ -0,0 +1,15 @@
+
+
+RatesFixProtocol.tx -
+
+
+
+protocols / RatesFixProtocol / tx
+
+tx
+
+protected val tx : TransactionBuilder
+
+
+
+
diff --git a/docs/build/html/api/protocols/-resolve-transactions-protocol/-excessively-large-transaction-graph/-init-.html b/docs/build/html/api/protocols/-resolve-transactions-protocol/-excessively-large-transaction-graph/-init-.html
new file mode 100644
index 0000000000..7c05f72a5b
--- /dev/null
+++ b/docs/build/html/api/protocols/-resolve-transactions-protocol/-excessively-large-transaction-graph/-init-.html
@@ -0,0 +1,14 @@
+
+
+ResolveTransactionsProtocol.ExcessivelyLargeTransactionGraph. -
+
+
+
+protocols / ResolveTransactionsProtocol / ExcessivelyLargeTransactionGraph / <init>
+
+<init>
+ExcessivelyLargeTransactionGraph ( )
+
+
+
+
diff --git a/docs/build/html/api/protocols/-resolve-transactions-protocol/-excessively-large-transaction-graph/index.html b/docs/build/html/api/protocols/-resolve-transactions-protocol/-excessively-large-transaction-graph/index.html
new file mode 100644
index 0000000000..f85500a1f9
--- /dev/null
+++ b/docs/build/html/api/protocols/-resolve-transactions-protocol/-excessively-large-transaction-graph/index.html
@@ -0,0 +1,25 @@
+
+
+ResolveTransactionsProtocol.ExcessivelyLargeTransactionGraph -
+
+
+
+protocols / ResolveTransactionsProtocol / ExcessivelyLargeTransactionGraph
+
+ExcessivelyLargeTransactionGraph
+class ExcessivelyLargeTransactionGraph : Exception
+
+
+Constructors
+
+
+
+
+<init>
+
+ExcessivelyLargeTransactionGraph ( )
+
+
+
+
+
diff --git a/docs/build/html/api/protocols/-resolve-transactions-protocol/-init-.html b/docs/build/html/api/protocols/-resolve-transactions-protocol/-init-.html
new file mode 100644
index 0000000000..72a5c8ff35
--- /dev/null
+++ b/docs/build/html/api/protocols/-resolve-transactions-protocol/-init-.html
@@ -0,0 +1,28 @@
+
+
+ResolveTransactionsProtocol. -
+
+
+
+protocols / ResolveTransactionsProtocol / <init>
+
+<init>
+ResolveTransactionsProtocol ( stx : SignedTransaction , otherSide : SingleMessageRecipient )
+ResolveTransactionsProtocol ( wtx : WireTransaction , otherSide : SingleMessageRecipient )
+
+
+ResolveTransactionsProtocol ( txHashes : Set < SecureHash > , otherSide : SingleMessageRecipient )
+This protocol fetches each transaction identified by the given hashes from either disk or network, along with all
+their dependencies, and verifies them together using a single TransactionGroup . If no exception is thrown, then
+all the transactions have been successfully verified and inserted into the local database.
+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 inserted. This way to use the
+protocol is helpful when resolving and verifying a finished but partially signed transaction.
+
+
+
+
+
+
diff --git a/docs/build/html/api/protocols/-resolve-transactions-protocol/call.html b/docs/build/html/api/protocols/-resolve-transactions-protocol/call.html
new file mode 100644
index 0000000000..7ebf5026df
--- /dev/null
+++ b/docs/build/html/api/protocols/-resolve-transactions-protocol/call.html
@@ -0,0 +1,17 @@
+
+
+ResolveTransactionsProtocol.call -
+
+
+
+protocols / ResolveTransactionsProtocol / call
+
+call
+
+fun call ( ) : Unit
+Overrides ProtocolLogic.call
+This is where you fill out your business logic.
+
+
+
+
diff --git a/docs/build/html/api/protocols/-resolve-transactions-protocol/index.html b/docs/build/html/api/protocols/-resolve-transactions-protocol/index.html
new file mode 100644
index 0000000000..98494504fc
--- /dev/null
+++ b/docs/build/html/api/protocols/-resolve-transactions-protocol/index.html
@@ -0,0 +1,130 @@
+
+
+ResolveTransactionsProtocol -
+
+
+
+protocols / ResolveTransactionsProtocol
+
+ResolveTransactionsProtocol
+class ResolveTransactionsProtocol : ProtocolLogic < Unit >
+This protocol fetches each transaction identified by the given hashes from either disk or network, along with all
+their dependencies, and verifies them together using a single TransactionGroup . If no exception is thrown, then
+all the transactions have been successfully verified and inserted into the local database.
+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 inserted. This way to use the
+protocol is helpful when resolving and verifying a finished but partially signed transaction.
+
+
+
+
+Exceptions
+
+Constructors
+
+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
+
+
+
+
+Functions
+
+
+
+
+call
+
+fun call ( ) : Unit
This is where you fill out your business logic.
+
+
+
+
+Inherited Functions
+
+
+
+
+receive
+
+fun < T : Any > receive ( topic : String , sessionIDForReceive : Long ) : UntrustworthyData < T >
+fun < T : Any > receive ( topic : String , sessionIDForReceive : Long , clazz : Class < T > ) : UntrustworthyData < T >
+
+
+
+send
+
+fun send ( topic : String , destination : MessageRecipients , sessionID : Long , obj : Any ) : Unit
+
+
+
+sendAndReceive
+
+fun < T : Any > sendAndReceive ( topic : String , destination : MessageRecipients , sessionIDForSend : Long , sessionIDForReceive : Long , obj : Any ) : UntrustworthyData < T >
+
+
+
+subProtocol
+
+fun < R > subProtocol ( subLogic : ProtocolLogic < R > ) : R
Invokes the given subprotocol by simply passing through this ProtocolLogic s reference to the
+ProtocolStateMachine and then calling the call method.
+
+
+
+
+
+
diff --git a/docs/build/html/api/protocols/-timestamping-protocol/-client/-init-.html b/docs/build/html/api/protocols/-timestamping-protocol/-client/-init-.html
new file mode 100644
index 0000000000..541e2aa40f
--- /dev/null
+++ b/docs/build/html/api/protocols/-timestamping-protocol/-client/-init-.html
@@ -0,0 +1,14 @@
+
+
+TimestampingProtocol.Client. -
+
+
+
+protocols / TimestampingProtocol / Client / <init>
+
+<init>
+Client ( stateMachineManager : StateMachineManager , node : NodeInfo )
+
+
+
+
diff --git a/docs/build/html/api/protocols/-timestamping-protocol/-client/identity.html b/docs/build/html/api/protocols/-timestamping-protocol/-client/identity.html
new file mode 100644
index 0000000000..cb3d433e7b
--- /dev/null
+++ b/docs/build/html/api/protocols/-timestamping-protocol/-client/identity.html
@@ -0,0 +1,17 @@
+
+
+TimestampingProtocol.Client.identity -
+
+
+
+protocols / TimestampingProtocol / Client / identity
+
+identity
+
+val identity : Party
+Overrides TimestamperService.identity
+The name+pubkey that this timestamper will sign with.
+
+
+
+
diff --git a/docs/build/html/api/protocols/-timestamping-protocol/-client/index.html b/docs/build/html/api/protocols/-timestamping-protocol/-client/index.html
new file mode 100644
index 0000000000..aceb7cdfc2
--- /dev/null
+++ b/docs/build/html/api/protocols/-timestamping-protocol/-client/index.html
@@ -0,0 +1,48 @@
+
+
+TimestampingProtocol.Client -
+
+
+
+protocols / TimestampingProtocol / Client
+
+Client
+class Client : TimestamperService
+
+
+Constructors
+
+Properties
+
+
+
+
+identity
+
+val identity : Party
The name+pubkey that this timestamper will sign with.
+
+
+
+
+Functions
+
+
+
diff --git a/docs/build/html/api/protocols/-timestamping-protocol/-client/timestamp.html b/docs/build/html/api/protocols/-timestamping-protocol/-client/timestamp.html
new file mode 100644
index 0000000000..c5d2643ab3
--- /dev/null
+++ b/docs/build/html/api/protocols/-timestamping-protocol/-client/timestamp.html
@@ -0,0 +1,16 @@
+
+
+TimestampingProtocol.Client.timestamp -
+
+
+
+protocols / TimestampingProtocol / Client / timestamp
+
+timestamp
+
+fun timestamp ( wtxBytes : SerializedBytes < WireTransaction > ) : LegallyIdentifiable
+Overrides TimestamperService.timestamp
+
+
+
+
diff --git a/docs/build/html/api/protocols/-timestamping-protocol/-init-.html b/docs/build/html/api/protocols/-timestamping-protocol/-init-.html
new file mode 100644
index 0000000000..fb41587272
--- /dev/null
+++ b/docs/build/html/api/protocols/-timestamping-protocol/-init-.html
@@ -0,0 +1,22 @@
+
+
+TimestampingProtocol. -
+
+
+
+protocols / TimestampingProtocol / <init>
+
+<init>
+TimestampingProtocol ( node : NodeInfo , wtxBytes : SerializedBytes < WireTransaction > , progressTracker : ProgressTracker = TimestampingProtocol.tracker())
+The TimestampingProtocol class is the client code that talks to a NodeTimestamperService on some remote node. It is a
+ProtocolLogic , meaning it can either be a sub-protocol of some other protocol, or be driven independently.
+If you are not yourself authoring a protocol and want to timestamp something, the TimestampingProtocol.Client class
+implements the TimestamperService interface, meaning it can be passed to TransactionBuilder.timestamp to timestamp
+the built transaction. Please be aware that this will block, meaning it should not be used on a thread that is handling
+a network message: use it only from spare application threads that dont have to respond to anything.
+
+
+
+
+
+
diff --git a/docs/build/html/api/protocols/-timestamping-protocol/-r-e-q-u-e-s-t-i-n-g.html b/docs/build/html/api/protocols/-timestamping-protocol/-r-e-q-u-e-s-t-i-n-g.html
new file mode 100644
index 0000000000..cfc0598164
--- /dev/null
+++ b/docs/build/html/api/protocols/-timestamping-protocol/-r-e-q-u-e-s-t-i-n-g.html
@@ -0,0 +1,31 @@
+
+
+TimestampingProtocol.REQUESTING -
+
+
+
+protocols / TimestampingProtocol / REQUESTING
+
+REQUESTING
+object REQUESTING : Step
+
+
+Inherited Properties
+
+
+
+
+changes
+
+open val changes : <ERROR CLASS> < Change >
+
+
+
+label
+
+open val label : String
+
+
+
+
+
diff --git a/docs/build/html/api/protocols/-timestamping-protocol/-request/-init-.html b/docs/build/html/api/protocols/-timestamping-protocol/-request/-init-.html
new file mode 100644
index 0000000000..62580daeec
--- /dev/null
+++ b/docs/build/html/api/protocols/-timestamping-protocol/-request/-init-.html
@@ -0,0 +1,14 @@
+
+
+TimestampingProtocol.Request. -
+
+
+
+protocols / TimestampingProtocol / Request / <init>
+
+<init>
+Request ( tx : SerializedBytes < WireTransaction > , replyTo : MessageRecipients , sessionID : Long )
+
+
+
+
diff --git a/docs/build/html/api/protocols/-timestamping-protocol/-request/index.html b/docs/build/html/api/protocols/-timestamping-protocol/-request/index.html
new file mode 100644
index 0000000000..35dfc2749e
--- /dev/null
+++ b/docs/build/html/api/protocols/-timestamping-protocol/-request/index.html
@@ -0,0 +1,53 @@
+
+
+TimestampingProtocol.Request -
+
+
+
+protocols / TimestampingProtocol / Request
+
+Request
+class Request : AbstractRequestMessage
+
+
+Constructors
+
+Properties
+
+Inherited Properties
+
+
+
diff --git a/docs/build/html/api/protocols/-timestamping-protocol/-request/tx.html b/docs/build/html/api/protocols/-timestamping-protocol/-request/tx.html
new file mode 100644
index 0000000000..76d6d2334f
--- /dev/null
+++ b/docs/build/html/api/protocols/-timestamping-protocol/-request/tx.html
@@ -0,0 +1,15 @@
+
+
+TimestampingProtocol.Request.tx -
+
+
+
+protocols / TimestampingProtocol / Request / tx
+
+tx
+
+val tx : SerializedBytes < WireTransaction >
+
+
+
+
diff --git a/docs/build/html/api/protocols/-timestamping-protocol/-v-a-l-i-d-a-t-i-n-g.html b/docs/build/html/api/protocols/-timestamping-protocol/-v-a-l-i-d-a-t-i-n-g.html
new file mode 100644
index 0000000000..eb3bfc4804
--- /dev/null
+++ b/docs/build/html/api/protocols/-timestamping-protocol/-v-a-l-i-d-a-t-i-n-g.html
@@ -0,0 +1,31 @@
+
+
+TimestampingProtocol.VALIDATING -
+
+
+
+protocols / TimestampingProtocol / VALIDATING
+
+VALIDATING
+object VALIDATING : Step
+
+
+Inherited Properties
+
+
+
+
+changes
+
+open val changes : <ERROR CLASS> < Change >
+
+
+
+label
+
+open val label : String
+
+
+
+
+
diff --git a/docs/build/html/api/protocols/-timestamping-protocol/call.html b/docs/build/html/api/protocols/-timestamping-protocol/call.html
new file mode 100644
index 0000000000..1baa21f781
--- /dev/null
+++ b/docs/build/html/api/protocols/-timestamping-protocol/call.html
@@ -0,0 +1,17 @@
+
+
+TimestampingProtocol.call -
+
+
+
+protocols / TimestampingProtocol / call
+
+call
+
+fun call ( ) : LegallyIdentifiable
+Overrides ProtocolLogic.call
+This is where you fill out your business logic.
+
+
+
+
diff --git a/docs/build/html/api/protocols/-timestamping-protocol/index.html b/docs/build/html/api/protocols/-timestamping-protocol/index.html
new file mode 100644
index 0000000000..4f43b5b7d7
--- /dev/null
+++ b/docs/build/html/api/protocols/-timestamping-protocol/index.html
@@ -0,0 +1,160 @@
+
+
+TimestampingProtocol -
+
+
+
+protocols / TimestampingProtocol
+
+TimestampingProtocol
+class TimestampingProtocol : ProtocolLogic < LegallyIdentifiable >
+The TimestampingProtocol class is the client code that talks to a NodeTimestamperService on some remote node. It is a
+ProtocolLogic , meaning it can either be a sub-protocol of some other protocol, or be driven independently.
+If you are not yourself authoring a protocol and want to timestamp something, the TimestampingProtocol.Client class
+implements the TimestamperService interface, meaning it can be passed to TransactionBuilder.timestamp to timestamp
+the built transaction. Please be aware that this will block, meaning it should not be used on a thread that is handling
+a network message: use it only from spare application threads that dont have to respond to anything.
+
+
+
+
+Types
+
+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
+
+
+
+
+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
+
+
+
+
+Functions
+
+Inherited Functions
+
+
+
+
+receive
+
+fun < T : Any > receive ( topic : String , sessionIDForReceive : Long ) : UntrustworthyData < T >
+fun < T : Any > receive ( topic : String , sessionIDForReceive : Long , clazz : Class < T > ) : UntrustworthyData < T >
+
+
+
+send
+
+fun send ( topic : String , destination : MessageRecipients , sessionID : Long , obj : Any ) : Unit
+
+
+
+sendAndReceive
+
+fun < T : Any > sendAndReceive ( topic : String , destination : MessageRecipients , sessionIDForSend : Long , sessionIDForReceive : Long , obj : Any ) : UntrustworthyData < T >
+
+
+
+subProtocol
+
+fun < R > subProtocol ( subLogic : ProtocolLogic < R > ) : R
Invokes the given subprotocol by simply passing through this ProtocolLogic s reference to the
+ProtocolStateMachine and then calling the call method.
+
+
+
+
+Companion Object Functions
+
+
+
diff --git a/docs/build/html/api/protocols/-timestamping-protocol/progress-tracker.html b/docs/build/html/api/protocols/-timestamping-protocol/progress-tracker.html
new file mode 100644
index 0000000000..85080140d1
--- /dev/null
+++ b/docs/build/html/api/protocols/-timestamping-protocol/progress-tracker.html
@@ -0,0 +1,24 @@
+
+
+TimestampingProtocol.progressTracker -
+
+
+
+protocols / TimestampingProtocol / 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/protocols/-timestamping-protocol/tracker.html b/docs/build/html/api/protocols/-timestamping-protocol/tracker.html
new file mode 100644
index 0000000000..f1b319e488
--- /dev/null
+++ b/docs/build/html/api/protocols/-timestamping-protocol/tracker.html
@@ -0,0 +1,15 @@
+
+
+TimestampingProtocol.tracker -
+
+
+
+protocols / TimestampingProtocol / tracker
+
+tracker
+
+fun tracker ( ) : ProgressTracker
+
+
+
+
diff --git a/docs/build/html/api/protocols/-two-party-deal-protocol/-acceptor/-init-.html b/docs/build/html/api/protocols/-two-party-deal-protocol/-acceptor/-init-.html
new file mode 100644
index 0000000000..5efadc6a1a
--- /dev/null
+++ b/docs/build/html/api/protocols/-two-party-deal-protocol/-acceptor/-init-.html
@@ -0,0 +1,15 @@
+
+
+TwoPartyDealProtocol.Acceptor. -
+
+
+
+protocols / TwoPartyDealProtocol / Acceptor / <init>
+
+<init>
+Acceptor ( otherSide : SingleMessageRecipient , timestampingAuthority : Party , dealToBuy : T , sessionID : Long , progressTracker : ProgressTracker = Secondary.tracker())
+One side of the protocol for inserting a pre-agreed deal.
+
+
+
+
diff --git a/docs/build/html/api/protocols/-two-party-deal-protocol/-acceptor/assemble-shared-t-x.html b/docs/build/html/api/protocols/-two-party-deal-protocol/-acceptor/assemble-shared-t-x.html
new file mode 100644
index 0000000000..11859402db
--- /dev/null
+++ b/docs/build/html/api/protocols/-two-party-deal-protocol/-acceptor/assemble-shared-t-x.html
@@ -0,0 +1,15 @@
+
+
+TwoPartyDealProtocol.Acceptor.assembleSharedTX -
+
+
+
+protocols / TwoPartyDealProtocol / Acceptor / assembleSharedTX
+
+assembleSharedTX
+
+protected open fun assembleSharedTX ( handshake : Handshake < T > ) : <ERROR CLASS> < TransactionBuilder , List < PublicKey > >
+
+
+
+
diff --git a/docs/build/html/api/protocols/-two-party-deal-protocol/-acceptor/deal-to-buy.html b/docs/build/html/api/protocols/-two-party-deal-protocol/-acceptor/deal-to-buy.html
new file mode 100644
index 0000000000..1642163d37
--- /dev/null
+++ b/docs/build/html/api/protocols/-two-party-deal-protocol/-acceptor/deal-to-buy.html
@@ -0,0 +1,15 @@
+
+
+TwoPartyDealProtocol.Acceptor.dealToBuy -
+
+
+
+protocols / TwoPartyDealProtocol / Acceptor / dealToBuy
+
+dealToBuy
+
+val dealToBuy : T
+
+
+
+
diff --git a/docs/build/html/api/protocols/-two-party-deal-protocol/-acceptor/index.html b/docs/build/html/api/protocols/-two-party-deal-protocol/-acceptor/index.html
new file mode 100644
index 0000000000..3788623890
--- /dev/null
+++ b/docs/build/html/api/protocols/-two-party-deal-protocol/-acceptor/index.html
@@ -0,0 +1,100 @@
+
+
+TwoPartyDealProtocol.Acceptor -
+
+
+
+protocols / TwoPartyDealProtocol / Acceptor
+
+Acceptor
+class Acceptor < T : DealState > : Secondary < T >
+One side of the protocol for inserting a pre-agreed deal.
+
+
+Constructors
+
+
+
+
+<init>
+
+Acceptor ( otherSide : SingleMessageRecipient , timestampingAuthority : Party , dealToBuy : T , sessionID : Long , progressTracker : ProgressTracker = Secondary.tracker())
One side of the protocol for inserting a pre-agreed deal.
+
+
+
+
+Properties
+
+
+
+
+dealToBuy
+
+val dealToBuy : T
+
+
+
+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
+
+Functions
+
+Inherited Functions
+
+
+
diff --git a/docs/build/html/api/protocols/-two-party-deal-protocol/-acceptor/progress-tracker.html b/docs/build/html/api/protocols/-two-party-deal-protocol/-acceptor/progress-tracker.html
new file mode 100644
index 0000000000..453760cf1e
--- /dev/null
+++ b/docs/build/html/api/protocols/-two-party-deal-protocol/-acceptor/progress-tracker.html
@@ -0,0 +1,24 @@
+
+
+TwoPartyDealProtocol.Acceptor.progressTracker -
+
+
+
+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/protocols/-two-party-deal-protocol/-acceptor/validate-handshake.html b/docs/build/html/api/protocols/-two-party-deal-protocol/-acceptor/validate-handshake.html
new file mode 100644
index 0000000000..a432c5116d
--- /dev/null
+++ b/docs/build/html/api/protocols/-two-party-deal-protocol/-acceptor/validate-handshake.html
@@ -0,0 +1,15 @@
+
+
+TwoPartyDealProtocol.Acceptor.validateHandshake -
+
+
+
+protocols / TwoPartyDealProtocol / Acceptor / validateHandshake
+
+validateHandshake
+
+protected open fun validateHandshake ( handshake : Handshake < T > ) : Handshake < T >
+
+
+
+
diff --git a/docs/build/html/api/protocols/-two-party-deal-protocol/-d-e-a-l_-t-o-p-i-c.html b/docs/build/html/api/protocols/-two-party-deal-protocol/-d-e-a-l_-t-o-p-i-c.html
new file mode 100644
index 0000000000..7c1cef0e45
--- /dev/null
+++ b/docs/build/html/api/protocols/-two-party-deal-protocol/-d-e-a-l_-t-o-p-i-c.html
@@ -0,0 +1,15 @@
+
+
+TwoPartyDealProtocol.DEAL_TOPIC -
+
+
+
+protocols / TwoPartyDealProtocol / DEAL_TOPIC
+
+DEAL_TOPIC
+
+val DEAL_TOPIC : String
+
+
+
+
diff --git a/docs/build/html/api/protocols/-two-party-deal-protocol/-deal-mismatch-exception/-init-.html b/docs/build/html/api/protocols/-two-party-deal-protocol/-deal-mismatch-exception/-init-.html
new file mode 100644
index 0000000000..f6decc0deb
--- /dev/null
+++ b/docs/build/html/api/protocols/-two-party-deal-protocol/-deal-mismatch-exception/-init-.html
@@ -0,0 +1,14 @@
+
+
+TwoPartyDealProtocol.DealMismatchException. -
+
+
+
+protocols / TwoPartyDealProtocol / DealMismatchException / <init>
+
+<init>
+DealMismatchException ( expectedDeal : ContractState , actualDeal : ContractState )
+
+
+
+
diff --git a/docs/build/html/api/protocols/-two-party-deal-protocol/-deal-mismatch-exception/actual-deal.html b/docs/build/html/api/protocols/-two-party-deal-protocol/-deal-mismatch-exception/actual-deal.html
new file mode 100644
index 0000000000..fc062122be
--- /dev/null
+++ b/docs/build/html/api/protocols/-two-party-deal-protocol/-deal-mismatch-exception/actual-deal.html
@@ -0,0 +1,15 @@
+
+
+TwoPartyDealProtocol.DealMismatchException.actualDeal -
+
+
+
+protocols / TwoPartyDealProtocol / DealMismatchException / actualDeal
+
+actualDeal
+
+val actualDeal : ContractState
+
+
+
+
diff --git a/docs/build/html/api/protocols/-two-party-deal-protocol/-deal-mismatch-exception/expected-deal.html b/docs/build/html/api/protocols/-two-party-deal-protocol/-deal-mismatch-exception/expected-deal.html
new file mode 100644
index 0000000000..f512e15994
--- /dev/null
+++ b/docs/build/html/api/protocols/-two-party-deal-protocol/-deal-mismatch-exception/expected-deal.html
@@ -0,0 +1,15 @@
+
+
+TwoPartyDealProtocol.DealMismatchException.expectedDeal -
+
+
+
+protocols / TwoPartyDealProtocol / DealMismatchException / expectedDeal
+
+expectedDeal
+
+val expectedDeal : ContractState
+
+
+
+
diff --git a/docs/build/html/api/protocols/-two-party-deal-protocol/-deal-mismatch-exception/index.html b/docs/build/html/api/protocols/-two-party-deal-protocol/-deal-mismatch-exception/index.html
new file mode 100644
index 0000000000..8e77d7048f
--- /dev/null
+++ b/docs/build/html/api/protocols/-two-party-deal-protocol/-deal-mismatch-exception/index.html
@@ -0,0 +1,53 @@
+
+
+TwoPartyDealProtocol.DealMismatchException -
+
+
+
+protocols / TwoPartyDealProtocol / DealMismatchException
+
+DealMismatchException
+class DealMismatchException : Exception
+
+
+Constructors
+
+Properties
+
+Functions
+
+
+
+
+toString
+
+fun toString ( ) : String
+
+
+
+
+
diff --git a/docs/build/html/api/protocols/-two-party-deal-protocol/-deal-mismatch-exception/to-string.html b/docs/build/html/api/protocols/-two-party-deal-protocol/-deal-mismatch-exception/to-string.html
new file mode 100644
index 0000000000..f18e02b43f
--- /dev/null
+++ b/docs/build/html/api/protocols/-two-party-deal-protocol/-deal-mismatch-exception/to-string.html
@@ -0,0 +1,15 @@
+
+
+TwoPartyDealProtocol.DealMismatchException.toString -
+
+
+
+protocols / TwoPartyDealProtocol / DealMismatchException / toString
+
+toString
+
+fun toString ( ) : String
+
+
+
+
diff --git a/docs/build/html/api/protocols/-two-party-deal-protocol/-deal-ref-mismatch-exception/-init-.html b/docs/build/html/api/protocols/-two-party-deal-protocol/-deal-ref-mismatch-exception/-init-.html
new file mode 100644
index 0000000000..b483c947af
--- /dev/null
+++ b/docs/build/html/api/protocols/-two-party-deal-protocol/-deal-ref-mismatch-exception/-init-.html
@@ -0,0 +1,14 @@
+
+
+TwoPartyDealProtocol.DealRefMismatchException. -
+
+
+
+protocols / TwoPartyDealProtocol / DealRefMismatchException / <init>
+
+<init>
+DealRefMismatchException ( expectedDeal : StateRef , actualDeal : StateRef )
+
+
+
+
diff --git a/docs/build/html/api/protocols/-two-party-deal-protocol/-deal-ref-mismatch-exception/actual-deal.html b/docs/build/html/api/protocols/-two-party-deal-protocol/-deal-ref-mismatch-exception/actual-deal.html
new file mode 100644
index 0000000000..afc1a03455
--- /dev/null
+++ b/docs/build/html/api/protocols/-two-party-deal-protocol/-deal-ref-mismatch-exception/actual-deal.html
@@ -0,0 +1,15 @@
+
+
+TwoPartyDealProtocol.DealRefMismatchException.actualDeal -
+
+
+
+protocols / TwoPartyDealProtocol / DealRefMismatchException / actualDeal
+
+actualDeal
+
+val actualDeal : StateRef
+
+
+
+
diff --git a/docs/build/html/api/protocols/-two-party-deal-protocol/-deal-ref-mismatch-exception/expected-deal.html b/docs/build/html/api/protocols/-two-party-deal-protocol/-deal-ref-mismatch-exception/expected-deal.html
new file mode 100644
index 0000000000..d34cc490ec
--- /dev/null
+++ b/docs/build/html/api/protocols/-two-party-deal-protocol/-deal-ref-mismatch-exception/expected-deal.html
@@ -0,0 +1,15 @@
+
+
+TwoPartyDealProtocol.DealRefMismatchException.expectedDeal -
+
+
+
+protocols / TwoPartyDealProtocol / DealRefMismatchException / expectedDeal
+
+expectedDeal
+
+val expectedDeal : StateRef
+
+
+
+
diff --git a/docs/build/html/api/protocols/-two-party-deal-protocol/-deal-ref-mismatch-exception/index.html b/docs/build/html/api/protocols/-two-party-deal-protocol/-deal-ref-mismatch-exception/index.html
new file mode 100644
index 0000000000..df640e022a
--- /dev/null
+++ b/docs/build/html/api/protocols/-two-party-deal-protocol/-deal-ref-mismatch-exception/index.html
@@ -0,0 +1,53 @@
+
+
+TwoPartyDealProtocol.DealRefMismatchException -
+
+
+
+protocols / TwoPartyDealProtocol / DealRefMismatchException
+
+DealRefMismatchException
+class DealRefMismatchException : Exception
+
+
+Constructors
+
+Properties
+
+Functions
+
+
+
+
+toString
+
+fun toString ( ) : String
+
+
+
+
+
diff --git a/docs/build/html/api/protocols/-two-party-deal-protocol/-deal-ref-mismatch-exception/to-string.html b/docs/build/html/api/protocols/-two-party-deal-protocol/-deal-ref-mismatch-exception/to-string.html
new file mode 100644
index 0000000000..d25a1694b6
--- /dev/null
+++ b/docs/build/html/api/protocols/-two-party-deal-protocol/-deal-ref-mismatch-exception/to-string.html
@@ -0,0 +1,15 @@
+
+
+TwoPartyDealProtocol.DealRefMismatchException.toString -
+
+
+
+protocols / TwoPartyDealProtocol / DealRefMismatchException / toString
+
+toString
+
+fun toString ( ) : String
+
+
+
+
diff --git a/docs/build/html/api/protocols/-two-party-deal-protocol/-fixer/-init-.html b/docs/build/html/api/protocols/-two-party-deal-protocol/-fixer/-init-.html
new file mode 100644
index 0000000000..467fe82bd1
--- /dev/null
+++ b/docs/build/html/api/protocols/-two-party-deal-protocol/-fixer/-init-.html
@@ -0,0 +1,20 @@
+
+
+TwoPartyDealProtocol.Fixer. -
+
+
+
+protocols / TwoPartyDealProtocol / Fixer / <init>
+
+<init>
+Fixer ( otherSide : SingleMessageRecipient , timestampingAuthority : Party , dealToFix : StateAndRef < T > , sessionID : Long , replacementProgressTracker : ProgressTracker ? = null)
+One side of the fixing protocol for an interest rate swap, but could easily be generalised further.
+Do not infer too much from the name of the class. This is just to indicate that it is the "side"
+of the protocol that is run by the party with the fixed leg of swap deal, which is the basis for decided
+who does what in the protocol.
+
+
+
+
+
+
diff --git a/docs/build/html/api/protocols/-two-party-deal-protocol/-fixer/assemble-shared-t-x.html b/docs/build/html/api/protocols/-two-party-deal-protocol/-fixer/assemble-shared-t-x.html
new file mode 100644
index 0000000000..0db32f47c3
--- /dev/null
+++ b/docs/build/html/api/protocols/-two-party-deal-protocol/-fixer/assemble-shared-t-x.html
@@ -0,0 +1,15 @@
+
+
+TwoPartyDealProtocol.Fixer.assembleSharedTX -
+
+
+
+protocols / TwoPartyDealProtocol / Fixer / assembleSharedTX
+
+assembleSharedTX
+
+protected open fun assembleSharedTX ( handshake : Handshake < StateRef > ) : <ERROR CLASS> < TransactionBuilder , List < PublicKey > >
+
+
+
+
diff --git a/docs/build/html/api/protocols/-two-party-deal-protocol/-fixer/create-tracker.html b/docs/build/html/api/protocols/-two-party-deal-protocol/-fixer/create-tracker.html
new file mode 100644
index 0000000000..5b2bbd128d
--- /dev/null
+++ b/docs/build/html/api/protocols/-two-party-deal-protocol/-fixer/create-tracker.html
@@ -0,0 +1,15 @@
+
+
+TwoPartyDealProtocol.Fixer.createTracker -
+
+
+
+protocols / TwoPartyDealProtocol / Fixer / createTracker
+
+createTracker
+
+fun createTracker ( ) : ProgressTracker
+
+
+
+
diff --git a/docs/build/html/api/protocols/-two-party-deal-protocol/-fixer/deal-to-fix.html b/docs/build/html/api/protocols/-two-party-deal-protocol/-fixer/deal-to-fix.html
new file mode 100644
index 0000000000..7854365f19
--- /dev/null
+++ b/docs/build/html/api/protocols/-two-party-deal-protocol/-fixer/deal-to-fix.html
@@ -0,0 +1,15 @@
+
+
+TwoPartyDealProtocol.Fixer.dealToFix -
+
+
+
+protocols / TwoPartyDealProtocol / Fixer / dealToFix
+
+dealToFix
+
+val dealToFix : StateAndRef < T >
+
+
+
+
diff --git a/docs/build/html/api/protocols/-two-party-deal-protocol/-fixer/index.html b/docs/build/html/api/protocols/-two-party-deal-protocol/-fixer/index.html
new file mode 100644
index 0000000000..a58baf214d
--- /dev/null
+++ b/docs/build/html/api/protocols/-two-party-deal-protocol/-fixer/index.html
@@ -0,0 +1,117 @@
+
+
+TwoPartyDealProtocol.Fixer -
+
+
+
+protocols / TwoPartyDealProtocol / Fixer
+
+Fixer
+class Fixer < T : FixableDealState > : Secondary < StateRef >
+One side of the fixing protocol for an interest rate swap, but could easily be generalised further.
+Do not infer too much from the name of the class. This is just to indicate that it is the "side"
+of the protocol that is run by the party with the fixed leg of swap deal, which is the basis for decided
+who does what in the protocol.
+
+
+
+
+Constructors
+
+Properties
+
+
+
+
+dealToFix
+
+val dealToFix : StateAndRef < T >
+
+
+
+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.
+
+
+
+
+replacementProgressTracker
+
+val replacementProgressTracker : ProgressTracker ?
+
+
+
+Inherited Properties
+
+Functions
+
+Inherited Functions
+
+
+
diff --git a/docs/build/html/api/protocols/-two-party-deal-protocol/-fixer/progress-tracker.html b/docs/build/html/api/protocols/-two-party-deal-protocol/-fixer/progress-tracker.html
new file mode 100644
index 0000000000..a0581bab74
--- /dev/null
+++ b/docs/build/html/api/protocols/-two-party-deal-protocol/-fixer/progress-tracker.html
@@ -0,0 +1,24 @@
+
+
+TwoPartyDealProtocol.Fixer.progressTracker -
+
+
+
+protocols / TwoPartyDealProtocol / Fixer / 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/protocols/-two-party-deal-protocol/-fixer/replacement-progress-tracker.html b/docs/build/html/api/protocols/-two-party-deal-protocol/-fixer/replacement-progress-tracker.html
new file mode 100644
index 0000000000..73c7d46d58
--- /dev/null
+++ b/docs/build/html/api/protocols/-two-party-deal-protocol/-fixer/replacement-progress-tracker.html
@@ -0,0 +1,15 @@
+
+
+TwoPartyDealProtocol.Fixer.replacementProgressTracker -
+
+
+
+protocols / TwoPartyDealProtocol / Fixer / replacementProgressTracker
+
+replacementProgressTracker
+
+val replacementProgressTracker : ProgressTracker ?
+
+
+
+
diff --git a/docs/build/html/api/protocols/-two-party-deal-protocol/-fixer/validate-handshake.html b/docs/build/html/api/protocols/-two-party-deal-protocol/-fixer/validate-handshake.html
new file mode 100644
index 0000000000..a32896e1e6
--- /dev/null
+++ b/docs/build/html/api/protocols/-two-party-deal-protocol/-fixer/validate-handshake.html
@@ -0,0 +1,15 @@
+
+
+TwoPartyDealProtocol.Fixer.validateHandshake -
+
+
+
+protocols / TwoPartyDealProtocol / Fixer / validateHandshake
+
+validateHandshake
+
+protected open fun validateHandshake ( handshake : Handshake < StateRef > ) : Handshake < StateRef >
+
+
+
+
diff --git a/docs/build/html/api/protocols/-two-party-deal-protocol/-floater/-init-.html b/docs/build/html/api/protocols/-two-party-deal-protocol/-floater/-init-.html
new file mode 100644
index 0000000000..938c9d8d2c
--- /dev/null
+++ b/docs/build/html/api/protocols/-two-party-deal-protocol/-floater/-init-.html
@@ -0,0 +1,20 @@
+
+
+TwoPartyDealProtocol.Floater. -
+
+
+
+protocols / TwoPartyDealProtocol / Floater / <init>
+
+<init>
+Floater ( otherSide : SingleMessageRecipient , otherSessionID : Long , timestampingAuthority : NodeInfo , dealToFix : StateAndRef < T > , myKeyPair : KeyPair , sessionID : Long , progressTracker : ProgressTracker = Primary.tracker())
+One side of the fixing protocol for an interest rate swap, but could easily be generalised furher
+As per the Fixer , do not infer too much from this class name in terms of business roles. This
+is just the "side" of the protocol run by the party with the floating leg as a way of deciding who
+does what in the protocol.
+
+
+
+
+
+
diff --git a/docs/build/html/api/protocols/-two-party-deal-protocol/-floater/index.html b/docs/build/html/api/protocols/-two-party-deal-protocol/-floater/index.html
new file mode 100644
index 0000000000..4f4b26ecd0
--- /dev/null
+++ b/docs/build/html/api/protocols/-two-party-deal-protocol/-floater/index.html
@@ -0,0 +1,118 @@
+
+
+TwoPartyDealProtocol.Floater -
+
+
+
+protocols / TwoPartyDealProtocol / Floater
+
+Floater
+class Floater < T : FixableDealState > : Primary < StateRef >
+One side of the fixing protocol for an interest rate swap, but could easily be generalised furher
+As per the Fixer , do not infer too much from this class name in terms of business roles. This
+is just the "side" of the protocol run by the party with the floating leg as a way of deciding who
+does what in the protocol.
+
+
+
+
+Constructors
+
+Properties
+
+
+
+
+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.
+
+
+
+
+sessionID
+
+val sessionID : Long
+
+
+
+Inherited Properties
+
+Inherited Functions
+
+
+
diff --git a/docs/build/html/api/protocols/-two-party-deal-protocol/-floater/progress-tracker.html b/docs/build/html/api/protocols/-two-party-deal-protocol/-floater/progress-tracker.html
new file mode 100644
index 0000000000..09883bc325
--- /dev/null
+++ b/docs/build/html/api/protocols/-two-party-deal-protocol/-floater/progress-tracker.html
@@ -0,0 +1,24 @@
+
+
+TwoPartyDealProtocol.Floater.progressTracker -
+
+
+
+protocols / TwoPartyDealProtocol / Floater / 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/protocols/-two-party-deal-protocol/-floater/session-i-d.html b/docs/build/html/api/protocols/-two-party-deal-protocol/-floater/session-i-d.html
new file mode 100644
index 0000000000..ae59501c5d
--- /dev/null
+++ b/docs/build/html/api/protocols/-two-party-deal-protocol/-floater/session-i-d.html
@@ -0,0 +1,15 @@
+
+
+TwoPartyDealProtocol.Floater.sessionID -
+
+
+
+protocols / TwoPartyDealProtocol / Floater / sessionID
+
+sessionID
+
+val sessionID : Long
+
+
+
+
diff --git a/docs/build/html/api/protocols/-two-party-deal-protocol/-handshake/-init-.html b/docs/build/html/api/protocols/-two-party-deal-protocol/-handshake/-init-.html
new file mode 100644
index 0000000000..6edb04215b
--- /dev/null
+++ b/docs/build/html/api/protocols/-two-party-deal-protocol/-handshake/-init-.html
@@ -0,0 +1,14 @@
+
+
+TwoPartyDealProtocol.Handshake. -
+
+
+
+protocols / TwoPartyDealProtocol / Handshake / <init>
+
+<init>
+Handshake ( payload : T , publicKey : PublicKey , sessionID : Long )
+
+
+
+
diff --git a/docs/build/html/api/protocols/-two-party-deal-protocol/-handshake/index.html b/docs/build/html/api/protocols/-two-party-deal-protocol/-handshake/index.html
new file mode 100644
index 0000000000..7b7ac62147
--- /dev/null
+++ b/docs/build/html/api/protocols/-two-party-deal-protocol/-handshake/index.html
@@ -0,0 +1,48 @@
+
+
+TwoPartyDealProtocol.Handshake -
+
+
+
+protocols / TwoPartyDealProtocol / Handshake
+
+Handshake
+data class Handshake < T >
+
+
+Constructors
+
+
+
+
+<init>
+
+Handshake ( payload : T , publicKey : PublicKey , sessionID : Long )
+
+
+
+Properties
+
+
+
diff --git a/docs/build/html/api/protocols/-two-party-deal-protocol/-handshake/payload.html b/docs/build/html/api/protocols/-two-party-deal-protocol/-handshake/payload.html
new file mode 100644
index 0000000000..2dc4eff62c
--- /dev/null
+++ b/docs/build/html/api/protocols/-two-party-deal-protocol/-handshake/payload.html
@@ -0,0 +1,15 @@
+
+
+TwoPartyDealProtocol.Handshake.payload -
+
+
+
+protocols / TwoPartyDealProtocol / Handshake / payload
+
+payload
+
+val payload : T
+
+
+
+
diff --git a/docs/build/html/api/protocols/-two-party-deal-protocol/-handshake/public-key.html b/docs/build/html/api/protocols/-two-party-deal-protocol/-handshake/public-key.html
new file mode 100644
index 0000000000..60d4c19e8b
--- /dev/null
+++ b/docs/build/html/api/protocols/-two-party-deal-protocol/-handshake/public-key.html
@@ -0,0 +1,15 @@
+
+
+TwoPartyDealProtocol.Handshake.publicKey -
+
+
+
+protocols / TwoPartyDealProtocol / Handshake / publicKey
+
+publicKey
+
+val publicKey : PublicKey
+
+
+
+
diff --git a/docs/build/html/api/protocols/-two-party-deal-protocol/-handshake/session-i-d.html b/docs/build/html/api/protocols/-two-party-deal-protocol/-handshake/session-i-d.html
new file mode 100644
index 0000000000..9fced6763e
--- /dev/null
+++ b/docs/build/html/api/protocols/-two-party-deal-protocol/-handshake/session-i-d.html
@@ -0,0 +1,15 @@
+
+
+TwoPartyDealProtocol.Handshake.sessionID -
+
+
+
+protocols / TwoPartyDealProtocol / Handshake / sessionID
+
+sessionID
+
+val sessionID : Long
+
+
+
+
diff --git a/docs/build/html/api/protocols/-two-party-deal-protocol/-instigator/-init-.html b/docs/build/html/api/protocols/-two-party-deal-protocol/-instigator/-init-.html
new file mode 100644
index 0000000000..7fabaa5718
--- /dev/null
+++ b/docs/build/html/api/protocols/-two-party-deal-protocol/-instigator/-init-.html
@@ -0,0 +1,15 @@
+
+
+TwoPartyDealProtocol.Instigator. -
+
+
+
+protocols / TwoPartyDealProtocol / Instigator / <init>
+
+<init>
+Instigator ( otherSide : SingleMessageRecipient , timestampingAuthority : NodeInfo , dealBeingOffered : T , myKeyPair : KeyPair , buyerSessionID : Long , progressTracker : ProgressTracker = Primary.tracker())
+One side of the protocol for inserting a pre-agreed deal.
+
+
+
+
diff --git a/docs/build/html/api/protocols/-two-party-deal-protocol/-instigator/index.html b/docs/build/html/api/protocols/-two-party-deal-protocol/-instigator/index.html
new file mode 100644
index 0000000000..199d89e762
--- /dev/null
+++ b/docs/build/html/api/protocols/-two-party-deal-protocol/-instigator/index.html
@@ -0,0 +1,107 @@
+
+
+TwoPartyDealProtocol.Instigator -
+
+
+
+protocols / TwoPartyDealProtocol / Instigator
+
+Instigator
+class Instigator < T : DealState > : Primary < T >
+One side of the protocol for inserting a pre-agreed deal.
+
+
+Constructors
+
+Properties
+
+
+
+
+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
+
+Inherited Functions
+
+
+
diff --git a/docs/build/html/api/protocols/-two-party-deal-protocol/-instigator/progress-tracker.html b/docs/build/html/api/protocols/-two-party-deal-protocol/-instigator/progress-tracker.html
new file mode 100644
index 0000000000..6cb73ffa1b
--- /dev/null
+++ b/docs/build/html/api/protocols/-two-party-deal-protocol/-instigator/progress-tracker.html
@@ -0,0 +1,24 @@
+
+
+TwoPartyDealProtocol.Instigator.progressTracker -
+
+
+
+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/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/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..b7c7072b58
--- /dev/null
+++ b/docs/build/html/api/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,31 @@
+
+
+TwoPartyDealProtocol.Primary.AWAITING_PROPOSAL -
+
+
+
+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
+
+
+
+
+
diff --git a/docs/build/html/api/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/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..aa9071aa46
--- /dev/null
+++ b/docs/build/html/api/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,31 @@
+
+
+TwoPartyDealProtocol.Primary.COPYING_TO_REGULATOR -
+
+
+
+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
+
+
+
+
+
diff --git a/docs/build/html/api/protocols/-two-party-deal-protocol/-primary/-init-.html b/docs/build/html/api/protocols/-two-party-deal-protocol/-primary/-init-.html
new file mode 100644
index 0000000000..34a8d8eae0
--- /dev/null
+++ b/docs/build/html/api/protocols/-two-party-deal-protocol/-primary/-init-.html
@@ -0,0 +1,19 @@
+
+
+TwoPartyDealProtocol.Primary. -
+
+
+
+protocols / TwoPartyDealProtocol / Primary / <init>
+
+<init>
+Primary ( payload : U , otherSide : SingleMessageRecipient , otherSessionID : Long , myKeyPair : KeyPair , timestampingAuthority : NodeInfo , 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/protocols/-two-party-deal-protocol/-primary/-r-e-c-o-r-d-i-n-g.html b/docs/build/html/api/protocols/-two-party-deal-protocol/-primary/-r-e-c-o-r-d-i-n-g.html
new file mode 100644
index 0000000000..2cfc6abcef
--- /dev/null
+++ b/docs/build/html/api/protocols/-two-party-deal-protocol/-primary/-r-e-c-o-r-d-i-n-g.html
@@ -0,0 +1,31 @@
+
+
+TwoPartyDealProtocol.Primary.RECORDING -
+
+
+
+protocols / TwoPartyDealProtocol / Primary / RECORDING
+
+RECORDING
+object RECORDING : Step
+
+
+Inherited Properties
+
+
+
+
+changes
+
+open val changes : <ERROR CLASS> < Change >
+
+
+
+label
+
+open val label : String
+
+
+
+
+
diff --git a/docs/build/html/api/protocols/-two-party-deal-protocol/-primary/-s-e-n-d-i-n-g_-s-i-g-s.html b/docs/build/html/api/protocols/-two-party-deal-protocol/-primary/-s-e-n-d-i-n-g_-s-i-g-s.html
new file mode 100644
index 0000000000..300844fa34
--- /dev/null
+++ b/docs/build/html/api/protocols/-two-party-deal-protocol/-primary/-s-e-n-d-i-n-g_-s-i-g-s.html
@@ -0,0 +1,31 @@
+
+
+TwoPartyDealProtocol.Primary.SENDING_SIGS -
+
+
+
+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
+
+
+
+
+
diff --git a/docs/build/html/api/protocols/-two-party-deal-protocol/-primary/-s-i-g-n-i-n-g.html b/docs/build/html/api/protocols/-two-party-deal-protocol/-primary/-s-i-g-n-i-n-g.html
new file mode 100644
index 0000000000..2eeb9e5d24
--- /dev/null
+++ b/docs/build/html/api/protocols/-two-party-deal-protocol/-primary/-s-i-g-n-i-n-g.html
@@ -0,0 +1,31 @@
+
+
+TwoPartyDealProtocol.Primary.SIGNING -
+
+
+
+protocols / TwoPartyDealProtocol / Primary / SIGNING
+
+SIGNING
+object SIGNING : Step
+
+
+Inherited Properties
+
+
+
+
+changes
+
+open val changes : <ERROR CLASS> < Change >
+
+
+
+label
+
+open val label : String
+
+
+
+
+
diff --git a/docs/build/html/api/protocols/-two-party-deal-protocol/-primary/-t-i-m-e-s-t-a-m-p-i-n-g.html b/docs/build/html/api/protocols/-two-party-deal-protocol/-primary/-t-i-m-e-s-t-a-m-p-i-n-g.html
new file mode 100644
index 0000000000..a9bf195fa8
--- /dev/null
+++ b/docs/build/html/api/protocols/-two-party-deal-protocol/-primary/-t-i-m-e-s-t-a-m-p-i-n-g.html
@@ -0,0 +1,31 @@
+
+
+TwoPartyDealProtocol.Primary.TIMESTAMPING -
+
+
+
+protocols / TwoPartyDealProtocol / Primary / TIMESTAMPING
+
+TIMESTAMPING
+object TIMESTAMPING : Step
+
+
+Inherited Properties
+
+
+
+
+changes
+
+open val changes : <ERROR CLASS> < Change >
+
+
+
+label
+
+open val label : String
+
+
+
+
+
diff --git a/docs/build/html/api/protocols/-two-party-deal-protocol/-primary/-v-e-r-i-f-y-i-n-g.html b/docs/build/html/api/protocols/-two-party-deal-protocol/-primary/-v-e-r-i-f-y-i-n-g.html
new file mode 100644
index 0000000000..218159bb64
--- /dev/null
+++ b/docs/build/html/api/protocols/-two-party-deal-protocol/-primary/-v-e-r-i-f-y-i-n-g.html
@@ -0,0 +1,31 @@
+
+
+TwoPartyDealProtocol.Primary.VERIFYING -
+
+
+
+protocols / TwoPartyDealProtocol / Primary / VERIFYING
+
+VERIFYING
+object VERIFYING : Step
+
+
+Inherited Properties
+
+
+
+
+changes
+
+open val changes : <ERROR CLASS> < Change >
+
+
+
+label
+
+open val label : String
+
+
+
+
+
diff --git a/docs/build/html/api/protocols/-two-party-deal-protocol/-primary/call.html b/docs/build/html/api/protocols/-two-party-deal-protocol/-primary/call.html
new file mode 100644
index 0000000000..613080cd2d
--- /dev/null
+++ b/docs/build/html/api/protocols/-two-party-deal-protocol/-primary/call.html
@@ -0,0 +1,17 @@
+
+
+TwoPartyDealProtocol.Primary.call -
+
+
+
+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/protocols/-two-party-deal-protocol/-primary/get-partial-transaction.html b/docs/build/html/api/protocols/-two-party-deal-protocol/-primary/get-partial-transaction.html
new file mode 100644
index 0000000000..d5392a267b
--- /dev/null
+++ b/docs/build/html/api/protocols/-two-party-deal-protocol/-primary/get-partial-transaction.html
@@ -0,0 +1,15 @@
+
+
+TwoPartyDealProtocol.Primary.getPartialTransaction -
+
+
+
+protocols / TwoPartyDealProtocol / Primary / getPartialTransaction
+
+getPartialTransaction
+
+fun getPartialTransaction ( ) : UntrustworthyData < SignedTransaction >
+
+
+
+
diff --git a/docs/build/html/api/protocols/-two-party-deal-protocol/-primary/index.html b/docs/build/html/api/protocols/-two-party-deal-protocol/-primary/index.html
new file mode 100644
index 0000000000..1c7462e896
--- /dev/null
+++ b/docs/build/html/api/protocols/-two-party-deal-protocol/-primary/index.html
@@ -0,0 +1,241 @@
+
+
+TwoPartyDealProtocol.Primary -
+
+
+
+protocols / TwoPartyDealProtocol / Primary
+
+Primary
+abstract class Primary < U > : 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 ( payload : U , otherSide : SingleMessageRecipient , otherSessionID : Long , myKeyPair : KeyPair , timestampingAuthority : NodeInfo , progressTracker : ProgressTracker = Primary.tracker())
Abstracted bilateral deal protocol participant that initiates communication/handshake.
+
+
+
+
+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
+
+
+
+
+Functions
+
+Inherited Functions
+
+
+
+
+receive
+
+fun < T : Any > receive ( topic : String , sessionIDForReceive : Long ) : UntrustworthyData < T >
+fun < T : Any > receive ( topic : String , sessionIDForReceive : Long , clazz : Class < T > ) : UntrustworthyData < T >
+
+
+
+send
+
+fun send ( topic : String , destination : MessageRecipients , sessionID : Long , obj : Any ) : Unit
+
+
+
+sendAndReceive
+
+fun < T : Any > sendAndReceive ( topic : String , destination : MessageRecipients , sessionIDForSend : Long , sessionIDForReceive : Long , obj : Any ) : UntrustworthyData < T >
+
+
+
+subProtocol
+
+fun < R > subProtocol ( subLogic : ProtocolLogic < R > ) : R
Invokes the given subprotocol by simply passing through this ProtocolLogic s reference to the
+ProtocolStateMachine and then calling the call method.
+
+
+
+
+Companion Object Functions
+
+
+
+
+tracker
+
+fun tracker ( ) : <ERROR CLASS>
+
+
+
+Inheritors
+
+
+
+
+Floater
+
+class Floater < T : FixableDealState > : Primary < StateRef >
One side of the fixing protocol for an interest rate swap, but could easily be generalised furher
+
+
+
+
+Instigator
+
+class Instigator < T : DealState > : Primary < T >
One side of the protocol for inserting a pre-agreed deal.
+
+
+
+
+
+
diff --git a/docs/build/html/api/protocols/-two-party-deal-protocol/-primary/my-key-pair.html b/docs/build/html/api/protocols/-two-party-deal-protocol/-primary/my-key-pair.html
new file mode 100644
index 0000000000..2798c955ee
--- /dev/null
+++ b/docs/build/html/api/protocols/-two-party-deal-protocol/-primary/my-key-pair.html
@@ -0,0 +1,15 @@
+
+
+TwoPartyDealProtocol.Primary.myKeyPair -
+
+
+
+protocols / TwoPartyDealProtocol / Primary / myKeyPair
+
+myKeyPair
+
+val myKeyPair : KeyPair
+
+
+
+
diff --git a/docs/build/html/api/protocols/-two-party-deal-protocol/-primary/other-session-i-d.html b/docs/build/html/api/protocols/-two-party-deal-protocol/-primary/other-session-i-d.html
new file mode 100644
index 0000000000..1e3f2c34cb
--- /dev/null
+++ b/docs/build/html/api/protocols/-two-party-deal-protocol/-primary/other-session-i-d.html
@@ -0,0 +1,15 @@
+
+
+TwoPartyDealProtocol.Primary.otherSessionID -
+
+
+
+protocols / TwoPartyDealProtocol / Primary / otherSessionID
+
+otherSessionID
+
+val otherSessionID : Long
+
+
+
+
diff --git a/docs/build/html/api/protocols/-two-party-deal-protocol/-primary/other-side.html b/docs/build/html/api/protocols/-two-party-deal-protocol/-primary/other-side.html
new file mode 100644
index 0000000000..2a724a6b0f
--- /dev/null
+++ b/docs/build/html/api/protocols/-two-party-deal-protocol/-primary/other-side.html
@@ -0,0 +1,15 @@
+
+
+TwoPartyDealProtocol.Primary.otherSide -
+
+
+
+protocols / TwoPartyDealProtocol / Primary / otherSide
+
+otherSide
+
+val otherSide : SingleMessageRecipient
+
+
+
+
diff --git a/docs/build/html/api/protocols/-two-party-deal-protocol/-primary/payload.html b/docs/build/html/api/protocols/-two-party-deal-protocol/-primary/payload.html
new file mode 100644
index 0000000000..d8f335886b
--- /dev/null
+++ b/docs/build/html/api/protocols/-two-party-deal-protocol/-primary/payload.html
@@ -0,0 +1,15 @@
+
+
+TwoPartyDealProtocol.Primary.payload -
+
+
+
+protocols / TwoPartyDealProtocol / Primary / payload
+
+payload
+
+val payload : U
+
+
+
+
diff --git a/docs/build/html/api/protocols/-two-party-deal-protocol/-primary/progress-tracker.html b/docs/build/html/api/protocols/-two-party-deal-protocol/-primary/progress-tracker.html
new file mode 100644
index 0000000000..11e649d068
--- /dev/null
+++ b/docs/build/html/api/protocols/-two-party-deal-protocol/-primary/progress-tracker.html
@@ -0,0 +1,24 @@
+
+
+TwoPartyDealProtocol.Primary.progressTracker -
+
+
+
+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/protocols/-two-party-deal-protocol/-primary/sign-with-our-key.html b/docs/build/html/api/protocols/-two-party-deal-protocol/-primary/sign-with-our-key.html
new file mode 100644
index 0000000000..fa9fd9c786
--- /dev/null
+++ b/docs/build/html/api/protocols/-two-party-deal-protocol/-primary/sign-with-our-key.html
@@ -0,0 +1,15 @@
+
+
+TwoPartyDealProtocol.Primary.signWithOurKey -
+
+
+
+protocols / TwoPartyDealProtocol / Primary / signWithOurKey
+
+signWithOurKey
+
+open fun signWithOurKey ( partialTX : SignedTransaction ) : WithKey
+
+
+
+
diff --git a/docs/build/html/api/protocols/-two-party-deal-protocol/-primary/timestamping-authority.html b/docs/build/html/api/protocols/-two-party-deal-protocol/-primary/timestamping-authority.html
new file mode 100644
index 0000000000..de7531b480
--- /dev/null
+++ b/docs/build/html/api/protocols/-two-party-deal-protocol/-primary/timestamping-authority.html
@@ -0,0 +1,15 @@
+
+
+TwoPartyDealProtocol.Primary.timestampingAuthority -
+
+
+
+protocols / TwoPartyDealProtocol / Primary / timestampingAuthority
+
+timestampingAuthority
+
+val timestampingAuthority : NodeInfo
+
+
+
+
diff --git a/docs/build/html/api/protocols/-two-party-deal-protocol/-primary/tracker.html b/docs/build/html/api/protocols/-two-party-deal-protocol/-primary/tracker.html
new file mode 100644
index 0000000000..fd27c9ffca
--- /dev/null
+++ b/docs/build/html/api/protocols/-two-party-deal-protocol/-primary/tracker.html
@@ -0,0 +1,15 @@
+
+
+TwoPartyDealProtocol.Primary.tracker -
+
+
+
+protocols / TwoPartyDealProtocol / Primary / tracker
+
+tracker
+
+fun tracker ( ) : <ERROR CLASS>
+
+
+
+
diff --git a/docs/build/html/api/protocols/-two-party-deal-protocol/-primary/verify-partial-transaction.html b/docs/build/html/api/protocols/-two-party-deal-protocol/-primary/verify-partial-transaction.html
new file mode 100644
index 0000000000..0725fb3749
--- /dev/null
+++ b/docs/build/html/api/protocols/-two-party-deal-protocol/-primary/verify-partial-transaction.html
@@ -0,0 +1,15 @@
+
+
+TwoPartyDealProtocol.Primary.verifyPartialTransaction -
+
+
+
+protocols / TwoPartyDealProtocol / Primary / verifyPartialTransaction
+
+verifyPartialTransaction
+
+fun verifyPartialTransaction ( untrustedPartialTX : UntrustworthyData < SignedTransaction > ) : SignedTransaction
+
+
+
+
diff --git a/docs/build/html/api/protocols/-two-party-deal-protocol/-secondary/-init-.html b/docs/build/html/api/protocols/-two-party-deal-protocol/-secondary/-init-.html
new file mode 100644
index 0000000000..500f0f3e2e
--- /dev/null
+++ b/docs/build/html/api/protocols/-two-party-deal-protocol/-secondary/-init-.html
@@ -0,0 +1,19 @@
+
+
+TwoPartyDealProtocol.Secondary. -
+
+
+
+protocols / TwoPartyDealProtocol / Secondary / <init>
+
+<init>
+Secondary ( otherSide : SingleMessageRecipient , timestampingAuthority : Party , sessionID : Long , 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/protocols/-two-party-deal-protocol/-secondary/-r-e-c-e-i-v-i-n-g.html b/docs/build/html/api/protocols/-two-party-deal-protocol/-secondary/-r-e-c-e-i-v-i-n-g.html
new file mode 100644
index 0000000000..c6f530d31b
--- /dev/null
+++ b/docs/build/html/api/protocols/-two-party-deal-protocol/-secondary/-r-e-c-e-i-v-i-n-g.html
@@ -0,0 +1,31 @@
+
+
+TwoPartyDealProtocol.Secondary.RECEIVING -
+
+
+
+protocols / TwoPartyDealProtocol / Secondary / RECEIVING
+
+RECEIVING
+object RECEIVING : Step
+
+
+Inherited Properties
+
+
+
+
+changes
+
+open val changes : <ERROR CLASS> < Change >
+
+
+
+label
+
+open val label : String
+
+
+
+
+
diff --git a/docs/build/html/api/protocols/-two-party-deal-protocol/-secondary/-r-e-c-o-r-d-i-n-g.html b/docs/build/html/api/protocols/-two-party-deal-protocol/-secondary/-r-e-c-o-r-d-i-n-g.html
new file mode 100644
index 0000000000..c3b4960cb9
--- /dev/null
+++ b/docs/build/html/api/protocols/-two-party-deal-protocol/-secondary/-r-e-c-o-r-d-i-n-g.html
@@ -0,0 +1,31 @@
+
+
+TwoPartyDealProtocol.Secondary.RECORDING -
+
+
+
+protocols / TwoPartyDealProtocol / Secondary / RECORDING
+
+RECORDING
+object RECORDING : Step
+
+
+Inherited Properties
+
+
+
+
+changes
+
+open val changes : <ERROR CLASS> < Change >
+
+
+
+label
+
+open val label : String
+
+
+
+
+
diff --git a/docs/build/html/api/protocols/-two-party-deal-protocol/-secondary/-s-i-g-n-i-n-g.html b/docs/build/html/api/protocols/-two-party-deal-protocol/-secondary/-s-i-g-n-i-n-g.html
new file mode 100644
index 0000000000..bd5efaa0f8
--- /dev/null
+++ b/docs/build/html/api/protocols/-two-party-deal-protocol/-secondary/-s-i-g-n-i-n-g.html
@@ -0,0 +1,31 @@
+
+
+TwoPartyDealProtocol.Secondary.SIGNING -
+
+
+
+protocols / TwoPartyDealProtocol / Secondary / SIGNING
+
+SIGNING
+object SIGNING : Step
+
+
+Inherited Properties
+
+
+
+
+changes
+
+open val changes : <ERROR CLASS> < Change >
+
+
+
+label
+
+open val label : String
+
+
+
+
+
diff --git a/docs/build/html/api/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/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..49d86f9edc
--- /dev/null
+++ b/docs/build/html/api/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,31 @@
+
+
+TwoPartyDealProtocol.Secondary.SWAPPING_SIGNATURES -
+
+
+
+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
+
+
+
+
+
diff --git a/docs/build/html/api/protocols/-two-party-deal-protocol/-secondary/-v-e-r-i-f-y-i-n-g.html b/docs/build/html/api/protocols/-two-party-deal-protocol/-secondary/-v-e-r-i-f-y-i-n-g.html
new file mode 100644
index 0000000000..95c565c89a
--- /dev/null
+++ b/docs/build/html/api/protocols/-two-party-deal-protocol/-secondary/-v-e-r-i-f-y-i-n-g.html
@@ -0,0 +1,31 @@
+
+
+TwoPartyDealProtocol.Secondary.VERIFYING -
+
+
+
+protocols / TwoPartyDealProtocol / Secondary / VERIFYING
+
+VERIFYING
+object VERIFYING : Step
+
+
+Inherited Properties
+
+
+
+
+changes
+
+open val changes : <ERROR CLASS> < Change >
+
+
+
+label
+
+open val label : String
+
+
+
+
+
diff --git a/docs/build/html/api/protocols/-two-party-deal-protocol/-secondary/assemble-shared-t-x.html b/docs/build/html/api/protocols/-two-party-deal-protocol/-secondary/assemble-shared-t-x.html
new file mode 100644
index 0000000000..5a5c3c7525
--- /dev/null
+++ b/docs/build/html/api/protocols/-two-party-deal-protocol/-secondary/assemble-shared-t-x.html
@@ -0,0 +1,15 @@
+
+
+TwoPartyDealProtocol.Secondary.assembleSharedTX -
+
+
+
+protocols / TwoPartyDealProtocol / Secondary / assembleSharedTX
+
+assembleSharedTX
+
+protected abstract fun assembleSharedTX ( handshake : Handshake < U > ) : <ERROR CLASS> < TransactionBuilder , List < PublicKey > >
+
+
+
+
diff --git a/docs/build/html/api/protocols/-two-party-deal-protocol/-secondary/call.html b/docs/build/html/api/protocols/-two-party-deal-protocol/-secondary/call.html
new file mode 100644
index 0000000000..ec48adad6c
--- /dev/null
+++ b/docs/build/html/api/protocols/-two-party-deal-protocol/-secondary/call.html
@@ -0,0 +1,17 @@
+
+
+TwoPartyDealProtocol.Secondary.call -
+
+
+
+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/protocols/-two-party-deal-protocol/-secondary/index.html b/docs/build/html/api/protocols/-two-party-deal-protocol/-secondary/index.html
new file mode 100644
index 0000000000..a0b72d2ad4
--- /dev/null
+++ b/docs/build/html/api/protocols/-two-party-deal-protocol/-secondary/index.html
@@ -0,0 +1,211 @@
+
+
+TwoPartyDealProtocol.Secondary -
+
+
+
+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 ( otherSide : SingleMessageRecipient , timestampingAuthority : Party , sessionID : Long , progressTracker : ProgressTracker = Secondary.tracker())
Abstracted bilateral deal protocol participant that is recipient of initial communication.
+
+
+
+
+Properties
+
+
+
+
+otherSide
+
+val otherSide : SingleMessageRecipient
+
+
+
+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.
+
+
+
+
+sessionID
+
+val sessionID : Long
+
+
+
+timestampingAuthority
+
+val timestampingAuthority : Party
+
+
+
+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
+
+
+
+
+Functions
+
+Inherited Functions
+
+
+
+
+receive
+
+fun < T : Any > receive ( topic : String , sessionIDForReceive : Long , clazz : Class < T > ) : UntrustworthyData < T >
+fun < T : Any > receive ( topic : String , sessionIDForReceive : Long ) : UntrustworthyData < T >
+
+
+
+send
+
+fun send ( topic : String , destination : MessageRecipients , sessionID : Long , obj : Any ) : Unit
+
+
+
+sendAndReceive
+
+fun < T : Any > sendAndReceive ( topic : String , destination : MessageRecipients , sessionIDForSend : Long , sessionIDForReceive : Long , obj : Any ) : UntrustworthyData < T >
+
+
+
+subProtocol
+
+fun < R > subProtocol ( subLogic : ProtocolLogic < R > ) : R
Invokes the given subprotocol by simply passing through this ProtocolLogic s reference to the
+ProtocolStateMachine and then calling the call method.
+
+
+
+
+Companion Object Functions
+
+Inheritors
+
+
+
+
+Acceptor
+
+class Acceptor < T : DealState > : Secondary < T >
One side of the protocol for inserting a pre-agreed deal.
+
+
+
+
+Fixer
+
+class Fixer < T : FixableDealState > : Secondary < StateRef >
One side of the fixing protocol for an interest rate swap, but could easily be generalised further.
+
+
+
+
+
+
diff --git a/docs/build/html/api/protocols/-two-party-deal-protocol/-secondary/other-side.html b/docs/build/html/api/protocols/-two-party-deal-protocol/-secondary/other-side.html
new file mode 100644
index 0000000000..bff2ce3915
--- /dev/null
+++ b/docs/build/html/api/protocols/-two-party-deal-protocol/-secondary/other-side.html
@@ -0,0 +1,15 @@
+
+
+TwoPartyDealProtocol.Secondary.otherSide -
+
+
+
+protocols / TwoPartyDealProtocol / Secondary / otherSide
+
+otherSide
+
+val otherSide : SingleMessageRecipient
+
+
+
+
diff --git a/docs/build/html/api/protocols/-two-party-deal-protocol/-secondary/progress-tracker.html b/docs/build/html/api/protocols/-two-party-deal-protocol/-secondary/progress-tracker.html
new file mode 100644
index 0000000000..8a2baefc8c
--- /dev/null
+++ b/docs/build/html/api/protocols/-two-party-deal-protocol/-secondary/progress-tracker.html
@@ -0,0 +1,24 @@
+
+
+TwoPartyDealProtocol.Secondary.progressTracker -
+
+
+
+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/protocols/-two-party-deal-protocol/-secondary/session-i-d.html b/docs/build/html/api/protocols/-two-party-deal-protocol/-secondary/session-i-d.html
new file mode 100644
index 0000000000..3b716a2f26
--- /dev/null
+++ b/docs/build/html/api/protocols/-two-party-deal-protocol/-secondary/session-i-d.html
@@ -0,0 +1,15 @@
+
+
+TwoPartyDealProtocol.Secondary.sessionID -
+
+
+
+protocols / TwoPartyDealProtocol / Secondary / sessionID
+
+sessionID
+
+val sessionID : Long
+
+
+
+
diff --git a/docs/build/html/api/protocols/-two-party-deal-protocol/-secondary/timestamping-authority.html b/docs/build/html/api/protocols/-two-party-deal-protocol/-secondary/timestamping-authority.html
new file mode 100644
index 0000000000..70d3adb51a
--- /dev/null
+++ b/docs/build/html/api/protocols/-two-party-deal-protocol/-secondary/timestamping-authority.html
@@ -0,0 +1,15 @@
+
+
+TwoPartyDealProtocol.Secondary.timestampingAuthority -
+
+
+
+protocols / TwoPartyDealProtocol / Secondary / timestampingAuthority
+
+timestampingAuthority
+
+val timestampingAuthority : Party
+
+
+
+
diff --git a/docs/build/html/api/protocols/-two-party-deal-protocol/-secondary/tracker.html b/docs/build/html/api/protocols/-two-party-deal-protocol/-secondary/tracker.html
new file mode 100644
index 0000000000..e7d5c4bb49
--- /dev/null
+++ b/docs/build/html/api/protocols/-two-party-deal-protocol/-secondary/tracker.html
@@ -0,0 +1,15 @@
+
+
+TwoPartyDealProtocol.Secondary.tracker -
+
+
+
+protocols / TwoPartyDealProtocol / Secondary / tracker
+
+tracker
+
+fun tracker ( ) : ProgressTracker
+
+
+
+
diff --git a/docs/build/html/api/protocols/-two-party-deal-protocol/-secondary/validate-handshake.html b/docs/build/html/api/protocols/-two-party-deal-protocol/-secondary/validate-handshake.html
new file mode 100644
index 0000000000..784241bd06
--- /dev/null
+++ b/docs/build/html/api/protocols/-two-party-deal-protocol/-secondary/validate-handshake.html
@@ -0,0 +1,15 @@
+
+
+TwoPartyDealProtocol.Secondary.validateHandshake -
+
+
+
+protocols / TwoPartyDealProtocol / Secondary / validateHandshake
+
+validateHandshake
+
+protected abstract fun validateHandshake ( handshake : Handshake < U > ) : Handshake < U >
+
+
+
+
diff --git a/docs/build/html/api/protocols/-two-party-deal-protocol/-signatures-from-primary/-init-.html b/docs/build/html/api/protocols/-two-party-deal-protocol/-signatures-from-primary/-init-.html
new file mode 100644
index 0000000000..fc8fa64ad0
--- /dev/null
+++ b/docs/build/html/api/protocols/-two-party-deal-protocol/-signatures-from-primary/-init-.html
@@ -0,0 +1,14 @@
+
+
+TwoPartyDealProtocol.SignaturesFromPrimary. -
+
+
+
+protocols / TwoPartyDealProtocol / SignaturesFromPrimary / <init>
+
+<init>
+SignaturesFromPrimary ( timestampAuthoritySig : WithKey , sellerSig : WithKey )
+
+
+
+
diff --git a/docs/build/html/api/protocols/-two-party-deal-protocol/-signatures-from-primary/index.html b/docs/build/html/api/protocols/-two-party-deal-protocol/-signatures-from-primary/index.html
new file mode 100644
index 0000000000..76be026128
--- /dev/null
+++ b/docs/build/html/api/protocols/-two-party-deal-protocol/-signatures-from-primary/index.html
@@ -0,0 +1,42 @@
+
+
+TwoPartyDealProtocol.SignaturesFromPrimary -
+
+
+
+protocols / TwoPartyDealProtocol / SignaturesFromPrimary
+
+SignaturesFromPrimary
+class SignaturesFromPrimary
+
+
+Constructors
+
+Properties
+
+
+
diff --git a/docs/build/html/api/protocols/-two-party-deal-protocol/-signatures-from-primary/seller-sig.html b/docs/build/html/api/protocols/-two-party-deal-protocol/-signatures-from-primary/seller-sig.html
new file mode 100644
index 0000000000..115758210b
--- /dev/null
+++ b/docs/build/html/api/protocols/-two-party-deal-protocol/-signatures-from-primary/seller-sig.html
@@ -0,0 +1,15 @@
+
+
+TwoPartyDealProtocol.SignaturesFromPrimary.sellerSig -
+
+
+
+protocols / TwoPartyDealProtocol / SignaturesFromPrimary / sellerSig
+
+sellerSig
+
+val sellerSig : WithKey
+
+
+
+
diff --git a/docs/build/html/api/protocols/-two-party-deal-protocol/-signatures-from-primary/timestamp-authority-sig.html b/docs/build/html/api/protocols/-two-party-deal-protocol/-signatures-from-primary/timestamp-authority-sig.html
new file mode 100644
index 0000000000..1d9df7f144
--- /dev/null
+++ b/docs/build/html/api/protocols/-two-party-deal-protocol/-signatures-from-primary/timestamp-authority-sig.html
@@ -0,0 +1,15 @@
+
+
+TwoPartyDealProtocol.SignaturesFromPrimary.timestampAuthoritySig -
+
+
+
+protocols / TwoPartyDealProtocol / SignaturesFromPrimary / timestampAuthoritySig
+
+timestampAuthoritySig
+
+val timestampAuthoritySig : WithKey
+
+
+
+
diff --git a/docs/build/html/api/protocols/-two-party-deal-protocol/index.html b/docs/build/html/api/protocols/-two-party-deal-protocol/index.html
new file mode 100644
index 0000000000..ed9924f6b8
--- /dev/null
+++ b/docs/build/html/api/protocols/-two-party-deal-protocol/index.html
@@ -0,0 +1,106 @@
+
+
+TwoPartyDealProtocol -
+
+
+
+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.
+
+
+
+
+Types
+
+Exceptions
+
+Properties
+
+
+
diff --git a/docs/build/html/api/protocols/-two-party-trade-protocol/-asset-mismatch-exception/-init-.html b/docs/build/html/api/protocols/-two-party-trade-protocol/-asset-mismatch-exception/-init-.html
new file mode 100644
index 0000000000..d5e857ca58
--- /dev/null
+++ b/docs/build/html/api/protocols/-two-party-trade-protocol/-asset-mismatch-exception/-init-.html
@@ -0,0 +1,14 @@
+
+
+TwoPartyTradeProtocol.AssetMismatchException. -
+
+
+
+protocols / TwoPartyTradeProtocol / AssetMismatchException / <init>
+
+<init>
+AssetMismatchException ( expectedTypeName : String , typeName : String )
+
+
+
+
diff --git a/docs/build/html/api/protocols/-two-party-trade-protocol/-asset-mismatch-exception/expected-type-name.html b/docs/build/html/api/protocols/-two-party-trade-protocol/-asset-mismatch-exception/expected-type-name.html
new file mode 100644
index 0000000000..f5ba76c752
--- /dev/null
+++ b/docs/build/html/api/protocols/-two-party-trade-protocol/-asset-mismatch-exception/expected-type-name.html
@@ -0,0 +1,15 @@
+
+
+TwoPartyTradeProtocol.AssetMismatchException.expectedTypeName -
+
+
+
+protocols / TwoPartyTradeProtocol / AssetMismatchException / expectedTypeName
+
+expectedTypeName
+
+val expectedTypeName : String
+
+
+
+
diff --git a/docs/build/html/api/protocols/-two-party-trade-protocol/-asset-mismatch-exception/index.html b/docs/build/html/api/protocols/-two-party-trade-protocol/-asset-mismatch-exception/index.html
new file mode 100644
index 0000000000..6ec1803de2
--- /dev/null
+++ b/docs/build/html/api/protocols/-two-party-trade-protocol/-asset-mismatch-exception/index.html
@@ -0,0 +1,53 @@
+
+
+TwoPartyTradeProtocol.AssetMismatchException -
+
+
+
+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/protocols/-two-party-trade-protocol/-asset-mismatch-exception/to-string.html b/docs/build/html/api/protocols/-two-party-trade-protocol/-asset-mismatch-exception/to-string.html
new file mode 100644
index 0000000000..471a3f9edc
--- /dev/null
+++ b/docs/build/html/api/protocols/-two-party-trade-protocol/-asset-mismatch-exception/to-string.html
@@ -0,0 +1,15 @@
+
+
+TwoPartyTradeProtocol.AssetMismatchException.toString -
+
+
+
+protocols / TwoPartyTradeProtocol / AssetMismatchException / toString
+
+toString
+
+fun toString ( ) : String
+
+
+
+
diff --git a/docs/build/html/api/protocols/-two-party-trade-protocol/-asset-mismatch-exception/type-name.html b/docs/build/html/api/protocols/-two-party-trade-protocol/-asset-mismatch-exception/type-name.html
new file mode 100644
index 0000000000..97bc26fece
--- /dev/null
+++ b/docs/build/html/api/protocols/-two-party-trade-protocol/-asset-mismatch-exception/type-name.html
@@ -0,0 +1,15 @@
+
+
+TwoPartyTradeProtocol.AssetMismatchException.typeName -
+
+
+
+protocols / TwoPartyTradeProtocol / AssetMismatchException / typeName
+
+typeName
+
+val typeName : String
+
+
+
+
diff --git a/docs/build/html/api/protocols/-two-party-trade-protocol/-buyer/-init-.html b/docs/build/html/api/protocols/-two-party-trade-protocol/-buyer/-init-.html
new file mode 100644
index 0000000000..84763d3562
--- /dev/null
+++ b/docs/build/html/api/protocols/-two-party-trade-protocol/-buyer/-init-.html
@@ -0,0 +1,14 @@
+
+
+TwoPartyTradeProtocol.Buyer. -
+
+
+
+protocols / TwoPartyTradeProtocol / Buyer / <init>
+
+<init>
+Buyer ( otherSide : SingleMessageRecipient , timestampingAuthority : Party , acceptablePrice : Amount , typeToBuy : Class < out OwnableState > , sessionID : Long )
+
+
+
+
diff --git a/docs/build/html/api/protocols/-two-party-trade-protocol/-buyer/-r-e-c-e-i-v-i-n-g.html b/docs/build/html/api/protocols/-two-party-trade-protocol/-buyer/-r-e-c-e-i-v-i-n-g.html
new file mode 100644
index 0000000000..f65fef3854
--- /dev/null
+++ b/docs/build/html/api/protocols/-two-party-trade-protocol/-buyer/-r-e-c-e-i-v-i-n-g.html
@@ -0,0 +1,31 @@
+
+
+TwoPartyTradeProtocol.Buyer.RECEIVING -
+
+
+
+protocols / TwoPartyTradeProtocol / Buyer / RECEIVING
+
+RECEIVING
+object RECEIVING : Step
+
+
+Inherited Properties
+
+
+
+
+changes
+
+open val changes : <ERROR CLASS> < Change >
+
+
+
+label
+
+open val label : String
+
+
+
+
+
diff --git a/docs/build/html/api/protocols/-two-party-trade-protocol/-buyer/-s-i-g-n-i-n-g.html b/docs/build/html/api/protocols/-two-party-trade-protocol/-buyer/-s-i-g-n-i-n-g.html
new file mode 100644
index 0000000000..10ee9dcad7
--- /dev/null
+++ b/docs/build/html/api/protocols/-two-party-trade-protocol/-buyer/-s-i-g-n-i-n-g.html
@@ -0,0 +1,31 @@
+
+
+TwoPartyTradeProtocol.Buyer.SIGNING -
+
+
+
+protocols / TwoPartyTradeProtocol / Buyer / SIGNING
+
+SIGNING
+object SIGNING : Step
+
+
+Inherited Properties
+
+
+
+
+changes
+
+open val changes : <ERROR CLASS> < Change >
+
+
+
+label
+
+open val label : String
+
+
+
+
+
diff --git a/docs/build/html/api/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/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..4f0ec517dc
--- /dev/null
+++ b/docs/build/html/api/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,31 @@
+
+
+TwoPartyTradeProtocol.Buyer.SWAPPING_SIGNATURES -
+
+
+
+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
+
+
+
+
+
diff --git a/docs/build/html/api/protocols/-two-party-trade-protocol/-buyer/-v-e-r-i-f-y-i-n-g.html b/docs/build/html/api/protocols/-two-party-trade-protocol/-buyer/-v-e-r-i-f-y-i-n-g.html
new file mode 100644
index 0000000000..43e2cd9e0b
--- /dev/null
+++ b/docs/build/html/api/protocols/-two-party-trade-protocol/-buyer/-v-e-r-i-f-y-i-n-g.html
@@ -0,0 +1,31 @@
+
+
+TwoPartyTradeProtocol.Buyer.VERIFYING -
+
+
+
+protocols / TwoPartyTradeProtocol / Buyer / VERIFYING
+
+VERIFYING
+object VERIFYING : Step
+
+
+Inherited Properties
+
+
+
+
+changes
+
+open val changes : <ERROR CLASS> < Change >
+
+
+
+label
+
+open val label : String
+
+
+
+
+
diff --git a/docs/build/html/api/protocols/-two-party-trade-protocol/-buyer/acceptable-price.html b/docs/build/html/api/protocols/-two-party-trade-protocol/-buyer/acceptable-price.html
new file mode 100644
index 0000000000..bee486308d
--- /dev/null
+++ b/docs/build/html/api/protocols/-two-party-trade-protocol/-buyer/acceptable-price.html
@@ -0,0 +1,15 @@
+
+
+TwoPartyTradeProtocol.Buyer.acceptablePrice -
+
+
+
+protocols / TwoPartyTradeProtocol / Buyer / acceptablePrice
+
+acceptablePrice
+
+val acceptablePrice : Amount
+
+
+
+
diff --git a/docs/build/html/api/protocols/-two-party-trade-protocol/-buyer/call.html b/docs/build/html/api/protocols/-two-party-trade-protocol/-buyer/call.html
new file mode 100644
index 0000000000..1e1d3eae3f
--- /dev/null
+++ b/docs/build/html/api/protocols/-two-party-trade-protocol/-buyer/call.html
@@ -0,0 +1,17 @@
+
+
+TwoPartyTradeProtocol.Buyer.call -
+
+
+
+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/protocols/-two-party-trade-protocol/-buyer/index.html b/docs/build/html/api/protocols/-two-party-trade-protocol/-buyer/index.html
new file mode 100644
index 0000000000..dfb5064efb
--- /dev/null
+++ b/docs/build/html/api/protocols/-two-party-trade-protocol/-buyer/index.html
@@ -0,0 +1,169 @@
+
+
+TwoPartyTradeProtocol.Buyer -
+
+
+
+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
+
+
+
+
+Functions
+
+Inherited Functions
+
+
+
+
+receive
+
+fun < T : Any > receive ( topic : String , sessionIDForReceive : Long , clazz : Class < T > ) : UntrustworthyData < T >
+fun < T : Any > receive ( topic : String , sessionIDForReceive : Long ) : UntrustworthyData < T >
+
+
+
+send
+
+fun send ( topic : String , destination : MessageRecipients , sessionID : Long , obj : Any ) : Unit
+
+
+
+sendAndReceive
+
+fun < T : Any > sendAndReceive ( topic : String , destination : MessageRecipients , sessionIDForSend : Long , sessionIDForReceive : Long , obj : Any ) : UntrustworthyData < T >
+
+
+
+subProtocol
+
+fun < R > subProtocol ( subLogic : ProtocolLogic < R > ) : R
Invokes the given subprotocol by simply passing through this ProtocolLogic s reference to the
+ProtocolStateMachine and then calling the call method.
+
+
+
+
+
+
diff --git a/docs/build/html/api/protocols/-two-party-trade-protocol/-buyer/other-side.html b/docs/build/html/api/protocols/-two-party-trade-protocol/-buyer/other-side.html
new file mode 100644
index 0000000000..2cb2d98143
--- /dev/null
+++ b/docs/build/html/api/protocols/-two-party-trade-protocol/-buyer/other-side.html
@@ -0,0 +1,15 @@
+
+
+TwoPartyTradeProtocol.Buyer.otherSide -
+
+
+
+protocols / TwoPartyTradeProtocol / Buyer / otherSide
+
+otherSide
+
+val otherSide : SingleMessageRecipient
+
+
+
+
diff --git a/docs/build/html/api/protocols/-two-party-trade-protocol/-buyer/progress-tracker.html b/docs/build/html/api/protocols/-two-party-trade-protocol/-buyer/progress-tracker.html
new file mode 100644
index 0000000000..4c10e094d0
--- /dev/null
+++ b/docs/build/html/api/protocols/-two-party-trade-protocol/-buyer/progress-tracker.html
@@ -0,0 +1,24 @@
+
+
+TwoPartyTradeProtocol.Buyer.progressTracker -
+
+
+
+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/protocols/-two-party-trade-protocol/-buyer/session-i-d.html b/docs/build/html/api/protocols/-two-party-trade-protocol/-buyer/session-i-d.html
new file mode 100644
index 0000000000..489473da52
--- /dev/null
+++ b/docs/build/html/api/protocols/-two-party-trade-protocol/-buyer/session-i-d.html
@@ -0,0 +1,15 @@
+
+
+TwoPartyTradeProtocol.Buyer.sessionID -
+
+
+
+protocols / TwoPartyTradeProtocol / Buyer / sessionID
+
+sessionID
+
+val sessionID : Long
+
+
+
+
diff --git a/docs/build/html/api/protocols/-two-party-trade-protocol/-buyer/timestamping-authority.html b/docs/build/html/api/protocols/-two-party-trade-protocol/-buyer/timestamping-authority.html
new file mode 100644
index 0000000000..9f4183a4c9
--- /dev/null
+++ b/docs/build/html/api/protocols/-two-party-trade-protocol/-buyer/timestamping-authority.html
@@ -0,0 +1,15 @@
+
+
+TwoPartyTradeProtocol.Buyer.timestampingAuthority -
+
+
+
+protocols / TwoPartyTradeProtocol / Buyer / timestampingAuthority
+
+timestampingAuthority
+
+val timestampingAuthority : Party
+
+
+
+
diff --git a/docs/build/html/api/protocols/-two-party-trade-protocol/-buyer/type-to-buy.html b/docs/build/html/api/protocols/-two-party-trade-protocol/-buyer/type-to-buy.html
new file mode 100644
index 0000000000..7a270d8060
--- /dev/null
+++ b/docs/build/html/api/protocols/-two-party-trade-protocol/-buyer/type-to-buy.html
@@ -0,0 +1,15 @@
+
+
+TwoPartyTradeProtocol.Buyer.typeToBuy -
+
+
+
+protocols / TwoPartyTradeProtocol / Buyer / typeToBuy
+
+typeToBuy
+
+val typeToBuy : Class < out OwnableState >
+
+
+
+
diff --git a/docs/build/html/api/protocols/-two-party-trade-protocol/-seller-trade-info/-init-.html b/docs/build/html/api/protocols/-two-party-trade-protocol/-seller-trade-info/-init-.html
new file mode 100644
index 0000000000..942c52ba0f
--- /dev/null
+++ b/docs/build/html/api/protocols/-two-party-trade-protocol/-seller-trade-info/-init-.html
@@ -0,0 +1,14 @@
+
+
+TwoPartyTradeProtocol.SellerTradeInfo. -
+
+
+
+protocols / TwoPartyTradeProtocol / SellerTradeInfo / <init>
+
+<init>
+SellerTradeInfo ( assetForSale : StateAndRef < OwnableState > , price : Amount , sellerOwnerKey : PublicKey , sessionID : Long )
+
+
+
+
diff --git a/docs/build/html/api/protocols/-two-party-trade-protocol/-seller-trade-info/asset-for-sale.html b/docs/build/html/api/protocols/-two-party-trade-protocol/-seller-trade-info/asset-for-sale.html
new file mode 100644
index 0000000000..46d33703ac
--- /dev/null
+++ b/docs/build/html/api/protocols/-two-party-trade-protocol/-seller-trade-info/asset-for-sale.html
@@ -0,0 +1,15 @@
+
+
+TwoPartyTradeProtocol.SellerTradeInfo.assetForSale -
+
+
+
+protocols / TwoPartyTradeProtocol / SellerTradeInfo / assetForSale
+
+assetForSale
+
+val assetForSale : StateAndRef < OwnableState >
+
+
+
+
diff --git a/docs/build/html/api/protocols/-two-party-trade-protocol/-seller-trade-info/index.html b/docs/build/html/api/protocols/-two-party-trade-protocol/-seller-trade-info/index.html
new file mode 100644
index 0000000000..3dfbcb8df3
--- /dev/null
+++ b/docs/build/html/api/protocols/-two-party-trade-protocol/-seller-trade-info/index.html
@@ -0,0 +1,54 @@
+
+
+TwoPartyTradeProtocol.SellerTradeInfo -
+
+
+
+protocols / TwoPartyTradeProtocol / SellerTradeInfo
+
+SellerTradeInfo
+class SellerTradeInfo
+
+
+Constructors
+
+Properties
+
+
+
diff --git a/docs/build/html/api/protocols/-two-party-trade-protocol/-seller-trade-info/price.html b/docs/build/html/api/protocols/-two-party-trade-protocol/-seller-trade-info/price.html
new file mode 100644
index 0000000000..6b43819ef0
--- /dev/null
+++ b/docs/build/html/api/protocols/-two-party-trade-protocol/-seller-trade-info/price.html
@@ -0,0 +1,15 @@
+
+
+TwoPartyTradeProtocol.SellerTradeInfo.price -
+
+
+
+protocols / TwoPartyTradeProtocol / SellerTradeInfo / price
+
+price
+
+val price : Amount
+
+
+
+
diff --git a/docs/build/html/api/protocols/-two-party-trade-protocol/-seller-trade-info/seller-owner-key.html b/docs/build/html/api/protocols/-two-party-trade-protocol/-seller-trade-info/seller-owner-key.html
new file mode 100644
index 0000000000..4033db523f
--- /dev/null
+++ b/docs/build/html/api/protocols/-two-party-trade-protocol/-seller-trade-info/seller-owner-key.html
@@ -0,0 +1,15 @@
+
+
+TwoPartyTradeProtocol.SellerTradeInfo.sellerOwnerKey -
+
+
+
+protocols / TwoPartyTradeProtocol / SellerTradeInfo / sellerOwnerKey
+
+sellerOwnerKey
+
+val sellerOwnerKey : PublicKey
+
+
+
+
diff --git a/docs/build/html/api/protocols/-two-party-trade-protocol/-seller-trade-info/session-i-d.html b/docs/build/html/api/protocols/-two-party-trade-protocol/-seller-trade-info/session-i-d.html
new file mode 100644
index 0000000000..30a1cced34
--- /dev/null
+++ b/docs/build/html/api/protocols/-two-party-trade-protocol/-seller-trade-info/session-i-d.html
@@ -0,0 +1,15 @@
+
+
+TwoPartyTradeProtocol.SellerTradeInfo.sessionID -
+
+
+
+protocols / TwoPartyTradeProtocol / SellerTradeInfo / sessionID
+
+sessionID
+
+val sessionID : Long
+
+
+
+
diff --git a/docs/build/html/api/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/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..a1c5448855
--- /dev/null
+++ b/docs/build/html/api/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,31 @@
+
+
+TwoPartyTradeProtocol.Seller.AWAITING_PROPOSAL -
+
+
+
+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
+
+
+
+
+
diff --git a/docs/build/html/api/protocols/-two-party-trade-protocol/-seller/-init-.html b/docs/build/html/api/protocols/-two-party-trade-protocol/-seller/-init-.html
new file mode 100644
index 0000000000..67986b2940
--- /dev/null
+++ b/docs/build/html/api/protocols/-two-party-trade-protocol/-seller/-init-.html
@@ -0,0 +1,14 @@
+
+
+TwoPartyTradeProtocol.Seller. -
+
+
+
+protocols / TwoPartyTradeProtocol / Seller / <init>
+
+<init>
+Seller ( otherSide : SingleMessageRecipient , timestampingAuthority : NodeInfo , assetToSell : StateAndRef < OwnableState > , price : Amount , myKeyPair : KeyPair , buyerSessionID : Long , progressTracker : ProgressTracker = Seller.tracker())
+
+
+
+
diff --git a/docs/build/html/api/protocols/-two-party-trade-protocol/-seller/-s-e-n-d-i-n-g_-s-i-g-s.html b/docs/build/html/api/protocols/-two-party-trade-protocol/-seller/-s-e-n-d-i-n-g_-s-i-g-s.html
new file mode 100644
index 0000000000..6e35ae3729
--- /dev/null
+++ b/docs/build/html/api/protocols/-two-party-trade-protocol/-seller/-s-e-n-d-i-n-g_-s-i-g-s.html
@@ -0,0 +1,31 @@
+
+
+TwoPartyTradeProtocol.Seller.SENDING_SIGS -
+
+
+
+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
+
+
+
+
+
diff --git a/docs/build/html/api/protocols/-two-party-trade-protocol/-seller/-s-i-g-n-i-n-g.html b/docs/build/html/api/protocols/-two-party-trade-protocol/-seller/-s-i-g-n-i-n-g.html
new file mode 100644
index 0000000000..62094afd9a
--- /dev/null
+++ b/docs/build/html/api/protocols/-two-party-trade-protocol/-seller/-s-i-g-n-i-n-g.html
@@ -0,0 +1,31 @@
+
+
+TwoPartyTradeProtocol.Seller.SIGNING -
+
+
+
+protocols / TwoPartyTradeProtocol / Seller / SIGNING
+
+SIGNING
+object SIGNING : Step
+
+
+Inherited Properties
+
+
+
+
+changes
+
+open val changes : <ERROR CLASS> < Change >
+
+
+
+label
+
+open val label : String
+
+
+
+
+
diff --git a/docs/build/html/api/protocols/-two-party-trade-protocol/-seller/-t-i-m-e-s-t-a-m-p-i-n-g.html b/docs/build/html/api/protocols/-two-party-trade-protocol/-seller/-t-i-m-e-s-t-a-m-p-i-n-g.html
new file mode 100644
index 0000000000..ddade60013
--- /dev/null
+++ b/docs/build/html/api/protocols/-two-party-trade-protocol/-seller/-t-i-m-e-s-t-a-m-p-i-n-g.html
@@ -0,0 +1,31 @@
+
+
+TwoPartyTradeProtocol.Seller.TIMESTAMPING -
+
+
+
+protocols / TwoPartyTradeProtocol / Seller / TIMESTAMPING
+
+TIMESTAMPING
+object TIMESTAMPING : Step
+
+
+Inherited Properties
+
+
+
+
+changes
+
+open val changes : <ERROR CLASS> < Change >
+
+
+
+label
+
+open val label : String
+
+
+
+
+
diff --git a/docs/build/html/api/protocols/-two-party-trade-protocol/-seller/-v-e-r-i-f-y-i-n-g.html b/docs/build/html/api/protocols/-two-party-trade-protocol/-seller/-v-e-r-i-f-y-i-n-g.html
new file mode 100644
index 0000000000..9722dde40f
--- /dev/null
+++ b/docs/build/html/api/protocols/-two-party-trade-protocol/-seller/-v-e-r-i-f-y-i-n-g.html
@@ -0,0 +1,31 @@
+
+
+TwoPartyTradeProtocol.Seller.VERIFYING -
+
+
+
+protocols / TwoPartyTradeProtocol / Seller / VERIFYING
+
+VERIFYING
+object VERIFYING : Step
+
+
+Inherited Properties
+
+
+
+
+changes
+
+open val changes : <ERROR CLASS> < Change >
+
+
+
+label
+
+open val label : String
+
+
+
+
+
diff --git a/docs/build/html/api/protocols/-two-party-trade-protocol/-seller/asset-to-sell.html b/docs/build/html/api/protocols/-two-party-trade-protocol/-seller/asset-to-sell.html
new file mode 100644
index 0000000000..5a321028dd
--- /dev/null
+++ b/docs/build/html/api/protocols/-two-party-trade-protocol/-seller/asset-to-sell.html
@@ -0,0 +1,15 @@
+
+
+TwoPartyTradeProtocol.Seller.assetToSell -
+
+
+
+protocols / TwoPartyTradeProtocol / Seller / assetToSell
+
+assetToSell
+
+val assetToSell : StateAndRef < OwnableState >
+
+
+
+
diff --git a/docs/build/html/api/protocols/-two-party-trade-protocol/-seller/buyer-session-i-d.html b/docs/build/html/api/protocols/-two-party-trade-protocol/-seller/buyer-session-i-d.html
new file mode 100644
index 0000000000..b29e63a2ba
--- /dev/null
+++ b/docs/build/html/api/protocols/-two-party-trade-protocol/-seller/buyer-session-i-d.html
@@ -0,0 +1,15 @@
+
+
+TwoPartyTradeProtocol.Seller.buyerSessionID -
+
+
+
+protocols / TwoPartyTradeProtocol / Seller / buyerSessionID
+
+buyerSessionID
+
+val buyerSessionID : Long
+
+
+
+
diff --git a/docs/build/html/api/protocols/-two-party-trade-protocol/-seller/call.html b/docs/build/html/api/protocols/-two-party-trade-protocol/-seller/call.html
new file mode 100644
index 0000000000..2f9c8a4a6e
--- /dev/null
+++ b/docs/build/html/api/protocols/-two-party-trade-protocol/-seller/call.html
@@ -0,0 +1,17 @@
+
+
+TwoPartyTradeProtocol.Seller.call -
+
+
+
+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/protocols/-two-party-trade-protocol/-seller/index.html b/docs/build/html/api/protocols/-two-party-trade-protocol/-seller/index.html
new file mode 100644
index 0000000000..db1ce82626
--- /dev/null
+++ b/docs/build/html/api/protocols/-two-party-trade-protocol/-seller/index.html
@@ -0,0 +1,198 @@
+
+
+TwoPartyTradeProtocol.Seller -
+
+
+
+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
+
+
+
+
+Functions
+
+Inherited Functions
+
+
+
+
+receive
+
+fun < T : Any > receive ( topic : String , sessionIDForReceive : Long , clazz : Class < T > ) : UntrustworthyData < T >
+fun < T : Any > receive ( topic : String , sessionIDForReceive : Long ) : UntrustworthyData < T >
+
+
+
+send
+
+fun send ( topic : String , destination : MessageRecipients , sessionID : Long , obj : Any ) : Unit
+
+
+
+sendAndReceive
+
+fun < T : Any > sendAndReceive ( topic : String , destination : MessageRecipients , sessionIDForSend : Long , sessionIDForReceive : Long , obj : Any ) : UntrustworthyData < T >
+
+
+
+subProtocol
+
+fun < R > subProtocol ( subLogic : ProtocolLogic < R > ) : R
Invokes the given subprotocol by simply passing through this ProtocolLogic s reference to the
+ProtocolStateMachine and then calling the call method.
+
+
+
+
+Companion Object Functions
+
+
+
diff --git a/docs/build/html/api/protocols/-two-party-trade-protocol/-seller/my-key-pair.html b/docs/build/html/api/protocols/-two-party-trade-protocol/-seller/my-key-pair.html
new file mode 100644
index 0000000000..6c8395b3ea
--- /dev/null
+++ b/docs/build/html/api/protocols/-two-party-trade-protocol/-seller/my-key-pair.html
@@ -0,0 +1,15 @@
+
+
+TwoPartyTradeProtocol.Seller.myKeyPair -
+
+
+
+protocols / TwoPartyTradeProtocol / Seller / myKeyPair
+
+myKeyPair
+
+val myKeyPair : KeyPair
+
+
+
+
diff --git a/docs/build/html/api/protocols/-two-party-trade-protocol/-seller/other-side.html b/docs/build/html/api/protocols/-two-party-trade-protocol/-seller/other-side.html
new file mode 100644
index 0000000000..c22a714a12
--- /dev/null
+++ b/docs/build/html/api/protocols/-two-party-trade-protocol/-seller/other-side.html
@@ -0,0 +1,15 @@
+
+
+TwoPartyTradeProtocol.Seller.otherSide -
+
+
+
+protocols / TwoPartyTradeProtocol / Seller / otherSide
+
+otherSide
+
+val otherSide : SingleMessageRecipient
+
+
+
+
diff --git a/docs/build/html/api/protocols/-two-party-trade-protocol/-seller/price.html b/docs/build/html/api/protocols/-two-party-trade-protocol/-seller/price.html
new file mode 100644
index 0000000000..d2bf09587b
--- /dev/null
+++ b/docs/build/html/api/protocols/-two-party-trade-protocol/-seller/price.html
@@ -0,0 +1,15 @@
+
+
+TwoPartyTradeProtocol.Seller.price -
+
+
+
+protocols / TwoPartyTradeProtocol / Seller / price
+
+price
+
+val price : Amount
+
+
+
+
diff --git a/docs/build/html/api/protocols/-two-party-trade-protocol/-seller/progress-tracker.html b/docs/build/html/api/protocols/-two-party-trade-protocol/-seller/progress-tracker.html
new file mode 100644
index 0000000000..55310ba155
--- /dev/null
+++ b/docs/build/html/api/protocols/-two-party-trade-protocol/-seller/progress-tracker.html
@@ -0,0 +1,24 @@
+
+
+TwoPartyTradeProtocol.Seller.progressTracker -
+
+
+
+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/protocols/-two-party-trade-protocol/-seller/sign-with-our-key.html b/docs/build/html/api/protocols/-two-party-trade-protocol/-seller/sign-with-our-key.html
new file mode 100644
index 0000000000..df269740ac
--- /dev/null
+++ b/docs/build/html/api/protocols/-two-party-trade-protocol/-seller/sign-with-our-key.html
@@ -0,0 +1,15 @@
+
+
+TwoPartyTradeProtocol.Seller.signWithOurKey -
+
+
+
+protocols / TwoPartyTradeProtocol / Seller / signWithOurKey
+
+signWithOurKey
+
+open fun signWithOurKey ( partialTX : SignedTransaction ) : WithKey
+
+
+
+
diff --git a/docs/build/html/api/protocols/-two-party-trade-protocol/-seller/timestamping-authority.html b/docs/build/html/api/protocols/-two-party-trade-protocol/-seller/timestamping-authority.html
new file mode 100644
index 0000000000..eb38bd3d75
--- /dev/null
+++ b/docs/build/html/api/protocols/-two-party-trade-protocol/-seller/timestamping-authority.html
@@ -0,0 +1,15 @@
+
+
+TwoPartyTradeProtocol.Seller.timestampingAuthority -
+
+
+
+protocols / TwoPartyTradeProtocol / Seller / timestampingAuthority
+
+timestampingAuthority
+
+val timestampingAuthority : NodeInfo
+
+
+
+
diff --git a/docs/build/html/api/protocols/-two-party-trade-protocol/-seller/tracker.html b/docs/build/html/api/protocols/-two-party-trade-protocol/-seller/tracker.html
new file mode 100644
index 0000000000..54c648d08b
--- /dev/null
+++ b/docs/build/html/api/protocols/-two-party-trade-protocol/-seller/tracker.html
@@ -0,0 +1,15 @@
+
+
+TwoPartyTradeProtocol.Seller.tracker -
+
+
+
+protocols / TwoPartyTradeProtocol / Seller / tracker
+
+tracker
+
+fun tracker ( ) : ProgressTracker
+
+
+
+
diff --git a/docs/build/html/api/protocols/-two-party-trade-protocol/-signatures-from-seller/-init-.html b/docs/build/html/api/protocols/-two-party-trade-protocol/-signatures-from-seller/-init-.html
new file mode 100644
index 0000000000..767d05b5b4
--- /dev/null
+++ b/docs/build/html/api/protocols/-two-party-trade-protocol/-signatures-from-seller/-init-.html
@@ -0,0 +1,14 @@
+
+
+TwoPartyTradeProtocol.SignaturesFromSeller. -
+
+
+
+protocols / TwoPartyTradeProtocol / SignaturesFromSeller / <init>
+
+<init>
+SignaturesFromSeller ( timestampAuthoritySig : WithKey , sellerSig : WithKey )
+
+
+
+
diff --git a/docs/build/html/api/protocols/-two-party-trade-protocol/-signatures-from-seller/index.html b/docs/build/html/api/protocols/-two-party-trade-protocol/-signatures-from-seller/index.html
new file mode 100644
index 0000000000..c2307dd12b
--- /dev/null
+++ b/docs/build/html/api/protocols/-two-party-trade-protocol/-signatures-from-seller/index.html
@@ -0,0 +1,42 @@
+
+
+TwoPartyTradeProtocol.SignaturesFromSeller -
+
+
+
+protocols / TwoPartyTradeProtocol / SignaturesFromSeller
+
+SignaturesFromSeller
+class SignaturesFromSeller
+
+
+Constructors
+
+Properties
+
+
+
diff --git a/docs/build/html/api/protocols/-two-party-trade-protocol/-signatures-from-seller/seller-sig.html b/docs/build/html/api/protocols/-two-party-trade-protocol/-signatures-from-seller/seller-sig.html
new file mode 100644
index 0000000000..89d46cd81f
--- /dev/null
+++ b/docs/build/html/api/protocols/-two-party-trade-protocol/-signatures-from-seller/seller-sig.html
@@ -0,0 +1,15 @@
+
+
+TwoPartyTradeProtocol.SignaturesFromSeller.sellerSig -
+
+
+
+protocols / TwoPartyTradeProtocol / SignaturesFromSeller / sellerSig
+
+sellerSig
+
+val sellerSig : WithKey
+
+
+
+
diff --git a/docs/build/html/api/protocols/-two-party-trade-protocol/-signatures-from-seller/timestamp-authority-sig.html b/docs/build/html/api/protocols/-two-party-trade-protocol/-signatures-from-seller/timestamp-authority-sig.html
new file mode 100644
index 0000000000..99ac9611e4
--- /dev/null
+++ b/docs/build/html/api/protocols/-two-party-trade-protocol/-signatures-from-seller/timestamp-authority-sig.html
@@ -0,0 +1,15 @@
+
+
+TwoPartyTradeProtocol.SignaturesFromSeller.timestampAuthoritySig -
+
+
+
+protocols / TwoPartyTradeProtocol / SignaturesFromSeller / timestampAuthoritySig
+
+timestampAuthoritySig
+
+val timestampAuthoritySig : WithKey
+
+
+
+
diff --git a/docs/build/html/api/protocols/-two-party-trade-protocol/-t-r-a-d-e_-t-o-p-i-c.html b/docs/build/html/api/protocols/-two-party-trade-protocol/-t-r-a-d-e_-t-o-p-i-c.html
new file mode 100644
index 0000000000..104a71ac8b
--- /dev/null
+++ b/docs/build/html/api/protocols/-two-party-trade-protocol/-t-r-a-d-e_-t-o-p-i-c.html
@@ -0,0 +1,15 @@
+
+
+TwoPartyTradeProtocol.TRADE_TOPIC -
+
+
+
+protocols / TwoPartyTradeProtocol / TRADE_TOPIC
+
+TRADE_TOPIC
+
+val TRADE_TOPIC : String
+
+
+
+
diff --git a/docs/build/html/api/protocols/-two-party-trade-protocol/-unacceptable-price-exception/-init-.html b/docs/build/html/api/protocols/-two-party-trade-protocol/-unacceptable-price-exception/-init-.html
new file mode 100644
index 0000000000..8039ffdf70
--- /dev/null
+++ b/docs/build/html/api/protocols/-two-party-trade-protocol/-unacceptable-price-exception/-init-.html
@@ -0,0 +1,14 @@
+
+
+TwoPartyTradeProtocol.UnacceptablePriceException. -
+
+
+
+protocols / TwoPartyTradeProtocol / UnacceptablePriceException / <init>
+
+<init>
+UnacceptablePriceException ( givenPrice : Amount )
+
+
+
+
diff --git a/docs/build/html/api/protocols/-two-party-trade-protocol/-unacceptable-price-exception/given-price.html b/docs/build/html/api/protocols/-two-party-trade-protocol/-unacceptable-price-exception/given-price.html
new file mode 100644
index 0000000000..53203a44fe
--- /dev/null
+++ b/docs/build/html/api/protocols/-two-party-trade-protocol/-unacceptable-price-exception/given-price.html
@@ -0,0 +1,15 @@
+
+
+TwoPartyTradeProtocol.UnacceptablePriceException.givenPrice -
+
+
+
+protocols / TwoPartyTradeProtocol / UnacceptablePriceException / givenPrice
+
+givenPrice
+
+val givenPrice : Amount
+
+
+
+
diff --git a/docs/build/html/api/protocols/-two-party-trade-protocol/-unacceptable-price-exception/index.html b/docs/build/html/api/protocols/-two-party-trade-protocol/-unacceptable-price-exception/index.html
new file mode 100644
index 0000000000..90585749f0
--- /dev/null
+++ b/docs/build/html/api/protocols/-two-party-trade-protocol/-unacceptable-price-exception/index.html
@@ -0,0 +1,36 @@
+
+
+TwoPartyTradeProtocol.UnacceptablePriceException -
+
+
+
+protocols / TwoPartyTradeProtocol / UnacceptablePriceException
+
+UnacceptablePriceException
+class UnacceptablePriceException : Exception
+
+
+Constructors
+
+
+
+
+<init>
+
+UnacceptablePriceException ( givenPrice : Amount )
+
+
+
+Properties
+
+
+
diff --git a/docs/build/html/api/protocols/-two-party-trade-protocol/index.html b/docs/build/html/api/protocols/-two-party-trade-protocol/index.html
new file mode 100644
index 0000000000..9509700778
--- /dev/null
+++ b/docs/build/html/api/protocols/-two-party-trade-protocol/index.html
@@ -0,0 +1,106 @@
+
+
+TwoPartyTradeProtocol -
+
+
+
+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
+
+Properties
+
+Functions
+
+
+
+
+runBuyer
+
+fun runBuyer ( smm : StateMachineManager , timestampingAuthority : NodeInfo , otherSide : SingleMessageRecipient , acceptablePrice : Amount , typeToBuy : Class < out OwnableState > , sessionID : Long ) : <ERROR CLASS> < SignedTransaction >
+
+
+
+runSeller
+
+fun runSeller ( smm : StateMachineManager , timestampingAuthority : NodeInfo , otherSide : SingleMessageRecipient , assetToSell : StateAndRef < OwnableState > , price : Amount , myKeyPair : KeyPair , buyerSessionID : Long ) : <ERROR CLASS> < SignedTransaction >
+
+
+
+
+
diff --git a/docs/build/html/api/protocols/-two-party-trade-protocol/run-buyer.html b/docs/build/html/api/protocols/-two-party-trade-protocol/run-buyer.html
new file mode 100644
index 0000000000..214edd450e
--- /dev/null
+++ b/docs/build/html/api/protocols/-two-party-trade-protocol/run-buyer.html
@@ -0,0 +1,15 @@
+
+
+TwoPartyTradeProtocol.runBuyer -
+
+
+
+protocols / TwoPartyTradeProtocol / runBuyer
+
+runBuyer
+
+fun runBuyer ( smm : StateMachineManager , timestampingAuthority : NodeInfo , otherSide : SingleMessageRecipient , acceptablePrice : Amount , typeToBuy : Class < out OwnableState > , sessionID : Long ) : <ERROR CLASS> < SignedTransaction >
+
+
+
+
diff --git a/docs/build/html/api/protocols/-two-party-trade-protocol/run-seller.html b/docs/build/html/api/protocols/-two-party-trade-protocol/run-seller.html
new file mode 100644
index 0000000000..0c5c7ef225
--- /dev/null
+++ b/docs/build/html/api/protocols/-two-party-trade-protocol/run-seller.html
@@ -0,0 +1,15 @@
+
+
+TwoPartyTradeProtocol.runSeller -
+
+
+
+protocols / TwoPartyTradeProtocol / runSeller
+
+runSeller
+
+fun runSeller ( smm : StateMachineManager , timestampingAuthority : NodeInfo , otherSide : SingleMessageRecipient , assetToSell : StateAndRef < OwnableState > , price : Amount , myKeyPair : KeyPair , buyerSessionID : Long ) : <ERROR CLASS> < SignedTransaction >
+
+
+
+
diff --git a/docs/build/html/api/protocols/index.html b/docs/build/html/api/protocols/index.html
new file mode 100644
index 0000000000..fab86c9836
--- /dev/null
+++ b/docs/build/html/api/protocols/index.html
@@ -0,0 +1,88 @@
+
+
+protocols -
+
+
+
+protocols
+
+Package protocols
+Types
+
+
+
+
+AbstractRequestMessage
+
+abstract class AbstractRequestMessage
Abstract superclass for request messages sent to services, which includes common
+fields such as replyTo and replyToTopic.
+
+
+
+
+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 , 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.
+
+
+
+
+RatesFixProtocol
+
+open class RatesFixProtocol : ProtocolLogic < Unit >
This protocol queries the given oracle for an interest rate fix, and if it is within the given tolerance embeds the
+fix in the transaction and then proceeds to get the oracle to sign it. Although the call method combines the query
+and signing step, you can run the steps individually by constructing this object and then using the public methods
+for each step.
+
+
+
+
+ResolveTransactionsProtocol
+
+class ResolveTransactionsProtocol : ProtocolLogic < Unit >
This protocol fetches each transaction identified by the given hashes from either disk or network, along with all
+their dependencies, and verifies them together using a single TransactionGroup . If no exception is thrown, then
+all the transactions have been successfully verified and inserted into the local database.
+
+
+
+
+TimestampingProtocol
+
+class TimestampingProtocol : ProtocolLogic < LegallyIdentifiable >
The TimestampingProtocol class is the client code that talks to a NodeTimestamperService on some remote node. It is a
+ProtocolLogic , meaning it can either be a sub-protocol of some other protocol, or be driven independently.
+
+
+
+
+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:
+
+
+
+
+
+
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;
+ }
+}